1. Правка локализации.
[cswow.git] / module / show / show_spell.php
blob88d176248a620ae0c3abee54e72ae8f69bda056b
1 <?php
2 include_once("conf.php");
3 include_once("include/info_table_generator.php");
4 include_once("include/spell_data.php");
5 include_once("include/gameobject_table.php");
6 include_once("include/report_generator.php");
7 include_once("spell_details.php");
8 ##########
9 /*
10 Скрипт показывает спелл по entry
11 Показывает:
12 - Детальную информацию о спелле
13 - Кастуется рядом с обьектом
14 - Вывод реагентов спелла
15 - Вывод чем может быть улучшен
16 - Этому спеллу обучают свитки:
17 - Этому спеллу обучают за выполненный квест
18 - Обучает тренер
19 - Стартует с помощью другого спелла
20 - Вещи получаемые со спелла
21 - Вещи использующие этот спелл
22 - Энчанты использующие этот спелл
23 - В какой ветке талатнов этот спелл
24 - Глифы использующие этот спелл (wotlk)
25 - Наборы использующие этот спелл
26 - Мобы кастующие этот спелл
27 - Кастуют объекты
29 $entry = intval(@$_REQUEST['spell']);
30 $page = intval(@$_REQUEST['page']);
31 $mark = @$_REQUEST['mark'];
33 $spell = getSpell($entry);
35 if (!$spell)
37 RenderError($lang['spell_not_found']);
39 else
41 $baseLink = '?spell='.$entry;
42 if ($ajaxmode==0)
44 if ($lang['www_spell'])
45 echo "<a href=\"".sprintf($lang['www_spell'], $entry)."\" target=\"_blank\"\">".sprintf($lang['www_spell'], $entry)."</a><br>";
46 $icon = getSpellIcon($spell['SpellIconID']);
47 echo "<TABLE cellSpacing=0 cellPadding=0 width=500><TBODY>";
48 echo "<TR>";
49 echo "<TD vAlign=top align=right width=20%>";
50 echo "<br><a href=\"#\"><img border=0 src='$icon' width=64></a></td>";
51 echo "<TD>";generateSpellTable($spell);echo "</TD>";
52 echo "</TR>";
53 if ($spell['ToolTip'] && $spell['ToolTip']!=$spell['Description'])
55 echo "<tr>";
56 echo "<td vAlign=top align=right>";
57 if ($spell['activeIconID'] && $spell['SpellIconID']!=$spell['activeIconID'])
59 $buff_icon = getSpellIcon($spell['activeIconID']);
60 echo "<br><a href=\"#\"><img border=0 src='$buff_icon' width=64></a>";
62 echo "</td>";
63 echo "<td>";generateSpellBuffTable($spell);echo "</td>";
64 echo "</tr>";
66 echo "</TBODY></TABLE>";
67 echo "<br>";
68 //********************************************************************************
69 // Вывод данных по спеллу
70 //********************************************************************************
71 createSpellDetails($spell);
74 createReportTab();
75 //********************************************************************************
76 // Кастуется рядом с обьектом
77 //********************************************************************************
78 if ($spell['RequiresSpellFocus'])
80 $focus =& new GameobjectReportGenerator();
81 $fields = array('GO_REPORT_NAME', 'GO_REPORT_MAP');
82 if ($focus->Init($fields, $baseLink, 'focusLIST', $config['fade_limit'], 'name'))
84 $focus->spellFocus($spell['RequiresSpellFocus']);
85 $focus->createReport(sprintf($lang['spell_req_focus'], getSpellFocusName($spell['RequiresSpellFocus'])));
89 //********************************************************************************
90 // Скорее всего спелл может быть улучшен - ищем чем..
91 //********************************************************************************
92 if ($spell['SpellFamilyFlags_1'] || $spell['SpellFamilyFlags_2'] || $spell['SpellFamilyFlags_3'])
94 $affected =& new SpellReportGenerator;
95 $fields = array('SPELL_REPORT_ICON','SPELL_REPORT_NAME');
96 if ($affected->Init($fields, $baseLink, 'affectLIST', $config['fade_limit'], 'name'))
98 $affected->affectedBySpells($spell['SpellFamilyName'], $spell['SpellFamilyFlags_1'], $spell['SpellFamilyFlags_2'], $spell['SpellFamilyFlags_3']);
99 $affected->createReport($lang['spell_affected_by']);
102 //******************* Ищем кто или что обучает этому спеллу *********************************
103 // Этому спеллу обучают свитки:
104 //********************************************************************************
105 $item_cast =& new ItemReportGenerator();
106 $fields = array('ITEM_REPORT_LEVEL','ITEM_REPORT_ICON','ITEM_REPORT_NAME');
107 if ($item_cast->Init($fields, $baseLink, 'itemLIST', $config['fade_limit'], 'name'))
109 $item_cast->recipeSpell($entry);
110 $item_cast->createReport($lang['spell_learned_by_recipe']);
112 //********************************************************************************
113 // Этому спеллу обучают за выполненный квест
114 //********************************************************************************
115 $quest_list =& new QuestReportGenerator();
116 $fields = array('QUEST_REPORT_LEVEL', 'QUEST_REPORT_NAME', 'QUEST_REPORT_GIVER', 'QUEST_REPORT_REWARD');
117 if ($quest_list->Init($fields, $baseLink, 'questLIST', $config['fade_limit'], 'name'))
119 $quest_list->rewardSpell($entry);
120 $quest_list->createReport($lang['quest_spell_train']);
122 //********************************************************************************
123 // Обучает тренер
124 //********************************************************************************
125 $trainer =& new CreatureReportGenerator('trainer');
126 $fields = array('NPC_REPORT_RNAME', 'TRAINER_REPORT_COST', 'TRAINER_REPORT_SKILL', 'NPC_REPORT_MAP');
127 if ($trainer->Init($fields, $baseLink, 'trainerLIST', $config['fade_limit'], 'scost'))
129 $trainer->trainSpell($entry);
130 $trainer->createReport($lang['npc_spell_train']);
133 //********************************************************************************
134 // Стартует с помощью другого спелла
135 //********************************************************************************
136 $triggers =& new SpellReportGenerator;
137 $fields = array('SPELL_REPORT_ICON','SPELL_REPORT_NAME');
138 if ($triggers->Init($fields, $baseLink, 'triggersLIST', $config['fade_limit'], 'name'))
140 $triggers->triggerFromSpells($entry);
141 $triggers->createReport($lang['spell_trigger']);
143 //********************************************************************************
144 // Вещи получаемые со спелла
145 //********************************************************************************
147 $page_seek = init_pagePerMark($mark, "spell_lootLIST", $page);
148 $rows = getLootList($entry, "spell_loot_template", $totalRecords, $page_seek, $config['fade_limit']);
149 renderLootTableList($rows, $lang['spell_contain_loot'], $page_seek, $totalRecords, $baseLink, "spell_lootLIST");
151 //********************************************************************************
152 // Вещи использующие этот спелл
153 //********************************************************************************
154 $item_cast =& new ItemReportGenerator();
155 $fields = array('ITEM_REPORT_LEVEL','ITEM_REPORT_ICON','ITEM_REPORT_NAME');
156 if ($item_cast->Init($fields, $baseLink, 'itemLIST', $config['fade_limit'], 'name'))
158 $item_cast->useSpell($entry);
159 $item_cast->createReport($lang['item_uses_spell']);
161 //********************************************************************************
162 // Энчанты использующие этот спелл
163 //********************************************************************************
164 $enchant =& new EnchantReportGenerator();
165 $fields = array('ENCH_REPORT_ID','ENCH_REPORT_NAME', 'ENCH_REPORT_GEM');
166 if ($enchant->Init($fields, $baseLink, 'enchantLIST', $config['fade_limit'], 'name'))
168 $enchant->useSpell($entry);
169 $enchant->createReport($lang['spell_added_by_enchant']);
171 //********************************************************************************
172 // Ветка Талантов использующие этот спелл
173 //********************************************************************************
174 $talent =& new TalentReportGenerator();
175 $fields = array('TALENT_REPORT_ID','TALENT_REPORT_NAME');
176 if ($talent->Init($fields, $baseLink, 'talentLIST', $config['fade_limit'], ''))
178 $talent->useSpell($entry);
179 $talent->createReport($lang['spell_talent']);
181 //********************************************************************************
182 // Символы использующие этот спелл
183 //********************************************************************************
184 $glyph =& new GlyphReportGenerator();
185 $fields = array('GLYPH_REPORT_ID', 'GLYPH_REPORT_ICON', 'GLYPH_REPORT_NAME');
186 if ($glyph->Init($fields, $baseLink, 'glyphLIST', $config['fade_limit'], ''))
188 $glyph->useSpell($entry);
189 $glyph->createReport($lang['spell_used_by_glyph']);
191 //********************************************************************************
192 // Наборы использующие этот спелл
193 //********************************************************************************
194 $sets =& new ItemSetReportGenerator();
195 $fields = array('SET_REPORT_ID', 'SET_REPORT_NAME', 'SET_REPORT_ITEM');
196 if ($sets->Init($fields, $baseLink, 'setLIST', $config['fade_limit'], 'name'))
198 $sets->useSpell($entry);
199 $sets->createReport($lang['spell_added_by_set']);
201 //********************************************************************************
202 // Мобы кастующие этот спелл
203 //********************************************************************************
204 $npc =& new CreatureReportGenerator();
205 $fields = array('NPC_REPORT_LEVEL', 'NPC_REPORT_NAME', 'NPC_REPORT_REACTION', 'NPC_REPORT_MAP');
206 if ($npc->Init($fields, $baseLink, 'creatureLIST', $config['fade_limit'], 'level'))
208 $npc->castSpell($entry);
209 $npc->createReport($lang['spell_casted_by']);
211 //********************************************************************************
212 // Кастуют объекты
213 //********************************************************************************
214 $go =& new GameobjectReportGenerator();
215 $fields = array('GO_REPORT_NAME','GO_REPORT_TYPE','GO_REPORT_MAP');
216 if ($go->Init($fields, $baseLink, 'gameobjectLIST', $config['fade_limit'], 'name'))
218 $go->castSpell($entry);
219 $go->createReport($lang['spell_go_cast']);