/** * Build quests * * @return string */ function show_quests() { global $roster, $addon; $quests = quest_get_many($this->data['member_id']); $roster->tpl->assign_vars(array('S_QUESTS' => count($quests), 'S_MAXQUESTS' => ROSTER_MAXQUESTS)); if (isset($quests[0])) { $quests_arr = array(); foreach ($quests as $object) { $zone = $object->data['zone']; $quest_name = $object->data['quest_name']; $quests_arr[$zone][$quest_name]['quest_id'] = $object->data['quest_id']; $quests_arr[$zone][$quest_name]['quest_index'] = $object->data['quest_index']; $quests_arr[$zone][$quest_name]['quest_level'] = $object->data['quest_level']; $quests_arr[$zone][$quest_name]['quest_tag'] = $object->data['quest_tag']; $quests_arr[$zone][$quest_name]['difficulty'] = $object->data['difficulty']; $description = str_replace('<class>', $this->data['class'], $object->data['description']); $description = str_replace('<name>', $this->data['name'], $description); $quests_arr[$zone][$quest_name]['description'] = nl2br($description); $objective = str_replace('<class>', $this->data['class'], $object->data['objective']); $objective = str_replace('<name>', $this->data['name'], $objective); $quests_arr[$zone][$quest_name]['objective'] = nl2br($objective); $quests_arr[$zone][$quest_name]['reward_money'] = $object->data['reward_money']; $quests_arr[$zone][$quest_name]['daily'] = $object->data['daily']; $quests_arr[$zone][$quest_name]['group'] = $object->data['group']; $quests_arr[$zone][$quest_name]['is_complete'] = $object->data['is_complete']; } foreach ($quests_arr as $zone => $quest) { $roster->tpl->assign_block_vars('zone', array('NAME' => $zone)); foreach ($quest as $quest_name => $data) { switch ($data['difficulty']) { case 4: $color = 'red'; break; case 3: $color = 'orange'; break; case 2: $color = 'yellow'; break; case 1: $color = 'green'; break; case 0: default: $color = 'grey'; break; } $reward_money_c = $reward_money_s = $reward_money_g = 0; if ($data['reward_money'] > 0) { $money = $data['reward_money']; $reward_money_c = $money % 100; $money = floor($money / 100); if (!empty($money)) { $reward_money_s = $money % 100; $money = floor($money / 100); } if (!empty($money)) { $reward_money_g = $money; } } $roster->tpl->assign_block_vars('zone.quest', array('ROW_CLASS' => $roster->switch_row_class(), 'NAME' => $quest_name, 'COLOR' => $color, 'ID' => $data['quest_id'], 'INDEX' => $data['quest_index'], 'LEVEL' => $data['quest_level'], 'DIFFICULTY' => $data['difficulty'], 'TAG' => $data['quest_tag'], 'COMPLETE' => $data['is_complete'], 'DESCRIPTION' => $data['description'], 'REWARD_MONEY_C' => $reward_money_c, 'REWARD_MONEY_S' => $reward_money_s, 'REWARD_MONEY_G' => $reward_money_g, 'OBJECTIVE' => $data['objective'], 'DAILY' => $data['daily'], 'GROUP' => $data['group'])); foreach ($roster->locale->act['questlinks'] as $link) { $roster->tpl->assign_block_vars('zone.quest.links', array('NAME' => $link['name'], 'LINK' => sprintf($link['url'], $data['quest_id']))); } } } } $roster->tpl->set_filenames(array('quests' => $addon['basename'] . '/quests.html')); return $roster->tpl->fetch('quests'); }
/** * Build quests * * @return string */ function show_quests() { global $roster, $addon; $quests = quest_get_many($this->data['member_id']); $roster->tpl->assign_vars(array('S_QUESTS' => count($quests), 'S_MAXQUESTS' => ROSTER_MAXQUESTS)); if (isset($quests[0])) { $quests_arr = array(); foreach ($quests as $object) { $zone = $object->data['zone']; $quest_name = $object->data['quest_name']; $quests_arr[$zone][$quest_name]['quest_index'] = $object->data['quest_index']; $quests_arr[$zone][$quest_name]['quest_level'] = $object->data['quest_level']; $quests_arr[$zone][$quest_name]['quest_tag'] = $object->data['quest_tag']; $quests_arr[$zone][$quest_name]['is_complete'] = $object->data['is_complete']; } foreach ($quests_arr as $zone => $quest) { $roster->tpl->assign_block_vars('zone', array('NAME' => $zone)); foreach ($quest as $quest_name => $data) { $quest_level = $data['quest_level']; $char_level = $this->data['level']; if ($quest_level + 9 < $char_level) { $color = 'grey'; } elseif ($quest_level + 2 < $char_level) { $color = 'green'; } elseif ($quest_level < $char_level + 3) { $color = 'yellow'; } else { $color = 'red'; } $roster->tpl->assign_block_vars('zone.quest', array('ROW_CLASS' => $roster->switch_row_class(), 'NAME' => $quest_name, 'LEVEL' => $quest_level, 'COLOR' => $color, 'TAG' => $data['quest_tag'], 'COMPLETE' => $data['is_complete'])); foreach ($roster->locale->act['questlinks'] as $link) { $roster->tpl->assign_block_vars('zone.quest.links', array('NAME' => $link['name'], 'LINK' => $link['url1'] . urlencode(utf8_decode($quest_name)) . (isset($link['url2']) ? $link['url2'] . $quest_level : '') . (isset($link['url3']) ? $link['url3'] . $quest_level : ''))); } } } } $roster->tpl->set_filenames(array('quests' => $addon['basename'] . '/quests.html')); return $roster->tpl->fetch('quests'); }