aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/old/3.3.5a/2012_09_16_00_world_version.sql (renamed from sql/updates/world/2012_09_16_00_world_version.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_16_01_world_conditions.sql (renamed from sql/updates/world/2012_09_16_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_16_01_world_creature_loot_template.sql (renamed from sql/updates/world/2012_09_16_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_16_01_world_creature_template_addon.sql (renamed from sql/updates/world/2012_09_16_01_world_creature_template_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_16_02_world_fires_over_skettis.sql (renamed from sql/updates/world/2012_09_16_02_world_fires_over_skettis.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_16_03_world_spell_script_names.sql (renamed from sql/updates/world/2012_09_16_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_17_00_world_spell_bonus_data.sql (renamed from sql/updates/world/2012_09_17_00_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_17_01_world_spell_bonus_data.sql (renamed from sql/updates/world/2012_09_17_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_17_01_world_spell_script_names.sql (renamed from sql/updates/world/2012_09_17_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_17_02_world_misc.sql (renamed from sql/updates/world/2012_09_17_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_18_00_world_creature_template.sql (renamed from sql/updates/world/2012_09_18_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_18_01_world_creature_template.sql (renamed from sql/updates/world/2012_09_18_01_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_19_00_world_dwarfageddon.sql (renamed from sql/updates/world/2012_09_19_00_world_dwarfageddon.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_19_00_world_reference_loot_template.sql (renamed from sql/updates/world/2012_09_19_00_world_reference_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_20_00_world_creature_loot_template.sql (renamed from sql/updates/world/2012_09_20_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_22_01_world_i_was_a_lot_of_things.sql (renamed from sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_22_03_world_game_event.sql (renamed from sql/updates/world/2012_09_22_03_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_24_00_world_spell_script_names.sql (renamed from sql/updates/world/2012_09_24_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_24_01_world_spell_script_names.sql (renamed from sql/updates/world/2012_09_24_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_24_02_world_misc.sql (renamed from sql/updates/world/2012_09_24_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_24_03_world_misc.sql (renamed from sql/updates/world/2012_09_24_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_26_00_world_misc.sql (renamed from sql/updates/world/2012_09_26_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_26_01_world_spell_bonus_data.sql (renamed from sql/updates/world/2012_09_26_01_world_spell_bonus_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_27_01_world_custodian_of_time.sql (renamed from sql/updates/world/2012_09_27_01_world_custodian_of_time.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_28_00_world_creature_model_info.sql (renamed from sql/updates/world/2012_09_28_00_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_29_00_world_creature_model_info.sql (renamed from sql/updates/world/2012_09_29_00_world_creature_model_info.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_29_01_world_creature_text.sql (renamed from sql/updates/world/2012_09_29_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_30_00_world_creature_text.sql (renamed from sql/updates/world/2012_09_30_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_30_01_world_player_factionchange_titles.sql (renamed from sql/updates/world/2012_09_30_01_world_player_factionchange_titles.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_30_02_world_creature_text.sql (renamed from sql/updates/world/2012_09_30_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_09_30_03_world_creature_text.sql (renamed from sql/updates/world/2012_09_30_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_02_00_world_oculus.sql (renamed from sql/updates/world/2012_10_02_00_world_oculus.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_04_00_world_spelldifficulty_dbc.sql (renamed from sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_04_01_world_script_texts.sql (renamed from sql/updates/world/2012_10_04_01_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_05_00_world_misc.sql (renamed from sql/updates/world/2012_10_05_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_05_01_world_spell_script_names.sql (renamed from sql/updates/world/2012_10_05_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_00_world_spell_difficulty.sql (renamed from sql/updates/world/2012_10_06_00_world_spell_difficulty.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_00_world_spell_script_names.sql (renamed from sql/updates/world/2012_10_06_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_01_world_spell_dbc.sql (renamed from sql/updates/world/2012_10_06_01_world_spell_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_02_world_misc_templates.sql (renamed from sql/updates/world/2012_10_06_02_world_misc_templates.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_03_world_creature_text.sql (renamed from sql/updates/world/2012_10_06_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_04_world_misc_spawns.sql (renamed from sql/updates/world/2012_10_06_04_world_misc_spawns.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_06_05_world_spell_script_names.sql (renamed from sql/updates/world/2012_10_06_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_07_00_world_creature_loot_template.sql (renamed from sql/updates/world/2012_10_07_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_07_01_world_spell_proc_event.sql (renamed from sql/updates/world/2012_10_07_01_world_spell_proc_event.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_09_00_character_glyphs.sql (renamed from sql/updates/characters/2012_10_09_00_character_glyphs.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_09_00_world_spell_groups.sql (renamed from sql/updates/world/2012_10_09_00_world_spell_groups.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_09_01_world_spell_groups.sql (renamed from sql/updates/world/2012_10_09_01_world_spell_groups.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_09_02_world_spell_groups.sql (renamed from sql/updates/world/2012_10_09_02_world_spell_groups.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_10_00_world_battleground_template.sql (renamed from sql/updates/world/2012_10_10_00_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_11_00_world_gameobject.sql (renamed from sql/updates/world/2012_10_11_00_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_13_00_world_creature_template.sql (renamed from sql/updates/world/2012_10_13_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_14_00_world_creature.sql (renamed from sql/updates/world/2012_10_14_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_16_00_world_spell_area.sql (renamed from sql/updates/world/2012_10_16_00_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_17_00_character_gm_tickets.sql (renamed from sql/updates/characters/2012_10_17_00_character_gm_tickets.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_20_00_world_transports.sql (renamed from sql/updates/world/2012_10_20_00_world_transports.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_20_01_world_spell_script_names.sql (renamed from sql/updates/world/2012_10_20_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_20_02_world_creature_text.sql (renamed from sql/updates/world/2012_10_20_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_21_00_world_conditions.sql (renamed from sql/updates/world/2012_10_21_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_21_01_world_misc.sql (renamed from sql/updates/world/2012_10_21_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_23_00_world_trinity_string.sql (renamed from sql/updates/world/2012_10_23_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_23_01_world_command.sql (renamed from sql/updates/world/2012_10_23_01_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_25_00_world_childrens_week.sql (renamed from sql/updates/world/2012_10_25_00_world_childrens_week.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_26_00_world_sai.sql (renamed from sql/updates/world/2012_10_26_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_27_00_world_creature.sql (renamed from sql/updates/world/2012_10_27_00_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_27_01_world_creature_loot_template.sql (renamed from sql/updates/world/2012_10_27_01_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_10_29_00_world_conditions.sql (renamed from sql/updates/world/2012_10_29_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_02_00_character_misc.sql (renamed from sql/updates/characters/2012_11_02_00_character_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_03_00_world_creature_loot_template.sql (renamed from sql/updates/world/2012_11_03_00_world_creature_loot_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_07_00_world_misc.sql (renamed from sql/updates/world/2012_11_07_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_11_00_world_sai.sql (renamed from sql/updates/world/2012_11_11_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_11_01_world_quest_template.sql (renamed from sql/updates/world/2012_11_11_01_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_11_02_world_gossip_menu.sql (renamed from sql/updates/world/2012_11_11_02_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_11_03_world_gossip_menu.sql (renamed from sql/updates/world/2012_11_11_03_world_gossip_menu.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_12_00_world_quest_template.sql (renamed from sql/updates/world/2012_11_12_00_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_12_01_world_misc.sql (renamed from sql/updates/world/2012_11_12_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_12_02_world_quest_template.sql (renamed from sql/updates/world/2012_11_12_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_12_03_world_misc.sql (renamed from sql/updates/world/2012_11_12_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_00_world_waypoints.sql (renamed from sql/updates/world/2012_11_13_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_01_world_misc.sql (renamed from sql/updates/world/2012_11_13_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_02_world_creature.sql (renamed from sql/updates/world/2012_11_13_02_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_03_world_gameevent.sql (renamed from sql/updates/world/2012_11_13_03_world_gameevent.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_04_world_gameeventquest.sql (renamed from sql/updates/world/2012_11_13_04_world_gameeventquest.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_05_world_player_factionchange_items.sql (renamed from sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_13_06_world_trinity_string.sql (renamed from sql/updates/world/2012_11_13_06_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_14_00_world_sai.sql (renamed from sql/updates/world/2012_11_14_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_14_00_world_various_fixes.sql (renamed from sql/updates/world/2012_11_14_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_14_02_world_battleground_template.sql (renamed from sql/updates/world/2012_11_14_02_world_battleground_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_16_00_world_utgarde.sql (renamed from sql/updates/world/2012_11_16_00_world_utgarde.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_16_01_world_utgarde.sql (renamed from sql/updates/world/2012_11_16_01_world_utgarde.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_16_02_world_creature_ai_summons.sql (renamed from sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_17_00_world_various_fixes.sql (renamed from sql/updates/world/2012_11_17_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_18_00_character_calendar.sql (renamed from sql/updates/characters/2012_11_18_00_character_calendar.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_18_00_world_ormorok.sql (renamed from sql/updates/world/2012_11_18_00_world_ormorok.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_18_01_world_creature_text.sql (renamed from sql/updates/world/2012_11_18_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_18_01_world_gameobject.sql (renamed from sql/updates/world/2012_11_18_01_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_18_02_world_toc.sql (renamed from sql/updates/world/2012_11_18_02_world_toc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_19_00_world_various_fixes.sql (renamed from sql/updates/world/2012_11_19_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_19_01_world_pilgrims_bounty.sql (renamed from sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_19_02_world_misc.sql (renamed from sql/updates/world/2012_11_19_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_19_03_world_ysera.sql (renamed from sql/updates/world/2012_11_19_03_world_ysera.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_20_00_world_creature_text.sql (renamed from sql/updates/world/2012_11_20_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_21_00_world_sai.sql (renamed from sql/updates/world/2012_11_21_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_00_world_conditions.sql (renamed from sql/updates/world/2012_11_24_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_00_world_creature_text.sql (renamed from sql/updates/world/2012_11_24_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_01_world_quest_start_scripts.sql (renamed from sql/updates/world/2012_11_24_01_world_quest_start_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_02_world_creature_text.sql (renamed from sql/updates/world/2012_11_24_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_02_world_gossip_menu_option.sql (renamed from sql/updates/world/2012_11_24_02_world_gossip_menu_option.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_03_world_various_fixes.sql (renamed from sql/updates/world/2012_11_24_03_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_24_04_world_sai.sql (renamed from sql/updates/world/2012_11_24_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_25_00_world_various_fixes.sql (renamed from sql/updates/world/2012_11_25_00_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_25_01_world_various_fixes.sql (renamed from sql/updates/world/2012_11_25_01_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_26_02_world_conditions.sql (renamed from sql/updates/world/2012_11_26_02_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_26_03_world_misc.sql (renamed from sql/updates/world/2012_11_26_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_27_00_world_misc.sql (renamed from sql/updates/world/2012_11_27_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_27_01_world_achievement_criteria_data.sql (renamed from sql/updates/world/2012_11_27_01_world_achievement_criteria_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_11_30_00_world_spell_script_names.sql (renamed from sql/updates/world/2012_11_30_00_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_01_00_world_assembly_of_iron.sql (renamed from sql/updates/world/2012_12_01_00_world_assembly_of_iron.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_01_01_world_misc.sql (renamed from sql/updates/world/2012_12_01_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_01_02_world_creature_text.sql (renamed from sql/updates/world/2012_12_01_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_01_03_world_ulduar_creature_text.sql (renamed from sql/updates/world/2012_12_01_03_world_ulduar_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_01_04_world_spelldifficulty_dbc.sql (renamed from sql/updates/world/2012_12_01_04_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_01_05_world_creature_template.sql (renamed from sql/updates/world/2012_12_01_05_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_02_00_world_game_object.sql (renamed from sql/updates/world/2012_12_02_00_world_game_object.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_02_01_world_creature_text.sql (renamed from sql/updates/world/2012_12_02_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_02_02_world_waypoint_data.sql (renamed from sql/updates/world/2012_12_02_02_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_03_00_character_character_queststatus_monthly.sql (renamed from sql/updates/characters/2012_12_03_00_character_character_queststatus_monthly.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_04_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_01_world_quest_start_scripts.sql (renamed from sql/updates/world/2012_12_04_01_world_quest_start_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_02_world_reputation_reward_rate.sql (renamed from sql/updates/world/2012_12_04_02_world_reputation_reward_rate.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_03_world_reputation_reward_rate.sql (renamed from sql/updates/world/2012_12_04_03_world_reputation_reward_rate.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_04_world_creature_text.sql (renamed from sql/updates/world/2012_12_04_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_05_world_spell_script_names.sql (renamed from sql/updates/world/2012_12_04_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_04_06_world_spell_creature_text.sql (renamed from sql/updates/world/2012_12_04_06_world_spell_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_05_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_05_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_06_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_06_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_07_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_00_world_script_texts.sql (renamed from sql/updates/world/2012_12_07_00_world_script_texts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_01_world_misc.sql (renamed from sql/updates/world/2012_12_07_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_02_world_tracker_pitcrawler.sql (renamed from sql/updates/world/2012_12_07_02_world_tracker_pitcrawler.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_03_world_tracker_trista.sql (renamed from sql/updates/world/2012_12_07_03_world_tracker_trista.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_04_world_misc.sql (renamed from sql/updates/world/2012_12_07_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_05_world_creature_text.sql (renamed from sql/updates/world/2012_12_07_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_06_world_sai.sql (renamed from sql/updates/world/2012_12_07_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_07_world_sai.sql (renamed from sql/updates/world/2012_12_07_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_08_world_misc.sql (renamed from sql/updates/world/2012_12_07_08_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_07_09_world_db_script_string.sql (renamed from sql/updates/world/2012_12_07_09_world_db_script_string.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_08_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_08_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_08_01_world_sai.sql (renamed from sql/updates/world/2012_12_08_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_09_00_world_conditions.sql (renamed from sql/updates/world/2012_12_09_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_09_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_09_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_09_01_world_misc.sql (renamed from sql/updates/world/2012_12_09_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_09_02_world_quest_template.sql (renamed from sql/updates/world/2012_12_09_02_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_10_00_world_smart_scripts.sql (renamed from sql/updates/world/2012_12_10_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_10_01_world_spell_script_names.sql (renamed from sql/updates/world/2012_12_10_01_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_10_02_world_spawns_waypoints.sql (renamed from sql/updates/world/2012_12_10_02_world_spawns_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_13_00_world.sql (renamed from sql/updates/world/2012_12_13_00_world.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_14_00_world_conditions.sql (renamed from sql/updates/world/2012_12_14_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_14_01_world_waypoint_data.sql (renamed from sql/updates/world/2012_12_14_01_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_14_02_world_misc.sql (renamed from sql/updates/world/2012_12_14_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_14_03_world_npc_spellclick_spells.sql (renamed from sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_14_04_world_misc.sql (renamed from sql/updates/world/2012_12_14_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_14_05_world_spell_script_names.sql (renamed from sql/updates/world/2012_12_14_05_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_15_00_world_waypoint_data.sql (renamed from sql/updates/world/2012_12_15_00_world_waypoint_data.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_15_01_world_sai.sql (renamed from sql/updates/world/2012_12_15_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_15_02_world_sai.sql (renamed from sql/updates/world/2012_12_15_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_15_03_world_quest_end_scripts.sql (renamed from sql/updates/world/2012_12_15_03_world_quest_end_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_16_00_world_creature_addon.sql (renamed from sql/updates/world/2012_12_16_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_16_01_world_npc_vendor.sql (renamed from sql/updates/world/2012_12_16_01_world_npc_vendor.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_16_02_world_creature_text.sql (renamed from sql/updates/world/2012_12_16_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_16_03_world_sai.sql (renamed from sql/updates/world/2012_12_16_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_17_00_world_creature_template.sql (renamed from sql/updates/world/2012_12_17_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_17_00_world_song_of_wind_and_water.sql (renamed from sql/updates/world/2012_12_17_00_world_song_of_wind_and_water.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_17_00_world_spell_linked_spell.sql (renamed from sql/updates/world/2012_12_17_00_world_spell_linked_spell.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_18_00_character_worldstates.sql (renamed from sql/updates/characters/2012_12_18_00_character_worldstates.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_18_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_18_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_18_00_world_waking_the_sleeper.sql (renamed from sql/updates/world/2012_12_18_00_world_waking_the_sleeper.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_18_01_world_creature_text.sql (renamed from sql/updates/world/2012_12_18_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_18_02_world_misc.sql (renamed from sql/updates/world/2012_12_18_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_18_02_world_sai.sql (renamed from sql/updates/world/2012_12_18_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_19_00_world_sai.sql (renamed from sql/updates/world/2012_12_19_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_19_01_world_viscidus.sql (renamed from sql/updates/world/2012_12_19_01_world_viscidus.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_19_02_world_sai.sql (renamed from sql/updates/world/2012_12_19_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_20_00_characters_create_item_loot.sql (renamed from sql/updates/characters/2012_12_20_00_characters_create_item_loot.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_20_00_world_conditions.sql (renamed from sql/updates/world/2012_12_20_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_20_01_world_conditions.sql (renamed from sql/updates/world/2012_12_20_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_20_02_world_misc.sql (renamed from sql/updates/world/2012_12_20_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_20_03_world_conditions.sql (renamed from sql/updates/world/2012_12_20_03_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_21_00_world_conditions.sql (renamed from sql/updates/world/2012_12_21_00_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_21_01_world_conditions.sql (renamed from sql/updates/world/2012_12_21_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_22_01_world_sai.sql (renamed from sql/updates/world/2012_12_22_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_22_02_world_the_crusaders_pinnacle.sql (renamed from sql/updates/world/2012_12_22_02_world_the_crusaders_pinnacle.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_23_00_world_creature_text.sql (renamed from sql/updates/world/2012_12_23_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_23_01_world_creature_text.sql (renamed from sql/updates/world/2012_12_23_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_23_02_world_trinity_string.sql (renamed from sql/updates/world/2012_12_23_02_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_23_03_world_misc.sql (renamed from sql/updates/world/2012_12_23_03_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_00_world_defending_wyrmrest_temple.sql (renamed from sql/updates/world/2012_12_24_00_world_defending_wyrmrest_temple.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_01_world_sai.sql (renamed from sql/updates/world/2012_12_24_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_02_world_sai.sql (renamed from sql/updates/world/2012_12_24_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_03_world_sai.sql (renamed from sql/updates/world/2012_12_24_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_04_world_creature.sql (renamed from sql/updates/world/2012_12_24_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_05_world_object.sql (renamed from sql/updates/world/2012_12_24_05_world_object.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_06_world_reputation.sql (renamed from sql/updates/world/2012_12_24_06_world_reputation.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_07_world_sai.sql (renamed from sql/updates/world/2012_12_24_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_08_world_conditions.sql (renamed from sql/updates/world/2012_12_24_08_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_24_09_world_sai.sql (renamed from sql/updates/world/2012_12_24_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_25_00_world_sai.sql (renamed from sql/updates/world/2012_12_25_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_25_01_world_sai.sql (renamed from sql/updates/world/2012_12_25_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_25_02_world_sai.sql (renamed from sql/updates/world/2012_12_25_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_25_03_world_sai.sql (renamed from sql/updates/world/2012_12_25_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_25_04_world_sai.sql (renamed from sql/updates/world/2012_12_25_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_01_world_creature_text.sql (renamed from sql/updates/world/2012_12_26_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_02_world_sai.sql (renamed from sql/updates/world/2012_12_26_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_03_world_sai.sql (renamed from sql/updates/world/2012_12_26_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_04_world_sai.sql (renamed from sql/updates/world/2012_12_26_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_05_world_sai.sql (renamed from sql/updates/world/2012_12_26_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_06_world_sai.sql (renamed from sql/updates/world/2012_12_26_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_07_world_game_event.sql (renamed from sql/updates/world/2012_12_26_07_world_game_event.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_08_world_sai.sql (renamed from sql/updates/world/2012_12_26_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_09_world_sai.sql (renamed from sql/updates/world/2012_12_26_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_10_world_sai.sql (renamed from sql/updates/world/2012_12_26_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_11_world_sai.sql (renamed from sql/updates/world/2012_12_26_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_12_world_quest_end_scripts.sql (renamed from sql/updates/world/2012_12_26_12_world_quest_end_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_13_world_sai.sql (renamed from sql/updates/world/2012_12_26_13_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_14_world_sai.sql (renamed from sql/updates/world/2012_12_26_14_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_15_world_sai.sql (renamed from sql/updates/world/2012_12_26_15_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_16_world_sai.sql (renamed from sql/updates/world/2012_12_26_16_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_17_world_sai.sql (renamed from sql/updates/world/2012_12_26_17_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_18_world_sai.sql (renamed from sql/updates/world/2012_12_26_18_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_19_world_sai.sql (renamed from sql/updates/world/2012_12_26_19_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_26_20_world_sai.sql (renamed from sql/updates/world/2012_12_26_20_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_27_00_world_orgrims_hammer.sql (renamed from sql/updates/world/2012_12_27_00_world_orgrims_hammer.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_27_01_world_locales_quest.sql (renamed from sql/updates/world/2012_12_27_01_world_locales_quest.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_27_02_world_locales.sql (renamed from sql/updates/world/2012_12_27_02_world_locales.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_27_03_world_sai.sql (renamed from sql/updates/world/2012_12_27_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_27_04_world_the_shadows_vault.sql (renamed from sql/updates/world/2012_12_27_04_world_the_shadows_vault.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_28_00_world_command.sql (renamed from sql/updates/world/2012_12_28_00_world_command.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_28_01_world_misc.sql (renamed from sql/updates/world/2012_12_28_01_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_28_02_world_sai.sql (renamed from sql/updates/world/2012_12_28_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_28_03_world_disables.sql (renamed from sql/updates/world/2012_12_28_03_world_disables.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_28_04_world_citadel_footsteps.sql (renamed from sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_30_01_world_trinity_string.sql (renamed from sql/updates/world/2012_12_30_01_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_31_00_world_sai.sql (renamed from sql/updates/world/2012_12_31_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2012_12_31_01_world_sai.sql (renamed from sql/updates/world/2012_12_31_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_01_00_item_template_restore.sql (renamed from sql/updates/world/2013_01_01_00_item_template_restore.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_01_01_world_creature_text.sql (renamed from sql/updates/world/2013_01_01_01_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_00_world_misc.sql (renamed from sql/updates/world/2013_01_02_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_01_world_spell_script.sql (renamed from sql/updates/world/2013_01_02_01_world_spell_script.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_02_world_instance_template.sql (renamed from sql/updates/world/2013_01_02_02_world_instance_template.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_03_world_sai.sql (renamed from sql/updates/world/2013_01_02_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_04_world_creature.sql (renamed from sql/updates/world/2013_01_02_04_world_creature.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_05_eye_of_eternity.sql (renamed from sql/updates/world/2013_01_02_05_eye_of_eternity.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_06_world_sai.sql (renamed from sql/updates/world/2013_01_02_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_06_world_waypoints.sql (renamed from sql/updates/world/2013_01_02_06_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_07_world_waypoints.sql (renamed from sql/updates/world/2013_01_02_07_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_08_world_sai.sql (renamed from sql/updates/world/2013_01_02_08_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_09_world_waypoints.sql (renamed from sql/updates/world/2013_01_02_09_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_10_world_sai.sql (renamed from sql/updates/world/2013_01_02_10_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_11_world_sai.sql (renamed from sql/updates/world/2013_01_02_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_12_world_go_script.sql (renamed from sql/updates/world/2013_01_02_12_world_go_script.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_02_12_world_waypoints.sql (renamed from sql/updates/world/2013_01_02_12_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_00_world_gameobject_scripts.sql (renamed from sql/updates/world/2013_01_03_00_world_gameobject_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_01_world_sai.sql (renamed from sql/updates/world/2013_01_03_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_02_world_sai.sql (renamed from sql/updates/world/2013_01_03_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_03_world_spelldifficulty_dbc.sql (renamed from sql/updates/world/2013_01_03_03_world_spelldifficulty_dbc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_04_world_sai.sql (renamed from sql/updates/world/2013_01_03_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_05_world_sai.sql (renamed from sql/updates/world/2013_01_03_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_06_world_sai.sql (renamed from sql/updates/world/2013_01_03_06_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_07_world_sai.sql (renamed from sql/updates/world/2013_01_03_07_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_08_world_misc.sql (renamed from sql/updates/world/2013_01_03_08_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_09_world_sai.sql (renamed from sql/updates/world/2013_01_03_09_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_10_world_gameobject.sql (renamed from sql/updates/world/2013_01_03_10_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_11_world_item_template.sql (renamed from sql/updates/world/2013_01_03_11_world_item_template.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_12_world_gameobject_scripts.sql (renamed from sql/updates/world/2013_01_03_12_world_gameobject_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_12_world_misc.sql (renamed from sql/updates/world/2013_01_03_12_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_13_world_quest_template.sql (renamed from sql/updates/world/2013_01_03_13_world_quest_template.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_14_world_spell_area.sql (renamed from sql/updates/world/2013_01_03_14_world_spell_area.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_15_world_various_fixes.sql (renamed from sql/updates/world/2013_01_03_15_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_03_16_world_various_fixes.sql (renamed from sql/updates/world/2013_01_03_16_world_various_fixes.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_04_00_world_creature_text.sql (renamed from sql/updates/world/2013_01_04_00_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_04_01_world_sai.sql (renamed from sql/updates/world/2013_01_04_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_04_02_world_misc.sql (renamed from sql/updates/world/2013_01_04_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_04_02_world_novos_the_summoner.sql (renamed from sql/updates/world/2013_01_04_02_world_novos_the_summoner.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_05_00_world_waypoints.sql (renamed from sql/updates/world/2013_01_05_00_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_06_00_world_creature_addon.sql (renamed from sql/updates/world/2013_01_06_00_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_06_00_world_creature_template.sql (renamed from sql/updates/world/2013_01_06_00_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_06_01_world_waypoints.sql (renamed from sql/updates/world/2013_01_06_01_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_06_02_world_misc.sql (renamed from sql/updates/world/2013_01_06_02_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_06_03_world_sai.sql (renamed from sql/updates/world/2013_01_06_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_06_04_world_misc.sql (renamed from sql/updates/world/2013_01_06_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_00_world_sai.sql (renamed from sql/updates/world/2013_01_07_00_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_01_world_creature_addon.sql (renamed from sql/updates/world/2013_01_07_01_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_02_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_02_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_03_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_03_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_04_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_04_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_05_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_06_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_06_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_07_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_07_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_08_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_08_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_09_world_buru.sql (renamed from sql/updates/world/2013_01_07_09_world_buru.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_10_world_skeram.sql (renamed from sql/updates/world/2013_01_07_10_world_skeram.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_11_world_sai.sql (renamed from sql/updates/world/2013_01_07_11_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_12_world_sai.sql (renamed from sql/updates/world/2013_01_07_12_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_13_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_13_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_14_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_14_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_15_world_creature_addon.sql (renamed from sql/updates/world/2013_01_07_15_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_16_world_creature_addon.sql (renamed from sql/updates/world/2013_01_07_16_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_17_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_17_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_07_18_world_creature_text.sql (renamed from sql/updates/world/2013_01_07_18_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_08_01_world_raise_the_barricades.sql (renamed from sql/updates/world/2013_01_08_01_world_raise_the_barricades.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_09_00_world_misc.sql (renamed from sql/updates/world/2013_01_09_00_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_09_01_world_lfg_dungeon_rewards.sql (renamed from sql/updates/world/2013_01_09_01_world_lfg_dungeon_rewards.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_09_02_world_sai.sql (renamed from sql/updates/world/2013_01_09_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_09_03_world_spell_script_names.sql (renamed from sql/updates/world/2013_01_09_03_world_spell_script_names.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_10_00_world_trinity_string.sql (renamed from sql/updates/world/2013_01_10_00_world_trinity_string.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_10_01_world_sai.sql (renamed from sql/updates/world/2013_01_10_01_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_10_02_world_creature_addon.sql (renamed from sql/updates/world/2013_01_10_02_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_10_03_world_creature_addon.sql (renamed from sql/updates/world/2013_01_10_03_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_10_04_world_creature_addon.sql (renamed from sql/updates/world/2013_01_10_04_world_creature_addon.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_10_05_world_sai.sql (renamed from sql/updates/world/2013_01_10_05_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_11_00_world_ayamiss.sql (renamed from sql/updates/world/2013_01_11_00_world_ayamiss.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_11_01_world_conditions.sql (renamed from sql/updates/world/2013_01_11_01_world_conditions.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_11_02_world_sai.sql (renamed from sql/updates/world/2013_01_11_02_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_11_03_world_sai.sql (renamed from sql/updates/world/2013_01_11_03_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_11_04_world_sai.sql (renamed from sql/updates/world/2013_01_11_04_world_sai.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_11_05_world_creature_text.sql (renamed from sql/updates/world/2013_01_11_05_world_creature_text.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_00_world_smart_scripts.sql (renamed from sql/updates/world/2013_01_12_00_world_smart_scripts.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_01_world_string.sql (renamed from sql/updates/world/2013_01_12_01_world_string.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_02_world_creature_template.sql (renamed from sql/updates/world/2013_01_12_02_world_creature_template.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_03_world_gameobject.sql (renamed from sql/updates/world/2013_01_12_03_world_gameobject.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_03_world_waypoints.sql (renamed from sql/updates/world/2013_01_12_03_world_waypoints.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_04_world_misc.sql (renamed from sql/updates/world/2013_01_12_04_world_misc.sql)0
-rw-r--r--sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql1
-rw-r--r--sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql1
-rw-r--r--sql/old/3.3.5a/2013_01_13_01_world_sai.sql41
-rw-r--r--sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql36
-rw-r--r--sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql4
-rw-r--r--sql/old/3.3.5a/2013_01_13_04_world_conditions.sql9
-rw-r--r--sql/updates/world/2013_01_14_00_world_version.sql1
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp6
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp32
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp3
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp13
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.h1
-rw-r--r--src/server/game/DungeonFinding/LFGQueue.cpp2
-rw-r--r--src/server/game/Handlers/BattleGroundHandler.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp177
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp56
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp42
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp83
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp78
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp32
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp99
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp45
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp218
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp75
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp302
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp17
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp330
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp41
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp63
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp173
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h35
-rw-r--r--src/server/scripts/EasternKingdoms/boss_kruul.cpp17
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp36
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp7
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp2
-rw-r--r--src/server/scripts/Spells/spell_holiday.cpp8
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp4
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp45
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp3
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp549
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp714
377 files changed, 1801 insertions, 1642 deletions
diff --git a/sql/updates/world/2012_09_16_00_world_version.sql b/sql/old/3.3.5a/2012_09_16_00_world_version.sql
index 74a1cf67499..74a1cf67499 100644
--- a/sql/updates/world/2012_09_16_00_world_version.sql
+++ b/sql/old/3.3.5a/2012_09_16_00_world_version.sql
diff --git a/sql/updates/world/2012_09_16_01_world_conditions.sql b/sql/old/3.3.5a/2012_09_16_01_world_conditions.sql
index 64f87262d0e..64f87262d0e 100644
--- a/sql/updates/world/2012_09_16_01_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_09_16_01_world_conditions.sql
diff --git a/sql/updates/world/2012_09_16_01_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_09_16_01_world_creature_loot_template.sql
index 2d87ad3aa16..2d87ad3aa16 100644
--- a/sql/updates/world/2012_09_16_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_09_16_01_world_creature_loot_template.sql
diff --git a/sql/updates/world/2012_09_16_01_world_creature_template_addon.sql b/sql/old/3.3.5a/2012_09_16_01_world_creature_template_addon.sql
index c23a38cd058..c23a38cd058 100644
--- a/sql/updates/world/2012_09_16_01_world_creature_template_addon.sql
+++ b/sql/old/3.3.5a/2012_09_16_01_world_creature_template_addon.sql
diff --git a/sql/updates/world/2012_09_16_02_world_fires_over_skettis.sql b/sql/old/3.3.5a/2012_09_16_02_world_fires_over_skettis.sql
index d50f45bb020..d50f45bb020 100644
--- a/sql/updates/world/2012_09_16_02_world_fires_over_skettis.sql
+++ b/sql/old/3.3.5a/2012_09_16_02_world_fires_over_skettis.sql
diff --git a/sql/updates/world/2012_09_16_03_world_spell_script_names.sql b/sql/old/3.3.5a/2012_09_16_03_world_spell_script_names.sql
index 8b7e6aa92ba..8b7e6aa92ba 100644
--- a/sql/updates/world/2012_09_16_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_09_16_03_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_09_17_00_world_spell_bonus_data.sql b/sql/old/3.3.5a/2012_09_17_00_world_spell_bonus_data.sql
index 0d16742393e..0d16742393e 100644
--- a/sql/updates/world/2012_09_17_00_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/2012_09_17_00_world_spell_bonus_data.sql
diff --git a/sql/updates/world/2012_09_17_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/2012_09_17_01_world_spell_bonus_data.sql
index f9283233c8e..f9283233c8e 100644
--- a/sql/updates/world/2012_09_17_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/2012_09_17_01_world_spell_bonus_data.sql
diff --git a/sql/updates/world/2012_09_17_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_09_17_01_world_spell_script_names.sql
index 255c76e6b70..255c76e6b70 100644
--- a/sql/updates/world/2012_09_17_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_09_17_01_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_09_17_02_world_misc.sql b/sql/old/3.3.5a/2012_09_17_02_world_misc.sql
index 378833dfc52..378833dfc52 100644
--- a/sql/updates/world/2012_09_17_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_09_17_02_world_misc.sql
diff --git a/sql/updates/world/2012_09_18_00_world_creature_template.sql b/sql/old/3.3.5a/2012_09_18_00_world_creature_template.sql
index 5ead9430d60..5ead9430d60 100644
--- a/sql/updates/world/2012_09_18_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_09_18_00_world_creature_template.sql
diff --git a/sql/updates/world/2012_09_18_01_world_creature_template.sql b/sql/old/3.3.5a/2012_09_18_01_world_creature_template.sql
index 4e31e7f6f68..4e31e7f6f68 100644
--- a/sql/updates/world/2012_09_18_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_09_18_01_world_creature_template.sql
diff --git a/sql/updates/world/2012_09_19_00_world_dwarfageddon.sql b/sql/old/3.3.5a/2012_09_19_00_world_dwarfageddon.sql
index 1eda383b67d..1eda383b67d 100644
--- a/sql/updates/world/2012_09_19_00_world_dwarfageddon.sql
+++ b/sql/old/3.3.5a/2012_09_19_00_world_dwarfageddon.sql
diff --git a/sql/updates/world/2012_09_19_00_world_reference_loot_template.sql b/sql/old/3.3.5a/2012_09_19_00_world_reference_loot_template.sql
index 7db30ede52b..7db30ede52b 100644
--- a/sql/updates/world/2012_09_19_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2012_09_19_00_world_reference_loot_template.sql
diff --git a/sql/updates/world/2012_09_20_00_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_09_20_00_world_creature_loot_template.sql
index 8463b064bf9..8463b064bf9 100644
--- a/sql/updates/world/2012_09_20_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_09_20_00_world_creature_loot_template.sql
diff --git a/sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql b/sql/old/3.3.5a/2012_09_22_01_world_i_was_a_lot_of_things.sql
index 95fc92daa76..95fc92daa76 100644
--- a/sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql
+++ b/sql/old/3.3.5a/2012_09_22_01_world_i_was_a_lot_of_things.sql
diff --git a/sql/updates/world/2012_09_22_03_world_game_event.sql b/sql/old/3.3.5a/2012_09_22_03_world_game_event.sql
index 5e05ba03898..5e05ba03898 100644
--- a/sql/updates/world/2012_09_22_03_world_game_event.sql
+++ b/sql/old/3.3.5a/2012_09_22_03_world_game_event.sql
diff --git a/sql/updates/world/2012_09_24_00_world_spell_script_names.sql b/sql/old/3.3.5a/2012_09_24_00_world_spell_script_names.sql
index 611325d4b11..611325d4b11 100644
--- a/sql/updates/world/2012_09_24_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_09_24_00_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_09_24_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_09_24_01_world_spell_script_names.sql
index e14b6833a09..e14b6833a09 100644
--- a/sql/updates/world/2012_09_24_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_09_24_01_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_09_24_02_world_misc.sql b/sql/old/3.3.5a/2012_09_24_02_world_misc.sql
index b4cf7fda0a5..b4cf7fda0a5 100644
--- a/sql/updates/world/2012_09_24_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_09_24_02_world_misc.sql
diff --git a/sql/updates/world/2012_09_24_03_world_misc.sql b/sql/old/3.3.5a/2012_09_24_03_world_misc.sql
index 3bcb40f79c0..3bcb40f79c0 100644
--- a/sql/updates/world/2012_09_24_03_world_misc.sql
+++ b/sql/old/3.3.5a/2012_09_24_03_world_misc.sql
diff --git a/sql/updates/world/2012_09_26_00_world_misc.sql b/sql/old/3.3.5a/2012_09_26_00_world_misc.sql
index d9ac468f4a6..d9ac468f4a6 100644
--- a/sql/updates/world/2012_09_26_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_09_26_00_world_misc.sql
diff --git a/sql/updates/world/2012_09_26_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/2012_09_26_01_world_spell_bonus_data.sql
index 3aeeb7c6525..3aeeb7c6525 100644
--- a/sql/updates/world/2012_09_26_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/2012_09_26_01_world_spell_bonus_data.sql
diff --git a/sql/updates/world/2012_09_27_01_world_custodian_of_time.sql b/sql/old/3.3.5a/2012_09_27_01_world_custodian_of_time.sql
index 521c55d507e..521c55d507e 100644
--- a/sql/updates/world/2012_09_27_01_world_custodian_of_time.sql
+++ b/sql/old/3.3.5a/2012_09_27_01_world_custodian_of_time.sql
diff --git a/sql/updates/world/2012_09_28_00_world_creature_model_info.sql b/sql/old/3.3.5a/2012_09_28_00_world_creature_model_info.sql
index 48134d7bbed..48134d7bbed 100644
--- a/sql/updates/world/2012_09_28_00_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/2012_09_28_00_world_creature_model_info.sql
diff --git a/sql/updates/world/2012_09_29_00_world_creature_model_info.sql b/sql/old/3.3.5a/2012_09_29_00_world_creature_model_info.sql
index 0c63a0b2f73..0c63a0b2f73 100644
--- a/sql/updates/world/2012_09_29_00_world_creature_model_info.sql
+++ b/sql/old/3.3.5a/2012_09_29_00_world_creature_model_info.sql
diff --git a/sql/updates/world/2012_09_29_01_world_creature_text.sql b/sql/old/3.3.5a/2012_09_29_01_world_creature_text.sql
index 8fde66d2e6e..8fde66d2e6e 100644
--- a/sql/updates/world/2012_09_29_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_09_29_01_world_creature_text.sql
diff --git a/sql/updates/world/2012_09_30_00_world_creature_text.sql b/sql/old/3.3.5a/2012_09_30_00_world_creature_text.sql
index e0f9f210d7b..e0f9f210d7b 100644
--- a/sql/updates/world/2012_09_30_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_09_30_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_09_30_01_world_player_factionchange_titles.sql b/sql/old/3.3.5a/2012_09_30_01_world_player_factionchange_titles.sql
index 99d7fc871d8..99d7fc871d8 100644
--- a/sql/updates/world/2012_09_30_01_world_player_factionchange_titles.sql
+++ b/sql/old/3.3.5a/2012_09_30_01_world_player_factionchange_titles.sql
diff --git a/sql/updates/world/2012_09_30_02_world_creature_text.sql b/sql/old/3.3.5a/2012_09_30_02_world_creature_text.sql
index 81e77bcd682..81e77bcd682 100644
--- a/sql/updates/world/2012_09_30_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_09_30_02_world_creature_text.sql
diff --git a/sql/updates/world/2012_09_30_03_world_creature_text.sql b/sql/old/3.3.5a/2012_09_30_03_world_creature_text.sql
index a591f8cfb7c..a591f8cfb7c 100644
--- a/sql/updates/world/2012_09_30_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_09_30_03_world_creature_text.sql
diff --git a/sql/updates/world/2012_10_02_00_world_oculus.sql b/sql/old/3.3.5a/2012_10_02_00_world_oculus.sql
index 8c9ea1bcb60..8c9ea1bcb60 100644
--- a/sql/updates/world/2012_10_02_00_world_oculus.sql
+++ b/sql/old/3.3.5a/2012_10_02_00_world_oculus.sql
diff --git a/sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/2012_10_04_00_world_spelldifficulty_dbc.sql
index 6587e35bf9b..6587e35bf9b 100644
--- a/sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/2012_10_04_00_world_spelldifficulty_dbc.sql
diff --git a/sql/updates/world/2012_10_04_01_world_script_texts.sql b/sql/old/3.3.5a/2012_10_04_01_world_script_texts.sql
index 8281d16794e..8281d16794e 100644
--- a/sql/updates/world/2012_10_04_01_world_script_texts.sql
+++ b/sql/old/3.3.5a/2012_10_04_01_world_script_texts.sql
diff --git a/sql/updates/world/2012_10_05_00_world_misc.sql b/sql/old/3.3.5a/2012_10_05_00_world_misc.sql
index f715b9491ef..f715b9491ef 100644
--- a/sql/updates/world/2012_10_05_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_10_05_00_world_misc.sql
diff --git a/sql/updates/world/2012_10_05_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_10_05_01_world_spell_script_names.sql
index c7269b981ec..c7269b981ec 100644
--- a/sql/updates/world/2012_10_05_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_10_05_01_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_10_06_00_world_spell_difficulty.sql b/sql/old/3.3.5a/2012_10_06_00_world_spell_difficulty.sql
index 1dd1a468990..1dd1a468990 100644
--- a/sql/updates/world/2012_10_06_00_world_spell_difficulty.sql
+++ b/sql/old/3.3.5a/2012_10_06_00_world_spell_difficulty.sql
diff --git a/sql/updates/world/2012_10_06_00_world_spell_script_names.sql b/sql/old/3.3.5a/2012_10_06_00_world_spell_script_names.sql
index 4fa3b922d62..4fa3b922d62 100644
--- a/sql/updates/world/2012_10_06_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_10_06_00_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_10_06_01_world_spell_dbc.sql b/sql/old/3.3.5a/2012_10_06_01_world_spell_dbc.sql
index 071d83582ac..071d83582ac 100644
--- a/sql/updates/world/2012_10_06_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/2012_10_06_01_world_spell_dbc.sql
diff --git a/sql/updates/world/2012_10_06_02_world_misc_templates.sql b/sql/old/3.3.5a/2012_10_06_02_world_misc_templates.sql
index 5ec006c310d..5ec006c310d 100644
--- a/sql/updates/world/2012_10_06_02_world_misc_templates.sql
+++ b/sql/old/3.3.5a/2012_10_06_02_world_misc_templates.sql
diff --git a/sql/updates/world/2012_10_06_03_world_creature_text.sql b/sql/old/3.3.5a/2012_10_06_03_world_creature_text.sql
index 6716b12cea9..6716b12cea9 100644
--- a/sql/updates/world/2012_10_06_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_10_06_03_world_creature_text.sql
diff --git a/sql/updates/world/2012_10_06_04_world_misc_spawns.sql b/sql/old/3.3.5a/2012_10_06_04_world_misc_spawns.sql
index e53302d2c2f..e53302d2c2f 100644
--- a/sql/updates/world/2012_10_06_04_world_misc_spawns.sql
+++ b/sql/old/3.3.5a/2012_10_06_04_world_misc_spawns.sql
diff --git a/sql/updates/world/2012_10_06_05_world_spell_script_names.sql b/sql/old/3.3.5a/2012_10_06_05_world_spell_script_names.sql
index 354a359e45b..354a359e45b 100644
--- a/sql/updates/world/2012_10_06_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_10_06_05_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_10_07_00_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_10_07_00_world_creature_loot_template.sql
index 2829725c76c..2829725c76c 100644
--- a/sql/updates/world/2012_10_07_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_10_07_00_world_creature_loot_template.sql
diff --git a/sql/updates/world/2012_10_07_01_world_spell_proc_event.sql b/sql/old/3.3.5a/2012_10_07_01_world_spell_proc_event.sql
index 810cd90290c..810cd90290c 100644
--- a/sql/updates/world/2012_10_07_01_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/2012_10_07_01_world_spell_proc_event.sql
diff --git a/sql/updates/characters/2012_10_09_00_character_glyphs.sql b/sql/old/3.3.5a/2012_10_09_00_character_glyphs.sql
index b90fa7d7682..b90fa7d7682 100644
--- a/sql/updates/characters/2012_10_09_00_character_glyphs.sql
+++ b/sql/old/3.3.5a/2012_10_09_00_character_glyphs.sql
diff --git a/sql/updates/world/2012_10_09_00_world_spell_groups.sql b/sql/old/3.3.5a/2012_10_09_00_world_spell_groups.sql
index 71f58c6322e..71f58c6322e 100644
--- a/sql/updates/world/2012_10_09_00_world_spell_groups.sql
+++ b/sql/old/3.3.5a/2012_10_09_00_world_spell_groups.sql
diff --git a/sql/updates/world/2012_10_09_01_world_spell_groups.sql b/sql/old/3.3.5a/2012_10_09_01_world_spell_groups.sql
index 75c57d0f77f..75c57d0f77f 100644
--- a/sql/updates/world/2012_10_09_01_world_spell_groups.sql
+++ b/sql/old/3.3.5a/2012_10_09_01_world_spell_groups.sql
diff --git a/sql/updates/world/2012_10_09_02_world_spell_groups.sql b/sql/old/3.3.5a/2012_10_09_02_world_spell_groups.sql
index 8e4864bc039..8e4864bc039 100644
--- a/sql/updates/world/2012_10_09_02_world_spell_groups.sql
+++ b/sql/old/3.3.5a/2012_10_09_02_world_spell_groups.sql
diff --git a/sql/updates/world/2012_10_10_00_world_battleground_template.sql b/sql/old/3.3.5a/2012_10_10_00_world_battleground_template.sql
index 2dcafc51161..2dcafc51161 100644
--- a/sql/updates/world/2012_10_10_00_world_battleground_template.sql
+++ b/sql/old/3.3.5a/2012_10_10_00_world_battleground_template.sql
diff --git a/sql/updates/world/2012_10_11_00_world_gameobject.sql b/sql/old/3.3.5a/2012_10_11_00_world_gameobject.sql
index e58d60590cb..e58d60590cb 100644
--- a/sql/updates/world/2012_10_11_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/2012_10_11_00_world_gameobject.sql
diff --git a/sql/updates/world/2012_10_13_00_world_creature_template.sql b/sql/old/3.3.5a/2012_10_13_00_world_creature_template.sql
index 7dc7a463f3f..7dc7a463f3f 100644
--- a/sql/updates/world/2012_10_13_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_10_13_00_world_creature_template.sql
diff --git a/sql/updates/world/2012_10_14_00_world_creature.sql b/sql/old/3.3.5a/2012_10_14_00_world_creature.sql
index dd650f37aef..dd650f37aef 100644
--- a/sql/updates/world/2012_10_14_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_10_14_00_world_creature.sql
diff --git a/sql/updates/world/2012_10_16_00_world_spell_area.sql b/sql/old/3.3.5a/2012_10_16_00_world_spell_area.sql
index 3dbc29d077f..3dbc29d077f 100644
--- a/sql/updates/world/2012_10_16_00_world_spell_area.sql
+++ b/sql/old/3.3.5a/2012_10_16_00_world_spell_area.sql
diff --git a/sql/updates/characters/2012_10_17_00_character_gm_tickets.sql b/sql/old/3.3.5a/2012_10_17_00_character_gm_tickets.sql
index affb23f836c..affb23f836c 100644
--- a/sql/updates/characters/2012_10_17_00_character_gm_tickets.sql
+++ b/sql/old/3.3.5a/2012_10_17_00_character_gm_tickets.sql
diff --git a/sql/updates/world/2012_10_20_00_world_transports.sql b/sql/old/3.3.5a/2012_10_20_00_world_transports.sql
index 8cc2bae4b47..8cc2bae4b47 100644
--- a/sql/updates/world/2012_10_20_00_world_transports.sql
+++ b/sql/old/3.3.5a/2012_10_20_00_world_transports.sql
diff --git a/sql/updates/world/2012_10_20_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_10_20_01_world_spell_script_names.sql
index 814f1b40e65..814f1b40e65 100644
--- a/sql/updates/world/2012_10_20_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_10_20_01_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_10_20_02_world_creature_text.sql b/sql/old/3.3.5a/2012_10_20_02_world_creature_text.sql
index bb153c6b2f6..bb153c6b2f6 100644
--- a/sql/updates/world/2012_10_20_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_10_20_02_world_creature_text.sql
diff --git a/sql/updates/world/2012_10_21_00_world_conditions.sql b/sql/old/3.3.5a/2012_10_21_00_world_conditions.sql
index 62161a932f9..62161a932f9 100644
--- a/sql/updates/world/2012_10_21_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_10_21_00_world_conditions.sql
diff --git a/sql/updates/world/2012_10_21_01_world_misc.sql b/sql/old/3.3.5a/2012_10_21_01_world_misc.sql
index fe74f8a7a80..fe74f8a7a80 100644
--- a/sql/updates/world/2012_10_21_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_10_21_01_world_misc.sql
diff --git a/sql/updates/world/2012_10_23_00_world_trinity_string.sql b/sql/old/3.3.5a/2012_10_23_00_world_trinity_string.sql
index 60318667fbc..60318667fbc 100644
--- a/sql/updates/world/2012_10_23_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2012_10_23_00_world_trinity_string.sql
diff --git a/sql/updates/world/2012_10_23_01_world_command.sql b/sql/old/3.3.5a/2012_10_23_01_world_command.sql
index b46882c5949..b46882c5949 100644
--- a/sql/updates/world/2012_10_23_01_world_command.sql
+++ b/sql/old/3.3.5a/2012_10_23_01_world_command.sql
diff --git a/sql/updates/world/2012_10_25_00_world_childrens_week.sql b/sql/old/3.3.5a/2012_10_25_00_world_childrens_week.sql
index f10cf92b409..f10cf92b409 100644
--- a/sql/updates/world/2012_10_25_00_world_childrens_week.sql
+++ b/sql/old/3.3.5a/2012_10_25_00_world_childrens_week.sql
diff --git a/sql/updates/world/2012_10_26_00_world_sai.sql b/sql/old/3.3.5a/2012_10_26_00_world_sai.sql
index 8e4c2fa0922..8e4c2fa0922 100644
--- a/sql/updates/world/2012_10_26_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_10_26_00_world_sai.sql
diff --git a/sql/updates/world/2012_10_27_00_world_creature.sql b/sql/old/3.3.5a/2012_10_27_00_world_creature.sql
index c00c450aeca..c00c450aeca 100644
--- a/sql/updates/world/2012_10_27_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_10_27_00_world_creature.sql
diff --git a/sql/updates/world/2012_10_27_01_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_10_27_01_world_creature_loot_template.sql
index 3367dbf0fa8..3367dbf0fa8 100644
--- a/sql/updates/world/2012_10_27_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_10_27_01_world_creature_loot_template.sql
diff --git a/sql/updates/world/2012_10_29_00_world_conditions.sql b/sql/old/3.3.5a/2012_10_29_00_world_conditions.sql
index d1fac5361fb..d1fac5361fb 100644
--- a/sql/updates/world/2012_10_29_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_10_29_00_world_conditions.sql
diff --git a/sql/updates/characters/2012_11_02_00_character_misc.sql b/sql/old/3.3.5a/2012_11_02_00_character_misc.sql
index 9cbbd423bb8..9cbbd423bb8 100644
--- a/sql/updates/characters/2012_11_02_00_character_misc.sql
+++ b/sql/old/3.3.5a/2012_11_02_00_character_misc.sql
diff --git a/sql/updates/world/2012_11_03_00_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_11_03_00_world_creature_loot_template.sql
index 0e5c39b796d..0e5c39b796d 100644
--- a/sql/updates/world/2012_11_03_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_11_03_00_world_creature_loot_template.sql
diff --git a/sql/updates/world/2012_11_07_00_world_misc.sql b/sql/old/3.3.5a/2012_11_07_00_world_misc.sql
index db7c8f66fb1..db7c8f66fb1 100644
--- a/sql/updates/world/2012_11_07_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_07_00_world_misc.sql
diff --git a/sql/updates/world/2012_11_11_00_world_sai.sql b/sql/old/3.3.5a/2012_11_11_00_world_sai.sql
index b5eedd86898..b5eedd86898 100644
--- a/sql/updates/world/2012_11_11_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_11_11_00_world_sai.sql
diff --git a/sql/updates/world/2012_11_11_01_world_quest_template.sql b/sql/old/3.3.5a/2012_11_11_01_world_quest_template.sql
index 9abf2ea3cd1..9abf2ea3cd1 100644
--- a/sql/updates/world/2012_11_11_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_11_11_01_world_quest_template.sql
diff --git a/sql/updates/world/2012_11_11_02_world_gossip_menu.sql b/sql/old/3.3.5a/2012_11_11_02_world_gossip_menu.sql
index 59d1a10b337..59d1a10b337 100644
--- a/sql/updates/world/2012_11_11_02_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/2012_11_11_02_world_gossip_menu.sql
diff --git a/sql/updates/world/2012_11_11_03_world_gossip_menu.sql b/sql/old/3.3.5a/2012_11_11_03_world_gossip_menu.sql
index 4f250597388..4f250597388 100644
--- a/sql/updates/world/2012_11_11_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/2012_11_11_03_world_gossip_menu.sql
diff --git a/sql/updates/world/2012_11_12_00_world_quest_template.sql b/sql/old/3.3.5a/2012_11_12_00_world_quest_template.sql
index ee2206146b3..ee2206146b3 100644
--- a/sql/updates/world/2012_11_12_00_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_11_12_00_world_quest_template.sql
diff --git a/sql/updates/world/2012_11_12_01_world_misc.sql b/sql/old/3.3.5a/2012_11_12_01_world_misc.sql
index 7a5e81c4b1a..7a5e81c4b1a 100644
--- a/sql/updates/world/2012_11_12_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_12_01_world_misc.sql
diff --git a/sql/updates/world/2012_11_12_02_world_quest_template.sql b/sql/old/3.3.5a/2012_11_12_02_world_quest_template.sql
index 8f988bfa4ab..8f988bfa4ab 100644
--- a/sql/updates/world/2012_11_12_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_11_12_02_world_quest_template.sql
diff --git a/sql/updates/world/2012_11_12_03_world_misc.sql b/sql/old/3.3.5a/2012_11_12_03_world_misc.sql
index 20c91974bbb..20c91974bbb 100644
--- a/sql/updates/world/2012_11_12_03_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_12_03_world_misc.sql
diff --git a/sql/updates/world/2012_11_13_00_world_waypoints.sql b/sql/old/3.3.5a/2012_11_13_00_world_waypoints.sql
index 64e16cb2d0e..64e16cb2d0e 100644
--- a/sql/updates/world/2012_11_13_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/2012_11_13_00_world_waypoints.sql
diff --git a/sql/updates/world/2012_11_13_01_world_misc.sql b/sql/old/3.3.5a/2012_11_13_01_world_misc.sql
index 97e3cd8b499..97e3cd8b499 100644
--- a/sql/updates/world/2012_11_13_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_13_01_world_misc.sql
diff --git a/sql/updates/world/2012_11_13_02_world_creature.sql b/sql/old/3.3.5a/2012_11_13_02_world_creature.sql
index 19f278ca5c6..19f278ca5c6 100644
--- a/sql/updates/world/2012_11_13_02_world_creature.sql
+++ b/sql/old/3.3.5a/2012_11_13_02_world_creature.sql
diff --git a/sql/updates/world/2012_11_13_03_world_gameevent.sql b/sql/old/3.3.5a/2012_11_13_03_world_gameevent.sql
index fbb24b863f2..fbb24b863f2 100644
--- a/sql/updates/world/2012_11_13_03_world_gameevent.sql
+++ b/sql/old/3.3.5a/2012_11_13_03_world_gameevent.sql
diff --git a/sql/updates/world/2012_11_13_04_world_gameeventquest.sql b/sql/old/3.3.5a/2012_11_13_04_world_gameeventquest.sql
index cce654859e0..cce654859e0 100644
--- a/sql/updates/world/2012_11_13_04_world_gameeventquest.sql
+++ b/sql/old/3.3.5a/2012_11_13_04_world_gameeventquest.sql
diff --git a/sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql b/sql/old/3.3.5a/2012_11_13_05_world_player_factionchange_items.sql
index 17b9616624a..17b9616624a 100644
--- a/sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/2012_11_13_05_world_player_factionchange_items.sql
diff --git a/sql/updates/world/2012_11_13_06_world_trinity_string.sql b/sql/old/3.3.5a/2012_11_13_06_world_trinity_string.sql
index 2834a8f900b..2834a8f900b 100644
--- a/sql/updates/world/2012_11_13_06_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2012_11_13_06_world_trinity_string.sql
diff --git a/sql/updates/world/2012_11_14_00_world_sai.sql b/sql/old/3.3.5a/2012_11_14_00_world_sai.sql
index 98467fe4f3a..98467fe4f3a 100644
--- a/sql/updates/world/2012_11_14_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_11_14_00_world_sai.sql
diff --git a/sql/updates/world/2012_11_14_00_world_various_fixes.sql b/sql/old/3.3.5a/2012_11_14_00_world_various_fixes.sql
index 01655b674b1..01655b674b1 100644
--- a/sql/updates/world/2012_11_14_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2012_11_14_00_world_various_fixes.sql
diff --git a/sql/updates/world/2012_11_14_02_world_battleground_template.sql b/sql/old/3.3.5a/2012_11_14_02_world_battleground_template.sql
index b69216ea380..b69216ea380 100644
--- a/sql/updates/world/2012_11_14_02_world_battleground_template.sql
+++ b/sql/old/3.3.5a/2012_11_14_02_world_battleground_template.sql
diff --git a/sql/updates/world/2012_11_16_00_world_utgarde.sql b/sql/old/3.3.5a/2012_11_16_00_world_utgarde.sql
index 1948796a77b..1948796a77b 100644
--- a/sql/updates/world/2012_11_16_00_world_utgarde.sql
+++ b/sql/old/3.3.5a/2012_11_16_00_world_utgarde.sql
diff --git a/sql/updates/world/2012_11_16_01_world_utgarde.sql b/sql/old/3.3.5a/2012_11_16_01_world_utgarde.sql
index 30a64b02e3a..30a64b02e3a 100644
--- a/sql/updates/world/2012_11_16_01_world_utgarde.sql
+++ b/sql/old/3.3.5a/2012_11_16_01_world_utgarde.sql
diff --git a/sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql b/sql/old/3.3.5a/2012_11_16_02_world_creature_ai_summons.sql
index 7d2caf76e33..7d2caf76e33 100644
--- a/sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql
+++ b/sql/old/3.3.5a/2012_11_16_02_world_creature_ai_summons.sql
diff --git a/sql/updates/world/2012_11_17_00_world_various_fixes.sql b/sql/old/3.3.5a/2012_11_17_00_world_various_fixes.sql
index 981d378217f..981d378217f 100644
--- a/sql/updates/world/2012_11_17_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2012_11_17_00_world_various_fixes.sql
diff --git a/sql/updates/characters/2012_11_18_00_character_calendar.sql b/sql/old/3.3.5a/2012_11_18_00_character_calendar.sql
index a3e7c352788..a3e7c352788 100644
--- a/sql/updates/characters/2012_11_18_00_character_calendar.sql
+++ b/sql/old/3.3.5a/2012_11_18_00_character_calendar.sql
diff --git a/sql/updates/world/2012_11_18_00_world_ormorok.sql b/sql/old/3.3.5a/2012_11_18_00_world_ormorok.sql
index 0ec8d13fd64..0ec8d13fd64 100644
--- a/sql/updates/world/2012_11_18_00_world_ormorok.sql
+++ b/sql/old/3.3.5a/2012_11_18_00_world_ormorok.sql
diff --git a/sql/updates/world/2012_11_18_01_world_creature_text.sql b/sql/old/3.3.5a/2012_11_18_01_world_creature_text.sql
index 5d8da97f1f0..5d8da97f1f0 100644
--- a/sql/updates/world/2012_11_18_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_11_18_01_world_creature_text.sql
diff --git a/sql/updates/world/2012_11_18_01_world_gameobject.sql b/sql/old/3.3.5a/2012_11_18_01_world_gameobject.sql
index d82f9a07e7e..d82f9a07e7e 100644
--- a/sql/updates/world/2012_11_18_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/2012_11_18_01_world_gameobject.sql
diff --git a/sql/updates/world/2012_11_18_02_world_toc.sql b/sql/old/3.3.5a/2012_11_18_02_world_toc.sql
index 9262aceed7a..9262aceed7a 100644
--- a/sql/updates/world/2012_11_18_02_world_toc.sql
+++ b/sql/old/3.3.5a/2012_11_18_02_world_toc.sql
diff --git a/sql/updates/world/2012_11_19_00_world_various_fixes.sql b/sql/old/3.3.5a/2012_11_19_00_world_various_fixes.sql
index ca78611fc0b..ca78611fc0b 100644
--- a/sql/updates/world/2012_11_19_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2012_11_19_00_world_various_fixes.sql
diff --git a/sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql b/sql/old/3.3.5a/2012_11_19_01_world_pilgrims_bounty.sql
index 56cda092be6..56cda092be6 100644
--- a/sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql
+++ b/sql/old/3.3.5a/2012_11_19_01_world_pilgrims_bounty.sql
diff --git a/sql/updates/world/2012_11_19_02_world_misc.sql b/sql/old/3.3.5a/2012_11_19_02_world_misc.sql
index 1f792b8da41..1f792b8da41 100644
--- a/sql/updates/world/2012_11_19_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_19_02_world_misc.sql
diff --git a/sql/updates/world/2012_11_19_03_world_ysera.sql b/sql/old/3.3.5a/2012_11_19_03_world_ysera.sql
index 24a729f96dd..24a729f96dd 100644
--- a/sql/updates/world/2012_11_19_03_world_ysera.sql
+++ b/sql/old/3.3.5a/2012_11_19_03_world_ysera.sql
diff --git a/sql/updates/world/2012_11_20_00_world_creature_text.sql b/sql/old/3.3.5a/2012_11_20_00_world_creature_text.sql
index 5b89db507d8..5b89db507d8 100644
--- a/sql/updates/world/2012_11_20_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_11_20_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_11_21_00_world_sai.sql b/sql/old/3.3.5a/2012_11_21_00_world_sai.sql
index 9cdd314bb8f..9cdd314bb8f 100644
--- a/sql/updates/world/2012_11_21_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_11_21_00_world_sai.sql
diff --git a/sql/updates/world/2012_11_24_00_world_conditions.sql b/sql/old/3.3.5a/2012_11_24_00_world_conditions.sql
index 1a5e5963c8e..1a5e5963c8e 100644
--- a/sql/updates/world/2012_11_24_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_11_24_00_world_conditions.sql
diff --git a/sql/updates/world/2012_11_24_00_world_creature_text.sql b/sql/old/3.3.5a/2012_11_24_00_world_creature_text.sql
index 60e0f9c3aa1..60e0f9c3aa1 100644
--- a/sql/updates/world/2012_11_24_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_11_24_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_11_24_01_world_quest_start_scripts.sql b/sql/old/3.3.5a/2012_11_24_01_world_quest_start_scripts.sql
index 0f0506206a2..0f0506206a2 100644
--- a/sql/updates/world/2012_11_24_01_world_quest_start_scripts.sql
+++ b/sql/old/3.3.5a/2012_11_24_01_world_quest_start_scripts.sql
diff --git a/sql/updates/world/2012_11_24_02_world_creature_text.sql b/sql/old/3.3.5a/2012_11_24_02_world_creature_text.sql
index 8797039d967..8797039d967 100644
--- a/sql/updates/world/2012_11_24_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_11_24_02_world_creature_text.sql
diff --git a/sql/updates/world/2012_11_24_02_world_gossip_menu_option.sql b/sql/old/3.3.5a/2012_11_24_02_world_gossip_menu_option.sql
index e6f9ab551d3..e6f9ab551d3 100644
--- a/sql/updates/world/2012_11_24_02_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/2012_11_24_02_world_gossip_menu_option.sql
diff --git a/sql/updates/world/2012_11_24_03_world_various_fixes.sql b/sql/old/3.3.5a/2012_11_24_03_world_various_fixes.sql
index dfa2d277564..dfa2d277564 100644
--- a/sql/updates/world/2012_11_24_03_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2012_11_24_03_world_various_fixes.sql
diff --git a/sql/updates/world/2012_11_24_04_world_sai.sql b/sql/old/3.3.5a/2012_11_24_04_world_sai.sql
index 76cf4c18963..76cf4c18963 100644
--- a/sql/updates/world/2012_11_24_04_world_sai.sql
+++ b/sql/old/3.3.5a/2012_11_24_04_world_sai.sql
diff --git a/sql/updates/world/2012_11_25_00_world_various_fixes.sql b/sql/old/3.3.5a/2012_11_25_00_world_various_fixes.sql
index 3aabc755dde..3aabc755dde 100644
--- a/sql/updates/world/2012_11_25_00_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2012_11_25_00_world_various_fixes.sql
diff --git a/sql/updates/world/2012_11_25_01_world_various_fixes.sql b/sql/old/3.3.5a/2012_11_25_01_world_various_fixes.sql
index 6114451174a..6114451174a 100644
--- a/sql/updates/world/2012_11_25_01_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2012_11_25_01_world_various_fixes.sql
diff --git a/sql/updates/world/2012_11_26_02_world_conditions.sql b/sql/old/3.3.5a/2012_11_26_02_world_conditions.sql
index 861e999236d..861e999236d 100644
--- a/sql/updates/world/2012_11_26_02_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_11_26_02_world_conditions.sql
diff --git a/sql/updates/world/2012_11_26_03_world_misc.sql b/sql/old/3.3.5a/2012_11_26_03_world_misc.sql
index 5a6140e6bf3..5a6140e6bf3 100644
--- a/sql/updates/world/2012_11_26_03_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_26_03_world_misc.sql
diff --git a/sql/updates/world/2012_11_27_00_world_misc.sql b/sql/old/3.3.5a/2012_11_27_00_world_misc.sql
index 8c815a856fd..8c815a856fd 100644
--- a/sql/updates/world/2012_11_27_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_11_27_00_world_misc.sql
diff --git a/sql/updates/world/2012_11_27_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2012_11_27_01_world_achievement_criteria_data.sql
index 65cfced17f3..65cfced17f3 100644
--- a/sql/updates/world/2012_11_27_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2012_11_27_01_world_achievement_criteria_data.sql
diff --git a/sql/updates/world/2012_11_30_00_world_spell_script_names.sql b/sql/old/3.3.5a/2012_11_30_00_world_spell_script_names.sql
index cedee2fe51d..cedee2fe51d 100644
--- a/sql/updates/world/2012_11_30_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_11_30_00_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_12_01_00_world_assembly_of_iron.sql b/sql/old/3.3.5a/2012_12_01_00_world_assembly_of_iron.sql
index 090780d2bd4..090780d2bd4 100644
--- a/sql/updates/world/2012_12_01_00_world_assembly_of_iron.sql
+++ b/sql/old/3.3.5a/2012_12_01_00_world_assembly_of_iron.sql
diff --git a/sql/updates/world/2012_12_01_01_world_misc.sql b/sql/old/3.3.5a/2012_12_01_01_world_misc.sql
index 7523484d179..7523484d179 100644
--- a/sql/updates/world/2012_12_01_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_01_01_world_misc.sql
diff --git a/sql/updates/world/2012_12_01_02_world_creature_text.sql b/sql/old/3.3.5a/2012_12_01_02_world_creature_text.sql
index 6d4b50b9e88..6d4b50b9e88 100644
--- a/sql/updates/world/2012_12_01_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_01_02_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_01_03_world_ulduar_creature_text.sql b/sql/old/3.3.5a/2012_12_01_03_world_ulduar_creature_text.sql
index 82d93d7b7ae..82d93d7b7ae 100644
--- a/sql/updates/world/2012_12_01_03_world_ulduar_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_01_03_world_ulduar_creature_text.sql
diff --git a/sql/updates/world/2012_12_01_04_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/2012_12_01_04_world_spelldifficulty_dbc.sql
index fe5df812c71..fe5df812c71 100644
--- a/sql/updates/world/2012_12_01_04_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/2012_12_01_04_world_spelldifficulty_dbc.sql
diff --git a/sql/updates/world/2012_12_01_05_world_creature_template.sql b/sql/old/3.3.5a/2012_12_01_05_world_creature_template.sql
index aa2c6ebb898..aa2c6ebb898 100644
--- a/sql/updates/world/2012_12_01_05_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_12_01_05_world_creature_template.sql
diff --git a/sql/updates/world/2012_12_02_00_world_game_object.sql b/sql/old/3.3.5a/2012_12_02_00_world_game_object.sql
index 3205159a703..3205159a703 100644
--- a/sql/updates/world/2012_12_02_00_world_game_object.sql
+++ b/sql/old/3.3.5a/2012_12_02_00_world_game_object.sql
diff --git a/sql/updates/world/2012_12_02_01_world_creature_text.sql b/sql/old/3.3.5a/2012_12_02_01_world_creature_text.sql
index bd98fc8527c..bd98fc8527c 100644
--- a/sql/updates/world/2012_12_02_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_02_01_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_02_02_world_waypoint_data.sql b/sql/old/3.3.5a/2012_12_02_02_world_waypoint_data.sql
index 6413ad00b62..6413ad00b62 100644
--- a/sql/updates/world/2012_12_02_02_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/2012_12_02_02_world_waypoint_data.sql
diff --git a/sql/updates/characters/2012_12_03_00_character_character_queststatus_monthly.sql b/sql/old/3.3.5a/2012_12_03_00_character_character_queststatus_monthly.sql
index 256bb1f7ad6..256bb1f7ad6 100644
--- a/sql/updates/characters/2012_12_03_00_character_character_queststatus_monthly.sql
+++ b/sql/old/3.3.5a/2012_12_03_00_character_character_queststatus_monthly.sql
diff --git a/sql/updates/world/2012_12_04_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_04_00_world_creature_text.sql
index 654ed11de4f..654ed11de4f 100644
--- a/sql/updates/world/2012_12_04_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_04_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_04_01_world_quest_start_scripts.sql b/sql/old/3.3.5a/2012_12_04_01_world_quest_start_scripts.sql
index f2ac40c7880..f2ac40c7880 100644
--- a/sql/updates/world/2012_12_04_01_world_quest_start_scripts.sql
+++ b/sql/old/3.3.5a/2012_12_04_01_world_quest_start_scripts.sql
diff --git a/sql/updates/world/2012_12_04_02_world_reputation_reward_rate.sql b/sql/old/3.3.5a/2012_12_04_02_world_reputation_reward_rate.sql
index a6b58583532..a6b58583532 100644
--- a/sql/updates/world/2012_12_04_02_world_reputation_reward_rate.sql
+++ b/sql/old/3.3.5a/2012_12_04_02_world_reputation_reward_rate.sql
diff --git a/sql/updates/world/2012_12_04_03_world_reputation_reward_rate.sql b/sql/old/3.3.5a/2012_12_04_03_world_reputation_reward_rate.sql
index 9f8341ea464..9f8341ea464 100644
--- a/sql/updates/world/2012_12_04_03_world_reputation_reward_rate.sql
+++ b/sql/old/3.3.5a/2012_12_04_03_world_reputation_reward_rate.sql
diff --git a/sql/updates/world/2012_12_04_04_world_creature_text.sql b/sql/old/3.3.5a/2012_12_04_04_world_creature_text.sql
index 1cf52a1417f..1cf52a1417f 100644
--- a/sql/updates/world/2012_12_04_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_04_04_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_04_05_world_spell_script_names.sql b/sql/old/3.3.5a/2012_12_04_05_world_spell_script_names.sql
index f325ac731d4..f325ac731d4 100644
--- a/sql/updates/world/2012_12_04_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_12_04_05_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_12_04_06_world_spell_creature_text.sql b/sql/old/3.3.5a/2012_12_04_06_world_spell_creature_text.sql
index 04f10fa494f..04f10fa494f 100644
--- a/sql/updates/world/2012_12_04_06_world_spell_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_04_06_world_spell_creature_text.sql
diff --git a/sql/updates/world/2012_12_05_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_05_00_world_creature_text.sql
index b3b382e46e2..b3b382e46e2 100644
--- a/sql/updates/world/2012_12_05_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_05_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_06_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_06_00_world_creature_text.sql
index c0fec8e041e..c0fec8e041e 100644
--- a/sql/updates/world/2012_12_06_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_06_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_07_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_07_00_world_creature_text.sql
index 6763834d668..6763834d668 100644
--- a/sql/updates/world/2012_12_07_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_07_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_07_00_world_script_texts.sql b/sql/old/3.3.5a/2012_12_07_00_world_script_texts.sql
index b1362aac796..b1362aac796 100644
--- a/sql/updates/world/2012_12_07_00_world_script_texts.sql
+++ b/sql/old/3.3.5a/2012_12_07_00_world_script_texts.sql
diff --git a/sql/updates/world/2012_12_07_01_world_misc.sql b/sql/old/3.3.5a/2012_12_07_01_world_misc.sql
index aaee366bfce..aaee366bfce 100644
--- a/sql/updates/world/2012_12_07_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_07_01_world_misc.sql
diff --git a/sql/updates/world/2012_12_07_02_world_tracker_pitcrawler.sql b/sql/old/3.3.5a/2012_12_07_02_world_tracker_pitcrawler.sql
index 345a61cb7f5..345a61cb7f5 100644
--- a/sql/updates/world/2012_12_07_02_world_tracker_pitcrawler.sql
+++ b/sql/old/3.3.5a/2012_12_07_02_world_tracker_pitcrawler.sql
diff --git a/sql/updates/world/2012_12_07_03_world_tracker_trista.sql b/sql/old/3.3.5a/2012_12_07_03_world_tracker_trista.sql
index b717f4e53e8..b717f4e53e8 100644
--- a/sql/updates/world/2012_12_07_03_world_tracker_trista.sql
+++ b/sql/old/3.3.5a/2012_12_07_03_world_tracker_trista.sql
diff --git a/sql/updates/world/2012_12_07_04_world_misc.sql b/sql/old/3.3.5a/2012_12_07_04_world_misc.sql
index fb4c466d91c..fb4c466d91c 100644
--- a/sql/updates/world/2012_12_07_04_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_07_04_world_misc.sql
diff --git a/sql/updates/world/2012_12_07_05_world_creature_text.sql b/sql/old/3.3.5a/2012_12_07_05_world_creature_text.sql
index 8e3e2cd737f..8e3e2cd737f 100644
--- a/sql/updates/world/2012_12_07_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_07_05_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_07_06_world_sai.sql b/sql/old/3.3.5a/2012_12_07_06_world_sai.sql
index d0d1be35766..d0d1be35766 100644
--- a/sql/updates/world/2012_12_07_06_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_07_06_world_sai.sql
diff --git a/sql/updates/world/2012_12_07_07_world_sai.sql b/sql/old/3.3.5a/2012_12_07_07_world_sai.sql
index d9acb9c310c..d9acb9c310c 100644
--- a/sql/updates/world/2012_12_07_07_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_07_07_world_sai.sql
diff --git a/sql/updates/world/2012_12_07_08_world_misc.sql b/sql/old/3.3.5a/2012_12_07_08_world_misc.sql
index a696ba401cc..a696ba401cc 100644
--- a/sql/updates/world/2012_12_07_08_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_07_08_world_misc.sql
diff --git a/sql/updates/world/2012_12_07_09_world_db_script_string.sql b/sql/old/3.3.5a/2012_12_07_09_world_db_script_string.sql
index 4880b84dff0..4880b84dff0 100644
--- a/sql/updates/world/2012_12_07_09_world_db_script_string.sql
+++ b/sql/old/3.3.5a/2012_12_07_09_world_db_script_string.sql
diff --git a/sql/updates/world/2012_12_08_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_08_00_world_creature_text.sql
index 5a5cd579e2b..5a5cd579e2b 100644
--- a/sql/updates/world/2012_12_08_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_08_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_08_01_world_sai.sql b/sql/old/3.3.5a/2012_12_08_01_world_sai.sql
index 2880b01d07a..2880b01d07a 100644
--- a/sql/updates/world/2012_12_08_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_08_01_world_sai.sql
diff --git a/sql/updates/world/2012_12_09_00_world_conditions.sql b/sql/old/3.3.5a/2012_12_09_00_world_conditions.sql
index dbb3dac7fc3..dbb3dac7fc3 100644
--- a/sql/updates/world/2012_12_09_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_09_00_world_conditions.sql
diff --git a/sql/updates/world/2012_12_09_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_09_00_world_creature_text.sql
index 6d850191938..6d850191938 100644
--- a/sql/updates/world/2012_12_09_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_09_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_09_01_world_misc.sql b/sql/old/3.3.5a/2012_12_09_01_world_misc.sql
index 7c8bdfbb1c5..7c8bdfbb1c5 100644
--- a/sql/updates/world/2012_12_09_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_09_01_world_misc.sql
diff --git a/sql/updates/world/2012_12_09_02_world_quest_template.sql b/sql/old/3.3.5a/2012_12_09_02_world_quest_template.sql
index 52d0202d2a1..52d0202d2a1 100644
--- a/sql/updates/world/2012_12_09_02_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_12_09_02_world_quest_template.sql
diff --git a/sql/updates/world/2012_12_10_00_world_smart_scripts.sql b/sql/old/3.3.5a/2012_12_10_00_world_smart_scripts.sql
index ed0ee9bf764..ed0ee9bf764 100644
--- a/sql/updates/world/2012_12_10_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2012_12_10_00_world_smart_scripts.sql
diff --git a/sql/updates/world/2012_12_10_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_12_10_01_world_spell_script_names.sql
index bc3684011e8..bc3684011e8 100644
--- a/sql/updates/world/2012_12_10_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_12_10_01_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_12_10_02_world_spawns_waypoints.sql b/sql/old/3.3.5a/2012_12_10_02_world_spawns_waypoints.sql
index 68613f3aaa9..68613f3aaa9 100644
--- a/sql/updates/world/2012_12_10_02_world_spawns_waypoints.sql
+++ b/sql/old/3.3.5a/2012_12_10_02_world_spawns_waypoints.sql
diff --git a/sql/updates/world/2012_12_13_00_world.sql b/sql/old/3.3.5a/2012_12_13_00_world.sql
index ab27796f933..ab27796f933 100644
--- a/sql/updates/world/2012_12_13_00_world.sql
+++ b/sql/old/3.3.5a/2012_12_13_00_world.sql
diff --git a/sql/updates/world/2012_12_14_00_world_conditions.sql b/sql/old/3.3.5a/2012_12_14_00_world_conditions.sql
index 6b6fbfd02c0..6b6fbfd02c0 100644
--- a/sql/updates/world/2012_12_14_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_14_00_world_conditions.sql
diff --git a/sql/updates/world/2012_12_14_01_world_waypoint_data.sql b/sql/old/3.3.5a/2012_12_14_01_world_waypoint_data.sql
index e3589c53340..e3589c53340 100644
--- a/sql/updates/world/2012_12_14_01_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/2012_12_14_01_world_waypoint_data.sql
diff --git a/sql/updates/world/2012_12_14_02_world_misc.sql b/sql/old/3.3.5a/2012_12_14_02_world_misc.sql
index 29aa47909e1..29aa47909e1 100644
--- a/sql/updates/world/2012_12_14_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_14_02_world_misc.sql
diff --git a/sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/2012_12_14_03_world_npc_spellclick_spells.sql
index 2669abbc562..2669abbc562 100644
--- a/sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/2012_12_14_03_world_npc_spellclick_spells.sql
diff --git a/sql/updates/world/2012_12_14_04_world_misc.sql b/sql/old/3.3.5a/2012_12_14_04_world_misc.sql
index 2cd99cfb12a..2cd99cfb12a 100644
--- a/sql/updates/world/2012_12_14_04_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_14_04_world_misc.sql
diff --git a/sql/updates/world/2012_12_14_05_world_spell_script_names.sql b/sql/old/3.3.5a/2012_12_14_05_world_spell_script_names.sql
index 6d6ab651365..6d6ab651365 100644
--- a/sql/updates/world/2012_12_14_05_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_12_14_05_world_spell_script_names.sql
diff --git a/sql/updates/world/2012_12_15_00_world_waypoint_data.sql b/sql/old/3.3.5a/2012_12_15_00_world_waypoint_data.sql
index c63180ebe5e..c63180ebe5e 100644
--- a/sql/updates/world/2012_12_15_00_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/2012_12_15_00_world_waypoint_data.sql
diff --git a/sql/updates/world/2012_12_15_01_world_sai.sql b/sql/old/3.3.5a/2012_12_15_01_world_sai.sql
index 6d43bedc446..6d43bedc446 100644
--- a/sql/updates/world/2012_12_15_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_15_01_world_sai.sql
diff --git a/sql/updates/world/2012_12_15_02_world_sai.sql b/sql/old/3.3.5a/2012_12_15_02_world_sai.sql
index bf092bfb88d..bf092bfb88d 100644
--- a/sql/updates/world/2012_12_15_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_15_02_world_sai.sql
diff --git a/sql/updates/world/2012_12_15_03_world_quest_end_scripts.sql b/sql/old/3.3.5a/2012_12_15_03_world_quest_end_scripts.sql
index 91838bda93d..91838bda93d 100644
--- a/sql/updates/world/2012_12_15_03_world_quest_end_scripts.sql
+++ b/sql/old/3.3.5a/2012_12_15_03_world_quest_end_scripts.sql
diff --git a/sql/updates/world/2012_12_16_00_world_creature_addon.sql b/sql/old/3.3.5a/2012_12_16_00_world_creature_addon.sql
index a79bb407321..a79bb407321 100644
--- a/sql/updates/world/2012_12_16_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2012_12_16_00_world_creature_addon.sql
diff --git a/sql/updates/world/2012_12_16_01_world_npc_vendor.sql b/sql/old/3.3.5a/2012_12_16_01_world_npc_vendor.sql
index 0e5ed38c88d..0e5ed38c88d 100644
--- a/sql/updates/world/2012_12_16_01_world_npc_vendor.sql
+++ b/sql/old/3.3.5a/2012_12_16_01_world_npc_vendor.sql
diff --git a/sql/updates/world/2012_12_16_02_world_creature_text.sql b/sql/old/3.3.5a/2012_12_16_02_world_creature_text.sql
index f2d605469f8..f2d605469f8 100644
--- a/sql/updates/world/2012_12_16_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_16_02_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_16_03_world_sai.sql b/sql/old/3.3.5a/2012_12_16_03_world_sai.sql
index 40b1e32dbeb..40b1e32dbeb 100644
--- a/sql/updates/world/2012_12_16_03_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_16_03_world_sai.sql
diff --git a/sql/updates/world/2012_12_17_00_world_creature_template.sql b/sql/old/3.3.5a/2012_12_17_00_world_creature_template.sql
index dfe9132e7a6..dfe9132e7a6 100644
--- a/sql/updates/world/2012_12_17_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_12_17_00_world_creature_template.sql
diff --git a/sql/updates/world/2012_12_17_00_world_song_of_wind_and_water.sql b/sql/old/3.3.5a/2012_12_17_00_world_song_of_wind_and_water.sql
index 52c80334c0c..52c80334c0c 100644
--- a/sql/updates/world/2012_12_17_00_world_song_of_wind_and_water.sql
+++ b/sql/old/3.3.5a/2012_12_17_00_world_song_of_wind_and_water.sql
diff --git a/sql/updates/world/2012_12_17_00_world_spell_linked_spell.sql b/sql/old/3.3.5a/2012_12_17_00_world_spell_linked_spell.sql
index a2cfc7073d0..a2cfc7073d0 100644
--- a/sql/updates/world/2012_12_17_00_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/2012_12_17_00_world_spell_linked_spell.sql
diff --git a/sql/updates/characters/2012_12_18_00_character_worldstates.sql b/sql/old/3.3.5a/2012_12_18_00_character_worldstates.sql
index 98fabde6776..98fabde6776 100644
--- a/sql/updates/characters/2012_12_18_00_character_worldstates.sql
+++ b/sql/old/3.3.5a/2012_12_18_00_character_worldstates.sql
diff --git a/sql/updates/world/2012_12_18_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_18_00_world_creature_text.sql
index 1cf9211343f..1cf9211343f 100644
--- a/sql/updates/world/2012_12_18_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_18_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_18_00_world_waking_the_sleeper.sql b/sql/old/3.3.5a/2012_12_18_00_world_waking_the_sleeper.sql
index 4f8a203100d..4f8a203100d 100644
--- a/sql/updates/world/2012_12_18_00_world_waking_the_sleeper.sql
+++ b/sql/old/3.3.5a/2012_12_18_00_world_waking_the_sleeper.sql
diff --git a/sql/updates/world/2012_12_18_01_world_creature_text.sql b/sql/old/3.3.5a/2012_12_18_01_world_creature_text.sql
index 24779f67fc7..24779f67fc7 100644
--- a/sql/updates/world/2012_12_18_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_18_01_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_18_02_world_misc.sql b/sql/old/3.3.5a/2012_12_18_02_world_misc.sql
index 5df6ef8eb95..5df6ef8eb95 100644
--- a/sql/updates/world/2012_12_18_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_18_02_world_misc.sql
diff --git a/sql/updates/world/2012_12_18_02_world_sai.sql b/sql/old/3.3.5a/2012_12_18_02_world_sai.sql
index 0843285550f..0843285550f 100644
--- a/sql/updates/world/2012_12_18_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_18_02_world_sai.sql
diff --git a/sql/updates/world/2012_12_19_00_world_sai.sql b/sql/old/3.3.5a/2012_12_19_00_world_sai.sql
index e11891cdfbd..e11891cdfbd 100644
--- a/sql/updates/world/2012_12_19_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_19_00_world_sai.sql
diff --git a/sql/updates/world/2012_12_19_01_world_viscidus.sql b/sql/old/3.3.5a/2012_12_19_01_world_viscidus.sql
index 16d33b80b8f..16d33b80b8f 100644
--- a/sql/updates/world/2012_12_19_01_world_viscidus.sql
+++ b/sql/old/3.3.5a/2012_12_19_01_world_viscidus.sql
diff --git a/sql/updates/world/2012_12_19_02_world_sai.sql b/sql/old/3.3.5a/2012_12_19_02_world_sai.sql
index c6367e1a8ca..c6367e1a8ca 100644
--- a/sql/updates/world/2012_12_19_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_19_02_world_sai.sql
diff --git a/sql/updates/characters/2012_12_20_00_characters_create_item_loot.sql b/sql/old/3.3.5a/2012_12_20_00_characters_create_item_loot.sql
index 3c1529e8bdf..3c1529e8bdf 100644
--- a/sql/updates/characters/2012_12_20_00_characters_create_item_loot.sql
+++ b/sql/old/3.3.5a/2012_12_20_00_characters_create_item_loot.sql
diff --git a/sql/updates/world/2012_12_20_00_world_conditions.sql b/sql/old/3.3.5a/2012_12_20_00_world_conditions.sql
index 53fc5733e53..53fc5733e53 100644
--- a/sql/updates/world/2012_12_20_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_20_00_world_conditions.sql
diff --git a/sql/updates/world/2012_12_20_01_world_conditions.sql b/sql/old/3.3.5a/2012_12_20_01_world_conditions.sql
index 9d1851305a3..9d1851305a3 100644
--- a/sql/updates/world/2012_12_20_01_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_20_01_world_conditions.sql
diff --git a/sql/updates/world/2012_12_20_02_world_misc.sql b/sql/old/3.3.5a/2012_12_20_02_world_misc.sql
index c04965d8258..c04965d8258 100644
--- a/sql/updates/world/2012_12_20_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_20_02_world_misc.sql
diff --git a/sql/updates/world/2012_12_20_03_world_conditions.sql b/sql/old/3.3.5a/2012_12_20_03_world_conditions.sql
index f07b18ed2e4..f07b18ed2e4 100644
--- a/sql/updates/world/2012_12_20_03_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_20_03_world_conditions.sql
diff --git a/sql/updates/world/2012_12_21_00_world_conditions.sql b/sql/old/3.3.5a/2012_12_21_00_world_conditions.sql
index eddf541eaf3..eddf541eaf3 100644
--- a/sql/updates/world/2012_12_21_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_21_00_world_conditions.sql
diff --git a/sql/updates/world/2012_12_21_01_world_conditions.sql b/sql/old/3.3.5a/2012_12_21_01_world_conditions.sql
index fdc5becd963..fdc5becd963 100644
--- a/sql/updates/world/2012_12_21_01_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_21_01_world_conditions.sql
diff --git a/sql/updates/world/2012_12_22_01_world_sai.sql b/sql/old/3.3.5a/2012_12_22_01_world_sai.sql
index e2a61426679..e2a61426679 100644
--- a/sql/updates/world/2012_12_22_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_22_01_world_sai.sql
diff --git a/sql/updates/world/2012_12_22_02_world_the_crusaders_pinnacle.sql b/sql/old/3.3.5a/2012_12_22_02_world_the_crusaders_pinnacle.sql
index 5debd41a160..5debd41a160 100644
--- a/sql/updates/world/2012_12_22_02_world_the_crusaders_pinnacle.sql
+++ b/sql/old/3.3.5a/2012_12_22_02_world_the_crusaders_pinnacle.sql
diff --git a/sql/updates/world/2012_12_23_00_world_creature_text.sql b/sql/old/3.3.5a/2012_12_23_00_world_creature_text.sql
index 37b4d66b3fe..37b4d66b3fe 100644
--- a/sql/updates/world/2012_12_23_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_23_00_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_23_01_world_creature_text.sql b/sql/old/3.3.5a/2012_12_23_01_world_creature_text.sql
index b663c5269e9..b663c5269e9 100644
--- a/sql/updates/world/2012_12_23_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_23_01_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_23_02_world_trinity_string.sql b/sql/old/3.3.5a/2012_12_23_02_world_trinity_string.sql
index ac99945d5a5..ac99945d5a5 100644
--- a/sql/updates/world/2012_12_23_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2012_12_23_02_world_trinity_string.sql
diff --git a/sql/updates/world/2012_12_23_03_world_misc.sql b/sql/old/3.3.5a/2012_12_23_03_world_misc.sql
index c9a42df10dd..c9a42df10dd 100644
--- a/sql/updates/world/2012_12_23_03_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_23_03_world_misc.sql
diff --git a/sql/updates/world/2012_12_24_00_world_defending_wyrmrest_temple.sql b/sql/old/3.3.5a/2012_12_24_00_world_defending_wyrmrest_temple.sql
index edf1f887d1c..edf1f887d1c 100644
--- a/sql/updates/world/2012_12_24_00_world_defending_wyrmrest_temple.sql
+++ b/sql/old/3.3.5a/2012_12_24_00_world_defending_wyrmrest_temple.sql
diff --git a/sql/updates/world/2012_12_24_01_world_sai.sql b/sql/old/3.3.5a/2012_12_24_01_world_sai.sql
index d151ee4aa2c..d151ee4aa2c 100644
--- a/sql/updates/world/2012_12_24_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_24_01_world_sai.sql
diff --git a/sql/updates/world/2012_12_24_02_world_sai.sql b/sql/old/3.3.5a/2012_12_24_02_world_sai.sql
index 03d0a9ef5c6..03d0a9ef5c6 100644
--- a/sql/updates/world/2012_12_24_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_24_02_world_sai.sql
diff --git a/sql/updates/world/2012_12_24_03_world_sai.sql b/sql/old/3.3.5a/2012_12_24_03_world_sai.sql
index f89f3c968aa..f89f3c968aa 100644
--- a/sql/updates/world/2012_12_24_03_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_24_03_world_sai.sql
diff --git a/sql/updates/world/2012_12_24_04_world_creature.sql b/sql/old/3.3.5a/2012_12_24_04_world_creature.sql
index 42f69d97a9e..42f69d97a9e 100644
--- a/sql/updates/world/2012_12_24_04_world_creature.sql
+++ b/sql/old/3.3.5a/2012_12_24_04_world_creature.sql
diff --git a/sql/updates/world/2012_12_24_05_world_object.sql b/sql/old/3.3.5a/2012_12_24_05_world_object.sql
index 2b9947a6bd5..2b9947a6bd5 100644
--- a/sql/updates/world/2012_12_24_05_world_object.sql
+++ b/sql/old/3.3.5a/2012_12_24_05_world_object.sql
diff --git a/sql/updates/world/2012_12_24_06_world_reputation.sql b/sql/old/3.3.5a/2012_12_24_06_world_reputation.sql
index 9320d76365d..9320d76365d 100644
--- a/sql/updates/world/2012_12_24_06_world_reputation.sql
+++ b/sql/old/3.3.5a/2012_12_24_06_world_reputation.sql
diff --git a/sql/updates/world/2012_12_24_07_world_sai.sql b/sql/old/3.3.5a/2012_12_24_07_world_sai.sql
index 3cce37295fd..3cce37295fd 100644
--- a/sql/updates/world/2012_12_24_07_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_24_07_world_sai.sql
diff --git a/sql/updates/world/2012_12_24_08_world_conditions.sql b/sql/old/3.3.5a/2012_12_24_08_world_conditions.sql
index ad641203453..ad641203453 100644
--- a/sql/updates/world/2012_12_24_08_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_12_24_08_world_conditions.sql
diff --git a/sql/updates/world/2012_12_24_09_world_sai.sql b/sql/old/3.3.5a/2012_12_24_09_world_sai.sql
index d75dd937598..d75dd937598 100644
--- a/sql/updates/world/2012_12_24_09_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_24_09_world_sai.sql
diff --git a/sql/updates/world/2012_12_25_00_world_sai.sql b/sql/old/3.3.5a/2012_12_25_00_world_sai.sql
index 33363d33573..33363d33573 100644
--- a/sql/updates/world/2012_12_25_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_25_00_world_sai.sql
diff --git a/sql/updates/world/2012_12_25_01_world_sai.sql b/sql/old/3.3.5a/2012_12_25_01_world_sai.sql
index cad0ce2aec3..cad0ce2aec3 100644
--- a/sql/updates/world/2012_12_25_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_25_01_world_sai.sql
diff --git a/sql/updates/world/2012_12_25_02_world_sai.sql b/sql/old/3.3.5a/2012_12_25_02_world_sai.sql
index 35ac4ebb97b..35ac4ebb97b 100644
--- a/sql/updates/world/2012_12_25_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_25_02_world_sai.sql
diff --git a/sql/updates/world/2012_12_25_03_world_sai.sql b/sql/old/3.3.5a/2012_12_25_03_world_sai.sql
index 2a7553aabb3..2a7553aabb3 100644
--- a/sql/updates/world/2012_12_25_03_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_25_03_world_sai.sql
diff --git a/sql/updates/world/2012_12_25_04_world_sai.sql b/sql/old/3.3.5a/2012_12_25_04_world_sai.sql
index 46b2c4c2fd1..46b2c4c2fd1 100644
--- a/sql/updates/world/2012_12_25_04_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_25_04_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_01_world_creature_text.sql b/sql/old/3.3.5a/2012_12_26_01_world_creature_text.sql
index ae4170ae5a8..ae4170ae5a8 100644
--- a/sql/updates/world/2012_12_26_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_12_26_01_world_creature_text.sql
diff --git a/sql/updates/world/2012_12_26_02_world_sai.sql b/sql/old/3.3.5a/2012_12_26_02_world_sai.sql
index b88b4044edb..b88b4044edb 100644
--- a/sql/updates/world/2012_12_26_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_02_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_03_world_sai.sql b/sql/old/3.3.5a/2012_12_26_03_world_sai.sql
index 2e9ed5090e0..2e9ed5090e0 100644
--- a/sql/updates/world/2012_12_26_03_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_03_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_04_world_sai.sql b/sql/old/3.3.5a/2012_12_26_04_world_sai.sql
index a29c8a22fdc..a29c8a22fdc 100644
--- a/sql/updates/world/2012_12_26_04_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_04_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_05_world_sai.sql b/sql/old/3.3.5a/2012_12_26_05_world_sai.sql
index 143f1e9bdb0..143f1e9bdb0 100644
--- a/sql/updates/world/2012_12_26_05_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_05_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_06_world_sai.sql b/sql/old/3.3.5a/2012_12_26_06_world_sai.sql
index 184282fe907..184282fe907 100644
--- a/sql/updates/world/2012_12_26_06_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_06_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_07_world_game_event.sql b/sql/old/3.3.5a/2012_12_26_07_world_game_event.sql
index 21dcf12e1c4..21dcf12e1c4 100644
--- a/sql/updates/world/2012_12_26_07_world_game_event.sql
+++ b/sql/old/3.3.5a/2012_12_26_07_world_game_event.sql
diff --git a/sql/updates/world/2012_12_26_08_world_sai.sql b/sql/old/3.3.5a/2012_12_26_08_world_sai.sql
index 8fde794613e..8fde794613e 100644
--- a/sql/updates/world/2012_12_26_08_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_08_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_09_world_sai.sql b/sql/old/3.3.5a/2012_12_26_09_world_sai.sql
index fe81c15fb3a..fe81c15fb3a 100644
--- a/sql/updates/world/2012_12_26_09_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_09_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_10_world_sai.sql b/sql/old/3.3.5a/2012_12_26_10_world_sai.sql
index b6b925d8255..b6b925d8255 100644
--- a/sql/updates/world/2012_12_26_10_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_10_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_11_world_sai.sql b/sql/old/3.3.5a/2012_12_26_11_world_sai.sql
index abbdfb88c24..abbdfb88c24 100644
--- a/sql/updates/world/2012_12_26_11_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_11_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_12_world_quest_end_scripts.sql b/sql/old/3.3.5a/2012_12_26_12_world_quest_end_scripts.sql
index 501bb796557..501bb796557 100644
--- a/sql/updates/world/2012_12_26_12_world_quest_end_scripts.sql
+++ b/sql/old/3.3.5a/2012_12_26_12_world_quest_end_scripts.sql
diff --git a/sql/updates/world/2012_12_26_13_world_sai.sql b/sql/old/3.3.5a/2012_12_26_13_world_sai.sql
index d36affe8eb3..d36affe8eb3 100644
--- a/sql/updates/world/2012_12_26_13_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_13_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_14_world_sai.sql b/sql/old/3.3.5a/2012_12_26_14_world_sai.sql
index 2929d590637..2929d590637 100644
--- a/sql/updates/world/2012_12_26_14_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_14_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_15_world_sai.sql b/sql/old/3.3.5a/2012_12_26_15_world_sai.sql
index a40f73bffc8..a40f73bffc8 100644
--- a/sql/updates/world/2012_12_26_15_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_15_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_16_world_sai.sql b/sql/old/3.3.5a/2012_12_26_16_world_sai.sql
index 39a246c9ccd..39a246c9ccd 100644
--- a/sql/updates/world/2012_12_26_16_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_16_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_17_world_sai.sql b/sql/old/3.3.5a/2012_12_26_17_world_sai.sql
index 6f35bcc230b..6f35bcc230b 100644
--- a/sql/updates/world/2012_12_26_17_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_17_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_18_world_sai.sql b/sql/old/3.3.5a/2012_12_26_18_world_sai.sql
index cd4989de5e0..cd4989de5e0 100644
--- a/sql/updates/world/2012_12_26_18_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_18_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_19_world_sai.sql b/sql/old/3.3.5a/2012_12_26_19_world_sai.sql
index 5cfd2a29c62..5cfd2a29c62 100644
--- a/sql/updates/world/2012_12_26_19_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_19_world_sai.sql
diff --git a/sql/updates/world/2012_12_26_20_world_sai.sql b/sql/old/3.3.5a/2012_12_26_20_world_sai.sql
index 3574835ce32..3574835ce32 100644
--- a/sql/updates/world/2012_12_26_20_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_26_20_world_sai.sql
diff --git a/sql/updates/world/2012_12_27_00_world_orgrims_hammer.sql b/sql/old/3.3.5a/2012_12_27_00_world_orgrims_hammer.sql
index a7c8af76fa0..a7c8af76fa0 100644
--- a/sql/updates/world/2012_12_27_00_world_orgrims_hammer.sql
+++ b/sql/old/3.3.5a/2012_12_27_00_world_orgrims_hammer.sql
diff --git a/sql/updates/world/2012_12_27_01_world_locales_quest.sql b/sql/old/3.3.5a/2012_12_27_01_world_locales_quest.sql
index 047f8bb499f..047f8bb499f 100644
--- a/sql/updates/world/2012_12_27_01_world_locales_quest.sql
+++ b/sql/old/3.3.5a/2012_12_27_01_world_locales_quest.sql
diff --git a/sql/updates/world/2012_12_27_02_world_locales.sql b/sql/old/3.3.5a/2012_12_27_02_world_locales.sql
index 5caeb009447..5caeb009447 100644
--- a/sql/updates/world/2012_12_27_02_world_locales.sql
+++ b/sql/old/3.3.5a/2012_12_27_02_world_locales.sql
diff --git a/sql/updates/world/2012_12_27_03_world_sai.sql b/sql/old/3.3.5a/2012_12_27_03_world_sai.sql
index acd5c931c50..acd5c931c50 100644
--- a/sql/updates/world/2012_12_27_03_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_27_03_world_sai.sql
diff --git a/sql/updates/world/2012_12_27_04_world_the_shadows_vault.sql b/sql/old/3.3.5a/2012_12_27_04_world_the_shadows_vault.sql
index 96d176d6d1b..96d176d6d1b 100644
--- a/sql/updates/world/2012_12_27_04_world_the_shadows_vault.sql
+++ b/sql/old/3.3.5a/2012_12_27_04_world_the_shadows_vault.sql
diff --git a/sql/updates/world/2012_12_28_00_world_command.sql b/sql/old/3.3.5a/2012_12_28_00_world_command.sql
index 6de970d3b81..6de970d3b81 100644
--- a/sql/updates/world/2012_12_28_00_world_command.sql
+++ b/sql/old/3.3.5a/2012_12_28_00_world_command.sql
diff --git a/sql/updates/world/2012_12_28_01_world_misc.sql b/sql/old/3.3.5a/2012_12_28_01_world_misc.sql
index 44501390d9e..44501390d9e 100644
--- a/sql/updates/world/2012_12_28_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_12_28_01_world_misc.sql
diff --git a/sql/updates/world/2012_12_28_02_world_sai.sql b/sql/old/3.3.5a/2012_12_28_02_world_sai.sql
index 7a518449fde..7a518449fde 100644
--- a/sql/updates/world/2012_12_28_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_28_02_world_sai.sql
diff --git a/sql/updates/world/2012_12_28_03_world_disables.sql b/sql/old/3.3.5a/2012_12_28_03_world_disables.sql
index 017e3aea8c1..017e3aea8c1 100644
--- a/sql/updates/world/2012_12_28_03_world_disables.sql
+++ b/sql/old/3.3.5a/2012_12_28_03_world_disables.sql
diff --git a/sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql b/sql/old/3.3.5a/2012_12_28_04_world_citadel_footsteps.sql
index 3d0ad779dc2..3d0ad779dc2 100644
--- a/sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql
+++ b/sql/old/3.3.5a/2012_12_28_04_world_citadel_footsteps.sql
diff --git a/sql/updates/world/2012_12_30_01_world_trinity_string.sql b/sql/old/3.3.5a/2012_12_30_01_world_trinity_string.sql
index ce0578168f4..ce0578168f4 100644
--- a/sql/updates/world/2012_12_30_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2012_12_30_01_world_trinity_string.sql
diff --git a/sql/updates/world/2012_12_31_00_world_sai.sql b/sql/old/3.3.5a/2012_12_31_00_world_sai.sql
index 9e30c29f784..9e30c29f784 100644
--- a/sql/updates/world/2012_12_31_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_31_00_world_sai.sql
diff --git a/sql/updates/world/2012_12_31_01_world_sai.sql b/sql/old/3.3.5a/2012_12_31_01_world_sai.sql
index 96cf4d1e724..96cf4d1e724 100644
--- a/sql/updates/world/2012_12_31_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_12_31_01_world_sai.sql
diff --git a/sql/updates/world/2013_01_01_00_item_template_restore.sql b/sql/old/3.3.5a/2013_01_01_00_item_template_restore.sql
index dc18ff71fe8..dc18ff71fe8 100644
--- a/sql/updates/world/2013_01_01_00_item_template_restore.sql
+++ b/sql/old/3.3.5a/2013_01_01_00_item_template_restore.sql
diff --git a/sql/updates/world/2013_01_01_01_world_creature_text.sql b/sql/old/3.3.5a/2013_01_01_01_world_creature_text.sql
index c0055f8e1d0..c0055f8e1d0 100644
--- a/sql/updates/world/2013_01_01_01_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_01_01_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_02_00_world_misc.sql b/sql/old/3.3.5a/2013_01_02_00_world_misc.sql
index 8527b8ab145..8527b8ab145 100644
--- a/sql/updates/world/2013_01_02_00_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_02_00_world_misc.sql
diff --git a/sql/updates/world/2013_01_02_01_world_spell_script.sql b/sql/old/3.3.5a/2013_01_02_01_world_spell_script.sql
index a839ca6dc7b..a839ca6dc7b 100644
--- a/sql/updates/world/2013_01_02_01_world_spell_script.sql
+++ b/sql/old/3.3.5a/2013_01_02_01_world_spell_script.sql
diff --git a/sql/updates/world/2013_01_02_02_world_instance_template.sql b/sql/old/3.3.5a/2013_01_02_02_world_instance_template.sql
index f63a2c3ba2e..f63a2c3ba2e 100644
--- a/sql/updates/world/2013_01_02_02_world_instance_template.sql
+++ b/sql/old/3.3.5a/2013_01_02_02_world_instance_template.sql
diff --git a/sql/updates/world/2013_01_02_03_world_sai.sql b/sql/old/3.3.5a/2013_01_02_03_world_sai.sql
index 6f6318b55bd..6f6318b55bd 100644
--- a/sql/updates/world/2013_01_02_03_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_02_03_world_sai.sql
diff --git a/sql/updates/world/2013_01_02_04_world_creature.sql b/sql/old/3.3.5a/2013_01_02_04_world_creature.sql
index 686909ce57e..686909ce57e 100644
--- a/sql/updates/world/2013_01_02_04_world_creature.sql
+++ b/sql/old/3.3.5a/2013_01_02_04_world_creature.sql
diff --git a/sql/updates/world/2013_01_02_05_eye_of_eternity.sql b/sql/old/3.3.5a/2013_01_02_05_eye_of_eternity.sql
index 89cc8f08cce..89cc8f08cce 100644
--- a/sql/updates/world/2013_01_02_05_eye_of_eternity.sql
+++ b/sql/old/3.3.5a/2013_01_02_05_eye_of_eternity.sql
diff --git a/sql/updates/world/2013_01_02_06_world_sai.sql b/sql/old/3.3.5a/2013_01_02_06_world_sai.sql
index 2ce089188d6..2ce089188d6 100644
--- a/sql/updates/world/2013_01_02_06_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_02_06_world_sai.sql
diff --git a/sql/updates/world/2013_01_02_06_world_waypoints.sql b/sql/old/3.3.5a/2013_01_02_06_world_waypoints.sql
index c7302a457a2..c7302a457a2 100644
--- a/sql/updates/world/2013_01_02_06_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_02_06_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_02_07_world_waypoints.sql b/sql/old/3.3.5a/2013_01_02_07_world_waypoints.sql
index b49fd0b28a6..b49fd0b28a6 100644
--- a/sql/updates/world/2013_01_02_07_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_02_07_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_02_08_world_sai.sql b/sql/old/3.3.5a/2013_01_02_08_world_sai.sql
index a3f0dde4658..a3f0dde4658 100644
--- a/sql/updates/world/2013_01_02_08_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_02_08_world_sai.sql
diff --git a/sql/updates/world/2013_01_02_09_world_waypoints.sql b/sql/old/3.3.5a/2013_01_02_09_world_waypoints.sql
index 1c2492fcce8..1c2492fcce8 100644
--- a/sql/updates/world/2013_01_02_09_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_02_09_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_02_10_world_sai.sql b/sql/old/3.3.5a/2013_01_02_10_world_sai.sql
index 0be2c5c2d6b..0be2c5c2d6b 100644
--- a/sql/updates/world/2013_01_02_10_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_02_10_world_sai.sql
diff --git a/sql/updates/world/2013_01_02_11_world_sai.sql b/sql/old/3.3.5a/2013_01_02_11_world_sai.sql
index 7496a765470..7496a765470 100644
--- a/sql/updates/world/2013_01_02_11_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_02_11_world_sai.sql
diff --git a/sql/updates/world/2013_01_02_12_world_go_script.sql b/sql/old/3.3.5a/2013_01_02_12_world_go_script.sql
index aea0a67c47e..aea0a67c47e 100644
--- a/sql/updates/world/2013_01_02_12_world_go_script.sql
+++ b/sql/old/3.3.5a/2013_01_02_12_world_go_script.sql
diff --git a/sql/updates/world/2013_01_02_12_world_waypoints.sql b/sql/old/3.3.5a/2013_01_02_12_world_waypoints.sql
index 6ec7875d8ef..6ec7875d8ef 100644
--- a/sql/updates/world/2013_01_02_12_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_02_12_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_03_00_world_gameobject_scripts.sql b/sql/old/3.3.5a/2013_01_03_00_world_gameobject_scripts.sql
index 32faf4b03a0..32faf4b03a0 100644
--- a/sql/updates/world/2013_01_03_00_world_gameobject_scripts.sql
+++ b/sql/old/3.3.5a/2013_01_03_00_world_gameobject_scripts.sql
diff --git a/sql/updates/world/2013_01_03_01_world_sai.sql b/sql/old/3.3.5a/2013_01_03_01_world_sai.sql
index 9e0e56eb645..9e0e56eb645 100644
--- a/sql/updates/world/2013_01_03_01_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_01_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_02_world_sai.sql b/sql/old/3.3.5a/2013_01_03_02_world_sai.sql
index ecd84c96800..ecd84c96800 100644
--- a/sql/updates/world/2013_01_03_02_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_02_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_03_world_spelldifficulty_dbc.sql b/sql/old/3.3.5a/2013_01_03_03_world_spelldifficulty_dbc.sql
index 6a41f705491..6a41f705491 100644
--- a/sql/updates/world/2013_01_03_03_world_spelldifficulty_dbc.sql
+++ b/sql/old/3.3.5a/2013_01_03_03_world_spelldifficulty_dbc.sql
diff --git a/sql/updates/world/2013_01_03_04_world_sai.sql b/sql/old/3.3.5a/2013_01_03_04_world_sai.sql
index ccac9266af2..ccac9266af2 100644
--- a/sql/updates/world/2013_01_03_04_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_04_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_05_world_sai.sql b/sql/old/3.3.5a/2013_01_03_05_world_sai.sql
index 9e5537835ff..9e5537835ff 100644
--- a/sql/updates/world/2013_01_03_05_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_05_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_06_world_sai.sql b/sql/old/3.3.5a/2013_01_03_06_world_sai.sql
index e77122e908e..e77122e908e 100644
--- a/sql/updates/world/2013_01_03_06_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_06_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_07_world_sai.sql b/sql/old/3.3.5a/2013_01_03_07_world_sai.sql
index 35a03b9078c..35a03b9078c 100644
--- a/sql/updates/world/2013_01_03_07_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_07_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_08_world_misc.sql b/sql/old/3.3.5a/2013_01_03_08_world_misc.sql
index 816b4b4dcf6..816b4b4dcf6 100644
--- a/sql/updates/world/2013_01_03_08_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_03_08_world_misc.sql
diff --git a/sql/updates/world/2013_01_03_09_world_sai.sql b/sql/old/3.3.5a/2013_01_03_09_world_sai.sql
index c15eeb88843..c15eeb88843 100644
--- a/sql/updates/world/2013_01_03_09_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_03_09_world_sai.sql
diff --git a/sql/updates/world/2013_01_03_10_world_gameobject.sql b/sql/old/3.3.5a/2013_01_03_10_world_gameobject.sql
index 11700da1dc9..11700da1dc9 100644
--- a/sql/updates/world/2013_01_03_10_world_gameobject.sql
+++ b/sql/old/3.3.5a/2013_01_03_10_world_gameobject.sql
diff --git a/sql/updates/world/2013_01_03_11_world_item_template.sql b/sql/old/3.3.5a/2013_01_03_11_world_item_template.sql
index df0bd5cd1e7..df0bd5cd1e7 100644
--- a/sql/updates/world/2013_01_03_11_world_item_template.sql
+++ b/sql/old/3.3.5a/2013_01_03_11_world_item_template.sql
diff --git a/sql/updates/world/2013_01_03_12_world_gameobject_scripts.sql b/sql/old/3.3.5a/2013_01_03_12_world_gameobject_scripts.sql
index aede83aa0c8..aede83aa0c8 100644
--- a/sql/updates/world/2013_01_03_12_world_gameobject_scripts.sql
+++ b/sql/old/3.3.5a/2013_01_03_12_world_gameobject_scripts.sql
diff --git a/sql/updates/world/2013_01_03_12_world_misc.sql b/sql/old/3.3.5a/2013_01_03_12_world_misc.sql
index 79d2e2daea9..79d2e2daea9 100644
--- a/sql/updates/world/2013_01_03_12_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_03_12_world_misc.sql
diff --git a/sql/updates/world/2013_01_03_13_world_quest_template.sql b/sql/old/3.3.5a/2013_01_03_13_world_quest_template.sql
index 12adb1e94ba..12adb1e94ba 100644
--- a/sql/updates/world/2013_01_03_13_world_quest_template.sql
+++ b/sql/old/3.3.5a/2013_01_03_13_world_quest_template.sql
diff --git a/sql/updates/world/2013_01_03_14_world_spell_area.sql b/sql/old/3.3.5a/2013_01_03_14_world_spell_area.sql
index 352fe0e9d85..352fe0e9d85 100644
--- a/sql/updates/world/2013_01_03_14_world_spell_area.sql
+++ b/sql/old/3.3.5a/2013_01_03_14_world_spell_area.sql
diff --git a/sql/updates/world/2013_01_03_15_world_various_fixes.sql b/sql/old/3.3.5a/2013_01_03_15_world_various_fixes.sql
index d3db9afa6e5..d3db9afa6e5 100644
--- a/sql/updates/world/2013_01_03_15_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2013_01_03_15_world_various_fixes.sql
diff --git a/sql/updates/world/2013_01_03_16_world_various_fixes.sql b/sql/old/3.3.5a/2013_01_03_16_world_various_fixes.sql
index bc5f4f4b6ec..bc5f4f4b6ec 100644
--- a/sql/updates/world/2013_01_03_16_world_various_fixes.sql
+++ b/sql/old/3.3.5a/2013_01_03_16_world_various_fixes.sql
diff --git a/sql/updates/world/2013_01_04_00_world_creature_text.sql b/sql/old/3.3.5a/2013_01_04_00_world_creature_text.sql
index ae38180e1ac..ae38180e1ac 100644
--- a/sql/updates/world/2013_01_04_00_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_04_00_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_04_01_world_sai.sql b/sql/old/3.3.5a/2013_01_04_01_world_sai.sql
index 8e7127e5728..8e7127e5728 100644
--- a/sql/updates/world/2013_01_04_01_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_04_01_world_sai.sql
diff --git a/sql/updates/world/2013_01_04_02_world_misc.sql b/sql/old/3.3.5a/2013_01_04_02_world_misc.sql
index 6833a22ff23..6833a22ff23 100644
--- a/sql/updates/world/2013_01_04_02_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_04_02_world_misc.sql
diff --git a/sql/updates/world/2013_01_04_02_world_novos_the_summoner.sql b/sql/old/3.3.5a/2013_01_04_02_world_novos_the_summoner.sql
index 49f8b21e3a7..49f8b21e3a7 100644
--- a/sql/updates/world/2013_01_04_02_world_novos_the_summoner.sql
+++ b/sql/old/3.3.5a/2013_01_04_02_world_novos_the_summoner.sql
diff --git a/sql/updates/world/2013_01_05_00_world_waypoints.sql b/sql/old/3.3.5a/2013_01_05_00_world_waypoints.sql
index 4a2d273c552..4a2d273c552 100644
--- a/sql/updates/world/2013_01_05_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_05_00_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_06_00_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_06_00_world_creature_addon.sql
index e4412241dce..e4412241dce 100644
--- a/sql/updates/world/2013_01_06_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_06_00_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_06_00_world_creature_template.sql b/sql/old/3.3.5a/2013_01_06_00_world_creature_template.sql
index 023dc88c870..023dc88c870 100644
--- a/sql/updates/world/2013_01_06_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2013_01_06_00_world_creature_template.sql
diff --git a/sql/updates/world/2013_01_06_01_world_waypoints.sql b/sql/old/3.3.5a/2013_01_06_01_world_waypoints.sql
index a460d33b086..a460d33b086 100644
--- a/sql/updates/world/2013_01_06_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_06_01_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_06_02_world_misc.sql b/sql/old/3.3.5a/2013_01_06_02_world_misc.sql
index 8c24975754a..8c24975754a 100644
--- a/sql/updates/world/2013_01_06_02_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_06_02_world_misc.sql
diff --git a/sql/updates/world/2013_01_06_03_world_sai.sql b/sql/old/3.3.5a/2013_01_06_03_world_sai.sql
index 1cc0962781b..1cc0962781b 100644
--- a/sql/updates/world/2013_01_06_03_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_06_03_world_sai.sql
diff --git a/sql/updates/world/2013_01_06_04_world_misc.sql b/sql/old/3.3.5a/2013_01_06_04_world_misc.sql
index fb1e256fa1b..fb1e256fa1b 100644
--- a/sql/updates/world/2013_01_06_04_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_06_04_world_misc.sql
diff --git a/sql/updates/world/2013_01_07_00_world_sai.sql b/sql/old/3.3.5a/2013_01_07_00_world_sai.sql
index e289130ddef..e289130ddef 100644
--- a/sql/updates/world/2013_01_07_00_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_07_00_world_sai.sql
diff --git a/sql/updates/world/2013_01_07_01_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_07_01_world_creature_addon.sql
index a83bd028343..a83bd028343 100644
--- a/sql/updates/world/2013_01_07_01_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_07_01_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_07_02_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_02_world_creature_text.sql
index 3e916464615..3e916464615 100644
--- a/sql/updates/world/2013_01_07_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_02_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_03_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_03_world_creature_text.sql
index c006dc5ef99..c006dc5ef99 100644
--- a/sql/updates/world/2013_01_07_03_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_03_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_04_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_04_world_creature_text.sql
index 6fd1d3b95a7..6fd1d3b95a7 100644
--- a/sql/updates/world/2013_01_07_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_04_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_05_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_05_world_creature_text.sql
index d9d91e784ba..d9d91e784ba 100644
--- a/sql/updates/world/2013_01_07_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_05_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_06_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_06_world_creature_text.sql
index 5c7d09f9887..5c7d09f9887 100644
--- a/sql/updates/world/2013_01_07_06_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_06_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_07_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_07_world_creature_text.sql
index 6f6a0b75713..6f6a0b75713 100644
--- a/sql/updates/world/2013_01_07_07_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_07_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_08_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_08_world_creature_text.sql
index 94ab4d925ee..94ab4d925ee 100644
--- a/sql/updates/world/2013_01_07_08_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_08_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_09_world_buru.sql b/sql/old/3.3.5a/2013_01_07_09_world_buru.sql
index a7e1d5a0ef1..a7e1d5a0ef1 100644
--- a/sql/updates/world/2013_01_07_09_world_buru.sql
+++ b/sql/old/3.3.5a/2013_01_07_09_world_buru.sql
diff --git a/sql/updates/world/2013_01_07_10_world_skeram.sql b/sql/old/3.3.5a/2013_01_07_10_world_skeram.sql
index fb62da5e994..fb62da5e994 100644
--- a/sql/updates/world/2013_01_07_10_world_skeram.sql
+++ b/sql/old/3.3.5a/2013_01_07_10_world_skeram.sql
diff --git a/sql/updates/world/2013_01_07_11_world_sai.sql b/sql/old/3.3.5a/2013_01_07_11_world_sai.sql
index bf4a1ed3c78..bf4a1ed3c78 100644
--- a/sql/updates/world/2013_01_07_11_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_07_11_world_sai.sql
diff --git a/sql/updates/world/2013_01_07_12_world_sai.sql b/sql/old/3.3.5a/2013_01_07_12_world_sai.sql
index bfa06980983..bfa06980983 100644
--- a/sql/updates/world/2013_01_07_12_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_07_12_world_sai.sql
diff --git a/sql/updates/world/2013_01_07_13_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_13_world_creature_text.sql
index 60d69e3c32a..60d69e3c32a 100644
--- a/sql/updates/world/2013_01_07_13_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_13_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_14_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_14_world_creature_text.sql
index d68eb93ff4e..d68eb93ff4e 100644
--- a/sql/updates/world/2013_01_07_14_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_14_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_15_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_07_15_world_creature_addon.sql
index 2b5ec6c2413..2b5ec6c2413 100644
--- a/sql/updates/world/2013_01_07_15_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_07_15_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_07_16_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_07_16_world_creature_addon.sql
index bd5c17c6f67..bd5c17c6f67 100644
--- a/sql/updates/world/2013_01_07_16_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_07_16_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_07_17_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_17_world_creature_text.sql
index 137308da214..137308da214 100644
--- a/sql/updates/world/2013_01_07_17_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_17_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_07_18_world_creature_text.sql b/sql/old/3.3.5a/2013_01_07_18_world_creature_text.sql
index b9c6ef8d0c1..b9c6ef8d0c1 100644
--- a/sql/updates/world/2013_01_07_18_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_07_18_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_08_01_world_raise_the_barricades.sql b/sql/old/3.3.5a/2013_01_08_01_world_raise_the_barricades.sql
index 636beb404de..636beb404de 100644
--- a/sql/updates/world/2013_01_08_01_world_raise_the_barricades.sql
+++ b/sql/old/3.3.5a/2013_01_08_01_world_raise_the_barricades.sql
diff --git a/sql/updates/world/2013_01_09_00_world_misc.sql b/sql/old/3.3.5a/2013_01_09_00_world_misc.sql
index a5402c60534..a5402c60534 100644
--- a/sql/updates/world/2013_01_09_00_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_09_00_world_misc.sql
diff --git a/sql/updates/world/2013_01_09_01_world_lfg_dungeon_rewards.sql b/sql/old/3.3.5a/2013_01_09_01_world_lfg_dungeon_rewards.sql
index dfc5f7cf075..dfc5f7cf075 100644
--- a/sql/updates/world/2013_01_09_01_world_lfg_dungeon_rewards.sql
+++ b/sql/old/3.3.5a/2013_01_09_01_world_lfg_dungeon_rewards.sql
diff --git a/sql/updates/world/2013_01_09_02_world_sai.sql b/sql/old/3.3.5a/2013_01_09_02_world_sai.sql
index bd164ff4b5e..bd164ff4b5e 100644
--- a/sql/updates/world/2013_01_09_02_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_09_02_world_sai.sql
diff --git a/sql/updates/world/2013_01_09_03_world_spell_script_names.sql b/sql/old/3.3.5a/2013_01_09_03_world_spell_script_names.sql
index 14d0eb8bfd9..14d0eb8bfd9 100644
--- a/sql/updates/world/2013_01_09_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2013_01_09_03_world_spell_script_names.sql
diff --git a/sql/updates/world/2013_01_10_00_world_trinity_string.sql b/sql/old/3.3.5a/2013_01_10_00_world_trinity_string.sql
index 35d0c1eba99..35d0c1eba99 100644
--- a/sql/updates/world/2013_01_10_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2013_01_10_00_world_trinity_string.sql
diff --git a/sql/updates/world/2013_01_10_01_world_sai.sql b/sql/old/3.3.5a/2013_01_10_01_world_sai.sql
index da6c5f994f2..da6c5f994f2 100644
--- a/sql/updates/world/2013_01_10_01_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_10_01_world_sai.sql
diff --git a/sql/updates/world/2013_01_10_02_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_10_02_world_creature_addon.sql
index 4ad14575d36..4ad14575d36 100644
--- a/sql/updates/world/2013_01_10_02_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_10_02_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_10_03_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_10_03_world_creature_addon.sql
index ef633331937..ef633331937 100644
--- a/sql/updates/world/2013_01_10_03_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_10_03_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_10_04_world_creature_addon.sql b/sql/old/3.3.5a/2013_01_10_04_world_creature_addon.sql
index 74f2356e7a7..74f2356e7a7 100644
--- a/sql/updates/world/2013_01_10_04_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2013_01_10_04_world_creature_addon.sql
diff --git a/sql/updates/world/2013_01_10_05_world_sai.sql b/sql/old/3.3.5a/2013_01_10_05_world_sai.sql
index 82f2a16a113..82f2a16a113 100644
--- a/sql/updates/world/2013_01_10_05_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_10_05_world_sai.sql
diff --git a/sql/updates/world/2013_01_11_00_world_ayamiss.sql b/sql/old/3.3.5a/2013_01_11_00_world_ayamiss.sql
index cbdb7a2ed16..cbdb7a2ed16 100644
--- a/sql/updates/world/2013_01_11_00_world_ayamiss.sql
+++ b/sql/old/3.3.5a/2013_01_11_00_world_ayamiss.sql
diff --git a/sql/updates/world/2013_01_11_01_world_conditions.sql b/sql/old/3.3.5a/2013_01_11_01_world_conditions.sql
index 352efb792b4..352efb792b4 100644
--- a/sql/updates/world/2013_01_11_01_world_conditions.sql
+++ b/sql/old/3.3.5a/2013_01_11_01_world_conditions.sql
diff --git a/sql/updates/world/2013_01_11_02_world_sai.sql b/sql/old/3.3.5a/2013_01_11_02_world_sai.sql
index 09466db2e94..09466db2e94 100644
--- a/sql/updates/world/2013_01_11_02_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_11_02_world_sai.sql
diff --git a/sql/updates/world/2013_01_11_03_world_sai.sql b/sql/old/3.3.5a/2013_01_11_03_world_sai.sql
index e08252a4894..e08252a4894 100644
--- a/sql/updates/world/2013_01_11_03_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_11_03_world_sai.sql
diff --git a/sql/updates/world/2013_01_11_04_world_sai.sql b/sql/old/3.3.5a/2013_01_11_04_world_sai.sql
index 3c885d85cc1..3c885d85cc1 100644
--- a/sql/updates/world/2013_01_11_04_world_sai.sql
+++ b/sql/old/3.3.5a/2013_01_11_04_world_sai.sql
diff --git a/sql/updates/world/2013_01_11_05_world_creature_text.sql b/sql/old/3.3.5a/2013_01_11_05_world_creature_text.sql
index 1283fd86106..1283fd86106 100644
--- a/sql/updates/world/2013_01_11_05_world_creature_text.sql
+++ b/sql/old/3.3.5a/2013_01_11_05_world_creature_text.sql
diff --git a/sql/updates/world/2013_01_12_00_world_smart_scripts.sql b/sql/old/3.3.5a/2013_01_12_00_world_smart_scripts.sql
index 06562cbd122..06562cbd122 100644
--- a/sql/updates/world/2013_01_12_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2013_01_12_00_world_smart_scripts.sql
diff --git a/sql/updates/world/2013_01_12_01_world_string.sql b/sql/old/3.3.5a/2013_01_12_01_world_string.sql
index 8766e97231d..8766e97231d 100644
--- a/sql/updates/world/2013_01_12_01_world_string.sql
+++ b/sql/old/3.3.5a/2013_01_12_01_world_string.sql
diff --git a/sql/updates/world/2013_01_12_02_world_creature_template.sql b/sql/old/3.3.5a/2013_01_12_02_world_creature_template.sql
index 608af749f15..608af749f15 100644
--- a/sql/updates/world/2013_01_12_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/2013_01_12_02_world_creature_template.sql
diff --git a/sql/updates/world/2013_01_12_03_world_gameobject.sql b/sql/old/3.3.5a/2013_01_12_03_world_gameobject.sql
index a7a914fceec..a7a914fceec 100644
--- a/sql/updates/world/2013_01_12_03_world_gameobject.sql
+++ b/sql/old/3.3.5a/2013_01_12_03_world_gameobject.sql
diff --git a/sql/updates/world/2013_01_12_03_world_waypoints.sql b/sql/old/3.3.5a/2013_01_12_03_world_waypoints.sql
index 3903e383ae8..3903e383ae8 100644
--- a/sql/updates/world/2013_01_12_03_world_waypoints.sql
+++ b/sql/old/3.3.5a/2013_01_12_03_world_waypoints.sql
diff --git a/sql/updates/world/2013_01_12_04_world_misc.sql b/sql/old/3.3.5a/2013_01_12_04_world_misc.sql
index 5ba81aa39f1..5ba81aa39f1 100644
--- a/sql/updates/world/2013_01_12_04_world_misc.sql
+++ b/sql/old/3.3.5a/2013_01_12_04_world_misc.sql
diff --git a/sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql b/sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql
new file mode 100644
index 00000000000..639b27b911e
--- /dev/null
+++ b/sql/old/3.3.5a/2013_01_12_05_world_waypoint_script.sql
@@ -0,0 +1 @@
+DELETE FROM `waypoint_scripts` WHERE `id` = 8316001;
diff --git a/sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql b/sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql
new file mode 100644
index 00000000000..056dfea0bc9
--- /dev/null
+++ b/sql/old/3.3.5a/2013_01_13_00_world_gameobject_template.sql
@@ -0,0 +1 @@
+UPDATE `gameobject_template` SET `ScriptName`='' WHERE `entry`=130511;
diff --git a/sql/old/3.3.5a/2013_01_13_01_world_sai.sql b/sql/old/3.3.5a/2013_01_13_01_world_sai.sql
new file mode 100644
index 00000000000..a8513d88ab0
--- /dev/null
+++ b/sql/old/3.3.5a/2013_01_13_01_world_sai.sql
@@ -0,0 +1,41 @@
+SET @CONTROL_WATCHER := 58524;
+SET @ETHREAL := 58548;
+SET @GOSSIP := 10028;
+SET @EYE := 193058;
+SET @WATCHER := 31110;
+SET @MIRROR_NPC := 31005;
+SET @FIGMENT_SPELL := 57530;
+SET @PLAYER_MIRROR := 58122;
+SET @CONTROL_START := 58120;
+SET @MIRROR_SPELL := 57528;
+SET @WEAPON_COPY := 41055;
+SET @COPY_OFF_HAND := 45205;
+
+UPDATE `creature_template` SET `spell1` = 58541, `spell2` = 58544, `spell3` = 58543, `spell4` = 58562, `spell5` = 58563, `spell6` = 58658 WHERE `entry` = @WATCHER;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@MIRROR_NPC;
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`= @EYE;
+UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @WATCHER;
+DELETE FROM `smart_scripts` WHERE `entryorguid`= @EYE;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@EYE,1,0,1,62,0,100,0,@GOSSIP,0,0,0,85,@CONTROL_WATCHER,2,0,0,0,0,7,0,0,0,0,0,0,0, 'On Gossip Option Select - Cast Control Eidolon Watcher - Action Invoker'),
+(@EYE,1,1,2,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Eye of Dominion - On link - Close Gossip Option'),
+(@EYE,1,2,3,61,0,100,0,0,0,0,0,85,@PLAYER_MIRROR,2,0,0,0,0,7,0,0,0,0,0,0,0, 'Eye of Dominion - On link - Summon Player Mirror'),
+(@EYE,1,3,0,61,0,100,0,0,0,0,0,15,13168,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Eye of Dominion - On link - Complete quest');
+DELETE FROM `smart_scripts` WHERE `entryorguid`= @MIRROR_NPC;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@MIRROR_NPC,0,0,1,54,0,100,1,0,0,0,0,85,@MIRROR_SPELL,2,0,0,0,0,1,0,0,0,0,0,0,0, 'On spawn - Cast Mirror Spell - Action Invoker'),
+(@MIRROR_NPC,0,1,2,61,0,100,1,0,0,0,0,85,@WEAPON_COPY,2,0,0,0,0,1,0,0,0,0,0,0,0,'On Link - Copy Main Hand - Action Invoker'),
+(@MIRROR_NPC,0,2,3,61,0,100,1,0,0,0,0,85,@COPY_OFF_HAND,2,0,0,0,0,1,0,0,0,0,0,0,0,'On Link - Copy Offhand - Action Invoker'),
+(@MIRROR_NPC,0,3,0,61,0,100,1,0,0,0,0,11,@CONTROL_START,2,0,0,0,0,1,0,0,0,0,0,0,0,'On Spawn - Cast Start Control - Action Invoker');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@WATCHER;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@WATCHER,0,0,0,54,0,100,1,0,0,0,0,11,@ETHREAL,2,0,0,0,0,1,0,0,0,0,0,0,0, 'On spawn - Cast Ethreal Aura - On self');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = @EYE;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(22,4,@EYE,1,0,9,0,13168,0,0,0,0,'','Execute SAI line only if player has quest active');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@MIRROR_SPELL;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,7,@MIRROR_SPELL,0,0,31,0,3,@MIRROR_NPC,0,0,0,'','Spell target Mirror npc');
diff --git a/sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql b/sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql
new file mode 100644
index 00000000000..71f8efbe0c3
--- /dev/null
+++ b/sql/old/3.3.5a/2013_01_13_02_world_gluttonous_lurkers.sql
@@ -0,0 +1,36 @@
+-- Quest: Gluttonous Lurkers (12527)
+-- Zul'drak Rat: Spellclick spells
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=28202;
+INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`cast_flags`) VALUE
+(28202,50926,1),
+(28202,50927,2);
+
+-- Zul'drak Rat: SAI
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=28202;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=28202 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`event_type`,`event_param1`,`action_type`,`target_type`,`comment`) VALUES
+(28202,8,50926,41,1,'Zuldrak Rat - On spell hit of Gluttonous Lurkers: Create ZulDrak Rat Cover - Despawn');
+
+-- Zul'drak Rat spell: Script assignment
+DELETE FROM `spell_script_names` WHERE `spell_id`=50894;
+INSERT INTO `spell_script_names`(`spell_id`,`ScriptName`) VALUE
+(50894,'spell_zuldrak_rat');
+
+-- Zul'drak Rat spell: Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=50894;
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceEntry`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ErrorType`,`Comment`) VALUE
+(17,50894,31,1,3,28145,12,'Zuldrak Rat - Target has to be Lurking Basilisk');
+
+-- Lurking Basilisk: SAI
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=28145;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=28145;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=28145 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`event_type`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`target_type`,`comment`) VALUE
+(28145,0,5000,5000,17000,27000,11,54470,2,'Lurking Basilisk - In Combat - Cast Venemous Bite');
+
+-- Gorged Lurking Basilisk: SAI
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=28203;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=28203;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=28203 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`event_type`,`event_param1`,`action_type`,`target_type`,`comment`) VALUES
+(28203,8,50918,41,1,'Gorged Lurking Basilisk - On Spell Hit of Create Basilisk Crystals Cover - Despawn');
diff --git a/sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql b/sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql
new file mode 100644
index 00000000000..a776ea4a765
--- /dev/null
+++ b/sql/old/3.3.5a/2013_01_13_03_world_spell_script_names.sql
@@ -0,0 +1,4 @@
+-- Zul'drak Rat spell: Script assignment
+DELETE FROM `spell_script_names` WHERE `spell_id`=50894;
+INSERT INTO `spell_script_names`(`spell_id`,`ScriptName`) VALUE
+(50894,'spell_q12527_zuldrak_rat');
diff --git a/sql/old/3.3.5a/2013_01_13_04_world_conditions.sql b/sql/old/3.3.5a/2013_01_13_04_world_conditions.sql
new file mode 100644
index 00000000000..eaf45d5d696
--- /dev/null
+++ b/sql/old/3.3.5a/2013_01_13_04_world_conditions.sql
@@ -0,0 +1,9 @@
+SET @EYE := 193058;
+SET @MIRROR_SPELL := 57528;
+SET @MIRROR_NPC := 31005;
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = @EYE;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (13,17) AND `SourceEntry`=@MIRROR_SPELL;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(22,1,@EYE,1,0,9,0,13168,0,0,0,0,'','Execute SAI line only if player has quest active'),
+(17,0,@MIRROR_SPELL,0,0,31,0,3,@MIRROR_NPC,0,0,0,'','Spell target Mirror npc');
diff --git a/sql/updates/world/2013_01_14_00_world_version.sql b/sql/updates/world/2013_01_14_00_world_version.sql
new file mode 100644
index 00000000000..0bc0a89a8a4
--- /dev/null
+++ b/sql/updates/world/2013_01_14_00_world_version.sql
@@ -0,0 +1 @@
+UPDATE `version` SET `db_version`='TDB 335.50', `cache_id`=50 LIMIT 1;
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 1fe7e4c1035..e0a3943d70f 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -523,7 +523,7 @@ inline void Battleground::_ProcessJoin(uint32 diff)
WorldPacket status;
BattlegroundQueueTypeId bgQueueTypeId = sBattlegroundMgr->BGQueueTypeId(m_TypeID, GetArenaType());
uint32 queueSlot = player->GetBattlegroundQueueIndex(bgQueueTypeId);
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&status, this, queueSlot, STATUS_IN_PROGRESS, 0, GetStartTime(), GetArenaType(), player->GetBGTeam());
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&status, this, queueSlot, STATUS_IN_PROGRESS, 0, GetStartTime(), GetArenaType(), GetPlayerTeam(itr->first));
player->GetSession()->SendPacket(&status);
player->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION);
@@ -919,7 +919,7 @@ void Battleground::EndBattleground(uint32 winner)
player->GetSession()->SendPacket(&pvpLogData);
WorldPacket data;
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_IN_PROGRESS, TIME_TO_AUTOREMOVE, GetStartTime(), GetArenaType(), player->GetBGTeam());
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_IN_PROGRESS, TIME_TO_AUTOREMOVE, GetStartTime(), GetArenaType(), GetPlayerTeam(player->GetGUID()));
player->GetSession()->SendPacket(&data);
player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND, 1);
}
@@ -1846,7 +1846,7 @@ void Battleground::PlayerAddedToBGCheckIfBGIsRunning(Player* player)
sBattlegroundMgr->BuildPvpLogDataPacket(&data, this);
player->GetSession()->SendPacket(&data);
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_IN_PROGRESS, GetEndTime(), GetStartTime(), GetArenaType(), player->GetBGTeam());
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, this, player->GetBattlegroundQueueIndex(bgQueueTypeId), STATUS_IN_PROGRESS, GetEndTime(), GetStartTime(), GetArenaType(), GetPlayerTeam(player->GetGUID()));
player->GetSession()->SendPacket(&data);
}
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 451fa70a8c9..24e69a151b5 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -162,7 +162,7 @@ void BattlegroundMgr::Update(uint32 diff)
}
}
-void BattlegroundMgr::BuildBattlegroundStatusPacket(WorldPacket* data, Battleground* bg, uint8 QueueSlot, uint8 StatusID, uint32 Time1, uint32 Time2, uint8 arenatype, uint8 arenaFaction)
+void BattlegroundMgr::BuildBattlegroundStatusPacket(WorldPacket* data, Battleground* bg, uint8 QueueSlot, uint8 StatusID, uint32 Time1, uint32 Time2, uint8 arenatype, uint32 arenaFaction)
{
// we can be in 2 queues in same time...
@@ -188,26 +188,26 @@ void BattlegroundMgr::BuildBattlegroundStatusPacket(WorldPacket* data, Battlegro
*data << uint32(bg->GetClientInstanceID());
// alliance/horde for BG and skirmish/rated for Arenas
// following displays the minimap-icon 0 = faction icon 1 = arenaicon
- *data << uint8(bg->isRated()); // 1 for rated match, 0 for bg or non rated match
+ *data << uint8(bg->isRated()); // 1 for rated match, 0 for bg or non rated match
- *data << uint32(StatusID); // status
+ *data << uint32(StatusID); // status
switch (StatusID)
{
- case STATUS_WAIT_QUEUE: // status_in_queue
- *data << uint32(Time1); // average wait time, milliseconds
- *data << uint32(Time2); // time in queue, updated every minute!, milliseconds
+ case STATUS_WAIT_QUEUE: // status_in_queue
+ *data << uint32(Time1); // average wait time, milliseconds
+ *data << uint32(Time2); // time in queue, updated every minute!, milliseconds
break;
- case STATUS_WAIT_JOIN: // status_invite
- *data << uint32(bg->GetMapId()); // map id
- *data << uint64(0); // 3.3.5, unknown
- *data << uint32(Time1); // time to remove from queue, milliseconds
+ case STATUS_WAIT_JOIN: // status_invite
+ *data << uint32(bg->GetMapId()); // map id
+ *data << uint64(0); // 3.3.5, unknown
+ *data << uint32(Time1); // time to remove from queue, milliseconds
break;
- case STATUS_IN_PROGRESS: // status_in_progress
- *data << uint32(bg->GetMapId()); // map id
- *data << uint64(0); // 3.3.5, unknown
- *data << uint32(Time1); // time to bg auto leave, 0 at bg start, 120000 after bg end, milliseconds
- *data << uint32(Time2); // time from bg start, milliseconds
- *data << uint8(arenaFaction); // arenafaction (0 for horde, 1 for alliance)
+ case STATUS_IN_PROGRESS: // status_in_progress
+ *data << uint32(bg->GetMapId()); // map id
+ *data << uint64(0); // 3.3.5, unknown
+ *data << uint32(Time1); // time to bg auto leave, 0 at bg start, 120000 after bg end, milliseconds
+ *data << uint32(Time2); // time from bg start, milliseconds
+ *data << uint8(arenaFaction == ALLIANCE ? 1 : 0); // arenafaction (0 for horde, 1 for alliance)
break;
default:
sLog->outError(LOG_FILTER_BATTLEGROUND, "Unknown BG status!");
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h
index ee96414c5f2..c66d9d64ab8 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.h
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.h
@@ -80,7 +80,7 @@ class BattlegroundMgr
void BuildGroupJoinedBattlegroundPacket(WorldPacket* data, GroupJoinBattlegroundResult result);
void BuildUpdateWorldStatePacket(WorldPacket* data, uint32 field, uint32 value);
void BuildPvpLogDataPacket(WorldPacket* data, Battleground* bg);
- void BuildBattlegroundStatusPacket(WorldPacket* data, Battleground* bg, uint8 queueSlot, uint8 statusId, uint32 time1, uint32 time2, uint8 arenaType, uint8 arenaFaction);
+ void BuildBattlegroundStatusPacket(WorldPacket* data, Battleground* bg, uint8 queueSlot, uint8 statusId, uint32 time1, uint32 time2, uint8 arenaType, uint32 arenaFaction);
void BuildPlaySoundPacket(WorldPacket* data, uint32 soundId);
void SendAreaSpiritHealerQueryOpcode(Player* player, Battleground* bg, uint64 guid);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index 076c68b5f76..b6452e76b5d 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -259,9 +259,10 @@ void BattlegroundEY::UpdatePointStatuses()
this->EventTeamLostPoint(player, point);
}
+ /// @workaround The original AreaTrigger is covered by a bigger one and not triggered on client side.
if (point == FEL_REAVER && m_PointOwnedByTeam[point] == player->GetTeam())
if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
- if (player->GetDistance2d(2044.0f, 1730.0f) < 2.0f)
+ if (player->GetDistance(2044.0f, 1729.729f, 1190.03f) < 3.0f)
EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_FEL_REAVER);
}
}
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 9d5d8e40b54..09be64813af 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -1563,7 +1563,6 @@ void LFGMgr::FinishDungeon(uint64 gguid, const uint32 dungeonId)
LfgPlayerRewardData data = LfgPlayerRewardData(dungeon->Entry(), GetDungeon(gguid, false), done, quest);
player->GetSession()->SendLfgPlayerReward(data);
}
- SetDungeon(gguid, 0);
}
// --------------------------------------------------------------------------//
@@ -1632,6 +1631,18 @@ LfgState LFGMgr::GetState(uint64 guid)
return state;
}
+LfgState LFGMgr::GetOldState(uint64 guid)
+{
+ LfgState state;
+ if (IS_GROUP_GUID(guid))
+ state = GroupsStore[guid].GetOldState();
+ else
+ state = PlayersStore[guid].GetOldState();
+
+ sLog->outTrace(LOG_FILTER_LFG, "LFGMgr::GetOldState: [" UI64FMTD "] = %u", guid, state);
+ return state;
+}
+
uint32 LFGMgr::GetDungeon(uint64 guid, bool asId /*= true */)
{
uint32 dungeon = GroupsStore[guid].GetDungeon(asId);
diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h
index 0a1b90ee04d..33626467486 100644
--- a/src/server/game/DungeonFinding/LFGMgr.h
+++ b/src/server/game/DungeonFinding/LFGMgr.h
@@ -347,6 +347,7 @@ class LFGMgr
uint32 GetDungeon(uint64 guid, bool asId = true);
uint32 GetDungeonMapId(uint64 guid);
LfgState GetState(uint64 guid);
+ LfgState GetOldState(uint64 guid);
uint8 GetKicksLeft(uint64 gguid);
uint64 GetLeader(uint64 guid);
bool IsLfgGroup(uint64 guid);
diff --git a/src/server/game/DungeonFinding/LFGQueue.cpp b/src/server/game/DungeonFinding/LFGQueue.cpp
index e75a1bdc4b3..f1d2dbb313d 100644
--- a/src/server/game/DungeonFinding/LFGQueue.cpp
+++ b/src/server/game/DungeonFinding/LFGQueue.cpp
@@ -483,7 +483,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check)
uint64 gguid = *check.begin();
proposal.queues = check;
- proposal.isNew = numLfgGroups != 1 || !sLFGMgr->GetDungeon(gguid);
+ proposal.isNew = numLfgGroups != 1 || sLFGMgr->GetOldState(gguid) != LFG_STATE_DUNGEON;
if (!sLFGMgr->AllQueued(check))
{
diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp
index 5fb97a031f1..99056960893 100644
--- a/src/server/game/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Handlers/BattleGroundHandler.cpp
@@ -453,7 +453,7 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData)
_player->CleanupAfterTaxiFlight();
}
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_IN_PROGRESS, 0, bg->GetStartTime(), bg->GetArenaType(), _player->GetBGTeam());
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_IN_PROGRESS, 0, bg->GetStartTime(), bg->GetArenaType(), bg->GetPlayerTeam(_player->GetGUID()));
_player->GetSession()->SendPacket(&data);
// remove battleground queue status from BGmgr
bgQueue.RemovePlayer(_player->GetGUID(), false);
@@ -541,7 +541,7 @@ void WorldSession::HandleBattlefieldStatusOpcode(WorldPacket & /*recvData*/)
{
// this line is checked, i only don't know if GetStartTime is changing itself after bg end!
// send status in Battleground
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, i, STATUS_IN_PROGRESS, bg->GetEndTime(), bg->GetStartTime(), arenaType, _player->GetBGTeam());
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, i, STATUS_IN_PROGRESS, bg->GetEndTime(), bg->GetStartTime(), arenaType, bg->GetPlayerTeam(_player->GetGUID()));
SendPacket(&data);
continue;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 97fe57c5434..96293c635d6 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -146,7 +146,7 @@ public:
me->CastSpell(me, SPELL_DK_INITIATE_VISUAL, true);
if (Player* starter = Unit::GetPlayer(*me, playerGUID))
- Talk(SAY_EVENT_ATTACK);
+ sCreatureTextMgr->SendChat(me, SAY_EVENT_ATTACK, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, starter);
phase = PHASE_TO_ATTACK;
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index 87301f43745..22c4da74d44 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -399,35 +399,6 @@ class go_altar_of_archaedas : public GameObjectScript
}
};
-/* ScriptData
-SDName: go_altar_of_the_keepers
-SD%Complete: 100
-SDComment: Need 1 person to activate to open the altar. One by one the StoneKeepers will activate. After all four are dead than the door will open.
-SDCategory: Uldaman
-EndScriptData */
-
-class go_altar_of_the_keepers : public GameObjectScript
-{
- public:
-
- go_altar_of_the_keepers()
- : GameObjectScript("go_altar_of_the_keepers")
- {
- }
-
- bool OnGossipHello(Player* player, GameObject* /*go*/)
- {
- InstanceScript* instance = player->GetInstanceScript();
- if (!instance)
- return false;
-
- player->CastSpell (player, SPELL_BOSS_OBJECT_VISUAL, false);
-
- instance->SetData(DATA_STONE_KEEPERS, IN_PROGRESS); // activate the Stone Keepers
- return false;
- }
-};
-
//This is the actual function called only once durring InitScripts()
//It must define all handled functions that are to be run in this script
void AddSC_boss_archaedas()
@@ -436,6 +407,5 @@ void AddSC_boss_archaedas()
new mob_archaedas_minions();
new mob_stonekeepers();
new go_altar_of_archaedas();
- new go_altar_of_the_keepers();
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
index 138243a9ce2..ac26056c6e6 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
@@ -33,38 +33,38 @@ enum eSpells
SPELL_AWAKEN_VAULT_WALKER = 10258,
};
+enum Events
+{
+ EVENT_SUB_BOSS_AGGRO = 2228
+};
+
class instance_uldaman : public InstanceMapScript
{
public:
- instance_uldaman()
- : InstanceMapScript("instance_uldaman", 70)
- {
- }
+ instance_uldaman() : InstanceMapScript("instance_uldaman", 70) {}
struct instance_uldaman_InstanceMapScript : public InstanceScript
{
- instance_uldaman_InstanceMapScript(Map* map) : InstanceScript(map)
- {
- }
+ instance_uldaman_InstanceMapScript(Map* map) : InstanceScript(map) {}
void Initialize()
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
- uiArchaedasGUID = 0;
- uiIronayaGUID = 0;
- uiWhoWokeuiArchaedasGUID = 0;
+ archaedasGUID = 0;
+ ironayaGUID = 0;
+ whoWokeuiArchaedasGUID = 0;
- uiAltarOfTheKeeperTempleDoor = 0;
- uiArchaedasTempleDoor = 0;
- uiAncientVaultDoor = 0;
+ altarOfTheKeeperTempleDoor = 0;
+ archaedasTempleDoor = 0;
+ ancientVaultDoor = 0;
- uiIronayaSealDoor = 0;
+ ironayaSealDoor = 0;
- uiKeystoneGUID = 0;
+ keystoneGUID = 0;
- uiIronayaSealDoorTimer = 27000; //animation time
- bKeystoneCheck = false;
+ ironayaSealDoorTimer = 27000; //animation time
+ keystoneCheck = false;
}
bool IsEncounterInProgress() const
@@ -76,25 +76,25 @@ class instance_uldaman : public InstanceMapScript
return false;
}
- uint64 uiArchaedasGUID;
- uint64 uiIronayaGUID;
- uint64 uiWhoWokeuiArchaedasGUID;
+ uint64 archaedasGUID;
+ uint64 ironayaGUID;
+ uint64 whoWokeuiArchaedasGUID;
- uint64 uiAltarOfTheKeeperTempleDoor;
- uint64 uiArchaedasTempleDoor;
- uint64 uiAncientVaultDoor;
- uint64 uiIronayaSealDoor;
+ uint64 altarOfTheKeeperTempleDoor;
+ uint64 archaedasTempleDoor;
+ uint64 ancientVaultDoor;
+ uint64 ironayaSealDoor;
- uint64 uiKeystoneGUID;
+ uint64 keystoneGUID;
- uint32 uiIronayaSealDoorTimer;
- bool bKeystoneCheck;
+ uint32 ironayaSealDoorTimer;
+ bool keystoneCheck;
- std::vector<uint64> vStoneKeeper;
- std::vector<uint64> vAltarOfTheKeeperCount;
- std::vector<uint64> vVaultWalker;
- std::vector<uint64> vEarthenGuardian;
- std::vector<uint64> vArchaedasWallMinions; // minions lined up around the wall
+ std::vector<uint64> stoneKeepers;
+ std::vector<uint64> altarOfTheKeeperCounts;
+ std::vector<uint64> vaultWalkers;
+ std::vector<uint64> earthenGuardians;
+ std::vector<uint64> archaedasWallMinions; // minions lined up around the wall
uint32 m_auiEncounter[MAX_ENCOUNTER];
std::string str_data;
@@ -104,14 +104,14 @@ class instance_uldaman : public InstanceMapScript
switch (go->GetEntry())
{
case GO_ALTAR_OF_THE_KEEPER_TEMPLE_DOOR: // lock the door
- uiAltarOfTheKeeperTempleDoor = go->GetGUID();
+ altarOfTheKeeperTempleDoor = go->GetGUID();
if (m_auiEncounter[0] == DONE)
HandleGameObject(0, true, go);
break;
case GO_ARCHAEDAS_TEMPLE_DOOR:
- uiArchaedasTempleDoor = go->GetGUID();
+ archaedasTempleDoor = go->GetGUID();
if (m_auiEncounter[0] == DONE)
HandleGameObject(0, true, go);
@@ -120,21 +120,21 @@ class instance_uldaman : public InstanceMapScript
case GO_ANCIENT_VAULT_DOOR:
go->SetGoState(GO_STATE_READY);
go->SetUInt32Value(GAMEOBJECT_FLAGS, 33);
- uiAncientVaultDoor = go->GetGUID();
+ ancientVaultDoor = go->GetGUID();
if (m_auiEncounter[1] == DONE)
HandleGameObject(0, true, go);
break;
case GO_IRONAYA_SEAL_DOOR:
- uiIronayaSealDoor = go->GetGUID();
+ ironayaSealDoor = go->GetGUID();
if (m_auiEncounter[2] == DONE)
HandleGameObject(0, true, go);
break;
case GO_KEYSTONE:
- uiKeystoneGUID = go->GetGUID();
+ keystoneGUID = go->GetGUID();
if (m_auiEncounter[2] == DONE)
{
@@ -174,28 +174,31 @@ class instance_uldaman : public InstanceMapScript
void ActivateStoneKeepers()
{
- for (std::vector<uint64>::const_iterator i = vStoneKeeper.begin(); i != vStoneKeeper.end(); ++i)
+ if (GetData(DATA_ALTAR_DOORS) != DONE)
{
- Creature* target = instance->GetCreature(*i);
- if (!target || !target->isAlive() || target->getFaction() == 14)
- continue;
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
- target->setFaction(14);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- return; // only want the first one we find
+ for (std::vector<uint64>::const_iterator i = stoneKeepers.begin(); i != stoneKeepers.end(); ++i)
+ {
+ Creature* target = instance->GetCreature(*i);
+ if (!target || !target->isAlive())
+ continue;
+ target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
+ target->setFaction(14);
+ target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ return; // only want the first one we find
+ }
+ // if we get this far than all four are dead so open the door
+ SetData(DATA_ALTAR_DOORS, DONE);
+ SetDoor(archaedasTempleDoor, true); //open next the door too
}
- // if we get this far than all four are dead so open the door
- SetData(DATA_ALTAR_DOORS, DONE);
- SetDoor(uiArchaedasTempleDoor, true); //open next the door too
}
void ActivateWallMinions()
{
- Creature* archaedas = instance->GetCreature(uiArchaedasGUID);
+ Creature* archaedas = instance->GetCreature(archaedasGUID);
if (!archaedas)
return;
- for (std::vector<uint64>::const_iterator i = vArchaedasWallMinions.begin(); i != vArchaedasWallMinions.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (!target || !target->isAlive() || target->getFaction() == 14)
@@ -213,7 +216,7 @@ class instance_uldaman : public InstanceMapScript
void DeActivateMinions()
{
// first despawn any aggroed wall minions
- for (std::vector<uint64>::const_iterator i = vArchaedasWallMinions.begin(); i != vArchaedasWallMinions.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (!target || target->isDead() || target->getFaction() != 14)
@@ -223,7 +226,7 @@ class instance_uldaman : public InstanceMapScript
}
// Vault Walkers
- for (std::vector<uint64>::const_iterator i = vVaultWalker.begin(); i != vVaultWalker.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = vaultWalkers.begin(); i != vaultWalkers.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (!target || target->isDead() || target->getFaction() != 14)
@@ -233,7 +236,7 @@ class instance_uldaman : public InstanceMapScript
}
// Earthen Guardians
- for (std::vector<uint64>::const_iterator i = vEarthenGuardian.begin(); i != vEarthenGuardian.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = earthenGuardians.begin(); i != earthenGuardians.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (!target || target->isDead() || target->getFaction() != 14)
@@ -245,20 +248,20 @@ class instance_uldaman : public InstanceMapScript
void ActivateArchaedas(uint64 target)
{
- Creature* archaedas = instance->GetCreature(uiArchaedasGUID);
+ Creature* archaedas = instance->GetCreature(archaedasGUID);
if (!archaedas)
return;
if (Unit::GetUnit(*archaedas, target))
{
archaedas->CastSpell(archaedas, SPELL_ARCHAEDAS_AWAKEN, false);
- uiWhoWokeuiArchaedasGUID = target;
+ whoWokeuiArchaedasGUID = target;
}
}
void ActivateIronaya()
{
- Creature* ironaya = instance->GetCreature(uiIronayaGUID);
+ Creature* ironaya = instance->GetCreature(ironayaGUID);
if (!ironaya)
return;
@@ -270,7 +273,7 @@ class instance_uldaman : public InstanceMapScript
void RespawnMinions()
{
// first respawn any aggroed wall minions
- for (std::vector<uint64>::const_iterator i = vArchaedasWallMinions.begin(); i != vArchaedasWallMinions.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = archaedasWallMinions.begin(); i != archaedasWallMinions.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (target && target->isDead())
@@ -282,7 +285,7 @@ class instance_uldaman : public InstanceMapScript
}
// Vault Walkers
- for (std::vector<uint64>::const_iterator i = vVaultWalker.begin(); i != vVaultWalker.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = vaultWalkers.begin(); i != vaultWalkers.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (target && target->isDead())
@@ -294,7 +297,7 @@ class instance_uldaman : public InstanceMapScript
}
// Earthen Guardians
- for (std::vector<uint64>::const_iterator i = vEarthenGuardian.begin(); i != vEarthenGuardian.end(); ++i)
+ for (std::vector<uint64>::const_iterator i = earthenGuardians.begin(); i != earthenGuardians.end(); ++i)
{
Creature* target = instance->GetCreature(*i);
if (target && target->isDead())
@@ -307,21 +310,21 @@ class instance_uldaman : public InstanceMapScript
}
void Update(uint32 diff)
{
- if (!bKeystoneCheck)
+ if (!keystoneCheck)
return;
- if (uiIronayaSealDoorTimer <= diff)
+ if (ironayaSealDoorTimer <= diff)
{
ActivateIronaya();
- SetDoor(uiIronayaSealDoor, true);
- BlockGO(uiKeystoneGUID);
+ SetDoor(ironayaSealDoor, true);
+ BlockGO(keystoneGUID);
SetData(DATA_IRONAYA_DOOR, DONE); //save state
- bKeystoneCheck = false;
+ keystoneCheck = false;
}
else
- uiIronayaSealDoorTimer -= diff;
+ ironayaSealDoorTimer -= diff;
}
void SetData(uint32 type, uint32 data)
@@ -331,15 +334,15 @@ class instance_uldaman : public InstanceMapScript
case DATA_ALTAR_DOORS:
m_auiEncounter[0] = data;
if (data == DONE)
- SetDoor(uiAltarOfTheKeeperTempleDoor, true);
+ SetDoor(altarOfTheKeeperTempleDoor, true);
break;
case DATA_ANCIENT_DOOR:
m_auiEncounter[1] = data;
if (data == DONE) //archeadas defeat
{
- SetDoor(uiArchaedasTempleDoor, true); //re open enter door
- SetDoor(uiAncientVaultDoor, true);
+ SetDoor(archaedasTempleDoor, true); //re open enter door
+ SetDoor(ancientVaultDoor, true);
}
break;
@@ -356,7 +359,7 @@ class instance_uldaman : public InstanceMapScript
{
case NOT_STARTED:
if (m_auiEncounter[0] == DONE) //if players opened the doors
- SetDoor(uiArchaedasTempleDoor, true);
+ SetDoor(archaedasTempleDoor, true);
RespawnMinions();
break;
@@ -372,7 +375,7 @@ class instance_uldaman : public InstanceMapScript
break;
case DATA_IRONAYA_SEAL:
- bKeystoneCheck = true;
+ keystoneCheck = true;
break;
}
@@ -396,7 +399,7 @@ class instance_uldaman : public InstanceMapScript
if (type == 0)
{
ActivateArchaedas (data);
- SetDoor(uiArchaedasTempleDoor, false); //close when event is started
+ SetDoor(archaedasTempleDoor, false); //close when event is started
}
}
@@ -433,34 +436,34 @@ class instance_uldaman : public InstanceMapScript
{
case 4857: // Stone Keeper
SetFrozenState (creature);
- vStoneKeeper.push_back(creature->GetGUID());
+ stoneKeepers.push_back(creature->GetGUID());
break;
case 7309: // Earthen Custodian
- vArchaedasWallMinions.push_back(creature->GetGUID());
+ archaedasWallMinions.push_back(creature->GetGUID());
break;
case 7077: // Earthen Hallshaper
- vArchaedasWallMinions.push_back(creature->GetGUID());
+ archaedasWallMinions.push_back(creature->GetGUID());
break;
case 7076: // Earthen Guardian
- vEarthenGuardian.push_back(creature->GetGUID());
+ earthenGuardians.push_back(creature->GetGUID());
break;
case 7228: // Ironaya
- uiIronayaGUID = creature->GetGUID();
+ ironayaGUID = creature->GetGUID();
if (m_auiEncounter[2] != DONE)
SetFrozenState (creature);
break;
case 10120: // Vault Walker
- vVaultWalker.push_back(creature->GetGUID());
+ vaultWalkers.push_back(creature->GetGUID());
break;
case 2748: // Archaedas
- uiArchaedasGUID = creature->GetGUID();
+ archaedasGUID = creature->GetGUID();
break;
}
@@ -471,25 +474,37 @@ class instance_uldaman : public InstanceMapScript
switch (identifier)
{
case 0:
- return uiWhoWokeuiArchaedasGUID;
+ return whoWokeuiArchaedasGUID;
case 1:
case 2:
case 3:
case 4:
- return vVaultWalker.at(identifier - 1);
+ return vaultWalkers.at(identifier - 1);
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
- return vEarthenGuardian.at(identifier - 5);
+ return earthenGuardians.at(identifier - 5);
default:
break;
}
return 0;
} // end GetData64
+
+ void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId)
+ {
+ switch (eventId)
+ {
+ case EVENT_SUB_BOSS_AGGRO:
+ SetData(DATA_STONE_KEEPERS, IN_PROGRESS); // activate the Stone Keepers
+ break;
+ default:
+ break;
+ }
+ }
};
InstanceScript* GetInstanceScript(InstanceMap* map) const
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
index 935e54eae0c..577423adb39 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
@@ -45,32 +45,37 @@ EndScriptData */
#define YELL_BERSERK "Whatch you be doing? Pissin' yourselves..."
#define SOUND_BERSERK 12025
-#define SPELL_DUAL_WIELD 29651
-#define SPELL_SABER_LASH 43267
-#define SPELL_FRENZY 43139
-#define SPELL_FLAMESHOCK 43303
-#define SPELL_EARTHSHOCK 43305
-#define SPELL_TRANSFORM_SPLIT 43142
-#define SPELL_TRANSFORM_SPLIT2 43573
-#define SPELL_TRANSFORM_MERGE 43271
-#define SPELL_SUMMON_LYNX 43143
-#define SPELL_SUMMON_TOTEM 43302
-#define SPELL_BERSERK 45078
-
-#define MOB_SPIRIT_LYNX 24143
-#define SPELL_LYNX_FRENZY 43290
-#define SPELL_SHRED_ARMOR 43243
-
-#define MOB_TOTEM 24224
+enum Spells
+{
+ SPELL_DUAL_WIELD = 29651,
+ SPELL_SABER_LASH = 43267,
+ SPELL_FRENZY = 43139,
+ SPELL_FLAMESHOCK = 43303,
+ SPELL_EARTHSHOCK = 43305,
+ SPELL_TRANSFORM_SPLIT = 43142,
+ SPELL_TRANSFORM_SPLIT2 = 43573,
+ SPELL_TRANSFORM_MERGE = 43271,
+ SPELL_SUMMON_LYNX = 43143,
+ SPELL_SUMMON_TOTEM = 43302,
+ SPELL_BERSERK = 45078,
+ SPELL_LYNX_FRENZY = 43290, // Used by Spirit Lynx
+ SPELL_SHRED_ARMOR = 43243 // Used by Spirit Lynx
+};
+
+enum Hal_CreatureIds
+{
+ NPC_SPIRIT_LYNX = 24143,
+ NPC_TOTEM = 24224
+};
enum PhaseHalazzi
{
- PHASE_NONE = 0,
- PHASE_LYNX = 1,
- PHASE_SPLIT = 2,
- PHASE_HUMAN = 3,
- PHASE_MERGE = 4,
- PHASE_ENRAGE = 5
+ PHASE_NONE = 0,
+ PHASE_LYNX = 1,
+ PHASE_SPLIT = 2,
+ PHASE_HUMAN = 3,
+ PHASE_MERGE = 4,
+ PHASE_ENRAGE = 5
};
class boss_halazzi : public CreatureScript
@@ -134,7 +139,7 @@ class boss_halazzi : public CreatureScript
void JustSummoned(Creature* summon)
{
summon->AI()->AttackStart(me->getVictim());
- if (summon->GetEntry() == MOB_SPIRIT_LYNX)
+ if (summon->GetEntry() == NPC_SPIRIT_LYNX)
LynxGUID = summon->GetGUID();
}
@@ -183,7 +188,7 @@ class boss_halazzi : public CreatureScript
break;
case PHASE_HUMAN:
//DoCast(me, SPELL_SUMMON_LYNX, true);
- DoSpawnCreature(MOB_SPIRIT_LYNX, 5, 5, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ DoSpawnCreature(NPC_SPIRIT_LYNX, 5, 5, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
me->SetMaxHealth(400000);
me->SetHealth(400000);
ShockTimer = 10000;
@@ -413,3 +418,4 @@ void AddSC_boss_halazzi()
new mob_halazzi_lynx();
}
+
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
index 54a5f5c706c..593ee05d951 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
@@ -27,14 +27,14 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum eYells
+enum Says
{
SAY_AGGRO = 0,
SAY_FEAST_PANTHER = 1,
- SAY_DEATH = 2,
+ SAY_DEATH = 2
};
-enum eSpells
+enum Spells
{
SPELL_SHADOWWORDPAIN = 23952,
SPELL_GOUGE = 24698,
@@ -51,21 +51,11 @@ enum eSpells
class boss_arlokk : public CreatureScript
{
- public:
-
- boss_arlokk()
- : CreatureScript("boss_arlokk")
- {
- }
+ public: boss_arlokk() : CreatureScript("boss_arlokk") {}
- struct boss_arlokkAI : public ScriptedAI
+ struct boss_arlokkAI : public BossAI
{
- boss_arlokkAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
+ boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) {}
uint32 m_uiShadowWordPain_Timer;
uint32 m_uiGouge_Timer;
@@ -104,8 +94,17 @@ class boss_arlokk : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ me->SetDisplayId(MODEL_ID_NORMAL);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
Talk(SAY_AGGRO);
}
@@ -118,17 +117,6 @@ class boss_arlokk : public CreatureScript
me->DespawnOrUnsummon();
}
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
-
- me->SetDisplayId(MODEL_ID_NORMAL);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
-
- if (instance)
- instance->SetData(DATA_ARLOKK, DONE);
- }
-
void DoSummonPhanters()
{
if (MarkedTargetGUID)
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
index e7d54aecb31..7943e51a7cd 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
@@ -25,62 +25,73 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "zulgurub.h"
-#define SPELL_FROSTBREATH 16099
-#define SPELL_MASSIVEGEYSER 22421 //Not working. Cause its a summon...
-#define SPELL_SLAM 24326
+enum Spells
+{
+ SPELL_FROSTBREATH = 16099,
+ SPELL_MASSIVEGEYSER = 22421, // Not working. (summon)
+ SPELL_SLAM = 24326
+};
+
+enum Events
+{
+ EVENT_FROSTBREATH = 0,
+ EVENT_MASSIVEGEYSER = 1,
+ EVENT_SLAM = 2
+};
-class boss_gahzranka : public CreatureScript
+class boss_gahzranka : public CreatureScript // gahzranka
{
- public:
- boss_gahzranka() : CreatureScript("boss_gahzranka") { }
+ public: boss_gahzranka() : CreatureScript("boss_gahzranka") {}
- struct boss_gahzrankaAI : public ScriptedAI
+ struct boss_gahzrankaAI : public BossAI
{
- boss_gahzrankaAI(Creature* creature) : ScriptedAI(creature) { }
- uint32 Frostbreath_Timer;
- uint32 MassiveGeyser_Timer;
- uint32 Slam_Timer;
+ boss_gahzrankaAI(Creature* creature) : BossAI(creature, DATA_GAHZRANKA) {}
- void Reset()
+ void JustDied(Unit* /*killer*/)
{
- Frostbreath_Timer = 8000;
- MassiveGeyser_Timer = 25000;
- Slam_Timer = 17000;
+ _JustDied();
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_FROSTBREATH, 8000);
+ events.ScheduleEvent(EVENT_MASSIVEGEYSER, 25000);
+ events.ScheduleEvent(EVENT_SLAM, 17000);
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
- //Return since we have no target
if (!UpdateVictim())
return;
- //Frostbreath_Timer
- if (Frostbreath_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_FROSTBREATH);
- Frostbreath_Timer = urand(7000, 11000);
- } else Frostbreath_Timer -= diff;
-
- //MassiveGeyser_Timer
- if (MassiveGeyser_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_MASSIVEGEYSER);
- DoResetThreat();
+ events.Update(diff);
- MassiveGeyser_Timer = urand(22000, 32000);
- } else MassiveGeyser_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- //Slam_Timer
- if (Slam_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCast(me->getVictim(), SPELL_SLAM);
- Slam_Timer = urand(12000, 20000);
- } else Slam_Timer -= diff;
+ switch (eventId)
+ {
+ case EVENT_FROSTBREATH:
+ DoCastVictim(SPELL_FROSTBREATH, true);
+ events.ScheduleEvent(EVENT_FROSTBREATH, urand(7000, 11000));
+ break;
+ case EVENT_MASSIVEGEYSER:
+ DoCastVictim(SPELL_MASSIVEGEYSER, true);
+ events.ScheduleEvent(EVENT_MASSIVEGEYSER, urand(22000, 32000));
+ break;
+ case EVENT_SLAM:
+ DoCastVictim(SPELL_SLAM, true);
+ events.ScheduleEvent(EVENT_SLAM, urand(12000, 20000));
+ break;
+ default:
+ break;
+ }
+ }
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
index 4ccdbceb466..4b7bee5abf1 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
@@ -27,60 +27,68 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-#define SPELL_AVARTAR 24646 //The Enrage Spell
-#define SPELL_GROUNDTREMOR 6524
+enum Spells
+{
+ SPELL_AVATAR = 24646, // Enrage Spell
+ SPELL_GROUND_TREMOR = 6524
+};
+
+enum Events
+{
+ EVENT_AVATAR = 0,
+ EVENT_GROUND_TREMOR = 1
+};
-class boss_grilek : public CreatureScript
+class boss_grilek : public CreatureScript // grilek
{
- public:
- boss_grilek() : CreatureScript("boss_grilek") { }
+ public: boss_grilek() : CreatureScript("boss_grilek") {}
- struct boss_grilekAI : public ScriptedAI
+ struct boss_grilekAI : public BossAI
{
- boss_grilekAI(Creature* creature) : ScriptedAI(creature) { }
-
- uint32 Avartar_Timer;
- uint32 GroundTremor_Timer;
+ boss_grilekAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
- void Reset()
+ void JustDied(Unit* /*killer*/)
{
- Avartar_Timer = urand(15000, 25000);
- GroundTremor_Timer = urand(8000, 16000);
+ _JustDied();
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_AVATAR, urand(15000, 25000));
+ events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(15000, 25000));
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
- //Return since we have no target
if (!UpdateVictim())
return;
- //Avartar_Timer
- if (Avartar_Timer <= diff)
- {
-
- DoCast(me, SPELL_AVARTAR);
- Unit* target = NULL;
-
- target = SelectTarget(SELECT_TARGET_RANDOM, 1);
+ events.Update(diff);
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -50);
- if (target)
- AttackStart(target);
-
- Avartar_Timer = urand(25000, 35000);
- } else Avartar_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- //GroundTremor_Timer
- if (GroundTremor_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCast(me->getVictim(), SPELL_GROUNDTREMOR);
- GroundTremor_Timer = urand(12000, 16000);
- } else GroundTremor_Timer -= diff;
+ switch (eventId)
+ {
+ case EVENT_AVATAR:
+ DoCast(me, SPELL_AVATAR);
+ if (DoGetThreat(me->getVictim()))
+ DoModifyThreatPercent(me->getVictim(), -50);
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
+ AttackStart(target);
+ events.ScheduleEvent(EVENT_AVATAR, urand(25000, 35000));
+ break;
+ case EVENT_GROUND_TREMOR:
+ DoCastVictim(SPELL_GROUND_TREMOR, true);
+ events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(12000, 16000));
+ break;
+ default:
+ break;
+ }
+ }
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
index 781b68bfcb0..87a9c02e3ed 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
@@ -27,19 +27,21 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum Hakkar
+enum Says
{
SAY_AGGRO = 0,
SAY_FLEEING = 1,
SAY_MINION_DESTROY = 2, //where does it belong?
- SAY_PROTECT_ALTAR = 3, //where does it belong?
+ SAY_PROTECT_ALTAR = 3 //where does it belong?
+};
+enum Spells
+{
SPELL_BLOODSIPHON = 24322,
SPELL_CORRUPTEDBLOOD = 24328,
SPELL_CAUSEINSANITY = 24327, //Not working disabled.
SPELL_WILLOFHAKKAR = 24178,
SPELL_ENRAGE = 24318,
-
// The Aspects of all High Priests
SPELL_ASPECT_OF_JEKLIK = 24687,
SPELL_ASPECT_OF_VENOXIS = 24688,
@@ -48,23 +50,13 @@ enum Hakkar
SPELL_ASPECT_OF_ARLOKK = 24690
};
-class boss_hakkar : public CreatureScript
+class boss_hakkar : public CreatureScript // hakkar
{
- public:
-
- boss_hakkar()
- : CreatureScript("boss_hakkar")
- {
- }
+ public: boss_hakkar() : CreatureScript("boss_hakkar") {}
- struct boss_hakkarAI : public ScriptedAI
+ struct boss_hakkarAI : public BossAI
{
- boss_hakkarAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
+ boss_hakkarAI(Creature* creature) : BossAI(creature, DATA_HAKKAR) {}
uint32 BloodSiphon_Timer;
uint32 CorruptedBlood_Timer;
@@ -109,8 +101,14 @@ class boss_hakkar : public CreatureScript
Enraged = false;
}
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ }
+
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
Talk(SAY_AGGRO);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
index bbdc2905874..cd55d648196 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
@@ -27,75 +27,80 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-#define SPELL_MANABURN 26046
-#define SPELL_SLEEP 24664
+enum Spells
+{
+ SPELL_MANABURN = 26046,
+ SPELL_SLEEP = 24664
+};
-class boss_hazzarah : public CreatureScript
+enum Events
{
- public:
+ EVENT_MANABURN = 0,
+ EVENT_SLEEP = 1,
+ EVENT_ILLUSIONS = 2
+};
- boss_hazzarah()
- : CreatureScript("boss_hazzarah")
- {
- }
+class boss_hazzarah : public CreatureScript
+{
+ public: boss_hazzarah() : CreatureScript("boss_hazzarah") {}
- struct boss_hazzarahAI : public ScriptedAI
+ struct boss_hazzarahAI : public BossAI
{
- boss_hazzarahAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ManaBurn_Timer;
- uint32 Sleep_Timer;
- uint32 Illusions_Timer;
+ boss_hazzarahAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
- void Reset()
+ void JustDied(Unit* /*killer*/)
{
- ManaBurn_Timer = urand(4000, 10000);
- Sleep_Timer = urand(10000, 18000);
- Illusions_Timer = urand(10000, 18000);
+ _JustDied();
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_MANABURN, urand(4000, 10000));
+ events.ScheduleEvent(EVENT_SLEEP, urand(10000, 18000));
+ events.ScheduleEvent(EVENT_ILLUSIONS, urand(10000, 18000));
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- //ManaBurn_Timer
- if (ManaBurn_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_MANABURN);
- ManaBurn_Timer = urand(8000, 16000);
- } else ManaBurn_Timer -= diff;
+ events.Update(diff);
- //Sleep_Timer
- if (Sleep_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_SLEEP);
- Sleep_Timer = urand(12000, 20000);
- } else Sleep_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- //Illusions_Timer
- if (Illusions_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- //We will summon 3 illusions that will spawn on a random gamer and attack this gamer
- //We will just use one model for the beginning
- Unit* target = NULL;
- for (uint8 i = 0; i < 3; ++i)
+ switch (eventId)
{
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (!target)
- return;
-
- Creature* Illusion = me->SummonCreature(15163, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);
- if (Illusion)
- Illusion->AI()->AttackStart(target);
+ case EVENT_MANABURN:
+ DoCastVictim(SPELL_MANABURN, true);
+ events.ScheduleEvent(EVENT_MANABURN, urand(8000, 16000));
+ break;
+ case EVENT_SLEEP:
+ DoCastVictim(SPELL_SLEEP, true);
+ events.ScheduleEvent(EVENT_SLEEP, urand(12000, 20000));
+ break;
+ case EVENT_ILLUSIONS:
+ // We will summon 3 illusions that will spawn on a random gamer and attack this gamer
+ // We will just use one model for the beginning
+ for (uint8 i = 0; i < 3; ++i)
+ {
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ Creature* Illusion = me->SummonCreature(NPC_NIGHTMARE_ILLUSION, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);
+ if (Illusion)
+ Illusion->AI()->AttackStart(target);
+ }
+ }
+ events.ScheduleEvent(EVENT_ILLUSIONS, urand(15000, 25000));
+ break;
+ default:
+ break;
}
-
- Illusions_Timer = urand(15000, 25000);
- } else Illusions_Timer -= diff;
+ }
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
index 10431ec84bd..4d27fd99769 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
@@ -27,42 +27,34 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum Jeklik
+enum Says
{
SAY_AGGRO = 0,
SAY_RAIN_FIRE = 1,
- SAY_DEATH = 2,
+ SAY_DEATH = 2
+};
+enum Spells
+{
SPELL_CHARGE = 22911,
SPELL_SONICBURST = 23918,
SPELL_SCREECH = 6605,
SPELL_SHADOW_WORD_PAIN = 23952,
SPELL_MIND_FLAY = 23953,
- SPELL_CHAIN_MIND_FLAY = 26044, //Right ID unknown. So disabled
+ SPELL_CHAIN_MIND_FLAY = 26044, // Right ID unknown. So disabled
SPELL_GREATERHEAL = 23954,
SPELL_BAT_FORM = 23966,
-
// Batriders Spell
- SPELL_BOMB = 40332 //Wrong ID but Magmadars bomb is not working...
+ SPELL_BOMB = 40332 // Wrong ID but Magmadars bomb is not working...
};
-class boss_jeklik : public CreatureScript
+class boss_jeklik : public CreatureScript //jeklik
{
- public:
-
- boss_jeklik()
- : CreatureScript("boss_jeklik")
- {
- }
+ public: boss_jeklik() : CreatureScript("boss_jeklik") {}
- struct boss_jeklikAI : public ScriptedAI
+ struct boss_jeklikAI : public BossAI
{
- boss_jeklikAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
+ boss_jeklikAI(Creature* creature) : BossAI(creature, DATA_JEKLIK) {}
uint32 Charge_Timer;
uint32 SonicBurst_Timer;
@@ -91,18 +83,17 @@ class boss_jeklik : public CreatureScript
PhaseTwo = false;
}
- void EnterCombat(Unit* /*who*/)
- {
- Talk(SAY_AGGRO);
- DoCast(me, SPELL_BAT_FORM);
- }
-
void JustDied(Unit* /*killer*/)
{
+ _JustDied();
Talk(SAY_DEATH);
+ }
- if (instance)
- instance->SetData(DATA_JEKLIK, DONE);
+ void EnterCombat(Unit* /*who*/)
+ {
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+ DoCast(me, SPELL_BAT_FORM);
}
void UpdateAI(const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
index 7c4c9626f9a..dd1edcb3529 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
@@ -27,147 +27,148 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum Jindo
+enum Say
{
- SAY_AGGRO = 1,
+ SAY_AGGRO = 1
+};
+enum Spells
+{
SPELL_BRAINWASHTOTEM = 24262,
- SPELL_POWERFULLHEALINGWARD = 24309, //We will not use this spell. We will summon a totem by script cause the spell totems will not cast.
+ SPELL_POWERFULLHEALINGWARD = 24309, // HACKED Totem summoned by script because the spell totems will not cast.
SPELL_HEX = 24053,
SPELL_DELUSIONSOFJINDO = 24306,
- SPELL_SHADEOFJINDO = 24308, //We will not use this spell. We will summon a shade by script.
-
+ SPELL_SHADEOFJINDO = 24308, // HACKED
//Healing Ward Spell
- SPELL_HEAL = 38588, //Totems are not working right. Right heal spell ID is 24311 but this spell is not casting...
-
+ SPELL_HEAL = 38588, // HACKED Totems are not working right. Right heal spell ID is 24311 but this spell is not casting...
//Shade of Jindo Spell
SPELL_SHADOWSHOCK = 19460,
SPELL_INVISIBLE = 24699
};
-class boss_jindo : public CreatureScript
+enum Events
{
- public:
+ EVENT_BRAINWASHTOTEM = 0,
+ EVENT_POWERFULLHEALINGWARD = 1,
+ EVENT_HEX = 2,
+ EVENT_DELUSIONSOFJINDO = 3,
+ EVENT_TELEPORT = 4
+};
- boss_jindo()
- : CreatureScript("boss_jindo")
- {
- }
+enum CreatureId
+{
+ NPC_SHADE_OF_JINDO = 14986,
+ NPC_SACRIFICED_TROLL = 14826
+};
- struct boss_jindoAI : public ScriptedAI
- {
- boss_jindoAI(Creature* creature) : ScriptedAI(creature) {}
+Position const TeleportLoc = {-11583.7783f, -1249.4278f, 77.5471f, 4.745f};
- uint32 BrainWashTotem_Timer;
- uint32 HealingWard_Timer;
- uint32 Hex_Timer;
- uint32 Delusions_Timer;
- uint32 Teleport_Timer;
+class boss_jindo : public CreatureScript
+{
+ public: boss_jindo() : CreatureScript("boss_jindo") {}
- void Reset()
+ struct boss_jindoAI : public BossAI
+ {
+ boss_jindoAI(Creature* creature) : BossAI(creature, DATA_JINDO) {}
+
+ void JustDied(Unit* /*killer*/)
{
- BrainWashTotem_Timer = 20000;
- HealingWard_Timer = 16000;
- Hex_Timer = 8000;
- Delusions_Timer = 10000;
- Teleport_Timer = 5000;
+ _JustDied();
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_BRAINWASHTOTEM, 20000);
+ events.ScheduleEvent(EVENT_POWERFULLHEALINGWARD, 16000);
+ events.ScheduleEvent(EVENT_HEX, 8000);
+ events.ScheduleEvent(EVENT_DELUSIONSOFJINDO, 10000);
+ events.ScheduleEvent(EVENT_TELEPORT, 5000);
Talk(SAY_AGGRO);
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- //BrainWashTotem_Timer
- if (BrainWashTotem_Timer <= diff)
- {
- DoCast(me, SPELL_BRAINWASHTOTEM);
- BrainWashTotem_Timer = urand(18000, 26000);
- } else BrainWashTotem_Timer -= diff;
-
- //HealingWard_Timer
- if (HealingWard_Timer <= diff)
- {
- //DoCast(me, SPELL_POWERFULLHEALINGWARD);
- me->SummonCreature(14987, me->GetPositionX()+3, me->GetPositionY()-2, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000);
- HealingWard_Timer = urand(14000, 20000);
- } else HealingWard_Timer -= diff;
-
- //Hex_Timer
- if (Hex_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_HEX);
-
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -80);
-
- Hex_Timer = urand(12000, 20000);
- } else Hex_Timer -= diff;
+ events.Update(diff);
- //Casting the delusion curse with a shade. So shade will attack the same target with the curse.
- if (Delusions_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- {
- DoCast(target, SPELL_DELUSIONSOFJINDO);
-
- Creature* Shade = me->SummonCreature(14986, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Shade)
- Shade->AI()->AttackStart(target);
- }
-
- Delusions_Timer = urand(4000, 12000);
- } else Delusions_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- //Teleporting a random gamer and spawning 9 skeletons that will attack this gamer
- if (Teleport_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target && target->GetTypeId() == TYPEID_PLAYER)
+ switch (eventId)
{
- DoTeleportPlayer(target, -11583.7783f, -1249.4278f, 77.5471f, 4.745f);
-
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(target, -100);
-
- Creature* Skeletons;
- Skeletons = me->SummonCreature(14826, target->GetPositionX()+2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX()-2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX()+4, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX()-4, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()+2, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()-2, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()+4, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()-4, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
- Skeletons = me->SummonCreature(14826, target->GetPositionX()+3, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Skeletons)
- Skeletons->AI()->AttackStart(target);
+ case EVENT_BRAINWASHTOTEM:
+ DoCast(me, SPELL_BRAINWASHTOTEM);
+ events.ScheduleEvent(EVENT_BRAINWASHTOTEM, urand(18000, 26000));
+ break;
+ case EVENT_POWERFULLHEALINGWARD: // HACK
+ //DoCast(me, SPELL_POWERFULLHEALINGWARD);
+ me->SummonCreature(14987, me->GetPositionX()+3, me->GetPositionY()-2, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000);
+ events.ScheduleEvent(EVENT_POWERFULLHEALINGWARD, urand(14000, 20000));
+ break;
+ case EVENT_HEX:
+ DoCastVictim(SPELL_HEX, true);
+ if (DoGetThreat(me->getVictim()))
+ DoModifyThreatPercent(me->getVictim(), -80);
+ events.ScheduleEvent(EVENT_HEX, urand(12000, 20000));
+ break;
+ case EVENT_DELUSIONSOFJINDO: // HACK
+ // Casting the delusion curse with a shade so shade will attack the same target with the curse.
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ DoCast(target, SPELL_DELUSIONSOFJINDO);
+ Creature* Shade = me->SummonCreature(NPC_SHADE_OF_JINDO, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (Shade)
+ Shade->AI()->AttackStart(target);
+ }
+ events.ScheduleEvent(EVENT_DELUSIONSOFJINDO, urand(4000, 12000));
+ break;
+ case EVENT_TELEPORT: // Possible HACK
+ // Teleports a random player and spawns 9 Sacrificed Trolls to attack player
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ DoTeleportPlayer(target, TeleportLoc.m_positionX, TeleportLoc.m_positionY, TeleportLoc.m_positionZ, TeleportLoc.m_orientation);
+ if (DoGetThreat(me->getVictim()))
+ DoModifyThreatPercent(target, -100);
+ Creature* SacrificedTroll;
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX()+2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX()-2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX()+4, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX()-4, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX(), target->GetPositionY()+2, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX(), target->GetPositionY()-2, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX(), target->GetPositionY()+4, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX(), target->GetPositionY()-4, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ SacrificedTroll = me->SummonCreature(NPC_SACRIFICED_TROLL, target->GetPositionX()+3, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (SacrificedTroll)
+ SacrificedTroll->AI()->AttackStart(target);
+ }
+ events.ScheduleEvent(EVENT_TELEPORT, urand(15000, 23000));
+ break;
+ default:
+ break;
}
-
- Teleport_Timer = urand(15000, 23000);
- } else Teleport_Timer -= diff;
+ }
DoMeleeAttackIfReady();
}
@@ -283,4 +284,3 @@ void AddSC_boss_jindo()
new mob_healing_ward();
new mob_shade_of_jindo();
}
-
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
index bcc080bb8a5..6b527ba45f3 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
@@ -27,44 +27,42 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum Mandokir
+enum Says
{
- SAY_AGGRO = 0,
- SAY_DING_KILL = 1,
- SAY_WATCH = 2,
- SAY_WATCH_WHISPER = 3, //is this text for real? easter egg?
- SAY_GRATS_JINDO = 0,
-
- SPELL_CHARGE = 24408,
- SPELL_CLEAVE = 7160,
- SPELL_FEAR = 29321,
- SPELL_WHIRLWIND = 15589,
- SPELL_MORTAL_STRIKE = 16856,
- SPELL_ENRAGE = 24318,
- SPELL_WATCH = 24314,
- SPELL_LEVEL_UP = 24312,
-
-//Ohgans Spells
- SPELL_SUNDERARMOR = 24317,
-
- NPC_SPEAKER = 11391
+ SAY_AGGRO = 0,
+ SAY_DING_KILL = 1,
+ SAY_WATCH = 2,
+ SAY_WATCH_WHISPER = 3, // is this text for real? easter egg?
+ SAY_GRATS_JINDO = 0,
+};
+
+enum Spells
+{
+ SPELL_CHARGE = 24408,
+ SPELL_CLEAVE = 7160,
+ SPELL_FEAR = 29321,
+ SPELL_WHIRLWIND = 15589,
+ SPELL_MORTAL_STRIKE = 16856,
+ SPELL_ENRAGE = 24318,
+ SPELL_WATCH = 24314,
+ SPELL_LEVEL_UP = 24312,
+ SPELL_SWIFT_ORANGE_RAPTOR = 23243,
+ // Ohgans Spell
+ SPELL_SUNDERARMOR = 24317
+};
+
+enum CreatureId
+{
+ NPC_SPEAKER = 11391
};
class boss_mandokir : public CreatureScript
{
- public:
+ public: boss_mandokir() : CreatureScript("boss_mandokir") {}
- boss_mandokir()
- : CreatureScript("boss_mandokir")
+ struct boss_mandokirAI : public BossAI
{
- }
-
- struct boss_mandokirAI : public ScriptedAI
- {
- boss_mandokirAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
+ boss_mandokirAI(Creature* creature) : BossAI(creature, DATA_MANDOKIR) {}
uint32 KillCount;
uint32 Watch_Timer;
@@ -114,6 +112,11 @@ class boss_mandokir : public CreatureScript
DoCast(me, 23243);
}
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ }
+
void KilledUnit(Unit* victim)
{
if (victim->GetTypeId() == TYPEID_PLAYER)
@@ -144,6 +147,7 @@ class boss_mandokir : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
Talk(SAY_AGGRO);
}
@@ -302,15 +306,10 @@ class boss_mandokir : public CreatureScript
}
};
-//Ohgan
+// Ohgan
class mob_ohgan : public CreatureScript
{
- public:
-
- mob_ohgan()
- : CreatureScript("mob_ohgan")
- {
- }
+ public: mob_ohgan() : CreatureScript("mob_ohgan") {}
struct mob_ohganAI : public ScriptedAI
{
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
index 56aeee93ee2..4d2a892d305 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
@@ -27,192 +27,184 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum Marli
+enum Says
{
SAY_AGGRO = 0,
SAY_TRANSFORM = 1,
SAY_SPIDER_SPAWN = 2,
- SAY_DEATH = 3,
-
- SPELL_CHARGE = 22911,
- SPELL_ASPECT_OF_MARLI = 24686, // A stun spell
- SPELL_ENVOLWINGWEB = 24110,
- SPELL_POISONVOLLEY = 24099,
- SPELL_SPIDER_FORM = 24084,
-
-//The Spider Spells
- SPELL_LEVELUP = 24312 //Not right Spell.
+ SAY_DEATH = 3
};
-class boss_marli : public CreatureScript
+enum Spells
{
- public:
+ SPELL_CHARGE = 22911,
+ SPELL_ASPECT_OF_MARLI = 24686, // A stun spell
+ SPELL_ENVOLWINGWEB = 24110,
+ SPELL_POISON_VOLLEY = 24099,
+ SPELL_SPIDER_FORM = 24084,
+ // The Spider Spell
+ SPELL_LEVELUP = 24312 // Not right Spell.
+};
- boss_marli()
- : CreatureScript("boss_marli")
- {
- }
+enum Events
+{
+ EVENT_SPAWN_START_SPIDERS = 0, // Phase 1
+ EVENT_POISON_VOLLEY = 1, // Phase All
+ EVENT_SPAWN_SPIDER = 2, // Phase All
+ EVENT_CHARGE_PLAYER = 3, // Phase 3
+ EVENT_ASPECT_OF_MARLI = 4, // Phase 2
+ EVENT_TRANSFORM = 5, // Phase 2
+ EVENT_TRANSFORM_BACK = 6 // Phase 3
+};
- struct boss_marliAI : public ScriptedAI
- {
- boss_marliAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
+enum Phases
+{
+ PHASE_ONE = 1,
+ PHASE_TWO = 2,
+ PHASE_THREE = 3
+};
- InstanceScript* instance;
+enum ModelId
+{
+ MODEL_MARLI = 15220
+};
- uint32 SpawnStartSpiders_Timer;
- uint32 PoisonVolley_Timer;
- uint32 SpawnSpider_Timer;
- uint32 Charge_Timer;
- uint32 Aspect_Timer;
- uint32 Transform_Timer;
- uint32 TransformBack_Timer;
+class boss_marli : public CreatureScript
+{
+ public: boss_marli() : CreatureScript("boss_marli") {}
- bool Spawned;
- bool PhaseTwo;
+ struct boss_marliAI : public BossAI
+ {
+ boss_marliAI(Creature* creature) : BossAI(creature, DATA_MARLI) {}
- void Reset()
+ void JustDied(Unit* /*killer*/)
{
- SpawnStartSpiders_Timer = 1000;
- PoisonVolley_Timer = 15000;
- SpawnSpider_Timer = 30000;
- Charge_Timer = 1500;
- Aspect_Timer = 12000;
- Transform_Timer = 45000;
- TransformBack_Timer = 25000;
-
- Spawned = false;
- PhaseTwo = false;
+ _JustDied();
+ Talk(SAY_DEATH);
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_SPAWN_START_SPIDERS, 1000, 0, PHASE_ONE);
Talk(SAY_AGGRO);
}
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_DEATH);
- if (instance)
- instance->SetData(DATA_MARLI, DONE);
- }
-
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- if (me->getVictim() && me->isAlive())
- {
- if (PoisonVolley_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_POISONVOLLEY);
- PoisonVolley_Timer = urand(10000, 20000);
- } else PoisonVolley_Timer -= diff;
-
- if (!PhaseTwo && Aspect_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ASPECT_OF_MARLI);
- Aspect_Timer = urand(13000, 18000);
- } else Aspect_Timer -= diff;
+ events.Update(diff);
- if (!Spawned && SpawnStartSpiders_Timer <= diff)
- {
- Talk(SAY_SPIDER_SPAWN);
-
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (!target)
- return;
-
- Creature* Spider = NULL;
-
- Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Spider)
- Spider->AI()->AttackStart(target);
- Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Spider)
- Spider->AI()->AttackStart(target);
- Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Spider)
- Spider->AI()->AttackStart(target);
- Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Spider)
- Spider->AI()->AttackStart(target);
-
- Spawned = true;
- } else SpawnStartSpiders_Timer -= diff;
-
- if (SpawnSpider_Timer <= diff)
- {
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (!target)
- return;
-
- Creature* Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (Spider)
- Spider->AI()->AttackStart(target);
- SpawnSpider_Timer = urand(12000, 17000);
- } else SpawnSpider_Timer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (!PhaseTwo && Transform_Timer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
{
- Talk(SAY_TRANSFORM);
- DoCast(me, SPELL_SPIDER_FORM);
- const CreatureTemplate* cinfo = me->GetCreatureTemplate();
- me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
- me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
- me->UpdateDamagePhysical(BASE_ATTACK);
- DoCast(me->getVictim(), SPELL_ENVOLWINGWEB);
-
- if (DoGetThreat(me->getVictim()))
- DoModifyThreatPercent(me->getVictim(), -100);
-
- PhaseTwo = true;
- Transform_Timer = urand(35000, 60000);
- } else Transform_Timer -= diff;
+ case EVENT_SPAWN_START_SPIDERS:
- if (PhaseTwo)
- {
- if (Charge_Timer <= diff)
- {
- Unit* target = NULL;
- int i = 0;
- while (i < 3) // max 3 tries to get a random target with power_mana
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ Talk(SAY_SPIDER_SPAWN);
+ Creature* Spider = NULL;
+ Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (Spider)
+ Spider->AI()->AttackStart(target);
+ Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (Spider)
+ Spider->AI()->AttackStart(target);
+ Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (Spider)
+ Spider->AI()->AttackStart(target);
+ Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (Spider)
+ Spider->AI()->AttackStart(target);
+ }
+ events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 12000, 0, PHASE_TWO);
+ events.ScheduleEvent(EVENT_TRANSFORM, 45000, 0, PHASE_TWO);
+ events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000);
+ events.ScheduleEvent(EVENT_SPAWN_SPIDER, 30000);
+ events.ScheduleEvent(EVENT_TRANSFORM, 45000, 0, PHASE_TWO);
+ events.SetPhase(PHASE_TWO);
+ break;
+ case EVENT_POISON_VOLLEY:
+ DoCastVictim(SPELL_POISON_VOLLEY, true);
+ events.ScheduleEvent(EVENT_POISON_VOLLEY, urand(10000, 20000));
+ break;
+ case EVENT_ASPECT_OF_MARLI:
+ DoCastVictim(SPELL_ASPECT_OF_MARLI, true);
+ events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, urand(13000, 18000), 0, PHASE_TWO);
+ break;
+ case EVENT_SPAWN_SPIDER:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- ++i;
- target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); // not aggro leader
- if (target && target->getPowerType() == POWER_MANA)
+ Creature* Spider = me->SummonCreature(15041, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if (Spider)
+ Spider->AI()->AttackStart(target);
+ }
+ events.ScheduleEvent(EVENT_SPAWN_SPIDER, urand(12000, 17000));
+ break;
+ case EVENT_TRANSFORM:
+ {
+ Talk(SAY_TRANSFORM);
+ DoCast(me, SPELL_SPIDER_FORM);
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
+ me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
+ me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
+ me->UpdateDamagePhysical(BASE_ATTACK);
+ DoCast(me->getVictim(), SPELL_ENVOLWINGWEB);
+ if (DoGetThreat(me->getVictim()))
+ DoModifyThreatPercent(me->getVictim(), -100);
+ events.ScheduleEvent(EVENT_CHARGE_PLAYER, 1500, 0, PHASE_THREE);
+ events.ScheduleEvent(EVENT_TRANSFORM_BACK, 25000, 0, PHASE_THREE);
+ events.SetPhase(PHASE_THREE);
+ break;
+ }
+ case EVENT_CHARGE_PLAYER:
+ {
+ Unit* target = NULL;
+ int i = 0;
+ while (i < 3) // max 3 tries to get a random target with power_mana
+ {
+ ++i;
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); // not aggro leader
+ if (target && target->getPowerType() == POWER_MANA)
i = 3;
+ }
+ if (target)
+ {
+ DoCast(target, SPELL_CHARGE);
+ //me->SetPosition(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0);
+ //me->SendMonsterMove(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, true, 1);
+ AttackStart(target);
+ }
+ events.ScheduleEvent(EVENT_CHARGE_PLAYER, 8000, 0, PHASE_THREE);
+ break;
}
- if (target)
+ case EVENT_TRANSFORM_BACK:
{
- DoCast(target, SPELL_CHARGE);
- //me->SetPosition(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0);
- //me->SendMonsterMove(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, true, 1);
- AttackStart(target);
+ me->SetDisplayId(MODEL_MARLI);
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
+ me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 1)));
+ me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 1)));
+ me->UpdateDamagePhysical(BASE_ATTACK);
+ events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 12000, 0, PHASE_TWO);
+ events.ScheduleEvent(EVENT_TRANSFORM, 45000, 0, PHASE_TWO);
+ events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000);
+ events.ScheduleEvent(EVENT_SPAWN_SPIDER, 30000);
+ events.ScheduleEvent(EVENT_TRANSFORM, urand(35000, 60000), 0, PHASE_TWO);
+ events.SetPhase(PHASE_TWO);
+ break;
}
-
- Charge_Timer = 8000;
- } else Charge_Timer -= diff;
-
- if (TransformBack_Timer <= diff)
- {
- me->SetDisplayId(15220);
- const CreatureTemplate* cinfo = me->GetCreatureTemplate();
- me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 1)));
- me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 1)));
- me->UpdateDamagePhysical(BASE_ATTACK);
-
- PhaseTwo = false;
- TransformBack_Timer = urand(25000, 40000);
- } else TransformBack_Timer -= diff;
-
+ default:
+ break;
}
-
- DoMeleeAttackIfReady();
}
+
+ DoMeleeAttackIfReady();
}
};
@@ -222,15 +214,10 @@ class boss_marli : public CreatureScript
}
};
-//Spawn of Marli
+// Spawn of Marli
class mob_spawn_of_marli : public CreatureScript
{
- public:
-
- mob_spawn_of_marli()
- : CreatureScript("mob_spawn_of_marli")
- {
- }
+ public: mob_spawn_of_marli() : CreatureScript("mob_spawn_of_marli") {}
struct mob_spawn_of_marliAI : public ScriptedAI
{
@@ -275,4 +262,3 @@ void AddSC_boss_marli()
new boss_marli();
new mob_spawn_of_marli();
}
-
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
index d562b7cdf9b..65730d1baf2 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
@@ -40,16 +40,11 @@ enum Misc
class boss_renataki : public CreatureScript
{
- public:
+ public: boss_renataki() : CreatureScript("boss_renataki") {}
- boss_renataki()
- : CreatureScript("boss_renataki")
+ struct boss_renatakiAI : public BossAI
{
- }
-
- struct boss_renatakiAI : public ScriptedAI
- {
- boss_renatakiAI(Creature* creature) : ScriptedAI(creature) {}
+ boss_renatakiAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
uint32 Invisible_Timer;
uint32 Ambush_Timer;
@@ -72,8 +67,14 @@ class boss_renataki : public CreatureScript
Ambushed = false;
}
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ }
+
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
}
void UpdateAI(const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
index d91b8f0b483..6710ca67863 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
@@ -27,28 +27,29 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "zulgurub.h"
-enum Thekal
+enum Says
{
SAY_AGGRO = 0,
- SAY_DEATH = 1,
-
- SPELL_MORTALCLEAVE = 22859,
- SPELL_SILENCE = 22666,
- SPELL_FRENZY = 8269,
- SPELL_FORCEPUNCH = 24189,
- SPELL_CHARGE = 24193,
- SPELL_ENRAGE = 8269,
- SPELL_SUMMONTIGERS = 24183,
- SPELL_TIGER_FORM = 24169,
- SPELL_RESURRECT = 24173, //We will not use this spell.
-
-//Zealot Lor'Khan Spells
+ SAY_DEATH = 1
+};
+
+enum Spells
+{
+ SPELL_MORTALCLEAVE = 22859, // Phase 1
+ SPELL_SILENCE = 22666, // Phase 1
+ SPELL_TIGER_FORM = 24169, // Phase 1
+ SPELL_RESURRECT = 24173, // Phase 1 // Not used in script.
+ SPELL_FRENZY = 8269, // Phase 2
+ SPELL_FORCEPUNCH = 24189, // Phase 2
+ SPELL_CHARGE = 24193, // Phase 2
+ SPELL_ENRAGE = 8269, // Phase 2
+ SPELL_SUMMONTIGERS = 24183, // Phase 2
+ // Zealot Lor'Khan Spells
SPELL_SHIELD = 20545,
SPELL_BLOODLUST = 24185,
SPELL_GREATERHEAL = 24208,
SPELL_DISARM = 6713,
-
-//Zealot Zath Spells
+ // Zealot Zath Spells
SPELL_SWEEPINGSTRIKES = 18765,
SPELL_SINISTERSTRIKE = 15581,
SPELL_GOUGE = 12540,
@@ -56,64 +57,56 @@ enum Thekal
SPELL_BLIND = 21060
};
-class boss_thekal : public CreatureScript
+enum Events
{
- public:
+ EVENT_MORTALCLEAVE = 0, // Phase 1
+ EVENT_SILENCE = 1, // Phase 1
+ EVENT_CHECK_TIMER = 2, // Phase 1
+ EVENT_RESURRECT_TIMER = 3, // Phase 1
+ EVENT_FRENZY = 4, // Phase 2
+ EVENT_FORCEPUNCH = 5, // Phase 2
+ EVENT_SPELL_CHARGE = 6, // Phase 2
+ EVENT_ENRAGE = 7, // Phase 2
+ EVENT_SUMMONTIGERS = 8 // Phase 2
+};
- boss_thekal()
- : CreatureScript("boss_thekal")
- {
- }
+enum Phases
+{
+ PHASE_ONE = 1,
+ PHASE_TWO = 2
+};
- struct boss_thekalAI : public ScriptedAI
- {
- boss_thekalAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
+class boss_thekal : public CreatureScript
+{
+ public: boss_thekal() : CreatureScript("boss_thekal") {}
- uint32 MortalCleave_Timer;
- uint32 Silence_Timer;
- uint32 Frenzy_Timer;
- uint32 ForcePunch_Timer;
- uint32 Charge_Timer;
- uint32 Enrage_Timer;
- uint32 SummonTigers_Timer;
- uint32 Check_Timer;
- uint32 Resurrect_Timer;
+ struct boss_thekalAI : public BossAI
+ {
+ boss_thekalAI(Creature* creature) : BossAI(creature, DATA_THEKAL) {}
- InstanceScript* instance;
bool Enraged;
- bool PhaseTwo;
bool WasDead;
void Reset()
{
- MortalCleave_Timer = 4000;
- Silence_Timer = 9000;
- Frenzy_Timer = 30000;
- ForcePunch_Timer = 4000;
- Charge_Timer = 12000;
- Enrage_Timer = 32000;
- SummonTigers_Timer = 25000;
- Check_Timer = 10000;
- Resurrect_Timer = 10000;
-
Enraged = false;
- PhaseTwo = false;
WasDead = false;
}
- void EnterCombat(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
- Talk(SAY_AGGRO);
+ _JustDied();
+ Talk(SAY_DEATH);
}
- void JustDied(Unit* /*killer*/)
+ void EnterCombat(Unit* /*who*/)
{
- Talk(SAY_DEATH);
- if (instance)
- instance->SetData(DATA_THEKAL, DONE);
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_MORTALCLEAVE, 4000, 0, PHASE_ONE); // Phase 1
+ events.ScheduleEvent(EVENT_SILENCE, 9000, 0, PHASE_ONE); // Phase 1
+ events.ScheduleEvent(EVENT_CHECK_TIMER, 10000, 0, PHASE_ONE); // Phase 1
+ events.ScheduleEvent(EVENT_RESURRECT_TIMER, 10000, 0, PHASE_ONE); // Phase 1
+ Talk(SAY_AGGRO);
}
void JustReachedHome()
@@ -122,62 +115,123 @@ class boss_thekal : public CreatureScript
instance->SetData(DATA_THEKAL, NOT_STARTED);
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- //Check_Timer for the death of LorKhan and Zath.
- if (!WasDead && Check_Timer <= diff)
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
{
- if (instance)
- {
- if (instance->GetData(DATA_LORKHAN) == SPECIAL)
+ case EVENT_MORTALCLEAVE:
+ DoCastVictim(SPELL_MORTALCLEAVE, true);
+ events.ScheduleEvent(EVENT_MORTALCLEAVE, urand(15000, 20000), 0, PHASE_ONE);
+ break;
+ case EVENT_SILENCE:
+ DoCastVictim(SPELL_SILENCE, true);
+ events.ScheduleEvent(EVENT_SILENCE, urand(20000, 25000), 0, PHASE_ONE);
+ break;
+ case EVENT_RESURRECT_TIMER:
+ //Thekal will transform to Tiger if he died and was not resurrected after 10 seconds.
+ if (WasDead)
{
- //Resurrect LorKhan
- if (Unit* pLorKhan = Unit::GetUnit(*me, instance->GetData64(DATA_LORKHAN)))
- {
- pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pLorKhan->setFaction(14);
- pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pLorKhan->SetFullHealth();
-
- instance->SetData(DATA_LORKHAN, DONE);
- }
+ DoCast(me, SPELL_TIGER_FORM);
+ me->SetObjectScale(2.00f);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ me->SetFullHealth();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
+ me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 40)));
+ me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 40)));
+ me->UpdateDamagePhysical(BASE_ATTACK);
+ DoResetThreat();
+ events.ScheduleEvent(EVENT_FRENZY, 30000, 0, PHASE_TWO); // Phase 2
+ events.ScheduleEvent(EVENT_FORCEPUNCH, 4000, 0, PHASE_TWO); // Phase 2
+ events.ScheduleEvent(EVENT_SPELL_CHARGE, 12000, 0, PHASE_TWO); // Phase 2
+ events.ScheduleEvent(EVENT_ENRAGE, 32000, 0, PHASE_TWO); // Phase 2
+ events.ScheduleEvent(EVENT_SUMMONTIGERS, 25000, 0, PHASE_TWO); // Phase 2
+ events.SetPhase(PHASE_TWO);
}
-
- if (instance->GetData(DATA_ZATH) == SPECIAL)
+ events.ScheduleEvent(EVENT_RESURRECT_TIMER, 10000, 0, PHASE_ONE);
+ break;
+ case EVENT_CHECK_TIMER:
+ //Check_Timer for the death of LorKhan and Zath.
+ if (!WasDead)
{
- //Resurrect Zath
- Unit* pZath = Unit::GetUnit(*me, instance->GetData64(DATA_ZATH));
- if (pZath)
+ if (instance)
{
- pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pZath->setFaction(14);
- pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pZath->SetFullHealth();
-
- instance->SetData(DATA_ZATH, DONE);
+ if (instance->GetData(DATA_LORKHAN) == SPECIAL)
+ {
+ //Resurrect LorKhan
+ if (Unit* pLorKhan = Unit::GetUnit(*me, instance->GetData64(DATA_LORKHAN)))
+ {
+ pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pLorKhan->setFaction(14);
+ pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pLorKhan->SetFullHealth();
+ instance->SetData(DATA_LORKHAN, DONE);
+ }
+ }
+
+ if (instance->GetData(DATA_ZATH) == SPECIAL)
+ {
+ //Resurrect Zath
+ if (Unit* pZath = Unit::GetUnit(*me, instance->GetData64(DATA_ZATH)))
+ {
+ pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pZath->setFaction(14);
+ pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pZath->SetFullHealth();
+ instance->SetData(DATA_ZATH, DONE);
+ }
+ }
}
}
- }
-
- Check_Timer = 5000;
- } else Check_Timer -= diff;
-
- if (!PhaseTwo && MortalCleave_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_MORTALCLEAVE);
- MortalCleave_Timer = urand(15000, 20000);
- } else MortalCleave_Timer -= diff;
+ events.ScheduleEvent(EVENT_CHECK_TIMER, 5000, 0, PHASE_ONE);
+ break;
+ case EVENT_FRENZY:
+ DoCast(me, SPELL_FRENZY);
+ events.ScheduleEvent(EVENT_FRENZY, 30000, 0, PHASE_TWO);
+ break;
+ case EVENT_FORCEPUNCH:
+ DoCastVictim(SPELL_FORCEPUNCH, true);
+ events.ScheduleEvent(EVENT_FORCEPUNCH, urand(16000, 21000), 0, PHASE_TWO);
+ break;
+ case EVENT_CHARGE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ DoCast(target, SPELL_CHARGE);
+ DoResetThreat();
+ AttackStart(target);
+ }
+ events.ScheduleEvent(EVENT_CHARGE, urand(15000, 22000), 0, PHASE_TWO);
+ break;
+ case EVENT_ENRAGE:
+ if (HealthBelowPct(11) && !Enraged)
+ {
+ DoCast(me, SPELL_ENRAGE);
+ Enraged = true;
+ }
+ events.ScheduleEvent(EVENT_ENRAGE, 30000);
+ break;
+ case EVENT_SUMMONTIGERS:
+ DoCastVictim(SPELL_SUMMONTIGERS, true);
+ events.ScheduleEvent(EVENT_SUMMONTIGERS, urand(10000, 14000), 0, PHASE_TWO);
+ break;
+ default:
+ break;
+ }
- if (!PhaseTwo && Silence_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_SILENCE);
- Silence_Timer = urand(20000, 25000);
- } else Silence_Timer -= diff;
+ if (me->IsFullHealth() && WasDead)
+ WasDead = false;
- if (!PhaseTwo && !WasDead && !HealthAbovePct(5))
+ if ((events.GetPhaseMask() == PHASE_ONE) && !WasDead && !HealthAbovePct(5))
{
me->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE_PERCENT);
me->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
@@ -185,78 +239,12 @@ class boss_thekal : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetStandState(UNIT_STAND_STATE_SLEEP);
me->AttackStop();
-
if (instance)
instance->SetData(DATA_THEKAL, SPECIAL);
-
WasDead=true;
}
-
- //Thekal will transform to Tiger if he died and was not resurrected after 10 seconds.
- if (!PhaseTwo && WasDead)
- {
- if (Resurrect_Timer <= diff)
- {
- DoCast(me, SPELL_TIGER_FORM);
- me->SetObjectScale(2.00f);
- me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFullHealth();
- const CreatureTemplate* cinfo = me->GetCreatureTemplate();
- me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 40)));
- me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 40)));
- me->UpdateDamagePhysical(BASE_ATTACK);
- DoResetThreat();
- PhaseTwo = true;
- } else Resurrect_Timer -= diff;
- }
-
- if (me->IsFullHealth() && WasDead)
- {
- WasDead = false;
- }
-
- if (PhaseTwo)
- {
- if (Charge_Timer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- {
- DoCast(target, SPELL_CHARGE);
- DoResetThreat();
- AttackStart(target);
- }
-
- Charge_Timer = urand(15000, 22000);
- } else Charge_Timer -= diff;
-
- if (Frenzy_Timer <= diff)
- {
- DoCast(me, SPELL_FRENZY);
- Frenzy_Timer = 30000;
- } else Frenzy_Timer -= diff;
-
- if (ForcePunch_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_SILENCE);
- ForcePunch_Timer = urand(16000, 21000);
- } else ForcePunch_Timer -= diff;
-
- if (SummonTigers_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_SUMMONTIGERS);
- SummonTigers_Timer = urand(10000, 14000);
- } else SummonTigers_Timer -= diff;
-
- if (HealthBelowPct(11) && !Enraged)
- {
- DoCast(me, SPELL_ENRAGE);
- Enraged = true;
- }
- }
-
- DoMeleeAttackIfReady();
-
+ }
+ DoMeleeAttackIfReady();
}
};
@@ -269,12 +257,7 @@ class boss_thekal : public CreatureScript
//Zealot Lor'Khan
class mob_zealot_lorkhan : public CreatureScript
{
- public:
-
- mob_zealot_lorkhan()
- : CreatureScript("mob_zealot_lorkhan")
- {
- }
+ public: mob_zealot_lorkhan() : CreatureScript("mob_zealot_lorkhan") {}
struct mob_zealot_lorkhanAI : public ScriptedAI
{
@@ -585,4 +568,3 @@ void AddSC_boss_thekal()
new mob_zealot_lorkhan();
new mob_zealot_zath();
}
-
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
index ff63e4a8adb..f5c10631a9b 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
@@ -27,10 +27,10 @@
* - Fix timers (research some more)
*/
-enum Texts
+enum Says
{
SAY_VENOXIS_TRANSFORM = 1, // Let the coils of hate unfurl!
- SAY_VENOXIS_DEATH = 2, // Ssserenity.. at lassst!
+ SAY_VENOXIS_DEATH = 2 // Ssserenity.. at lassst!
};
enum Spells
@@ -42,7 +42,6 @@ enum Spells
SPELL_HOLY_NOVA = 23858,
SPELL_HOLY_FIRE = 23860,
SPELL_HOLY_WRATH = 23979,
-
// snake form
SPELL_POISON_CLOUD = 23861,
SPELL_VENOM_SPIT = 23862,
@@ -50,15 +49,14 @@ enum Spells
SPELL_PARASITIC_SERPENT = 23865,
SPELL_SUMMON_PARASITIC_SERPENT = 23866,
SPELL_PARASITIC_SERPENT_TRIGGER = 23867,
-
// used when swapping event-stages
SPELL_VENOXIS_TRANSFORM = 23849, // 50% health - shapechange to cobra
- SPELL_FRENZY = 8269, // 20% health - frenzy
+ SPELL_FRENZY = 8269 // 20% health - frenzy
};
enum NPCs
{
- NPC_PARASITIC_SERPENT = 14884,
+ NPC_PARASITIC_SERPENT = 14884
};
enum Events
@@ -70,10 +68,8 @@ enum Events
EVENT_HOLY_NOVA = 4,
EVENT_HOLY_FIRE = 5,
EVENT_HOLY_WRATH = 6,
-
// phase-changing
EVENT_TRANSFORM = 7,
-
// snake form events
EVENT_POISON_CLOUD = 8,
EVENT_VENOM_SPIT = 9,
@@ -84,19 +80,16 @@ enum Events
enum Phases
{
PHASE_ONE = 1, // troll form
- PHASE_TWO = 2, // snake form
+ PHASE_TWO = 2 // snake form
};
class boss_venoxis : public CreatureScript
{
- public:
- boss_venoxis() : CreatureScript("boss_venoxis") {}
+ public: boss_venoxis() : CreatureScript("boss_venoxis") {}
struct boss_venoxisAI : public BossAI
{
- boss_venoxisAI(Creature* creature) : BossAI(creature, DATA_VENOXIS)
- {
- }
+ boss_venoxisAI(Creature* creature) : BossAI(creature, DATA_VENOXIS) {}
void Reset()
{
@@ -118,15 +111,19 @@ class boss_venoxis : public CreatureScript
events.SetPhase(PHASE_ONE);
}
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ Talk(SAY_VENOXIS_DEATH);
+ me->RemoveAllAuras();
+ }
+
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
me->SetReactState(REACT_AGGRESSIVE);
-
- instance->SetBossState(DATA_VENOXIS, IN_PROGRESS);
-
// Always running events
events.ScheduleEvent(EVENT_THRASH, 5000);
-
// Phase one events (regular form)
events.ScheduleEvent(EVENT_HOLY_NOVA, 5000, 0, PHASE_ONE);
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 35000, 0, PHASE_ONE);
@@ -157,14 +154,6 @@ class boss_venoxis : public CreatureScript
}
}
- void JustDied(Unit* /*killer*/)
- {
- Talk(SAY_VENOXIS_DEATH);
- // venoxis is dead, mark him as such for the instance
- instance->SetBossState(DATA_VENOXIS, DONE);
- me->RemoveAllAuras();
- }
-
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
index 810ee5e900e..196df2b98b9 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
@@ -33,53 +33,58 @@ enum Spells
SPELL_LIGHTNINGWAVE = 24819
};
-class boss_wushoolay : public CreatureScript
+enum Events
{
- public:
+ EVENT_LIGHTNINGCLOUD = 0,
+ EVENT_LIGHTNINGWAVE = 1
+};
- boss_wushoolay()
- : CreatureScript("boss_wushoolay")
- {
- }
+class boss_wushoolay : public CreatureScript
+{
+ public: boss_wushoolay() : CreatureScript("boss_wushoolay") {}
- struct boss_wushoolayAI : public ScriptedAI
+ struct boss_wushoolayAI : public BossAI
{
- boss_wushoolayAI(Creature* creature) : ScriptedAI(creature) {}
+ boss_wushoolayAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) {}
- uint32 LightningCloud_Timer;
- uint32 LightningWave_Timer;
-
- void Reset()
+ void JustDied(Unit* /*killer*/)
{
- LightningCloud_Timer = urand(5000, 10000);
- LightningWave_Timer = urand(8000, 16000);
+ _JustDied();
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
+ events.ScheduleEvent(EVENT_LIGHTNINGCLOUD, urand(5000, 10000));
+ events.ScheduleEvent(EVENT_LIGHTNINGWAVE, urand(8000, 16000));
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- //LightningCloud_Timer
- if (LightningCloud_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_LIGHTNINGCLOUD);
- LightningCloud_Timer = urand(15000, 20000);
- } else LightningCloud_Timer -= diff;
+ events.Update(diff);
- //LightningWave_Timer
- if (LightningWave_Timer <= diff)
- {
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target) DoCast(target, SPELL_LIGHTNINGWAVE);
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- LightningWave_Timer = urand(12000, 16000);
- } else LightningWave_Timer -= diff;
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_LIGHTNINGCLOUD:
+ DoCastVictim(SPELL_LIGHTNINGCLOUD, true);
+ events.ScheduleEvent(EVENT_LIGHTNINGCLOUD, urand(15000, 20000));
+ break;
+ case EVENT_LIGHTNINGWAVE:
+ DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true), SPELL_LIGHTNINGWAVE);
+ events.ScheduleEvent(EVENT_LIGHTNINGWAVE, urand(12000, 16000));
+ break;
+ default:
+ break;
+ }
+ }
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
index cfaf19642f2..b997d277c95 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
@@ -29,33 +29,28 @@ EndScriptData */
class instance_zulgurub : public InstanceMapScript
{
- public:
- instance_zulgurub()
- : InstanceMapScript("instance_zulgurub", 309)
- {
- }
+ public: instance_zulgurub(): InstanceMapScript("instance_zulgurub", 309) {}
struct instance_zulgurub_InstanceMapScript : public InstanceScript
{
- instance_zulgurub_InstanceMapScript(Map* map) : InstanceScript(map) {}
+ instance_zulgurub_InstanceMapScript(Map* map) : InstanceScript(map)
+ {
+ SetBossNumber(EncounterCount);
+ }
//If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too.
- uint32 m_auiEncounter[MAX_ENCOUNTERS];
-
//Storing Lorkhan, Zath and Thekal because we need to cast on them later. Jindo is needed for healfunction too.
- uint64 m_uiLorKhanGUID;
- uint64 m_uiZathGUID;
- uint64 m_uiThekalGUID;
- uint64 m_uiJindoGUID;
+ uint64 LorKhanGUID;
+ uint64 ZathGUID;
+ uint64 ThekalGUID;
+ uint64 JindoGUID;
void Initialize()
{
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
-
- m_uiLorKhanGUID = 0;
- m_uiZathGUID = 0;
- m_uiThekalGUID = 0;
- m_uiJindoGUID = 0;
+ LorKhanGUID = 0;
+ ZathGUID = 0;
+ ThekalGUID = 0;
+ JindoGUID = 0;
}
bool IsEncounterInProgress() const
@@ -68,90 +63,124 @@ class instance_zulgurub : public InstanceMapScript
{
switch (creature->GetEntry())
{
- case 11347: m_uiLorKhanGUID = creature->GetGUID(); break;
- case 11348: m_uiZathGUID = creature->GetGUID(); break;
- case 14509: m_uiThekalGUID = creature->GetGUID(); break;
- case 11380: m_uiJindoGUID = creature->GetGUID(); break;
+ case NPC_ZEALOT_LORKHAN: LorKhanGUID = creature->GetGUID(); break;
+ case NPC_ZEALOT_ZATH: ZathGUID = creature->GetGUID(); break;
+ case NPC_HIGH_PRIEST_THEKAL: ThekalGUID = creature->GetGUID(); break;
+ case NPC_JINDO_THE_HEXXER: JindoGUID = creature->GetGUID(); break;
}
}
- void SetData(uint32 uiType, uint32 uiData)
+ bool SetBossState(uint32 type, EncounterState state)
{
- switch (uiType)
- {
- case DATA_ARLOKK:
- m_auiEncounter[0] = uiData;
- break;
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+ switch (type)
+ {
case DATA_JEKLIK:
- m_auiEncounter[1] = uiData;
- break;
-
case DATA_VENOXIS:
- m_auiEncounter[2] = uiData;
- break;
-
case DATA_MARLI:
- m_auiEncounter[3] = uiData;
- break;
-
+ case DATA_ARLOKK:
+ case DATA_HAKKAR:
+ case DATA_MANDOKIR:
+ case DATA_JINDO:
+ case DATA_GAHZRANKA:
+ case DATA_EDGE_OF_MADNESS:
case DATA_THEKAL:
- m_auiEncounter[4] = uiData;
- break;
-
case DATA_LORKHAN:
- m_auiEncounter[5] = uiData;
- break;
-
case DATA_ZATH:
- m_auiEncounter[6] = uiData;
- break;
-
case DATA_OHGAN:
- m_auiEncounter[7] = uiData;
+ break;
+ default:
break;
}
+
+ return true;
}
- uint32 GetData(uint32 uiType) const
+ uint32 GetData(uint32 type) const
+ {
+ switch (type)
{
- switch (uiType)
- {
- case DATA_ARLOKK:
- return m_auiEncounter[0];
- case DATA_JEKLIK:
- return m_auiEncounter[1];
- case DATA_VENOXIS:
- return m_auiEncounter[2];
- case DATA_MARLI:
- return m_auiEncounter[3];
- case DATA_THEKAL:
- return m_auiEncounter[4];
- case DATA_LORKHAN:
- return m_auiEncounter[5];
- case DATA_ZATH:
- return m_auiEncounter[6];
- case DATA_OHGAN:
- return m_auiEncounter[7];
- }
- return 0;
+ case DATA_JEKLIK: return GetBossState(DATA_JEKLIK);
+ case DATA_VENOXIS: return GetBossState(DATA_VENOXIS);
+ case DATA_MARLI: return GetBossState(DATA_MARLI);
+ case DATA_ARLOKK: return GetBossState(DATA_ARLOKK);
+ case DATA_HAKKAR: return GetBossState(DATA_HAKKAR);
+ case DATA_MANDOKIR: return GetBossState(DATA_MANDOKIR);
+ case DATA_JINDO: return GetBossState(DATA_JINDO);
+ case DATA_GAHZRANKA: return GetBossState(DATA_GAHZRANKA);
+ case DATA_EDGE_OF_MADNESS: return GetBossState(DATA_EDGE_OF_MADNESS);
+ case DATA_THEKAL: return GetBossState(DATA_THEKAL);
+ case DATA_LORKHAN: return GetBossState(DATA_LORKHAN);
+ case DATA_ZATH: return GetBossState(DATA_ZATH);
+ case DATA_OHGAN: return GetBossState(DATA_OHGAN);
+ break;
+ default:
+ break;
}
+ return 0;
+ }
+
uint64 GetData64(uint32 uiData) const
{
switch (uiData)
{
case DATA_LORKHAN:
- return m_uiLorKhanGUID;
+ return LorKhanGUID;
case DATA_ZATH:
- return m_uiZathGUID;
+ return ZathGUID;
case DATA_THEKAL:
- return m_uiThekalGUID;
+ return ThekalGUID;
case DATA_JINDO:
- return m_uiJindoGUID;
+ return JindoGUID;
}
return 0;
}
+
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "Z G " << GetBossSaveData();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return saveStream.str();
+ }
+
+ void Load(const char* str)
+ {
+ if (!str)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(str);
+
+ char dataHead1, dataHead2;
+
+ std::istringstream loadStream(str);
+ loadStream >> dataHead1 >> dataHead2;
+
+ if (dataHead1 == 'Z' && dataHead2 == 'G')
+ {
+ for (uint32 i = 0; i < EncounterCount; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
+ }
+ }
+ else
+ OUT_LOAD_INST_DATA_FAIL;
+
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
};
InstanceScript* GetInstanceScript(InstanceMap* map) const
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
index 22637315066..55bf0e50e3c 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -19,20 +18,32 @@
#ifndef DEF_ZULGURUB_H
#define DEF_ZULGURUB_H
+uint32 const EncounterCount = 13;
+
enum DataTypes
{
- MAX_ENCOUNTERS = 8,
+ DATA_JEKLIK = 0, // Main boss
+ DATA_VENOXIS = 1, // Main boss
+ DATA_MARLI = 2, // Main boss
+ DATA_ARLOKK = 3, // Main boss
+ DATA_HAKKAR = 4, // Main boss
+ DATA_MANDOKIR = 5, // Optional boss
+ DATA_JINDO = 6, // Optional boss
+ DATA_GAHZRANKA = 7, // Optional boss
+ DATA_EDGE_OF_MADNESS = 8, // Optional Event Edge of Madness - one of: Gri'lek, Renataki, Hazza'rah, or Wushoolay
+ DATA_THEKAL = 9, // ??
+ DATA_LORKHAN = 10, // ??
+ DATA_ZATH = 11, // ??
+ DATA_OHGAN = 12 // ??
+};
- DATA_ARLOKK = 1,
- DATA_JEKLIK = 2,
- DATA_VENOXIS = 3,
- DATA_MARLI = 4,
- DATA_OHGAN = 5,
- DATA_THEKAL = 6,
- DATA_ZATH = 7,
- DATA_LORKHAN = 8,
- DATA_JINDO = 10,
+enum CreatureIds
+{
+ NPC_ZEALOT_LORKHAN = 11347,
+ NPC_ZEALOT_ZATH = 11348,
+ NPC_HIGH_PRIEST_THEKAL = 14509,
+ NPC_JINDO_THE_HEXXER = 11380,
+ NPC_NIGHTMARE_ILLUSION = 15163
};
#endif
-
diff --git a/src/server/scripts/EasternKingdoms/boss_kruul.cpp b/src/server/scripts/EasternKingdoms/boss_kruul.cpp
index 226ff794a9f..158861e90c7 100644
--- a/src/server/scripts/EasternKingdoms/boss_kruul.cpp
+++ b/src/server/scripts/EasternKingdoms/boss_kruul.cpp
@@ -26,13 +26,16 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SPELL_SHADOWVOLLEY 21341
-#define SPELL_CLEAVE 20677
-#define SPELL_THUNDERCLAP 23931
-#define SPELL_TWISTEDREFLECTION 21063
-#define SPELL_VOIDBOLT 21066
-#define SPELL_RAGE 21340
-#define SPELL_CAPTURESOUL 21054
+enum Spells
+{
+ SPELL_SHADOWVOLLEY = 21341,
+ SPELL_CLEAVE = 20677,
+ SPELL_THUNDERCLAP = 23931,
+ SPELL_TWISTEDREFLECTION = 21063,
+ SPELL_VOIDBOLT = 21066,
+ SPELL_RAGE = 21340,
+ SPELL_CAPTURESOUL = 21054
+};
class boss_kruul : public CreatureScript
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
index f3f2e587178..536c2af2bd8 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
@@ -20,25 +20,33 @@
#include "naxxramas.h"
#include "SpellInfo.h"
-#define SPELL_BOMBARD_SLIME 28280
-
-#define SPELL_POISON_CLOUD 28240
-#define SPELL_MUTATING_INJECTION 28169
-#define SPELL_SLIME_SPRAY RAID_MODE(28157, 54364)
-#define SPELL_BERSERK 26662
-#define SPELL_POISON_CLOUD_ADD 59116
+enum Spells
+{
+ SPELL_BOMBARD_SLIME = 28280,
+ SPELL_POISON_CLOUD = 28240,
+ SPELL_MUTATING_INJECTION = 28169,
+ SPELL_SLIME_SPRAY = 28157,
+ H_SPELL_SLIME_SPRAY = 54364,
+ SPELL_BERSERK = 26662,
+ SPELL_POISON_CLOUD_ADD = 59116
+};
-#define EVENT_BERSERK 1
-#define EVENT_CLOUD 2
-#define EVENT_INJECT 3
-#define EVENT_SPRAY 4
+enum Events
+{
+ EVENT_BERSERK = 0,
+ EVENT_CLOUD = 1,
+ EVENT_INJECT = 2,
+ EVENT_SPRAY = 3
+};
-#define MOB_FALLOUT_SLIME 16290
+enum CreatureId
+{
+ MOB_FALLOUT_SLIME = 16290
+};
class boss_grobbulus : public CreatureScript
{
-public:
- boss_grobbulus() : CreatureScript("boss_grobbulus") { }
+public: boss_grobbulus() : CreatureScript("boss_grobbulus") { }
CreatureAI* GetAI(Creature* creature) const
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index 92ced3c702f..891b91c6dfb 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
@@ -28,7 +28,7 @@ enum Spells
SPELL_ARCANE_BUFFET_H = 59485,
SPELL_SUMMON_ETHEREAL_SPHERE_1 = 54102,
SPELL_SUMMON_ETHEREAL_SPHERE_2 = 54137,
- SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138,
+ SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138
};
enum NPCs
@@ -42,7 +42,7 @@ enum CreatureSpells
SPELL_ARCANE_POWER = 54160,
H_SPELL_ARCANE_POWER = 59474,
SPELL_SUMMON_PLAYERS = 54164,
- SPELL_POWER_BALL_VISUAL = 54141,
+ SPELL_POWER_BALL_VISUAL = 54141
};
enum Yells
diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
index 9fa5a1a51f5..c55e93726a9 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
@@ -26,8 +26,11 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SPELL_FOUL_SPORES 31673
-#define SPELL_ACID_GEYSER 38739
+enum Spells
+{
+ SPELL_FOUL_SPORES = 31673,
+ SPELL_ACID_GEYSER = 38739
+};
class boss_hungarfen : public CreatureScript
{
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index afb9a625761..060db02d53c 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -172,7 +172,7 @@ class spell_dk_anti_magic_zone : public SpellScriptLoader
return true;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_DK_ANTI_MAGIC_SHELL_TALENT))
return false;
diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp
index 83532e7d72d..d883b4d7da7 100644
--- a/src/server/scripts/Spells/spell_holiday.cpp
+++ b/src/server/scripts/Spells/spell_holiday.cpp
@@ -17,6 +17,7 @@
/*
* Spells used in holidays/game events that do not fit any other category.
+ * Ordered alphabetically using scriptname.
* Scriptnames in this file should be prefixed with "spell_#holidayname_".
*/
@@ -133,6 +134,7 @@ class spell_hallow_end_trick : public SpellScriptLoader
class spell_hallow_end_trick_SpellScript : public SpellScript
{
PrepareSpellScript(spell_hallow_end_trick_SpellScript);
+
bool Validate(SpellInfo const* /*spell*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE)
@@ -170,7 +172,7 @@ class spell_hallow_end_trick : public SpellScriptLoader
break;
}
- caster->CastSpell(target, spellId, true, NULL);
+ caster->CastSpell(target, spellId, true);
}
}
@@ -218,8 +220,8 @@ class spell_hallow_end_trick_or_treat : public SpellScriptLoader
Unit* caster = GetCaster();
if (Player* target = GetHitPlayer())
{
- caster->CastSpell(target, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL);
- caster->CastSpell(target, SPELL_TRICKED_OR_TREATED, true, NULL);
+ caster->CastSpell(target, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true);
+ caster->CastSpell(target, SPELL_TRICKED_OR_TREATED, true);
}
}
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index b3c429d27aa..a9b21807899 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -286,7 +286,6 @@ class spell_hun_last_stand_pet : public SpellScriptLoader
void Register()
{
- // add dummy effect spell handler to pet's Last Stand
OnEffectHitTarget += SpellEffectFn(spell_hun_last_stand_pet_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
@@ -452,7 +451,6 @@ class spell_hun_pet_carrion_feeder : public SpellScriptLoader
void Register()
{
- // add dummy effect spell handler to pet's Last Stand
OnEffectHit += SpellEffectFn(spell_hun_pet_carrion_feeder_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_hun_pet_carrion_feeder_SpellScript::CheckIfCorpseNear);
}
@@ -501,7 +499,6 @@ class spell_hun_pet_heart_of_the_phoenix : public SpellScriptLoader
void Register()
{
- // add dummy effect spell handler to pet's Last Stand
OnEffectHitTarget += SpellEffectFn(spell_hun_pet_heart_of_the_phoenix_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
@@ -551,7 +548,6 @@ class spell_hun_readiness : public SpellScriptLoader
void Register()
{
- // add dummy effect spell handler to Readiness
OnEffectHitTarget += SpellEffectFn(spell_hun_readiness_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 9cd94e9c7d5..49a47a17392 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -25,6 +25,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
+#include "SpellAuras.h"
#include "Vehicle.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
@@ -1517,6 +1518,49 @@ class spell_q11010_q11102_q11023_q11008_check_fly_mount : public SpellScriptLoad
}
};
+enum SpellZuldrakRat
+{
+ SPELL_SUMMON_GORGED_LURKING_BASILISK = 50928
+};
+
+class spell_q12527_zuldrak_rat : public SpellScriptLoader
+{
+ public:
+ spell_q12527_zuldrak_rat() : SpellScriptLoader("spell_q12527_zuldrak_rat") { }
+
+ class spell_q12527_zuldrak_rat_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q12527_zuldrak_rat_SpellScript);
+
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_GORGED_LURKING_BASILISK))
+ return false;
+ return true;
+ }
+
+ void HandleScriptEffect(SpellEffIndex /* effIndex */)
+ {
+ if (GetHitAura() && GetHitAura()->GetStackAmount() >= GetSpellInfo()->StackAmount)
+ {
+ GetHitUnit()->CastSpell((Unit*) NULL, SPELL_SUMMON_GORGED_LURKING_BASILISK, true);
+ if (Creature* basilisk = GetHitUnit()->ToCreature())
+ basilisk->DespawnOrUnsummon();
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_q12527_zuldrak_rat_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_q12527_zuldrak_rat_SpellScript();
+ }
+};
+
void AddSC_quest_spell_scripts()
{
new spell_q55_sacred_cleansing();
@@ -1554,4 +1598,5 @@ void AddSC_quest_spell_scripts()
new spell_q11010_q11102_q11023_choose_loc();
new spell_q11010_q11102_q11023_q11008_check_fly_mount();
new spell_q12372_azure_on_death_force_whisper();
+ new spell_q12527_zuldrak_rat();
}
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index 1a2738afdbb..70b677f5aaa 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -250,7 +250,7 @@ class spell_rog_preparation : public SpellScriptLoader
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_GLYPH_OF_PREPARATION))
return false;
@@ -292,7 +292,6 @@ class spell_rog_preparation : public SpellScriptLoader
void Register()
{
- // add dummy effect spell handler to Preparation
OnEffectHitTarget += SpellEffectFn(spell_rog_preparation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index ff7c83b95a5..0d249953421 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -30,28 +30,69 @@
enum ShamanSpells
{
- SHAMAN_SPELL_GLYPH_OF_MANA_TIDE = 55441,
- SHAMAN_SPELL_MANA_TIDE_TOTEM = 39609,
- SHAMAN_SPELL_FIRE_NOVA_R1 = 1535,
- SHAMAN_SPELL_FIRE_NOVA_TRIGGERED_R1 = 8349,
- SHAMAN_SPELL_SATED = 57724,
- SHAMAN_SPELL_EXHAUSTION = 57723,
+ SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC = 52752,
+ SPELL_SHAMAN_BIND_SIGHT = 6277,
+ SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT = 52025,
+ SPELL_SHAMAN_EXHAUSTION = 57723,
+ SPELL_SHAMAN_FIRE_NOVA_R1 = 1535,
+ SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1 = 8349,
+ SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM = 55456,
+ SPELL_SHAMAN_GLYPH_OF_MANA_TIDE = 55441,
+ SPELL_SHAMAN_LAVA_FLOWS_R1 = 51480,
+ SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1 = 64694,
+ SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE = 52032,
+ SPELL_SHAMAN_MANA_TIDE_TOTEM = 39609,
+ SPELL_SHAMAN_SATED = 57724,
+ SPELL_SHAMAN_STORM_EARTH_AND_FIRE = 51483,
+ SPELL_SHAMAN_TOTEM_EARTHBIND_EARTHGRAB = 64695,
+ SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM = 6474,
+ SPELL_SHAMAN_TOTEM_EARTHEN_POWER = 59566,
+ SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL = 52042
+};
- SHAMAN_SPELL_STORM_EARTH_AND_FIRE = 51483,
- EARTHBIND_TOTEM_SPELL_EARTHGRAB = 64695,
+enum ShamanSpellIcons
+{
+ SHAMAN_ICON_ID_RESTORATIVE_TOTEMS = 338,
+ SHAMAN_ICON_ID_SHAMAN_LAVA_FLOW = 3087
+};
- // For Earthen Power
- SHAMAN_TOTEM_SPELL_EARTHBIND_TOTEM = 6474,
- SHAMAN_TOTEM_SPELL_EARTHEN_POWER = 59566,
+// 52759 - Ancestral Awakening (Proc)
+class spell_sha_ancestral_awakening_proc : public SpellScriptLoader
+{
+ public:
+ spell_sha_ancestral_awakening_proc() : SpellScriptLoader("spell_sha_ancestral_awakening_proc") { }
- SHAMAN_BIND_SIGHT = 6277,
+ class spell_sha_ancestral_awakening_proc_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_sha_ancestral_awakening_proc_SpellScript);
- ICON_ID_SHAMAN_LAVA_FLOW = 3087,
- SHAMAN_LAVA_FLOWS_R1 = 51480,
- SHAMAN_LAVA_FLOWS_TRIGGERED_R1 = 64694,
+ bool Validate(SpellInfo const* /*spellInfo*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC))
+ return false;
+ return true;
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ int32 damage = GetEffectValue();
+ if (GetHitUnit())
+ GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC, &damage, NULL, NULL, true);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_sha_ancestral_awakening_proc_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_sha_ancestral_awakening_proc_SpellScript();
+ }
};
-// 51474 - Astral shift
+// 51474 - Astral Shift
class spell_sha_astral_shift : public SpellScriptLoader
{
public:
@@ -95,115 +136,136 @@ class spell_sha_astral_shift : public SpellScriptLoader
}
};
-// 1535 Fire Nova
-class spell_sha_fire_nova : public SpellScriptLoader
+// 2825 - Bloodlust
+class spell_sha_bloodlust : public SpellScriptLoader
{
public:
- spell_sha_fire_nova() : SpellScriptLoader("spell_sha_fire_nova") { }
+ spell_sha_bloodlust() : SpellScriptLoader("spell_sha_bloodlust") { }
- class spell_sha_fire_nova_SpellScript : public SpellScript
+ class spell_sha_bloodlust_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_sha_fire_nova_SpellScript);
+ PrepareSpellScript(spell_sha_bloodlust_SpellScript);
- bool Validate(SpellInfo const* spellEntry)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(SHAMAN_SPELL_FIRE_NOVA_R1) || sSpellMgr->GetFirstSpellInChain(SHAMAN_SPELL_FIRE_NOVA_R1) != sSpellMgr->GetFirstSpellInChain(spellEntry->Id))
- return false;
-
- uint8 rank = sSpellMgr->GetSpellRank(spellEntry->Id);
- if (!sSpellMgr->GetSpellWithRank(SHAMAN_SPELL_FIRE_NOVA_TRIGGERED_R1, rank, true))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED))
return false;
return true;
}
- SpellCastResult CheckFireTotem()
+ void RemoveInvalidTargets(std::list<WorldObject*>& targets)
{
- // fire totem
- if (!GetCaster()->m_SummonSlot[1])
- {
- SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_MUST_HAVE_FIRE_TOTEM);
- return SPELL_FAILED_CUSTOM_ERROR;
- }
+ targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_SHAMAN_SATED));
+ }
- return SPELL_CAST_OK;
+ void ApplyDebuff()
+ {
+ if (Unit* target = GetHitUnit())
+ target->CastSpell(target, SPELL_SHAMAN_SATED, true);
}
- void HandleDummy(SpellEffIndex /*effIndex*/)
+ void Register()
{
- if (Unit* caster = GetCaster())
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_RAID);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_2, TARGET_UNIT_CASTER_AREA_RAID);
+ AfterHit += SpellHitFn(spell_sha_bloodlust_SpellScript::ApplyDebuff);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_sha_bloodlust_SpellScript();
+ }
+};
+
+// -1064 - Chain Heal
+class spell_sha_chain_heal : public SpellScriptLoader
+{
+ public:
+ spell_sha_chain_heal() : SpellScriptLoader("spell_sha_chain_heal") { }
+
+ class spell_sha_chain_heal_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_sha_chain_heal_SpellScript);
+
+ bool Load()
+ {
+ firstHeal = true;
+ riptide = false;
+ return true;
+ }
+
+ void HandleHeal(SpellEffIndex /*effIndex*/)
+ {
+ if (firstHeal)
{
- uint8 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
- if (uint32 spellId = sSpellMgr->GetSpellWithRank(SHAMAN_SPELL_FIRE_NOVA_TRIGGERED_R1, rank))
+ // Check if the target has Riptide
+ if (AuraEffect* aurEff = GetHitUnit()->GetAuraEffect(SPELL_AURA_PERIODIC_HEAL, SPELLFAMILY_SHAMAN, 0, 0, 0x10, GetCaster()->GetGUID()))
{
- Creature* totem = caster->GetMap()->GetCreature(caster->m_SummonSlot[1]);
- if (totem && totem->isTotem())
- caster->CastSpell(totem, spellId, true);
+ riptide = true;
+ // Consume it
+ GetHitUnit()->RemoveAura(aurEff->GetBase());
}
+ firstHeal = false;
}
+ // Riptide increases the Chain Heal effect by 25%
+ if (riptide)
+ SetHitHeal(GetHitHeal() * 1.25f);
}
void Register()
{
- OnCheckCast += SpellCheckCastFn(spell_sha_fire_nova_SpellScript::CheckFireTotem);
- OnEffectHitTarget += SpellEffectFn(spell_sha_fire_nova_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectHitTarget += SpellEffectFn(spell_sha_chain_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
}
+
+ bool firstHeal;
+ bool riptide;
};
SpellScript* GetSpellScript() const
{
- return new spell_sha_fire_nova_SpellScript();
+ return new spell_sha_chain_heal_SpellScript();
}
};
-// 39610 Mana Tide Totem
-class spell_sha_mana_tide_totem : public SpellScriptLoader
+// 8171 - Cleansing Totem (Pulse)
+class spell_sha_cleansing_totem_pulse : public SpellScriptLoader
{
public:
- spell_sha_mana_tide_totem() : SpellScriptLoader("spell_sha_mana_tide_totem") { }
+ spell_sha_cleansing_totem_pulse() : SpellScriptLoader("spell_sha_cleansing_totem_pulse") { }
- class spell_sha_mana_tide_totem_SpellScript : public SpellScript
+ class spell_sha_cleansing_totem_pulse_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_sha_mana_tide_totem_SpellScript);
+ PrepareSpellScript(spell_sha_cleansing_totem_pulse_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(SHAMAN_SPELL_GLYPH_OF_MANA_TIDE) || !sSpellMgr->GetSpellInfo(SHAMAN_SPELL_MANA_TIDE_TOTEM))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT))
return false;
return true;
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* caster = GetCaster())
- if (Unit* unitTarget = GetHitUnit())
- {
- if (unitTarget->getPowerType() == POWER_MANA)
- {
- int32 effValue = GetEffectValue();
- // Glyph of Mana Tide
- if (Unit* owner = caster->GetOwner())
- if (AuraEffect* dummy = owner->GetAuraEffect(SHAMAN_SPELL_GLYPH_OF_MANA_TIDE, 0))
- effValue += dummy->GetAmount();
- // Regenerate 6% of Total Mana Every 3 secs
- int32 effBasePoints0 = int32(CalculatePct(unitTarget->GetMaxPower(POWER_MANA), effValue));
- caster->CastCustomSpell(unitTarget, SHAMAN_SPELL_MANA_TIDE_TOTEM, &effBasePoints0, NULL, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID());
- }
- }
+ int32 bp = 1;
+ if (GetCaster() && GetHitUnit() && GetOriginalCaster())
+ GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT, NULL, &bp, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID());
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_sha_mana_tide_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectHitTarget += SpellEffectFn(spell_sha_cleansing_totem_pulse_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_sha_mana_tide_totem_SpellScript();
+ return new spell_sha_cleansing_totem_pulse_SpellScript();
}
};
-// 6474 - Earthbind Totem - Fix Talent:Earthen Power
+// 6474 - Earthbind Totem - Fix Talent: Earthen Power
class spell_sha_earthbind_totem : public SpellScriptLoader
{
public:
@@ -213,9 +275,9 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
{
PrepareAuraScript(spell_sha_earthbind_totem_AuraScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(SHAMAN_TOTEM_SPELL_EARTHBIND_TOTEM) || !sSpellMgr->GetSpellInfo(SHAMAN_TOTEM_SPELL_EARTHEN_POWER))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_EARTHEN_POWER))
return false;
return true;
}
@@ -227,7 +289,7 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
if (Player* owner = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself())
if (AuraEffect* aur = owner->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, 2289, 0))
if (roll_chance_i(aur->GetBaseAmount()))
- GetTarget()->CastSpell((Unit*)NULL, SHAMAN_TOTEM_SPELL_EARTHEN_POWER, true);
+ GetTarget()->CastSpell((Unit*)NULL, SPELL_SHAMAN_TOTEM_EARTHEN_POWER, true);
}
void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -238,10 +300,10 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
if (!owner)
return;
// Storm, Earth and Fire
- if (AuraEffect* aurEff = owner->GetAuraEffectOfRankedSpell(SHAMAN_SPELL_STORM_EARTH_AND_FIRE, EFFECT_1))
+ if (AuraEffect* aurEff = owner->GetAuraEffectOfRankedSpell(SPELL_SHAMAN_STORM_EARTH_AND_FIRE, EFFECT_1))
{
if (roll_chance_i(aurEff->GetAmount()))
- GetCaster()->CastSpell(GetCaster(), EARTHBIND_TOTEM_SPELL_EARTHGRAB, false);
+ GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_TOTEM_EARTHBIND_EARTHGRAB, false);
}
}
@@ -275,6 +337,7 @@ class EarthenPowerTargetSelector
}
};
+// 59566 - Earthen Power
class spell_sha_earthen_power : public SpellScriptLoader
{
public:
@@ -301,177 +364,112 @@ class spell_sha_earthen_power : public SpellScriptLoader
}
};
-class spell_sha_bloodlust : public SpellScriptLoader
+// -1535 - Fire Nova
+class spell_sha_fire_nova : public SpellScriptLoader
{
public:
- spell_sha_bloodlust() : SpellScriptLoader("spell_sha_bloodlust") { }
+ spell_sha_fire_nova() : SpellScriptLoader("spell_sha_fire_nova") { }
- class spell_sha_bloodlust_SpellScript : public SpellScript
+ class spell_sha_fire_nova_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_sha_bloodlust_SpellScript);
+ PrepareSpellScript(spell_sha_fire_nova_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* spellInfo)
{
- if (!sSpellMgr->GetSpellInfo(SHAMAN_SPELL_SATED))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_FIRE_NOVA_R1) || sSpellMgr->GetFirstSpellInChain(SPELL_SHAMAN_FIRE_NOVA_R1) != sSpellMgr->GetFirstSpellInChain(spellInfo->Id))
return false;
- return true;
- }
- void RemoveInvalidTargets(std::list<WorldObject*>& targets)
- {
- targets.remove_if(Trinity::UnitAuraCheck(true, SHAMAN_SPELL_SATED));
- }
-
- void ApplyDebuff()
- {
- if (Unit* target = GetHitUnit())
- target->CastSpell(target, SHAMAN_SPELL_SATED, true);
- }
-
- void Register()
- {
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_RAID);
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_2, TARGET_UNIT_CASTER_AREA_RAID);
- AfterHit += SpellHitFn(spell_sha_bloodlust_SpellScript::ApplyDebuff);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_sha_bloodlust_SpellScript();
- }
-};
-
-class spell_sha_heroism : public SpellScriptLoader
-{
- public:
- spell_sha_heroism() : SpellScriptLoader("spell_sha_heroism") { }
-
- class spell_sha_heroism_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_sha_heroism_SpellScript);
-
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SHAMAN_SPELL_EXHAUSTION))
+ uint8 rank = sSpellMgr->GetSpellRank(spellInfo->Id);
+ if (!sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1, rank, true))
return false;
return true;
}
- void RemoveInvalidTargets(std::list<WorldObject*>& targets)
- {
- targets.remove_if(Trinity::UnitAuraCheck(true, SHAMAN_SPELL_EXHAUSTION));
- }
-
- void ApplyDebuff()
- {
- if (Unit* target = GetHitUnit())
- target->CastSpell(target, SHAMAN_SPELL_EXHAUSTION, true);
- }
-
- void Register()
+ SpellCastResult CheckFireTotem()
{
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_RAID);
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_2, TARGET_UNIT_CASTER_AREA_RAID);
- AfterHit += SpellHitFn(spell_sha_heroism_SpellScript::ApplyDebuff);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_sha_heroism_SpellScript();
- }
-};
-
-enum AncestralAwakeningProc
-{
- SPELL_ANCESTRAL_AWAKENING_PROC = 52752,
-};
-
-class spell_sha_ancestral_awakening_proc : public SpellScriptLoader
-{
- public:
- spell_sha_ancestral_awakening_proc() : SpellScriptLoader("spell_sha_ancestral_awakening_proc") { }
-
- class spell_sha_ancestral_awakening_proc_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_sha_ancestral_awakening_proc_SpellScript);
+ // fire totem
+ if (!GetCaster()->m_SummonSlot[1])
+ {
+ SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_MUST_HAVE_FIRE_TOTEM);
+ return SPELL_FAILED_CUSTOM_ERROR;
+ }
- bool Validate(SpellInfo const* /*SpellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_ANCESTRAL_AWAKENING_PROC))
- return false;
- return true;
+ return SPELL_CAST_OK;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- int32 damage = GetEffectValue();
- if (GetCaster() && GetHitUnit())
- GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_ANCESTRAL_AWAKENING_PROC, &damage, NULL, NULL, true);
+ if (Unit* caster = GetCaster())
+ {
+ uint8 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ if (uint32 spellId = sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1, rank))
+ {
+ Creature* totem = caster->GetMap()->GetCreature(caster->m_SummonSlot[1]);
+ if (totem && totem->isTotem())
+ caster->CastSpell(totem, spellId, true);
+ }
+ }
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_sha_ancestral_awakening_proc_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnCheckCast += SpellCheckCastFn(spell_sha_fire_nova_SpellScript::CheckFireTotem);
+ OnEffectHitTarget += SpellEffectFn(spell_sha_fire_nova_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_sha_ancestral_awakening_proc_SpellScript();
+ return new spell_sha_fire_nova_SpellScript();
}
};
-enum CleansingTotemPulse
-{
- SPELL_CLEANSING_TOTEM_EFFECT = 52025,
-};
-
-class spell_sha_cleansing_totem_pulse : public SpellScriptLoader
+// -8050 - Flame Shock
+class spell_sha_flame_shock : public SpellScriptLoader
{
public:
- spell_sha_cleansing_totem_pulse() : SpellScriptLoader("spell_sha_cleansing_totem_pulse") { }
+ spell_sha_flame_shock() : SpellScriptLoader("spell_sha_flame_shock") { }
- class spell_sha_cleansing_totem_pulse_SpellScript : public SpellScript
+ class spell_sha_flame_shock_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_sha_cleansing_totem_pulse_SpellScript);
+ PrepareAuraScript(spell_sha_flame_shock_AuraScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_CLEANSING_TOTEM_EFFECT))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_FLOWS_R1))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1))
return false;
return true;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+ void HandleDispel(DispelInfo* /*dispelInfo*/)
{
- int32 bp = 1;
- if (GetCaster() && GetHitUnit() && GetOriginalCaster())
- GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_CLEANSING_TOTEM_EFFECT, NULL, &bp, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID());
+ if (Unit* caster = GetCaster())
+ // Lava Flows
+ if (AuraEffect const* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_SHAMAN_LAVA_FLOW, EFFECT_0))
+ {
+ if (sSpellMgr->GetFirstSpellInChain(SPELL_SHAMAN_LAVA_FLOWS_R1) != sSpellMgr->GetFirstSpellInChain(aurEff->GetId()))
+ return;
+
+ uint8 rank = sSpellMgr->GetSpellRank(aurEff->GetId());
+ caster->CastSpell(caster, sSpellMgr->GetSpellWithRank(SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1, rank), true);
+ }
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_sha_cleansing_totem_pulse_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ AfterDispel += AuraDispelFn(spell_sha_flame_shock_AuraScript::HandleDispel);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const
{
- return new spell_sha_cleansing_totem_pulse_SpellScript();
+ return new spell_sha_flame_shock_AuraScript();
}
};
-enum HealingStreamTotem
-{
- SPELL_GLYPH_OF_HEALING_STREAM_TOTEM = 55456,
- ICON_ID_RESTORATIVE_TOTEMS = 338,
- SPELL_HEALING_STREAM_TOTEM_HEAL = 52042,
-};
-
+// 52041, 52046, 52047, 52048, 52049, 52050, 58759, 58760, 58761 - Healing Stream Totem
class spell_sha_healing_stream_totem : public SpellScriptLoader
{
public:
@@ -481,14 +479,14 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
{
PrepareSpellScript(spell_sha_healing_stream_totem_SpellScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_GLYPH_OF_HEALING_STREAM_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_HEALING_STREAM_TOTEM_HEAL))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL))
return false;
return true;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
int32 damage = GetEffectValue();
SpellInfo const* triggeringSpell = GetTriggeringSpell();
@@ -501,16 +499,16 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
damage = int32(owner->SpellHealingBonusDone(target, triggeringSpell, damage, HEAL));
// Restorative Totems
- if (AuraEffect* dummy = owner->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, ICON_ID_RESTORATIVE_TOTEMS, 1))
+ if (AuraEffect* dummy = owner->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_RESTORATIVE_TOTEMS, 1))
AddPct(damage, dummy->GetAmount());
// Glyph of Healing Stream Totem
- if (AuraEffect const* aurEff = owner->GetAuraEffect(SPELL_GLYPH_OF_HEALING_STREAM_TOTEM, EFFECT_0))
+ if (AuraEffect const* aurEff = owner->GetAuraEffect(SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM, EFFECT_0))
AddPct(damage, aurEff->GetAmount());
damage = int32(target->SpellHealingBonusTaken(owner, triggeringSpell, damage, HEAL));
}
- caster->CastCustomSpell(target, SPELL_HEALING_STREAM_TOTEM_HEAL, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
+ caster->CastCustomSpell(target, SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
}
}
@@ -526,49 +524,50 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
}
};
-enum ManaSpringTotem
-{
- SPELL_MANA_SPRING_TOTEM_ENERGIZE = 52032,
-};
-
-class spell_sha_mana_spring_totem : public SpellScriptLoader
+// 32182 - Heroism
+class spell_sha_heroism : public SpellScriptLoader
{
public:
- spell_sha_mana_spring_totem() : SpellScriptLoader("spell_sha_mana_spring_totem") { }
+ spell_sha_heroism() : SpellScriptLoader("spell_sha_heroism") { }
- class spell_sha_mana_spring_totem_SpellScript : public SpellScript
+ class spell_sha_heroism_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_sha_mana_spring_totem_SpellScript);
+ PrepareSpellScript(spell_sha_heroism_SpellScript);
- bool Validate(SpellInfo const* /*SpellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_MANA_SPRING_TOTEM_ENERGIZE))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EXHAUSTION))
return false;
return true;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+ void RemoveInvalidTargets(std::list<WorldObject*>& targets)
+ {
+ targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION));
+ }
+
+ void ApplyDebuff()
{
- int32 damage = GetEffectValue();
if (Unit* target = GetHitUnit())
- if (Unit* caster = GetCaster())
- if (target->getPowerType() == POWER_MANA)
- caster->CastCustomSpell(target, SPELL_MANA_SPRING_TOTEM_ENERGIZE, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
+ target->CastSpell(target, SPELL_SHAMAN_EXHAUSTION, true);
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_sha_mana_spring_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_RAID);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_RAID);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_heroism_SpellScript::RemoveInvalidTargets, EFFECT_2, TARGET_UNIT_CASTER_AREA_RAID);
+ AfterHit += SpellHitFn(spell_sha_heroism_SpellScript::ApplyDebuff);
}
-
};
SpellScript* GetSpellScript() const
{
- return new spell_sha_mana_spring_totem_SpellScript();
+ return new spell_sha_heroism_SpellScript();
}
};
+// 60103 - Lava Lash
class spell_sha_lava_lash : public SpellScriptLoader
{
public:
@@ -583,7 +582,7 @@ class spell_sha_lava_lash : public SpellScriptLoader
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
- void HandleDummy(SpellEffIndex /* effIndex */)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
if (Player* caster = GetCaster()->ToPlayer())
{
@@ -612,100 +611,94 @@ class spell_sha_lava_lash : public SpellScriptLoader
}
};
-// 1064 Chain Heal
-class spell_sha_chain_heal : public SpellScriptLoader
+// 52031, 52033, 52034, 52035, 52036, 58778, 58779, 58780 - Mana Spring Totem
+class spell_sha_mana_spring_totem : public SpellScriptLoader
{
public:
- spell_sha_chain_heal() : SpellScriptLoader("spell_sha_chain_heal") { }
+ spell_sha_mana_spring_totem() : SpellScriptLoader("spell_sha_mana_spring_totem") { }
- class spell_sha_chain_heal_SpellScript : public SpellScript
+ class spell_sha_mana_spring_totem_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_sha_chain_heal_SpellScript);
+ PrepareSpellScript(spell_sha_mana_spring_totem_SpellScript);
- bool Load()
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- firstHeal = true;
- riptide = false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE))
+ return false;
return true;
}
- void HandleHeal(SpellEffIndex /*effIndex*/)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (firstHeal)
- {
- // Check if the target has Riptide
- if (AuraEffect* aurEff = GetHitUnit()->GetAuraEffect(SPELL_AURA_PERIODIC_HEAL, SPELLFAMILY_SHAMAN, 0, 0, 0x10, GetCaster()->GetGUID()))
- {
- riptide = true;
- // Consume it
- GetHitUnit()->RemoveAura(aurEff->GetBase());
- }
- firstHeal = false;
- }
- // Riptide increases the Chain Heal effect by 25%
- if (riptide)
- SetHitHeal(GetHitHeal() * 1.25f);
+ int32 damage = GetEffectValue();
+ if (Unit* target = GetHitUnit())
+ if (Unit* caster = GetCaster())
+ if (target->getPowerType() == POWER_MANA)
+ caster->CastCustomSpell(target, SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_sha_chain_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
+ OnEffectHitTarget += SpellEffectFn(spell_sha_mana_spring_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
- bool firstHeal;
- bool riptide;
};
SpellScript* GetSpellScript() const
{
- return new spell_sha_chain_heal_SpellScript();
+ return new spell_sha_mana_spring_totem_SpellScript();
}
};
-class spell_sha_flame_shock : public SpellScriptLoader
+// 39610 - Mana Tide Totem
+class spell_sha_mana_tide_totem : public SpellScriptLoader
{
public:
- spell_sha_flame_shock() : SpellScriptLoader("spell_sha_flame_shock") { }
+ spell_sha_mana_tide_totem() : SpellScriptLoader("spell_sha_mana_tide_totem") { }
- class spell_sha_flame_shock_AuraScript : public AuraScript
+ class spell_sha_mana_tide_totem_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_sha_flame_shock_AuraScript);
+ PrepareSpellScript(spell_sha_mana_tide_totem_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(SHAMAN_LAVA_FLOWS_R1))
- return false;
- if (!sSpellMgr->GetSpellInfo(SHAMAN_LAVA_FLOWS_TRIGGERED_R1))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_MANA_TIDE) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MANA_TIDE_TOTEM))
return false;
return true;
}
- void HandleDispel(DispelInfo* /*dispelInfo*/)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
if (Unit* caster = GetCaster())
- // Lava Flows
- if (AuraEffect const* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, ICON_ID_SHAMAN_LAVA_FLOW, EFFECT_0))
+ if (Unit* unitTarget = GetHitUnit())
{
- if (sSpellMgr->GetFirstSpellInChain(SHAMAN_LAVA_FLOWS_R1) != sSpellMgr->GetFirstSpellInChain(aurEff->GetId()))
- return;
-
- uint8 rank = sSpellMgr->GetSpellRank(aurEff->GetId());
- caster->CastSpell(caster, sSpellMgr->GetSpellWithRank(SHAMAN_LAVA_FLOWS_TRIGGERED_R1, rank), true);
+ if (unitTarget->getPowerType() == POWER_MANA)
+ {
+ int32 effValue = GetEffectValue();
+ // Glyph of Mana Tide
+ if (Unit* owner = caster->GetOwner())
+ if (AuraEffect* dummy = owner->GetAuraEffect(SPELL_SHAMAN_GLYPH_OF_MANA_TIDE, 0))
+ effValue += dummy->GetAmount();
+ // Regenerate 6% of Total Mana Every 3 secs
+ int32 effBasePoints0 = int32(CalculatePct(unitTarget->GetMaxPower(POWER_MANA), effValue));
+ caster->CastCustomSpell(unitTarget, SPELL_SHAMAN_MANA_TIDE_TOTEM, &effBasePoints0, NULL, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID());
+ }
}
}
void Register()
{
- AfterDispel += AuraDispelFn(spell_sha_flame_shock_AuraScript::HandleDispel);
+ OnEffectHitTarget += SpellEffectFn(spell_sha_mana_tide_totem_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const
{
- return new spell_sha_flame_shock_AuraScript();
+ return new spell_sha_mana_tide_totem_SpellScript();
}
};
+// 6495 - Sentry Totem
class spell_sha_sentry_totem : public SpellScriptLoader
{
public:
@@ -717,7 +710,7 @@ class spell_sha_sentry_totem : public SpellScriptLoader
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(SHAMAN_BIND_SIGHT))
+ if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_BIND_SIGHT))
return false;
return true;
}
@@ -727,7 +720,7 @@ class spell_sha_sentry_totem : public SpellScriptLoader
if (Unit* caster = GetCaster())
if (Creature* totem = caster->GetMap()->GetCreature(caster->m_SummonSlot[4]))
if (totem->isTotem())
- caster->CastSpell(totem, SHAMAN_BIND_SIGHT, true);
+ caster->CastSpell(totem, SPELL_SHAMAN_BIND_SIGHT, true);
}
void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -752,19 +745,19 @@ class spell_sha_sentry_totem : public SpellScriptLoader
void AddSC_shaman_spell_scripts()
{
+ new spell_sha_ancestral_awakening_proc();
new spell_sha_astral_shift();
- new spell_sha_fire_nova();
- new spell_sha_mana_tide_totem();
- new spell_sha_earthbind_totem();
- new spell_sha_earthen_power();
new spell_sha_bloodlust();
- new spell_sha_heroism();
- new spell_sha_ancestral_awakening_proc();
+ new spell_sha_chain_heal();
new spell_sha_cleansing_totem_pulse();
+ new spell_sha_earthbind_totem();
+ new spell_sha_earthen_power();
+ new spell_sha_fire_nova();
+ new spell_sha_flame_shock();
new spell_sha_healing_stream_totem();
- new spell_sha_mana_spring_totem();
+ new spell_sha_heroism();
new spell_sha_lava_lash();
- new spell_sha_chain_heal();
- new spell_sha_flame_shock();
+ new spell_sha_mana_spring_totem();
+ new spell_sha_mana_tide_totem();
new spell_sha_sentry_totem();
}
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index 2070933173b..89c69733daf 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -28,141 +28,88 @@
enum WarlockSpells
{
- WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS = 54435,
- WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER = 54443,
- WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD = 54508,
- WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER = 54509,
- WARLOCK_DEMONIC_EMPOWERMENT_IMP = 54444,
- WARLOCK_IMPROVED_HEALTHSTONE_R1 = 18692,
- WARLOCK_IMPROVED_HEALTHSTONE_R2 = 18693,
- WARLOCK_DEMONIC_CIRCLE_SUMMON = 48018,
- WARLOCK_DEMONIC_CIRCLE_TELEPORT = 48020,
- WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST = 62388,
- WARLOCK_HAUNT = 48181,
- WARLOCK_HAUNT_HEAL = 48210,
- WARLOCK_UNSTABLE_AFFLICTION_DISPEL = 31117,
- WARLOCK_CURSE_OF_DOOM_EFFECT = 18662,
- WARLOCK_IMPROVED_HEALTH_FUNNEL_R1 = 18703,
- WARLOCK_IMPROVED_HEALTH_FUNNEL_R2 = 18704,
- WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1 = 60955,
- WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2 = 60956,
+ SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT = 18662,
+ SPELL_WARLOCK_DEMONIC_CIRCLE_SUMMON = 48018,
+ SPELL_WARLOCK_DEMONIC_CIRCLE_TELEPORT = 48020,
+ SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST = 62388,
+ SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS = 54435,
+ SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER = 54443,
+ SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD = 54508,
+ SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER = 54509,
+ SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP = 54444,
+ SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1 = 18692,
+ SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2 = 18693,
+ SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R1 = 18703,
+ SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R2 = 18704,
+ SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1 = 60955,
+ SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2 = 60956,
+ SPELL_WARLOCK_HAUNT = 48181,
+ SPELL_WARLOCK_HAUNT_HEAL = 48210,
+ SPELL_WARLOCK_LIFE_TAP_ENERGIZE = 31818,
+ SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2 = 32553,
+ SPELL_WARLOCK_SOULSHATTER = 32835,
+ SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL = 31117
};
-class spell_warl_banish : public SpellScriptLoader
+enum WarlockSpellIcons
{
-public:
- spell_warl_banish() : SpellScriptLoader("spell_warl_banish") { }
-
- class spell_warl_banish_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_warl_banish_SpellScript);
-
- bool Load()
- {
- _removed = false;
- return true;
- }
-
- void HandleBanish()
- {
- if (Unit* target = GetHitUnit())
- {
- if (target->GetAuraEffect(SPELL_AURA_SCHOOL_IMMUNITY, SPELLFAMILY_WARLOCK, 0, 0x08000000, 0))
- {
- //No need to remove old aura since its removed due to not stack by current Banish aura
- PreventHitDefaultEffect(EFFECT_0);
- PreventHitDefaultEffect(EFFECT_1);
- PreventHitDefaultEffect(EFFECT_2);
- _removed = true;
- }
- }
- }
-
- void RemoveAura()
- {
- if (_removed)
- PreventHitAura();
- }
-
- void Register()
- {
- BeforeHit += SpellHitFn(spell_warl_banish_SpellScript::HandleBanish);
- AfterHit += SpellHitFn(spell_warl_banish_SpellScript::RemoveAura);
- }
-
- bool _removed;
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_warl_banish_SpellScript();
- }
+ WARLOCK_ICON_ID_IMPROVED_LIFE_TAP = 208,
+ WARLOCK_ICON_ID_MANA_FEED = 1982
};
-// 47193 Demonic Empowerment
-class spell_warl_demonic_empowerment : public SpellScriptLoader
+// 710, 18647 - Banish
+class spell_warl_banish : public SpellScriptLoader
{
public:
- spell_warl_demonic_empowerment() : SpellScriptLoader("spell_warl_demonic_empowerment") { }
+ spell_warl_banish() : SpellScriptLoader("spell_warl_banish") { }
- class spell_warl_demonic_empowerment_SpellScript : public SpellScript
+ class spell_warl_banish_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_warl_demonic_empowerment_SpellScript);
+ PrepareSpellScript(spell_warl_banish_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Load()
{
- if (!sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS) || !sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER) || !sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD) || !sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER) || !sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_EMPOWERMENT_IMP))
- return false;
+ _removed = false;
return true;
}
- void HandleScriptEffect(SpellEffIndex /*effIndex*/)
+ void HandleBanish()
{
- if (Creature* targetCreature = GetHitCreature())
+ if (Unit* target = GetHitUnit())
{
- if (targetCreature->isPet())
+ if (target->GetAuraEffect(SPELL_AURA_SCHOOL_IMMUNITY, SPELLFAMILY_WARLOCK, 0, 0x08000000, 0))
{
- CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(targetCreature->GetEntry());
- switch (ci->family)
- {
- case CREATURE_FAMILY_SUCCUBUS:
- targetCreature->CastSpell(targetCreature, WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS, true);
- break;
- case CREATURE_FAMILY_VOIDWALKER:
- {
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER);
- int32 hp = int32(targetCreature->CountPctFromMaxHealth(GetCaster()->CalculateSpellDamage(targetCreature, spellInfo, 0)));
- targetCreature->CastCustomSpell(targetCreature, WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, &hp, NULL, NULL, true);
- //unitTarget->CastSpell(unitTarget, 54441, true);
- break;
- }
- case CREATURE_FAMILY_FELGUARD:
- targetCreature->CastSpell(targetCreature, WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD, true);
- break;
- case CREATURE_FAMILY_FELHUNTER:
- targetCreature->CastSpell(targetCreature, WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER, true);
- break;
- case CREATURE_FAMILY_IMP:
- targetCreature->CastSpell(targetCreature, WARLOCK_DEMONIC_EMPOWERMENT_IMP, true);
- break;
- }
+ // No need to remove old aura since its removed due to not stack by current Banish aura
+ PreventHitDefaultEffect(EFFECT_0);
+ PreventHitDefaultEffect(EFFECT_1);
+ PreventHitDefaultEffect(EFFECT_2);
+ _removed = true;
}
}
}
+ void RemoveAura()
+ {
+ if (_removed)
+ PreventHitAura();
+ }
+
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_warl_demonic_empowerment_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ BeforeHit += SpellHitFn(spell_warl_banish_SpellScript::HandleBanish);
+ AfterHit += SpellHitFn(spell_warl_banish_SpellScript::RemoveAura);
}
+
+ bool _removed;
};
SpellScript* GetSpellScript() const
{
- return new spell_warl_demonic_empowerment_SpellScript();
+ return new spell_warl_banish_SpellScript();
}
};
-// 6201 Create Healthstone (and ranks)
+// 6201 - Create Healthstone (and ranks)
class spell_warl_create_healthstone : public SpellScriptLoader
{
public:
@@ -174,9 +121,9 @@ class spell_warl_create_healthstone : public SpellScriptLoader
static uint32 const iTypes[8][3];
- bool Validate(SpellInfo const* /*spellEntry*/)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (!sSpellMgr->GetSpellInfo(WARLOCK_IMPROVED_HEALTHSTONE_R1) || !sSpellMgr->GetSpellInfo(WARLOCK_IMPROVED_HEALTHSTONE_R2))
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2))
return false;
return true;
}
@@ -204,8 +151,12 @@ class spell_warl_create_healthstone : public SpellScriptLoader
{
switch (aurEff->GetId())
{
- case WARLOCK_IMPROVED_HEALTHSTONE_R1: rank = 1; break;
- case WARLOCK_IMPROVED_HEALTHSTONE_R2: rank = 2; break;
+ case SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1:
+ rank = 1;
+ break;
+ case SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2:
+ rank = 2;
+ break;
default:
sLog->outError(LOG_FILTER_SPELLS_AURAS, "Unknown rank of Improved Healthstone id: %d", aurEff->GetId());
break;
@@ -241,142 +192,336 @@ uint32 const spell_warl_create_healthstone::spell_warl_create_healthstone_SpellS
{36892, 36893, 36894} // Fel Healthstone
};
-// 47422 Everlasting Affliction
-class spell_warl_everlasting_affliction : public SpellScriptLoader
+// -603 - Curse of Doom
+class spell_warl_curse_of_doom : public SpellScriptLoader
{
public:
- spell_warl_everlasting_affliction() : SpellScriptLoader("spell_warl_everlasting_affliction") { }
+ spell_warl_curse_of_doom() : SpellScriptLoader("spell_warl_curse_of_doom") { }
- class spell_warl_everlasting_affliction_SpellScript : public SpellScript
+ class spell_warl_curse_of_doom_AuraScript : public AuraScript
{
- PrepareSpellScript(spell_warl_everlasting_affliction_SpellScript);
+ PrepareAuraScript(spell_warl_curse_of_doom_AuraScript);
- void HandleScriptEffect(SpellEffIndex /*effIndex*/)
+ bool Validate(SpellInfo const* /*spell*/)
{
- if (Unit* unitTarget = GetHitUnit())
- // Refresh corruption on target
- if (AuraEffect* aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_WARLOCK, 0x2, 0, 0, GetCaster()->GetGUID()))
- aur->GetBase()->RefreshDuration();
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT))
+ return false;
+ return true;
+ }
+
+ bool Load()
+ {
+ return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ {
+ if (!GetCaster())
+ return;
+
+ AuraRemoveMode removeMode = GetTargetApplication()->GetRemoveMode();
+ if (removeMode != AURA_REMOVE_BY_DEATH || !IsExpired())
+ return;
+
+ if (GetCaster()->ToPlayer()->isHonorOrXPTarget(GetTarget()))
+ GetCaster()->CastSpell(GetTarget(), SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT, true, NULL, aurEff);
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_warl_everlasting_affliction_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ AfterEffectRemove += AuraEffectRemoveFn(spell_warl_curse_of_doom_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
- SpellScript* GetSpellScript() const
+ AuraScript* GetAuraScript() const
{
- return new spell_warl_everlasting_affliction_SpellScript();
+ return new spell_warl_curse_of_doom_AuraScript();
}
};
-// 18541 Ritual of Doom Effect
-class spell_warl_ritual_of_doom_effect : public SpellScriptLoader
+// 48018 - Demonic Circle Summon
+class spell_warl_demonic_circle_summon : public SpellScriptLoader
{
-public:
- spell_warl_ritual_of_doom_effect() : SpellScriptLoader("spell_warl_ritual_of_doom_effect") { }
+ public:
+ spell_warl_demonic_circle_summon() : SpellScriptLoader("spell_warl_demonic_circle_summon") { }
+
+ class spell_warl_demonic_circle_summon_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_warl_demonic_circle_summon_AuraScript);
+
+ void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes mode)
+ {
+ // If effect is removed by expire remove the summoned demonic circle too.
+ if (!(mode & AURA_EFFECT_HANDLE_REAPPLY))
+ GetTarget()->RemoveGameObject(GetId(), true);
+
+ GetTarget()->RemoveAura(SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST);
+ }
+
+ void HandleDummyTick(AuraEffect const* /*aurEff*/)
+ {
+ if (GameObject* circle = GetTarget()->GetGameObject(GetId()))
+ {
+ // Here we check if player is in demonic circle teleport range, if so add
+ // WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST; allowing him to cast the WARLOCK_DEMONIC_CIRCLE_TELEPORT.
+ // If not in range remove the WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST.
+
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_CIRCLE_TELEPORT);
+
+ if (GetTarget()->IsWithinDist(circle, spellInfo->GetMaxRange(true)))
+ {
+ if (!GetTarget()->HasAura(SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST))
+ GetTarget()->CastSpell(GetTarget(), SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST, true);
+ }
+ else
+ GetTarget()->RemoveAura(SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST);
+ }
+ }
- class spell_warl_ritual_of_doom_effect_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_warl_ritual_of_doom_effect_SpellScript);
+ void Register()
+ {
+ OnEffectRemove += AuraEffectApplyFn(spell_warl_demonic_circle_summon_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_circle_summon_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
- void HandleDummy(SpellEffIndex /*effIndex*/)
+ AuraScript* GetAuraScript() const
{
- Unit* caster = GetCaster();
- caster->CastSpell(caster, GetEffectValue(), true);
+ return new spell_warl_demonic_circle_summon_AuraScript();
}
+};
- void Register()
+// 48020 - Demonic Circle Teleport
+class spell_warl_demonic_circle_teleport : public SpellScriptLoader
+{
+ public:
+ spell_warl_demonic_circle_teleport() : SpellScriptLoader("spell_warl_demonic_circle_teleport") { }
+
+ class spell_warl_demonic_circle_teleport_AuraScript : public AuraScript
{
- OnEffectHit += SpellEffectFn(spell_warl_ritual_of_doom_effect_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
+ PrepareAuraScript(spell_warl_demonic_circle_teleport_AuraScript);
- SpellScript* GetSpellScript() const
- {
- return new spell_warl_ritual_of_doom_effect_SpellScript();
- }
+ void HandleTeleport(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (Player* player = GetTarget()->ToPlayer())
+ {
+ if (GameObject* circle = player->GetGameObject(SPELL_WARLOCK_DEMONIC_CIRCLE_SUMMON))
+ {
+ player->NearTeleportTo(circle->GetPositionX(), circle->GetPositionY(), circle->GetPositionZ(), circle->GetOrientation());
+ player->RemoveMovementImpairingAuras();
+ }
+ }
+ }
+
+ void Register()
+ {
+ OnEffectApply += AuraEffectApplyFn(spell_warl_demonic_circle_teleport_AuraScript::HandleTeleport, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_warl_demonic_circle_teleport_AuraScript();
+ }
};
-class spell_warl_seed_of_corruption : public SpellScriptLoader
+// 47193 - Demonic Empowerment
+class spell_warl_demonic_empowerment : public SpellScriptLoader
{
public:
- spell_warl_seed_of_corruption() : SpellScriptLoader("spell_warl_seed_of_corruption") { }
+ spell_warl_demonic_empowerment() : SpellScriptLoader("spell_warl_demonic_empowerment") { }
- class spell_warl_seed_of_corruption_SpellScript : public SpellScript
+ class spell_warl_demonic_empowerment_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_warl_seed_of_corruption_SpellScript);
+ PrepareSpellScript(spell_warl_demonic_empowerment_SpellScript);
- void FilterTargets(std::list<WorldObject*>& targets)
+ bool Validate(SpellInfo const* /*spellInfo*/)
{
- if (GetExplTargetUnit())
- targets.remove(GetExplTargetUnit());
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP))
+ return false;
+ return true;
+ }
+
+ void HandleScriptEffect(SpellEffIndex /*effIndex*/)
+ {
+ if (Creature* targetCreature = GetHitCreature())
+ {
+ if (targetCreature->isPet())
+ {
+ CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(targetCreature->GetEntry());
+ switch (ci->family)
+ {
+ case CREATURE_FAMILY_SUCCUBUS:
+ targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS, true);
+ break;
+ case CREATURE_FAMILY_VOIDWALKER:
+ {
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER);
+ int32 hp = int32(targetCreature->CountPctFromMaxHealth(GetCaster()->CalculateSpellDamage(targetCreature, spellInfo, 0)));
+ targetCreature->CastCustomSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, &hp, NULL, NULL, true);
+ //unitTarget->CastSpell(unitTarget, 54441, true);
+ break;
+ }
+ case CREATURE_FAMILY_FELGUARD:
+ targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD, true);
+ break;
+ case CREATURE_FAMILY_FELHUNTER:
+ targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER, true);
+ break;
+ case CREATURE_FAMILY_IMP:
+ targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP, true);
+ break;
+ }
+ }
+ }
}
void Register()
{
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warl_seed_of_corruption_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
+ OnEffectHitTarget += SpellEffectFn(spell_warl_demonic_empowerment_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_warl_seed_of_corruption_SpellScript();
+ return new spell_warl_demonic_empowerment_SpellScript();
}
};
-enum Soulshatter
+// 47422 - Everlasting Affliction
+class spell_warl_everlasting_affliction : public SpellScriptLoader
{
- SPELL_SOULSHATTER = 32835,
+ public:
+ spell_warl_everlasting_affliction() : SpellScriptLoader("spell_warl_everlasting_affliction") { }
+
+ class spell_warl_everlasting_affliction_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_warl_everlasting_affliction_SpellScript);
+
+ void HandleScriptEffect(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* unitTarget = GetHitUnit())
+ // Refresh corruption on target
+ if (AuraEffect* aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_WARLOCK, 0x2, 0, 0, GetCaster()->GetGUID()))
+ aur->GetBase()->RefreshDuration();
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_warl_everlasting_affliction_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_warl_everlasting_affliction_SpellScript();
+ }
};
-class spell_warl_soulshatter : public SpellScriptLoader
+// -48181 - Haunt
+class spell_warl_haunt : public SpellScriptLoader
{
public:
- spell_warl_soulshatter() : SpellScriptLoader("spell_warl_soulshatter") { }
+ spell_warl_haunt() : SpellScriptLoader("spell_warl_haunt") { }
- class spell_warl_soulshatter_SpellScript : public SpellScript
+ class spell_warl_haunt_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_warl_soulshatter_SpellScript);
+ PrepareSpellScript(spell_warl_haunt_SpellScript);
+
+ void HandleOnHit()
+ {
+ if (Aura* aura = GetHitAura())
+ if (AuraEffect* aurEff = aura->GetEffect(EFFECT_1))
+ aurEff->SetAmount(CalculatePct(aurEff->GetAmount(), GetHitDamage()));
+ }
+
+ void Register()
+ {
+ OnHit += SpellHitFn(spell_warl_haunt_SpellScript::HandleOnHit);
+ }
+ };
+
+ class spell_warl_haunt_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_warl_haunt_AuraScript);
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_SOULSHATTER))
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_HAUNT_HEAL))
return false;
return true;
}
- void HandleDummy(SpellEffIndex /*effIndex*/)
+ void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
- Unit* caster = GetCaster();
- if (Unit* target = GetHitUnit())
+ if (Unit* caster = GetCaster())
{
- if (target->CanHaveThreatList() && target->getThreatManager().getThreat(caster) > 0.0f)
- caster->CastSpell(target, SPELL_SOULSHATTER, true);
+ int32 amount = aurEff->GetAmount();
+ GetTarget()->CastCustomSpell(caster, SPELL_WARLOCK_HAUNT_HEAL, &amount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
}
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_warl_soulshatter_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectRemove += AuraEffectApplyFn(spell_warl_haunt_AuraScript::HandleRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_warl_soulshatter_SpellScript();
+ return new spell_warl_haunt_SpellScript();
+ }
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_warl_haunt_AuraScript();
}
};
-enum LifeTap
+// -755 - Health Funnel
+class spell_warl_health_funnel : public SpellScriptLoader
{
- SPELL_LIFE_TAP_ENERGIZE = 31818,
- SPELL_LIFE_TAP_ENERGIZE_2 = 32553,
- ICON_ID_IMPROVED_LIFE_TAP = 208,
- ICON_ID_MANA_FEED = 1982,
+ public:
+ spell_warl_health_funnel() : SpellScriptLoader("spell_warl_health_funnel") { }
+
+ class spell_warl_health_funnel_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_warl_health_funnel_AuraScript);
+
+ void ApplyEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* caster = GetCaster();
+ if (!caster)
+ return;
+
+ Unit* target = GetTarget();
+ if (caster->HasAura(SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R2))
+ target->CastSpell(target, SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2, true);
+ else if (caster->HasAura(SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R1))
+ target->CastSpell(target, SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1, true);
+ }
+
+ void RemoveEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+ target->RemoveAurasDueToSpell(SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1);
+ target->RemoveAurasDueToSpell(SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2);
+ }
+
+ void Register()
+ {
+ OnEffectRemove += AuraEffectRemoveFn(spell_warl_health_funnel_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
+ OnEffectApply += AuraEffectApplyFn(spell_warl_health_funnel_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_warl_health_funnel_AuraScript();
+ }
};
+// -1454 - Life Tap
class spell_warl_life_tap : public SpellScriptLoader
{
public:
@@ -393,7 +538,7 @@ class spell_warl_life_tap : public SpellScriptLoader
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_ENERGIZE) || !sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_ENERGIZE_2))
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_LIFE_TAP_ENERGIZE) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2))
return false;
return true;
}
@@ -410,20 +555,20 @@ class spell_warl_life_tap : public SpellScriptLoader
target->ModifyHealth(-damage);
// Improved Life Tap mod
- if (AuraEffect const* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, ICON_ID_IMPROVED_LIFE_TAP, 0))
+ if (AuraEffect const* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, WARLOCK_ICON_ID_IMPROVED_LIFE_TAP, 0))
AddPct(mana, aurEff->GetAmount());
- caster->CastCustomSpell(target, SPELL_LIFE_TAP_ENERGIZE, &mana, NULL, NULL, false);
+ caster->CastCustomSpell(target, SPELL_WARLOCK_LIFE_TAP_ENERGIZE, &mana, NULL, NULL, false);
// Mana Feed
int32 manaFeedVal = 0;
- if (AuraEffect const* aurEff = caster->GetAuraEffect(SPELL_AURA_ADD_FLAT_MODIFIER, SPELLFAMILY_WARLOCK, ICON_ID_MANA_FEED, 0))
+ if (AuraEffect const* aurEff = caster->GetAuraEffect(SPELL_AURA_ADD_FLAT_MODIFIER, SPELLFAMILY_WARLOCK, WARLOCK_ICON_ID_MANA_FEED, 0))
manaFeedVal = aurEff->GetAmount();
if (manaFeedVal > 0)
{
ApplyPct(manaFeedVal, mana);
- caster->CastCustomSpell(caster, SPELL_LIFE_TAP_ENERGIZE_2, &manaFeedVal, NULL, NULL, true, NULL);
+ caster->CastCustomSpell(caster, SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2, &manaFeedVal, NULL, NULL, true, NULL);
}
}
}
@@ -448,149 +593,102 @@ class spell_warl_life_tap : public SpellScriptLoader
}
};
-class spell_warl_demonic_circle_summon : public SpellScriptLoader
+// 18541 - Ritual of Doom Effect
+class spell_warl_ritual_of_doom_effect : public SpellScriptLoader
{
public:
- spell_warl_demonic_circle_summon() : SpellScriptLoader("spell_warl_demonic_circle_summon") { }
+ spell_warl_ritual_of_doom_effect() : SpellScriptLoader("spell_warl_ritual_of_doom_effect") { }
- class spell_warl_demonic_circle_summon_AuraScript : public AuraScript
+ class spell_warl_ritual_of_doom_effect_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_warl_demonic_circle_summon_AuraScript);
-
- void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes mode)
- {
- // If effect is removed by expire remove the summoned demonic circle too.
- if (!(mode & AURA_EFFECT_HANDLE_REAPPLY))
- GetTarget()->RemoveGameObject(GetId(), true);
+ PrepareSpellScript(spell_warl_ritual_of_doom_effect_SpellScript);
- GetTarget()->RemoveAura(WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST);
- }
-
- void HandleDummyTick(AuraEffect const* /*aurEff*/)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (GameObject* circle = GetTarget()->GetGameObject(GetId()))
- {
- // Here we check if player is in demonic circle teleport range, if so add
- // WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST; allowing him to cast the WARLOCK_DEMONIC_CIRCLE_TELEPORT.
- // If not in range remove the WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST.
-
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_CIRCLE_TELEPORT);
-
- if (GetTarget()->IsWithinDist(circle, spellInfo->GetMaxRange(true)))
- {
- if (!GetTarget()->HasAura(WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST))
- GetTarget()->CastSpell(GetTarget(), WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST, true);
- }
- else
- GetTarget()->RemoveAura(WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST);
- }
+ Unit* caster = GetCaster();
+ caster->CastSpell(caster, GetEffectValue(), true);
}
void Register()
{
- OnEffectRemove += AuraEffectApplyFn(spell_warl_demonic_circle_summon_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_circle_summon_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnEffectHit += SpellEffectFn(spell_warl_ritual_of_doom_effect_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const
{
- return new spell_warl_demonic_circle_summon_AuraScript();
+ return new spell_warl_ritual_of_doom_effect_SpellScript();
}
};
-class spell_warl_demonic_circle_teleport : public SpellScriptLoader
+// -27285 - Seed of Corruption
+class spell_warl_seed_of_corruption : public SpellScriptLoader
{
public:
- spell_warl_demonic_circle_teleport() : SpellScriptLoader("spell_warl_demonic_circle_teleport") { }
+ spell_warl_seed_of_corruption() : SpellScriptLoader("spell_warl_seed_of_corruption") { }
- class spell_warl_demonic_circle_teleport_AuraScript : public AuraScript
+ class spell_warl_seed_of_corruption_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_warl_demonic_circle_teleport_AuraScript);
+ PrepareSpellScript(spell_warl_seed_of_corruption_SpellScript);
- void HandleTeleport(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- if (Player* player = GetTarget()->ToPlayer())
- {
- if (GameObject* circle = player->GetGameObject(WARLOCK_DEMONIC_CIRCLE_SUMMON))
- {
- player->NearTeleportTo(circle->GetPositionX(), circle->GetPositionY(), circle->GetPositionZ(), circle->GetOrientation());
- player->RemoveMovementImpairingAuras();
- }
- }
+ if (GetExplTargetUnit())
+ targets.remove(GetExplTargetUnit());
}
void Register()
{
- OnEffectApply += AuraEffectApplyFn(spell_warl_demonic_circle_teleport_AuraScript::HandleTeleport, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warl_seed_of_corruption_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const
{
- return new spell_warl_demonic_circle_teleport_AuraScript();
+ return new spell_warl_seed_of_corruption_SpellScript();
}
};
-class spell_warl_haunt : public SpellScriptLoader
+// 29858 - Soulshatter
+class spell_warl_soulshatter : public SpellScriptLoader
{
public:
- spell_warl_haunt() : SpellScriptLoader("spell_warl_haunt") { }
-
- class spell_warl_haunt_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_warl_haunt_SpellScript);
-
- void HandleOnHit()
- {
- if (Aura* aura = GetHitAura())
- if (AuraEffect* aurEff = aura->GetEffect(EFFECT_1))
- aurEff->SetAmount(CalculatePct(aurEff->GetAmount(), GetHitDamage()));
- }
-
- void Register()
- {
- OnHit += SpellHitFn(spell_warl_haunt_SpellScript::HandleOnHit);
- }
- };
+ spell_warl_soulshatter() : SpellScriptLoader("spell_warl_soulshatter") { }
- class spell_warl_haunt_AuraScript : public AuraScript
+ class spell_warl_soulshatter_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_warl_haunt_AuraScript);
+ PrepareSpellScript(spell_warl_soulshatter_SpellScript);
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(WARLOCK_HAUNT_HEAL))
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOULSHATTER))
return false;
return true;
}
- void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* caster = GetCaster())
+ Unit* caster = GetCaster();
+ if (Unit* target = GetHitUnit())
{
- int32 amount = aurEff->GetAmount();
- GetTarget()->CastCustomSpell(caster, WARLOCK_HAUNT_HEAL, &amount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
+ if (target->CanHaveThreatList() && target->getThreatManager().getThreat(caster) > 0.0f)
+ caster->CastSpell(target, SPELL_WARLOCK_SOULSHATTER, true);
}
}
void Register()
{
- OnEffectRemove += AuraEffectApplyFn(spell_warl_haunt_AuraScript::HandleRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectHitTarget += SpellEffectFn(spell_warl_soulshatter_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_warl_haunt_SpellScript();
- }
-
- AuraScript* GetAuraScript() const
- {
- return new spell_warl_haunt_AuraScript();
+ return new spell_warl_soulshatter_SpellScript();
}
};
+// -30108 - Unstable Affliction
class spell_warl_unstable_affliction : public SpellScriptLoader
{
public:
@@ -602,7 +700,7 @@ class spell_warl_unstable_affliction : public SpellScriptLoader
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(WARLOCK_UNSTABLE_AFFLICTION_DISPEL))
+ if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL))
return false;
return true;
}
@@ -614,7 +712,7 @@ class spell_warl_unstable_affliction : public SpellScriptLoader
{
int32 damage = aurEff->GetAmount() * 9;
// backfire damage and silence
- caster->CastCustomSpell(dispelInfo->GetDispeller(), WARLOCK_UNSTABLE_AFFLICTION_DISPEL, &damage, NULL, NULL, true, NULL, aurEff);
+ caster->CastCustomSpell(dispelInfo->GetDispeller(), SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL, &damage, NULL, NULL, true, NULL, aurEff);
}
}
@@ -630,108 +728,20 @@ class spell_warl_unstable_affliction : public SpellScriptLoader
}
};
-class spell_warl_curse_of_doom : public SpellScriptLoader
-{
- public:
- spell_warl_curse_of_doom() : SpellScriptLoader("spell_warl_curse_of_doom") { }
-
- class spell_warl_curse_of_doom_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_warl_curse_of_doom_AuraScript);
-
- bool Validate(SpellInfo const* /*spell*/)
- {
- if (!sSpellMgr->GetSpellInfo(WARLOCK_CURSE_OF_DOOM_EFFECT))
- return false;
- return true;
- }
-
- bool Load()
- {
- return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
- }
-
- void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
- {
- if (!GetCaster())
- return;
-
- AuraRemoveMode removeMode = GetTargetApplication()->GetRemoveMode();
- if (removeMode != AURA_REMOVE_BY_DEATH || !IsExpired())
- return;
-
- if (GetCaster()->ToPlayer()->isHonorOrXPTarget(GetTarget()))
- GetCaster()->CastSpell(GetTarget(), WARLOCK_CURSE_OF_DOOM_EFFECT, true, NULL, aurEff);
- }
-
- void Register()
- {
- AfterEffectRemove += AuraEffectRemoveFn(spell_warl_curse_of_doom_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_warl_curse_of_doom_AuraScript();
- }
-};
-
-class spell_warl_health_funnel : public SpellScriptLoader
-{
-public:
- spell_warl_health_funnel() : SpellScriptLoader("spell_warl_health_funnel") { }
-
- class spell_warl_health_funnel_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_warl_health_funnel_AuraScript);
-
- void ApplyEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- Unit* caster = GetCaster();
- if (!caster)
- return;
-
- Unit* target = GetTarget();
- if (caster->HasAura(WARLOCK_IMPROVED_HEALTH_FUNNEL_R2))
- target->CastSpell(target, WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2, true);
- else if (caster->HasAura(WARLOCK_IMPROVED_HEALTH_FUNNEL_R1))
- target->CastSpell(target, WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1, true);
- }
-
- void RemoveEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- Unit* target = GetTarget();
- target->RemoveAurasDueToSpell(WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1);
- target->RemoveAurasDueToSpell(WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2);
- }
-
- void Register()
- {
- OnEffectRemove += AuraEffectRemoveFn(spell_warl_health_funnel_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
- OnEffectApply += AuraEffectApplyFn(spell_warl_health_funnel_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_warl_health_funnel_AuraScript();
- }
-};
-
void AddSC_warlock_spell_scripts()
{
new spell_warl_banish();
- new spell_warl_demonic_empowerment();
new spell_warl_create_healthstone();
+ new spell_warl_curse_of_doom();
+ new spell_warl_demonic_circle_summon();
+ new spell_warl_demonic_circle_teleport();
+ new spell_warl_demonic_empowerment();
new spell_warl_everlasting_affliction();
+ new spell_warl_haunt();
+ new spell_warl_health_funnel();
+ new spell_warl_life_tap();
new spell_warl_ritual_of_doom_effect();
new spell_warl_seed_of_corruption();
new spell_warl_soulshatter();
- new spell_warl_life_tap();
- new spell_warl_demonic_circle_summon();
- new spell_warl_demonic_circle_teleport();
- new spell_warl_haunt();
new spell_warl_unstable_affliction();
- new spell_warl_curse_of_doom();
- new spell_warl_health_funnel();
}