AND factiontemplateID=c.faction_A ', $_SESSION['locale'] > 0 ? $_SESSION['locale'] : DBSIMPLE_SKIP, $_SESSION['locale'] > 0 ? 1 : DBSIMPLE_SKIP, $quest['entry']); if ($rows) { foreach ($rows as $tmp) { $tmp['name'] = localizedName($tmp); if ($tmp['A'] == -1 && $tmp['H'] == 1) { $tmp['side'] = 'horde'; } elseif ($tmp['A'] == 1 && $tmp['H'] == -1) { $tmp['side'] = 'alliance'; } $quest['start'][] = array_merge($tmp, array('type' => 'npc')); } } unset($rows); // НПС-ивентовые $rows = event_find(array('quest_id' => $quest['entry'])); if ($rows) { foreach ($rows as $event) { foreach ($event['creatures_quests_id'] as $ids) { if ($ids['quest'] == $quest['entry']) { $tmp = creatureinfo($ids['creature']); if ($tmp['react'] == '-1,1') { $tmp['side'] = 'horde'; } elseif ($tmp['react'] == '1,-1') { $tmp['side'] = 'alliance'; } $tmp['type'] = 'npc'; $tmp['event'] = $event['entry']; $quest['start'][] = $tmp; } }
ORDER BY a.name_loc?d ', $_SESSION['locale'], $_SESSION['locale'], array(ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT), $object['entry'], $_SESSION['locale']); if ($rows) { $object['criteria_of'] = array(); foreach ($rows as $row) { allachievementsinfo2($row['id']); $object['criteria_of'][] = achievementinfo2($row); } } // Положения объектофф: $object['position'] = position($object['entry'], 'gameobject'); // Исправить type, чтобы подсвечивались event-овые объекты if ($object['position']) { foreach ($object['position'] as $z => $zone) { foreach ($zone['points'] as $p => $pos) { if ($pos['type'] == 0 && ($events = event_find(array('object_guid' => $pos['guid'])))) { $names = array_select_key(event_name($events), 'name'); $object['position'][$z]['points'][$p]['type'] = 4; $object['position'][$z]['points'][$p]['events'] = implode(", ", $names); } } } } save_cache(OBJECT_PAGE, $cache_key, $object); } global $page; $page = array('Mapper' => true, 'Book' => $object['pagetext'] ? true : false, 'Title' => $object['name'] . ' - ' . $smarty->get_config_vars('Objects'), 'tab' => 0, 'type' => 2, 'typeid' => $object['entry'], 'username' => $_SESSION['username'], 'path' => path(0, 5, $object['type'])); $smarty->assign('page', $page); // Комментарии $smarty->assign('comments', getcomments($page['type'], $page['typeid'])); $smarty->assign('screenshots', getscreenshots($page['type'], $page['typeid']));
$npc['criteria_of'][] = achievementinfo2($row); } } // Положени� �озданий божих (дл� героик �ПС не задана карта, юзаем из нормала): if ($normal_entry) { // мы - героик �ПС, определ�ем позицию по нормалу $npc['position'] = position($normal_entry, 'creature', 2); } else { // мы - нормал �ПС или �ПС без �ложно�ти $npc['position'] = position($npc['entry'], 'creature', 1); } // И�править type, чтобы под�вечивали�ь event-овые NPC if ($npc['position']) { foreach ($npc['position'] as $z => $zone) { foreach ($zone['points'] as $p => $pos) { if ($pos['type'] == 0 && ($events = event_find(array('creature_guid' => $pos['guid'])))) { $names = array_select_key(event_name($events), 'name'); $npc['position'][$z]['points'][$p]['type'] = 4; $npc['position'][$z]['points'][$p]['events'] = implode(", ", $names); } } } } save_cache(NPC_PAGE, $cache_key, $npc); } } global $page; $page = array('Mapper' => true, 'Book' => false, 'Title' => $npc['name'] . ' - ' . $smarty->get_config_vars('NPCs'), 'tab' => 0, 'type' => 1, 'typeid' => $npc['entry'], 'path' => path(0, 4, $npc['type'])); $smarty->assign('page', $page); // Комментарии $smarty->assign('comments', getcomments($page['type'], $page['typeid']));
AND factiontemplateID=c.faction_A ', $_SESSION['locale'] > 0 ? $_SESSION['locale'] : DBSIMPLE_SKIP, $_SESSION['locale'] > 0 ? 1 : DBSIMPLE_SKIP, $quest['entry']); if ($rows) { foreach ($rows as $tmp) { $tmp['name'] = localizedName($tmp); if ($tmp['A'] == -1 && $tmp['H'] == 1) { $tmp['side'] = 'horde'; } elseif ($tmp['A'] == 1 && $tmp['H'] == -1) { $tmp['side'] = 'alliance'; } $quest['start'][] = array_merge($tmp, array('type' => 'npc')); } } unset($rows); // НПС-ивентовые $rows = event_find(array('quest_id' => $id)); if ($rows) { foreach ($rows as $event) { foreach ($event['creatures_quests_id'] as $ids) { if ($ids['quest'] == $quest['entry']) { $tmp = creatureinfo($ids['creature']); if ($tmp['react'] == '-1,1') { $tmp['side'] = 'horde'; } elseif ($tmp['react'] == '1,-1') { $tmp['side'] = 'alliance'; } $tmp['type'] = 'npc'; $tmp['event'] = $event['entry']; $quest['start'][] = $tmp; } }
<?php require_once 'includes/allevents.php'; require_once 'includes/allreputation.php'; $smarty->config_load($conf_file, 'event'); @(list($category) = extract_values($podrazdel)); $events = array(); $events['data'] = event_infoline(event_find()); //save_cache(EVENTS_LISTING, $cache_key, $events); global $page; $page = array('Mapper' => false, 'Book' => false, 'Title' => ($events['category'] ? $events['category'] . ' - ' : '') . $smarty->get_config_vars('Events'), 'tab' => 0, 'type' => 11, 'typeid' => 0, 'username' => $_SESSION['username'], 'path' => path(0, 11)); $smarty->assign('page', $page); // Статистика выполнения mysql запросов $smarty->assign('mysql', $DB->getStatistics()); $smarty->assign('reputation', getreputation($page['username'])); $smarty->assign('events', $events); // Загружаем страницу $smarty->display('events.tpl');
function extract_extra_bets(&$tournir_node, $html, $sport_sign, $tournir_id) { $filename_headers = "phrases/olymp/{$sport_sign}.headers.txt"; $filename_labels = "phrases/olymp/{$sport_sign}.labels.txt"; $phrases_headers = file_get_hash($filename_headers); $phrases_labels = file_get_hash($filename_labels); $html = str_ireplace('<li><h2>', '<li class="extra"><h2>', $html); $html = numbering_tag($html, 'li'); $table_rows = extract_all_numbered_tags($html, 'li', 'extra'); foreach ($table_rows as $row) { $row = kill_property($row, 'TagNo'); $event_id = extract_property_values(copy_be($html, '<ul', '>', 'rel'), 'rel', ''); $event_node = event_find($tournir_node, $event_id); $phrase = copy_be($row, '<h2', '</h2>'); $phrase = copy_between($phrase, '>', '<'); unset($bettype); $bettype_str = $phrases_headers[$phrase]; if ($bettype_str) { foreach (explode(';', $bettype_str) as $bet_pair) { list($key, $value) = explode('=', $bet_pair); $bettype[$key] = $value; } } else { $bettype['Modifier'] = 'Unknown'; $phrases_headers[$phrase] = 'Modifier=Unknown'; $phrases_headers_modified = true; } if (!in_array($bettype['Modifier'], array('Ignore', 'Unknown'))) { $bets = extract_all_tags($row, '<li', '</li>', 'rel'); foreach ($bets as $bet) { list($label, $koef) = extract_label_koef($bet); $label = str_ireplace((string) $event_node['Gamer1_Name'], 'Gamer1', $label); $label = str_ireplace((string) $event_node['Gamer2_Name'], 'Gamer2', $label); $modifier = $phrases_labels[$label]; if ($modifier) { foreach (explode(';', $modifier) as $bet_pair) { list($key, $value) = explode('=', $bet_pair); $bettype[$key] = $value; } } else { $bettype['Modifier'] = 'Unknown'; $phrases_labels[$label] = 'Modifier=Unknown'; $phrases_labels_modified = true; } if (!in_array($bettype['Modifier'], array('Ignore', 'Unknown'))) { $bet_node = $event_node->addChild('Bet'); foreach ($bettype as $key => $value) { $bet_node->addAttribute($key, $value); } $bet_node->addAttribute('Koef', $koef); } unset($bettype['Modifier']); } } $i++; } // отбираем новые и складываем их в новый файл if ($phrases_headers_modified) { $file_hash = file_get_hash($filename_headers); foreach ($file_hash as $key => $value) { unset($phrases_headers[$key]); } file_put_hash($filename_headers . '.new', $phrases_headers + file_get_hash($filename_headers . '.new')); } if ($phrases_labels_modified) { $file_hash = file_get_hash($filename_labels); foreach ($file_hash as $key => $value) { unset($phrases_labels[$key]); } file_put_hash($filename_labels . '.new', $phrases_labels + file_get_hash($filename_labels . '.new')); } }