mirror of
https://github.com/brian8544/turtle-wow.git
synced 2024-12-27 18:04:35 +00:00
158 lines
5.5 KiB
PHP
158 lines
5.5 KiB
PHP
<?php
|
||
|
||
global $smarty;
|
||
global $conf_file;
|
||
global $podrazdel;
|
||
|
||
require_once('includes/allspells.php');
|
||
|
||
$smarty->config_load($conf_file, 'spells');
|
||
|
||
global $DB;
|
||
global $UDWBaseconf;
|
||
global $spell_cols;
|
||
|
||
@list($s1, $s2, $s3) = explode('.', $podrazdel);
|
||
|
||
$cache_str = (!isset($s1) ? 'x' : intval($s1)) . '_' . (!isset($s2) ? 'x' : intval($s2)) . '_' . (!isset($s3) ? 'x' : intval($s3));
|
||
|
||
if (!$spells = load_cache(15, $cache_str)) {
|
||
unset($spells);
|
||
|
||
$spells = array();
|
||
if ($s1 == 7) {
|
||
$title = $smarty->get_config_vars('Class_spells');
|
||
// Классовые
|
||
$rows = $DB->select('
|
||
SELECT ?#, s.`spellID`, sk.skillID
|
||
FROM ' . AOWOW . '.aowow_spell s, ' . AOWOW . '.aowow_skill_line_ability sla, ' . AOWOW . '.aowow_spellicons i, ' . AOWOW . '.aowow_skill sk
|
||
WHERE
|
||
s.spellID = sla.spellID
|
||
AND s.levelspell >= 1
|
||
AND i.id=s.spellicon
|
||
{AND sla.classmask = ?d}
|
||
{AND sla.skillID=?d}
|
||
AND sla.skillID=sk.skillID
|
||
ORDER BY s.levelspell
|
||
{LIMIT ?d}
|
||
', $spell_cols[2], (isset($s2)) ? pow(2, ($s2 - 1)) : DBSIMPLE_SKIP, (isset($s3)) ? $s3 : DBSIMPLE_SKIP, ($UDWBaseconf['limit'] != 0) ? $UDWBaseconf['limit'] : DBSIMPLE_SKIP
|
||
);
|
||
} elseif ($s1 > 0) {
|
||
switch ($s1) {
|
||
case 6:
|
||
$title = $smarty->get_config_vars('Оружейные навыки');
|
||
break;
|
||
case 8:
|
||
$title = $smarty->get_config_vars('Специализации брони');
|
||
break;
|
||
case 10:
|
||
$title = $smarty->get_config_vars('Языки');
|
||
break;
|
||
case 9:
|
||
$title = $smarty->get_config_vars('Вспомогательные профессии');
|
||
break;
|
||
case 11:
|
||
$title = $smarty->get_config_vars('Профессии');
|
||
break;
|
||
default:
|
||
$title = '???';
|
||
break;
|
||
}
|
||
$spells['sort'] = "'skill', 'name'";
|
||
// Профессии & other
|
||
$rows = $DB->select('
|
||
SELECT
|
||
?#, `s`.`spellID`,
|
||
sla.skillID, sla.min_value, sla.max_value
|
||
FROM ' . AOWOW . '.aowow_spell s, ' . AOWOW . '.aowow_skill_line_ability sla, ' . AOWOW . '.aowow_spellicons i, ' . AOWOW . '.aowow_skill sk
|
||
WHERE
|
||
s.spellID = sla.spellID
|
||
AND i.id=s.spellicon
|
||
{AND sk.categoryID=?d}
|
||
{AND sla.skillID=?d}
|
||
AND sla.skillID=sk.skillID
|
||
{LIMIT ?d}
|
||
', $spell_cols[2], $s1, (isset($s2)) ? $s2 : DBSIMPLE_SKIP, ($UDWBaseconf['limit'] != 0) ? $UDWBaseconf['limit'] : DBSIMPLE_SKIP
|
||
);
|
||
} elseif ($s1 == -3) {
|
||
$title = $smarty->get_config_vars('Pet_spells');
|
||
// Петы
|
||
$spells['sort'] = "'name'";
|
||
if (!isset($s2))
|
||
$pets = array(270, 653, 210, 211, 213, 209, 214, 212, 763, 215, 654, 764, 655, 217, 767, 236, 768, 203, 218, 251, 766, 656, 208, 761, 189, 188, 205, 204);
|
||
$rows = $DB->select('
|
||
SELECT
|
||
?#, `s`.`spellID`, sk.skillID
|
||
FROM ' . AOWOW . '.aowow_spell s, ' . AOWOW . '.aowow_skill_line_ability sla, ' . AOWOW . '.aowow_spellicons i, ' . AOWOW . '.aowow_skill sk
|
||
WHERE
|
||
s.spellID = sla.spellID
|
||
AND s.levelspell > 0
|
||
AND i.id=s.spellicon
|
||
{AND sla.skillID=?d}
|
||
{AND sla.skillID IN (?a)}
|
||
AND sla.skillID=sk.skillID
|
||
{LIMIT ?d}
|
||
', $spell_cols[2], (isset($s2)) ? $s2 : DBSIMPLE_SKIP, (isset($pets)) ? $pets : DBSIMPLE_SKIP, ($UDWBaseconf['limit'] != 0) ? $UDWBaseconf['limit'] : DBSIMPLE_SKIP
|
||
);
|
||
}
|
||
elseif ($s1 == -4) {
|
||
$title = $smarty->get_config_vars('Racial_spells');
|
||
$spells['sort'] = "'name'";
|
||
// Racial Traits
|
||
$rows = $DB->select('
|
||
SELECT
|
||
?#, `s`.`spellID`
|
||
FROM ' . AOWOW . '.aowow_spell s, ' . AOWOW . '.aowow_spellicons i
|
||
WHERE
|
||
s.spellID IN (SELECT spellID FROM ' . AOWOW . '.aowow_skill_line_ability WHERE racemask>0)
|
||
AND i.id=s.spellicon
|
||
{LIMIT ?d}
|
||
', $spell_cols[2], ($UDWBaseconf['limit'] != 0) ? $UDWBaseconf['limit'] : DBSIMPLE_SKIP
|
||
);
|
||
} elseif ($s1 == -2) {
|
||
// Talents
|
||
// todo
|
||
} else {
|
||
$spells['sort'] = "'name'";
|
||
// просто спеллы
|
||
$rows = $DB->select('
|
||
SELECT
|
||
?#, `s`.`spellID`
|
||
FROM ' . AOWOW . '.aowow_spell s, ' . AOWOW . '.aowow_spellicons i
|
||
WHERE
|
||
i.id=s.spellicon
|
||
{LIMIT ?d}
|
||
', $spell_cols[2], ($UDWBaseconf['limit'] != 0) ? $UDWBaseconf['limit'] : DBSIMPLE_SKIP
|
||
);
|
||
}
|
||
|
||
foreach ($rows as $i => $row)
|
||
$spells['data'][] = spellinfo2($row);
|
||
|
||
save_cache(15, $cache_str, $spells);
|
||
}
|
||
global $page;
|
||
$page = array(
|
||
'Mapper' => false,
|
||
'Book' => false,
|
||
'Title' => ($title ? $title . ' - ' : '') . $smarty->get_config_vars('Spells'),
|
||
'tab' => 0,
|
||
'type' => 6,
|
||
'typeid' => 0,
|
||
'path' => "[0, 1, " . intval($s1) . ", " . intval($s2) . ", " . intval($s3) . "]",
|
||
'sort' => isset($spells['sort']) ? $spells['sort'] : "'level','name'"
|
||
);
|
||
$smarty->assign('page', $page);
|
||
|
||
// Статистика выполнения mysql запросов
|
||
$smarty->assign('mysql', $DB->getStatistics());
|
||
// Если хоть одна информация о вещи найдена - передаём массив с информацией о вещях шаблонизатору
|
||
if (isset($allitems))
|
||
$smarty->assign('allitems', $allitems);
|
||
if (count($allspells) >= 0)
|
||
$smarty->assign('allspells', $allspells);
|
||
if (count($spells) >= 0)
|
||
$smarty->assign('spells', $spells['data']);
|
||
// Загружаем страницу
|
||
$smarty->display('spells.tpl');
|