1 | <?php
|
---|
2 |
|
---|
3 | require_once('includes/allspells.php');
|
---|
4 |
|
---|
5 | $smarty->config_load($conf_file, 'spells');
|
---|
6 |
|
---|
7 | global $DB;
|
---|
8 | global $AoWoWconf;
|
---|
9 | global $spell_cols;
|
---|
10 |
|
---|
11 | @list($s1, $s2, $s3) = explode('.', $podrazdel);
|
---|
12 |
|
---|
13 | $cache_str = (empty($s1)?'x':intval($s1)).'_'.(empty($s2)?'x':intval($s2)).'_'.(empty($s3)?'x':intval($s3));
|
---|
14 |
|
---|
15 | if(!$spells = load_cache(15, $cache_str))
|
---|
16 | {
|
---|
17 | unset($spells);
|
---|
18 |
|
---|
19 | $spells = array();
|
---|
20 | if($s1 == 7)
|
---|
21 | {
|
---|
22 | $title = $smarty->get_config_vars('Class_spells');
|
---|
23 | // Классовые
|
---|
24 | $rows = $DB->select('
|
---|
25 | SELECT ?#, s.`spellID`, sk.skillID
|
---|
26 | FROM ?_spell s, ?_skill_line_ability sla, ?_spellicons i, ?_skill sk
|
---|
27 | WHERE
|
---|
28 | s.spellID = sla.spellID
|
---|
29 | AND s.levelspell >= 1
|
---|
30 | AND i.id=s.spellicon
|
---|
31 | {AND sla.classmask = ?d}
|
---|
32 | {AND sla.skillID=?d}
|
---|
33 | AND sla.skillID=sk.skillID
|
---|
34 | ORDER BY s.levelspell
|
---|
35 | {LIMIT ?d}
|
---|
36 | ',
|
---|
37 | $spell_cols[2],
|
---|
38 | (isset($s2))? pow(2, ($s2-1)): DBSIMPLE_SKIP,
|
---|
39 | (isset($s3))? $s3: DBSIMPLE_SKIP,
|
---|
40 | ($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
|
---|
41 | );
|
---|
42 | }
|
---|
43 | elseif($s1 > 0)
|
---|
44 | {
|
---|
45 | switch($s1)
|
---|
46 | {
|
---|
47 | case 6:
|
---|
48 | $title = $smarty->get_config_vars('Оружейные навыки');
|
---|
49 | break;
|
---|
50 | case 8:
|
---|
51 | $title = $smarty->get_config_vars('Специализации брони');
|
---|
52 | break;
|
---|
53 | case 10:
|
---|
54 | $title = $smarty->get_config_vars('Языки');
|
---|
55 | break;
|
---|
56 | case 9:
|
---|
57 | $title = $smarty->get_config_vars('Вспомогательные профессии');
|
---|
58 | break;
|
---|
59 | case 11:
|
---|
60 | $title = $smarty->get_config_vars('Профессии');
|
---|
61 | break;
|
---|
62 | default:
|
---|
63 | $title = '???';
|
---|
64 | break;
|
---|
65 | }
|
---|
66 | $spells['sort'] = "'skill', 'name'";
|
---|
67 | // Профессии & other
|
---|
68 | $rows = $DB->select('
|
---|
69 | SELECT
|
---|
70 | ?#, `s`.`spellID`,
|
---|
71 | sla.skillID, sla.min_value, sla.max_value
|
---|
72 | FROM ?_spell s, ?_skill_line_ability sla, ?_spellicons i, ?_skill sk
|
---|
73 | WHERE
|
---|
74 | s.spellID = sla.spellID
|
---|
75 | AND i.id=s.spellicon
|
---|
76 | {AND sk.categoryID=?d}
|
---|
77 | {AND sla.skillID=?d}
|
---|
78 | AND sla.skillID=sk.skillID
|
---|
79 | {LIMIT ?d}
|
---|
80 | ',
|
---|
81 | $spell_cols[2],
|
---|
82 | $s1,
|
---|
83 | (isset($s2))? $s2: DBSIMPLE_SKIP,
|
---|
84 | ($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
|
---|
85 | );
|
---|
86 | }
|
---|
87 | elseif($s1 == -3)
|
---|
88 | {
|
---|
89 | $title = $smarty->get_config_vars('Pet_spells');
|
---|
90 | // Петы
|
---|
91 | $spells['sort'] = "'name'";
|
---|
92 | if (!isset($s2))
|
---|
93 | $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);
|
---|
94 | $rows = $DB->select('
|
---|
95 | SELECT
|
---|
96 | ?#, `s`.`spellID`, sk.skillID
|
---|
97 | FROM ?_spell s, ?_skill_line_ability sla, ?_spellicons i, ?_skill sk
|
---|
98 | WHERE
|
---|
99 | s.spellID = sla.spellID
|
---|
100 | AND s.levelspell > 0
|
---|
101 | AND i.id=s.spellicon
|
---|
102 | {AND sla.skillID=?d}
|
---|
103 | {AND sla.skillID IN (?a)}
|
---|
104 | AND sla.skillID=sk.skillID
|
---|
105 | {LIMIT ?d}
|
---|
106 | ',
|
---|
107 | $spell_cols[2],
|
---|
108 | (isset($s2))? $s2: DBSIMPLE_SKIP,
|
---|
109 | (isset($pets))? $pets: DBSIMPLE_SKIP,
|
---|
110 | ($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
|
---|
111 | );
|
---|
112 | }
|
---|
113 | elseif($s1 == -4)
|
---|
114 | {
|
---|
115 | $title = $smarty->get_config_vars('Racial_spells');
|
---|
116 | $spells['sort'] = "'name'";
|
---|
117 | // Racial Traits
|
---|
118 | $rows = $DB->select('
|
---|
119 | SELECT
|
---|
120 | ?#, `s`.`spellID`
|
---|
121 | FROM ?_spell s, ?_spellicons i
|
---|
122 | WHERE
|
---|
123 | s.spellID IN (SELECT spellID FROM ?_skill_line_ability WHERE racemask>0)
|
---|
124 | AND i.id=s.spellicon
|
---|
125 | {LIMIT ?d}
|
---|
126 | ',
|
---|
127 | $spell_cols[2],
|
---|
128 | ($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
|
---|
129 | );
|
---|
130 | }
|
---|
131 | elseif ($s1==-2) {
|
---|
132 | // Talents
|
---|
133 | // todo
|
---|
134 | }
|
---|
135 | else
|
---|
136 | {
|
---|
137 | $spells['sort'] = "'name'";
|
---|
138 | // просто спеллы
|
---|
139 | $rows = $DB->select('
|
---|
140 | SELECT
|
---|
141 | ?#, `s`.`spellID`
|
---|
142 | FROM ?_spell s, ?_spellicons i
|
---|
143 | WHERE
|
---|
144 | i.id=s.spellicon
|
---|
145 | {LIMIT ?d}
|
---|
146 | ',
|
---|
147 | $spell_cols[2],
|
---|
148 | ($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
|
---|
149 | );
|
---|
150 | }
|
---|
151 |
|
---|
152 | foreach($rows as $i => $row)
|
---|
153 | $spells['data'][] = spellinfo2($row);
|
---|
154 |
|
---|
155 | save_cache(15, $cache_str, $spells);
|
---|
156 | }
|
---|
157 | global $page;
|
---|
158 | $page = array(
|
---|
159 | 'Mapper' => false,
|
---|
160 | 'Book' => false,
|
---|
161 | 'Title' => ($title?$title.' - ':'').$smarty->get_config_vars('Spells'),
|
---|
162 | 'tab' => 0,
|
---|
163 | 'type' => 6,
|
---|
164 | 'typeid' => 0,
|
---|
165 | 'path' => "[0, 1, ".intval($s1).", ".intval($s2).", ".intval($s3)."]",
|
---|
166 | 'sort' => isset($spells['sort'])?$spells['sort']:"'level','name'"
|
---|
167 | );
|
---|
168 | $smarty->assign('page', $page);
|
---|
169 |
|
---|
170 | // Статистика выполнения mysql запросов
|
---|
171 | $smarty->assign('mysql', $DB->getStatistics());
|
---|
172 | // Если хоть одна информация о вещи найдена - передаём массив с информацией о вещях шаблонизатору
|
---|
173 | if (isset($allitems))
|
---|
174 | $smarty->assign('allitems',$allitems);
|
---|
175 | if (count($allspells)>=0)
|
---|
176 | $smarty->assign('allspells',$allspells);
|
---|
177 | if (count($spells)>=0)
|
---|
178 | $smarty->assign('spells',$spells['data']);
|
---|
179 | // Загружаем страницу
|
---|
180 | $smarty->display('spells.tpl');
|
---|
181 |
|
---|
182 | ?>
|
---|