· 8 years ago · Nov 27, 2017, 04:28 AM
1-- == ================= ==
2-- == DROP LIST 01 ==
3-- == ================= ==
4
5-- Prevent query execution stop on '' statement
6-- SET max_error_count=0;
7
8-- Procedures
9DROP PROCEDURE IF EXISTS `sp_CheckNPCOrGO`;
10DROP PROCEDURE IF EXISTS `sp_CheckGobjEntry`;
11DROP PROCEDURE IF EXISTS `sp_CheckNpcEntry`;
12DROP PROCEDURE IF EXISTS `sp_CheckQuestEntry`;
13DROP PROCEDURE IF EXISTS `sp_CheckTriggerId`;
14DROP PROCEDURE IF EXISTS `sp_eai_CastSpellOnSpawn`;
15DROP PROCEDURE IF EXISTS `sp_eai_KillCreditOnDeath`;
16DROP PROCEDURE IF EXISTS `sp_eai_KillCreditOnSpellhit`;
17DROP PROCEDURE IF EXISTS `sp_eai_selectID`;
18DROP PROCEDURE IF EXISTS `sp_GetDifficultyEntry`;
19DROP PROCEDURE IF EXISTS `sp_GetLootIdForChest`;
20DROP PROCEDURE IF EXISTS `sp_GetReferenceId`;
21DROP PROCEDURE IF EXISTS `sp_IgnoreAggro`;
22DROP PROCEDURE IF EXISTS `sp_KillQuestgiver`;
23DROP PROCEDURE IF EXISTS `sp_MakeAttackable`;
24DROP PROCEDURE IF EXISTS `sp_MakeLootable`;
25DROP PROCEDURE IF EXISTS `sp_MakeNotAttackable`;
26DROP PROCEDURE IF EXISTS `sp_MakeNotLootable`;
27DROP PROCEDURE IF EXISTS `sp_NotIgnoreAggro`;
28DROP PROCEDURE IF EXISTS `sp_QuestRelations`;
29DROP PROCEDURE IF EXISTS `sp_SetFaction`;
30DROP PROCEDURE IF EXISTS `sp_SetLootId`;
31DROP PROCEDURE IF EXISTS `sp_SetLootIdByList`;
32DROP PROCEDURE IF EXISTS `sp_SetNotSelectable`;
33DROP PROCEDURE IF EXISTS `sp_SetQuestlevel`;
34DROP PROCEDURE IF EXISTS `sp_SetSelectable`;
35DROP PROCEDURE IF EXISTS `sp_SpellScriptTarget`;
36DROP PROCEDURE IF EXISTS `sp_TriggerSettings`;
37DROP PROCEDURE IF EXISTS `sp_ReGuidAlterTables`;
38DROP PROCEDURE IF EXISTS `sp_ReGuid`;
39DROP PROCEDURE IF EXISTS `sp_eAI_SpawnOnSpellhit`;
40DROP PROCEDURE IF EXISTS `sp_GetEntryList`;
41DROP PROCEDURE IF EXISTS `sp_eAI_TablePhaseMask`;
42DROP PROCEDURE IF EXISTS `sp_eAI_InversePhaseMask`;
43DROP PROCEDURE IF EXISTS `sp_UpdateByList`;
44DROP PROCEDURE IF EXISTS `sp_UpdateDifficultyEntries`;
45DROP PROCEDURE IF EXISTS `sp_UpdateByMap`;
46
47-- == =================== ==
48-- == DROP LIST 29 ==
49-- == =================== ==
50
51DROP PROCEDURE IF EXISTS `sp_error_trigger`;
52DROP PROCEDURE IF EXISTS `sp_error_entry`;
53DROP PROCEDURE IF EXISTS `sp_error_guid`;
54DROP PROCEDURE IF EXISTS `sp_set_npc_lootable_bylist`;
55DROP PROCEDURE IF EXISTS `sp_set_npc_lootable`;
56DROP PROCEDURE IF EXISTS `sp_set_npc_civilian_bylist`;
57DROP PROCEDURE IF EXISTS `sp_set_npc_civilian`;
58DROP PROCEDURE IF EXISTS `sp_set_npc_attackable`;
59DROP PROCEDURE IF EXISTS `sp_set_npc_attackable_bylist`;
60DROP PROCEDURE IF EXISTS `sp_set_npc_targetable`;
61DROP PROCEDURE IF EXISTS `sp_set_npc_targetable_bylist`;
62DROP PROCEDURE IF EXISTS `sp_set_npc_aggro`;
63DROP PROCEDURE IF EXISTS `sp_set_npc_aggro_bylist`;
64DROP PROCEDURE IF EXISTS `sp_set_npc_faction`;
65DROP PROCEDURE IF EXISTS `sp_set_npc_faction_bylist`;
66DROP PROCEDURE IF EXISTS `sp_set_npc_selectable`;
67DROP PROCEDURE IF EXISTS `sp_set_npc_selectable_bylist`;
68DROP PROCEDURE IF EXISTS `sp_set_npc_deadquest`;
69DROP PROCEDURE IF EXISTS `sp_set_spell_target`;
70DROP PROCEDURE IF EXISTS `sp_set_npc_trigger`;
71DROP PROCEDURE IF EXISTS `sp_set_npc_trigger_bylist`;
72DROP PROCEDURE IF EXISTS `sp_set_npc_lootid`;
73DROP PROCEDURE IF EXISTS `sp_set_npc_lootid_bylist`;
74DROP PROCEDURE IF EXISTS `sp_set_npc_lootid_bytable`;
75DROP PROCEDURE IF EXISTS `sp_set_npc_path`;
76DROP PROCEDURE IF EXISTS `sp_set_item_money`;
77DROP PROCEDURE IF EXISTS `sp_set_item_money_bylist`;
78DROP PROCEDURE IF EXISTS `sp_set_entry_list`;
79DROP PROCEDURE IF EXISTS `sp_set_quest_previous`;
80DROP PROCEDURE IF EXISTS `sp_set_quest_next`;
81DROP PROCEDURE IF EXISTS `sp_set_quest_level`;
82DROP PROCEDURE IF EXISTS `sp_get_ref_id`;
83DROP PROCEDURE IF EXISTS `sp_get_npc_diffentry`;
84DROP PROCEDURE IF EXISTS `sp_get_go_lootid`;
85DROP PROCEDURE IF EXISTS `sp_eai_inverse_phase_mask`;
86DROP PROCEDURE IF EXISTS `sp_eai_table_phase_mask`;
87DROP PROCEDURE IF EXISTS `sp_eai_select_id`;
88DROP PROCEDURE IF EXISTS `sp_eai_quest_credit_on_spellhit`;
89DROP PROCEDURE IF EXISTS `sp_eai_spawn_spellhit`;
90DROP PROCEDURE IF EXISTS `sp_eai_cast_onspawn`;
91DROP PROCEDURE IF EXISTS `sp_eai_kill_ondeath`;
92DROP PROCEDURE IF EXISTS `sp_dev_re_guid`;
93DROP PROCEDURE IF EXISTS `sp_dev_reguid_alter_tables`;
94DROP PROCEDURE IF EXISTS `sp_dev_cleanup_world`;
95DROP PROCEDURE IF EXISTS `sp_dev_cleanup_loot`;
96DROP PROCEDURE IF EXISTS `sp_dev_cleanup_reference_loot`;
97DROP PROCEDURE IF EXISTS `sp_delete_spell_area`;
98DROP PROCEDURE IF EXISTS `sp_delete_spell_position`;
99DROP PROCEDURE IF EXISTS `sp_delete_spell_position_bylist`;
100DROP PROCEDURE IF EXISTS `sp_delete_spell_target`;
101DROP PROCEDURE IF EXISTS `sp_delete_questgiver`;
102DROP PROCEDURE IF EXISTS `sp_delete_questtaker`;
103DROP PROCEDURE IF EXISTS `sp_delete_spawn`;
104DROP PROCEDURE IF EXISTS `sp_delete_script`;
105DROP PROCEDURE IF EXISTS `sp_delete_script_bylist`;
106DROP PROCEDURE IF EXISTS `sp_delete_npc_trainer`;
107DROP PROCEDURE IF EXISTS `sp_delete_npc_vendor`;
108DROP PROCEDURE IF EXISTS `sp_delete_loot`;
109
110/* Procedure structure for procedure `sp_CharExtraLevelHPMP` */
111
112DELIMITER $$
113
114/*!50003 CREATE DEFINER=`mrhooha`@`%` PROCEDURE `sp_CharExtraLevelHPMP`()
115BEGIN
116
117 DECLARE intMaxHP INT DEFAULT 65535000;
118 DECLARE intMaxMana INT DEFAULT 65535000;
119 DECLARE sngHPInc FLOAT DEFAULT 0.001;
120 DECLARE sngManaInc FLOAT DEFAULT 0.001;
121 DECLARE intStartLvl INT DEFAULT 80;
122 DECLARE intFinishLvl INT DEFAULT 85;
123
124 DECLARE intRecordDone INT DEFAULT 0;
125 DECLARE intClass INT DEFAULT 0;
126 DECLARE intLevel INT DEFAULT 0;
127 DECLARE intCurrHP INT DEFAULT 0;
128 DECLARE intCurrMana INT DEFAULT 0;
129
130 DECLARE curPlayerStat CURSOR FOR SELECT `class`, `level`, `basehp`, `basemana` FROM player_classlevelstats;
131 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET intRecordDone = 1;
132
133 OPEN curPlayerStat;
134
135 REPEAT
136
137 FETCH curPlayerStat INTO intClass, intLevel, intCurrHP, intCurrMana;
138
139 IF intLevel = intStartLvl THEN
140 REPEAT
141
142 SET intLevel = intLevel + 1;
143
144 DELETE FROM player_classlevelstats WHERE `class` = intClass AND `level` = intLevel;
145
146 IF (ROUND(intCurrHP * (1 + sngHPInc) + 200)) <= intMaxHP THEN
147 SET intCurrHP = ROUND(intCurrHP * (1 + sngHPInc) + 200);
148 ELSE
149 SET intCurrHP = intMaxHP;
150 END IF;
151
152 IF (ROUND(intCurrMana * (1 + sngManaInc) + 200)) <= intMaxMana THEN
153 SET intCurrMana = ROUND(intCurrMana * (1 + sngManaInc) + 200);
154 ELSE
155 SET intCurrMana = intMaxMana;
156 END IF;
157
158 INSERT INTO player_classlevelstats
159 (`class`, `level`, `basehp`, `basemana`)
160 VALUES
161 (intClass, intLevel, intCurrHP, intCurrMana);
162 UNTIL intLevel = intFinishLvl END REPEAT;
163 END IF;
164 UNTIL intRecordDone END REPEAT;
165
166 CLOSE curPlayerStat;
167END */$$
168DELIMITER ;
169
170/* Procedure structure for procedure `sp_CharExtraLevelStats` */
171
172DELIMITER $$
173
174/*!50003 CREATE DEFINER=`mrhooha`@`%` PROCEDURE `sp_CharExtraLevelStats`()
175BEGIN
176
177 DECLARE intMaxStats INT DEFAULT 2556541;
178 DECLARE sngStatsInc FLOAT DEFAULT 0.00000000001;
179 DECLARE intStartLvl INT DEFAULT 80;
180 DECLARE intFinishLvl INT DEFAULT 85;
181
182 DECLARE intRecordDone INT DEFAULT 0;
183 DECLARE intRace INT DEFAULT 0;
184 DECLARE intClass INT DEFAULT 0;
185 DECLARE intLevel INT DEFAULT 0;
186 DECLARE intCurrSTR INT DEFAULT 0;
187 DECLARE intCurrAGI INT DEFAULT 0;
188 DECLARE intCurrSTA INT DEFAULT 0;
189 DECLARE intCurrINT INT DEFAULT 0;
190 DECLARE intCurrSPI INT DEFAULT 0;
191
192 DECLARE curPlayerStat CURSOR FOR SELECT `race`, `class`, `level`, `str`, `agi`, `sta`, `inte`, `spi` FROM player_levelstats;
193 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET intRecordDone = 1;
194
195 OPEN curPlayerStat;
196
197 REPEAT
198
199 FETCH curPlayerStat INTO intRace, intClass, intLevel, intCurrSTR, intCurrAGI, intCurrSTA, intCurrINT, intCurrSPI;
200
201 IF intLevel = intStartLvl THEN
202 REPEAT
203
204 SET intLevel = intLevel + 1;
205
206 DELETE FROM player_levelstats WHERE `race` = intRace AND `class` = intClass AND `level` = intLevel;
207
208 IF (ROUND(intCurrSTR * (1 + sngStatsInc) + 10)) <= intMaxStats THEN
209 SET intCurrSTR = ROUND(intCurrSTR * (1 + sngStatsInc) + 10);
210 ELSE
211 SET intCurrSTR = intMaxStats;
212 END IF;
213
214 IF (ROUND(intCurrAGI * (1 + sngStatsInc) + 10)) <= intMaxStats THEN
215 SET intCurrAGI = ROUND(intCurrAGI * (1 + sngStatsInc) + 10);
216 ELSE
217 SET intCurrAGI = intMaxStats;
218 END IF;
219
220 IF (ROUND(intCurrSTA * (1 + sngStatsInc) + 10)) <= intMaxStats THEN
221 SET intCurrSTA = ROUND(intCurrSTA * (1 + sngStatsInc) + 10);
222 ELSE
223 SET intCurrSTA = intMaxStats;
224 END IF;
225
226 IF (ROUND(intCurrINT * (1 + sngStatsInc) + 10)) <= intMaxStats THEN
227 SET intCurrINT = ROUND(intCurrINT * (1 + sngStatsInc) + 10);
228 ELSE
229 SET intCurrINT = intMaxStats;
230 END IF;
231
232 IF (ROUND(intCurrSPI * (1 + sngStatsInc) + 10)) <= intMaxStats THEN
233 SET intCurrSPI = ROUND(intCurrSPI * (1 + sngStatsInc) + 10);
234 ELSE
235 SET intCurrSPI = intMaxStats;
236 END IF;
237
238 INSERT INTO player_levelstats
239 (`race`, `class`, `level`, `str`, `agi`, `sta`, `inte`, `spi`)
240 VALUES
241 (intRace, intClass, intLevel, intCurrSTR, intCurrAGI, intCurrSTA, intCurrINT, intCurrSPI);
242 UNTIL intLevel = intFinishLvl END REPEAT;
243 END IF;
244 UNTIL intRecordDone END REPEAT;
245
246 CLOSE curPlayerStat;
247END */$$
248DELIMITER ;
249
250/* Procedure structure for procedure `sp_delete_loot` */
251
252DELIMITER $$
253
254/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_loot`(IN loot_type VARCHAR(10),IN loot_entry INT(10),IN item_entry INT(10))
255BEGIN
256 IF loot_entry IS NOT NULL OR item_entry IS NOT NULL THEN
257 CASE UCASE(loot_type)
258 WHEN 'FISH' THEN BEGIN
259 DELETE FROM `fishing_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
260 END;
261 WHEN 'NPC' THEN BEGIN
262 DELETE FROM `creature_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
263 END;
264 WHEN 'GO' THEN BEGIN
265 DELETE FROM `gameobject_loot_template` WHERE `entry`=IFNUofcLL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
266 END;
267 WHEN 'ITEM' THEN BEGIN
268 DELETE FROM `item_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
269 END;
270 WHEN 'DISENCH' THEN BEGIN
271 DELETE FROM `disenchant_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
272 END;
273 WHEN 'PROSPECT' THEN BEGIN
274 DELETE FROM `propspecting_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
275 END;
276 WHEN 'MILL' THEN BEGIN
277 DELETE FROM `millling_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
278 END;
279 WHEN 'PICKPOCKET' THEN BEGIN
280 DELETE FROM `pickpocketing_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
281 END;
282 WHEN 'SKIN' THEN BEGIN
283 DELETE FROM `skinning_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
284 END;
285 WHEN 'QUEST' THEN BEGIN
286 DELETE FROM `quest_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
287 END;
288 WHEN 'REF' THEN BEGIN
289 IF loot_entry IS NOT NULL THEN
290 DELETE FROM `creature_loot_template` WHERE `mincountOrRef`=-loot_entry;
291 DELETE FROM `disenchant_loot_template` WHERE `mincountOrRef`=-loot_entry;
292 DELETE FROM `fishing_loot_template` WHERE `mincountOrRef`=-loot_entry;
293 DELETE FROM `gameobject_loot_template` WHERE `mincountOrRef`=-loot_entry;
294 DELETE FROM `item_loot_template` WHERE `mincountOrRef`=-loot_entry;
295 DELETE FROM `mail_loot_template` WHERE `mincountOrRef`=-loot_entry;
296 DELETE FROM `milling_loot_template` WHERE `mincountOrRef`=-loot_entry;
297 DELETE FROM `pickpocketing_loot_template` WHERE `mincountOrRef`=-loot_entry;
298 DELETE FROM `prospecting_loot_template` WHERE `mincountOrRef`=-loot_entry;
299 DELETE FROM `skinning_loot_template` WHERE `mincountOrRef`=-loot_entry;
300 DELETE FROM `spell_loot_template` WHERE `mincountOrRef`=-loot_entry;
301 END IF;
302
303 DELETE FROM `reference_loot_template` WHERE `entry`=IFNULL(loot_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
304 END;
305 ELSE CALL INVALID_LOOT_TYPE;
306 END CASE;
307 ELSE
308 CALL MUST_PROVIDE_ENTRY_OR_ITEM;
309 END IF;
310END */$$
311DELIMITER ;
312
313/* Procedure structure for procedure `sp_delete_npc_trainer` */
314
315DELIMITER $$
316
317/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_npc_trainer`(IN npc_entry INT(10), IN spell_id INT(10))
318BEGIN
319 IF spell_id IS NOT NULL OR npc_entry IS NOT NULL THEN
320 DELETE FROM `npc_trainer` WHERE `entry`=IFNULL(npc_entry,`entry`) AND `spell`=IFNULL(spell_id,`spell`);
321 ELSE
322 CALL MUST_PROVIDE_ENTRY_OR_SPELL;
323 END IF;
324END */$$
325DELIMITER ;
326
327/* Procedure structure for procedure `sp_delete_npc_vendor` */
328
329DELIMITER $$
330
331/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_npc_vendor`(IN npc_entry INT(10), IN item_entry INT(10))
332BEGIN
333 IF item_entry IS NOT NULL OR npc_entry IS NOT NULL THEN
334 DELETE FROM `npc_vendor` WHERE `entry`=IFNULL(npc_entry,`entry`) AND `item`=IFNULL(item_entry,`item`);
335 ELSE
336 CALL MUST_PROVIDE_ENTRY_OR_ITEM;
337 END IF;
338END */$$
339DELIMITER ;
340
341/* Procedure structure for procedure `sp_delete_questgiver` */
342
343DELIMITER $$
344
345/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_questgiver`(IN qg_type VARCHAR(10),IN qg_entry INT(10), IN quest_entry INT(10))
346BEGIN
347 IF qg_entry IS NOT NULL OR quest_entry IS NOT NULL THEN
348 CASE UCASE(qg_type)
349 WHEN 'NPC' THEN BEGIN
350 DELETE FROM `creature_questrelation` WHERE `id`=IFNULL(qg_entry,`id`) AND `quest`=IFNULL(quest_entry,`quest`);
351 END;
352 WHEN 'GO' THEN BEGIN
353 DELETE FROM `gameobject_questrelation` WHERE `id`=IFNULL(qg_entry,`id`) AND `quest`=IFNULL(quest_entry,`quest`);
354 END;
355 ELSE CALL INVALID_ENTRY_TYPE;
356 END CASE;
357 ELSE CALL MUST_PROVIDE_ENTRY_OR_QUEST;
358 END IF;
359END */$$
360DELIMITER ;
361
362/* Procedure structure for procedure `sp_delete_questtaker` */
363
364DELIMITER $$
365
366/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_questtaker`(IN qt_type VARCHAR(10),IN qt_entry INT(10), IN quest_entry INT(10))
367BEGIN
368 IF qt_entry IS NOT NULL OR quest_entry IS NOT NULL THEN
369 CASE UCASE(qt_type)
370 WHEN 'NPC' THEN BEGIN
371 DELETE FROM `creature_involvedrelation` WHERE `id`=IFNULL(qt_entry,`id`) AND `quest`=IFNULL(quest_entry,`quest`);
372 END;
373 WHEN 'GO' THEN BEGIN
374 DELETE FROM `gameobject_involvedrelation` WHERE `id`=IFNULL(qt_entry,`id`) AND `quest`=IFNULL(quest_entry,`quest`);
375 END;
376 ELSE CALL INVALID_ENTRY_TYPE;
377 END CASE;
378 ELSE CALL MUST_PROVIDE_ENTRY_OR_QUEST;
379 END IF;
380END */$$
381DELIMITER ;
382
383/* Procedure structure for procedure `sp_delete_script` */
384
385DELIMITER $$
386
387/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_script`(IN script_type VARCHAR(10), IN script_id INT(10))
388BEGIN
389 CASE UCASE(script_type)
390 WHEN 'EAI' THEN BEGIN
391 DELETE FROM `creature_ai_scripts` WHERE `id`=script_id;
392 END;
393 WHEN 'GO' THEN BEGIN
394 DELETE FROM `gameobject_scripts` WHERE `id`=script_id;
395 END;
396 WHEN 'GOSSIP' THEN BEGIN
397 DELETE FROM `gossip_scripts` WHERE `id`=script_id;
398 END;
399 WHEN 'Q_START' THEN BEGIN
400 DELETE FROM `quest_start_scripts` WHERE `id`=script_id;
401 END;
402 WHEN 'Q_END' THEN BEGIN
403 DELETE FROM `quest_end_scripts` WHERE `id`=script_id;
404 END;
405 WHEN 'SPELL' THEN BEGIN
406 DELETE FROM `spell_scripts` WHERE `id`=script_id;
407 END;
408 WHEN 'WP' THEN BEGIN
409 DELETE FROM `waypoint_scripts` WHERE `id`=script_id;
410 END;
411 ELSE CALL INVALID_SCRIPT_TYPE;
412 END CASE;
413END */$$
414DELIMITER ;
415
416/* Procedure structure for procedure `sp_delete_script_bylist` */
417
418DELIMITER $$
419
420/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_script_bylist`(IN script_type VARCHAR(10), IN script_id_list LONGTEXT)
421BEGIN
422 CALL `sp_set_entry_list` (script_id_list,null);
423 CASE UCASE(script_type)
424 WHEN 'EAI' THEN BEGIN
425 DELETE FROM `creature_ai_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
426 END;
427 WHEN 'GO' THEN BEGIN
428 DELETE FROM `gameobject_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
429 END;
430 WHEN 'GOSSIP' THEN BEGIN
431 DELETE FROM `gossip_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
432 END;
433 WHEN 'Q_START' THEN BEGIN
434 DELETE FROM `quest_start_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
435 END;
436 WHEN 'Q_END' THEN BEGIN
437 DELETE FROM `quest_end_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
438 END;
439 WHEN 'SPELL' THEN BEGIN
440 DELETE FROM `spell_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
441 END;
442 WHEN 'WP' THEN BEGIN
443 DELETE FROM `waypoint_scripts` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
444 END;
445 ELSE CALL INVALID_SCRIPT_TYPE;
446 END CASE;
447 DROP TABLE `tdb_entry_list`;
448END */$$
449DELIMITER ;
450
451/* Procedure structure for procedure `sp_delete_spawn` */
452
453DELIMITER $$
454
455/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_spawn`(IN spawn_type VARCHAR(10),IN spawn_guid INT(10), IN spawn_entry INT(10))
456BEGIN
457 IF spawn_guid IS NOT NULL OR spawn_entry IS NOT NULL THEN
458 CASE UCASE(spawn_type)
459 WHEN 'NPC' THEN BEGIN
460 DELETE FROM `creature` WHERE `guid`=IFNULL(spawn_guid,`guid`) AND `id`=IFNULL(spawn_entry,`id`);
461 DELETE FROM `game_event_creature` WHERE `guid`=IFNULL(spawn_guid,-1);
462 END;
463 WHEN 'GO' THEN BEGIN
464 DELETE FROM `gameobject` WHERE `guid`=IFNULL(spawn_guid,`guid`) AND `id`=IFNULL(spawn_entry,`id`);
465 DELETE FROM `game_event_gameobject` WHERE `guid`=IFNULL(spawn_guid,-1);
466 END;
467 ELSE CALL INVALID_SPAWN_TYPE;
468 END CASE;
469 ELSE
470 CALL MUST_PROVIDE_GUID_OR_ENTRY;
471 END IF;
472END */$$
473DELIMITER ;
474
475/* Procedure structure for procedure `sp_delete_spell_area` */
476
477DELIMITER $$
478
479/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_spell_area`(IN spell_id INT(10), IN area_id INT(10))
480BEGIN
481
482 IF spell_id IS NOT NULL OR area_id IS NOT NULL THEN
483 DELETE FROM `spell_area` WHERE `spell`=IFNULL(spell_id,`spell`) AND `area`=IFNULL(area_id,`area`);
484 ELSE
485 CALL MUST_PROVIDE_SPELL_OR_AREA;
486 END IF;
487END */$$
488DELIMITER ;
489
490/* Procedure structure for procedure `sp_delete_spell_position` */
491
492DELIMITER $$
493
494/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_spell_position`(IN spell_id INT(10))
495BEGIN
496 DELETE FROM `spell_target_position` WHERE `id`=spell_id;
497END */$$
498DELIMITER ;
499
500/* Procedure structure for procedure `sp_delete_spell_position_bylist` */
501
502DELIMITER $$
503
504/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_spell_position_bylist`(IN spell_list LONGTEXT)
505BEGIN
506 CALL `sp_set_entry_list` (spell_list,null);
507 DELETE FROM `spell_target_position` WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
508 DROP TABLE `tdb_entry_list`;
509END */$$
510DELIMITER ;
511
512/* Procedure structure for procedure `sp_delete_spell_target` */
513
514DELIMITER $$
515
516/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_spell_target`(IN spell_id INT(10),IN target_entry INT(10))
517BEGIN
518 IF spell_id IS NOT NULL OR target_entry IS NOT NULL THEN
519 DELETE FROM `spell_script_target` WHERE `entry`=IFNULL(spell_id,`entry`) AND `targetEntry`=IFNULL(target_entry,`targetEntry`);
520 ELSE
521 CALL MUST_PROVIDE_SPELL_OR_TARGET;
522 END IF;
523END */$$
524DELIMITER ;
525
526/* Procedure structure for procedure `sp_dev_cleanup_loot` */
527
528DELIMITER $$
529
530/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_dev_cleanup_loot`()
531BEGIN
532CREATE TABLE `Loot_temp` (
533 `lootid` INT(8) UNSIGNED NOT NULL PRIMARY KEY DEFAULT '0'
534);
535INSERT IGNORE INTO `Loot_temp` SELECT `entry` FROM `item_template`;
536DELETE FROM `prospecting_loot_template` WHERE `entry` NOT IN (SELECT `lootid` FROM `Loot_temp`);
537DELETE FROM `Loot_temp`;
538INSERT IGNORE INTO `Loot_temp` SELECT `skinloot` FROM `creature_template` WHERE skinloot>0;
539DELETE FROM `skinning_loot_template` WHERE `entry` NOT IN (SELECT `lootid` FROM `Loot_temp`);
540DELETE FROM `Loot_temp`;
541INSERT IGNORE INTO `Loot_temp` SELECT `lootid` FROM `creature_template` WHERE lootid>0;
542DELETE FROM `creature_loot_template` WHERE `entry` NOT IN (SELECT `lootid` FROM `Loot_temp`);
543DELETE FROM `Loot_temp`;
544DROP TABLE `Loot_temp`;
545DELETE FROM `disenchant_loot_template` WHERE `item` NOT IN (SELECT `entry` FROM `item_template`);
546DELETE FROM `disenchant_loot_template` WHERE `entry` NOT IN (SELECT `disenchantid` FROM `item_template`);
547DELETE FROM `pickpocketing_loot_template` WHERE `item` NOT IN (SELECT `entry` FROM `item_template`);
548DELETE FROM `prospecting_loot_template` WHERE `entry` NOT IN (SELECT `entry` FROM `item_template`);
549DELETE FROM `prospecting_loot_template` WHERE `item` NOT IN (SELECT `entry` FROM `item_template`);
550DELETE FROM `mail_loot_template` WHERE `item` NOT IN (SELECT `entry` FROM `item_template`);
551 END */$$
552DELIMITER ;
553
554/* Procedure structure for procedure `sp_dev_cleanup_reference_loot` */
555
556DELIMITER $$
557
558/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_dev_cleanup_reference_loot`()
559BEGIN
560CREATE TABLE `RL_temp` (
561 `ref_id` INT(8) UNSIGNED NOT NULL PRIMARY KEY DEFAULT '0'
562);
563INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `gameobject_loot_template` WHERE `mincountOrRef` <0;
564INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `item_loot_template` WHERE `mincountOrRef` <0;
565INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `creature_loot_template` WHERE `mincountOrRef` <0;
566INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `spell_loot_template` WHERE `mincountOrRef` <0;
567INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `prospecting_loot_template` WHERE `mincountOrRef` <0;
568INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `milling_loot_template` WHERE `mincountOrRef` <0;
569INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `mail_loot_template` WHERE `mincountOrRef` <0;
570INSERT IGNORE INTO `RL_temp` SELECT DISTINCT(`mincountOrRef`)*-1 FROM `reference_loot_template` WHERE `mincountOrRef`<0;
571DELETE FROM `reference_loot_template` WHERE `entry` NOT IN (SELECT `ref_id` FROM `RL_temp`);
572DROP TABLE `RL_temp`;
573 END */$$
574DELIMITER ;
575
576/* Procedure structure for procedure `sp_dev_cleanup_world` */
577
578DELIMITER $$
579
580/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_dev_cleanup_world`()
581BEGIN
582DELETE FROM `gameobject` WHERE `id` NOT IN (SELECT `entry` FROM `gameobject_template`);
583DELETE FROM `creature` WHERE `id` NOT IN (SELECT `entry` FROM `creature_template`);
584DELETE FROM areatrigger_involvedrelation WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
585DELETE FROM `battlemaster_entry` WHERE `entry` NOT IN (SELECT `entry` FROM `creature_template`);
586DELETE FROM `battlemaster_entry` WHERE `bg_template` NOT IN (SELECT `id` FROM `battleground_template`);
587UPDATE `creature` SET `equipment_id`=0 WHERE `equipment_id` NOT IN (SELECT `entry` FROM `creature_equip_template`) AND `equipment_id`!=0;
588DELETE FROM `creature_addon` WHERE `guid` NOT IN (SELECT `guid` FROM `creature`);
589DELETE FROM `creature_ai_scripts` WHERE `creature_id` NOT IN (SELECT `entry` FROM `creature_template`);
590DELETE FROM `creature_formations` WHERE leaderGUID NOT IN (SELECT `guid` FROM `creature`);
591DELETE FROM `creature_formations` WHERE memberGUID NOT IN (SELECT `guid` FROM `creature`);
592DELETE FROM `creature_involvedrelation` WHERE `id` NOT IN (SELECT `entry` FROM `creature_template`);
593DELETE FROM `creature_involvedrelation` WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
594DELETE FROM `creature_linked_respawn` WHERE `guid` NOT IN (SELECT `guid` FROM `creature`);
595DELETE FROM `creature_linked_respawn` WHERE `linkedGuid` NOT IN (SELECT `guid` FROM `creature`);
596DELETE FROM `creature_onkill_reputation` WHERE `creature_id` NOT IN (SELECT `entry` FROM `creature_template`);
597DELETE FROM `creature_questrelation` WHERE `id` NOT IN (SELECT `entry` FROM `creature_template`);
598DELETE FROM `creature_questrelation` WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
599DELETE FROM `creature_template_addon` WHERE `entry` NOT IN (SELECT `entry` FROM `creature_template`);
600DELETE FROM `game_event_creature_quest` WHERE `id` NOT IN (SELECT `entry` FROM `creature_template`);
601DELETE FROM `game_event_creature_quest` WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
602DELETE FROM `game_event_creature_quest` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
603DELETE FROM `game_event_gameobject_quest` WHERE `id` NOT IN (SELECT `entry` FROM `gameobject_template`);
604DELETE FROM `game_event_gameobject_quest` WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
605DELETE FROM `game_event_gameobject_quest` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
606DELETE FROM `game_event_npc_gossip` WHERE `event_id` NOT IN (SELECT `entry` FROM `game_event`);
607DELETE FROM `game_event_model_equip` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
608DELETE FROM `game_event_battleground_holiday` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
609DELETE FROM `game_event_condition` WHERE `event_id` NOT IN (SELECT `entry` FROM `game_event`);
610DELETE FROM `game_event_creature` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
611DELETE FROM `game_event_gameobject` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
612DELETE FROM `game_event_npc_vendor` WHERE `item` NOT IN (SELECT `entry` FROM `item_template`);
613DELETE FROM `game_event_npc_vendor` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
614DELETE FROM `game_event_npcflag` WHERE `event_id` NOT IN (SELECT `entry` FROM `game_event`);
615DELETE FROM `game_event_pool` WHERE `event` NOT IN (SELECT `entry` FROM `game_event`);
616DELETE FROM `game_event_prerequisite` WHERE `event_id` NOT IN (SELECT `entry` FROM `game_event`);
617DELETE FROM `game_event_prerequisite` WHERE `prerequisite_event` NOT IN (SELECT `entry` FROM `game_event`);
618DELETE FROM `game_event_quest_condition` WHERE `event_id` NOT IN (SELECT `entry` FROM `game_event`);
619DELETE FROM `game_event_quest_condition` WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
620DELETE FROM `gameobject_involvedrelation` WHERE `id` NOT IN (SELECT `entry` FROM `gameobject_template`);
621DELETE FROM `gameobject_involvedrelation` WHERE `quest` NOT IN (SELECT `entry` FROM `quest_template`);
622DELETE FROM `item_required_target` WHERE `targetEntry` NOT IN (SELECT `entry` FROM `creature_template`) AND `type` IN (1,2);
623DELETE FROM `mail_level_reward` WHERE `senderEntry` NOT IN (SELECT `entry` FROM `creature_template`);
624DELETE FROM `npc_gossip` WHERE `npc_guid` NOT IN (SELECT `guid` FROM `creature`);
625DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` NOT IN (SELECT `entry` FROM `creature_template`);
626DELETE FROM `npc_spellclick_spells` WHERE `quest_start` NOT IN (SELECT `entry` FROM `quest_template`) AND `quest_start`<>0;
627DELETE FROM `npc_spellclick_spells` WHERE `quest_end` NOT IN (SELECT `entry` FROM `quest_template`) AND `quest_end`<>0;
628DELETE FROM `npc_trainer` WHERE `entry` NOT IN (SELECT `entry` FROM `creature_template`);
629DELETE FROM `npc_vendor` WHERE `entry` NOT IN (SELECT `entry` FROM `creature_template`);
630DELETE FROM `npc_vendor` WHERE `item` NOT IN (SELECT `entry` FROM `item_template`);
631DELETE FROM `pet_levelstats` WHERE `creature_entry` NOT IN (SELECT `entry` FROM `creature_template`);
632DELETE FROM `quest_end_scripts` WHERE `id` NOT IN (SELECT `CompleteScript` FROM `quest_template`);
633DELETE FROM `quest_start_scripts` WHERE `id` NOT IN (SELECT `StartScript` FROM `quest_template`);
634DELETE FROM `spell_script_target` WHERE `targetEntry` NOT IN (SELECT `entry` FROM `creature_template`) AND `type` IN (1,2,3) AND `targetEntry`!=0;
635DELETE FROM `spell_script_target` WHERE `targetEntry` NOT IN (SELECT `entry` FROM `gameobject_template`) AND `type`=0 AND `targetEntry`!=0;
636 END */$$
637DELIMITER ;
638
639/* Procedure structure for procedure `sp_dev_reguid_alter_tables` */
640
641DELIMITER $$
642
643/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_dev_reguid_alter_tables`()
644BEGIN
645 CREATE TABLE `creature_temp` (
646 `guid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Global Unique Identifier',
647 `id` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Creature Identifier',
648 `map` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Map Identifier',
649 `spawnMask` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1',
650 `phaseMask` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '1',
651 `modelid` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
652 `equipment_id` MEDIUMINT(9) NOT NULL DEFAULT '0',
653 `position_x` FLOAT NOT NULL DEFAULT '0',
654 `position_y` FLOAT NOT NULL DEFAULT '0',
655 `position_z` FLOAT NOT NULL DEFAULT '0',
656 `orientation` FLOAT NOT NULL DEFAULT '0',
657 `spawntimesecs` INT(10) UNSIGNED NOT NULL DEFAULT '120',
658 `spawndist` FLOAT NOT NULL DEFAULT '5',
659 `currentwaypoint` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
660 `curhealth` INT(10) UNSIGNED NOT NULL DEFAULT '1',
661 `curmana` INT(10) UNSIGNED NOT NULL DEFAULT '0',
662 `DeathState` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
663 `MovementType` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
664 `old_guid` INT(10) UNSIGNED NOT NULL,
665 PRIMARY KEY (`guid`),
666 KEY `idx_map` (`map`),
667 KEY `idx_id` (`id`)
668) ENGINE=MYISAM AUTO_INCREMENT=250001 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Creature System';
669 ALTER TABLE `creature_addon` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
670 ALTER TABLE `creature_formations` ADD COLUMN `new_guid_leader` INT(10) UNSIGNED NOT NULL;
671 ALTER TABLE `creature_formations` ADD COLUMN `new_guid_member` INT(10) UNSIGNED NOT NULL;
672 ALTER TABLE `creature_linked_respawn` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
673 ALTER TABLE `creature_linked_respawn` ADD COLUMN `new_linked_guid` INT(10) UNSIGNED NOT NULL;
674 ALTER TABLE `game_event_creature` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
675 ALTER TABLE `pool_creature` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
676 ALTER TABLE `game_event_model_equip` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
677 ALTER TABLE `game_event_npc_gossip` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
678 ALTER TABLE `game_event_npc_vendor` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
679 ALTER TABLE `game_event_npcflag` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
680 ALTER TABLE `npc_gossip` ADD COLUMN `new_guid` INT(10) UNSIGNED NOT NULL;
681 END */$$
682DELIMITER ;
683
684/* Procedure structure for procedure `sp_dev_re_guid` */
685
686DELIMITER $$
687
688/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_dev_re_guid`(IN new_base_guid INT(10))
689BEGIN
690 CALL `sp_dev_reguid_alter_tables`();
691 SET @s = CONCAT("ALTER TABLE `creature_temp` AUTO_INCREMENT=",new_base_guid,";");
692 PREPARE STM FROM @s;
693 EXECUTE STM;
694 INSERT INTO `creature_temp` (id,map,spawnMask,phaseMask,modelid,equipment_id,position_x,position_y,position_z,orientation,spawndist,currentwaypoint,curhealth,curmana,DeathState,MovementType,old_guid)
695 SELECT id,map,spawnMask,phaseMask,modelid,equipment_id,position_x,position_y,position_z,orientation,spawndist,currentwaypoint,curhealth,curmana,DeathState,MovementType,guid FROM `creature` ORDER BY `id` ASC;
696 UPDATE `creature_temp` SET guid = old_guid WHERE `old_guid`>250000;
697 UPDATE game_event_npc_gossip p
698 INNER JOIN creature_temp pp
699 ON p.guid = pp.old_guid
700 SET p.new_guid = pp.guid;
701 UPDATE game_event_npc_vendor p
702 INNER JOIN creature_temp pp
703 ON p.guid = pp.old_guid
704 SET p.new_guid = pp.guid;
705 UPDATE game_event_npcflag p
706 INNER JOIN creature_temp pp
707 ON p.guid = pp.old_guid
708 SET p.new_guid = pp.guid;
709 UPDATE npc_gossip p
710 INNER JOIN creature_temp pp
711 ON p.npc_guid = pp.old_guid
712 SET p.new_guid = pp.guid;
713 UPDATE game_event_model_equip p
714 INNER JOIN creature_temp pp
715 ON p.guid = pp.old_guid
716 SET p.new_guid = pp.guid;
717 UPDATE creature_addon p
718 INNER JOIN creature_temp pp
719 ON p.guid = pp.old_guid
720 SET p.new_guid = pp.guid;
721 UPDATE creature_formations p
722 INNER JOIN creature_temp pp
723 ON p.leaderGUID = pp.old_guid
724 SET p.new_guid_leader = pp.guid;
725 UPDATE creature_formations p
726 INNER JOIN creature_temp pp
727 ON p.memberGUID = pp.old_guid
728 SET p.new_guid_member = pp.guid;
729 UPDATE creature_linked_respawn p
730 INNER JOIN creature_temp pp
731 ON p.guid = pp.old_guid
732 SET p.new_guid = pp.guid;
733 UPDATE creature_linked_respawn p
734 INNER JOIN creature_temp pp
735 ON p.guid = pp.old_guid
736 SET p.new_linked_guid = pp.guid;
737 UPDATE game_event_creature p
738 INNER JOIN creature_temp pp
739 ON p.guid = pp.old_guid
740 SET p.new_guid = pp.guid;
741 UPDATE pool_creature p
742 INNER JOIN creature_temp pp
743 ON p.guid = pp.old_guid
744 SET p.new_guid = pp.guid;
745 ALTER TABLE `creature_temp` DROP COLUMN `old_guid`;
746 DROP TABLE `creature`;
747 RENAME TABLE `creature_temp` TO `creature`;
748 ALTER TABLE game_event_npc_gossip DISABLE KEYS;
749 UPDATE `game_event_npc_gossip` SET `guid`=`new_guid`;
750 ALTER TABLE `game_event_npc_gossip` DROP COLUMN `new_guid`;
751 ALTER TABLE game_event_npc_gossip ENABLE KEYS;
752 ALTER TABLE game_event_npc_vendor DISABLE KEYS;
753 UPDATE `game_event_npc_vendor` SET `guid`=`new_guid`;
754 ALTER TABLE `game_event_npc_vendor` DROP COLUMN `new_guid`;
755 ALTER TABLE game_event_npc_vendor ENABLE KEYS;
756 ALTER TABLE game_event_npcflag DISABLE KEYS;
757 UPDATE `game_event_npcflag` SET `guid`=`new_guid`;
758 ALTER TABLE `game_event_npcflag` DROP COLUMN `new_guid`;
759 ALTER TABLE game_event_npcflag ENABLE KEYS;
760 ALTER TABLE `npc_gossip` DROP PRIMARY KEY;
761 UPDATE `npc_gossip` SET `npc_guid`=`new_guid`;
762 SELECT npc_guid,new_guid FROM npc_gossip;
763 ALTER TABLE `npc_gossip` DROP COLUMN `new_guid`;
764 ALTER TABLE `npc_gossip` ADD PRIMARY KEY(`npc_guid`);
765 ALTER TABLE game_event_model_equip DISABLE KEYS;
766 UPDATE `game_event_model_equip` SET `guid`=`new_guid`;
767 ALTER TABLE `game_event_model_equip` DROP COLUMN `new_guid`;
768 ALTER TABLE game_event_model_equip ENABLE KEYS;
769 ALTER TABLE `creature_addon` DROP PRIMARY KEY;
770 UPDATE `creature_addon` SET `guid`=`new_guid`;
771 ALTER TABLE `creature_addon` DROP COLUMN `new_guid`;
772 ALTER TABLE `creature_addon` ADD PRIMARY KEY(`guid`);
773 ALTER TABLE creature_formations DISABLE KEYS;
774 UPDATE `creature_formations` SET leaderGUID = new_guid_leader;
775 ALTER TABLE `creature_formations` DROP COLUMN `new_guid_leader`;
776 UPDATE `creature_formations` SET memberGUID = new_guid_member;
777 ALTER TABLE `creature_formations` DROP COLUMN `new_guid_member`;
778 ALTER TABLE creature_formations ENABLE KEYS;
779 ALTER TABLE `creature_linked_respawn` DROP PRIMARY KEY;
780 UPDATE `creature_linked_respawn` SET guid = new_guid;
781 ALTER TABLE `creature_linked_respawn` DROP COLUMN `new_guid`;
782 UPDATE `creature_linked_respawn` SET linkedGuid = new_linked_guid;
783 ALTER TABLE `creature_linked_respawn` DROP COLUMN `new_linked_guid`;
784 ALTER TABLE `creature_linked_respawn` ADD PRIMARY KEY(`guid`);
785 ALTER TABLE `game_event_creature` DROP PRIMARY KEY;
786 UPDATE `game_event_creature` SET guid = new_guid;
787 ALTER TABLE `game_event_creature` DROP COLUMN `new_guid`;
788 ALTER TABLE `game_event_creature` ADD PRIMARY KEY(`guid`);
789 ALTER TABLE pool_creature DISABLE KEYS;
790 UPDATE `pool_creature` SET guid = new_guid;
791 ALTER TABLE `pool_creature` DROP COLUMN `new_guid`;
792 ALTER TABLE pool_creature ENABLE KEYS;
793 END */$$
794DELIMITER ;
795
796/* Procedure structure for procedure `sp_eai_cast_onspawn` */
797
798DELIMITER $$
799
800/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_cast_onspawn`(IN npc_entry INT(10), spell_id MEDIUMINT(6))
801BEGIN
802 CALL `sp_error_entry`('NPC',npc_entry);
803 UPDATE `creature_template` SET `AIName`= 'EventAI' WHERE `entry`=npc_entry;
804
805 CALL `sp_eai_select_id`(npc_entry,@event_id);
806
807 INSERT INTO `creature_ai_scripts` (`id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`,`comment`) VALUES
808 (@event_id,npc_entry,11,0,100,0,0,0,0,0,11,spell_id,0,0,0,0,0,0,0,0,0,0, 'Stored procedures eAI: NPC cast spell on self');
809END */$$
810DELIMITER ;
811
812/* Procedure structure for procedure `sp_eai_inverse_phase_mask` */
813
814DELIMITER $$
815
816/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_inverse_phase_mask`(IN max_phase INT, IN phase_list VARCHAR(255))
817BEGIN
818DECLARE max_phase_mask INT;
819DECLARE phase_yes INT;
820DECLARE inverse_phase_mask INT;
821CALL `sp_eai_table_phase_mask`();
822CALL `sp_set_entry_list`(phase_list);
823SET max_phase_mask = (SELECT SUM(phase_mask) FROM phase_mask WHERE phaseID <= max_phase);
824SET phase_yes = (SELECT SUM(phase_mask) FROM phase_mask WHERE phaseID IN (SELECT `value` FROM tdb_entry_list));
825SET inverse_phase_mask = (max_phase_mask - phase_yes);
826DROP TABLE `tdb_entry_list`;
827DROP TABLE `phase_mask`;
828IF inverse_phase_mask < 0 THEN
829SELECT "PhaseID is bigger then maximum phase entered" AS `inverse_phase_mask`;
830ELSE IF phase_list="0" THEN
831SELECT 0 AS `inverse_phase_mask`;
832ELSE
833SELECT inverse_phase_mask;
834END IF;
835END IF;
836 END */$$
837DELIMITER ;
838
839/* Procedure structure for procedure `sp_eai_kill_ondeath` */
840
841DELIMITER $$
842
843/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_kill_ondeath`(IN npc_entry INT(10), trigger_id INT(10))
844BEGIN
845 CALL `sp_error_entry`('NPC',npc_entry);
846 UPDATE `creature_template` SET `AIName`= 'EventAI' WHERE `entry`=npc_entry;
847
848 CALL `sp_eai_select_id`(npc_entry, @event_id);
849 INSERT INTO `creature_ai_scripts` (`id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`,`comment`) VALUES
850 (@event_id,npc_entry,6,0,100,0,0,0,0,0,33,trigger_id,6,0,23,1,0,0,0,0,0,0, 'Stored procedures eAI: quest - kill trigger on NPC death');
851END */$$
852DELIMITER ;
853
854/* Procedure structure for procedure `sp_eai_quest_credit_on_spellhit` */
855
856DELIMITER $$
857
858/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_quest_credit_on_spellhit`(IN npc_entry INT(10), spell_id MEDIUMINT(6), trigger_id INT(10), despawn_time INT(10))
859BEGIN
860 CALL `sp_error_entry`('NPC',npc_entry);
861 CALL `sp_error_trigger` (trigger_id);
862 UPDATE `creature_template` SET `AIName`= 'EventAI' WHERE `entry`=npc_entry;
863
864 CALL `sp_eai_select_id` (npc_entry, @event_id);
865 INSERT INTO `creature_ai_scripts` (`id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`,`comment`) VALUES
866 (@event_id,npc_entry,8,0,100,1,spell_ID,-1,0,0,33,trigger_ID,6,0,23,1,0,0,0,0,0,0, 'Stored procedures eAI: quest - kill trigger on spellcast');
867 INSERT INTO `creature_ai_scripts` (`id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`,`comment`) VALUES
868 (@event_id+1,npc_entry,1,1,100,0,despawn_time,despawn_time,despawn_time,despawn_time,41,0,0,0,0,0,0,0,0,0,0,0, 'Stored procedures eAI: despawn after defined time');
869END */$$
870DELIMITER ;
871
872/* Procedure structure for procedure `sp_eai_select_id` */
873
874DELIMITER $$
875
876/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_select_id`(IN npc_entry INT(10), OUT event_id INT(10))
877BEGIN
878 CALL `sp_error_entry`('NPC',npc_entry);
879 SET event_id = (SELECT MAX(id)+1 FROM `creature_ai_scripts` WHERE `creature_id`=npc_entry);
880 DELETE FROM `creature_ai_scripts` WHERE `creature_id`=npc_entry AND `comment` LIKE "Stored procedures eAI%";
881END */$$
882DELIMITER ;
883
884/* Procedure structure for procedure `sp_eai_spawn_spellhit` */
885
886DELIMITER $$
887
888/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_spawn_spellhit`(IN npc_entry INT(10),IN spell_id MEDIUMINT(6),IN spawn_id INT(10),IN despawn_time INT(10))
889BEGIN
890 CALL `sp_error_entry`('NPC',npc_entry);
891 CALL `sp_error_entry`('NPC',spawn_id);
892 UPDATE `creature_template` SET `AIName`= 'EventAI' WHERE `entry`=npc_entry;
893 CALL `sp_eai_select_id`(npc_entry,@event_id);
894 INSERT INTO `creature_ai_scripts` (`id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`,`comment`) VALUES
895 (@event_id,npc_entry,8,0,100,1,spell_id,-1,0,0,32,spawn_id,6,0,41,0,0,0,0,0,0,0, 'Stored procedures eAI: quest - summon mob on spellcast');
896 INSERT INTO `creature_ai_scripts` (`id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`,`comment`) VALUES
897 (@event_id+1,spawn_id,1,1,100,0,despawn_time,despawn_time,despawn_time,despawn_time,41,0,0,0,0,0,0,0,0,0,0,0, 'Stored procedures eAI: despawn after defined time');
898END */$$
899DELIMITER ;
900
901/* Procedure structure for procedure `sp_eai_table_phase_mask` */
902
903DELIMITER $$
904
905/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_eai_table_phase_mask`()
906BEGIN
907
908CREATE TABLE `phase_mask`(
909`phaseID` INT(2) NOT NULL DEFAULT '0' ,
910`phase_mask` INT(11) UNSIGNED NOT NULL DEFAULT '0' ,
911PRIMARY KEY (`phaseID`));
912INSERT INTO phase_mask VALUES
913(0,1),
914(1,2),
915(2,4),
916(3,8),
917(4,16),
918(5,32),
919(6,64),
920(7,128),
921(8,256),
922(9,512),
923(10,1024),
924(11,2048),
925(12,4096),
926(13,8192),
927(14,16384),
928(15,32768),
929(16,65536),
930(17,131072),
931(18,262144),
932(19,524288),
933(20,1048576),
934(21,2097152),
935(22,4194304),
936(23,8388608),
937(24,16777216),
938(25,33554432),
939(26,67108864),
940(27,134217728),
941(28,268435456),
942(29,536870912),
943(30,1073741824),
944(31,2147483648);
945 END */$$
946DELIMITER ;
947
948/* Procedure structure for procedure `sp_error_entry` */
949
950DELIMITER $$
951
952/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_error_entry`(IN entry_type VARCHAR(10), IN e_entry INT(10))
953BEGIN
954 DECLARE check_entry INT;
955 CASE UPPER(entry_type)
956 WHEN 'NPC' THEN
957 SET check_entry = (SELECT COUNT(`entry`) FROM `creature_template` WHERE `entry`=e_entry);
958 WHEN 'GO' THEN
959 SET check_entry = (SELECT COUNT(`entry`) FROM `gameobject_template` WHERE `entry`=e_entry);
960 WHEN 'ITEM' THEN
961 SET check_entry = (SELECT COUNT(`entry`) FROM `item_template` WHERE `entry`=e_entry);
962 WHEN 'QUEST' THEN
963 SET check_entry = (SELECT COUNT(`entry`) FROM `quest_template` WHERE `entry`=e_entry);
964 ELSE
965 CALL INCORRECT_ENTRY_TYPE;
966 END CASE;
967
968 IF check_entry=0 THEN
969 CALL INCORRECT_ENTRY;
970 END IF;
971END */$$
972DELIMITER ;
973
974/* Procedure structure for procedure `sp_error_guid` */
975
976DELIMITER $$
977
978/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_error_guid`(IN guid_type VARCHAR(10),IN npc_or_go_guid INT(10))
979BEGIN
980 DECLARE check_guid INT;
981 CASE UPPER(guid_type)
982 WHEN 'NPC' THEN
983 SET check_guid = (SELECT COUNT(`guid`) FROM `creature` WHERE `guid`=npc_or_go_guid);
984 WHEN 'GO' THEN
985 SET check_guid = (SELECT COUNT(`guid`) FROM `gameobject` WHERE `entry`=npc_or_go_entry);
986 ELSE
987 CALL INCORRECT_GUID_TYPE;
988 END CASE;
989
990 IF check_guid=0 THEN
991 CALL INCORRECT_CREATURE_OR_GO_GUID;
992 END IF;
993END */$$
994DELIMITER ;
995
996/* Procedure structure for procedure `sp_error_trigger` */
997
998DELIMITER $$
999
1000/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_error_trigger`(IN trigger_entry INT)
1001BEGIN
1002 DECLARE Check_trigger INT;
1003 SET Check_trigger = (SELECT COUNT(ReqCreatureOrGOId1) FROM `quest_template` WHERE `ReqCreatureOrGOId1`= trigger_entry)
1004 + (SELECT COUNT(ReqCreatureOrGOId2) FROM `quest_template` WHERE `ReqCreatureOrGOId2`= trigger_entry)
1005 + (SELECT COUNT(ReqCreatureOrGOId3) FROM `quest_template` WHERE `ReqCreatureOrGOId3`= trigger_entry)
1006 + (SELECT COUNT(ReqCreatureOrGOId4) FROM `quest_template` WHERE `ReqCreatureOrGOId4`= trigger_entry);
1007 IF Check_trigger = 0 THEN
1008 CALL NO_QUEST_WITH_REQUIREMENT();
1009 END IF;
1010 END */$$
1011DELIMITER ;
1012
1013/* Procedure structure for procedure `sp_get_go_lootid` */
1014
1015DELIMITER $$
1016
1017/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_get_go_lootid`(IN gobjID MEDIUMINT(6),OUT gobjLootID INT(10))
1018BEGIN
1019 CALL `sp_error_entry`('GO',gobjID);
1020 SELECT `data1` FROM `gameobject_template` WHERE `entry`=gobjID AND `type`=3 INTO gobjLootID;
1021END */$$
1022DELIMITER ;
1023
1024/* Procedure structure for procedure `sp_get_npc_diffentry` */
1025
1026DELIMITER $$
1027
1028/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_get_npc_diffentry`(IN normalEntry MEDIUMINT(5),IN difficulty TINYINT(1),OUT output MEDIUMINT(8))
1029BEGIN
1030 CALL `sp_error_entry`('NPC',normalEntry);
1031 CASE difficulty
1032 WHEN 1 THEN BEGIN
1033 SELECT `difficulty_entry_1` FROM `creature_template` WHERE `entry`=normalEntry INTO output;
1034 END;
1035 WHEN 2 THEN BEGIN
1036 SELECT `difficulty_entry_2` FROM `creature_template` WHERE `entry`=normalEntry INTO output;
1037 END;
1038 WHEN 3 THEN BEGIN
1039 SELECT `difficulty_entry_3` FROM `creature_template` WHERE `entry`=normalEntry INTO output;
1040 END;
1041 ELSE CALL INVALID_DIFFICULTY();
1042 END CASE;
1043END */$$
1044DELIMITER ;
1045
1046/* Procedure structure for procedure `sp_get_ref_id` */
1047
1048DELIMITER $$
1049
1050/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_get_ref_id`(IN refType VARCHAR(10),OUT reference MEDIUMINT(5))
1051BEGIN
1052 CASE UCASE(refType)
1053 WHEN 'SKIN' THEN BEGIN
1054 SET @Low :=00000;
1055 SET @High :=1000;
1056 END;
1057 WHEN 'ITEM' THEN BEGIN
1058 SET @Low :=10000;
1059 SET @High :=10999;
1060 END;
1061 WHEN 'FISH' THEN BEGIN
1062 SET @Low :=11000;
1063 SET @High :=11799;
1064 END;
1065 WHEN 'MILL' THEN BEGIN
1066 SET @Low :=11800;
1067 SET @High :=11999;
1068 END;
1069 WHEN 'RAID_GOBJ' THEN BEGIN
1070 SET @Low :=12000;
1071 SET @High :=12899;
1072 END;
1073 WHEN 'MINE' THEN BEGIN
1074 SET @Low :=12900;
1075 SET @High :=12999;
1076 END;
1077 WHEN 'PROSPECT' THEN BEGIN
1078 SET @Low :=13000;
1079 SET @High :=13999;
1080 END;
1081 WHEN 'WORLD' THEN BEGIN
1082 SET @Low :=14000;
1083 SET @High :=29000;
1084 END;
1085 WHEN 'RAID_CRE' THEN BEGIN
1086 SET @Low :=34000;
1087 SET @High :=34999;
1088 END;
1089 WHEN 'DUNGEON' THEN BEGIN
1090 SET @Low :=35000;
1091 SET @High :=35999;
1092 END;
1093 ELSE CALL INVALID_REFERENCE_TYPE;
1094 END CASE;
1095 SET reference :=1+(SELECT `entry` FROM `reference_loot_template` WHERE `entry` BETWEEN @Low AND @High ORDER BY `entry` DESC LIMIT 1);
1096END */$$
1097DELIMITER ;
1098
1099/* Procedure structure for procedure `sp_PetExtraLevelStats` */
1100
1101DELIMITER $$
1102
1103/*!50003 CREATE DEFINER=`mrhooha`@`%` PROCEDURE `sp_PetExtraLevelStats`()
1104BEGIN
1105
1106 DECLARE intMaxHP INT DEFAULT 6553500;
1107 DECLARE intMaxMana INT DEFAULT 6553500;
1108 DECLARE intMaxArmor INT DEFAULT 6553500;
1109 DECLARE intMaxStats INT DEFAULT 100000;
1110 DECLARE sngHPInc FLOAT DEFAULT 0.05;
1111 DECLARE sngManaInc FLOAT DEFAULT 0.05;
1112 DECLARE sngArmorInc FLOAT DEFAULT 0.05;
1113 DECLARE sngStatsInc FLOAT DEFAULT 0.015;
1114 DECLARE intStartLvl INT DEFAULT 80;
1115 DECLARE intFinishLvl INT DEFAULT 85;
1116
1117 DECLARE intRecordDone INT DEFAULT 0;
1118 DECLARE intCreature INT DEFAULT 0;
1119 DECLARE intLevel INT DEFAULT 0;
1120 DECLARE intClass INT DEFAULT 0;
1121 DECLARE intCurrHP INT DEFAULT 0;
1122 DECLARE intCurrMana INT DEFAULT 0;
1123 DECLARE intCurrArmor INT DEFAULT 0;
1124 DECLARE intCurrSTR INT DEFAULT 0;
1125 DECLARE intCurrAGI INT DEFAULT 0;
1126 DECLARE intCurrSTA INT DEFAULT 0;
1127 DECLARE intCurrINT INT DEFAULT 0;
1128 DECLARE intCurrSPI INT DEFAULT 0;
1129
1130 DECLARE curPetStat CURSOR FOR SELECT `creature_entry`, `level`, `hp`, `mana`, `armor`, `str`, `agi`, `sta`, `inte`, `spi` FROM pet_levelstats;
1131 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET intRecordDone = 1;
1132
1133 OPEN curPetStat;
1134
1135 REPEAT
1136
1137 FETCH curPetStat INTO intCreature, intLevel, intCurrHP, intCurrMana, intCurrArmor, intCurrSTR, intCurrAGI, intCurrSTA, intCurrINT, intCurrSPI;
1138
1139 IF intLevel = intStartLvl THEN
1140 REPEAT
1141
1142 SET intLevel = intLevel + 1;
1143
1144 DELETE FROM pet_levelstats WHERE `creature_entry` = intCreature AND `level` = intLevel;
1145
1146 IF (ROUND(intCurrHP * (1 + sngHPInc) + 1)) <= intMaxHP THEN
1147 SET intCurrHP = ROUND(intCurrHP * (1 + sngHPInc) + 100);
1148 ELSE
1149 SET intCurrHP = intMaxHP;
1150 END IF;
1151
1152 IF (ROUND(intCurrMana * (1 + sngManaInc) + 1)) <= intMaxMana THEN
1153 SET intCurrMana = ROUND(intCurrMana * (1 + sngManaInc) + 100);
1154 ELSE
1155 SET intCurrMana = intMaxMana;
1156 END IF;
1157
1158 IF (ROUND(intCurrArmor * (1 + sngArmorInc) + 1)) <= intMaxArmor THEN
1159 SET intCurrArmor = ROUND(intCurrArmor * (1 + sngArmorInc) + 800);
1160 ELSE
1161 SET intCurrArmor = intMaxArmor;
1162 END IF;
1163
1164 IF (ROUND(intCurrSTR * (1 + sngStatsInc) + 1)) <= intMaxStats THEN
1165 SET intCurrSTR = ROUND(intCurrSTR * (1 + sngStatsInc) + 10);
1166 ELSE
1167 SET intCurrSTR = intMaxStats;
1168 END IF;
1169
1170 IF (ROUND(intCurrAGI * (1 + sngStatsInc) + 1)) <= intMaxStats THEN
1171 SET intCurrAGI = ROUND(intCurrAGI * (1 + sngStatsInc) + 10);
1172 ELSE
1173 SET intCurrAGI = intMaxStats;
1174 END IF;
1175
1176 IF (ROUND(intCurrSTA * (1 + sngStatsInc) + 1)) <= intMaxStats THEN
1177 SET intCurrSTA = ROUND(intCurrSTA * (1 + sngStatsInc) + 10);
1178 ELSE
1179 SET intCurrSTA = intMaxStats;
1180 END IF;
1181
1182 IF (ROUND(intCurrINT * (1 + sngStatsInc) + 1)) <= intMaxStats THEN
1183 SET intCurrINT = ROUND(intCurrINT * (1 + sngStatsInc) + 10);
1184 ELSE
1185 SET intCurrINT = intMaxStats;
1186 END IF;
1187
1188 IF (ROUND(intCurrSPI * (1 + sngStatsInc) + 1)) <= intMaxStats THEN
1189 SET intCurrSPI = ROUND(intCurrSPI * (1 + sngStatsInc) + 10);
1190 ELSE
1191 SET intCurrSPI = intMaxStats;
1192 END IF;
1193
1194 INSERT INTO pet_levelstats
1195 (`creature_entry`, `level`, `hp`, `mana`, `armor`, `str`, `agi`, `sta`, `inte`, `spi`)
1196 VALUES
1197 (intCreature, intLevel, intCurrHP, intCurrMana, intCurrArmor, intCurrSTR, intCurrAGI, intCurrSTA, intCurrINT, intCurrSPI);
1198 UNTIL intLevel = intFinishLvl END REPEAT;
1199 END IF;
1200 UNTIL intRecordDone END REPEAT;
1201
1202 CLOSE curPetStat;
1203END */$$
1204DELIMITER ;
1205
1206/* Procedure structure for procedure `sp_set_entry_list` */
1207
1208DELIMITER $$
1209
1210/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_entry_list`(IN input LONGTEXT,IN appendExisting BIT)
1211BEGIN
1212 DECLARE cur_position INT DEFAULT 1;
1213 DECLARE remainder TEXT;
1214 DECLARE cur_string VARCHAR(10);
1215 DECLARE entry_count MEDIUMINT;
1216 IF appendExisting IS NULL OR appendExisting IS FALSE THEN
1217 CREATE TABLE `tdb_entry_list` (`value` INT NOT NULL PRIMARY KEY) ENGINE=MYISAM;
1218 END IF;
1219 SET remainder = input;
1220 WHILE CHAR_LENGTH(remainder) > 0 AND cur_position > 0 DO
1221 SET cur_position = INSTR(remainder, ',');
1222 IF cur_position = 0 THEN
1223 SET cur_string = remainder;
1224 ELSE
1225 SET cur_string = LEFT(remainder, cur_position-1);
1226 END IF;
1227 IF TRIM(cur_string) != '' AND(SELECT COUNT(*) FROM `tdb_entry_list` WHERE `value`=cur_string)=0 THEN
1228 INSERT INTO `tdb_entry_list` VALUES (cur_string);
1229 END IF;
1230 SET remainder = SUBSTRING(remainder, cur_position+1);
1231 END WHILE;
1232END */$$
1233DELIMITER ;
1234
1235/* Procedure structure for procedure `sp_set_item_money` */
1236
1237DELIMITER $$
1238
1239/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_item_money`(IN item_entry INT, IN min_money INT, IN max_money INT)
1240BEGIN
1241CALL sp_error_entry('ITEM',item_entry);
1242UPDATE item_template SET minMoneyLoot=min_money, maxMoneyLoot=max_money WHERE entry = item_entry;
1243END */$$
1244DELIMITER ;
1245
1246/* Procedure structure for procedure `sp_set_item_money_bylist` */
1247
1248DELIMITER $$
1249
1250/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_item_money_bylist`(IN item_entry TEXT, IN min_money INT, IN max_money INT)
1251BEGIN
1252DECLARE remaining INT;
1253DECLARE min_entry INT;
1254CALL sp_set_entry_list(npc_entry);
1255SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1256WHILE remaining > 0 DO
1257SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1258CALL sp_error_entry('ITEM',min_entry);
1259DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1260SET remaining = remaining -1;
1261END WHILE;
1262CALL sp_set_entry_list(npc_entry);
1263SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1264CALL sp_set_entry_list(npc_entry);
1265SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1266WHILE remaining > 0 DO
1267SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1268UPDATE item_template SET minMoneyLoot=min_money, maxMoneyLoot=max_money WHERE entry = item_entry;
1269DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1270SET remaining = remaining -1;
1271END WHILE;
1272END */$$
1273DELIMITER ;
1274
1275/* Procedure structure for procedure `sp_set_npc_aggro` */
1276
1277DELIMITER $$
1278
1279/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_aggro`(IN creature_entry INT(10),IN on_off BOOLEAN)
1280BEGIN
1281 CALL `sp_error_entry`('NPC',creature_entry);
1282 IF on_off = 1 THEN
1283 UPDATE `creature_template` SET `flags_extra`=`flags_extra`&~2 WHERE `entry`= creature_entry;
1284 ELSE
1285 UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry`= creature_entry;
1286 END IF;
1287END */$$
1288DELIMITER ;
1289
1290/* Procedure structure for procedure `sp_set_npc_aggro_bylist` */
1291
1292DELIMITER $$
1293
1294/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_aggro_bylist`(IN entry_list LONGTEXT,IN on_off BOOLEAN)
1295BEGIN
1296 CALL `sp_set_entry_list` (entry_list,null);
1297 IF on_off = 1 THEN
1298 UPDATE `creature_template` SET `flags_extra`=`flags_extra`&~2 WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1299 ELSE
1300 UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1301 END IF;
1302 DROP TABLE `tdb_entry_list`;
1303END */$$
1304DELIMITER ;
1305
1306/* Procedure structure for procedure `sp_set_npc_attackable` */
1307
1308DELIMITER $$
1309
1310/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_attackable`(IN npc_entry INT, IN on_off BOOLEAN)
1311BEGIN
1312CALL sp_error_entry('NPC',npc_entry);
1313IF on_off = 1 THEN
1314UPDATE `creature_template` SET `unit_flags`=`unit_flags`|256 WHERE `entry`= npc_entry;
1315END IF;
1316IF on_off = 0 THEN
1317UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~256 WHERE `entry`= npc_entry;
1318END IF;
1319END */$$
1320DELIMITER ;
1321
1322/* Procedure structure for procedure `sp_set_npc_attackable_bylist` */
1323
1324DELIMITER $$
1325
1326/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_attackable_bylist`(IN npc_entry TEXT, IN on_off BOOLEAN)
1327BEGIN
1328DECLARE remaining INT;
1329DECLARE min_entry INT;
1330CALL sp_set_entry_list(npc_entry);
1331SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1332WHILE remaining > 0 DO
1333SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1334CALL sp_error_entry('NPC',min_entry);
1335DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1336SET remaining = remaining -1;
1337END WHILE;
1338CALL sp_set_entry_list(npc_entry);
1339SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1340IF on_off = 1 THEN
1341WHILE remaining > 0 DO
1342SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1343UPDATE `creature_template` SET `unit_flags`=`unit_flags`|256 WHERE `entry`= min_entry;
1344DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1345SET remaining = remaining -1;
1346END WHILE;
1347END IF;
1348IF on_off = 0 THEN
1349WHILE remaining > 0 DO
1350SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1351UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~256 WHERE `entry`= min_entry;
1352DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1353SET remaining = remaining -1;
1354END WHILE;
1355END IF;
1356END */$$
1357DELIMITER ;
1358
1359/* Procedure structure for procedure `sp_set_npc_civilian` */
1360
1361DELIMITER $$
1362
1363/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_civilian`(IN npc_entry INT(10), IN on_off BOOLEAN)
1364BEGIN
1365CALL sp_error_entry('NPC',npc_entry);
1366IF on_off = 1 THEN
1367UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry`= npc_entry;
1368ELSEIF on_off = 0 THEN
1369UPDATE `creature_template` SET `flags_extra`=`flags_extra`&~2 WHERE `entry`= npc_entry;
1370END IF;
1371END */$$
1372DELIMITER ;
1373
1374/* Procedure structure for procedure `sp_set_npc_civilian_bylist` */
1375
1376DELIMITER $$
1377
1378/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_civilian_bylist`(IN npc_entry TEXT, IN on_off BOOLEAN)
1379BEGIN
1380
1381DECLARE remaining INT;
1382DECLARE min_entry INT;
1383CALL sp_set_entry_list(npc_entry);
1384SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1385WHILE remaining > 0 DO
1386SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1387CALL sp_error_entry('NPC',min_entry);
1388DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1389SET remaining = remaining -1;
1390END WHILE;
1391CALL sp_set_entry_list(npc_entry);
1392SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1393CALL sp_set_entry_list(npc_entry);
1394SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1395WHILE remaining > 0 DO
1396SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1397CALL sp_error_entry('NPC',min_entry);
1398DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1399SET remaining = remaining -1;
1400END WHILE;
1401CALL sp_set_entry_list(npc_entry);
1402SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1403IF on_off = 1 THEN
1404WHILE remaining > 0 DO
1405SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1406UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry`= min_entry;
1407DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1408SET remaining = remaining -1;
1409END WHILE;
1410END IF;
1411IF on_off = 0 THEN
1412WHILE remaining > 0 DO
1413SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1414UPDATE `creature_template` SET `flags_extra`=`flags_extra`&~2 WHERE `entry`= min_entry;
1415DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1416SET remaining = remaining -1;
1417END WHILE;
1418END IF;
1419END */$$
1420DELIMITER ;
1421
1422/* Procedure structure for procedure `sp_set_npc_deadquest` */
1423
1424DELIMITER $$
1425
1426/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_deadquest`(IN npc_entry INT(10))
1427BEGIN
1428 DECLARE check_addon_exists INT;
1429 CALL `sp_error_entry`('NPC',npc_entry);
1430 UPDATE `creature` SET `MovementType`=0,`spawndist`=0,`Deathstate`=0 WHERE `id`=npc_entry;
1431 UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry`=npc_entry;
1432
1433
1434 SET check_addon_exists = (SELECT COUNT(`entry`) FROM `creature_template_addon` WHERE `entry`=npc_entry);
1435 IF check_addon_exists > 0 THEN
1436 UPDATE `creature_template_addon` SET `bytes1`=7 WHERE `entry`=npc_entry;
1437 ELSE
1438 INSERT INTO `creature_template_addon` VALUES (npc_entry,0,0,7,0,0, '');
1439 END IF;
1440END */$$
1441DELIMITER ;
1442
1443/* Procedure structure for procedure `sp_set_npc_faction` */
1444
1445DELIMITER $$
1446
1447/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_faction`(IN npc_entry INT(10), factionA INT(10), factionH INT(10))
1448BEGIN
1449 CALL `sp_error_entry`('NPC',npc_entry);
1450 UPDATE `creature_template` SET `faction_A`=IFNULL(factionA,`faction_A`),`faction_H`=IFNULL(factionH,`faction_A`) WHERE `entry`=npc_entry;
1451END */$$
1452DELIMITER ;
1453
1454/* Procedure structure for procedure `sp_set_npc_faction_bylist` */
1455
1456DELIMITER $$
1457
1458/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_faction_bylist`(IN entry_list LONGTEXT, factionA INT(10), factionH INT(10))
1459BEGIN
1460 CALL `sp_set_entry_list` (entry_list,null);
1461 UPDATE `creature_template` SET `faction_A`=IFNULL(factionA,`faction_A`),`faction_H`=IFNULL(factionH,`faction_A`) WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1462 DROP TABLE `tdb_entry_list`;
1463END */$$
1464DELIMITER ;
1465
1466/* Procedure structure for procedure `sp_set_npc_lootable` */
1467
1468DELIMITER $$
1469
1470/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_lootable`(IN npc_entry INT(10), IN on_off BOOLEAN)
1471BEGIN
1472CALL sp_error_entry('NPC',npc_entry);
1473IF on_off = 1 THEN
1474UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`&~1 WHERE `entry`= npc_entry;
1475ELSEIF on_off = 0 THEN
1476UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`|1 WHERE `entry`= npc_entry;
1477END IF;
1478END */$$
1479DELIMITER ;
1480
1481/* Procedure structure for procedure `sp_set_npc_lootable_bylist` */
1482
1483DELIMITER $$
1484
1485/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_lootable_bylist`(IN npc_entry TEXT, IN on_off BOOLEAN)
1486BEGIN
1487
1488DECLARE remaining INT;
1489DECLARE min_entry INT;
1490CALL sp_set_entry_list(npc_entry);
1491SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1492WHILE remaining > 0 DO
1493SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1494CALL sp_error_entry('NPC',min_entry);
1495DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1496SET remaining = remaining -1;
1497END WHILE;
1498CALL sp_set_entry_list(npc_entry);
1499SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1500CALL sp_set_entry_list(npc_entry);
1501SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1502WHILE remaining > 0 DO
1503SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1504CALL sp_error_entry('NPC',min_entry);
1505DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1506SET remaining = remaining -1;
1507END WHILE;
1508CALL sp_set_entry_list(npc_entry);
1509SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1510IF on_off = 1 THEN
1511WHILE remaining > 0 DO
1512SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1513UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`&~1 WHERE `entry`= min_entry;
1514DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1515SET remaining = remaining -1;
1516END WHILE;
1517END IF;
1518IF on_off = 0 THEN
1519WHILE remaining > 0 DO
1520SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1521UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`|1 WHERE `entry`= min_entry;
1522DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1523SET remaining = remaining -1;
1524END WHILE;
1525END IF;
1526END */$$
1527DELIMITER ;
1528
1529/* Procedure structure for procedure `sp_set_npc_lootid` */
1530
1531DELIMITER $$
1532
1533/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_lootid`(IN npcEntry MEDIUMINT(5),IN lootID MEDIUMINT(5))
1534BEGIN
1535 CALL `sp_error_entry`('NPC',npcEntry);
1536 UPDATE `creature_template` SET `lootid`=IFNULL(lootID,npcEntry) WHERE `entry`=npcEntry;
1537END */$$
1538DELIMITER ;
1539
1540/* Procedure structure for procedure `sp_set_npc_lootid_bylist` */
1541
1542DELIMITER $$
1543
1544/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_lootid_bylist`(IN entryList LONGTEXT,IN lootID MEDIUMINT(5))
1545BEGIN
1546 CALL `sp_set_entry_list` (entryList,null);
1547 UPDATE `creature_template` SET `lootid`=IFNULL(lootID,`entry`) WHERE `entry` IN (SELECT DISTINCT * FROM `tdb_entry_list`);
1548
1549 DROP TABLE `tdb_entry_list`;
1550END */$$
1551DELIMITER ;
1552
1553/* Procedure structure for procedure `sp_set_npc_lootid_bytable` */
1554
1555DELIMITER $$
1556
1557/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_lootid_bytable`(IN lootID MEDIUMINT(5))
1558BEGIN
1559 UPDATE `creature_template` SET `lootid`=IFNULL(lootID,`entry`) WHERE `entry` IN (SELECT DISTINCT * FROM `tdb_entry_list`);
1560END */$$
1561DELIMITER ;
1562
1563/* Procedure structure for procedure `sp_set_npc_path` */
1564
1565DELIMITER $$
1566
1567/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_path`(IN npc_guid INT(10),OUT path INT(10))
1568BEGIN
1569 CALL `sp_error_guid`('NPC',npc_guid);
1570
1571 SELECT npc_guid*10 INTO path;
1572 UPDATE `creature` SET `MovementType`=2,`spawndist`=0 WHERE `guid`=npc_guid;
1573 IF (SELECT COUNT(*) FROM `creature_addon` WHERE `guid`=npc_guid) > 0 THEN
1574 UPDATE `creature_addon` SET `path_id`=path WHERE `guid`=npc_guid;
1575 ELSE
1576 INSERT INTO `creature_addon` (`guid`,`path_id`) VALUES (npc_guid,path);
1577 END IF;
1578
1579 DELETE FROM `waypoint_data` WHERE `id`=path;
1580END */$$
1581DELIMITER ;
1582
1583/* Procedure structure for procedure `sp_set_npc_selectable` */
1584
1585DELIMITER $$
1586
1587/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_selectable`(IN npc_entry INT(10),IN on_off BOOLEAN)
1588BEGIN
1589 CALL `sp_error_entry`('NPC',npc_entry);
1590 IF on_off=1 THEN
1591 UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~33554432 WHERE `entry`=npc_entry;
1592 ELSE
1593 UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33554432 WHERE `entry`=npc_entry;
1594 END IF;
1595END */$$
1596DELIMITER ;
1597
1598/* Procedure structure for procedure `sp_set_npc_selectable_bylist` */
1599
1600DELIMITER $$
1601
1602/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_selectable_bylist`(IN entry_list LONGTEXT,IN on_off BOOLEAN)
1603BEGIN
1604 CALL `sp_set_entry_list` (entry_list,null);
1605 IF on_off=1 THEN
1606 UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~33554432 WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1607 ELSE
1608 UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33554432 WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1609 END IF;
1610 DROP TABLE `tdb_entry_list`;
1611END */$$
1612DELIMITER ;
1613
1614/* Procedure structure for procedure `sp_set_npc_targetable` */
1615
1616DELIMITER $$
1617
1618/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_targetable`(IN npc_entry INT(10), IN on_off BOOLEAN)
1619BEGIN
1620CALL sp_error_entry('NPC',npc_entry);
1621IF on_off = 1 THEN
1622UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~33554432 WHERE `entry`= npc_entry;
1623ELSEIF on_off = 0 THEN
1624UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33554432 WHERE `entry`= npc_entry;
1625END IF;
1626END */$$
1627DELIMITER ;
1628
1629/* Procedure structure for procedure `sp_set_npc_targetable_bylist` */
1630
1631DELIMITER $$
1632
1633/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_targetable_bylist`(IN npc_entry TEXT, IN on_off BOOLEAN)
1634BEGIN
1635
1636DECLARE remaining INT;
1637DECLARE min_entry INT;
1638CALL sp_set_entry_list(npc_entry);
1639SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1640WHILE remaining > 0 DO
1641SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1642CALL sp_error_entry('NPC',min_entry);
1643DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1644SET remaining = remaining -1;
1645END WHILE;
1646CALL sp_set_entry_list(npc_entry);
1647SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1648CALL sp_set_entry_list(npc_entry);
1649SET remaining = (SELECT COUNT(`value`) FROM tdb_entry_list);
1650IF on_off = 1 THEN
1651WHILE remaining > 0 DO
1652SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1653UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~33554432 WHERE `entry`= min_entry;
1654DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1655SET remaining = remaining -1;
1656END WHILE;
1657END IF;
1658IF on_off = 0 THEN
1659WHILE remaining > 0 DO
1660SET min_entry = (SELECT MIN(`value`) FROM tdb_entry_list);
1661UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33554432 WHERE `entry`= min_entry;
1662DELETE FROM tdb_entry_list WHERE `value`=min_entry;
1663SET remaining = remaining -1;
1664END WHILE;
1665END IF;
1666END */$$
1667DELIMITER ;
1668
1669/* Procedure structure for procedure `sp_set_npc_trigger` */
1670
1671DELIMITER $$
1672
1673/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_trigger`(IN npc_entry INT(10),IN on_off BOOLEAN)
1674BEGIN
1675 CALL `sp_error_entry`('NPC',npc_entry);
1676 IF on_off=1 THEN
1677 UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `id`=npc_entry;
1678 UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2,`unit_flags`=`unit_flags`|33554432 WHERE `entry`=npc_entry;
1679 ELSE
1680 UPDATE `creature_template` SET `flags_extra`=`flags_extra`&~2,`unit_flags`=`unit_flags`&~33554432 WHERE `entry`=npc_entry;
1681 END IF;
1682END */$$
1683DELIMITER ;
1684
1685/* Procedure structure for procedure `sp_set_npc_trigger_bylist` */
1686
1687DELIMITER $$
1688
1689/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_npc_trigger_bylist`(IN entry_list LONGTEXT,IN on_off BOOLEAN)
1690BEGIN
1691 CALL `sp_set_entry_list` (entry_list,null);
1692 IF on_off=1 THEN
1693 UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `id` IN (SELECT * FROM `tdb_entry_list`);
1694 UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2,`unit_flags`=`unit_flags`|33554432 WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1695 ELSE
1696 UPDATE `creature_template` SET `flags_extra`=`flags_extra`&~2,`unit_flags`=`unit_flags`&~33554432 WHERE `entry` IN (SELECT * FROM `tdb_entry_list`);
1697 END IF;
1698 DROP TABLE `tdb_entry_list`;
1699END */$$
1700DELIMITER ;
1701
1702/* Procedure structure for procedure `sp_set_quest_level` */
1703
1704DELIMITER $$
1705
1706/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_quest_level`(IN quest_entry INT(10), IN quest_level INT(10))
1707BEGIN
1708CALL `sp_error_entry`('QUEST',quest_entry);
1709UPDATE `quest_template` SET `MinLevel`= quest_level WHERE `entry`= quest_entry;
1710END */$$
1711DELIMITER ;
1712
1713/* Procedure structure for procedure `sp_set_quest_next` */
1714
1715DELIMITER $$
1716
1717/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_quest_next`(IN quest_entry INT(10), IN next_quest INT(10))
1718BEGIN
1719CALL `sp_error_entry`('QUEST',quest_entry);
1720UPDATE `quest_template` SET `NextQuestId`= next_quest WHERE `entry`= quest_entry;
1721END */$$
1722DELIMITER ;
1723
1724/* Procedure structure for procedure `sp_set_quest_previous` */
1725
1726DELIMITER $$
1727
1728/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_quest_previous`(IN quest_entry INT(10), IN prev_quest INT(10))
1729BEGIN
1730CALL `sp_error_entry`('QUEST',quest_entry);
1731UPDATE `quest_template` SET `PrevQuestId`= prev_quest WHERE `entry`= quest_entry;
1732END */$$
1733DELIMITER ;
1734
1735/* Procedure structure for procedure `sp_set_spell_target` */
1736
1737DELIMITER $$
1738
1739/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_set_spell_target`(IN target_type VARCHAR(10),IN target_entry INT(11),IN spell_id INT(11))
1740BEGIN
1741 CASE UCASE(target_type)
1742 WHEN 'GO' THEN BEGIN
1743 IF target_entry > 0 THEN
1744 CALL `sp_error_entry`('GO',target_entry);
1745 END IF;
1746 DELETE FROM `spell_script_target` WHERE `entry`=spell_id;
1747 INSERT INTO `spell_script_target`(`entry`,`type`,`targetEntry`) VALUES (spell_id,0,target_entry);
1748 END;
1749 WHEN 'NPC' THEN BEGIN
1750 IF target_entry > 0 THEN
1751 CALL `sp_error_entry`('NPC',target_entry);
1752 END IF;
1753 DELETE FROM `spell_script_target` WHERE `entry`=spell_id;
1754 INSERT INTO `spell_script_target`(`entry`,`type`,`targetEntry`) VALUES (spell_id,1,target_entry);
1755 END;
1756 WHEN 'DEAD_NPC' THEN BEGIN
1757 CALL `sp_error_entry`('NPC',target_entry);
1758 DELETE FROM `spell_script_target` WHERE `entry`=spell_id;
1759 INSERT INTO `spell_script_target`(`entry`,`type`,`targetEntry`) VALUES (spell_id,2,target_entry);
1760 END;
1761 WHEN 'MINION' THEN BEGIN
1762 CALL `sp_error_entry`('NPC',target_entry);
1763 DELETE FROM `spell_script_target` WHERE `entry`=spell_id;
1764 INSERT INTO `spell_script_target`(`entry`,`type`,`targetEntry`) VALUES (spell_id,3,target_entry);
1765 END;
1766 ELSE CALL INCORRECT_TARGET_TYPE;
1767 END CASE;
1768END */$$
1769DELIMITER ;
1770
1771/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
1772/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
1773/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;