aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--cmake/compiler/clang/settings.cmake15
-rw-r--r--cmake/compiler/gcc/settings.cmake20
-rw-r--r--cmake/compiler/xcode/settings.cmake2
-rw-r--r--cmake/macros/FindPCHSupport.cmake399
-rw-r--r--cmake/platform/osx/settings.cmake8
-rw-r--r--cmake/platform/unix/settings.cmake1
-rw-r--r--dep/acelite/6.1.4_tc_changes.diff17
-rw-r--r--dep/acelite/ace/CMakeLists.txt15
-rw-r--r--dep/g3dlite/G3D-v8.0_extra.diff13
-rw-r--r--dep/g3dlite/include/G3D/platform.h2
-rw-r--r--sql/base/characters_database.sql41
-rw-r--r--sql/old/2.4.3/00011_characters.sql2
-rw-r--r--sql/old/2.4.3/00045_characters.sql2
-rw-r--r--sql/old/2.4.3/00117_world_scripts.sql4
-rw-r--r--sql/old/2.4.3/00123_world_scripts.sql16
-rw-r--r--sql/old/2.4.3/00247_world.sql4
-rw-r--r--sql/old/2.4.3/00262_world.sql10
-rw-r--r--sql/old/2.4.3/00329_world.sql2
-rw-r--r--sql/old/2.4.3/00542_characters.sql114
-rw-r--r--sql/old/2.4.3/00566_world.sql2
-rw-r--r--sql/old/2.4.3/00608_world.sql6
-rw-r--r--sql/old/2.4.3/00645_world_scripts.sql2
-rw-r--r--sql/old/2.4.3/00676_world.sql2
-rw-r--r--sql/old/2.4.3/00725_characters.sql6
-rw-r--r--sql/old/2.4.3/00725_world.sql38
-rw-r--r--sql/old/2.4.3/00871_world.sql2
-rw-r--r--sql/old/2.4.3/00905_world_scripts.sql2
-rw-r--r--sql/old/2.4.3/00955_world_scripts.sql8
-rw-r--r--sql/old/2.4.3/01069_world_scripts.sql2
-rw-r--r--sql/old/3.0.9/00000_3.0.9_old.sql34
-rw-r--r--sql/old/3.0.9/01426_mangos_7292_01_world_points_of_interest.sql2
-rw-r--r--sql/old/3.0.9/01426_mangos_7292_02_world_locales_points_of_interest.sql2
-rw-r--r--sql/old/3.0.9/01693_world.sql4
-rw-r--r--sql/old/3.0.9/02131_world.sql2
-rw-r--r--sql/old/3.0.9/02254_world.sql2
-rw-r--r--sql/old/3.0.9/02339_world.sql2
-rw-r--r--sql/old/3.0.9/02343_world.sql2
-rw-r--r--sql/old/3.0.9/02686_world_command.sql2
-rw-r--r--sql/old/3.0.9/02907_mangos_7705_01_world_command.sql2
-rw-r--r--sql/old/3.0.9/02986_TC1_world.sql2
-rw-r--r--sql/old/3.0.9/03070_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.0.9/03257_world_waypoint_data_converter.sql2
-rw-r--r--sql/old/3.0.9/03320_worldspell_enchant_proc_data.sql2
-rw-r--r--sql/old/3.0.9/03392_world_spell_proc_event.sql4
-rw-r--r--sql/old/3.0.9/03609_mangos_7902_01_world_pool_creature.sql2
-rw-r--r--sql/old/3.0.9/03609_mangos_7902_02_world_pool_gameobject.sql2
-rw-r--r--sql/old/3.0.9/03810_world_spell_bonus_data.sql20
-rw-r--r--sql/old/3.0.9/03851_world_spell.sql2
-rw-r--r--sql/old/3.0.9/03877_world_spell_script_target.sql2
-rw-r--r--sql/old/3.0.9/03886_world_script_nexus.sql2
-rw-r--r--sql/old/3.1.3/03954_world_spell_bonus_data.sql2
-rw-r--r--sql/old/3.1.3/03991_world_spell_proc_event.sql8
-rw-r--r--sql/old/3.1.3/04222_world.sql2
-rw-r--r--sql/old/3.1.3/04320_world_.sql2
-rw-r--r--sql/old/3.1.3/04321_world.sql2
-rw-r--r--sql/old/3.1.3/04356_world_spell_proc_event.sql4
-rw-r--r--sql/old/3.1.3/04360_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.1.3/04367_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.1.3/04397_world_playercreateinfo_spell_TDB.sql2
-rw-r--r--sql/old/3.1.3/04409_world_spell_proc_event.sql10
-rw-r--r--sql/old/3.1.3/04423_world.sql2
-rw-r--r--sql/old/3.1.3/04426_world.sql42
-rw-r--r--sql/old/3.1.3/04428_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.1.3/04536_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.1.3/04597_world_command.sql2
-rw-r--r--sql/old/3.1.3/04602_world_spell_bonus_data.sql4
-rw-r--r--sql/old/3.1.3/04696_world_spell_proc_event.sql4
-rw-r--r--sql/old/3.1.3/04762_8294_01_mangos_playercreateinfo_action.sql2
-rw-r--r--sql/old/3.1.3/04862_world_linked_spell.sql2
-rw-r--r--sql/old/3.1.3/04872_world_scripts.sql2
-rw-r--r--sql/old/3.1.3/04968_world_8361_spell_bonus_data.sql2
-rw-r--r--sql/old/3.1.3/05036_character_updates_dual_spec.sql4
-rw-r--r--sql/old/3.1.3/05155_world_scripts_dk.sql20
-rw-r--r--sql/old/3.1.3/05185_world_scripts_dk.sql4
-rw-r--r--sql/old/3.1.3/05354_characters_guild_bank_eventlog.sql2
-rw-r--r--sql/old/3.1.3/05354_characters_guild_eventlog.sql2
-rw-r--r--sql/old/3.1.3/05416_world_spell_dbc.sql2
-rw-r--r--sql/old/3.1.3/05445_world_spell_enchant_proc_data.sql2
-rw-r--r--sql/old/3.1.3/06420_world_script_waypoint.sql2
-rw-r--r--sql/old/3.1.3/06518_world_spell_proc_event.sql8
-rw-r--r--sql/old/3.1.3/06549_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.2.2a/06589_world_battleground_template.sql4
-rw-r--r--sql/old/3.2.2a/06665_world_creature_classlevelstats.sql2
-rw-r--r--sql/old/3.2.2a/06710_world_command.sql2
-rw-r--r--sql/old/3.2.2a/06710_world_trinity_string.sql2
-rw-r--r--sql/old/3.2.2a/06751_world_creature_classlevelstats.sql2
-rw-r--r--sql/old/3.2.2a/06859_world_script_texts.sql2
-rw-r--r--sql/old/3.2.2a/06932_characters_character_aura.sql2
-rw-r--r--sql/old/3.2.2a/06964_world_creature_classlevelstats.sql4
-rw-r--r--sql/old/3.2.2a/07040_world_spell_linked_spell.sql2
-rw-r--r--sql/old/3.3.2/07394_world_spell_bonus_data.sql2
-rw-r--r--sql/old/3.3.2/07465_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.2/07547_world_vehicle_accessory.sql6
-rw-r--r--sql/old/3.3.2/07604_characters_item_refund_instance.sql32
-rw-r--r--sql/old/3.3.2/07609_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.2/07611_characters_item_refund_instance.sql2
-rw-r--r--sql/old/3.3.2/07721_world_script_texts.sql4
-rw-r--r--sql/old/3.3.2/07748_world_scriptname.sql2
-rw-r--r--sql/old/3.3.2/07760_world_spell_group_stack_rules.sql2
-rw-r--r--sql/old/3.3.2/07797_world_scriptname.sql2
-rw-r--r--sql/old/3.3.3a/07906_characters_character_stats.sql2
-rw-r--r--sql/old/3.3.3a/07919_characters_worldstates.sql2
-rw-r--r--sql/old/3.3.3a/07982_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.3a/08052_world_script_texts.sql4
-rw-r--r--sql/old/3.3.3a/08197_world_spell_bonus_data.sql2
-rw-r--r--sql/old/3.3.3a/08214_world_command.sql2
-rw-r--r--sql/old/3.3.3a/08244_world_spell_dbc.sql2
-rw-r--r--sql/old/3.3.3a/08263_world_script_texts.sql2
-rw-r--r--sql/old/3.3.3a/08293_world_spell_dbc.sql2
-rw-r--r--sql/old/3.3.3a/08300_characters_worldstates.sql2
-rw-r--r--sql/old/3.3.3a/08348_world_script_texts.sql2
-rw-r--r--sql/old/3.3.3a/08358_world_spell_linked_spell.sql2
-rw-r--r--sql/old/3.3.3a/08373_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.3a/08397_world_command.sql2
-rw-r--r--sql/old/3.3.3a/08512_world_command.sql2
-rw-r--r--sql/old/3.3.3a/08586_world_command.sql2
-rw-r--r--sql/old/3.3.5a/09043_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09059_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09122_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09144_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09149_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09162_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09205_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09554_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/09555_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/09560_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/09712_world_spell_threat.sql2
-rw-r--r--sql/old/3.3.5a/09715_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/09722_world_exploration_basexp.sql2
-rw-r--r--sql/old/3.3.5a/09762_world_script_texts.sql14
-rw-r--r--sql/old/3.3.5a/09791_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/09835_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/09840_world_spell_linked_spell.sql2
-rw-r--r--sql/old/3.3.5a/09948_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/10029_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/10105_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/10213_world_script_texts.sql2
-rw-r--r--sql/old/3.3.5a/10215_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/10282_world_script_texts.sql2
-rw-r--r--sql/old/3.3.5a/10431_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.5a/10470_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.5a/10548_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.5a/10570_world_disables.sql2
-rw-r--r--sql/old/3.3.5a/10654_characters_item_instance.sql2
-rw-r--r--sql/old/3.3.5a/10903_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql6
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_addons.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_channels.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql36
-rw-r--r--sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql10
-rw-r--r--sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql2
-rw-r--r--sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql4
-rw-r--r--sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql10
-rw-r--r--sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql10
-rw-r--r--sql/old/3.3.5a/2011_02_04_03_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_05_04_world_game_event.sql4
-rw-r--r--sql/old/3.3.5a/2011_02_05_05_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_05_07_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_05_08_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_07_02_world_sai.sql12
-rw-r--r--sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql4
-rw-r--r--sql/old/3.3.5a/2011_02_15_00_world_sai.sql10
-rw-r--r--sql/old/3.3.5a/2011_02_15_01_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql14
-rw-r--r--sql/old/3.3.5a/2011_02_18_05_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_23_06_world_creatures.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_26_01_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql2
-rw-r--r--sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql10
-rw-r--r--sql/old/3.3.5a/2011_02_28_04_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_02_06_world_sai.sql88
-rw-r--r--sql/old/3.3.5a/2011_03_05_04_world_creatures.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql4
-rw-r--r--sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_08_00_world_sai.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_17_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_17_10_world_sai.sql42
-rw-r--r--sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_21_06_world_creature.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_22_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_22_01_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2011_03_23_00_world_conditions.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql4
-rw-r--r--sql/old/3.3.5a/2011_03_24_03_world_sai.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_24_04_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2011_03_26_00_world_conditions.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql4
-rw-r--r--sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql4
-rw-r--r--sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_27_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_27_02_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_03_28_00_world_misc.sql6
-rw-r--r--sql/old/3.3.5a/2011_03_29_00_world_creature.sql8
-rw-r--r--sql/old/3.3.5a/2011_04_03_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_03_05_world_sai.sql36
-rw-r--r--sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql4
-rw-r--r--sql/old/3.3.5a/2011_04_03_09_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql4
-rw-r--r--sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql6
-rw-r--r--sql/old/3.3.5a/2011_04_14_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_17_06_world_creature.sql10
-rw-r--r--sql/old/3.3.5a/2011_04_22_03_world_creatures.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql24
-rw-r--r--sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql2
-rw-r--r--sql/old/3.3.5a/2011_04_23_02_world_creatures.sql8
-rw-r--r--sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_07_02_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_07_04_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_07_05_world_sai.sql6
-rw-r--r--sql/old/3.3.5a/2011_05_07_06_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_18_07_world_sai.sql6
-rw-r--r--sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql8
-rw-r--r--sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql10
-rw-r--r--sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql8
-rw-r--r--sql/old/3.3.5a/2011_05_22_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_24_03_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2011_05_24_09_world_sai.sql22
-rw-r--r--sql/old/3.3.5a/2011_05_24_10_world_sai.sql12
-rw-r--r--sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql4
-rw-r--r--sql/old/3.3.5a/2011_05_30_01_world_creature.sql4
-rw-r--r--sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql4
-rw-r--r--sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_06_09_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_06_17_05_world_conditions.sql4
-rw-r--r--sql/old/3.3.5a/2011_06_17_16_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_06_17_19_world_misc.sql30
-rw-r--r--sql/old/3.3.5a/2011_06_19_07_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/2011_07_06_00_world_sai.sql18
-rw-r--r--sql/old/3.3.5a/2011_07_07_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_01_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql6
-rw-r--r--sql/old/3.3.5a/2011_08_06_01_world_misc.sql18
-rw-r--r--sql/old/3.3.5a/2011_08_06_04_world_misc.sql16
-rw-r--r--sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_07_02_world_spawns.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_07_03_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_09_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.5a/2011_08_24_00_world_game_event.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_07_01_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_11_01_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql4
-rw-r--r--sql/old/3.3.5a/2011_09_11_05_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_12_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_12_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_12_03_world_conditions.sql16
-rw-r--r--sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql4
-rw-r--r--sql/old/3.3.5a/2011_09_12_05_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_13_00_world_spells.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_14_01_world_quest.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_15_00_world_creature.sql4
-rw-r--r--sql/old/3.3.5a/2011_09_15_02_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_09_15_04_world_misc.sql16
-rw-r--r--sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_01_05_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_01_06_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_01_07_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_01_11_world_loot.sql8
-rw-r--r--sql/old/3.3.5a/2011_10_01_12_world_creatures.sql6
-rw-r--r--sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql4
-rw-r--r--sql/old/3.3.5a/2011_10_02_04_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_02_08_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_02_12_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_07_01_world_command.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_22_07_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2011_10_23_00_world_sai.sql14
-rw-r--r--sql/old/3.3.5a/2011_10_23_05_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql4
-rw-r--r--sql/old/3.3.5a/2011_10_23_07_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_10_23_08_world_sai.sql30
-rw-r--r--sql/old/3.3.5a/2011_10_29_05_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_11_01_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql4
-rw-r--r--sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql4
-rw-r--r--sql/old/3.3.5a/2011_12_17_00_world_creature.sql48
-rw-r--r--sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql2
-rw-r--r--sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql2
-rw-r--r--sql/old/3.3.5a/2011_12_18_04_world_misc.sql6
-rw-r--r--sql/old/3.3.5a/2011_12_18_06_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql14
-rw-r--r--sql/old/3.3.5a/2012_01_03_02_world_sai.sql8
-rw-r--r--sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql754
-rw-r--r--sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql4
-rw-r--r--sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_06_07_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_08_01_world_sai.sql14
-rw-r--r--sql/old/3.3.5a/2012_01_08_16_world_misc.sql8
-rw-r--r--sql/old/3.3.5a/2012_01_13_00_world_creature.sql4
-rw-r--r--sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql6
-rw-r--r--sql/old/3.3.5a/2012_01_13_02_world_sai.sql6
-rw-r--r--sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql10
-rw-r--r--sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql4
-rw-r--r--sql/old/3.3.5a/2012_01_19_08_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_21_00_world_creature.sql4
-rw-r--r--sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_24_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql2
-rw-r--r--sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_05_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_05_02_world_creature.sql6
-rw-r--r--sql/old/3.3.5a/2012_02_08_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_08_11_world_pool.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_08_14_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_08_16_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_11_06_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql4
-rw-r--r--sql/old/3.3.5a/2012_02_15_08_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_16_00_world_conditions.sql28
-rw-r--r--sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql8
-rw-r--r--sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_18_06_world_gossip.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_20_02_world_conditons.sql12
-rw-r--r--sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql4
-rw-r--r--sql/old/3.3.5a/2012_02_21_01_world_conditions.sql20
-rw-r--r--sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_25_02_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql4
-rw-r--r--sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql4
-rw-r--r--sql/old/3.3.5a/2012_03_10_00_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_03_11_00_world_sai.sql10
-rw-r--r--sql/old/3.3.5a/2012_03_20_00_world_gossip.sql22
-rw-r--r--sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql18
-rw-r--r--sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql2
-rw-r--r--sql/old/3.3.5a/2012_03_27_00_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql8
-rw-r--r--sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql4
-rw-r--r--sql/old/3.3.5a/2012_04_01_00_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_01_01_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_01_03_world_trainers.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql8
-rw-r--r--sql/old/3.3.5a/2012_04_13_01_world_misc.sql8
-rw-r--r--sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql24
-rw-r--r--sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql4
-rw-r--r--sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql6
-rw-r--r--sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_22_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql16
-rw-r--r--sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql2
-rw-r--r--sql/old/3.3.5a/2012_04_24_06_world_misc.sql4
-rw-r--r--sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql10
-rw-r--r--sql/old/3.3.5a/2012_05_01_00_world_creature.sql4
-rw-r--r--sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql6
-rw-r--r--sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_08_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_10_00_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_10_03_world_misc.sql6
-rw-r--r--sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_20_00_world_misc.sql4
-rw-r--r--sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql4
-rw-r--r--sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql4
-rw-r--r--sql/old/3.3.5a/2012_05_23_05_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_26_00_world_scripts.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_27_02_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_27_06_world_creature.sql6
-rw-r--r--sql/old/3.3.5a/2012_05_28_05_world_creature.sql6
-rw-r--r--sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_31_01_world_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_31_11_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_05_31_12_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql18
-rw-r--r--sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql8
-rw-r--r--sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql18
-rw-r--r--sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql214
-rw-r--r--sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql28
-rw-r--r--sql/old/3.3.5a/2012_06_03_01_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql20
-rw-r--r--sql/old/3.3.5a/2012_06_04_01_world_gossip.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_04_03_world_conditions.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_05_01_world_gossip.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_06_00_world_script.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_07_00_world_gossip.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_07_05_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_12_00_world_transport.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql14
-rw-r--r--sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql14
-rw-r--r--sql/old/3.3.5a/2012_06_16_01_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_17_02_world_creature.sql2
-rw-r--r--sql/old/3.3.5a/2012_06_19_02_world_misc.sql4
-rw-r--r--sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql2
-rw-r--r--sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql4
-rw-r--r--sql/old/3.3.5a/2012_07_29_08_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql12
-rw-r--r--sql/old/3.3.5a/2012_08_04_00_world_disables.sql2
-rw-r--r--sql/old/3.3.5a/2012_08_04_01_world_disables.sql70
-rw-r--r--sql/old/3.3.5a/2012_08_04_02_world_disables.sql40
-rw-r--r--sql/old/3.3.5a/2012_08_04_03_world_disables.sql72
-rw-r--r--sql/old/3.3.5a/2012_08_04_04_world_disables.sql62
-rw-r--r--sql/old/3.3.5a/2012_08_04_05_world_disables.sql52
-rw-r--r--sql/old/3.3.5a/2012_08_04_10_world_disables.sql4
-rw-r--r--sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql2
-rw-r--r--sql/old/3.3.5a/2012_08_10_06_world_creature.sql4
-rw-r--r--sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql2
-rw-r--r--sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql4
-rw-r--r--sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql2
-rw-r--r--sql/old/3.3.5a/2012_08_27_06_world_sai.sql4
-rw-r--r--sql/old/3.3.5a/2012_08_27_08_world_misc.sql2
-rw-r--r--sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql2
-rw-r--r--sql/old/3.3.5a/2012_08_31_00_world_command.sql2
-rw-r--r--sql/old/3.3.5a/2012_09_10_00_world_game_event.sql4
-rw-r--r--sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql2
-rw-r--r--sql/updates/characters/2012_11_18_00_character_calendar.sql26
-rw-r--r--sql/updates/world/2012_09_16_01_world_creature_template_addon.sql2
-rw-r--r--sql/updates/world/2012_09_17_02_world_misc.sql2
-rw-r--r--sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql4
-rw-r--r--sql/updates/world/2012_09_24_02_world_misc.sql2
-rw-r--r--sql/updates/world/2012_09_24_03_world_misc.sql4
-rw-r--r--sql/updates/world/2012_09_26_00_world_misc.sql20
-rw-r--r--sql/updates/world/2012_09_27_01_world_custodian_of_time.sql4
-rw-r--r--sql/updates/world/2012_10_02_00_world_oculus.sql2
-rw-r--r--sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql2
-rw-r--r--sql/updates/world/2012_10_10_00_world_battleground_template.sql2
-rw-r--r--sql/updates/world/2012_10_11_00_world_gameobject.sql88
-rw-r--r--sql/updates/world/2012_10_25_00_world_childrens_week.sql8
-rw-r--r--sql/updates/world/2012_11_07_00_world_misc.sql36
-rw-r--r--sql/updates/world/2012_11_11_00_world_sai.sql113
-rw-r--r--sql/updates/world/2012_11_11_01_world_quest_template.sql2
-rw-r--r--sql/updates/world/2012_11_11_02_world_gossip_menu.sql109
-rw-r--r--sql/updates/world/2012_11_11_03_world_gossip_menu.sql280
-rw-r--r--sql/updates/world/2012_11_12_00_world_quest_template.sql3
-rw-r--r--sql/updates/world/2012_11_12_01_world_misc.sql13
-rw-r--r--sql/updates/world/2012_11_12_02_world_quest_template.sql4
-rw-r--r--sql/updates/world/2012_11_12_03_world_misc.sql106
-rw-r--r--sql/updates/world/2012_11_13_00_world_waypoints.sql35
-rw-r--r--sql/updates/world/2012_11_13_01_world_misc.sql120
-rw-r--r--sql/updates/world/2012_11_13_02_world_creature.sql3
-rw-r--r--sql/updates/world/2012_11_13_03_world_gameevent.sql2
-rw-r--r--sql/updates/world/2012_11_13_04_world_gameeventquest.sql3
-rw-r--r--sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql4
-rw-r--r--sql/updates/world/2012_11_13_06_world_trinity_string.sql2
-rw-r--r--sql/updates/world/2012_11_14_00_world_sai.sql16
-rw-r--r--sql/updates/world/2012_11_14_00_world_various_fixes.sql307
-rw-r--r--sql/updates/world/2012_11_14_02_world_battleground_template.sql3
-rw-r--r--sql/updates/world/2012_11_16_00_world_utgarde.sql (renamed from sql/updates/world/2012_09_22_00_world_utgarde.sql)14
-rw-r--r--sql/updates/world/2012_11_16_01_world_utgarde.sql39
-rw-r--r--sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql1
-rw-r--r--sql/updates/world/2012_11_17_00_world_various_fixes.sql834
-rw-r--r--sql/updates/world/2012_11_18_00_world_ormorok.sql56
-rw-r--r--sql/updates/world/2012_11_18_01_world_creature_text.sql15
-rw-r--r--sql/updates/world/2012_11_18_01_world_gameobject.sql3
-rw-r--r--sql/updates/world/2012_11_18_02_world_toc.sql150
-rw-r--r--sql/updates/world/2012_11_19_00_world_various_fixes.sql539
-rw-r--r--sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql4740
-rw-r--r--sql/updates/world/2012_11_19_02_world_misc.sql6
-rw-r--r--sql/updates/world/2012_11_19_03_world_ysera.sql71
-rw-r--r--sql/updates/world/2012_11_20_00_world_creature_text.sql427
-rw-r--r--sql/updates/world/2012_11_21_00_world_sai.sql169
-rw-r--r--sql/updates/world/2012_11_24_00_world_creature_text.sql969
-rw-r--r--src/server/authserver/CMakeLists.txt40
-rwxr-xr-xsrc/server/authserver/Server/AuthSocket.cpp6
-rwxr-xr-xsrc/server/authserver/Server/RealmSocket.cpp2
-rwxr-xr-xsrc/server/authserver/Server/RealmSocket.h2
-rw-r--r--src/server/collision/CMakeLists.txt29
-rw-r--r--src/server/collision/Models/GameObjectModel.cpp1
-rw-r--r--src/server/collision/RegularGrid.h2
-rwxr-xr-xsrc/server/game/AI/CoreAI/CombatAI.cpp1
-rw-r--r--src/server/game/AI/CoreAI/GameObjectAI.h10
-rwxr-xr-xsrc/server/game/AI/CoreAI/PetAI.cpp76
-rwxr-xr-xsrc/server/game/AI/CoreAI/UnitAI.h7
-rwxr-xr-xsrc/server/game/AI/EventAI/CreatureEventAI.cpp42
-rwxr-xr-xsrc/server/game/AI/EventAI/CreatureEventAIMgr.cpp55
-rwxr-xr-xsrc/server/game/AI/EventAI/CreatureEventAIMgr.h3
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp10
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.h2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp1
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp1
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedGossip.h1
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp4
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h5
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp45
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.h1
-rwxr-xr-xsrc/server/game/Accounts/AccountMgr.cpp1
-rwxr-xr-xsrc/server/game/Achievements/AchievementMgr.cpp39
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp6
-rw-r--r--src/server/game/Battlefield/Battlefield.h12
-rw-r--r--src/server/game/Battlefield/BattlefieldHandler.cpp1
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.cpp14
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.h17
-rwxr-xr-xsrc/server/game/Battlegrounds/ArenaTeam.cpp20
-rwxr-xr-xsrc/server/game/Battlegrounds/ArenaTeam.h2
-rw-r--r--src/server/game/Battlegrounds/ArenaTeamMgr.cpp1
-rwxr-xr-xsrc/server/game/Battlegrounds/Battleground.cpp55
-rwxr-xr-xsrc/server/game/Battlegrounds/Battleground.h40
-rwxr-xr-xsrc/server/game/Battlegrounds/BattlegroundMgr.cpp19
-rwxr-xr-xsrc/server/game/Battlegrounds/BattlegroundQueue.cpp14
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundAB.cpp20
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundAB.h2
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundAV.cpp18
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundAV.h4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp5
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundEY.cpp10
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundEY.h2
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundIC.cpp1
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundIC.h2
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundSA.cpp1
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundWS.cpp9
-rwxr-xr-xsrc/server/game/Battlegrounds/Zones/BattlegroundWS.h2
-rw-r--r--src/server/game/CMakeLists.txt29
-rwxr-xr-xsrc/server/game/Calendar/Calendar.cpp99
-rwxr-xr-xsrc/server/game/Calendar/Calendar.h189
-rw-r--r--src/server/game/Calendar/CalendarMgr.cpp896
-rw-r--r--src/server/game/Calendar/CalendarMgr.h317
-rwxr-xr-xsrc/server/game/Chat/Channels/Channel.cpp797
-rwxr-xr-xsrc/server/game/Chat/Channels/Channel.h147
-rwxr-xr-xsrc/server/game/Chat/Channels/ChannelMgr.cpp17
-rwxr-xr-xsrc/server/game/Chat/Chat.cpp5
-rwxr-xr-xsrc/server/game/Chat/Chat.h11
-rw-r--r--src/server/game/Chat/ChatLink.cpp101
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.cpp13
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.h5
-rwxr-xr-xsrc/server/game/Conditions/DisableMgr.cpp1
-rwxr-xr-xsrc/server/game/DataStores/DBCEnums.h280
-rwxr-xr-xsrc/server/game/DungeonFinding/LFG.h2
-rw-r--r--src/server/game/DungeonFinding/LFGGroupData.cpp2
-rwxr-xr-xsrc/server/game/DungeonFinding/LFGMgr.cpp22
-rwxr-xr-xsrc/server/game/DungeonFinding/LFGMgr.h12
-rw-r--r--src/server/game/DungeonFinding/LFGPlayerData.cpp2
-rw-r--r--src/server/game/DungeonFinding/LFGQueue.cpp4
-rw-r--r--src/server/game/DungeonFinding/LFGQueue.h2
-rw-r--r--src/server/game/DungeonFinding/LFGScripts.cpp14
-rwxr-xr-xsrc/server/game/Entities/Creature/Creature.cpp78
-rwxr-xr-xsrc/server/game/Entities/Creature/Creature.h1
-rwxr-xr-xsrc/server/game/Entities/Creature/TemporarySummon.cpp2
-rwxr-xr-xsrc/server/game/Entities/Item/Container/Bag.cpp1
-rwxr-xr-xsrc/server/game/Entities/Item/Item.cpp2
-rwxr-xr-xsrc/server/game/Entities/Item/ItemEnchantmentMgr.cpp1
-rwxr-xr-xsrc/server/game/Entities/Object/Object.cpp115
-rwxr-xr-xsrc/server/game/Entities/Pet/Pet.cpp5
-rwxr-xr-xsrc/server/game/Entities/Pet/Pet.h95
-rw-r--r--src/server/game/Entities/Pet/PetDefines.h80
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp294
-rwxr-xr-xsrc/server/game/Entities/Player/Player.h71
-rwxr-xr-xsrc/server/game/Entities/Totem/Totem.cpp5
-rwxr-xr-xsrc/server/game/Entities/Transport/Transport.cpp1
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp72
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.h21
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp1
-rwxr-xr-xsrc/server/game/Globals/ObjectAccessor.cpp32
-rwxr-xr-xsrc/server/game/Globals/ObjectAccessor.h7
-rwxr-xr-xsrc/server/game/Globals/ObjectMgr.cpp281
-rwxr-xr-xsrc/server/game/Globals/ObjectMgr.h63
-rwxr-xr-xsrc/server/game/Grids/Notifiers/GridNotifiers.h1
-rwxr-xr-xsrc/server/game/Grids/Notifiers/GridNotifiersImpl.h1
-rwxr-xr-xsrc/server/game/Groups/Group.h6
-rw-r--r--src/server/game/Groups/GroupMgr.cpp2
-rwxr-xr-xsrc/server/game/Guilds/Guild.cpp133
-rwxr-xr-xsrc/server/game/Guilds/Guild.h2
-rwxr-xr-xsrc/server/game/Handlers/ArenaTeamHandler.cpp1
-rwxr-xr-xsrc/server/game/Handlers/AuctionHouseHandler.cpp1
-rwxr-xr-xsrc/server/game/Handlers/BattleGroundHandler.cpp159
-rwxr-xr-xsrc/server/game/Handlers/CalendarHandler.cpp886
-rwxr-xr-xsrc/server/game/Handlers/ChannelHandler.cpp303
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp38
-rwxr-xr-xsrc/server/game/Handlers/ChatHandler.cpp6
-rwxr-xr-xsrc/server/game/Handlers/CombatHandler.cpp2
-rwxr-xr-xsrc/server/game/Handlers/GroupHandler.cpp15
-rwxr-xr-xsrc/server/game/Handlers/LFGHandler.cpp246
-rwxr-xr-xsrc/server/game/Handlers/LootHandler.cpp13
-rwxr-xr-xsrc/server/game/Handlers/MailHandler.cpp6
-rwxr-xr-xsrc/server/game/Handlers/MiscHandler.cpp40
-rwxr-xr-xsrc/server/game/Handlers/NPCHandler.cpp1
-rwxr-xr-xsrc/server/game/Handlers/PetHandler.cpp13
-rwxr-xr-xsrc/server/game/Handlers/SkillHandler.cpp7
-rwxr-xr-xsrc/server/game/Handlers/SpellHandler.cpp1
-rwxr-xr-xsrc/server/game/Handlers/TicketHandler.cpp9
-rwxr-xr-xsrc/server/game/Instances/InstanceScript.cpp15
-rwxr-xr-xsrc/server/game/Loot/LootMgr.cpp1
-rwxr-xr-xsrc/server/game/Mails/Mail.cpp10
-rwxr-xr-xsrc/server/game/Mails/Mail.h4
-rwxr-xr-xsrc/server/game/Maps/Map.cpp56
-rwxr-xr-xsrc/server/game/Maps/Map.h1
-rwxr-xr-xsrc/server/game/Maps/MapInstanced.cpp3
-rwxr-xr-xsrc/server/game/Maps/MapManager.cpp5
-rw-r--r--src/server/game/Maps/MapUpdater.cpp2
-rwxr-xr-xsrc/server/game/Maps/ZoneScript.h15
-rwxr-xr-xsrc/server/game/Miscellaneous/Formulas.h1
-rwxr-xr-xsrc/server/game/Miscellaneous/Language.h4
-rwxr-xr-xsrc/server/game/Miscellaneous/SharedDefines.h207
-rw-r--r--src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp1
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp13
-rw-r--r--src/server/game/Movement/Spline/MoveSpline.cpp2
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.cpp2
-rwxr-xr-xsrc/server/game/Reputation/ReputationMgr.cpp1
-rwxr-xr-xsrc/server/game/Scripting/MapScripts.cpp13
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.cpp6
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.h3
-rwxr-xr-xsrc/server/game/Server/Protocol/Opcodes.cpp2
-rwxr-xr-xsrc/server/game/Server/WorldSession.cpp17
-rwxr-xr-xsrc/server/game/Server/WorldSession.h50
-rwxr-xr-xsrc/server/game/Server/WorldSocket.cpp19
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp2
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp3
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp1
-rw-r--r--src/server/game/Spells/SpellInfo.cpp2
-rwxr-xr-xsrc/server/game/Spells/SpellMgr.cpp12
-rwxr-xr-xsrc/server/game/Texts/CreatureTextMgr.cpp59
-rwxr-xr-xsrc/server/game/Texts/CreatureTextMgr.h13
-rwxr-xr-xsrc/server/game/Tickets/TicketMgr.cpp3
-rw-r--r--src/server/game/Tools/PlayerDump.cpp1
-rw-r--r--src/server/game/Warden/Warden.cpp21
-rw-r--r--src/server/game/Warden/WardenMac.cpp19
-rwxr-xr-xsrc/server/game/Weather/Weather.cpp1
-rwxr-xr-xsrc/server/game/Weather/WeatherMgr.cpp3
-rwxr-xr-xsrc/server/game/World/World.cpp3
-rw-r--r--src/server/game/World/World.h35
-rw-r--r--src/server/scripts/CMakeLists.txt28
-rw-r--r--src/server/scripts/Commands/cs_account.cpp4
-rw-r--r--src/server/scripts/Commands/cs_achievement.cpp4
-rw-r--r--src/server/scripts/Commands/cs_ban.cpp6
-rw-r--r--src/server/scripts/Commands/cs_cast.cpp3
-rw-r--r--src/server/scripts/Commands/cs_character.cpp12
-rw-r--r--src/server/scripts/Commands/cs_cheat.cpp14
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp1
-rw-r--r--src/server/scripts/Commands/cs_disable.cpp7
-rw-r--r--src/server/scripts/Commands/cs_event.cpp6
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp3
-rw-r--r--src/server/scripts/Commands/cs_go.cpp2
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp3
-rw-r--r--src/server/scripts/Commands/cs_guild.cpp3
-rw-r--r--src/server/scripts/Commands/cs_honor.cpp6
-rw-r--r--src/server/scripts/Commands/cs_instance.cpp1
-rw-r--r--src/server/scripts/Commands/cs_learn.cpp3
-rw-r--r--src/server/scripts/Commands/cs_lfg.cpp2
-rw-r--r--src/server/scripts/Commands/cs_list.cpp2
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp104
-rw-r--r--src/server/scripts/Commands/cs_message.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp14
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp43
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp3
-rw-r--r--src/server/scripts/Commands/cs_quest.cpp6
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp32
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp12
-rw-r--r--src/server/scripts/Commands/cs_server.cpp6
-rw-r--r--src/server/scripts/Commands/cs_tele.cpp12
-rw-r--r--src/server/scripts/Commands/cs_ticket.cpp7
-rw-r--r--src/server/scripts/Commands/cs_titles.cpp6
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp187
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp9
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp56
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp21
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp11
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp52
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp66
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp35
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp82
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp106
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp69
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp281
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp28
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp118
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp70
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp103
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h42
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp40
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp541
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp303
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp38
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp25
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp17
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp86
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp91
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp110
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp95
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp11
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/arathi_highlands.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/blasted_lands.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/burning_steppes.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/duskwood.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/eversong_woods.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/ghostlands.cpp38
-rw-r--r--src/server/scripts/EasternKingdoms/hinterlands.cpp51
-rw-r--r--src/server/scripts/EasternKingdoms/ironforge.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/loch_modan.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/redridge_mountains.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/silvermoon_city.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/silverpine_forest.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/stormwind_city.cpp61
-rw-r--r--src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp26
-rw-r--r--src/server/scripts/EasternKingdoms/tirisfal_glades.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/undercity.cpp9
-rw-r--r--src/server/scripts/EasternKingdoms/western_plaguelands.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/westfall.cpp41
-rw-r--r--src/server/scripts/EasternKingdoms/wetlands.cpp1
-rw-r--r--src/server/scripts/Events/childrens_week.cpp1
-rw-r--r--src/server/scripts/Events/event.cpp2
-rw-r--r--src/server/scripts/Examples/example_creature.cpp1
-rw-r--r--src/server/scripts/Examples/example_escort.cpp1
-rw-r--r--src/server/scripts/Examples/example_gossip_codebox.cpp1
-rw-r--r--src/server/scripts/Examples/example_misc.cpp1
-rw-r--r--src/server/scripts/Examples/example_spell.cpp1
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp1
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp1
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp5
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp6
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp15
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp283
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp18
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h23
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp1
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp1
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp4
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp4
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp1
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp6
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp1
-rw-r--r--src/server/scripts/Kalimdor/ashenvale.cpp1
-rw-r--r--src/server/scripts/Kalimdor/azshara.cpp15
-rw-r--r--src/server/scripts/Kalimdor/bloodmyst_isle.cpp1
-rw-r--r--src/server/scripts/Kalimdor/darkshore.cpp2
-rw-r--r--src/server/scripts/Kalimdor/desolace.cpp2
-rw-r--r--src/server/scripts/Kalimdor/durotar.cpp1
-rw-r--r--src/server/scripts/Kalimdor/dustwallow_marsh.cpp2
-rw-r--r--src/server/scripts/Kalimdor/felwood.cpp1
-rw-r--r--src/server/scripts/Kalimdor/feralas.cpp2
-rw-r--r--src/server/scripts/Kalimdor/moonglade.cpp2
-rw-r--r--src/server/scripts/Kalimdor/mulgore.cpp2
-rw-r--r--src/server/scripts/Kalimdor/orgrimmar.cpp1
-rw-r--r--src/server/scripts/Kalimdor/silithus.cpp1
-rw-r--r--src/server/scripts/Kalimdor/stonetalon_mountains.cpp1
-rw-r--r--src/server/scripts/Kalimdor/tanaris.cpp2
-rw-r--r--src/server/scripts/Kalimdor/teldrassil.cpp1
-rw-r--r--src/server/scripts/Kalimdor/the_barrens.cpp2
-rw-r--r--src/server/scripts/Kalimdor/thousand_needles.cpp1
-rw-r--r--src/server/scripts/Kalimdor/thunder_bluff.cpp1
-rw-r--r--src/server/scripts/Kalimdor/ungoro_crater.cpp2
-rw-r--r--src/server/scripts/Kalimdor/winterspring.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp4
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp108
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp8
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp1
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp1
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp5
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp1
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp1011
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp3416
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp772
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp1530
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp628
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp365
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp678
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h50
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp2
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp2
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp1
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp2
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp1
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp5
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp1
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp5
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp1
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp1
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp5
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp3
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp2
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp2
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp3
-rw-r--r--src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp6
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp1
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp3
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp1
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp3
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp22
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp4
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h1
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp1
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp7
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp3
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp1
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp3
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp1
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp4
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp3
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp3
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp1
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp376
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp5
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp1
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp5
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp1
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp1
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp7
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp5
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp5
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp1
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp5
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp117
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp3
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp4
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp1
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp6
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp1
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp3
-rw-r--r--src/server/scripts/Northrend/crystalsong_forest.cpp3
-rw-r--r--src/server/scripts/Northrend/dalaran.cpp2
-rw-r--r--src/server/scripts/Northrend/dragonblight.cpp1
-rw-r--r--src/server/scripts/Northrend/grizzly_hills.cpp2
-rw-r--r--src/server/scripts/Northrend/howling_fjord.cpp1
-rw-r--r--src/server/scripts/Northrend/icecrown.cpp1
-rw-r--r--src/server/scripts/Northrend/isle_of_conquest.cpp1
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp1
-rw-r--r--src/server/scripts/Northrend/storm_peaks.cpp2
-rw-r--r--src/server/scripts/Northrend/wintergrasp.cpp3
-rw-r--r--src/server/scripts/Northrend/zuldrak.cpp2
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp1
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp1
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp1
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp1
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp4
-rw-r--r--src/server/scripts/Outland/BlackTemple/black_temple.cpp3
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp1
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp5
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp3
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp1
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp6
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp1
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp4
-rw-r--r--src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp1
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp1
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp1
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp7
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp1
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp4
-rw-r--r--src/server/scripts/Outland/hellfire_peninsula.cpp2
-rw-r--r--src/server/scripts/Outland/nagrand.cpp2
-rw-r--r--src/server/scripts/Outland/netherstorm.cpp1
-rw-r--r--src/server/scripts/Outland/shadowmoon_valley.cpp2
-rw-r--r--src/server/scripts/Outland/shattrath_city.cpp2
-rw-r--r--src/server/scripts/Outland/terokkar_forest.cpp2
-rw-r--r--src/server/scripts/Outland/zangarmarsh.cpp2
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp1
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp1
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp11
-rw-r--r--src/server/scripts/Spells/spell_holiday.cpp1
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp1
-rw-r--r--src/server/scripts/Spells/spell_item.cpp2
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp2
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp2
-rw-r--r--src/server/scripts/Spells/spell_pet.cpp2
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp1
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp1
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp1
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp1
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp1
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp1
-rwxr-xr-xsrc/server/scripts/World/achievement_scripts.cpp2
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp1
-rw-r--r--src/server/scripts/World/boss_emerald_dragons.cpp310
-rw-r--r--src/server/scripts/World/go_scripts.cpp2
-rw-r--r--src/server/scripts/World/guards.cpp2
-rw-r--r--src/server/scripts/World/item_scripts.cpp1
-rw-r--r--src/server/scripts/World/npc_innkeeper.cpp2
-rw-r--r--src/server/scripts/World/npc_professions.cpp3
-rw-r--r--src/server/scripts/World/npc_taxi.cpp10
-rw-r--r--src/server/scripts/World/npcs_special.cpp3
-rw-r--r--src/server/shared/AutoPtr.h52
-rw-r--r--src/server/shared/CMakeLists.txt24
-rwxr-xr-xsrc/server/shared/Cryptography/BigNumber.cpp4
-rwxr-xr-xsrc/server/shared/Cryptography/BigNumber.h4
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.cpp6
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.h5
-rwxr-xr-xsrc/server/shared/Database/PreparedStatement.h6
-rwxr-xr-xsrc/server/shared/Database/QueryResult.h1
-rwxr-xr-xsrc/server/shared/Dynamic/LinkedReference/Reference.h1
-rwxr-xr-xsrc/server/shared/Packets/ByteBuffer.h2
-rw-r--r--src/server/shared/Threading/DelayExecutor.cpp2
-rw-r--r--src/server/shared/Threading/DelayExecutor.h2
-rw-r--r--src/server/worldserver/CMakeLists.txt34
1062 files changed, 22806 insertions, 12328 deletions
diff --git a/.gitignore b/.gitignore
index ace64225d0c..7dbed8f3ea2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,10 +7,12 @@ build*/
*~
.hg/
*.kdev*
+.DS_Store
+CMakeLists.txt.user
*.bak
*.patch
*.diff
*.REMOTE.*
*.BACKUP.*
*.BASE.*
-*.LOCAL.* \ No newline at end of file
+*.LOCAL.*
diff --git a/cmake/compiler/clang/settings.cmake b/cmake/compiler/clang/settings.cmake
new file mode 100644
index 00000000000..add9fa8694d
--- /dev/null
+++ b/cmake/compiler/clang/settings.cmake
@@ -0,0 +1,15 @@
+# Set build-directive (used in core to tell which buildtype we used)
+add_definitions(-D_BUILD_DIRECTIVE='"$(CONFIGURATION)"')
+
+if(WITH_WARNINGS)
+ set(WARNING_FLAGS "-W -Wall -Wextra -Wwrite-strings -Winit-self -Woverloaded-virtual -Wfatal-errors")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}")
+ message(STATUS "Clang: All warnings enabled")
+endif()
+
+if(WITH_COREDEBUG)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
+ message(STATUS "Clang: Debug-flags set (-g3)")
+endif()
diff --git a/cmake/compiler/gcc/settings.cmake b/cmake/compiler/gcc/settings.cmake
index 8247831fdd8..d74fc39031b 100644
--- a/cmake/compiler/gcc/settings.cmake
+++ b/cmake/compiler/gcc/settings.cmake
@@ -1,24 +1,24 @@
# Set build-directive (used in core to tell which buildtype we used)
add_definitions(-D_BUILD_DIRECTIVE='"${CMAKE_BUILD_TYPE}"')
-add_definitions(-fno-delete-null-pointer-checks)
-
if(PLATFORM EQUAL 32)
# Required on 32-bit systems to enable SSE2 (standard on x64)
- add_definitions(-msse2 -mfpmath=sse)
+ set(SSE_FLAGS "-msse2 -mfpmath=sse")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SSE_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SSE_FLAGS}")
endif()
add_definitions(-DHAVE_SSE2 -D__SSE2__)
-message(STATUS "GCC: SSE2 flags forced")
+message(STATUS "GCC: SFMT enabled, SSE2 flags forced")
if( WITH_WARNINGS )
- add_definitions(-Wall -Wfatal-errors -Wextra)
+ set(WARNING_FLAGS "-W -Wall -Wextra -Wwrite-strings -Winit-self -Woverloaded-virtual -Winvalid-pch -Wfatal-errors")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}")
message(STATUS "GCC: All warnings enabled")
-else()
- add_definitions(--no-warnings)
- message(STATUS "GCC: All warnings disabled")
endif()
if( WITH_COREDEBUG )
- add_definitions(-ggdb3)
- message(STATUS "GCC: Debug-flags set (-ggdb3)")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
+ message(STATUS "GCC: Debug-flags set (-g3)")
endif()
diff --git a/cmake/compiler/xcode/settings.cmake b/cmake/compiler/xcode/settings.cmake
deleted file mode 100644
index b2f73e71310..00000000000
--- a/cmake/compiler/xcode/settings.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-# Set build-directive (used in core to tell which buildtype we used)
-add_definitions(-D_BUILD_DIRECTIVE='"$(CONFIGURATION)"')
diff --git a/cmake/macros/FindPCHSupport.cmake b/cmake/macros/FindPCHSupport.cmake
index 39a96b6cadb..a93182cd8f6 100644
--- a/cmake/macros/FindPCHSupport.cmake
+++ b/cmake/macros/FindPCHSupport.cmake
@@ -1,315 +1,104 @@
-# - Try to find precompiled headers support for GCC 3.4 and 4.x (and MSVC)
-# Once done this will define:
-#
-# Variable:
-# PCHSupport_FOUND
-#
-# Macro:
-# ADD_PRECOMPILED_HEADER _targetName _input _dowarn
-# ADD_PRECOMPILED_HEADER_TO_TARGET _targetName _input _pch_output_to_use _dowarn
-# ADD_NATIVE_PRECOMPILED_HEADER _targetName _input _dowarn
-# GET_NATIVE_PRECOMPILED_HEADER _targetName _input
+FUNCTION(GET_COMMON_PCH_PARAMS PCH_HEADER PCH_FE INCLUDE_PREFIX)
+ GET_FILENAME_COMPONENT(PCH_HEADER_N ${PCH_HEADER} NAME)
+ GET_DIRECTORY_PROPERTY(TARGET_INCLUDES INCLUDE_DIRECTORIES)
+
+ FOREACH(ITEM ${TARGET_INCLUDES})
+ LIST(APPEND INCLUDE_FLAGS_LIST "${INCLUDE_PREFIX}${ITEM} ")
+ ENDFOREACH(ITEM)
+
+ SET(PCH_HEADER_NAME ${PCH_HEADER_N} PARENT_SCOPE)
+ SET(PCH_HEADER_OUT ${CMAKE_CURRENT_BINARY_DIR}/${PCH_HEADER_N}.${PCH_FE} PARENT_SCOPE)
+ SET(INCLUDE_FLAGS ${INCLUDE_FLAGS_LIST} PARENT_SCOPE)
+ENDFUNCTION(GET_COMMON_PCH_PARAMS)
+
+FUNCTION(GENERATE_CXX_PCH_COMMAND TARGET_NAME INCLUDE_FLAGS IN PCH_SRC OUT)
+ IF (CMAKE_BUILD_TYPE)
+ STRING(TOUPPER _${CMAKE_BUILD_TYPE} CURRENT_BUILD_TYPE)
+ ENDIF ()
+
+ SET(COMPILE_FLAGS ${CMAKE_CXX_FLAGS${CURRENT_BUILD_TYPE}})
+ LIST(APPEND COMPILE_FLAGS ${CMAKE_CXX_FLAGS})
+
+ IF ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
+ IF (NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
+ LIST(APPEND COMPILE_FLAGS "-arch ${CMAKE_OSX_ARCHITECTURES}")
+ ENDIF ()
+ IF (NOT "${CMAKE_OSX_SYSROOT}" STREQUAL "")
+ LIST(APPEND COMPILE_FLAGS "-isysroot ${CMAKE_OSX_SYSROOT}")
+ ENDIF ()
+ IF (NOT "${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "")
+ LIST(APPEND COMPILE_FLAGS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
+ ENDIF ()
+ ENDIF ()
+
+ GET_DIRECTORY_PROPERTY(TARGET_DEFINITIONS COMPILE_DEFINITIONS)
+ FOREACH(ITEM ${TARGET_DEFINITIONS})
+ LIST(APPEND DEFINITION_FLAGS "-D${ITEM} ")
+ ENDFOREACH(ITEM)
+
+ SEPARATE_ARGUMENTS(COMPILE_FLAGS)
+ SEPARATE_ARGUMENTS(INCLUDE_FLAGS)
+ SEPARATE_ARGUMENTS(DEFINITION_FLAGS)
+
+ GET_FILENAME_COMPONENT(PCH_SRC_N ${PCH_SRC} NAME)
+ ADD_LIBRARY(${PCH_SRC_N}_dephelp MODULE ${PCH_SRC})
-IF(CMAKE_COMPILER_IS_GNUCXX)
-
- EXEC_PROGRAM(
- ${CMAKE_CXX_COMPILER}
- ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
- OUTPUT_VARIABLE gcc_compiler_version
- )
- #MESSAGE("GCC Version: ${gcc_compiler_version}")
- IF(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]")
- SET(PCHSupport_FOUND TRUE)
- ELSE(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]")
- IF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]")
- SET(PCHSupport_FOUND TRUE)
- ENDIF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]")
- ENDIF(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]")
-
- SET(_PCH_include_prefix "-I")
-
-ELSE(CMAKE_COMPILER_IS_GNUCXX)
-
- IF(WIN32)
- SET(PCHSupport_FOUND TRUE) # for experimental msvc support
- SET(_PCH_include_prefix "/I")
- ELSE(WIN32)
- SET(PCHSupport_FOUND FALSE)
- ENDIF(WIN32)
-
-ENDIF(CMAKE_COMPILER_IS_GNUCXX)
-
-MACRO(_PCH_GET_COMPILE_FLAGS _out_compile_flags)
-
- STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name)
- SET(${_out_compile_flags} ${${_flags_var_name}} )
-
- IF(CMAKE_COMPILER_IS_GNUCXX)
- GET_TARGET_PROPERTY(_targetType ${_PCH_current_target} TYPE)
- IF(${_targetType} STREQUAL SHARED_LIBRARY AND NOT WIN32)
- LIST(APPEND ${_out_compile_flags} -fPIC)
- ENDIF()
-
- ELSE(CMAKE_COMPILER_IS_GNUCXX)
- ## TODO ... ? or does it work out of the box
- ENDIF(CMAKE_COMPILER_IS_GNUCXX)
-
- GET_DIRECTORY_PROPERTY(DIRINC INCLUDE_DIRECTORIES )
- FOREACH(item ${DIRINC})
- LIST(APPEND ${_out_compile_flags} "${_PCH_include_prefix}${item}")
- ENDFOREACH(item)
-
- GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS)
- GET_DIRECTORY_PROPERTY(_global_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
- #MESSAGE("_directory_flags ${_directory_flags} ${_global_definitions}" )
- LIST(APPEND ${_out_compile_flags} ${_directory_flags})
- LIST(APPEND ${_out_compile_flags} ${_global_definitions})
- LIST(APPEND ${_out_compile_flags} ${CMAKE_CXX_FLAGS} )
-
- SEPARATE_ARGUMENTS(${_out_compile_flags})
-
-ENDMACRO(_PCH_GET_COMPILE_FLAGS)
-
-MACRO(_PCH_WRITE_PCHDEP_CXX _targetName _include_file _dephelp)
-
- SET(${_dephelp} ${CMAKE_CURRENT_BINARY_DIR}/${_targetName}_pch_dephelp.cxx)
- FILE(WRITE ${${_dephelp}}
-"#include \"${_include_file}\"
-int testfunction()
-{
- return 0;
-}
-"
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${OUT}
+ COMMAND ${CMAKE_CXX_COMPILER}
+ ARGS ${DEFINITION_FLAGS} ${COMPILE_FLAGS} ${INCLUDE_FLAGS} -x c++-header ${IN} -o ${OUT}
+ DEPENDS ${IN} ${PCH_SRC_N}_dephelp
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
-ENDMACRO(_PCH_WRITE_PCHDEP_CXX )
-
-MACRO(_PCH_GET_COMPILE_COMMAND out_command _input _output)
-
- FILE(TO_NATIVE_PATH ${_input} _native_input)
- FILE(TO_NATIVE_PATH ${_output} _native_output)
-
-
- IF(CMAKE_COMPILER_IS_GNUCXX)
- IF(CMAKE_CXX_COMPILER_ARG1)
- # remove leading space in compiler argument
- STRING(REGEX REPLACE "^ +" "" pchsupport_compiler_cxx_arg1 ${CMAKE_CXX_COMPILER_ARG1})
-
- SET(${out_command}
- ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input}
- )
- ELSE(CMAKE_CXX_COMPILER_ARG1)
- SET(${out_command}
- ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input}
- )
- ENDIF(CMAKE_CXX_COMPILER_ARG1)
- ELSE(CMAKE_COMPILER_IS_GNUCXX)
-
- SET(_dummy_str "#include <${_input}>")
- FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch_dummy.cpp ${_dummy_str})
-
- SET(${out_command}
- ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} /c /Fp${_native_output} /Yc${_native_input} pch_dummy.cpp
- )
- #/out:${_output}
-
- ENDIF(CMAKE_COMPILER_IS_GNUCXX)
-
-ENDMACRO(_PCH_GET_COMPILE_COMMAND )
-
-
-
-MACRO(_PCH_GET_TARGET_COMPILE_FLAGS _cflags _header_name _pch_path _dowarn )
-
- FILE(TO_NATIVE_PATH ${_pch_path} _native_pch_path)
-
- IF(CMAKE_COMPILER_IS_GNUCXX)
- # for use with distcc and gcc >4.0.1 if preprocessed files are accessible
- # on all remote machines set
- # PCH_ADDITIONAL_COMPILER_FLAGS to -fpch-preprocess
- # if you want warnings for invalid header files (which is very inconvenient
- # if you have different versions of the headers for different build types
- # you may set _pch_dowarn
- IF (_dowarn)
- SET(${_cflags} "${PCH_ADDITIONAL_COMPILER_FLAGS} -include ${CMAKE_CURRENT_BINARY_DIR}/${_header_name} -Winvalid-pch " )
- ELSE (_dowarn)
- SET(${_cflags} "${PCH_ADDITIONAL_COMPILER_FLAGS} -include ${CMAKE_CURRENT_BINARY_DIR}/${_header_name} " )
- ENDIF (_dowarn)
- ELSE(CMAKE_COMPILER_IS_GNUCXX)
-
- set(${_cflags} "/Fp${_native_pch_path} /Yu${_header_name}" )
-
- ENDIF(CMAKE_COMPILER_IS_GNUCXX)
-
-ENDMACRO(_PCH_GET_TARGET_COMPILE_FLAGS )
-
-MACRO(GET_PRECOMPILED_HEADER_OUTPUT _targetName _input _output)
- GET_FILENAME_COMPONENT(_name ${_input} NAME)
- GET_FILENAME_COMPONENT(_path ${_input} PATH)
- SET(_output "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch/${_targetName}_${CMAKE_BUILD_TYPE}.gch")
-ENDMACRO(GET_PRECOMPILED_HEADER_OUTPUT _targetName _input)
-
-
-MACRO(ADD_PRECOMPILED_HEADER_TO_TARGET _targetName _input _pch_output_to_use )
-
- # to do: test whether compiler flags match between target _targetName
- # and _pch_output_to_use
- GET_FILENAME_COMPONENT(_name ${_input} NAME)
-
- IF( "${ARGN}" STREQUAL "0")
- SET(_dowarn 0)
- ELSE( "${ARGN}" STREQUAL "0")
- SET(_dowarn 1)
- ENDIF("${ARGN}" STREQUAL "0")
+ ADD_CUSTOM_TARGET(generate_${PCH_SRC_N}
+ DEPENDS ${OUT}
+ )
+ ADD_DEPENDENCIES(${TARGET_NAME} generate_${PCH_SRC_N})
+ENDFUNCTION(GENERATE_CXX_PCH_COMMAND)
- _PCH_GET_TARGET_COMPILE_FLAGS(_target_cflags ${_name} ${_pch_output_to_use} ${_dowarn})
- # MESSAGE("Add flags ${_target_cflags} to ${_targetName} " )
- SET_TARGET_PROPERTIES(${_targetName}
- PROPERTIES
- COMPILE_FLAGS ${_target_cflags}
+FUNCTION(ADD_CXX_PCH_GCC TARGET_NAME PCH_HEADER PCH_SOURCE)
+ GET_COMMON_PCH_PARAMS(${PCH_HEADER} "gch" "-I")
+ GENERATE_CXX_PCH_COMMAND(${TARGET_NAME} "${INCLUDE_FLAGS}" ${PCH_HEADER} ${PCH_SOURCE} ${PCH_HEADER_OUT})
+ SET_TARGET_PROPERTIES(
+ ${TARGET_NAME} PROPERTIES
+ COMPILE_FLAGS "-include ${CMAKE_CURRENT_BINARY_DIR}/${PCH_HEADER_NAME}"
)
-
- ADD_CUSTOM_TARGET(pch_Generate_${_targetName}
- DEPENDS ${_pch_output_to_use}
+ENDFUNCTION(ADD_CXX_PCH_GCC)
+
+FUNCTION(ADD_CXX_PCH_CLANG TARGET_NAME PCH_HEADER PCH_SOURCE)
+ GET_COMMON_PCH_PARAMS(${PCH_HEADER} "pch" "-I")
+ GENERATE_CXX_PCH_COMMAND(${TARGET_NAME} "${INCLUDE_FLAGS}" ${PCH_HEADER} ${PCH_SOURCE} ${PCH_HEADER_OUT})
+ SET_TARGET_PROPERTIES(
+ ${TARGET_NAME} PROPERTIES
+ COMPILE_FLAGS "-include-pch ${PCH_HEADER_OUT}"
)
+ENDFUNCTION(ADD_CXX_PCH_CLANG)
- ADD_DEPENDENCIES(${_targetName} pch_Generate_${_targetName} )
-
-ENDMACRO(ADD_PRECOMPILED_HEADER_TO_TARGET)
-
-MACRO(ADD_PRECOMPILED_HEADER _targetName _input)
-
- SET(_PCH_current_target ${_targetName})
-
- IF(NOT CMAKE_BUILD_TYPE)
- MESSAGE(FATAL_ERROR
- "This is the ADD_PRECOMPILED_HEADER macro. "
- "You must set CMAKE_BUILD_TYPE!"
- )
- ENDIF(NOT CMAKE_BUILD_TYPE)
-
- IF( "${ARGN}" STREQUAL "0")
- SET(_dowarn 0)
- ELSE( "${ARGN}" STREQUAL "0")
- SET(_dowarn 1)
- ENDIF("${ARGN}" STREQUAL "0")
-
- GET_FILENAME_COMPONENT(_name ${_input} NAME)
- GET_FILENAME_COMPONENT(_path ${_input} PATH)
- GET_PRECOMPILED_HEADER_OUTPUT( ${_targetName} ${_input} _output)
-
- GET_FILENAME_COMPONENT(_outdir ${_output} PATH )
-
- GET_TARGET_PROPERTY(_targetType ${_PCH_current_target} TYPE)
- _PCH_WRITE_PCHDEP_CXX(${_targetName} ${_input} _pch_dephelp_cxx)
-
- IF(${_targetType} STREQUAL SHARED_LIBRARY)
- ADD_LIBRARY(${_targetName}_pch_dephelp STATIC ${_pch_dephelp_cxx} )
- ELSE(${_targetType} STREQUAL SHARED_LIBRARY)
- ADD_LIBRARY(${_targetName}_pch_dephelp STATIC ${_pch_dephelp_cxx})
- ENDIF(${_targetType} STREQUAL SHARED_LIBRARY)
-
- FILE(MAKE_DIRECTORY ${_outdir})
-
- _PCH_GET_COMPILE_FLAGS(_compile_FLAGS)
-
- #MESSAGE("_compile_FLAGS: ${_compile_FLAGS}")
- #message("COMMAND ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input}")
- SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${_name} PROPERTIES GENERATED 1)
- ADD_CUSTOM_COMMAND(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_name}
- COMMAND ${CMAKE_COMMAND} -E copy ${_input} ${CMAKE_CURRENT_BINARY_DIR}/${_name} # ensure same directory! Required by gcc
- DEPENDS ${_input}
+FUNCTION(ADD_CXX_PCH_MSVC TARGET_NAME PCH_HEADER PCH_SOURCE)
+ GET_COMMON_PCH_PARAMS(${PCH_HEADER} "pch" "/I")
+ SET_TARGET_PROPERTIES(
+ ${TARGET_NAME} PROPERTIES
+ COMPILE_FLAGS "/FI${PCH_HEADER_NAME} /Yu${PCH_HEADER_NAME}"
)
-
- #message("_command ${_input} ${_output}")
- _PCH_GET_COMPILE_COMMAND(_command ${CMAKE_CURRENT_BINARY_DIR}/${_name} ${_output} )
-
- #message(${_input} )
- #message("_output ${_output}")
-
- ADD_CUSTOM_COMMAND(
- OUTPUT ${_output}
- COMMAND ${_command}
- DEPENDS ${_input} ${CMAKE_CURRENT_BINARY_DIR}/${_name} ${_targetName}_pch_dephelp
+ SET_SOURCE_FILES_PROPERTIES(
+ ${PCH_SOURCE} PROPERTIES
+ COMPILE_FLAGS "/Yc${PCH_HEADER_NAME}"
)
-
- ADD_PRECOMPILED_HEADER_TO_TARGET(${_targetName} ${_input} ${_output} ${_dowarn})
-ENDMACRO(ADD_PRECOMPILED_HEADER)
-
-# Generates the use of precompiled in a target,
-# without using depency targets (2 extra for each target)
-# Using Visual, must also add ${_targetName}_pch to sources
-# Not needed by Xcode
-
-MACRO(GET_NATIVE_PRECOMPILED_HEADER _targetName _input)
-
- if(CMAKE_GENERATOR MATCHES Visual*)
-
- SET(_dummy_str "#include \"${_input}\"\n"
- "// This is required to suppress LNK4221. Very annoying.\n"
- "void *g_${_targetName}Dummy = 0\;\n")
-
- # Use of cxx extension for generated files (as Qt does)
- SET(${_targetName}_pch ${CMAKE_CURRENT_BINARY_DIR}/${_targetName}_pch.cxx)
- if(EXISTS ${${_targetName}_pch})
- # Check if contents is the same, if not rewrite
- # todo
- else(EXISTS ${${_targetName}_pch})
- FILE(WRITE ${${_targetName}_pch} ${_dummy_str})
- endif(EXISTS ${${_targetName}_pch})
- endif(CMAKE_GENERATOR MATCHES Visual*)
-
-ENDMACRO(GET_NATIVE_PRECOMPILED_HEADER)
-
-MACRO(ADD_NATIVE_PRECOMPILED_HEADER _targetName _input)
-
- IF( "${ARGN}" STREQUAL "0")
- SET(_dowarn 0)
- ELSE( "${ARGN}" STREQUAL "0")
- SET(_dowarn 1)
- ENDIF("${ARGN}" STREQUAL "0")
-
- if(CMAKE_GENERATOR MATCHES Visual*)
- # Auto include the precompile (useful for moc processing, since the use of
- # precompiled is specified at the target level
- # and I don't want to specifiy /F- for each moc/res/ui generated files (using Qt)
-
- GET_TARGET_PROPERTY(oldProps ${_targetName} COMPILE_FLAGS)
- if (${oldProps} MATCHES NOTFOUND)
- SET(oldProps "")
- endif(${oldProps} MATCHES NOTFOUND)
-
- SET(newProperties "${oldProps} /Yu\"${_input}.h\" /FI\"${_input}.h\"")
- SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "${newProperties}")
-
- #also inlude ${oldProps} to have the same compile options
- SET_SOURCE_FILES_PROPERTIES(${_input}.cpp PROPERTIES COMPILE_FLAGS "${oldProps} /Yc\"${_input}.h\"")
-
- else(CMAKE_GENERATOR MATCHES Visual*)
-
- if (CMAKE_GENERATOR MATCHES Xcode)
- # For Xcode, cmake needs my patch to process
- # GCC_PREFIX_HEADER and GCC_PRECOMPILE_PREFIX_HEADER as target properties
-
- GET_TARGET_PROPERTY(oldProps ${_targetName} COMPILE_FLAGS)
- if (${oldProps} MATCHES NOTFOUND)
- SET(oldProps "")
- endif(${oldProps} MATCHES NOTFOUND)
-
- # When buiding out of the tree, precompiled may not be located
- # Use full path instead.
- GET_FILENAME_COMPONENT(fullPath ${_input} ABSOLUTE)
-
- SET_TARGET_PROPERTIES(${_targetName} PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${fullPath}")
- SET_TARGET_PROPERTIES(${_targetName} PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES")
-
- else (CMAKE_GENERATOR MATCHES Xcode)
-
- #Fallback to the "old" precompiled suppport
- #ADD_PRECOMPILED_HEADER(${_targetName} ${_input} ${_dowarn})
- endif(CMAKE_GENERATOR MATCHES Xcode)
- endif(CMAKE_GENERATOR MATCHES Visual*)
-
-ENDMACRO(ADD_NATIVE_PRECOMPILED_HEADER)
+ENDFUNCTION(ADD_CXX_PCH_MSVC)
+
+FUNCTION(ADD_CXX_PCH TARGET_NAME PCH_HEADER PCH_SOURCE)
+ IF (MSVC)
+ ADD_CXX_PCH_MSVC(${TARGET_NAME} ${PCH_HEADER} ${PCH_SOURCE})
+ ELSEIF ("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
+ XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES
+ XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/${PCH_HEADER}"
+ )
+ ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+ ADD_CXX_PCH_CLANG(${TARGET_NAME} ${PCH_HEADER} ${PCH_SOURCE})
+ ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
+ ADD_CXX_PCH_GCC(${TARGET_NAME} ${PCH_HEADER} ${PCH_SOURCE})
+ ENDIF ()
+ENDFUNCTION(ADD_CXX_PCH)
diff --git a/cmake/platform/osx/settings.cmake b/cmake/platform/osx/settings.cmake
index f623ecf8c27..3d232c5a1f0 100644
--- a/cmake/platform/osx/settings.cmake
+++ b/cmake/platform/osx/settings.cmake
@@ -1,6 +1,4 @@
set(MACOSX 1)
-set(OSX_LIBS /usr/lib/libcrypto.dylib)
-add_definitions(-D__ASSERTMACROS__)
# set default configuration directory
if( NOT CONF_DIR )
@@ -28,4 +26,8 @@ add_custom_target(uninstall
)
message(STATUS "OSX: Created uninstall target")
-include(${CMAKE_SOURCE_DIR}/cmake/compiler/xcode/settings.cmake)
+if (CMAKE_COMPILER_IS_GNUCC)
+ include(${CMAKE_SOURCE_DIR}/cmake/compiler/gcc/settings.cmake)
+elseif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
+ include(${CMAKE_SOURCE_DIR}/cmake/compiler/clang/settings.cmake)
+endif()
diff --git a/cmake/platform/unix/settings.cmake b/cmake/platform/unix/settings.cmake
index dd8b7c081f3..c79cfc4ed4f 100644
--- a/cmake/platform/unix/settings.cmake
+++ b/cmake/platform/unix/settings.cmake
@@ -2,6 +2,7 @@
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
if (NOT NOJEM)
set(JEMALLOC_LIBRARY "jemalloc")
+ message(STATUS "UNIX: Using jemalloc")
endif()
endif()
diff --git a/dep/acelite/6.1.4_tc_changes.diff b/dep/acelite/6.1.4_tc_changes.diff
index a0caff7ab7d..6f1a5c2f3bf 100644
--- a/dep/acelite/6.1.4_tc_changes.diff
+++ b/dep/acelite/6.1.4_tc_changes.diff
@@ -3,7 +3,7 @@ new file mode 100644
index 0000000..acd3d5a
--- /dev/null
+++ b/dep/acelite/ace/CMakeLists.txt
-@@ -0,0 +1,337 @@
+@@ -0,0 +1,348 @@
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+#
+# This file is free software; as a special exception the author gives
@@ -325,6 +325,11 @@ index 0000000..acd3d5a
+ XTI_ATM_Mcast.cpp
+)
+
++if (USE_COREPCH)
++ set(ace_PCH_HDR PrecompiledHeaders/WinAcePCH.h)
++ set(ace_PCH_SRC PrecompiledHeaders/WinAcePCH.cpp)
++endif()
++
+include_directories(
+ ${CMAKE_SOURCE_DIR}/dep/acelite
+ ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders
@@ -336,9 +341,15 @@ index 0000000..acd3d5a
+
+add_definitions(-DACE_BUILD_DLL)
+
-+add_library(ace SHARED ${ace_STAT_SRCS})
++add_library(ace SHARED
++ ${ace_STAT_SRCS}
++ ${ace_PCH_SRC}
++)
+
-+add_native_precompiled_header(ace ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/WinAcePCH)
++# Generate precompiled header
++if( USE_COREPCH )
++ add_cxx_pch(ace ${ace_PCH_HDR} ${ace_PCH_SRC})
++endif()
+
+install(TARGETS ace RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}")
diff --git a/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp
diff --git a/dep/acelite/ace/CMakeLists.txt b/dep/acelite/ace/CMakeLists.txt
index a0a590e0c30..f22bc381202 100644
--- a/dep/acelite/ace/CMakeLists.txt
+++ b/dep/acelite/ace/CMakeLists.txt
@@ -320,6 +320,11 @@ set(ace_STAT_SRCS
XTI_ATM_Mcast.cpp
)
+if (USE_COREPCH)
+ set(ace_PCH_HDR PrecompiledHeaders/WinAcePCH.h)
+ set(ace_PCH_SRC PrecompiledHeaders/WinAcePCH.cpp)
+endif()
+
include_directories(
${CMAKE_SOURCE_DIR}/dep/acelite
${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders
@@ -331,8 +336,14 @@ set_source_files_properties(Atomic_Op_Sparc.c Rtems_init.c PROPERTIES LANGUAGE C
add_definitions(-DACE_BUILD_DLL)
-add_library(ace SHARED ${ace_STAT_SRCS})
+add_library(ace SHARED
+ ${ace_STAT_SRCS}
+ ${ace_PCH_SRC}
+)
-add_native_precompiled_header(ace ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/WinAcePCH)
+# Generate precompiled header
+if( USE_COREPCH )
+ add_cxx_pch(ace ${ace_PCH_HDR} ${ace_PCH_SRC})
+endif()
install(TARGETS ace RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}")
diff --git a/dep/g3dlite/G3D-v8.0_extra.diff b/dep/g3dlite/G3D-v8.0_extra.diff
index d556103c96d..62c513435b9 100644
--- a/dep/g3dlite/G3D-v8.0_extra.diff
+++ b/dep/g3dlite/G3D-v8.0_extra.diff
@@ -10,3 +10,16 @@ index 3469b81..9fe098d 100644
#endif
+diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h
+index c8d2f0b..11093f4 100644
+--- a/dep/g3dlite/include/G3D/platform.h
++++ b/dep/g3dlite/include/G3D/platform.h
+@@ -57,7 +57,7 @@
+ #elif defined(__linux__)
+ #define G3D_LINUX
+ #elif defined(__APPLE__)
+- #define G3D_OSX
++ #define G3D_LINUX
+
+ // Prevent OS X fp.h header from being included; it defines
+ // pi as a constant, which creates a conflict with G3D
diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h
index c8d2f0b6534..11093f4a6ce 100644
--- a/dep/g3dlite/include/G3D/platform.h
+++ b/dep/g3dlite/include/G3D/platform.h
@@ -57,7 +57,7 @@
#elif defined(__linux__)
#define G3D_LINUX
#elif defined(__APPLE__)
- #define G3D_OSX
+ #define G3D_LINUX
// Prevent OS X fp.h header from being included; it defines
// pi as a constant, which creates a conflict with G3D
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql
index 5548630d2d6..02efbe77101 100644
--- a/sql/base/characters_database.sql
+++ b/sql/base/characters_database.sql
@@ -238,6 +238,47 @@ LOCK TABLES `bugreport` WRITE;
UNLOCK TABLES;
--
+-- Table structure for table `calendar_events`
+--
+
+DROP TABLE IF EXISTS `calendar_events`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE IF NOT EXISTS `calendar_events` (
+ `id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `creator` int(10) unsigned NOT NULL DEFAULT '0',
+ `title` varchar(255) NOT NULL DEFAULT '',
+ `description` varchar(255) NOT NULL DEFAULT '',
+ `type` tinyint(1) unsigned NOT NULL DEFAULT '4',
+ `dungeon` int(10) NOT NULL DEFAULT '-1',
+ `eventtime` int(10) unsigned NOT NULL DEFAULT '0',
+ `flags` int(10) unsigned NOT NULL DEFAULT '0',
+ `time2` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `calendar_invites`
+--
+
+DROP TABLE IF EXISTS `calendar_invites`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE IF NOT EXISTS `calendar_invites` (
+ `id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `event` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `invitee` int(10) unsigned NOT NULL DEFAULT '0',
+ `sender` int(10) unsigned NOT NULL DEFAULT '0',
+ `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `statustime` int(10) unsigned NOT NULL DEFAULT '0',
+ `rank` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `text` varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
-- Table structure for table `channels`
--
diff --git a/sql/old/2.4.3/00011_characters.sql b/sql/old/2.4.3/00011_characters.sql
index 23776801a66..6108f2e69c4 100644
--- a/sql/old/2.4.3/00011_characters.sql
+++ b/sql/old/2.4.3/00011_characters.sql
@@ -1,5 +1,5 @@
ALTER TABLE `arena_team_member` ADD COLUMN `points_to_add` int(10) UNSIGNED NOT NULL DEFAULT '0';
DROP TABLE IF EXISTS `saved_variables`;
-CREATE TABLE `saved_variables` (
+CREATE TABLE `saved_variables` (
`NextArenaPointDistributionTime` timestamp NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Variable Saves';
diff --git a/sql/old/2.4.3/00045_characters.sql b/sql/old/2.4.3/00045_characters.sql
index 9f370ba909c..b5cf28e2f88 100644
--- a/sql/old/2.4.3/00045_characters.sql
+++ b/sql/old/2.4.3/00045_characters.sql
@@ -5,7 +5,7 @@ CREATE TABLE `game_event_save` (
PRIMARY KEY (`event_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-CREATE TABLE `game_event_condition_save` (
+CREATE TABLE `game_event_condition_save` (
`event_id` mediumint(8) unsigned NOT NULL,
`condition_id` mediumint(8) unsigned NOT NULL default '0',
`done` float default '0',
diff --git a/sql/old/2.4.3/00117_world_scripts.sql b/sql/old/2.4.3/00117_world_scripts.sql
index 794258ba710..e584345b239 100644
--- a/sql/old/2.4.3/00117_world_scripts.sql
+++ b/sql/old/2.4.3/00117_world_scripts.sql
@@ -1,8 +1,8 @@
---
+--
-- NOTE: If you have temporary stored data in table `eventai_localized_texts` make sure to make backup of this before running this update!
-- NOTE: If you have any texts in current eventai_texts and they are not using entries valid for *_texts table, you _will_ get error messages on startup.
-- NOTE: Do not run this update twice, it may create bad data if you choose to do so.
---
+--
-- drop obsolete table
DROP TABLE eventai_localized_texts;
diff --git a/sql/old/2.4.3/00123_world_scripts.sql b/sql/old/2.4.3/00123_world_scripts.sql
index b5f9305e30e..08345f19f2e 100644
--- a/sql/old/2.4.3/00123_world_scripts.sql
+++ b/sql/old/2.4.3/00123_world_scripts.sql
@@ -1,20 +1,20 @@
---
+--
-- trinity_script_texts.sql Contains data for table `script_texts` mainly used in C++ parts.
-- valid entries for table are between -1000000 and -1999999
---
+--
TRUNCATE `script_texts`;
---
+--
-- -1 000 000 First 100 entries are reserved for special use, do not add regular text here.
---
+--
INSERT INTO `script_texts` (`entry`,`content_default`,`sound`,`type`,`language`,`comment`) VALUES
(-1000000,'<TrinityScript Text Entry Missing!>',0,0,0,'DEFAULT_TEXT');
---
+--
-- Normal text entries. Say/Yell/Whisper/Emote for any regular world object.
---
+--
-- -1 000 100 GENERAL MAPS (not typical instance maps)
@@ -208,8 +208,8 @@ INSERT INTO `script_texts` (`entry`,`content_default`,`sound`,`type`,`language`,
-- -1 585 000 MAGISTER'S TERRACE
---
+--
-- Below just for beautiful view in table, run at own desire
---
+--
-- ALTER TABLE `script_texts` ORDER BY `entry` desc;
diff --git a/sql/old/2.4.3/00247_world.sql b/sql/old/2.4.3/00247_world.sql
index e8fb49e0c29..2c5b137072e 100644
--- a/sql/old/2.4.3/00247_world.sql
+++ b/sql/old/2.4.3/00247_world.sql
@@ -7,8 +7,8 @@ UPDATE creature_template SET minhealth = 2018275, maxhealth = minhealth = 201827
UPDATE creature_template SET minlevel = 73, maxlevel = 73, minhealth = 828555, maxhealth = 828555, armor = 5000, mindmg = 1000, maxdmg = 2000 WHERE entry = 24891;
UPDATE gameobject_template SET scriptname = 'kalocegos_teleporter' WHERE entry = 187055;
-INSERT INTO creature_template_addon (entry) SELECT 24891 FROM creature_template_addon WHERE NOT EXISTS(SELECT * FROM creature_template_addon WHERE entry = 24891) LIMIT 1;
-INSERT INTO creature_template_addon (entry) SELECT 24892 FROM creature_template_addon WHERE NOT EXISTS(SELECT * FROM creature_template_addon WHERE entry = 24892) LIMIT 1;
+INSERT INTO creature_template_addon (entry) SELECT 24891 FROM creature_template_addon WHERE NOT EXISTS(SELECT * FROM creature_template_addon WHERE entry = 24891) LIMIT 1;
+INSERT INTO creature_template_addon (entry) SELECT 24892 FROM creature_template_addon WHERE NOT EXISTS(SELECT * FROM creature_template_addon WHERE entry = 24892) LIMIT 1;
UPDATE creature_template_addon SET auras = '45769 0 45769 1' WHERE entry = 24850;
UPDATE creature_template_addon SET auras = '45769 0 45769 1 44801 0 44801 1 44801 2' WHERE entry = 24891;
UPDATE creature_template_addon SET auras = '45769 0 45769 1 44801 0 44801 1 44801 2 44800 0' WHERE entry = 24892;
diff --git a/sql/old/2.4.3/00262_world.sql b/sql/old/2.4.3/00262_world.sql
index a10ddd7cd28..c48a1a57e87 100644
--- a/sql/old/2.4.3/00262_world.sql
+++ b/sql/old/2.4.3/00262_world.sql
@@ -70,23 +70,23 @@ INSERT INTO trinity_string VALUES
(251,'Text%d (ID: %i): %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
ALTER TABLE event_scripts
DROP datatext,
- ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
+ ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
ALTER TABLE gameobject_scripts
DROP datatext,
- ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
+ ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
ALTER TABLE quest_end_scripts
DROP datatext,
- ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
+ ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
ALTER TABLE quest_start_scripts
DROP datatext,
- ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
+ ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
ALTER TABLE spell_scripts
DROP datatext,
- ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
+ ADD COLUMN dataint int(11) NOT NULL default '0' AFTER datalong2;
ALTER TABLE creature_movement
DROP `text1`,
diff --git a/sql/old/2.4.3/00329_world.sql b/sql/old/2.4.3/00329_world.sql
index 33f61416fb1..a0ce16529af 100644
--- a/sql/old/2.4.3/00329_world.sql
+++ b/sql/old/2.4.3/00329_world.sql
@@ -18,7 +18,7 @@ CREATE TABLE `spell_proc_event` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- ----------------------------
--- Records
+-- Records
-- ----------------------------
INSERT INTO `spell_proc_event` VALUES ('9452', '0', '0', '0', '0', '0', '3', '0', '0');
INSERT INTO `spell_proc_event` VALUES ('34917', '32', '6', '0', '0', '0', '0', '0', '0');
diff --git a/sql/old/2.4.3/00542_characters.sql b/sql/old/2.4.3/00542_characters.sql
index f03c03f900f..9a9703bd122 100644
--- a/sql/old/2.4.3/00542_characters.sql
+++ b/sql/old/2.4.3/00542_characters.sql
@@ -1,74 +1,74 @@
-UPDATE
- `arena_team_member` AS `a`,
+UPDATE
+ `arena_team_member` AS `a`,
(SELECT
`attq1`.`guid` AS `b_guid`,
`atid`, `atpr`
- FROM
- (SELECT
- `guid`,
- `name`,
+ FROM
+ (SELECT
+ `guid`,
+ `name`,
SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1545),' ',-1) AS `atid`,
- SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1550),' ',-1) AS `atpr`
- FROM
- `characters`) AS `attq1`
- INNER JOIN
- `arena_team_member` ON `arenateamid` = `atid` AND
- `arena_team_member`.`guid` = `attq1`.`guid`
- WHERE
- `atid` <> 0)
- AS `b`
-SET
- `a`.`personal_rating` = `b`.`atpr`
-WHERE
- `a`.`arenateamid` = `b`.`atid` AND
+ SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1550),' ',-1) AS `atpr`
+ FROM
+ `characters`) AS `attq1`
+ INNER JOIN
+ `arena_team_member` ON `arenateamid` = `atid` AND
+ `arena_team_member`.`guid` = `attq1`.`guid`
+ WHERE
+ `atid` <> 0)
+ AS `b`
+SET
+ `a`.`personal_rating` = `b`.`atpr`
+WHERE
+ `a`.`arenateamid` = `b`.`atid` AND
`a`.`guid` = `b`.`b_guid`;
-UPDATE
- `arena_team_member` AS `a`,
+UPDATE
+ `arena_team_member` AS `a`,
(SELECT
`attq1`.`guid` AS `b_guid`,
`atid`, `atpr`
- FROM
- (SELECT
- `guid`,
- `name`,
+ FROM
+ (SELECT
+ `guid`,
+ `name`,
SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1551),' ',-1) AS `atid`,
- SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1556),' ',-1) AS `atpr`
- FROM
- `characters`) AS `attq1`
- INNER JOIN
- `arena_team_member` ON `arenateamid` = `atid` AND
- `arena_team_member`.`guid` = `attq1`.`guid`
- WHERE
- `atid` <> 0)
- AS `b`
-SET
- `a`.`personal_rating` = `b`.`atpr`
-WHERE
- `a`.`arenateamid` = `b`.`atid` AND
+ SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1556),' ',-1) AS `atpr`
+ FROM
+ `characters`) AS `attq1`
+ INNER JOIN
+ `arena_team_member` ON `arenateamid` = `atid` AND
+ `arena_team_member`.`guid` = `attq1`.`guid`
+ WHERE
+ `atid` <> 0)
+ AS `b`
+SET
+ `a`.`personal_rating` = `b`.`atpr`
+WHERE
+ `a`.`arenateamid` = `b`.`atid` AND
`a`.`guid` = `b`.`b_guid`;
-UPDATE
- `arena_team_member` AS `a`,
+UPDATE
+ `arena_team_member` AS `a`,
(SELECT
`attq1`.`guid` AS `b_guid`,
`atid`, `atpr`
- FROM
- (SELECT
- `guid`,
- `name`,
+ FROM
+ (SELECT
+ `guid`,
+ `name`,
SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1557),' ',-1) AS `atid`,
- SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1562),' ',-1) AS `atpr`
- FROM
- `characters`) AS `attq1`
- INNER JOIN
- `arena_team_member` ON `arenateamid` = `atid` AND
- `arena_team_member`.`guid` = `attq1`.`guid`
- WHERE
- `atid` <> 0)
- AS `b`
-SET
- `a`.`personal_rating` = `b`.`atpr`
-WHERE
- `a`.`arenateamid` = `b`.`atid` AND
+ SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',1562),' ',-1) AS `atpr`
+ FROM
+ `characters`) AS `attq1`
+ INNER JOIN
+ `arena_team_member` ON `arenateamid` = `atid` AND
+ `arena_team_member`.`guid` = `attq1`.`guid`
+ WHERE
+ `atid` <> 0)
+ AS `b`
+SET
+ `a`.`personal_rating` = `b`.`atpr`
+WHERE
+ `a`.`arenateamid` = `b`.`atid` AND
`a`.`guid` = `b`.`b_guid`;
diff --git a/sql/old/2.4.3/00566_world.sql b/sql/old/2.4.3/00566_world.sql
index 6c176e1ad89..39191b2e0d6 100644
--- a/sql/old/2.4.3/00566_world.sql
+++ b/sql/old/2.4.3/00566_world.sql
@@ -1,4 +1,4 @@
-INSERT INTO spell_script_target VALUES
+INSERT INTO spell_script_target VALUES
(8913,1,1200),
(9095,1,6492),
(33655,0,183351),
diff --git a/sql/old/2.4.3/00608_world.sql b/sql/old/2.4.3/00608_world.sql
index 5c052ecd078..b63b063639d 100644
--- a/sql/old/2.4.3/00608_world.sql
+++ b/sql/old/2.4.3/00608_world.sql
@@ -1,4 +1,4 @@
-INSERT INTO `spell_script_target` VALUES
+INSERT INTO `spell_script_target` VALUES
(3730,1,15263),
(6955,1,4946),
(7022,1,4945),
@@ -22,7 +22,7 @@ INSERT INTO `spell_script_target` VALUES
(19749,1,12352), -- used by creature script to check if all troopers are presents, NYI
(19773,1,12018), -- used by Ragnaros to kill Majordomo
(21556,1,13378), -- no longer in game, but still could be used for some FUN-so why not fix it ? ;)
-(21566,1,13416),
+(21566,1,13416),
(22710,1,14349),
(23168,1,14020),
(24062,1,15010),
@@ -45,7 +45,7 @@ INSERT INTO `spell_script_target` VALUES
(30221,1,620),
(30232,1,15691),
(30460,1,17404),
-(30951,1,17533),
+(30951,1,17533),
(31326,1,15608),
(31611,1,17979),
(31727,1,17536),
diff --git a/sql/old/2.4.3/00645_world_scripts.sql b/sql/old/2.4.3/00645_world_scripts.sql
index a4243582180..7e2e078d5bc 100644
--- a/sql/old/2.4.3/00645_world_scripts.sql
+++ b/sql/old/2.4.3/00645_world_scripts.sql
@@ -1,5 +1,5 @@
delete from creature where id=17318;
update creature_template set scriptname='npc_geezle' where entry=17318;
delete from event_scripts where id=10675;
-insert into event_scripts () VALUES (10675, 0, 10, 17318, 120000, 0, -5134.3, -11250.3, 5.29568, 6.23554),
+insert into event_scripts () VALUES (10675, 0, 10, 17318, 120000, 0, -5134.3, -11250.3, 5.29568, 6.23554),
(10675, 72, 7, 9531, 0, 0, 0, 0, 0, 0);
diff --git a/sql/old/2.4.3/00676_world.sql b/sql/old/2.4.3/00676_world.sql
index 2e46f6480f9..393325a727a 100644
--- a/sql/old/2.4.3/00676_world.sql
+++ b/sql/old/2.4.3/00676_world.sql
@@ -1,2 +1,2 @@
-UPDATE `trinity_string` SET `content_default`='Player |cffff0000%s|r kicked by |cffff0000%s|r. Reason: |cffff0000%s|r.' WHERE (`entry`='282');
+UPDATE `trinity_string` SET `content_default`='Player |cffff0000%s|r kicked by |cffff0000%s|r. Reason: |cffff0000%s|r.' WHERE (`entry`='282');
UPDATE `command` SET `help`='Syntax: .kick [$charactername] [$reason]\r\n\r\nKick the given character name from the world with or without reason. If no character name is provided then the selected player (except for yourself) will be kicked. If no reason is provided, default is \"No Reason\".' WHERE (`name`='kick');
diff --git a/sql/old/2.4.3/00725_characters.sql b/sql/old/2.4.3/00725_characters.sql
index 60555c7414c..da7e9cade96 100644
--- a/sql/old/2.4.3/00725_characters.sql
+++ b/sql/old/2.4.3/00725_characters.sql
@@ -1,5 +1,5 @@
-ALTER TABLE `character_ticket` RENAME TO `gm_tickets`;
-ALTER TABLE `gm_tickets` CHANGE `guid` `playerGuid` int(11) unsigned NOT NULL default '0';
-ALTER TABLE `gm_tickets` CHANGE `ticket_id` `guid` int(11) unsigned NOT NULL default '0';
+ALTER TABLE `character_ticket` RENAME TO `gm_tickets`;
+ALTER TABLE `gm_tickets` CHANGE `guid` `playerGuid` int(11) unsigned NOT NULL default '0';
+ALTER TABLE `gm_tickets` CHANGE `ticket_id` `guid` int(11) unsigned NOT NULL default '0';
ALTER TABLE `gm_tickets` CHANGE `ticket_text` `message` text(0) NOT NULL;
ALTER TABLE `gm_tickets` CHANGE `ticket_lastchange` `timestamp` int(10) NOT NULL default '0';
diff --git a/sql/old/2.4.3/00725_world.sql b/sql/old/2.4.3/00725_world.sql
index 38eeead03cb..d5f3ab8a33b 100644
--- a/sql/old/2.4.3/00725_world.sql
+++ b/sql/old/2.4.3/00725_world.sql
@@ -1,24 +1,24 @@
-DELETE FROM `trinity_string` WHERE `entry` IN (290,296,289);
+DELETE FROM `trinity_string` WHERE `entry` IN (290,296,289);
DELETE FROM `trinity_string` WHERE `entry` BETWEEN 2000 AND 2016;
-INSERT INTO trinity_string (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
-(2000, '|cff00ff00New ticket from|r|cffff00ff %s.|r |cff00ff00Ticket entry:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
-(2001, '|cff00ff00Character|r|cffff00ff %s |r|cff00ff00edited his/her ticket:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
-(2002, '|cff00ff00Character|r|cffff00ff %s |r|cff00ff00abandoned ticket entry:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
-(2003, '|cffff00ff %s|r |cff00ff00closed ticket|r |cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
-(2004, 'Ticket %d permanently deleted by %s.', '', '', '', '', '', '', '', ''),
-(2005, 'Ticket not found.', '', '', '', '', '', '', '', ''),
-(2007, 'Please close ticket before deleting it permanently.', '', '', '', '', '', '', '', ''),
-(2008, 'Ticket %d is already assigned to GM %s.', '', '', '', '', '', '', '', ''),
-(2009, '%u Tickets succesfully reloaded from the database.', '', '', '', '', '', '', '', ''),
-(2010, 'Showing list of open tickets.', '', '', '', '', '', '', '', ''),
-(2011, 'Showing list of open tickets whose creator is online.', '', '', '', '', '', '', '', ''),
-(2012, 'Invalid name specified. Name should be that of an online Gamemaster.', '', '', '', '', '', '', '', ''),
-(2013, 'This ticket is already assigned to yourself. To unassign use .ticket unassign %d and then reassign.', '', '', '', '', '', '', '', ''),
-(2014, 'Ticket %d is not assigned, you cannot unassign it.', '', '', '', '', '', '', '', ''),
-(2015, 'You cannot unassign tickets from staffmembers with a higher security level than yourself.', '', '', '', '', '', '', '', ''),
-(2016, 'Cannot close ticket %d, it is assigned to another GM.', '', '', '', '', '', '', '', '');
+INSERT INTO trinity_string (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
+(2000, '|cff00ff00New ticket from|r|cffff00ff %s.|r |cff00ff00Ticket entry:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
+(2001, '|cff00ff00Character|r|cffff00ff %s |r|cff00ff00edited his/her ticket:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
+(2002, '|cff00ff00Character|r|cffff00ff %s |r|cff00ff00abandoned ticket entry:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
+(2003, '|cffff00ff %s|r |cff00ff00closed ticket|r |cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
+(2004, 'Ticket %d permanently deleted by %s.', '', '', '', '', '', '', '', ''),
+(2005, 'Ticket not found.', '', '', '', '', '', '', '', ''),
+(2007, 'Please close ticket before deleting it permanently.', '', '', '', '', '', '', '', ''),
+(2008, 'Ticket %d is already assigned to GM %s.', '', '', '', '', '', '', '', ''),
+(2009, '%u Tickets succesfully reloaded from the database.', '', '', '', '', '', '', '', ''),
+(2010, 'Showing list of open tickets.', '', '', '', '', '', '', '', ''),
+(2011, 'Showing list of open tickets whose creator is online.', '', '', '', '', '', '', '', ''),
+(2012, 'Invalid name specified. Name should be that of an online Gamemaster.', '', '', '', '', '', '', '', ''),
+(2013, 'This ticket is already assigned to yourself. To unassign use .ticket unassign %d and then reassign.', '', '', '', '', '', '', '', ''),
+(2014, 'Ticket %d is not assigned, you cannot unassign it.', '', '', '', '', '', '', '', ''),
+(2015, 'You cannot unassign tickets from staffmembers with a higher security level than yourself.', '', '', '', '', '', '', '', ''),
+(2016, 'Cannot close ticket %d, it is assigned to another GM.', '', '', '', '', '', '', '', '');
DELETE FROM `command` WHERE (`name` LIKE '%ticket%');
-INSERT INTO `command` (`name`,`security`,`help`) VALUES
+INSERT INTO `command` (`name`,`security`,`help`) VALUES
('ticket list','1','Displays a list of open GM tickets.'),
('ticket onlinelist','1','Displays a list of open GM tickets whose owner is online.'),
('ticket viewname','1','Usage: .ticket viewname $creatorname. \r\nReturns details about specified ticket. Ticket must be open and not deleted.'),
diff --git a/sql/old/2.4.3/00871_world.sql b/sql/old/2.4.3/00871_world.sql
index 2ef2e65b763..9b76cd67777 100644
--- a/sql/old/2.4.3/00871_world.sql
+++ b/sql/old/2.4.3/00871_world.sql
@@ -1,6 +1,6 @@
DELETE FROM `trinity_string` WHERE `entry` BETWEEN '288' AND '295';
DELETE FROM `trinity_string` WHERE `entry` BETWEEN '2000' AND '2029';
-INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
+INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
(2000, '|cff00ff00New ticket from|r|cffff00ff %s.|r |cff00ff00Ticket entry:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
(2001, '|cff00ff00Character|r|cffff00ff %s |r|cff00ff00edited his/her ticket:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
(2002, '|cff00ff00Character|r|cffff00ff %s |r|cff00ff00abandoned ticket entry:|r|cffff00ff %d.|r', '', '', '', '', '', '', '', ''),
diff --git a/sql/old/2.4.3/00905_world_scripts.sql b/sql/old/2.4.3/00905_world_scripts.sql
index 5bb26d18baf..211397f5594 100644
--- a/sql/old/2.4.3/00905_world_scripts.sql
+++ b/sql/old/2.4.3/00905_world_scripts.sql
@@ -1,7 +1,7 @@
UPDATE `creature_template` SET `ScriptName`='npc_grimstone' WHERE `entry`=10096;
UPDATE `creature_template` SET `ScriptName`='mob_phalanx' WHERE `entry`=9502;
UPDATE `creature_template` SET `ScriptName`='npc_rocknot' WHERE `entry`=9503;
-
+
DELETE FROM `areatrigger_scripts` WHERE `entry`=1526;
INSERT INTO `areatrigger_scripts` VALUES (1526,'at_ring_of_law');
diff --git a/sql/old/2.4.3/00955_world_scripts.sql b/sql/old/2.4.3/00955_world_scripts.sql
index b1c80e8736c..2c10c54e310 100644
--- a/sql/old/2.4.3/00955_world_scripts.sql
+++ b/sql/old/2.4.3/00955_world_scripts.sql
@@ -37,21 +37,21 @@ INSERT INTO `script_texts` (entry, content_default, type, language, comment) VAL
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000349 and -1000335;
INSERT INTO `script_texts` (entry, content_default, type, comment) VALUES
-(-1000335, 'Let\'s get to the others, and keep an eye open for those wolves cutside...', 0, 'npc_deathstalker_erland
+(-1000335, 'Let\'s get to the others, and keep an eye open for those wolves cutside...', 0, 'npc_deathstalker_erland
- SAY_QUESTACCEPT'),
(-1000336, 'Be careful, $N. Those wolves like to hide among the trees.', 0, 'npc_deathstalker_erland - SAY_START'),
(-1000337, 'A $C attacks!', 0, 'npc_deathstalker_erland - SAY_AGGRO_1'),
(-1000338, 'Beware! I am under attack!', 0, 'npc_deathstalker_erland - SAY_AGGRO_2'),
(-1000339, 'We\'re almost there!', 0, 'npc_deathstalker_erland - SAY_LAST'),
-(-1000340, 'We made it! Thanks, $N. I couldn\'t have gotten without you.', 0, 'npc_deathstalker_erland -
+(-1000340, 'We made it! Thanks, $N. I couldn\'t have gotten without you.', 0, 'npc_deathstalker_erland -
SAY_THANKS'),
(-1000341, 'It\'s good to see you again, Erland. What is your report?', 0, 'npc_deathstalker_erland - SAY_RANE'),
-(-1000342, 'Masses of wolves are to the east, and whoever lived at Malden\'s Orchard is gone.', 0,
+(-1000342, 'Masses of wolves are to the east, and whoever lived at Malden\'s Orchard is gone.', 0,
'npc_deathstalker_erland - SAY_ANSWER'),
(-1000343, 'If I am excused, then I\'d like to check on Quinn...', 0, 'npc_deathstalker_erland - SAY_MOVE_QUINN'),
(-1000344, 'Hello, Quinn. How are you faring?', 0, 'npc_deathstalker_erland - SAY_GREETINGS'),
(-1000345, 'I\'ve been better. Ivar the Foul got the better of me...', 0, 'npc_deathstalker_erland - SAY_QUINN'),
-(-1000346, 'Try to take better care of yourself, Quinn. You were lucky this time.', 0, 'npc_deathstalker_erland -
+(-1000346, 'Try to take better care of yourself, Quinn. You were lucky this time.', 0, 'npc_deathstalker_erland -
SAY_ON_BYE'),
(-1000347, 'Let\'s go before they find out I\'m free!', 0, 'npc_kaya_flathoof - SAY_START'),
diff --git a/sql/old/2.4.3/01069_world_scripts.sql b/sql/old/2.4.3/01069_world_scripts.sql
index 569a1be866a..d337cfa8a7a 100644
--- a/sql/old/2.4.3/01069_world_scripts.sql
+++ b/sql/old/2.4.3/01069_world_scripts.sql
@@ -1,6 +1,6 @@
DELETE FROM `spell_script_target` WHERE `entry` IN ('44807', '32307', '32314');
INSERT INTO `spell_script_target` (`entry`,`type`,`targetEntry`) VALUES
-('44807', '1', '24850'),
+('44807', '1', '24850'),
('44807', '1', '24892'),
('32307', '2', '17146'),
('32307', '2', '17147'),
diff --git a/sql/old/3.0.9/00000_3.0.9_old.sql b/sql/old/3.0.9/00000_3.0.9_old.sql
index fa57faa3778..d1ca5e5ae35 100644
--- a/sql/old/3.0.9/00000_3.0.9_old.sql
+++ b/sql/old/3.0.9/00000_3.0.9_old.sql
@@ -402,11 +402,11 @@ INSERT INTO `spell_bonus_data` VALUES
-- 1135_mangos_7207_01_world_creature
ALTER TABLE creature
ADD COLUMN `phaseMask` smallint(5) unsigned NOT NULL default '1' AFTER `spawnMask`;
-
+
-- 1135_mangos_7207_02_world_gameobject
ALTER TABLE gameobject
ADD COLUMN `phaseMask` smallint(5) unsigned NOT NULL default '1' AFTER `spawnMask`;
-
+
-- 1140_mangos_7209_01_world_spell_bonus_data
DELETE FROM `spell_bonus_data` WHERE `entry` IN (53595);
INSERT INTO `spell_bonus_data` VALUES
@@ -1319,7 +1319,7 @@ INSERT INTO spell_bonus_data VALUES
(34913, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 1'),
(43043, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 2'),
(43044, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 3');
-
+
-- 1293_mangos_7249_01_world_spell_proc_event
DELETE FROM `spell_proc_event` WHERE `entry`='60200';
@@ -2267,7 +2267,7 @@ INSERT INTO `command` VALUES
('npc setdeathstate',2,'Syntax: .npc setdeathstate on/off\r\n\r\nSet default death state (dead/alive) for npc at spawn.');
-- 1426_mangos_7292_01_world_points_of_interest
-DROP TABLE IF EXISTS `points_of_interest`;
+DROP TABLE IF EXISTS `points_of_interest`;
CREATE TABLE `points_of_interest` (
`entry` mediumint(8) unsigned NOT NULL default '0',
`x` float NOT NULL default '0',
@@ -2280,7 +2280,7 @@ CREATE TABLE `points_of_interest` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- 1426_mangos_7292_02_world_locales_points_of_interest
-DROP TABLE IF EXISTS `locales_points_of_interest`;
+DROP TABLE IF EXISTS `locales_points_of_interest`;
CREATE TABLE `locales_points_of_interest` (
`entry` mediumint(8) unsigned NOT NULL default '0',
`icon_name_loc1` text,
@@ -2489,16 +2489,16 @@ ALTER TABLE spell_area
ALTER TABLE creature_template
ADD COLUMN unk16 float NOT NULL default '1' AFTER InhabitType,
ADD COLUMN unk17 float NOT NULL default '1' AFTER unk16;
-
+
-- 1693_world
-- Update Proc Rate
-INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
('60442', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45'),
('57345', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45'),
('61356', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45'),
('54707', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60'),
('54808', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60');
--- Update Spell Coefficients
+-- Update Spell Coefficients
DELETE FROM `spell_bonus_data` WHERE `entry` IN ('689', '18790', '172', '42223', '42224', '42225', '42226', '42218', '47817', '47818', '1949', '5857', '11681', '11682', '27214', '47822', '27243', '30108', '17962', '6789', '48181', '29722', '5676', '686', '17877', '30283', '1120', '30294', '44425', '42208', '42209', '42210', '42211', '42212', '42213', '42198', '42937', '42938', '11113', '31661', '120', '19750', '635', '25914', '25913', '25903', '27175', '33074', '48820', '48821', '58597', '31803', '53742', '31893', '32221', '53719', '53718', '20167', '20424', '31804', '53733', '31898', '32220', '53726', '53725', '20267', '20187', '20467', '53600', '596', '2944', '8092', '27813', '27817', '27818', '33619');
INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) VALUES
('689', '0', '0.143', '0', 'Warlock - Drain Life'),
@@ -2743,7 +2743,7 @@ UPDATE `areatrigger_teleport` SET `access_id` = '52' WHERE `id` IN ('4352','4354
-- 1709_mangos_7393_01_world_game_event
ALTER TABLE `game_event`
ADD COLUMN `holiday` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Client side holiday id' AFTER `length`;
-
+
-- 1724_mangos_7399_01_world_trinity_string
DELETE FROM `trinity_string` WHERE `entry` IN (753, 754, 755);
INSERT INTO `trinity_string` VALUES
@@ -2998,7 +2998,7 @@ UPDATE `command` SET `name`="ahbotoption" WHERE `name`="ahbotoptions";
DELETE FROM `command` WHERE `name` IN ('reload tickets');
DELETE FROM `command` WHERE `name` LIKE "path%";
DELETE FROM `command` WHERE `name` LIKE "wp%";
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('wp load',2,'Syntax: .path load $pathid\nLoad pathid number for selected creature. Creature must have no waypoint data.'),
('wp event',2,'Syntax: .path event $subcommand\nType .path event to see the list of possible subcommands or .help path event $subcommand to see info on subcommands.'),
('wp event add',2,'Syntax: .path event add $subcommand\nAdd new waypoint action in DB.'),
@@ -3110,7 +3110,7 @@ INSERT INTO `command` VALUES
UPDATE `command` SET `name`="ahbotoption" WHERE `name`="ahbotoptions";
DELETE FROM `command` WHERE `name` LIKE "path%";
DELETE FROM `command` WHERE `name` LIKE "wp%";
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('wp load',2,'Syntax: .wp load $pathid\nLoad pathid number for selected creature. Creature must have no waypoint data.'),
('wp event',2,'Syntax: .wp event $subcommand\nType .path event to see the list of possible subcommands or .help path event $subcommand to see info on subcommands.'),
('wp unload',2,'Syntax: .wp unload\nUnload path for selected creature.'),
@@ -3134,7 +3134,7 @@ INSERT INTO `command` VALUES
-- 2276_mangos_7560_01_world_gameobject_template
ALTER TABLE gameobject_template
ADD COLUMN IconName varchar(100) NOT NULL default '' AFTER name;
-
+
-- 2280_mangos_7565_01_world_trinity_string
DELETE FROM `trinity_string` WHERE `entry` IN (1010,1011,1012,1013,1014);
INSERT INTO `trinity_string` VALUES
@@ -3185,7 +3185,7 @@ INSERT INTO `spell_proc_event` VALUES (24905, 0x00, 0, 0x00000000, 0x00000000, 0
-- 2296_world
ALTER TABLE creature_template
ADD COLUMN `VehicleId` mediumint(8) unsigned NOT NULL default '0' AFTER `PetSpellDataId`;
-
+
-- 2339_world - 2346_world
DELETE FROM `command` WHERE `name` LIKE "ahbotoption %";
DELETE FROM `command` WHERE `name` LIKE "ahbotoptions %";
@@ -3338,7 +3338,7 @@ CREATE TABLE `achievement_criteria_data` (
ALTER TABLE `achievement_criteria_data`
DROP PRIMARY KEY,
ADD PRIMARY KEY (`criteria_id`,`type`);
-
+
-- 2551_world_spell_bonus_data
-- Judgement
DELETE FROM `spell_bonus_data` WHERE `entry` = 54158;
@@ -3785,7 +3785,7 @@ INSERT INTO `spell_proc_event` VALUES
-- 2686_world_command
DELETE FROM `command` WHERE `name` IN ('go ticket');
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('go ticket','1','Syntax: .go ticket #ticketid\r\nTeleports the user to the location where $ticketid was created.');
-- 2687_world_spell_proc_event
@@ -4058,7 +4058,7 @@ INSERT INTO `spell_proc_event` VALUES
INSERT INTO trinity_string (entry, content_default)VALUES (6616 , "Pet spells will reset for all players at login. Strongly recommend re-login!");
-- 2907_mangos_7705_01_world_command
-DELETE FROM `command` WHERE `name` IN
+DELETE FROM `command` WHERE `name` IN
('account lock','account password','chardelete','character customize','character delete','character rename','customize','lockaccount','password','rename');
INSERT INTO `command` VALUES
('account lock',0,'Syntax: .account lock [on|off]\r\n\r\nAllow login from account only from current used IP or remove this requirement.'),
@@ -4127,7 +4127,7 @@ INSERT INTO `spell_script_target` () VALUES (46589, 1, 30614);
INSERT INTO `spell_script_target` () VALUES (45839, 1, 25653);
DELETE FROM `creature_template` WHERE entry in (30598, 30614);
-INSERT INTO `creature_template` () VALUES
+INSERT INTO `creature_template` () VALUES
(30598, 0, 4449, 0, 4449, 0, 'Spike Target', '', '', 70, 70, 1, 1, 0, 0, 0, 14, 14, 0, 1, 1, 0, 0, 0, 0, 0, 2600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 0, 0, 0, 1, 0, 0, 128, ''),
(30614, 0, 4449, 0, 4449, 0, 'Spike Target 2', '', '', 70, 70, 1, 1, 0, 0, 0, 14, 14, 0, 1, 1, 0, 0, 0, 0, 0, 2600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 0, 0, 0, 1, 0, 0, 128, '');
diff --git a/sql/old/3.0.9/01426_mangos_7292_01_world_points_of_interest.sql b/sql/old/3.0.9/01426_mangos_7292_01_world_points_of_interest.sql
index 0dcd481bafe..4048df0f99c 100644
--- a/sql/old/3.0.9/01426_mangos_7292_01_world_points_of_interest.sql
+++ b/sql/old/3.0.9/01426_mangos_7292_01_world_points_of_interest.sql
@@ -1,6 +1,6 @@
/*ALTER TABLE db_version CHANGE COLUMN required_7290_01_mangos_command required_7292_01_mangos_points_of_interest bit;*/
-DROP TABLE IF EXISTS `points_of_interest`;
+DROP TABLE IF EXISTS `points_of_interest`;
CREATE TABLE `points_of_interest` (
`entry` mediumint(8) unsigned NOT NULL default '0',
`x` float NOT NULL default '0',
diff --git a/sql/old/3.0.9/01426_mangos_7292_02_world_locales_points_of_interest.sql b/sql/old/3.0.9/01426_mangos_7292_02_world_locales_points_of_interest.sql
index 2a1989ef0be..4240df090f8 100644
--- a/sql/old/3.0.9/01426_mangos_7292_02_world_locales_points_of_interest.sql
+++ b/sql/old/3.0.9/01426_mangos_7292_02_world_locales_points_of_interest.sql
@@ -1,6 +1,6 @@
/*ALTER TABLE db_version CHANGE COLUMN required_7292_01_mangos_points_of_interest required_7292_02_mangos_locales_points_of_interest bit;*/
-DROP TABLE IF EXISTS `locales_points_of_interest`;
+DROP TABLE IF EXISTS `locales_points_of_interest`;
CREATE TABLE `locales_points_of_interest` (
`entry` mediumint(8) unsigned NOT NULL default '0',
`icon_name_loc1` text,
diff --git a/sql/old/3.0.9/01693_world.sql b/sql/old/3.0.9/01693_world.sql
index d3b167561dd..3366e1e7a60 100644
--- a/sql/old/3.0.9/01693_world.sql
+++ b/sql/old/3.0.9/01693_world.sql
@@ -1,12 +1,12 @@
-- Update Proc Rate
-INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
('60442', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45'),
('57345', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45'),
('61356', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45'),
('54707', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60'),
('54808', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60');
--- Update Spell Coefficients
+-- Update Spell Coefficients
DELETE FROM `spell_bonus_data` WHERE `entry` IN ('689', '18790', '172', '42223', '42224', '42225', '42226', '42218', '47817', '47818', '1949', '5857', '11681', '11682', '27214', '47822', '27243', '30108', '17962', '6789', '48181', '29722', '5676', '686', '17877', '30283', '1120', '30294', '44425', '42208', '42209', '42210', '42211', '42212', '42213', '42198', '42937', '42938', '11113', '31661', '120', '19750', '635', '25914', '25913', '25903', '27175', '33074', '48820', '48821', '58597', '31803', '53742', '31893', '32221', '53719', '53718', '20167', '20424', '31804', '53733', '31898', '32220', '53726', '53725', '20267', '20187', '20467', '53600', '596', '2944', '8092', '27813', '27817', '27818', '33619');
INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) VALUES
('689', '0', '0.143', '0', 'Warlock - Drain Life'),
diff --git a/sql/old/3.0.9/02131_world.sql b/sql/old/3.0.9/02131_world.sql
index 60b56178bdd..fdf14b88bf4 100644
--- a/sql/old/3.0.9/02131_world.sql
+++ b/sql/old/3.0.9/02131_world.sql
@@ -6,7 +6,7 @@ UPDATE `command` SET `name`="ahbotoption" WHERE `name`="ahbotoptions";
DELETE FROM `command` WHERE `name` IN ('reload tickets');
DELETE FROM `command` WHERE `name` LIKE "path%";
DELETE FROM `command` WHERE `name` LIKE "wp%";
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('wp load',2,'Syntax: .wp load $pathid\nLoad pathid number for selected creature. Creature must have no waypoint data.'),
('wp event',2,'Syntax: .wp event $subcommand\nType .path event to see the list of possible subcommands or .help path event $subcommand to see info on subcommands.'),
('wp event add',2,'Syntax: .wp event add $subcommand\nAdd new waypoint action in DB.'),
diff --git a/sql/old/3.0.9/02254_world.sql b/sql/old/3.0.9/02254_world.sql
index fef5b79a9f6..b7708ebd12f 100644
--- a/sql/old/3.0.9/02254_world.sql
+++ b/sql/old/3.0.9/02254_world.sql
@@ -5,7 +5,7 @@ INSERT INTO `command` VALUES
UPDATE `command` SET `name`="ahbotoption" WHERE `name`="ahbotoptions";
DELETE FROM `command` WHERE `name` LIKE "path%";
DELETE FROM `command` WHERE `name` LIKE "wp%";
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('wp load',2,'Syntax: .wp load $pathid\nLoad pathid number for selected creature. Creature must have no waypoint data.'),
('wp event',2,'Syntax: .wp event $subcommand\nType .path event to see the list of possible subcommands or .help path event $subcommand to see info on subcommands.'),
('wp unload',2,'Syntax: .wp unload\nUnload path for selected creature.'),
diff --git a/sql/old/3.0.9/02339_world.sql b/sql/old/3.0.9/02339_world.sql
index 106de7326fb..28efdf33ed7 100644
--- a/sql/old/3.0.9/02339_world.sql
+++ b/sql/old/3.0.9/02339_world.sql
@@ -1,5 +1,5 @@
DELETE FROM `command` WHERE `name` LIKE "ahbotoption %";
-INSERT INTO `command`(`name`,`security`,`help`) VALUES
+INSERT INTO `command`(`name`,`security`,`help`) VALUES
('ahbotoption ahexpire', '3', '.Syntax: .ahbotoption ahexpire $ahMapID Expire all auctions started by AHbot.'),
('ahbotoption minitems', '3', '.Syntax: .ahbotoption minitems $ahMapID $parameter Set minimum number of items to be sold in the auctionhouse. If value is 0 then minitems=maxitems. If minitems>maxitems then it will be set equal to maxitems.'),
('ahbotoption maxitems', '3', '.Syntax: .ahbotoption maxitems $ahMapID $parameter Set maximum number of items to be sold in the auctionhouse.'),
diff --git a/sql/old/3.0.9/02343_world.sql b/sql/old/3.0.9/02343_world.sql
index 4b2b5e68953..7f92fc27bd1 100644
--- a/sql/old/3.0.9/02343_world.sql
+++ b/sql/old/3.0.9/02343_world.sql
@@ -1,6 +1,6 @@
DELETE FROM `command` WHERE `name` LIKE "ahbotoption %";
DELETE FROM `command` WHERE `name` LIKE "ahbotoptions %";
-INSERT INTO `command`(`name`,`security`,`help`) VALUES
+INSERT INTO `command`(`name`,`security`,`help`) VALUES
('ahbotoptions ahexpire', '3', '.Syntax: .ahbotoptions ahexpire $ahMapID Expire all auctions started by AHbot.'),
('ahbotoptions minitems', '3', '.Syntax: .ahbotoptions minitems $ahMapID $parameter Set minimum number of items to be sold in the auctionhouse. If value is 0 then minitems=maxitems. If minitems>maxitems then it will be set equal to maxitems.'),
('ahbotoptions maxitems', '3', '.Syntax: .ahbotoptions maxitems $ahMapID $parameter Set maximum number of items to be sold in the auctionhouse.'),
diff --git a/sql/old/3.0.9/02686_world_command.sql b/sql/old/3.0.9/02686_world_command.sql
index 4abdd7becf3..c306e4cb548 100644
--- a/sql/old/3.0.9/02686_world_command.sql
+++ b/sql/old/3.0.9/02686_world_command.sql
@@ -1,3 +1,3 @@
DELETE FROM `command` WHERE `name` IN ('go ticket');
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('go ticket','1','Syntax: .go ticket #ticketid\r\nTeleports the user to the location where $ticketid was created.');
diff --git a/sql/old/3.0.9/02907_mangos_7705_01_world_command.sql b/sql/old/3.0.9/02907_mangos_7705_01_world_command.sql
index d1b40e1ba4c..0e34b95d183 100644
--- a/sql/old/3.0.9/02907_mangos_7705_01_world_command.sql
+++ b/sql/old/3.0.9/02907_mangos_7705_01_world_command.sql
@@ -1,6 +1,6 @@
/*ALTER TABLE db_version CHANGE COLUMN required_7662_02_mangos_spell_bonus_data required_7705_01_mangos_command bit;*/
-DELETE FROM `command` WHERE `name` IN
+DELETE FROM `command` WHERE `name` IN
('account lock','account password','chardelete','character customize','character delete','character rename','customize','lockaccount','password','rename');
INSERT INTO `command` VALUES
diff --git a/sql/old/3.0.9/02986_TC1_world.sql b/sql/old/3.0.9/02986_TC1_world.sql
index fd0d6b310ae..8f96656168c 100644
--- a/sql/old/3.0.9/02986_TC1_world.sql
+++ b/sql/old/3.0.9/02986_TC1_world.sql
@@ -6,7 +6,7 @@ INSERT INTO `spell_script_target` () VALUES (46589, 1, 30614);
INSERT INTO `spell_script_target` () VALUES (45839, 1, 25653);
DELETE FROM `creature_template` WHERE entry in (30598, 30614);
-INSERT INTO `creature_template` () VALUES
+INSERT INTO `creature_template` () VALUES
(30598, 0, 4449, 0, 4449, 0, 'Spike Target', '', '', 70, 70, 1, 1, 0, 0, 0, 14, 14, 0, 1, 1, 0, 0, 0, 0, 0, 2600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 0, 0, 0, 1, 0, 0, 128, ''),
(30614, 0, 4449, 0, 4449, 0, 'Spike Target 2', '', '', 70, 70, 1, 1, 0, 0, 0, 14, 14, 0, 1, 1, 0, 0, 0, 0, 0, 2600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 3, 0, 0, 0, 1, 0, 0, 128, '');
diff --git a/sql/old/3.0.9/03070_world_spell_proc_event.sql b/sql/old/3.0.9/03070_world_spell_proc_event.sql
index c382b00429c..c3f88cbba0b 100644
--- a/sql/old/3.0.9/03070_world_spell_proc_event.sql
+++ b/sql/old/3.0.9/03070_world_spell_proc_event.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (20166, 32385, 32392, 32387, 32393, 32394,
13046, 13045, 12317, 13048, 13047, -- Enrage
29724, 29725, 29723); -- Sudden Death
-
+
-- Seal of wisdom
INSERT INTO `spell_proc_event` VALUES
(20166, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 12.000000, 0.000000, 0);
diff --git a/sql/old/3.0.9/03257_world_waypoint_data_converter.sql b/sql/old/3.0.9/03257_world_waypoint_data_converter.sql
index 7da23dcd962..9a2b099f453 100644
--- a/sql/old/3.0.9/03257_world_waypoint_data_converter.sql
+++ b/sql/old/3.0.9/03257_world_waypoint_data_converter.sql
@@ -1,6 +1,6 @@
ALTER TABLE creature_addon ADD INDEX ( `path_id` );
ALTER TABLE waypoint_data ADD INDEX ( `id` );
-
+
ALTER TABLE waypoint_data ADD COLUMN id_old int(10) unsigned NOT NULL default '0' COMMENT 'Creature GUID' AFTER wpguid;
UPDATE waypoint_data SET id_old=id;
diff --git a/sql/old/3.0.9/03320_worldspell_enchant_proc_data.sql b/sql/old/3.0.9/03320_worldspell_enchant_proc_data.sql
index 7f5df5edf14..01598fde244 100644
--- a/sql/old/3.0.9/03320_worldspell_enchant_proc_data.sql
+++ b/sql/old/3.0.9/03320_worldspell_enchant_proc_data.sql
@@ -1,7 +1,7 @@
CREATE TABLE `spell_enchant_proc_data` (
`entry` INT(10) UNSIGNED NOT NULL,
`customChance` INT(10) UNSIGNED NOT NULL DEFAULT '0',
- `PPMChance` FLOAT UNSIGNED NOT NULL DEFAULT '0',
+ `PPMChance` FLOAT UNSIGNED NOT NULL DEFAULT '0',
`procEx` FLOAT UNSIGNED NOT NULL DEFAULT '0'
) ENGINE=MYISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Spell enchant proc data';
diff --git a/sql/old/3.0.9/03392_world_spell_proc_event.sql b/sql/old/3.0.9/03392_world_spell_proc_event.sql
index d0965c1a7ab..4227cdd9a06 100644
--- a/sql/old/3.0.9/03392_world_spell_proc_event.sql
+++ b/sql/old/3.0.9/03392_world_spell_proc_event.sql
@@ -1,6 +1,6 @@
-DELETE FROM `spell_proc_event` WHERE `entry` IN
+DELETE FROM `spell_proc_event` WHERE `entry` IN
(27521, 55381, 62459, 60176, 60529, 60717, 62147, 57907, 51528, 51529, 51530, 51531, 51532);
-INSERT INTO `spell_proc_event`
+INSERT INTO `spell_proc_event`
(`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`)
VALUES
-- malestorm weapon
diff --git a/sql/old/3.0.9/03609_mangos_7902_01_world_pool_creature.sql b/sql/old/3.0.9/03609_mangos_7902_01_world_pool_creature.sql
index ec1d63a48b0..db680c23985 100644
--- a/sql/old/3.0.9/03609_mangos_7902_01_world_pool_creature.sql
+++ b/sql/old/3.0.9/03609_mangos_7902_01_world_pool_creature.sql
@@ -1,4 +1,4 @@
/*ALTER TABLE db_version CHANGE COLUMN required_7896_01_mangos_creature_template required_7902_01_mangos_pool_creature bit;*/
-ALTER TABLE `pool_creature`
+ALTER TABLE `pool_creature`
ADD INDEX `idx_guid`(`guid`);
diff --git a/sql/old/3.0.9/03609_mangos_7902_02_world_pool_gameobject.sql b/sql/old/3.0.9/03609_mangos_7902_02_world_pool_gameobject.sql
index 3935a14bc23..265000f8dae 100644
--- a/sql/old/3.0.9/03609_mangos_7902_02_world_pool_gameobject.sql
+++ b/sql/old/3.0.9/03609_mangos_7902_02_world_pool_gameobject.sql
@@ -1,4 +1,4 @@
/*ALTER TABLE db_version CHANGE COLUMN required_7902_01_mangos_pool_creature required_7902_02_mangos_pool_gameobject bit;*/
-ALTER TABLE `pool_gameobject`
+ALTER TABLE `pool_gameobject`
ADD INDEX `idx_guid`(`guid`);
diff --git a/sql/old/3.0.9/03810_world_spell_bonus_data.sql b/sql/old/3.0.9/03810_world_spell_bonus_data.sql
index 1803687d6a4..3fd41e02223 100644
--- a/sql/old/3.0.9/03810_world_spell_bonus_data.sql
+++ b/sql/old/3.0.9/03810_world_spell_bonus_data.sql
@@ -29,14 +29,14 @@ UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1427' WHERE `entry`=27214;
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1427' WHERE `entry`=47822;
UPDATE `spell_bonus_data` SET `dot_bonus` = '0.0949' WHERE `entry`=1949;
UPDATE `spell_bonus_data` SET `ap_bonus` = '0.025' WHERE `entry`=31803;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42208;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42209;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42210;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42211;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42212;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42213;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42198;
-UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42937;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42208;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42209;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42210;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42211;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42212;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42213;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42198;
+UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42937;
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.1437' WHERE `entry`= 42938;
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.2861' WHERE `entry` =49821;
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.2861' WHERE `entry` =53022;
@@ -56,7 +56,7 @@ UPDATE `spell_bonus_data` SET `direct_bonus` = '0.81' WHERE `entry`=33074;
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.81' WHERE `entry`=48821;
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.6453' WHERE `entry`=33763;
DELETE FROM `spell_bonus_data` WHERE `entry` IN (53742,61391,47897,50796,50590,58597,974,47757,52986,52987,52988);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) VALUES
('53742', '0.013', '0', '0.025', 'Paladin - Blood Corruption'),
('61391', '0.193', '0', '0', 'Druid - Typhoon'),
('47897', '0.1064', '0.0667', '0', 'Warlock - Shadowflame'),
@@ -80,7 +80,7 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- by nesocip
DELETE FROM `spell_bonus_data` WHERE `entry` IN (48721, 55078, 52212, 47632, 55095, 49184, 45477, 50536, 51373, 51374, 51375);
-INSERT INTO spell_bonus_data( entry, ap_bonus, comments ) VALUES
+INSERT INTO spell_bonus_data( entry, ap_bonus, comments ) VALUES
('48721', '0.04', 'DK - Blood Boil'),
('55078', '0.055', 'DK - Blood Plague'),
('52212', '0.0475', 'DK - Death and Decay'),
diff --git a/sql/old/3.0.9/03851_world_spell.sql b/sql/old/3.0.9/03851_world_spell.sql
index ed10e84808c..2b843c5bdd4 100644
--- a/sql/old/3.0.9/03851_world_spell.sql
+++ b/sql/old/3.0.9/03851_world_spell.sql
@@ -1,6 +1,6 @@
UPDATE `spell_bonus_data` SET `direct_bonus` = '0.6453' WHERE `entry`=33763;
DELETE FROM `spell_script_target` WHERE `entry` IN (48714,57806);
-INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
+INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
('48714', '2', '27237'),
('48714', '2', '27235'),
('48714', '2', '27234'),
diff --git a/sql/old/3.0.9/03877_world_spell_script_target.sql b/sql/old/3.0.9/03877_world_spell_script_target.sql
index 57392c547d3..343d9475cf9 100644
--- a/sql/old/3.0.9/03877_world_spell_script_target.sql
+++ b/sql/old/3.0.9/03877_world_spell_script_target.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_target` WHERE `entry` IN (48743);
-INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
+INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
('48743', '1', '26125');
diff --git a/sql/old/3.0.9/03886_world_script_nexus.sql b/sql/old/3.0.9/03886_world_script_nexus.sql
index eba67418eef..a2413fc0116 100644
--- a/sql/old/3.0.9/03886_world_script_nexus.sql
+++ b/sql/old/3.0.9/03886_world_script_nexus.sql
@@ -18,7 +18,7 @@ UPDATE `instance_template` SET `script`='instance_nexus' WHERE `map`=576;
UPDATE `creature_template` SET `AIName` = 'EventAI' WHERE entry IN (26796, 26798, 26929, 26928, 26930);
DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (26796, 26798, 26929, 26928, 26930);
-INSERT INTO `creature_ai_scripts` VALUES
+INSERT INTO `creature_ai_scripts` VALUES
-- Commander Stoutbeard
( 2679600, 26796, 4, 0, 100, 4, 0, 0, 0, 0, 28, 0, 47543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Commander Stoutbeard - crystal prison remove'),
( 2679601, 26796, 4, 0, 100, 4, 0, 0, 0, 0, 11, 31403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Commander Stoutbeard - cast battle shout'),
diff --git a/sql/old/3.1.3/03954_world_spell_bonus_data.sql b/sql/old/3.1.3/03954_world_spell_bonus_data.sql
index 6e35ce41a4a..b834f31c9d2 100644
--- a/sql/old/3.1.3/03954_world_spell_bonus_data.sql
+++ b/sql/old/3.1.3/03954_world_spell_bonus_data.sql
@@ -2,7 +2,7 @@ DELETE FROM `spell_bonus_data` WHERE entry IN (31893, 32221, 31898, 32220, 53719
INSERT INTO `spell_bonus_data` VALUES
(31893, 0, 0, 0, "Paladin - Seal of Blood Proc Enemy"),
(32221, 0, 0, 0, "Paladin - Seal of Blood Proc Self"),
-(31898, 0.25, 0, 0.16, "Paladin - Judgement of Blood Enemy"),
+(31898, 0.25, 0, 0.16, "Paladin - Judgement of Blood Enemy"),
(32220, 0.0833, 0, 0.0533, "Paladin - Judgement of Blood Self"),
(53719, 0, 0, 0, "Paladin - Seal of the Martyr Proc Enemy"),
(53718, 0, 0, 0, "Paladin - Seal of the Martyr Proc Self"),
diff --git a/sql/old/3.1.3/03991_world_spell_proc_event.sql b/sql/old/3.1.3/03991_world_spell_proc_event.sql
index 95f9edf6232..4be407b5a53 100644
--- a/sql/old/3.1.3/03991_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/03991_world_spell_proc_event.sql
@@ -1,6 +1,6 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (28716, 31221, 31222, 31223, 31571, 31572, 31871, 31872, 44745, 61257, 59089, 59088, 58426, 57352, 57318, 56374, 56372, 56337, 56336, 56333, 54787, 53375, 53376, 47570, 47569, 47537, 47536, 47535, 63108);
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
-( 28716, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 0), -- Rejuvenation
+( 28716, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 0), -- Rejuvenation
( 31221, 0x00, 8, 0x00400000, 0x00000000, 0x00000000, 0x00000400, 0x00006001, 0, 0, 0), -- Master of Subtlety (Rank 1)
( 31222, 0x00, 8, 0x00400000, 0x00000000, 0x00000000, 0x00000400, 0x00006001, 0, 0, 0), -- Master of Subtlety (Rank 2)
( 31223, 0x00, 8, 0x00400000, 0x00000000, 0x00000000, 0x00000400, 0x00006001, 0, 0, 0), -- Master of Subtlety (Rank 3)
@@ -11,9 +11,9 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 44745, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 1)
( 59088, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Improved Spell Reflection (Rank 1)
( 59089, 0x00, 4, 0x00000000, 0x00000002, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Improved Spell Reflection (Rank 2)
-( 58426, 0x00, 8, 0x00400000, 0x00000000, 0x00000000, 0x00000400, 0x00006001, 0, 0, 0), -- Overkill
-( 57352, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Darkmoon Card: Death
-( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
+( 58426, 0x00, 8, 0x00400000, 0x00000000, 0x00000000, 0x00000400, 0x00006001, 0, 0, 0), -- Overkill
+( 57352, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Darkmoon Card: Death
+( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
( 56372, 0x00, 3, 0x00000000, 0x00000080, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Glyph of Ice Block
( 54787, 0x00, 3, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00002000, 0, 0, 0), -- Shattered Barrier (Rank 2)
( 53375, 0x00, 10, 0x00000000, 0x00002000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 6), -- Sanctified Wrath (Rank 1)
diff --git a/sql/old/3.1.3/04222_world.sql b/sql/old/3.1.3/04222_world.sql
index 88cba6a134b..7f7f4bf6719 100644
--- a/sql/old/3.1.3/04222_world.sql
+++ b/sql/old/3.1.3/04222_world.sql
@@ -1,4 +1,4 @@
-DELETE FROM spell_pet_auras where `spell` in (56314,56315,56316, 56317, 56318);
+DELETE FROM spell_pet_auras where `spell` in (56314,56315,56316, 56317, 56318);
INSERT INTO spell_pet_auras VALUES
(56314, 0, 0, 57447),
(56314, 1, 0, 57485),
diff --git a/sql/old/3.1.3/04320_world_.sql b/sql/old/3.1.3/04320_world_.sql
index a89e44b88b2..82ad74c2a7c 100644
--- a/sql/old/3.1.3/04320_world_.sql
+++ b/sql/old/3.1.3/04320_world_.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_enchant_proc_data` WHERE `entry` IN (703, 704, 705, 706, 2644, 3772, 3773, 323, 324, 325, 623, 624, 625, 2641, 3768, 3769);
-INSERT INTO spell_enchant_proc_data (`entry`, `customChance`, `PPMChance`,`procEx`) VALUES
+INSERT INTO spell_enchant_proc_data (`entry`, `customChance`, `PPMChance`,`procEx`) VALUES
-- Wound Poison
(703, 0, 21.43,0),
(704, 0, 21.43,0),
diff --git a/sql/old/3.1.3/04321_world.sql b/sql/old/3.1.3/04321_world.sql
index 33365e7aa43..78bd0cf41ca 100644
--- a/sql/old/3.1.3/04321_world.sql
+++ b/sql/old/3.1.3/04321_world.sql
@@ -18,7 +18,7 @@ DELETE FROM `creature_involvedrelation` WHERE `quest`=12727;
INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28913, 12727);
DELETE FROM `spell_script_target` WHERE `entry` IN (48714,57806);
-INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
+INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
('48714', '2', '27237'),
('48714', '2', '27235'),
('48714', '2', '27234'),
diff --git a/sql/old/3.1.3/04356_world_spell_proc_event.sql b/sql/old/3.1.3/04356_world_spell_proc_event.sql
index 1cfa00e989e..d01852a64b8 100644
--- a/sql/old/3.1.3/04356_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04356_world_spell_proc_event.sql
@@ -6,7 +6,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 31871, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 1)
( 31872, 0x00, 10, 0x00000010, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Divine Purpose (Rank 2)
( 33076, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 1)
-( 33953, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 45), -- Essence of Life
+( 33953, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00044000, 0x00000000, 0, 0, 45), -- Essence of Life
( 48110, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
( 48111, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 3)
( 48112, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A22A8, 0x00000000, 0, 0, 0), -- Prayer of Mending (Rank 2)
@@ -21,5 +21,5 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
(51485, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0),
(51486, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0),
( 56372, 0x00, 3, 0x00000000, 0x00000080, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Ice Block
-( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
+( 56374, 0x00, 3, 0x00000000, 0x00004000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Icy Veins
( 61356, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 90); -- Invigorating Earthsiege Diamond Passive
diff --git a/sql/old/3.1.3/04360_world_spell_proc_event.sql b/sql/old/3.1.3/04360_world_spell_proc_event.sql
index eef5674f6fd..b3292e46775 100644
--- a/sql/old/3.1.3/04360_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04360_world_spell_proc_event.sql
@@ -15,7 +15,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 46949, 0x00, 4, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Safeguard
( 46945, 0x00, 4, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Safeguard
( 64415, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Val'anyr Hammer of Ancient Kings - Equip Effect
-( 60066, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45), -- Rage of the Unraveller
+( 60066, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45), -- Rage of the Unraveller
( 62115, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Strength of the Titans
( 62114, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Flow of Knowledge
( 62600, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Savage Defense
diff --git a/sql/old/3.1.3/04367_world_spell_proc_event.sql b/sql/old/3.1.3/04367_world_spell_proc_event.sql
index 5eeacab4de3..6f870132611 100644
--- a/sql/old/3.1.3/04367_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04367_world_spell_proc_event.sql
@@ -1,4 +1,4 @@
-DELETE FROM `spell_proc_event` WHERE `entry` IN (51483, 51485, 51486);
+DELETE FROM `spell_proc_event` WHERE `entry` IN (51483, 51485, 51486);
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
(51483, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000001, 0.000000, 0.000000, 0),
(51485, 0x00000001, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000001, 0.000000, 0.000000, 0),
diff --git a/sql/old/3.1.3/04397_world_playercreateinfo_spell_TDB.sql b/sql/old/3.1.3/04397_world_playercreateinfo_spell_TDB.sql
index 5bc5689bbf1..a648c06fd4d 100644
--- a/sql/old/3.1.3/04397_world_playercreateinfo_spell_TDB.sql
+++ b/sql/old/3.1.3/04397_world_playercreateinfo_spell_TDB.sql
@@ -1,5 +1,5 @@
DELETE FROM `playercreateinfo_spell` WHERE `spell` = 60091;
-INSERT INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES
+INSERT INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES
(1, 2, 60091, 'Judgement Anti-Parry/Dodge Passive'),
(3, 2, 60091, 'Judgement Anti-Parry/Dodge Passive'),
(10, 2, 60091, 'Judgement Anti-Parry/Dodge Passive'),
diff --git a/sql/old/3.1.3/04409_world_spell_proc_event.sql b/sql/old/3.1.3/04409_world_spell_proc_event.sql
index 76184c6b0c0..012a5020c84 100644
--- a/sql/old/3.1.3/04409_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04409_world_spell_proc_event.sql
@@ -3,11 +3,11 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 31876, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Judgements of the Wise (Rank 1)
( 31877, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Judgements of the Wise (Rank 2)
( 31878, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Judgements of the Wise (Rank 3)
-( 34258, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Justice
-( 34262, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Mercy
-( 37195, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Judgement Group Heal
-( 40470, 0x00, 10, 0xC0800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Paladin Tier 6 Trinket
-( 48835, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Justice
+( 34258, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Justice
+( 34262, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Mercy
+( 37195, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Judgement Group Heal
+( 40470, 0x00, 10, 0xC0800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Paladin Tier 6 Trinket
+( 48835, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Justice
( 53380, 0x00, 10, 0x00800000, 0x00020000, 0x00000000, 0x00000000, 0x00040002, 0, 0, 0), -- Righteous Vengeance (Rank 1)
( 53381, 0x00, 10, 0x00800000, 0x00020000, 0x00000000, 0x00000000, 0x00040002, 0, 0, 0), -- Righteous Vengeance (Rank 2)
( 53382, 0x00, 10, 0x00800000, 0x00020000, 0x00000000, 0x00000000, 0x00040002, 0, 0, 0), -- Righteous Vengeance (Rank 3)
diff --git a/sql/old/3.1.3/04423_world.sql b/sql/old/3.1.3/04423_world.sql
index 638d0d3c9d9..dc11d8f1c7e 100644
--- a/sql/old/3.1.3/04423_world.sql
+++ b/sql/old/3.1.3/04423_world.sql
@@ -1,6 +1,6 @@
UPDATE `creature_template` SET `ScriptName`='EventAI', `modelid_A` = 16925,`modelid_H` = 16925, `minmana` = 1000000,`maxmana` = 1000000, `unit_flags` = 33554434 WHERE `entry` IN(29998, 33753, 33752, 33751, 33750);
DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (29998, 33753, 33752, 33751, 33750);
-INSERT INTO `creature_ai_scripts` VALUES
+INSERT INTO `creature_ai_scripts` VALUES
-- Desecration
( 2999801, 29998, 11, 0, 100, 0, 0, 0, 0, 0, 11, 55741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Desecration'),
( 2999800, 29998, 1, 0, 100, 0, 1, 1, 0, 0, 11, 55671, 0, 2, 11, 55710, 0, 2, 0, 0, 0, 0, 'Desecration'),
diff --git a/sql/old/3.1.3/04426_world.sql b/sql/old/3.1.3/04426_world.sql
index 0db361d93bf..387886b3359 100644
--- a/sql/old/3.1.3/04426_world.sql
+++ b/sql/old/3.1.3/04426_world.sql
@@ -1,24 +1,24 @@
-DELETE FROM `creature_questrelation` WHERE `quest` = 12754;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12754);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12754;
-INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12754);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12757;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12757);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12754;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12754);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12754;
-INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12754);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12755;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12755);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12756;
-INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12756);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12757;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12757);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12800;
-INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (31082, 12800);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12801;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (31082, 12801);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12801;
+DELETE FROM `creature_questrelation` WHERE `quest` = 12754;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12754);
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12754;
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12754);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12757;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12757);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12754;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12754);
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12754;
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12754);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12755;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12755);
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12756;
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12756);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12757;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12757);
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12800;
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (31082, 12800);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12801;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (31082, 12801);
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12801;
INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (29173, 12801);
UPDATE `quest_template` SET `PrevQuestId`=13166 WHERE `entry`=13188;
UPDATE `quest_template` SET `PrevQuestId`=13166 WHERE `entry`=13189;
diff --git a/sql/old/3.1.3/04428_world_spell_proc_event.sql b/sql/old/3.1.3/04428_world_spell_proc_event.sql
index bedb7cabe28..378dabd07b2 100644
--- a/sql/old/3.1.3/04428_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04428_world_spell_proc_event.sql
@@ -1,6 +1,6 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (56342, 56343, 56344, 59725);
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
-( 59725, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0, 0, 0), -- Improved Spell Reflection
+( 59725, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0, 0, 0), -- Improved Spell Reflection
( 56342, 0x00, 9, 0x00000018, 0x08000000, 0x00020000, 0x00000000, 0x00000000, 0, 0, 0), -- Lock and Load
( 56343, 0x00, 9, 0x00000018, 0x08000000, 0x00020000, 0x00000000, 0x00000000, 0, 0, 0), -- Lock and Load
( 56344, 0x00, 9, 0x00000018, 0x08000000, 0x00020000, 0x00000000, 0x00000000, 0, 0, 0); -- Lock and Load
diff --git a/sql/old/3.1.3/04536_world_spell_proc_event.sql b/sql/old/3.1.3/04536_world_spell_proc_event.sql
index 875313c3e85..b129541d2bf 100644
--- a/sql/old/3.1.3/04536_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04536_world_spell_proc_event.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (53234, 53237, 53238);
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
(53234, 0x00, 9, 0x00020000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), -- Piercing Shots (Rank 1)
(53237, 0x00, 9, 0x00020000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), -- Piercing Shots (Rank 2)
(53238, 0x00, 9, 0x00020000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0.000000, 0.000000, 0); -- Piercing Shots (Rank 3)
diff --git a/sql/old/3.1.3/04597_world_command.sql b/sql/old/3.1.3/04597_world_command.sql
index 374cbb2c632..e0ac7d06ce7 100644
--- a/sql/old/3.1.3/04597_world_command.sql
+++ b/sql/old/3.1.3/04597_world_command.sql
@@ -1,4 +1,4 @@
DELETE FROM `command` WHERE `name` IN ('reload creature_linked_respawn', 'npc setlink');
-INSERT INTO `command` (`name`,`security`,`help`) VALUES
+INSERT INTO `command` (`name`,`security`,`help`) VALUES
('reload creature_linked_respawn',2,'Syntax: .reload creature_linked_respawn\r\nReload creature_linked_respawn table.'),
('npc setlink',2,'Syntax: .npc setlink $creatureGUID\r\n\r\nLinks respawn of selected creature to the condition that $creatureGUID defined is alive.');
diff --git a/sql/old/3.1.3/04602_world_spell_bonus_data.sql b/sql/old/3.1.3/04602_world_spell_bonus_data.sql
index c10cd0a9df0..3f593f84699 100644
--- a/sql/old/3.1.3/04602_world_spell_bonus_data.sql
+++ b/sql/old/3.1.3/04602_world_spell_bonus_data.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_bonus_data` WHERE `entry`=779;
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
('779', '-1', '-1', '0.063', '-1', 'Druid - Swipe (Bear)');
DELETE FROM `spell_bonus_data` WHERE `entry`=50256;
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(50256, -1, -1, 0.08, -1, 'Pet Skills - Bear (Swipe)');
diff --git a/sql/old/3.1.3/04696_world_spell_proc_event.sql b/sql/old/3.1.3/04696_world_spell_proc_event.sql
index 2fa4a8bf52d..ced445175d2 100644
--- a/sql/old/3.1.3/04696_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/04696_world_spell_proc_event.sql
@@ -1,5 +1,5 @@
-DELETE FROM `spell_proc_event` WHERE `entry` IN (56636,56637,56638);
+DELETE FROM `spell_proc_event` WHERE `entry` IN (56636,56637,56638);
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
( 56636, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6), -- Taste for Blood (Rank 1)
( 56637, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6), -- Taste for Blood (Rank 2)
-( 56638, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6); -- Taste for Blood (Rank 3)
+( 56638, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6); -- Taste for Blood (Rank 3)
diff --git a/sql/old/3.1.3/04762_8294_01_mangos_playercreateinfo_action.sql b/sql/old/3.1.3/04762_8294_01_mangos_playercreateinfo_action.sql
index 8a600ddbbe1..4ff157269c1 100644
--- a/sql/old/3.1.3/04762_8294_01_mangos_playercreateinfo_action.sql
+++ b/sql/old/3.1.3/04762_8294_01_mangos_playercreateinfo_action.sql
@@ -41,7 +41,7 @@ INSERT INTO playercreateinfo_action VALUES
DELETE FROM playercreateinfo_action WHERE race=2 AND class=3 AND button IN (4,9);
INSERT INTO playercreateinfo_action VALUES (2,3,9,20572,0);
--- Moved Berserking to correct action bar location for Non-Heroic Troll classes
+-- Moved Berserking to correct action bar location for Non-Heroic Troll classes
DELETE FROM playercreateinfo_action WHERE race=8 AND class IN (3,5,7,8) AND button IN (3,76);
INSERT INTO playercreateinfo_action VALUES
(8,3,3,20554,0),
diff --git a/sql/old/3.1.3/04862_world_linked_spell.sql b/sql/old/3.1.3/04862_world_linked_spell.sql
index a892d0a8490..a4b849483bc 100644
--- a/sql/old/3.1.3/04862_world_linked_spell.sql
+++ b/sql/old/3.1.3/04862_world_linked_spell.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (19574,34471);
-INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`)
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`)
VALUES
( 19574, 24395, 2, 'Beast Within'),
( 19574, 24396, 2, 'Beast Within'),
diff --git a/sql/old/3.1.3/04872_world_scripts.sql b/sql/old/3.1.3/04872_world_scripts.sql
index 0b264f2b8b7..8e178cfc7eb 100644
--- a/sql/old/3.1.3/04872_world_scripts.sql
+++ b/sql/old/3.1.3/04872_world_scripts.sql
@@ -1,5 +1,5 @@
UPDATE `creature_template` SET `ScriptName` = 'npc_skywing' WHERE `entry` = 22424;
-
+
replace into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','0','-3605.719971','4175.580078','-0.031817','0','START_SKYWING');
replace into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','1','-3602.311279','4253.213867','0.562436','0','');
replace into `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) values('22424','2','-3529.151367','4263.524414','-7.871151','0','');
diff --git a/sql/old/3.1.3/04968_world_8361_spell_bonus_data.sql b/sql/old/3.1.3/04968_world_8361_spell_bonus_data.sql
index da386bc870d..5c55fdc826f 100644
--- a/sql/old/3.1.3/04968_world_8361_spell_bonus_data.sql
+++ b/sql/old/3.1.3/04968_world_8361_spell_bonus_data.sql
@@ -1,3 +1,3 @@
-DELETE FROM `spell_bonus_data` WHERE `entry`=40293;
+DELETE FROM `spell_bonus_data` WHERE `entry`=40293;
INSERT INTO `spell_bonus_data` VALUES
(40293, 0, 0, 0, 0, 'Item - Siphon Essence');
diff --git a/sql/old/3.1.3/05036_character_updates_dual_spec.sql b/sql/old/3.1.3/05036_character_updates_dual_spec.sql
index 545420407fe..42cc603c63a 100644
--- a/sql/old/3.1.3/05036_character_updates_dual_spec.sql
+++ b/sql/old/3.1.3/05036_character_updates_dual_spec.sql
@@ -14,14 +14,14 @@ CREATE TABLE `character_glyphs` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Get glyphs from correct field in data blob and insert into character_glyphs as spec = 0
-INSERT INTO `character_glyphs`
+INSERT INTO `character_glyphs`
SELECT `guid`, 0,
(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1288), ' ', -1) AS UNSIGNED)) AS `glyph1`,
(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1289), ' ', -1) AS UNSIGNED)) AS `glyph2`,
(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1290), ' ', -1) AS UNSIGNED)) AS `glyph3`,
(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1291), ' ', -1) AS UNSIGNED)) AS `glyph4`,
(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1292), ' ', -1) AS UNSIGNED)) AS `glyph5`,
-(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1293), ' ', -1) AS UNSIGNED)) AS `glyph6`
+(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1293), ' ', -1) AS UNSIGNED)) AS `glyph6`
FROM `characters`;
CREATE TABLE `character_talent` (
diff --git a/sql/old/3.1.3/05155_world_scripts_dk.sql b/sql/old/3.1.3/05155_world_scripts_dk.sql
index 341caa75626..37ff93666a0 100644
--- a/sql/old/3.1.3/05155_world_scripts_dk.sql
+++ b/sql/old/3.1.3/05155_world_scripts_dk.sql
@@ -1,16 +1,16 @@
-DELETE FROM `creature_questrelation` WHERE `quest` = 12754;
-INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12754);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12754;
-INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12754);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12755;
+DELETE FROM `creature_questrelation` WHERE `quest` = 12754;
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12754);
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12754;
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12754);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12755;
INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12755);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12755;
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12755;
INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (29077, 12755);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12756;
+DELETE FROM `creature_questrelation` WHERE `quest` = 12756;
INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (29077, 12756);
-DELETE FROM `creature_involvedrelation` WHERE `quest` = 12756;
-INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12756);
-DELETE FROM `creature_questrelation` WHERE `quest` = 12757;
+DELETE FROM `creature_involvedrelation` WHERE `quest` = 12756;
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (28914, 12756);
+DELETE FROM `creature_questrelation` WHERE `quest` = 12757;
INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (28914, 12757);
UPDATE `quest_template` SET `PrevQuestId`=12751 WHERE `entry`=12754;
diff --git a/sql/old/3.1.3/05185_world_scripts_dk.sql b/sql/old/3.1.3/05185_world_scripts_dk.sql
index b13f3315250..e3e36e36fa9 100644
--- a/sql/old/3.1.3/05185_world_scripts_dk.sql
+++ b/sql/old/3.1.3/05185_world_scripts_dk.sql
@@ -49,8 +49,8 @@ INSERT INTO `creature_ai_scripts` VALUES ('2918103', '29181', '0', '0', '100', '
INSERT INTO `creature_ai_scripts` VALUES ('2918104', '29181', '0', '0', '100', '3', '10000', '20000', '10000', '20000', '11', '21807', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'Rayne - SPELL_WRATH');
-
-
+
+
DELETE FROM script_texts WHERE entry BETWEEN -1609286 AND -1609201;
INSERT INTO `script_texts` (`entry`,`content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
-- The Light of Dawn
diff --git a/sql/old/3.1.3/05354_characters_guild_bank_eventlog.sql b/sql/old/3.1.3/05354_characters_guild_bank_eventlog.sql
index 8263b053fab..ac70677d05a 100644
--- a/sql/old/3.1.3/05354_characters_guild_bank_eventlog.sql
+++ b/sql/old/3.1.3/05354_characters_guild_bank_eventlog.sql
@@ -19,6 +19,6 @@ CREATE TABLE `guild_bank_eventlog` (
KEY `guildid_key` (`guildid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--- The reason i decided for such dramatic change is that old guild_bank_eventlog table used `TabId` = 0 for Money events and
+-- The reason i decided for such dramatic change is that old guild_bank_eventlog table used `TabId` = 0 for Money events and
-- used `LogGuid` from 0 to infinity
-- New system uses `LogGuid` from 0 to number defined in config.
diff --git a/sql/old/3.1.3/05354_characters_guild_eventlog.sql b/sql/old/3.1.3/05354_characters_guild_eventlog.sql
index 65cfcf142a5..62e8806aedd 100644
--- a/sql/old/3.1.3/05354_characters_guild_eventlog.sql
+++ b/sql/old/3.1.3/05354_characters_guild_eventlog.sql
@@ -16,6 +16,6 @@ CREATE TABLE `guild_eventlog` (
PRIMARY KEY (`guildid`, `LogGuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Guild Eventlog';
--- The reason i decided for such dramatic change is that old guild_eventlog table didn't have Primary key and
+-- The reason i decided for such dramatic change is that old guild_eventlog table didn't have Primary key and
-- used LogGuids from 0 to infinity
-- New system uses LogGuids from 0 to number defined in config.
diff --git a/sql/old/3.1.3/05416_world_spell_dbc.sql b/sql/old/3.1.3/05416_world_spell_dbc.sql
index 15af83e4c05..c7ce7c86d41 100644
--- a/sql/old/3.1.3/05416_world_spell_dbc.sql
+++ b/sql/old/3.1.3/05416_world_spell_dbc.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_dbc` WHERE `Id` IN(65142);
-INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `AttributesEx3`, `DurationIndex`, `RangeIndex`, `Effect1`, `EffectImplicitTargetA1`, `EffectApplyAuraName1`, `EffectMiscValue1`, `SpellFamilyName`, `SchoolMask`, `Comment`) VALUES
+INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `AttributesEx3`, `DurationIndex`, `RangeIndex`, `Effect1`, `EffectImplicitTargetA1`, `EffectApplyAuraName1`, `EffectMiscValue1`, `SpellFamilyName`, `SchoolMask`, `Comment`) VALUES
(65142, 3, 22, 0x00000080, 21, 13, 6, 6, 255, 22, 15, 8, 'Crypt Fever - SPELL_AURA_LINKED');
diff --git a/sql/old/3.1.3/05445_world_spell_enchant_proc_data.sql b/sql/old/3.1.3/05445_world_spell_enchant_proc_data.sql
index a4d885a690d..54f79066a97 100644
--- a/sql/old/3.1.3/05445_world_spell_enchant_proc_data.sql
+++ b/sql/old/3.1.3/05445_world_spell_enchant_proc_data.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_enchant_proc_data` WHERE `entry` IN(803, 912, 1894, 1898, 1899, 1900, 2673, 2675, 3225, 3239, 3241, 3273, 3368, 3369, 3789, 3869);
-INSERT INTO spell_enchant_proc_data (`entry`, `customChance`, `PPMChance`,`procEx`) VALUES
+INSERT INTO spell_enchant_proc_data (`entry`, `customChance`, `PPMChance`,`procEx`) VALUES
-- Fiery Weapon
(803, 0, 6.0,0),
-- Demonslaying
diff --git a/sql/old/3.1.3/06420_world_script_waypoint.sql b/sql/old/3.1.3/06420_world_script_waypoint.sql
index b9f989ceb26..9e99b4dafdf 100644
--- a/sql/old/3.1.3/06420_world_script_waypoint.sql
+++ b/sql/old/3.1.3/06420_world_script_waypoint.sql
@@ -37,4 +37,4 @@ INSERT INTO `script_waypoint` VALUES
(8856, 15, -8356.65, 385.247, 122.275, 0, ''),
(8856, 16, -8352.99, 379.932, 122.275, 0, ''),
(8856, 17, -8335.58, 393.519, 122.275, 0, ''),
- (8856, 18, -8334.89, 394.13, 122.274, 0, '');
+ (8856, 18, -8334.89, 394.13, 122.274, 0, '');
diff --git a/sql/old/3.1.3/06518_world_spell_proc_event.sql b/sql/old/3.1.3/06518_world_spell_proc_event.sql
index 70e560d67a9..07814f73609 100644
--- a/sql/old/3.1.3/06518_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/06518_world_spell_proc_event.sql
@@ -1,7 +1,7 @@
-- Add 20 second cooldown for Bloodworms
-DELETE FROM `spell_proc_event` WHERE `entry` IN (49027, 49542, 49543);
-INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
-(49027, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20), -- Bloodworms rank 1
-(49542, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20), -- Bloodworms rank 2
+DELETE FROM `spell_proc_event` WHERE `entry` IN (49027, 49542, 49543);
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+(49027, 0, 0, 0, 0, 0, 0, 0, 0, 3, 20), -- Bloodworms rank 1
+(49542, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20), -- Bloodworms rank 2
(49543, 0, 0, 0, 0, 0, 0, 0, 0, 9, 20); -- Bloodworms rank 3
diff --git a/sql/old/3.1.3/06549_world_spell_proc_event.sql b/sql/old/3.1.3/06549_world_spell_proc_event.sql
index a7cae2b1c09..6731935e522 100644
--- a/sql/old/3.1.3/06549_world_spell_proc_event.sql
+++ b/sql/old/3.1.3/06549_world_spell_proc_event.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (16086,16544);
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
( 16086, 0x04, 11, 0x00000000, 0x00040000, 0x00000000, 0x00030000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 1)
( 16544, 0x04, 11, 0x00000000, 0x00040000, 0x00000000, 0x00030000, 0x00000000, 0, 0, 0); -- Improved Fire Nova Totem (Rank 2)
diff --git a/sql/old/3.2.2a/06589_world_battleground_template.sql b/sql/old/3.2.2a/06589_world_battleground_template.sql
index e636898f200..e0c5e69ec1d 100644
--- a/sql/old/3.2.2a/06589_world_battleground_template.sql
+++ b/sql/old/3.2.2a/06589_world_battleground_template.sql
@@ -1,4 +1,4 @@
-INSERT INTO `battleground_template` ( `id` , `MinPlayersPerTeam` , `MaxPlayersPerTeam` , `MinLvl` , `MaxLvl` , `AllianceStartLoc` , `AllianceStartO` , `HordeStartLoc` , `HordeStartO` )
+INSERT INTO `battleground_template` ( `id` , `MinPlayersPerTeam` , `MaxPlayersPerTeam` , `MinLvl` , `MaxLvl` , `AllianceStartLoc` , `AllianceStartO` , `HordeStartLoc` , `HordeStartO` )
VALUES ( 30, 20, 40, 71, 80, 1485, 0, 1486, 0 ) ;
-INSERT INTO `battleground_template` ( `id` , `MinPlayersPerTeam` , `MaxPlayersPerTeam` , `MinLvl` , `MaxLvl` , `AllianceStartLoc` , `AllianceStartO` , `HordeStartLoc` , `HordeStartO` )
+INSERT INTO `battleground_template` ( `id` , `MinPlayersPerTeam` , `MaxPlayersPerTeam` , `MinLvl` , `MaxLvl` , `AllianceStartLoc` , `AllianceStartO` , `HordeStartLoc` , `HordeStartO` )
VALUES ( 32, 0, 40, 0, 80, 0, 0, 0, 0 ) ;
diff --git a/sql/old/3.2.2a/06665_world_creature_classlevelstats.sql b/sql/old/3.2.2a/06665_world_creature_classlevelstats.sql
index 7d10467a1d4..39645bdbc5e 100644
--- a/sql/old/3.2.2a/06665_world_creature_classlevelstats.sql
+++ b/sql/old/3.2.2a/06665_world_creature_classlevelstats.sql
@@ -148,7 +148,7 @@ INSERT INTO `creature_classlevelstats` (`exp`,`class`,`level`,`basehp`,`basemana
(0,2,20,433,490),
(0,2,21,464,510),
(0,2,22,498,544),
-(0,2,23,533,581),
+(0,2,23,533,581),
(0,2,24,571,618),
(0,2,25,610,655),
(0,2,26,651,693),
diff --git a/sql/old/3.2.2a/06710_world_command.sql b/sql/old/3.2.2a/06710_world_command.sql
index cd489316cc0..40eb82f1146 100644
--- a/sql/old/3.2.2a/06710_world_command.sql
+++ b/sql/old/3.2.2a/06710_world_command.sql
@@ -1,3 +1,3 @@
-UPDATE command
+UPDATE command
SET help = 'Syntax: .account set gmlevel [$account] #level [#realmid]\r\n\r\nSet the security level for targeted player (can\'t be used at self) or for account $name to a level of #level on the realm #realmID.\r\n\r\n#level may range from 0 to 3.\r\n\r\n#reamID may be -1 for all realms.'
WHERE name = 'account set gmlevel';
diff --git a/sql/old/3.2.2a/06710_world_trinity_string.sql b/sql/old/3.2.2a/06710_world_trinity_string.sql
index 6fac607e13b..743c67168e5 100644
--- a/sql/old/3.2.2a/06710_world_trinity_string.sql
+++ b/sql/old/3.2.2a/06710_world_trinity_string.sql
@@ -1,3 +1,3 @@
DELETE FROM `trinity_string` WHERE `entry`=11001;
-INSERT INTO trinity_string (`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`) VALUES
+INSERT INTO trinity_string (`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`) VALUES
(11001, 'You have not chosen -1 or the current realmID that you are on.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
diff --git a/sql/old/3.2.2a/06751_world_creature_classlevelstats.sql b/sql/old/3.2.2a/06751_world_creature_classlevelstats.sql
index 97ec2dcd6c4..dbc53bb019e 100644
--- a/sql/old/3.2.2a/06751_world_creature_classlevelstats.sql
+++ b/sql/old/3.2.2a/06751_world_creature_classlevelstats.sql
@@ -137,7 +137,7 @@ INSERT INTO `creature_classlevelstats` (`exp`,`class`,`level`,`basehp`,`basemana
(0,2,20,433,490),
(0,2,21,464,510),
(0,2,22,498,544),
-(0,2,23,533,581),
+(0,2,23,533,581),
(0,2,24,571,618),
(0,2,25,610,655),
(0,2,26,651,693),
diff --git a/sql/old/3.2.2a/06859_world_script_texts.sql b/sql/old/3.2.2a/06859_world_script_texts.sql
index 2029fb79915..becafab3006 100644
--- a/sql/old/3.2.2a/06859_world_script_texts.sql
+++ b/sql/old/3.2.2a/06859_world_script_texts.sql
@@ -1,5 +1,5 @@
DELETE FROM `script_texts` WHERE `npc_entry` IN (25504, 25589);
-INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES
+INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES
(25504, -1750040, 'My father''s aura is quite strong, he cannot be far. Could you be a doll and fight off the monsters wandering throught the mist?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'npc_mootoo_the_younger'),
(25504, -1750041, 'Watch out for the monsters!Which way should we go first? Let''s try this way...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'npc_mootoo_the_younger'),
(25504, -1750042, 'What could this be?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'npc_mootoo_the_younger'),
diff --git a/sql/old/3.2.2a/06932_characters_character_aura.sql b/sql/old/3.2.2a/06932_characters_character_aura.sql
index 0629d89ffa8..74333daaf82 100644
--- a/sql/old/3.2.2a/06932_characters_character_aura.sql
+++ b/sql/old/3.2.2a/06932_characters_character_aura.sql
@@ -1,4 +1,4 @@
-ALTER TABLE `character_aura`
+ALTER TABLE `character_aura`
ADD COLUMN `base_amount0` INT(11) NOT NULL DEFAULT '0' AFTER `amount2`,
ADD COLUMN `base_amount1` INT(11) NOT NULL DEFAULT '0' AFTER `base_amount0`,
ADD COLUMN `base_amount2` INT(11) NOT NULL DEFAULT '0' AFTER `base_amount1`,
diff --git a/sql/old/3.2.2a/06964_world_creature_classlevelstats.sql b/sql/old/3.2.2a/06964_world_creature_classlevelstats.sql
index 328019077e4..18e05926538 100644
--- a/sql/old/3.2.2a/06964_world_creature_classlevelstats.sql
+++ b/sql/old/3.2.2a/06964_world_creature_classlevelstats.sql
@@ -7,8 +7,8 @@ CREATE TABLE `creature_classlevelstats` (
`level` tinyint(1) NOT NULL,
`class` tinyint(1) NOT NULL,
`basehp0` smallint(2) NOT NULL,
- `basehp1` smallint(2) NOT NULL,
- `basehp2` smallint(2) NOT NULL,
+ `basehp1` smallint(2) NOT NULL,
+ `basehp2` smallint(2) NOT NULL,
`basemana` smallint(2) NOT NULL,
`basearmor` smallint(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
diff --git a/sql/old/3.2.2a/07040_world_spell_linked_spell.sql b/sql/old/3.2.2a/07040_world_spell_linked_spell.sql
index 1c857f08963..e0ceddd76c2 100644
--- a/sql/old/3.2.2a/07040_world_spell_linked_spell.sql
+++ b/sql/old/3.2.2a/07040_world_spell_linked_spell.sql
@@ -1,4 +1,4 @@
-- cast s66747 (Totem of the Earthen Ring) after completing q14100 or q14111 (Relic of the Earthen Ring)
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=66744 AND `spell_effect`=66747;
-INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
(66744,66747,0, 'totem of the earthen ring');
diff --git a/sql/old/3.3.2/07394_world_spell_bonus_data.sql b/sql/old/3.3.2/07394_world_spell_bonus_data.sql
index a6f7717201c..9d5cc434d6c 100644
--- a/sql/old/3.3.2/07394_world_spell_bonus_data.sql
+++ b/sql/old/3.3.2/07394_world_spell_bonus_data.sql
@@ -1,6 +1,6 @@
-- Some spell bonus data mostly for DK spells and trinket spells
DELETE FROM `spell_bonus_data` WHERE `entry` IN (63544,54181,55078,55095,50536,52212,51460,48721,45477,54757,45055,60203,60488,45429);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(63544, 0, -1, -1, -1, 'Priest - Empowered Renew'),
(54181, 0, -1, -1, -1, 'Warlock - Fel Synergy'),
(55078, 0, 0, -1, 0.06325, 'Death Knight - Blood Plague'),
diff --git a/sql/old/3.3.2/07465_world_trinity_string.sql b/sql/old/3.3.2/07465_world_trinity_string.sql
index 10ff8de31e7..3e7cb423144 100644
--- a/sql/old/3.3.2/07465_world_trinity_string.sql
+++ b/sql/old/3.3.2/07465_world_trinity_string.sql
@@ -1,5 +1,5 @@
DELETE FROM `trinity_string` WHERE `entry` IN (5024,5025,5026,5027);
-INSERT INTO trinity_string (`entry`, `content_default`) VALUES
+INSERT INTO trinity_string (`entry`, `content_default`) VALUES
(5024, 'Entry: %u'),
(5025, 'Type: %u'),
(5026, 'DisplayID: %u'),
diff --git a/sql/old/3.3.2/07547_world_vehicle_accessory.sql b/sql/old/3.3.2/07547_world_vehicle_accessory.sql
index e929114ed0f..1137d2827aa 100644
--- a/sql/old/3.3.2/07547_world_vehicle_accessory.sql
+++ b/sql/old/3.3.2/07547_world_vehicle_accessory.sql
@@ -25,9 +25,9 @@ INSERT INTO `vehicle_accessory` (`entry`,`accessory_entry`,`seat_id`,`minion`,`d
(33113,33114,2,1, 'Flame Leviathan'),
(33113,33114,3,1, 'Flame Leviathan'),
(33113,33139,7,1, 'Flame Leviathan'),
-(33114,33142,1,1, 'Overload Control Device'),
-(33114,33143,2,1, 'Leviathan Defense Turret'),
-(33214,33218,1,1, 'Mechanolift 304-A'),
+(33114,33142,1,1, 'Overload Control Device'),
+(33114,33143,2,1, 'Leviathan Defense Turret'),
+(33214,33218,1,1, 'Mechanolift 304-A'),
(35637,34705,0,0, 'Marshal Jacob Alerius'' Mount'),
(35633,34702,0,0, 'Ambrose Boltspark''s Mount'),
(35768,34701,0,0, 'Colosos'' Mount'),
diff --git a/sql/old/3.3.2/07604_characters_item_refund_instance.sql b/sql/old/3.3.2/07604_characters_item_refund_instance.sql
index 810d2fa98b4..1b89c17f2e5 100644
--- a/sql/old/3.3.2/07604_characters_item_refund_instance.sql
+++ b/sql/old/3.3.2/07604_characters_item_refund_instance.sql
@@ -1,19 +1,19 @@
DROP TABLE IF EXISTS `item_refund_instance`;
-CREATE TABLE `item_refund_instance` (
-`item_guid` int(11) unsigned NOT NULL COMMENT 'Item GUID',
+CREATE TABLE `item_refund_instance` (
+`item_guid` int(11) unsigned NOT NULL COMMENT 'Item GUID',
`player_guid` int(11) unsigned NOT NULL COMMENT 'Player GUID',
-`paidMoney` int(11) unsigned NOT NULL DEFAULT '0',
-`paidHonor` int(11) unsigned NOT NULL DEFAULT '0',
-`paidArena` int(11) unsigned NOT NULL DEFAULT '0',
-`paidItem_1` mediumint(6) unsigned NOT NULL DEFAULT '0' COMMENT 'item_template.entry',
-`paidItemCount_1` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItem_2` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItemCount_2` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItem_3` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItemCount_3` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItem_4` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItemCount_4` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItem_5` mediumint(6) unsigned NOT NULL DEFAULT '0',
-`paidItemCount_5` mediumint(6) unsigned NOT NULL DEFAULT '0',
-PRIMARY KEY (`item_guid`, `player_guid`)
+`paidMoney` int(11) unsigned NOT NULL DEFAULT '0',
+`paidHonor` int(11) unsigned NOT NULL DEFAULT '0',
+`paidArena` int(11) unsigned NOT NULL DEFAULT '0',
+`paidItem_1` mediumint(6) unsigned NOT NULL DEFAULT '0' COMMENT 'item_template.entry',
+`paidItemCount_1` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItem_2` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItemCount_2` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItem_3` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItemCount_3` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItem_4` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItemCount_4` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItem_5` mediumint(6) unsigned NOT NULL DEFAULT '0',
+`paidItemCount_5` mediumint(6) unsigned NOT NULL DEFAULT '0',
+PRIMARY KEY (`item_guid`, `player_guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
diff --git a/sql/old/3.3.2/07609_world_spell_proc_event.sql b/sql/old/3.3.2/07609_world_spell_proc_event.sql
index 2111d9b3f85..78e5377996d 100644
--- a/sql/old/3.3.2/07609_world_spell_proc_event.sql
+++ b/sql/old/3.3.2/07609_world_spell_proc_event.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (42370);
INSERT INTO `spell_proc_event`
-(`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`)
+(`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`)
VALUES ( 42370, 0x00, 11, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0); -- Merciless Totem of the Third Wind
diff --git a/sql/old/3.3.2/07611_characters_item_refund_instance.sql b/sql/old/3.3.2/07611_characters_item_refund_instance.sql
index cd859a47ee0..86e397946ef 100644
--- a/sql/old/3.3.2/07611_characters_item_refund_instance.sql
+++ b/sql/old/3.3.2/07611_characters_item_refund_instance.sql
@@ -3,7 +3,7 @@ DROP COLUMN `paidHonor`,
DROP COLUMN `paidArena`,
DROP COLUMN `paidItem_1`,
DROP COLUMN `paidItemCount_1`,
-DROP COLUMN `paidItem_2`,
+DROP COLUMN `paidItem_2`,
DROP COLUMN `paidItemCount_2`,
DROP COLUMN `paidItem_3`,
DROP COLUMN `paidItemCount_3`,
diff --git a/sql/old/3.3.2/07721_world_script_texts.sql b/sql/old/3.3.2/07721_world_script_texts.sql
index 5b349bbb14f..ba3bdfc99c9 100644
--- a/sql/old/3.3.2/07721_world_script_texts.sql
+++ b/sql/old/3.3.2/07721_world_script_texts.sql
@@ -35,7 +35,7 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1`
(26529,-1595029,'Get up! Me not done!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13432,1,0,0,'meathook SAY_SLAY_3'),
(26529,-1595030,'New toys!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13429,1,0,0,'meathook SAY_SPAWN'),
(26529,-1595031,'This... not fun...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13433,1,0,0,'meathook SAY_DEATH'),
--- Salramm the Fleshcrafter
+-- Salramm the Fleshcrafter
(26530,-1595032,'Ah, the entertainment has arrived!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13472,1,0,0,'salramm SAY_AGGRO'),
(26530,-1595033,'You are too late, champion of Lordaeron. The dead shall have their day.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13471,1,0,0,'salramm SAY_SPAWN'),
(26530,-1595034,'The fun is just beginning!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13473,1,0,0,'salramm SAY_SLAY_1'),
@@ -49,7 +49,7 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1`
(26530,-1595042,'Your flesh betrays you.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13482,1,0,0,'salramm SAY_STEAL_FLESH_3'),
(26530,-1595043,'Say hello to some friends of mine.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13476,1,0,0,'salramm SAY_SUMMON_GHOULS_1'),
(26530,-1595044,'Come, citizen of Stratholme! Meet your saviors.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13477,1,0,0,'salramm SAY_SUMMON_GHOULS_2'),
--- The Infinite Corruptor
+-- The Infinite Corruptor
-- Couldn't find the value from the audios for `sound` column, not added.
(32273,-1595045,'How dare you interfere with our work here!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,'infinite SAY_AGGRO'),
(32273,-1595046,'My work here is finished!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,'infinite SAY_FAIL'),
diff --git a/sql/old/3.3.2/07748_world_scriptname.sql b/sql/old/3.3.2/07748_world_scriptname.sql
index 55649c12668..4a7110cc24c 100644
--- a/sql/old/3.3.2/07748_world_scriptname.sql
+++ b/sql/old/3.3.2/07748_world_scriptname.sql
@@ -1,5 +1,5 @@
DELETE FROM `areatrigger_scripts` WHERE `entry` IN (5284,5285,5286,5287,4871,4872,4873,5108);
-INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES
+INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES
(5284, 'at_aldurthar_gate'),
(5285, 'at_aldurthar_gate'),
(5286, 'at_aldurthar_gate'),
diff --git a/sql/old/3.3.2/07760_world_spell_group_stack_rules.sql b/sql/old/3.3.2/07760_world_spell_group_stack_rules.sql
index d5c38078e81..3ee3d5a4b4f 100644
--- a/sql/old/3.3.2/07760_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.2/07760_world_spell_group_stack_rules.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_group_stack_rules` WHERE `group_id` IN (1015,1016,1019,1022,1025,1029,1033,1036,1043,1048,1051,1054,1057,1059,1064,1068,1074,1079,1082,1085,1088,1090,1093,1096,1099,1103,1046);
-INSERT INTO `spell_group_stack_rules` (`group_id`,`stack_rule`) VALUES
+INSERT INTO `spell_group_stack_rules` (`group_id`,`stack_rule`) VALUES
(1015,1),
(1016,1),
(1019,1),
diff --git a/sql/old/3.3.2/07797_world_scriptname.sql b/sql/old/3.3.2/07797_world_scriptname.sql
index a68aaa4f164..3c58563bc5d 100644
--- a/sql/old/3.3.2/07797_world_scriptname.sql
+++ b/sql/old/3.3.2/07797_world_scriptname.sql
@@ -1,3 +1,3 @@
-UPDATE `instance_template` SET `script`='instance_blackrock_spire' WHERE `map`=229;
+UPDATE `instance_template` SET `script`='instance_blackrock_spire' WHERE `map`=229;
UPDATE `creature_template` SET `ScriptName`='npc_rookey_whelp' WHERE `entry`=10161;
UPDATE `gameobject_template` SET `ScriptName`='go_rookey_egg' WHERE `entry`=175124;
diff --git a/sql/old/3.3.3a/07906_characters_character_stats.sql b/sql/old/3.3.3a/07906_characters_character_stats.sql
index 82aebbbaf51..35094c8fe2a 100644
--- a/sql/old/3.3.3a/07906_characters_character_stats.sql
+++ b/sql/old/3.3.3a/07906_characters_character_stats.sql
@@ -24,7 +24,7 @@ CREATE TABLE `character_stats` (
`blockPct` float UNSIGNED NOT NULL default '0',
`dodgePct` float UNSIGNED NOT NULL default '0',
`parryPct` float UNSIGNED NOT NULL default '0',
- `critPct` float UNSIGNED NOT NULL default '0',
+ `critPct` float UNSIGNED NOT NULL default '0',
`rangedCritPct` float UNSIGNED NOT NULL default '0',
`spellCritPct` float UNSIGNED NOT NULL default '0',
`attackPower` int(10) UNSIGNED NOT NULL default '0',
diff --git a/sql/old/3.3.3a/07919_characters_worldstates.sql b/sql/old/3.3.3a/07919_characters_worldstates.sql
index b265aebb92e..7605db55536 100644
--- a/sql/old/3.3.3a/07919_characters_worldstates.sql
+++ b/sql/old/3.3.3a/07919_characters_worldstates.sql
@@ -1,4 +1,4 @@
DELETE FROM `worldstates` WHERE `entry` IN (20001,20002);
-INSERT INTO `worldstates` (`entry`,`value`, `comment`) VALUES
+INSERT INTO `worldstates` (`entry`,`value`, `comment`) VALUES
(20001, 0, 'NextArenaPointDistributionTime'),
(20002, 0, 'NextWeeklyQuestResetTime');
diff --git a/sql/old/3.3.3a/07982_world_spell_proc_event.sql b/sql/old/3.3.3a/07982_world_spell_proc_event.sql
index 0f21c884c75..3b92abc6dd9 100644
--- a/sql/old/3.3.3a/07982_world_spell_proc_event.sql
+++ b/sql/old/3.3.3a/07982_world_spell_proc_event.sql
@@ -1,4 +1,4 @@
-- Make Divine Guardian proc on Divine Sacrifice only
DELETE FROM `spell_proc_event` WHERE `entry`=53530;
-INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
+INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
(53530,1,10,0x0000,0x0000,0x0004,0x0400,0x0001,0,100,0);
diff --git a/sql/old/3.3.3a/08052_world_script_texts.sql b/sql/old/3.3.3a/08052_world_script_texts.sql
index 986e3852a33..69c4bd80818 100644
--- a/sql/old/3.3.3a/08052_world_script_texts.sql
+++ b/sql/old/3.3.3a/08052_world_script_texts.sql
@@ -1,4 +1,4 @@
DELETE FROM `script_texts` WHERE `npc_entry`= 29434;
-INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES
-('29434', '-1800042', 'Let me know when you''re ready. I''d prefer sooner than later... what with the slowly dying from poison and all. ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '0', '0', '0', 'injured goblin SAY_QUEST_START'),
+INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES
+('29434', '-1800042', 'Let me know when you''re ready. I''d prefer sooner than later... what with the slowly dying from poison and all. ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '0', '0', '0', 'injured goblin SAY_QUEST_START'),
('29434', '-1800043', 'I''m going to bring the venom sack to Ricket... and then... you know... collapse. Thank you for helping me! ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '0', '0', '0', 'injured goblin SAY_END_WP_REACHED');
diff --git a/sql/old/3.3.3a/08197_world_spell_bonus_data.sql b/sql/old/3.3.3a/08197_world_spell_bonus_data.sql
index 2a6deb43a30..f746fb69ed8 100644
--- a/sql/old/3.3.3a/08197_world_spell_bonus_data.sql
+++ b/sql/old/3.3.3a/08197_world_spell_bonus_data.sql
@@ -1,3 +1,3 @@
DELETE FROM spell_bonus_data WHERE entry = 52042;
-INSERT INTO spell_bonus_data (entry, direct_bonus, dot_bonus, ap_bonus, ap_dot_bonus, comments) VALUES
+INSERT INTO spell_bonus_data (entry, direct_bonus, dot_bonus, ap_bonus, ap_dot_bonus, comments) VALUES
(52042, 0.0445, 0.0445, -1, -1, 'Shaman - Healing Stream Totem Triggered Heal');
diff --git a/sql/old/3.3.3a/08214_world_command.sql b/sql/old/3.3.3a/08214_world_command.sql
index 91fe023ce4d..d3a1d453e43 100644
--- a/sql/old/3.3.3a/08214_world_command.sql
+++ b/sql/old/3.3.3a/08214_world_command.sql
@@ -1,3 +1,3 @@
DELETE FROM `command` WHERE `name` IN ('reload creature_template');
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('reload creature_template','3','Syntax: .reload creature_template $entry\r\nReload the specified creature''s template.');
diff --git a/sql/old/3.3.3a/08244_world_spell_dbc.sql b/sql/old/3.3.3a/08244_world_spell_dbc.sql
index b0b812301c1..52f4d8dd6b1 100644
--- a/sql/old/3.3.3a/08244_world_spell_dbc.sql
+++ b/sql/old/3.3.3a/08244_world_spell_dbc.sql
@@ -1,4 +1,4 @@
DELETE FROM spell_dbc WHERE Id IN (24899, 24900);
-INSERT INTO spell_dbc (Id, Dispel, Mechanic, Attributes, AttributesEx, AttributesEx2, AttributesEx3, AttributesEx4, AttributesEx5, Targets, CastingTimeIndex, AuraInterruptFlags, ProcFlags, ProcChance, ProcCharges, MaxLevel, BaseLevel, SpellLevel, DurationIndex, RangeIndex, StackAmount, EquippedItemClass, EquippedItemSubClassMask, EquippedItemInventoryTypeMask, Effect1, Effect2, Effect3, EffectDieSides1, EffectDieSides2, EffectDieSides3, EffectRealPointsPerLevel1, EffectRealPointsPerLevel2, EffectRealPointsPerLevel3, EffectBasePoints1, EffectBasePoints2, EffectBasePoints3, EffectMechanic1, EffectMechanic2, EffectMechanic3, EffectImplicitTargetA1, EffectImplicitTargetA2, EffectImplicitTargetA3, EffectImplicitTargetB1, EffectImplicitTargetB2, EffectImplicitTargetB3, EffectRadiusIndex1, EffectRadiusIndex2, EffectRadiusIndex3, EffectApplyAuraName1, EffectApplyAuraName2, EffectApplyAuraName3, EffectAmplitude1, EffectAmplitude2, EffectAmplitude3, EffectMultipleValue1, EffectMultipleValue2, EffectMultipleValue3, EffectMiscValue1, EffectMiscValue2, EffectMiscValue3, EffectMiscValueB1, EffectMiscValueB2, EffectMiscValueB3, EffectTriggerSpell1, EffectTriggerSpell2, EffectTriggerSpell3, EffectSpellClassMaskA1, EffectSpellClassMaskA2, EffectSpellClassMaskA3, EffectSpellClassMaskB1, EffectSpellClassMaskB2, EffectSpellClassMaskB3, EffectSpellClassMaskC1, EffectSpellClassMaskC2, EffectSpellClassMaskC3, MaxTargetLevel, SpellFamilyName, SpellFamilyFlags1, SpellFamilyFlags2, SpellFamilyFlags3, MaxAffectedTargets, DmgClass, PreventionType, DmgMultiplier1, DmgMultiplier2, DmgMultiplier3, AreaGroupId, SchoolMask, Comment) VALUES
+INSERT INTO spell_dbc (Id, Dispel, Mechanic, Attributes, AttributesEx, AttributesEx2, AttributesEx3, AttributesEx4, AttributesEx5, Targets, CastingTimeIndex, AuraInterruptFlags, ProcFlags, ProcChance, ProcCharges, MaxLevel, BaseLevel, SpellLevel, DurationIndex, RangeIndex, StackAmount, EquippedItemClass, EquippedItemSubClassMask, EquippedItemInventoryTypeMask, Effect1, Effect2, Effect3, EffectDieSides1, EffectDieSides2, EffectDieSides3, EffectRealPointsPerLevel1, EffectRealPointsPerLevel2, EffectRealPointsPerLevel3, EffectBasePoints1, EffectBasePoints2, EffectBasePoints3, EffectMechanic1, EffectMechanic2, EffectMechanic3, EffectImplicitTargetA1, EffectImplicitTargetA2, EffectImplicitTargetA3, EffectImplicitTargetB1, EffectImplicitTargetB2, EffectImplicitTargetB3, EffectRadiusIndex1, EffectRadiusIndex2, EffectRadiusIndex3, EffectApplyAuraName1, EffectApplyAuraName2, EffectApplyAuraName3, EffectAmplitude1, EffectAmplitude2, EffectAmplitude3, EffectMultipleValue1, EffectMultipleValue2, EffectMultipleValue3, EffectMiscValue1, EffectMiscValue2, EffectMiscValue3, EffectMiscValueB1, EffectMiscValueB2, EffectMiscValueB3, EffectTriggerSpell1, EffectTriggerSpell2, EffectTriggerSpell3, EffectSpellClassMaskA1, EffectSpellClassMaskA2, EffectSpellClassMaskA3, EffectSpellClassMaskB1, EffectSpellClassMaskB2, EffectSpellClassMaskB3, EffectSpellClassMaskC1, EffectSpellClassMaskC2, EffectSpellClassMaskC3, MaxTargetLevel, SpellFamilyName, SpellFamilyFlags1, SpellFamilyFlags2, SpellFamilyFlags3, MaxAffectedTargets, DmgClass, PreventionType, DmgMultiplier1, DmgMultiplier2, DmgMultiplier3, AreaGroupId, SchoolMask, Comment) VALUES
(24899, 0, 0, 400, 1024, 0, 0, 2097152, 0, 0, 1, 0, 0, 101, 0, 0, 0, 0, 21, 1, 0, -1, 0, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Heart of the Wild Bear Effect'),
(24900, 0, 0, 400, 1024, 0, 0, 2097152, 0, 0, 1, 0, 0, 101, 0, 0, 0, 0, 21, 1, 0, -1, 0, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Heart of the Wild Cat Effect');
diff --git a/sql/old/3.3.3a/08263_world_script_texts.sql b/sql/old/3.3.3a/08263_world_script_texts.sql
index 3eb5328aff1..31be0564a10 100644
--- a/sql/old/3.3.3a/08263_world_script_texts.sql
+++ b/sql/old/3.3.3a/08263_world_script_texts.sql
@@ -1,6 +1,6 @@
-- King Ymiron voice by SnakeIce
DELETE FROM `script_texts` WHERE `npc_entry`=26861;
-INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(26861,-1575028, 'You invade my home and then dare to challenge me? I will tear the hearts from your chests and offer them as gifts to the death god! Rualg nja gaborr!' ,13609,1,0,0, 'King Ymirom - SAY_AGGRO'),
(26861,-1575029, 'Your death is only the beginning!' ,13614,1,0,0, 'King Ymirom - SAY_SLAY_1'),
(26861,-1575030, 'You have failed your people!' ,13615,1,0,0, 'King Ymirom - SAY_SLAY_2'),
diff --git a/sql/old/3.3.3a/08293_world_spell_dbc.sql b/sql/old/3.3.3a/08293_world_spell_dbc.sql
index 8bfabc46696..1c35a95da4e 100644
--- a/sql/old/3.3.3a/08293_world_spell_dbc.sql
+++ b/sql/old/3.3.3a/08293_world_spell_dbc.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_dbc` WHERE `id`IN (34448,34452);
-INSERT INTO `spell_dbc` (`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`Targets`,`CastingTimeIndex`,`AuraInterruptFlags`,`ProcFlags`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`RangeIndex`,`StackAmount`,`EquippedItemClass`,`EquippedItemSubClassMask`,`EquippedItemInventoryTypeMask`,`Effect1`,`Effect2`,`Effect3`,`EffectDieSides1`,`EffectDieSides2`,`EffectDieSides3`,`EffectRealPointsPerLevel1`,`EffectRealPointsPerLevel2`,`EffectRealPointsPerLevel3`,`EffectBasePoints1`,`EffectBasePoints2`,`EffectBasePoints3`,`EffectMechanic1`,`EffectMechanic2`,`EffectMechanic3`,`EffectImplicitTargetA1`,`EffectImplicitTargetA2`,`EffectImplicitTargetA3`,`EffectImplicitTargetB1`,`EffectImplicitTargetB2`,`EffectImplicitTargetB3`,`EffectRadiusIndex1`,`EffectRadiusIndex2`,`EffectRadiusIndex3`,`EffectApplyAuraName1`,`EffectApplyAuraName2`,`EffectApplyAuraName3`,`EffectAmplitude1`,`EffectAmplitude2`,`EffectAmplitude3`,`EffectMultipleValue1`,`EffectMultipleValue2`,`EffectMultipleValue3`,`EffectMiscValue1`,`EffectMiscValue2`,`EffectMiscValue3`,`EffectMiscValueB1`,`EffectMiscValueB2`,`EffectMiscValueB3`,`EffectTriggerSpell1`,`EffectTriggerSpell2`,`EffectTriggerSpell3`,`EffectSpellClassMaskA1`,`EffectSpellClassMaskA2`,`EffectSpellClassMaskA3`,`EffectSpellClassMaskB1`,`EffectSpellClassMaskB2`,`EffectSpellClassMaskB3`,`EffectSpellClassMaskC1`,`EffectSpellClassMaskC2`,`EffectSpellClassMaskC3`,`MaxTargetLevel`,`SpellFamilyName`,`SpellFamilyFlags1`,`SpellFamilyFlags2`,`SpellFamilyFlags3`,`MaxAffectedTargets`,`DmgClass`,`PreventionType`,`DmgMultiplier1`,`DmgMultiplier2`,`DmgMultiplier3`,`AreaGroupId`,`SchoolMask`,`Comment`) VALUES
+INSERT INTO `spell_dbc` (`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`Targets`,`CastingTimeIndex`,`AuraInterruptFlags`,`ProcFlags`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`RangeIndex`,`StackAmount`,`EquippedItemClass`,`EquippedItemSubClassMask`,`EquippedItemInventoryTypeMask`,`Effect1`,`Effect2`,`Effect3`,`EffectDieSides1`,`EffectDieSides2`,`EffectDieSides3`,`EffectRealPointsPerLevel1`,`EffectRealPointsPerLevel2`,`EffectRealPointsPerLevel3`,`EffectBasePoints1`,`EffectBasePoints2`,`EffectBasePoints3`,`EffectMechanic1`,`EffectMechanic2`,`EffectMechanic3`,`EffectImplicitTargetA1`,`EffectImplicitTargetA2`,`EffectImplicitTargetA3`,`EffectImplicitTargetB1`,`EffectImplicitTargetB2`,`EffectImplicitTargetB3`,`EffectRadiusIndex1`,`EffectRadiusIndex2`,`EffectRadiusIndex3`,`EffectApplyAuraName1`,`EffectApplyAuraName2`,`EffectApplyAuraName3`,`EffectAmplitude1`,`EffectAmplitude2`,`EffectAmplitude3`,`EffectMultipleValue1`,`EffectMultipleValue2`,`EffectMultipleValue3`,`EffectMiscValue1`,`EffectMiscValue2`,`EffectMiscValue3`,`EffectMiscValueB1`,`EffectMiscValueB2`,`EffectMiscValueB3`,`EffectTriggerSpell1`,`EffectTriggerSpell2`,`EffectTriggerSpell3`,`EffectSpellClassMaskA1`,`EffectSpellClassMaskA2`,`EffectSpellClassMaskA3`,`EffectSpellClassMaskB1`,`EffectSpellClassMaskB2`,`EffectSpellClassMaskB3`,`EffectSpellClassMaskC1`,`EffectSpellClassMaskC2`,`EffectSpellClassMaskC3`,`MaxTargetLevel`,`SpellFamilyName`,`SpellFamilyFlags1`,`SpellFamilyFlags2`,`SpellFamilyFlags3`,`MaxAffectedTargets`,`DmgClass`,`PreventionType`,`DmgMultiplier1`,`DmgMultiplier2`,`DmgMultiplier3`,`AreaGroupId`,`SchoolMask`,`Comment`) VALUES
(34448,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Serverside spell orb of translocation (gobjid=180911)' ),
(34452,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Serverside spell orb of translocation (gobjid=180912)' );
diff --git a/sql/old/3.3.3a/08300_characters_worldstates.sql b/sql/old/3.3.3a/08300_characters_worldstates.sql
index 764fadbee71..1909b1432bd 100644
--- a/sql/old/3.3.3a/08300_characters_worldstates.sql
+++ b/sql/old/3.3.3a/08300_characters_worldstates.sql
@@ -1,3 +1,3 @@
DELETE FROM `worldstates` WHERE `entry` IN (20003);
-INSERT INTO `worldstates` (`entry`,`value`, `comment`) VALUES
+INSERT INTO `worldstates` (`entry`,`value`, `comment`) VALUES
(20003, 0, 'NextBGRandomDailyResetTime');
diff --git a/sql/old/3.3.3a/08348_world_script_texts.sql b/sql/old/3.3.3a/08348_world_script_texts.sql
index af3d17c700b..bd572845474 100644
--- a/sql/old/3.3.3a/08348_world_script_texts.sql
+++ b/sql/old/3.3.3a/08348_world_script_texts.sql
@@ -1,6 +1,6 @@
-- Skadi the Ruthless voice
DELETE FROM `script_texts` WHERE `npc_entry`=26693;
-INSERT INTO `script_texts` VALUES
+INSERT INTO `script_texts` VALUES
(26693,-1575004, "What mongrels dare intrude here? Look alive, my brothers! A feast for the one that brings me their heads!" ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13497,1,0,0, "Skadi - SAY_AGGRO"),
(26693,-1575005, "Not so brash now, are you?" ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13504,1,0,0, "Skadi - SAY_KILL_1"),
(26693,-1575006, "I'll mount your skull from the highest tower!" ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13505,1,0,0, "Skadi - SAY_KILL_2"),
diff --git a/sql/old/3.3.3a/08358_world_spell_linked_spell.sql b/sql/old/3.3.3a/08358_world_spell_linked_spell.sql
index f86328d30e0..ab69f62acf8 100644
--- a/sql/old/3.3.3a/08358_world_spell_linked_spell.sql
+++ b/sql/old/3.3.3a/08358_world_spell_linked_spell.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (69381,69378,69377);
-INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
(69381, 72588, 1, 'Drums of the Wild'),
(69378, 72586, 1, 'Drums of the Forgotten Kings'),
(69377, 72590, 1, 'Runescroll of Fortitude');
diff --git a/sql/old/3.3.3a/08373_world_spell_proc_event.sql b/sql/old/3.3.3a/08373_world_spell_proc_event.sql
index 20f87b3f1f9..5cda0493132 100644
--- a/sql/old/3.3.3a/08373_world_spell_proc_event.sql
+++ b/sql/old/3.3.3a/08373_world_spell_proc_event.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (70807);
-INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
+INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
( 70807, 0, 11, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0, 100, 0); -- Item - Shaman T10 Restoration 2P Bonus
diff --git a/sql/old/3.3.3a/08397_world_command.sql b/sql/old/3.3.3a/08397_world_command.sql
index f90f37e7eab..a993193e25d 100644
--- a/sql/old/3.3.3a/08397_world_command.sql
+++ b/sql/old/3.3.3a/08397_world_command.sql
@@ -1,4 +1,4 @@
DELETE FROM `command` WHERE `name` IN ('instance open','instance close');
-INSERT INTO `command` (`name`, `security`, `help`) VALUES
+INSERT INTO `command` (`name`, `security`, `help`) VALUES
('instance open', 3, 'Syntax: .instance open mapid [normal|heroic|10normal|10heroic|25normal|25heroic]'),
('instance close', 3, 'Syntax: .instance close mapid [normal|heroic|10normal|10heroic|25normal|25heroic]');
diff --git a/sql/old/3.3.3a/08512_world_command.sql b/sql/old/3.3.3a/08512_world_command.sql
index 6293503d492..b093e60ad9a 100644
--- a/sql/old/3.3.3a/08512_world_command.sql
+++ b/sql/old/3.3.3a/08512_world_command.sql
@@ -1,3 +1,3 @@
DELETE FROM `command` WHERE `name`='reload creature_onkill_reputation';
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('reload creature_onkill_reputation','3','Syntax: .reload creature_onkill_reputation\r\nReload creature_onkill_reputation table.');
diff --git a/sql/old/3.3.3a/08586_world_command.sql b/sql/old/3.3.3a/08586_world_command.sql
index b554755df08..7c668b77581 100644
--- a/sql/old/3.3.3a/08586_world_command.sql
+++ b/sql/old/3.3.3a/08586_world_command.sql
@@ -1,4 +1,4 @@
DELETE FROM `command` WHERE `name` IN ('reload item_set_names','reload locales_item_set_name');
-INSERT INTO `command` VALUES
+INSERT INTO `command` VALUES
('reload item_set_names',3,'Syntax: .reload item_set_names\nReload item_set_names table.'),
('reload locales_item_set_name',3,'Syntax: .reload locales_item_set_name\nReload locales_item_set_name table.');
diff --git a/sql/old/3.3.5a/09043_world_spell_script_names.sql b/sql/old/3.3.5a/09043_world_spell_script_names.sql
index d3664d02652..a5b0c75c830 100644
--- a/sql/old/3.3.5a/09043_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09043_world_spell_script_names.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=11958 AND `ScriptName`='spell_mage_cold_snap';
DELETE FROM `spell_script_names` WHERE `spell_id`=32826 AND `ScriptName`='spell_mage_polymorph_visual';
DELETE FROM `spell_script_names` WHERE `spell_id`=31687 AND `ScriptName`='spell_mage_summon_water_elemental';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(11958,'spell_mage_cold_snap'),
(32826,'spell_mage_polymorph_visual'),
(31687,'spell_mage_summon_water_elemental');
diff --git a/sql/old/3.3.5a/09059_world_spell_script_names.sql b/sql/old/3.3.5a/09059_world_spell_script_names.sql
index 1bbc34cc6aa..131af872e0b 100644
--- a/sql/old/3.3.5a/09059_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09059_world_spell_script_names.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=53271 AND `ScriptName`='spell_hun_masters_call';
DELETE FROM `spell_script_names` WHERE `spell_id`=53478 AND `ScriptName`='spell_hun_last_stand_pet';
DELETE FROM `spell_script_names` WHERE `spell_id`=23989 AND `ScriptName`='spell_hun_readiness';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(53271,'spell_hun_masters_call'),
(53478,'spell_hun_last_stand_pet'),
(23989,'spell_hun_readiness');
diff --git a/sql/old/3.3.5a/09122_world_spell_script_names.sql b/sql/old/3.3.5a/09122_world_spell_script_names.sql
index 068b1c34815..38b888ed797 100644
--- a/sql/old/3.3.5a/09122_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09122_world_spell_script_names.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=37877 AND `ScriptName`='spell_pal_blessing_of_faith';
DELETE FROM `spell_script_names` WHERE `spell_id`=-20473 AND `ScriptName`='spell_pal_holy_shock';
DELETE FROM `spell_script_names` WHERE `spell_id`=20425 AND `ScriptName`='spell_pal_judgement_of_command';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(37877,'spell_pal_blessing_of_faith'),
(-20473,'spell_pal_holy_shock'),
(20425,'spell_pal_judgement_of_command');
diff --git a/sql/old/3.3.5a/09144_world_spell_script_names.sql b/sql/old/3.3.5a/09144_world_spell_script_names.sql
index ef3c4179713..afd5ffb2e3c 100644
--- a/sql/old/3.3.5a/09144_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09144_world_spell_script_names.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=21977 AND `ScriptName`='spell_warr_warriors_wrath';
DELETE FROM `spell_script_names` WHERE `spell_id`=12975 AND `ScriptName`='spell_warr_last_stand';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(12975,'spell_warr_last_stand'),
(21977,'spell_warr_warriors_wrath');
diff --git a/sql/old/3.3.5a/09149_world_spell_script_names.sql b/sql/old/3.3.5a/09149_world_spell_script_names.sql
index 5ca5b8c2f5a..b2cb32d6160 100644
--- a/sql/old/3.3.5a/09149_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09149_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=55709 AND `ScriptName`='spell_hun_pet_heart_of_the_phoenix';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(55709, 'spell_hun_pet_heart_of_the_phoenix');
diff --git a/sql/old/3.3.5a/09162_world_spell_script_names.sql b/sql/old/3.3.5a/09162_world_spell_script_names.sql
index 47f46b6d0dc..9d445ab663a 100644
--- a/sql/old/3.3.5a/09162_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09162_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=54044 AND `ScriptName`='spell_hun_pet_carrion_feeder';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(54044, 'spell_hun_pet_carrion_feeder');
diff --git a/sql/old/3.3.5a/09205_world_spell_script_names.sql b/sql/old/3.3.5a/09205_world_spell_script_names.sql
index 15ec8063c06..76a4a463d73 100644
--- a/sql/old/3.3.5a/09205_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09205_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=58601 AND `ScriptName`='spell_gen_remove_flight_auras';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(58601, 'spell_gen_remove_flight_auras');
diff --git a/sql/old/3.3.5a/09554_world_spell_proc_event.sql b/sql/old/3.3.5a/09554_world_spell_proc_event.sql
index b85f7f9d5f2..7ce7fedb783 100644
--- a/sql/old/3.3.5a/09554_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/09554_world_spell_proc_event.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (70727,70730,70803,70805,70841);
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
( 70727, 0x00, 9, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Item - Hunter T10 2P Bonus
( 70730, 0x00, 9, 0x00004000, 0x00001000, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Item - Hunter T10 4P Bonus
( 70803, 0x00, 8, 0x003E0000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 4P Bonus
diff --git a/sql/old/3.3.5a/09555_world_spell_proc_event.sql b/sql/old/3.3.5a/09555_world_spell_proc_event.sql
index fc276812d54..88b1901ffc6 100644
--- a/sql/old/3.3.5a/09555_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/09555_world_spell_proc_event.sql
@@ -3,7 +3,7 @@
-- Totems
-- Sigils
DELETE FROM `spell_proc_event` WHERE `entry` IN (71214, 71217, 67389, 67386, 67392, 71178, 67361, 71176, 71191, 71194, 71186, 67379, 67365, 67363, 64955, 71228, 71226, 67381, 67384);
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
( 64955, 0x00, 10, 0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Paladin T8 Protection Relic
( 67361, 0x00, 7, 0x00000002, 0x00000000, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Item - Druid T9 Balance Relic (Moonfire)
( 67363, 0x00, 10, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 10), -- Item - Paladin T9 Holy Relic (Judgement)
diff --git a/sql/old/3.3.5a/09560_world_spell_proc_event.sql b/sql/old/3.3.5a/09560_world_spell_proc_event.sql
index cc9ca570d4f..9852cdb5b50 100644
--- a/sql/old/3.3.5a/09560_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/09560_world_spell_proc_event.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_proc_event` WHERE `entry`=70854;
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
(70854, 0x00, 4, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0); -- Item - Warrior T10 Melee 2P Bonus
diff --git a/sql/old/3.3.5a/09712_world_spell_threat.sql b/sql/old/3.3.5a/09712_world_spell_threat.sql
index 06c5892fb40..50e8f5bc26f 100644
--- a/sql/old/3.3.5a/09712_world_spell_threat.sql
+++ b/sql/old/3.3.5a/09712_world_spell_threat.sql
@@ -62,7 +62,7 @@ INSERT INTO `spell_threat`(`entry`,`Threat`) VALUES
DELETE FROM `spell_threat` WHERE `entry` IN (47487,47488);
INSERT INTO `spell_threat`(`entry`,`Threat`) VALUES
(47487,546), -- Rank 7
-(47488,770); -- Rank 8
+(47488,770); -- Rank 8
-- Sunder Armor (rank 7)
DELETE FROM `spell_threat` WHERE `entry`=47467;
diff --git a/sql/old/3.3.5a/09715_world_spell_proc_event.sql b/sql/old/3.3.5a/09715_world_spell_proc_event.sql
index f214fdf9b49..c2e2019122e 100644
--- a/sql/old/3.3.5a/09715_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/09715_world_spell_proc_event.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (51692, 51696);
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
( 51692, 0x00, 8, 0x00000204, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Waylay (Rank 1)
( 51696, 0x00, 8, 0x00000204, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0); -- Waylay (Rank 2)
diff --git a/sql/old/3.3.5a/09722_world_exploration_basexp.sql b/sql/old/3.3.5a/09722_world_exploration_basexp.sql
index 8baadf9e215..84a044f7458 100644
--- a/sql/old/3.3.5a/09722_world_exploration_basexp.sql
+++ b/sql/old/3.3.5a/09722_world_exploration_basexp.sql
@@ -1,6 +1,6 @@
-- Base XP for Levels 71 to 79
DELETE FROM `exploration_basexp` WHERE `level` IN (71,72,73,74,75,76,77,78,79);
-INSERT INTO `exploration_basexp` (`level`,`basexp`) VALUES
+INSERT INTO `exploration_basexp` (`level`,`basexp`) VALUES
(71,1330),
(72,1370),
(73,1410),
diff --git a/sql/old/3.3.5a/09762_world_script_texts.sql b/sql/old/3.3.5a/09762_world_script_texts.sql
index db7106b0bf4..1408f657906 100644
--- a/sql/old/3.3.5a/09762_world_script_texts.sql
+++ b/sql/old/3.3.5a/09762_world_script_texts.sql
@@ -1,5 +1,5 @@
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000522 AND -1000517;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000517,'A-Me good. Good, A-Me. Follow... follow A-Me. Home. A-Me go home.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_ame - SAY_READY'),
(0,-1000518,'$c, no hurt A-Me. A-Me good.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_ame - SAY_AGGRO1'),
(0,-1000519,'Good... good, A-Me. A-Me good. Home. Find home.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_ame - SAY_SEARCH'),
@@ -8,20 +8,20 @@ INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,
(0,-1000522,'A-Me home! A-Me good! Good A-Me. Home. Home. Home.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_ame - SAY_FINISH');
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000525 AND -1000523;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000523,'Saeed is currently engaged or awaiting orders to engage. You may check directly east of me and see if Saeed is ready for you. If he is not present then he is off fighting another battle. I recommend that you wait for him to return before attacking Dimensius.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,4,0,0,'npc_professor_dabiri - WHISPER_DABIRI'),
(0,-1000524,'Bessy, is that you?',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_bessy - SAY_THADELL_1'),
(0,-1000525,'Thank you for bringing back my Bessy, $N. I couldn''t live without her!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_bessy - SAY_THADELL_2');
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000574 AND -1000571;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000571,'Ok let''s get out of here!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_isla_starmane - SAY_PROGRESS_1'),
(0,-1000572,'You sure you''re ready? Take a moment.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_isla_starmane - SAY_PROGRESS_2'),
(0,-1000573,'Alright, let''s do this!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_isla_starmane - SAY_PROGRESS_3'),
(0,-1000574,'Ok, I think I can make it on my own from here. Thank you so much for breaking me out of there!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'npc_isla_starmane - SAY_PROGRESS_4');
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000621 AND -1000606;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000606,'Come, $N. Lord Stormrage awaits.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,1,'OVERLORD_SAY_1'),
(0,-1000607,'Lord Illidan will be here shortly.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,1,'OVERLORD_SAY_2'),
(0,-1000609,'But... My lord, I do not understand. $N... He is the orc that has...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,1,'OVERLORD_SAY_4'),
@@ -39,7 +39,7 @@ INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,
(0,-1000621,'You will not harm the boy, Mor''ghor! Quickly, $N, climb on my back!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,22,'YARZILL_THE_MERC_SAY');
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000636 AND -1000629;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000629,'What''s the big idea, Spark?',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'geezle - GEEZLE_SAY_1'),
(0,-1000630,'What''s the big idea? You nearly blew my cover, idiot! I told you to put the compass and navigation maps somewhere safe - not out in the open for any fool to discover.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,4,'geezle - SPARK_SAY_2'),
(0,-1000631,'The Master has gone to great lengths to secure information about the whereabouts of the Exodar. You could have blown the entire operation, including the cover of our spy on the inside.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'geezle - SPARK_SAY_3'),
@@ -50,7 +50,7 @@ INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,
(0,-1000636,'picks up the naga flag.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,2,0,0,'geezle - EMOTE_SPARK');
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1800070 AND -1800064;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1800064,'Beware! We are attacked!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,11,1,'npc_anchorite_truuen - SAY_WP_0'),
(0,-1800065,'It must be the purity of the Mark of the Lightbringer that is drawing forth the Scourge to attack us. We must proceed with caution lest we be overwhelmed!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,11,1,'npc_anchorite_truuen - SAY_WP_1'),
(0,-1800066,'This land truly needs to be cleansed by the Light! Let us continue on to the tomb. It isn''t far now...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,11,1,'npc_anchorite_truuen - SAY_WP_2'),
@@ -60,5 +60,5 @@ INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,
(0,-1800070,'Thank you my friend for making this possible. This is a day that I shall never forget! I think I will stay a while. Please return to High Priestess MacDonnell at the camp. I know that she''ll be keenly interested to know of what has transpired here.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,11,1,'npc_anchorite_truuen - SAY_WP_6');
DELETE FROM `script_texts` WHERE `entry`=-1000600;
-INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+INSERT INTO `script_texts`(`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000600,'Ow! OK, I''ll get back to work, $N!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,11,1,'npc_lazy_peon - SAY_WP_0');
diff --git a/sql/old/3.3.5a/09791_world_spell_proc_event.sql b/sql/old/3.3.5a/09791_world_spell_proc_event.sql
index c30c6c7974e..ed222cf944d 100644
--- a/sql/old/3.3.5a/09791_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/09791_world_spell_proc_event.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_proc_event` WHERE `entry`=63280;
-INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
+INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
(63280,0x00,11,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000,0,0,0); -- Glyph ofTotem of Wrath
diff --git a/sql/old/3.3.5a/09835_world_spell_script_names.sql b/sql/old/3.3.5a/09835_world_spell_script_names.sql
index cce026188f1..298e6c0ae4f 100644
--- a/sql/old/3.3.5a/09835_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09835_world_spell_script_names.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN(29266,57685,58951,70592,70628,74490) AND `ScriptName`='spell_creature_permanent_feign_death';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(29266, 'spell_creature_permanent_feign_death'),
(57685, 'spell_creature_permanent_feign_death'),
(58951, 'spell_creature_permanent_feign_death'),
diff --git a/sql/old/3.3.5a/09840_world_spell_linked_spell.sql b/sql/old/3.3.5a/09840_world_spell_linked_spell.sql
index fab11165a0d..932af4e1a5c 100644
--- a/sql/old/3.3.5a/09840_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/09840_world_spell_linked_spell.sql
@@ -1,5 +1,5 @@
DELETE FROM spell_linked_spell WHERE spell_trigger IN(7744,42292,59752);
-INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type, comment) VALUES
+INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type, comment) VALUES
(7744, 72757, 0, 'Will of the Forsaken Cooldown Trigger (WOTF)'),
(42292, 72752, 0, 'Will of the Forsaken Cooldown Trigger'),
(59752, 72752, 0, 'Will of the Forsaken Cooldown Trigger');
diff --git a/sql/old/3.3.5a/09948_world_spell_script_names.sql b/sql/old/3.3.5a/09948_world_spell_script_names.sql
index 38ccd4aa8b1..eec8b7e6768 100644
--- a/sql/old/3.3.5a/09948_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/09948_world_spell_script_names.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=51840 AND `ScriptName`='spell_q12634_despawn_fruit_tosser';
DELETE FROM `spell_script_names` WHERE `spell_id`=49587 AND `ScriptName`='spell_q12459_seeds_of_natures_wrath';
DELETE FROM `spell_script_names` WHERE `spell_id`=19512 AND `ScriptName`='spell_q6124_6129_apply_salve';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(51840,'spell_q12634_despawn_fruit_tosser'),
(49587,'spell_q12459_seeds_of_natures_wrath'),
(19512,'spell_q6124_6129_apply_salve'); \ No newline at end of file
diff --git a/sql/old/3.3.5a/10029_world_spell_script_names.sql b/sql/old/3.3.5a/10029_world_spell_script_names.sql
index d49fbb41f8b..b99128e82fe 100644
--- a/sql/old/3.3.5a/10029_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/10029_world_spell_script_names.sql
@@ -6,7 +6,7 @@ DELETE FROM `spell_script_names` WHERE `spell_id`=-51685 AND `ScriptName`='spell
DELETE FROM `spell_script_names` WHERE `spell_id`=66118 AND `ScriptName`='spell_gen_leeching_swarm';
DELETE FROM `spell_script_names` WHERE `spell_id` IN (20911,25899) AND `ScriptName`='spell_pal_blessing_of_sanctuary';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(41337,'spell_gen_aura_of_anger'),
(46394,'spell_gen_burn_brutallus'),
(-53302,'spell_hun_sniper_training'),
diff --git a/sql/old/3.3.5a/10105_world_spell_script_names.sql b/sql/old/3.3.5a/10105_world_spell_script_names.sql
index c1d7835a7b1..3c9c0718e3b 100644
--- a/sql/old/3.3.5a/10105_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/10105_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=71905 AND `ScriptName`='spell_item_shadowmourne';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(71905,'spell_item_shadowmourne'); -- Item - Shadowmourne Legendary
diff --git a/sql/old/3.3.5a/10213_world_script_texts.sql b/sql/old/3.3.5a/10213_world_script_texts.sql
index e50d9a49085..d8d60ca6041 100644
--- a/sql/old/3.3.5a/10213_world_script_texts.sql
+++ b/sql/old/3.3.5a/10213_world_script_texts.sql
@@ -2,7 +2,7 @@ DELETE FROM `script_texts` WHERE `entry` IN (-1000002,-1000003);
INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(0,-1000002,'%s goes into a frenzy!',0,2,0,0,'EMOTE_GENERIC_FRENZY'),
(0,-1000003,'%s becomes enraged!',0,2,0,0,'EMOTE_GENERIC_ENRAGED');
-
+
DELETE FROM `script_texts` WHERE `entry` IN (-1575023,-1575024,-1575025,-1575026,-1575027);
INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(26668,-1575023,'Your death approaches.',13850,1,0,0,'svala SAY_SACRIFICE_1'),
diff --git a/sql/old/3.3.5a/10215_world_spell_script_names.sql b/sql/old/3.3.5a/10215_world_spell_script_names.sql
index cebd92c2aae..4058346f882 100644
--- a/sql/old/3.3.5a/10215_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/10215_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id` = 31261 AND `ScriptName`='spell_creature_permanent_feign_death';
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(31261, 'spell_creature_permanent_feign_death');
diff --git a/sql/old/3.3.5a/10282_world_script_texts.sql b/sql/old/3.3.5a/10282_world_script_texts.sql
index b821dad26dc..57bd30d9a9d 100644
--- a/sql/old/3.3.5a/10282_world_script_texts.sql
+++ b/sql/old/3.3.5a/10282_world_script_texts.sql
@@ -7,7 +7,7 @@ INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `comment`)
(29309,-1619016,'For the Lich King!','Elder Nadox SAY_SLAY_2');
DELETE FROM `script_texts` WHERE `entry` IN (-1000637,-1000638,-1000639,-1000640);
-INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `comment`) VALUES
+INSERT INTO `script_texts` (`npc_entry`, `entry`, `content_default`, `comment`) VALUES
('17807', '-1000637', 'Let the trial begin, Bloodwrath, attack!', 'npc_second_trial_controller TEXT_SECOND_TRIAL_1'),
('17807', '-1000638', 'Champion Lightrend, make me proud!', 'npc_second_trial_controller TEXT_SECOND_TRIAL_2'),
('17807', '-1000639', 'Show this upstart how a real Blood Knight fights, Swiftblade!', 'npc_second_trial_controller TEXT_SECOND_TRIAL_3'),
diff --git a/sql/old/3.3.5a/10431_world_trinity_string.sql b/sql/old/3.3.5a/10431_world_trinity_string.sql
index 227fb43fd4d..11c777f561c 100644
--- a/sql/old/3.3.5a/10431_world_trinity_string.sql
+++ b/sql/old/3.3.5a/10431_world_trinity_string.sql
@@ -1,4 +1,4 @@
DELETE FROM `trinity_string` WHERE `entry` IN (1134, 1135);
-INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
(1134, 'Sending tickets is allowed.'),
(1135, 'Sending tickets is not allowed.');
diff --git a/sql/old/3.3.5a/10470_world_trinity_string.sql b/sql/old/3.3.5a/10470_world_trinity_string.sql
index c6cac6daaa0..976151656d2 100644
--- a/sql/old/3.3.5a/10470_world_trinity_string.sql
+++ b/sql/old/3.3.5a/10470_world_trinity_string.sql
@@ -1,4 +1,4 @@
DELETE FROM `trinity_string` WHERE `entry` IN (1027, 1028);
-INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
(1027, 'SQL driver query logging enabled.'),
(1028, 'SQL driver query logging disabled.'); \ No newline at end of file
diff --git a/sql/old/3.3.5a/10548_world_trinity_string.sql b/sql/old/3.3.5a/10548_world_trinity_string.sql
index 2bc5147133b..f59a412174a 100644
--- a/sql/old/3.3.5a/10548_world_trinity_string.sql
+++ b/sql/old/3.3.5a/10548_world_trinity_string.sql
@@ -1,4 +1,4 @@
DELETE FROM `trinity_string` WHERE `entry` IN (5022, 5023);
-INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
(5022, 'Granting ownership to first person that joins the channel \"%s\": Enabled.'),
(5023, 'Granting ownership to first person that joins the channel \"%s\": Disabled.');
diff --git a/sql/old/3.3.5a/10570_world_disables.sql b/sql/old/3.3.5a/10570_world_disables.sql
index a7e1a961d4a..afafcbbd756 100644
--- a/sql/old/3.3.5a/10570_world_disables.sql
+++ b/sql/old/3.3.5a/10570_world_disables.sql
@@ -1,3 +1,3 @@
-ALTER TABLE `disables`
+ALTER TABLE `disables`
ADD COLUMN params_0 varchar (255) NOT NULL default '' AFTER flags,
ADD COLUMN params_1 VARCHAR (255) NOT NULL default '' AFTER params_0;
diff --git a/sql/old/3.3.5a/10654_characters_item_instance.sql b/sql/old/3.3.5a/10654_characters_item_instance.sql
index 297250201cd..3445fa173ec 100644
--- a/sql/old/3.3.5a/10654_characters_item_instance.sql
+++ b/sql/old/3.3.5a/10654_characters_item_instance.sql
@@ -25,4 +25,4 @@ ALTER TABLE `guild_bank_item` DROP COLUMN `item_entry`;
ALTER TABLE `mail_items` DROP COLUMN `item_template`;
-- Delete orphan records (use at your own risk)
--- DELETE FROM item_instance WHERE itemEntry = 0;
+-- DELETE FROM item_instance WHERE itemEntry = 0;
diff --git a/sql/old/3.3.5a/10903_world_spell_script_names.sql b/sql/old/3.3.5a/10903_world_spell_script_names.sql
index 46e1ff570e0..a316380109b 100644
--- a/sql/old/3.3.5a/10903_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/10903_world_spell_script_names.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN ( 66118, 67630, 68646, 68647 );
-INSERT INTO `spell_script_names` VALUES
+INSERT INTO `spell_script_names` VALUES
(66118, 'spell_gen_leeching_swarm'),
(67630, 'spell_gen_leeching_swarm'),
(68646, 'spell_gen_leeching_swarm'),
diff --git a/sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql b/sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql
index 8c35e0d3712..08ecb3787a6 100644
--- a/sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql
+++ b/sql/old/3.3.5a/2011_01_08_02_world_scriptname.sql
@@ -1,5 +1,5 @@
DELETE FROM spell_script_names WHERE spell_id IN (66630,66637,66656);
-INSERT INTO spell_script_names (spell_id,ScriptName) VALUES
+INSERT INTO spell_script_names (spell_id,ScriptName) VALUES
(66630,'spell_gen_gunship_portal'),
(66637,'spell_gen_gunship_portal'),
(66656,'spell_gen_parachute_ic');
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql b/sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql
index 26e465268d6..0d0ba276ff5 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_account_data.sql
@@ -1,5 +1,5 @@
-ALTER TABLE `account_data`
-CHANGE `account` `account` INT(10) UNSIGNED DEFAULT '0' NOT NULL,
-CHANGE `type` `type` TINYINT(3) UNSIGNED DEFAULT '0' NOT NULL,
+ALTER TABLE `account_data`
+CHANGE `account` `account` INT(10) UNSIGNED DEFAULT '0' NOT NULL,
+CHANGE `type` `type` TINYINT(3) UNSIGNED DEFAULT '0' NOT NULL,
CHANGE `time` `time` INT(10) UNSIGNED DEFAULT '0' NOT NULL,
CHANGE `data` `data` BLOB NOT NULL; \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_addons.sql b/sql/old/3.3.5a/2011_01_19_00_characters_addons.sql
index 90ebbce5613..3019cdcc8f7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_addons.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_addons.sql
@@ -1,3 +1,3 @@
-ALTER TABLE `addons`
+ALTER TABLE `addons`
ROW_FORMAT=DEFAULT,
CHANGE `crc` `crc` INT(10) UNSIGNED DEFAULT '0' NOT NULL; \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql b/sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql
index 5942e008bb5..3dfe9c2a7a5 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_arena_team.sql
@@ -1,4 +1,4 @@
-ALTER TABLE `arena_team`
+ALTER TABLE `arena_team`
CHANGE `name` `name` VARCHAR(24) NOT NULL,
CHANGE `EmblemStyle` `EmblemStyle` TINYINT(3) UNSIGNED DEFAULT '0' NOT NULL,
CHANGE `BorderStyle` `BorderStyle` TINYINT(3) UNSIGNED DEFAULT '0' NOT NULL; \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_channels.sql b/sql/old/3.3.5a/2011_01_19_00_characters_channels.sql
index cd70f39e30f..1c0b4a927fc 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_channels.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_channels.sql
@@ -1,5 +1,5 @@
ALTER TABLE `channels`
ROW_FORMAT=DEFAULT,
CHANGE `BannedList` `BannedList` TEXT,
-DROP PRIMARY KEY,
+DROP PRIMARY KEY,
ADD PRIMARY KEY (`m_name`, `m_team`); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql b/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql
index 09f24ed8bf9..9247a180b48 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_character_battleground_data.sql
@@ -1,7 +1,7 @@
ALTER TABLE `character_battleground_data`
ROW_FORMAT=DEFAULT,
CHANGE `guid` `guid` INT(10) UNSIGNED DEFAULT '0' NOT NULL COMMENT 'Global Unique Identifier',
-CHANGE `instance_id` `instance_id` INT(10) UNSIGNED NOT NULL,
+CHANGE `instance_id` `instance_id` INT(10) UNSIGNED NOT NULL,
CHANGE `team` `team` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE `join_map` `join_map` SMALLINT(5) UNSIGNED DEFAULT '0' NOT NULL,
CHANGE `taxi_start` `taxi_start` INT(10) UNSIGNED DEFAULT '0' NOT NULL,
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql b/sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql
index 3f4fe76d189..abdcbede5d0 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_character_equipmentsets.sql
@@ -2,22 +2,22 @@ ALTER TABLE `character_equipmentsets`
CHANGE `guid` `guid` INT(10) DEFAULT '0' NOT NULL,
CHANGE `setindex` `setindex` TINYINT(3) UNSIGNED DEFAULT '0' NOT NULL,
CHANGE `name` `name` VARCHAR(31) NOT NULL,
-CHANGE `item0` `item0` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item1` `item1` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item2` `item2` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item3` `item3` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item4` `item4` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item5` `item5` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item6` `item6` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item7` `item7` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item8` `item8` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item9` `item9` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item10` `item10` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item11` `item11` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item12` `item12` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item13` `item13` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item14` `item14` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item15` `item15` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item16` `item16` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-CHANGE `item17` `item17` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item0` `item0` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item1` `item1` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item2` `item2` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item3` `item3` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item4` `item4` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item5` `item5` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item6` `item6` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item7` `item7` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item8` `item8` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item9` `item9` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item10` `item10` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item11` `item11` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item12` `item12` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item13` `item13` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item14` `item14` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item15` `item15` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item16` `item16` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+CHANGE `item17` `item17` INT(10) UNSIGNED NOT NULL DEFAULT '0',
CHANGE `item18` `item18` INT(10) UNSIGNED NOT NULL DEFAULT '0'; \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql b/sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql
index 17e54576050..83c85f8ebe7 100644
--- a/sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql
+++ b/sql/old/3.3.5a/2011_01_19_00_characters_character_tutorial.sql
@@ -1,7 +1,7 @@
ALTER TABLE `character_tutorial`
ROW_FORMAT=DEFAULT,
CHANGE `account` `account` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Account Identifier',
-DROP PRIMARY KEY,
+DROP PRIMARY KEY,
ADD PRIMARY KEY (`account`),
DROP `realmid`,
CHANGE `tut0` `tut0` INT(10) UNSIGNED DEFAULT '0' NOT NULL,
diff --git a/sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql b/sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql
index 38b3b82c0f1..7455b626c2c 100644
--- a/sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql
+++ b/sql/old/3.3.5a/2011_01_20_00_characters_pet_aura.sql
@@ -2,9 +2,9 @@ ALTER TABLE `pet_aura`
ROW_FORMAT=DEFAULT,
CHANGE `guid` `guid` INT(10) UNSIGNED DEFAULT '0' NOT NULL COMMENT 'Global Unique Identifier',
CHANGE `spell` `spell` MEDIUMINT(8) UNSIGNED DEFAULT '0' NOT NULL,
-CHANGE `amount0` `amount0` MEDIUMINT(8) NOT NULL,
-CHANGE `amount1` `amount1` MEDIUMINT(8) NOT NULL,
-CHANGE `amount2` `amount2` MEDIUMINT(8) NOT NULL,
-CHANGE `base_amount0` `base_amount0` MEDIUMINT(8) NOT NULL,
-CHANGE `base_amount1` `base_amount1` MEDIUMINT(8) NOT NULL,
+CHANGE `amount0` `amount0` MEDIUMINT(8) NOT NULL,
+CHANGE `amount1` `amount1` MEDIUMINT(8) NOT NULL,
+CHANGE `amount2` `amount2` MEDIUMINT(8) NOT NULL,
+CHANGE `base_amount0` `base_amount0` MEDIUMINT(8) NOT NULL,
+CHANGE `base_amount1` `base_amount1` MEDIUMINT(8) NOT NULL,
CHANGE `base_amount2` `base_amount2` MEDIUMINT(8) NOT NULL; \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql b/sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql
index 624f6dbc582..647ea85f8c9 100644
--- a/sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql
+++ b/sql/old/3.3.5a/2011_01_22_01_characters_character_inventory.sql
@@ -1,2 +1,2 @@
-ALTER TABLE `character_inventory`
+ALTER TABLE `character_inventory`
ADD UNIQUE KEY (`guid`,`bag`,`slot`);
diff --git a/sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql b/sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql
index 6e4233c5431..043e95b026d 100644
--- a/sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql
+++ b/sql/old/3.3.5a/2011_01_24_00_world_scriptname.sql
@@ -1,8 +1,8 @@
UPDATE `creature_template` SET `ScriptName`='' WHERE `entry`=27638;
UPDATE `creature_template` SET `ScriptName`='npc_azure_ring_captain' WHERE `entry`=28236;
-
+
DELETE FROM `spell_script_names` WHERE `spell_id` IN (61407,62136,54069,56251,50785,59372);
-INSERT INTO `spell_script_names` (spell_id,ScriptName) VALUES
+INSERT INTO `spell_script_names` (spell_id,ScriptName) VALUES
(61407,'spell_varos_energize_core_area_entry'),
(62136,'spell_varos_energize_core_area_entry'),
(54069,'spell_varos_energize_core_area_entry'),
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql b/sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql
index 368f2db97c3..d28eec73111 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql
+++ b/sql/old/3.3.5a/2011_02_04_00_world_battleground_isle_of_conquest.sql
@@ -27,13 +27,13 @@ UPDATE `creature_template` SET `spell1`=67462,`spell2`=69505 WHERE `entry`=36355
-- Catapult speed
UPDATE `creature_template` SET `speed_run`=2.428571,`speed_walk`=2.8 WHERE `entry`=34793;
--- Update alliance boss faction
+-- Update alliance boss faction
UPDATE `creature_template` SET `faction_A`=84, `faction_H`=84 WHERE `entry`=34924;
--- Update horde boss faction
+-- Update horde boss faction
UPDATE `creature_template` SET `faction_A`=83, `faction_H`=83 WHERE `entry`=34922;
--- Update Kor Kron Guard faction
+-- Update Kor Kron Guard faction
UPDATE `creature_template` SET `faction_A`=83, `faction_H`=83 WHERE `entry`=34918;
--- Update Npc Seven TH Legion Infantry faction
+-- Update Npc Seven TH Legion Infantry faction
UPDATE `creature_template` SET `faction_A`=84, `faction_H`=84 WHERE `entry`=34919;
-- those doors are not selectables
@@ -57,7 +57,7 @@ DELETE FROM `disables` WHERE `sourceType`=4 AND `entry` IN (12068,12114);
-- Refinery's and Quarry's spells.
DELETE FROM `spell_area` WHERE `spell` IN (68719,68720);
-INSERT INTO `spell_area` (`spell`,`area`) VALUES
+INSERT INTO `spell_area` (`spell`,`area`) VALUES
(68719,4741),
(68719,4747),
(68719,4748),
diff --git a/sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql b/sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql
index 2e07a483473..25747bd3049 100644
--- a/sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql
+++ b/sql/old/3.3.5a/2011_02_04_00_world_mail_loot_template.sql
@@ -2,33 +2,33 @@
SET @MAIL:=118; -- Set in DBC
UPDATE `quest_template` SET `RewMailTemplateId`=@MAIL, `RewMailDelaySecs`=86400 WHERE `entry` IN (6962); -- Set mail delivery
DELETE FROM `mail_loot_template` WHERE `entry`=@MAIL;
-INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@MAIL,17685,100,1,0,1,1); -- Attach item to mail
-- Reward from Treats for Greatfather Winter (alliance)
SET @MAIL:=102; -- Set in DBC
UPDATE `quest_template` SET `RewMailTemplateId`=@MAIL, `RewMailDelaySecs`=86400 WHERE `entry` IN (7025); -- Set mail delivery
DELETE FROM `mail_loot_template` WHERE `entry`=@MAIL;
-INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@MAIL,17685,100,1,0,1,1); -- Attach item to mail
-- Reward from Stolen Winter Veil Treats (alliance)
SET @MAIL:=117; -- Set in DBC
UPDATE `quest_template` SET `RewMailTemplateId`=@MAIL, `RewMailDelaySecs`=86400 WHERE `entry` IN (7042); -- Set mail delivery
DELETE FROM `mail_loot_template` WHERE `entry`=@MAIL;
-INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@MAIL,17712,100,1,0,1,1); -- Attach item to mail
-- Reward from Metzen the Reindeer (alliance)
SET @MAIL:=161; -- Set in DBC
UPDATE `quest_template` SET `RewMailTemplateId`=@MAIL, `RewMailDelaySecs`=86400 WHERE `entry` IN (8762); -- Set mail delivery
DELETE FROM `mail_loot_template` WHERE `entry`=@MAIL;
-INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@MAIL,21216,100,1,0,1,1); -- Attach item to mail
-- Reward from Metzen the Reindeer (horde)
SET @MAIL:=122; -- Set in DBC
UPDATE `quest_template` SET `RewMailTemplateId`=@MAIL, `RewMailDelaySecs`=86400 WHERE `entry` IN (8746); -- Set mail delivery
DELETE FROM `mail_loot_template` WHERE `entry`=@MAIL;
-INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `mail_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@MAIL,21216,100,1,0,1,1); -- Attach item to mail }}}
diff --git a/sql/old/3.3.5a/2011_02_04_03_world_sai.sql b/sql/old/3.3.5a/2011_02_04_03_world_sai.sql
index be51bfd4c70..f1ad69dbbff 100644
--- a/sql/old/3.3.5a/2011_02_04_03_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_04_03_world_sai.sql
@@ -1,4 +1,4 @@
--- Honor Hold Archer fixup (tested)
+-- Honor Hold Archer fixup (tested)
-- Console no longer spamming waypoint script errors in Honor Hold
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=16896;
-- Honor Hold Archer "guid 58449 shoot at Honor Hold Target Dummy Right" SAI "Tested"
diff --git a/sql/old/3.3.5a/2011_02_05_04_world_game_event.sql b/sql/old/3.3.5a/2011_02_05_04_world_game_event.sql
index eb8db804358..0ac99d37265 100644
--- a/sql/old/3.3.5a/2011_02_05_04_world_game_event.sql
+++ b/sql/old/3.3.5a/2011_02_05_04_world_game_event.sql
@@ -1,6 +1,6 @@
-- Update Quest_conditions for Quest: The Lunar Festival
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=19 AND `SourceEntry`IN(8870,8871,8872,8873,8874,8875);
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
-- Alliance
(19,0,8871,0,4,1519,0,0,0,0,'The Lunar Festival: Stormwind'),
(19,0,8872,0,4,1657,0,0,0,0,'The Lunar Festival: Darnassus'),
@@ -13,7 +13,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (15872,15873,15874,15879,15880,15882);
DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (15872,15873,15874,15879,15880,15882); -- Cleanup
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (15872,15873,15874,15879,15880,15882);
-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
+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
-- small fireworks
-- blue firework
(15879,0,0,0,1,0,100,1,0,0,0,0,11,26344,2,0,0,0,0,1,0,0,0,0,0,0,0, 'cast fireworks'),
diff --git a/sql/old/3.3.5a/2011_02_05_05_world_sai.sql b/sql/old/3.3.5a/2011_02_05_05_world_sai.sql
index 24278716679..e166c16c71d 100644
--- a/sql/old/3.3.5a/2011_02_05_05_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_05_05_world_sai.sql
@@ -1,4 +1,4 @@
--- Scourge Flamespitter SAI
+-- Scourge Flamespitter SAI
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=25582;
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-118407,-118408,-118425,-118421,-118422,-118426,-118427,-118375,-118405,-118409,-118423,-118428,-118429);
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
diff --git a/sql/old/3.3.5a/2011_02_05_07_world_sai.sql b/sql/old/3.3.5a/2011_02_05_07_world_sai.sql
index b746893890b..79c6ea941bd 100644
--- a/sql/old/3.3.5a/2011_02_05_07_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_05_07_world_sai.sql
@@ -36,7 +36,7 @@ UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,75,45776,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Apply aura on spawn'),
(@ENTRY,0,1,0,8,0,100,0,62767,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'On spell hit run script'),
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,28,45776,0,0,0,0,0,1,0,0,0,0,0,0,0,'Remove aura'),
diff --git a/sql/old/3.3.5a/2011_02_05_08_world_sai.sql b/sql/old/3.3.5a/2011_02_05_08_world_sai.sql
index be2e11b4178..7ea0426e9c1 100644
--- a/sql/old/3.3.5a/2011_02_05_08_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_05_08_world_sai.sql
@@ -36,7 +36,7 @@ INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`pr
(@Zierhut,0,0, 'Renounce the Scarlet Onslaught! Don''t listen to the lies of the high general and the grand admiral any longer!',1,0,100,5,0,0, 'Lead Cannoneer Zierhut'),
(@Mercer,0,0, 'Abbendis is nothing but a harlot and Grand Admiral Westwind is selling her cheap like he sold us out!',1,0,100,5,0,0, 'Stable Master Mercer');
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@Goodman,@Zierhut,@Mercer,@Jordan);
-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
+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
(@Goodman,0,0,0,8,0,100,0,@Compelled,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'The Denouncement/Goodman: On spellhit set phase 2'),
(@Goodman,0,1,0,6,2,100,0,0,0,0,0,85,@DeathGoodman,0,0,0,0,0,1,0,0,0,0,0,0,0, 'The Denouncement/Goodman: On death in phase 2 cast spell'),
(@Goodman,0,2,0,25,0,100,0,0,0,0,0,28,@Compelled,0,0,0,0,0,1,0,0,0,0,0,0,0, 'The Denouncement/Goodman: On reset remove Compelled aura'),
@@ -58,7 +58,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@Jordan,0,3,0,25,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'The Denouncement/Jordan: On reset set phase 0'),
(@Jordan,0,4,0,6,2,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'The Denouncement/Jordan: On death in phase 2 yell');
--- Kill a unrelated console DB error
+-- Kill a unrelated console DB error
DELETE FROM `creature_addon` WHERE `guid`=88103;
-- Valiance Keep Footman SAI (by Malcrom)
diff --git a/sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql b/sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql
index 4aeb7a70775..940d175a7dd 100644
--- a/sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/2011_02_07_01_world_creature_questrelation.sql
@@ -6,7 +6,7 @@ INSERT INTO `creature_involvedrelation`(`id`,`quest`) VALUES (36296,14488);
-- Missing loot form Standard Apothecary Serving Kit request for quest You've Been Served
DELETE FROM `item_loot_template` WHERE `entry`=49631 AND `item` IN (49352,49351,49635);
-INSERT INTO `item_loot_template`(`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `item_loot_template`(`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(49631,49352,100,1,0,1,1),
(49631,49351,100,1,0,1,1),
(49631,49635,100,1,0,1,1);
diff --git a/sql/old/3.3.5a/2011_02_07_02_world_sai.sql b/sql/old/3.3.5a/2011_02_07_02_world_sai.sql
index 1af21f5d048..f36ad4e4156 100644
--- a/sql/old/3.3.5a/2011_02_07_02_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_07_02_world_sai.sql
@@ -1,5 +1,5 @@
-- SAI for quest 10345 "The Flesh Lies..."
--- Spell script target for Protectorate Igniter (quest The Flesh Lies...)
+-- Spell script target for Protectorate Igniter (quest The Flesh Lies...)
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=35372;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,35372,1,18,1,20561,0,0,'', 'Protectorate Igniter');
@@ -10,7 +10,7 @@ UPDATE `creature_template` SET `unit_flags`=`unit_flags`|256 WHERE `entry`=@ENTR
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,'On spawn set phase 1'),
(@ENTRY,0,1,0,8,1,100,0,35372,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'On spell hit run script'),
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'set phase 0'),
@@ -23,7 +23,7 @@ SET @ENTRY:=25321;
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0,'On spawn set phase 1'),
(@ENTRY,0,1,0,8,1,100,0,45504,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'On spell hit run script'),
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'set phase 0'),
@@ -32,7 +32,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY*100,9,3,0,0,0,100,0,1000,1000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'despawn');
-- Add texts for this NPC.
DELETE FROM `creature_text` WHERE `entry`=25321;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(25321,0,0, 'Thank you for freeing me! May the tides always favor you.',0,0,100,1,0,0, 'Kaskala Craftman'),
(25321,0,1, 'Do not allow Kaskala to forget what has happened here.',0,0,100,1,0,0, 'Kaskala Craftman');
-- Kaskala Shaman SAI.
@@ -40,7 +40,7 @@ SET @ENTRY:=25322;
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,22,1,0,0,0,0,0,0,0,0,0,0,0,0,0, 'On spawn set phase 1'),
(@ENTRY,0,1,0,8,1,100,0,45504,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'On spell hit run script'),
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 'set phase 0'),
@@ -49,7 +49,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY*100,9,3,0,0,0,100,0,1000,1000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'despawn');
-- Add texts for this NPC.
DELETE FROM `creature_text` WHERE `entry`=25322;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(25322,0,0, 'May the ancestors always aid you, $n, as you have aided me.',0,0,100,1,0,0, 'Kaskala Shaman'),
(25322,0,1, 'Thank you, $n. May the winds and seas always deliver you safely.',0,0,100,1,0,0, 'Kaskala Shaman');
-- Delete the old EAI script.
diff --git a/sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql b/sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql
index db52b3310fa..e3ebb34c839 100644
--- a/sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql
+++ b/sql/old/3.3.5a/2011_02_10_02_world_instance_oculus.sql
@@ -5,7 +5,7 @@ UPDATE `creature_template` SET `InhabitType`=5 WHERE `entry`=30879;
-- spell script target
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=57963;
-INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, ErrorTextId, ScriptName, COMMENT) VALUES
+INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, ErrorTextId, ScriptName, COMMENT) VALUES
(13,0,57963,0,18,1,27656,0,0,'',NULL);
-- not sure about this, execute at your own risk
diff --git a/sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql b/sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql
index 70d360c1689..a5f562fe517 100644
--- a/sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql
+++ b/sql/old/3.3.5a/2011_02_11_00_world_coredevdata.sql
@@ -9,7 +9,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceEntry`,`ConditionType
-- Not the Blizzlike waypoints, Malcrom has those, but these are temporary
DELETE FROM `script_waypoint` WHERE `entry`=29602;
-INSERT INTO `script_waypoint` (entry,pointid,location_x,location_y,location_z,waittime) VALUES
+INSERT INTO `script_waypoint` (entry,pointid,location_x,location_y,location_z,waittime) VALUES
(29602,1,7085.374,-1938.052,773.318,0),
(29602,2,7085.374,-1938.052,773.318,0),
(29602,3,7065.382,-1988.499,768.9483,0),
diff --git a/sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql b/sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql
index 4f225d8c984..29c25302199 100644
--- a/sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql
+++ b/sql/old/3.3.5a/2011_02_11_01_world_coredevdata.sql
@@ -21,7 +21,7 @@ INSERT INTO `creature` (guid, id, map, spawnMask, phaseMask, modelid, equipment_
(100234, 28183, 578, 3, 1, 0, 0, 1328.00171, 1061.15283, 439.232849, 2.8972466, 120, 0, 0, 1, 0, 0, 0);
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (54069,56251);
-INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, ErrorTextId, ScriptName, COMMENT) VALUES
+INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, ErrorTextId, ScriptName, COMMENT) VALUES
(13,0,54069,0,18,1,28183,0,0,'',NULL),
(13,0,56251,0,18,1,28183,0,0,'',NULL);
@@ -29,7 +29,7 @@ DELETE FROM `creature_template_addon` WHERE `entry`=28183;
INSERT INTO `creature_template_addon` (entry,auras) VALUE (28183,'50798 0');
DELETE FROM `creature_text` WHERE `entry`=27447;
-INSERT INTO `creature_text` (entry,groupid,id,TEXT,TYPE,LANGUAGE,sound) VALUES
+INSERT INTO `creature_text` (entry,groupid,id,TEXT,TYPE,LANGUAGE,sound) VALUES
(27447,0,0,'There will be no mercy!',1,0,13649),
(27447,1,1,'Blast them! Destroy them!',1,0,13650),
(27447,2,2,'%s calls an Azure Ring Captain!',3,0,0),
diff --git a/sql/old/3.3.5a/2011_02_15_00_world_sai.sql b/sql/old/3.3.5a/2011_02_15_00_world_sai.sql
index e23f3d31f61..d12b6ef44ae 100644
--- a/sql/old/3.3.5a/2011_02_15_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_15_00_world_sai.sql
@@ -1,6 +1,6 @@
-- Conditions for Writhing Choker and Unliving Choker
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceEntry` IN (38673,38660);
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,28519,38660,0,14,12238,0,0,0,'',NULL),
(1,28519,38673,0,8,12238,0,0,0,'',NULL);
@@ -18,14 +18,14 @@ SET @ENTRY := 23859;
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0, 'Greer Orehammer - Script on Aggro'),
(@ENTRY,0,1,0,62,0,100,0,9546,1,0,0,52,745,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Plague This Taxi Start'),
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Say text 0'),
(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,12,9526,4,30000,0,0,0,7,0,0,0,0,0,0,0,'Summon Enraged Gryphon'),
(@ENTRY*100,9,2,0,0,0,100,0,0,0,0,0,12,9526,4,30000,0,0,0,7,0,0,0,0,0,0,0,'Summon Enraged Gryphon');
DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0,'Guards!',0,0,100,0,0,0,'Greer Orehammer');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9546 AND `SourceEntry`=1;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
@@ -60,7 +60,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(3027400,9,4,0,0,0,100,0,0,0,0,0,41,4000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Freed Crusader Despawn');
-- create path point location to send Freed Crusaders to
DELETE FROM `waypoints` WHERE `entry`=30274;
-INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
(30274,1,6296.25,92.9397,390.701, 'send Freed Crusader here');
DELETE FROM `creature_text` WHERE `entry`=30274;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
@@ -73,7 +73,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
-- Spawns for Ambusher Verion
SET @GUID :=151826;
DELETE FROM `creature` WHERE `id`=30268;
-INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `DeathState`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `DeathState`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
(@GUID+0,30268,571,1,2,0,0,6244.78,190.194,383.08,1.50098,0,0,0,0,0,0,0,0,0,0),
(@GUID+1,30268,571,1,2,0,0,6249.75,126.806,382.534,2.47837,0,0,0,0,0,0,0,0,0,0),
(@GUID+2,30268,571,1,2,0,0,6277.33,155.167,383.491,0.43643,0,0,0,0,0,0,0,0,0,0),
diff --git a/sql/old/3.3.5a/2011_02_15_01_world_sai.sql b/sql/old/3.3.5a/2011_02_15_01_world_sai.sql
index 64473eaf30d..6484e494c65 100644
--- a/sql/old/3.3.5a/2011_02_15_01_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_15_01_world_sai.sql
@@ -1,4 +1,4 @@
--- Cult Plaguebringer <Cult of the Damned> SAI (tested)
+-- Cult Plaguebringer <Cult of the Damned> SAI (tested)
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=24957;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=24957;
DELETE FROM `smart_scripts` WHERE `entryorguid`=24957;
@@ -6,7 +6,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(24957,0,0,0,1,0,100,0,1000,900000,500000,700000,11,45850,2,0,0,0,0,1,0,0,0,0,0,0,0,'Cast Ghoul Summons OOC'),
(24957,0,2,0,0,0,30,0,1100,6300,8800,13800,11,50356,0,0,0,0,0,2,0,0,0,0,0,0,0,'Cast Inject Plague on victim');
--- Cultist Necrolyte SAI (tested)
+-- Cultist Necrolyte SAI (tested)
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=25651;
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (25651);
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
diff --git a/sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql b/sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql
index 4ca381b59d7..9f8328351e6 100644
--- a/sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql
+++ b/sql/old/3.3.5a/2011_02_15_02_world_game_event_liita.sql
@@ -145,7 +145,7 @@ INSERT INTO `game_event_creature` (`guid`,`event`) VALUES
(@GUID+108,8),(@GUID+109,8),(@GUID+110,8),(@GUID+111,8);
DELETE FROM `creature_addon` WHERE `guid` IN (@GUID+56,@GUID+57);
-INSERT INTO `creature_addon`(`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+INSERT INTO `creature_addon`(`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(@GUID+56,0,0,0,0,0, '68946 0'),
(@GUID+57,0,0,0,0,0, '68589 0');
@@ -219,7 +219,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
(36296,2,15,1,0,-50011,1), -- 1 from reference_blues
(36296,50320,10,1,0,1,1), -- Faded Lovely Greeting Card Ally
(36296,49641,10,1,0,1,1), -- Faded Lovely Greeting Card Horde
-(36296,50250,0.1,1,0,1,1); -- Big Love Rocket
+(36296,50250,0.1,1,0,1,1); -- Big Love Rocket
DELETE FROM `reference_loot_template` WHERE `entry` IN (50010,50011,50012);
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(50010,51806,0,1,1,1,1), -- Shard of Pirouetting Happiness
@@ -227,7 +227,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(50010,51805,0,1,1,1,1), -- Heartbreak Charm
(50010,51807,0,1,1,1,1), -- Sweet Perfume Broach
(50010,51804,0,1,1,1,1), -- Winking Eye of Love
-(50011,50471,0,1,1,1,1), -- The Heartbreaker
+(50011,50471,0,1,1,1,1), -- The Heartbreaker
(50011,50741,0,1,1,1,1), -- Vile Fumigator's Mask
(50011,50446,0,1,1,1,1), -- Toxic Wasteling
(50011,49715,0,1,1,1,1), -- Forever-Lovely Rose
@@ -237,10 +237,10 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(50012,22238,0,1,1,1,1), -- Very Berry Cream
(50012,22236,0,1,1,1,1); -- Buttermilk Delight
-DELETE FROM `item_loot_template` WHERE `entry` IN (49631,49909,50160,50161);
-INSERT INTO `item_loot_template`(`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+DELETE FROM `item_loot_template` WHERE `entry` IN (49631,49909,50160,50161);
+INSERT INTO `item_loot_template`(`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- Standard Apothecary Serving Kit
-(49631,49352,100,1,0,1,1),
+(49631,49352,100,1,0,1,1),
(49631,49351,100,1,0,1,1),
(49631,49635,100,1,0,1,1),
-- Box of Chocolates
@@ -262,7 +262,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=12846 AND `type` in (16,18);
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=12859 AND `type` in (5,15,18);
-INSERT INTO `achievement_criteria_data`(`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
+INSERT INTO `achievement_criteria_data`(`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
-- Set correct data for achievement Charming
(12846,16,335,0, ''),
-- Set correct data for achievement Flirt With Disaster (alliance)
diff --git a/sql/old/3.3.5a/2011_02_18_05_world_sai.sql b/sql/old/3.3.5a/2011_02_18_05_world_sai.sql
index e06f5a067c0..1447c18e35a 100644
--- a/sql/old/3.3.5a/2011_02_18_05_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_18_05_world_sai.sql
@@ -1,7 +1,7 @@
-- Bonesunder SAI (Converted from EAI)
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=27006;
DELETE FROM `smart_scripts` WHERE `entryorguid`=27006;
-DELETE FROM `creature_ai_scripts` WHERE `creature_id`=27006;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=27006;
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
(27006,0,0,0,0,0,100,0,5000,11000,16000,25000,11,52080,1,0,0,0,0,2,0,0,0,0,0,0,0,'Bonesunder - Cast Bonecrack');
diff --git a/sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql b/sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql
index 1c42bfdb544..bbdf4f4010c 100644
--- a/sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql
+++ b/sql/old/3.3.5a/2011_02_19_01_world_instance_icecrown_citadel.sql
@@ -46,7 +46,7 @@ DELETE FROM `gameobject` WHERE `id`=202178;
-- Mode specific objects (instance portal) reused deleted guids
DELETE FROM `gameobject` WHERE `id` IN (202315,202316,202317,202318);
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(150308,202318,631,5,1,82.1685,2211.82,33.0959,3.14159,0,0,1,0,6000,100,1),
(150310,202316,631,10,1,82.1685,2211.82,33.0959,3.14159,0,0,1,0,6000,100,1),
(150321,202317,631,5,1,82.1685,2211.82,33.0959,3.14159,0,0,1,0,6000,100,1),
diff --git a/sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql b/sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql
index d0b20794f96..99bef8f59da 100644
--- a/sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_02_22_01_world_spell_script_names.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN(63633,65594,62056,63985,64224,64225);
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(63633,'spell_ulduar_rubble_summon'),
(65594,'spell_ulduar_cancel_stone_grip'),
(62056,'spell_ulduar_stone_grip'),
diff --git a/sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql b/sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql
index 38064813aa1..0febb076241 100644
--- a/sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_02_22_03_world_creature_template.sql
@@ -1 +1 @@
-UPDATE `creature_template` SET `flags_extra`= `flags_extra`&~1 WHERE `entry` IN(32933,32934);
+UPDATE `creature_template` SET `flags_extra`= `flags_extra`&~1 WHERE `entry` IN(32933,32934);
diff --git a/sql/old/3.3.5a/2011_02_23_06_world_creatures.sql b/sql/old/3.3.5a/2011_02_23_06_world_creatures.sql
index 16a9947afe6..8ef6df59802 100644
--- a/sql/old/3.3.5a/2011_02_23_06_world_creatures.sql
+++ b/sql/old/3.3.5a/2011_02_23_06_world_creatures.sql
@@ -8,7 +8,7 @@ UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `id`=21719;
UPDATE `creature_template` SET `InhabitType`=1 WHERE `entry`=21719;
-- fix walk speed for several npc's
-UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry` IN
+UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry` IN
(19449, -- Thunderlord Grunt
17855); -- Expedition Warden
diff --git a/sql/old/3.3.5a/2011_02_26_01_world_sai.sql b/sql/old/3.3.5a/2011_02_26_01_world_sai.sql
index 6735f217dd1..5e8519f68d9 100644
--- a/sql/old/3.3.5a/2011_02_26_01_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_26_01_world_sai.sql
@@ -1,7 +1,7 @@
SET @Fairmount = 3393; -- Captain Fairmount
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@Fairmount; -- three scripts
DELETE FROM `smart_scripts` WHERE (`entryorguid`=@Fairmount AND `source_type`=0);
-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
+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
(@Fairmount,0,0,0,4,0,100,0,0,0,0,0,11,9128,0,0,0,0,0,1,0,0,0,0,0,0,0,'Captain Fairmount: On aggro cast Battle Shout self'),
(@Fairmount,0,1,0,2,0,100,1,0,30,0,0,11,19134,0,0,0,0,0,2,0,0,0,0,0,0,0,'Captain Fairmount: At 30% hp cast Frightening Shout'),
(@Fairmount,0,2,0,13,0,100,0,5000,5000,0,0,11,12555,0,0,0,0,0,2,0,0,0,0,0,0,0,'Captain Fairmount: On enemy casting cast Pummel');
diff --git a/sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql
index f19aca71b24..76fb0749cdb 100644
--- a/sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/2011_02_26_05_world_npc_spellclick_spells.sql
@@ -1,4 +1,4 @@
-UPDATE `creature_template` SET `npcflag`=`npcflag`|16777216 WHERE `entry` IN (SELECT `npc_entry` FROM `npc_spellclick_spells`);
+UPDATE `creature_template` SET `npcflag`=`npcflag`|16777216 WHERE `entry` IN (SELECT `npc_entry` FROM `npc_spellclick_spells`);
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (32640,32633,31861,31862,25743,27661,27258,27755,27756,27692,40725,32286,29929,29602,29709,27626,28851,
34120,30403,26813,26523,27496,27714,27996,28605,28606,28607,28833,30066,32930,28312,32627,33060,33067,33062,33109,34994,30234,27629,27924,28061,28192,28669,
diff --git a/sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql b/sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql
index 6813dd8d014..e1669e5940a 100644
--- a/sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_02_27_01_world_creature_template.sql
@@ -1,4 +1,4 @@
--- Template updates
+-- Template updates
UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`|32 WHERE `entry`=33063; -- Wrecked Siege Engine
UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`|32 WHERE `entry`=33059; -- Wrecked Demolisher
UPDATE `creature_template` SET `exp`=1 WHERE `entry`=33662; -- Kirin Tor Battle-Mage
@@ -9,7 +9,7 @@ UPDATE `creature_template` SET `exp`=1 WHERE `entry`=33627; -- Hired Demolitioni
UPDATE `creature_template` SET `npcflag`=`npcflag`|1 WHERE `entry`=33624; -- Archmage Pentarus
UPDATE `creature_template` SET `exp`=0 WHERE `entry`=33571; -- Ulduar Gauntlet Generator
--- Model data
+-- Model data
UPDATE `creature_model_info` SET `bounding_radius`=3,`combat_reach`=2.25,`gender`=2 WHERE `modelid`=27658; -- Wrecked Demolisher
UPDATE `creature_model_info` SET `bounding_radius`=0.5,`combat_reach`=1,`gender`=2 WHERE `modelid`=11686; -- Mortar Targetting Device
UPDATE `creature_model_info` SET `bounding_radius`=0.5,`combat_reach`=1,`gender`=2 WHERE `modelid`=11686; -- Mortar Targetting Device
@@ -22,9 +22,9 @@ UPDATE `creature_model_info` SET `bounding_radius`=0.372,`combat_reach`=1.2,`gen
UPDATE `creature_model_info` SET `bounding_radius`=0.3,`combat_reach`=1,`gender`=0 WHERE `modelid`=28581; -- Steelforged Defender
UPDATE `creature_model_info` SET `bounding_radius`=0.3,`combat_reach`=1,`gender`=0 WHERE `modelid`=28580; -- Steelforged Defender
UPDATE `creature_model_info` SET `bounding_radius`=0.5,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=5233; -- Spirit Healer
-
--- Addon data
-DELETE FROM `creature_template_addon` WHERE `entry` IN
+
+-- Addon data
+DELETE FROM `creature_template_addon` WHERE `entry` IN
(33059,33063,33662,33672,33167,33626,33060,33377,33062,33067,33579,33669,33214,33109,33666,33701,33686,33696,33622,33627,33779,33620
,32780,33624,33218,33629,33721,34234,33236,33571);
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
diff --git a/sql/old/3.3.5a/2011_02_28_04_world_sai.sql b/sql/old/3.3.5a/2011_02_28_04_world_sai.sql
index fda69483394..489ab0a3c59 100644
--- a/sql/old/3.3.5a/2011_02_28_04_world_sai.sql
+++ b/sql/old/3.3.5a/2011_02_28_04_world_sai.sql
@@ -8,7 +8,7 @@ SET @SCRIPT2 := 2784202;
UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `guid`=114186;
-- * create text into the DB
DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0, 'Bat gizzards again for the gnomes tonight...',0,0,100,1,0,0, 'Fenrick Barlowe text'),
(@ENTRY,0,1, 'What do they expect, making the bats come in at that angle? Broken necks and gamey bat stew, that''s what they get.',0,0,100,1,0,0, 'Fenrick Barlowe text'),
(@ENTRY,0,2, '''We like trees, Fenrick. They provide cover.'' They won''t let me chop them down, either.',0,0,100,1,0,0, 'Fenrick Barlowe text'),
@@ -31,7 +31,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-- create scripts for random text, emotes, and pathing
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@SCRIPT1,@SCRIPT2);
-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
+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
-- AI
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'on spawn start path'),
(@ENTRY,0,1,0,40,0,100,0,5,@ENTRY,0,0,80,@SCRIPT1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'at wp 5 run script1'),
diff --git a/sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql b/sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql
index 9ef6e21cb3b..81305c06c1a 100644
--- a/sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql
+++ b/sql/old/3.3.5a/2011_02_28_05_world_vehicles.sql
@@ -93,7 +93,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(16,0,33845,0,1,64373,0,0,0,'', 'Vehicle Quel''dorei Steed requires aura Armistice'),
(16,0,33844,0,1,64373,0,0,0,'', 'Vehicle Sunreaver Hawkstrider requires aura Armistice'),
(16,0,33217,0,1,64373,0,0,0,'', 'Vehicle Stormwind Steed requires aura Armistice');
--- race conditions
+-- race conditions
DELETE FROM `creature_template_addon` WHERE `entry` IN (33782,33318,33323,33322,33317,33319,33316,33321,33324,33320,33845,33844,33217);
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
diff --git a/sql/old/3.3.5a/2011_03_02_06_world_sai.sql b/sql/old/3.3.5a/2011_03_02_06_world_sai.sql
index ed81ade61a9..c66f8b1f608 100644
--- a/sql/old/3.3.5a/2011_03_02_06_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_02_06_world_sai.sql
@@ -1,47 +1,47 @@
--- SAI for Crust Burster
-SET @ENTRY := 16844;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
-DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
-(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Cast Submerge Visual'),
-(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Set Unselectable and Unattackable Flags'),
-(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Submerge Visual'),
-(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Unselectable and Unattackable Flags'),
-(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Prevent Combat Movement'),
-(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Set Phase 1'),
-(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Poison (Phase 1)'),
-(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 1)'),
-(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Bore (Phase 1)'),
+-- SAI for Crust Burster
+SET @ENTRY := 16844;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
+(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Cast Submerge Visual'),
+(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Set Unselectable and Unattackable Flags'),
+(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Submerge Visual'),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Unselectable and Unattackable Flags'),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Prevent Combat Movement'),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Set Phase 1'),
+(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Poison (Phase 1)'),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 1)'),
+(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Bore (Phase 1)'),
(@ENTRY,0,9,10,9,1,100,0,20,60,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Cast Submerge Visual (Phase 1)'),
-(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Allow Combat Movement (Phase 1)'),
-(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
-(@ENTRY,0,12,13,9,2,100,0,0,8,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
-(@ENTRY,0,13,14,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 2)'),
-(@ENTRY,0,14,15,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
-(@ENTRY,0,15,0,61,2,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 1 (Phase 2)');
-
--- SAI for Marading Crust Burster
-SET @ENTRY := 16857;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
-DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
-(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Cast Submerge Visual'),
-(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Set Unselectable and Unattackable Flags'),
-(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Submerge Visual'),
-(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Unselectable and Unattackable Flags'),
-(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Prevent Combat Movement'),
-(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Set Phase 1'),
-(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Poison (Phase 1)'),
-(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 1)'),
-(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Bore (Phase 1)'),
+(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Allow Combat Movement (Phase 1)'),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
+(@ENTRY,0,12,13,9,2,100,0,0,8,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
+(@ENTRY,0,13,14,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 2)'),
+(@ENTRY,0,14,15,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
+(@ENTRY,0,15,0,61,2,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 1 (Phase 2)');
+
+-- SAI for Marading Crust Burster
+SET @ENTRY := 16857;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
+(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Cast Submerge Visual'),
+(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - OOC - Set Unselectable and Unattackable Flags'),
+(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Submerge Visual'),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Remove Unselectable and Unattackable Flags'),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Prevent Combat Movement'),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - On Aggro - Set Phase 1'),
+(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Poison (Phase 1)'),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 1)'),
+(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Crust Burster - Combat - Cast Bore (Phase 1)'),
(@ENTRY,0,9,10,9,1,100,0,20,60,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Cast Submerge Visual (Phase 1)'),
-(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Allow Combat Movement (Phase 1)'),
-(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
-(@ENTRY,0,12,13,9,2,100,0,0,8,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
-(@ENTRY,0,13,14,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 2)'),
-(@ENTRY,0,14,15,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
+(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Allow Combat Movement (Phase 1)'),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
+(@ENTRY,0,12,13,9,2,100,0,0,8,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
+(@ENTRY,0,13,14,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - Combat - Prevent Combat Movement (Phase 2)'),
+(@ENTRY,0,14,15,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
(@ENTRY,0,15,0,61,2,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crust Burster - At 20 - 60 Yards Range - Set Phase 1 (Phase 2)');
diff --git a/sql/old/3.3.5a/2011_03_05_04_world_creatures.sql b/sql/old/3.3.5a/2011_03_05_04_world_creatures.sql
index 1ee645a097e..4a13823bf2e 100644
--- a/sql/old/3.3.5a/2011_03_05_04_world_creatures.sql
+++ b/sql/old/3.3.5a/2011_03_05_04_world_creatures.sql
@@ -1,5 +1,5 @@
-- Some Dalran and Area Updates (sniff)
--- Template updates
+-- Template updates
UPDATE `creature_template` SET `exp`=0,`npcflag`=`npcflag`|640 WHERE `entry`=32415; -- Hamaka
UPDATE `creature_template` SET `exp`=0,`npcflag`=`npcflag`|130 WHERE `entry`=31031; -- Misensi
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|768 WHERE `entry`=35826; -- Kaye Toogie
@@ -16,7 +16,7 @@ UPDATE `creature_template` SET `baseattacktime`=2000,`unit_flags`=`unit_flags`|3
UPDATE `creature_template` SET `exp`=0 WHERE `entry`=32322; -- Gold Warrior
UPDATE `creature_template` SET `exp`=0 WHERE `entry`=32325; -- Gold Priest
--- Model data
+-- Model data
UPDATE `creature_model_info` SET `bounding_radius`=1.05,`combat_reach`=1.05,`gender`=0 WHERE `modelid`=10957; -- Dappled Stag
UPDATE `creature_model_info` SET `bounding_radius`=0.236,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=27957; -- Hamaka
UPDATE `creature_model_info` SET `bounding_radius`=1,`combat_reach`=1,`gender`=2 WHERE `modelid`=1141; -- Underbelly Rat
@@ -129,5 +129,5 @@ INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`
(28742,0,0,257,0, NULL), -- Marcia Chase
(29496,0,0,257,0, NULL); -- Kerta the Bold
--- Template updates for gameobject
+-- Template updates for gameobject
UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=35591; -- Fishing Bobber
diff --git a/sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql b/sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql
index 4681bd9ca96..deeb34c1744 100644
--- a/sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql
+++ b/sql/old/3.3.5a/2011_03_06_01_world_loot_template.sql
@@ -12,7 +12,7 @@ SET @ICC_TrashDungeonNFinal := @ICC_TrashGenericGrey+8;
SET @ICC_TrashGenericPurpleDUNH := @ICC_TrashGenericGrey+9;
SET @ICC_TrashDungeonHFinal := @ICC_TrashGenericGrey+10;
-DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @ICC_TrashGenericGrey AND @ICC_TrashGenericGrey+10;
+DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @ICC_TrashGenericGrey AND @ICC_TrashGenericGrey+10;
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN 35063 AND 35076; -- cleanup OLD loot
INSERT INTO reference_loot_template (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- grey items (45)
@@ -351,7 +351,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- --------------------------------
-- -- Apply Trash Loot Dungeon_H --
--- --------------------------------
+-- --------------------------------
SET @LootDUNGEON_H := 100001; -- needs official entry designated
UPDATE `creature_template` SET `lootid`=@LootDUNGEON_H WHERE `entry` IN (37569,37568,37567,37565,38193,37566,37563); -- FoS
UPDATE `creature_template` SET `lootid`=@LootDUNGEON_H WHERE `entry` IN (37609,37638,37637,37635,37636,38249,38025,38026); -- PoS
diff --git a/sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql b/sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql
index 5e896d98412..d9ef666aa06 100644
--- a/sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql
+++ b/sql/old/3.3.5a/2011_03_06_05_world_vehicle_accessory.sql
@@ -1,5 +1,5 @@
RENAME TABLE `vehicle_accessory` TO `vehicle_template_accessory`;
-
+
CREATE TABLE IF NOT EXISTS `vehicle_accessory` (
`guid` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
`accessory_entry` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
diff --git a/sql/old/3.3.5a/2011_03_08_00_world_sai.sql b/sql/old/3.3.5a/2011_03_08_00_world_sai.sql
index 0bb809d42b2..679822be74e 100644
--- a/sql/old/3.3.5a/2011_03_08_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_08_00_world_sai.sql
@@ -1,8 +1,8 @@
--- Fix for quests:
+-- Fix for quests:
-- From Sniff:
SET @guid := 78; -- Set by TDB
DELETE FROM `creature` WHERE `id` IN (25664,25665,25666);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
(@guid ,25664,571,1,1,0,0,3487.67456,4516.643,11.441596,2.18166161,120,0,0,1,0,0,0), -- South Killcredit
(@guid+1,25665,571,1,1,0,0,3645.95483,4551.105,12.4051342,0.715585,120,0,0,1,0,0,0), -- Northeast Killcredit
(@guid+2,25666,571,1,1,0,0,3649.16748,4744.338,12.3212109,0.8901179,120,0,0,1,0,0,0); -- Northwest Killcredit
@@ -14,7 +14,7 @@ UPDATE `creature_template` SET `baseattacktime`=2000,`faction_A`=35,`faction_H`=
-- SAI for the Killcredits:
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (25664,25665,25666);
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (25664,25665,25666);
-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
+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
(25664,0,0,0,8,0,100,0,45853,1,0,0,33,25664,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Mark Sinkhole Killcredit: South'),
(25665,0,0,0,8,0,100,0,45853,1,0,0,33,25665,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Mark Sinkhole Killcredit: NorthEast'),
(25666,0,0,0,8,0,100,0,45853,1,0,0,33,25666,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Mark Sinkhole Killcredit: NorthWest');
diff --git a/sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql b/sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql
index 21f73f30752..761fea2ec23 100644
--- a/sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql
+++ b/sql/old/3.3.5a/2011_03_10_05_world_creature_questrelation.sql
@@ -1,4 +1,4 @@
-- Wrong start/end NPCs for Caverns of Time Chain:
-- Andormu(man) should be Andormu(child)
-UPDATE `creature_involvedrelation` SET `id`=20130 WHERE `quest`IN(10285,10298);
+UPDATE `creature_involvedrelation` SET `id`=20130 WHERE `quest`IN(10285,10298);
UPDATE `creature_questrelation` SET `id`=20130 WHERE `quest`=10296;
diff --git a/sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql b/sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql
index a2d3d5d44a0..91bb5c164d4 100644
--- a/sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_03_12_00_world_creature_template.sql
@@ -29,7 +29,7 @@ UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|1|2
37226,-- Wrath of the Lich King
-- Pit of Saron:
36494,-- Forgemaster Garfrost
-37613,-- Forgemaster Garfrost (1)
+37613,-- Forgemaster Garfrost (1)
36476,-- Ick
37627,-- Ick (1)
36477,-- Krick
diff --git a/sql/old/3.3.5a/2011_03_17_00_world_sai.sql b/sql/old/3.3.5a/2011_03_17_00_world_sai.sql
index 3fb85bbd2ac..8f46ff60a4f 100644
--- a/sql/old/3.3.5a/2011_03_17_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_17_00_world_sai.sql
@@ -291,7 +291,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,3,3808.239,3432.998,82.97262,0,0,0,100,0),
(@PATH,4,3812.432,3443.979,82.97263,0,0,0,100,0);
--- Remove 2 over spawns
+-- Remove 2 over spawns
DELETE FROM `creature` WHERE `guid` IN (99859,99858);
DELETE FROM `creature_addon` WHERE `guid` IN (99859,99858);
diff --git a/sql/old/3.3.5a/2011_03_17_10_world_sai.sql b/sql/old/3.3.5a/2011_03_17_10_world_sai.sql
index 6979ddb472d..fde9cc7ceff 100644
--- a/sql/old/3.3.5a/2011_03_17_10_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_17_10_world_sai.sql
@@ -1,24 +1,24 @@
--- SAI for Nethermine Burster
-SET @ENTRY := 23285;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
-DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
-(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - OOC - Cast Submerge Visual'),
-(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - OOC - Set Unselectable and Unattackable Flags'),
-(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Remove Submerge Visual'),
-(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Remove Unselectable and Unattackable Flags'),
-(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Prevent Combat Movement'),
-(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Set Phase 1'),
-(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Cast Poison (Phase 1)'),
-(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Prevent Combat Movement (Phase 1)'),
-(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Cast Bore (Phase 1)'),
+-- SAI for Nethermine Burster
+SET @ENTRY := 23285;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
+(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - OOC - Cast Submerge Visual'),
+(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - OOC - Set Unselectable and Unattackable Flags'),
+(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Remove Submerge Visual'),
+(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Remove Unselectable and Unattackable Flags'),
+(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Prevent Combat Movement'),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - On Aggro - Set Phase 1'),
+(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Cast Poison (Phase 1)'),
+(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Prevent Combat Movement (Phase 1)'),
+(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Cast Bore (Phase 1)'),
(@ENTRY,0,9,10,9,1,100,0,20,60,0,0,11,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 20 - 60 Yards Range - Cast Submerge Visual (Phase 1)'),
-(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 20 - 60 Yards Range - Allow Combat Movement (Phase 1)'),
-(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
-(@ENTRY,0,12,13,9,2,100,0,0,8,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
-(@ENTRY,0,13,14,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Prevent Combat Movement (Phase 2)'),
-(@ENTRY,0,14,15,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
+(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 20 - 60 Yards Range - Allow Combat Movement (Phase 1)'),
+(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
+(@ENTRY,0,12,13,9,2,100,0,0,8,0,0,28,29147,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
+(@ENTRY,0,13,14,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - Combat - Prevent Combat Movement (Phase 2)'),
+(@ENTRY,0,14,15,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
(@ENTRY,0,15,0,61,2,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - At 20 - 60 Yards Range - Set Phase 1 (Phase 2)'),
(@ENTRY,0,16,0,2,0,100,1,0,10,0,0,11,32714,3,0,0,0,0,1,0,0,0,0,0,0,0,'Nethermine Burster - Health level - Cast Enrage self');
diff --git a/sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql b/sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql
index 3856bb0c3db..42cebab6dd6 100644
--- a/sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql
+++ b/sql/old/3.3.5a/2011_03_18_00_world_game_event_misc.sql
@@ -14,7 +14,7 @@ INSERT INTO `game_event_temp` (`entryOld`,`entryNew`) VALUES
-- Update game_event
ALTER TABLE `game_event` DROP PRIMARY KEY;
UPDATE `game_event`, `game_event_temp` SET `game_event`.`entry` = `game_event_temp`.`entryNew` WHERE `game_event`.`entry` = `game_event_temp`.`entryOld`;
-ALTER TABLE `game_event`
+ALTER TABLE `game_event`
CHANGE `entry` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event',
ADD PRIMARY KEY (`eventEntry`);
@@ -47,7 +47,7 @@ ALTER TABLE `game_event_gameobject` CHANGE `event` `eventEntry` TINYINT(3) NOT N
-- Update game_event_gameobject_quest
ALTER TABLE `game_event_gameobject_quest` DROP PRIMARY KEY;
UPDATE `game_event_gameobject_quest`, `game_event_temp` SET `game_event_gameobject_quest`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_gameobject_quest`.`event` = `game_event_temp`.`entryOld`;
-ALTER TABLE `game_event_gameobject_quest`
+ALTER TABLE `game_event_gameobject_quest`
CHANGE `event` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST,
ADD PRIMARY KEY (`id`, `quest`, `eventEntry`);
@@ -62,7 +62,7 @@ ALTER TABLE `game_event_npc_vendor` CHANGE `event` `eventEntry` TINYINT(3) NOT N
-- Update game_event_npcflag
ALTER TABLE `game_event_npcflag` DROP PRIMARY KEY;
UPDATE `game_event_npcflag`, `game_event_temp` SET `game_event_npcflag`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_npcflag`.`event_id` = `game_event_temp`.`entryOld`;
-ALTER TABLE `game_event_npcflag`
+ALTER TABLE `game_event_npcflag`
CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST,
ADD PRIMARY KEY (`guid`, `eventEntry`);
diff --git a/sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql b/sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql
index 64ec58fc315..6110799c6b0 100644
--- a/sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql
+++ b/sql/old/3.3.5a/2011_03_18_01_world_instance_pit_of_saron.sql
@@ -1,6 +1,6 @@
DELETE FROM `creature_questrelation` WHERE `quest` IN (24510,24499,24498,24710,24711,24506,24511,24682,24507,24712,24713);
DELETE FROM `creature_involvedrelation` WHERE `quest` IN (24510,24499,24498,24710,24711,24506,24511,24682,24507,24712,24713);
-INSERT INTO `creature_questrelation` (`id`,`quest`) VALUES
+INSERT INTO `creature_questrelation` (`id`,`quest`) VALUES
-- alliance
(37776,24510),
(37597,24499),
@@ -15,7 +15,7 @@ INSERT INTO `creature_questrelation` (`id`,`quest`) VALUES
(36990,24507),
(37592,24712),
(38189,24713);
-INSERT INTO `creature_involvedrelation` (`id`,`quest`) VALUES
+INSERT INTO `creature_involvedrelation` (`id`,`quest`) VALUES
-- alliance
(37597,24510),
(38160,24499),
@@ -34,6 +34,6 @@ INSERT INTO `creature_involvedrelation` (`id`,`quest`) VALUES
SET @GOBJ := 201969; -- ball and chain
UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=@GOBJ;
DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid`=@GOBJ;
-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
+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
(@GOBJ,1,0,0,64,0,100,0,0,0,0,0,33,36764,0,0,0,0,0,7,0,0,0,0,0,0,0, 'credit on gossip hello - alliance'),
(@GOBJ,1,1,0,64,0,100,0,0,0,0,0,33,36770,0,0,0,0,0,7,0,0,0,0,0,0,0, 'credit on gossip hello - horde');
diff --git a/sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql
index 2a95cb57206..31e4421bc1d 100644
--- a/sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2011_03_21_03_world_achievement_criteria_data.sql
@@ -5,7 +5,7 @@ DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (
11689,11690,11691,11692,11693, -- 10 Player
11542,11546,11547,11549,11678 -- 25 Player
) AND `type` IN (0,12);
-INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
+INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
-- Call of the Crusade (10 player)
(11684,12,0,0, ''),
(11685,12,0,0, ''),
diff --git a/sql/old/3.3.5a/2011_03_21_06_world_creature.sql b/sql/old/3.3.5a/2011_03_21_06_world_creature.sql
index 22de14493b3..1d9e87de3ea 100644
--- a/sql/old/3.3.5a/2011_03_21_06_world_creature.sql
+++ b/sql/old/3.3.5a/2011_03_21_06_world_creature.sql
@@ -2,11 +2,11 @@ SET @GUID := 95035 ; -- set guid by TDB
-- Spawn for Rotting Frost Giant in 25 man instances
DELETE FROM `creature` WHERE `id`=38494;
-INSERT INTO `creature`
-(`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`)
+INSERT INTO `creature`
+(`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`)
VALUES
(@GUID,38494,631,10,1,0,0,-452.366,2354.51,191.242,0.778178,86400,0,0,1,0,0,2,0,0,0);
-
+
-- Correct spawn mask for Rotting Frost Giant in 10 man instances (10/10 Heroic)
UPDATE `creature` SET `spawnmask`=5 WHERE `id`=38490;
diff --git a/sql/old/3.3.5a/2011_03_22_00_world_sai.sql b/sql/old/3.3.5a/2011_03_22_00_world_sai.sql
index 8b6ac8d9fe9..46ff0490324 100644
--- a/sql/old/3.3.5a/2011_03_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_22_00_world_sai.sql
@@ -15,7 +15,7 @@ DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=43
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,43151,0,18,1,24021,0,0,'','Spell 43151 targets only ELM General Purpose Bunny (scale x0.01)');
-- Add missing ELM General Purpose Bunny (scale x0.01)
-DELETE FROM `creature` WHERE `guid`=@GUID;
+DELETE FROM `creature` WHERE `guid`=@GUID;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
(@GUID,24021,571,1,1,0,0,2597.148,-3735.499,261.9468,0.2094395,120,0,0,1,0,0,0);
-- ELM General Purpose Bunny (scale x0.01) fix InhabitType
diff --git a/sql/old/3.3.5a/2011_03_22_01_world_sai.sql b/sql/old/3.3.5a/2011_03_22_01_world_sai.sql
index 974b24f8cbd..43477be8004 100644
--- a/sql/old/3.3.5a/2011_03_22_01_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_22_01_world_sai.sql
@@ -1,6 +1,6 @@
-- Add missing Invisible Stalker (Floating)
SET @GUID := 85175; -- 2 Required
-DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+1;
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+1;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
(@GUID,23033,571,1,1,0,0,3799.331,3428.748,92.80447,3.804818,120,0,0,1,0,0,0),
(@GUID+1,23033,571,1,1,0,0,3789.681,3434.306,92.37619,4.764749,120,0,0,1,0,0,0);
@@ -8,7 +8,7 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
SET @ENTRY := 26073; -- NPC entry
SET @SPELL1 := 45492; -- Shadow Nova
SET @SPELL2 := 11640; -- Renew cast once below 45%
-SET @SPELL3 := 15587; -- Mind Blast cast below 45% after renew
+SET @SPELL3 := 15587; -- Mind Blast cast below 45% after renew
UPDATE `creature` SET `modelid`=0,`spawndist`=0,`MovementType`=0 WHERE `id`=@ENTRY;
DELETE FROM `creature_addon` WHERE `guid`=85240;
DELETE FROM `creature_template_addon` WHERE `entry`=26073;
diff --git a/sql/old/3.3.5a/2011_03_23_00_world_conditions.sql b/sql/old/3.3.5a/2011_03_23_00_world_conditions.sql
index e8817974939..e3a260dece4 100644
--- a/sql/old/3.3.5a/2011_03_23_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2011_03_23_00_world_conditions.sql
@@ -1,3 +1,3 @@
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceEntry`=33581;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceEntry`,`ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceEntry`,`ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `Comment`) VALUES
(18,33581,24,1,24238, 'Only use Insult on Bjorn Halgurdsson');
diff --git a/sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql b/sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql
index d1dd1653f33..2456fd1dd5b 100644
--- a/sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_03_24_00_world_creature_template.sql
@@ -1,4 +1,4 @@
-UPDATE `creature_template` SET `difficulty_entry_2`=0,`difficulty_entry_3`=0 WHERE `entry`=10404; -- Pustulating Horror
+UPDATE `creature_template` SET `difficulty_entry_2`=0,`difficulty_entry_3`=0 WHERE `entry`=10404; -- Pustulating Horror
UPDATE `creature_template` SET `difficulty_entry_2`=0,`difficulty_entry_3`=0 WHERE `entry`=34606; -- Frost Sphere
UPDATE `creature_template` SET `difficulty_entry_2`=0,`difficulty_entry_3`=0 WHERE `entry`=36724; -- Servant of the Throne
UPDATE `creature_template` SET `difficulty_entry_2`=0,`difficulty_entry_3`=0 WHERE `entry`=36725; -- Nerub'ar Broodkeeper
diff --git a/sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql b/sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql
index a039b5d1933..613ff9171ad 100644
--- a/sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql
+++ b/sql/old/3.3.5a/2011_03_24_01_world_loot_template.sql
@@ -13,7 +13,7 @@ SET @ICC_TrashGenericPurpleDUNH := @ICC_TrashGenericGrey+9;
SET @ICC_TrashDungeonHFinal := @ICC_TrashGenericGrey+10;
SET @ICC_TrashGenericPurple := @ICC_TrashGenericGrey+11;
-DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @ICC_TrashGenericGrey AND @ICC_TrashGenericGrey+11;
+DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @ICC_TrashGenericGrey AND @ICC_TrashGenericGrey+11;
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN 35063 AND 35076; -- cleanup OLD loot
INSERT INTO reference_loot_template (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- grey items (45)
@@ -341,7 +341,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- --------------------------------
-- -- Apply Trash Loot Dungeon_H --
--- --------------------------------
+-- --------------------------------
SET @LootDUNGEON_H := 100001; -- needs official entry designated
UPDATE `creature_template` SET `lootid`=@LootDUNGEON_H WHERE `entry` IN (37569,37568,37567,37565,38193,37566,37563); -- FoS
UPDATE `creature_template` SET `lootid`=@LootDUNGEON_H WHERE `entry` IN (37609,37638,37637,37635,37636,38249,38025,38026); -- PoS
diff --git a/sql/old/3.3.5a/2011_03_24_03_world_sai.sql b/sql/old/3.3.5a/2011_03_24_03_world_sai.sql
index fa560592d06..6093bf3c1fc 100644
--- a/sql/old/3.3.5a/2011_03_24_03_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_24_03_world_sai.sql
@@ -1,4 +1,4 @@
--- Scourge Deathspeaker SAI
+-- Scourge Deathspeaker SAI
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=27615;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=27615;
DELETE FROM `smart_scripts` WHERE `entryorguid`=27615;
@@ -35,7 +35,7 @@ DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
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
(@ENTRY,0,0,0,1,0,100,1,1000,1000,1000,1000,11,38469,0,0,0,0,0,19,22139,0,0,0,0,0,0,'Dark Conclave Ritualist - OOC - Dark Conclave Ritualist Channel');
--- Shattered Sun Marksman fixup (tested)
+-- Shattered Sun Marksman fixup (tested)
-- Console no longer spamming waypoint script errors in The Dawning Square
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=24938;
-- Shattered Sun Marksman shoot at Bridge Marksman Target Dummy SAI
@@ -55,7 +55,7 @@ DELETE FROM `waypoint_scripts` WHERE `id` BETWEEN 80 AND 111;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `guid` IN (65694,65695,65696,65697,65698,65699,65700,65702);
UPDATE `creature_addon` SET `path_id`=0 WHERE `guid` IN (65694,65695,65696,65697,65698,65699,65700,65702);
--- Fix Spell condition for Spell 45223 to target Bridge Marksman Target Dummy 25192
+-- Fix Spell condition for Spell 45223 to target Bridge Marksman Target Dummy 25192
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=45223;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,45223,0,18,1,25192,0,0,'','Spell 45223 targets Bridge Marksman Target Dummy');
diff --git a/sql/old/3.3.5a/2011_03_24_04_world_sai.sql b/sql/old/3.3.5a/2011_03_24_04_world_sai.sql
index e0c281fa559..ae06dffd675 100644
--- a/sql/old/3.3.5a/2011_03_24_04_world_sai.sql
+++ b/sql/old/3.3.5a/2011_03_24_04_world_sai.sql
@@ -8,12 +8,12 @@ UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (21173,21170,224
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|2048 WHERE `entry` IN (21170,22404,22405,22406);
-- Add missing Zeth'Gor Quest Credit Marker, They Must Burn
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
(78738,21173,530,1,1,0,0,-1162.911377,2248.195313,152.24733,4.815845,120,0,0,1,0,0,0);
-- Add missing Go
DELETE FROM `gameobject_template` WHERE `entry`=183929;
-INSERT INTO `gameobject_template` (`entry`,`type`,`displayId`,`name`,`castBarCaption`,`unk1`,`faction`,`flags`,`size`,`data0`,`data1`,`data2`,`data3`,`data4`,`data5`,`data6`,`data7`,`data8`,`data9`,`data10`,`data11`,`data12`,`data13`,`data14`,`data15`,`data16`,`data17`,`data18`,`data19`,`data20`,`data21`,`data22`,`data23`,`ScriptName`,`WDBVerified`) VALUES
+INSERT INTO `gameobject_template` (`entry`,`type`,`displayId`,`name`,`castBarCaption`,`unk1`,`faction`,`flags`,`size`,`data0`,`data1`,`data2`,`data3`,`data4`,`data5`,`data6`,`data7`,`data8`,`data9`,`data10`,`data11`,`data12`,`data13`,`data14`,`data15`,`data16`,`data17`,`data18`,`data19`,`data20`,`data21`,`data22`,`data23`,`ScriptName`,`WDBVerified`) VALUES
(183929,6,0, '', '', '',35,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, '',1);
-- SAI add animation to GameObject Smoke Beacon
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_conditions.sql b/sql/old/3.3.5a/2011_03_26_00_world_conditions.sql
index f276a0f24b2..44c793dd0cd 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2011_03_26_00_world_conditions.sql
@@ -1,6 +1,6 @@
-- conditions for spells used by Malygos
DELETE FROM `conditions` WHERE `SourceGroup`=0 AND `SourceEntry` IN (56263,55853,56505,56429,56152) AND `ConditionTypeOrReference`=18;
-INSERT INTO `conditions` (SourceTypeOrReferenceId,ConditionTypeOrReference,SourceGroup,SourceEntry,ConditionValue1,ConditionValue2) VALUES
+INSERT INTO `conditions` (SourceTypeOrReferenceId,ConditionTypeOrReference,SourceGroup,SourceEntry,ConditionValue1,ConditionValue2) VALUES
(13,18,0,55853,1,30090),
(13,18,0,56263,1,30090),
(13,18,0,56505,1,30334),
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql b/sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql
index 1d587b199a8..523426f3a7b 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/2011_03_26_00_world_gameobject.sql
@@ -1,9 +1,9 @@
-- Spawning Focusing Iris
DELETE FROM `gameobject` WHERE `id`=193958;
-INSERT INTO `gameobject` (guid,id,map,spawnMask,phaseMask,position_x,position_y,position_z,orientation,rotation0,rotation1,rotation2,rotation3,spawntimesecs,animprogress,state) VALUES
+INSERT INTO `gameobject` (guid,id,map,spawnMask,phaseMask,position_x,position_y,position_z,orientation,rotation0,rotation1,rotation2,rotation3,spawntimesecs,animprogress,state) VALUES
(151791,193958,616,1,1,754.2546,1301.71973,266.170319,-1.60570168,0,0,0,0,120,0,1);
-- Spawning chests
DELETE FROM `gameobject` WHERE `id` IN (193967,193905);
INSERT INTO `gameobject` (guid,id,map,spawnMask,phaseMask,position_x,position_y,position_z,orientation,spawntimesecs,animprogress,state) VALUES
-(151792,193905,616,1,1,764.56,1284.63,269,1.82,-604800,100,1),
+(151792,193905,616,1,1,764.56,1284.63,269,1.82,-604800,100,1),
(151793,193967,616,2,1,764.56,1284.63,269,1.82,-604800,100,1); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql b/sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql
index 61ace8c0877..b5be7525576 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql
+++ b/sql/old/3.3.5a/2011_03_26_00_world_npc_spellclick_spells.sql
@@ -1,5 +1,5 @@
-- Hover Disk
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (30248,30234);
-INSERT INTO `npc_spellclick_spells` (npc_entry,spell_id,quest_start,quest_end,cast_flags) VALUES
+INSERT INTO `npc_spellclick_spells` (npc_entry,spell_id,quest_start,quest_end,cast_flags) VALUES
(30234,61421,0,0,0),
(30248,61421,0,0,0);
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql b/sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql
index 3f5431cd39a..4f595cffb9f 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2011_03_26_00_world_smart_scripts.sql
@@ -1,11 +1,11 @@
-- Scripts for Nexus Lord and Scion of Eternity
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (30249,30245);
DELETE FROM `smart_scripts` WHERE (`entryorguid`=30249 AND `source_type`=0);
-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
+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
(30249, 0, 0, 0, 0, 0, 100, 6, 3000, 5000, 4000, 6000, 11, 56397, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Scion of Eternity - Cast Arcane Barrage (Random)'),
(30249, 0, 1, 0, 7, 0, 100, 6, 1, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Scion of Eternity - Despawn in EvadeMode');
DELETE FROM `smart_scripts` WHERE (`entryorguid`=30245 AND `source_type`=0);
-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
+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
(30245, 0, 0, 0, 0, 0, 100, 6, 7000, 10000, 10000, 15000, 11, 57060, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nexus Lord - Cast Haste (Self)'),
(30245, 0, 1, 0, 0, 0, 100, 6, 5000, 8000, 9000, 12000, 11, 57058, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Nexus Lord - Cast Arcane Shock (Random)'),
(30245, 0, 2, 0, 7, 0, 100, 6, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Nexus Lord - Despawn in EvadeMode');
diff --git a/sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql b/sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql
index a5b0963181a..4dcdb0c6515 100644
--- a/sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql
+++ b/sql/old/3.3.5a/2011_03_26_00_world_vehicle_template_accessory.sql
@@ -1,5 +1,5 @@
-- Hover Disk
DELETE FROM `vehicle_template_accessory` WHERE `entry` IN (30234,30248);
-INSERT INTO `vehicle_template_accessory` (entry,accessory_entry,seat_id,minion,description) VALUES
+INSERT INTO `vehicle_template_accessory` (entry,accessory_entry,seat_id,minion,description) VALUES
(30234,30245,0,0,'Hover Disk - Nexus Lord'),
(30248,30249,0,0,'Hover Disk - Scion of Eternity'); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_03_27_01_world_misc.sql b/sql/old/3.3.5a/2011_03_27_01_world_misc.sql
index 74a001be493..bd8eecf7237 100644
--- a/sql/old/3.3.5a/2011_03_27_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_03_27_01_world_misc.sql
@@ -137,7 +137,7 @@ INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes
(32643,0,0,0,3,0,'61478 0'); -- companion pet aura (arcane explosions)
DELETE FROM `smart_scripts` WHERE `entryorguid`=-98174 AND `source_type`=0;
-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
+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
(-98174,0,0,0,62,0,100,0,@Gossip+1,0,0,0,11,61457,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Archmage Vargoth (Dalaran) - On gossip select cast Kirin Tor Familiar on invoker');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=@Gossip+0 AND `SourceEntry`=14192;
diff --git a/sql/old/3.3.5a/2011_03_27_02_world_misc.sql b/sql/old/3.3.5a/2011_03_27_02_world_misc.sql
index 383de94a629..fbbaff1e0da 100644
--- a/sql/old/3.3.5a/2011_03_27_02_world_misc.sql
+++ b/sql/old/3.3.5a/2011_03_27_02_world_misc.sql
@@ -359,7 +359,7 @@ INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`
(@GGuid+2,@G_BatFence,1,1,1,-827.066,-4983.64063,15.518714,-3.07176614,0,0,0,0,120,0,1), -- Sen'jin Bat Roost Fence
(@GGuid+3,@G_BatFence,1,1,1,-829.5955,-4978.009,15.6437654,-2.44346023,0,0,0,0,120,0,1), -- Sen'jin Bat Roost Fence
(@GGuid+4,@G_BatPost,1,1,1,-831.7917,-4975.60938,15.85345,-2.40855432,0,0,0,0,120,0,1), -- Sen'jin Bat Roost Fence Post
-(@GGuid+5,@G_RDrum,1,1,1,-797.4774,-4972.70166,17.8050346,-2.12930059,0,0,0,0,120,0,1), -- Ritual Drum
+(@GGuid+5,@G_RDrum,1,1,1,-797.4774,-4972.70166,17.8050346,-2.12930059,0,0,0,0,120,0,1), -- Ritual Drum
(@GGuid+6,@G_RGong,1,1,1,-789.6094,-4979.12842,18.0358353,-2.54817939,0,0,0,0,120,0,1), -- Ritual Gong
(@GGuid+7,@G_RBrazier,1,1,1,-806.4583,-4993.28125,16.5453663,0,0,0,0,0,120,0,1), -- Ritual Brazier
(@GGuid+8,@G_SRDrum,1,1,1,-799.1007,-4987.36475,17.63783,0.2792516,0,0,0,0,120,0,1), -- Small Ritual Drum
diff --git a/sql/old/3.3.5a/2011_03_28_00_world_misc.sql b/sql/old/3.3.5a/2011_03_28_00_world_misc.sql
index ee74787d6ac..2d0f683bfda 100644
--- a/sql/old/3.3.5a/2011_03_28_00_world_misc.sql
+++ b/sql/old/3.3.5a/2011_03_28_00_world_misc.sql
@@ -1,11 +1,11 @@
UPDATE `creature_template` SET `npcflag`=`npcflag`|16777216 WHERE `entry`=40176; -- Sen'jin Frog
-- Add missing table at Steelgrill's Depot
DELETE FROM `gameobject` WHERE `guid`=151888 AND `id`=202564;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(151888,202564,0,1,1,-5463.98975,-626.967041,393.528717,0,0,0,0,0,120,0,1);
-- Add non-existing equipment
DELETE FROM `creature_equip_template` WHERE `entry`=2432;
-INSERT INTO `creature_equip_template` (`entry`,`equipentry1`,`equipentry2`,`equipentry3`) VALUES
+INSERT INTO `creature_equip_template` (`entry`,`equipentry1`,`equipentry2`,`equipentry3`) VALUES
(2432,53056,0,0);
UPDATE `creature_template` SET `equipment_id`=2432 WHERE `entry`=39368; -- Set equipment to Drill Sergeant Steamcrank
UPDATE `creature_template` SET `equipment_id`=2432 WHERE `entry`=39675; -- Set equipment to Captain Tread Sparknozzle
@@ -16,7 +16,7 @@ UPDATE `creature_template` SET `AIName`= '' WHERE `entry`=30037;
-- Fix and add spawns
DELETE FROM `creature` WHERE `id` IN (23289,23345,23346,23348,23291,23340,23342,23344,23370,23376,23427,23489);
DELETE FROM `creature` WHERE `guid` BETWEEN 52334 AND 52347;
-INSERT INTO `creature` (guid,id,map,spawnMask,phaseMask,modelid,equipment_id,position_x,position_y,position_z,orientation,spawntimesecs,spawndist,currentwaypoint,curhealth,curmana,DeathState,MovementType) VALUES
+INSERT INTO `creature` (guid,id,map,spawnMask,phaseMask,modelid,equipment_id,position_x,position_y,position_z,orientation,spawntimesecs,spawndist,currentwaypoint,curhealth,curmana,DeathState,MovementType) VALUES
(52334,23289,530,1,1,0,0,-5155.48975,696.2224,42.196106,4.90454865,120,0,0,1,0,0,0), -- Mine Car
(52335,23289,530,1,1,0,0,-5195.42334,620.3688,44.1691132,6.20430231,120,0,0,1,0,0,0), -- Mine Car
(52336,23345,530,1,1,0,0,-5066.307,640.2136,86.49668,1.553343,120,0,0,1,0,0,0), -- Wing Commander Ichman
diff --git a/sql/old/3.3.5a/2011_03_29_00_world_creature.sql b/sql/old/3.3.5a/2011_03_29_00_world_creature.sql
index dbe2f3e052d..9226d1c2277 100644
--- a/sql/old/3.3.5a/2011_03_29_00_world_creature.sql
+++ b/sql/old/3.3.5a/2011_03_29_00_world_creature.sql
@@ -30,13 +30,13 @@ INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`
-- -- Equipment data --
-- --------------------
DELETE FROM `creature_equip_template` WHERE `entry`=@EQUIP;
-INSERT INTO `creature_equip_template` (`entry`,`equipentry1`,`equipentry2`,`equipentry3`) VALUES
+INSERT INTO `creature_equip_template` (`entry`,`equipentry1`,`equipentry2`,`equipentry3`) VALUES
(@EQUIP,38175,12932,0);
-- ---------------------
-- -- Creature Spawns --
-- ---------------------
-DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+86;
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+86;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
-- Old Crystalbark
(@GUID,32357,571,1,1,0,0,3550.59,7169.73,220.75,0.130042,28800,0,0,13936,3231,0,2),
@@ -1364,7 +1364,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,49,4913.710,-1698.930,248.3080,0,0,0,100,0),
(@PATH,50,4914.310,-1661.770,248.3090,0,0,0,100,0);
--- Pathing for Fumblub Gearwind Entry: 32358
+-- Pathing for Fumblub Gearwind Entry: 32358
SET @NPC := @GUID+4;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4107.777,`position_y`=4981.302,`position_z`=4.601125 WHERE `guid`=@NPC;
@@ -1395,7 +1395,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
SET @GUID := 250006;
UPDATE `creature_template` SET `faction_a`=14, `faction_h`=14 WHERE entry IN (32630);
-DELETE FROM `creature` WHERE `guid`=@GUID;
+DELETE FROM `creature` WHERE `guid`=@GUID;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
-- Vyragosa
(@GUID,32630,571,1,1,0,0,7090.247,-1566.583,958.0051,0.7234184,28800,0,0,1,0,0,2);
diff --git a/sql/old/3.3.5a/2011_04_03_00_world_misc.sql b/sql/old/3.3.5a/2011_04_03_00_world_misc.sql
index ee23fbd4a85..a40b15e7a2a 100644
--- a/sql/old/3.3.5a/2011_04_03_00_world_misc.sql
+++ b/sql/old/3.3.5a/2011_04_03_00_world_misc.sql
@@ -50,6 +50,6 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
-- SAI
DELETE FROM `smart_scripts` WHERE `entryorguid`=25171 AND `source_type`=0;
-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
+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
(25171,0,0,0,1,0,100,1,500,500,0,0,11,63413,0,0,0,0,0,11,35469,10,0,0,0,0,0, 'Invisible Stalker (Scale x0.5) - OOC cast Rope Beam in Gormok the Impaler (not repeteable)'),
(25171,0,1,0,1,0,100,1,500,500,0,0,11,63413,0,0,0,0,0,11,35470,10,0,0,0,0,0, 'Invisible Stalker (Scale x0.5) - OOC cast Rope Beam in Icehowl (not repeteable)');
diff --git a/sql/old/3.3.5a/2011_04_03_05_world_sai.sql b/sql/old/3.3.5a/2011_04_03_05_world_sai.sql
index b1b5d97c4f1..435116e2b1b 100644
--- a/sql/old/3.3.5a/2011_04_03_05_world_sai.sql
+++ b/sql/old/3.3.5a/2011_04_03_05_world_sai.sql
@@ -5,9 +5,9 @@ UPDATE `creature_template` SET `AIName`= '' WHERE `entry` IN (23069,23259,23336,
-- SAI for Gavin Gnarltree
SET @ENTRY := 225;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=-10617.34,`position_y`=-1153.902,`position_z`=27.11271 WHERE `guid`=4086;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Gavin Gnarltree - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,1,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Gavin Gnarltree - Reach wp 1 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,5,25,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Gavin Gnarltree - Reach wp 1 - ONESHOT_POINT'),
@@ -32,10 +32,10 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Joseph Wilson
SET @ENTRY := 33589;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=8489.46,`position_y`=964.667,`position_z`=547.293 WHERE `guid`=75904;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Joseph Wilson - On spawn - Start WP movement'),
(@ENTRY,0,1,0,40,0,100,0,1,@ENTRY,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Joseph Wilson - Reach wp 1 - run script'),
(@ENTRY,0,2,3,40,0,100,0,4,@ENTRY,0,0,54,60000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Joseph Wilson - Reach wp 4 - pause path'),
@@ -58,10 +58,10 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Thomas Partridge
SET @ENTRY := 33854;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=8480.21,`position_y`=937.883,`position_z`=547.293 WHERE `guid`=76735;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Thomas Partridge - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,1,@ENTRY,0,0,54,60000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Thomas Partridge - Reach wp 1 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,3.01942, 'Thomas Partridge - Reach wp 1 - turn to'),
@@ -101,9 +101,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Brammold Deepmine
SET @ENTRY := 32509;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5771.88,`position_y`=632.803,`position_z`=661.075 WHERE `guid`=120355;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Brammold Deepmine - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,2,@ENTRY,0,0,54,480000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Brammold Deepmine - Reach wp 2 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,2.321288, 'Brammold Deepmine - Reach wp 2 - turm to'),
@@ -128,9 +128,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Emi
SET @ENTRY := 32668;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5805.625,`position_y`=692.3191,`position_z`=647.0484 WHERE `guid`=110543;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Emi - On spawn - Start WP movement'),
(@ENTRY,0,1,0,40,0,100,0,1,@ENTRY,0,0,54,18000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Emi - Reach wp 1 - pause path'),
(@ENTRY,0,2,3,40,0,100,0,2,@ENTRY,0,0,54,25000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Emi - Reach wp 2 - pause path'),
@@ -145,9 +145,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Colin
SET @ENTRY := 32669;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5807.146,`position_y`=683.3826,`position_z`=647.0484 WHERE `guid`=110586;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Colin - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,1,@ENTRY,0,0,54,4000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Colin - Reach wp 1 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,5.427974, 'Colin - Reach wp 1 - turm to'),
diff --git a/sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql b/sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql
index 46ae5dc202c..f38f690666c 100644
--- a/sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql
+++ b/sql/old/3.3.5a/2011_04_03_06_world_waypoint.sql
@@ -613,7 +613,7 @@ DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
-(@PATH,1,-10596.3,-1164.096,30.05967,0,0,0,100,0),
+(@PATH,1,-10596.3,-1164.096,30.05967,0,0,0,100,0),
(@PATH,2,-10590.63,-1156.783,30.05967,0,0,0,100,0),
(@PATH,3,-10590.52,-1155.93,30.05967,55000,0,0,100,0),
(@PATH,4,-10590.21,-1156.136,30.05967,0,0,0,100,0),
@@ -627,7 +627,7 @@ DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
-(@PATH,1,-10494.12,-1160.191,28.37647,45000,0,0,100,0),
+(@PATH,1,-10494.12,-1160.191,28.37647,45000,0,0,100,0),
(@PATH,2,-10498.6,-1160.361,28.08655,0,0,0,100,0),
(@PATH,3,-10498.77,-1161.604,28.08655,9000,0,0,100,0),
(@PATH,4,-10498.77,-1161.249,28.08655,0,0,0,100,0),
diff --git a/sql/old/3.3.5a/2011_04_03_09_world_misc.sql b/sql/old/3.3.5a/2011_04_03_09_world_misc.sql
index f82822bfd17..74d63effc3a 100644
--- a/sql/old/3.3.5a/2011_04_03_09_world_misc.sql
+++ b/sql/old/3.3.5a/2011_04_03_09_world_misc.sql
@@ -1,5 +1,5 @@
DELETE FROM `smart_scripts` WHERE (`entryorguid`=25171 OR `entryorguid` BETWEEN -209026 AND -209019) AND `source_type`=0;
-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
+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
(-209019,0,0,0,1,0,100,1,500,500,0,0,11,63413,0,0,0,0,0,11,35469,10,0,0,0,0,0, 'Invisible Stalker (Scale x0.5) - OOC cast Rope Beam in Gormok the Impaler'),
(-209020,0,0,0,1,0,100,1,500,500,0,0,11,63413,0,0,0,0,0,11,35469,10,0,0,0,0,0, 'Invisible Stalker (Scale x0.5) - OOC cast Rope Beam in Gormok the Impaler'),
(-209022,0,0,0,1,0,100,1,500,500,0,0,11,63413,0,0,0,0,0,11,35469,10,0,0,0,0,0, 'Invisible Stalker (Scale x0.5) - OOC cast Rope Beam in Gormok the Impaler'),
diff --git a/sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql b/sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql
index c522d73ac8b..e32d3579379 100644
--- a/sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_04_03_10_world_spell_script_names.sql
@@ -1,4 +1,4 @@
-- Add spell script
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_symbol_of_life_dummy';
-INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(8593, 'spell_symbol_of_life_dummy');
diff --git a/sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql b/sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql
index 49cf539b922..be60a58d0cb 100644
--- a/sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_04_03_11_world_spell_script_names.sql
@@ -1,4 +1,4 @@
-- Add spell script
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_ulduar_proximity_mines';
-INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(63027, 'spell_ulduar_proximity_mines');
diff --git a/sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql
index 5d7a0f4687e..d789178c40c 100644
--- a/sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2011_04_11_01_world_creature_loot_template.sql
@@ -4,7 +4,7 @@ DELETE FROM `creature_loot_template` WHERE `entry`=@lasher;
INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
(@lasher,37704,100,1,0,1,3), -- Crystalised Life
(@lasher,43324,-75,1,0,1,1), -- Alliance Herb Pouch
-(@lasher,44809,-75,1,0,1,1), -- Horde Herb Pouch
+(@lasher,44809,-75,1,0,1,1), -- Horde Herb Pouch
(@lasher,44774,80,1,0,1,1), -- Ice-Piercing Thorn
(@lasher,44775,20,1,0,1,1); -- Revolting Flower
diff --git a/sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql b/sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql
index 672ac1ca913..4b85908910d 100644
--- a/sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql
+++ b/sql/old/3.3.5a/2011_04_11_02_world_spell_area.sql
@@ -1,6 +1,6 @@
-- Add Spectral Gyphron to Wintergrasp
DELETE FROM `spell_area` WHERE `spell`=55164 AND `area`=4197;
-INSERT INTO `spell_area`
-(`spell`,`area`,`quest_start`,`quest_start_active`,`aura_spell`,`racemask`,`gender`,`autocast`)
+INSERT INTO `spell_area`
+(`spell`,`area`,`quest_start`,`quest_start_active`,`aura_spell`,`racemask`,`gender`,`autocast`)
VALUES
(55164,4197,0,0,8326,65527,2,1);
diff --git a/sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql b/sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql
index 2336f3974fe..2cb150105e3 100644
--- a/sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql
+++ b/sql/old/3.3.5a/2011_04_11_03_world_arena_season_5.sql
@@ -43,7 +43,7 @@ INSERT INTO `game_event_creature` (`guid`,`eventEntry`) VALUES
(@GUID+10,57); -- Captain Dirgehammer (32381)
-- ----------------------
-- -- Vendor Templates --
--- ----------------------
+-- ----------------------
SET @31600HP := 2560;
SET @38000HP := 2561;
SET @1660RT_39400HP := 2564;
@@ -87,9 +87,9 @@ SET @Doris := 32385; -- (most likely) (34058/34059/34060) as s6/s7/s8?
SET @Tristia := 32380; -- (most likely) (34076,34077,34078) as s6/s7/s8?
DELETE FROM `npc_vendor` WHERE `entry` IN (@BG_Zar,@Moonstrike,@ZomBocom,@Xazi,@Nargle,@Kezzik,@Argex,@Thunderhorn,@Doris,@Tristia);
-INSERT INTO `npc_vendor`
+INSERT INTO `npc_vendor`
(`entry`,`slot`,`item`,`maxcount`,`incrtime`,`ExtendedCost`)
-VALUES
+VALUES
-- Spacer
(@BG_Zar,0,40779,0,0,@60000HP), -- Savage Gladiator Chest DK
(@BG_Zar,0,40799,0,0,@50000HP), -- Savage Gladiator Gloves DK
diff --git a/sql/old/3.3.5a/2011_04_14_00_world_sai.sql b/sql/old/3.3.5a/2011_04_14_00_world_sai.sql
index 9252f451a83..0918b001bf7 100644
--- a/sql/old/3.3.5a/2011_04_14_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_04_14_00_world_sai.sql
@@ -5,5 +5,5 @@ DELETE FROM `creature_ai_scripts` WHERE `creature_id`=732;
-- Timers were got from eventAI script (ACID)
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=732;
DELETE FROM `smart_scripts` WHERE (`entryorguid`=732 AND `source_type`=0);
-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
+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
(732, 0, 0, 0, 67, 0, 100, 0, 3900, 6900, 0, 0, 11, 7159, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Murloc Lurker - Casts Backstab'); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql b/sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql
index 0602d814fe8..2ae1a62d4b7 100644
--- a/sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql
+++ b/sql/old/3.3.5a/2011_04_14_01_world_quest_template.sql
@@ -14,4 +14,4 @@ UPDATE `quest_template` SET `PrevQuestId`=13664 WHERE `entry`=13788; -- Thread f
UPDATE `quest_template` SET `PrevQuestId`=13664 WHERE `entry`=13809; -- Thread from Above only after The Black Knights Fall
UPDATE `quest_template` SET `PrevQuestId`=13664 WHERE `entry`=13812; -- Thread from Above only after The Black Knights Fall
-- Fix some startuperrors:
-UPDATE `creature_template` SET `npcflag`=`npcflag`|128 WHERE `entry` IN (32405,32407);
+UPDATE `creature_template` SET `npcflag`=`npcflag`|128 WHERE `entry` IN (32405,32407);
diff --git a/sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql
index d75764507e7..af58365089a 100644
--- a/sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2011_04_17_00_world_achievement_criteria_data.sql
@@ -1,7 +1,7 @@
DELETE FROM `disables` WHERE `sourceType` = 4 AND `entry` IN (7625,6446,7628);
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (6446,7625) AND `type`=11;
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7628 AND `type`!=0;
-INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
+INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
(6446,11,0,0,'achievement_bg_sa_drop_it'),
(7625,11,0,0,'achievement_bg_sa_artillery_veteran'),
(7628,11,0,0,'achievement_bg_sa_artillery_expert'),
diff --git a/sql/old/3.3.5a/2011_04_17_06_world_creature.sql b/sql/old/3.3.5a/2011_04_17_06_world_creature.sql
index 76ac9c62d5a..844cd416cfa 100644
--- a/sql/old/3.3.5a/2011_04_17_06_world_creature.sql
+++ b/sql/old/3.3.5a/2011_04_17_06_world_creature.sql
@@ -1,7 +1,7 @@
-SET @GUID := 152098;
+SET @GUID := 152098;
DELETE FROM `creature` WHERE `id` IN (33211,33499,24495,28602,26266,29563,29695,29719,29720,29747,29790,24910);
-INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
+INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
-- Lake Frog
(@GUID ,33211,571,1,1,0,0,3714.916,-4303.659,182.632217,5.098984,120,0,0,1,0,0,0),
(@GUID+1,33211,571,1,1,0,0,3727.9043,-4302.23926,182.257217,3.08221,120,0,0,1,0,0,0),
@@ -38,7 +38,7 @@ INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equip
-- Tracker Thulin
(@GUID+27,29695,571,1,1,0,0,7313.95752,-1611.87976,944.595459,1.79768908,120,0,0,1,0,0,0),
-- Morbid Carcass PHASEMASK '0x00000002'
-(@GUID+28,29719,571,1,2,0,0,8249.877,2766.00684,641.9236,2.84488654,120,0,0,1,0,0,0),
+(@GUID+28,29719,571,1,2,0,0,8249.877,2766.00684,641.9236,2.84488654,120,0,0,1,0,0,0),
(@GUID+29,29719,571,1,2,0,0,8251.455,2788.82275,641.9236,3.159046,120,0,0,1,0,0,0),
(@GUID+30,29719,571,1,2,0,0,8277.752,2676.89429,689.776733,2.5395987,120,0,0,1,0,0,0),
(@GUID+31,29719,571,1,2,0,0,8312.651,2687.84644,689.776733,1.71902692,120,0,0,1,0,0,0),
@@ -81,8 +81,8 @@ INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equip
-- The Ocular (Phase='0x00000002')
(@GUID+67,29747,571,1,2,0,0,8526.228,2665.08521,1045.03979,2.67035365,120,0,0,1,0,0,0),
-- The Ocular - Eye of Acherus Exterior Shell
-(@GUID+68,29790,571,1,2,0,0,8526.228,2665.08521,1037.08838,2.67035365,120,0,0,1,0,0,0),
--- Captain Ellis
+(@GUID+68,29790,571,1,2,0,0,8526.228,2665.08521,1037.08838,2.67035365,120,0,0,1,0,0,0),
+-- Captain Ellis
(@GUID+69,24910,571,1,1,0,0,101.368256,-3645.39087,21.6450329,4.067803,120,0,0,1,0,0,0);
diff --git a/sql/old/3.3.5a/2011_04_22_03_world_creatures.sql b/sql/old/3.3.5a/2011_04_22_03_world_creatures.sql
index 4b02962b93e..24b6fbc5a88 100644
--- a/sql/old/3.3.5a/2011_04_22_03_world_creatures.sql
+++ b/sql/old/3.3.5a/2011_04_22_03_world_creatures.sql
@@ -5,7 +5,7 @@ INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equip
-- Tome
DELETE FROM `gameobject` WHERE `id`=187987; -- South Point Station Valve
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(151895,187987,571,1,1,3791.704,4808.966,-11.5618,1.483528,0,0,0.6755896,0.7372779,0,0,0);
-- Nay
diff --git a/sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql b/sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql
index fa7ebba48ad..dfba5bb323f 100644
--- a/sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2011_04_22_07_world_smart_scripts.sql
@@ -1,9 +1,9 @@
-- SAI for Henze Faulk
SET @ENTRY := 6172;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ENTRY*100);
-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
+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
-- AI
(@ENTRY,0,0,1,11,0,100,0,0,0,0,0,11,29266,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Henze Faulk - On spawn - add aura'),
(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Henze Faulk - Script - set npcflags'),
@@ -16,7 +16,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY*100,9,3,0,0,0,100,0,1500,1500,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Henze Faulk - Script - set npcflags'),
(@ENTRY*100,9,4,0,0,0,100,0,120000,120000,0,0,24,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Henze Faulk - Script - evade (reset script)');
-- NPC talk text insert
-DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0, 'Thank you, dear $C, you just saved my life.',0,7,100,1,0,0, 'Henze Faulk');
-- Scripting cleanup
@@ -25,10 +25,10 @@ UPDATE `creature_template_addon` SET `auras`='' WHERE `entry`=@ENTRY;
-- SAI for Narm Faulk
SET @ENTRY := 6177;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ENTRY*100);
-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
+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
-- AI
(@ENTRY,0,0,1,11,0,100,0,0,0,0,0,11,29266,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Narm Faulk - On spawn - add aura'),
(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Narm Faulk - Script - set npcflags'),
@@ -41,7 +41,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY*100,9,3,0,0,0,100,0,1500,1500,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Narm Faulk - Script - set npcflags'),
(@ENTRY*100,9,4,0,0,0,100,0,120000,120000,0,0,24,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Narm Faulk - Script - evade (reset script)');
-- NPC talk text insert
-DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0, 'Thank you, dear $C, you just saved my life.',0,7,100,1,0,0, 'Narm Faulk');
-- Scripting cleanup
@@ -51,10 +51,10 @@ UPDATE `creature_template_addon` SET `auras`='' WHERE `entry`=@ENTRY;
-- SAI for Fhyron Shadesong
SET @ENTRY := 33788;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=8570.943,`position_y`=1008.467,`position_z`=548.2927 WHERE `guid`=85201;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Fhyron Shadesong - On spawn - Start WP movement'),
(@ENTRY,0,1,0,40,0,100,0,8,@ENTRY,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fhyron Shadesong - Reach wp 8 - run script'),
(@ENTRY,0,2,0,40,0,100,0,10,@ENTRY,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fhyron Shadesong - Reach wp 10 - run script'),
@@ -75,7 +75,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY*100,9,2,0,0,0,100,0,100,100,0,0,11,63678,0,0,0,0,0,19,33787,0,0,0,0,0,0, 'Fhyron Shadesong - Script - Cast Earthliving Visual on Tournament Druid Spell Target'),
(@ENTRY*100,9,3,0,0,0,50,0,4000,4000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fhyron Shadesong - Script - say text 0');
-- NPC talk text insert from sniff
-DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0, 'Help shield us from these cutting winds, little sapling.',0,7,100,2,0,0, 'Fhyron Shadesong'),
(@ENTRY,0,1, 'There you are',0,7,100,273,0,0, 'Fhyron Shadesong'),
diff --git a/sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql b/sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql
index a31c3ffb807..c4a26a0b297 100644
--- a/sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql
+++ b/sql/old/3.3.5a/2011_04_23_01_world_gameobjects.sql
@@ -222,7 +222,7 @@ INSERT INTO `game_event_gameobject` (`eventEntry`,`guid`) VALUES
(@EVENT,@GUID+210),(@EVENT,@GUID+211),(@EVENT,@GUID+212),
(@EVENT,@GUID+213),(@EVENT,@GUID+214),(@EVENT,@GUID+215),
(@EVENT,@GUID+216),(@EVENT,@GUID+217),(@EVENT,@GUID+218),
-(@EVENT,@GUID+219);
+(@EVENT,@GUID+219);
DELETE FROM `gameobject` WHERE `id` BETWEEN 113768 AND 113772;
INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
diff --git a/sql/old/3.3.5a/2011_04_23_02_world_creatures.sql b/sql/old/3.3.5a/2011_04_23_02_world_creatures.sql
index 88e0df6a9da..6ab83f48f51 100644
--- a/sql/old/3.3.5a/2011_04_23_02_world_creatures.sql
+++ b/sql/old/3.3.5a/2011_04_23_02_world_creatures.sql
@@ -28,10 +28,10 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
(@GUID+05,32799,1,1,1,0,0,9837.29,969.65,1308.21,0.383221,300,0,0,0,0,0,0,0,0,0), -- Spring Collector
(@GUID+06,32799,0,1,1,0,0,-9453.86,44.7409,56.7139,1.45433,300,0,0,0,0,0,0,0,0,0), -- Spring Collector
(@GUID+07,32799,530,1,1,0,0,-4150.79,-12492.3,44.6553,3.75029,300,0,0,0,0,0,0,0,0,0), -- Spring Collector
-(@GUID+08,32836,0,1,1,0,0,-5601.03,-512.86,401.492,1.56166,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
-(@GUID+09,32836,1,1,1,0,0,9839.27,961.92,1308.29,0.271694,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
-(@GUID+10,32836,0,1,1,0,0,-9451.26,42.2403,57.173,0.641447,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
-(@GUID+11,32836,530,1,1,0,0,-4155.63,-12486.1,44.7758,3.96234,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
+(@GUID+08,32836,0,1,1,0,0,-5601.03,-512.86,401.492,1.56166,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
+(@GUID+09,32836,1,1,1,0,0,9839.27,961.92,1308.29,0.271694,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
+(@GUID+10,32836,0,1,1,0,0,-9451.26,42.2403,57.173,0.641447,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
+(@GUID+11,32836,530,1,1,0,0,-4155.63,-12486.1,44.7758,3.96234,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Vendor
(@GUID+12,32837,0,1,1,0,0,2244.84,262.273,34.148,2.9156,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Merchant
(@GUID+13,32837,1,1,1,0,0,333.091,-4707.97,15.6644,4.12487,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Merchant
(@GUID+14,32837,530,1,1,0,0,9487.64,-6833.65,16.986,0.819677,300,0,0,0,0,0,0,0,0,0), -- Noblegarden Merchant
diff --git a/sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql b/sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql
index f690f082c35..acbdb4f779b 100644
--- a/sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql
+++ b/sql/old/3.3.5a/2011_04_29_00_world_loot_template.sql
@@ -2,7 +2,7 @@
SET @REF:= 34348; -- (found by StoredProc)
-- Delete all so we can also renumber the itemids on refs for old loot
-DELETE FROM `creature_loot_template` WHERE `entry`=11583;
+DELETE FROM `creature_loot_template` WHERE `entry`=11583;
INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(11583,19002,100,1,0,1,1),
(11583,19003,100,1,0,1,1),
diff --git a/sql/old/3.3.5a/2011_05_07_02_world_sai.sql b/sql/old/3.3.5a/2011_05_07_02_world_sai.sql
index 3ac4a75057a..f01e8491d69 100644
--- a/sql/old/3.3.5a/2011_05_07_02_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_07_02_world_sai.sql
@@ -7,5 +7,5 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(25596,0,1,0,31,0,100,0,45877,0,0,0,41,0,0,0,0,0,0,22,0,0,0,0,0,0,0, 'Infected Kodo Beast - On Spell Hit despawn');
DELETE FROM `npc_spellclick_spells` where `npc_entry`=25596;
-INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`quest_start`,`quest_start_active`,`quest_end`,`cast_flags`,`aura_required`,`aura_forbidden`,`user_type`) values
+INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`quest_start`,`quest_start_active`,`quest_end`,`cast_flags`,`aura_required`,`aura_forbidden`,`user_type`) values
(25596,45875,11690,1,11690,0,0,0,0);
diff --git a/sql/old/3.3.5a/2011_05_07_04_world_sai.sql b/sql/old/3.3.5a/2011_05_07_04_world_sai.sql
index 7cab160ce48..b18b5fa10bd 100644
--- a/sql/old/3.3.5a/2011_05_07_04_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_07_04_world_sai.sql
@@ -5,7 +5,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(28379,0,0,0,31,0,100,0,51660,0,0,0,41,0,0,0,0,0,0,22,0,0,0,0,0,0,0, 'Shattertusk Mammoth - On Spell Hit - Despawn');
DELETE FROM `npc_spellclick_spells` where `npc_entry`=28379;
-INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`quest_start`,`quest_start_active`,`quest_end`,`cast_flags`,`aura_required`,`aura_forbidden`,`user_type`) values
+INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`quest_start`,`quest_start_active`,`quest_end`,`cast_flags`,`aura_required`,`aura_forbidden`,`user_type`) values
(28379,51658,12607,1,12607,0,0,0,0);
DELETE FROM `creature_template_addon` WHERE `entry`=28379;
diff --git a/sql/old/3.3.5a/2011_05_07_05_world_sai.sql b/sql/old/3.3.5a/2011_05_07_05_world_sai.sql
index 8584f4beb10..d03c1238f51 100644
--- a/sql/old/3.3.5a/2011_05_07_05_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_07_05_world_sai.sql
@@ -2,14 +2,14 @@
SET @ENTRY := 23861;
UPDATE `creature_template` SET `ScriptName`='',`AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,25,0,100,0,0,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Restless Apparition - On spawn - Run script'),
(@ENTRY*100,9,0,0,0,0,100,0,2000,2000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Restless Apparition - Script - Say text 0'),
(@ENTRY*100,9,1,0,0,0,100,0,8000,8000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Restless Apparition - Script - Despawn');
-DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0, 'The darkness... the corruption... they came too quickly for anyone to know...',0,0,15,25,0,0, 'Restless Apparition'),
(@ENTRY,0,1, 'It is too late for us, living one. Take yourself and your friend away from here before you both are... claimed...',0,0,15,25,0,0, 'Restless Apparition'),
diff --git a/sql/old/3.3.5a/2011_05_07_06_world_sai.sql b/sql/old/3.3.5a/2011_05_07_06_world_sai.sql
index 6face4a4fd1..12beaa431db 100644
--- a/sql/old/3.3.5a/2011_05_07_06_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_07_06_world_sai.sql
@@ -13,7 +13,7 @@ UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `id`=@ENTRY;
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
(@ENTRY,0,0,0,1,0,100,0,1000,60000,90000,120000,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Zeppelin Power Core - OOC - Load script every 1.5-2 min'),
(@ENTRY*100,9,0,0,0,0,100,0,1000,1000,0,0,11,42491,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Zeppelin Power Core - Script - Cast Energized Periodic on self'),
(@ENTRY*100,9,1,0,0,0,100,0,60000,90000,0,0,28,42491,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Zeppelin Power Core - Script - After 1 - 1.5 min, remove Energized Periodic on self');
diff --git a/sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql b/sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql
index 3a1558a7c39..1d9d31fab97 100644
--- a/sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_05_08_01_world_spell_script_names.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN (63489,62274);
-INSERT INTO `spell_script_names`
+INSERT INTO `spell_script_names`
VALUES
(63489, 'spell_shield_of_runes'),
(62274, 'spell_shield_of_runes');
diff --git a/sql/old/3.3.5a/2011_05_18_07_world_sai.sql b/sql/old/3.3.5a/2011_05_18_07_world_sai.sql
index 6e599bd43fb..cb33d02f7cd 100644
--- a/sql/old/3.3.5a/2011_05_18_07_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_18_07_world_sai.sql
@@ -21,8 +21,8 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(27224,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Forgotten Knight - Prevent Melee at 15 Yards (Phase 1)'),
(27224,0,14,0,7,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Knight - Set Melee Weapon Model on Evade'),
-- Forgotten Rifleman
-(27225,0,0,1,62,0,100,0,9543,0,0,0,11,48830,3,0,0,0,0,7,0,0,0,0,0,0,0, 'Forgotten Rifleman - On gossip option select quest credit'),
-(27225,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Forgotten Rifleman - Close Gossip'),
+(27225,0,0,1,62,0,100,0,9543,0,0,0,11,48830,3,0,0,0,0,7,0,0,0,0,0,0,0, 'Forgotten Rifleman - On gossip option select quest credit'),
+(27225,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Forgotten Rifleman - Close Gossip'),
(27225,0,2,3,11,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Rifleman - Prevent Combat Movement on Spawn'),
(27225,0,3,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Rifleman - Prevent Melee on Spawn'),
(27225,0,4,0,23,0,100,0,48143,0,0,0,11,48143,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Rifleman - Add Forgotten Aura if missing'),
@@ -43,7 +43,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(27225,0,19,20,61,2,100,0,0,0,0,0,25,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Rifleman - Flee at 15% HP (Phase 2)'),
(27225,0,20,21,61,2,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Rifleman - Say text0 at 15% HP (Phase 2)'),
(27225,0,21,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Rifleman - set phase 1 at 15% HP (Phase 2)'),
-(27225,0,22,0,7,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Knight - Set Melee Weapon Model on Evade'),
+(27225,0,22,0,7,0,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Knight - Set Melee Weapon Model on Evade'),
-- Forgotten Peasant
(27226,0,0,1,62,0,100,0,9541,0,0,0,11,48829,3,0,0,0,0,7,0,0,0,0,0,0,0, 'Forgotten Peasant - On gossip option select quest credit'),
(27226,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Forgotten Peasant - Close Gossip'),
diff --git a/sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql b/sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql
index fb8adf5888e..a04b688d2a9 100644
--- a/sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql
+++ b/sql/old/3.3.5a/2011_05_18_09_world_waypoints.sql
@@ -1563,7 +1563,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
-- Add random movement to other 6 Niffelem Forefathers
UPDATE `creature` SET `spawndist`=25,`MovementType`=1 WHERE `id`=29974 AND `MovementType`=0;
--- Add random movement to Frostborn Ghost & Frostborn Warriors
+-- Add random movement to Frostborn Ghost & Frostborn Warriors
UPDATE `creature` SET `spawndist`=25,`MovementType`=1 WHERE `id` IN (30144,30135);
-- Pathing for Forgotten Footman Entry: 27229
diff --git a/sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql b/sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql
index 1e3d1d9475b..ab243945eea 100644
--- a/sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql
+++ b/sql/old/3.3.5a/2011_05_19_01_world_instance_misc.sql
@@ -28,7 +28,7 @@ UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=194173;
-- Spell Linked Spell
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (61990,61969,65280);
INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`)
-VALUES
+VALUES
(61990,-62457,2,'Hodir - Ice Shards Immunity'),
(61990,-65370,2,'Hodir - Ice Shards Immunity'),
(65280,-62469,2,'Toasty fire - Freeze imunity'),
diff --git a/sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql b/sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql
index f3ff348c64d..93a64fe2cab 100644
--- a/sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql
+++ b/sql/old/3.3.5a/2011_05_20_02_world_pool_template.sql
@@ -13,8 +13,8 @@ SET @AREA1699 := @REST+11; -- Area 1699 (21 nodes)
SET @AREA1700 := @REST+12; -- Area 1700 (28 nodes)
SET @AREA1701 := @REST+13; -- Area 1701 (39 nodes)
-DELETE FROM `pool_template` WHERE `entry` BETWEEN @REST AND @REST+17 ;
-INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
+DELETE FROM `pool_template` WHERE `entry` BETWEEN @REST AND @REST+17 ;
+INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
(@REST,18, 'Master Zone 17 Leftover Areas (18 out of 88 nodes)'),
(@AREA17,60, 'Master Zone 17 Area 17 (60 out of 305 nodes'),
(@AREA383,8, 'Master Zone 17 Area 383 (8 out of 41 nodes'),
@@ -30,8 +30,8 @@ INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
(@AREA1700,10, 'Master Zone 17 Area 1700 (6 out of 28 nodes'),
(@AREA1701,10, 'Master Zone 17 Area 1701 (8 out of 39 nodes');
-DELETE FROM `pool_gameobject` WHERE `pool_entry` BETWEEN @REST AND @REST+17 ;
-INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES
+DELETE FROM `pool_gameobject` WHERE `pool_entry` BETWEEN @REST AND @REST+17 ;
+INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES
-- Nodes are numbered based on GUID, comment shows area and type
-- Pooled per area for more randomness
(462,@AREA17,0, 'Silverleaf,Zone 17,Area 17,node 1'),
diff --git a/sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql b/sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql
index 77a3545d16a..2ad977c9f32 100644
--- a/sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql
+++ b/sql/old/3.3.5a/2011_05_20_03_world_pool_template.sql
@@ -6,8 +6,8 @@ SET @Area1767 := @Rest+4; -- Area 1767 (45 nodes)
SET @Area2481 := @Rest+5; -- Area 2481 (13 nodes)
SET @Area2618 := @Rest+6; -- Area 2618 (14 nodes)
-DELETE FROM `pool_template` WHERE `entry` BETWEEN @Rest AND @Rest+6 ;
-INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
+DELETE FROM `pool_template` WHERE `entry` BETWEEN @Rest AND @Rest+6 ;
+INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
(@Rest ,10, 'Master Herbs Zone 361 Leftover Areas (10 out of 49 nodes)'),
(@Area361,17, 'Master Herbs Zone 361 Area 361 (17 out of 85 nodes)'),
(@Area1763,4, 'Master Herbs Zone 361 Area 1763 (4 out of 19 nodes)'),
@@ -16,8 +16,8 @@ INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
(@Area2481,9, 'Master Herbs Zone 361 Area 2481 (3 out of 13 nodes)'),
(@Area2618,9, 'Master Herbs Zone 361 Area 2618 (3 out of 14 nodes)');
-DELETE FROM `pool_gameobject` WHERE `pool_entry` BETWEEN @REST AND @REST+6 ;
-INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES
+DELETE FROM `pool_gameobject` WHERE `pool_entry` BETWEEN @REST AND @REST+6 ;
+INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES
-- Nodes are numbered based on GUID, comment shows area and type
-- Pooled per area for more randomness
(15955,@Area361,0,'Arthas Tears,Zone 361,Area 361,node 3'),
@@ -261,4 +261,4 @@ INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUE
(19488,@Area2618,0,'Dreamfoil,Zone 361,Area 2618,node 156'),
(19557,@Area2618,0,'Dreamfoil,Zone 361,Area 2618,node 164'),
(19888,@Area2618,0,'Plaguebloom,Zone 361,Area 2618,node 182'),
-(20061,@Area2618,0,'Plaguebloom,Zone 361,Area 2618,node 229');
+(20061,@Area2618,0,'Plaguebloom,Zone 361,Area 2618,node 229');
diff --git a/sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql b/sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql
index 58e62767263..761ace00b16 100644
--- a/sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql
+++ b/sql/old/3.3.5a/2011_05_20_04_world_pool_template.sql
@@ -5,8 +5,8 @@ SET @Area598 := @Rest+3; -- Area 598 (20 nodes)
SET @Area602 := @Rest+4; -- Area 602 (27 nodes)
SET @Area607 := @Rest+5; -- Area 607 (22 nodes)
-DELETE FROM `pool_template` WHERE `entry` BETWEEN @Rest AND @Rest+6 ;
-INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
+DELETE FROM `pool_template` WHERE `entry` BETWEEN @Rest AND @Rest+6 ;
+INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
(@Rest ,10, 'Master Herbs Zone 405 Leftover Areas (10 out of 41 nodes)'),
(@Area405,8, 'Master Herbs Zone 405 Leftover Areas (8 out of 40 nodes)'),
(@Area596,4, 'Master Herbs Zone 405 Leftover Areas (4 out of 18 nodes)'),
@@ -14,8 +14,8 @@ INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES
(@Area602,5, 'Master Herbs Zone 405 Leftover Areas (5 out of 27 nodes)'),
(@Area607,5, 'Master Herbs Zone 405 Leftover Areas (5 out of 22 nodes)');
-DELETE FROM `pool_gameobject` WHERE `pool_entry` BETWEEN @REST AND @REST+5 ;
-INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES
+DELETE FROM `pool_gameobject` WHERE `pool_entry` BETWEEN @REST AND @REST+5 ;
+INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES
-- node s are numbered based on GUID, comment shows area and type
-- Pooled per area for more randomness
(3126,@Area405,0,'Bruiseweed,Zone 405,405,node 14'),
diff --git a/sql/old/3.3.5a/2011_05_22_01_world_misc.sql b/sql/old/3.3.5a/2011_05_22_01_world_misc.sql
index b33e39433d7..e354997f836 100644
--- a/sql/old/3.3.5a/2011_05_22_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_05_22_01_world_misc.sql
@@ -34,7 +34,7 @@ UPDATE `creature_template` SET `exp`=2,`unit_flags`=`unit_flags`|0x22040300 WHER
-- Equips
DELETE FROM `creature_equip_template` WHERE `entry` BETWEEN @EquiEntry AND @EquiEntry+6;
-INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
(@EquiEntry+0,43111,0,0),
(@EquiEntry+1,28365,0,0),
(@EquiEntry+2,19355,0,0),
diff --git a/sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql b/sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql
index 7ff1d90e5e2..da02941c85f 100644
--- a/sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/2011_05_22_08_world_spell_proc_event.sql
@@ -1,2 +1,2 @@
-- Eradication should not have internal cooldown
-UPDATE `spell_proc_event` SET `Cooldown`=0 WHERE `entry` IN (47195,47196,47197);
+UPDATE `spell_proc_event` SET `Cooldown`=0 WHERE `entry` IN (47195,47196,47197);
diff --git a/sql/old/3.3.5a/2011_05_24_03_world_creature.sql b/sql/old/3.3.5a/2011_05_24_03_world_creature.sql
index 76a7978f847..11621f51bea 100644
--- a/sql/old/3.3.5a/2011_05_24_03_world_creature.sql
+++ b/sql/old/3.3.5a/2011_05_24_03_world_creature.sql
@@ -1,7 +1,7 @@
-- Add Missing Black Blood of Draenor Spawns to db
SET @GUID := 209032;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+36;
-INSERT IGNORE INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
+INSERT IGNORE INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
(@GUID+0,23286,530,1,1,0,0,-4989.68945,533.267,-6.23201227,2.588225,120,5,0,1,0,0,1),
(@GUID+1,23286,530,1,1,0,0,-5008.07764,445.799774,-7.687496,4.848184,120,5,0,1,0,0,1),
(@GUID+2,23286,530,1,1,0,0,-5012.0127,514.3434,-5.042469,5.13465834,120,5,0,1,0,0,1),
diff --git a/sql/old/3.3.5a/2011_05_24_09_world_sai.sql b/sql/old/3.3.5a/2011_05_24_09_world_sai.sql
index d1a5de6af62..65d6e94d4cf 100644
--- a/sql/old/3.3.5a/2011_05_24_09_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_24_09_world_sai.sql
@@ -1,11 +1,11 @@
-- Quest 12321 "A Righteous Sermon"
--- SAI for Inquisitor Hallard
+-- SAI for Inquisitor Hallard
SET @ENTRY := 27316;
-UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`='' WHERE `entry`=@ENTRY;
+UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`='' WHERE `entry`=@ENTRY;
UPDATE `creature` SET `position_x`=3797.918,`position_y`=-677.4138,`position_z`=213.7526 WHERE id=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ENTRY*100);
-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
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ENTRY*100);
+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
-- AI
(@ENTRY,0,0,0,25,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Inquisitor Hallard - on reset - load path 0'),
(@ENTRY,0,1,0,19,0,100,0,12321,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Inquisitor Hallard - on quest accept 12321 - run script'),
@@ -51,16 +51,16 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY*100,9,38,0,0,0,100,0,0,0,0,0,78,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Inquisitor Hallard - script - reset creature');
-- waypoints for Inquisitor Hallard
-DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY);
-INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
-(@ENTRY,1,3804.538,-679.7090,213.7526, 'Inquisitor Hallard'),
+DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(@ENTRY,1,3804.538,-679.7090,213.7526, 'Inquisitor Hallard'),
(@ENTRY,2,3802.979,-678.8114,214.2526, 'Inquisitor Hallard'),
(@ENTRY,3,3800.479,-678.0614,214.2526, 'Inquisitor Hallard'),
(@ENTRY,4,3797.918,-677.4138,213.7526, 'Inquisitor Hallard');
--- NPC talk text insert from sniff
-DELETE FROM `creature_text` WHERE `entry` IN (27316,27577);
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- NPC talk text insert from sniff
+DELETE FROM `creature_text` WHERE `entry` IN (27316,27577);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(27316,0,0, 'Stand back, $N, the beast might lash out and harm you.',12,7,100,396,0,0, 'Inquisitor Hallard'),
(27316,1,0, 'GODFREY! Hear me, fiend! Hear me, for I am the Light, here to deliver you from evil!',12,7,100,5,0,0, 'Inquisitor Hallard'),
(27577,0,0, '%s growls.',16,0,100,0,0,409, 'Mayor Godfrey'),
diff --git a/sql/old/3.3.5a/2011_05_24_10_world_sai.sql b/sql/old/3.3.5a/2011_05_24_10_world_sai.sql
index ab0e6659d68..4715ea65419 100644
--- a/sql/old/3.3.5a/2011_05_24_10_world_sai.sql
+++ b/sql/old/3.3.5a/2011_05_24_10_world_sai.sql
@@ -1,10 +1,10 @@
-- SAI for Grom'tor, Son of Oronok & Coilskar Commander (Shadowmoon Valley)
SET @ENTRY := 21291;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=-2815.424,`position_y`=1771.031,`position_z`=59.10168,`orientation`=4.967079 WHERE `guid`=74574;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@ENTRY*100;
-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
+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
-- AI
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Grom''tor, Son of Oronok - On spawn - Start WP movement'),
(@ENTRY,0,1,0,1,0,100,0,10000,30000,240000,240000,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Grom''tor, Son of Oronok - OOC - Run Script'),
@@ -48,9 +48,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
(@ENTRY,2,-2815.424,1771.031,59.10168, 'Grom''tor, Son of Oronok');
-- SAI for Coilskar Commander
SET @ENTRY := 21295;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,1,8,0,100,0,36539,0,0,0,11,36542,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Coilskar Commander - On Spellhit 36539 - cast 36542 on self'),
(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,90,7,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Coilskar Commander - On Spellhit 36539 - set bytes1 7'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Coilskar Commander - On Spellhit 36539 - set phase 1'),
diff --git a/sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql b/sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql
index 8db0b085d27..99656387163 100644
--- a/sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql
+++ b/sql/old/3.3.5a/2011_05_28_02_world_creature_text.sql
@@ -1,5 +1,5 @@
-DELETE FROM `creature_text` WHERE `entry` IN (39751,40429);
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+DELETE FROM `creature_text` WHERE `entry` IN (39751,40429);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(39751,0,0, 'Your power wanes, ancient one.... Soon you will join your friends.',14,0,100,0,0,17525, 'Baltharus the Warborn'),
(39751,1,0, 'Ah, the entertainment has arrived.',14,0,100,0,0,17520, 'Baltharus the Warborn'),
(39751,2,0, 'Baltharus leaves no survivors!',14,0,100,0,0,17521, 'Baltharus the Warborn'),
diff --git a/sql/old/3.3.5a/2011_05_30_01_world_creature.sql b/sql/old/3.3.5a/2011_05_30_01_world_creature.sql
index 898c7609909..466b6a3729c 100644
--- a/sql/old/3.3.5a/2011_05_30_01_world_creature.sql
+++ b/sql/old/3.3.5a/2011_05_30_01_world_creature.sql
@@ -1,7 +1,7 @@
-- Saviana Ragefire
UPDATE `creature_template` SET `InhabitType`=3,`mechanic_immune_mask`=`mechanic_immune_mask`|8388624,`ScriptName`= 'boss_saviana_ragefire' WHERE `entry`=39747;
-DELETE FROM `creature_text` WHERE `entry`=39747;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+DELETE FROM `creature_text` WHERE `entry`=39747;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(39747,0,0, 'You will sssuffer for this intrusion!',14,0,100,0,0,17528, 'Saviana Ragefire'),
(39747,1,0, 'Burn in the master''s flame!',14,0,100,0,0,17532, 'Saviana Ragefire'),
(39747,2,0, '%s becomes enraged!',16,0,100,0,0,0, 'Saviana Ragefire'),
diff --git a/sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql b/sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql
index 1155ac4b7e3..1e5d60bdf43 100644
--- a/sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_06_04_00_world_creature_template.sql
@@ -1,5 +1,5 @@
-DELETE FROM `creature_text` WHERE `entry`=39746;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+DELETE FROM `creature_text` WHERE `entry`=39746;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(39746,0,0, 'Alexstrasza has chosen capable allies.... A pity that I must END YOU!',14,0,100,0,0,17512, 'Baltharus the Warborn'),
(39746,1,0, 'You thought you stood a chance?',14,0,50,0,0,17513, 'General Zarithrian'),
(39746,1,1, 'It''s for the best.',14,0,50,0,0,17514, 'General Zarithrian'),
diff --git a/sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql b/sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql
index 76ea8478109..2c51d841505 100644
--- a/sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_06_08_00_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=62775;
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(62775, 'spell_xt002_tympanic_tantrum');
diff --git a/sql/old/3.3.5a/2011_06_09_00_world_misc.sql b/sql/old/3.3.5a/2011_06_09_00_world_misc.sql
index 0c56d63520f..71706377563 100644
--- a/sql/old/3.3.5a/2011_06_09_00_world_misc.sql
+++ b/sql/old/3.3.5a/2011_06_09_00_world_misc.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_dbc` WHERE `id`=65037;
-INSERT INTO `spell_dbc` (`Id`,`Effect1`,`EffectImplicitTargetA1`,`comment`)VALUES
+INSERT INTO `spell_dbc` (`Id`,`Effect1`,`EffectImplicitTargetA1`,`comment`)VALUES
(65037,3,1,'Nerf the Scrapbots Achievement Criteria Marker');
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN(10401,10402) AND `type`=18;
diff --git a/sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql b/sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql
index 1ce1d7a9fb2..4d03236e7cb 100644
--- a/sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_06_09_03_world_spell_script_names.sql
@@ -1,4 +1,4 @@
-DELETE FROM `spell_scripts` WHERE `id` IN(37751,37752); -- Remove redundant data from spell_scripts
+DELETE FROM `spell_scripts` WHERE `id` IN(37751,37752); -- Remove redundant data from spell_scripts
DELETE FROM `spell_script_names` WHERE `spell_id` IN(37751,37752);
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(37751,'spell_xt002_submerged'),
diff --git a/sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql b/sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql
index e2dbeceb417..6728cd82756 100644
--- a/sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_06_12_01_world_spell_script_names.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=52090;
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(52090, 'spell_q12659_ahunaes_knife');
diff --git a/sql/old/3.3.5a/2011_06_17_05_world_conditions.sql b/sql/old/3.3.5a/2011_06_17_05_world_conditions.sql
index f79a0c6f8f8..c2428e346f9 100644
--- a/sql/old/3.3.5a/2011_06_17_05_world_conditions.sql
+++ b/sql/old/3.3.5a/2011_06_17_05_world_conditions.sql
@@ -1,4 +1,4 @@
-DELETE FROM `conditions` WHERE `SourceEntry`=64449;
+DELETE FROM `conditions` WHERE `SourceEntry`=64449;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`)
-VALUES
+VALUES
(13,0,64449,0,18,1,34096,0,0,'','Auriaya Feral Defender Stalker spell script target');
diff --git a/sql/old/3.3.5a/2011_06_17_16_world_sai.sql b/sql/old/3.3.5a/2011_06_17_16_world_sai.sql
index 5a79325bd00..670cc7ce322 100644
--- a/sql/old/3.3.5a/2011_06_17_16_world_sai.sql
+++ b/sql/old/3.3.5a/2011_06_17_16_world_sai.sql
@@ -9,7 +9,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(26816,0,1,0,4,0,100,0,0,0,0,0,11,51777,3,0,0,0,0,1,0,0,0,0,0,0,0,'Focus Wizard - On aggro - Aura Arcane Focus'),
(26816,0,2,0,0,0,100,0,0,0,3000,3000,11,51779,0,0,0,0,0,2,0,0,0,0,0,0,0,'Focus Wizard - Combat - Cast Frostfire Bolt on victim');
--- Rotting Storm Giant SAI
+-- Rotting Storm Giant SAI
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=27270;
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-108034,-108035,-108036,-108037,-203372,-203373);
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
diff --git a/sql/old/3.3.5a/2011_06_17_19_world_misc.sql b/sql/old/3.3.5a/2011_06_17_19_world_misc.sql
index 47c72cd6945..579f163f960 100644
--- a/sql/old/3.3.5a/2011_06_17_19_world_misc.sql
+++ b/sql/old/3.3.5a/2011_06_17_19_world_misc.sql
@@ -1,9 +1,9 @@
-- SAI for Marcella Bloom
SET @ENTRY := 32421;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5717.51,`position_y`=688.2948,`position_z`=645.7512 WHERE `guid`=111385;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Marcella Bloom - On spawn - Start WP movement'),
(@ENTRY,0,1,0,40,0,100,0,1,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Marcella Bloom - Reach wp 1 - pause path'),
(@ENTRY,0,2,0,40,0,100,0,6,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Marcella Bloom - Reach wp 6 - pause path'),
@@ -53,9 +53,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Inzi Charmlight
SET @ENTRY := 28682;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5715.564,`position_y`=678.4122,`position_z`=645.7512 WHERE `guid`=97343;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Marcella Bloom - On spawn - Start WP movement'),
(@ENTRY,0,1,0,40,0,100,0,6,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Marcella Bloom - Reach wp 6 - pause path'),
(@ENTRY,0,2,0,40,0,100,0,18,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Marcella Bloom - Reach wp 18 - pause path'),
@@ -103,9 +103,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Katherine Lee
SET @ENTRY := 28705;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5707.611,`position_y`=715.5347,`position_z`=642.4725 WHERE `guid`=98952;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Katherine Lee - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,5,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Katherine Lee - Reach wp 5 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0.8377581, 'Katherine Lee - Reach wp 5 - turm to'),
@@ -128,9 +128,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Laire Brewgold
SET @ENTRY := 32424;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5639.154,`position_y`=728.4048,`position_z`=641.61 WHERE `guid`=111730;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Laire Brewgold - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,1,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Laire Brewgold - Reach wp 1 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0.8377581, 'Laire Brewgold - Reach wp 1 - turm to'),
@@ -163,9 +163,9 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- SAI for Coira Longrifle
SET @ENTRY := 32426;
UPDATE `creature` SET `spawndist`=0,`MovementType`=0,`position_x`=5644.824,`position_y`=730.5149,`position_z`=641.6822 WHERE `guid`=111940;
-UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
-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
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,53,0,@ENTRY,1,0,0,0,1,0,0,0,0,0,0,0, 'Coira Longrifle - On spawn - Start WP movement'),
(@ENTRY,0,1,2,40,0,100,0,5,@ENTRY,0,0,54,6000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Coira Longrifle - Reach wp 5 - pause path'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,2.740167, 'Coira Longrifle - Reach wp 5 - turm to'),
diff --git a/sql/old/3.3.5a/2011_06_19_07_world_misc.sql b/sql/old/3.3.5a/2011_06_19_07_world_misc.sql
index 17e90d4196b..f06d7c912b3 100644
--- a/sql/old/3.3.5a/2011_06_19_07_world_misc.sql
+++ b/sql/old/3.3.5a/2011_06_19_07_world_misc.sql
@@ -4,7 +4,7 @@ SET @EquiEntry = 2473; -- (creature_equip_template.entry - need 2)
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|32768,`equipment_id`=@EquiEntry+0 WHERE `entry`=29333; -- Onslaught Gryphon Rider
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|32768,`equipment_id`=@EquiEntry+1 WHERE `entry`=29329; -- Onslaught Paladin
DELETE FROM `creature_equip_template` WHERE `entry` IN (@EquiEntry,@EquiEntry+1);
-INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
(@EquiEntry+0,38488,0,0),
(@EquiEntry+1,40452,12932,0);
UPDATE `creature_model_info` SET `bounding_radius`=0.3366,`combat_reach`=1.65,`gender`=0 WHERE `modelid`=26179; -- Onslaught Gryphon Rider
diff --git a/sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql b/sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql
index d7ee64c667c..e7fae8f6835 100644
--- a/sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/2011_06_25_16_world_spell_proc_event.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_proc_event` WHERE `entry` = 63086;
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
(63086, 0x00, 9, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0, 0, 0);
diff --git a/sql/old/3.3.5a/2011_07_06_00_world_sai.sql b/sql/old/3.3.5a/2011_07_06_00_world_sai.sql
index cc70fe77cec..4eb41801126 100644
--- a/sql/old/3.3.5a/2011_07_06_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_07_06_00_world_sai.sql
@@ -2,7 +2,7 @@ SET @ENTRY := 18716;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,62,0,100,0,7759,0,0,0,11,47068,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Who Are They - Shadowy Initiate - On Gossip option - Cast spell 47068 on player'),
(@ENTRY,0,1,0,25,0,100,0,0,0,0,0,58,1,9613,2400,3800,30,30,1,0,0,0,0,0,0,0, 'Shadowy Initiate - On spawn install caster template');
@@ -10,7 +10,7 @@ SET @ENTRY := 18719;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,62,0,100,0,7760,0,0,0,11,47070,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Who Are They - Shadowy Advisor - On Gossip option - Cast spell 47070 on player'),
(@ENTRY,0,1,0,25,0,100,0,0,0,0,0,58,1,9613,2400,3800,30,30,1,0,0,0,0,0,0,0, 'Shadowy Advisor - On spawn install caster template');
@@ -18,14 +18,14 @@ SET @ENTRY := 18930;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,62,0,100,0,7938,1,0,0,11,34924,2,0,0,0,0,7,0,0,0,0,0,0,0, 'Vlagga Freyfeather - On gossip option 1 select - Cast Stair of Destiny to Thrallmar'),
(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,12,9297,4,30000,0,0,0,1,0,0,0,0,0,0,0, 'Vlagga Freyfeather - Vlagga Freyfeather - Summon Enraged Wyverns on Aggro'),
(@ENTRY,0,2,0,4,0,100,0,0,0,0,0,12,9297,4,30000,0,0,0,1,0,0,0,0,0,0,0, 'Vlagga Freyfeather - Vlagga Freyfeather - Summon Enraged Wyverns on Aggro'),
(@ENTRY,0,3,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Vlagga Freyfeather - Say text on Aggro');
DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0, 'Arrrhhh...Guards!',14,7,100,0,0,0, 'Common Horde Flight Master');
-- some cleanup
@@ -39,7 +39,7 @@ SET @ENTRY := 25596;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,25,0,100,0,0,0,0,0,11,32423,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Infected Kodo Beast - Blue Radiation on spawn'),
(@ENTRY,0,1,0,27,0,100,0,0,0,0,0,91,7,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Infected Kodo Beast - remove death state on passager boarded'),
(@ENTRY,0,2,0,31,0,100,0,45877,0,0,0,41,0,0,0,0,0,0,22,0,0,0,0,0,0,0, 'Infected Kodo Beast - On Spell Hit despawn');
@@ -48,14 +48,14 @@ SET @ENTRY := 26257;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,25,0,100,0,0,0,0,0,58,1,51797,3400,4800,30,7,1,0,0,0,0,0,0,0, 'Surge Needle Sorcerer - On spawn install caster template');
SET @ENTRY := 26343;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,11,32423,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Indu''le Fisherman - On spawn - Cast Blue Radiation on self'),
(@ENTRY,0,1,0,9,0,100,0,0,20,15000,18000,11,11820,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Indu''le Fisherman - Cast Electrified Net');
@@ -63,7 +63,7 @@ SET @ENTRY := 27842;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,12,9521,4,30000,0,0,0,1,0,0,0,0,0,0,0, 'Fenrick Barlowe - Summon Enraged Felbat on Aggro'),
(@ENTRY,0,2,0,4,0,100,0,0,0,0,0,12,9521,4,30000,0,0,0,1,0,0,0,0,0,0,0, 'Fenrick Barlowe - Summon Enraged Felbat on Aggro'),
(@ENTRY,0,3,0,4,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fenrick Barlowe - Say text on Aggro'),
@@ -72,7 +72,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY,0,6,0,40,0,100,0,8,27842,0,0,80,2784202,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fenrick Barlowe - at wp 8 run script2');
DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY, 0, 0, 'Bat gizzards again for the gnomes tonight...', 12, 0, 100, 1, 0, 0, 'Fenrick Barlowe text'),
(@ENTRY, 0, 1, 'What do they expect, making the bats come in at that angle? Broken necks and gamey bat stew, that''s what they get.', 12, 0, 100, 1, 0, 0, 'Fenrick Barlowe text'),
(@ENTRY, 0, 2, 'We like trees, Fenrick. They provide cover. They won''t let me chop them down, either.', 12, 0, 100, 1, 0, 0, 'Fenrick Barlowe text'),
diff --git a/sql/old/3.3.5a/2011_07_07_01_world_misc.sql b/sql/old/3.3.5a/2011_07_07_01_world_misc.sql
index 066656343c7..4dc0388c55a 100644
--- a/sql/old/3.3.5a/2011_07_07_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_07_07_01_world_misc.sql
@@ -17,7 +17,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI',`MovementType`=1 WHERE `entry`
DELETE FROM `smart_scripts` WHERE (`entryorguid`=10578 AND `source_type`=0);
DELETE FROM `smart_scripts` WHERE (`entryorguid`=1057800 AND `source_type`=9);
-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
+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
(10578, 0, 0, 0, 62, 0, 100, 0, 3062, 0, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 0 run timed action list'),
(10578, 0, 1, 0, 62, 0, 100, 0, 3062, 1, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 1 run timed action list'),
(10578, 0, 2, 0, 62, 0, 100, 0, 3062, 2, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 2 run timed action list'),
diff --git a/sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql b/sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql
index 3e4d9c3d662..753e17249f2 100644
--- a/sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2011_07_27_01_world_trinity_string.sql
@@ -1,3 +1,3 @@
DELETE FROM `trinity_string` WHERE `entry` = 283;
-INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
+INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
(283,'You have disabled %s\'s chat for %u minutes, effective at the player\'s next login. Reason: %s.');
diff --git a/sql/old/3.3.5a/2011_08_01_01_world_misc.sql b/sql/old/3.3.5a/2011_08_01_01_world_misc.sql
index b9f99ff7fd9..147f8fcf5af 100644
--- a/sql/old/3.3.5a/2011_08_01_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_08_01_01_world_misc.sql
@@ -15,7 +15,7 @@ UPDATE `creature` SET `MovementType`=0,`spawndist`=0 WHERE `guid` IN (285,283,28
-- One missing Zandalar Headhsrinker spawn
-- This was the best guid I could find which was not in use
DELETE FROM `creature` WHERE `guid`=200615 AND `id`=14876;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(200615,14876,0,1,1,14998,0,-11775.231445,1358.505981,0.776265,1.409376,1800,0,0,7326,2434,2,0,0,0);
-- Set Zandalar Enforcer's home position next to cage
diff --git a/sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql b/sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql
index 8b44e18d983..d12c91bded5 100644
--- a/sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql
+++ b/sql/old/3.3.5a/2011_08_01_01_world_waypoints.sql
@@ -1,6 +1,6 @@
-- All emotes, mostly ONESHOT_TALK
DELETE FROM `creature_addon` WHERE `guid` IN (49115,49114,49742,49741,49754,49120,49121,49122,49738,49105,49104,49737,91479,91478,91511,91512,91465,91464,49702,49701,91477,91476,91495,91496,49703,49704,91491,91490,91442,91443,49753,49314,49313,49310,49784,49785,49778,49779,49780,51459,51456,51457,51966,51965,49273,49272,49786,49787,49280,49281,49279,49799,49798,49797,49796,49795,49793,49794);
-INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(49115,0,0,0,0,1,''),(49114,0,0,0,0,1,''),(49742,0,0,0,0,1,''),(49741,0,0,0,0,1,''),(49754,0,0,0,0,1,''),(49120,0,0,0,0,1,''),
(49121,0,0,0,0,1,''),(49122,0,0,0,0,1,''),(49738,0,0,0,0,1,''),(49105,0,0,0,0,1,''),(49104,0,0,0,0,1,''),(49737,0,0,0,0,1,''),
(91479,0,0,0,0,1,''),(91478,0,0,0,0,1,''),(91511,0,0,0,0,1,''),(91512,0,0,0,0,1,''),(91465,0,0,0,0,1,''),(91464,0,0,0,0,1,''),
@@ -33,7 +33,7 @@ UPDATE `creature` SET `MovementType`=0,`spawndist`=0,`orientation`=5.284594 WHER
UPDATE `creature` SET `MovementType`=0,`spawndist`=0 WHERE `guid` IN (51382,51375,51381,51383,51372,51370,51369,49359,49361,49362,49218,49219,49234,49235,49259,49260,91463,91462,91461,91459,91460,91439,49140,49139);
-- Double spawned creatures. Removing addon data to prevent errors
-DELETE FROM `creature` WHERE `guid`=49806 AND `id`=11360;
+DELETE FROM `creature` WHERE `guid`=49806 AND `id`=11360;
DELETE FROM `creature_addon` WHERE `guid`=49806;
DELETE FROM `creature` WHERE `guid`=49056 AND `id`=15111;
DELETE FROM `creature_addon` WHERE `guid` IN (15111,49056);
@@ -47,7 +47,7 @@ DELETE FROM `creature_addon` WHERE `guid` IN (49138,49137);
-- Missing spawns
-- Hakkari Priest
DELETE FROM `creature` WHERE `guid`=200616 AND `id`=11830;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(200616,11830,309,1,1,11758,0,-11942.391602,-1640.220825,42.506130,2.932328,7200,0,0,17094,12170,0,0,0,0);
-- Razzashi Adder
DELETE FROM `creature` WHERE `guid` IN (200617,200618) AND `id` IN (11372);
diff --git a/sql/old/3.3.5a/2011_08_06_01_world_misc.sql b/sql/old/3.3.5a/2011_08_06_01_world_misc.sql
index 01e4828c67e..dc11dd27c23 100644
--- a/sql/old/3.3.5a/2011_08_06_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_08_06_01_world_misc.sql
@@ -1,15 +1,15 @@
/* NPC entries:
-14902 - Jin'rokh the Breaker - 6321 - Warriors and paladins
-14903 - Al'tabim the All-Seeing - 6322 - Mages, warlocks and priests
-14904 - Maywiki of Zuldazar - 6341 - Shamans and druids
-14905 - Falthir the Sightless - @GOSSIP - Rogues and hunters
+14902 - Jin'rokh the Breaker - 6321 - Warriors and paladins
+14903 - Al'tabim the All-Seeing - 6322 - Mages, warlocks and priests
+14904 - Maywiki of Zuldazar - 6341 - Shamans and druids
+14905 - Falthir the Sightless - @GOSSIP - Rogues and hunters
*/
-
+
/* TO DO:
* There is one missing condition. When you get an upgrade of one of the necklaces, you lose the necklace of the previous quest. (the quest always takes it) But that also makes the conditions meet and it will show the gossip that you lost a necklace.
* There is currently no way to do this through conditions, so whenever you read this and think it's possible, feel free to!
*/
-
+
-- Vars
SET @GOSSIP = 21262; -- gossip_menu.entry - need 10
SET @SUB_PALADIN := @GOSSIP+1; -- Menu id for Paladins
@@ -21,7 +21,7 @@ SET @SUB_SHAMAN := @GOSSIP+6; -- Menu id for Shamans
SET @SUB_DRUID := @GOSSIP+7; -- Menu id for Druids
SET @SUB_ROGUE := @GOSSIP+8; -- Menu id for Rogues
SET @SUB_HUNTER := @GOSSIP+9; -- Menu id for Hunters
-
+
-- Insert gossip options itself
DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP+0 AND `text_id`=7556;
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
@@ -682,7 +682,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
-- Make the six Hakkari Oracle and Gurubashi Warrior emote to talk
DELETE FROM `creature_addon` WHERE `guid` IN (739,740,741,742,743,744);
-INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(739,0,0,0,0,1,''),(740,0,0,0,0,1,''),(741,0,0,0,0,1,''),(742,0,0,0,0,1,''),(743,0,0,0,0,1,''),(744,0,0,0,0,1,'');
-- Son of Hakkar pathing: 11357
@@ -847,7 +847,7 @@ INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`gro
-- Insert missing Hooktooth Frenzy
DELETE FROM `creature` WHERE `guid`=49673;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(49673,11374,309,1,1,15101,0,-11673.693359,-1623.402710,8.929444,4.587632,7200,0,0,9156,0,0,0,0,0);
-- Hooktooth Frenzy pathing: 11359
diff --git a/sql/old/3.3.5a/2011_08_06_04_world_misc.sql b/sql/old/3.3.5a/2011_08_06_04_world_misc.sql
index c1ce37fc6c7..d979fbe39f5 100644
--- a/sql/old/3.3.5a/2011_08_06_04_world_misc.sql
+++ b/sql/old/3.3.5a/2011_08_06_04_world_misc.sql
@@ -1,14 +1,14 @@
-- honor challenge
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=30037;
DELETE FROM `smart_scripts` WHERE `entryorguid`=30037 AND `source_type`=0;
-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
+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
(30037,0,0,0,8,0,100,0,21855,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Mjordin Combatant - set to phase 1 when aggroed by spell'),
(30037,0,1,0,6,1,100,0,0,0,0,0,33,30038,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Mjordin Combatant - give credit only when it has buff');
-- forgotten depths ambusher
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=30204;
DELETE FROM `smart_scripts` WHERE `entryorguid`=30204 AND `source_type`=0;
-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
+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
(30204,0,0,0,4,0,100,0,0,0,0,0,19,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Depths Ambusher - change flags when aggroed'),
(30204,0,1,0,4,0,100,0,0,0,0,0,28,56422,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Forgotten Depths Ambusher - remove submerge');
@@ -17,27 +17,27 @@ UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33555200 WHERE `entry`=
UPDATE `creature_template` SET `dynamicflags`=`dynamicflags`|8, `unit_flags`=`unit_flags`|4, `InhabitType`=7 WHERE `entry` IN (29747,29790);
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=29747;
DELETE FROM `smart_scripts` WHERE `entryorguid`=29747 AND `source_type`=0;
-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
+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
(29747,0,0,0,0,0,100,0,1500,1500,4000,4000,11,55269,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Ocular - cast Deathly Stare every 3 secs'),
-- (29747,0,1,0,6,0,100,0,0,0,0,0,11,55288,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Ocular - cast It''s All Fun and Games: The Ocular On Death'),
(29747,0,1,0,6,0,100,0,0,0,0,0,33,29803,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Ocular - cast It''s All Fun and Games: The Ocular On Death'), -- temporary hack
(29747,0,2,0,25,0,100,0,0,0,0,0,75,55162,1,0,0,0,0,1,0,0,0,0,0,0,0, 'Ocular - cast Transform on Spawn');
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=55288;
-INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
(55288,55289,0, 'Ocular on script cast killcredit');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=55288;
-INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, ErrorTextId, Comment) VALUES
+INSERT INTO `conditions` (SourceTypeOrReferenceId, SourceGroup, SourceEntry, ElseGroup, ConditionTypeOrReference, ConditionValue1, ConditionValue2, ConditionValue3, ErrorTextId, Comment) VALUES
(17,0,55288,0,18,1,0,0,0, 'It''s All Fun and Games: The Ocular On Death');
-- shadow vault auras
DELETE FROM `spell_area` WHERE `spell`=30181 AND `area`=4477;
-INSERT INTO `spell_area` VALUES
+INSERT INTO `spell_area` VALUES
(30181,4477,0,0,12896,0,1101,2,1),
(30181,4477,0,0,12897,0,690,2,1);
-- quests
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=19 AND `SourceEntry` IN (12897,12896);
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ScriptName`, `Comment`) VALUES
(19,0,12897,0,8,12893,0,0,'', 'If he cannot be turned - horde'),
(19,0,12896,0,8,12893,0,0,'', 'If he cannot be turned - alliance');
@@ -53,7 +53,7 @@ INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_
-- vereth quests
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=19 AND `SourceEntry` IN (13146,13147,13160,13161,13162,13163,13164);
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ScriptName`, `Comment`) VALUES
(19,0,13146,0,8,13145,0,0,'', 'Generosity Abounds'),
(19,0,13160,0,8,13145,0,0,'', 'Stunning View'),
(19,0,13147,0,8,13145,0,0,'', 'Matchmaker'),
diff --git a/sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql b/sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql
index 4b48fff1143..51b1dd41dab 100644
--- a/sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2011_08_07_01_world_reference_loot_template.sql
@@ -1,5 +1,5 @@
-- Dual-Blade Butcher loot fix
DELETE FROM `reference_loot_template` WHERE `item` IN (47285,47446);
-INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(34332,47285,0,1,1,1,1), -- normal
(34346,47446,0,1,1,1,1); -- heroic
diff --git a/sql/old/3.3.5a/2011_08_07_02_world_spawns.sql b/sql/old/3.3.5a/2011_08_07_02_world_spawns.sql
index 76a898b92b6..c11b1d42f96 100644
--- a/sql/old/3.3.5a/2011_08_07_02_world_spawns.sql
+++ b/sql/old/3.3.5a/2011_08_07_02_world_spawns.sql
@@ -73,6 +73,6 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
(152165,29747,571,1,2,0,0,8526.228,2665.085,1045.04,2.670354,120,0,0,126000,0,0);
DELETE FROM `gameobject` WHERE `id` IN (191778,191779);
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(152116,191778,571,1,2,8600.93,2639.53,652.353,-3.12412,0,0,-0.999962,0.00873622,300,100,1),
(152117,191779,571,1,2,8594.72,2627.14,652.353,1.15192,0,0,0.54464,0.83867,300,100,1);
diff --git a/sql/old/3.3.5a/2011_08_07_03_world_sai.sql b/sql/old/3.3.5a/2011_08_07_03_world_sai.sql
index 7e64ae3de32..b4c5c6813f8 100644
--- a/sql/old/3.3.5a/2011_08_07_03_world_sai.sql
+++ b/sql/old/3.3.5a/2011_08_07_03_world_sai.sql
@@ -13,7 +13,7 @@ INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`pr
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@Ithania;
DELETE FROM `smart_scripts` WHERE (`entryorguid`=@Ithania AND `source_type`=0);
DELETE FROM `smart_scripts` WHERE (`entryorguid`=@Ithania*100 AND `source_type` IN (0,9));
-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
+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
(@Ithania, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 80, @Ithania*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ithania - On gossip hello run timed action list'),
(@Ithania*100, 9, 0, 0, 0, 0, 0, 0, 500, 500, 0, 0, 91, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ithania - 0 - Remove kneeling'),
(@Ithania*100, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ithania - 1 - Remove gossip flag'),
diff --git a/sql/old/3.3.5a/2011_08_09_01_world_misc.sql b/sql/old/3.3.5a/2011_08_09_01_world_misc.sql
index 8099e91f6f7..9669b482bf2 100644
--- a/sql/old/3.3.5a/2011_08_09_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_08_09_01_world_misc.sql
@@ -1,4 +1,4 @@
-UPDATE `creature` SET `position_z`=-6.03356 WHERE `guid`=46069 AND `id`=11741; -- Dredge Crusher
+UPDATE `creature` SET `position_z`=-6.03356 WHERE `guid`=46069 AND `id`=11741; -- Dredge Crusher
UPDATE `creature` SET `position_z`=8.638660 WHERE `guid`=49069 AND `id`=11374; -- Hooktooth Frenzies
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry` = 37231; -- Robe Beam Stalker
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry` = 38008; -- Blood Orb Controller
diff --git a/sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql b/sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql
index 7d6f8f465ad..09875ee9527 100644
--- a/sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2011_08_13_00_world_trinity_string.sql
@@ -1,5 +1,5 @@
DELETE FROM `trinity_string` WHERE `entry` IN (453, 550, 714, 716);
-INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
+INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
(453,'Ban time remaining: %s, Banned by: %s, Reason: %s'),
(550,'Mute time remaining: %s'),
(716,'Map: %s, Area: %s'),
diff --git a/sql/old/3.3.5a/2011_08_24_00_world_game_event.sql b/sql/old/3.3.5a/2011_08_24_00_world_game_event.sql
index e8a12ce8f6c..bc47a2f35f8 100644
--- a/sql/old/3.3.5a/2011_08_24_00_world_game_event.sql
+++ b/sql/old/3.3.5a/2011_08_24_00_world_game_event.sql
@@ -1,3 +1,3 @@
-- Resync Darkmoon Faerie
-UPDATE `game_event` SET `start_time`='2011-10-02 00:01:00' WHERE `eventEntry`=5;
+UPDATE `game_event` SET `start_time`='2011-10-02 00:01:00' WHERE `eventEntry`=5;
UPDATE `game_event` SET `start_time`='2011-11-06 00:01:00' WHERE `eventEntry`=3;
diff --git a/sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql b/sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql
index 53bc3104c50..b7f897f0314 100644
--- a/sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/2011_09_03_05_world_gossip_menu_option.sql
@@ -1,4 +1,4 @@
-DELETE FROM `gossip_menu_option` WHERE `menu_id`=1293 AND `id`=1;
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=1293 AND `id`=1;
DELETE FROM `gossip_menu_option` WHERE `menu_id`=1293 AND `id`=2;
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(1293,1,0, 'Make this inn my home!',8,66179,0,0,0,0,NULL),
diff --git a/sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql b/sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql
index a59a7739350..5f40420ebd4 100644
--- a/sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql
+++ b/sql/old/3.3.5a/2011_09_03_06_world_spell_threat.sql
@@ -48,7 +48,7 @@ INSERT INTO `spell_threat` VALUES
(50181, 0, 0.00, 0.0), -- Vendetta - Proc
-- Druid
-- Src: http://www.tankspot.com/showthread.php?47813-WOTLK-Bear-Threat-Values&p=200948#post200948
- (17057, 0, 0.00, 0.0), -- Furor - Proc
+ (17057, 0, 0.00, 0.0), -- Furor - Proc
(5211, 53, 1.00, 0.0), -- Bash (Rank 3)
(6798, 105, 1.00, 0.0), -- Bash (Rank 2)
(8983, 158, 1.00, 0.0), -- Bash (Rank 1)
diff --git a/sql/old/3.3.5a/2011_09_07_01_world_sai.sql b/sql/old/3.3.5a/2011_09_07_01_world_sai.sql
index aba3bdfe578..5052ce40059 100644
--- a/sql/old/3.3.5a/2011_09_07_01_world_sai.sql
+++ b/sql/old/3.3.5a/2011_09_07_01_world_sai.sql
@@ -5,6 +5,6 @@ INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=160445;
DELETE FROM `smart_scripts` WHERE `entryorguid`=160445 AND `source_type`=1;
-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
+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
(160445, 1, 0, 0, 64, 0, 100, 0, 0, 0, 0, 0, 12, 9136, 1, 60*1000, 0, 0, 0, 8, 0, 0, 0, -7917.378906, -2610.533936, 221.123123, 5.040257, 'Sha''ni Proudtusk''s Remains - On gossip hello summon Sha''ni Proudtusk');
-- Need a way to prevent spamming this action.
diff --git a/sql/old/3.3.5a/2011_09_11_01_world_sai.sql b/sql/old/3.3.5a/2011_09_11_01_world_sai.sql
index 453acf60dd9..074f6e2a880 100644
--- a/sql/old/3.3.5a/2011_09_11_01_world_sai.sql
+++ b/sql/old/3.3.5a/2011_09_11_01_world_sai.sql
@@ -9,7 +9,7 @@ INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language
(25814,1,3, 'We can decurse you, we have the technology.',12,0,0,0,0,0, '');
-- Mechagnome SAI
--- NOTE: Mechagnome SAI required for Horde quest Souls of the Decursed
+-- NOTE: Mechagnome SAI required for Horde quest Souls of the Decursed
DELETE FROM `smart_scripts` WHERE `entryorguid`=25814 AND `source_type`=0;
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
(25814,0,0,0,4,0,100,0,0,0,0,0,1,1,10000,0,0,0,0,0,0,0,0,0,0,0,0, 'Fizzcrank Mechagnome - Chance Say on Aggro'),
diff --git a/sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql b/sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql
index 120378bd3e2..9b2fdabe08f 100644
--- a/sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql
+++ b/sql/old/3.3.5a/2011_09_11_04_world_spell_linked_spell.sql
@@ -1,6 +1,6 @@
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`IN (65686, 65684, 67222, 67176, 67223, 67177, 67224, 67178);
-INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
-(65686, -65684, 2, 'Remove Dark Essence 10M'),
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+(65686, -65684, 2, 'Remove Dark Essence 10M'),
(65684, -65686, 2, 'Remove Light Essence 10M'),
(67222, -67176, 2, 'Remove Dark essence 10M H'),
(67176, -67222, 2, 'Remove Light essence 10M H'),
diff --git a/sql/old/3.3.5a/2011_09_11_05_world_misc.sql b/sql/old/3.3.5a/2011_09_11_05_world_misc.sql
index 7357d9acda6..099585fefd1 100644
--- a/sql/old/3.3.5a/2011_09_11_05_world_misc.sql
+++ b/sql/old/3.3.5a/2011_09_11_05_world_misc.sql
@@ -17,7 +17,7 @@ INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`op
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=3216; -- Neeru Fireblade
DELETE FROM `smart_scripts` WHERE `entryorguid`=3216 AND `source_type`=0;
-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
+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
(3216, 0, 0, 0, 62, 0, 100, 0, @Gossip+2, 0, 0, 0, 15, 5727, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Neeru Fireblade - On gossip select give Hidden Enemies quest completed');
UPDATE `quest_template` SET `SpecialFlags`=`SpecialFlags`|2 WHERE `entry`=5727; -- Hidden Enemies (quest completable by external event)
diff --git a/sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql b/sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql
index a4608599452..7b0d237dd65 100644
--- a/sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql
+++ b/sql/old/3.3.5a/2011_09_11_06_world_spell_conditions.sql
@@ -1,7 +1,7 @@
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=66512;
INSERT INTO `spell_linked_spell` VALUES
(66512, 66510, 0, 'Summon Deep Jormungar on Pound Drum');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=0 AND `SourceEntry`=66512;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 0, 66512, 0, 18, 0, 195308, 0, 0, '', 'Pound Drum: Target Mysterious Snow Mound'),
diff --git a/sql/old/3.3.5a/2011_09_12_00_world_misc.sql b/sql/old/3.3.5a/2011_09_12_00_world_misc.sql
index 18ead48b821..30fd344376b 100644
--- a/sql/old/3.3.5a/2011_09_12_00_world_misc.sql
+++ b/sql/old/3.3.5a/2011_09_12_00_world_misc.sql
@@ -52,7 +52,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(15,@Gossip+0,0,0,8,8555,0, 'Spirit of Azuregos - show gossip option if player has quest The Charge of the Dragonflights rewarded');
DELETE FROM `smart_scripts` WHERE `entryorguid`=@Azuregos AND `source_type`=0;
-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
+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
(@Azuregos, 0, 0, 0, 62, 0, 100, 0, @Gossip+11, 0, 0, 0, 56, @Item, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Spirit of Azuregos - On gossip select 11 give item'),
(@Azuregos, 0, 1, 2, 62, 0, 100, 0, @Gossip+12, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Spirit of Azuregos - On gossip select 12 close gossip'),
(@Azuregos, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Spirit of Azuregos - Link 2 say');
diff --git a/sql/old/3.3.5a/2011_09_12_01_world_misc.sql b/sql/old/3.3.5a/2011_09_12_01_world_misc.sql
index f2fa54b1b17..402b460d1e9 100644
--- a/sql/old/3.3.5a/2011_09_12_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_09_12_01_world_misc.sql
@@ -17,7 +17,7 @@ INSERT INTO `creature` (`guid`, `id`, `map`, `position_x`, `position_y`, `positi
-- add weapons to creatures
DELETE FROM `creature_equip_template` WHERE `entry`=2476;
-INSERT INTO `creature_equip_template` VALUES
+INSERT INTO `creature_equip_template` VALUES
(2476, 7714, 0, 0);
-- correct creature_template
diff --git a/sql/old/3.3.5a/2011_09_12_03_world_conditions.sql b/sql/old/3.3.5a/2011_09_12_03_world_conditions.sql
index 757bdbf255e..32f134b9811 100644
--- a/sql/old/3.3.5a/2011_09_12_03_world_conditions.sql
+++ b/sql/old/3.3.5a/2011_09_12_03_world_conditions.sql
@@ -4,7 +4,7 @@ DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=62
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,62343,0,18,1,33121,0,0, '', 'Heat to Iron Construct'),
(13,0,62488,0,18,1,33121,0,0, '', 'Activate Construct to iron Construct');
-
+
-- Burn Secondary Effect from Vehicles
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=65044;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
@@ -15,7 +15,7 @@ INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`
(13,0,65044,5,18,1,33189,0,0, '', 'Flames to Liquid pyrite'),
(13,0,65044,6,18,1,33090,0,0, '', 'Flames to Pool of Tar'),
(13,0,65044,7,18,1,34161,0,0, '', 'Flames to Mechanostriker 54-A');
-
+
-- Burn Secondary Effect from Vehicles
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=65045;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
@@ -26,15 +26,15 @@ INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`
(13,0,65045,5,18,1,33189,0,0, '', 'Flames to Liquid pyrite'),
(13,0,65045,6,18,1,33090,0,0, '', 'Flames to Pool of Tar'),
(13,0,65045,7,18,1,34161,0,0, '', 'Flames to Mechanostriker 54-A');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=62911;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,62911,0,18,1,33365,0,0, '', 'Thorim\'s Hammer to Thorim\'s Hammer');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=62906;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,62906,0,18,1,33367,0,0, '', 'Freya\'s Ward to Freya\'s Ward');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=62705;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,62705,1,18,1,33060,0,0, '', 'Auto-repair to Salvaged Siege Engine'),
@@ -42,15 +42,15 @@ INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`
(13,0,62705,3,18,1,33062,0,0, '', 'Auto-repair to Salvaged Chopper'),
(13,0,62705,4,18,1,33109,0,0, '', 'Auto-repair to Salvaged Demolisher'),
(13,0,62705,5,18,1,33167,0,0, '', 'Auto-repair to Salvaged Demolisher Mechanic Seat');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=63294;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,63294,0,18,1,33367,0,0, '', 'Freya Dummy Blue to Freya\'s Ward');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=63295;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,63295,0,18,1,33367,0,0, '', 'Freya Dummy Green to Freya\'s Ward');
-
+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=63292;
INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,0,63292,0,18,1,33367,0,0, '', 'Freya Dummy Yellow to Freya\'s Ward');
diff --git a/sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql b/sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql
index 6b5a124540d..1dc37357f8e 100644
--- a/sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_09_12_04_world_creature_template.sql
@@ -12,12 +12,12 @@ UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33280 WHERE `entry`=331
UPDATE `creature_template` SET `speed_run`=2.14286 WHERE `entry`=34120; -- Brann's Flying Machine
UPDATE `creature_template` SET `speed_walk`=1.6,`speed_run`=1.42857 WHERE `entry`=33118; -- Ignis the Furnace Master
UPDATE `creature_template` SET `unit_flags`=`unit_flags`|33554688 WHERE `entry`=33121; -- Iron Construct
-
+
-- Model data
UPDATE `creature_model_info` SET `bounding_radius`=5,`combat_reach`=1,`gender`=2 WHERE `modelid`=25870; -- Salvaged Chopper
UPDATE `creature_model_info` SET `bounding_radius`=0.6,`combat_reach`=1,`gender`=1 WHERE `modelid`=28787; -- Razorscale
UPDATE `creature_model_info` SET `bounding_radius`=0.62,`combat_reach`=1,`gender`=0 WHERE `modelid`=29185; -- Ignis the Furnace Master
-
+
-- Addon data
DELETE FROM `creature_template_addon` WHERE `entry` IN (33114,33142,33143,33139,33189,33216,33572,33090,33186,33287,33259,34120,
23033,34086,33118,33210,33121,34085,33816);
diff --git a/sql/old/3.3.5a/2011_09_12_05_world_misc.sql b/sql/old/3.3.5a/2011_09_12_05_world_misc.sql
index ffb183b31e4..29967ced760 100644
--- a/sql/old/3.3.5a/2011_09_12_05_world_misc.sql
+++ b/sql/old/3.3.5a/2011_09_12_05_world_misc.sql
@@ -8,5 +8,5 @@ UPDATE `creature_model_info` SET `bounding_radius`=1.3545,`combat_reach`=3,`gend
UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=1,`mount`=0,`emote`=0,`auras`=NULL WHERE `entry`=21419; -- Infernal Attacker
DELETE FROM `smart_scripts` WHERE `entryorguid`=21419 AND `source_type`=0;
-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
+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
(21419, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 11, 37794, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Infernal Attacker - On spawn cast Transform Infernal on self');
diff --git a/sql/old/3.3.5a/2011_09_13_00_world_spells.sql b/sql/old/3.3.5a/2011_09_13_00_world_spells.sql
index 63e7b295831..3d563e116dd 100644
--- a/sql/old/3.3.5a/2011_09_13_00_world_spells.sql
+++ b/sql/old/3.3.5a/2011_09_13_00_world_spells.sql
@@ -4,7 +4,7 @@ DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (33139,34111);
INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`quest_start`,`quest_start_active`,`quest_end`,`cast_flags`,`aura_required`,`aura_forbidden`,`user_type`) VALUES
(34111,46598,0,0,0,1,0,0,0),
(33139,46598,0,0,0,1,0,0,0);
-
+
-- Added Burn to Vehicles for Hard mode Mechanics
-- Thanks to horn for the reminder
-- Burn Secondary Effect from Vehicles
diff --git a/sql/old/3.3.5a/2011_09_14_01_world_quest.sql b/sql/old/3.3.5a/2011_09_14_01_world_quest.sql
index 1b6c53f7d9d..1155275af8c 100644
--- a/sql/old/3.3.5a/2011_09_14_01_world_quest.sql
+++ b/sql/old/3.3.5a/2011_09_14_01_world_quest.sql
@@ -71,7 +71,7 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- Phasing Spell
DELETE FROM `spell_area` WHERE `spell`=55857 AND `area`=4455;
-INSERT INTO `spell_area`(`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES
+INSERT INTO `spell_area`(`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES
(55857,4455,12983,1,12983,0,0,2,1);
-- From Nay:
diff --git a/sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql b/sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql
index 4c7474895ad..7f589988631 100644
--- a/sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql
+++ b/sql/old/3.3.5a/2011_09_14_06_world_creature_template.sql
@@ -34,7 +34,7 @@ WHERE `entry` IN
37972,38399,38769,38770, -- Prince Keseleth
37973,38400,38771,38772); -- Prince Taldaram
-UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`&~2097152 /* INFECTED */ WHERE `entry` IN
+UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`&~2097152 /* INFECTED */ WHERE `entry` IN
(36626,37504,37505,37506,-- Festergut
36627,38390,38549,38550, -- Rotface
36678,38431,38585,38586); -- Professor Putricide
diff --git a/sql/old/3.3.5a/2011_09_15_00_world_creature.sql b/sql/old/3.3.5a/2011_09_15_00_world_creature.sql
index 12269e4744d..56edc6893b2 100644
--- a/sql/old/3.3.5a/2011_09_15_00_world_creature.sql
+++ b/sql/old/3.3.5a/2011_09_15_00_world_creature.sql
@@ -1,2 +1,2 @@
--- Remove spawns of Perimeter Bunny - they are spawned by spell 54355 used by GO 191502 (Land Mine)
-DELETE FROM `creature` WHERE `id`=29397;
+-- Remove spawns of Perimeter Bunny - they are spawned by spell 54355 used by GO 191502 (Land Mine)
+DELETE FROM `creature` WHERE `id`=29397;
diff --git a/sql/old/3.3.5a/2011_09_15_02_world_misc.sql b/sql/old/3.3.5a/2011_09_15_02_world_misc.sql
index 5d482feba80..893c7db23a0 100644
--- a/sql/old/3.3.5a/2011_09_15_02_world_misc.sql
+++ b/sql/old/3.3.5a/2011_09_15_02_world_misc.sql
@@ -18,7 +18,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry
UPDATE `creature_template` SET `gossip_menu_id`=@Gossip,`minlevel`=80,`maxlevel`=80,`npcflag`=`npcflag`|1,`AIName`='SmartAI' WHERE `entry`=@NElf;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@NElf AND `source_type`=0;
-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
+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
(@NElf, 0, 0, 1, 62, 0, 100, 0, @Gossip, 0, 0, 0, 11, 69243, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Night Elf Mohawk - On gossip select cast Create Mohawk Grenade'),
(@NElf, 0, 1, 0, 61, 0, 100, 0, @Gossip, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Night Elf Mohawk - Link - close gossip');
diff --git a/sql/old/3.3.5a/2011_09_15_04_world_misc.sql b/sql/old/3.3.5a/2011_09_15_04_world_misc.sql
index 125bd7626f0..674893a91f7 100644
--- a/sql/old/3.3.5a/2011_09_15_04_world_misc.sql
+++ b/sql/old/3.3.5a/2011_09_15_04_world_misc.sql
@@ -5,16 +5,16 @@ SET @PATH := @NPC_DEATHS_HAND_ACOLYTE * 10;
SET @OMEGA_RUNE := 38708;
DELETE FROM `creature` WHERE `id` IN (@NPC_HERENN,@NPC_DEATHS_HAND_ACOLYTE);
--- add High Cultist Herenn (28601)
+-- add High Cultist Herenn (28601)
INSERT INTO `creature` (`guid`,`id`,`map`,`position_x`,`position_y`,`position_z`,`orientation`) VALUES
(@GUID+10,@NPC_HERENN,1,-6028.08,-1249.02,-146.7644,3.054326);
-- add Death's Hand Acolyte (28602), genders are random (25342,25343)
INSERT INTO `creature`(`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID, @NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6163.63,-1249.54,-159.7329,3.11264,120,0,0,1,0,2), -- wandering
-(@GUID+1,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6083.673,-1249.462,-143.4821,0.01435,120,0,0,1,0,2), -- wandering
-(@GUID+2,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6037.476,-1243.375,-146.8277,5.98647,120,0,0,1,0,0), -- kneeled
-(@GUID+3,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6036.1,-1255.38,-146.8277,1.15191,120,0,0,1,0,0), -- kneeled
+(@GUID+1,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6083.673,-1249.462,-143.4821,0.01435,120,0,0,1,0,2), -- wandering
+(@GUID+2,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6037.476,-1243.375,-146.8277,5.98647,120,0,0,1,0,0), -- kneeled
+(@GUID+3,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6036.1,-1255.38,-146.8277,1.15191,120,0,0,1,0,0), -- kneeled
(@GUID+4,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6065.16,-1256.21,-143.3607,3.10668,120,0,0,1,0,0),
(@GUID+5,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6118.18,-1241.33,-143.281,3.12169,120,0,0,1,0,0),
(@GUID+6,@NPC_DEATHS_HAND_ACOLYTE,1,1,1,0,0,-6104.965,-1243.601,-143.1921,3.12413,120,0,0,1,0,0),
@@ -28,8 +28,8 @@ UPDATE `creature_template` SET `equipment_id`=815 WHERE `entry`=@NPC_DEATHS_HAND
-- set waypoint id's and visual effects
DELETE FROM `creature_addon` WHERE `guid` IN (@GUID,@GUID+1,@GUID+2,@GUID+3);
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
-(@GUID ,@PATH,0,1,0,''),
-(@GUID+1,@PATH+20,0,1,0,''),
+(@GUID ,@PATH,0,1,0,''),
+(@GUID+1,@PATH+20,0,1,0,''),
(@GUID+2,0,8,0,0,''), -- kneeling
(@GUID+3,0,8,0,0,''); -- kneeling
@@ -59,10 +59,10 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
-- SAI for High Cultist Herenn, also add loot and equipment
UPDATE `creature_template` SET `AIName`='SmartAI',`equipment_id`=1803 WHERE `entry`=@NPC_HERENN;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@NPC_HERENN;
-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
+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
(@NPC_HERENN,0,0,0,0,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'High Cultist Herenn - in Combat - Say Text 0');
--- High Cultist Herenn talk text
+-- High Cultist Herenn talk text
DELETE FROM `creature_text` WHERE `entry`=@NPC_HERENN;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@NPC_HERENN,0,0,'Fool! You led us to the only being that could stand up to our armies! You will never bring the Etymidian back to Northrend!',12,0,100,25,0,0,'High Cultist Herenn');
diff --git a/sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql b/sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql
index 4896990bb5b..c25e2c7129c 100644
--- a/sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2011_09_26_00_world_spell_script_names.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN (62374,62475);
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(62374,'spell_pursue'),
(62475,'spell_systems_shutdown');
diff --git a/sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql b/sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql
index 9c332ccc3b2..b03642f04d7 100644
--- a/sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql
+++ b/sql/old/3.3.5a/2011_10_01_02_world_game_event_creature.sql
@@ -1,6 +1,6 @@
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128|2 WHERE `entry` IN (19871); -- World Trigger (World Trigger (Not Immune NPC))
DELETE FROM `game_event_creature` WHERE `guid` IN (62848,62849) AND `eventEntry`=11;
-INSERT INTO `game_event_creature` (`eventEntry`, `guid`) VALUES
+INSERT INTO `game_event_creature` (`eventEntry`, `guid`) VALUES
(11, 62848),
(11, 62849);
diff --git a/sql/old/3.3.5a/2011_10_01_05_world_sai.sql b/sql/old/3.3.5a/2011_10_01_05_world_sai.sql
index a6380f6c991..f1a9ff1472f 100644
--- a/sql/old/3.3.5a/2011_10_01_05_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_01_05_world_sai.sql
@@ -8,7 +8,7 @@ INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`
(24062,0,1,257,0, NULL), -- Wildervar Miner
(24178,0,3,1,0, '6606'); -- Shatterhorn, Self Visual - Sleep Until Cancelled (DND)
DELETE FROM `creature_addon` WHERE `guid` IN (120419,120422,106573);
-INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(120419,0,0,0,0,1,''), -- Wildervar Miner, talk
(120422,0,0,0,0,1,''); -- Wildervar Miner, talk
diff --git a/sql/old/3.3.5a/2011_10_01_06_world_misc.sql b/sql/old/3.3.5a/2011_10_01_06_world_misc.sql
index 8bc5e09605e..24d10cbff2c 100644
--- a/sql/old/3.3.5a/2011_10_01_06_world_misc.sql
+++ b/sql/old/3.3.5a/2011_10_01_06_world_misc.sql
@@ -1,7 +1,7 @@
-- Fix quest What Illidan Wants, Illidan Gets...
-- Make the npc_text entries work properly
DELETE FROM `gossip_menu` WHERE `entry` IN (8336,8342,8341,8340,8339,8338) AND `text_id` IN (10401,10405,10406,10407,10408,10409);
-INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
(8336,10401),
(8342,10405),
(8341,10406),
diff --git a/sql/old/3.3.5a/2011_10_01_07_world_sai.sql b/sql/old/3.3.5a/2011_10_01_07_world_sai.sql
index 59ab0e98d1b..c852ff32bc4 100644
--- a/sql/old/3.3.5a/2011_10_01_07_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_01_07_world_sai.sql
@@ -14,7 +14,7 @@ INSERT INTO `quest_start_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@ENTRY_FIRJUS,@ENTRY_JLARBORN,@ENTRY_YORUS,@ENTRY_OLUF);
DELETE FROM `creature_ai_scripts` WHERE `creature_id` IN (@ENTRY_FIRJUS,@ENTRY_JLARBORN,@ENTRY_YORUS,@ENTRY_OLUF);
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY_FIRJUS,@ENTRY_JLARBORN,@ENTRY_YORUS,@ENTRY_OLUF) AND `source_type`=0;
-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
+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
(@ENTRY_FIRJUS,0,0,0,0,0,100,0,3000,6000,12000,15000,11,15284,0,0,0,0,0,2,0,0,0,0,0,0,0,'Firjus - In Combat - Cleave'),
(@ENTRY_FIRJUS,0,1,0,0,0,100,0,10000,10000,10000,10000,11,43348,0,0,0,0,0,2,0,0,0,0,0,0,0,'Firjus - In Combat - Head Crush'),
(@ENTRY_FIRJUS,0,2,0,6,0,100,1,0,0,0,0,12,@ENTRY_JLARBORN,1,300000,0,0,0,8,0,0,0,799.653931,-4718.678711,-96.236053,4.992353,'Firjus - On Death - Summon Jlarborn'),
diff --git a/sql/old/3.3.5a/2011_10_01_11_world_loot.sql b/sql/old/3.3.5a/2011_10_01_11_world_loot.sql
index 533d6714cf8..bd34d39ff3d 100644
--- a/sql/old/3.3.5a/2011_10_01_11_world_loot.sql
+++ b/sql/old/3.3.5a/2011_10_01_11_world_loot.sql
@@ -12,9 +12,9 @@ SET @AirStripRef := 50013+1;
SET @HallsofStoneRef := 50013+2;
SET @ReavandDispoRef := 50013+3;
SET @LibraryLaborerRef := 50013+4;
--- Add loot to the skinning table
+-- Add loot to the skinning table
DELETE FROM `skinning_loot_template` WHERE `entry` IN (@Recovery,@Dirkee,@LibraryLaborer,@ReavandDispo,@HallsofStone,@AirStrip,@UldarBoss);
-INSERT INTO `skinning_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+INSERT INTO `skinning_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
(@Recovery, 41338, 42, 1, 0, 1, 3), -- Sprung Whirlygig
(@Recovery, 41337, 44, 1, 0, 1, 3), -- Whizzed out Gizmo
(@Recovery, 39690, 9, 1, 0, 1, 3), -- Volatile Blasting trigger
@@ -31,9 +31,9 @@ INSERT INTO `skinning_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `l
(@HallsofStone, 1, 100, 1, 0, -@HallsofStoneRef, 1),
(@AirStrip, 1, 100, 1, 0, -@AirStripRef, 1),
(@UldarBoss, 1, 100, 1, 0, -@UldarBossRef, 1);
--- Add loot to the reference table
+-- Add loot to the reference table
DELETE FROM `reference_loot_template` WHERE `entry` IN (@AirStripRef,@ReavandDispoRef,@LibraryLaborerRef,@HallsofStoneRef,@UldarBossRef);
-INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
(@AirStripRef, 41338, 33, 1, 0, 1, 1), -- Sprung Whirlygig
(@AirStripRef, 41337, 42, 1, 0, 1, 1), -- Whizzed out Gizmo
(@AirStripRef, 39690, 13, 1, 0, 1, 3), -- Volatile Blasting trigger
diff --git a/sql/old/3.3.5a/2011_10_01_12_world_creatures.sql b/sql/old/3.3.5a/2011_10_01_12_world_creatures.sql
index c6e63c19595..7ac66fd95b3 100644
--- a/sql/old/3.3.5a/2011_10_01_12_world_creatures.sql
+++ b/sql/old/3.3.5a/2011_10_01_12_world_creatures.sql
@@ -1,10 +1,10 @@
-- Jormunger Control Orb
DELETE FROM `gameobject` WHERE `id`=192262;
-INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
(173, 192262, 571, 1, 0x8, 8497.219, -90.90104, 789.2875, 0.1396245, 0, 0, 0.06975555, 0.9975641, 0, 0, 0);
DELETE FROM `creature` WHERE `id` IN (30301,30322,30300);
-INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
(4089, 30301, 571, 1, 0x8, 0, 0, 8497.78, -99.0251, 786.528, 3.01942, 120, 0, 0, 1, 0, 0, 0, 0, 0), -- Tamed Jormungar
(4090, 30322, 571, 1, 0x8, 0, 0, 8505.47, -86.2532, 787.339, 3.28122, 120, 0, 0, 1, 0, 0, 0, 0, 0), -- Earthen Jormungar Handler
(4765, 30322, 571, 1, 0x8, 0, 0, 8502.62, -111.308, 790.176, 3.05433, 120, 0, 0, 1, 0, 0, 0, 0, 0),
@@ -30,6 +30,6 @@ INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`
(30301,0,0,1,0, NULL); -- Tamed Jormungar
DELETE FROM `spell_area` WHERE spell=56526;
-INSERT INTO `spell_area`(`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES
+INSERT INTO `spell_area`(`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES
(56526,4436,13007,1,13007,0,0,2,1), -- Snowdrift Plains
(56526,4435,13007,1,13007,0,0,2,1); -- Navirs Cradle
diff --git a/sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql b/sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql
index b25622e1441..f3266c37357 100644
--- a/sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql
+++ b/sql/old/3.3.5a/2011_10_02_01_world_factionchange.sql
@@ -1,5 +1,5 @@
DELETE FROM `player_factionchange_items` WHERE `alliance_id`=48356; -- Wrong entry
-
+
DELETE FROM `player_factionchange_spells` WHERE `alliance_id` IN (67093,67091,67095,67096,67092,67085,67080,67082,67087,67083,67084,67086,60867,67065,67064,67079,67066);
INSERT INTO `player_factionchange_spells` (`alliance_id`,`horde_id`) VALUES
(67093,67132),
@@ -19,7 +19,7 @@ INSERT INTO `player_factionchange_spells` (`alliance_id`,`horde_id`) VALUES
(67064,67144),
(67079,67145),
(67066,67146);
-
+
DELETE FROM `player_factionchange_items` WHERE `alliance_id` IN (47003,47626,44503,47654);
INSERT INTO `player_factionchange_items` (`race_A`,`alliance_id`,`commentA`,`race_H`,`horde_id`,`commentH`) VALUES
(0,47003,'Dawnbreaker Greaves',0,47430,'Dawnbreaker Sabatons'),
diff --git a/sql/old/3.3.5a/2011_10_02_04_world_sai.sql b/sql/old/3.3.5a/2011_10_02_04_world_sai.sql
index fbec8e12b55..1c123d2ae2a 100644
--- a/sql/old/3.3.5a/2011_10_02_04_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_02_04_world_sai.sql
@@ -9,5 +9,5 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_typ
-- Fix an older sql guid
DELETE FROM `gameobject` WHERE `id`=192262; -- Jormunger Control Orb
-INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
(173, 192262, 571, 1, 0x8, 8497.219, -90.90104, 789.2875, 0.1396245, 0, 0, 0.06975555, 0.9975641, 0, 0, 0);
diff --git a/sql/old/3.3.5a/2011_10_02_08_world_sai.sql b/sql/old/3.3.5a/2011_10_02_08_world_sai.sql
index fc49cd24425..f0df16b7be4 100644
--- a/sql/old/3.3.5a/2011_10_02_08_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_02_08_world_sai.sql
@@ -15,7 +15,7 @@ INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_
(@GRIZZLY,0,1,0,61,0,100,1,0,0,0,0,41,5000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Rabid Grizzly - Despawn after 5 seconds'),
(@ELK,0,0,1,8,0,100,0x01,@SPELL,0,0,0,33,@ELKDUMMY,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Blighted Elk - On spell hit - Give kill credit for quest 12166'),
(@ELK,0,1,0,61,0,100,1,0,0,0,0,41,5000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Blighted Elk - Despawn after 5 secondes');
-
+
-- Fix the quest item to allow it to only target the two quest NPCs
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceEntry`=@ITEM;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
diff --git a/sql/old/3.3.5a/2011_10_02_12_world_sai.sql b/sql/old/3.3.5a/2011_10_02_12_world_sai.sql
index 93779a01172..8fd77e5ed8d 100644
--- a/sql/old/3.3.5a/2011_10_02_12_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_02_12_world_sai.sql
@@ -27,7 +27,7 @@ INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`
-- 1) Can't have more than one 54324 in the same target. 2) That aura gets removed when target enters in combat and it shouldn't
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=24921;
DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN -104008 AND -103996 AND `source_type`=0;
-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
+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
(-103996, 0, 0, 0, 1, 0, 0, 1, 500, 500, 0, 0, 11, 54324, 0, 0, 0, 0, 0, 11, @ENTRY, 60, 0, 0, 0, 0, 0, 'Cosmetic Trigger - LAB (Brunnhildar Village) - Cast Cosmetic Chains at Kirgaraak'),
(-103997, 0, 0, 0, 1, 0, 0, 1, 500, 500, 0, 0, 11, 54324, 0, 0, 0, 0, 0, 11, @ENTRY, 60, 0, 0, 0, 0, 0, 'Cosmetic Trigger - LAB (Brunnhildar Village) - Cast Cosmetic Chains at Kirgaraak'),
(-103998, 0, 0, 0, 1, 0, 0, 1, 500, 500, 0, 0, 11, 54324, 0, 0, 0, 0, 0, 11, @ENTRY, 60, 0, 0, 0, 0, 0, 'Cosmetic Trigger - LAB (Brunnhildar Village) - Cast Cosmetic Chains at Kirgaraak'),
diff --git a/sql/old/3.3.5a/2011_10_07_01_world_command.sql b/sql/old/3.3.5a/2011_10_07_01_world_command.sql
index c3767c7dc00..13336fa6b2f 100644
--- a/sql/old/3.3.5a/2011_10_07_01_world_command.sql
+++ b/sql/old/3.3.5a/2011_10_07_01_world_command.sql
@@ -1,3 +1,3 @@
DELETE FROM `command` WHERE `name` = 'ticket reset';
-INSERT INTO `command` (`name`, `security`, `help`) VALUES
+INSERT INTO `command` (`name`, `security`, `help`) VALUES
('ticket reset', 3, 'Syntax: .ticket reset\nRemoves all closed tickets and resets the counter, if no pending open tickets are existing.'); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql b/sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql
index 2dff16050e4..1ada6589e54 100644
--- a/sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql
+++ b/sql/old/3.3.5a/2011_10_07_02_world_trinity_string.sql
@@ -1,4 +1,4 @@
DELETE FROM `trinity_string` WHERE `entry` IN(2027,2028);
-INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
('2027', 'There are pending open tickets, please close them first!'),
('2028', 'All closed tickets were deleted and counter is reseted to |cffff00ff 1|r'); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2011_10_22_07_world_sai.sql b/sql/old/3.3.5a/2011_10_22_07_world_sai.sql
index 8e85d719cf8..e867f43d527 100644
--- a/sql/old/3.3.5a/2011_10_22_07_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_22_07_world_sai.sql
@@ -9,7 +9,7 @@ SET @SPELL_BACKSTAB := 71410;
UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=`flags_extra`|2,`unit_class`=4 WHERE `entry`=@ENTRY; -- Civilian according to video
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY;
-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
+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
(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sunreaver Agent - On Aggro - Say Line 0 (random)"),
(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,11,@SPELL_HOOKED_NET,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Agent - On Aggro - Cast Hooked Net"),
(@ENTRY,0,2,0,67,0,100,0,1000,3000,0,0,11,@SPELL_BACKSTAB,0,0,0,0,0,2,0,0,0,0,0,0,0,"Sunreaver Agent - Behind Target - Cast Backstab"),
@@ -33,7 +33,7 @@ SET @SPELL_BACKSTAB := 71410;
UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=`flags_extra`|2,`unit_class`=4 WHERE `entry`=@ENTRY; -- Civilian according to video
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY;
-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
+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
(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Silver Covenant Agent - On Aggro - Say Line 0 (random)"),
(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,11,@SPELL_HOOKED_NET,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Agent - On Aggro - Cast Hooked Net"),
(@ENTRY,0,2,0,67,0,100,0,1000,3000,0,0,11,@SPELL_BACKSTAB,0,0,0,0,0,2,0,0,0,0,0,0,0,"Silver Covenant Agent - Behind Target - Cast Backstab"),
diff --git a/sql/old/3.3.5a/2011_10_23_00_world_sai.sql b/sql/old/3.3.5a/2011_10_23_00_world_sai.sql
index 0d90c2ac9ce..5a9848da021 100644
--- a/sql/old/3.3.5a/2011_10_23_00_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_23_00_world_sai.sql
@@ -2,7 +2,7 @@
-- Fix quest 8359 "Flexing for Nougat"
DELETE FROM `smart_scripts` WHERE `entryorguid`=6929 AND `source_type`=0;
-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
+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
(6929,0,0,1,62,0,100,0,441,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Gryshka - On gossip option 0 select - Close gossip'),
(6929,0,1,0,61,0,100,0,0,0,0,0,85,24751,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Gryshka - On gossip option 0 select - Player cast Trick or Treat on self'),
(6929,0,2,0,22,0,100,0,41,0,0,0,33,6929,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Gryshka - On flex emote - Give kill credit');
@@ -10,7 +10,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
-- Fix quest 8358 "Incoming Gundrop"
UPDATE creature_template SET `AIName`= 'SmartAI' WHERE `entry`=11814;
DELETE FROM `smart_scripts` WHERE `entryorguid`=11814 AND `source_type`=0;
-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
+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
(11814,0,1,0,22,0,100,0,264,0,0,0,33,11814,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Kali Remik - On train emote - Give kill credit');
-- Fix quest 8354 "Chicken Clucking for a Mint"
@@ -23,14 +23,14 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
-- Fix quest 8360 "Dancing for Marzipan"
UPDATE creature_template SET `AIName`= 'SmartAI' WHERE `entry`=6746;
DELETE FROM `smart_scripts` WHERE `entryorguid`=6746 AND `source_type`=0;
-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
+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
(6746,0,1,0,22,0,100,0,34,0,0,0,33,6746,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Pala - On dance emote - Give kill credit');
-- Alliance
-- Fix quest 8356 "Flexing for Nougat"
DELETE FROM `smart_scripts` WHERE `entryorguid`=6740 AND `source_type`=0;
-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
+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
(6740,0,0,1,62,0,100,0,342,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Allison - On gossip option 0 select - Close gossip'),
(6740,0,1,0,61,0,100,0,0,0,0,0,85,24751,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Innkeeper Allison - On gossip option 0 select - Player cast Trick or Treat on self'),
(6740,0,2,0,22,0,100,0,41,0,0,0,33,6740,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Allison - On flex emote - Give kill credit');
@@ -38,20 +38,20 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
-- Fix quest 8358 "Incoming Gundrop"
UPDATE creature_template SET `AIName`= 'SmartAI' WHERE `entry`=6826;
DELETE FROM `smart_scripts` WHERE `entryorguid`=6826 AND `source_type`=0;
-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
+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
(6826,0,1,0,22,0,100,0,264,0,0,0,33,6826,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Talvash del Kissel - On train emote - Give kill credit');
-- Fix quest 8360 "Dancing for Marzipan"
UPDATE creature_template SET `AIName`= 'SmartAI' WHERE `entry`=6735;
DELETE FROM `smart_scripts` WHERE `entryorguid`=6735 AND `source_type`=0;
-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
+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
(6735,0,0,1,62,0,100,0,1581,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Saelienne - On gossip option 0 select - Close gossip'),
(6735,0,1,0,61,0,100,0,0,0,0,0,85,24751,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Saelienne - On gossip option 0 select - Player cast Trick or Treat on self'),
(6735,0,2,0,22,0,100,0,34,0,0,0,33,6735,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Saelienne - On dance emote - Give kill credit');
-- Fix quest 8353 "Chicken Clucking for a Mint"
DELETE FROM `smart_scripts` WHERE `entryorguid`=5111 and `source_type`=0;
-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
+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
(5111,0,0,1,62,0,100,0,345,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Firebrew - On gossip option 0 select - Close gossip'),
(5111,0,1,0,61,0,100,0,0,0,0,0,85,24751,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Firebrew - On gossip option 0 select - Player cast Trick or Treat on self'),
(5111,0,2,0,22,0,100,0,22,0,0,0,33,5111,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Innkeeper Firebrew - On chicken emote - Give kill credit');
diff --git a/sql/old/3.3.5a/2011_10_23_05_world_misc.sql b/sql/old/3.3.5a/2011_10_23_05_world_misc.sql
index 5c730c8cd18..5f0cc4f6d2e 100644
--- a/sql/old/3.3.5a/2011_10_23_05_world_misc.sql
+++ b/sql/old/3.3.5a/2011_10_23_05_world_misc.sql
@@ -5,7 +5,7 @@ SET @SPELL_ETHEREUM_RELAY := 39596;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY;
-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
+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
(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,11,@SPELL_SHADOWFORM,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereum Relay - Out of Combat - Cast Shadowform"),
(@ENTRY,0,1,0,1,0,100,1,0,0,0,0,11,@SPELL_ETHEREUM_RELAY,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ethereum Relay - Out of Combat - Cast Ethereum Relay");
diff --git a/sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql b/sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql
index 08d1d0a0ec1..297634d4ac8 100644
--- a/sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql
+++ b/sql/old/3.3.5a/2011_10_23_07_world_creature_templates.sql
@@ -50,7 +50,7 @@ UPDATE `creature_model_info` SET `bounding_radius`=0.25,`combat_reach`=0,`gender
UPDATE `creature_model_info` SET `bounding_radius`=1,`combat_reach`=0,`gender`=2 WHERE `modelid` IN (1141,1418); -- Rat
UPDATE `creature_model_info` SET `bounding_radius`=0.075,`combat_reach`=0,`gender`=2 WHERE `modelid`=24719; -- [DND] Shaker - Small
-- Addon data
-UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=257,`mount`=0,`emote`=0,`auras`=NULL WHERE `entry` IN
+UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=257,`mount`=0,`emote`=0,`auras`=NULL WHERE `entry` IN
(2456 -- Newton Burnside
,2457 -- John Burnside
,1285 -- Thurman Mullby
@@ -89,7 +89,7 @@ UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=257,`mount`=0,`emote`=0
-- Frederick Stover
-- Lina Stover
-UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=258,`mount`=0,`emote`=0,`auras`=NULL WHERE `entry` IN (1297,1298);
+UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=258,`mount`=0,`emote`=0,`auras`=NULL WHERE `entry` IN (1297,1298);
DELETE FROM `creature_template_addon` WHERE `entry` IN (37574,37543,29093,25058);
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(37574,0,0,1,0, NULL), -- [DND] Shaker - Small
diff --git a/sql/old/3.3.5a/2011_10_23_07_world_sai.sql b/sql/old/3.3.5a/2011_10_23_07_world_sai.sql
index 7853b6eb411..baf9936566e 100644
--- a/sql/old/3.3.5a/2011_10_23_07_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_23_07_world_sai.sql
@@ -17,7 +17,7 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
-- Prospector Anvilward SAI
UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='',`gossip_menu_id`=@GOSSIP WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY;
-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
+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
(@ENTRY,0,0,1,62,0,100,0,@GOSSIP+1,0,0,0,53,0,@ENTRY,0,0,0,2,1,0,0,0,0,0,0,0,'Prospector Anvilward - On Gossip Select - Start WP'),
(@ENTRY,0,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,'Prospector Anvilward - On Gossip Select - Start WP'),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,83,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Anvilward - On Gossip Select - Remove npcflag'),
diff --git a/sql/old/3.3.5a/2011_10_23_08_world_sai.sql b/sql/old/3.3.5a/2011_10_23_08_world_sai.sql
index 911168102ba..e2e8cfd73f4 100644
--- a/sql/old/3.3.5a/2011_10_23_08_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_23_08_world_sai.sql
@@ -1,9 +1,9 @@
-SET @ENTRY := 14354; -- the little bugger Pusillin
+SET @ENTRY := 14354; -- the little bugger Pusillin
SET @SPELL_1 := 14145; -- Fire Blast
SET @SPELL_2 := 15228; -- Fireball
SET @SPELL_3 := 22424; -- Blast Wave
-SET @SPELL_4 := 22735; -- Spirit of Runn Tum (reflect magic)
+SET @SPELL_4 := 22735; -- Spirit of Runn Tum (reflect magic)
SET @NPC_WILDSPAWN_IMP := 13276; -- 5 of them summoned by Pusillin during fight
-- Gossip menu's from npc_text
@@ -18,7 +18,7 @@ SET @GOSSIP_OPTION_1 := 6877;
SET @GOSSIP_OPTION_2 := 6878;
SET @GOSSIP_OPTION_3 := 6879;
SET @GOSSIP_OPTION_4 := 6880;
-SET @GOSSIP_OPTION_5 := 6881;
+SET @GOSSIP_OPTION_5 := 6881;
SET @SCRIPT_1 := 1435400; -- gossip
SET @SCRIPT_2 := 1435401; -- gossip
@@ -41,7 +41,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY,0,2,0,64,1,100,0,0,0,0,0,@SA_SEND_GOSSIP,@GOSSIP_2,@GOSSIP_OPTION_2,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Gossip Hello & Phase 2 - Send Gossip'),
(@ENTRY,0,3,0,64,2,100,0,0,0,0,0,@SA_SEND_GOSSIP,@GOSSIP_3,@GOSSIP_OPTION_3,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Gossip Hello & Phase 3 - Send Gossip'),
(@ENTRY,0,4,0,64,4,100,0,0,0,0,0,@SA_SEND_GOSSIP,@GOSSIP_4,@GOSSIP_OPTION_4,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Gossip Hello & Phase 4 - Send Gossip'),
- (@ENTRY,0,5,0,64,8,100,0,0,0,0,0,@SA_SEND_GOSSIP,@GOSSIP_5,@GOSSIP_OPTION_5,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Gossip Hello & Phase 5 - Send Gossip'),
+ (@ENTRY,0,5,0,64,8,100,0,0,0,0,0,@SA_SEND_GOSSIP,@GOSSIP_5,@GOSSIP_OPTION_5,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Gossip Hello & Phase 5 - Send Gossip'),
-- run script depending on phase
(@ENTRY,0,6,0,62,0,100,0,@GOSSIP_OPTION_1,0,0,0,80,@SCRIPT_1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Gossip Select - Run Script 1'),
@@ -52,31 +52,31 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
-- Waypoint 3 (chit-chat 1)
(@ENTRY,0,11,12,40,0,100,0,3,@ENTRY,0,0,55,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP3 - stop'),
-(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP3 - Turn on Gossip flag'),
+(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP3 - Turn on Gossip flag'),
-- Waypoint 14 (chit-chat 2)
(@ENTRY,0,13,14,40,0,100,0,14,@ENTRY*10,0,0,55,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP14 - stop'),
-(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP14 - Turn on Gossip flag'),
+(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP14 - Turn on Gossip flag'),
-- Waypoint 12 (chit-chat 3)
(@ENTRY,0,15,16,40,0,100,0,12,@ENTRY*20,0,0,55,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP12 - stop'),
-(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP12 - Turn on Gossip flag'),
+(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP12 - Turn on Gossip flag'),
-- Waypoint 7 (chit-chat 4)
(@ENTRY,0,17,18,40,0,100,0,7,@ENTRY*30,0,0,55,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP7 - stop'),
-(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP7 - Turn on Gossip flag'),
+(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - At WP7 - Turn on Gossip flag'),
-- casts during fight
(@ENTRY,0,19,0,0,0,100,0,1000,4250,8000,8000,11,@SPELL_1,0,0,0,0,0,2,0,0,0,0,0,0,0,'Pusillin - In Combat - Cast Fire Blast'),
(@ENTRY,0,20,0,0,0,100,0,1000,1000,4000,4000,11,@SPELL_2,0,0,0,0,0,2,0,0,0,0,0,0,0,'Pusillin - In Combat - Cast Fireball'),
-(@ENTRY,0,21,0,0,0,100,0,2000,10000,10000,17500,11,@SPELL_3,0,0,0,0,0,2,0,0,0,0,0,0,0,'Pusillin - In Combat - Cast Blast Wave'),
+(@ENTRY,0,21,0,0,0,100,0,2000,10000,10000,17500,11,@SPELL_3,0,0,0,0,0,2,0,0,0,0,0,0,0,'Pusillin - In Combat - Cast Blast Wave'),
-- Script 1
(@SCRIPT_1,9,0,0,0,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Script 1 - Close Gossip'),
(@SCRIPT_1,9,1,0,0,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 1 - Turn Off Gossip Flags'),
(@SCRIPT_1,9,2,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 1 - Say Text 0'),
(@SCRIPT_1,9,3,0,0,0,100,0,0,0,0,0,23,1,0,0,0,0,0,0,0,0,0,0,0,0,0,'Pusillin - On Script 1 - Set Phase to 2'),
-(@SCRIPT_1,9,4,0,0,0,100,0,0,0,0,0,53,1,@ENTRY,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 1 - Start Waypoint Movement'),
+(@SCRIPT_1,9,4,0,0,0,100,0,0,0,0,0,53,1,@ENTRY,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 1 - Start Waypoint Movement'),
-- Script 2
(@SCRIPT_2,9,0,0,0,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Script 2 - Close Gossip'),
@@ -90,7 +90,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@SCRIPT_3,9,1,0,0,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 3 - Turn Off Gossip Flags'),
(@SCRIPT_3,9,2,0,0,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 3 - Say Text 2'),
(@SCRIPT_3,9,3,0,0,0,100,0,0,0,0,0,23,1,0,0,0,0,0,0,0,0,0,0,0,0,0,'Pusillin - On Script 3 - Set Phase to 4'),
-(@SCRIPT_3,9,4,0,0,0,100,0,0,0,0,0,53,1,@ENTRY*20,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 3 - Start Waypoint Movement'),
+(@SCRIPT_3,9,4,0,0,0,100,0,0,0,0,0,53,1,@ENTRY*20,0,0,0,0,1,0,0,0,0,0,0,0,'Pusillin - On Script 3 - Start Waypoint Movement'),
-- Script 4
(@SCRIPT_4,9,0,0,0,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Pusillin - On Script 4 - Close Gossip'),
@@ -118,7 +118,7 @@ DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY,@ENTRY*10,@ENTRY*20,@ENTRY*30);
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
(@ENTRY,1,82.88,-198.508,-4.1331,'Pusillin path'),
(@ENTRY,2,-159.153,-201.138,-4.15275,'Pusillin path'),
-(@ENTRY,3,-154.512,-276.2,-4.14787,'Pusillin path'),
+(@ENTRY,3,-154.512,-276.2,-4.14787,'Pusillin path'),
(@ENTRY*10,1,-159.64,-320.208,-4.14787,'Pusillin path'),
(@ENTRY*10,2,-142.923,-344.111,-4.11348,'Pusillin path'),
(@ENTRY*10,3,-84.2623,-363.37,-4.14729,'Pusillin path'),
@@ -132,7 +132,7 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
(@ENTRY*10,11,38.3357,-357.051,-4.13201,'Pusillin path'),
(@ENTRY*10,12,55.7067,-349.754,-4.07173,'Pusillin path'),
(@ENTRY*10,13,88.4046,-354.125,-4.10444,'Pusillin path'),
-(@ENTRY*10,14,113.54,-372.365,-4.08966,'Pusillin path'),
+(@ENTRY*10,14,113.54,-372.365,-4.08966,'Pusillin path'),
(@ENTRY*20,1,111.71,-468.929,-2.71837,'Pusillin path'),
(@ENTRY*20,2,111.557,-485.672,-6.88627,'Pusillin path'),
(@ENTRY*20,3,111.29,-514.931,-6.91324,'Pusillin path'),
@@ -160,7 +160,7 @@ INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`op
(@GOSSIP_OPTION_2,0,0,'Why you little...',1,1),
(@GOSSIP_OPTION_3,0,0,'Mark my words, I will catch you, imp. And when I do!',1,1),
(@GOSSIP_OPTION_4,0,0,'DIE!',1,1),
-(@GOSSIP_OPTION_5,0,0,'Prepare to meet your maker.',1,1);
+(@GOSSIP_OPTION_5,0,0,'Prepare to meet your maker.',1,1);
-- Pusillin texts
DELETE FROM `creature_text` WHERE `entry`= @ENTRY;
@@ -169,7 +169,7 @@ INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`pr
(@ENTRY,1,0,'Chase me if you dare! I run without a care!',12,0,0,0,0,0,'Pusillin text #2'),
(@ENTRY,2,0,'Why would you ever want to harm me!? Come. Friends we can be!',12,0,0,0,0,0,'Pusillin text #3'),
(@ENTRY,3,0,'DIE?! You make Pusillin cry!',12,0,0,0,0,0,'Pusillin text #4'),
-(@ENTRY,4,0,'Say hello to my little friends!',12,0,0,0,0,0,'Pusillin text #5');
+(@ENTRY,4,0,'Say hello to my little friends!',12,0,0,0,0,0,'Pusillin text #5');
-- remove already spawned Wildspawn Imp
DELETE FROM `creature` WHERE `guid`=56995;
diff --git a/sql/old/3.3.5a/2011_10_29_05_world_sai.sql b/sql/old/3.3.5a/2011_10_29_05_world_sai.sql
index fc17ca8a1a7..fb22020163e 100644
--- a/sql/old/3.3.5a/2011_10_29_05_world_sai.sql
+++ b/sql/old/3.3.5a/2011_10_29_05_world_sai.sql
@@ -15,7 +15,7 @@ INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language
(24238, 2, 1, 'The Winterskorn tribe will prevail!', 14, 0, 100, 0, 0, 0, 'Bjorn Halgurdsson - Random 2');
DELETE FROM `smart_scripts` WHERE `entryorguid`=24238 AND `source_type`=0;
-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
+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
(24238, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 43371, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bjorn Halgurdsson - On death cast Bjorn Kill Credit (Quest: Adding Injury to Insult)'),
(24238, 0, 1, 0, 0, 0, 100, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bjorn Halgurdsson - In combat (nr) say text 0'),
(24238, 0, 2, 0, 0, 0, 100, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bjorn Halgurdsson - In combat (nr) say text 1'),
diff --git a/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql b/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql
index 54a36473fb3..9b6ac61f2d4 100644
--- a/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql
@@ -1,5 +1,5 @@
DELETE FROM `player_factionchange_items` WHERE `alliance_id` IN (48072,48073,48074,48075,48076) AND horde_id IN (48097,48098,48099,48100,48101);
-INSERT INTO `player_factionchange_items` (`race_A`,`alliance_id`,`commentA`,`race_H`,`horde_id`,`commentH`) VALUES
+INSERT INTO `player_factionchange_items` (`race_A`,`alliance_id`,`commentA`,`race_H`,`horde_id`,`commentH`) VALUES
(0,48076, 'Velen''s Mantle of Conquest',0,48101, 'Zabra''s Mantle of Conquest'),
(0,48075, 'Velen''s Raiments of Conquest',0,48100, 'Zabra''s Raiments of Conquest'),
(0,48074, 'Velen''s Pants of Conquest',0,48099, 'Zabra''s Pants of Conquest'),
diff --git a/sql/old/3.3.5a/2011_11_11_01_world_misc.sql b/sql/old/3.3.5a/2011_11_11_01_world_misc.sql
index f48d3f8200e..bf7e7a63c87 100644
--- a/sql/old/3.3.5a/2011_11_11_01_world_misc.sql
+++ b/sql/old/3.3.5a/2011_11_11_01_world_misc.sql
@@ -4,7 +4,7 @@ UPDATE `creature_template` SET `npcflag`=`npcflag`|16777216 WHERE `entry`=30560;
DELETE FROM `creature_template_addon` WHERE `entry`=30560;
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(30560,0,0,1,0, NULL); -- The RP-GG
-
+
-- Fixing spawntime for creature 30560 (The RP-GG)
UPDATE `creature` SET `spawntimesecs`=60 WHERE `id`=30560;
diff --git a/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql b/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql
index 257398d4457..b0c7ab75b0b 100644
--- a/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql
+++ b/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql
@@ -31,7 +31,7 @@ Icecrown guid 163200 - 164399 pool 11400 - 11799
-- ----------------------------------------
-- -- Fixup ore spawns for Borean Tundra --
-- ----------------------------------------
-SET @RANGE := 150;
+SET @RANGE := 150;
SET @GUID1 := 160000;
SET @GUID2 := @GUID1 + @RANGE;
SET @POOL := 10000;
@@ -2267,7 +2267,7 @@ INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES
-- -----------------------------------------
-- -- Fixup ore spawns for Sholazar Basin --
--- -----------------------------------------
+-- -----------------------------------------
SET @RANGE := 350;
SET @GUID1 := 161400;
SET @GUID2 := @GUID1 + @RANGE;
diff --git a/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql
index 722027bd343..ab831bc335a 100644
--- a/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql
@@ -1,4 +1,4 @@
--- Add Jormungar Egg Sac on Deep Jormungar
+-- Add Jormungar Egg Sac on Deep Jormungar
DELETE FROM `creature_loot_template` WHERE `entry`=34920 AND `item`=46889;
INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(34920,46889,-100,1,0,1,1); -- Jormungar Egg Sac
diff --git a/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql b/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql
index efb2fec72f3..57bf1aca809 100644
--- a/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql
@@ -1,6 +1,6 @@
SET @Ref = 10020;
DELETE FROM `reference_loot_template` WHERE `entry`=@Ref AND `item`IN (34000,34001,34002,34003,33292,37606);
-INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@REF,34000,0.8,1,0,1,1), -- Flimsy Female Blood Elf Mask
(@REF,34001,0.8,1,0,1,1), -- Flimsy Female Draenei Mask
(@REF,34002,0.8,1,0,1,1), -- Flimsy Male Blood Elf Mask
diff --git a/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql
index 728ce731313..7e5f4e36c07 100644
--- a/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql
@@ -1,5 +1,5 @@
-- Add Formula: Enchant Cloak - Superior Arcane Resistance to Frostbrood Spawn & Cult Researcher
DELETE FROM `creature_loot_template` WHERE `entry` IN (31702,32297) AND `item`=37330;
-INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(31702,37330,1.5,1,0,1,1), -- Formula: Enchant Cloak - Superior Arcane Resistance
(32297,37330,0.8,1,0,1,1); -- Formula: Enchant Cloak - Superior Arcane Resistance
diff --git a/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql
index 9f753577844..4f755b1cbea 100644
--- a/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql
@@ -1,6 +1,6 @@
-- Add Orders From Kael'thas to the following creatures
DELETE FROM `creature_loot_template` WHERE `item`=29797;
-INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(18860,29797,-80,1,0,1,1), -- Daughter of Destiny
(20285,29797,-80,1,0,1,1), -- Gan'arg Warp-Tinker
(20326,29797,-80,1,0,1,1); -- Mo'arg Warp-Master
diff --git a/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql
index 7982910cee6..a32f65f3aab 100644
--- a/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql
@@ -1,4 +1,4 @@
-- Add Heavy Scorpid Vest to Shadowsworn Thug and remove from Portal Seeker
DELETE FROM `creature_loot_template` WHERE `item`=15727;
-INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(6005,15727,0.5,1,0,1,1); -- Shadowsworn Thug
diff --git a/sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql
index 89bbfc7126d..f5fa3ad48ce 100644
--- a/sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2011_12_13_01_world_achievement_criteria_data.sql
@@ -1,7 +1,7 @@
-- Experienced Drake Rider Achiev
-
+
DELETE FROM `disables` WHERE `entry` IN (7177,7178,7179);
-
+
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (7177,7178,7179);
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
(7177,5,49460,1,''), -- Amber Drake
diff --git a/sql/old/3.3.5a/2011_12_17_00_world_creature.sql b/sql/old/3.3.5a/2011_12_17_00_world_creature.sql
index 0126561da01..9b830c207ef 100644
--- a/sql/old/3.3.5a/2011_12_17_00_world_creature.sql
+++ b/sql/old/3.3.5a/2011_12_17_00_world_creature.sql
@@ -319,12 +319,12 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
(@GUID+286,9257,229,1,1,0,0,75.31803,-587.21405,30.68769,2.86234,7200,0,0,1,0,0),
(@GUID+287,9257,229,1,1,0,0,-8.240628,-580.9951,29.2742,5.67232,7200,0,0,1,0,0),
(@GUID+288,9257,229,1,1,0,0,-56.70842,-586.1366,29.2742,1.2915436,7200,0,0,1,0,0);
-
+
-- Add sitting to some Scarshield Legionnaires
DELETE FROM `creature_addon` WHERE `guid` IN (209318,209333,209315,209337,209308,209312,209331,209320,209335);
INSERT INTO `creature_addon` (`guid`,`bytes1`,`bytes2`) VALUES
(209318,1,1),(209333,1,1),(209315,1,1),(209337,1,1),(209308,1,1),(209312,1,1),(209331,1,1),(209320,1,1),(209335,1,1);
-
+
-- Pathing for Blackhand Dreadweaver Entry: 9817
SET @NPC := @GUID+116;
SET @PATH := @NPC * 10;
@@ -354,7 +354,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,19,142.107,-253.858,110.808,0,0,0,100,0),
(@PATH,20,149.232,-254.785,110.835,0,0,0,100,0),
(@PATH,21,156.027,-256.98,110.873,0,0,0,100,0);
-
+
-- Pathing for Rage Talon Dragonspawn Entry: 9096
SET @NPC := @GUID+13;
SET @PATH := @NPC * 10;
@@ -385,7 +385,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,20,157.819,-330.472,70.9563,0,0,0,100,0),
(@PATH,21,151.347,-332.406,70.9563,0,0,0,100,0),
(@PATH,22,141.415,-328.32,70.9563,0,0,0,100,0);
-
+
-- Pathing for Rage Talon Dragonspawn Entry: 9096
SET @NPC := @GUID+3;
SET @PATH := @NPC * 10;
@@ -398,7 +398,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,2,103.388,-312.501,106.436,0,0,0,100,0),
(@PATH,3,102.492,-284.08,106.436,0,0,0,100,0),
(@PATH,4,102.111,-255.036,106.436,0,0,0,100,0);
-
+
-- Pathing for Rage Talon Flamescale Entry: 10083
SET @NPC := @GUID+25;
SET @PATH := @NPC * 10;
@@ -411,7 +411,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,2,151.43,-299.848,110.655,0,0,0,100,0),
(@PATH,3,151.826,-337.478,110.948,0,0,0,100,0),
(@PATH,4,151.43,-299.848,110.655,0,0,0,100,0);
-
+
-- Pathing for Rage Talon Flamescale Entry: 10083
SET @NPC := @GUID+26;
SET @PATH := @NPC * 10;
@@ -426,7 +426,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,4,113.681,-366.227,116.844,0,0,0,100,0),
(@PATH,5,134.314,-365.853,116.844,0,0,0,100,0),
(@PATH,6,159.69,-366.065,116.844,0,0,0,100,0);
-
+
-- Pathing for Blackhand Veteran Entry: 9819
SET @NPC := @GUID+77;
SET @PATH := @NPC * 10;
@@ -455,7 +455,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,18,141.56,-328.348,110.948,0,0,0,100,0),
(@PATH,19,145.867,-339.175,110.95,0,0,0,100,0),
(@PATH,20,151.986,-343.381,110.952,0,0,0,100,0);
-
+
-- Pathing for Blackhand Veteran Entry: 9819
SET @NPC := @GUID+68;
SET @PATH := @NPC * 10;
@@ -488,7 +488,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,22,137.621,-374.032,116.807,0,0,0,100,0),
(@PATH,23,138.003,-383.829,121.975,0,0,0,100,0),
(@PATH,24,137.681,-374.135,116.807,0,0,0,100,0);
-
+
-- Pathing for Rage Talon Dragon Guard Entry: 10366
SET @NPC := @GUID+32;
SET @PATH := @NPC * 10;
@@ -515,7 +515,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,16,106.258,-474.643,116.842,0,0,0,100,0),
(@PATH,17,120.161,-474.673,116.842,0,0,0,100,0),
(@PATH,18,137.109,-474.652,116.842,0,0,0,100,0);
-
+
-- Pathing for Jed Runewatcher Entry: 10509 "RARE"
SET @NPC := @GUID+153;
SET @PATH := @NPC * 10;
@@ -545,7 +545,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,19,160.079,-280.562,110.652,0,0,0,100,0),
(@PATH,20,144.032,-280.615,110.653,0,0,0,100,0),
(@PATH,21,142.987,-312.006,110.658,0,0,0,100,0);
-
+
-- Pathing for Blackhand Assassin Entry: 10318
SET @NPC := @GUID+173;
SET @PATH := @NPC * 10;
@@ -583,7 +583,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,27,60.60706,-474.3578,112.1393,0,0,0,100,0),
(@PATH,28,70.90186,-474.6028,115.4964,0,0,0,100,0);
-- 0xF13000284E0957D1 .go 83.54216 -474.6622 116.8424
-
+
-- Pathing for Blackhand Assassin Entry: 10318
SET @NPC := @GUID+155;
SET @PATH := @NPC * 10;
@@ -609,7 +609,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,15,112.9668,-557.6212,107.6628,0,0,0,100,0),
(@PATH,16,117.2911,-562.6133,107.403,0,0,0,100,0);
-- 0xF13000284E0957CB .go 117.5151 -567.9547 107.125
-
+
-- Pathing for Blackhand Iron Guard Entry: 10319
SET @NPC := @GUID+185;
SET @PATH := @NPC * 10;
@@ -625,7 +625,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,5,10.9487,-465.839,110.938,0,0,0,100,0),
(@PATH,6,12.0295,-481.36,110.935,0,0,0,100,0),
(@PATH,7,27.209,-487.106,110.949,0,0,0,100,0);
-
+
-- Pathing for Blackhand Iron Guard Entry: 10319
SET @NPC := @GUID+187;
SET @PATH := @NPC * 10;
@@ -644,7 +644,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,32.9856,-441.198,110.948,0,0,0,100,0),
(@PATH,9,33.2187,-432.523,110.949,0,0,0,100,0),
(@PATH,10,32.9856,-441.198,110.948,0,0,0,100,0);
-
+
-- Pathing for Blackhand Iron Guard Entry: 10319
SET @NPC := @GUID+180;
SET @PATH := @NPC * 10;
@@ -684,7 +684,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,29,137.726,-471.057,116.836,0,0,0,100,0),
(@PATH,30,137.759,-466.307,116.807,0,0,0,100,0),
(@PATH,31,137.438,-458.164,121.874,0,0,0,100,0);
-
+
-- Pathing for Goraluk Anvilcrack Entry: 10899
SET @NPC := @GUID+39;
SET @PATH := @NPC * 10;
@@ -725,7 +725,7 @@ INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o
(@PATH+3,0,30,0,0,1.801312,94),
(@PATH+3,1,1,28,1,0,95),
(@PATH+3,22,1,0,1,0,96);
-
+
-- Pathing for Rage Talon Captain Entry: 10371
SET @NPC := @GUID+42;
SET @PATH := @NPC * 10;
@@ -746,7 +746,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,10,-0.199047,-320.916,110.942,0,0,0,100,0),
(@PATH,11,0.073367,-274.516,110.929,0,0,0,100,0),
(@PATH,12,17.7263,-263.467,110.943,0,0,0,100,0);
-
+
-- Pathing for Blackrock Drake Entry: 8964
SET @NPC := 3343;
SET @PATH := @NPC * 10;
@@ -776,7 +776,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,19,-7502.939,-1142.821,286.4399,0,0,0,100,0),
(@PATH,20,-7499.304,-1120.659,286.4399,0,0,0,100,0),
(@PATH,21,-7502.985,-1091.508,286.4399,0,0,0,100,0);
-
+
-- Pathing for Blackrock Drake Entry: 8964
SET @NPC := 3344;
SET @PATH := @NPC * 10;
@@ -811,7 +811,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,24,-7562.621,-1112.578,307.4555,0,0,0,100,0),
(@PATH,25,-7567.333,-1126.35,304.3445,0,0,0,100,0),
(@PATH,26,-7587.611,-1127.057,299.0391,0,0,0,100,0);
-
+
-- Pathing for Scarshield Legionnaire Entry: 9097
SET @NPC := @GUID+228;
SET @PATH := @NPC * 10;
@@ -832,7 +832,7 @@ INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o
(@PATH+2,0,30,0,0,3.892084,100),
(@PATH+2,7,1,69,1,0,101),
(@PATH+2,16,1,0,1,0,102);
-
+
-- Pathing for Scarshield Legionnaire Entry: 9097
SET @NPC := @GUID+209;
SET @PATH := @NPC * 10;
@@ -859,7 +859,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,16,34.57693,-329.2669,53.62961,0,0,0,100,0),
(@PATH,17,41.51676,-327.2762,53.74633,0,0,0,100,0),
(@PATH,18,53.45955,-325.36,53.91605,0,0,0,100,0);
-
+
-- Pathing for Scarshield Legionnaire Entry: 9097
SET @NPC := @GUID+229;
SET @PATH := @NPC * 10;
@@ -896,7 +896,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,26,67.14284,-292.4547,60.63996,0,0,0,100,0),
(@PATH,27,74.20583,-289.4101,60.64116,0,0,0,100,0),
(@PATH,28,81.97402,-288.0753,60.66125,0,0,0,100,0);
-
+
-- Pathing for Scarshield Legionnaire Entry: 9097
SET @NPC := @GUID+230;
SET @PATH := @NPC * 10;
@@ -938,7 +938,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,31,71.19937,-288.5282,60.61031,0,0,0,100,0),
(@PATH,32,76.71995,-286.1484,60.66695,0,0,0,100,0),
(@PATH,33,83.98484,-287.0403,60.643,0,0,0,100,0);
-
+
-- Pathing for Scarshield Spellbinder Entry: 9098
SET @NPC := @GUID+252;
SET @PATH := @NPC * 10;
diff --git a/sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql b/sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql
index 98752a1b7ec..5e8a01975cf 100644
--- a/sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql
+++ b/sql/old/3.3.5a/2011_12_17_00_world_gameobject.sql
@@ -5,7 +5,7 @@ DELETE FROM `gameobject` WHERE `map`=229 AND `id` IN (153464,175124,175194,17519
136928,136929,136930,136931,136932,136933,136934,136935,136936,136937,136938,136939,136940,136941,136942,136943,136944,136945,136946,136947,136948,136949,136951,136954,136957,136959,136961,136962,136963,136964,153469,
164725,175334,175571,175584,175588,175606,175607,175608,175609,175886,175949,175950,176089,176090,176425,176426,176427,176428,176429,176430,176431,176432,176433,176434,176435,176436,176437,176438,176439,176440,176441,
176442,176443,176444,176445,176446,176454,176455,176456,176457,176458);
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(@OGUID,175124,229,1,1,100.579681,-312.488953,91.4455,0.122172989,0,0,0,0,120,0,1),
(@OGUID+1,175124,229,1,1,101.516693,-311.471344,91.4455,-1.58824873,0,0,0,0,120,0,1),
(@OGUID+2,175124,229,1,1,102.414017,-304.376343,91.4466248,0.0174524616,0,0,0,0,120,0,1),
diff --git a/sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql b/sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql
index 5df7f000b06..dc165258391 100644
--- a/sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql
+++ b/sql/old/3.3.5a/2011_12_18_00_world_creature_addon.sql
@@ -1,2 +1,2 @@
--- Delete addons for some creatures that has been removed
+-- Delete addons for some creatures that has been removed
DELETE FROM `creature_addon` WHERE `guid` IN (209318,209333,209315,209337,209308,209312,209331,209320,209335,209318,209333,209315,209337,209308,209312,209331,209320,209335);
diff --git a/sql/old/3.3.5a/2011_12_18_04_world_misc.sql b/sql/old/3.3.5a/2011_12_18_04_world_misc.sql
index 3404e4f285f..64b00eb0070 100644
--- a/sql/old/3.3.5a/2011_12_18_04_world_misc.sql
+++ b/sql/old/3.3.5a/2011_12_18_04_world_misc.sql
@@ -56,7 +56,7 @@ SET @NPC = 3144;
SET @QUEST = 4941;
-- Add gossip options for each menu id
DELETE FROM `gossip_menu_option` WHERE `menu_id` BETWEEN @GOSSIP AND @GOSSIP+7;
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(@GOSSIP, 0, 0, 'Hello, Eitrigg. I bring news from Blackrock Spire.', 1, 1, @GOSSIP+1, 0, 0, 0, ''),
(@GOSSIP+1, 0, 0, 'There is only one Warchief, Eitrigg!', 1, 1, @GOSSIP+2, 0, 0, 0, ''),
(@GOSSIP+2, 0, 0, 'What do you mean?', 1, 1, @GOSSIP+3, 0, 0, 0, ''),
@@ -67,7 +67,7 @@ INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`,
(@GOSSIP+7, 0, 0, 'As you wish, Eitrigg.', 1, 1, 0, 0, 0, 0, '');
-- Add gossip menus (text values already in db)
DELETE FROM `gossip_menu` WHERE `entry`BETWEEN @GOSSIP+1 AND @GOSSIP+7;
-INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
(@GOSSIP+1, 3574),
(@GOSSIP+2, 3575),
(@GOSSIP+3, 3576),
@@ -77,7 +77,7 @@ INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
(@GOSSIP+7, 3580);
-- Add Condtion so gossip only shows when on quest
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15, @GOSSIP, 0, 0, 9, 4941, 0, 0, 0, '', NULL);
-- Add SAI for quest complete and close of gossip when last option selected
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@NPC;
diff --git a/sql/old/3.3.5a/2011_12_18_06_world_sai.sql b/sql/old/3.3.5a/2011_12_18_06_world_sai.sql
index 2fce176cd0f..39cde4a3b3f 100644
--- a/sql/old/3.3.5a/2011_12_18_06_world_sai.sql
+++ b/sql/old/3.3.5a/2011_12_18_06_world_sai.sql
@@ -6,7 +6,7 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@JEEVES;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@JEEVES AND `source_type`=0;
-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
+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
(@JEEVES,0,0,0,8,0,100,0,@SPELL_GOODBYE,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jeeves - On Spellhit - Say Line 0");
DELETE FROM `creature_text` WHERE `entry`=@JEEVES;
diff --git a/sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql
index af7b0a9361b..b94b06cab82 100644
--- a/sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2011_12_19_02_world_achievement_criteria_data.sql
@@ -1,4 +1,4 @@
--- Achievement Fa-la-la-la-Ogri'la
+-- Achievement Fa-la-la-la-Ogri'la
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (3936,3937,3938);
INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
-- requires aura
diff --git a/sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql b/sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql
index ed95c4450fd..9d309c8aec9 100644
--- a/sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_01_02_02_world_creature_template.sql
@@ -2,12 +2,12 @@
UPDATE `creature_template` SET `flags_extra`= `flags_extra`|64 WHERE `entry` IN (
-- NORMAL
30661, -- CREATURE_AZURE_INVADER_1
-30961, -- CREATURE_AZURE_INVADER_2
-30662, -- CREATURE_AZURE_SPELLBREAKER_1
-30962, -- CREATURE_AZURE_SPELLBREAKER_2
-30663, -- CREATURE_AZURE_BINDER_1
-30918, -- CREATURE_AZURE_BINDER_2
-30664, -- CREATURE_AZURE_MAGE_SLAYER_1
+30961, -- CREATURE_AZURE_INVADER_2
+30662, -- CREATURE_AZURE_SPELLBREAKER_1
+30962, -- CREATURE_AZURE_SPELLBREAKER_2
+30663, -- CREATURE_AZURE_BINDER_1
+30918, -- CREATURE_AZURE_BINDER_2
+30664, -- CREATURE_AZURE_MAGE_SLAYER_1
30963, -- CREATURE_AZURE_MAGE_SLAYER_2
-- HEROIC:
31487, -- Azure Invader
@@ -18,4 +18,4 @@ UPDATE `creature_template` SET `flags_extra`= `flags_extra`|64 WHERE `entry` IN
31488, -- Azure Invader
31495, -- Azure Spellbreaker
31498 -- Azure Mage Slayer
-);
+);
diff --git a/sql/old/3.3.5a/2012_01_03_02_world_sai.sql b/sql/old/3.3.5a/2012_01_03_02_world_sai.sql
index 61ae8aab575..a841c4c06c9 100644
--- a/sql/old/3.3.5a/2012_01_03_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_01_03_02_world_sai.sql
@@ -1,6 +1,6 @@
-- Add text for Lynn Hyal
DELETE FROM `creature_text` WHERE `entry`=23768;
-INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
(23768, 1, 0, 'James? James... No, you\'re not James, but I know who you are...', 12, 0, 100, 0, 0, 0, 'Lynn Hyal'),
(23768, 2, 0, 'You\'re the one who tracked down the brutes who did this to us.', 12, 0, 100, 0, 0, 0, 'Lynn Hyal'),
(23768, 3, 0, 'I tried so hard to tell Jim... to tell anyone... who was behind this, but I couldn\'t find a way...', 12, 0, 100, 0, 0, 0, 'Lynn Hyal'),
@@ -8,12 +8,12 @@ INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language
(23768, 5, 0, 'I don\'t know when we\'ll see Daddy again, Jimmy, but I know he loves you and he misses you very much.', 12, 0, 100, 0, 0, 0, 'Lynn Hyal');
-- Add text for Jimmy Hyal
DELETE FROM `creature_text` WHERE `entry`=23769;
-INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
(23769, 1, 0, 'Mommy, when will we see Daddy again?', 12, 0, 100, 0, 0, 0, 'Jimmy Hyal');
-- add smart ai dialog for Lynn Hyal and quest credit at end of dialog
UPDATE `creature_template` SET AIName="SmartAI" WHERE `entry`=23768;
DELETE FROM `smart_scripts` WHERE `entryorguid`=23768;
-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
+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
(23768, 0, 0, 0, 1, 0, 100, 1, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lynn Hyal - on spawn - talk 1'),
(23768, 0, 1, 0, 1, 0, 100, 1, 2000, 2000, 0, 0, 84, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lynn Hyal - after 2 sec - talk 2'),
(23768, 0, 2, 0, 1, 0, 100, 1, 5000, 5000, 0, 0, 84, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lynn Hyal - after 5 sec - talk 3'),
@@ -23,5 +23,5 @@ INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_
-- add smart ai dialog for Jimmy Hyal
UPDATE `creature_template` SET AIName="SmartAI" WHERE `entry`=23769;
DELETE FROM `smart_scripts` WHERE `entryorguid`=23769;
-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
+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
(23769, 0, 0, 0, 1, 0, 100, 1, 10000, 10000, 0, 0, 84, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Jimmy Hyal - after 10 sec - talk 1');
diff --git a/sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql b/sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql
index 9746a358e8a..0619903ed42 100644
--- a/sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql
+++ b/sql/old/3.3.5a/2012_01_04_01_world_game_event_seasonal_questrelation.sql
@@ -7,380 +7,380 @@ CREATE TABLE `game_event_seasonal_questrelation` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
INSERT INTO `game_event_seasonal_questrelation` (`quest`,`event`) VALUES
- (1657, 12),
- (1658, 12),
- (6961, 2),
- (6962, 2),
- (6963, 2),
- (6964, 2),
- (6983, 3),
- (6984, 3),
- (7021, 2),
- (7022, 2),
- (7023, 2),
- (7024, 2),
- (7025, 2),
- (7042, 2),
- (7043, 2),
- (7045, 2),
- (7061, 2),
- (7062, 2),
- (7063, 2),
- (8149, 11),
- (8150, 11),
- (8311, 12),
- (8312, 12),
- (8322, 12),
- (8353, 12),
- (8354, 12),
- (8355, 12),
- (8356, 12),
- (8357, 12),
- (8358, 12),
- (8359, 12),
- (8360, 12),
- (8373, 12),
- (8409, 12),
- (8744, 52),
- (8746, 2),
- (8762, 2),
- (8763, 2),
- (8767, 52),
- (8768, 52),
- (8769, 52),
- (8788, 52),
- (8799, 2),
- (8803, 52),
- (8827, 2),
- (8828, 2),
- (8860, 6),
- (8861, 6),
- (8868, 7),
- (8897, 8),
- (8898, 8),
- (8899, 8),
- (8900, 8),
- (8901, 8),
- (8902, 8),
- (8903, 8),
- (8904, 8),
- (8971, -1),
- (8972, -1),
- (8973, -1),
- (8974, -1),
- (8975, -1),
- (8976, -1),
- (8979, 8),
- (8980, 8),
- (8981, 8),
- (8982, 8),
- (8983, 8),
- (8984, 8),
- (8993, 8),
- (9024, 8),
- (9025, 8),
- (9026, 8),
- (9027, 8),
- (9028, 8),
- (11131, 12),
- (11135, 12),
- (11219, 12),
- (11220, 12),
- (11242, 12),
- (11356, 12),
- (11357, 12),
- (11360, 12),
- (11361, 12),
- (11392, 12),
- (11401, 12),
- (11403, 12),
- (11404, 12),
- (11405, 12),
- (11435, 12),
- (11439, 12),
- (11440, 12),
- (11449, 12),
- (11450, 12),
- (11528, 52),
- (11558, 8),
- (11580, 1),
- (11581, 1),
- (11583, 1),
- (11584, 1),
- (11696, 1),
- (11732, 1),
- (11734, 1),
- (11735, 1),
- (11736, 1),
- (11737, 1),
- (11738, 1),
- (11739, 1),
- (11740, 1),
- (11741, 1),
- (11742, 1),
- (11743, 1),
- (11744, 1),
- (11745, 1),
- (11746, 1),
- (11747, 1),
- (11748, 1),
- (11749, 1),
- (11750, 1),
- (11751, 1),
- (11752, 1),
- (11753, 1),
- (11754, 1),
- (11755, 1),
- (11756, 1),
- (11757, 1),
- (11758, 1),
- (11759, 1),
- (11760, 1),
- (11761, 1),
- (11762, 1),
- (11763, 1),
- (11764, 1),
- (11765, 1),
- (11766, 1),
- (11767, 1),
- (11768, 1),
- (11769, 1),
- (11770, 1),
- (11771, 1),
- (11772, 1),
- (11773, 1),
- (11774, 1),
- (11775, 1),
- (11776, 1),
- (11777, 1),
- (11778, 1),
- (11779, 1),
- (11780, 1),
- (11781, 1),
- (11782, 1),
- (11783, 1),
- (11784, 1),
- (11785, 1),
- (11786, 1),
- (11787, 1),
- (11799, 1),
- (11800, 1),
- (11801, 1),
- (11802, 1),
- (11803, 1),
- (11804, 1),
- (11805, 1),
- (11806, 1),
- (11807, 1),
- (11808, 1),
- (11809, 1),
- (11810, 1),
- (11811, 1),
- (11812, 1),
- (11813, 1),
- (11814, 1),
- (11815, 1),
- (11816, 1),
- (11817, 1),
- (11818, 1),
- (11819, 1),
- (11820, 1),
- (11821, 1),
- (11822, 1),
- (11823, 1),
- (11824, 1),
- (11825, 1),
- (11826, 1),
- (11827, 1),
- (11828, 1),
- (11829, 1),
- (11830, 1),
- (11831, 1),
- (11832, 1),
- (11833, 1),
- (11834, 1),
- (11835, 1),
- (11836, 1),
- (11837, 1),
- (11838, 1),
- (11839, 1),
- (11840, 1),
- (11841, 1),
- (11842, 1),
- (11843, 1),
- (11844, 1),
- (11845, 1),
- (11846, 1),
- (11847, 1),
- (11848, 1),
- (11849, 1),
- (11850, 1),
- (11851, 1),
- (11852, 1),
- (11853, 1),
- (11854, 1),
- (11855, 1),
- (11856, 1),
- (11857, 1),
- (11858, 1),
- (11859, 1),
- (11860, 1),
- (11861, 1),
- (11862, 1),
- (11863, 1),
- (11937, 1),
- (11976, 1),
- (12133, 12),
- (12135, 12),
- (12139, 12),
- (12155, 12),
- (12286, -1),
- (12313, 24),
- (12331, 12),
- (12332, 12),
- (12333, 12),
- (12334, 12),
- (12335, 12),
- (12336, 12),
- (12337, 12),
- (12338, 12),
- (12339, 12),
- (12340, 12),
- (12341, 12),
- (12342, 12),
- (12343, 12),
- (12344, 12),
- (12345, 12),
- (12346, 12),
- (12347, 12),
- (12348, 12),
- (12349, 12),
- (12350, 12),
- (12351, 12),
- (12352, 12),
- (12353, 12),
- (12354, 12),
- (12355, 12),
- (12356, 12),
- (12357, 12),
- (12358, 12),
- (12359, 12),
- (12360, 12),
- (12361, 12),
- (12362, 12),
- (12363, 12),
- (12364, 12),
- (12365, 12),
- (12366, 12),
- (12367, 12),
- (12368, 12),
- (12369, 12),
- (12370, 12),
- (12371, 12),
- (12373, 12),
- (12374, 12),
- (12375, 12),
- (12376, 12),
- (12377, 12),
- (12378, 12),
- (12379, 12),
- (12380, 12),
- (12381, 12),
- (12382, 12),
- (12383, 12),
- (12384, 12),
- (12385, 12),
- (12386, 12),
- (12387, 12),
- (12388, 12),
- (12389, 12),
- (12390, 12),
- (12391, 12),
- (12392, 12),
- (12393, 12),
- (12394, 12),
- (12395, 12),
- (12396, 12),
- (12397, 12),
- (12398, 12),
- (12399, 12),
- (12400, 12),
- (12401, 12),
- (12402, 12),
- (12403, 12),
- (12404, 12),
- (12405, 12),
- (12406, 12),
- (12407, 12),
- (12408, 12),
- (12409, 12),
- (12410, 12),
- (12940, 12),
- (12941, 12),
- (12944, 12),
- (12945, 12),
- (12946, 12),
- (12947, 12),
- (12950, 12),
- (13203, 52),
- (13433, 12),
- (13434, 12),
- (13435, 12),
- (13436, 12),
- (13437, 12),
- (13438, 12),
- (13439, 12),
- (13440, 12),
- (13441, 12),
- (13442, 12),
- (13443, 12),
- (13444, 12),
- (13445, 12),
- (13446, 12),
- (13447, 12),
- (13448, 12),
- (13449, 12),
- (13450, 12),
- (13451, 12),
- (13452, 12),
- (13453, 12),
- (13454, 12),
- (13455, 12),
- (13456, 12),
- (13457, 12),
- (13458, 12),
- (13459, 12),
- (13460, 12),
- (13461, 12),
- (13462, 12),
- (13463, 12),
- (13464, 12),
- (13465, 12),
- (13466, 12),
- (13467, 12),
- (13468, 12),
- (13469, 12),
- (13470, 12),
- (13471, 12),
- (13472, 12),
- (13473, 12),
- (13474, 12),
- (13485, 1),
- (13486, 1),
- (13487, 1),
- (13488, 1),
- (13489, 1),
- (13490, 1),
- (13491, 1),
- (13492, 1),
- (13493, 1),
- (13494, 1),
- (13495, 1),
- (13496, 1),
- (13497, 1),
- (13498, 1),
- (13499, 1),
- (13500, 1),
- (13501, 12),
- (13548, 12),
- (13966, 52);
+ (1657, 12),
+ (1658, 12),
+ (6961, 2),
+ (6962, 2),
+ (6963, 2),
+ (6964, 2),
+ (6983, 3),
+ (6984, 3),
+ (7021, 2),
+ (7022, 2),
+ (7023, 2),
+ (7024, 2),
+ (7025, 2),
+ (7042, 2),
+ (7043, 2),
+ (7045, 2),
+ (7061, 2),
+ (7062, 2),
+ (7063, 2),
+ (8149, 11),
+ (8150, 11),
+ (8311, 12),
+ (8312, 12),
+ (8322, 12),
+ (8353, 12),
+ (8354, 12),
+ (8355, 12),
+ (8356, 12),
+ (8357, 12),
+ (8358, 12),
+ (8359, 12),
+ (8360, 12),
+ (8373, 12),
+ (8409, 12),
+ (8744, 52),
+ (8746, 2),
+ (8762, 2),
+ (8763, 2),
+ (8767, 52),
+ (8768, 52),
+ (8769, 52),
+ (8788, 52),
+ (8799, 2),
+ (8803, 52),
+ (8827, 2),
+ (8828, 2),
+ (8860, 6),
+ (8861, 6),
+ (8868, 7),
+ (8897, 8),
+ (8898, 8),
+ (8899, 8),
+ (8900, 8),
+ (8901, 8),
+ (8902, 8),
+ (8903, 8),
+ (8904, 8),
+ (8971, -1),
+ (8972, -1),
+ (8973, -1),
+ (8974, -1),
+ (8975, -1),
+ (8976, -1),
+ (8979, 8),
+ (8980, 8),
+ (8981, 8),
+ (8982, 8),
+ (8983, 8),
+ (8984, 8),
+ (8993, 8),
+ (9024, 8),
+ (9025, 8),
+ (9026, 8),
+ (9027, 8),
+ (9028, 8),
+ (11131, 12),
+ (11135, 12),
+ (11219, 12),
+ (11220, 12),
+ (11242, 12),
+ (11356, 12),
+ (11357, 12),
+ (11360, 12),
+ (11361, 12),
+ (11392, 12),
+ (11401, 12),
+ (11403, 12),
+ (11404, 12),
+ (11405, 12),
+ (11435, 12),
+ (11439, 12),
+ (11440, 12),
+ (11449, 12),
+ (11450, 12),
+ (11528, 52),
+ (11558, 8),
+ (11580, 1),
+ (11581, 1),
+ (11583, 1),
+ (11584, 1),
+ (11696, 1),
+ (11732, 1),
+ (11734, 1),
+ (11735, 1),
+ (11736, 1),
+ (11737, 1),
+ (11738, 1),
+ (11739, 1),
+ (11740, 1),
+ (11741, 1),
+ (11742, 1),
+ (11743, 1),
+ (11744, 1),
+ (11745, 1),
+ (11746, 1),
+ (11747, 1),
+ (11748, 1),
+ (11749, 1),
+ (11750, 1),
+ (11751, 1),
+ (11752, 1),
+ (11753, 1),
+ (11754, 1),
+ (11755, 1),
+ (11756, 1),
+ (11757, 1),
+ (11758, 1),
+ (11759, 1),
+ (11760, 1),
+ (11761, 1),
+ (11762, 1),
+ (11763, 1),
+ (11764, 1),
+ (11765, 1),
+ (11766, 1),
+ (11767, 1),
+ (11768, 1),
+ (11769, 1),
+ (11770, 1),
+ (11771, 1),
+ (11772, 1),
+ (11773, 1),
+ (11774, 1),
+ (11775, 1),
+ (11776, 1),
+ (11777, 1),
+ (11778, 1),
+ (11779, 1),
+ (11780, 1),
+ (11781, 1),
+ (11782, 1),
+ (11783, 1),
+ (11784, 1),
+ (11785, 1),
+ (11786, 1),
+ (11787, 1),
+ (11799, 1),
+ (11800, 1),
+ (11801, 1),
+ (11802, 1),
+ (11803, 1),
+ (11804, 1),
+ (11805, 1),
+ (11806, 1),
+ (11807, 1),
+ (11808, 1),
+ (11809, 1),
+ (11810, 1),
+ (11811, 1),
+ (11812, 1),
+ (11813, 1),
+ (11814, 1),
+ (11815, 1),
+ (11816, 1),
+ (11817, 1),
+ (11818, 1),
+ (11819, 1),
+ (11820, 1),
+ (11821, 1),
+ (11822, 1),
+ (11823, 1),
+ (11824, 1),
+ (11825, 1),
+ (11826, 1),
+ (11827, 1),
+ (11828, 1),
+ (11829, 1),
+ (11830, 1),
+ (11831, 1),
+ (11832, 1),
+ (11833, 1),
+ (11834, 1),
+ (11835, 1),
+ (11836, 1),
+ (11837, 1),
+ (11838, 1),
+ (11839, 1),
+ (11840, 1),
+ (11841, 1),
+ (11842, 1),
+ (11843, 1),
+ (11844, 1),
+ (11845, 1),
+ (11846, 1),
+ (11847, 1),
+ (11848, 1),
+ (11849, 1),
+ (11850, 1),
+ (11851, 1),
+ (11852, 1),
+ (11853, 1),
+ (11854, 1),
+ (11855, 1),
+ (11856, 1),
+ (11857, 1),
+ (11858, 1),
+ (11859, 1),
+ (11860, 1),
+ (11861, 1),
+ (11862, 1),
+ (11863, 1),
+ (11937, 1),
+ (11976, 1),
+ (12133, 12),
+ (12135, 12),
+ (12139, 12),
+ (12155, 12),
+ (12286, -1),
+ (12313, 24),
+ (12331, 12),
+ (12332, 12),
+ (12333, 12),
+ (12334, 12),
+ (12335, 12),
+ (12336, 12),
+ (12337, 12),
+ (12338, 12),
+ (12339, 12),
+ (12340, 12),
+ (12341, 12),
+ (12342, 12),
+ (12343, 12),
+ (12344, 12),
+ (12345, 12),
+ (12346, 12),
+ (12347, 12),
+ (12348, 12),
+ (12349, 12),
+ (12350, 12),
+ (12351, 12),
+ (12352, 12),
+ (12353, 12),
+ (12354, 12),
+ (12355, 12),
+ (12356, 12),
+ (12357, 12),
+ (12358, 12),
+ (12359, 12),
+ (12360, 12),
+ (12361, 12),
+ (12362, 12),
+ (12363, 12),
+ (12364, 12),
+ (12365, 12),
+ (12366, 12),
+ (12367, 12),
+ (12368, 12),
+ (12369, 12),
+ (12370, 12),
+ (12371, 12),
+ (12373, 12),
+ (12374, 12),
+ (12375, 12),
+ (12376, 12),
+ (12377, 12),
+ (12378, 12),
+ (12379, 12),
+ (12380, 12),
+ (12381, 12),
+ (12382, 12),
+ (12383, 12),
+ (12384, 12),
+ (12385, 12),
+ (12386, 12),
+ (12387, 12),
+ (12388, 12),
+ (12389, 12),
+ (12390, 12),
+ (12391, 12),
+ (12392, 12),
+ (12393, 12),
+ (12394, 12),
+ (12395, 12),
+ (12396, 12),
+ (12397, 12),
+ (12398, 12),
+ (12399, 12),
+ (12400, 12),
+ (12401, 12),
+ (12402, 12),
+ (12403, 12),
+ (12404, 12),
+ (12405, 12),
+ (12406, 12),
+ (12407, 12),
+ (12408, 12),
+ (12409, 12),
+ (12410, 12),
+ (12940, 12),
+ (12941, 12),
+ (12944, 12),
+ (12945, 12),
+ (12946, 12),
+ (12947, 12),
+ (12950, 12),
+ (13203, 52),
+ (13433, 12),
+ (13434, 12),
+ (13435, 12),
+ (13436, 12),
+ (13437, 12),
+ (13438, 12),
+ (13439, 12),
+ (13440, 12),
+ (13441, 12),
+ (13442, 12),
+ (13443, 12),
+ (13444, 12),
+ (13445, 12),
+ (13446, 12),
+ (13447, 12),
+ (13448, 12),
+ (13449, 12),
+ (13450, 12),
+ (13451, 12),
+ (13452, 12),
+ (13453, 12),
+ (13454, 12),
+ (13455, 12),
+ (13456, 12),
+ (13457, 12),
+ (13458, 12),
+ (13459, 12),
+ (13460, 12),
+ (13461, 12),
+ (13462, 12),
+ (13463, 12),
+ (13464, 12),
+ (13465, 12),
+ (13466, 12),
+ (13467, 12),
+ (13468, 12),
+ (13469, 12),
+ (13470, 12),
+ (13471, 12),
+ (13472, 12),
+ (13473, 12),
+ (13474, 12),
+ (13485, 1),
+ (13486, 1),
+ (13487, 1),
+ (13488, 1),
+ (13489, 1),
+ (13490, 1),
+ (13491, 1),
+ (13492, 1),
+ (13493, 1),
+ (13494, 1),
+ (13495, 1),
+ (13496, 1),
+ (13497, 1),
+ (13498, 1),
+ (13499, 1),
+ (13500, 1),
+ (13501, 12),
+ (13548, 12),
+ (13966, 52);
diff --git a/sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql b/sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql
index 2ad787b36ca..f92b0392a76 100644
--- a/sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql
+++ b/sql/old/3.3.5a/2012_01_04_05_world_waypoint_data.sql
@@ -355,7 +355,7 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,343.6207,-3757.014,106.9888,0,0,0,0,100,0),
(@PATH,9,318.8742,-3761.253,106.802,0,0,0,0,100,0),
(@PATH,10,312.3907,-3744.138,106.7072,0,0,0,0,100,0),
-(@PATH,11,319.9912,-3724.497,106.8615,0,0,0,0,100,0),
+(@PATH,11,319.9912,-3724.497,106.8615,0,0,0,0,100,0),
(@PATH,12,348.4052,-3720.816,105.9374,0,0,0,0,100,0),
(@PATH,13,365.8063,-3725.304,105.9001,0,0,0,0,100,0),
(@PATH,14,376.4646,-3738.252,105.2092,0,0,0,0,100,0),
diff --git a/sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql b/sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql
index 15b2f5dc408..aa67382e579 100644
--- a/sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/2012_01_05_01_world_gameobject.sql
@@ -1,5 +1,5 @@
-- Template updates for gameobject 186831 (Saga of the Twins)
UPDATE `gameobject_template` SET `flags`=`flags`|4 WHERE `entry`=186831; -- Saga of the Twins
DELETE FROM `gameobject` WHERE `id`=186831;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
-(216,186831,571,1,1,957.1025,-5308.23,189.3529,2.600535,0,0,0.9636297,0.267241,300,100,1);
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(216,186831,571,1,1,957.1025,-5308.23,189.3529,2.600535,0,0,0.9636297,0.267241,300,100,1);
diff --git a/sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql b/sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql
index 022c82d539d..fd0cd3406e4 100644
--- a/sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/2012_01_05_02_world_gameobject_template.sql
@@ -3,5 +3,5 @@ UPDATE `gameobject_template` SET `flags`=`flags`|4 WHERE `entry`=188675; -- Scar
UPDATE `gameobject_template` SET `flags`=`flags`|4 WHERE `entry`=188676; -- Scarlet Onslaught Daily Orders: Abbey by sniff
UPDATE `gameobject_template` SET `flags`=`flags`|4 WHERE `entry`=188677; -- Scarlet Onslaught Daily Orders: Beach by sniff
DELETE FROM `gameobject` WHERE `id`=188677;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(219,188677,571,1,1,2567.449,-388.7118,3.573463,-2.879789,0,0,-0.9914446,0.1305283,300,100,1);
diff --git a/sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql b/sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql
index 047c0453608..3ce642fcd2c 100644
--- a/sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql
+++ b/sql/old/3.3.5a/2012_01_05_11_world_creature_onkill_reputation.sql
@@ -1,6 +1,6 @@
-- remade incorrect gain of ashen verdict reputation according to http://www.wowwiki.com/Ashen_Verdict
-- there were incorrect values for trash mobs ( before=25 for kill, must to be 15)
-- for Lich King it must to be 1500 and for Deathbound Wards and Deathspeaker High Priests 45
-UPDATE `creature_onkill_reputation` SET `RewOnKillRepValue1` = 1500 WHERE `creature_id` IN (36597,39166,39167,39168);
+UPDATE `creature_onkill_reputation` SET `RewOnKillRepValue1` = 1500 WHERE `creature_id` IN (36597,39166,39167,39168);
UPDATE `creature_onkill_reputation` SET `RewOnKillRepValue1` = 45 WHERE `creature_id` IN (36829,37007);
UPDATE `creature_onkill_reputation` SET `RewOnKillRepValue1` = 15 WHERE `creature_id` IN (36619,36724,36725,36791,36805,36807,36808,36811,36880,36957,36960,36968,36982,37011,37012,37022,37029,37030,37031,37032,37033,37034,37035,37117,37125,37127,37132,37133,37134,37146,37149,37228,37229,37232,37501,37502,37531,37532,37546,37571,37595,37662,37663,37664,37665,37666,37695,37782,37886,37890,37919,37934,37949,38125,38159,38184,38369,38472,38485,38508,38711,38712);
diff --git a/sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql b/sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql
index c089209c16f..fdf97fda464 100644
--- a/sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_01_06_01_world_creature_template.sql
@@ -1,2 +1,2 @@
--- spell interrupt is loaded from DBC so can be removed from mechanic_immune_mask
+-- spell interrupt is loaded from DBC so can be removed from mechanic_immune_mask
UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask` &~33554432;
diff --git a/sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql
index 9e6dddfb949..ada306fc43e 100644
--- a/sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2012_01_06_02_world_achievement_criteria_data.sql
@@ -1,5 +1,5 @@
DELETE FROM `achievement_criteria_data` WHERE criteria_id IN (5220, 5215, 5218, 5221, 5216, 5219, 5213, 5018, 5217, 5214, 5233, 5235, 5232, 5234, 5238, 5236, 5229, 5237, 5230, 5231);
-INSERT INTO `achievement_criteria_data` VALUES
+INSERT INTO `achievement_criteria_data` VALUES
-- Classes
(5220,21, 1,0,''), -- Realm First! Level 80 Warrior
(5215,21, 2,0,''), -- Realm First! Level 80 Paladin
diff --git a/sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql b/sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql
index e1d6cd94525..06aa7ab5687 100644
--- a/sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/2012_01_06_03_world_item_loot_template.sql
@@ -1,7 +1,7 @@
-- Fix Decoy! (8606) quest items drop chance from Narain's Special Kit (21042)
SET @Kit := 21042;
DELETE FROM `item_loot_template` WHERE `entry`= @Kit;
-INSERT INTO `item_loot_template` VALUES
+INSERT INTO `item_loot_template` VALUES
(@Kit, 21037, 100, 1, 0, 1, 1), -- Crude Map
(@Kit, 21039, 100, 1, 0, 1, 1), -- Narain's Turban
(@Kit, 21040, 100, 1, 0, 1, 1), -- Narain's Robe
diff --git a/sql/old/3.3.5a/2012_01_06_07_world_sai.sql b/sql/old/3.3.5a/2012_01_06_07_world_sai.sql
index 5d322367250..c78199b615a 100644
--- a/sql/old/3.3.5a/2012_01_06_07_world_sai.sql
+++ b/sql/old/3.3.5a/2012_01_06_07_world_sai.sql
@@ -1,4 +1,4 @@
--- Fix Quest 11795, 11887 'Emergency Protocol: Section 8.2, Paragraph C', 'Emergency Supplies'
+-- Fix Quest 11795, 11887 'Emergency Protocol: Section 8.2, Paragraph C', 'Emergency Supplies'
SET @NPC :=25841; -- Fizzcrank Recon Pilot
SET @Gossip :=21248;
diff --git a/sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql b/sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql
index fdbdfc5a689..4e12b66153e 100644
--- a/sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_01_07_03_world_creature_template.sql
@@ -1,5 +1,5 @@
-- Set standard immunities to The Nexus bosses.
-UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|1|2|4|8|16|32|64|256|512|1024|2048|4096|8192|65536|131072|262144|524288|4194304|8388608|67108864|536870912 WHERE `entry` IN
+UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|1|2|4|8|16|32|64|256|512|1024|2048|4096|8192|65536|131072|262144|524288|4194304|8388608|67108864|536870912 WHERE `entry` IN
(26731,30510, -- Grand Magus Telestra
26763,30529, -- Anomalus
26794,30532, -- Ormorok the Tree-Shaper
diff --git a/sql/old/3.3.5a/2012_01_08_01_world_sai.sql b/sql/old/3.3.5a/2012_01_08_01_world_sai.sql
index fcdc21662c0..a132a07e128 100644
--- a/sql/old/3.3.5a/2012_01_08_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_01_08_01_world_sai.sql
@@ -2,19 +2,19 @@
SET @ENTRY := 17832;
SET @GOSSIPID := 7486;
SET @TEXTID := 9070;
--- Creature Gossip_menu_id Update from sniff
-UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIPID WHERE `entry`=@ENTRY;
+-- Creature Gossip_menu_id Update from sniff
+UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIPID WHERE `entry`=@ENTRY;
-- Gossip Menu insert from sniff
-DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIPID AND `text_id`=@TEXTID;
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIPID AND `text_id`=@TEXTID;
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (@GOSSIPID,@TEXTID);
-- Creature Gossip_menu_option Update from sniff
DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (@GOSSIPID) AND `id` IN (0);
-INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
(@GOSSIPID,0,0, 'Take Blood Knight Insignia',1,1,0,0,0,0, '');
-- Gossip option Conditions
-DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIPID;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
-(15,@GOSSIPID,0,0,9,9692,0,0,0,'','Show gossip option if player has quest 9692 but not complete'),
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIPID;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,@GOSSIPID,0,0,9,9692,0,0,0,'','Show gossip option if player has quest 9692 but not complete'),
(15,@GOSSIPID,0,0,26,24226,1,0,0,'','Show gossip option if player does not have item 24226');
-- SAI for Blood Knight Dawnstar
UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=@ENTRY;
diff --git a/sql/old/3.3.5a/2012_01_08_16_world_misc.sql b/sql/old/3.3.5a/2012_01_08_16_world_misc.sql
index 63cd81ff869..7ac496f7edb 100644
--- a/sql/old/3.3.5a/2012_01_08_16_world_misc.sql
+++ b/sql/old/3.3.5a/2012_01_08_16_world_misc.sql
@@ -54,7 +54,7 @@ WHERE `entry` IN (29281, 30809, 26668, 30810);
-- Apply Image of Arthas Visual Effect
DELETE FROM `creature_template_addon` WHERE `entry`=29280;
-INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
(29280, 0, 0, 0, 1, 0, '54134');
-- Flame Brazier triggers deletion (will spawn them after activating event 17841 called by spell Call Flames 48258)
@@ -64,7 +64,7 @@ DELETE FROM `creature_addon` WHERE `guid` IN (126121, 126122);
/* Spells */
DELETE FROM `spell_target_position` WHERE `id` IN (48267,48276, 48271, 48274, 48275);
-INSERT INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`) VALUES
+INSERT INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`) VALUES
(48267, 575, 296.632, -346.075, 90.5474, 4.60767), -- Svala Ritual - Player teleport position
(48276, 575, 296.651, -346.293, 108.5474, 1.58), -- Svala Ritual - Svala teleport position
(48271, 575, 296.42, -355.01, 90.94, 1.58), -- Summon Ritual Channeler positions
@@ -83,7 +83,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry
-- The Incredible Hulk achievement 2043
DELETE FROM `disables` WHERE `sourceType`=4 AND `entry`=7322;
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7322 AND `type`=11;
-INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
+INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
(7322, 11, 0, 0, 'achievement_incredible_hulk');
/* AI */
@@ -93,7 +93,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27273; -- Flame
-- Add Send Script Event (17841) summon 3 triggers
DELETE FROM `event_scripts` WHERE `id`=17841;
-INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES
+INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES
(17841, 0, 10, 27273, 10000, 0, 285.6, -357.5, 91.0833, 5.75959),
(17841, 3, 10, 27273, 10000, 0, 307, -357.5, 91.0833, 6.02139),
(17841, 6, 10, 27273, 10000, 0, 285.6, -357.5, 91.0833, 5.75959);
diff --git a/sql/old/3.3.5a/2012_01_13_00_world_creature.sql b/sql/old/3.3.5a/2012_01_13_00_world_creature.sql
index bb20ec25863..dfe531dcbc6 100644
--- a/sql/old/3.3.5a/2012_01_13_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_01_13_00_world_creature.sql
@@ -1,7 +1,7 @@
-- Add missing Terokkar Triggers to db
SET @GUID :=40253;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+12;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID+0,23102,530,1,1,0,0,-2414.89038,4436.77,163.188354,0.209439516,120,0,0,1,0,0),
(@GUID+1,23102,530,1,1,0,0,-2414.979,4458.585,165.8086,2.80998015,120,0,0,1,0,0),
(@GUID+2,23102,530,1,1,0,0,-2418.69775,4446.772,165.705322,2.18166161,120,0,0,1,0,0),
@@ -20,5 +20,5 @@ UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry`=231
-- Missing Go
SET @GUID :=226;
DELETE FROM `gameobject` WHERE `guid`=@GUID;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(@GUID,185863,530,1,1,-2466.60474,4700.11963,155.7146,1.81514192,0,0,0,0,120,0,1);
diff --git a/sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql b/sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql
index 968e169ecab..5bbb77fe425 100644
--- a/sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/2012_01_13_01_world_gossip_menu.sql
@@ -5,14 +5,14 @@ INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (126,623);
DELETE FROM `gossip_menu` WHERE `entry`=125 AND `text_id`=624;
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (125,624);
DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (126,125);
-INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
(126,0,0, "You''re Astor Hadren, right?",1,1,125),
(125,0,0, "You''ve got something I need, Astor. And I''ll be taking it now.",1,1,0);
-- SAI for npc 6497 Astor Hadren
DELETE FROM `smart_scripts` WHERE `entryorguid`=6497;
-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
+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
(6497,0,0,0,62,0,100,0,125,0,0,0,2,21,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Astor Hadren - Make Hostile on Gossip Select');
-- Gossip option condition
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=126;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`Comment`) VALUES
(15,126,0,0,9,14420, 'Show Gossip Option If quest The Deathstalkers(new) is Incomplete');
diff --git a/sql/old/3.3.5a/2012_01_13_02_world_sai.sql b/sql/old/3.3.5a/2012_01_13_02_world_sai.sql
index 1a11714c5c7..7d90c649bdb 100644
--- a/sql/old/3.3.5a/2012_01_13_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_01_13_02_world_sai.sql
@@ -8,7 +8,7 @@ SET @SPELL := 47978; -- Open Dun Argol Cage
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9;
-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
+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
(@ENTRY,0,0,0,8,0,100,0,@SPELL,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Gann - On Spellhit - Run script'),
(@ENTRY*100,9,0,0,0,0,100,0,1000,1000,1000,1000,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Gann - Script - set run'),
(@ENTRY*100,9,1,0,0,0,100,0,1000,1000,1000,1000,69,0,0,0,0,0,0,1,0,0,0,3579.263,-5125.724,167.1185,0,'Prospector Gann - Script - Moveto'),
@@ -22,7 +22,7 @@ SET @SPELL := 47978; -- Open Dun Argol Cage
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9;
-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
+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
(@ENTRY,0,0,0,8,0,100,0,@SPELL,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Torgan - On Spellhit - Run script'),
(@ENTRY*100,9,0,0,0,0,100,0,1000,1000,1000,1000,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Torgan - Script - set run'),
(@ENTRY*100,9,1,0,0,0,100,0,1000,1000,1000,1000,69,0,0,0,0,0,0,1,0,0,0,3467.921,-5114.096,236.9127,0,'Prospector Torgan - Script - Moveto'),
@@ -36,7 +36,7 @@ SET @SPELL := 47978; -- Open Dun Argol Cage
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9;
-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
+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
(@ENTRY,0,0,0,8,0,100,0,@SPELL,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Varana - On Spellhit - Run script'),
(@ENTRY*100,9,0,0,0,0,100,0,1000,1000,1000,1000,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Prospector Varana - Script - set run'),
(@ENTRY*100,9,1,0,0,0,100,0,1000,1000,1000,1000,69,0,0,0,0,0,0,1,0,0,0,3379.451,-5100.344,326.5531,0,'Prospector Varana - Script - Moveto'),
diff --git a/sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql b/sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql
index 98dda69bf1a..248f1adbfa4 100644
--- a/sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql
+++ b/sql/old/3.3.5a/2012_01_13_03_world_gossip_menu.sql
@@ -44,7 +44,7 @@ SET @ENTRY := 23309; -- NPC entry
SET @SPELL := 41121; -- Giving a Hand
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,62,0,100,0,8697,0,0,0,11,@SPELL,0,0,0,0,0,7,0,0,0,0,0,0,0,'Murkblood Overseer - On gossip Option select - cast spell');
-- Add item 32726 "Murkblood Escape Plans" to creature loot by Warpten
DELETE FROM `creature_loot_template` WHERE `item`=32726;
diff --git a/sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql b/sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql
index bbe9994e897..308ec2a3691 100644
--- a/sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/2012_01_15_03_world_item_loot_template.sql
@@ -36,10 +36,10 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@RefC,20543,0,1,1,1,1), -- Scroll: Scepter of Beckoning
(@RefC,20544,0,1,1,1,1), -- Scroll: Scepter of Beckoning
-- Decoded Twilight Texts:
-(@RefD,20676,0,1,1,1,3),
-(@RefD,20541,0,1,1,1,3),
-(@RefD,20545,0,1,1,1,3),
-(@RefD,20679,0,1,1,1,3),
-(@RefD,20677,0,1,1,1,3),
+(@RefD,20676,0,1,1,1,3),
+(@RefD,20541,0,1,1,1,3),
+(@RefD,20545,0,1,1,1,3),
+(@RefD,20679,0,1,1,1,3),
+(@RefD,20677,0,1,1,1,3),
(@RefD,20678,0,1,1,1,3),
(@RefD,20552,0,1,1,1,3); \ No newline at end of file
diff --git a/sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql b/sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql
index 4a5b66df7b2..c8ccaaf6d9b 100644
--- a/sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql
+++ b/sql/old/3.3.5a/2012_01_16_00_world_stored_procedure.sql
@@ -1,4 +1,4 @@
--- sp_dev_reguid procedure
+-- sp_dev_reguid procedure
/*!50003 DROP PROCEDURE IF EXISTS `sp_dev_reguid` */;
DELIMITER ;;
/*!50003 CREATE*/
@@ -158,4 +158,4 @@ BEGIN
ALTER TABLE `smart_scripts` ADD PRIMARY KEY (`entryorguid`,`source_type`,`id`,`link`);
END */;;
- \ No newline at end of file
+ \ No newline at end of file
diff --git a/sql/old/3.3.5a/2012_01_19_08_world_sai.sql b/sql/old/3.3.5a/2012_01_19_08_world_sai.sql
index 5b26998a607..1bd79302354 100644
--- a/sql/old/3.3.5a/2012_01_19_08_world_sai.sql
+++ b/sql/old/3.3.5a/2012_01_19_08_world_sai.sql
@@ -16,7 +16,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
-- Add missing gossip
SET @GOSSIP := 9674;
DELETE FROM `gossip_menu_option` WHERE `menu_id`=9674 AND `id`=0;
-INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
(@GOSSIP,0,0,"You look safe enough... let's do this.",1,1,0,0,0,0, '');
-- [SAI] On gossip select - mount and waypoint
SET @ENTRY := 28298;
diff --git a/sql/old/3.3.5a/2012_01_21_00_world_creature.sql b/sql/old/3.3.5a/2012_01_21_00_world_creature.sql
index b4a015380c3..00df55bca88 100644
--- a/sql/old/3.3.5a/2012_01_21_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_01_21_00_world_creature.sql
@@ -1,7 +1,7 @@
-- Spawns from sniff
-SET @GUID := 40279; -- set value
+SET @GUID := 40279; -- set value
DELETE FROM `creature` WHERE `id`=27791;
-INSERT IGNORE INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`MovementType`) VALUES
+INSERT IGNORE INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`MovementType`) VALUES
(@GUID+0,27791,571,1,1,0,0,3653.64233,-1204.21200,102.420319,4.04458666,120,0,0),
(@GUID+1,27791,571,1,1,0,0,3673.77515,-1213.68188,102.420319,4.08126450,120,0,0),
(@GUID+2,27791,571,1,1,0,0,3674.53735,-1175.28369,102.420288,1.78801400,120,0,0),
diff --git a/sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql
index 4d1f4536455..f647f2c999e 100644
--- a/sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql
+++ b/sql/old/3.3.5a/2012_01_23_03_world_achievement_criteria_data.sql
@@ -1,3 +1,3 @@
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7231;
-INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `ScriptName`) VALUES
+INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `ScriptName`) VALUES
(7231,11,'achievement_on_the_rocks');
diff --git a/sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql b/sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql
index f505a86b16c..fe1d995ac9c 100644
--- a/sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql
+++ b/sql/old/3.3.5a/2012_01_23_04_world_creature_text.sql
@@ -1,7 +1,7 @@
DELETE FROM `script_texts` WHERE `entry` IN (-1574000,-1574001,-1574002,-1574003,-1574004);
DELETE FROM `creature_text` WHERE `entry`=23953;
-INSERT INTO `creature_text` (`entry`, `groupid`, `text`, `sound`, `emote`, `type`) VALUES
+INSERT INTO `creature_text` (`entry`, `groupid`, `text`, `sound`, `emote`, `type`) VALUES
(23953,1,'Your blood is mine!',13221,7,14),
(23953,2,'Aranal, ledel! Their fate shall be yours!',13224,0,14),
(23953,3,'Not so fast.',13222,0,14),
diff --git a/sql/old/3.3.5a/2012_01_24_00_world_misc.sql b/sql/old/3.3.5a/2012_01_24_00_world_misc.sql
index 8703cd7aa42..e93f33dfec4 100644
--- a/sql/old/3.3.5a/2012_01_24_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_01_24_00_world_misc.sql
@@ -13,6 +13,6 @@ SET @NPC_PRIEST_GRIMMIN = 36102;
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` IN(@NPC_PRIESTESS_ALORAH,@NPC_PRIEST_GRIMMIN);
DELETE FROM `smart_scripts` WHERE (`entryorguid` IN(@NPC_PRIESTESS_ALORAH,@NPC_PRIEST_GRIMMIN) AND `source_type`=0);
-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
+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
(@NPC_PRIESTESS_ALORAH,0,0,0,1,0,100,1,100,100,0,0,11,@SPELL_CHAIN,0,0,0,0,0,19,@NPC_EYDIS_DARKBANE,0,0,0,0,0,0,'Priestess Alorah - Cast chain on Eydis Darkbane'),
(@NPC_PRIEST_GRIMMIN,0,0,0,1,0,100,1,100,100,0,0,11,@SPELL_CHAIN,0,0,0,0,0,19,@NPC_FJOLA_LIGHTBANE,0,0,0,0,0,0,'Priestess Grimmin - Cast chain on Fjola Lightbane');
diff --git a/sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql b/sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql
index 1dc2749807e..b30768ee69a 100644
--- a/sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql
+++ b/sql/old/3.3.5a/2012_01_27_00_world_player_factionchange_items.sql
@@ -1,4 +1,4 @@
-- DB/Faction change: Add some missing items
DELETE FROM `player_factionchange_items` WHERE `alliance_id` IN (47711) AND horde_id IN (47870);
-INSERT INTO `player_factionchange_items` (`race_A`,`alliance_id`,`commentA`,`race_H`,`horde_id`,`commentH`) VALUES
+INSERT INTO `player_factionchange_items` (`race_A`,`alliance_id`,`commentA`,`race_H`,`horde_id`,`commentH`) VALUES
(0,47711, 'Girdle of the Nether Champion',0,47870, 'Belt of the Nether Championt');
diff --git a/sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql b/sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql
index 3ef39fe43d2..93c61b70153 100644
--- a/sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/2012_01_30_04_world_gameobject_loot_template.sql
@@ -5,7 +5,7 @@ INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lo
(28088,@ITEM,-68,1,0,1,1), -- Deathbringer Cache 25 Heroic
(28082,@ITEM,-38,1,0,1,1), -- Cache of the Dreamwalker 25 Normal
(28096,@ITEM,-68,1,0,1,1); -- Cache of the Dreamwalker 25 Heroic
--- only drop if someone is on the quest (negative ChanceOrQuestChance)
+-- only drop if someone is on the quest (negative ChanceOrQuestChance)
UPDATE `creature_loot_template` SET `ChanceOrQuestChance`= -(ABS(`ChanceOrQuestChance`)) WHERE `item`=50274;
UPDATE `gameobject_loot_template` SET `ChanceOrQuestChance`= -(ABS(`ChanceOrQuestChance`)) WHERE `item`=50274;
diff --git a/sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql b/sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql
index 4223835bee3..f5b141d46a6 100644
--- a/sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql
+++ b/sql/old/3.3.5a/2012_02_02_00_world_item_loot_template.sql
@@ -49,7 +49,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
-- Assign loot to the special bags
DELETE FROM `item_loot_template` WHERE `entry` IN (54516,37586);
INSERT INTO `item_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
--- Loot Filled Pumpkin:
+-- Loot Filled Pumpkin:
(54516,33226,100,1,0,2,3), -- Tricky Treat
(54516,1,100,1,0,-@Ref,1), -- Referenced Specials
(54516,33808,2,1,0,1,1), -- The Horseman's Helm
diff --git a/sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql b/sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql
index d824c35da51..d070a1083bc 100644
--- a/sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql
+++ b/sql/old/3.3.5a/2012_02_04_00_world_gameobject_template.sql
@@ -1,2 +1,2 @@
-- set correct type from sniff
-UPDATE `gameobject_template` SET `type`=33 WHERE `entry`=166872;
+UPDATE `gameobject_template` SET `type`=33 WHERE `entry`=166872;
diff --git a/sql/old/3.3.5a/2012_02_05_00_world_misc.sql b/sql/old/3.3.5a/2012_02_05_00_world_misc.sql
index c5c4cfc43a6..3cff98dc41f 100644
--- a/sql/old/3.3.5a/2012_02_05_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_02_05_00_world_misc.sql
@@ -36,7 +36,7 @@ SET @SPELL_CREDIT_VALIS := 64115;
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` IN (@NPC_JAERAN_LOCKWOOD,@NPC_RUGAN_STEELBELLY,@NPC_VALIS_WINDCHASER);
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@NPC_JAERAN_LOCKWOOD,@NPC_RUGAN_STEELBELLY,@NPC_VALIS_WINDCHASER) AND `source_type`=0;
-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
+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
(@NPC_JAERAN_LOCKWOOD,0,0,0,64,0,100,0,0,0,0,0,98,@GOSSIP_MENU_JERAN_MOUNTED,@GOSSIP_TEXT_JERAN_MOUNTED,0,0,0,0,7,0,0,0,0,0,0,0,'Jeran Lockwood - Send different gossip when mounted (Requires conditions)'),
(@NPC_JAERAN_LOCKWOOD,0,1,3,62,0,100,0,@GOSSIP_MENU_JERAN_MOUNTED,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Jeran Lockwood - Send text when option clicked'),
(@NPC_JAERAN_LOCKWOOD,0,2,3,62,0,100,0,@GOSSIP_MENU_JERAN_EXPLANATION,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Jeran Lockwood - Send text when option clicked'),
diff --git a/sql/old/3.3.5a/2012_02_05_02_world_creature.sql b/sql/old/3.3.5a/2012_02_05_02_world_creature.sql
index 7426b7ef8b0..84fe2cf0a31 100644
--- a/sql/old/3.3.5a/2012_02_05_02_world_creature.sql
+++ b/sql/old/3.3.5a/2012_02_05_02_world_creature.sql
@@ -1,7 +1,7 @@
--- add spawn for Saragosa
-SET @GUID := 40270;
+-- add spawn for Saragosa
+SET @GUID := 40270;
DELETE FROM `creature` WHERE `id`=26231;
-INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+INSERT INTO creature (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(@GUID,26231,571,1,1,0,0,3981.03687,7148.006,666.1618,1.037019,120,0,0,1,0,0,0,0,0);
-- Pathing for Saragosa Entry: 26231
diff --git a/sql/old/3.3.5a/2012_02_08_00_world_misc.sql b/sql/old/3.3.5a/2012_02_08_00_world_misc.sql
index 40ce5629214..2ea3e0fab80 100644
--- a/sql/old/3.3.5a/2012_02_08_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_02_08_00_world_misc.sql
@@ -11,7 +11,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry
(13, 0, 45114, 0, 0, 18, 1, 0, 0, 0, '', 'Holiday - Valentine - Romantic Picnic Meal Particle - Target Players');
DELETE FROM `smart_scripts` WHERE `entryorguid`=187267 AND `source_type`=1;
-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
+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
(187267, 1, 0, 0, 60, 0, 100, 0, 3*60*1000, 3*60*1000, 0, 0, 99, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Picnic Basket - Despawn after 3 minutes');
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (1291,5787,4071);
diff --git a/sql/old/3.3.5a/2012_02_08_11_world_pool.sql b/sql/old/3.3.5a/2012_02_08_11_world_pool.sql
index f49f5afec6a..ccae82e9689 100644
--- a/sql/old/3.3.5a/2012_02_08_11_world_pool.sql
+++ b/sql/old/3.3.5a/2012_02_08_11_world_pool.sql
@@ -1,4 +1,4 @@
--- Toxic Tolerance questchain for a horde specific mount requires doing
+-- Toxic Tolerance questchain for a horde specific mount requires doing
-- daily quests. However currently all of those are acceptable daily, though
-- only one (random) should be.
-- Source: http://www.wowhead.com/quest=13917/gorishi-grub#comments:id=829822
diff --git a/sql/old/3.3.5a/2012_02_08_14_world_sai.sql b/sql/old/3.3.5a/2012_02_08_14_world_sai.sql
index 60e96a52663..4a06149b5a6 100644
--- a/sql/old/3.3.5a/2012_02_08_14_world_sai.sql
+++ b/sql/old/3.3.5a/2012_02_08_14_world_sai.sql
@@ -8,6 +8,6 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceEntry`,`ConditionType
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
UPDATE creature_template SET AIName='SmartAI' WHERE entry=@ENTRY;
-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
+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
(@ENTRY,0,0,1,8,0,100,0,@SPELL1,0,0,0,33,@ENTRY,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,"Chemical Wagon - Spell Hit - Credit"),
(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,11,@SPELL2,2,0,0,0,0,0,0,0,0,0.0,0.0,0.0,0.0,"Chemical Wagon - Spell Hit - Cast Cosmetic - Low Poly Fire (with Sound)");
diff --git a/sql/old/3.3.5a/2012_02_08_16_world_sai.sql b/sql/old/3.3.5a/2012_02_08_16_world_sai.sql
index 06fbb233aeb..0f739ee3fab 100644
--- a/sql/old/3.3.5a/2012_02_08_16_world_sai.sql
+++ b/sql/old/3.3.5a/2012_02_08_16_world_sai.sql
@@ -2,7 +2,7 @@
SET @ENTRY := 33687;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
UPDATE creature_template SET AIName="SmartAI" WHERE entry=@ENTRY LIMIT 1;
-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
+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
(@ENTRY,0,0,0,0,0,100,0,10000,11000,20000,23000,11,65248,0,0,0,0,0,2,0,0,0,0.0,0.0,0.0,0.0,"Chillmaw - Combat - Cast Frost Breath"),
(@ENTRY,0,1,0,2,0,100,1,0,35,0,0,11,65260,0,0,0,0,0,2,0,0,0,0.0,0.0,0.0,0.0,"Chillmaw - @35% health - Cast Wing Buffet"),
(@ENTRY,0,2,0,2,0,100,1,0,25,0,0,11,60603,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,"Chillmaw - @25% health - Cast Eject Passenger 1"),
diff --git a/sql/old/3.3.5a/2012_02_11_06_world_sai.sql b/sql/old/3.3.5a/2012_02_11_06_world_sai.sql
index 5a021bdfb3d..7b1d09e9580 100644
--- a/sql/old/3.3.5a/2012_02_11_06_world_sai.sql
+++ b/sql/old/3.3.5a/2012_02_11_06_world_sai.sql
@@ -3,7 +3,7 @@ SET @NPC = 3301;
UPDATE `quest_end_scripts` SET `datalong2`=10000 WHERE `id`=231;
-- Add text for Morgan Ladimore
DELETE FROM `creature_text` WHERE `entry`=@NPC;
-INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
(@NPC, 1, 0, 'My sword Archeus served me well in life, but as at last my spirit may pass from the unhappy existence, I need it no longer.', 12, 0, 100, 0, 0, 0, 'Morgan Ladimore - A Daughter''s Love'),
(@NPC, 2, 0, 'I shall cling to the love of my daugter and hope that I will find forgiveness under the Light for my sins.', 12, 0, 100, 0, 0, 0, 'Morgan Ladimore - A Daughter''s Love');
-- Add SAI to Morgan Ladimore for on spawn
diff --git a/sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql b/sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql
index 3c49b752ee2..e3f67fac42b 100644
--- a/sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql
+++ b/sql/old/3.3.5a/2012_02_11_09_world_sai_gossip.sql
@@ -46,7 +46,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
-- SmartAIs
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry` IN (23729,26471,26673,27158,29155,29158,29159,29160,29161,29162,29169);
-DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26853,26876) AND `source_type`=0 AND `id` IN (3,4); -- these npcs already had a SmartAI assigned so deleting the new ids only
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26853,26876) AND `source_type`=0 AND `id` IN (3,4); -- these npcs already had a SmartAI assigned so deleting the new ids only
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23729,26471,26673,26924,27158,29155,29158,29159,29160,29161,29162,29169) AND `source_type`=0;
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
(23729,0,0,1,62,0,100,0,9780,0,0,0,11,30719,0,0,0,0,0,7,0,0,0,0,0,0,0,'Baron Ulrik von Stromhearth - On gossip select - Spellcast'),
diff --git a/sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql b/sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql
index 1c3d45dc490..bcd57602679 100644
--- a/sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql
+++ b/sql/old/3.3.5a/2012_02_15_01_world_areatrigger_tavern.sql
@@ -1,5 +1,5 @@
DELETE FROM `areatrigger_tavern` WHERE `id` IN (98, 4109, 4300, 4378, 4380, 4498, 4608, 5314, 5315, 5316, 5317);
-INSERT INTO `areatrigger_tavern` (`id`, `name`) VALUES
+INSERT INTO `areatrigger_tavern` (`id`, `name`) VALUES
(98, 'Nesingwary''s Expedition'),
(4109, 'Tranquillen - Upper level Inn'),
(4300, 'Cenarion Refugee - Outside Inn'),
diff --git a/sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql b/sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql
index 833d36b246c..aabde0a3085 100644
--- a/sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_02_15_03_world_quest_template.sql
@@ -1,4 +1,4 @@
--- Love is in the Air
+-- Love is in the Air
-- Quests Missing Text ... By Albis
UPDATE `quest_template` SET `RequestItemsText` ='The cologne isn''t going to give itself out, you know.$B$BGet spraying!' , `OfferRewardText` ='Nice work, $N! People will be buying Crown colognes by the crate-load now that they''ve had a chance to try them.$B$BHere''s a little something for helping us out.' WHERE `Id` = 24635;
diff --git a/sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql b/sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql
index e7ffe54e922..046583ef0e2 100644
--- a/sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_02_15_07_02_world_misc.sql
@@ -23,7 +23,7 @@ INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES
-- Loot: Crown Chemical Co. Supplies
DELETE FROM `gameobject_loot_template` WHERE `entry`=27766;
-INSERT INTO `gameobject_loot_template` VALUES
+INSERT INTO `gameobject_loot_template` VALUES
(27766, 49867, -100, 1, 0, 1, 1); -- Crown Chemical Co. Supplies
-- GO spawns
@@ -74,7 +74,7 @@ INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`
(@OGUID+39, 201778, 1, 1, 1, 1380.96, -4429.36, 30.6772, 4.6503, 0, 0, 0.728713, -0.68482, 300, 0, 1),
(@OGUID+40, 201778, 1, 1, 1, 1383.08, -4429.42, 30.651, 4.53642, 0, 0, 0.766505, -0.642238, 300, 0, 1),
(@OGUID+41, 201778, 1, 1, 1, 1378.64, -4428.42, 30.6846, 5.23543, 0, 0, 0.500243, -0.865885, 300, 0, 1),
-(@OGUID+42, 201778, 1, 1, 1, 1377.05, -4429.39, 30.6467, 5.31397, 0, 0, 0.465863, -0.884857, 300, 0, 1);
+(@OGUID+42, 201778, 1, 1, 1, 1377.05, -4429.39, 30.6467, 5.31397, 0, 0, 0.465863, -0.884857, 300, 0, 1);
DELETE FROM `game_event_gameobject` WHERE `eventEntry`=@EVENT AND `guid` BETWEEN @OGUID AND @OGUID+42;
INSERT INTO `game_event_gameobject` (`guid`, `eventEntry`) VALUES
diff --git a/sql/old/3.3.5a/2012_02_15_08_world_sai.sql b/sql/old/3.3.5a/2012_02_15_08_world_sai.sql
index ef49ff484f3..3af2c108251 100644
--- a/sql/old/3.3.5a/2012_02_15_08_world_sai.sql
+++ b/sql/old/3.3.5a/2012_02_15_08_world_sai.sql
@@ -1,7 +1,7 @@
SET @Pinata := 34632;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@Pinata AND `source_type`=0;
-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
+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
(@Pinata, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 65788, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ogre Pinata - On death cast Pile of Candy'),
(@Pinata, 0, 1, 0, 25, 0, 100, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ogre Pinata - On reset set react state passive');
diff --git a/sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql b/sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql
index 4811e5d66fe..9970d12fa72 100644
--- a/sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/2012_02_15_09_world_spell_proc_event.sql
@@ -1,6 +1,6 @@
-- Corrected proc of Misery
DELETE FROM `spell_proc_event` WHERE `entry` IN (33191, 33192, 33193);
-INSERT INTO `spell_proc_event` VALUES
+INSERT INTO `spell_proc_event` VALUES
(33191, 0x00, 0x06, 0x00008000, 0x00000400, 0x00000040, 0x00000000, 0x00000000, 0, 0, 0),
(33192, 0x00, 0x06, 0x00008000, 0x00000400, 0x00000040, 0x00000000, 0x00000000, 0, 0, 0),
(33193, 0x00, 0x06, 0x00008000, 0x00000400, 0x00000040, 0x00000000, 0x00000000, 0, 0, 0);
diff --git a/sql/old/3.3.5a/2012_02_16_00_world_conditions.sql b/sql/old/3.3.5a/2012_02_16_00_world_conditions.sql
index 5bef38fc485..4634515f2cd 100644
--- a/sql/old/3.3.5a/2012_02_16_00_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_02_16_00_world_conditions.sql
@@ -1,7 +1,7 @@
CREATE TABLE `temp_convert_spells`
(
- `id` INT(11),
- PRIMARY KEY (`id`)
+ `id` INT(11),
+ PRIMARY KEY (`id`)
);
-- spells with EffectImplicitTarget In (6,21, 25) + spells having Targets & 1115534
@@ -12751,26 +12751,26 @@ INSERT INTO `temp_convert_spells` VALUES
(79397);
CREATE TABLE `temp_cond_vals`
(
- `spellId` INT(11),
- `elseGroup` INT(11) AUTO_INCREMENT,
- `entry` INT(11),
- `dead` INT(11),
- `errorTextId` INT(11),
- `comment` VARCHAR(255),
- PRIMARY KEY (`spellId`, `elseGroup`)
+ `spellId` INT(11),
+ `elseGroup` INT(11) AUTO_INCREMENT,
+ `entry` INT(11),
+ `dead` INT(11),
+ `errorTextId` INT(11),
+ `comment` VARCHAR(255),
+ PRIMARY KEY (`spellId`, `elseGroup`)
) ENGINE=MYISAM;
CREATE TABLE `temp_item_spell`
(
- `itemId` INT(11),
- `spellId` INT(11),
- PRIMARY KEY (`itemId`, `spellId`)
+ `itemId` INT(11),
+ `spellId` INT(11),
+ PRIMARY KEY (`itemId`, `spellId`)
);
CREATE TABLE `temp_item`
(
- `itemId` INT(11),
- PRIMARY KEY (`itemId`)
+ `itemId` INT(11),
+ PRIMARY KEY (`itemId`)
);
INSERT INTO `temp_item` SELECT DISTINCT `SourceEntry` FROM `conditions` WHERE `SourceTypeOrReferenceId` = 18;
diff --git a/sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql b/sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql
index 1cff86f5d51..0b65ddb2d1e 100644
--- a/sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql
+++ b/sql/old/3.3.5a/2012_02_17_00_world_waypoints.sql
@@ -4,7 +4,7 @@ SET @PATH :=@NPC*10;
UPDATE `creature` SET `position_x`=203.191,`position_y`=2850.286,`position_z`=160.4257,`spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`) VALUES (@NPC,@PATH,1);
-DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,197.9876,2842.495,160.4257,0,0,0,100,0),
(@PATH,2,212.5493,2807.971,174.2035,0,0,0,100,0),
@@ -20,7 +20,7 @@ SET @PATH :=@NPC*10;
UPDATE `creature` SET `position_x`=210.6249,`position_y`=2809.285,`position_z`=208.7277,`spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`) VALUES (@NPC,@PATH,1);
-DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,213.0469,2809.036,207.1722,0,0,0,100,0),
(@PATH,2,223.5349,2797.282,213.4777,0,0,0,100,0),
@@ -45,7 +45,7 @@ SET @PATH :=@NPC*10;
UPDATE `creature` SET `position_x`=236.1859,`position_y`=2813.747,`position_z`=200.9708,`spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`) VALUES (@NPC,@PATH,1);
-DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,241.7692,2815.284,200.8042,0,0,0,100,0),
(@PATH,2,255.8273,2833.317,201.443,0,0,0,100,0),
@@ -61,7 +61,7 @@ SET @PATH :=@NPC*10;
UPDATE `creature` SET `position_x`=245.9259,`position_y`=2829.09,`position_z`=177.804,`spawndist`=0,`MovementType`=2 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`) VALUES (@NPC,@PATH,1);
-DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,251.6207,2841.322,177.804,0,0,0,100,0),
(@PATH,2,241.4914,2859.113,169.6652,0,0,0,100,0),
diff --git a/sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql b/sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql
index 993fe3a2f38..dd2b991df7d 100644
--- a/sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_02_18_00_world_spell_script_names.sql
@@ -1,5 +1,5 @@
DELETE FROM `spell_script_names` WHERE `spell_id` in (-100,-12162,13567,17251,23019,23448,23453,25860,28089,29200,29858,30458,30507,31225,35745,37674,39090,39093,39096,42784,43723,44875,47170,49357,50243,51582,51961,52759,52845,53808,54171,54577,55004,64385,-1464,-5308,12809,23881,-1454,-50286,8171,52041,52046,52047,52048,52049,52050,52059,52060,52061,52031,52033,52034,52035,52036,58778,58779,58780,60103,-49998,-66188,-47541,52375,59134,-62900,49560,62324,31890);
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(-100,'spell_warr_charge'),
(-12162,'spell_warr_deep_wounds'),
(13567,'spell_gen_dummy_trigger'),
diff --git a/sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql b/sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql
index b343399d7f2..638ebdd7c18 100644
--- a/sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/2012_02_18_01_world_spell_dbc.sql
@@ -1,3 +1,3 @@
DELETE FROM `spell_dbc` WHERE `id`=31980;
-INSERT INTO `spell_dbc` (`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`AttributesEx6`,`AttributesEx7`,`Stances`,`StancesNot`,`Targets`,`CastingTimeIndex`,`AuraInterruptFlags`,`ProcFlags`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`RangeIndex`,`StackAmount`,`EquippedItemClass`,`EquippedItemSubClassMask`,`EquippedItemInventoryTypeMask`,`Effect1`,`Effect2`,`Effect3`,`EffectDieSides1`,`EffectDieSides2`,`EffectDieSides3`,`EffectRealPointsPerLevel1`,`EffectRealPointsPerLevel2`,`EffectRealPointsPerLevel3`,`EffectBasePoints1`,`EffectBasePoints2`,`EffectBasePoints3`,`EffectMechanic1`,`EffectMechanic2`,`EffectMechanic3`,`EffectImplicitTargetA1`,`EffectImplicitTargetA2`,`EffectImplicitTargetA3`,`EffectImplicitTargetB1`,`EffectImplicitTargetB2`,`EffectImplicitTargetB3`,`EffectRadiusIndex1`,`EffectRadiusIndex2`,`EffectRadiusIndex3`,`EffectApplyAuraName1`,`EffectApplyAuraName2`,`EffectApplyAuraName3`,`EffectAmplitude1`,`EffectAmplitude2`,`EffectAmplitude3`,`EffectMultipleValue1`,`EffectMultipleValue2`,`EffectMultipleValue3`,`EffectMiscValue1`,`EffectMiscValue2`,`EffectMiscValue3`,`EffectMiscValueB1`,`EffectMiscValueB2`,`EffectMiscValueB3`,`EffectTriggerSpell1`,`EffectTriggerSpell2`,`EffectTriggerSpell3`,`EffectSpellClassMaskA1`,`EffectSpellClassMaskA2`,`EffectSpellClassMaskA3`,`EffectSpellClassMaskB1`,`EffectSpellClassMaskB2`,`EffectSpellClassMaskB3`,`EffectSpellClassMaskC1`,`EffectSpellClassMaskC2`,`EffectSpellClassMaskC3`,`MaxTargetLevel`,`SpellFamilyName`,`SpellFamilyFlags1`,`SpellFamilyFlags2`,`SpellFamilyFlags3`,`MaxAffectedTargets`,`DmgClass`,`PreventionType`,`DmgMultiplier1`,`DmgMultiplier2`,`DmgMultiplier3`,`AreaGroupId`,`SchoolMask`,`Comment`) VALUES
+INSERT INTO `spell_dbc` (`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`AttributesEx6`,`AttributesEx7`,`Stances`,`StancesNot`,`Targets`,`CastingTimeIndex`,`AuraInterruptFlags`,`ProcFlags`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`RangeIndex`,`StackAmount`,`EquippedItemClass`,`EquippedItemSubClassMask`,`EquippedItemInventoryTypeMask`,`Effect1`,`Effect2`,`Effect3`,`EffectDieSides1`,`EffectDieSides2`,`EffectDieSides3`,`EffectRealPointsPerLevel1`,`EffectRealPointsPerLevel2`,`EffectRealPointsPerLevel3`,`EffectBasePoints1`,`EffectBasePoints2`,`EffectBasePoints3`,`EffectMechanic1`,`EffectMechanic2`,`EffectMechanic3`,`EffectImplicitTargetA1`,`EffectImplicitTargetA2`,`EffectImplicitTargetA3`,`EffectImplicitTargetB1`,`EffectImplicitTargetB2`,`EffectImplicitTargetB3`,`EffectRadiusIndex1`,`EffectRadiusIndex2`,`EffectRadiusIndex3`,`EffectApplyAuraName1`,`EffectApplyAuraName2`,`EffectApplyAuraName3`,`EffectAmplitude1`,`EffectAmplitude2`,`EffectAmplitude3`,`EffectMultipleValue1`,`EffectMultipleValue2`,`EffectMultipleValue3`,`EffectMiscValue1`,`EffectMiscValue2`,`EffectMiscValue3`,`EffectMiscValueB1`,`EffectMiscValueB2`,`EffectMiscValueB3`,`EffectTriggerSpell1`,`EffectTriggerSpell2`,`EffectTriggerSpell3`,`EffectSpellClassMaskA1`,`EffectSpellClassMaskA2`,`EffectSpellClassMaskA3`,`EffectSpellClassMaskB1`,`EffectSpellClassMaskB2`,`EffectSpellClassMaskB3`,`EffectSpellClassMaskC1`,`EffectSpellClassMaskC2`,`EffectSpellClassMaskC3`,`MaxTargetLevel`,`SpellFamilyName`,`SpellFamilyFlags1`,`SpellFamilyFlags2`,`SpellFamilyFlags3`,`MaxAffectedTargets`,`DmgClass`,`PreventionType`,`DmgMultiplier1`,`DmgMultiplier2`,`DmgMultiplier3`,`AreaGroupId`,`SchoolMask`,`Comment`) VALUES
(31980,0,0,328064,1024,4,268894208,0,0,0,0,0,0,0,1,0,0,101,0,0,14,14,0,13,0,-1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,15,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,4,0,0,0,0,1,0,0,0,1,"Righteous Defense Trigger Spell");
diff --git a/sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql b/sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql
index 8fa5bc55197..1aa54740f97 100644
--- a/sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_02_18_04_world_spell_script_names.sql
@@ -1,6 +1,6 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN (52059,52060,52061);
DELETE FROM `spell_script_names` WHERE `spell_id` IN (58759,58760,58761);
-INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(58759,'spell_sha_healing_stream_totem'),
(58760,'spell_sha_healing_stream_totem'),
(58761,'spell_sha_healing_stream_totem');
diff --git a/sql/old/3.3.5a/2012_02_18_06_world_gossip.sql b/sql/old/3.3.5a/2012_02_18_06_world_gossip.sql
index e3385ceb5b0..d2e9a8744db 100644
--- a/sql/old/3.3.5a/2012_02_18_06_world_gossip.sql
+++ b/sql/old/3.3.5a/2012_02_18_06_world_gossip.sql
@@ -11,7 +11,7 @@ UPDATE `creature_template` SET `gossip_menu_id`=7563 WHERE `entry`=18074;
UPDATE `creature_template` SET `gossip_menu_id`=7592 WHERE `entry`=18200;
UPDATE `creature_template` SET `gossip_menu_id`=7579 WHERE `entry`=18180;
UPDATE `creature_template` SET `gossip_menu_id`=7607 WHERE `entry`=18218;
-UPDATE `creature_template` SET `gossip_menu_id`=7704 WHERE `entry`=18482;
+UPDATE `creature_template` SET `gossip_menu_id`=7704 WHERE `entry`=18482;
UPDATE `creature_template` SET `gossip_menu_id`=8493, `npcflag`=`npcflag`|1 WHERE `entry`=22113;
DELETE FROM `gossip_menu` WHERE `entry`=7563 AND `text_id`=9181;
diff --git a/sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql b/sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql
index 3698c461358..3c9de3743f2 100644
--- a/sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql
+++ b/sql/old/3.3.5a/2012_02_19_03_world_warden_checks.sql
@@ -13,7 +13,7 @@ CREATE TABLE `warden_checks` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-INSERT INTO `warden_checks`(`id`,`type`,`data`,`str`,`address`,`length`,`result`,`comment`) VALUES
+INSERT INTO `warden_checks`(`id`,`type`,`data`,`str`,`address`,`length`,`result`,`comment`) VALUES
(1,178,'07F223143C69271AA2A851FECF6DC883A9D3A7DBA6FE26CC','',710730,23,'',NULL),
(2,191,'C7D18F99DBC446A4B36E78B9130B6FA2E365B3D2D4199DF5','',28940,17,'',NULL),
(3,191,'AA1A8559776F873F26954F15E49E6041EDC2C3766AD87A59','',21826,11,'',NULL),
diff --git a/sql/old/3.3.5a/2012_02_20_02_world_conditons.sql b/sql/old/3.3.5a/2012_02_20_02_world_conditons.sql
index f87a95fb1c9..7fc68fc9193 100644
--- a/sql/old/3.3.5a/2012_02_20_02_world_conditons.sql
+++ b/sql/old/3.3.5a/2012_02_20_02_world_conditons.sql
@@ -169,7 +169,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(18,40176,74905,0,9,0,25444,0,0,0,'Required quest active for spellclick');
-- Below is a procedure to dynamically convert custom content to conditions table.
--- However this procedure only works for MySQL server versions >= 5.6 due to
+-- However this procedure only works for MySQL server versions >= 5.6 due to
-- a bug / missing feature in older MySQL versions.
/*
@@ -199,7 +199,7 @@ BEGIN
VALUES (18,npcEntry,spellId,1,0,aura,0,0,'Required aura for spellclick');
SET counter = counter+1;
END WHILE;
-
+
SET counter = 0;
SET recordCount = 0;
SELECT COUNT(*) INTO recordCount FROM `npc_spellclick_spells` WHERE `aura_forbidden` !=0;
@@ -213,7 +213,7 @@ BEGIN
VALUES (18,npcEntry,spellId,1,0,aura,0,1,'Forbidden aura for spellclick');
SET counter = counter+1;
END WHILE;
-
+
SET counter = 0;
SET recordCount = 0;
SELECT COUNT(*) INTO recordCount FROM `npc_spellclick_spells` WHERE `quest_start` !=0;
@@ -222,7 +222,7 @@ BEGIN
INTO npcEntry, spellId, quest, questStartCanActive, quest2
FROM `npc_spellclick_spells` WHERE `quest_start` !=0
LIMIT counter,1;
- IF questStartCanActive = 1 AND quest2 = 0 THEN
+ IF questStartCanActive = 1 AND quest2 = 0 THEN
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`, `ConditionTypeOrReference`,
`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`NegativeCondition`,`Comment`)
VALUES (18,npcEntry,spellId,maxElseGroupId+1,9,0,quest,0,0,'Required quest active for spellclick');
@@ -241,10 +241,10 @@ BEGIN
`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`NegativeCondition`,`Comment`)
VALUES (18,npcEntry,spellId,8,0,quest,0,0,'Required quest rewarded for spellclick');
END IF;
-
+
SET counter = counter+1;
END WHILE;
-
+
SET counter = 0;
SET recordCount = 0;
SELECT COUNT(*) INTO recordCount FROM `npc_spellclick_spells` WHERE `quest_end` !=0;
diff --git a/sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql
index 1d05c031868..25160b97dd4 100644
--- a/sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_02_21_00_world_creature_loot_template.sql
@@ -4,10 +4,10 @@
-- Hellfire Citadel: Ramparts
SET @Lootid := 17259;
-- set all lootids to same entry (normal and heroic)
-UPDATE `creature_template` SET `lootid`=@Lootid WHERE `entry` IN
+UPDATE `creature_template` SET `lootid`=@Lootid WHERE `entry` IN
(17259,17264,17269,17270,17271,17280,17281,17309,17455,17478,17517,18048,18049,18050,18051,18052,18053,18054,18055,18057,18058,18059);
-- populate trashloot table
-DELETE FROM `creature_loot_template` WHERE `entry` IN
+DELETE FROM `creature_loot_template` WHERE `entry` IN
(17259,17264,17269,17270,17271,17280,17281,17309,17455,17478,17517,18048,18049,18050,18051,18052,18053,18054,18055,18057,18058,18059);
DELETE FROM `creature_loot_template` WHERE `entry`=@Lootid;
INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
diff --git a/sql/old/3.3.5a/2012_02_21_01_world_conditions.sql b/sql/old/3.3.5a/2012_02_21_01_world_conditions.sql
index 95c32703ea4..deeec299744 100644
--- a/sql/old/3.3.5a/2012_02_21_01_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_02_21_01_world_conditions.sql
@@ -1,9 +1,9 @@
CREATE TABLE `temp_convert_spells`
(
- `id` INT(11),
- `effMask` INT(11),
- `onlyPlayers` TINYINT(3),
- PRIMARY KEY (`id`)
+ `id` INT(11),
+ `effMask` INT(11),
+ `onlyPlayers` TINYINT(3),
+ PRIMARY KEY (`id`)
);
INSERT INTO `temp_convert_spells` VALUES
@@ -3554,12 +3554,12 @@ UPDATE `conditions` SET `SourceGroup` = (SELECT `effMask` FROM `temp_convert_spe
CREATE TABLE `temp_cond_vals`
(
- `sourceGroup` INT(11),
- `sourceEntry` INT(11),
- `conditionValue1` INT(11),
- `conditionValue2` INT(11),
- `elseGroup` INT(11) AUTO_INCREMENT,
- PRIMARY KEY (`sourceGroup`, `sourceEntry`, `elseGroup`)
+ `sourceGroup` INT(11),
+ `sourceEntry` INT(11),
+ `conditionValue1` INT(11),
+ `conditionValue2` INT(11),
+ `elseGroup` INT(11) AUTO_INCREMENT,
+ PRIMARY KEY (`sourceGroup`, `sourceEntry`, `elseGroup`)
) ENGINE=MYISAM;
INSERT INTO `temp_cond_vals` (`sourceGroup`, `sourceEntry`, `conditionValue1`, `conditionValue2`) SELECT `SourceGroup`, `SourceEntry`, `ConditionValue1`, `ConditionValue2` FROM `conditions` WHERE `ConditionTypeOrReference` = 18;
diff --git a/sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql b/sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql
index a59d330c6a3..77b8ee0f819 100644
--- a/sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql
+++ b/sql/old/3.3.5a/2012_02_21_06_world_Gossip.sql
@@ -132,7 +132,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(15,7692,0,0,1,8,10005,0,0,0,0,'','Show gossip option if player has rewarded quest 10005');
-- Gossip Update from Malcrom
-DELETE FROM `gossip_menu` WHERE `entry` IN (1042,1043,1044,1045,1046,1047,1048,1049,1050,1052,1053);
+DELETE FROM `gossip_menu` WHERE `entry` IN (1042,1043,1044,1045,1046,1047,1048,1049,1050,1052,1053);
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
(1042,1635),(1043,1640),(1044,1644),(1045,1643),(1045,1753),
(1046,1648),(1047,1754),(1048,1650),(1049,1755),
diff --git a/sql/old/3.3.5a/2012_02_25_02_world_sai.sql b/sql/old/3.3.5a/2012_02_25_02_world_sai.sql
index e2ff99534b4..3af5ac583ff 100644
--- a/sql/old/3.3.5a/2012_02_25_02_world_sai.sql
+++ b/sql/old/3.3.5a/2012_02_25_02_world_sai.sql
@@ -1,4 +1,4 @@
--- Fix for Quest: 12843 "They Took Our Men!"
+-- Fix for Quest: 12843 "They Took Our Men!"
-- SAI for Rusty Cage
SET @ENTRY=191544;
UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI',`ScriptName`='' WHERE `entry`=@ENTRY;
diff --git a/sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql
index 7bb38d5f2e0..eb599e2cf2d 100644
--- a/sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_02_26_01_world_spell_script_names.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN (48018, 48020);
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
-(48018,'spell_warl_demonic_circle_summon'),
+(48018,'spell_warl_demonic_circle_summon'),
(48020,'spell_warl_demonic_circle_teleport');
diff --git a/sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql b/sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql
index 9c07709246f..38ba3e5c719 100644
--- a/sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql
+++ b/sql/old/3.3.5a/2012_02_28_00_world_wintergrasp_spawns.sql
@@ -212,8 +212,8 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
SET @OGUID := 75939;
DELETE FROM `gameobject` WHERE `id` IN (192254,192255,192269,192284,192285,192286,192287,192292,192299,192304,192305,192306,192307,192308,192309,192310,192312,192313,192314,192316,192317,192318,192319,192320,192321,
192322,192323,192324,192325,192326,192327,192328,192329,192330,192331,192332,192333,192334,192335,192336,192338,192339,192349,192350,192351,192352,192353,192354,192355,192356,
- 192357,192358,192359,192360,192361,192362,192363,192364,192366,192367,192368,192369,192370,192371,192372,192373,192374,192375,192376,192377,192378,192379,192487,192488,192501,
- 192502);
+ 192357,192358,192359,192360,192361,192362,192363,192364,192366,192367,192368,192369,192370,192371,192372,192373,192374,192375,192376,192377,192378,192379,192487,192488,192501,
+ 192502);
DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID AND @OGUID+115;
INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
-- Fortress Banners "Alliance"
diff --git a/sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql b/sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql
index 34eb1261ed1..689be859a65 100644
--- a/sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql
+++ b/sql/old/3.3.5a/2012_02_29_00_world_conditions_misc.sql
@@ -78,9 +78,9 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(18,28161,39996,2,9,0,12702,0,0,0,'Required quest active for spellclick'),
(18,28161,51037,0,8,0,12532,0,0,1,'Forbidden rewarded quest for spellclick'),
(18,28161,51037,0,8,0,12702,0,0,1,'Forbidden rewarded quest for spellclick'),
-(18,28161,51037,1,9,0,12532,0,0,0,'Required quest active for spellclick'),
+(18,28161,51037,1,9,0,12532,0,0,0,'Required quest active for spellclick'),
(18,28161,51037,2,9,0,12702,0,0,0,'Required quest active for spellclick'),
-(18,28161,51961,0,8,0,12532,0,0,1,'Forbidden rewarded quest for spellclick'),
+(18,28161,51961,0,8,0,12532,0,0,1,'Forbidden rewarded quest for spellclick'),
(18,28161,51961,0,8,0,12702,0,0,1,'Forbidden rewarded quest for spellclick'),
(18,28161,51961,1,9,0,12532,0,0,0,'Required quest active for spellclick'),
(18,28161,51961,2,9,0,12702,0,0,0,'Required quest active for spellclick'),
diff --git a/sql/old/3.3.5a/2012_03_10_00_world_creature.sql b/sql/old/3.3.5a/2012_03_10_00_world_creature.sql
index a0143af73c7..9beb1827ade 100644
--- a/sql/old/3.3.5a/2012_03_10_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_03_10_00_world_creature.sql
@@ -1,7 +1,7 @@
-- Add some missing guids
SET @GUID := 42153;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+4;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,32666,530,1,1,0,0,9830.201,-7389.711,13.68803,5.532694,120,0,0,1,0,0),
(@GUID+1,32667,530,1,1,0,0,9859.044,-7406.975,13.7113,1.658063,120,0,0,1,0,0),
(@GUID+2,31144,530,1,1,0,0,9869.401,-7389.657,13.69022,3.90953755,120,0,0,1,0,0),
diff --git a/sql/old/3.3.5a/2012_03_11_00_world_sai.sql b/sql/old/3.3.5a/2012_03_11_00_world_sai.sql
index a8cab265ac0..107a79ba7fb 100644
--- a/sql/old/3.3.5a/2012_03_11_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_03_11_00_world_sai.sql
@@ -1,7 +1,7 @@
-- Coilfang Guardian
DELETE FROM `smart_scripts` WHERE `entryorguid`=21873 AND `source_type`=0;
-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
+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
(21873, 0, 0, 0, 0, 0, 0, 0, 5000, 5000, 15000, 15000, 11, 28168, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Guardian - IC - Cast Arcing Smash'),
(21873, 0, 1, 0, 0, 0, 0, 0, 2000, 2000, 10000, 10000, 11, 9080, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Guardian - IC - Cast Harmstring'),
(21873, 0, 2, 0, 0, 0, 50, 0, 3000, 4000, 10000, 20000, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Guardian - IC - Say 0'); -- randomly guessed timers
@@ -19,7 +19,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`
-- Coilfang Strider
DELETE FROM `smart_scripts` WHERE `entryorguid`=22056 AND `source_type`=0;
-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
+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
(22056, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 11, 38257, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Strider - On Reset - Cast Panic Periodic'),
(22056, 0, 1, 0, 0, 0, 0, 0, 8000, 8000, 30000, 40000, 11, 38259, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Strider - IC - Cast Mind Blast');
@@ -28,7 +28,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`
-- Coilfang Elite
DELETE FROM `smart_scripts` WHERE `entryorguid`=22055 AND `source_type`=0;
-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
+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
(22055, 0, 0, 0, 0, 0, 0, 0, 5000, 5000, 15000, 20000, 11, 38260, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Elite - IC - Cast Cleave'),
(22055, 0, 1, 0, 0, 0, 0, 0, 2000, 2000, 10000, 10000, 11, 38262, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Elite - IC - Cast Harmstring');
@@ -38,7 +38,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`
DELETE FROM `smart_scripts` WHERE `entryorguid`=11673 AND `source_type`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN 11673*100+0 AND 11673*100+5 AND `source_type`=9;
-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
+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
(11673, 0, 0, 0, 0, 0, 0, 0, 10000, 10000, 7000, 7000, 11, 19272, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Core Hound - IC - Cast Lava Breath'),
(11673, 0, 1, 0, 0, 0, 0, 0, 4000, 4000, 6000, 6000, 11, 19319, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Core Hound - IC - Cast Vicious Bite'),
(11673, 0, 2, 0, 0, 0, 0, 0, 15000, 15000, 24000, 24000, 88, 11673*100+0, 11673*100+5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Core Hound - IC - Call random script'),
@@ -54,7 +54,7 @@ UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`
-- Shadow of Aran
DELETE FROM `smart_scripts` WHERE `entryorguid`=18254 AND `source_type`=0;
-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
+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
(18254, 0, 0, 0, 0, 0, 0, 0, 1000, 1000, 5000, 5000, 11, 29978, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Shadow of Aran - IC - Cast Pyro Blast');
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=18254;
diff --git a/sql/old/3.3.5a/2012_03_20_00_world_gossip.sql b/sql/old/3.3.5a/2012_03_20_00_world_gossip.sql
index 00214d805e7..6f5c159642b 100644
--- a/sql/old/3.3.5a/2012_03_20_00_world_gossip.sql
+++ b/sql/old/3.3.5a/2012_03_20_00_world_gossip.sql
@@ -1,13 +1,13 @@
-- Creature Gossip_menu_id Update from sniff
-UPDATE `creature_template` SET `gossip_menu_id`=9052 WHERE `entry`=24965; -- Vindicator Xayann
-UPDATE `creature_template` SET `gossip_menu_id`=9050 WHERE `entry`=24975; -- Mar'nah
-UPDATE `creature_template` SET `gossip_menu_id`=9126 WHERE `entry`=25032; -- Eldara Dawnrunner
-UPDATE `creature_template` SET `gossip_menu_id`=9087 WHERE `entry`=25046; -- Smith Hauthaa
-UPDATE `creature_template` SET `gossip_menu_id`=9064 WHERE `entry`=25057; -- Battlemage Arynna
-UPDATE `creature_template` SET `gossip_menu_id`=9062, `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=25059; -- Ayren Cloudbreaker
-UPDATE `creature_template` SET `gossip_menu_id`=9063 WHERE `entry`=25061; -- Harbinger Inuuro
-UPDATE `creature_template` SET `gossip_menu_id`=9127 WHERE `entry`=25069; -- Magister Ilastar
-UPDATE `creature_template` SET `gossip_menu_id`=9115 WHERE `entry`=25112; -- Anchorite Ayuri
+UPDATE `creature_template` SET `gossip_menu_id`=9052 WHERE `entry`=24965; -- Vindicator Xayann
+UPDATE `creature_template` SET `gossip_menu_id`=9050 WHERE `entry`=24975; -- Mar'nah
+UPDATE `creature_template` SET `gossip_menu_id`=9126 WHERE `entry`=25032; -- Eldara Dawnrunner
+UPDATE `creature_template` SET `gossip_menu_id`=9087 WHERE `entry`=25046; -- Smith Hauthaa
+UPDATE `creature_template` SET `gossip_menu_id`=9064 WHERE `entry`=25057; -- Battlemage Arynna
+UPDATE `creature_template` SET `gossip_menu_id`=9062, `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=25059; -- Ayren Cloudbreaker
+UPDATE `creature_template` SET `gossip_menu_id`=9063 WHERE `entry`=25061; -- Harbinger Inuuro
+UPDATE `creature_template` SET `gossip_menu_id`=9127 WHERE `entry`=25069; -- Magister Ilastar
+UPDATE `creature_template` SET `gossip_menu_id`=9115 WHERE `entry`=25112; -- Anchorite Ayuri
UPDATE `creature_template` SET `gossip_menu_id`=9105 WHERE `entry`=25169; -- Archmage Ne'thul
UPDATE `creature_template` SET `gossip_menu_id`=9286 WHERE `entry`=25632; -- Vindicator Moorba
UPDATE `creature_template` SET `gossip_menu_id`=9285 WHERE `entry`=25638; -- Captain Selana
@@ -56,13 +56,13 @@ DELETE FROM `gossip_menu_option` WHERE `menu_id`=9062 AND `id` IN (0,1);
DELETE FROM `gossip_menu_option` WHERE `menu_id`=9286 AND `id`=2;
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
(9050,0,1,'Let me browse your goods.',3,128,0,0,0,0,''),
-(9062,0,0,'Speaking of action, I''ve been ordered to undertake an air strike.',1,1,0,0,0,0,''),
+(9062,0,0,'Speaking of action, I''ve been ordered to undertake an air strike.',1,1,0,0,0,0,''),
(9062,1,0,'I need to intercept the Dawnblade reinforcements.',1,1,0,0,0,0,''),
(9087,0,1,'Let me browse your goods.',3,128,0,0,0,0,''),
(9126,0,1,'Let me browse your goods.',3,128,0,0,0,0,''),
(9198,0,1,'Let me browse your goods.',3,128,0,0,0,0,''),
(9285,0,0,'Give me a situation report, Captain.',1,1,9287,0,0,0,''),
-(9286,2,0,'What is the current state of the Sunwell''s Gates?',1,1,9293,0,0,0,''),
+(9286,2,0,'What is the current state of the Sunwell''s Gates?',1,1,9293,0,0,0,''),
(9287,0,0,'What went wrong?',1,1,9288,0,0,0,''),
(9288,0,0,'Why did they stop?',1,1,9289,0,0,0,''),
(9289,0,0,'Your insight is appreciated.',1,1,9290,0,0,0,'');
diff --git a/sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql
index 078c48a47b7..8bd438c1aec 100644
--- a/sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_03_24_01_world_creature_loot_template.sql
@@ -1,5 +1,5 @@
-- -----------------------------------
--- -- Loot for The Siege of Ulduar --
+-- -- Loot for The Siege of Ulduar --
-- -----------------------------------
-- Old Cleanups:
@@ -122,7 +122,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@Razor25Ref,45150,0,1,1,1,1), -- Collar of the Wyrmhunter
(@Razor25Ref,45151,0,1,1,1,1), -- Belt of the Fallen Wyrm
(@Razor25Ref,45510,0,1,1,1,1), -- Libram of Discord
-
+
-- XT-002 Deconstructor 10man
(@XT002_10Ref,45675,0,1,1,1,1), -- Power Enchancing Loop
(@XT002_10Ref,45676,0,1,1,1,1), -- Chestplate of Vicious Potency
@@ -156,7 +156,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@XT002_25Ref,45259,0,1,1,1,1), -- Quartz-studded Harness
(@XT002_25Ref,45255,0,1,1,1,1); -- Thunderfall Totem
-- -----------------------------------------------------------------------------------------------
--- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES --
+-- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES --
-- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES --
-- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES -- -- END OF REFERENCES --
-- -----------------------------------------------------------------------------------------------
@@ -177,7 +177,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
DELETE FROM `creature_loot_template` WHERE `entry` IN (@FlameLevi10,@FlameLevi25,@IgnisFM10,@IgnisFM25,@Razorscale10,@Razorscale25,@XT002_10,@XT002_25);
INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- ---------------------------
--- -- Flame Levithian 10man --
+-- -- Flame Levithian 10man --
-- ---------------------------
(@FlameLevi10,1,100,1,0,-@EmblemRef,1), -- 1x emblem
(@FlameLevi10,2,100,1,0,-@Flame10Ref,2), -- 2 from 10man reference
@@ -200,14 +200,14 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
(@FlameLevi10,45300,0,16,1,1,1), -- Mantle of Fiery Vengeance
(@FlameLevi10,45297,0,16,1,1,1), -- Shimmering Seal
-- Shared Loot over the modes (masked)
--- Non-Normal (Modes 2|4|8|16)
-(@FlameLevi10,11,5,30,0,-34154,1), -- 1 from recepies (chanced)
+-- Non-Normal (Modes 2|4|8|16)
+(@FlameLevi10,11,5,30,0,-34154,1), -- 1 from recepies (chanced)
-- More then 1 tower up (Modes 4|8|16)
(@FlameLevi10,@Orb,100,28,0,1,3), -- Runed Orb (1-3)
-- More then 2 towers up (Modes 8|16)
(@FlameLevi10,12,100,24,0,-34154,1), -- 1 from recepies
-- ---------------------------
--- -- Flame Levithian 25man --
+-- -- Flame Levithian 25man --
-- ---------------------------
(@FlameLevi25,1,100,1,0,-@EmblemRef,1), -- 1x emblem
(@FlameLevi25,2,100,1,0,-@Flame25Ref,3), -- 3 from 25man reference
@@ -235,7 +235,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- All Modes (1|2|4|8|16):
(@FlameLevi25,11,5,31,0,-@OrbRef,1), -- Runed Orb (1x Chanced)
(@FlameLevi25,45038,8,1,0,1,1), -- Fragment of Val'anyr (quest only!?)
-(@FlameLevi25,12,5,31,0,-34154,1), -- 1 from recepies (chanced)
+(@FlameLevi25,12,5,31,0,-34154,1), -- 1 from recepies (chanced)
-- More then 1 tower up (Modes 4|8|16)
(@FlameLevi25,13,100,28,0,-@OrbRef,2), -- Runed Orb (2x garanteed)
-- More then 2 towers up (Modes 8|16)
@@ -269,7 +269,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- -------------------------
-- X002 Deconstructor 10man (and hardmode)
(@XT002_10,1,100,3,0,-@XT002_10Ref,2), -- 2items from Ref loot
-(@XT002_10,@Emblem,100,3,0,1,1), -- 1x Emblem
+(@XT002_10,@Emblem,100,3,0,1,1), -- 1x Emblem
-- Hard mode 10man only:
(@XT002_10,45442,0,2,1,1,1), -- Sorthalis,Hammer of the Watchers
(@XT002_10,45443,0,2,1,1,1), -- Charm of Meticulous Timing
diff --git a/sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql b/sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql
index 0a5c90f798f..8b885c3c5f0 100644
--- a/sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_03_26_01_world_spell_script_names.sql
@@ -1,4 +1,4 @@
DELETE FROM `spell_script_names` WHERE `spell_id` IN (34477, 35079);
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
-(34477,'spell_hun_misdirection'),
+(34477,'spell_hun_misdirection'),
(35079,'spell_hun_misdirection_proc');
diff --git a/sql/old/3.3.5a/2012_03_27_00_world_misc.sql b/sql/old/3.3.5a/2012_03_27_00_world_misc.sql
index 132c91b81d7..e7cdb15a240 100644
--- a/sql/old/3.3.5a/2012_03_27_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_03_27_00_world_misc.sql
@@ -45,5 +45,5 @@ ALTER TABLE `creature_transport` CHANGE `guid` `guid` int(11) NOT NULL AUTO_INCR
ALTER TABLE `creature_transport` CHANGE `transport_entry` `transport_entry` int(11) NOT NULL COMMENT 'Transport entry';
ALTER TABLE `creature_transport` CHANGE `npc_entry` `npc_entry` int(11) NOT NULL COMMENT 'NPC entry';
ALTER TABLE `creature_transport` CHANGE `emote` `emote` int(11) NOT NULL;
-ALTER TABLE `db_script_string` CHANGE `entry` `entry` int(10) unsigned NOT NULL DEFAULT '0';
+ALTER TABLE `db_script_string` CHANGE `entry` `entry` int(10) unsigned NOT NULL DEFAULT '0';
\ No newline at end of file
diff --git a/sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql b/sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql
index 3ec709d76c1..263af0eb549 100644
--- a/sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2012_03_30_00_world_smart_scripts.sql
@@ -1,7 +1,7 @@
-- revised from Unholys original works
-- quest 12702 chicken party!
-- quest 12532 flown the coop!
---
+--
SET @ENTRY := 28161; -- the chicken
SET @PARTY := 12702; -- chicken party quest
SET @COOP := 12532; -- flown the coop quest
@@ -9,7 +9,7 @@ SET @LIFE := 900000; -- minutes
-- set up required spells for the spells to work as they should
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@ENTRY;
-INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
(@ENTRY,39996,1,0), -- cover spell (dummy)
(@ENTRY,51037,2,0); -- creates item in players back pack
@@ -29,7 +29,7 @@ DELETE FROM `quest_start_scripts` WHERE `id` IN (@PARTY,@COOP);
-- start script for quest chicken party (they do not all spawn at same time)
UPDATE `quest_template` SET `StartScript`=@PARTY WHERE `id`=@PARTY; -- 12072
-INSERT INTO `quest_start_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+INSERT INTO `quest_start_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
(@PARTY,1,10,@ENTRY,@LIFE, 0,5251.09,4413.76,-96.086,4.8714),
(@PARTY,2,10,@ENTRY,@LIFE, 0,5251.22,4419.74,-95.8995,3.58335),
(@PARTY,23,10,@ENTRY,@LIFE, 0,5257.58,4421.77,-95.9072,2.62124),
@@ -63,7 +63,7 @@ INSERT INTO `quest_start_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`
-- start script for quest flown the coop (they do not all spawn at same time)
UPDATE `quest_template` SET `StartScript`=@COOP WHERE `id`=@COOP; -- 12532
-INSERT INTO `quest_start_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+INSERT INTO `quest_start_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
(@COOP,23,10,@ENTRY,@LIFE,0, 5257.58,4421.77,-95.9072,2.62124),
(@COOP,4,10,@ENTRY,@LIFE,0, 5255.97,4420.37,-95.9999,0.0451326),
(@COOP,5,10,@ENTRY,@LIFE,0, 5256.78,4420.63,-95.9957,0.320021),
diff --git a/sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql
index a817cdccf50..56885eb6b0f 100644
--- a/sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_03_31_00_world_creature_loot_template.sql
@@ -114,7 +114,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@Auriaya25Ref,45436,0,1,1,1,1); -- Libram of the Resolute
-- ---------------------------
--- -- ASSIGN CREATURE LOOTS --
+-- -- ASSIGN CREATURE LOOTS --
-- ---------------------------
UPDATE `creature_template` SET `lootid`=`entry` WHERE `entry` IN (@Brundir10,@Molgeim10,@Steelbreaker10,@Brundir25,@Molgeim25,@Steelbreaker25,@Auriaya10,@Auriaya25);
DELETE FROM `creature_loot_template` WHERE `entry` IN (@Brundir10,@Molgeim10,@Steelbreaker10,@Brundir25,@Molgeim25,@Steelbreaker25);
@@ -132,7 +132,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
(@Steelbreaker10,1,100,1,0,-@Assembly10Ref,2), -- 2 items from reference loot
(@Steelbreaker10,47241,100,1,0,2,2), -- 2 Emblem of Triumph
(@Steelbreaker10,45087,75,1,0,1,1), -- Runed Orb
-(@Steelbreaker10,45506,100,1,0,1,1), -- Archivum Data Disc for Quest
+(@Steelbreaker10,45506,100,1,0,1,1), -- Archivum Data Disc for Quest
(@Steelbreaker10,25455,0,1,1,1,1), -- Belt fo the Crystal Tree
(@Steelbreaker10,45447,0,1,1,1,1), -- Watchful Eye of Fate
(@Steelbreaker10,45456,0,1,1,1,1), -- Loop of the Agile
diff --git a/sql/old/3.3.5a/2012_04_01_00_world_creature.sql b/sql/old/3.3.5a/2012_04_01_00_world_creature.sql
index f6a42a6ef08..46af7db5dc7 100644
--- a/sql/old/3.3.5a/2012_04_01_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_04_01_00_world_creature.sql
@@ -1,6 +1,6 @@
-- Add missing spawns to db
DELETE FROM `creature` WHERE `guid` IN (4764,28648,40266,40267,40470,40471,40510,40516,40517,40518,40601,40602,40603,41320);
-INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `curhealth`) VALUES
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `curhealth`) VALUES
(4764,33608,530,1,1,-2263.63,5559.49,67.0918,5.91667,180,0,9156), -- Alchemy
(28648,33609,530,1,1,-2262.64,5561.96,67.0948,5.89921,180,0,9156), -- Blacksmithing
(40266,33610,530,1,1,-2261.59,5564.54,67.095,5.93412,180,0,9156), -- Enchanting
diff --git a/sql/old/3.3.5a/2012_04_01_01_world_creature.sql b/sql/old/3.3.5a/2012_04_01_01_world_creature.sql
index f6dff34cfa9..3755eb6e6be 100644
--- a/sql/old/3.3.5a/2012_04_01_01_world_creature.sql
+++ b/sql/old/3.3.5a/2012_04_01_01_world_creature.sql
@@ -9,7 +9,7 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
-- Add missing spawns to db (trainers)
DELETE FROM `creature` WHERE `guid` IN (40266,40510,40516,40517,40518,40601,40602,40603,41320,41674,41723,41775,41779,41780);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`curhealth`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`curhealth`) VALUES
(40266,33608,530,1,1,-2263.63,5559.49,67.0918,5.91667,180,0,1), -- Alchemy
(40510,33609,530,1,1,-2262.64,5561.96,67.0948,5.89921,180,0,1), -- Blacksmithing
(40516,33610,530,1,1,-2261.59,5564.54,67.095,5.93412,180,0,1), -- Enchanting
diff --git a/sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql b/sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql
index d42afd1d955..4f2488d1c18 100644
--- a/sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql
+++ b/sql/old/3.3.5a/2012_04_01_02_world_spell_group_stack_rules.sql
@@ -5,5 +5,5 @@ INSERT INTO `spell_group`(`id`,`spell_id`) VALUES
(@GROUP,25894), -- Greater Blessing of Wisdom
(@GROUP,5677); -- Mana Spring (cast by Mana Spring Totem)
DELETE FROM `spell_group_stack_rules` WHERE `group_id`=@GROUP;
-INSERT INTO `spell_group_stack_rules`(`group_id`,`stack_rule`) VALUES
+INSERT INTO `spell_group_stack_rules`(`group_id`,`stack_rule`) VALUES
(@GROUP,3); -- Make them SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT
diff --git a/sql/old/3.3.5a/2012_04_01_03_world_trainers.sql b/sql/old/3.3.5a/2012_04_01_03_world_trainers.sql
index 1edc9ae09af..343b68c4b61 100644
--- a/sql/old/3.3.5a/2012_04_01_03_world_trainers.sql
+++ b/sql/old/3.3.5a/2012_04_01_03_world_trainers.sql
@@ -38,7 +38,7 @@ INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`
-- Trainer spells
DELETE FROM `npc_trainer` WHERE `entry` IN (33608,33609,33610,33611,33612,33613,33614,33616,33618,33617,33619,33621,33615,33623);
-INSERT INTO `npc_trainer` (`entry`, `spell`, `spellcost`, `reqskill`, `reqskillvalue`, `reqlevel`) VALUES
+INSERT INTO `npc_trainer` (`entry`, `spell`, `spellcost`, `reqskill`, `reqskillvalue`, `reqlevel`) VALUES
(33608, -201001, 0, 0, 0, 0), -- Alchemy
(33608, -201002, 0, 0, 0, 0), -- Alchemy
(33608, -201003, 0, 0, 0, 0), -- Alchemy
diff --git a/sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql b/sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql
index 43f6760e8d6..222fb42ea60 100644
--- a/sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql
+++ b/sql/old/3.3.5a/2012_04_05_00_world_spell_script_names.sql
@@ -1,6 +1,6 @@
DELETE FROM `spell_script_names` WHERE `spell_id` in (7384,7887,11584,11585);
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
-(7384, 'spell_warr_overpower'),
-(7887, 'spell_warr_overpower'),
-(11584, 'spell_warr_overpower'),
-(11585, 'spell_warr_overpower');
+(7384, 'spell_warr_overpower'),
+(7887, 'spell_warr_overpower'),
+(11584, 'spell_warr_overpower'),
+(11585, 'spell_warr_overpower');
diff --git a/sql/old/3.3.5a/2012_04_13_01_world_misc.sql b/sql/old/3.3.5a/2012_04_13_01_world_misc.sql
index e4d04449a3f..9de05732570 100644
--- a/sql/old/3.3.5a/2012_04_13_01_world_misc.sql
+++ b/sql/old/3.3.5a/2012_04_13_01_world_misc.sql
@@ -6,7 +6,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry
(17, 0, 74222, 3, 31, 3, 6119, 0, 63, '', 'Gnomish Playback Device on Tog Rustsprocket');
-- fix revenge ap coeff -- by ric101 closes #3344
-UPDATE `spell_bonus_data` SET `ap_bonus` = 0.310 WHERE `entry` = 6572;
+UPDATE `spell_bonus_data` SET `ap_bonus` = 0.310 WHERE `entry` = 6572;
-- fix life seed sp coeff -- by warpten closes #4162
DELETE FROM `spell_bonus_data` WHERE `entry`=48503;
@@ -28,7 +28,7 @@ UPDATE `gameobject` SET `guid` = 10714 WHERE `guid` = 61895 AND `id` = 2157;
-- update npc texts. by helias closes #6098
DELETE FROM `npc_text` WHERE `ID` IN (10719,10782,10783,10787,10788,2838,9072,9110,10310,13293,13641,14089,15077,15155,15240,15412,15866,15873,15877,8663,8244,8254,8255,8282,8291,8296,8298,11093,3464,4776,4713,12130,13002,9984,12977,12978,10918,10999,10986,10991);
-INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`) VALUES
+INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`) VALUES
(10719, '<The chime of A"dal"s voice echoes reassuringly through your mind.>$B$BWorry not, child. Look in your pack and you will find it once more.', NULL, 0, 1, 0, 0, 0, 0, 0, 0),
(10782, 'Sayoc, da ugly orc here, teach you daggers. You want teaching in other places, you talk to Ileda in da Farstrider Square of Silvermoon or Archibald in the War Quarter of Undercity, hokay?', 'Sayoc, da ugly orc here, teach you daggers. You want teaching in other places, you talk to Ileda in da Farstrider Square of Silvermoon or Archibald in the War Quarter of Undercity, hokay?', 1, 1, 0, 0, 0, 0, 0, 0),
(10783, 'You want to punch things, yah? Talk to Sayoc right here. He teach you.', 'You want to punch things, yah? Talk to Sayoc right here. He teach you.', 1, 1, 0, 0, 0, 0, 0, 0),
@@ -133,7 +133,7 @@ UPDATE `areatrigger_teleport` SET `target_position_x`=-248.149292, `target_posit
-- Add pamphlets to mail loot by gecko32 closes #5408
DELETE FROM `mail_loot_template` WHERE `entry` BETWEEN 224 AND 233;
-INSERT INTO `mail_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+INSERT INTO `mail_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
(224, 46875, 100, 1, 0, 1, 1), -- Riding Training Pamphlet Elwynn Forest
(225, 46876, 100, 1, 0, 1, 1), -- Riding Training Pamphlet Darnassus
(226, 46877, 100, 1, 0, 1, 1), -- Riding Training Pamphlet Dun Morogh drawf
@@ -193,7 +193,7 @@ INSERT INTO `creature_onkill_reputation` (`creature_id`, `RewOnKillRepFaction1`,
(38480, 1156, 0, 7, 0, 15, 0, 0, 0, 0), -- Darkfallen Noble
(38481, 1156, 0, 7, 0, 15, 0, 0, 0, 0); -- Spire Gargoyle
--- fix procs by warpten closes #4467 for
+-- fix procs by warpten closes #4467 for
-- Needle-Encrusted Scorpion
DELETE FROM `spell_proc_event` WHERE `entry`=71404;
INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
diff --git a/sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql b/sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql
index a3dd0c39865..87539b83478 100644
--- a/sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_14_01_world_gameobject_loot_template.sql
@@ -1,6 +1,6 @@
-- Add missing gameobject_loot_templates to prevent startup errors
DELETE FROM `gameobject_loot_template` WHERE `entry` IN (3458,3459,3460,3461,15920,16841,26878,27725);
-INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(3458,4594,100,0,0,1,1), -- Rockscale Cod on Feast Fish
(3459,3771,100,0,0,1,1), -- Wild Hog Shank On Feast Boar
(3460,4538,100,0,0,1,1), -- Snapvine Watermelon on Feast Fruit
diff --git a/sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql b/sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql
index 4ed922060d9..6a614857077 100644
--- a/sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_18_02_world_reference_loot_template.sql
@@ -1,13 +1,13 @@
-- ----------------------
-- -- Various Cleanups --
-- ----------------------
-DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=10 AND `SourceGroup`=34105;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=10 AND `SourceGroup`=34105;
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=4 AND `SourceGroup` IN (27081,27085,27073,26963,26955);
DELETE FROM `reference_loot_template` WHERE `entry` IN (12020,12021,12022,34105,34125,34126,34127,34128,34129,34130);
DELETE FROM `gameobject_loot_template` WHERE `entry`=10961; -- Bad Bogblossom fix was bad
UPDATE `gameobject_template` SET `data1`=26956 WHERE `entry`=194315;
-- -------------------------------
--- -- Variables and definitions --
+-- -- Variables and definitions --
-- -------------------------------
-- Freya 10 man
SET @Freya10k0ID := 194324; -- Freyas Gift 10man ALL elders alive
@@ -63,15 +63,15 @@ CALL `sp_get_go_lootid`(@Thorim10hID,@Thorim10h);
CALL `sp_get_go_lootid`(@Thorim25nID,@Thorim25n);
CALL `sp_get_go_lootid`(@Thorim25hID,@Thorim25h);
-- Set References
-SET @Freya10Ref := 34365;
+SET @Freya10Ref := 34365;
SET @Freya25Ref := @Freya10Ref+1;
-SET @Hodir10Ref := @Freya10Ref+2;
+SET @Hodir10Ref := @Freya10Ref+2;
SET @Hodir25Ref := @Freya10Ref+3;
SET @Mimiron10Ref := @Freya10Ref+4;
SET @Mimiron25Ref := @Freya10Ref+5;
SET @Thorim10Ref := @Freya10Ref+6;
SET @Thorim25Ref := @Freya10Ref+7;
-SET @HandToken := 12026;
+SET @HandToken := 12026;
SET @LegToken := @HandToken+1;
SET @LegsToken := @HandToken+2;
SET @ChestToken := @HandToken+3;
@@ -88,7 +88,7 @@ DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @Freya10Ref AND @Fre
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @HandToken AND @HandToken+7;
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- Freya 10 man
-(@Freya10Ref,45934,0,1,1,1,1), -- Unraveling Reach
+(@Freya10Ref,45934,0,1,1,1,1), -- Unraveling Reach
(@Freya10Ref,45935,0,1,1,1,1), -- Ironbark Faceguard
(@Freya10Ref,45941,0,1,1,1,1), -- Chestguard of the Lasher
(@Freya10Ref,45936,0,1,1,1,1), -- Legplates of Flourishing Resolve
@@ -207,8 +207,8 @@ INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lo
(@Freya10k0,45945,0,1,1,1,1), -- Seed of Budding Carnage
(@Freya10k0,45947,0,1,1,1,1), -- Serilas, Blood Blade of Invar One-Arm
(@Freya10k0,45294,0,1,1,1,1), -- Petrified Ivy Sprig
--- ------------------
--- -- Freya 25 man --
+-- ------------------
+-- -- Freya 25 man --
-- ------------------
-- Normal Mode:
(@Freya25k3,1,100,1,0,-@Freya25Ref,1), -- 1 from normal loot
@@ -259,7 +259,7 @@ INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lo
(@Freya25k0,45613,0,1,1,1,1), -- Dreambinder
(@Freya25k0,45485,0,1,1,1,1), -- Bronze Pendant of the Vanir
-- ------------------
--- -- Hodir 10 man --
+-- -- Hodir 10 man --
-- ------------------
(@Hodir10n,1,100,1,0,-@Hodir10Ref,1), -- 1x Normal Loot Item
(@Hodir10n,2,100,1,0,-@LegsToken,1), -- 1x Token
@@ -276,7 +276,7 @@ INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lo
(@Hodir10h,45876,0,1,1,1,1), -- Shiver
(@Hodir10h,45877,0,1,1,1,1), -- The Boreal Guard
-- ------------------
--- -- Hodir 25 man --
+-- -- Hodir 25 man --
-- ------------------
(@Hodir25n,1,100,1,0,-@Hodir25Ref,1), -- 1x Normal Loot Item
(@Hodir25n,2,100,1,0,-@ChestToken,1), -- 1x Token
@@ -334,7 +334,7 @@ INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lo
(@Mimiron25h,45495,0,1,1,1,1), -- Conductive Seal
(@Mimiron25h,45497,0,1,1,1,1), -- Crown of Luminescence
-- -------------------
--- -- Thorim 10 man --
+-- -- Thorim 10 man --
-- -------------------
(@Thorim10n,1,100,1,0,-@Thorim10Ref,1), -- 1x Normal Loot Item
(@Thorim10n,2,100,1,0,-@ShoulderToken,1), -- 1x Token
@@ -351,7 +351,7 @@ INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lo
(@Thorim10h,45931,0,2,1,1,1), -- Mjolnir Runestone
(@Thorim10h,45930,0,2,1,1,1), -- Combatant's Bootblade
-- -------------------
--- -- Thorim 25 man --
+-- -- Thorim 25 man --
-- -------------------
(@Thorim25n,1,100,3,0,-@Thorim25Ref,1), -- 1x Normal Loot Item
(@Thorim25n,2,100,3,0,-@HelmToken,2), -- 2x Token
diff --git a/sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql b/sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql
index e9abd40095e..a3034c05e41 100644
--- a/sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql
+++ b/sql/old/3.3.5a/2012_04_19_00_world_creature_template.sql
@@ -1,7 +1,7 @@
-- update Plague Slime & Marauding Geist to naxx25 trash lootid
-UPDATE `creature_template` SET `lootid`=100005 WHERE `entry` IN(29575,30424);
+UPDATE `creature_template` SET `lootid`=100005 WHERE `entry` IN(29575,30424);
-- update Plague Slime & Marauding Geist to naxx10 trash lootid
-UPDATE `creature_template` SET `lootid`=100003 WHERE `entry` IN(16243,30083);
+UPDATE `creature_template` SET `lootid`=100003 WHERE `entry` IN(16243,30083);
DELETE FROM `creature_loot_template` WHERE `entry` IN(30424,29575,16243,30083);
-- Remove scraps for naxx10 from creature creature_loot_template
DELETE FROM `creature_loot_template` WHERE `item` IN (22373,22374,22375,22376);
diff --git a/sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql b/sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql
index 997b16ff65d..e3e81b787ec 100644
--- a/sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_19_01_world_pickpocketing_loot_template.sql
@@ -9,7 +9,7 @@ SET @CLAXREF := @GORLOCREF+6;
SET @MAGMOTHREF := @GORLOCREF+7;
-- Create reference templates
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @GORLOCREF AND @GORLOCREF+7;
-INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@GORLOCREF,29576,57,1,0,1,1), -- Shark Bait
(@GORLOCREF,29569,30,1,0,1,1), -- Strong Junkbox
(@GORLOCREF,27858,8,1,0,1,1), -- Sunspring Carp
@@ -137,7 +137,7 @@ SET @NPC52 := 25523;
-- ----------------------
UPDATE `creature_template` SET `pickpocketloot`=`entry` WHERE `entry` IN (@NPC,@NPC1,@NPC2,@NPC3,@NPC4,@NPC5,@NPC6,@NPC7,@NPC8,@NPC9,@NPC10,@NPC11,@NPC12,@NPC13,@NPC14,@NPC15,@NPC16,@NPC17,@NPC18,@NPC19,@NPC20,@NPC21,@NPC22,@NPC23,@NPC24,@NPC25,@NPC26,@NPC27,@NPC28,@NPC29,@NPC30,@NPC31,@NPC32,@NPC33,@NPC34,@NPC35,@NPC36,@NPC37,@NPC38,@NPC39,@NPC40,@NPC41,@NPC42,@NPC43,@NPC44,@NPC45,@NPC46,@NPC47,@NPC48,@NPC49,@NPC50,@NPC51,@NPC52);
DELETE FROM `pickpocketing_loot_template` WHERE `entry` IN (@NPC,@NPC1,@NPC2,@NPC3,@NPC4,@NPC5,@NPC6,@NPC7,@NPC8,@NPC9,@NPC10,@NPC11,@NPC12,@NPC13,@NPC14,@NPC15,@NPC16,@NPC17,@NPC18,@NPC19,@NPC20,@NPC21,@NPC22,@NPC23,@NPC24,@NPC25,@NPC26,@NPC27,@NPC28,@NPC29,@NPC30,@NPC31,@NPC32,@NPC33,@NPC34,@NPC35,@NPC36,@NPC37,@NPC38,@NPC39,@NPC40,@NPC41,@NPC42,@NPC43,@NPC44,@NPC45,@NPC46,@NPC47,@NPC48,@NPC49,@NPC50,@NPC51,@NPC52);
-INSERT INTO `pickpocketing_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `pickpocketing_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- -----------------------------------------------------------------------------------------------
(@NPC,1,100,1,0,-@GORLOCREF,1), -- Gorloc ref loot template on Gorloc Gibberer
(@NPC1,1,100,1,0,-@GORLOCREF,1), -- Gorloc ref loot template on Gorloc Hunter
@@ -182,7 +182,7 @@ INSERT INTO `pickpocketing_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,
(@NPC35,1,100,1,0,-@KVALDIRREF,1), -- Kvaldir ref loot template on Kvaldir Raider
(@NPC36,1,100,1,0,-@KVALDIRREF,1), -- Kvaldir ref loot template on Heigarr the Horrible
(@NPC37,1,100,1,0,-@KVALDIRREF,1), -- Kvaldir ref loot template on Ragnar Drakkarlund
-(@NPC37,35774,-100,1,0,1,1), -- Trident of Naz'jan on Ragnar Drakkarlund
+(@NPC37,35774,-100,1,0,1,1), -- Trident of Naz'jan on Ragnar Drakkarlund
(@NPC38,1,100,1,0,-@KVALDIRREF,1), -- Kvaldir ref loot template on Skadir Longboatsman
(@NPC39,1,100,1,0,-@KVALDIRREF,1), -- Kvaldir ref loot template on Skadir Mistweaver
(@NPC40,1,100,1,0,-@KVALDIRREF,1), -- Kvaldir ref loot template on Skadir Raider
diff --git a/sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql
index 336cd61c0eb..ac49289f702 100644
--- a/sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_19_02_world_creature_loot_template.sql
@@ -1,2 +1,2 @@
-- fix DB-error on startup
-DELETE FROM `creature_loot_template` WHERE `entry` IN (34965,34980);
+DELETE FROM `creature_loot_template` WHERE `entry` IN (34965,34980);
diff --git a/sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql b/sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql
index 47a22d519d0..10a4eef98d4 100644
--- a/sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_20_00_world_gameobject_loot_template.sql
@@ -1,4 +1,4 @@
-SET @Ref := 12002;
+SET @Ref := 12002;
DELETE FROM `reference_loot_template` WHERE `entry`=@Ref;
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(@Ref,47242,100,1,0,1,1);
diff --git a/sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql
index 73e01efa23e..879e6a3c0b5 100644
--- a/sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_20_04_world_creature_loot_template.sql
@@ -1,3 +1,3 @@
-- Make Grimscale Murlocs drop their heads faster...
-UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=-66 WHERE `item`=21757;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=-66 WHERE `item`=21757;
diff --git a/sql/old/3.3.5a/2012_04_22_00_world_sai.sql b/sql/old/3.3.5a/2012_04_22_00_world_sai.sql
index f223883c8a7..484745f237f 100644
--- a/sql/old/3.3.5a/2012_04_22_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_04_22_00_world_sai.sql
@@ -5,7 +5,7 @@ SET @GOSSIP := 9832;
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ROSS;
DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP AND `id`>0 AND `id`<11;
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(@GOSSIP, 1, 0, 'I''ve lost my Blood Knight Tabard.', 1, 1, 0, 0, 0, 0, ''),
(@GOSSIP, 2, 0, 'I''ve lost my Tabard of the Hand.', 1, 1, 0, 0, 0, 0, ''),
(@GOSSIP, 3, 0, 'I''ve lost my Tabard of the Protector.', 1, 1, 0, 0, 0, 0, ''),
diff --git a/sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql b/sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql
index 6ea44d92722..007b891e3d3 100644
--- a/sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_23_02_world_prospecting_loot_template.sql
@@ -1,4 +1,4 @@
-SET @TinRef := 13000;
+SET @TinRef := 13000;
SET @TBC1 := @TinRef+1;
SET @TBC2 := @TinRef+2;
SET @WOTLK1 := @TinRef+3;
@@ -7,18 +7,18 @@ SET @WOTLK3 := @TinRef+5;
SET @Copper := 2770;
SET @Tin := 2771;
-SET @Iron := 2772;
+SET @Iron := 2772;
SET @Mithril := 3858;
SET @Thorium := 10620;
-SET @FelIron := 23424;
-SET @Adamantite := 23425;
-SET @Cobalt := 36909;
+SET @FelIron := 23424;
+SET @Adamantite := 23425;
+SET @Cobalt := 36909;
SET @Saronite := 36912;
SET @Titanium := 36910;
-- Reference Loot Templates
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @TinRef AND @TinRef+5;
-INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- Stupid Tin
(@TinRef,1529,0,1,1,1,1), -- Jade
(@TinRef,3864,0,1,1,1,1), -- Citrine
@@ -35,7 +35,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@TBC2,23437,0,1,1,1,1), -- Talasite
(@TBC2,23438,0,1,1,1,1), -- Star of Elune
(@TBC2,23439,0,1,1,1,1), -- Noble Topaz
-(@TBC2,23440,0,1,1,1,1), -- Dawnstone
+(@TBC2,23440,0,1,1,1,1), -- Dawnstone
(@TBC2,23441,0,1,1,1,1), -- Nightseye
-- WOTLK Greens
(@WOTLK1,36917,0,1,1,1,2), -- Bloodstone
@@ -61,7 +61,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
-- --------------------------------------------------------
-- Prospecting Loot Templates
DELETE FROM `prospecting_loot_template` WHERE `entry` IN (@Copper,@Tin,@Iron,@Mithril,@Thorium,@FelIron,@Adamantite,@Cobalt,@Saronite,@Titanium);
-INSERT INTO `prospecting_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+INSERT INTO `prospecting_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- Copper Ore
(@Copper,774,0,1,1,1,1), -- Malachite
(@Copper,818,0,1,1,1,1), -- Tigerseye
diff --git a/sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql b/sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql
index 5ba6f24ccf8..e1c6738ffc1 100644
--- a/sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql
+++ b/sql/old/3.3.5a/2012_04_24_04_world_spell_proc_event.sql
@@ -1,4 +1,4 @@
-- Rogue T9 2P - Should proc only from Rupture ticks.
DELETE FROM `spell_proc_event` WHERE `entry` IN(67209);
-INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `procFlags`) VALUES
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `procFlags`) VALUES
(67209, 0x01, 8, 0x100000, 0x50000);
diff --git a/sql/old/3.3.5a/2012_04_24_06_world_misc.sql b/sql/old/3.3.5a/2012_04_24_06_world_misc.sql
index 2e095a76cd9..0fe371d2de9 100644
--- a/sql/old/3.3.5a/2012_04_24_06_world_misc.sql
+++ b/sql/old/3.3.5a/2012_04_24_06_world_misc.sql
@@ -14,7 +14,7 @@ SET @ENTRY := 26096;
SET @SPELL_ARCANE_EXPLOSION := 35426;
UPDATE creature_template SET AIName="SmartAI" WHERE entry=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,1,54,0,100,0,0,0,0,0,33,@ENTRY,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gnome Soul - On Just Summoned - Quest Credit"),
(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,25814,10,1,0,0,0,0,"Gnome Soul - On Just Summoned - Set Data Fizzcrank Mechagnome"),
(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,69,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gnome Soul - On Just Summoned - Move to Summoner"),
@@ -26,6 +26,6 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
SET @ENTRY := 25814;
UPDATE creature_template SET AIName="SmartAI" WHERE entry=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
-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
+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
(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,1,1,10000,0,0,0,0,0,0,0,0,0,0,0,0,"Fizzcrank Mechagnome - Chance Say on Aggro"),
(@ENTRY,1,0,0,38,0,100,0,1,1,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzcrank Mechagnome - On Data Set - Forced Despawn");
diff --git a/sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql b/sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql
index 07c53a8f7c9..a74305da8e9 100644
--- a/sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2012_04_28_00_world_reference_loot_template.sql
@@ -10,7 +10,7 @@ SET @Yogg10Ref := @Vezax10Ref+2;
SET @Yogg25Ref := @Vezax10Ref+3;
SET @Chest := 12034;
SET @Shoulder := 12035;
-SET @EmblemRef := 34349;
+SET @EmblemRef := 34349;
SET @Recipe := 34154;
SET @Vezax10 := 33271;
SET @Vezax25 := 33449;
@@ -109,18 +109,18 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- ----------------------------------------------------------
-- Yogg Saron
-- ----------------------------------------------------------
--- 10 man
+-- 10 man
-- All modes
(@Yogg10,1,100,31,0,-@Yogg10Ref,1), -- 1x Normal Loot item for modes 0&1&2&3&4
(@Yogg10,2,100,31,0,-@Chest,1), -- 1x Tier token for modes 0&1&2&3&4
(@Yogg10,47241,100,31,0,1,1), -- 1x Emblem of Triumph for modes 0&1&2&3&4
-- Extra for <3 watchers
-(@Yogg10,3,100,30,0,-@EmblemRef,1), -- additional Emblem for modes2&3
+(@Yogg10,3,100,30,0,-@EmblemRef,1), -- additional Emblem for modes2&3
-- Extra for <2 watchers
(@Yogg10,4,100,28,0,-34350,1), -- Runed Orb for 0&1&2
(@Yogg10,5,10,28,0,-@Recipe,1), -- Chance on Recipe for 0&1&2
-- Extra for <1 watchers
-(@Yogg10,6,100,24,0,-@EmblemRef,1), -- additional Emblem for 0&1
+(@Yogg10,6,100,24,0,-@EmblemRef,1), -- additional Emblem for 0&1
(@Yogg10,7,100,24,0,-@Recipe,1), -- Garanteed Recipe for 0&1
-- Hardmode 10 loot
(@Yogg10,46067,0,24,1,1,1), -- Hammer of Crushing Whispers
@@ -143,7 +143,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- Extra for <2 watchers
(@Yogg25,6,100,28,0,-34350,1), -- Runed Orb for 0&1&2
-- Extra for <1 watchers
-(@Yogg25,7,100,24,0,-@EmblemRef,1), -- additional Emblem for 0&1
+(@Yogg25,7,100,24,0,-@EmblemRef,1), -- additional Emblem for 0&1
(@Yogg25,8,100,24,0,-@Recipe,1), -- Garanteed Recipe for 0&1
-- Hardmode 25 loot
(@Yogg25,45533,0,24,1,1,1), -- Dark Edge of Depravity
diff --git a/sql/old/3.3.5a/2012_05_01_00_world_creature.sql b/sql/old/3.3.5a/2012_05_01_00_world_creature.sql
index c0509d0d132..56cbf385549 100644
--- a/sql/old/3.3.5a/2012_05_01_00_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_01_00_world_creature.sql
@@ -1,8 +1,8 @@
-- Add missing Challe & Orphan Matron Aria Spawns
SET @GUID := 41876;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+1;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
-(@GUID,23101,530,1,1,0,0,-480.4989,7499.029,181.2889,3.560472,120,0,0,1,0,0),
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@GUID,23101,530,1,1,0,0,-480.4989,7499.029,181.2889,3.560472,120,0,0,1,0,0),
(@GUID+1,34365,571,1,1,0,0,5716.604,642.8611,646.2927,5.88176,120,0,0,1,0,0);
-- Add to game event creature
DELETE FROM `game_event_creature` WHERE `guid`=@GUID+1;
diff --git a/sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql b/sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql
index 6c2ea6d3a95..b808f2da47c 100644
--- a/sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql
+++ b/sql/old/3.3.5a/2012_05_03_01_world_cos_misc.sql
@@ -34,7 +34,7 @@ UPDATE `script_texts` SET `content_default` = "We're going to finish this right
UPDATE `script_texts` SET `comment` = concat(`comment`,". NEEDS VERIFICATION") WHERE `entry` IN (-1595101,-1595105);
SET @GUID := 88474;
-INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`,
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`,
`MovementType`, `npcflag`, `unit_flags`, `dynamicflags`)
VALUES
(@GUID+00,27737,595,3,1,25543,0,2319.89,1285.78,131.407,1.72169,60,10,0,630,0,1,0,0,0),
diff --git a/sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql b/sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql
index 62fd4415549..8455d58b325 100644
--- a/sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql
+++ b/sql/old/3.3.5a/2012_05_03_04_world_game_event_creature_quest.sql
@@ -1,4 +1,4 @@
-DELETE FROM `creature_questrelation` WHERE `id` IN (14305,14444,22817,22818,33532,33533,34365);
+DELETE FROM `creature_questrelation` WHERE `id` IN (14305,14444,22817,22818,33532,33533,34365);
DELETE FROM `game_event_creature_quest` WHERE `eventEntry`=10;
INSERT INTO `game_event_creature_quest` (`eventEntry`,`id`,`quest`) VALUES
-- Alliance
@@ -8,7 +8,7 @@ INSERT INTO `game_event_creature_quest` (`eventEntry`,`id`,`quest`) VALUES
(10,14305,1687), -- Human Orphan - Spooky Lighthouse
(10,14305,558), -- Human Orphan - Jaina's Autograph
(10,14305,4822), -- Human Orphan - You Scream, I Scream...
--- Horde
+-- Horde
(10,14451,172), -- Orphan Matron Battlewail - Children's Week
(10,14444,910), -- Orcish Orphan - Down at the Docks
(10,14444,911), -- Orcish Orphan - Gateway to the Frontier
@@ -50,7 +50,7 @@ INSERT INTO `game_event_creature_quest` (`eventEntry`,`id`,`quest`) VALUES
(10,33533,13956), -- Oracle Orphan - Meeting a Great One
(10,33533,13959); -- Oracle Orphan - Back To The Orphanage
--- Removed "When I Grow Up..." and replace it with "Now, When I Grow Up..."
+-- Removed "When I Grow Up..." and replace it with "Now, When I Grow Up..."
UPDATE `quest_template` SET `prevquestid`=10945,`exclusivegroup`=-11975 WHERE `id` IN (11975,10963);
DELETE FROM `disables` WHERE `sourceType`=1 AND `entry`=10960;
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
diff --git a/sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql b/sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql
index c0b2c6b147b..29285622448 100644
--- a/sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql
+++ b/sql/old/3.3.5a/2012_05_05_02_world_gameobject.sql
@@ -1,7 +1,7 @@
-- Add some missing Blood of Heroes spawns
SET @GUID := 5276;
DELETE FROM `gameobject` WHERE `guid` BETWEEN @GUID AND @GUID+5;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(@GUID,176213,0,1,1,1529.10242,-1427.06946,65.49049,-3.001947,0,0,-0.9975634,0.06976615,7200,100,1),
(@GUID+1,176213,0,1,1,1705.87439,-4690.138,48.9742165,-3.08918333,0,0,-0.9996567,0.02620165,7200,100,1),
(@GUID+2,176213,0,1,1,1846.79382,-3825.265,135.5159,1.83259487,0,0,0.7933531,0.6087617,7200,100,1),
diff --git a/sql/old/3.3.5a/2012_05_08_00_world_sai.sql b/sql/old/3.3.5a/2012_05_08_00_world_sai.sql
index 8a776b5f2d2..7e7c8ef2c13 100644
--- a/sql/old/3.3.5a/2012_05_08_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_05_08_00_world_sai.sql
@@ -7,7 +7,7 @@ SET @QUEST_PLEASURES := 9483;
SET @SPELL_RETRIBUTION := 30077;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@ENTRY_VIERA,@ENTRY_TWINKLE);
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY_VIERA,@ENTRY_TWINKLE,@ENTRY_VIERA*100,@ENTRY_VIERA*100+1);
-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
+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
(@ENTRY_VIERA,0,0,0,20,0,100,0,@QUEST_PLEASURES,0,0,0,80,@ENTRY_VIERA*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Viera Sunwhisper - On Quest Finish - Run Script'),
(@ENTRY_VIERA*100,9,0,0,0,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Viera Sunwhisper - On Script - Remove Quest Flag"),
(@ENTRY_VIERA*100,9,1,0,0,0,100,0,2000,2000,0,0,53,0,@ENTRY_VIERA,0,0,0,0,1,0,0,0,0,0,0,0,'Viera Sunwhisper - On Script - Start WP 1'),
diff --git a/sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql b/sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql
index b83d02b4762..2cc45d27e04 100644
--- a/sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql
+++ b/sql/old/3.3.5a/2012_05_08_01_world_gameobject.sql
@@ -1,5 +1,5 @@
-- Add Missing Ice Wall, Pit of Saron
SET @GUID := 305;
DELETE FROM `gameobject` WHERE `guid`=@GUID;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(@GUID,201885,658,3,1,932.2674,-80.6684,591.6761,2.286379,0,0,0,0,300,100,1);
diff --git a/sql/old/3.3.5a/2012_05_10_00_world_sai.sql b/sql/old/3.3.5a/2012_05_10_00_world_sai.sql
index c6d6e914345..46c9926787f 100644
--- a/sql/old/3.3.5a/2012_05_10_00_world_sai.sql
+++ b/sql/old/3.3.5a/2012_05_10_00_world_sai.sql
@@ -27,7 +27,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
-- Essence of Warlord Jin'arrak text
DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
-INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(@ENTRY,0,0,"How dare you summon me without an offering!",42,0,0,0,0,0,"Essence of Warlord Jin'arrak");
-- Ganjo's Resurrection removes On The Other Side
diff --git a/sql/old/3.3.5a/2012_05_10_03_world_misc.sql b/sql/old/3.3.5a/2012_05_10_03_world_misc.sql
index 339f52ac0bb..40566b09442 100644
--- a/sql/old/3.3.5a/2012_05_10_03_world_misc.sql
+++ b/sql/old/3.3.5a/2012_05_10_03_world_misc.sql
@@ -88,7 +88,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(19,0,25249,0,2,52571,1,0,'A Change of Heart');
-- spawn farmer torp author: zxbiohazardzx closes #6256
-SET @guid := 42652;
+SET @guid := 42652;
DELETE FROM `creature` WHERE `guid`=@guid;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`)
VALUES
@@ -99,7 +99,7 @@ UPDATE `creature_template_addon` SET `auras`='25163' WHERE `entry`=15429;
-- Mr. Chilly
-- Add aura chilly for Periodic slide
DELETE FROM `creature_template_addon` WHERE `entry`=29726;
-INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES
(29726, 0, 0, 0, 0, 0, '61811');
-- Update to Change <name> to $n in page text author: gecko32 closes #5930
@@ -119,7 +119,7 @@ DELETE FROM `creature_ai_scripts` WHERE creature_id=22293;
-- fix areatrigger for wickerman camp author: boomper closes #3549
DELETE FROM `areatrigger_involvedrelation` WHERE `id` =3991;
-INSERT INTO `areatrigger_involvedrelation` (`id`, `quest`)
+INSERT INTO `areatrigger_involvedrelation` (`id`, `quest`)
VALUES (3991,1658);
-- yous have da darkrune should be daily author: kaelima closes #3457
diff --git a/sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql b/sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql
index b1f445faa59..ca9d74edeb8 100644
--- a/sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/2012_05_12_02_world_gameobject_loot_template.sql
@@ -32,6 +32,6 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
-- Assign to the chest
DELETE FROM `gameobject_loot_template` WHERE `entry` IN (27985,27993);
INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-(27985,1,100,1,0,-@RefNormal,2), -- Two from Normal Reference Loot
+(27985,1,100,1,0,-@RefNormal,2), -- Two from Normal Reference Loot
(27993,1,100,1,0,-@RefHeroic,2), -- Two from Heroic Reference Loot
(27993,43102,85,1,0,1,1); -- Frozen Orb
diff --git a/sql/old/3.3.5a/2012_05_20_00_world_misc.sql b/sql/old/3.3.5a/2012_05_20_00_world_misc.sql
index 5b96f9881d6..de79058d554 100644
--- a/sql/old/3.3.5a/2012_05_20_00_world_misc.sql
+++ b/sql/old/3.3.5a/2012_05_20_00_world_misc.sql
@@ -1,5 +1,5 @@
-- Update mod rep command name
-UPDATE `command` SET
+UPDATE `command` SET
`name` = 'modify reputation',
`help` = 'Syntax: .modify reputation #repId (#repvalue | $rankname [#delta])\nSets the selected players reputation with faction #repId to #repvalue or to $reprank.\nIf the reputation rank name is provided, the resulting reputation will be the lowest reputation for that rank plus the delta amount, if specified.\nYou can use \'.pinfo rep\' to list all known reputation ids, or use \'.lookup faction $name\' to locate a specific faction id.'
WHERE `name` = 'modify rep';
@@ -8,7 +8,7 @@ WHERE `name` = 'modify rep';
UPDATE `conditions` SET
`SourceGroup` = 1,
`SourceId` = 0
-WHERE
+WHERE
`SourceTypeOrReferenceId` = 13 AND
`SourceEntry` = 52264 AND
`ConditionTypeOrReference` = 29 AND
diff --git a/sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql b/sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql
index 7603f7dd938..bd74c782534 100644
--- a/sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/2012_05_20_01_world_spell_bonus_data.sql
@@ -1,2 +1,2 @@
-DELETE FROM `spell_bonus_data` WHERE `entry`=633;
-INSERT INTO `spell_bonus_data` (`entry`,`comments`) VALUES (633,'Paladin - Lay on Hands');
+DELETE FROM `spell_bonus_data` WHERE `entry`=633;
+INSERT INTO `spell_bonus_data` (`entry`,`comments`) VALUES (633,'Paladin - Lay on Hands');
diff --git a/sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql b/sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql
index 22ecebcae31..67716f0998e 100644
--- a/sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql
+++ b/sql/old/3.3.5a/2012_05_23_03_world_gameobject_loot_template.sql
@@ -3,7 +3,7 @@ SET @epic := 25009;
SET @gem := @entry+1;
-- Create references
DELETE FROM `reference_loot_template` WHERE `entry` IN(@entry,@epic,@gem);
-INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
(@entry,27452,0,1,1,1,1), -- Light Scribe Bands
(@entry,27453,0,1,1,1,1), -- Averinn's RIng of Slaying
(@entry,27454,0,1,1,1,1), -- Volcanic Pauldrons
@@ -26,7 +26,7 @@ INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `
-- Assign loot to the chest
SET @GOloot := 21764; -- lootid of Reinforced Fel Iron Chest Heroic
DELETE FROM `gameobject_loot_template` WHERE `entry`=@GOloot;
-INSERT INTO `gameobject_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
+INSERT INTO `gameobject_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
(@GOloot,1,100,1,0,-@entry, 2), -- one from gear
(@GOloot,2,30,1,0,-@gem,1), -- one gem (30%)
(@GOloot,3,100,1,0,-@epic,1); -- one from epics
diff --git a/sql/old/3.3.5a/2012_05_23_05_world_creature.sql b/sql/old/3.3.5a/2012_05_23_05_world_creature.sql
index bb162f927bd..e945ff4dd6c 100644
--- a/sql/old/3.3.5a/2012_05_23_05_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_23_05_world_creature.sql
@@ -1,6 +1,6 @@
-- Spawn from Sniff
DELETE FROM `creature` WHERE `id`=34526;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(42161,34526,1,1,1,0,0,-1050.052,-286.7274,159.1137,5.951573,120,0,0,1,0,0,0,0,0);
-- Template updates
UPDATE `creature_template` SET `faction_A`=104,`faction_H`=104,`baseattacktime`=2000,`npcflag`=`npcflag`|3,`unit_flags`=`unit_flags`|512 WHERE `entry`=34526; -- Aponi Brightmane
diff --git a/sql/old/3.3.5a/2012_05_26_00_world_scripts.sql b/sql/old/3.3.5a/2012_05_26_00_world_scripts.sql
index 18b0fa2f6b2..166d90bac8f 100644
--- a/sql/old/3.3.5a/2012_05_26_00_world_scripts.sql
+++ b/sql/old/3.3.5a/2012_05_26_00_world_scripts.sql
@@ -9,7 +9,7 @@ UPDATE `smart_scripts` SET
`action_type` = 22,
`action_param1` = 1,
`target_type` = 1
-WHERE
+WHERE
(`entryorguid` = 11457 AND
`source_type` = 0 AND
`id` = 10 AND
diff --git a/sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql b/sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql
index 7efebc37489..31abfc2ea5a 100644
--- a/sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql
+++ b/sql/old/3.3.5a/2012_05_26_01_world_spell_dbc.sql
@@ -1,4 +1,4 @@
-- Fire Shield from 2.0.12 dbc
DELETE FROM `spell_dbc` WHERE `Id`=13377;
-INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`, `AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `Stances`, `StancesNot`, `Targets`, `CastingTimeIndex`, `AuraInterruptFlags`, `ProcFlags`, `ProcChance`, `ProcCharges`, `MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`, `Effect1`, `Effect2`, `Effect3`, `EffectDieSides1`, `EffectDieSides2`, `EffectDieSides3`, `EffectRealPointsPerLevel1`, `EffectRealPointsPerLevel2`, `EffectRealPointsPerLevel3`, `EffectBasePoints1`, `EffectBasePoints2`, `EffectBasePoints3`, `EffectMechanic1`, `EffectMechanic2`, `EffectMechanic3`, `EffectImplicitTargetA1`, `EffectImplicitTargetA2`, `EffectImplicitTargetA3`, `EffectImplicitTargetB1`, `EffectImplicitTargetB2`, `EffectImplicitTargetB3`, `EffectRadiusIndex1`, `EffectRadiusIndex2`, `EffectRadiusIndex3`, `EffectApplyAuraName1`, `EffectApplyAuraName2`, `EffectApplyAuraName3`, `EffectAmplitude1`, `EffectAmplitude2`, `EffectAmplitude3`, `EffectMultipleValue1`, `EffectMultipleValue2`, `EffectMultipleValue3`, `EffectMiscValue1`, `EffectMiscValue2`, `EffectMiscValue3`, `EffectMiscValueB1`, `EffectMiscValueB2`, `EffectMiscValueB3`, `EffectTriggerSpell1`, `EffectTriggerSpell2`, `EffectTriggerSpell3`, `EffectSpellClassMaskA1`, `EffectSpellClassMaskA2`, `EffectSpellClassMaskA3`, `EffectSpellClassMaskB1`, `EffectSpellClassMaskB2`, `EffectSpellClassMaskB3`, `EffectSpellClassMaskC1`, `EffectSpellClassMaskC2`, `EffectSpellClassMaskC3`, `MaxTargetLevel`, `SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `MaxAffectedTargets`, `DmgClass`, `PreventionType`, `DmgMultiplier1`, `DmgMultiplier2`, `DmgMultiplier3`, `AreaGroupId`, `SchoolMask`, `Comment`) VALUES
+INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`, `AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `Stances`, `StancesNot`, `Targets`, `CastingTimeIndex`, `AuraInterruptFlags`, `ProcFlags`, `ProcChance`, `ProcCharges`, `MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`, `Effect1`, `Effect2`, `Effect3`, `EffectDieSides1`, `EffectDieSides2`, `EffectDieSides3`, `EffectRealPointsPerLevel1`, `EffectRealPointsPerLevel2`, `EffectRealPointsPerLevel3`, `EffectBasePoints1`, `EffectBasePoints2`, `EffectBasePoints3`, `EffectMechanic1`, `EffectMechanic2`, `EffectMechanic3`, `EffectImplicitTargetA1`, `EffectImplicitTargetA2`, `EffectImplicitTargetA3`, `EffectImplicitTargetB1`, `EffectImplicitTargetB2`, `EffectImplicitTargetB3`, `EffectRadiusIndex1`, `EffectRadiusIndex2`, `EffectRadiusIndex3`, `EffectApplyAuraName1`, `EffectApplyAuraName2`, `EffectApplyAuraName3`, `EffectAmplitude1`, `EffectAmplitude2`, `EffectAmplitude3`, `EffectMultipleValue1`, `EffectMultipleValue2`, `EffectMultipleValue3`, `EffectMiscValue1`, `EffectMiscValue2`, `EffectMiscValue3`, `EffectMiscValueB1`, `EffectMiscValueB2`, `EffectMiscValueB3`, `EffectTriggerSpell1`, `EffectTriggerSpell2`, `EffectTriggerSpell3`, `EffectSpellClassMaskA1`, `EffectSpellClassMaskA2`, `EffectSpellClassMaskA3`, `EffectSpellClassMaskB1`, `EffectSpellClassMaskB2`, `EffectSpellClassMaskB3`, `EffectSpellClassMaskC1`, `EffectSpellClassMaskC2`, `EffectSpellClassMaskC3`, `MaxTargetLevel`, `SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `MaxAffectedTargets`, `DmgClass`, `PreventionType`, `DmgMultiplier1`, `DmgMultiplier2`, `DmgMultiplier3`, `AreaGroupId`, `SchoolMask`, `Comment`) VALUES
(13377, 1, 0, 2512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 101, 0, 0, 40, 40, 21, 1, 0, -1, -1, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 3000, 0, 0, '0', '0', '0', 0, 0, 0, 0, 0, 0, 13376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 'Fire Shield');
diff --git a/sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql b/sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql
index 397a5ad517a..77fa05a4059 100644
--- a/sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2012_05_26_06_world_smart_scripts.sql
@@ -64,7 +64,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY,0,5,0,1,0,100,2,0,8000,12000,14000,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Blackhand Veteran - OOC - emote');
-- Rage Talon Dragonspawn SAI
-SET @ENTRY := 9096; -- NPC entry
+SET @ENTRY := 9096; -- NPC entry
SET @SPELL1 := 15580; -- Strike
SET @SPELL2 := 12021; -- Fixate
SET @SPELL3 := 15572; -- Sunder Armor
diff --git a/sql/old/3.3.5a/2012_05_27_02_world_creature.sql b/sql/old/3.3.5a/2012_05_27_02_world_creature.sql
index 8ca3ee75c94..a2b5c2e26a5 100644
--- a/sql/old/3.3.5a/2012_05_27_02_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_27_02_world_creature.sql
@@ -1,4 +1,4 @@
-- Add Missing spawn for Queen Angerboda
-DELETE FROM `creature` WHERE `id`=24023;
+DELETE FROM `creature` WHERE `id`=24023;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(42162,24023,571,1,1,0,0,2855.372,-3869.662,248.6132,2.181662,150,0,0,9291,3231,0,0,0,0);
diff --git a/sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql b/sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql
index 1f7cfa3d19c..72fd4a53d37 100644
--- a/sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql
+++ b/sql/old/3.3.5a/2012_05_27_04_world_smart_scripts.sql
@@ -8,7 +8,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
(@ENTRY,0,0,1,11,0,100,0,0,0,0,0,11,@SPELL2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Reconstructed Wyrm - On spawn - cast aura'),
(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,53,0,@ENTRY,0,0,0,0,1,0,0,0,0,0,0,0,'Reconstructed Wyrm - On spawn - Load Path');
-- waypoints for Reconstructed Wyrm
-DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY);
+DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY);
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
(@ENTRY,1,4685.845,1130.759,150.1177, 'Reconstructed Wyrm'),
(@ENTRY,2,4686.284,1131.658,150.1177, 'Reconstructed Wyrm'),
diff --git a/sql/old/3.3.5a/2012_05_27_06_world_creature.sql b/sql/old/3.3.5a/2012_05_27_06_world_creature.sql
index 1074465a0be..df7e2dd8d3f 100644
--- a/sql/old/3.3.5a/2012_05_27_06_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_27_06_world_creature.sql
@@ -1,13 +1,13 @@
-- Tukemuth
DELETE FROM `smart_scripts` WHERE `entryorguid`=32400;
-INSERT INTO `smart_scripts` VALUES
+INSERT INTO `smart_scripts` VALUES
(32400,0,0,0,9,0,100,0,0,5,9000,13000,11,50410,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Tukemuth - Cast Tusk Strike'),
(32400,0,1,0,0,0,100,0,9000,17000,15000,22000,11,57066,0,0,0,0,0,0,0,0,0,0,0,0,0, 'Tukemuth - Cast Trample');
UPDATE `creature_template` SET faction_A=7,faction_H=7,mindmg=2926.0,maxdmg=3542.0,skinloot=70209,spell1=50410,spell2=57066,attackpower=3384,dmg_multiplier=1.0,AIName= 'SmartAI',mechanic_immune_mask=2147483647 where entry=32400;
-- Fumblub Gearwind
DELETE FROM `smart_scripts` WHERE `entryorguid`=32358;
-INSERT INTO `smart_scripts` VALUES
+INSERT INTO `smart_scripts` VALUES
(32358,0,0,0,0,0,100,0,4000,6000,12000,15000,11,60906,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Fumblub Gearwind - Cast Machine Gun');
UPDATE `creature_template` SET faction_A=14,faction_H=14,mindmg=2792,maxdmg=3376,spell1=60906,attackpower=3384,dmg_multiplier=1.0,AIName= 'SmartAI',mechanic_immune_mask=2147483647,type_flags=2048,InhabitType=4 where entry=32358;
UPDATE `creature_addon` SET mount=22719,bytes1=33554432 where guid=151938;
@@ -107,7 +107,7 @@ UPDATE `creature_template` SET type_flags= '1',mechanic_immune_mask=66624 WHERE
-- Zuldrak Sentinel
DELETE FROM `smart_scripts` WHERE `entryorguid`=32447;
-INSERT INTO `smart_scripts` VALUES
+INSERT INTO `smart_scripts` VALUES
(32447,0,0,0,0,0,100,0,0,5,9000,13000,11,55196,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Zuldrak Sentinel - Cast Stomp'),
(32447,0,1,0,0,0,100,0,15000,20000,21000,35000,11,54565,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Zuldrak Sentinel - Cast Whammy');
UPDATE `creature_template` SET mindmg= '3905',maxdmg= '4600',attackpower= '4252',dmg_multiplier= '1.0',mechanic_immune_mask= '66624',spell1= '54565',spell2= '55196',AIName= 'SmartAI' WHERE entry= '32447';
diff --git a/sql/old/3.3.5a/2012_05_28_05_world_creature.sql b/sql/old/3.3.5a/2012_05_28_05_world_creature.sql
index c7d4af5b494..ad42bb2bdfe 100644
--- a/sql/old/3.3.5a/2012_05_28_05_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_28_05_world_creature.sql
@@ -33,7 +33,7 @@ UPDATE `gameobject` SET `phaseMask`=64 WHERE `guid` IN (100441,100440,100438,100
-- Phase for objects in The Breach after "The last line of defense"
UPDATE `gameobject` SET `phaseMask`=129 WHERE `id` IN (192797,192798,192799,192800,192801,192802,192803,192804,192805);
-- Phase for objects in The Breach before "The last line of defense"
-UPDATE `gameobject` SET `phaseMask`=66 WHERE `id` IN (192161,192162,192166,192806,192807,192808,192809,192810,192811,192812,192813,192814,192815,192816,192817);
+UPDATE `gameobject` SET `phaseMask`=66 WHERE `id` IN (192161,192162,192166,192806,192807,192808,192809,192810,192811,192812,192813,192814,192815,192816,192817);
-- Phase for NPCs in Argent Vanguard that should be in all phases (except during "The last line of defense)
UPDATE `creature` SET `phaseMask`=131 WHERE `guid` IN (121664,124618,124483,121684,121671,121696,121668,121693,121669,121677,121697,121666,121662,121678,121670,121680,121685,121683,121665,121682,121686,121663,121695,124527,124491,124661,123618,124497,124323,124340,124332,207301,207298,207296,207297,207299,207300,124442);
-- Same as with the objects,delete duplicate creatures that have no direct interaction with a particular phase,a single creature can fulfill that role.
@@ -70,9 +70,9 @@ UPDATE `creature_template` SET `InhabitType`=7 WHERE `entry`=30482;
-- Set right faction for previously not spawned creatures
UPDATE `creature_template` SET `faction_H`=2068,`faction_A`=2068 WHERE `entry` IN (30541,30203,30543,30202,30482,30830,30831,30829,30443);
-- ----------------
--- -- Spawnfixes --
+-- -- Spawnfixes --
-- ----------------
--- Add the right mobs for each phase,they have a different id for each phase. Some mobs are only on 2 phases,not all 3 (Reanimated crusader and Gargoyles). They have the exact same points as their already spawned counterparts which belong to the final phase.
+-- Add the right mobs for each phase,they have a different id for each phase. Some mobs are only on 2 phases,not all 3 (Reanimated crusader and Gargoyles). They have the exact same points as their already spawned counterparts which belong to the final phase.
-- NOTE: The ones with a currentwaypoint set have it simply because that's the waypoint the of their already spawned counterpart. I use it simply as a guideline for me to create the paths for all these new ones and its changed back to 0 after I set the new paths with creature_addon later in this SQL.
DELETE FROM `creature` WHERE `id` IN (30596,30686,30714,30677,30443,30829,30830,30831,30203,30543,30202,30541,30482,30333,30205);
DELETE FROM `creature` WHERE `guid` BETWEEN @NEXT+83 and @NEXT+89 AND `id`=30544;
diff --git a/sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql b/sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql
index c2cab663d4a..9e997314262 100644
--- a/sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2012_05_30_00_world_reference_loot_template.sql
@@ -1,4 +1,4 @@
-SET @Twins := 34329;
+SET @Twins := 34329;
SET @emblem := 49426;
DELETE FROM `reference_loot_template` WHERE `entry`=@Twins;
INSERT INTO `reference_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES
diff --git a/sql/old/3.3.5a/2012_05_31_01_world_sai.sql b/sql/old/3.3.5a/2012_05_31_01_world_sai.sql
index 3055e98f167..a64746f360d 100644
--- a/sql/old/3.3.5a/2012_05_31_01_world_sai.sql
+++ b/sql/old/3.3.5a/2012_05_31_01_world_sai.sql
@@ -42,7 +42,7 @@ INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY_OGRON,@ENTRY_HALAN,@ENTRY_SKIRM,@ENTRY_CALDWELL,@ENTRY_PAVAL) AND `source_type`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY_OGRON*100,@ENTRY_OGRON*100+1,@ENTRY_CALDWELL*100,@ENTRY_HALAN*100,@ENTRY_PAVAL*100,@ENTRY_CALDWELL*100+1,@ENTRY_PAVAL*100+1,@ENTRY_OGRON*100+2) AND `source_type`=9;
-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
+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
(@ENTRY_OGRON,0,0,0,6,0,100,0,0,0,0,0,6,1273,0,0,0,0,0,7,0,0,0,0,0,0,0,'Ogron - On Death - Fail Quest'),
(@ENTRY_OGRON,0,1,0,19,0,100,0,1273,0,0,0,80,@ENTRY_OGRON*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Ogron - On Quest Accept - Script'),
(@ENTRY_OGRON*100,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'Ogron - On Script - Say "I noticed some fire.."'),
diff --git a/sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql b/sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql
index 1db1d6fbd76..4745fdde00f 100644
--- a/sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql
+++ b/sql/old/3.3.5a/2012_05_31_06_world_gameobject.sql
@@ -1,7 +1,7 @@
-- Add Missing Draconic for Dummies Objects
SET @GUID := 4595;
DELETE FROM `gameobject` WHERE `guid` BETWEEN @GUID AND @GUID+2;
-INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(@GUID,180665,0,1,1,-8340.196,413.7499,124.489677,2.82742977,0,0,0.987688,0.156436,180,255,1),
(@GUID+1,180666,0,1,1,1628.83984,133.9376,-60.96726,-0.401424885,0,0,-0.199368,0.979925,180,255,1),
(@GUID+2,180667,469,1,1,-7526.57,-924.776,458.826,0.558504,0,0,0.275637,0.961262,180,255,1);
diff --git a/sql/old/3.3.5a/2012_05_31_11_world_creature.sql b/sql/old/3.3.5a/2012_05_31_11_world_creature.sql
index 177c6230964..cced4d78775 100644
--- a/sql/old/3.3.5a/2012_05_31_11_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_31_11_world_creature.sql
@@ -1,6 +1,6 @@
-- Add a couple more Domesticated Felboar Spawns
SET @GUID := 42567;
DELETE FROM `creature` WHERE `guid` IN (@GUID,@GUID+1);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,21195,530,1,1,0,0,-2678.16016,1477.65625,26.9172077,4.86340427,300,5,0,1,0,1),
(@GUID+1,21195,530,1,1,0,0,-2691.666,1525,21.3857346,0.3155697,300,5,0,1,0,1);
diff --git a/sql/old/3.3.5a/2012_05_31_12_world_creature.sql b/sql/old/3.3.5a/2012_05_31_12_world_creature.sql
index cad0364d021..1af9a5d2fbe 100644
--- a/sql/old/3.3.5a/2012_05_31_12_world_creature.sql
+++ b/sql/old/3.3.5a/2012_05_31_12_world_creature.sql
@@ -1,6 +1,6 @@
-- Add missing 7th Legion Chain Gun spawns
DELETE FROM `creature` WHERE `guid` IN (42569,42570,42663,42664);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(42569,27714,571,1,1,25331,0,3665.613,-1209.412,102.4201,4.206244,120,0,0,1,0,0),
(42570,27714,571,1,1,25331,0,3660.56,-1207.094,102.4201,4.29351,120,0,0,1,0,0),
(42663,27714,571,1,1,25331,0,3677.009,-1174.462,102.3367,1.169371,120,0,0,1,0,0),
diff --git a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql b/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql
index cd6015929b1..0e113bbaac6 100644
--- a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql
+++ b/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_hp.sql
@@ -1,8 +1,8 @@
-SET @RefDLK := 26043;
+SET @RefDLK := 26043;
SET @HFP := 6000;
SET @HFP1 := @HFP+1;
SET @HFP2 := @HFP+2;
-SET @Scrolls := @HFP+3;
+SET @Scrolls := @HFP+3;
-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM `reference_loot_template` WHERE `entry` IN (@RefDLK,@HFP,@HFP1,@HFP2,@Scrolls);
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
@@ -62,7 +62,7 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@RefDLK,30740,0,1,1,1,1), -- Ripfiend Shoulderplates
(@RefDLK,30741,0,1,1,1,1); -- Topaz-Studded Battlegrips
-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-DELETE FROM `creature_loot_template` WHERE `entry` IN (18728,187281,19191,16977,19354,17084,17057,16873,16871,19422,16907,19424,19423,16903,16901,19701,16876,16925,18952,16972,16973,17014,16844,19299,16847,16863,18981,16959,19434,16938,16937,19312,22461,19190,18733,24918,18977,17034,19459,19136,19264,16954,18678,18827,16947,16845,19457,16967,16966,22374,18978,16880,17058,22323,19261,17035,17053,16978,16846,16912,16911,19408,17039,16857,18677,19192,16946,16950,16934,19189,19188,16932,16933,20798,19458,16974,19415,16878,16870,19295,16867,19414,19413,19410,19411,16960,16879,16929,16928,16927,19282,19335,19443,16951,19349,19350,16968,26222,26223,16975,20145,16904,16906,16905,19527,16939,18679,19263,19298,16964,19442,24919,18975);
+DELETE FROM `creature_loot_template` WHERE `entry` IN (18728,187281,19191,16977,19354,17084,17057,16873,16871,19422,16907,19424,19423,16903,16901,19701,16876,16925,18952,16972,16973,17014,16844,19299,16847,16863,18981,16959,19434,16938,16937,19312,22461,19190,18733,24918,18977,17034,19459,19136,19264,16954,18678,18827,16947,16845,19457,16967,16966,22374,18978,16880,17058,22323,19261,17035,17053,16978,16846,16912,16911,19408,17039,16857,18677,19192,16946,16950,16934,19189,19188,16932,16933,20798,19458,16974,19415,16878,16870,19295,16867,19414,19413,19410,19411,16960,16879,16929,16928,16927,19282,19335,19443,16951,19349,19350,16968,26222,26223,16975,20145,16904,16906,16905,19527,16939,18679,19263,19298,16964,19442,24919,18975);
INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Doom Lord Kazzak, NPC 18728
@@ -91,7 +91,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- ---------------------------------------------------
(16977,21877,55,1,0,1,1), -- Netherweave Cloth
(16977,14047,15,1,0,1,3), -- Runecloth
-(16977,27859,10,1,0,1,1), -- Zanger Caps
+(16977,27859,10,1,0,1,1), -- Zanger Caps
(16977,28399,5,1,0,1,1), -- Filtered Draenic Water
(16977,13446,2,1,0,1,1), -- Major Healing Potion
(16977,1,90,1,0,-6001,1), -- Generic HellfirePeninsula Loot1
@@ -611,7 +611,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- ---------------------------------------------------
(16978,28562,-100,1,0,1,1), -- QItem: Unyielding Battle Horn
(16978,21877,55,1,0,1,1), -- Netherweave Cloth
-(16978,27859,5,1,0,1,1), -- Zanger Caps
+(16978,27859,5,1,0,1,1), -- Zanger Caps
(16978,28399,2.5,1,0,1,1), -- Filtered Draenic Water
(16978,13446,2,1,0,1,1), -- Major Healing Potion
(16978,13444,2,1,0,1,1), -- Major Mana Potion
@@ -1016,7 +1016,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- ---------------------------------------------------
(16904,21877,60,1,0,1,1), -- Netherweave Cloth
(16904,14047,20,1,0,1,3), -- Runecloth
-(16904,27859,8,1,0,1,1), -- Zanger Caps
+(16904,27859,8,1,0,1,1), -- Zanger Caps
(16904,28399,4,1,0,1,1), -- Filtered Draenic Water
(16904,13446,2,1,0,1,1), -- Major Healing Potion
(16904,13444,1,1,0,1,1), -- Major Mana Potion
@@ -1027,7 +1027,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
(16906,28552,15,1,0,1,1), -- A Mysterious Tome
(16906,21877,60,1,0,1,1), -- Netherweave Cloth
(16906,14047,20,1,0,1,3), -- Runecloth
-(16906,27859,8,1,0,1,1), -- Zanger Caps
+(16906,27859,8,1,0,1,1), -- Zanger Caps
(16906,28399,4,1,0,1,1), -- Filtered Draenic Water
(16906,13446,2,1,0,1,1), -- Major Healing Potion
(16906,13444,1,1,0,1,1), -- Major Mana Potion
@@ -1038,7 +1038,7 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
-- ---------------------------------------------------
(16905,21877,60,1,0,1,1), -- Netherweave Cloth
(16905,14047,20,1,0,1,3), -- Runecloth
-(16905,27859,8,1,0,1,1), -- Zanger Caps
+(16905,27859,8,1,0,1,1), -- Zanger Caps
(16905,28399,4,1,0,1,1), -- Filtered Draenic Water
(16905,13446,2,1,0,1,1), -- Major Healing Potion
(16905,13444,1,1,0,1,1), -- Major Mana Potion
@@ -1128,5 +1128,5 @@ INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loot
(18975,1,2,1,0,-6003,1), -- Scroll of * Reference
(18975,2,90,1,0,-6000,1); -- Generic HellfirePeninsula Loot
-UPDATE `creature_template` SET `lootid`=`entry` WHERE `entry` IN (26222,26223);
+UPDATE `creature_template` SET `lootid`=`entry` WHERE `entry` IN (26222,26223);
DELETE FROM `reference_loot_template` WHERE `entry`=34081;
diff --git a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql b/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql
index e739f81407b..bae963fd5b4 100644
--- a/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql
+++ b/sql/old/3.3.5a/2012_06_02_03_world_creature_loot_template_zm.sql
@@ -5,10 +5,10 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(@ZM1,1,30,1,0,-4000,1), -- Grey Items level 61 (ilvl 66)
(@ZM1,2,30,1,0,-4001,1), -- Grey Items level 64 (ilvl 69)
-(@ZM1,3,2,1,0,-4103,1), -- Green Items level 60 (ilvl 90)
-(@ZM1,4,2,1,0,-4104,1), -- Green Items level 61 (ilvl 93)
-(@ZM1,5,2,1,0,-4105,1), -- Green Items level 62 (ilvl 96)
-(@ZM1,6,2,1,0,-4106,1), -- Green Items level 63 (ilvl 99)
+(@ZM1,3,2,1,0,-4103,1), -- Green Items level 60 (ilvl 90)
+(@ZM1,4,2,1,0,-4104,1), -- Green Items level 61 (ilvl 93)
+(@ZM1,5,2,1,0,-4105,1), -- Green Items level 62 (ilvl 96)
+(@ZM1,6,2,1,0,-4106,1), -- Green Items level 63 (ilvl 99)
(@ZM1,7,0.5,1,0,-4203,1), -- Blue items level 63 (ilvl 94)
(@ZM1,8,0.5,1,0,-4204,1), -- Blue items level 64 (ilvl 97)
(@ZM1,9,0.5,1,0,-4205,1), -- Blue items level 65 (ilvl 97)
diff --git a/sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql b/sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql
index c712cbe18bd..ae41cb150b2 100644
--- a/sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2012_06_02_03_world_reference_loot_template.sql
@@ -16,9 +16,9 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@Grey+52,3994,0,1,1,1,1), -- Laminated Scale Bracers
(@Grey+52,8080,0,1,1,1,1), -- Light Plate Chestpiece
(@Grey+52,13817,0,1,1,1,1); -- Tapered Greatsword
--- --------------------------------------------------------
--- TBC_Greys_References
--- --------------------------------------------------------
+-- --------------------------------------------------------
+-- TBC_Greys_References
+-- --------------------------------------------------------
SET @GreyTBC := 4000; -- reference starting value TDB Field
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @GreyTBC AND @GreyTBC+2;
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
@@ -99,9 +99,9 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@GreyTBC+2,25394,0,1,1,1,1), -- Deteriorating Plate Helmet
(@GreyTBC+2,25395,0,1,1,1,1), -- Deteriorating Plate Pants
(@GreyTBC+2,25396,0,1,1,1,1); -- Deteriorating Plate Shoulderpads
--- --------------------------------------------------------
--- TBC_Greens_References
--- --------------------------------------------------------
+-- --------------------------------------------------------
+-- TBC_Greens_References
+-- --------------------------------------------------------
SET @GreenTBC := 4100; -- reference starting value TDB Field
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @GreenTBC AND @GreenTBC+13;
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
@@ -719,9 +719,9 @@ INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`loo
(@GreenTBC+13,25023,0,1,1,1,1), -- Warlord's Sabatons
(@GreenTBC+13,25309,0,1,1,1,1), -- Warpdagger
(@GreenTBC+13,25253,0,1,1,1,1); -- Windspear Longbow
--- --------------------------------------------------------
--- TBC_Blues_References
--- --------------------------------------------------------
+-- --------------------------------------------------------
+-- TBC_Blues_References
+-- --------------------------------------------------------
SET @BlueTBC := 4200; -- reference starting value TDB Field
DELETE FROM `reference_loot_template` WHERE `entry` BETWEEN @BlueTBC AND @BlueTBC+10;
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
diff --git a/sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql b/sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql
index 57be9083048..8390f14ba80 100644
--- a/sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql
+++ b/sql/old/3.3.5a/2012_06_02_04_world_reference_loot_template.sql
@@ -1,4 +1,4 @@
-DELETE FROM `reference_loot_template` WHERE `entry` IN (14011,14012);
+DELETE FROM `reference_loot_template` WHERE `entry` IN (14011,14012);
INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
(14011,37759,0,1,1,1,1), -- Rhie-ay's Clutching Gauntlets
(14011,37768,0,1,1,1,1), -- Leggings of Violent Exsanguination
diff --git a/sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql b/sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql
index 65d5d43bad2..ee265b3bdcc 100644
--- a/sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql
+++ b/sql/old/3.3.5a/2012_06_02_06_world_waypoints.sql
@@ -4,9 +4,9 @@ DELETE FROM `creature` WHERE `id` IN (27682,27608);
UPDATE `creature_template` SET `speed_walk`=9/2,`speed_run`=17/7,`InhabitType`=4 WHERE `entry`=26838;
SET @NPC := 99078;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3433.348,274.121,192.7347,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -40,9 +40,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,26,3382.149,279.6307,169.347,0,0,0,100,0);
SET @NPC := 99079;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3434.632,268.5218,212.5722,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -73,9 +73,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,23,3441.441,249.5543,185.3083,0,0,0,100,0);
SET @NPC := 99083;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3639.789,321.911,195.744,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -113,9 +113,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,30,3610.069,345.1742,204.7075,0,0,0,100,0);
SET @NPC := 99084;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3419.562,219.4669,185.8007,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -145,9 +145,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,22,3381.995,245.4414,151.9461,0,0,0,100,0);
SET @NPC := 99085;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3431.814,203.5959,199.4538,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -178,9 +178,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,23,3382.743,269.2179,222.0501,0,0,0,100,0);
SET @NPC := 99086;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3408.915,276.3928,180.561,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -204,9 +204,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,16,3268.329,422.1047,154.7629,0,0,0,100,0);
SET @NPC := 99087;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3748.954,236.7544,178.6408,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -237,9 +237,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
SET @NPC := 99088;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3412.463,216.0972,212.123,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -260,9 +260,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,13,3301.554,308.331,241.2928,0,0,0,100,0);
SET @NPC := 99089;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3100.95,567.1441,118.4118,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -289,15 +289,15 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
-- static
DELETE FROM `creature` WHERE `guid` IN (99090,99091);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(99090,27682,571,1,1,24743,0,2954.845,625.8646,146.2928,2.094395,120,0,0,38440,0,0),
(99091,27682,571,1,1,24743,0,3256.357,585.8403,136.8419,0.4363323,120,0,0,38440,0,0);
-- waypoints
SET @NPC := 99092;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3017.465,301.0079,204.943,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -315,9 +315,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,10,3017.465,301.0079,204.943,0,0,0,100,0);
SET @NPC := 99094;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3138.133,520.6823,53.44044,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -351,9 +351,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,26,3138.133,520.6823,53.44044,0,0,0,100,0);
SET @NPC := 99095;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3199.019,490.8836,212.5729,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -368,9 +368,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,7,3199.019,490.8836,212.5729,0,0,0,100,0);
SET @NPC := 99096;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3214.422,579.9131,196.0033,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -385,9 +385,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,7,3214.422,579.9131,196.0033,0,0,0,100,0);
SET @NPC := 99097;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3106.429,348.3322,212.4711,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -402,9 +402,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,7,3106.429,348.3322,212.4711,0,0,0,100,0);
SET @NPC := 99098;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3129.027,582.4556,247.3863,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -419,9 +419,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,7,3129.027,582.4556,247.3863,0,0,0,100,0);
SET @NPC := 99099;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3691.676,352.0933,342.2254,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -437,9 +437,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3691.676,352.0933,342.2254,0,0,0,100,0);
SET @NPC := 99093;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3036.494,602.2036,179.671,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -494,9 +494,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,47,3036.494,602.2036,179.671,0,0,0,100,0);
SET @NPC := 99103;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3065.57,646.0688,229.7383,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -518,9 +518,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,14,3065.57,646.0688,229.7383,0,0,0,100,0);
SET @NPC := 99104;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3112.661,560.2861,197.5214,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -573,9 +573,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,45,3112.661,560.2861,197.5214,0,0,0,100,0);
SET @NPC := 99105;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27682,571,1,1,24743,0,3040.376,545.7573,223.7107,1.91463,120,0,0,38440,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -612,9 +612,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
UPDATE `creature_template` SET `speed_walk`=7/2,`speed_run`=15/7,`InhabitType`=4 WHERE `entry`=27608;
SET @NPC := 99105;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3177.857,623.9463,234.0692,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -637,9 +637,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,15,3177.857,623.9463,234.0692,0,0,0,100,0);
SET @NPC := 99106;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,2980.341,629.1049,218.5251,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -655,9 +655,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,2980.341,629.1049,218.5251,0,0,0,100,0);
SET @NPC := 99107;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3488.651,-5.619141,169.4104,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -677,9 +677,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,12,3488.651,-5.619141,169.4104,0,0,0,100,0);
SET @NPC := 99108;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3542.247,134.1484,169.6936,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -705,9 +705,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,18,3542.247,134.1484,169.6936,0,0,0,100,0);
SET @NPC := 99109;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3590.88,69.88932,149.1064,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -724,9 +724,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,9,3590.88,69.88932,149.1064,0,0,0,100,0);
SET @NPC := 99110;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3424.549,257.6351,132.4231,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -746,9 +746,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,12,3424.549,257.6351,132.4231,0,0,0,100,0);
SET @NPC := 99111;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3485.543,172.4427,356.9669,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -764,9 +764,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3485.543,172.4427,356.9669,0,0,0,100,0);
SET @NPC := 99112;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3037.007,696.7842,221.9052,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -787,9 +787,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,13,3037.007,696.7842,221.9052,0,0,0,100,0);
SET @NPC := 99113;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3723.934,203.8074,149.416,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -814,9 +814,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,17,3723.934,203.8074,149.416,0,0,0,100,0);
SET @NPC := 99114;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3737.246,441.4471,163.1518,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -838,9 +838,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,14,3737.246,441.4471,163.1518,0,0,0,100,0);
SET @NPC := 99115;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3490.259,76.95345,197.2588,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -858,9 +858,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,10,3490.259,76.95345,197.2588,0,0,0,100,0);
SET @NPC := 99116;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3484.9,77.65061,181.4013,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -877,9 +877,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,9,3484.9,77.65061,181.4013,0,0,0,100,0);
SET @NPC := 99117;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,2938.209,403.6825,200.0642,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -901,9 +901,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,14,2938.209,403.6825,200.0642,0,0,0,100,0);
SET @NPC := 99118;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,27608,571,1,1,24140,0,3756.611,216.3398,142.0742,1.91463,120,0,0,92538,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -929,9 +929,9 @@ DELETE FROM `creature` WHERE `guid` IN (100170,100206,100207,100208,100209,10021
UPDATE `creature_template` SET `speed_walk`=9/2,`speed_run`=17/7,`InhabitType`=4 WHERE `entry`=26925;
SET @NPC := 100170;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3423.212,279.9993,128.0342,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -948,9 +948,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,9,3381.065,257.5826,128.0342,0,0,0,100,0);
SET @NPC := 100206;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3662.692,328.2304,338.4197,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -966,9 +966,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3691.676,352.0933,342.2254,0,0,0,100,0);
SET @NPC := 100207;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3657.962,213.0957,169.3146,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -990,9 +990,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,14,3648.757,225.0738,169.3146,0,0,0,100,0);
SET @NPC := 100208;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3606.596,396.9579,205.5612,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1010,9 +1010,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,10,3568.027,418.6763,205.5612,0,0,0,100,0);
SET @NPC := 100209;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3648.806,293.8063,321.0587,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1028,9 +1028,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3662.692,328.2304,338.4197,0,0,0,100,0);
SET @NPC := 100210;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3452.103,334.373,128.0342,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1047,9 +1047,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,9,3218.353,177.623,195.7842,0,0,0,100,0);
SET @NPC := 100213;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3648.806,293.8063,321.0587,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1065,9 +1065,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3795.056,64.55627,390.3087,0,0,0,100,0);
SET @NPC := 100215;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3606.596,396.9579,205.5612,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1085,9 +1085,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,10,3585.346,505.2079,272.8112,0,0,0,100,0);
SET @NPC := 100216;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3772.475,266.6113,254.1891,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1111,9 +1111,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,16,3798.725,252.1113,321.4391,0,0,0,100,0);
SET @NPC := 100226;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3447.796,171.34,125.7842,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1132,9 +1132,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,11,3433.646,226.0049,125.7842,0,0,0,100,0);
SET @NPC := 130999;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26925,571,1,1,6376,0,3750.984,407.8766,254.1891,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1164,9 +1164,9 @@ DELETE FROM `creature` WHERE `guid` IN (100823,100824,100825,100826,131035,13103
UPDATE `creature_template` SET `speed_walk`=7/2,`speed_run`=15/7,`InhabitType`=4 WHERE `entry`=26933;
SET @NPC := 100823;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3791.882,255.4148,152.3366,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1192,9 +1192,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,18,3786.234,277.9988,152.3366,0,0,0,100,0);
SET @NPC := 100824;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3559.792,412.912,244.8625,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1216,9 +1216,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,14,3479.214,376.5652,244.8625,0,0,0,100,0);
SET @NPC := 100825;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3424.446,300.7501,194.3189,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1233,9 +1233,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,7,3513.567,405.2664,194.3189,0,0,0,100,0);
SET @NPC := 100826;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3457.605,232.8917,280.631,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1251,9 +1251,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3516.544,159.0889,280.631,0,0,0,100,0);
SET @NPC := 131035;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3559.792,412.912,244.8625,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1275,9 +1275,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,14,3479.214,376.5652,244.8625,0,0,0,100,0);
SET @NPC := 131036;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3438.608,283.5485,224.3952,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1293,9 +1293,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,8,3437.712,218.1042,224.3952,0,0,0,100,0);
SET @NPC := 131037;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3337.373,175.2911,169.6936,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -1320,9 +1320,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,17,3554.261,69.58746,169.6936,0,0,0,100,0);
SET @NPC := 131038;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26933,571,1,1,0,0,3738.288,310.6056,206.0655,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
diff --git a/sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql b/sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql
index 60b936a7f72..79fa6b22cd2 100644
--- a/sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql
+++ b/sql/old/3.3.5a/2012_06_02_08_world_waypoints.sql
@@ -4,9 +4,9 @@ DELETE FROM `creature_addon` WHERE `guid` IN (97922,97923);
-- Pathing for Frigid Proto-Drake
SET @NPC := 97991;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7138.47,-2166.756,798.66,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -41,9 +41,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,27,7118.583,-2150.815,787.2991,0,0,0,100,0);
SET @NPC := 97992;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7368.505,-2205.943,843.7172,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -57,9 +57,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,6,7302.835,-2255.226,790.5214,0,0,0,100,0);
SET @NPC := 98025;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7139.471,-2158.159,806.128,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -98,9 +98,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,31,7133.573,-2119.781,811.7565,0,0,0,100,0);
SET @NPC := 98026;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7111.189,-2126.364,809.0059,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -134,9 +134,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,26,7139.663,-2146.639,806.1729,0,0,0,100,0);
SET @NPC := 98027;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7325.084,-2259.102,789.8701,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -175,9 +175,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,31,7324.438,-2258.339,789.8701,0,0,0,100,0);
SET @NPC := 97995;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7303.549,-2258.753,788.369,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
@@ -210,9 +210,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`
(@PATH,25,7305.381,-2260.717,790.9471,0,0,0,100,0);
SET @NPC := 98028;
-SET @PATH := @NPC*10;
+SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,29460,571,1,1,0,0,7133.43,-2118.791,811.7565,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
diff --git a/sql/old/3.3.5a/2012_06_03_01_world_creature.sql b/sql/old/3.3.5a/2012_06_03_01_world_creature.sql
index 68448b31591..2df2bd6fbc0 100644
--- a/sql/old/3.3.5a/2012_06_03_01_world_creature.sql
+++ b/sql/old/3.3.5a/2012_06_03_01_world_creature.sql
@@ -1,7 +1,7 @@
-- Add more Domesticated Felboar Spawns
SET @GUID := 43456;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+11;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,21195,530,1,1,0,0,-2547.195,1426.521,65.57381,1.465101,300,5,0,1,0,1),
(@GUID+1,21195,530,1,1,0,0,-2585.524,1448.067,53.78493,2.973133,300,5,0,1,0,1),
(@GUID+2,21195,530,1,1,0,0,-2513.349,1387.699,66.09725,4.945046,300,5,0,1,0,1),
diff --git a/sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql b/sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql
index 023182aaf1b..bed13c12210 100644
--- a/sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_06_03_03_world_quest_template.sql
@@ -38,7 +38,7 @@ UPDATE `quest_template` SET `OfferRewardText`='$N! You are the $g man:woman;!!!$
UPDATE `quest_template` SET `OfferRewardText`='Ah, Andre''s head. So I guess he''ll make his trial after all!$B$BMuch appreciated, $N. Now if you''ll just sign here, I can issue you payment for services rendered.$B$BDon''t worry about the small print. It''s harmless, and... I don''t think there''s a magnifying glass small enough to read it anyway.' WHERE `Id`=2875; -- WANTED: Andre Firebeard
UPDATE `quest_template` SET `OfferRewardText`='Great, thanks for the shipment! Now MacKinley and I can finally settle our wager.' WHERE `Id`=2873; -- Stoley's Shipment
UPDATE `quest_template` SET `OfferRewardText`='You have my sincere thanks for your efforts, $N. Though much remains to be done, it gladdens me to know we have helped some find their long-deserved rest.' WHERE `Id`=10047; -- The Path of Glory
-UPDATE `quest_template` SET `OfferRewardText`='Well, I must say, I am impressed, $N. I didn''t think you had the mettle for this mission. Well done. Well done, indeed.
+UPDATE `quest_template` SET `OfferRewardText`='Well, I must say, I am impressed, $N. I didn''t think you had the mettle for this mission. Well done. Well done, indeed.
' WHERE `Id`=10394; -- Disruption - Forge Camp: Mageddon
UPDATE `quest_template` SET `OfferRewardText`='It worked! You got the essence! Well done, $N! Well done!$B$BThis essence will be invaluable in my research. I hope to one day learn how to capture living dragon whelps, or perhaps capture their eggs. If I could find a way to do that, then I would be the envy of dragon scholars around the world!$B$BMy employer would also be happy, and as I said before, he''s someone you want to keep happy...' WHERE `Id`=4726; -- Broodling Essence
UPDATE `quest_template` SET `OfferRewardText`='There is no doubt, this is raw saronite. We''ve seen weapons made from it in the hands of the Lich King''s chosen before, but this is the first time it''s been used to arm anything else. The scale of that mining operation must be huge.' WHERE `Id`=13138; -- I'm Smelting... Smelting!
@@ -362,7 +362,7 @@ UPDATE `quest_template` SET `OfferRewardText`='You have seen the Chamber of Khaz
UPDATE `quest_template` SET `OfferRewardText`='Well done, $N. Your actions in the field are instrumental in our battle for Hellfire Peninsula.' WHERE `Id`=13408; -- Hellfire Fortifications
UPDATE `quest_template` SET `OfferRewardText`='I have to hand it to you, $N, you''re a fighter born! Those Horde yokels may never know how close they came to the end. It takes real character to step in harm''s way on behalf of your enemies. That''s the kind of honor and commitment that holds the Alliance together! $B$B<Field Marshal Brock salutes you crisply.>
' WHERE `Id`=10396; -- Enemy of my Enemy...
-UPDATE `quest_template` SET `OfferRewardText`='It is fortuitous that you intercepted this missive when you did, $N. Though it will take me some time to decipher, I can already sense the hatred and urgency woven into this scroll. I fear the Legion''s true motives in this land will soon be made evident...$B$BGive me a moment to decipher this script. $B$B<Warp-Scryer Kryv begins to read the demonic missive>
+UPDATE `quest_template` SET `OfferRewardText`='It is fortuitous that you intercepted this missive when you did, $N. Though it will take me some time to decipher, I can already sense the hatred and urgency woven into this scroll. I fear the Legion''s true motives in this land will soon be made evident...$B$BGive me a moment to decipher this script. $B$B<Warp-Scryer Kryv begins to read the demonic missive>
' WHERE `Id`=10395; -- The Dark Missive
UPDATE `quest_template` SET `OfferRewardText`='Are you certain of your choice, $N? The Aldor will welcome you as an ally, but the Scryers will not easily forgive your decision.' WHERE `Id`=10551; -- Allegiance to the Aldor
UPDATE `quest_template` SET `OfferRewardText`='Welcome back from your exercises, $N. I''m confident that you will make us proud when the competition starts.' WHERE `Id`=13749; -- A Valiant's Field Training
@@ -426,7 +426,7 @@ UPDATE `quest_template` SET `OfferRewardText`='So, sister, you think that comple
UPDATE `quest_template` SET `OfferRewardText`='These will do nicely. I''ll have the harness ready for you in no time.' WHERE `Id`=12900; -- Making a Harness
UPDATE `quest_template` SET `OfferRewardText`='I''m impressed. I never thought I would see an icemaw matriarch again. Especially not one this size.' WHERE `Id`=12983; -- The Last of Her Kind
UPDATE `quest_template` SET `OfferRewardText`='The jormungar are vile creatures. You did well in destroying them.' WHERE `Id`=12989; -- The Slithering Darkness
-UPDATE `quest_template` SET `OfferRewardText`='Not bad. I was hoping Kirgaraak would snap your neck so I could keep your bear.$B$BJust joking, sister. Well... half-joking. That''s a really nice bear you''ve got.' WHERE `Id`=12996; -- The Warm-Up
+UPDATE `quest_template` SET `OfferRewardText`='Not bad. I was hoping Kirgaraak would snap your neck so I could keep your bear.$B$BJust joking, sister. Well... half-joking. That''s a really nice bear you''ve got.' WHERE `Id`=12996; -- The Warm-Up
UPDATE `quest_template` SET `OfferRewardText`='You really did it! You made it out with your health. Wish we could say the same for your bear.$B$BIt''s going to take a while for her to recover. Fortunately you won''t need her for a while.' WHERE `Id`=12997; -- Into the Pit
UPDATE `quest_template` SET `OfferRewardText`='You''ve really made it this far. Never would I have thought you''d progress so quickly among the hyldnir.' WHERE `Id`=13061; -- Prepare for Glory
UPDATE `quest_template` SET `OfferRewardText`='Are you ready to ride, sister? There is no coming back.' WHERE `Id`=13062; -- Lok'lira's Parting Gift
@@ -455,7 +455,7 @@ UPDATE `quest_template` SET `OfferRewardText`='I have never seen such terror in
UPDATE `quest_template` SET `OfferRewardText`='It''s about damned time! No doubt that Baron Sliver took his sweet time in sending you to me.$B$BI should have that empty space above his shoulders removed!' WHERE `Id`=12806; -- To the Rise with all Due Haste!
UPDATE `quest_template` SET `OfferRewardText`='In their folly, the Argent Crusade has chosen to turn a blind eye upon the presence of the Scarlet Onslaught. We will not.$B$BWe do not care if they might assist in the battle against the Lich King. We do not believe them worthy of existence. We will be their end, once and for all!' WHERE `Id`=12807; -- The Story Thus Far...
UPDATE `quest_template` SET `OfferRewardText`='I thought so! I couldn''t quite make out the destruction from here, but I can imagine how it must have looked. Splendid!$B$BWell done, $n. Thrallmar command will be happy to hear of your success!' WHERE `Id`=10087; -- Burn It Up... For the Horde!
-UPDATE `quest_template` SET `OfferRewardText`='Well done, $C, That''s one less forge camp we''ll need to worry about. It''ll take the Legion a while to get that facility back up and running. You''ve just bought us the one thing we''d run out of - time.
+UPDATE `quest_template` SET `OfferRewardText`='Well done, $C, That''s one less forge camp we''ll need to worry about. It''ll take the Legion a while to get that facility back up and running. You''ve just bought us the one thing we''d run out of - time.
' WHERE `Id`=10390; -- Forge Camp: Mageddon
UPDATE `quest_template` SET `OfferRewardText`='Now Veranus can finally rest in peace.' WHERE `Id`=24586; -- Razorscale Must Die!
UPDATE `quest_template` SET `OfferRewardText`='That will keep our recruits fed! Here''s how you cook it.' WHERE `Id`=13088; -- Northern Cooking
@@ -505,7 +505,7 @@ UPDATE `quest_template` SET `RequestItemsText`='Got the five Wastewander water p
UPDATE `quest_template` SET `RequestItemsText`='Yes $c, I am an official of the Gadgetzan Water Company. What can I assist you with?' WHERE `Id`=2781; -- WANTED: Caliph Scorpidsting
UPDATE `quest_template` SET `RequestItemsText`='You look a little dazed. Have you been reading our legal documents?' WHERE `Id`=2875; -- WANTED: Andre Firebeard
UPDATE `quest_template` SET `RequestItemsText`='The cries seem somehow... fainter than they were before. The Light grant it''s more than wishful thinking.' WHERE `Id`=10047; -- The Path of Glory
-UPDATE `quest_template` SET `RequestItemsText`='The Legion could start shelling the Horde at any time, $N! You need to destroy those blasted cannons!
+UPDATE `quest_template` SET `RequestItemsText`='The Legion could start shelling the Horde at any time, $N! You need to destroy those blasted cannons!
' WHERE `Id`=10396; -- Enemy of my Enemy...
UPDATE `quest_template` SET `RequestItemsText`='Do you have the broodling essence, $N? I can''t wait to study it.$B$BAnd besides that... my patron is not the type of person you want to disappoint.' WHERE `Id`=4726; -- Broodling Essence
UPDATE `quest_template` SET `RequestItemsText`='Hey, $N. Been to the Grizzled Den yet? Those Wendigos can be fierce.' WHERE `Id`=313; -- The Grizzled Den
@@ -538,13 +538,13 @@ UPDATE `quest_template` SET `RequestItemsText`='You find anything yet, $N?' WHER
UPDATE `quest_template` SET `RequestItemsText`='Any luck with the bloodtooth? Don''t forget what I told you about making blood pools.' WHERE `Id`=13833; -- Blood Is Thicker
UPDATE `quest_template` SET `RequestItemsText`='What is it that you''ve found, $N?' WHERE `Id`=24442; -- Battle Plans Of The Kvaldir
UPDATE `quest_template` SET `RequestItemsText`='Watch where you''re stepping! Watch watch watch!! This is delicate stuff you see here, and if we''re to win then it must all work perfectly!' WHERE `Id`=1179; -- The Brassbolts Brothers
-UPDATE `quest_template` SET `RequestItemsText`='Tell me, $N, has the deed been done? Has the Legionlord been vanquished?
+UPDATE `quest_template` SET `RequestItemsText`='Tell me, $N, has the deed been done? Has the Legionlord been vanquished?
' WHERE `Id`=10400; -- Overlord
UPDATE `quest_template` SET `RequestItemsText`='We need to get this information to the Alliance! It may well be the key to Arthas'' defeat.' WHERE `Id`=24500; -- Wrath of the Lich King
UPDATE `quest_template` SET `RequestItemsText`='We are currently accepting donations for wool cloth. A donation of sixty pieces of wool cloth will net you full recognition by the Gnomeregan Exiles for your generous actions. Our stores are such on wool that we would only need sixty pieces from you total; we should be able to acquire enough from others in the realm to support our drive.$B$BIf you have the sixty pieces of wool cloth on you and are ready to donate them, I''m able to take them from you now.' WHERE `Id`=7807; -- A Donation of Wool
UPDATE `quest_template` SET `RequestItemsText`='As with most other fabrics, our stocks of silk are at an all-time low. Our stores are such that we''d only need sixty pieces of silk from you total; we should be able to reach our goal with the support of others.$B$BA benevolent gift such as silk, might I add, would certainly increase your local standing in the community! If you have the sixty pieces of silk cloth on you and are ready to donate them, I''m able to take them from you now.' WHERE `Id`=7808; -- A Donation of Silk
UPDATE `quest_template` SET `RequestItemsText`='<Hansel is busily rubbing his bunions.>$B$BDon''t just stand there, grab some oil and a luffa and get to scrubbin'' these bunions.$B$BYe don''t have a luffa? Well then! Perhaps it''s time I sent you out to find a luffa?$B$BHey, where are ye goin''?' WHERE `Id`=7727; -- Incendosaurs? Whateverosaur is More Like It
-UPDATE `quest_template` SET `RequestItemsText`='Eight, $N. I need eight! ' WHERE `Id`=3443; -- Forging the Shaft
+UPDATE `quest_template` SET `RequestItemsText`='Eight, $N. I need eight! ' WHERE `Id`=3443; -- Forging the Shaft
UPDATE `quest_template` SET `RequestItemsText`='Don''t let the crazy goggles fool you, $N. I''m the smart one here.' WHERE `Id`=7702; -- Kill 'Em With Sleep Deprivation
UPDATE `quest_template` SET `RequestItemsText`='Let''s not waste more of my precious time with jibber jabber, $r. It''s time to focus on replenishing our dwindling fiery flux supply.$B$BWhat I''m gonna need from you is the following:$B$B*Incendosaur scales.$B$B*Heavy Leather.$B$B*Coal.$B$BI''ll take all that you can offer!$B$BAnd you''ll do it fast if you wanna get in good with the Brotherhood.
' WHERE `Id`=8242; -- Restoring Fiery Flux Supplies via Heavy Leather
@@ -581,11 +581,11 @@ UPDATE `quest_template` SET `RequestItemsText`='You are the delivery $g boy:girl
UPDATE `quest_template` SET `RequestItemsText`='What''s all this?$B$BBy any chance have you seen my no-good apprentice, Pestlepot?$B$BI sent him on an errand quite some time ago and he has yet to return!' WHERE `Id`=12527; -- Gluttonous Lurkers
UPDATE `quest_template` SET `RequestItemsText`='Have you collected the water-poppies, $n?' WHERE `Id`=12564; -- Troll Patrol: Something for the Pain
UPDATE `quest_template` SET `RequestItemsText`='You seek to change the path you walk, $N?' WHERE `Id`=24819; -- A Change of Heart
-UPDATE `quest_template` SET `RequestItemsText`='You close down that war-portal yet, $N? While you''re here shuffling your feet, there are more demons entering Outland!
+UPDATE `quest_template` SET `RequestItemsText`='You close down that war-portal yet, $N? While you''re here shuffling your feet, there are more demons entering Outland!
' WHERE `Id`=10397; -- Invasion Point: Annihilator
UPDATE `quest_template` SET `RequestItemsText`='What is it, $C? I sense you''ve found something that speaks of a coming doom.
' WHERE `Id`=10395; -- The Dark Missive
-UPDATE `quest_template` SET `RequestItemsText`='I sense a growing darkness within your heart, $C. Have you faced your fear? Or does it still await you at the Pools of Aggonar?
+UPDATE `quest_template` SET `RequestItemsText`='I sense a growing darkness within your heart, $C. Have you faced your fear? Or does it still await you at the Pools of Aggonar?
' WHERE `Id`=10399; -- The Heart of Darkness
UPDATE `quest_template` SET `RequestItemsText`='$N, you have returned. What did you learn?$B$BWhat is that sound?' WHERE `Id`=11629; -- Return to the Spirit Talker
UPDATE `quest_template` SET `RequestItemsText`='What''s this? Who are you?$B$BYou''re one of those $r things! How can you speak our tongue?' WHERE `Id`=11559; -- Winterfin Commerce
@@ -599,5 +599,5 @@ UPDATE `quest_template` SET `RequestItemsText`='Have you collected 10 Scarlet In
UPDATE `quest_template` SET `RequestItemsText`='You seek to continue down the path of destruction?' WHERE `Id`=24828; -- Path of Destruction
UPDATE `quest_template` SET `RequestItemsText`='You seek to change the path you walk, $N?' WHERE `Id`=24836; -- A Change of Heart
UPDATE `quest_template` SET `RequestItemsText`='Have you scouted all of the Blood Furnace yet? What do you have to tell me?' WHERE `Id`=9608; -- Heart of Rage
-UPDATE `quest_template` SET `RequestItemsText`='The tears of the Fire Lord are a rare find indeed.$B$BOffer 1 Blood of the Mountain and you shall be granted favor amongst the Brotherhood.
+UPDATE `quest_template` SET `RequestItemsText`='The tears of the Fire Lord are a rare find indeed.$B$BOffer 1 Blood of the Mountain and you shall be granted favor amongst the Brotherhood.
' WHERE `Id`=6646; -- Favor Amongst the Brotherhood, Blood of the Mountain
diff --git a/sql/old/3.3.5a/2012_06_04_01_world_gossip.sql b/sql/old/3.3.5a/2012_06_04_01_world_gossip.sql
index f6246967452..180a145678a 100644
--- a/sql/old/3.3.5a/2012_06_04_01_world_gossip.sql
+++ b/sql/old/3.3.5a/2012_06_04_01_world_gossip.sql
@@ -6,7 +6,7 @@ UPDATE `creature_template` SET `gossip_menu_id`=7046 WHERE `entry`=16015;
DELETE FROM `gossip_menu` WHERE `entry`=7046;
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7046,8292);
DELETE FROM `gossip_menu_option` WHERE `menu_id`=7046 AND `id` IN (0);
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(7046,0,1, 'Hey Vi''el, show me your wares!',3,128,0,0,0,0, '');
UPDATE `creature_template` SET `gossip_menu_id`=9821 WHERE `entry`=11119;
UPDATE `creature_template` SET `gossip_menu_id`=6092 WHERE `entry`=14742;
diff --git a/sql/old/3.3.5a/2012_06_04_03_world_conditions.sql b/sql/old/3.3.5a/2012_06_04_03_world_conditions.sql
index 0eadeb8542e..6426df66375 100644
--- a/sql/old/3.3.5a/2012_06_04_03_world_conditions.sql
+++ b/sql/old/3.3.5a/2012_06_04_03_world_conditions.sql
@@ -1,5 +1,5 @@
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 19 AND `SourceEntry` IN (13408,13409,13410,13411);
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(19, 0, 13408, 0, 0, 15, 0, 1503, 0, 0, 0, 0, '', 'Hellfire Fortifications - Alliance -All classes other than dk'),
(19, 0, 13409, 0, 0, 15, 0, 1503, 0, 0, 0, 0, '', 'Hellfire Fortifications - Horde -All classes other than dk'),
(19, 0, 13410, 0, 0, 15, 0, 32, 0, 0, 0, 0, '', 'Hellfire Fortifications - Alliance -Only dk'),
diff --git a/sql/old/3.3.5a/2012_06_05_01_world_gossip.sql b/sql/old/3.3.5a/2012_06_05_01_world_gossip.sql
index 11697eeffd4..97eb4f58e33 100644
--- a/sql/old/3.3.5a/2012_06_05_01_world_gossip.sql
+++ b/sql/old/3.3.5a/2012_06_05_01_world_gossip.sql
@@ -9,7 +9,7 @@ UPDATE `creature_template` SET `gossip_menu_id`=2703,`ScriptName`='' WHERE `entr
DELETE FROM `gossip_menu` WHERE `entry` IN (2703,21320,21321);
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (2703,3375),(2703,3377),(21320,3382),(21321,3383);
DELETE FROM `gossip_menu_option` WHERE `menu_id`=2703 AND `id` IN (0,1,2);
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(2703,0,0, 'How do I use the Cache of Mau''ari?',1,1,21320,0,0,0, ''),
(2703,1,0, 'What is E''ko?',1,1,21321,0,0,0, ''),
(2703,2,0, 'I''d like you to make me a new Cache of Mau''ari please',1,1,0,0,0,0, '');
diff --git a/sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql b/sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql
index 84893613c75..d6ee0349fc4 100644
--- a/sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql
+++ b/sql/old/3.3.5a/2012_06_05_01_world_gossip_sai.sql
@@ -10,7 +10,7 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type
DELETE FROM `gossip_menu` WHERE `entry` IN (3050,3051,3052,3053,3054);
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (3050,3759),(3051,3760),(3052,3761),(3053,3762),(3054,3763);
DELETE FROM `gossip_menu_option` WHERE `menu_id` BETWEEN 3049 AND 3054;
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(3049,0,0, 'You will have to excuse me, Lorax, I do not speak ''crazy''.',1,1,3050,0,0,0, ''),
(3050,0,0, 'My apologies, I did not realize that you could understand what I was saying. What is it you are doing out here?',1,1,3051,0,0,0, ''),
(3051,0,0, 'Do you? Perhaps you should tell me what it is that is bothering you',1,1,3052,0,0,0, ''),
diff --git a/sql/old/3.3.5a/2012_06_06_00_world_script.sql b/sql/old/3.3.5a/2012_06_06_00_world_script.sql
index 727d28e8ea9..d2790265851 100644
--- a/sql/old/3.3.5a/2012_06_06_00_world_script.sql
+++ b/sql/old/3.3.5a/2012_06_06_00_world_script.sql
@@ -14,7 +14,7 @@ DELETE FROM `gossip_menu` WHERE `entry` IN (21322,21323,21324,21325,21326);
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (21322,3759),(21323,3760),(21324,3761),(21325,3762),(21326,3763);
DELETE FROM `gossip_menu_option` WHERE `menu_id`=3049;
DELETE FROM `gossip_menu_option` WHERE `menu_id` BETWEEN 21322 AND 21326;
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(3049,0,0, 'You will have to excuse me, Lorax, I do not speak ''crazy''.',1,1,21322,0,0,0, ''),
(21322,0,0, 'My apologies, I did not realize that you could understand what I was saying. What is it you are doing out here?',1,1,21323,0,0,0, ''),
(21323,0,0, 'Do you? Perhaps you should tell me what it is that is bothering you',1,1,21324,0,0,0, ''),
diff --git a/sql/old/3.3.5a/2012_06_07_00_world_gossip.sql b/sql/old/3.3.5a/2012_06_07_00_world_gossip.sql
index aac3ac53e74..0d53f910af8 100644
--- a/sql/old/3.3.5a/2012_06_07_00_world_gossip.sql
+++ b/sql/old/3.3.5a/2012_06_07_00_world_gossip.sql
@@ -13,7 +13,7 @@ DELETE FROM `gossip_menu` WHERE `entry`=10118 AND `text_id`=14076;
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10136,14072),(10138,14074),(10118,14076);
-- Add Gossip Options
DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP AND `id` IN (2,3,4,5);
-INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
+INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES
(@GOSSIP,2,0, 'Tell me about the Wispcloak Recipe.',1,1,10136,0,0,0, ''),
(@GOSSIP,3,0, 'I am ready to learn the Wispcloak Recipe.',1,1,0,0,0,0, ''),
(@GOSSIP,4,0, 'Tell me about the Deathchill Cloak Recipe.',1,1,10138,0,0,0, ''),
diff --git a/sql/old/3.3.5a/2012_06_07_05_world_misc.sql b/sql/old/3.3.5a/2012_06_07_05_world_misc.sql
index d45384dd3ef..8c7f4c54d10 100644
--- a/sql/old/3.3.5a/2012_06_07_05_world_misc.sql
+++ b/sql/old/3.3.5a/2012_06_07_05_world_misc.sql
@@ -6,7 +6,7 @@ DELETE FROM `creature_addon` WHERE `guid` IN (45208,45099,45075,45136,12925,1240
UPDATE `creature_template` SET `gossip_menu_id`=9054 WHERE `entry`=25021;
UPDATE `creature_template` SET `gossip_menu_id`=9056 WHERE `entry`=25022;
UPDATE `creature_template` SET `gossip_menu_id`=9057 WHERE `entry`=25023;
-UPDATE `creature_template` SET `gossip_menu_id`=9054 WHERE `entry`=25024;
+UPDATE `creature_template` SET `gossip_menu_id`=9054 WHERE `entry`=25024;
UPDATE `creature_template` SET `gossip_menu_id`=9077 WHERE `entry`=25025;
DELETE FROM `gossip_menu` WHERE `entry`=9054 AND `text_id`=12243;
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9054,12243);
diff --git a/sql/old/3.3.5a/2012_06_12_00_world_transport.sql b/sql/old/3.3.5a/2012_06_12_00_world_transport.sql
index d3a35c254d9..28779398a7a 100644
--- a/sql/old/3.3.5a/2012_06_12_00_world_transport.sql
+++ b/sql/old/3.3.5a/2012_06_12_00_world_transport.sql
@@ -1,7 +1,7 @@
-- Zeppelin: <The Zephyr> "Durotar to Thunder Bluff"
SET @GUID := 43468;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+11;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,3084,647,1,1,0,0,-4.83257,-4.312334,-17.63218,1.623156,180,0,0,1,0,0), -- Bluffwatcher
(@GUID+1,3084,647,1,1,0,0,-5.206744,-11.34318,-17.61012,4.712389,180,0,0,1,0,0), -- Bluffwatcher
(@GUID+2,24934,647,1,1,0,0,10.32099,-3.573514,-23.49413,3.176499,180,0,0,1,0,0), -- Snack-O-Matic IV
diff --git a/sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql b/sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql
index b7f61f407b4..b72461e8d39 100644
--- a/sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/2012_06_14_02_world_spell_bonus_data.sql
@@ -1,6 +1,6 @@
-- Death Knight
DELETE FROM `spell_bonus_data` WHERE `entry` IN(58621, 47632, 47633, 50444, 70890, 50526, 48982, 59754, 49184);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(58621, 0, -1, 0.08, -1, 'Death Knight - Glyph of Chains of Ice'), -- Shouldn't scale with SP.
(47632, 0, -1, 0.15, -1, 'Death Knight - Death Coil'), -- Shouldn't scale with SP.
(47633, 0, -1, 0.15, -1, 'Death Knight - Death Coil (Heal)'), -- Shouldn't scale with SP.
@@ -15,13 +15,13 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
DELETE FROM `spell_bonus_data` WHERE `entry` IN(48450, 48451); -- Lifebloom Rank 2, Rank 3
DELETE FROM `spell_bonus_data` WHERE `entry` IN(48567, 48568); -- Lacerate Rank 2, Rank 3
DELETE FROM `spell_bonus_data` WHERE `entry` IN(33745, 9007);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(33745, 0, 0, 0.01, 0.01, 'Druid - Lacerate ($AP*0.05/number of ticks)'), -- Direct damage should scale with AP, based on DrDamage addon(3.3.5a).
(9007, -1, 0, -1, 0.03, 'Druid - Pounce Bleed (Triggered)'); -- Shouldn't scale with SP. Increase AP coefficient, based on DrDamage addon(3.3.5a) and Wowwiki.com.
-- Hunter
DELETE FROM `spell_bonus_data` WHERE `entry` IN(56641, 42243, 3674, 19306, 1495, 63468, 136);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(56641, 0, -1, 0.1, -1, 'Hunter - Steady Shot'), -- Shouldn't scale with SP.
(42243, 0, -1, 0.0837, -1, 'Hunter - Volley (Triggered)'), -- Shouldn't scale with SP.
(3674, -1, 0, -1, 0.023, 'Hunter - Black Arrow ($RAP*0.1 / number of ticks)'), -- Shouldn't scale with SP. Increase AP coefficient, based on DrDamage addon(3.3.5a).
@@ -33,7 +33,7 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- Mage
DELETE FROM `spell_bonus_data` WHERE `entry`=7269; -- Arcane Missiles Triggered Spell Rank 2
DELETE FROM `spell_bonus_data` WHERE `entry` IN(133, 44614, 44457, 44461);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(133, 1, 0, -1, -1, 'Mage - Fireball'), -- DoT componenet shouldn't scale.
(44614, 0.8571, 0, -1, -1, 'Mage - Frostfire Bolt'), -- DoT componenet shouldn't scale.
(44457, -1, 0.2, -1, -1, 'Mage - Living Bomb ($SP*0.8 / number of ticks)'), -- Direct damage bonus correction.
@@ -41,7 +41,7 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- Paladin
DELETE FROM `spell_bonus_data` WHERE `entry` IN(633, 54158, 20467, 20187, 31803, 53742, 31804, 53733);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(633, 0, -1, -1, -1, 'Paladin - Lay on Hands'), -- Shouldn't scale with SP.
(54158, 0.27, -1, 0.175, -1, 'Paladin - Judgement (Seal of Light, Seal of Wisdom, Seal of Justice)'), -- Increase coefficient, based on Wowwiki.com.
(20467, 0.14, -1, 0.115, -1, 'Paladin - Judgement of Command'), -- Decrease coefficient, based on Wowwiki.com.
@@ -55,7 +55,7 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
DELETE FROM `spell_bonus_data` WHERE `entry` IN(52983, 52954, 58985); -- Penance Heal Rank 2, Rank 3, Rank 4
DELETE FROM `spell_bonus_data` WHERE `entry` IN(52998, 52999, 53000); -- Penance Hurt Rank 2, Rank 3, Rank 4
DELETE FROM `spell_bonus_data` WHERE `entry` IN(7001);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(7001, -1, 0.626, -1, -1, 'Priest - Lightwell Renew ($SP*1.878 / number of ticks)'); -- Increase coefficient, based on DrDamage addon(3.3.5a).
-- Rogue
@@ -63,7 +63,7 @@ DELETE FROM `spell_bonus_data` WHERE `entry` IN(819, 11353, 11354, 25349, 26968,
DELETE FROM `spell_bonus_data` WHERE `entry` IN(8685, 8689, 11335, 11336, 11337, 26890, 57964, 57965); -- Instant Poison Rank 2, Rank 3, etc.
DELETE FROM `spell_bonus_data` WHERE `entry` IN(13222, 13223, 13224, 27189, 57974, 57975); -- Wound Poison Rank 2, Rank 3, etc.
DELETE FROM `spell_bonus_data` WHERE `entry` IN(32645, 2098, 703, 1776, 1943, 8680, 26688, 13218);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(32645, 0, -1, -1, -1, 'Rogue - Envenom'), -- Shouldn't scale with SP.
(2098, 0, -1, -1, -1, 'Rogue - Eviscerate'), -- Shouldn't scale with SP.
(703, -1, 0, -1, 0.07, 'Rogue - Garrote'), -- Shouldn't scale with SP.
diff --git a/sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql b/sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql
index dc59f152e33..1f43c115d3b 100644
--- a/sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql
+++ b/sql/old/3.3.5a/2012_06_14_03_world_spell_bonus_data.sql
@@ -1,6 +1,6 @@
-- Death Knight
DELETE FROM `spell_bonus_data` WHERE `entry` IN (58621, 47632, 47633, 50444, 70890, 50526, 48982, 59754, 49184);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(58621, 0, 0, 0.08, 0, 'Death Knight - Glyph of Chains of Ice'), -- Shouldn't scale with SP.
(47632, 0, 0, 0.15, 0, 'Death Knight - Death Coil'), -- Shouldn't scale with SP.
(47633, 0, 0, 0.15, 0, 'Death Knight - Death Coil (Heal)'), -- Shouldn't scale with SP.
@@ -13,13 +13,13 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- Druid
DELETE FROM `spell_bonus_data` WHERE `entry` IN (33745, 9007);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(33745, 0, 0, 0.01, 0.01, 'Druid - Lacerate ($AP*0.05/number of ticks)'), -- Direct damage should scale with AP, based on DrDamage addon(3.3.5a).
(9007, 0, 0, 0, 0.03, 'Druid - Pounce Bleed (Triggered)'); -- Shouldn't scale with SP. Increase AP coefficient, based on DrDamage addon(3.3.5a) and Wowwiki.com.
-- Hunter
DELETE FROM `spell_bonus_data` WHERE `entry` IN (56641, 42243, 3674, 19306, 1495, 63468, 136);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(56641, 0, 0, 0.1, 0, 'Hunter - Steady Shot'), -- Shouldn't scale with SP.
(42243, 0, 0, 0.0837, 0, 'Hunter - Volley (Triggered)'), -- Shouldn't scale with SP.
(3674, 0, 0, 0, 0.023, 'Hunter - Black Arrow ($RAP*0.1 / number of ticks)'), -- Shouldn't scale with SP. Increase AP coefficient, based on DrDamage addon(3.3.5a).
@@ -30,7 +30,7 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- Mage
DELETE FROM `spell_bonus_data` WHERE `entry` IN (133, 44614, 44457, 44461);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(133, 1, 0, 0, 0, 'Mage - Fireball'), -- DoT componenet shouldn't scale.
(44614, 0.8571, 0, 0, 0, 'Mage - Frostfire Bolt'), -- DoT componenet shouldn't scale.
(44457, 0, 0.2, 0, 0, 'Mage - Living Bomb ($SP*0.8 / number of ticks)'), -- Direct damage bonus correction.
@@ -38,7 +38,7 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- Paladin
DELETE FROM `spell_bonus_data` WHERE `entry` IN (633, 54158, 20467, 20187, 31803, 53742, 31804, 53733);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(633, 0, 0, 0, 0, 'Paladin - Lay on Hands'), -- Shouldn't scale with SP.
(54158, 0.27, 0, 0.175, 0, 'Paladin - Judgement (Seal of Light, Seal of Wisdom, Seal of Justice)'), -- Increase coefficient, based on Wowwiki.com.
(20467, 0.14, 0, 0.115, 0, 'Paladin - Judgement of Command'), -- Decrease coefficient, based on Wowwiki.com.
@@ -50,12 +50,12 @@ INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`
-- Priest
DELETE FROM `spell_bonus_data` WHERE `entry` = 7001;
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(7001, 0, 0.626, 0, 0, 'Priest - Lightwell Renew ($SP*1.878 / number of ticks)'); -- Increase coefficient, based on DrDamage addon(3.3.5a).
-- Rogue
DELETE FROM `spell_bonus_data` WHERE `entry` IN (32645, 2098, 703, 1776, 1943, 8680, 26688, 13218);
-INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES
(32645, 0, 0, 0, 0, 'Rogue - Envenom'), -- Shouldn't scale with SP.
(2098, 0, 0, 0, 0, 'Rogue - Eviscerate'), -- Shouldn't scale with SP.
(703, 0, 0, 0, 0.07, 'Rogue - Garrote'), -- Shouldn't scale with SP.
diff --git a/sql/old/3.3.5a/2012_06_16_01_world_creature.sql b/sql/old/3.3.5a/2012_06_16_01_world_creature.sql
index d44b568f79b..7fe69dff71f 100644
--- a/sql/old/3.3.5a/2012_06_16_01_world_creature.sql
+++ b/sql/old/3.3.5a/2012_06_16_01_world_creature.sql
@@ -1,6 +1,6 @@
-- Add missing Storm Totem spawn to Borean Tundra
SET @GUID := 12925;
DELETE FROM `creature` WHERE `guid`=@GUID;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,26048,571,1,1,0,0,3409.903,4128.829,18.13754,5.742133,300,0,0,1,0,0);
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|16777216 WHERE `entry`=26048;
diff --git a/sql/old/3.3.5a/2012_06_17_02_world_creature.sql b/sql/old/3.3.5a/2012_06_17_02_world_creature.sql
index a309ada3498..73ffdb26ff8 100644
--- a/sql/old/3.3.5a/2012_06_17_02_world_creature.sql
+++ b/sql/old/3.3.5a/2012_06_17_02_world_creature.sql
@@ -2,7 +2,7 @@
SET @GUID := 42187;
SET @ENTRY := 26924;
DELETE FROM `creature` WHERE `guid`=@GUID;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,@ENTRY,571,1,2,0,0,4834.98,-4754.5,32.5689,3.97935,180,0,0,1,0,0);
-- Add Aura to Gan'jo
DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
diff --git a/sql/old/3.3.5a/2012_06_19_02_world_misc.sql b/sql/old/3.3.5a/2012_06_19_02_world_misc.sql
index 32aa493f4f7..2d79a5e43af 100644
--- a/sql/old/3.3.5a/2012_06_19_02_world_misc.sql
+++ b/sql/old/3.3.5a/2012_06_19_02_world_misc.sql
@@ -2,7 +2,7 @@
SET @GUID := 42875;
SET @ENTRY := 26257;
DELETE FROM `creature` WHERE `guid` IN (@GUID,@GUID+1);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID,@ENTRY,571,1,1,0,0,3369.694,2528.735,197.4004,3.490659,180,0,0,1,0,0),
(@GUID+1,@ENTRY,571,1,1,0,0,3346.363,2534.127,197.4004,4.258604,180,0,0,1,0,0);
-- Add SAI
@@ -27,7 +27,7 @@ INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`
SET @NPC := 111304;
SET @PATH := @NPC*10;
DELETE FROM `creature` WHERE `guid`=@NPC;
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
(@NPC,26276,571,1,1,0,0,3560.472,1769.351,171.9977,1.91463,120,0,0,1,0,2);
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`,`bytes2`) VALUES (@NPC,@PATH,50331648,1);
diff --git a/sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql b/sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql
index a9565d36934..f8f05fd9396 100644
--- a/sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql
+++ b/sql/old/3.3.5a/2012_07_02_00_world_creature_onkill_reputation.sql
@@ -1,4 +1,4 @@
-- Add 10 reputation gaining from killing NPC Monstrous Kaliri towards Sha'tari Skyguard
-DELETE FROM `creature_onkill_reputation` WHERE `creature_id`=23051;
+DELETE FROM `creature_onkill_reputation` WHERE `creature_id`=23051;
INSERT INTO `creature_onkill_reputation` (`creature_id`,`RewOnKillRepFaction1`,`MaxStanding1`,`RewOnKillRepValue1`) VALUES
(23051,1031,7,10);
diff --git a/sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql b/sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql
index 1b9c4f4448c..6a9f6998324 100644
--- a/sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql
+++ b/sql/old/3.3.5a/2012_07_14_01_world_creature_loot_template.sql
@@ -2,8 +2,8 @@
UPDATE `creature_loot_template` SET `ChanceOrQuestChance`= -100 WHERE `item`=23270;
-- update Al'ar loot
-SET @gear := 34053;
-SET @talon := 34377;
+SET @gear := 34053;
+SET @talon := 34377;
SET @Alar := 19514;
DELETE FROM `creature_loot_template` WHERE `entry`=@Alar;
diff --git a/sql/old/3.3.5a/2012_07_29_08_world_sai.sql b/sql/old/3.3.5a/2012_07_29_08_world_sai.sql
index 796578d3f00..9ef63caba11 100644
--- a/sql/old/3.3.5a/2012_07_29_08_world_sai.sql
+++ b/sql/old/3.3.5a/2012_07_29_08_world_sai.sql
@@ -8,7 +8,7 @@ SET @SPELL2:= 8599; -- Enrage
-- Add SmartAI for Kolphis Darkscale
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
-DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
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
(@ENTRY,0,0,0,62,0,100,0,8439,0,0,0,15,@QUEST,0,0,0,0,0,7,0,0,0,0,0,0,0,'Kolphis Darkscale - On Gossip Select - Quest Credit'),
(@ENTRY,0,1,0,0,0,50,0,3000,3000,8000,8000,11,@SPELL1,0,0,0,0,0,2,0,0,0,0,0,0,0,'Kolphis Darkscale - Combat - Whirlwind'),
@@ -31,6 +31,6 @@ INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (8436,10540);
-- Add gossip_menu conditions
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=8436;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15,8436,0,0,0,9,0,@QUEST,0,0,0,0,'','Kolphis Darkscale - Show Gossip Option 0 - If on Quest Meeting at the Blackwing Coven'),
(14,8436,10540,0,0,28,0,@QUEST,0,0,0,0,'','Kolphis Darkscale - Show Gossip Menu - If Quest Meeting at the Blackwing Coven is Completed');
diff --git a/sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql b/sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql
index 66474bdb5e4..99089488941 100644
--- a/sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql
+++ b/sql/old/3.3.5a/2012_07_29_09_world_gossip_menu_option.sql
@@ -1,12 +1,12 @@
UPDATE `gossip_menu_option` SET
- `npc_option_npcflag` = 65536,
+ `npc_option_npcflag` = 65536,
`option_icon` = 5
WHERE
- `menu_id` = 1293 AND
- `id` = 1;
+ `menu_id` = 1293 AND
+ `id` = 1;
UPDATE `gossip_menu_option` SET
- `npc_option_npcflag` = 128
+ `npc_option_npcflag` = 128
WHERE
- `menu_id` = 1293 AND
- `id` = 2;
+ `menu_id` = 1293 AND
+ `id` = 2;
diff --git a/sql/old/3.3.5a/2012_08_04_00_world_disables.sql b/sql/old/3.3.5a/2012_08_04_00_world_disables.sql
index f3f197ba23a..b25af0201d0 100644
--- a/sql/old/3.3.5a/2012_08_04_00_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_00_world_disables.sql
@@ -1,4 +1,4 @@
-DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (73,108,241,242,259,326,327,352,390,406,462,490,497,534,548,612,636,740,774,796,797,798,799,800,801,802,803,810,811,814,820,839,856,859,904,946,987,988,989,1128,1129,1155,1156,1157,1158,1161,1162,1163,1165,1263,1272,1277,1278,1279,1280,1281,1283,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1390,1397,1441,1443,1460,1461,1533,1537,1538,1659,1660,1662,1663,1664,2020,2971,3023,3064,3241,3383,3401,3403,3404,3405,3422,3423,3424,3425,3515,3516,3529,3530,3531,3622,3623,3624,3885,3910,4323,4541,4905,5053,5205,5207,5208,5209,5303,5304,5506,5512,5516,5520,5523,5532,5653,5659,5664,5665,5666,5667,5668,5669,5670,5671,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,6003,6165,6202,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6841,6842,7069,7904,8002,8244,8245,8247,8248,8337,8339,8340,8444,8445,8448,8449,8450,8451,8452,8453,8454,8458,8459,8571,9031,9306,9307,9445,9596,9597,9599,9679,9745,10370,10402,10616,10743,10890,11127);
+DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (73,108,241,242,259,326,327,352,390,406,462,490,497,534,548,612,636,740,774,796,797,798,799,800,801,802,803,810,811,814,820,839,856,859,904,946,987,988,989,1128,1129,1155,1156,1157,1158,1161,1162,1163,1165,1263,1272,1277,1278,1279,1280,1281,1283,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1390,1397,1441,1443,1460,1461,1533,1537,1538,1659,1660,1662,1663,1664,2020,2971,3023,3064,3241,3383,3401,3403,3404,3405,3422,3423,3424,3425,3515,3516,3529,3530,3531,3622,3623,3624,3885,3910,4323,4541,4905,5053,5205,5207,5208,5209,5303,5304,5506,5512,5516,5520,5523,5532,5653,5659,5664,5665,5666,5667,5668,5669,5670,5671,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,6003,6165,6202,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6841,6842,7069,7904,8002,8244,8245,8247,8248,8337,8339,8340,8444,8445,8448,8449,8450,8451,8452,8453,8454,8458,8459,8571,9031,9306,9307,9445,9596,9597,9599,9679,9745,10370,10402,10616,10743,10890,11127);
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
(1,73,0,'','','Deprecated quest: <TXT> No Reward'),
(1,108,0,'','','Deprecated quest: <TXT> Mystery Reward'),
diff --git a/sql/old/3.3.5a/2012_08_04_01_world_disables.sql b/sql/old/3.3.5a/2012_08_04_01_world_disables.sql
index ca9f62564d5..1d5a7488138 100644
--- a/sql/old/3.3.5a/2012_08_04_01_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_01_world_disables.sql
@@ -1,11 +1,11 @@
DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (3631,4487,4488,4489,4490,4183,4184,4185,4186,4223,4224,402,550,620,785,908,909,9662,11179,11461,12087,12103,12108,12156,12426,12682,12764,12765,24222,24227,10452,10453,11125,11179,11437,11438,11444,11445,11974,12179,12228,12233,12590,14119,14147,14148,14149,14150);
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
-(1, 402,0,'','','Deprecated quest: Sirra is Busy'),
-(1, 550,0,'','','Deprecated quest: Battle of Hillsbrad'),
-(1, 620,0,'','','Deprecated quest: The Monogrammed Sash'),
-(1, 785,0,'','','Deprecated quest: A Strategic Alliance'),
-(1, 908,0,'','','Deprecated quest: A Strategic Alliance'),
-(1, 909,0,'','','Deprecated quest: A Strategic Alliance'),
+(1, 402,0,'','','Deprecated quest: Sirra is Busy'),
+(1, 550,0,'','','Deprecated quest: Battle of Hillsbrad'),
+(1, 620,0,'','','Deprecated quest: The Monogrammed Sash'),
+(1, 785,0,'','','Deprecated quest: A Strategic Alliance'),
+(1, 908,0,'','','Deprecated quest: A Strategic Alliance'),
+(1, 909,0,'','','Deprecated quest: A Strategic Alliance'),
(1,3631,0,'','','Deprecated quest: Summon Felsteed'),
(1,4487,0,'','','Deprecated quest: Summon Felsteed'),
(1,4488,0,'','','Deprecated quest: Summon Felsteed'),
@@ -18,33 +18,33 @@ INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comm
(1,4223,0,'','','Deprecated quest: The True Masters'),
(1,4224,0,'','','Deprecated quest: The True Masters'),
-- some random ones:
-(1, 9662,0,'','','Deprecated quest:Deprecated: Keanna''s Freedom'),
-(1,11179,0,'','','Deprecated quest:[Temporarily Deprecated Awaiting a New Mob]Finlay Is Gutless'),
-(1,11461,0,'','','Deprecated quest:DEPRECATED'),
-(1,12087,0,'','','Deprecated quest:A Little Help Here? DEPRECATED'),
-(1,12103,0,'','','Deprecated quest:DEPRECATED'),
-(1,12108,0,'','','Deprecated quest:DEPRECATED'),
-(1,12156,0,'','','Deprecated quest:DEPRECAED'),
-(1,12426,0,'','','Deprecated quest:DEPRECATED'),
-(1,12682,0,'','','Deprecated quest:Uncharted Territory (DEPRECATED)'),
-(1,12764,0,'','','Deprecated quest:The Secret to Kungaloosh (DEPRECATED)'),
-(1,12765,0,'','','Deprecated quest:Kungaloosh (DEPRECATED)'),
-(1,24222,0,'','','Deprecated quest:Call to Arms: Eye of the Storm DEPRECATED'),
-(1,24227,0,'','','Deprecated quest:DEPRECATED'),
-(1,10452,0,'','','Deprecated quest:DON''T USE [PH] Fel Orc 1'),
-(1,10453,0,'','','Deprecated quest:DON''T USE [PH] Fel Orc bread'),
-(1,11125,0,'','','Deprecated quest:[PH] New Hinterlands Quest'),
-(1,11437,0,'','','Deprecated quest:[PH] Beer Garden A'),
-(1,11438,0,'','','Deprecated quest:[PH] Beer Garden B'),
-(1,11444,0,'','','Deprecated quest:[PH] Beer Garden A'),
-(1,11445,0,'','','Deprecated quest:[PH] Beer Garden B'),
-(1,11974,0,'','','Deprecated quest:[ph] Now, When I Grow Up...'),
-(1,12179,0,'','','Deprecated quest:Specialization 1 [PH]'),
-(1,12228,0,'','','Deprecated quest:Reacquiring the Magic [PH]'),
-(1,12233,0,'','','Deprecated quest:[Depricated]Sewing Your Seed'),
-(1,12590,0,'','','Deprecated quest:Blahblah[PH]'),
-(1,14119,0,'','','Deprecated quest:Blank [PH]'),
-(1,14147,0,'','','Deprecated quest:Blank [PH]'),
-(1,14148,0,'','','Deprecated quest:Blank [PH]'),
-(1,14149,0,'','','Deprecated quest:Blank [PH]'),
+(1, 9662,0,'','','Deprecated quest:Deprecated: Keanna''s Freedom'),
+(1,11179,0,'','','Deprecated quest:[Temporarily Deprecated Awaiting a New Mob]Finlay Is Gutless'),
+(1,11461,0,'','','Deprecated quest:DEPRECATED'),
+(1,12087,0,'','','Deprecated quest:A Little Help Here? DEPRECATED'),
+(1,12103,0,'','','Deprecated quest:DEPRECATED'),
+(1,12108,0,'','','Deprecated quest:DEPRECATED'),
+(1,12156,0,'','','Deprecated quest:DEPRECAED'),
+(1,12426,0,'','','Deprecated quest:DEPRECATED'),
+(1,12682,0,'','','Deprecated quest:Uncharted Territory (DEPRECATED)'),
+(1,12764,0,'','','Deprecated quest:The Secret to Kungaloosh (DEPRECATED)'),
+(1,12765,0,'','','Deprecated quest:Kungaloosh (DEPRECATED)'),
+(1,24222,0,'','','Deprecated quest:Call to Arms: Eye of the Storm DEPRECATED'),
+(1,24227,0,'','','Deprecated quest:DEPRECATED'),
+(1,10452,0,'','','Deprecated quest:DON''T USE [PH] Fel Orc 1'),
+(1,10453,0,'','','Deprecated quest:DON''T USE [PH] Fel Orc bread'),
+(1,11125,0,'','','Deprecated quest:[PH] New Hinterlands Quest'),
+(1,11437,0,'','','Deprecated quest:[PH] Beer Garden A'),
+(1,11438,0,'','','Deprecated quest:[PH] Beer Garden B'),
+(1,11444,0,'','','Deprecated quest:[PH] Beer Garden A'),
+(1,11445,0,'','','Deprecated quest:[PH] Beer Garden B'),
+(1,11974,0,'','','Deprecated quest:[ph] Now, When I Grow Up...'),
+(1,12179,0,'','','Deprecated quest:Specialization 1 [PH]'),
+(1,12228,0,'','','Deprecated quest:Reacquiring the Magic [PH]'),
+(1,12233,0,'','','Deprecated quest:[Depricated]Sewing Your Seed'),
+(1,12590,0,'','','Deprecated quest:Blahblah[PH]'),
+(1,14119,0,'','','Deprecated quest:Blank [PH]'),
+(1,14147,0,'','','Deprecated quest:Blank [PH]'),
+(1,14148,0,'','','Deprecated quest:Blank [PH]'),
+(1,14149,0,'','','Deprecated quest:Blank [PH]'),
(1,14150,0,'','','Deprecated quest:Blank [PH]');
diff --git a/sql/old/3.3.5a/2012_08_04_02_world_disables.sql b/sql/old/3.3.5a/2012_08_04_02_world_disables.sql
index cccc7141d68..a01b1284293 100644
--- a/sql/old/3.3.5a/2012_08_04_02_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_02_world_disables.sql
@@ -1,23 +1,23 @@
DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (7790,8152,8237,8971,8972,8973,8974,8975,8976,9296,9750,10145,10207,10549,11493,11588,11589,11997,12313,13840,24797);
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
-(1,7790,0,'','','Deprecated quest: REUSE'),
-(1,8152,0,'','','Deprecated quest: REUSE'),
-(1,8237,0,'','','Deprecated quest: REUSE'),
-(1,8971,0,'','','Deprecated quest: REUSE'),
-(1,8972,0,'','','Deprecated quest: REUSE'),
-(1,8973,0,'','','Deprecated quest: REUSE'),
-(1,8974,0,'','','Deprecated quest: REUSE'),
-(1,8975,0,'','','Deprecated quest: REUSE'),
-(1,8976,0,'','','Deprecated quest: REUSE'),
-(1,9296,0,'','','Deprecated quest: reuse'),
-(1,9750,0,'','','Deprecated quest: UNUSED Urgent Delivery'),
-(1,10145,0,'','','Deprecated quest: Mission: Sever the Tie UNUSED'),
-(1,10207,0,'','','Deprecated quest: Forward Base: Reaver''s Fall REUSE'),
-(1,10549,0,'','','Deprecated quest: REUSE'),
-(1,11493,0,'','','Deprecated quest: UNUSED'),
-(1,11588,0,'','','Deprecated quest: REUSE'),
-(1,11589,0,'','','Deprecated quest: REUSE'),
-(1,11997,0,'','','Deprecated quest: REUSE'),
-(1,12313,0,'','','Deprecated quest: UNUSED Save Brewfest!'),
-(1,13840,0,'','','Deprecated quest: REUSE'),
+(1,7790,0,'','','Deprecated quest: REUSE'),
+(1,8152,0,'','','Deprecated quest: REUSE'),
+(1,8237,0,'','','Deprecated quest: REUSE'),
+(1,8971,0,'','','Deprecated quest: REUSE'),
+(1,8972,0,'','','Deprecated quest: REUSE'),
+(1,8973,0,'','','Deprecated quest: REUSE'),
+(1,8974,0,'','','Deprecated quest: REUSE'),
+(1,8975,0,'','','Deprecated quest: REUSE'),
+(1,8976,0,'','','Deprecated quest: REUSE'),
+(1,9296,0,'','','Deprecated quest: reuse'),
+(1,9750,0,'','','Deprecated quest: UNUSED Urgent Delivery'),
+(1,10145,0,'','','Deprecated quest: Mission: Sever the Tie UNUSED'),
+(1,10207,0,'','','Deprecated quest: Forward Base: Reaver''s Fall REUSE'),
+(1,10549,0,'','','Deprecated quest: REUSE'),
+(1,11493,0,'','','Deprecated quest: UNUSED'),
+(1,11588,0,'','','Deprecated quest: REUSE'),
+(1,11589,0,'','','Deprecated quest: REUSE'),
+(1,11997,0,'','','Deprecated quest: REUSE'),
+(1,12313,0,'','','Deprecated quest: UNUSED Save Brewfest!'),
+(1,13840,0,'','','Deprecated quest: REUSE'),
(1,24797,0,'','','Deprecated quest: REUSE');
diff --git a/sql/old/3.3.5a/2012_08_04_03_world_disables.sql b/sql/old/3.3.5a/2012_08_04_03_world_disables.sql
index e2d1ca1ff6b..a0b7750702f 100644
--- a/sql/old/3.3.5a/2012_08_04_03_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_03_world_disables.sql
@@ -1,38 +1,38 @@
DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (9754,9755,10215,11522,12445,12731,12923,13541,7797,7869,7870,7906,9378,9611,9880,9881,9908,9909,9949,9950,10088,10181,10214,10454,11197,11226,11577,11874,11937,12485,12600,13123,13210,13317,13990);
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
-(1,9754,0,'','','Deprecated quest: '),
-(1,9755,0,'','','Deprecated quest: '),
-(1,10215,0,'','','Deprecated quest: '),
-(1,11522,0,'','','Deprecated quest: '),
-(1,12445,0,'','','Deprecated quest: '),
-(1,12731,0,'','','Deprecated quest: '),
-(1,12923,0,'','','Deprecated quest: '),
-(1,13541,0,'','','Deprecated quest: '),
--- some others that contain a -
-(1,7797,0,'','','Deprecated quest: Dimensional Ripper - Everlook'),
-(1,7869,0,'','','Deprecated quest: test quest - do not use'),
-(1,7870,0,'','','Deprecated quest: test quest2 - do not use'),
-(1,7906,0,'','','Deprecated quest: Darkmoon Cards - Beasts'),
-(1,9378,0,'','','Deprecated quest: DND FLAG The Dread Citadel - Naxxramas'),
-(1,9611,0,'','','Deprecated quest: Azuremyst: aa - A - Quest Flag 000'),
-(1,9880,0,'','','Deprecated quest: Hellfire Penninsula: -pn - A - ToWoW - Hellfire Turnin Cap'),
-(1,9881,0,'','','Deprecated quest: Hellfire Penninsula: -pn - H - ToWoW - Hellfire Turnin Cap'),
-(1,9908,0,'','','Deprecated quest: Hellfire Penninsula: -pn - A - ToWoW - Hellfire Turnin'),
-(1,9909,0,'','','Deprecated quest: Hellfire Penninsula: -pn - H - ToWoW - Hellfire Turnin'),
-(1,9949,0,'','','Deprecated quest: A Bird''s-Eye View'),
-(1,9950,0,'','','Deprecated quest: A Bird''s-Eye View'),
-(1,10088,0,'','','Deprecated quest: When This Mine''s a-Rockin'''),
-(1,10181,0,'','','Deprecated quest: Collector''s Edition: -pn - E - FLAG'),
-(1,10214,0,'','','Deprecated quest: When This Mine''s a-Rockin'''),
-(1,10454,0,'','','Deprecated quest: FLAG - OFF THE RAILS'),
-(1,11197,0,'','','Deprecated quest: ZZOLD Upper Deck Promo - Ghost Wolf Mount OLD'),
-(1,11226,0,'','','Deprecated quest: Upper Deck Promo - Spectral Tiger Mount'),
-(1,11577,0,'','','Deprecated quest: WoW Collector''s Edition: - DEM - E - FLAG'),
-(1,11874,0,'','','Deprecated quest: Upper Deck Promo - Rocket Mount'),
-(1,11937,0,'','','Deprecated quest: FLAG - all torch return quests are complete'),
-(1,12485,0,'','','Deprecated quest: Howling Fjord: aa - A - LK FLAG'),
-(1,12600,0,'','','Deprecated quest: Upper Deck Promo - Bear Mount'),
-(1,13123,0,'','','Deprecated quest: WotLK Collector''s Edition: - DEM - E - FLAG'),
-(1,13210,0,'','','Deprecated quest: Blizzard Account: - DEM - E - FLAG'),
-(1,13317,0,'','','Deprecated quest: ----'),
-(1,13990,0,'','','Deprecated quest: Upper Deck Promo - Chicken Mount');
+(1,9754,0,'','','Deprecated quest: '),
+(1,9755,0,'','','Deprecated quest: '),
+(1,10215,0,'','','Deprecated quest: '),
+(1,11522,0,'','','Deprecated quest: '),
+(1,12445,0,'','','Deprecated quest: '),
+(1,12731,0,'','','Deprecated quest: '),
+(1,12923,0,'','','Deprecated quest: '),
+(1,13541,0,'','','Deprecated quest: '),
+-- some others that contain a -
+(1,7797,0,'','','Deprecated quest: Dimensional Ripper - Everlook'),
+(1,7869,0,'','','Deprecated quest: test quest - do not use'),
+(1,7870,0,'','','Deprecated quest: test quest2 - do not use'),
+(1,7906,0,'','','Deprecated quest: Darkmoon Cards - Beasts'),
+(1,9378,0,'','','Deprecated quest: DND FLAG The Dread Citadel - Naxxramas'),
+(1,9611,0,'','','Deprecated quest: Azuremyst: aa - A - Quest Flag 000'),
+(1,9880,0,'','','Deprecated quest: Hellfire Penninsula: -pn - A - ToWoW - Hellfire Turnin Cap'),
+(1,9881,0,'','','Deprecated quest: Hellfire Penninsula: -pn - H - ToWoW - Hellfire Turnin Cap'),
+(1,9908,0,'','','Deprecated quest: Hellfire Penninsula: -pn - A - ToWoW - Hellfire Turnin'),
+(1,9909,0,'','','Deprecated quest: Hellfire Penninsula: -pn - H - ToWoW - Hellfire Turnin'),
+(1,9949,0,'','','Deprecated quest: A Bird''s-Eye View'),
+(1,9950,0,'','','Deprecated quest: A Bird''s-Eye View'),
+(1,10088,0,'','','Deprecated quest: When This Mine''s a-Rockin'''),
+(1,10181,0,'','','Deprecated quest: Collector''s Edition: -pn - E - FLAG'),
+(1,10214,0,'','','Deprecated quest: When This Mine''s a-Rockin'''),
+(1,10454,0,'','','Deprecated quest: FLAG - OFF THE RAILS'),
+(1,11197,0,'','','Deprecated quest: ZZOLD Upper Deck Promo - Ghost Wolf Mount OLD'),
+(1,11226,0,'','','Deprecated quest: Upper Deck Promo - Spectral Tiger Mount'),
+(1,11577,0,'','','Deprecated quest: WoW Collector''s Edition: - DEM - E - FLAG'),
+(1,11874,0,'','','Deprecated quest: Upper Deck Promo - Rocket Mount'),
+(1,11937,0,'','','Deprecated quest: FLAG - all torch return quests are complete'),
+(1,12485,0,'','','Deprecated quest: Howling Fjord: aa - A - LK FLAG'),
+(1,12600,0,'','','Deprecated quest: Upper Deck Promo - Bear Mount'),
+(1,13123,0,'','','Deprecated quest: WotLK Collector''s Edition: - DEM - E - FLAG'),
+(1,13210,0,'','','Deprecated quest: Blizzard Account: - DEM - E - FLAG'),
+(1,13317,0,'','','Deprecated quest: ----'),
+(1,13990,0,'','','Deprecated quest: Upper Deck Promo - Chicken Mount');
diff --git a/sql/old/3.3.5a/2012_08_04_04_world_disables.sql b/sql/old/3.3.5a/2012_08_04_04_world_disables.sql
index 14a0d6f94aa..ecbafc45e58 100644
--- a/sql/old/3.3.5a/2012_08_04_04_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_04_world_disables.sql
@@ -1,34 +1,34 @@
DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (11335,11336,11337,11338,11339,11340,11341,11342,13405,13407,13427,13428,14163,14164,14178,14179,14180,14181,14182,14183,24216,24217,24218,24219,24220,24221,24223,24224,24225,24226,24426,24427);
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
-(1,11335,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,11336,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
-(1,11337,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
-(1,11338,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,11339,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,11340,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
-(1,11341,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
-(1,11342,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,13405,0,'','','Deprecated quest: Call to Arms: Strand of the Ancients'),
-(1,13407,0,'','','Deprecated quest: Call to Arms: Strand of the Ancients'),
-(1,13427,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
-(1,13428,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
-(1,14163,0,'','','Deprecated quest: Call to Arms: Isle of Conquest'),
-(1,14164,0,'','','Deprecated quest: Call to Arms: Isle of Conquest'),
-(1,14178,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,14179,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
-(1,14180,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,14181,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,14182,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
-(1,14183,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24216,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24217,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24218,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24219,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24220,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,24221,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,24223,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,24224,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24225,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
-(1,24226,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
-(1,24426,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
+(1,11335,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,11336,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
+(1,11337,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
+(1,11338,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,11339,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,11340,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
+(1,11341,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
+(1,11342,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,13405,0,'','','Deprecated quest: Call to Arms: Strand of the Ancients'),
+(1,13407,0,'','','Deprecated quest: Call to Arms: Strand of the Ancients'),
+(1,13427,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
+(1,13428,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
+(1,14163,0,'','','Deprecated quest: Call to Arms: Isle of Conquest'),
+(1,14164,0,'','','Deprecated quest: Call to Arms: Isle of Conquest'),
+(1,14178,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,14179,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
+(1,14180,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,14181,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,14182,0,'','','Deprecated quest: Call to Arms: Eye of the Storm'),
+(1,14183,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24216,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24217,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24218,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24219,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24220,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,24221,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,24223,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,24224,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24225,0,'','','Deprecated quest: Call to Arms: Warsong Gulch'),
+(1,24226,0,'','','Deprecated quest: Call to Arms: Arathi Basin'),
+(1,24426,0,'','','Deprecated quest: Call to Arms: Alterac Valley'),
(1,24427,0,'','','Deprecated quest: Call to Arms: Alterac Valley');
diff --git a/sql/old/3.3.5a/2012_08_04_05_world_disables.sql b/sql/old/3.3.5a/2012_08_04_05_world_disables.sql
index ce123e4e5be..66d475a39b8 100644
--- a/sql/old/3.3.5a/2012_08_04_05_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_05_world_disables.sql
@@ -1,28 +1,28 @@
DELETE FROM `disables` WHERE `sourceType`=1 AND `entry` IN (8384,8386,8389,8390,8391,8392,8397,8398,8404,8405,8406,8407,8408,8431,8432,8433,8434,8435,8440,8441,8442,8443,8567,8568,8569,8570);
INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comment`) VALUES
-(1,8384,0,'','','Deprecated quest: Claiming Arathi Basin'),
-(1,8386,0,'','','Deprecated quest: Fight for Warsong Gulch'),
-(1,8389,0,'','','Deprecated quest: Battle of Warsong Gulch'),
-(1,8390,0,'','','Deprecated quest: Conquering Arathi Basin'),
-(1,8391,0,'','','Deprecated quest: Claiming Arathi Basin'),
-(1,8392,0,'','','Deprecated quest: Claiming Arathi Basin'),
-(1,8397,0,'','','Deprecated quest: Claiming Arathi Basin'),
-(1,8398,0,'','','Deprecated quest: Claiming Arathi Basin'),
-(1,8404,0,'','','Deprecated quest: Fight for Warsong Gulch'),
-(1,8405,0,'','','Deprecated quest: Fight for Warsong Gulch'),
-(1,8406,0,'','','Deprecated quest: Fight for Warsong Gulch'),
-(1,8407,0,'','','Deprecated quest: Fight for Warsong Gulch'),
-(1,8408,0,'','','Deprecated quest: Fight for Warsong Gulch'),
-(1,8431,0,'','','Deprecated quest: Battle of Warsong Gulch'),
-(1,8432,0,'','','Deprecated quest: Battle of Warsong Gulch'),
-(1,8433,0,'','','Deprecated quest: Battle of Warsong Gulch'),
-(1,8434,0,'','','Deprecated quest: Battle of Warsong Gulch'),
-(1,8435,0,'','','Deprecated quest: Battle of Warsong Gulch'),
-(1,8440,0,'','','Deprecated quest: Conquering Arathi Basin'),
-(1,8441,0,'','','Deprecated quest: Conquering Arathi Basin'),
-(1,8442,0,'','','Deprecated quest: Conquering Arathi Basin'),
-(1,8443,0,'','','Deprecated quest: Conquering Arathi Basin'),
-(1,8567,0,'','','Deprecated quest: Past Victories in Warsong Gulch'),
-(1,8568,0,'','','Deprecated quest: Past Victories in Warsong Gulch'),
-(1,8569,0,'','','Deprecated quest: Past Efforts in Warsong Gulch'),
-(1,8570,0,'','','Deprecated quest: Past Efforts in Warsong Gulch');
+(1,8384,0,'','','Deprecated quest: Claiming Arathi Basin'),
+(1,8386,0,'','','Deprecated quest: Fight for Warsong Gulch'),
+(1,8389,0,'','','Deprecated quest: Battle of Warsong Gulch'),
+(1,8390,0,'','','Deprecated quest: Conquering Arathi Basin'),
+(1,8391,0,'','','Deprecated quest: Claiming Arathi Basin'),
+(1,8392,0,'','','Deprecated quest: Claiming Arathi Basin'),
+(1,8397,0,'','','Deprecated quest: Claiming Arathi Basin'),
+(1,8398,0,'','','Deprecated quest: Claiming Arathi Basin'),
+(1,8404,0,'','','Deprecated quest: Fight for Warsong Gulch'),
+(1,8405,0,'','','Deprecated quest: Fight for Warsong Gulch'),
+(1,8406,0,'','','Deprecated quest: Fight for Warsong Gulch'),
+(1,8407,0,'','','Deprecated quest: Fight for Warsong Gulch'),
+(1,8408,0,'','','Deprecated quest: Fight for Warsong Gulch'),
+(1,8431,0,'','','Deprecated quest: Battle of Warsong Gulch'),
+(1,8432,0,'','','Deprecated quest: Battle of Warsong Gulch'),
+(1,8433,0,'','','Deprecated quest: Battle of Warsong Gulch'),
+(1,8434,0,'','','Deprecated quest: Battle of Warsong Gulch'),
+(1,8435,0,'','','Deprecated quest: Battle of Warsong Gulch'),
+(1,8440,0,'','','Deprecated quest: Conquering Arathi Basin'),
+(1,8441,0,'','','Deprecated quest: Conquering Arathi Basin'),
+(1,8442,0,'','','Deprecated quest: Conquering Arathi Basin'),
+(1,8443,0,'','','Deprecated quest: Conquering Arathi Basin'),
+(1,8567,0,'','','Deprecated quest: Past Victories in Warsong Gulch'),
+(1,8568,0,'','','Deprecated quest: Past Victories in Warsong Gulch'),
+(1,8569,0,'','','Deprecated quest: Past Efforts in Warsong Gulch'),
+(1,8570,0,'','','Deprecated quest: Past Efforts in Warsong Gulch');
diff --git a/sql/old/3.3.5a/2012_08_04_10_world_disables.sql b/sql/old/3.3.5a/2012_08_04_10_world_disables.sql
index 1d991eafef5..b911e33fd3c 100644
--- a/sql/old/3.3.5a/2012_08_04_10_world_disables.sql
+++ b/sql/old/3.3.5a/2012_08_04_10_world_disables.sql
@@ -19,8 +19,8 @@ INSERT INTO `disables` (`sourceType`,`entry`,`flags`,`params_0`,`params_1`,`comm
(1,12493,0,'','','Deprecated quest: PvP Test'),
(1,12911,0,'','','Deprecated quest: Kill Credit Test'),
(1,13649,0,'','','Deprecated quest: Justin''s Fun Test'),
-(1,14106,0,'','','Deprecated quest: Na Kada''s Quest Test'),
--- containing "flag"
+(1,14106,0,'','','Deprecated quest: Na Kada''s Quest Test'),
+-- containing "flag"
(1,9713,0,'','','Deprecated quest: Glowcap Harvesting Enabling Flag'),
(1,9926,0,'','','Deprecated quest: FLAG Shadow Council/Warmaul Questline'),
(1,11087,0,'','','Deprecated quest: HYJAL FLAG'),
diff --git a/sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql b/sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql
index a65e7e76a44..a11657dc664 100644
--- a/sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql
+++ b/sql/old/3.3.5a/2012_08_10_05_world_quest_template.sql
@@ -1,2 +1,2 @@
--- Change $B$$B at end of details text to $B$B
+-- Change $B$$B at end of details text to $B$B
UPDATE `quest_template` SET `Details`='Brave traveler, the centaurs have increased their attacks in this area. Freewind Post must know about this renewed harassment immediately! Seek Cliffwatcher Longhorn at Freewind Post to the southeast and give him this urgent message.$b$bBe warned, avoid the Grimtotem Clan nearby... they have been acting strange toward us lately.$B$B' WHERE `Id`=4542;
diff --git a/sql/old/3.3.5a/2012_08_10_06_world_creature.sql b/sql/old/3.3.5a/2012_08_10_06_world_creature.sql
index 3d59f06db78..611a2d1e934 100644
--- a/sql/old/3.3.5a/2012_08_10_06_world_creature.sql
+++ b/sql/old/3.3.5a/2012_08_10_06_world_creature.sql
@@ -1,8 +1,8 @@
SET @CGUID:=42571; -- Need 2
DELETE FROM `creature` WHERE `id` IN (30395,30469);
-INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(@CGUID+0,30395,571,1,1,0,0,8348.886,-2509.476,1147.369,3.700098,120,0,0,12600,0,0,0,0,0),
-(@CGUID+1,30469,571,1,1,0,0,7620.369,-1609.421,969.6507,0.767944,120,0,0,12600,0,0,0,0,0);
+(@CGUID+1,30469,571,1,1,0,0,7620.369,-1609.421,969.6507,0.767944,120,0,0,12600,0,0,0,0,0);
-- Template updates
UPDATE `creature_template` SET `npcflag`=`npcflag`|3 WHERE `entry`=30395; -- Chieftain Swiftspear
diff --git a/sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql b/sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql
index 1e75f37d32f..b3a91b91a58 100644
--- a/sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql
+++ b/sql/old/3.3.5a/2012_08_20_02_world_wintergrasp_creatures.sql
@@ -28,7 +28,7 @@ UPDATE `creature_model_info` SET `bounding_radius`=0.305,`combat_reach`=5,`gende
DELETE FROM `creature_template_addon` WHERE `entry` IN (31841,31842,30400,30499,30489,30869,31036,31051,31052,31054,31108,31109,31153,32294,39172,30870,31053,31091,31101,31102,31106,31107,31151,32296,39173,30740,32629,28319,28366,32627,28312,28094,27881,30739);
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
-(31841,0,0,1,0, '58729'), -- Taunka Spirit Guide (Spiritual Immunity, Spirit Heal Channel) FIX: Do we need the spell that revives players here (22011)? It has a duration (found in sniffs).
+(31841,0,0,1,0, '58729'), -- Taunka Spirit Guide (Spiritual Immunity, Spirit Heal Channel) FIX: Do we need the spell that revives players here (22011)? It has a duration (found in sniffs).
(31842,0,0,1,0, '58729'), -- Dwarven Spirit Guide This spell (and the spell it triggers, are used in the "ressurect system" in Battleground.cpp
(30400,0,0,1,0, NULL), -- Goblin Mechanic
(30499,0,0,1,0, NULL), -- Gnomish Engineer
diff --git a/sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql b/sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql
index cb2bd219e40..43a1cd1ad9e 100644
--- a/sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql
+++ b/sql/old/3.3.5a/2012_08_20_06_world_wintergrasp_spells.sql
@@ -58,12 +58,12 @@ INSERT INTO `spell_area` (`spell`,`area`,`autocast`) VALUES
-- Spell scripts. replace with SAI
DELETE FROM `spell_scripts` WHERE `id`=49899;
INSERT INTO `spell_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
-(49899,0,1,406,0,0,0,0,0,0); -- Activate Robotic Arms
+(49899,0,1,406,0,0,0,0,0,0); -- Activate Robotic Arms
-- Spell Target position for Wintergrasp Graveyard spells
DELETE FROM `spell_target_position` WHERE `id` IN (59760,59762,59763,59765,59766,59767,59769);
INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
-(59760,571,5537.986,2897.493,517.057,4.819249), -- Teleport: Fortress Graveyard
+(59760,571,5537.986,2897.493,517.057,4.819249), -- Teleport: Fortress Graveyard
(59762,571,5104.750,2300.940,368.579,0.733038), -- Teleport: Sunken Ring "area 4538"
(59763,571,5099.120,3466.036,368.484,5.317802), -- Teleport: Broken Temple "area 4539 & 4589"
(59765,571,5032.454,3711.382,372.468,3.971623), -- Teleport: Horde Landing Zone
diff --git a/sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql b/sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql
index 090c5350c74..2b94bf75a41 100644
--- a/sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql
+++ b/sql/old/3.3.5a/2012_08_20_07_world_wintergrasp_texts.sql
@@ -1,4 +1,4 @@
--- Unused yet:
+-- Unused yet:
-- Wintergrasp is under attack!
-- Wintergrasp Fortress is under attack!
-- Winter's Edge Tower is under attack!
diff --git a/sql/old/3.3.5a/2012_08_27_06_world_sai.sql b/sql/old/3.3.5a/2012_08_27_06_world_sai.sql
index 8b1aafd1558..e95498f6bef 100644
--- a/sql/old/3.3.5a/2012_08_27_06_world_sai.sql
+++ b/sql/old/3.3.5a/2012_08_27_06_world_sai.sql
@@ -35,9 +35,9 @@ INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`pr
(@Ghoul,1,5,'BRAINNNS!',12,0,50,0,0,0,'Decomposing Ghoul - OOC');
-- Add conditions for spell Shining Light to hit only Ghouls
DELETE FROM `conditions` WHERE `SourceEntry`=@Spell AND `SourceTypeOrReferenceId`=13;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13,1,@Spell,0,0,31,0,3,@Ghoul,0,0,0,'', 'Shinning Light can only hit Decomposing Ghouls');
-- Add conditions for spell Shining Light to be available only, if on quest
DELETE FROM `conditions` WHERE `SourceEntry`=@Spell AND `SourceTypeOrReferenceId`=17;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(17,0,@Spell,0,0,9,0,11288,0,0,0,0,'', 'Shinning Light can only hit targets on the quest');
diff --git a/sql/old/3.3.5a/2012_08_27_08_world_misc.sql b/sql/old/3.3.5a/2012_08_27_08_world_misc.sql
index 62a57cd42de..3847271dc15 100644
--- a/sql/old/3.3.5a/2012_08_27_08_world_misc.sql
+++ b/sql/old/3.3.5a/2012_08_27_08_world_misc.sql
@@ -9,7 +9,7 @@ INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equ
-- SAI
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28013;
DELETE FROM `smart_scripts` WHERE `entryorguid`=28013 AND `source_type`=0;
-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
+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
(28013,0,0,0,8,0,100,0,48455,0,0,0,33,28013,0,0,0,0,0,7,0,0,0,0,0,0,0,"Fire Upon the Waters Kill Credit Bunny - On SpellHit Apothecary's Burning Water - Call KilledMonster Fire Upon the Waters Kill Credit Bunny");
-- Ensure spell only works on Fire Upon the Waters Kill Credit Bunny
diff --git a/sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql b/sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql
index 85b493da202..692ce27ebcd 100644
--- a/sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql
+++ b/sql/old/3.3.5a/2012_08_29_00_world_blood_furnace.sql
@@ -15,7 +15,7 @@ UPDATE `creature_template` SET `unit_flags`=`unit_flags`|256|512|2 WHERE `entry`
-- CREATURE
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+148 OR `map`=542;
-INSERT INTO `creature`(`guid`,`id`,`map`,`spawnMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`curhealth`,`curmana`,`MovementType`) VALUES
+INSERT INTO `creature`(`guid`,`id`,`map`,`spawnMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`curhealth`,`curmana`,`MovementType`) VALUES
(@GUID+88,17414,542,3,317.15,189.009,10.0509,1.88412,7200,10472,5875,0),
(@GUID+92,17414,542,3,436.311,198.522,11.4389,1.34468,7200,10472,5875,0),
(@GUID+91,17414,542,3,345.706,198.519,11.139,1.6879,7200,10472,5875,0),
diff --git a/sql/old/3.3.5a/2012_08_31_00_world_command.sql b/sql/old/3.3.5a/2012_08_31_00_world_command.sql
index c0686d6d907..2862c0299e9 100644
--- a/sql/old/3.3.5a/2012_08_31_00_world_command.sql
+++ b/sql/old/3.3.5a/2012_08_31_00_world_command.sql
@@ -3,7 +3,7 @@ DELETE FROM `command` WHERE `name`='taxicheat';
DELETE FROM `command` WHERE `name`='waterwalk';
DELETE FROM `command` WHERE `name`='cheat' OR `name` LIKE 'cheat%';
-INSERT INTO `command` (`name`, `security`, `help`) VALUES
+INSERT INTO `command` (`name`, `security`, `help`) VALUES
('cheat', 2, 'Syntax: .cheat $subcommand\r\nType .cheat to see the list of possible subcommands or .help cheat $subcommand to see info on subcommands'),
('cheat god', 2, 'Syntax: .cheat god [on/off]\r\nEnables or disables your character''s ability to take damage.'),
('cheat casttime', 2, 'Syntax: .cheat casttime [on/off]\r\nEnables or disables your character''s spell cast times.'),
diff --git a/sql/old/3.3.5a/2012_09_10_00_world_game_event.sql b/sql/old/3.3.5a/2012_09_10_00_world_game_event.sql
index edd6413379c..d7c17b298ce 100644
--- a/sql/old/3.3.5a/2012_09_10_00_world_game_event.sql
+++ b/sql/old/3.3.5a/2012_09_10_00_world_game_event.sql
@@ -1,3 +1,3 @@
-UPDATE `game_event` SET `start_time`='2012-11-04 00:01:00' WHERE `eventEntry`=3; -- Darkmoon Faire - Terrokkar
-UPDATE `game_event` SET `start_time`='2012-12-02 00:01:00' WHERE `eventEntry`=4; -- Darkmoon Faire - Elwynn
+UPDATE `game_event` SET `start_time`='2012-11-04 00:01:00' WHERE `eventEntry`=3; -- Darkmoon Faire - Terrokkar
+UPDATE `game_event` SET `start_time`='2012-12-02 00:01:00' WHERE `eventEntry`=4; -- Darkmoon Faire - Elwynn
UPDATE `game_event` SET `start_time`='2012-10-07 00:01:00' WHERE `eventEntry`=5; -- Darkmoon Faire - Mulgore
diff --git a/sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql b/sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql
index de9ba5a78fe..8ef62847349 100644
--- a/sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql
+++ b/sql/old/3.3.5a/2012_09_13_01_world_fires_over_skettis.sql
@@ -8,7 +8,7 @@ SET @SUMMEGG := 39843;
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@TRIGGER;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@TRIGGER AND `source_type`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@TRIGGER*100 AND `source_type`=9;
-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
+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
(@TRIGGER,0,0,0,25,0,100,0,0,0,0,0,11,@SUMMEGG,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Monstrous Kaliri Egg Trigger - On spawn/reset - Summon Monstrous Kaliri Egg (object wild)'),
(@TRIGGER,0,1,2,8,0,100,0,@SKYBLAST,0,0,0,33,@TRIGGER,0,0,0,0,0,16,0,0,0,0,0,0,0, 'Monstrous Kaliri Egg Trigger - On Skyguard Blasting Charge hit - Give kill credit to invoker party'),
(@TRIGGER,0,2,3,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,20,@EGG,1,0,0,0,0,0, 'Monstrous Kaliri Egg Trigger - Linked with previous event - Despawn'),
diff --git a/sql/updates/characters/2012_11_18_00_character_calendar.sql b/sql/updates/characters/2012_11_18_00_character_calendar.sql
new file mode 100644
index 00000000000..a3e7c352788
--- /dev/null
+++ b/sql/updates/characters/2012_11_18_00_character_calendar.sql
@@ -0,0 +1,26 @@
+DROP TABLE IF EXISTS `calendar_events`;
+CREATE TABLE IF NOT EXISTS `calendar_events` (
+ `id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `creator` int(10) unsigned NOT NULL DEFAULT '0',
+ `title` varchar(255) NOT NULL DEFAULT '',
+ `description` varchar(255) NOT NULL DEFAULT '',
+ `type` tinyint(1) unsigned NOT NULL DEFAULT '4',
+ `dungeon` int(10) NOT NULL DEFAULT '-1',
+ `eventtime` int(10) unsigned NOT NULL DEFAULT '0',
+ `flags` int(10) unsigned NOT NULL DEFAULT '0',
+ `time2` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `calendar_invites`;
+CREATE TABLE IF NOT EXISTS `calendar_invites` (
+ `id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `event` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `invitee` int(10) unsigned NOT NULL DEFAULT '0',
+ `sender` int(10) unsigned NOT NULL DEFAULT '0',
+ `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `statustime` int(10) unsigned NOT NULL DEFAULT '0',
+ `rank` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `text` varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
diff --git a/sql/updates/world/2012_09_16_01_world_creature_template_addon.sql b/sql/updates/world/2012_09_16_01_world_creature_template_addon.sql
index 15415e856f3..c23a38cd058 100644
--- a/sql/updates/world/2012_09_16_01_world_creature_template_addon.sql
+++ b/sql/updates/world/2012_09_16_01_world_creature_template_addon.sql
@@ -1,3 +1,3 @@
DELETE FROM `creature_template_addon` WHERE `entry`=28670; -- Frostbrood Vanquisher
-INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(28670,0,0,0x3000000,0x1,0,'53112');
diff --git a/sql/updates/world/2012_09_17_02_world_misc.sql b/sql/updates/world/2012_09_17_02_world_misc.sql
index 0b6a3b2237c..378833dfc52 100644
--- a/sql/updates/world/2012_09_17_02_world_misc.sql
+++ b/sql/updates/world/2012_09_17_02_world_misc.sql
@@ -1,6 +1,6 @@
-- The Call to Command (6144, 6145, 6146, 14349, 14350) quest chain fix by nelegalno
-- The first 2 quests in the chain ware replaced with new ones after the removal of Varimathras (2425) but players that completed
--- the old quests shouldn't get the new ones and the third quest Nathanos' Ruse (6146) should require 6145 or 14350 completed
+-- the old quests shouldn't get the new ones and the third quest Nathanos' Ruse (6146) should require 6145 or 14350 completed
-- The Call to Command ExclusiveGroup
UPDATE `quest_template` SET `ExclusiveGroup` = 6144 WHERE `Id` = 6144; -- The Call to Command (6144) quest
diff --git a/sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql b/sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql
index 1682d9f699b..95fc92daa76 100644
--- a/sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql
+++ b/sql/updates/world/2012_09_22_01_world_i_was_a_lot_of_things.sql
@@ -2,7 +2,7 @@
UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_shadowmoon_tuber_node',`flags_extra`=`flags_extra`|128 WHERE `entry`=21347;
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=36652;
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`Comment`) VALUES
(13,1,36652,31,3,21347,'Tuber Whistle targets Shadowmoon Valley Tuber Node');
UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=21195;
@@ -17,7 +17,7 @@ SET @BOAR_GUID = 77832; -- 8
DELETE FROM `creature` WHERE `id`=21347 OR `guid` BETWEEN @TRIGGER_GUID AND @TRIGGER_GUID + 9;
SET @TRIGGER_GUID = @TRIGGER_GUID - 1;
-INSERT INTO `creature`(`guid`,`id`,`map`,`phaseMask`,`position_x`,`position_y`,`position_z`)
+INSERT INTO `creature`(`guid`,`id`,`map`,`phaseMask`,`position_x`,`position_y`,`position_z`)
SELECT (SELECT @TRIGGER_GUID:=@TRIGGER_GUID+1),21347,`map`,3,`position_x`,`position_y`,`position_z` FROM `gameobject` WHERE `id`=184701 LIMIT 10;
DELETE FROM `creature` WHERE (`id`=21195 AND `map`=530) OR `guid` BETWEEN @BOAR_GUID AND @BOAR_GUID + 7;
diff --git a/sql/updates/world/2012_09_24_02_world_misc.sql b/sql/updates/world/2012_09_24_02_world_misc.sql
index bd97308d7c6..b4cf7fda0a5 100644
--- a/sql/updates/world/2012_09_24_02_world_misc.sql
+++ b/sql/updates/world/2012_09_24_02_world_misc.sql
@@ -82,7 +82,7 @@ UPDATE `creature_template` SET `spell1` = 56746, `spell2` = 56748, `spell3` = 56
-- Fix Brann's Communicator Closes #5835 author gecko32
DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=61122 AND `spell_effect`=55038;
-INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
(61122, 55038, 0, 'Contact Brann');
-- Fix Black Bruise proc Scaling author Vincent-Michael Closes #7040
diff --git a/sql/updates/world/2012_09_24_03_world_misc.sql b/sql/updates/world/2012_09_24_03_world_misc.sql
index a043ff60fc5..3bcb40f79c0 100644
--- a/sql/updates/world/2012_09_24_03_world_misc.sql
+++ b/sql/updates/world/2012_09_24_03_world_misc.sql
@@ -66,7 +66,7 @@ UPDATE `quest_template` SET `NextQuestIdChain` = 8736 WHERE `Id` = 8735;
-- Azuregos's Magical Ledger > Translating the Ledger
UPDATE `quest_template` SET `NextQuestIdChain` = 8576 WHERE `Id` = 8575;
--- Hive'Zora Scout Report (8534), Hive'Regal Scout Report (8738) and Hive'Ashi Scout Report (8739) quests fix by Raszagal (Inspired by Justiciar's fix drom #3311)
+-- Hive'Zora Scout Report (8534), Hive'Regal Scout Report (8738) and Hive'Ashi Scout Report (8739) quests fix by Raszagal (Inspired by Justiciar's fix drom #3311)
-- TODO: Get sniffs for gossip_menu_option placeholder texts
-- Closes #3311 and Closes #7453
@@ -82,7 +82,7 @@ UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP1 WHERE `entry`=@NPC1;
UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP2 WHERE `entry`=@NPC2;
UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP3 WHERE `entry`=@NPC3;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@NPC1,@NPC2,@NPC3);
--- Gossips
+-- Gossips
DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP1 AND `text_id`=8063;
DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP2 AND `text_id`=8064;
DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP3 AND `text_id`=8065;
diff --git a/sql/updates/world/2012_09_26_00_world_misc.sql b/sql/updates/world/2012_09_26_00_world_misc.sql
index f7b65b94935..d9ac468f4a6 100644
--- a/sql/updates/world/2012_09_26_00_world_misc.sql
+++ b/sql/updates/world/2012_09_26_00_world_misc.sql
@@ -1,7 +1,7 @@
-- Scripted Npc Infiltrator Marksen (Zombie Form 7293) From Sniff author expecto Closes #6910
UPDATE creature_template SET AIName = 'SmartAI', `spell1` = 7293 WHERE entry = 5416;
DELETE FROM `smart_scripts` WHERE (`entryorguid`=5416 AND `source_type`=0);
-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
+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
(5416, 0, 0, 0, 1, 0, 100, 0, 5000, 5000, 10000, 12000, 11, 7293, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Infiltrator Marksen - Cast Zombie Form');
-- Wildlord Antelarion (22127) gossip fix by nelegalno
@@ -95,7 +95,7 @@ INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `positi
-- fix loot of Savage Cave Beast Closes #7874
DELETE FROM `creature_loot_template` WHERE `entry` = 31470;
-INSERT INTO `creature_loot_template`
+INSERT INTO `creature_loot_template`
SELECT 31470, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount` FROM `creature_loot_template` WHERE `entry` = 30329;
-- partially revert commit 0deaa521bcae3ab9004529473aceadee134f3a68 author Elron103 Closes #7580
@@ -155,7 +155,7 @@ DELETE FROM `gossip_menu` WHERE `entry`=7376 AND `text_id` IN (8826,8827);
DELETE FROM `gossip_menu` WHERE `entry`=7377 AND `text_id` IN (8828,8829);
DELETE FROM `gossip_menu` WHERE `entry`=7378 AND `text_id`=8832;
-INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
(2601,3293),
(2601,3294),
(6504,7699),
@@ -232,11 +232,11 @@ INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (5824,6995);
-- Set pickpocketloot data for Skeletal Reavers author trista Closes #7366
SET @SREAVER := 32467;
-UPDATE `creature_template` SET `pickpocketloot`=`entry` WHERE `entry`=@SREAVER;
-DELETE FROM `pickpocketing_loot_template` WHERE `entry`=@SREAVER;
-INSERT INTO `pickpocketing_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
-(@SREAVER,35947,0.7,1,0,1,1), -- Sparkling Frostcap
-(@SREAVER,33447,0.7,1,0,1,1), -- Runic Healing Potion
+UPDATE `creature_template` SET `pickpocketloot`=`entry` WHERE `entry`=@SREAVER;
+DELETE FROM `pickpocketing_loot_template` WHERE `entry`=@SREAVER;
+INSERT INTO `pickpocketing_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+(@SREAVER,35947,0.7,1,0,1,1), -- Sparkling Frostcap
+(@SREAVER,33447,0.7,1,0,1,1), -- Runic Healing Potion
(@SREAVER,38269,1.4,1,0,1,1), -- Soggy Handkerchief
(@SREAVER,43575,1.6,1,0,1,1); -- Reinforced Junkbox
@@ -319,7 +319,7 @@ DELETE FROM `creature_transport` WHERE `transport_entry`=164871 AND `npc_entry`=
INSERT INTO `creature_transport` (`guid`,`transport_entry`,`npc_entry`,`TransOffsetX`,`TransOffsetY`,`TransOffsetZ`,`TransOffsetO`,`emote`) VALUES
(18,164871,25077,-19.68856,-8.170582,-14.37648,3.176499,0); -- Sky-Captain Cloudkicker
-- Zeppelin: <The Zephyr>
-UPDATE `creature_transport` SET `emote`=173 WHERE `transport_entry`=190549 AND `npc_entry`=34719;
+UPDATE `creature_transport` SET `emote`=173 WHERE `transport_entry`=190549 AND `npc_entry`=34719;
-- Fix flight masters around the Dark Portal in Outland (16.11.2011) by SignFinder ( https://github.com/TrinityCore/TrinityCore/issues/2596#issuecomment-4450115 ) Closes #6401
@@ -368,7 +368,7 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,
(15,@GOSSIP_VLAGGA,0,0,0,8,10289,0,0,0,'',"Show gossip option 0 if player has rewarded quest Journey to Thrallmar"),
(15,@GOSSIP_VLAGGA,1,0,0,28,10289,0,0,0,'',"Show gossip option 1 if player has complete quest Journey to Thrallmar");
--- fix dedication of honor movie playback. author trista and vincent-michael. Closes #5754
+-- fix dedication of honor movie playback. author trista and vincent-michael. Closes #5754
SET @MEMORIAL := 202443;
SET @Script := 20244300;
UPDATE `gameobject_template` SET AIName = 'SmartGameObjectAI' WHERE entry = @MEMORIAL;
diff --git a/sql/updates/world/2012_09_27_01_world_custodian_of_time.sql b/sql/updates/world/2012_09_27_01_world_custodian_of_time.sql
index 5396bd3e7f0..521c55d507e 100644
--- a/sql/updates/world/2012_09_27_01_world_custodian_of_time.sql
+++ b/sql/updates/world/2012_09_27_01_world_custodian_of_time.sql
@@ -1,7 +1,7 @@
-- Custodian of Time's Whispers for quest 10277
DELETE FROM `script_texts` WHERE `entry` IN (-1000217,-1000218,-1000219,-1000220,-1000221,-1000222,-1000223,-1000224,-1000225,-1000226,-1000227,-1000228,-1000229,-1000230);
-DELETE FROM `creature_text` WHERE `entry`=20129;
-INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+DELETE FROM `creature_text` WHERE `entry`=20129;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
(20129,0,0, 'Greetings, $N. I will guide you through the cavern. Please try and keep up.',15,0,100,0,0,0, 'WHISPER_CUSTODIAN_1'),
(20129,1,0, 'We do not know if the Caverns of Time have always been accessible to mortals. Truly, it is impossible to tell as the Timeless One is in perpetual motion, changing our timeways as he sees fit. What you see now may very well not exist tomorrow. You may wake up and have no memory of this place.',15,0,100,0,0,0, 'WHISPER_CUSTODIAN_2'),
(20129,2,0, 'It is strange, I know... Most mortals cannot actually comprehend what they see here, as often, what they see is not anchored within their own perception of reality.',15,0,100,0,0,0, 'WHISPER_CUSTODIAN_3'),
diff --git a/sql/updates/world/2012_10_02_00_world_oculus.sql b/sql/updates/world/2012_10_02_00_world_oculus.sql
index 2db8bd8fed1..8c9ea1bcb60 100644
--- a/sql/updates/world/2012_10_02_00_world_oculus.sql
+++ b/sql/updates/world/2012_10_02_00_world_oculus.sql
@@ -1,6 +1,6 @@
-- Addon data based on sniff fixed by Vincent-Michael
DELETE FROM `creature_template_addon` WHERE `entry` IN (27692,27755,27756);
-INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(27692,0,0,0x3000000,0x1,0,'50296 50325'), -- Emerald Drake
(27755,0,0,0x3000000,0x1,0,'50296 50325'), -- Amber Drake
(27756,0,0,0x3000000,0x1,0,'50296 50248 50325'); -- Ruby Drake // Evasive aura should be here from the start
diff --git a/sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql b/sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql
index 763bf57fc47..6587e35bf9b 100644
--- a/sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql
+++ b/sql/updates/world/2012_10_04_00_world_spelldifficulty_dbc.sql
@@ -1,5 +1,5 @@
-- Boss Anubarak Move Heroic Spell in spelldifficulty
DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (53472,53454);
INSERT INTO `spelldifficulty_dbc`(`id`,`spellid0`,`spellid1`) VALUES
-(53472,53472,59433), -- Spell Pound
+(53472,53472,59433), -- Spell Pound
(53454,53454,59446); -- Spell Impale Damage
diff --git a/sql/updates/world/2012_10_10_00_world_battleground_template.sql b/sql/updates/world/2012_10_10_00_world_battleground_template.sql
index a9a1cdb04d1..2dcafc51161 100644
--- a/sql/updates/world/2012_10_10_00_world_battleground_template.sql
+++ b/sql/updates/world/2012_10_10_00_world_battleground_template.sql
@@ -1,2 +1,2 @@
-- Remove all bgs from e1bee86ee6f5c3ab7b1da6d1b54c98c2851f11ec
-DELETE FROM `battleground_template` WHERE `id` = 6; -- all Bgs \ No newline at end of file
+DELETE FROM `battleground_template` WHERE `id` = 6; -- all Bgs
diff --git a/sql/updates/world/2012_10_11_00_world_gameobject.sql b/sql/updates/world/2012_10_11_00_world_gameobject.sql
index 0c08d9d5622..e58d60590cb 100644
--- a/sql/updates/world/2012_10_11_00_world_gameobject.sql
+++ b/sql/updates/world/2012_10_11_00_world_gameobject.sql
@@ -2,91 +2,91 @@ SET @GUID = 74685;
SET @MAP = 571;
DELETE FROM `gameobject` WHERE (`id` IN (192254,192255,192269,192284,192285,192336,192338,192339,192349,192350,192351,192352,192353,192354,192355,192356,192357,192358,192359,192360,192361,192362,192363,192364,192366,192367,192368,192369,192370,192371,192372,192373,192374,192375,192378,192379,192416,192488,192501) AND `guid` != 67250) OR `guid` BETWEEN @GUID AND @GUID+87;
INSERT INTO `gameobject` (`guid`,`id`,`map`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`) VALUES
-(@GUID+0, 192488, @MAP, 64, 5262.540039, 3047.949951, 432.054993, 3.106650), -- Flag on tower
+(@GUID+0, 192488, @MAP, 64, 5262.540039, 3047.949951, 432.054993, 3.106650), -- Flag on tower
(@GUID+1, 192501, @MAP, 128, 5262.540039, 3047.949951, 432.054993, 3.106650), -- Flag on tower
-(@GUID+2, 192374, @MAP, 64, 5272.939941, 2976.550049, 444.492004, 3.124120), -- Flag on Wall Intersect
+(@GUID+2, 192374, @MAP, 64, 5272.939941, 2976.550049, 444.492004, 3.124120), -- Flag on Wall Intersect
(@GUID+3, 192416, @MAP, 128, 5272.939941, 2976.550049, 444.492004, 3.124120), -- Flag on Wall Intersect
-(@GUID+4, 192375, @MAP, 64, 5235.189941, 2941.899902, 444.278015, 1.588250), -- Flag on Wall Intersect
+(@GUID+4, 192375, @MAP, 64, 5235.189941, 2941.899902, 444.278015, 1.588250), -- Flag on Wall Intersect
(@GUID+5, 192416, @MAP, 128, 5235.189941, 2941.899902, 444.278015, 1.588250), -- Flag on Wall Intersect
-(@GUID+6, 192488, @MAP, 64, 5163.129883, 2952.590088, 433.502991, 1.535890), -- Flag on tower
+(@GUID+6, 192488, @MAP, 64, 5163.129883, 2952.590088, 433.502991, 1.535890), -- Flag on tower
(@GUID+7, 192501, @MAP, 128, 5163.129883, 2952.590088, 433.502991, 1.535890), -- Flag on tower
-(@GUID+8, 192488, @MAP, 64, 5145.109863, 2935.000000, 433.385986, 3.141590), -- Flag on tower
+(@GUID+8, 192488, @MAP, 64, 5145.109863, 2935.000000, 433.385986, 3.141590), -- Flag on tower
(@GUID+9, 192501, @MAP, 128, 5145.109863, 2935.000000, 433.385986, 3.141590), -- Flag on tower
-(@GUID+10, 192488, @MAP, 64, 5158.810059, 2883.129883, 431.618011, 3.141590), -- Flag on wall
+(@GUID+10, 192488, @MAP, 64, 5158.810059, 2883.129883, 431.618011, 3.141590), -- Flag on wall
(@GUID+11, 192416, @MAP, 128, 5158.810059, 2883.129883, 431.618011, 3.141590), -- Flag on wall
-(@GUID+12, 192336, @MAP, 64, 5154.490234, 2862.149902, 445.011993, 3.141590), -- Flag on Wall Intersect
+(@GUID+12, 192336, @MAP, 64, 5154.490234, 2862.149902, 445.011993, 3.141590), -- Flag on Wall Intersect
(@GUID+13, 192416, @MAP, 128, 5154.490234, 2862.149902, 445.011993, 3.141590), -- Flag on Wall Intersect
-(@GUID+14, 192255, @MAP, 64, 5154.520020, 2853.310059, 409.183014, 3.141590), -- Flag on the floor
+(@GUID+14, 192255, @MAP, 64, 5154.520020, 2853.310059, 409.183014, 3.141590), -- Flag on the floor
(@GUID+15, 192269, @MAP, 128, 5154.520020, 2853.310059, 409.183014, 3.141590), -- Flag on the floor
-(@GUID+16, 192254, @MAP, 64, 5154.459961, 2828.939941, 409.188995, 3.141590), -- Flag on the floor
+(@GUID+16, 192254, @MAP, 64, 5154.459961, 2828.939941, 409.188995, 3.141590), -- Flag on the floor
(@GUID+17, 192269, @MAP, 128, 5154.459961, 2828.939941, 409.188995, 3.141590), -- Flag on the floor
-(@GUID+18, 192349, @MAP, 64, 5155.310059, 2820.739990, 444.979004, -3.13286), -- Flag on wall intersect
+(@GUID+18, 192349, @MAP, 64, 5155.310059, 2820.739990, 444.979004, -3.13286), -- Flag on wall intersect
(@GUID+19, 192416, @MAP, 128, 5155.310059, 2820.739990, 444.979004, -3.13286), -- Flag on wall intersect
-(@GUID+20, 192488, @MAP, 64, 5160.339844, 2798.610107, 430.769012, 3.141590), -- Flag on wall
+(@GUID+20, 192488, @MAP, 64, 5160.339844, 2798.610107, 430.769012, 3.141590), -- Flag on wall
(@GUID+21, 192416, @MAP, 128, 5160.339844, 2798.610107, 430.769012, 3.141590), -- Flag on wall
-(@GUID+22, 192488, @MAP, 64, 5146.040039, 2747.209961, 433.584015, 3.071770), -- Flag on tower
+(@GUID+22, 192488, @MAP, 64, 5146.040039, 2747.209961, 433.584015, 3.071770), -- Flag on tower
(@GUID+23, 192501, @MAP, 128, 5146.040039, 2747.209961, 433.584015, 3.071770), -- Flag on tower
-(@GUID+24, 192488, @MAP, 64, 5163.779785, 2729.679932, 433.394012, -1.58825), -- Flag on tower
+(@GUID+24, 192488, @MAP, 64, 5163.779785, 2729.679932, 433.394012, -1.58825), -- Flag on tower
(@GUID+25, 192501, @MAP, 128, 5163.779785, 2729.679932, 433.394012, -1.58825), -- Flag on tower
-(@GUID+26, 192366, @MAP, 64, 5236.270020, 2739.459961, 444.992004, -1.59698), -- Flag on wall intersect
+(@GUID+26, 192366, @MAP, 64, 5236.270020, 2739.459961, 444.992004, -1.59698), -- Flag on wall intersect
(@GUID+27, 192416, @MAP, 128, 5236.270020, 2739.459961, 444.992004, -1.59698), -- Flag on wall intersect
-(@GUID+28, 192367, @MAP, 64, 5271.799805, 2704.870117, 445.183014, -3.13286), -- Flag on wall intersect
+(@GUID+28, 192367, @MAP, 64, 5271.799805, 2704.870117, 445.183014, -3.13286), -- Flag on wall intersect
(@GUID+29, 192416, @MAP, 128, 5271.799805, 2704.870117, 445.183014, -3.13286), -- Flag on wall intersect
-(@GUID+30, 192488, @MAP, 64, 5260.819824, 2631.800049, 433.324005, 3.054330), -- Flag on tower
+(@GUID+30, 192488, @MAP, 64, 5260.819824, 2631.800049, 433.324005, 3.054330), -- Flag on tower
(@GUID+31, 192501, @MAP, 128, 5260.819824, 2631.800049, 433.324005, 3.054330), -- Flag on tower
-(@GUID+32, 192488, @MAP, 64, 5278.379883, 2613.830078, 433.408997, -1.58825), -- Flag on tower
+(@GUID+32, 192488, @MAP, 64, 5278.379883, 2613.830078, 433.408997, -1.58825), -- Flag on tower
(@GUID+33, 192501, @MAP, 128, 5278.379883, 2613.830078, 433.408997, -1.58825), -- Flag on tower
-(@GUID+34, 192364, @MAP, 64, 5350.879883, 2622.719971, 444.686005, -1.57080), -- Flag on wall intersect
+(@GUID+34, 192364, @MAP, 64, 5350.879883, 2622.719971, 444.686005, -1.57080), -- Flag on wall intersect
(@GUID+35, 192416, @MAP, 128, 5350.879883, 2622.719971, 444.686005, -1.57080), -- Flag on wall intersect
-(@GUID+36, 192370, @MAP, 64, 5392.270020, 2639.739990, 435.330994, 1.509710), -- Flag on wall intersect
+(@GUID+36, 192370, @MAP, 64, 5392.270020, 2639.739990, 435.330994, 1.509710), -- Flag on wall intersect
(@GUID+37, 192416, @MAP, 128, 5392.270020, 2639.739990, 435.330994, 1.509710), -- Flag on wall intersect
-(@GUID+38, 192369, @MAP, 64, 5350.950195, 2640.360107, 435.407990, 1.570800), -- Flag on wall intersect
+(@GUID+38, 192369, @MAP, 64, 5350.950195, 2640.360107, 435.407990, 1.570800), -- Flag on wall intersect
(@GUID+39, 192416, @MAP, 128, 5350.950195, 2640.360107, 435.407990, 1.570800), -- Flag on wall intersect
-(@GUID+40, 192368, @MAP, 64, 5289.459961, 2704.679932, 435.875000, -0.01745), -- Flag on wall intersect
+(@GUID+40, 192368, @MAP, 64, 5289.459961, 2704.679932, 435.875000, -0.01745), -- Flag on wall intersect
(@GUID+41, 192416, @MAP, 128, 5289.459961, 2704.679932, 435.875000, -0.01745), -- Flag on wall intersect
-(@GUID+42, 192362, @MAP, 64, 5322.120117, 2763.610107, 444.973999, -1.55334), -- Flag on wall intersect
+(@GUID+42, 192362, @MAP, 64, 5322.120117, 2763.610107, 444.973999, -1.55334), -- Flag on wall intersect
(@GUID+43, 192416, @MAP, 128, 5322.120117, 2763.610107, 444.973999, -1.55334), -- Flag on wall intersect
-(@GUID+44, 192363, @MAP, 64, 5363.609863, 2763.389893, 445.023987, -1.54462), -- Flag on wall intersect
+(@GUID+44, 192363, @MAP, 64, 5363.609863, 2763.389893, 445.023987, -1.54462), -- Flag on wall intersect
(@GUID+45, 192416, @MAP, 128, 5363.609863, 2763.389893, 445.023987, -1.54462), -- Flag on wall intersect
-(@GUID+46, 192379, @MAP, 64, 5363.419922, 2781.030029, 435.763000, 1.570800), -- Flag on wall intersect
+(@GUID+46, 192379, @MAP, 64, 5363.419922, 2781.030029, 435.763000, 1.570800), -- Flag on wall intersect
(@GUID+47, 192416, @MAP, 128, 5363.419922, 2781.030029, 435.763000, 1.570800), -- Flag on wall intersect
-(@GUID+48, 192378, @MAP, 64, 5322.020020, 2781.129883, 435.811005, 1.570800), -- Flag on wall intersect
+(@GUID+48, 192378, @MAP, 64, 5322.020020, 2781.129883, 435.811005, 1.570800), -- Flag on wall intersect
(@GUID+49, 192416, @MAP, 128, 5322.020020, 2781.129883, 435.811005, 1.570800), -- Flag on wall intersect
-(@GUID+50, 192355, @MAP, 64, 5288.919922, 2820.219971, 435.721008, 0.017452), -- Flag on wall intersect
+(@GUID+50, 192355, @MAP, 64, 5288.919922, 2820.219971, 435.721008, 0.017452), -- Flag on wall intersect
(@GUID+51, 192416, @MAP, 128, 5288.919922, 2820.219971, 435.721008, 0.017452), -- Flag on wall intersect
-(@GUID+52, 192354, @MAP, 64, 5288.410156, 2861.790039, 435.721008, 0.017452), -- Flag on wall intersect
+(@GUID+52, 192354, @MAP, 64, 5288.410156, 2861.790039, 435.721008, 0.017452), -- Flag on wall intersect
(@GUID+53, 192416, @MAP, 128, 5288.410156, 2861.790039, 435.721008, 0.017452), -- Flag on wall intersect
-(@GUID+54, 192358, @MAP, 64, 5322.229980, 2899.429932, 435.808014, -1.58825), -- Flag on wall intersect
+(@GUID+54, 192358, @MAP, 64, 5322.229980, 2899.429932, 435.808014, -1.58825), -- Flag on wall intersect
(@GUID+55, 192416, @MAP, 128, 5322.229980, 2899.429932, 435.808014, -1.58825), -- Flag on wall intersect
-(@GUID+56, 192359, @MAP, 64, 5364.350098, 2899.399902, 435.838989, -1.57080), -- Flag on wall intersect
+(@GUID+56, 192359, @MAP, 64, 5364.350098, 2899.399902, 435.838989, -1.57080), -- Flag on wall intersect
(@GUID+57, 192416, @MAP, 128, 5364.350098, 2899.399902, 435.838989, -1.57080), -- Flag on wall intersect
-(@GUID+58, 192338, @MAP, 64, 5397.759766, 2873.080078, 455.460999, 3.106650), -- Flag on keep
+(@GUID+58, 192338, @MAP, 64, 5397.759766, 2873.080078, 455.460999, 3.106650), -- Flag on keep
(@GUID+59, 192416, @MAP, 128, 5397.759766, 2873.080078, 455.460999, 3.106650), -- Flag on keep
-(@GUID+60, 192339, @MAP, 64, 5397.390137, 2809.330078, 455.343994, 3.106650), -- Flag on keep
+(@GUID+60, 192339, @MAP, 64, 5397.390137, 2809.330078, 455.343994, 3.106650), -- Flag on keep
(@GUID+61, 192416, @MAP, 128, 5397.390137, 2809.330078, 455.343994, 3.106650), -- Flag on keep
-(@GUID+62, 192284, @MAP, 64, 5372.479980, 2862.500000, 409.049011, 3.141590), -- Flag on floor
+(@GUID+62, 192284, @MAP, 64, 5372.479980, 2862.500000, 409.049011, 3.141590), -- Flag on floor
(@GUID+63, 192269, @MAP, 128, 5372.479980, 2862.500000, 409.049011, 3.141590), -- Flag on floor
-(@GUID+64, 192285, @MAP, 64, 5371.490234, 2820.800049, 409.177002, 3.141590), -- Flag on floor
+(@GUID+64, 192285, @MAP, 64, 5371.490234, 2820.800049, 409.177002, 3.141590), -- Flag on floor
(@GUID+65, 192269, @MAP, 128, 5371.490234, 2820.800049, 409.177002, 3.141590), -- Flag on floor
-(@GUID+66, 192371, @MAP, 64, 5364.290039, 2916.939941, 445.330994, 1.579520), -- Flag on wall intersect
+(@GUID+66, 192371, @MAP, 64, 5364.290039, 2916.939941, 445.330994, 1.579520), -- Flag on wall intersect
(@GUID+67, 192416, @MAP, 128, 5364.290039, 2916.939941, 445.330994, 1.579520), -- Flag on wall intersect
-(@GUID+68, 192372, @MAP, 64, 5322.859863, 2916.949951, 445.153992, 1.562070), -- Flag on wall intersect
+(@GUID+68, 192372, @MAP, 64, 5322.859863, 2916.949951, 445.153992, 1.562070), -- Flag on wall intersect
(@GUID+69, 192416, @MAP, 128, 5322.859863, 2916.949951, 445.153992, 1.562070), -- Flag on wall intersect
-(@GUID+70, 192373, @MAP, 64, 5290.350098, 2976.560059, 435.221008, 0.017452), -- Flag on wall intersect
+(@GUID+70, 192373, @MAP, 64, 5290.350098, 2976.560059, 435.221008, 0.017452), -- Flag on wall intersect
(@GUID+71, 192416, @MAP, 128, 5290.350098, 2976.560059, 435.221008, 0.017452), -- Flag on wall intersect
-(@GUID+72, 192360, @MAP, 64, 5352.370117, 3037.090088, 435.252014, -1.57080), -- Flag on wall intersect
+(@GUID+72, 192360, @MAP, 64, 5352.370117, 3037.090088, 435.252014, -1.57080), -- Flag on wall intersect
(@GUID+73, 192416, @MAP, 128, 5352.370117, 3037.090088, 435.252014, -1.57080), -- Flag on wall intersect
-(@GUID+74, 192361, @MAP, 64, 5392.649902, 3037.110107, 433.713013, -1.52716), -- Flag on wall intersect
+(@GUID+74, 192361, @MAP, 64, 5392.649902, 3037.110107, 433.713013, -1.52716), -- Flag on wall intersect
(@GUID+75, 192416, @MAP, 128, 5392.649902, 3037.110107, 433.713013, -1.52716), -- Flag on wall intersect
-(@GUID+76, 192356, @MAP, 64, 5237.069824, 2757.030029, 435.795990, 1.518440), -- Flag on wall intersect
+(@GUID+76, 192356, @MAP, 64, 5237.069824, 2757.030029, 435.795990, 1.518440), -- Flag on wall intersect
(@GUID+77, 192416, @MAP, 128, 5237.069824, 2757.030029, 435.795990, 1.518440), -- Flag on wall intersect
-(@GUID+78, 192352, @MAP, 64, 5173.020020, 2820.929932, 435.720001, 0.017452), -- Flag on wall intersect
+(@GUID+78, 192352, @MAP, 64, 5173.020020, 2820.929932, 435.720001, 0.017452), -- Flag on wall intersect
(@GUID+79, 192416, @MAP, 128, 5173.020020, 2820.929932, 435.720001, 0.017452), -- Flag on wall intersect
-(@GUID+80, 192353, @MAP, 64, 5172.109863, 2862.570068, 435.721008, 0.017452), -- Flag on wall intersect
+(@GUID+80, 192353, @MAP, 64, 5172.109863, 2862.570068, 435.721008, 0.017452), -- Flag on wall intersect
(@GUID+81, 192416, @MAP, 128, 5172.109863, 2862.570068, 435.721008, 0.017452), -- Flag on wall intersect
-(@GUID+82, 192357, @MAP, 64, 5235.339844, 2924.340088, 435.040009, -1.57080), -- Flag on wall intersect
+(@GUID+82, 192357, @MAP, 64, 5235.339844, 2924.340088, 435.040009, -1.57080), -- Flag on wall intersect
(@GUID+83, 192416, @MAP, 128, 5235.339844, 2924.340088, 435.040009, -1.57080), -- Flag on wall intersect
-(@GUID+84, 192350, @MAP, 64, 5270.689941, 2861.780029, 445.058014, -3.11539), -- Flag on wall intersect
+(@GUID+84, 192350, @MAP, 64, 5270.689941, 2861.780029, 445.058014, -3.11539), -- Flag on wall intersect
(@GUID+85, 192416, @MAP, 128, 5270.689941, 2861.780029, 445.058014, -3.11539), -- Flag on wall intersect
-(@GUID+86, 192351, @MAP, 64, 5271.279785, 2820.159912, 445.200989, -3.13286), -- Flag on wall intersect
+(@GUID+86, 192351, @MAP, 64, 5271.279785, 2820.159912, 445.200989, -3.13286), -- Flag on wall intersect
(@GUID+87, 192416, @MAP, 128, 5271.279785, 2820.159912, 445.200989, -3.13286); -- Flag on wall intersect
diff --git a/sql/updates/world/2012_10_25_00_world_childrens_week.sql b/sql/updates/world/2012_10_25_00_world_childrens_week.sql
index e2d6eec4dd2..f10cf92b409 100644
--- a/sql/updates/world/2012_10_25_00_world_childrens_week.sql
+++ b/sql/updates/world/2012_10_25_00_world_childrens_week.sql
@@ -539,13 +539,13 @@ INSERT INTO `creature`(`guid`,`id`,`map`,`position_x`,`position_y`,`position_z`,
(@GUID_THRONE_OF_ELEMENTS_TRIGGER,22839,530,-781.294,6943.52,33.3344,0);
-- Misc
-DELETE `game_event_creature` FROM `game_event_creature` INNER JOIN `creature` ON `creature`.`guid`=`game_event_creature`.`guid`
+DELETE `game_event_creature` FROM `game_event_creature` INNER JOIN `creature` ON `creature`.`guid`=`game_event_creature`.`guid`
WHERE `id` IN (22905,22851,22838,22866,22831,22829,22872,22839,14450,22819,14451,34365,34387,34386,34490,34489,34381,36209);
-INSERT INTO `game_event_creature`(`eventEntry`,`guid`) SELECT 10,`guid` FROM `creature`
+INSERT INTO `game_event_creature`(`eventEntry`,`guid`) SELECT 10,`guid` FROM `creature`
WHERE `id` IN (22905,22851,22838,22866,22831,22829,22872,22839,14450,22819,14451,34365,34387,34386,34490,34489,34381,36209);
DELETE FROM `game_event_npc_vendor` WHERE `eventEntry`=10 AND `item`=46693;
-INSERT INTO `game_event_npc_vendor` (`eventEntry`, `guid`, `item`) VALUES
+INSERT INTO `game_event_npc_vendor` (`eventEntry`, `guid`, `item`) VALUES
(10,99369,46693),
(10,97984,46693);
@@ -553,7 +553,7 @@ UPDATE `item_template` SET `minMoneyLoot`=50000,`maxMoneyLoot`=50000 WHERE `entr
UPDATE `item_template` SET `HolidayId`=201 WHERE `entry` IN (46396,46397,31880,31881,18598,18597);
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry` IN (23012,23013,39478,39479,65352,65353);
-INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ErrorTextId`,`Comment`) VALUES
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ErrorTextId`,`Comment`) VALUES
(17,0,23012,0,12,10,0,"Orphan Whistle only while children's week"),
(17,0,23013,0,12,10,0,"Orphan Whistle only while children's week"),
(17,0,39478,0,12,10,0,"Orphan Whistle only while children's week"),
diff --git a/sql/updates/world/2012_11_07_00_world_misc.sql b/sql/updates/world/2012_11_07_00_world_misc.sql
new file mode 100644
index 00000000000..db7c8f66fb1
--- /dev/null
+++ b/sql/updates/world/2012_11_07_00_world_misc.sql
@@ -0,0 +1,36 @@
+SET @GUID := 43456;
+
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID+0 AND @GUID+3;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+0,30236,571,1,64,0,0,6219.17,59.9983,400.375,1.6057,120,0,0,1,0,0,0,0,0),
+(@GUID+1,30236,571,1,64,0,0,6256.11,93.2413,410.92,0.767945,120,0,0,1,0,0,0,0,0),
+(@GUID+2,30236,571,1,64,0,0,6297.37,53.5677,410.957,0.802851,120,0,0,1,0,0,0,0,0),
+(@GUID+3,30236,571,1,64,0,0,6162.81,60.9792,400.371,1.55334,120,0,0,1,0,0,0,0,0);
+
+DELETE FROM `creature_template_addon` WHERE `entry`=30236;
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(30236,0,0,0x0,0x1,'');
+
+DELETE FROM `creature_model_info` WHERE `modelid`=27101;
+INSERT INTO `creature_model_info` (`modelid`,`bounding_radius`,`combat_reach`,`gender`) VALUES
+(27101,0.3055,1,2);
+
+UPDATE `creature_template` SET `VehicleId`=246,`npcflag`=0x1000000,`resistance2`=4394,`resistance4`=1 WHERE `entry`=30236;
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30236;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES
+(30236,57573,1,0);
+
+SET @OGUID := 7278;
+DELETE FROM `gameobject` WHERE `id` IN (192657,192658,192769,192770,192767,192768,192771,192772);
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID+0, 192657, 571, 1, 64, 6255.958, 93.05556, 403.0368, 5.454153, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+1, 192658, 571, 1, 64, 6255.961, 93.06424, 408.4696, 5.44543, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+2, 192769, 571, 1, 64, 6219.205, 59.86806, 392.5132, 6.283184, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+3, 192770, 571, 1, 64, 6219.202, 59.875, 397.924, 6.274461, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+4, 192767, 571, 1, 64, 6297.223, 53.39583, 402.9972, 5.532692, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+5, 192768, 571, 1, 64, 6297.226, 53.40451, 408.4129, 5.523969, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+6, 192771, 571, 1, 64, 6162.772, 60.73438, 392.4362, 6.265733, 0, 0, 0, 1, 120, 255, 1),
+(@OGUID+7, 192772, 571, 1, 64, 6162.768, 60.74306, 397.8138, 6.257008, 0, 0, 0, 1, 120, 255, 1);
+
+UPDATE `gameobject_template` SET `flags`=32,`faction`=114 WHERE `entry` IN (192657,192658,192769,192770,192767,192768,192771,192772);
diff --git a/sql/updates/world/2012_11_11_00_world_sai.sql b/sql/updates/world/2012_11_11_00_world_sai.sql
new file mode 100644
index 00000000000..b5eedd86898
--- /dev/null
+++ b/sql/updates/world/2012_11_11_00_world_sai.sql
@@ -0,0 +1,113 @@
+-- Update creature gossip_menu_option from sniff
+DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (8803,8808,8894,9045,9621,9879,9895,9987,10117,10218) AND `id`=0;
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9879 AND `id`=1;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(8803,0,1, 'I need some booze, Coot.',3,128,0,0,0,0, ''),
+(8808,0,1, 'I require some components, Sorely.',3,128,0,0,0,0, ''),
+(8894,0,0, 'I need to fly to the Windrunner Official business!',1,1,0,0,0,0, ''),
+(9045,0,0, 'I don''t have time for chit-chat, Lou. Take me to Scalawag Point.',1,1,0,0,0,0, ''),
+(9621,0,0, 'Harry said I could use his bomber to Bael''gun''s. I''m ready to go!',1,1,0,0,0,0, ''),
+(9879,0,3, 'Train me',5,16,0,0,0,0, ''),
+(9879,1,1, 'Let me browse your goods.',3,128,0,0,0,0, ''),
+(9895,0,3, 'Train me',5,16,0,0,0,0, ''),
+(9987,0,3, 'Train me',5,16,0,0,0,0, ''),
+(10117,0,3, 'Train me',5,16,0,0,0,0, ''),
+(10218,0,0, '<Get in the bomber and return to Scalawag Point.>',1,1,0,0,0,0, '');
+-- Insert gossip menu from sniff
+DELETE FROM `gossip_menu` WHERE `entry`=8803 AND `text_id`=11287;
+DELETE FROM `gossip_menu` WHERE `entry`=8808 AND `text_id`=11297;
+DELETE FROM `gossip_menu` WHERE `entry`=8820 AND `text_id`=11352;
+DELETE FROM `gossip_menu` WHERE `entry`=8832 AND `text_id`=11418;
+DELETE FROM `gossip_menu` WHERE `entry`=8839 AND `text_id`=11436;
+DELETE FROM `gossip_menu` WHERE `entry`=8893 AND `text_id`=11655;
+DELETE FROM `gossip_menu` WHERE `entry`=8900 AND `text_id`=11691;
+DELETE FROM `gossip_menu` WHERE `entry`=8957 AND `text_id`=11746;
+DELETE FROM `gossip_menu` WHERE `entry`=8985 AND `text_id`=12130;
+DELETE FROM `gossip_menu` WHERE `entry`=9008 AND `text_id`=12170;
+DELETE FROM `gossip_menu` WHERE `entry`=9045 AND `text_id`=12222;
+DELETE FROM `gossip_menu` WHERE `entry`=9346 AND `text_id`=12646;
+DELETE FROM `gossip_menu` WHERE `entry`=9895 AND `text_id`=13738;
+DELETE FROM `gossip_menu` WHERE `entry`=9987 AND `text_id`=13841;
+DELETE FROM `gossip_menu` WHERE `entry`=10117 AND `text_id`=14043;
+DELETE FROM `gossip_menu` WHERE `entry`=10218 AND `text_id`=14205;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(8803,11287),
+(8808,11297),
+(8820,11352),
+(8832,11418),
+(8839,11436),
+(8893,11655),
+(8900,11691),
+(8957,11746),
+(8985,12130),
+(9008,12170),
+(9045,12222),
+(9346,12646),
+(9895,13738),
+(9987,13841),
+(10117,14043),
+(10218,14205);
+-- Insert creature gossip_menu_id Update from sniff
+UPDATE `creature_template` SET `gossip_menu_id`=8803 WHERE `entry`=23737; -- Coot "The Stranger" Albertson
+UPDATE `creature_template` SET `gossip_menu_id`=8808 WHERE `entry`=23732; -- Sorely Twitchblade
+UPDATE `creature_template` SET `gossip_menu_id`=8820 WHERE `entry`=23862; -- Finlay Fletcher
+UPDATE `creature_template` SET `gossip_menu_id`=8832 WHERE `entry`=23770; -- Cannoneer Ely
+UPDATE `creature_template` SET `gossip_menu_id`=8839 WHERE `entry`=23906; -- Scout Knowles
+UPDATE `creature_template` SET `gossip_menu_id`=8893 WHERE `entry`=24106; -- Scout Valory
+UPDATE `creature_template` SET `gossip_menu_id`=8900 WHERE `entry`=24135; -- Greatmother Ankha
+UPDATE `creature_template` SET `gossip_menu_id`=8957 WHERE `entry`=23833; -- Explorer Jaren
+UPDATE `creature_template` SET `gossip_menu_id`=8985 WHERE `entry`=24544; -- Old Icefin
+UPDATE `creature_template` SET `gossip_menu_id`=9008, `npcflag`=`npcflag`|1 WHERE `entry`=24643; -- Grezzix Spindlesnap
+UPDATE `creature_template` SET `gossip_menu_id`=9045, `npcflag`=1, `AIName`='SmartAI' WHERE `entry`=24896; -- Lou the Cabin Boy
+UPDATE `creature_template` SET `gossip_menu_id`=9346 WHERE `entry`=26540; -- Drenk Spannerspark
+UPDATE `creature_template` SET `gossip_menu_id`=9821 WHERE `entry` IN (24067,24154,24350); -- Mahana Frosthoof, Mary Darrow, Robert Clarke
+UPDATE `creature_template` SET `gossip_menu_id`=9879 WHERE `entry`=26959; -- Booker Kells
+UPDATE `creature_template` SET `gossip_menu_id`=9895 WHERE `entry`=26960; -- Carter Tiffens
+UPDATE `creature_template` SET `gossip_menu_id`=9987 WHERE `entry`=26953; -- Thomas Kolichio
+UPDATE `creature_template` SET `gossip_menu_id`=10117 WHERE `entry`=26964; -- Alexandra McQueen
+UPDATE `creature_template` SET `gossip_menu_id`=10218, `AIName`='SmartAI' WHERE `entry`=28277; -- Harry's Bomber
+-- Insert npc_text from sniff
+DELETE FROM `npc_text` WHERE `ID` IN (12130,13702);
+INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`lang0`,`prob0`,`em0_0`,`em0_1`,`em0_2`,`em0_3`,`em0_4`,`em0_5`,`text1_0`,`text1_1`,`lang1`,`prob1`,`em1_0`,`em1_1`,`em1_2`,`em1_3`,`em1_4`,`em1_5`,`text2_0`,`text2_1`,`lang2`,`prob2`,`em2_0`,`em2_1`,`em2_2`,`em2_3`,`em2_4`,`em2_5`,`text3_0`,`text3_1`,`lang3`,`prob3`,`em3_0`,`em3_1`,`em3_2`,`em3_3`,`em3_4`,`em3_5`,`text4_0`,`text4_1`,`lang4`,`prob4`,`em4_0`,`em4_1`,`em4_2`,`em4_3`,`em4_4`,`em4_5`,`text5_0`,`text5_1`,`lang5`,`prob5`,`em5_0`,`em5_1`,`em5_2`,`em5_3`,`em5_4`,`em5_5`,`text6_0`,`text6_1`,`lang6`,`prob6`,`em6_0`,`em6_1`,`em6_2`,`em6_3`,`em6_4`,`em6_5`,`text7_0`,`text7_1`,`lang7`,`prob7`,`em7_0`,`em7_1`,`em7_2`,`em7_3`,`em7_4`,`em7_5`,`WDBVerified`) VALUES
+(12130,'<Old Icefin eyes you warily, his fishy eye blinking as he bobs his head up and down once in a curt dismissal.>','',0,1,0,396,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340),
+(13702,'How may I help you?','',0,1,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340);
+-- Insert creature_text from sniff
+DELETE FROM `creature_text` WHERE `entry` IN (27923,27933);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(27923,0,0,'Hang on to your hat, $N! To Scalawag we go!',12,0,100,0,0,0,'Lou the Cabin Boy'),
+(27923,1,0,'YAAARRRRR! Here we be, matey! Scalawag Point!',12,0,100,0,0,0,'Lou the Cabin Boy'),
+(27933,0,0,'Enjoy the ride! It''s a one way trip!',12,0,100,3,0,0,'Alanya');
+-- Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (8894,9045,9621,10218) AND `SourceEntry`=0;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (8894,9546) AND `SourceEntry`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,8894,0,0,0,9,0,11229,0,0,0,0,'','Bathandler Camille - Show gossip option only if player has taken quest 11229'),
+(15,8894,1,0,0,9,0,11170,0,0,0,0,'','Bathandler Camille - Show gossip option only if player has taken quest 11170'),
+(15,9045,0,0,0,9,0,11509,0,0,0,0,'','Lou the Cabin Boy - Show gossip option only if player has taken quest 11509'),
+(15,9546,1,0,0,9,0,12298,0,0,0,0,'','Greer Orehammer - Show gossip option only if player has taken quest 12298'),
+(15,9621,0,0,0,9,0,11567,0,0,0,0,'','Alanya - Show gossip option only if player has taken quest 11567'),
+(15,10218,0,0,0,9,0,11567,0,0,0,0,'','Harry''s Bomber - Show gossip option if player has taken quest 11567');
+-- SmartAIs
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27933;
+UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=23816;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=23859 AND `source_type`=0 AND `id` IN (3,4); -- this npc had already a SmartAI so deleting just the new lines
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23816,24896,27933,28277) AND `source_type`=0;
+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
+(23816,0,0,2,62,0,100,0,8894,0,0,0,85,43074,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Invoker spellcast'),
+(23816,0,1,2,62,0,100,0,8894,1,0,0,85,43136,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Invoker spellcast'),
+(23816,0,2,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Close gossip'),
+(23859,0,3,4,62,0,100,0,9546,1,0,0,11,48862,0,0,0,0,0,7,0,0,0,0,0,0,0,'Greer Orehammer - On gossip select - Invoker spellcast'),
+(23859,0,4,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Greer Orehammer - On gossip select - Close gossip'),
+(24896,0,0,1,62,0,100,0,9045,0,0,0,11,50004,0,0,0,0,0,7,0,0,0,0,0,0,0,'Lou the Cabin Boy - On gossip select - Spellcast'),
+(24896,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Lou the Cabin Boy - On gossip select - Close gossip'),
+(27933,0,0,1,62,0,100,0,9621,0,0,0,11,50038,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Spellcast'),
+(27933,0,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,'Alanya - On gossip select - Close gossip'),
+(27933,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Say line'),
+(28277,0,0,1,62,0,100,0,10218,0,0,0,11,61604,0,0,0,0,0,7,0,0,0,0,0,0,0,'Harry''s Bomber - On gossip select - Spellcast'),
+(28277,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Harry''s Bomber - On gossip select - Close gossip');
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=24896; -- that was absolutely not correct
+DELETE FROM `spell_target_position` WHERE `id` IN (50005,50039,61605);
+INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
+(50005,571,595.208,-2796.47,-0.124098,3.66519), -- Summon Lou the Cabin Boy
+(50039,571,-170.469,-3588.19,-0.221146,4.2586), -- Summon Harry's Bomber
+(61605,571,89.7416,-6286.08,1.17903,1.58825); -- Summon Harry's Bomber
diff --git a/sql/updates/world/2012_11_11_01_world_quest_template.sql b/sql/updates/world/2012_11_11_01_world_quest_template.sql
new file mode 100644
index 00000000000..9abf2ea3cd1
--- /dev/null
+++ b/sql/updates/world/2012_11_11_01_world_quest_template.sql
@@ -0,0 +1,2 @@
+-- Fix a typo in RewardText table for quest Spooky Lighthouse (1687)
+UPDATE `quest_template` SET `OfferRewardText`="WOW, that was a real life ghost! That was so awesome - I can't wait to tell everyone back at the orphanage. Captain Grayson... he even looked like a pirate! When I grow up I wanna be a ghost pirate too!$B$BThanks for taking me to Westfall, $N. I know there are scary things out there in the wilds of Westfall, and I hope I wasn't too much of a pain. You're awesome!" WHERE `Id`=1687;
diff --git a/sql/updates/world/2012_11_11_02_world_gossip_menu.sql b/sql/updates/world/2012_11_11_02_world_gossip_menu.sql
new file mode 100644
index 00000000000..59d1a10b337
--- /dev/null
+++ b/sql/updates/world/2012_11_11_02_world_gossip_menu.sql
@@ -0,0 +1,109 @@
+UPDATE `creature_template` SET `gossip_menu_id`=9260 WHERE `entry`=25754;
+DELETE FROM `gossip_menu` WHERE `entry`=9260 AND `text_id`=12572;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9260,12572);
+
+UPDATE `creature_template` SET `gossip_menu_id`=11417 WHERE `entry`=25697;
+DELETE FROM `gossip_menu` WHERE `entry`=11417 AND `text_id`=12390;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (11417,12390);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9298 WHERE `entry`=16818;
+DELETE FROM `gossip_menu` WHERE `entry`=9298 AND `text_id`=12609;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9298,12609);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=26113;
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25994;
+DELETE FROM `gossip_menu` WHERE `entry`=9204 AND `text_id`=12506;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9204,12506);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9148 WHERE `entry`=16781;
+DELETE FROM `gossip_menu` WHERE `entry`=9148 AND `text_id`=12376;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9148,12376);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9157 WHERE `entry`=26221;
+DELETE FROM `gossip_menu` WHERE `entry`=9157 AND `text_id`=12390;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9157,12390);
+
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25884;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25918;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25919;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25920;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25921;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25922;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25924;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25926;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25928;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25929;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25930;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25932;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25934;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25936;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25937;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25938;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25940;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25943;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25947;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32809;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32810;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32811;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32812;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32813;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32814;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32815;
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32816;
+DELETE FROM `gossip_menu` WHERE `entry`=9278 AND `text_id`=12582;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9278,12582);
+
+DELETE FROM `gossip_menu` WHERE `entry`=9354 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9354,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9384 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9384,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9385 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9385,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9386 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9386,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9387 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9387,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9389 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9389,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9390 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9390,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9393 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9393,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9395 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9395,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9396 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9396,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9399 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9399,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9401 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9401,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9403 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9403,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9408 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9408,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9409 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9409,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9410 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9410,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9411 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9411,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9412 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9412,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=9413 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9413,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10230 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10230,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10232 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10232,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10233 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10233,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10234 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10234,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10237 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10237,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10238 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10238,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10240 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10240,12377);
+DELETE FROM `gossip_menu` WHERE `entry`=10243 AND `text_id`=12377;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10243,12377);
diff --git a/sql/updates/world/2012_11_11_03_world_gossip_menu.sql b/sql/updates/world/2012_11_11_03_world_gossip_menu.sql
new file mode 100644
index 00000000000..4f250597388
--- /dev/null
+++ b/sql/updates/world/2012_11_11_03_world_gossip_menu.sql
@@ -0,0 +1,280 @@
+-- Creature Gossip Update for midsummer event from sniff
+UPDATE `creature_template` SET `gossip_menu_id`=9148 WHERE `entry`=16781; -- Midsummer Celebrant
+UPDATE `creature_template` SET `gossip_menu_id`=7326 WHERE `entry`=16817; -- Festival Loremaster
+UPDATE `creature_template` SET `gossip_menu_id`=11417 WHERE `entry`=25697; -- Luma Skymother <The Earthen Ring>
+UPDATE `creature_template` SET `gossip_menu_id`=9260 WHERE `entry`=25754; -- Earthen Ring Flamecaller <The Earthen Ring>
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25883; -- Ashenvale Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25884; -- Ashenvale Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25887; -- Arathi Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25888; -- Azuremyst Isle Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25889; -- Blade's Edge Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25890; -- Blasted Lands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25891; -- Bloodmyst Isle Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25892; -- Burning Steppes Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25893; -- Darkshore Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25894; -- Desolace Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25895; -- Dun Morogh Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25896; -- Duskwood Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25897; -- Dustwallow Marsh Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25898; -- Elwynn Forest Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25899; -- Feralas Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25900; -- Hellfire Peninsula Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25901; -- Hillsbrad Flame Warden -> Deleted in cata, taking from 3.x sniff
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25902; -- Loch Modan Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25903; -- Nagrand Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25904; -- Redridge Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25905; -- Shadowmoon Valley Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25906; -- Teldrassil Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25907; -- Terokkar Forest Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25908; -- The Hinterlands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25909; -- Western Plaguelands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25910; -- Westfall Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25911; -- Wetlands Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25912; -- Zangarmarsh Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25913; -- Netherstorm Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25914; -- Silithus Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25915; -- Cape of Stranglethorn Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25916; -- Tanaris Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25917; -- Winterspring Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25918; -- Netherstorm Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25919; -- Silithus Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25920; -- Cape of Stranglethorn Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25921; -- Tanaris Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25922; -- Winterspring Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25923; -- Arathi Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25925; -- Badlands Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25926; -- Blade's Edge Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25927; -- Burning Steppes Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25928; -- Desolace Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25929; -- Durotar Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25930; -- Dustwallow Marsh Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25931; -- Eversong Woods Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25932; -- Feralas Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25933; -- Ghostlands Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25934; -- Hellfire Peninsula Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25935; -- Hillsbrad Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25936; -- Mulgore Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25937; -- Nagrand Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25938; -- Shadowmoon Valley Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25939; -- Silverpine Forest Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25940; -- Stonetalon Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25941; -- Swamp of Sorrows Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25942; -- Terokkar Forest Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25943; -- The Northern Barrens Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25944; -- The Hinterlands Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25945; -- Thousand Needles Flame Keeper -> Deleted in cata, taking from 3.x sniff
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25946; -- Tirisfal Glades Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25947; -- Zangarmarsh Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25962; -- Fire Eater
+UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25975; -- Master Fire Eater
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32801; -- Borean Tundra Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32802; -- Sholazar Basin Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32806; -- Storm Peaks Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32807; -- Crystalsong Forest Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32808; -- Zul'Drak Flame Warden
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32809; -- Borean Tundra Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32810; -- Sholazar Basin Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32811; -- Dragonblight Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32812; -- Howling Fjord Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32813; -- Grizzly Hills Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32814; -- Storm Peaks Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32815; -- Crystalsong Forest Flame Keeper
+UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32816; -- Zul'Drak Flame Keeper
+-- Gossip insert from sniff
+DELETE FROM `gossip_menu` WHERE (`entry`=9148 AND `text_id`=12376) OR (`entry`=7326 AND `text_id`=8703) OR (`entry`=11417 AND `text_id`=12390) OR (`entry`=9260 AND `text_id`=12571) OR (`entry`=9260 AND `text_id`=12572) OR (`entry`=9203 AND `text_id`=12504) OR (`entry`=9278 AND `text_id`=12582) OR (`entry`=9204 AND `text_id`=12506) OR (`entry`=9370 AND `text_id`=12374) OR (`entry`=9406 AND `text_id`=12377) OR (`entry`=9352 AND `text_id`=12377) OR (`entry`=9354 AND `text_id`=12377) OR (`entry`=9384 AND `text_id`=12377) OR (`entry`=9385 AND `text_id`=12377) OR (`entry`=9386 AND `text_id`=12377) OR (`entry`=9387 AND `text_id`=12377) OR (`entry`=9388 AND `text_id`=12377) OR (`entry`=9389 AND `text_id`=12377) OR (`entry`=9390 AND `text_id`=12377) OR (`entry`=9391 AND `text_id`=12377) OR (`entry`=9392 AND `text_id`=12377) OR (`entry`=9393 AND `text_id`=12377) OR (`entry`=9394 AND `text_id`=12377) OR (`entry`=9395 AND `text_id`=12377) OR (`entry`=9396 AND `text_id`=12377) OR (`entry`=9397 AND `text_id`=12377) OR (`entry`=9398 AND `text_id`=12377) OR (`entry`=9399 AND `text_id`=12377) OR (`entry`=9400 AND `text_id`=12377) OR (`entry`=9401 AND `text_id`=12377) OR (`entry`=9402 AND `text_id`=12377) OR (`entry`=9403 AND `text_id`=12377) OR (`entry`=9404 AND `text_id`=12377) OR (`entry`=9405 AND `text_id`=12377) OR (`entry`=9407 AND `text_id`=12377) OR (`entry`=9408 AND `text_id`=12377) OR (`entry`=9409 AND `text_id`=12377) OR(`entry`=9410 AND `text_id`=12377) OR (`entry`=9411 AND `text_id`=12377) OR (`entry`=9412 AND `text_id`=12377) OR (`entry`=9413 AND `text_id`=12377) OR (`entry`=9353 AND `text_id`=12374) OR (`entry`=9355 AND `text_id`=12374) OR (`entry`=9379 AND `text_id`=12374) OR (`entry`=9380 AND `text_id`=12374) OR (`entry`=9381 AND `text_id`=12374) OR (`entry`=9382 AND `text_id`=12374) OR (`entry`=9383 AND `text_id`=12374) OR (`entry`=9356 AND `text_id`=12374) OR (`entry`=9357 AND `text_id`=12374) OR (`entry`=9358 AND `text_id`=12374) OR (`entry`=9359 AND `text_id`=12374) OR (`entry`=9360 AND `text_id`=12374) OR (`entry`=9361 AND `text_id`=12374) OR (`entry`=9362 AND `text_id`=12374) OR (`entry`=9363 AND `text_id`=12374) OR (`entry`=9364 AND `text_id`=12374) OR (`entry`=9365 AND `text_id`=12374) OR (`entry`=9366 AND `text_id`=12374) OR (`entry`=9367 AND `text_id`=12374) OR (`entry`=9368 AND `text_id`=12374) OR (`entry`=9369 AND `text_id`=12374) OR (`entry`=9371 AND `text_id`=12374) OR (`entry`=9372 AND `text_id`=12374) OR (`entry`=9373 AND `text_id`=12374) OR (`entry`=9374 AND `text_id`=12374) OR (`entry`=9375 AND `text_id`=12374) OR (`entry`=9377 AND `text_id`=12374) OR (`entry`=9378 AND `text_id`=12374) OR (`entry`=10227 AND `text_id`=12377) OR (`entry`=10228 AND `text_id`=12374) OR (`entry`=10231 AND `text_id`=12374) OR (`entry`=10230 AND `text_id`=12377) OR (`entry`=10239 AND `text_id`=12374) OR (`entry`=10238 AND `text_id`=12377) OR (`entry`=10240 AND `text_id`=12377) OR (`entry`=10241 AND `text_id`=12374) OR (`entry`=10242 AND `text_id`=12374) OR (`entry`=10243 AND `text_id`=12377);
+INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
+(9148, 12376), -- 16781
+(7326, 8703), -- 16817
+(11417, 12390), -- 25697
+(9260, 12571), -- 25754
+(9260, 12572), -- 25754
+(9203, 12504), -- 25883, 25887, 25888, 25889, 25890, 25891, 25892, 25893, 25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 32801, 32802, 32806, 32807, 32808
+(9278, 12582), -- 25884, 25918, 25919, 25920, 25921, 25922, 25923, 25925, 25926, 25927, 25928, 25929, 25930, 25931, 25932, 25933, 25934, 25935, 25936, 25937, 25938, 25939, 25940, 25941, 25942, 25943, 25944, 25945, 25946, 25947, 32809, 32810, 32811, 32812, 32813, 32814, 32815, 32816
+(9204, 12506), -- 25962, 25975
+(9370, 12374), -- 187559
+(9406, 12377), -- 187564
+(9352, 12377), -- 187914
+(9354, 12377), -- 187916
+(9384, 12377), -- 187917
+(9385, 12377), -- 187919
+(9386, 12377), -- 187920
+(9387, 12377), -- 187921
+(9388, 12377), -- 187922
+(9389, 12377), -- 187923
+(9390, 12377), -- 187924
+(9391, 12377), -- 187925
+(9392, 12377), -- 187926
+(9393, 12377), -- 187927
+(9394, 12377), -- 187928
+(9395, 12377), -- 187929
+(9396, 12377), -- 187930
+(9397, 12377), -- 187931 -> Deleted in cata, taking from 3.x sniff
+(9398, 12377), -- 187932
+(9399, 12377), -- 187933
+(9400, 12377), -- 187934
+(9401, 12377), -- 187935
+(9402, 12377), -- 187936
+(9403, 12377), -- 187937
+(9404, 12377), -- 187938
+(9405, 12377), -- 187939
+(9407, 12377), -- 187940
+(9408, 12377), -- 187941
+(9409, 12377), -- 187942
+(9410, 12377), -- 187943
+(9411, 12377), -- 187944
+(9412, 12377), -- 187945
+(9413, 12377), -- 187946
+(9353, 12374), -- 187947
+(9355, 12374), -- 187948
+(9379, 12374), -- 187949
+(9380, 12374), -- 187950
+(9381, 12374), -- 187951
+(9382, 12374), -- 187952
+(9383, 12374), -- 187953
+(9356, 12374), -- 187954
+(9357, 12374), -- 187955
+(9358, 12374), -- 187956
+(9359, 12374), -- 187957
+(9360, 12374), -- 187958
+(9361, 12374), -- 187959
+(9362, 12374), -- 187960
+(9363, 12374), -- 187961
+(9364, 12374), -- 187962
+(9365, 12374), -- 187963
+(9366, 12374), -- 187964
+(9367, 12374), -- 187965
+(9368, 12374), -- 187966
+(9369, 12374), -- 187967
+(9371, 12374), -- 187968
+(9372, 12374), -- 187969
+(9373, 12374), -- 187970
+(9374, 12374), -- 187971
+(9375, 12374), -- 187972
+(9377, 12374), -- 187974
+(9378, 12374), -- 187975
+(10227, 12377), -- 194032
+(10228, 12374), -- 194033
+(10231, 12374), -- 194034
+(10230, 12377), -- 194035
+(10239, 12374), -- 194043
+(10238, 12377), -- 194044
+(10240, 12377), -- 194045
+(10241, 12374), -- 194046
+(10242, 12374), -- 194048
+(10243, 12377); -- 194049
+-- Add quest to creature (warden)
+DELETE FROM `game_event_creature_quest` WHERE (`id`=25883 AND `quest`=11805) OR (`id`=25887 AND `quest`=11804) OR (`id`=25888 AND `quest`=11806) OR (`id`=25889 AND `quest`=11807) OR (`id`=25890 AND `quest`=11808) OR (`id`=25891 AND `quest`=11809) OR (`id`=25892 AND `quest`=11810) OR (`id`=25893 AND `quest`=11811) OR (`id`=25894 AND `quest`=11812) OR (`id`=25895 AND `quest`=11813) OR (`id`=25896 AND `quest`=11814) OR (`id`=25897 AND `quest`=11815) OR (`id`=25898 AND `quest`=11816) OR (`id`=25899 AND `quest`=11817) OR (`id`=25900 AND `quest`=11818) OR (`id`=25901 AND `quest`=11819) OR (`id`=25902 AND `quest`=11820) OR (`id`=25903 AND `quest`=11821) OR (`id`=25904 AND `quest`=11822) OR (`id`=25905 AND `quest`=11823) OR (`id`=25906 AND `quest`=11824) OR (`id`=25907 AND `quest`=11825) OR (`id`=25908 AND `quest`=11826) OR (`id`=25909 AND `quest`=11827) OR (`id`=25910 AND `quest`=11583) OR (`id`=25911 AND `quest`=11828) OR (`id`=25912 AND `quest`=11829) OR (`id`=25913 AND `quest`=11830) OR (`id`=25914 AND `quest`=11831) OR (`id`=25915 AND `quest`=11832) OR (`id`=25916 AND `quest`=11833) OR (`id`=25917 AND `quest`=11834) OR (`id`=32801 AND `quest`=13485) OR (`id`=32802 AND `quest`=13486) OR (`id`=32806 AND `quest`=13490) OR (`id`=32807 AND `quest`=13491) OR (`id`=32808 AND `quest`=13492);
+INSERT INTO `game_event_creature_quest` (`eventEntry`, `id`, `quest`) VALUES
+(1, 25883, 11805),
+(1, 25887, 11804),
+(1, 25888, 11806),
+(1, 25889, 11807),
+(1, 25890, 11808),
+(1, 25891, 11809),
+(1, 25892, 11810),
+(1, 25893, 11811),
+(1, 25894, 11812),
+(1, 25895, 11813),
+(1, 25896, 11814),
+(1, 25897, 11815),
+(1, 25898, 11816),
+(1, 25899, 11817),
+(1, 25900, 11818),
+(1, 25901, 11819), -- Deleted in cata, taking from 3.x sniff
+(1, 25902, 11820),
+(1, 25903, 11821),
+(1, 25904, 11822),
+(1, 25905, 11823),
+(1, 25906, 11824),
+(1, 25907, 11825),
+(1, 25908, 11826),
+(1, 25909, 11827),
+(1, 25910, 11583),
+(1, 25911, 11828),
+(1, 25912, 11829),
+(1, 25913, 11830),
+(1, 25914, 11831),
+(1, 25915, 11832),
+(1, 25916, 11833),
+(1, 25917, 11834),
+(1, 32801, 13485),
+(1, 32802, 13486),
+(1, 32806, 13490),
+(1, 32807, 13491),
+(1, 32808, 13492);
+-- Delete double quest
+DELETE FROM `creature_questrelation` WHERE `id`=25889 AND `quest` =11807;
+-- Add quest relation to Gameobject (fire)
+DELETE FROM `game_event_gameobject_quest` WHERE (`id`=187559 AND `quest`=11580) OR (`id`=187564 AND `quest`=11581) OR (`id`=187914 AND `quest`=11732) OR (`id`=187916 AND `quest`=11734) OR (`id`=187917 AND `quest`=11735) OR (`id`=187919 AND `quest`=11736) OR (`id`=187920 AND `quest`=11737) OR (`id`=187921 AND `quest`=11738) OR (`id`=187922 AND `quest`=11739) OR (`id`=187923 AND `quest`=11740) OR (`id`=187924 AND `quest`=11741) OR (`id`=187925 AND `quest`=11742) OR (`id`=187926 AND `quest`=11743) OR (`id`=187927 AND `quest`=11744) OR (`id`=187928 AND `quest`=11745) OR (`id`=187929 AND `quest`=11746) OR (`id`=187930 AND `quest`=11747) OR (`id`=187931 AND `quest`=11748) OR (`id`=187932 AND `quest`=11749) OR (`id`=187933 AND `quest`=11750) OR (`id`=187934 AND `quest`=11751) OR (`id`=187935 AND `quest`=11752) OR (`id`=187936 AND `quest`=11753) OR (`id`=187937 AND `quest`=11754) OR (`id`=187938 AND `quest`=11755) OR (`id`=187939 AND `quest`=11756) OR (`id`=187940 AND `quest`=11757) OR (`id`=187941 AND `quest`=11758) OR (`id`=187942 AND `quest`=11759) OR(`id`=187943 AND `quest`=11760) OR (`id`=187944 AND `quest`=11761) OR (`id`=187945 AND `quest`=11762) OR (`id`=187946 AND `quest`=11763) OR (`id`=187947 AND `quest`=11764) OR (`id`=187948 AND `quest`=11765) OR (`id`=187949 AND `quest`=11799) OR (`id`=187950 AND `quest`=11800) OR (`id`=187951 AND `quest`=11801) OR (`id`=187952 AND `quest`=11802) OR (`id`=187953 AND `quest`=11803) OR (`id`=187954 AND `quest`=11766) OR (`id`=187955 AND `quest`=11767) OR (`id`=187956 AND `quest`=11768) OR (`id`=187957 AND `quest`=11769) OR (`id`=187958 AND `quest`=11770) OR (`id`=187959 AND `quest`=11771) OR (`id`=187960 AND `quest`=11772) OR (`id`=187961 AND `quest`=11773) OR (`id`=187962 AND `quest`=11774) OR (`id`=187963 AND `quest`=11775) OR (`id`=187964 AND `quest`=11776) OR (`id`=187965 AND `quest`=11777) OR (`id`=187966 AND `quest`=11778) OR (`id`=187967 AND `quest`=11779) OR (`id`=187968 AND `quest`=11780) OR (`id`=187969 AND `quest`=11781) OR (`id`=187970 AND `quest`=11782) OR (`id`=187971 AND `quest`=11783) OR (`id`=187972 AND `quest`=11784) OR (`id`=187974 AND `quest`=11786) OR (`id`=187975 AND `quest`=11787) OR (`id`=194032 AND `quest`=13440) OR (`id`=194033 AND `quest`=13441) OR (`id`=194034 AND `quest`=13450) OR (`id`=194035 AND `quest`=13442) OR (`id`=194043 AND `quest`=13455) OR (`id`=194044 AND `quest`=13446) OR (`id`=194045 AND `quest`=13447) OR (`id`=194046 AND `quest`=13457) OR (`id`=194048 AND `quest`=13458) OR (`id`=194049 AND `quest`=13449);
+INSERT INTO `game_event_gameobject_quest` (`eventEntry`, `id`, `quest`) VALUES
+(1, 187559, 11580),
+(1, 187564, 11581),
+(1, 187914, 11732),
+(1, 187916, 11734),
+(1, 187917, 11735),
+(1, 187919, 11736),
+(1, 187920, 11737),
+(1, 187921, 11738),
+(1, 187922, 11739),
+(1, 187923, 11740),
+(1, 187924, 11741),
+(1, 187925, 11742),
+(1, 187926, 11743),
+(1, 187927, 11744),
+(1, 187928, 11745),
+(1, 187929, 11746),
+(1, 187930, 11747),
+(1, 187931, 11748), -- Deleted in cata, taking from 3.x sniff
+(1, 187932, 11749),
+(1, 187933, 11750),
+(1, 187934, 11751),
+(1, 187935, 11752),
+(1, 187936, 11753),
+(1, 187937, 11754),
+(1, 187938, 11755),
+(1, 187939, 11756),
+(1, 187940, 11757),
+(1, 187941, 11758),
+(1, 187942, 11759),
+(1, 187943, 11760),
+(1, 187944, 11761),
+(1, 187945, 11762),
+(1, 187946, 11763),
+(1, 187947, 11764),
+(1, 187948, 11765),
+(1, 187949, 11799),
+(1, 187950, 11800),
+(1, 187951, 11801),
+(1, 187952, 11802),
+(1, 187953, 11803),
+(1, 187954, 11766),
+(1, 187955, 11767),
+(1, 187956, 11768),
+(1, 187957, 11769),
+(1, 187958, 11770),
+(1, 187959, 11771),
+(1, 187960, 11772),
+(1, 187961, 11773),
+(1, 187962, 11774),
+(1, 187963, 11775),
+(1, 187964, 11776),
+(1, 187965, 11777),
+(1, 187966, 11778),
+(1, 187967, 11779),
+(1, 187968, 11780),
+(1, 187969, 11781),
+(1, 187970, 11782),
+(1, 187971, 11783),
+(1, 187972, 11784),
+(1, 187974, 11786),
+(1, 187975, 11787),
+(1, 194032, 13440),
+(1, 194033, 13441),
+(1, 194034, 13450),
+(1, 194035, 13442),
+(1, 194043, 13455),
+(1, 194044, 13446),
+(1, 194045, 13447),
+(1, 194046, 13457),
+(1, 194048, 13458),
+(1, 194049, 13449);
diff --git a/sql/updates/world/2012_11_12_00_world_quest_template.sql b/sql/updates/world/2012_11_12_00_world_quest_template.sql
new file mode 100644
index 00000000000..ee2206146b3
--- /dev/null
+++ b/sql/updates/world/2012_11_12_00_world_quest_template.sql
@@ -0,0 +1,3 @@
+-- Set chaining for Doomguard minion quests
+UPDATE `quest_template` SET `PrevQuestId`=7581 WHERE `Id`=7582; -- Complete The Prison's Bindings before The Prison's Casing
+UPDATE `quest_template` SET `PrevQuestId`=7582 WHERE `Id`=7583; -- Complete The Prison's Casing before Suppression
diff --git a/sql/updates/world/2012_11_12_01_world_misc.sql b/sql/updates/world/2012_11_12_01_world_misc.sql
new file mode 100644
index 00000000000..7a5e81c4b1a
--- /dev/null
+++ b/sql/updates/world/2012_11_12_01_world_misc.sql
@@ -0,0 +1,13 @@
+-- update quest linking for Egg Collection
+UPDATE `quest_template` SET `NextQuestId`=5522 WHERE `Id`=4735;
+-- --------------------------------------------------------------------------------------------------------------
+-- Test of Endurance (Gecko32)
+DELETE FROM `event_scripts` WHERE `id`=747 AND `command`=10 AND `datalong`=4100; -- Remove summon of Screeching Harpies
+UPDATE `event_scripts` SET `delay`=5 WHERE `id`=747 AND `command`=10 AND `datalong`=4490; -- Lower summon time of Grenka Bloodscreech from 40 sec to 5 sec
+-- --------------------------------------------------------------------------------------------------------------
+-- Tapper Swindlekeg (24711) fix Alliance faction exploitation (nelgano)
+UPDATE `creature_template` SET `unit_flags`=4864 WHERE `entry`=24711;
+-- --------------------------------------------------------------------------------------------------------------
+DELETE FROM `gameobject` WHERE `guid`=335;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(335,1684,1,1,1,1524.929,-4371.182,17.94367,1.62046,0,0,0,1,300,100,1);
diff --git a/sql/updates/world/2012_11_12_02_world_quest_template.sql b/sql/updates/world/2012_11_12_02_world_quest_template.sql
new file mode 100644
index 00000000000..8f988bfa4ab
--- /dev/null
+++ b/sql/updates/world/2012_11_12_02_world_quest_template.sql
@@ -0,0 +1,4 @@
+DELETE FROM `gameobject` WHERE `guid`IN (335,347);
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(335,324,1,1,1,-6314,507.647,7.651,0.496,0,0,0,0,2700,100,1),
+(347,1684,1,1,1,1524.929,-4371.182,17.94367,1.62046,0,0,0,1,300,100,1);
diff --git a/sql/updates/world/2012_11_12_03_world_misc.sql b/sql/updates/world/2012_11_12_03_world_misc.sql
new file mode 100644
index 00000000000..20c91974bbb
--- /dev/null
+++ b/sql/updates/world/2012_11_12_03_world_misc.sql
@@ -0,0 +1,106 @@
+-- Fix Jormungar Tunneler
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=26467;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=26467;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=26467 AND `source_type`=0;
+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
+(26467,0,0,0,11,0,100,0,0,0,0,0,11,47677,0,0,0,0,0,1,0,0,0,0,0,0,0,'Jormungar Tunneler - On spawn - Spellcast Jormungar Tunnel Passive'),
+(26467,0,1,0,21,0,100,0,0,0,0,0,11,47677,0,0,0,0,0,1,0,0,0,0,0,0,0,'Jormungar Tunneler - On reached homeposition - Spellcast Jormungar Tunnel Passive'),
+(26467,0,2,0,1,0,100,0,3000,5000,15000,18000,11,51879,0,0,0,0,0,2,0,0,0,0,0,0,0,'Jormungar Tunneler - On update (IC) - Spellcast Corrode Flesh'),
+(26467,0,3,0,4,0,100,0,0,0,0,0,28,47677,0,0,0,0,0,1,0,0,0,0,0,0,0,'Jormungar Tunneler - On aggro - Remove Jormungar Tunnel Passive');
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Update Fjord Hawk: Lots of these had incorrect movement.
+DELETE FROM `creature_addon` WHERE `guid` IN (112058,112059,112088,112089,112091,112114,112115,112141,112142,112149,112150,112151,112152,112153,112154,112155,112156,112157,112158);
+INSERT INTO `creature_addon` (`guid`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(112058,0,1,1,''),(112059,0,1,1,''),(112088,0,1,1,''),
+(112089,0,1,1,''),(112091,0,1,1,''),(112114,0,1,1,''),
+(112115,0,1,1,''),(112141,0,1,1,''),(112142,0,1,1,''),
+(112149,0,1,1,''),(112150,0,1,1,''),(112151,0,1,1,''),
+(112152,0,1,1,''),(112153,0,1,1,''),(112154,0,1,1,''),
+(112155,0,1,1,''),(112156,0,1,1,''),(112157,0,1,1,''),(112158,0,1,1,'');
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `guid` IN (112058,112059,112088,112089,112091,112114,112115,112141,112142,112149,112150,112151,112152,112153,112154,112155,112156,112157,112158);
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- SAI for Lashers
+UPDATE `creature_addon` SET `bytes1`=0 WHERE `guid` BETWEEN 88228 AND 88237;
+UPDATE `creature_addon` SET `bytes1`=0 WHERE `guid` BETWEEN 131438 AND 131457;
+UPDATE `creature_addon` SET `auras`='' WHERE `guid`=131452;
+UPDATE `creature_addon` SET `bytes1`=0 WHERE `guid` IN (106897,106898,106899,106900,106902,106903,106909,106910,106911,106912,106913,106914,106915,106916,106917,106918);
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`IN(27254,30845,34300);
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`IN(27254,30845,34300);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (27254,30845,34300) AND `source_type`=0;
+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
+-- Emerald Lasher
+(27254,0,0,2,11,0,100,0,0,0,0,0,90,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Emerald Lasher - On spawn - Set unitfield_bytes1 9 (submerged)'),
+(27254,0,1,2,21,0,100,0,0,0,0,0,90,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Emerald Lasher - On reached homeposition - Set unitfield_bytes1 9 (submerged)'),
+(27254,0,2,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Emerald Lasher - Linked with event 0 or 1 - Disable combat movement'),
+(27254,0,3,0,4,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,'Emerald Lasher - On aggro - Spellcast Stand'),
+(27254,0,4,0,0,0,100,0,1500,1500,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Emerald Lasher - On update (IC) - Enable combat movement'),
+(27254,0,5,0,0,0,100,0,4000,7000,9000,13000,11,51901,0,0,0,0,0,2,0,0,0,0,0,0,0,'Emerald Lasher - On update (IC) - Spellcast Dream Lash'),
+-- Living Lasher
+(30845,0,0,2,11,0,100,0,0,0,0,0,90,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Living Lasher - On spawn - Set unitfield_bytes1 9 (submerged)'),
+(30845,0,1,2,21,0,100,0,0,0,0,0,90,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Living Lasher - On reached homeposition - Set unitfield_bytes1 9 (submerged)'),
+(30845,0,2,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Living Lasher - Linked with event 0 or 1 - Disable combat movement'),
+(30845,0,3,0,4,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,'Living Lasher - On aggro - Spellcast Stand'),
+(30845,0,4,0,0,0,100,0,1500,1500,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Living Lasher - On update (IC) - Enable combat movement'),
+(30845,0,5,0,0,0,100,0,4000,7000,9000,13000,11,51901,0,0,0,0,0,2,0,0,0,0,0,0,0,'Living Lasher - On update (IC) - Spellcast Dream Lash'),
+-- 34300 Mature Lasher
+(34300,0,0,2,11,0,100,0,0,0,0,0,90,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mature Lasher - On spawn - Set unitfield_bytes1 9 (submerged)'),
+(34300,0,1,2,21,0,100,0,0,0,0,0,90,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mature Lasher - On reached homeposition - Set unitfield_bytes1 9 (submerged)'),
+(34300,0,2,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mature Lasher - Linked with event 0 or 1 - Disable combat movement'),
+(34300,0,3,0,4,0,100,0,0,0,0,0,11,37752,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mature Lasher - On aggro - Spellcast Stand'),
+(34300,0,4,0,0,0,100,0,1500,1500,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mature Lasher - On update (IC) - Enable combat movement'),
+(34300,0,5,0,0,0,100,0,4000,7000,9000,13000,11,51901,0,0,0,0,0,2,0,0,0,0,0,0,0,'Mature Lasher - On update (IC) - Spellcast Dream Lash');
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Secrets of the Scourge
+UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=12312;
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Icehorn updates from sniffs
+UPDATE `creature_template` SET `speed_run`=0.9920629, `rank`=4, `unit_flags`=32832, `family`=43, `type_flags`=65537 WHERE `entry`=32361;
+DELETE FROM `creature_template_addon` WHERE `entry`=32361;
+INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
+(32361,0,0,1,'60915');
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Dragonblight optical improvements
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (27203,30058);
+UPDATE `creature_template` SET `inhabitType`=4 WHERE `entry`=30078;
+UPDATE `creature_addon` SET `auras`='' WHERE `guid` IN (131075,131077);
+UPDATE `creature_addon` SET `auras`='42048' WHERE `guid`=131066;
+UPDATE `creature_addon` SET `auras`='42049' WHERE `guid`=106614;
+UPDATE `creature_addon` SET `auras`='42050' WHERE `guid`=131068;
+UPDATE `creature_addon` SET `auras`='42051' WHERE `guid`=106634;
+UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `id` IN (27222,27223,30078);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (-102199,-105487,-105488,-105489,-105495,-131055,-131056,-131058,-131059) AND `source_type`=0;
+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
+(-102199,0,0,0,25,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Onslaught Footman - On reset - Set event phase 1'),
+(-102199,0,1,2,1,1,100,0,2000,2000,12000,14000,11,48115,0,0,0,0,0,19,27222,30,0,0,0,0,0,'Onslaught Footman - On OOC update (phase 1) - Spellcast Shoot on Archery Target'),
+(-102199,0,2,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Onslaught Footman - On OOC update (phase 1) - Set event phase 2'),
+(-102199,0,3,4,1,2,100,0,16000,18000,16000,18000,11,48117,0,0,0,0,0,19,27223,30,0,0,0,0,0,'Onslaught Footman - On OOC update (phase 2) - Spellcast Shoot on Archery Target'),
+(-102199,0,4,0,61,2,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Onslaught Footman - On OOC update (phase 2) - Set event phase 4'),
+(-105487,0,0,0,1,0,100,0,2000,2000,0,0,11,55840,0,0,0,0,0,10,107492,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Blue Wyrmrest Warden Beam'),
+(-105488,0,0,0,1,0,100,0,2000,2000,0,0,11,55841,0,0,0,0,0,10,107491,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Yellow Wyrmrest Warden Beam'),
+(-105489,0,0,0,1,0,100,0,2000,2000,0,0,11,55841,0,0,0,0,0,10,107491,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Yellow Wyrmrest Warden Beam'),
+(-105495,0,0,0,1,0,100,0,2000,2000,0,0,11,55840,0,0,0,0,0,10,107492,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Blue Wyrmrest Warden Beam'),
+(-131055,0,0,0,1,0,100,0,2000,2000,0,0,11,55838,0,0,0,0,0,10,131075,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Green Wyrmrest Warden Beam'),
+(-131056,0,0,0,1,0,100,0,2000,2000,0,0,11,55824,0,0,0,0,0,10,131077,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Red Wyrmrest Warden Beam'),
+(-131058,0,0,0,1,0,100,0,2000,2000,0,0,11,55838,0,0,0,0,0,10,131075,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Green Wyrmrest Warden Beam'),
+(-131059,0,0,0,1,0,100,0,2000,2000,0,0,11,55824,0,0,0,0,0,10,131077,0,0,0,0,0,0,'Warden of the Chamber - On reset - Spellcast Red Wyrmrest Warden Beam');
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Borean Tundra visual improvement and missing spawn
+SET @GOGUID :=356; -- need 1 set by TDB
+SET @GUID :=43460; -- need 3 set by TDB
+DELETE FROM `gameobject` WHERE `guid`=@GOGUID;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@GOGUID,187879,571,1,1,4207.366,4056.894,91.62077,2.792518,0,0,0.984807,0.1736523,300,100,1);
+DELETE FROM `creature` WHERE `guid` in (@GUID+0,@GUID+1,@GUID+2);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+0,24021,571,1,1,21999,0,4207.475,4056.687,93.53715,2.094395,300,0,0,42,0,0,0,0,0),
+(@GUID+1,23837,571,1,1,11686,0,4207.471,4056.705,93.66189,3.979351,300,0,0,42,0,0,0,0,0),
+(@GUID+2,24957,571,1,1,0,0,4200.877,4056.888,92.28766,6.25263,300,0,0,7185,7196,0,0,0,0);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=24957 AND `source_type`=0 AND `id` IN (1,3);
+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
+(24957,0,1,0,11,0,100,0,0,0,0,0,11,45820,0,0,0,0,0,9,24021,0,30,0,0,0,0,'Cult Plaguebringer - On spawn - Spellcast Plague Cauldron Beam'),
+(24957,0,3,0,21,0,100,0,0,0,0,0,11,45820,0,0,0,0,0,9,24021,0,30,0,0,0,0,'Cult Plaguebringer - On reached homeposition - Spellcast Plague Cauldron Beam');
+UPDATE `creature_addon` SET `auras`='45797' WHERE `guid` IN (98730,115941);
+DELETE FROM `creature_addon` WHERE `guid` IN (@GUID+0,@GUID+1);
+INSERT INTO `creature_addon` (`guid`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@GUID+0,0,0,1,'45797'),
+(@GUID+1,0,0,1,'45797');
diff --git a/sql/updates/world/2012_11_13_00_world_waypoints.sql b/sql/updates/world/2012_11_13_00_world_waypoints.sql
new file mode 100644
index 00000000000..64e16cb2d0e
--- /dev/null
+++ b/sql/updates/world/2012_11_13_00_world_waypoints.sql
@@ -0,0 +1,35 @@
+-- Pathing for Ol' Sooty Entry: 1225
+SET @NPC := 8877;
+SET @PATH := @NPC * 10;
+UPDATE `creature` SET `spawntimesecs`=1200,`spawndist`=0,`MovementType`=2,`position_x`=-5716.181152,`position_y`=-3110.810791,`position_z`=316.686523 WHERE `guid`=@NPC;
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,-5716.181152,-3110.810791,316.686523,0,0,0,100,0),
+(@PATH,2,-5716.187012,-3093.080078,325.600677,0,0,0,100,0),
+(@PATH,3,-5712.214355,-3090.297607,327.738647,0,0,0,100,0),
+(@PATH,4,-5705.484375,-3092.523438,329.362366,0,0,0,100,0),
+(@PATH,5,-5681.826660,-3110.568848,338.121887,0,0,0,100,0),
+(@PATH,6,-5659.498535,-3122.215576,344.336151,0,0,0,100,0),
+(@PATH,7,-5639.585938,-3124.536133,348.404938,0,0,0,100,0),
+(@PATH,8,-5618.112793,-3110.905762,360.618225,0,0,0,100,0),
+(@PATH,9,-5621.486816,-3096.315918,368.247772,0,0,0,100,0),
+(@PATH,10,-5632.212891,-3078.608398,374.990936,0,0,0,100,0),
+(@PATH,11,-5629.793457,-3056.124023,384.465576,0,0,0,100,0),
+(@PATH,12,-5642.278809,-3036.872314,385.471649,0,0,0,100,0),
+(@PATH,13,-5609.369141,-3006.883301,386.288177,0,0,0,100,0),
+(@PATH,14,-5643.634277,-3036.388672,385.531891,0,0,0,100,0),
+(@PATH,15,-5630.174805,-3057.015869,384.385712,0,0,0,100,0),
+(@PATH,16,-5629.840332,-3065.496338,381.129578,0,0,0,100,0),
+(@PATH,17,-5634.866211,-3078.448975,374.489044,0,0,0,100,0),
+(@PATH,18,-5620.416504,-3101.081543,364.819855,0,0,0,100,0),
+(@PATH,19,-5624.629395,-3117.040527,354.493805,0,0,0,100,0),
+(@PATH,20,-5644.949707,-3125.081787,347.271362,0,0,0,100,0),
+(@PATH,21,-5660.741699,-3121.580566,343.975922,0,0,0,100,0),
+(@PATH,22,-5676.210938,-3111.586914,340.021484,0,0,0,100,0),
+(@PATH,23,-5691.895508,-3102.994385,333.646698,0,0,0,100,0),
+(@PATH,24,-5711.662109,-3088.433594,328.761566,0,0,0,100,0),
+(@PATH,25,-5717.663574,-3099.033691,321.686920,0,0,0,100,0),
+(@PATH,26,-5705.214844,-3132.324219,315.837585,0,0,0,100,0),
+(@PATH,27,-5679.014160,-3185.046875,319.508057,0,0,0,100,0);
diff --git a/sql/updates/world/2012_11_13_01_world_misc.sql b/sql/updates/world/2012_11_13_01_world_misc.sql
new file mode 100644
index 00000000000..97e3cd8b499
--- /dev/null
+++ b/sql/updates/world/2012_11_13_01_world_misc.sql
@@ -0,0 +1,120 @@
+-- Various quest fixes in Grizzly Hills
+
+SET @GUID :=43494; -- need 8 set by TDB
+SET @OGUID :=5681; -- need 3 set by TDB
+
+-- Creature Gossip_menu_option Update from sniff
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9426 AND `id`=0;
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9615 AND `id`=1;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(9426,0,0, 'Remove the Eye of the Prophets from the idol''s face.',1,1,0,0,0,0, ''),
+(9615,1,0, 'I need another of your elixirs, Drakuru.',1,1,0,0,0,0, '');
+
+-- Gossip Menu insert from sniff
+DELETE FROM `gossip_menu` WHERE `entry`=9426 AND `text_id` IN (12669,12670);
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(9426,12669),(9426,12670);
+
+-- Creature Template update from sniff
+UPDATE `creature_template` SET `minLevel`=70, `maxLevel`=70, `unit_flags`=33024, `AIName`='SmartAI' WHERE `entry` IN (26500);
+UPDATE `creature_template` SET `npcflag`=2, `unit_flags`=33024, `AIName`='SmartAI' WHERE `entry` IN (26543,26701,26787);
+
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=61 WHERE `item`=35799 AND `entry`=26447;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=58 WHERE `item`=35799 AND `entry`=26425;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=100 WHERE `item`=35836;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=49 WHERE `item`=36743 AND `entry`=26704;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=50 WHERE `item`=36743 AND `entry`=27554;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=51 WHERE `item`=36758 AND `entry`=26795;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=48 WHERE `item`=36758 AND `entry`=26797;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=66 WHERE `item`=38303 AND `entry`=26620;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=67 WHERE `item`=38303 AND `entry`=26639;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=15 WHERE `item`=38303 AND `entry`=27431;
+
+UPDATE `creature_involvedrelation` SET `id`=26543 WHERE `quest`=12007;
+UPDATE `creature_involvedrelation` SET `id`=26701 WHERE `quest`=12802;
+UPDATE `creature_involvedrelation` SET `id`=26787 WHERE `quest`=12068;
+UPDATE `creature_questrelation` SET `id`=26543 WHERE `quest`=12042;
+UPDATE `creature_questrelation` SET `id`=26701 WHERE `quest`=12068;
+UPDATE `creature_questrelation` SET `id`=26787 WHERE `quest`=12238;
+
+DELETE FROM `creature_text` WHERE `entry`=26500;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(26500,0,0,'I''ll be waitin'' for ya, mon.',15,0,100,0,0,0,'Image of Drakuru');
+
+-- Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=47110;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=9426 AND `SourceEntry`=12670;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9426 AND `SourceEntry`=0;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9615 AND `SourceEntry`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,47110,0,0,31,0,3,26498,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 01'),
+(13,1,47110,0,1,31,0,3,26559,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 02'),
+(13,1,47110,0,2,31,0,3,26700,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 03'),
+(13,1,47110,0,3,31,0,3,26789,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 04'),
+(13,1,47110,0,4,31,0,3,28015,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 05'),
+(14,9426,12670,0,0,2,0,35806,1,1,0,0,'','Seer of Zeb''Halak - Show different gossip if player has item Eye of the Propehts'),
+(15,9426,0,0,0,9,0,12007,0,0,0,0,'','Seer of Zeb''Halak - Show gossip option if player has taken quest 12007'),
+(15,9426,0,0,0,2,0,35806,1,1,1,0,'','Seer of Zeb''Halak - Show gossip option if player has not item Eye of the Propehts'),
+(15,9615,1,0,0,8,0,11990,0,0,0,0,'','Drakuru - Show gossip option if player has rewarded quest 11990'),
+(15,9615,1,0,0,8,0,12238,0,0,1,0,'','Drakuru - Show gossip option if player has not rewarded quest 12238'),
+(15,9615,1,0,0,2,0,35797,1,1,1,0,'','Drakuru - Show gossip option if player has not item Drakuru''s Elixir');
+
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=188458;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (26498,26559,26700,26789);
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26498,26500,26543,26559,26700,26701,26787,26789) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=26423 AND `source_type`=0 AND `id` IN (2,3);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=188458 AND `source_type`=1;
+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
+(26423,0,2,3,62,0,100,0,9615,1,0,0,85,50021,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru - On gossip option select - Invoker spellcast Replace Drakuru''s Elixir'),
+(26423,0,3,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru - On gossip option select - Close gossip'),
+(26498,0,0,0,8,0,100,0,47110,0,0,0,11,47117,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 01 - On spellhit - Spellcast Script Cast Summon Image of Drakuru'),
+(26500,0,0,1,19,0,100,0,12007,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Image of Drakuru - On quest accepted - Say text'),
+(26500,0,1,0,61,0,100,0,12007,0,0,0,11,47122,0,0,0,0,0,7,0,0,0,0,0,0,0,'Image of Drakuru - On quest accepted - Spellcast Strip Detect Drakuru'),
+(26543,0,0,1,19,0,100,0,12042,0,0,0,11,47308,0,0,0,0,0,7,0,0,0,0,0,0,0,'Image of Drakuru - On quest accepted - Spellcast Strip Detect Drakuru 02'),
+(26559,0,0,0,8,0,100,0,47110,0,0,0,11,47149,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 02 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 02'),
+(26700,0,0,0,8,0,100,0,47110,0,0,0,11,47316,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 03 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 03'),
+(26701,0,0,1,19,0,100,0,12068,0,0,0,11,47403,0,0,0,0,0,7,0,0,0,0,0,0,0,'Image of Drakuru - On quest accepted - Spellcast Strip Detect Drakuru 03'),
+(26787,0,0,1,19,0,100,0,12238,0,0,0,11,48417,0,0,0,0,0,7,0,0,0,0,0,0,0,'Image of Drakuru - On quest accepted - Spellcast Strip Detect Drakuru 04'),
+(26789,0,0,0,8,0,100,0,47110,0,0,0,11,47405,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 04 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 04'),
+(188458,1,0,1,62,0,100,0,9426,0,0,0,85,47293,0,0,0,0,0,7,0,0,0,0,0,0,0,'Seer of Zeb''Halak - On gossip option select - Invoker spellcast Create Eye of the Prophets'),
+(188458,1,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Seer of Zeb''Halak - On gossip option select - Close gossip');
+
+DELETE FROM `spell_scripts` WHERE `id` IN (47117,47149,47316,47405,50439);
+INSERT INTO `spell_scripts` (`id`,`effIndex`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(47117,0,0,15,47118,2,0,0,0,0,0), -- Script Cast Summon Image of Drakuru - Spellcast Envision Drakuru
+(47149,0,0,15,47150,2,0,0,0,0,0), -- Script Cast Summon Image of Drakuru 02 - Spellcast Envision Drakuru
+(47316,0,0,15,47317,2,0,0,0,0,0), -- Script Cast Summon Image of Drakuru 03 - Spellcast Envision Drakuru
+(47405,0,0,15,47406,2,0,0,0,0,0), -- Script Cast Summon Image of Drakuru 04 - Spellcast Envision Drakuru
+(50439,0,0,15,50440,2,0,0,0,0,0); -- Script Cast Summon Image of Drakuru 05 - Spellcast Envision Drakuru
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-47122,-47308,-47403,-48417);
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(-47122,-47118,0,'On Strip Detect Drakuru fade - Remove Envision Drakuru'),
+(-47308,-47150,0,'On Strip Detect Drakuru 02 fade - Remove Envision Drakuru'),
+(-47403,-47317,0,'On Strip Detect Drakuru 03 fade - Remove Envision Drakuru'),
+(-48417,-47406,0,'On Strip Detect Drakuru 04 fade - Remove Envision Drakuru');
+
+DELETE FROM `creature` WHERE `guid` in (@GUID+0,@GUID+1,@GUID+2,@GUID+3,@GUID+4,@GUID+5,@GUID+6,@GUID+7);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@GUID+0,26498,571,1,1,19595,0,3386.607,-1805.944,115.2497,3.001966,300,0,0,0,0,0,0,0,0),
+(@GUID+1,26500,571,1,1,0,0,3386.272,-1805.434,115.4441,4.939282,300,0,0,0,0,0,0,0,0),
+(@GUID+2,26559,571,1,1,19595,0,4243.962,-2024.805,238.2487,1.411705,300,0,0,0,0,0,0,0,0),
+(@GUID+3,26543,571,1,1,0,0,4243.962,-2024.805,238.2487,1.411705,300,0,0,0,0,0,0,0,0),
+(@GUID+4,26700,571,1,1,19595,0,4523.894,-3472.863,228.2441,4.695459,300,0,0,0,0,0,0,0,0),
+(@GUID+5,26701,571,1,1,0,0,4523.894,-3472.863,228.2441,4.695459,300,0,0,0,0,0,0,0,0),
+(@GUID+6,26787,571,1,1,0,0,4599.709,-4876.9,48.95556,0.719772,300,0,0,0,0,0,0,0,0),
+(@GUID+7,26789,571,1,1,19595,0,4599.709,-4876.9,48.95556,0.719772,300,0,0,0,0,0,0,0,0);
+
+DELETE FROM `creature_template_addon` WHERE `entry` IN (26500,26543,26701,26787);
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(26500,0,0,65536,1,0,'43167 47119'),
+(26543,0,0,65536,1,0,'43167 47119'),
+(26701,0,0,65536,1,0,'43167 47119'),
+(26787,0,0,65536,1,0,'43167 47119');
+
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+2;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@OGUID+0,188600,571,1,1,3980.721,-1956.352,210.6624,1.169369,0,0,0,1,120,255,1),
+(@OGUID+1,188600,571,1,1,3957.188,-1908.295,209.97,0.8901166,0,0,0,1,120,255,1),
+(@OGUID+2,188600,571,1,1,3964.761,-1884.524,208.2739,1.692969,0,0,0,1,120,255,1);
diff --git a/sql/updates/world/2012_11_13_02_world_creature.sql b/sql/updates/world/2012_11_13_02_world_creature.sql
new file mode 100644
index 00000000000..19f278ca5c6
--- /dev/null
+++ b/sql/updates/world/2012_11_13_02_world_creature.sql
@@ -0,0 +1,3 @@
+-- Fix [Q]{A/H} Meet At The Grave
+UPDATE `creature_template_addon` SET `auras`='10848' WHERE `entry`=9299; -- allow to be seen in world of death
+UPDATE `creature_template` SET `npcflag`=32770,`unit_flags`=768 WHERE `entry`=9299; -- makes unseen in world of living
diff --git a/sql/updates/world/2012_11_13_03_world_gameevent.sql b/sql/updates/world/2012_11_13_03_world_gameevent.sql
new file mode 100644
index 00000000000..fbb24b863f2
--- /dev/null
+++ b/sql/updates/world/2012_11_13_03_world_gameevent.sql
@@ -0,0 +1,2 @@
+-- Pilgrim's Bounty start time fix
+UPDATE `game_event` SET `start_time`= '2012-11-18 01:00:00' WHERE `eventEntry`=26;
diff --git a/sql/updates/world/2012_11_13_04_world_gameeventquest.sql b/sql/updates/world/2012_11_13_04_world_gameeventquest.sql
new file mode 100644
index 00000000000..cce654859e0
--- /dev/null
+++ b/sql/updates/world/2012_11_13_04_world_gameeventquest.sql
@@ -0,0 +1,3 @@
+-- Fix Pilgrims Bounty quest during Hallows End
+INSERT INTO `game_event_creature_quest` (`eventEntry`,`id`,`quest`) VALUES (26,18927,14022);
+DELETE FROM `creature_questrelation` WHERE `id`=18927;
diff --git a/sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql b/sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql
new file mode 100644
index 00000000000..17b9616624a
--- /dev/null
+++ b/sql/updates/world/2012_11_13_05_world_player_factionchange_items.sql
@@ -0,0 +1,4 @@
+DELETE FROM `player_factionchange_items` WHERE `alliance_id` IN (15198, 47937);
+INSERT INTO `player_factionchange_items` (`race_A`, `alliance_id`, `commentA`, `race_H`, `horde_id`, `commentH`) VALUES
+(0, 15198, 'Knight\'s Colors', 0, 15199, 'Stone Guard\'s Herald'),
+(0, 47937, 'Girdle of the Nether Champion', 0, 48009, 'Belt of the Nether Champion');
diff --git a/sql/updates/world/2012_11_13_06_world_trinity_string.sql b/sql/updates/world/2012_11_13_06_world_trinity_string.sql
new file mode 100644
index 00000000000..2834a8f900b
--- /dev/null
+++ b/sql/updates/world/2012_11_13_06_world_trinity_string.sql
@@ -0,0 +1,2 @@
+DELETE FROM `trinity_string` WHERE `entry` IN (5018,5019);
+UPDATE `trinity_string` SET `content_default`= '[Raid]' WHERE `entry`=5017;
diff --git a/sql/updates/world/2012_11_14_00_world_sai.sql b/sql/updates/world/2012_11_14_00_world_sai.sql
new file mode 100644
index 00000000000..98467fe4f3a
--- /dev/null
+++ b/sql/updates/world/2012_11_14_00_world_sai.sql
@@ -0,0 +1,16 @@
+SET @ENTRY_SPIRIT_SHADE := 15261;
+SET @ENTRY_LETHON := 14888;
+SET @SPELL_DARK_OFFERING := 24804;
+
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY_SPIRIT_SHADE;
+UPDATE `creature_template` SET `AIName`= '',`ScriptName`= 'npc_spirit_shade' WHERE `entry`=@ENTRY_SPIRIT_SHADE;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY_SPIRIT_SHADE AND `source_type`=0;
+
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY_SPIRIT_SHADE;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES
+(@ENTRY_SPIRIT_SHADE,0,0,0, '24809');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@SPELL_DARK_OFFERING;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13,1,@SPELL_DARK_OFFERING,0,0,31,0,3,@ENTRY_LETHON,0,0,0, '', 'Dark offering can only target Lethon');
diff --git a/sql/updates/world/2012_11_14_00_world_various_fixes.sql b/sql/updates/world/2012_11_14_00_world_various_fixes.sql
new file mode 100644
index 00000000000..01655b674b1
--- /dev/null
+++ b/sql/updates/world/2012_11_14_00_world_various_fixes.sql
@@ -0,0 +1,307 @@
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Mounts players mode 25
+UPDATE `creature_template` SET `VehicleId`=220,`spell1`=56091,`spell2`=56092,`spell3`=57090,`spell4`=57143,`spell5`=57108,`spell6`=57092,`spell7`=60534,`InhabitType`=5 WHERE `entry`=31752;
+-- Hover Disk mode 25
+UPDATE `creature_template` SET `VehicleId`=224,`faction_A`=35,`faction_H`=35,`InhabitType`=5 WHERE `entry` IN (31749,31748);
+-- spawn the focusing iris 25men
+DELETE FROM gameobject WHERE id IN (193960);
+INSERT INTO `gameobject`
+(`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(361,193960,616,2,1,754.362,1301.61,266.171,6.23742,0,0,0.022883,-0.999738,300,0,1);
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- The Heart of the Storm (Issue 1959)
+DELETE FROM `gameobject` WHERE `id`=192181;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(362,192181,571,1,1,7308.945,-727.9163,791.6083,1.53589,0,0,0.690772,0.723073,30,100,1);
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Add support for {Q} Corrupted Sabers ID: 4506 (Issue 2297)
+SET @CommonKitten:=9937;
+SET @CorruptedKitten :=9936;
+SET @SGossip :=55002; -- Gossip for Kitten when near quest giver
+SET @SpellVisual :=16510; -- Turn Kitten in Saber
+SET @Winna :=9996; -- Winna Hazzard
+SET @Saber :=10042; -- Big green cat
+-- Add SAI support for Corrupted Kitten
+UPDATE `creature_template` SET `AIName`='SmartAI',`gossip_menu_id`=@SGossip,`npcflag`=1 WHERE `entry`=@CorruptedKitten;
+UPDATE `creature_template` SET `AIName`='SmartAI',`gossip_menu_id`=@SGossip,`npcflag`=1 WHERE `entry`=@CommonKitten;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@CorruptedKitten,@CommonKitten);
+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
+(@CommonKitten,0,0,1,54,0,100,0,0,0,0,0,36,@CorruptedKitten,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - On spawn - Change template to corrupted one'),
+(@CommonKitten,0,1,2,61,0,100,0,0,0,0,0,11,@SpellVisual,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - On OOC of 10 sec - Cast Corrupted Saber visual to self'),
+(@CommonKitten,0,2,0,61,0,100,0,0,0,0,0,3,@Saber,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - Linked with previous event - Morph to Corrupted Saber'),
+(@CommonKitten,0,3,4,62,0,100,0,@SGossip,1,0,0,26,4506,0,0,0,0,0,7,0,0,0,0,0,0,0,'Common Kitten - On Gossip Select - Award quest,since no credit'),
+(@CommonKitten,0,4,5,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Common Kitten - Linked with previous event - Close gossip'),
+(@CommonKitten,0,5,6,61,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - Linked with previous event - Set unseen'),
+(@CommonKitten,0,6,0,61,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Common Kitten - Linked with previous event - Despawn in 1 sec');
+-- Insert Gossip /custom made id/
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@SGossip AND `id`=1;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES
+(@SGossip,1,0,'I want to release the saber to Winna.',1,131,0);
+-- Only show gossip if near Winna
+DELETE FROM `conditions` WHERE `SourceGroup`=@SGOSSIP AND `SourceTypeOrReferenceId`=15;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,@SGOSSIP,1,0,29,1,@Winna,5,0,0,0,'','Only show second gossip Corrupted Saber is near Wina in 5 yards');
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Fix for Prepping the Speech by Gecko32 (Issue 2399)
+SET @MEKKATORQUE :=39712;
+SET @OZZIE :=1268;
+SET @MILLI :=7955;
+SET @TOG :=6119;
+-- Add creature text for npc's
+DELETE FROM `creature_text` WHERE `entry`=@MEKKATORQUE;
+DELETE FROM `creature_text` WHERE `entry`=@OZZIE;
+DELETE FROM `creature_text` WHERE `entry`=@MILLI;
+DELETE FROM `creature_text` WHERE `entry`=@TOG;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@MEKKATORQUE,0,0,'They may take our lives, but they''ll never take...',12,0,100,0,0,0,'High Tinker Mekkatorque to Milli Featherwhistle 1'),
+(@MEKKATORQUE,1,0,'...our INNOVATION!',12,0,100,0,0,0,'High Tinker Mekkatorque to Milli Featherwhistle 2'),
+(@MEKKATORQUE,2,0,'What I want out of each and every one of you is a hard-target search of every refuelling station, residence, warehouse, farmhouse, henhouse, outhouse, and doghouse in this area.',12,0,100,0,0,0,'High Tinker Mekkatorque to Ozzie Togglevolt 1'),
+(@MEKKATORQUE,3,0,'Your fugitive''s name is Mekgineer Thermaplugg.',12,0,100,0,0,0,'High Tinker Mekkatorque to Ozzie Togglevolt 2'),
+(@MEKKATORQUE,4,0,'Go get him.',12,0,100,0,0,0,'High Tinker Mekkatorque to Ozzie Togglevolt 3'),
+(@MEKKATORQUE,5,0,'We will not go quietly into the night! We will not vanish without a fight!',12,0,100,0,0,0,'High Tinker Mekkatorque to Tog Rustsprocket 1'),
+(@MEKKATORQUE,6,0,'We''re going to live on! We''re going to survive! Today we celebrate...',12,0,100,0,0,0,'High Tinker Mekkatorque to Tog Rustsprocket 2'),
+(@MEKKATORQUE,7,0,'...our Autonomy Day!',12,0,100,0,0,0,'High Tinker Mekkatorque to Tog Rustsprocket 3'),
+(@OZZIE,0,0,'Hmm, I suppose it could work. But it could really use a little more umph!',12,0,100,0,0,0,'Ozzie Togglevolt reply'),
+(@MILLI,0,0,'What? I don''t even know what you''re talking about! That''s terrible!',12,0,100,0,0,0,'Milli Featherwhistle reply'),
+(@TOG,0,0,'Horrible! Well, all right,maybe it just needs a little cleaning up?',12,0,100,0,0,0,'Tog Rustsprocket reply');
+-- Add SAI for Milli Featherwhistle
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@MILLI;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@MILLI;
+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
+(@MILLI,0,0,0,8,0,100,1,74222,0,0,0,1,0,2000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On spell hit - High Tinker Mekkatorque say part1'),
+(@MILLI,0,1,0,52,0,100,0,0,@MEKKATORQUE,0,0,1,1,4000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On text over - High Tinker Mekkatorque say part2'),
+(@MILLI,0,2,3,52,0,100,0,1,@MEKKATORQUE,0,0,1,0,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On text over - Reply'),
+(@MILLI,0,3,4,61,0,100,0,0,0,0,0,33,@MILLI,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On link - credit quest'),
+(@MILLI,0,4,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On link - set data 1');
+-- Add SAI for Ozzie Togglevolt
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@OZZIE;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@OZZIE;
+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
+(@OZZIE,0,0,0,8,0,100,1,74222,0,0,0,1,2,2000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Ozzie Togglevolt - On spell hit - High Tinker Mekkatorque say part1'),
+(@OZZIE,0,1,0,52,0,100,0,2,@MEKKATORQUE,0,0,1,3,4000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Ozzie Togglevolt - On text over - High Tinker Mekkatorque say part2'),
+(@OZZIE,0,2,0,52,0,100,0,3,@MEKKATORQUE,0,0,1,4,4000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Ozzie Togglevolt - On text over - High Tinker Mekkatorque say part3'),
+(@OZZIE,0,3,4,52,0,100,0,4,@MEKKATORQUE,0,0,1,0,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Ozzie Togglevolt - On text over - Reply'),
+(@OZZIE,0,4,5,61,0,100,0,0,0,0,0,33,@OZZIE,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On link - credit quest'),
+(@OZZIE,0,5,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Milli Featherwhistle - On link - set data 1');
+-- Add SAI for Tog Rustsprocket
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@TOG;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@TOG;
+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
+(@TOG,0,0,0,8,0,100,1,74222,0,0,0,1,5,2000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Tog Rustsprocket - On spell hit - High Tinker Mekkatorque say part1'),
+(@TOG,0,1,0,52,0,100,0,5,@MEKKATORQUE,0,0,1,6,4000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Tog Rustsprocket - On text over - High Tinker Mekkatorque say part2'),
+(@TOG,0,2,0,52,0,100,0,6,@MEKKATORQUE,0,0,1,7,4000,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Tog Rustsprocket - On text over - High Tinker Mekkatorque say part3'),
+(@TOG,0,3,4,52,0,100,0,7,@MEKKATORQUE,0,0,1,0,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'Tog Rustsprocket - On text over - Reply'),
+(@TOG,0,4,5,61,0,100,0,0,0,0,0,33,@TOG,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Tog Rustsprocket - On link - credit quest'),
+(@TOG,0,5,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,11,@MEKKATORQUE,10,0,0.0,0.0,0.0,0.0,'Tog Rustsprocket - On link - set data 1');
+-- Add SAI for High Tinker Mekkatorque
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@MEKKATORQUE;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@MEKKATORQUE;
+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
+(@MEKKATORQUE,0,0,0,38,0,100,1,1,1,0,0,41,1000,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,'High Tinker Mekkatorque - on data set- despawn');
+-- add prev quest id to both Words for Delivery
+UPDATE `quest_template` SET `PrevQuestId`=25283 WHERE `Id`=25500;-- below 75
+UPDATE `quest_template` SET `PrevQuestId`=25283 WHERE `Id`=25286;-- 75+
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Where the Wild Things Roam by Shlomi155 (Issue 3038)
+-- Quest item will work only at Dragonblight and if the quest is incomplete!
+DELETE FROM `conditions` WHERE SourceEntry=47627;
+INSERT INTO `conditions` VALUES
+(17,0,47627,0,0,9,0,12111,0,0,0,0,'',NULL),
+(17,0,47627,0,0,23,0,65,0,0,0,0,'',NULL);
+UPDATE `creature_template` SET AIName='SmartAI' WHERE entry IN (26615,26482);
+DELETE FROM `creature_ai_scripts`where creature_id IN (26615,26482);
+DELETE FROM `smart_scripts` WHERE entryorguid IN (26615,26482);
+INSERT INTO `smart_scripts` VALUES
+(26615,0,0,0,9,0,100,1,0,5,8000,12000,11,15976,0,0,0,0,0,2,0,0,0,0,0,0,0,'Snowfall Elk - Cast Puncture'),
+(26615,0,1,2,23,0,100,1,47628,1,1,1,11,47675,0,0,0,0,0,1,0,0,0,0,0,0,0,'Snowfall Elk - On Aura - Cast Recently Inoculated'),
+(26615,0,2,3,61,0,100,1,0,0,0,0,33,26895,0,0,0,0,0,18,40,0,0,0,0,0,0,'Snowfall Elk - Event Linked - Credit'),
+(26615,0,3,0,61,0,100,1,0,0,0,0,41,5000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Snowfall Elk - Event Linked - Despawn Delay 5 Seconds'),
+(26482,0,0,1,23,0,100,1,47628,1,1,1,11,47675,0,0,0,0,0,1,0,0,0,0,0,0,0,'Arctic Grizzly - On Aura - Cast Recently Inoculated'),
+(26482,0,1,2,61,0,100,1,0,0,0,0,33,26882,0,0,0,0,0,18,40,0,0,0,0,0,0,'Arctic Grizzly - Event Linked - Credit'),
+(26482,0,2,0,61,0,100,1,0,0,0,0,41,5000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Arctic Grizzly - Event Linked - Despawn Delay 5 Seconds');
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- [Q] [A/H] Catch the Wild Wolpertinger! by Discover (Issue 3131)
+-- Wild Wolpertinger SAI
+SET @WOLPERTINGER :=23487;
+SET @SPELL_NET :=41621;
+SET @SPELL_CREATE_ITEM :=41622;
+UPDATE `creature_template` SET `AIName`='SmartAI',`unit_flags`=`unit_flags`|512 WHERE `entry`=@WOLPERTINGER;
+UPDATE `creature` SET `position_x`=24.539537 WHERE `guid`=207045 AND `id`=@WOLPERTINGER; -- For some reason this one was spawned in air
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@WOLPERTINGER;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@WOLPERTINGER;
+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
+(@WOLPERTINGER,0,0,1,8,0,100,0,@SPELL_NET,0,0,0,11,@SPELL_CREATE_ITEM,2,0,0,0,0,7,0,0,0,0,0,0,0,"Wild Wolpertinger - On Spellhit - Cast Create Stunned Wolpertinger Item"),
+(@WOLPERTINGER,0,1,0,61,0,100,0,0,0,0,0,41,4000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wild Wolpertinger - On Spellhit - Forced Despawn");
+-- Condition for spell Wolpertinger Net
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=@SPELL_NET;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@SPELL_NET,0,0,31,1,3,@WOLPERTINGER,0,0,0,'','Net can only hit Wolpertingers');
+-- Update Wolpetinger flags to remove immunity to players,was 768 before
+UPDATE `creature_template` SET `unit_flags`=512 WHERE `entry`=@WOLPERTINGER;
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Fix quest Blinding the Eyes in the Sky ID: 13313 by Trista (Issue 3225)
+SET @ReconFighter :=32189;
+SET @Spell :=60079;
+-- Add SAI support Skybreaker Recon
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ReconFighter;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ReconFighter;
+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
+(@ReconFighter,0,0,1,8,0,100,0,@Spell,0,0,0,33,@ReconFighter,0,0,0,0,0,7,0,0,0,0,0,0,0,'Skybreaker Recon - On spell hit - Give kill credit to invoker'),
+(@ReconFighter,0,1,0,61,0,100,0,0,0,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Skybreaker Recon - Linked with previous event - Kill self');
+-- Update Vehicle_Accesorry to die along with the vehicle,otherwise little untargetable dwards fall on ground
+UPDATE `vehicle_template_accessory` SET `minion`=1 WHERE `entry`=32189 AND `seat_id`=0;
+-- Add conditions for spell to target only alive Recons
+DELETE FROM `conditions` WHERE `SourceEntry`=@Spell and `SourceTypeOrReferenceId`=17;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@Spell,0,0,36,1,0,0,0,0,0,'','Fire SGM-3 can hit only alive Recon Fighter'),
+(17,0,@Spell,0,0,31,1,3,@ReconFighter,0,0,0,'','Fire SGM-3 can hit Recon Fighter');
+-- Keeping the Alliance Blind ID: 13331 quest requirements
+UPDATE `quest_template` SET `PrevQuestId`=13313 WHERE `Id`=13331;
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Cleansing Drak'Tharon by gecko32 (Issue 3351)
+-- Update Item Enduring Mojo is normal drop not quest drop
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance` = ABS(`ChanceOrQuestChance`) WHERE `item`=38303;
+-- Add gossip menu option
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=9615 AND `id`=1;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(9615,1,0,'I need another of your elixirs, Drakuru.',1,1,0,0,0,0,'');
+-- Add Conditions for Gossip
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9615 AND `SourceEntry`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,9615,1,0,1,2,0,35797,1,0,1,0,'','Drakuru''s Elixir - Must not already have item'),
+(15,9615,1,0,1,28,0,11991,0,0,0,0,'','Drakuru''s Elixir - Must have quest Subject to Interpretation'),
+(15,9615,1,0,2,2,0,35797,1,0,1,0,'','Drakuru''s Elixir - Must not already have item'),
+(15,9615,1,0,2,9,0,12007,0,0,0,0,'','Drakuru''s Elixir - Must have quest Sacrifices Must be Made'),
+(15,9615,1,0,3,2,0,35797,1,0,1,0,'','Drakuru''s Elixir - Must not already have item'),
+(15,9615,1,0,3,28,0,12802,0,0,0,0,'','Drakuru''s Elixir - Must have quest My Heart is in Your Hands'),
+(15,9615,1,0,4,2,0,35797,1,0,1,0,'','Drakuru''s Elixir - Must not already have item'),
+(15,9615,1,0,4,9,0,12068,0,0,0,0,'','Drakuru''s Elixir - Must have quest Voices From the Dust'),
+(15,9615,1,0,5,2,0,35797,1,0,1,0,'','Drakuru''s Elixir - Must not already have item'),
+(15,9615,1,0,5,28,0,12238,0,0,0,0,'','Drakuru''s Elixir - Must have quest Cleansing Drak''Tharon');
+-- Add SmartAI to give item
+DELETE FROM `smart_scripts` WHERE `entryorguid`=26423 AND `id` IN (2,3);
+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
+(26423,0,2,3,62,0,100,0,9615,1,0,0,11,50021,2,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru - On gossip option select - cast Replace Drakuru''s Elixir'),
+(26423,0,3,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru - On gossip option select - close gossip');
+-- Add TEMP Drakuru's Brazier In Drak'tharon Keep
+DELETE FROM `gameobject` WHERE `guid`=364;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(364,300188,600,3,1,-236.766,-614.774,116.487,1.5708,0,0,0,1,300,100,1);
+-- Conditions for spell Target
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=47110;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,47110,0,1,31,0,3,26498,0,0,0,'',NULL),-- Drakuru's Bunny 01
+(13,1,47110,0,2,31,0,3,26559,0,0,0,'',NULL),-- Drakuru's Bunny 02
+(13,1,47110,0,3,31,0,3,26700,0,0,0,'',NULL),-- Drakuru's Bunny 03
+(13,1,47110,0,4,31,0,3,26789,0,0,0,'',NULL),-- Drakuru's Bunny 04
+(13,1,47110,0,5,31,0,3,28015,0,0,0,'',NULL); -- Drakuru's Bunny 05
+-- Add Smart AI Drakuru Bunny
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (26498,26559,26700,26789,28015);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26498,26559,26700,26789,28015);
+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
+(26498,0,0,0,8,0,100,0,47110,0,0,0,12,26500,3,50000,0,0,0,8,0,0,0,3386.26,-1805.32,114.909,4.945,'Drakuru Bunny 01- On Spellhit - Summmon Image of Drakuru'),
+(26559,0,0,0,8,0,100,0,47110,0,0,0,12,26543,3,50000,0,0,0,8,0,0,0,4243.98,-2025.08,238.248,1.431,'Drakuru Bunny 02- On Spellhit - Summmon Image of Drakuru'),
+(26700,0,0,0,8,0,100,0,47110,0,0,0,12,26701,3,50000,0,0,0,8,0,0,0,4523.94,-3472.9,228.393,-0.803,'Drakuru Bunny 03- On Spellhit - Summmon Image of Drakuru'),
+(26789,0,0,0,8,0,100,0,47110,0,0,0,12,26787,3,50000,0,0,0,8,0,0,0,4599.09,-4875.82,48.956,0.748,'Drakuru Bunny 04- On Spellhit - Summmon Image of Drakuru'),
+(28015,0,0,0,8,0,100,0,47110,0,0,0,12,28016,3,50000,0,0,0,8,0,0,0,-236.77,-618.61,116.475,4.727,'Drakuru Bunny 05- On Spellhit - Summmon Drakuru');
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Fix Neutralizing the Cauldrons (11647) quest by Shlomi1515 (Issue 3432)
+UPDATE `creature_template` SET flags_extra='128', AIName='SmartAI' WHERE entry IN (25493,25490,25492);
+DELETE FROM `smart_scripts` WHERE entryorguid IN (25493,25490,25492);
+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
+(25493,0,0,0,8,0,100,0,45653,0,0,0,33,25493,0,0,0,0,0,7,0,0,0,0,0,0,0,'West Enkilah Cauldron - On Spell Hit - Kil Credit'),
+(25490,0,0,0,8,0,100,0,45653,0,0,0,33,25490,0,0,0,0,0,7,0,0,0,0,0,0,0,'East Enkilah Cauldron - On Spell Hit - Kil Credit'),
+(25492,0,0,0,8,0,100,0,45653,0,0,0,33,25492,0,0,0,0,0,7,0,0,0,0,0,0,0,'Central Enkilah Cauldron - On Spell Hit - Kil Credit');
+-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Hallow's End Treats for Jesper/spoops 8311/8312 (Issue 3548)
+-- Flexing for Nougat (Alliance)
+SET @INNKEEPER=6740;
+SET @QUEST=8356;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER AND `id`=2;
+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
+(@INNKEEPER,0,2,0,22,0,100,0,41,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Allison - on /flex credit for quest');
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL);
+-- Chicken Clucking for a Mint (Alliance)
+SET @INNKEEPER=5111;
+SET @QUEST=8353;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER AND `id`=2;
+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
+(@INNKEEPER,0,2,0,22,0,100,0,22,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Firebrew - on /chicken credit for quest');
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL);
+-- Dancing for Marzipan (Alliance)
+SET @INNKEEPER=6735;
+SET @QUEST=8357;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER AND `id`=2;
+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
+(@INNKEEPER,0,2,0,22,0,100,0,34,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Saelienne - on /dance credit for quest');
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL);
+-- Incoming Gumdrop (Alliance)
+SET @INNKEEPER=6826;
+SET @QUEST=8355;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@INNKEEPER;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER;
+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
+(@INNKEEPER,0,0,0,22,0,100,0,264,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Talvash del Kissel - on /train credit for quest');
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL);
+-- Flexing for Nougat (Horde)
+SET @INNKEEPER=6929;
+SET @QUEST=8359;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER AND `id`=2;
+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
+(@INNKEEPER,0,2,0,22,0,100,0,41,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Gryshka - on /flex credit for quest');
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL);
+-- Chicken Clucking for a Mint (Horde)
+SET @INNKEEPER=6741;
+SET @QUEST=8354;
+-- SAI
+UPDATE `smart_scripts` SET `link`=3 WHERE `entryorguid`=@INNKEEPER AND `id`=2;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER AND `id`=3;
+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
+(@INNKEEPER,0,3,0,61,0,100,0,0,0,0,0,15,@QUEST,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Norman - Link - exploreded for quest');
+-- conditions
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,0,12,0,12,0,0,0,0,'',"Quest avialable only during Hallow's End event");
+-- Dancing for Marzipan (Horde)
+SET @INNKEEPER=6746;
+SET @QUEST=8360;
+SET @GOSSIP=21215;
+UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=@INNKEEPER;
+-- Add trick or treat SAI since the .cpp script was removed
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER;
+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
+(@INNKEEPER,0,0,1,62,0,100,0,@GOSSIP,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Pala - On gossip option 0 select - Close gossip'),
+(@INNKEEPER,0,1,0,61,0,100,0,0,0,0,0,85,24751,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Pala - On gossip option 0 select - Player cast Trick or Treat on self'),
+(@INNKEEPER,0,2,0,22,0,100,0,34,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Innkeeper Pala - on /dance credit for quest');
+-- Add gossip menu option for trick or treat
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(@GOSSIP,1,5,'Make this inn your home.',8,65536,0,0,0,0,''),
+(@GOSSIP,2,1,'I want to browse your goods',3,128,0,0,0,0,''),
+(@GOSSIP,0,0,'Trick or Treat!',1,1,0,0,0,0,'');
+-- Add conditions must be hallows end for Dancing for Marzipan quest and trick or treat option
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+DELETE FROM `conditions` WHERE `SourceGroup`=@GOSSIP;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL),
+(15,@GOSSIP,0,0,12,12,0,0,0,'',NULL);
+-- Incoming Gumdrop (Horde)
+SET @INNKEEPER=11814;
+SET @QUEST=8358;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@INNKEEPER;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@INNKEEPER;
+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
+(@INNKEEPER,0,0,0,22,0,100,0,264,0,0,0,33,@INNKEEPER,0,0,0,0,0,7,0,0,0,0,0,0,0,'Kali Remik - on /train credit for quest');
+DELETE FROM `conditions` WHERE `SourceEntry`=@QUEST;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(19,0,@QUEST,0,12,12,0,0,0,'',NULL);
diff --git a/sql/updates/world/2012_11_14_02_world_battleground_template.sql b/sql/updates/world/2012_11_14_02_world_battleground_template.sql
new file mode 100644
index 00000000000..b69216ea380
--- /dev/null
+++ b/sql/updates/world/2012_11_14_02_world_battleground_template.sql
@@ -0,0 +1,3 @@
+DELETE FROM `battleground_template` WHERE `id` = 6;
+INSERT INTO `battleground_template` (`id`, `MinPlayersPerTeam`, `MaxPlayersPerTeam`, `MinLvl`, `MaxLvl`, `AllianceStartLoc`, `AllianceStartO`, `HordeStartLoc`, `HordeStartO`, `StartMaxDist`, `Weight`, `ScriptName`, `Comment`) VALUES
+(6,0,2,10,80,0,0,0,0,0,1,'','All Arena');
diff --git a/sql/updates/world/2012_09_22_00_world_utgarde.sql b/sql/updates/world/2012_11_16_00_world_utgarde.sql
index 83cc227f9cd..1948796a77b 100644
--- a/sql/updates/world/2012_09_22_00_world_utgarde.sql
+++ b/sql/updates/world/2012_11_16_00_world_utgarde.sql
@@ -2,7 +2,7 @@
DELETE FROM `creature_loot_template` WHERE `entry`=31671;
-- Savage worg
DELETE FROM `creature_loot_template` WHERE `entry`=31678 AND `item` IN(39211,39212,33454);
-INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `mincountOrRef`, `maxcount`) VALUES
+INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `mincountOrRef`, `maxcount`) VALUES
(31678,39211,70,3,5),
(31678,39212,16,2,4),
(31678,33454, 3,1,1);
@@ -35,7 +35,7 @@ UPDATE `creature_template` SET `unit_flags`=2|4|256|512, `faction_A`=35, `factio
-- Dragonflayer runecaster
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=23960;
DELETE FROM `smart_scripts` WHERE `entryorguid`=23960 AND `source_type`=0;
-INSERT INTO `smart_scripts` (`entryorguid`, `id`, `event_type`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `target_type`, `target_param2`, `comment`) VALUES
+INSERT INTO `smart_scripts` (`entryorguid`, `id`, `event_type`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `target_type`, `target_param2`, `comment`) VALUES
(23960,1,0,2,5000,7000,14000,17000,11,42740,11,30,'Dragonflayer Runecaster - In combat - Cast Njords Rune of Protection'),
(23960,2,0,4,5000,7000,14000,17000,11,59616,11,30,'Dragonflayer Runecaster - In combat - Cast Njords Rune of Protection'),
(23960,3,0,2,1000,2000,15000,18000,11,54965, 1, 0,'Dragonflayer Runecaster - In combat - Cast Bolthorns Rune of Flame'),
@@ -48,7 +48,7 @@ INSERT INTO `smart_scripts`(`entryorguid`,`event_type`,`event_param1`,`event_par
(28419,0,5000,5000,30000,30000,11,40414,5,'Frenzied geist - In combat - Cast Fixate');
-- Difficulty data for spells used in utgarde keep
-DELETE FROM `spelldifficulty_dbc` WHERE `id` IN(42669,42708,42750,42723,42729,43667,42702) OR `spellid0` IN(42669,42708,42750,42723,42729,43667,42702);
+DELETE FROM `spelldifficulty_dbc` WHERE `id` IN(42669,42708,42750,42723,42729,43667,42702,50653,43931) OR `spellid0` IN(42669,42708,42750,42723,42729,43667,42702,50653,43931);
INSERT INTO `spelldifficulty_dbc`(`id`,`spellid0`,`spellid1`) VALUES
(42669,42669,59706), -- Smash
(42708,42708,59708), -- Staggering Roar
@@ -56,11 +56,13 @@ INSERT INTO `spelldifficulty_dbc`(`id`,`spellid0`,`spellid1`) VALUES
(42723,42723,59709), -- Dark Smash
(42729,42729,59734), -- Dreadful Roar
(43667,43667,59389), -- Shadow Bolt
-(42702,42702,59397); -- Decrepify
+(42702,42702,59397), -- Decrepify
+(50653,50653,59692), -- Flame Breath
+(43931,43931,59691); -- Rend
-- Ticking Time Bomb, Fixate
DELETE FROM `spell_script_names` WHERE `spell_id` IN(59686,40414);
-INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(59686,'spell_ticking_time_bomb'),
(40414,'spell_fixate');
@@ -88,7 +90,7 @@ INSERT INTO `creature_addon`(`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`auras`)
-- Waypoint data
DELETE FROM `waypoint_data` WHERE `id` IN (1259400,1259340,1259150,1259200,1259140,1259360,1259370,1259220);
-INSERT INTO `waypoint_data`(`id`,`point`,`position_x`,`position_y`,`position_z`) VALUES
+INSERT INTO `waypoint_data`(`id`,`point`,`position_x`,`position_y`,`position_z`) VALUES
(1259400,1,211.864,-352.629,196.144),
(1259340,1,271.911,-318.506,185.049),
(1259150,1,265.478,-199.246,186.812),
diff --git a/sql/updates/world/2012_11_16_01_world_utgarde.sql b/sql/updates/world/2012_11_16_01_world_utgarde.sql
new file mode 100644
index 00000000000..30a64b02e3a
--- /dev/null
+++ b/sql/updates/world/2012_11_16_01_world_utgarde.sql
@@ -0,0 +1,39 @@
+-- Areatrigger script
+DELETE FROM `areatrigger_scripts` WHERE `entry`=4838;
+INSERT INTO `areatrigger_scripts`(`entry`,`ScriptName`) VALUES
+(4838,'SmartTrigger');
+
+DELETE FROM `smart_scripts` WHERE `entryorguid`=4838 AND `source_type`=2;
+INSERT INTO `smart_scripts`(`entryorguid`,`source_type`,`event_type`,`event_param1`,`action_type`,`action_param1`,`action_param2`,`target_type`,`target_param1`,`comment`) VALUES
+(4838,2,46,4838,45,28,6,10,125946,'Areatrigger in Utgarde Keep near Ingvar - On trigger - Set data of Enslaved Proto Drake');
+
+-- Template updates for proto drake and rider
+UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_enslaved_proto_drake' WHERE `entry`=24083; -- Proto drake non heroic
+UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry` IN (24849,31676); -- Proto drake rider
+
+-- Waypoints for core script
+DELETE FROM `waypoint_data` WHERE `id`=125946;
+INSERT INTO `waypoint_data`(`id`,`point`,`position_x`,`position_y`,`position_z`,`move_flag`) VALUES
+(125946,1,210.92,-185.92,203.729,1),
+(125946,2,215.397,-181.239,205.773,1),
+(125946,3,219.674,-176.469,202.97,1),
+(125946,4,223.183,-172.761,200.058,1),
+(125946,5,228.007,-168.952,196.713,1),
+(125946,6,230.514,-167.104,195.116,1),
+(125946,7,235.687,-163.455,192.13,1),
+(125946,8,239.569,-161.025,190.346,1);
+
+-- Mount the rider to the drake
+DELETE FROM `vehicle_template_accessory` WHERE `entry`=24083;
+INSERT INTO `vehicle_template_accessory`(`entry`,`accessory_entry`,`seat_id`,`minion`,`description`,`summontype`,`summontimer`) VALUES
+(24083,24849,0,0,'Proto Drake Rider mounted to Enslaved Proto Drake',6,30000);
+
+-- Create required spellclick information
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=24083;
+INSERT INTO `npc_spellclick_spells`(`npc_entry`,`spell_id`,`cast_flags`) VALUES
+(24083,55074,1);
+
+-- Remove no longer needed data
+DELETE FROM `creature` WHERE `guid`=125912 AND `map`=574 AND `id`=24849;
+DELETE FROM `creature_addon` WHERE `guid`=125912;
+DELETE FROM `creature_ai_scripts` WHERE `creature_id`=24083;
diff --git a/sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql b/sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql
new file mode 100644
index 00000000000..7d2caf76e33
--- /dev/null
+++ b/sql/updates/world/2012_11_16_02_world_creature_ai_summons.sql
@@ -0,0 +1 @@
+DROP TABLE `creature_ai_summons`;
diff --git a/sql/updates/world/2012_11_17_00_world_various_fixes.sql b/sql/updates/world/2012_11_17_00_world_various_fixes.sql
new file mode 100644
index 00000000000..981d378217f
--- /dev/null
+++ b/sql/updates/world/2012_11_17_00_world_various_fixes.sql
@@ -0,0 +1,834 @@
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3132: Horde Brewfest Vendors
+-- add Ray'ma <Brew of the Month Club> (27489)
+DELETE FROM `creature` WHERE `id`=27489;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(42662,27489,1,1,1,0,0,1472.608,-4209.172,43.26931,4.433136,600,0,0,7500,1,0,0,0,0);
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3563: Mistcaller Yngvar
+-- Deletes incorrectly spawned Mistcaller Yngvar
+DELETE FROM `creature` WHERE `id`=34965;
+-- Spawns missing Spell Focus for Mistcaller's Cave
+DELETE FROM `gameobject` WHERE `guid`=365;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(365,300006,571,1,1,10184.8,1184.6,75.892,2.7989,0,0,0.985356,0.170509,300,0,1);
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3635: The Test of Skulls, Somnus
+-- Spawn Somnus (12900) NPC needed for The Test of Skulls, Somnus (6583) quest fix by shlomi1515
+SET @NPC :=12900;
+UPDATE `creature_template` SET AIName='SmartAI', Mechanic_Immune_Mask=2147483647 WHERE entry=@NPC;
+DELETE FROM `creature` WHERE id=@NPC;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(42880,@NPC,0,1,1,0,0,-10444.5,-4096.17,28.9469,2.91185,300,0,0,38844,0,2,0,0,0);
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC AND `source_type`=0;
+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
+(@NPC,0,0,0,13,0,100,0,75000,75000,75000,75000,11,20989,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Somnus - Target is Casting - Cast Sleep'),
+(@NPC,0,1,0,13,0,100,0,85000,85000,85000,85000,11,12882,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Somnus - Target is Casting - Cast Wing Flap'),
+(@NPC,0,2,0,0,0,100,0,0,5000,30000,30000,11,20667,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Somnus - IC - Cast Corrosive Acid Breath'),
+(@NPC,0,3,0,0,0,100,0,7000,9000,14000,20000,11,18368,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Somnus - IC - Cast Strike');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3678: Joys of Omosh
+-- Orokk Omosh SAI
+SET @ENTRY := 7790;
+SET @QUEST := 2755;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `quest_template` SET `StartScript`=0,`CompleteScript`=0 WHERE `id`=@QUEST;
+DELETE FROM `quest_start_scripts` WHERE `id`=@QUEST;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100);
+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
+(@ENTRY,0,0,0,19,0,100,0,@QUEST,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0, 'Orokk Omosh - On Quest Accept - Run Script'),
+(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,5,10,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Orokk Omosh - On Script - Start Dancing'),
+(@ENTRY*100,9,1,0,0,0,100,0,30000,30000,0,0,5,26,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Orokk Omosh - On Script - Stop Dancing'),
+(@ENTRY*100,9,2,0,0,0,100,0,33000,33000,0,0,15,@QUEST,0,0,0,0,7,0,0,0,0,0,0,0,0, 'Orokk Omosh - On Script - Quest Credit');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3679: Gnomer-gooooone!
+-- Raschal the Courier SAI
+SET @ENTRY := 7853;
+SET @QUEST := 2843;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `quest_template` SET `StartScript`=0,`CompleteScript`=0 WHERE `id`=@QUEST;
+DELETE FROM `quest_start_scripts` WHERE `id`=@QUEST;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100);
+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
+(@ENTRY,0,0,0,19,0,100,0,@QUEST,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0, 'Scooty - On Quest Accept - Run Script'),
+(@ENTRY*100,9,0,0,0,0,100,0,10000,10000,0,0,15,@QUEST,0,0,0,0,7,0,0,0,0,0,0,0,0, 'Scooty - On Script - Quest Credit');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3680: Test of Faith
+-- Dorn Plainstalker SAI
+SET @ENTRY := 2986;
+SET @QUEST := 1149;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `quest_template` SET `StartScript`=0,`CompleteScript`=0 WHERE `id`=@QUEST;
+DELETE FROM `quest_start_scripts` WHERE `id`=@QUEST;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY;
+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
+(@ENTRY,0,0,0,19,0,100,0,@QUEST,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dorn Plainstalker - On Quest Accept - Say Line 0');
+-- Text
+DELETE FROM `db_script_string` WHERE `entry`=2000000042;
+DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@ENTRY,0,0, 'Until we meet again, brave one.',12,0,100,113,0,0, 'Dorn Plainstalker');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3749: Frankly,It Makes No Sense
+SET @Scorp := 21909; -- Arcano-Scorp
+SET @CreditGuid := 84902; -- There is unused spawn of this
+SET @Guid1 := 43463; -- TC team values should be set here -> add missing scorp spawn
+SET @Guid2 := 43464; -- TC team values should be set here -> add missing scorp spawn
+SET @Control1 := 37867; -- Trigger /connected with dismissing to make vehicle not attack master/
+SET @Control1_1 := 37868; -- Control /apply control aura without target/
+SET @Control2 := 37892; -- -//-
+SET @Control2_2 := 37893; -- -//-
+SET @Control3 := 37894; -- -//-
+SET @Control3_3 := 37895; -- -//-
+SET @Diametron := 21462; -- Greater Fellfire Diametron
+-- Arcano-Scorp spells:
+SET @Tag := 37851; -- Tag Greater Felfire Diemetradon
+SET @Arcano_Cloak := 37917;
+SET @Arcano_dismantle := 37919;
+SET @Arcano_pince := 37918;
+-- Add spawns for two missing Arcano-Scorps
+UPDATE `creature_template` SET `AIName`='PetAI',`unit_flags`=512,`MovementType`=1,`spell4`=@Tag,`spell5`=@Arcano_Cloak,`spell6`=@Arcano_dismantle,`spell7`=@Arcano_pince WHERE `entry`=@Scorp;
+UPDATE `creature` SET `MovementType`=1,`spawndist`=3,`position_x`=-3414.004,`position_y`=825.4113,`position_z`=-30.77301 WHERE `guid`=76655;
+DELETE FROM `creature` WHERE `guid` IN (@Guid1,@Guid2,@CreditGuid);
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`MovementType`) VALUES
+(@Guid1,@Scorp,530,1,1,-3414.294,813.9421,-31.12042,1.478481,30,3,0,1),
+(@Guid2,@Scorp,530,1,1,-3408.508,795.8544,-31.42966,1.452154,30,3,0,1);
+-- Spell script for trigger of control spell *will rewrite it once SAI spell script is released*
+DELETE FROM `spell_scripts` WHERE `id` IN (@Control1,@Control2,@Control3);
+INSERT INTO `spell_scripts` (`id`,`effindex`,`delay`,`command`,`datalong`,`datalong2`) VALUES
+(@Control1,0,0,15,@Control1_1,2),
+(@Control2,0,0,15,@Control2_2,2),
+(@Control3,0,0,15,@Control3_3,2);
+-- Limit @Tag only to Diametrons,also to ones not affected by it
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=@Tag;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@Tag,0,0,31,1,3,@Diametron,0,0,0, '', 'Tag can only target Greater Felfire Diametrons'),
+(17,0,@Tag,0,0,1,1,@Tag,0,0,1,0, '', 'Tag cannot be casted on tagged Diametrons');
+-- Limit Arcano_Dismantle to not being able to hit self and cannot damage anything else beside Arcano-scorp
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@Arcano_dismantle;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,@Arcano_dismantle,0,0,33,1,0,1,0,1,0, '', 'Arcano-Dismantle effect 0 cannot hit self'),
+(13,2,@Arcano_dismantle,0,0,33,1,0,1,0,1,0, '', 'Arcano-Dismantle effect 1 cannot hit self'),
+(13,1,@Arcano_dismantle,0,0,31,0,3,@Scorp,0,0,0, '', 'Arcano-Dismantle effect 0 can hit only Arcano-Scorp'),
+(13,2,@Arcano_dismantle,0,0,31,0,3,@Scorp,0,0,0, '', 'Arcano-Dismantle effect 1 can hit only Arcano-Scorp');
+-- Limit @Arcano_pince to not being able to hit self and cannot damage anything else beside Arcano-scorp
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@Arcano_pince;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,@Arcano_pince,0,0,33,1,0,1,0,1,0, '', 'Arcano_pince effect 0 cannot hit self'),
+(13,1,@Arcano_pince,0,0,31,0,3,@Scorp,0,0,0, '', 'Arcano_pince effect 0 can hit only Arcano-Scorp');
+-- Add SAI for Greater Diametron to prevent some bugs
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@Diametron;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@Diametron;
+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
+(@Diametron,0,0,0,0,0,100,0,4500,5000,5000,7000,11,37945,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Greater Fellfire Diametron - IC - Cast Fel Fireball'),
+(@Diametron,0,1,0,0,0,100,0,1500,3000,15000,17000,11,37941,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Greater Fellfire Diametron - IC - Cast Flaming Wound'),
+(@Diametron,0,2,3,8,0,100,0,@Tag,0,0,0,90,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Greater Fellfire Diametron - On hit by spell Tag - Set bytes to wipe aggro'),
+(@Diametron,0,3,4,61,0,100,0,0,0,0,0,91,256,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Greater Fellfire Diametron - Linked with previous event - Remove bytes'),
+(@Diametron,0,4,0,61,0,100,0,0,0,0,0,75,@Tag,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Greater Fellfire Diametron - Linked with previous event - Add Tag aura on self');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3809: You Robot
+DELETE FROM `creature_ai_scripts` WHERE creature_id=19851;
+UPDATE `creature_template` SET AIName='SmartAI' WHERE `entry`=19851;
+DELETE FROM `smart_scripts` WHERE entryorguid=19851;
+INSERT INTO `smart_scripts` VALUES
+(19851,0,0,0,9,0,100,0,8,25,15000,21000,11,35570,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Negatron - Cast Charge'),
+(19851,0,1,0,9,0,100,0,0,5,15000,21000,11,34625,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Negatron - Cast Demolish'),
+(19851,0,2,0,0,0,100,0,15000,19000,21000,25000,11,35565,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Negatron - Cast Earthquake'),
+(19851,0,3,0,2,0,100,0,0,50,16000,22000,11,34624,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Negatron - Cast Frenzy at 50% HP'),
+(19851,0,4,0,6,0,100,0,0,0,0,0,15,10248,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Negatron - Death - Quest Complete');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3822: Deaths Door
+-- Fix quest 10910 'Deaths Door'
+-- Evergrove Druid SAI
+SET @ENTRY := 22423;
+UPDATE `creature_template` SET `inhabittype`=4,`AIName`= 'SmartAI' WHERE `entry`=@ENTRY;
+UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=1,`mount`=0,`emote`=0,`auras`=NULL WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
+(@ENTRY,0,0,1,8,0,100,1,38782,0,0,0,11,38776,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On hit by signal - transform to crow'),
+(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,19,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On hit by signal - Remove field flag'),
+(@ENTRY,0,2,3,61,0,100,0,0,0,0,0,69,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Evergrove Druid - On hit by signal - Follow player invoker'),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,81,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On hit by signal - Set npcflag = 2'),
+(@ENTRY,0,4,5,64,0,100,1,0,0,0,0,11,39158,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On gossip hello - transform to druid, since end point for follow can''t be player'),
+(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,41,60000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - After 60 sec - despawn'),
+(@ENTRY,0,6,0,19,0,100,0,10904,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On target accepted next quest - despawn'),
+(@ENTRY,0,7,0,19,0,100,0,10911,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On target accepted next quest - despawn'),
+(@ENTRY,0,8,0,19,0,100,0,10912,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Evergrove Druid - On target accepted next quest - despawn'),
+(@ENTRY,0,9,0,11,0,100,0,0,0,0,0,83,2,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Evergrove Druid - On Spawn - Remove quest flag');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3930: Evil Draws Near
+-- Teribus the Cursed is out of combat when is finally summoned by players
+UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~256 WHERE `entry`=22441; -- removing OOC
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+DELETE FROM `creature` WHERE `guid`=42889;
+INSERT INTO creature(`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`)
+VALUES (42889,34675,0,1,1,0,0,-9133.91,355.333,92.3983,2.0151,300,0,0,1524,0,0,0,0,0);
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 3761 Day of the Dead
+-- Day of the Dead
+SET @ENTRY := 34383; -- Catrina
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
+INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(@ENTRY,0,0,0,10,NULL);
+UPDATE `quest_template` SET `RequiredRaces`=512 WHERE `Id`=14171;
+UPDATE `quest_template` SET `RequiredRaces`=1024 WHERE `Id`=14169;
+-- Invisibility aura for Cheerful Spirits
+DELETE FROM `creature_template_addon` WHERE `entry` IN (35256,34435,34435,34478,34481,34484,34479,34483,34476,34477,34480,34482,35260,35261);
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(35256,0,0,0,0,0,30628), -- Cheerful Dalaran Spirit
+(34435,0,0,0,0,0,30628), -- Cheerful Human Spirit
+(34478,0,0,0,0,0,30628), -- Cheerful Dwarf Spirit
+(34481,0,0,0,0,0,30628), -- Cheerful Gnome Spirit
+(34484,0,0,0,0,0,30628), -- Cheerful Draenei Spirit
+(34479,0,0,0,0,0,30628), -- Cheerful Night Elf Spirit
+(34483,0,0,0,0,0,30628), -- Cheerful Blood Elf Spirit
+(34476,0,0,0,0,0,30628), -- Cheerful Forsaken Spirit
+(34477,0,0,0,0,0,30628), -- Cheerful Orc Spirit
+(34480,0,0,0,0,0,30628), -- Cheerful Tauren Spirit
+(34482,0,0,0,0,0,30628), -- Cheerful Troll Spirit
+(35260,0,0,0,0,0,30628), -- Cheerful Aldor Spirit
+(35261,0,0,0,0,0,30628); -- Cheerful Scryer Spirit
+-- Quest relations
+DELETE FROM `creature_questrelation` WHERE `id` IN (35256,34435,34435,34478,34481,34484,34479,34483,34476,34477,34480,34482,35260,35261);
+INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES
+(34435,13952),
+(34476,14174),
+(34477,14175),
+(34478,14167),
+(34479,14170),
+(34480,14176),
+(34481,14168),
+(34482,14177),
+(34483,14171),
+(34484,14169),
+(35256,14166),
+(35260,14172),
+(35261,14173);
+DELETE FROM `creature_involvedrelation` WHERE `id` IN (35256,34435,34435,34478,34481,34484,34479,34483,34476,34477,34480,34482,35260,35261);
+INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES
+(34435,13952),
+(34476,14174),
+(34477,14175),
+(34478,14167),
+(34479,14170),
+(34480,14176),
+(34481,14168),
+(34482,14177),
+(34483,14171),
+(34484,14169),
+(35256,14166),
+(35260,14172),
+(35261,14173);
+-- Creature spawns for Day of the Dead Event
+SET @GUID := 134848;
+DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+146;
+INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(@GUID,20102,530,1,1,0,0,3038.56,3635.53,144.012,3.32713,300,0,0,42,0,0,0,0,0),
+(@GUID+1,35250,1,1,1,0,0,10066,2125.69,1329.66,1.12742,300,0,0,42,0,0,0,0,0),
+(@GUID+2,35250,1,1,1,0,0,10058.4,2135.92,1330.81,4.55176,300,0,0,42,0,0,0,0,0),
+(@GUID+3,35250,1,1,1,0,0,10045,2109.59,1330.2,0.224221,300,0,0,42,0,0,0,0,0),
+(@GUID+4,35250,1,1,1,0,0,10053.8,2104.68,1330.93,1.5594,300,0,0,42,0,0,0,0,0),
+(@GUID+5,35250,1,1,1,0,0,10052.9,2111.1,1330.06,1.93246,300,0,0,42,0,0,0,0,0),
+(@GUID+6,35250,1,1,1,0,0,10062.2,2109.76,1330.92,2.08954,300,0,0,42,0,0,0,0,0),
+(@GUID+7,35250,1,1,1,0,0,10063.5,2117.74,1330.03,3.55824,300,0,0,42,0,0,0,0,0),
+(@GUID+8,35250,1,1,1,0,0,10059.1,2123.97,1330.28,5.04264,300,0,0,42,0,0,0,0,0),
+(@GUID+9,35250,1,1,1,0,0,10052.9,2127.26,1330.13,3.93523,300,0,0,42,0,0,0,0,0),
+(@GUID+10,34479,1,1,1,0,0,10061.5,2128.42,1330.17,2.73357,300,0,0,2442,2434,0,0,0,0),
+(@GUID+11,35243,530,1,1,0,0,9404.91,-6859.42,15.101,4.17483,300,0,0,40,120,0,0,0,0),
+(@GUID+12,35243,530,1,1,0,0,9411.01,-6855.19,14.9017,1.27278,300,0,0,40,120,0,0,0,0),
+(@GUID+13,35243,530,1,1,0,0,9414.6,-6853.32,14.9361,2.67472,300,0,0,40,120,0,0,0,0),
+(@GUID+14,35243,530,1,1,0,0,9415.1,-6848.51,15.1693,3.83318,300,0,0,40,120,0,0,0,0),
+(@GUID+15,35249,0,1,1,0,0,-9350.81,171.018,61.7532,1.0198,300,0,0,42,0,0,0,0,0),
+(@GUID+16,35253,1,1,1,0,0,1174.68,-4467.53,21.2746,0.833251,300,0,0,42,0,0,0,0,0),
+(@GUID+17,35253,1,1,1,0,0,1182,-4463.02,21.2426,2.68915,300,0,0,42,0,0,0,0,0),
+(@GUID+18,35253,1,1,1,0,0,1186.12,-4465.53,21.2886,1.73018,300,0,0,42,0,0,0,0,0),
+(@GUID+19,35253,1,1,1,0,0,1176.79,-4460.38,21.4269,5.82603,300,0,0,42,0,0,0,0,0),
+(@GUID+20,35251,1,1,1,0,0,1172.3,-4460.54,21.4697,6.19124,300,0,0,42,0,0,0,0,0),
+(@GUID+21,35251,1,1,1,0,0,1180.91,-4471.22,21.1603,1.71055,300,0,0,42,0,0,0,0,0),
+(@GUID+22,34483,530,1,1,0,0,9407.42,-6859.87,14.8699,3.93528,300,0,0,4890,7196,0,0,0,0),
+(@GUID+23,35243,530,1,1,0,0,9409.6,-6847.61,15.5215,4.92881,300,0,0,40,120,0,0,0,0),
+(@GUID+24,35243,530,1,1,0,0,9407.46,-6852.95,15.239,0.00436234,300,0,0,40,120,0,0,0,0),
+(@GUID+25,35249,0,1,1,0,0,-9337.56,188.283,61.5117,3.72314,300,0,0,42,0,0,0,0,0),
+(@GUID+26,35249,0,1,1,0,0,-9340.16,183.339,61.5512,0.349854,300,0,0,42,0,0,0,0,0),
+(@GUID+27,35249,0,1,1,0,0,-9342.2,187.984,61.5586,5.25467,300,0,0,42,0,0,0,0,0),
+(@GUID+28,35249,0,1,1,0,0,-9329.31,166.352,61.5815,1.76357,300,0,0,42,0,0,0,0,0),
+(@GUID+29,35249,0,1,1,0,0,-9322.06,168.47,61.6066,2.40367,300,0,0,42,0,0,0,0,0),
+(@GUID+30,35249,0,1,1,0,0,-9318.67,173.348,61.613,2.83957,300,0,0,42,0,0,0,0,0),
+(@GUID+31,35249,0,1,1,0,0,-9346.44,171.041,61.5582,2.74061,300,0,0,42,0,0,0,0,0),
+(@GUID+32,35249,0,1,1,0,0,-9344.05,175.877,61.5584,3.59669,300,0,0,42,0,0,0,0,0),
+(@GUID+33,35249,0,1,1,0,0,-9349.19,176.153,61.726,5.18634,300,0,0,42,0,0,0,0,0),
+(@GUID+34,35249,0,1,1,0,0,-9327.92,185.507,62.7096,4.07265,300,0,0,42,0,0,0,0,0),
+(@GUID+35,34383,1,1,1,0,0,1184.43,-4467.28,21.3388,1.2079,300,0,0,12600,0,0,0,0,0),
+(@GUID+36,34383,0,1,1,0,0,-9330.46,180.936,61.6792,4.1716,300,0,0,12600,0,0,0,0,0),
+(@GUID+37,34382,1,1,1,0,0,1180.53,-4465.53,21.3293,0.944794,600,0,0,12600,0,0,0,0,0),
+(@GUID+38,34382,0,1,1,0,0,-9327.6,178.975,61.6973,4.10484,600,0,0,12600,0,0,0,0,0),
+(@GUID+39,34482,1,1,1,0,0,1181.51,-4469.65,21.2349,1.4121,300,0,0,2136,5751,0,0,0,0),
+(@GUID+40,34435,0,1,1,0,0,-9354.72,167.942,61.665,0.27367,300,0,0,3052,0,0,0,0,0),
+(@GUID+41,34477,1,1,1,0,0,1173.47,-4462.54,21.3309,0.60707,300,0,0,3052,0,0,0,0,0),
+(@GUID+42,35256,571,1,65535,0,0,5831.01,751.564,641.134,3.40199,300,0,0,12600,0,0,0,0,0),
+(@GUID+43,35254,571,1,65535,0,0,5829.42,754.776,640.729,5.14164,300,0,0,8508,7981,0,0,0,0),
+(@GUID+44,35254,571,1,65535,0,0,5827.15,751.291,640.952,0.150437,300,0,0,8508,7981,0,0,0,0),
+(@GUID+45,35254,571,1,65535,0,0,5830.31,746.699,641.251,1.36388,300,0,0,8508,7981,0,0,0,0),
+(@GUID+46,35254,571,1,65535,0,0,5835.25,748.654,641.162,2.59303,300,0,0,8508,7981,0,0,0,0),
+(@GUID+47,35254,571,1,65535,0,0,5835.24,754.043,641.008,3.64153,300,0,0,8508,7981,0,0,0,0),
+(@GUID+48,35254,571,1,65535,0,0,5828.15,741.877,642.46,1.24607,300,0,0,8508,7981,0,0,0,0),
+(@GUID+49,35254,571,1,65535,0,0,5846.77,755.676,640.68,0.837661,300,0,0,8508,7981,0,0,0,0),
+(@GUID+50,35254,571,1,65535,0,0,5850.95,756.541,640.434,2.81294,300,0,0,8508,7981,0,0,0,0),
+(@GUID+51,35254,571,1,65535,0,0,5848.22,760.619,641.147,4.64684,300,0,0,8508,7981,0,0,0,0),
+(@GUID+52,35254,571,1,65535,0,0,5841.11,762.141,640.661,0.480303,300,0,0,8508,7981,0,0,0,0),
+(@GUID+53,35244,0,1,1,0,0,1833.58,225.962,60.4294,4.33165,300,0,0,42,0,0,0,0,0),
+(@GUID+54,35244,0,1,1,0,0,1828.46,224.586,60.4551,5.29769,300,0,0,42,0,0,0,0,0),
+(@GUID+55,35244,0,1,1,0,0,1824.9,218.875,60.4469,0.0315971,300,0,0,42,0,0,0,0,0),
+(@GUID+56,35244,0,1,1,0,0,1836.95,222.233,60.2385,3.22031,300,0,0,42,0,0,0,0,0),
+(@GUID+57,35244,0,1,1,0,0,1834.67,215.873,60.1774,2.55665,300,0,0,42,0,0,0,0,0),
+(@GUID+58,35244,0,1,1,0,0,1821.83,225.812,60.919,5.50582,300,0,0,42,0,0,0,0,0),
+(@GUID+59,34476,0,1,1,0,0,1830.34,219.535,60.6017,4.58298,300,0,0,3052,0,0,0,0,0),
+(@GUID+60,34382,571,1,65535,0,0,5844.1,764.778,640.546,4.20309,600,0,0,12600,0,0,0,0,0),
+(@GUID+61,34382,0,1,1,0,0,1832.47,210.797,60.312,2.04222,600,0,0,12600,0,0,0,0,0),
+(@GUID+62,34382,530,1,1,0,0,9406.42,-6864.02,14.8942,1.19424,600,0,0,12600,0,0,0,0,0),
+(@GUID+63,34382,1,1,1,0,0,10058.2,2133,1329.66,4.43788,600,0,0,12600,0,0,0,0,0),
+(@GUID+64,34382,1,1,1,0,0,-989.195,-59.6891,27.4632,5.21191,600,0,0,12600,0,0,0,0,0),
+(@GUID+65,34382,530,1,1,0,0,-4320.01,-12433.4,17.9088,5.1906,600,0,0,12600,0,0,0,0,0),
+(@GUID+66,34382,530,1,1,0,0,-1805.58,4911.74,-21.8346,1.35833,600,0,0,12600,0,0,0,0,0),
+(@GUID+67,34382,0,1,1,0,0,-5151.65,-852.495,508.667,4.58185,600,0,0,12600,0,0,0,0,0),
+(@GUID+68,34383,571,1,65535,0,0,5844.93,762.949,640.713,2.86791,300,0,0,12600,0,0,0,0,0),
+(@GUID+69,34383,0,1,1,0,0,1828.96,210.695,60.2619,1.24504,300,0,0,12600,0,0,0,0,0),
+(@GUID+70,34383,530,1,1,0,0,9403.71,-6861.68,15.0351,0.609119,300,0,0,12600,0,0,0,0,0),
+(@GUID+71,34383,1,1,1,0,0,10067,2128.44,1329.66,3.57394,300,0,0,12600,0,0,0,0,0),
+(@GUID+72,34383,1,1,1,0,0,-987.397,-58.6047,27.5876,4.96843,300,0,0,12600,0,0,0,0,0),
+(@GUID+73,34383,530,1,1,0,0,-4317.46,-12431.3,17.755,5.11599,300,0,0,12600,0,0,0,0,0),
+(@GUID+74,34383,530,1,1,0,0,-1809.42,4913.42,-21.8336,0.867451,300,0,0,12600,0,0,0,0,0),
+(@GUID+75,34383,0,1,1,0,0,-5155.07,-854.489,508.115,5.0845,300,0,0,12600,0,0,0,0,0),
+(@GUID+76,34480,1,1,1,0,0,-979.399,-75.0704,19.5113,0.118608,300,0,0,3052,0,0,0,0,0),
+(@GUID+77,35252,1,1,1,0,0,-979.099,-78.4939,19.6825,0.8451,300,0,0,42,0,0,0,0,0),
+(@GUID+78,35252,1,1,1,0,0,-979.773,-70.3366,19.8615,5.07447,300,0,0,42,0,0,0,0,0),
+(@GUID+79,35252,1,1,1,0,0,-975.337,-71.6525,18.3695,3.78799,300,0,0,42,0,0,0,0,0),
+(@GUID+80,35252,1,1,1,0,0,-975.356,-76.2146,18.7461,2.57848,300,0,0,42,0,0,0,0,0),
+(@GUID+81,35252,1,1,1,0,0,-979.443,-57.4083,26.7673,4.68334,300,0,0,42,0,0,0,0,0),
+(@GUID+82,34484,530,1,1,0,0,-4329.44,-12443.6,17.6841,5.62257,300,0,0,5589,3155,0,0,0,0),
+(@GUID+83,35246,530,1,1,0,0,-4326.98,-12448.5,16.9294,5.47334,300,0,0,41,60,0,0,0,0),
+(@GUID+84,35246,530,1,1,0,0,-4326.59,-12453.9,16.7549,0.721683,300,0,0,41,60,0,0,0,0),
+(@GUID+85,35246,530,1,1,0,0,-4319.13,-12455.1,17.4243,2.4417,300,0,0,41,60,0,0,0,0),
+(@GUID+86,35246,530,1,1,0,0,-4320.45,-12448.9,17.0584,3.68656,300,0,0,41,60,0,0,0,0),
+(@GUID+87,35246,530,1,1,0,0,-4309.37,-12444,17.5071,3.15249,300,0,0,41,60,0,0,0,0),
+(@GUID+88,35246,530,1,1,0,0,-4312.76,-12446.2,17.3102,1.3932,300,0,0,41,60,0,0,0,0),
+(@GUID+89,35246,530,1,1,0,0,-4313.48,-12441,17.2002,5.26914,300,0,0,41,60,0,0,0,0),
+(@GUID+90,35246,530,1,1,0,0,-4315.9,-12433.6,17.5953,2.19823,300,0,0,41,60,0,0,0,0),
+(@GUID+91,35260,530,1,1,0,0,-1810.34,4923.26,-21.8439,5.41099,300,0,0,5589,3155,0,0,0,0),
+(@GUID+92,35261,530,1,1,0,0,-1796.9,4928.76,-22.2745,3.23936,300,0,0,4890,7196,0,0,0,0),
+(@GUID+93,35258,530,1,1,0,0,-1806.01,4925.33,-21.878,3.62813,300,0,0,4140,6443,0,0,0,0),
+(@GUID+94,35258,530,1,1,0,0,-1812.25,4929.11,-21.6268,4.96723,300,0,0,4140,6443,0,0,0,0),
+(@GUID+95,35258,530,1,1,0,0,-1814.69,4922.25,-22.0148,0.254842,300,0,0,4140,6443,0,0,0,0),
+(@GUID+96,35258,530,1,1,0,0,-1809.16,4918.68,-21.982,1.82171,300,0,0,4140,6443,0,0,0,0),
+(@GUID+97,35259,530,1,1,0,0,-1801.26,4929.1,-22.3108,6.17282,300,0,0,4140,6443,0,0,0,0),
+(@GUID+98,35259,530,1,1,0,0,-1792.87,4928.28,-22.1848,2.99981,300,0,0,4140,6443,0,0,0,0),
+(@GUID+99,35259,530,1,1,0,0,-1797.58,4924.28,-21.9414,1.31905,300,0,0,4140,6443,0,0,0,0),
+(@GUID+100,35259,530,1,1,0,0,-1796.3,4933.33,-22.3432,4.54704,300,0,0,4140,6443,0,0,0,0),
+(@GUID+101,34481,0,1,1,0,0,-5167.84,-870.949,506.706,1.024,300,0,0,2136,5751,0,0,0,0),
+(@GUID+102,34478,0,1,1,0,0,-5165.9,-866.76,506.808,4.28811,300,0,0,3052,0,0,0,0,0),
+(@GUID+103,35247,0,1,1,0,0,-5162.65,-873.025,507.206,1.00122,300,0,0,42,0,0,0,0,0),
+(@GUID+104,35247,0,1,1,0,0,-5158.7,-872.414,507.406,2.72124,300,0,0,42,0,0,0,0,0),
+(@GUID+105,35247,0,1,1,0,0,-5160.49,-869.137,507.265,4.21349,300,0,0,42,0,0,0,0,0),
+(@GUID+106,35247,0,1,1,0,0,-5164.33,-869.728,507.01,5.69397,300,0,0,42,0,0,0,0,0),
+(@GUID+107,35248,0,1,1,0,0,-5155,-856.249,508.059,1.51565,300,0,0,42,0,0,0,0,0),
+(@GUID+108,35248,0,1,1,0,0,-5159.06,-867.484,507.333,0.859842,300,0,0,42,0,0,0,0,0),
+(@GUID+109,35248,0,1,1,0,0,-5154.91,-867.566,507.758,2.45027,300,0,0,42,0,0,0,0,0),
+(@GUID+110,35248,0,1,1,0,0,-5155.64,-863.343,507.652,4.05641,300,0,0,42,0,0,0,0,0),
+(@GUID+111,35248,0,1,1,0,0,-5159.96,-863.16,507.247,5.49762,300,0,0,42,0,0,0,0,0),
+(@GUID+112,18927,0,1,1,0,0,-8855.97,652.546,96.2675,5.07716,300,0,0,42,0,0,0,0,0),
+(@GUID+113,18927,571,1,1,0,0,5678.09,658.93,647.134,0.088838,300,0,0,42,0,0,0,0,0),
+(@GUID+114,18927,0,1,1,0,0,-8854.78,649.83,96.7417,1.43117,300,0,0,42,0,0,0,0,0),
+(@GUID+115,18927,571,1,1,0,0,5719.3,687.257,645.752,5.72721,300,0,0,42,0,0,0,0,0),
+(@GUID+116,19169,530,1,1,0,0,9659.86,-7115.63,14.3239,5.88552,300,0,0,42,0,0,0,0,0),
+(@GUID+117,19169,571,1,1,0,0,5889.57,550.355,639.637,1.57167,300,0,0,42,0,0,0,0,0),
+(@GUID+118,19169,571,1,1,0,0,5928.98,639.593,645.557,3.01052,300,0,0,42,0,0,0,0,0),
+(@GUID+119,19169,530,1,1,0,0,9664.38,-7117.91,14.324,2.63397,300,0,0,42,0,0,0,0,0),
+(@GUID+120,19148,0,1,1,0,0,-4914.82,-951.191,501.498,4.5773,300,0,0,42,0,0,0,0,0),
+(@GUID+121,19148,0,1,1,0,0,-4915.33,-953.892,501.498,2.25016,300,0,0,42,0,0,0,0,0),
+(@GUID+122,19171,530,1,1,0,0,-3910.91,-11612.4,-138.243,4.99941,300,0,0,42,0,0,0,0,0),
+(@GUID+123,19171,530,1,1,0,0,-3909.22,-11614.8,-138.101,3.1765,300,0,0,42,0,0,0,0,0),
+(@GUID+124,19172,0,1,1,0,0,-4826.78,-1175.89,502.193,2.45358,300,0,0,42,0,0,0,0,0),
+(@GUID+125,19172,0,1,1,0,0,-4829.02,-1174.75,502.193,0.724139,300,0,0,42,0,0,0,0,0),
+(@GUID+126,19173,1,1,1,0,0,9923.44,2496.95,1317.49,2.28359,300,0,0,42,0,0,0,0,0),
+(@GUID+127,19173,1,1,1,0,0,9921.56,2499.58,1317.77,5.61996,300,0,0,42,0,0,0,0,0),
+(@GUID+128,19178,0,1,1,0,0,1626.7,222.7,-43.1027,1.01229,300,0,0,42,0,0,0,0,0),
+(@GUID+129,19178,0,1,1,0,0,1629.95,219.238,-43.1027,1.91079,300,0,0,42,0,0,0,0,0),
+(@GUID+130,19177,1,1,1,0,0,1688.01,-4350.19,61.2691,2.56413,300,0,0,42,0,0,0,0,0),
+(@GUID+131,19177,1,1,1,0,0,1685.07,-4352.88,61.7253,1.79601,300,0,0,42,0,0,0,0,0),
+(@GUID+132,19176,1,1,1,0,0,-1241.98,81.7344,129.422,5.4992,300,0,0,42,0,0,0,0,0),
+(@GUID+133,19176,1,1,1,0,0,-1242.68,76.7127,128.935,1.27376,300,0,0,42,0,0,0,0,0),
+(@GUID+134,19175,1,1,1,0,0,1607.39,-4402.93,10.1664,3.11715,300,0,0,42,0,0,0,0,0),
+(@GUID+135,19175,1,1,1,0,0,1603.36,-4404.49,9.30901,0.627438,300,0,0,42,0,0,0,0,0),
+(@GUID+136,20102,1,1,1,0,0,6747.03,-4664.43,724.551,3.61009,300,0,0,42,0,0,0,0,0),
+(@GUID+137,20102,1,1,1,0,0,-938.792,-3735.2,8.57162,3.66385,300,0,0,42,0,0,0,0,0),
+(@GUID+138,20102,1,1,1,0,0,-7177.24,-3810.02,8.3753,0.711558,300,0,0,42,0,0,0,0,0),
+(@GUID+139,20102,0,1,1,0,0,-14464.9,470.287,15.0369,5.96098,300,0,0,42,0,0,0,0,0),
+(@GUID+140,20102,530,1,1,0,0,-1888.02,5400.44,-12.4278,5.97919,300,0,0,42,0,0,0,0,0),
+(@GUID+141,20102,530,1,1,0,0,3035.51,3635.08,144.47,0.901821,300,0,0,42,0,0,0,0,0),
+(@GUID+142,20102,1,1,1,0,0,6745.48,-4667.44,723.103,1.03712,300,0,0,42,0,0,0,0,0),
+(@GUID+143,20102,1,1,1,0,0,-936.306,-3738.3,8.96324,3.35283,300,0,0,42,0,0,0,0,0),
+(@GUID+144,20102,1,1,1,0,0,-7173.14,-3808.58,8.37043,3.3285,300,0,0,42,0,0,0,0,0),
+(@GUID+145,20102,0,1,1,0,0,-14461.4,468.507,15.1232,2.66545,300,0,0,42,0,0,0,0,0),
+(@GUID+146,20102,530,1,1,0,0,-1884.63,5397.52,-12.4278,2.51637,300,0,0,42,0,0,0,0,0);
+-- Assignment of creatures to game event.
+DELETE FROM `game_event_creature` WHERE `eventEntry`=51 AND `guid` BETWEEN @GUID AND @GUID+146;
+INSERT INTO `game_event_creature` (`eventEntry`, `guid`) VALUES
+(51,@GUID),(51,@GUID+1),(51,@GUID+2),(51,@GUID+3),(51,@GUID+4),(51,@GUID+5),
+(51,@GUID+6),(51,@GUID+7),(51,@GUID+8),(51,@GUID+9),(51,@GUID+10),
+(51,@GUID+11),(51,@GUID+12),(51,@GUID+13),(51,@GUID+14),(51,@GUID+15),
+(51,@GUID+16),(51,@GUID+17),(51,@GUID+18),(51,@GUID+19),(51,@GUID+20),
+(51,@GUID+21),(51,@GUID+22),(51,@GUID+23),(51,@GUID+24),(51,@GUID+25),
+(51,@GUID+26),(51,@GUID+27),(51,@GUID+28),(51,@GUID+29),(51,@GUID+30),
+(51,@GUID+31),(51,@GUID+32),(51,@GUID+33),(51,@GUID+34),(51,@GUID+35),
+(51,@GUID+36),(51,@GUID+37),(51,@GUID+38),(51,@GUID+39),(51,@GUID+40),
+(51,@GUID+41),(51,@GUID+42),(51,@GUID+43),(51,@GUID+44),(51,@GUID+45),
+(51,@GUID+46),(51,@GUID+47),(51,@GUID+48),(51,@GUID+49),(51,@GUID+50),
+(51,@GUID+51),(51,@GUID+52),(51,@GUID+53),(51,@GUID+54),(51,@GUID+55),
+(51,@GUID+56),(51,@GUID+57),(51,@GUID+58),(51,@GUID+59),(51,@GUID+60),
+(51,@GUID+61),(51,@GUID+62),(51,@GUID+63),(51,@GUID+64),(51,@GUID+65),
+(51,@GUID+66),(51,@GUID+67),(51,@GUID+68),(51,@GUID+69),(51,@GUID+70),
+(51,@GUID+71),(51,@GUID+72),(51,@GUID+73),(51,@GUID+74),(51,@GUID+75),
+(51,@GUID+76),(51,@GUID+77),(51,@GUID+78),(51,@GUID+79),(51,@GUID+80),
+(51,@GUID+81),(51,@GUID+82),(51,@GUID+83),(51,@GUID+84),(51,@GUID+85),
+(51,@GUID+86),(51,@GUID+87),(51,@GUID+88),(51,@GUID+89),(51,@GUID+90),
+(51,@GUID+91),(51,@GUID+92),(51,@GUID+93),(51,@GUID+94),(51,@GUID+95),
+(51,@GUID+96),(51,@GUID+97),(51,@GUID+98),(51,@GUID+99),(51,@GUID+100),
+(51,@GUID+101),(51,@GUID+102),(51,@GUID+103),(51,@GUID+104),(51,@GUID+105),
+(51,@GUID+106),(51,@GUID+107),(51,@GUID+108),(51,@GUID+109),(51,@GUID+110),
+(51,@GUID+111),(51,@GUID+112),(51,@GUID+113),(51,@GUID+114),(51,@GUID+115),
+(51,@GUID+116),(51,@GUID+117),(51,@GUID+118),(51,@GUID+119),(51,@GUID+120),
+(51,@GUID+121),(51,@GUID+122),(51,@GUID+123),(51,@GUID+124),(51,@GUID+125),
+(51,@GUID+126),(51,@GUID+127),(51,@GUID+128),(51,@GUID+129),(51,@GUID+130),
+(51,@GUID+131),(51,@GUID+132),(51,@GUID+133),(51,@GUID+134),(51,@GUID+135),
+(51,@GUID+136),(51,@GUID+137),(51,@GUID+138),(51,@GUID+139),(51,@GUID+140),
+(51,@GUID+141),(51,@GUID+142),(51,@GUID+143),(51,@GUID+144),(51,@GUID+145),
+(51,@GUID+146);
+-- Gameobject spawns
+SET @GUID := 76237;
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @GUID AND @GUID+313;
+INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
+(@GUID,195066,1,1,1,-984.309,-72.3299,20.9918,0,0,0,0,1,180,100,1),
+(@GUID+1,195069,0,1,1,-9330.98,181.918,62.7222,2.54818,0,0,0,1,180,100,1),
+(@GUID+2,182807,530,1,1,9672.12,-7346.44,11.9311,-0.244346,0,0,0.121869,-0.992546,180,100,1),
+(@GUID+3,195307,0,1,1,1780.5,269.08,59.8237,3.00195,0,0,0,1,180,100,1),
+(@GUID+4,195090,0,1,1,-5155.34,-862.141,507.655,4.22449,0,0,0.856962,-0.515379,300,0,1),
+(@GUID+5,195307,1,1,1,10054.2,2129.03,1329.66,-2.30383,0,0,0,1,180,100,1),
+(@GUID+6,195307,0,1,1,1792.51,241.774,60.5867,-2.30383,0,0,0,1,180,100,1),
+(@GUID+7,195307,1,1,1,10053.8,2127.78,1329.67,-2.30383,0,0,0,1,180,100,1),
+(@GUID+8,195307,1,1,1,10049.7,2113.11,1329.68,-2.79252,0,0,0,1,180,100,1),
+(@GUID+9,195087,0,1,1,-9333.99,181.712,61.5651,4.14018,0,0,0.87792,-0.478807,300,0,1),
+(@GUID+10,195087,1,1,1,1177.92,-4467.1,21.3191,1.02726,0,0,0.49134,0.870968,300,0,1),
+(@GUID+11,195067,1,1,1,1179.08,-4469.52,21.5266,1.0194,0,0,0.487916,0.87289,300,0,1),
+(@GUID+12,195067,1,1,1,1174.65,-4455.39,21.539,1.12543,0,0,0.533485,0.845809,300,0,1),
+(@GUID+13,195067,1,1,1,1186.5,-4461.7,21.136,1.23932,0,0,0.580757,0.814077,300,0,1),
+(@GUID+14,195087,571,1,65535,5851.71,759.739,640.824,0.177921,0,0,0.088843,0.996046,300,0,1),
+(@GUID+15,195087,0,1,1,1831.24,213.873,60.339,4.59476,0,0,0.747449,-0.66432,300,0,1),
+(@GUID+16,195087,530,1,1,9410.84,-6856.04,14.8094,5.30187,0,0,0.471204,-0.882024,300,0,1),
+(@GUID+17,195087,1,1,1,10051.5,2108.48,1329.65,5.63954,0,0,0.316296,-0.948661,300,0,1),
+(@GUID+18,195087,1,1,1,-978.502,-68.0701,19.8816,2.48265,0,0,0.946214,0.323543,300,0,1),
+(@GUID+19,195087,530,1,1,-4320.88,-12435.8,17.794,2.95615,0,0,0.995704,0.0925905,300,0,1),
+(@GUID+20,195087,530,1,1,-1795.3,4913.74,-21.6189,5.79582,0,0,0.241278,-0.970456,300,0,1),
+(@GUID+21,195087,0,1,1,-5167.15,-868.97,506.692,3.55298,0,0,0.97892,-0.204245,300,0,1),
+(@GUID+22,195067,571,1,65535,5842.99,757.208,641.032,3.23312,0,0,0.998953,-0.0457468,300,0,1),
+(@GUID+23,195067,571,1,65535,5848.67,757.932,640.765,0.331072,0,0,0.164781,0.98633,300,0,1),
+(@GUID+24,195067,571,1,65535,5826.98,742.899,642.182,0.40961,0,0,0.203376,0.979101,300,0,1),
+(@GUID+25,195067,571,1,65535,5833.05,758.772,640.632,6.22548,0,0,0.0288469,-0.999584,300,0,1),
+(@GUID+26,195067,571,1,65535,5838.49,754.714,640.99,5.00419,0,0,0.596791,-0.802397,300,0,1),
+(@GUID+27,195067,0,1,1,-9325.85,176.738,61.6842,4.03415,0,0,0.902059,-0.431613,300,0,1),
+(@GUID+28,195067,0,1,1,-9339.4,177.75,61.5578,2.84035,0,0,0.988678,0.150053,300,0,1),
+(@GUID+29,195067,0,1,1,-9341.6,186.007,61.5588,0.590182,0,0,0.290827,0.956776,300,0,1),
+(@GUID+30,195067,0,1,1,-9349.4,172.027,61.5583,3.72,0,0,0.958472,-0.285187,300,0,1),
+(@GUID+31,195067,0,1,1,-9333.49,166.771,61.5731,4.50147,0,0,0.777611,-0.628745,300,0,1),
+(@GUID+32,195067,0,1,1,1838.15,218.056,60.1301,6.04382,0,0,0.119397,-0.992847,300,0,1),
+(@GUID+33,195067,0,1,1,1824.56,214.048,60.2184,2.55272,0,0,0.956966,0.290199,300,0,1),
+(@GUID+34,195067,0,1,1,1826.85,224.597,60.3819,1.15864,0,0,0.547456,0.836835,300,0,1),
+(@GUID+35,195067,0,1,1,1834.25,227.476,60.3832,0.0394494,0,0,0.0197234,0.999805,300,0,1),
+(@GUID+36,195067,530,1,1,9408.5,-6861.43,14.8097,5.18014,0,0,0.523987,-0.851727,300,0,1),
+(@GUID+37,195067,530,1,1,9414.83,-6847.96,15.2124,0.302815,0,0,0.15083,0.98856,300,0,1),
+(@GUID+38,195067,530,1,1,9406.18,-6848.78,15.7346,4.10414,0,0,0.886406,-0.462909,300,0,1),
+(@GUID+39,195067,1,1,1,10040.1,2118.35,1329.71,6.16969,0,0,0.0567171,-0.99839,300,0,1),
+(@GUID+40,195067,1,1,1,10054.5,2128.79,1329.66,0.15354,0,0,0.0766945,0.997055,300,0,1),
+(@GUID+41,195067,1,1,1,10064.3,2124.92,1329.66,5.938,0,0,0.171738,-0.985143,300,0,1),
+(@GUID+42,195067,1,1,1,10048.2,2118.42,1329.87,6.00475,0,0,0.138768,-0.990325,300,0,1),
+(@GUID+43,195067,1,1,1,-981.572,-70.544,20.3174,2.24703,0,0,0.901626,0.432516,300,0,1),
+(@GUID+44,195067,1,1,1,-982.861,-78.1374,20.4409,2.76147,0,0,0.981992,0.188921,300,0,1),
+(@GUID+45,195067,1,1,1,-979.741,-82.5911,20.4482,2.84001,0,0,0.988652,0.150222,300,0,1),
+(@GUID+46,195067,1,1,1,-985.891,-59.0171,27.1512,2.98923,0,0,0.9971,0.0761065,300,0,1),
+(@GUID+47,195067,530,1,1,-4330.57,-12441.9,18.6116,1.10261,0,0,0.523798,0.851843,300,0,1),
+(@GUID+48,195067,530,1,1,-4331.79,-12444.3,18.6116,1.10261,0,0,0.523798,0.851843,300,0,1),
+(@GUID+49,195067,530,1,1,-4320.15,-12431.6,18.6801,3.86328,0,0,0.935599,-0.353065,300,0,1),
+(@GUID+50,195067,530,1,1,-4318.44,-12430.1,18.6801,3.84757,0,0,0.938343,-0.345706,300,0,1),
+(@GUID+51,195067,530,1,1,-4322.19,-12440.2,17.4944,3.02291,0,0,0.99824,0.0593089,300,0,1),
+(@GUID+52,195067,530,1,1,-4323.07,-12450.7,16.8485,5.33983,0,0,0.454382,-0.890807,300,0,1),
+(@GUID+53,195067,530,1,1,-4311.45,-12442.3,17.3037,0.772738,0,0,0.376827,0.926284,300,0,1),
+(@GUID+54,195067,530,1,1,-1791.77,4917.77,-21.025,1.42901,0,0,0.655244,0.755417,300,0,1),
+(@GUID+55,195067,530,1,1,-1789.47,4922.28,-21.0992,1.01275,0,0,0.48501,0.874508,300,0,1),
+(@GUID+56,195067,530,1,1,-1784.66,4926.07,-21.1388,0.521876,0,0,0.257987,0.966148,300,0,1),
+(@GUID+57,195067,530,1,1,-1799.03,4911.63,-21.3716,4.9201,0,0,0.62999,-0.776603,300,0,1),
+(@GUID+58,195067,530,1,1,-1811.06,4914.83,-21.8399,3.80091,0,0,0.946153,-0.32372,300,0,1),
+(@GUID+59,195067,530,1,1,-1804.87,4922.87,-21.9285,0.341232,0,0,0.169789,0.98548,300,0,1),
+(@GUID+60,195067,0,1,1,-5157.02,-875.2,507.717,5.59108,0,0,0.339185,-0.94072,300,0,1),
+(@GUID+61,195067,0,1,1,-5162.53,-877.151,507.269,3.8475,0,0,0.938356,-0.345672,300,0,1),
+(@GUID+62,195067,0,1,1,-5168.31,-872.67,506.918,4.71929,0,0,0.704662,-0.709544,300,0,1),
+(@GUID+63,195067,0,1,1,-5159.9,-868.605,507.293,4.7782,0,0,0.683461,-0.729987,300,0,1),
+(@GUID+64,195067,0,1,1,-5153.67,-856.503,508.317,1.38528,0,0,0.63857,0.769564,300,0,1),
+(@GUID+65,195090,0,1,1,-5153.07,-855.424,508.469,2.04894,0,0,0.854438,0.519553,300,0,1),
+(@GUID+66,195090,1,1,1,1187.46,-4465.48,21.3276,5.08777,0,0,0.562749,-0.826628,300,0,1),
+(@GUID+67,195090,1,1,1,1184.69,-4469.05,21.3202,3.92145,0,0,0.924935,-0.380125,300,0,1),
+(@GUID+68,195090,1,1,1,1178.71,-4465.61,21.3464,2.50381,0,0,0.949584,0.313514,300,0,1),
+(@GUID+69,195090,1,1,1,1173.45,-4463.9,21.2566,2.95934,0,0,0.995851,0.0909994,300,0,1),
+(@GUID+70,195090,1,1,1,1174.56,-4459.12,21.5159,1.31393,0,0,0.610717,0.791849,300,0,1),
+(@GUID+71,195090,1,1,1,1178.38,-4459.37,21.4634,6.03418,0,0,0.124183,-0.992259,300,0,1),
+(@GUID+72,195090,1,1,1,1183.11,-4462.38,21.173,0.457849,0,0,0.22693,0.973911,300,0,1),
+(@GUID+73,195090,0,1,1,-9319.35,175.184,61.6322,5.94267,0,0,0.169436,-0.985541,300,0,1),
+(@GUID+74,195090,0,1,1,-9321.89,177.068,61.6465,5.64422,0,0,0.314075,-0.949398,300,0,1),
+(@GUID+75,195090,0,1,1,-9324.42,178.952,61.9249,5.64422,0,0,0.314075,-0.949398,300,0,1),
+(@GUID+76,195090,0,1,1,-9327.35,181.579,61.6579,5.76203,0,0,0.257639,-0.966241,300,0,1),
+(@GUID+77,195090,0,1,1,-9329.68,183.137,61.6151,5.69527,0,0,0.289742,-0.957105,300,0,1),
+(@GUID+78,195090,0,1,1,-9332.5,185.014,61.5442,5.69527,0,0,0.289742,-0.957105,300,0,1),
+(@GUID+79,195090,0,1,1,-9336.77,184.723,61.5328,1.08891,0,0,0.517952,0.85541,300,0,1),
+(@GUID+80,195090,0,1,1,-9340.96,187.22,61.5554,0.865071,0,0,0.419174,0.907906,300,0,1),
+(@GUID+81,195090,0,1,1,-9347.4,178.086,61.558,4.29726,0,0,0.837647,-0.546212,300,0,1),
+(@GUID+82,195090,0,1,1,-9349.37,175.371,61.7816,4.06557,0,0,0.895168,-0.445729,300,0,1),
+(@GUID+83,195090,0,1,1,-9351.22,172.514,61.5657,4.2737,0,0,0.844024,-0.536305,300,0,1),
+(@GUID+84,195090,0,1,1,-9352.79,169.484,61.5833,4.19909,0,0,0.86344,-0.504452,300,0,1),
+(@GUID+85,195090,0,1,1,-9328.38,163.069,62.1162,5.656,0,0,0.308476,-0.951232,300,0,1),
+(@GUID+86,195090,0,1,1,-9324.64,167.678,61.5815,2.66756,0,0,0.972043,0.234801,300,0,1),
+(@GUID+87,195090,0,1,1,-9327.99,170.234,61.6257,2.49478,0,0,0.948158,0.317799,300,0,1),
+(@GUID+88,195090,0,1,1,-9330.76,172.21,61.6444,2.42016,0,0,0.935645,0.352943,300,0,1),
+(@GUID+89,195090,0,1,1,-9333.31,174.06,61.6475,2.60866,0,0,0.964707,0.263324,300,0,1),
+(@GUID+90,195090,0,1,1,-9335.44,175.283,61.6076,2.62044,0,0,0.966242,0.257637,300,0,1),
+(@GUID+91,195090,0,1,1,-9329.47,179.114,61.7075,1.27741,0,0,0.596156,0.802868,300,0,1),
+(@GUID+92,195090,571,1,65535,5853.87,762.992,641.211,6.18229,0,0,0.0504241,-0.998728,300,0,1),
+(@GUID+93,195090,571,1,65535,5855.51,765.516,641.483,0.212483,0,0,0.106042,0.994362,300,0,1),
+(@GUID+94,195090,571,1,65535,5853.92,767.065,641.349,0.656233,0,0,0.322261,0.946651,300,0,1),
+(@GUID+95,195090,571,1,65535,5851.19,767.209,640.997,0.597328,0,0,0.294244,0.95573,300,0,1),
+(@GUID+96,195090,571,1,65535,5851.3,769.624,640.886,1.09213,0,0,0.519328,0.854575,300,0,1),
+(@GUID+97,195090,571,1,65535,5849.36,771.084,640.573,1.31204,0,0,0.609968,0.792426,300,0,1),
+(@GUID+98,195090,571,1,65535,5843.35,763.212,640.647,3.49938,0,0,0.984042,-0.177939,300,0,1),
+(@GUID+99,195090,571,1,65535,5832.79,754.608,640.935,4.05308,0,0,0.897934,-0.440131,300,0,1),
+(@GUID+100,195090,571,1,65535,5828.7,749.25,641.164,4.17874,0,0,0.868526,-0.495643,300,0,1),
+(@GUID+101,195090,571,1,65535,5835.35,751.259,641.084,0.400976,0,0,0.199148,0.97997,300,0,1),
+(@GUID+102,195090,571,1,65535,5827.74,742.946,642.332,0.687646,0,0,0.337089,0.941473,300,0,1),
+(@GUID+103,195090,571,1,65535,5809.37,743.705,640.998,3.12238,0,0,0.999954,0.00960593,300,0,1),
+(@GUID+104,195090,571,1,65535,5822.29,758.23,640.365,1.61049,0,0,0.721,0.692935,300,0,1),
+(@GUID+105,195090,571,1,65535,5811.39,757.19,640.324,2.50977,0,0,0.950514,0.310683,300,0,1),
+(@GUID+106,195090,571,1,65535,5846.75,758.117,640.939,6.14616,0,0,0.0684576,-0.997654,300,0,1),
+(@GUID+107,195090,0,1,1,1830.63,211.165,60.3098,4.80682,0,0,0.672944,-0.739693,300,0,1),
+(@GUID+108,195090,0,1,1,1840.85,213.082,61.3837,5.26628,0,0,0.486826,-0.873499,300,0,1),
+(@GUID+109,195090,0,1,1,1841.8,219.772,60.7409,1.28038,0,0,0.597349,0.801981,300,0,1),
+(@GUID+110,195090,0,1,1,1823.03,229.093,60.4377,2.72944,0,0,0.978842,0.204619,300,0,1),
+(@GUID+111,195090,0,1,1,1827.77,222.032,60.6016,4.97961,0,0,0.60661,-0.795,300,0,1),
+(@GUID+112,195090,0,1,1,1827.52,217.594,60.5054,4.65367,0,0,0.72756,-0.686044,300,0,1),
+(@GUID+113,195090,0,1,1,1832.1,217.303,60.342,6.21268,0,0,0.0352447,-0.999379,300,0,1),
+(@GUID+114,195090,0,1,1,1834.79,220.5,60.2436,1.11937,0,0,0.530921,0.847421,300,0,1),
+(@GUID+115,195090,0,1,1,1814.67,217.597,60.2211,3.50306,0,0,0.983712,-0.17975,300,0,1),
+(@GUID+116,195090,530,1,1,9407.83,-6850.31,15.4148,6.05585,0,0,0.113421,-0.993547,300,0,1),
+(@GUID+117,195090,530,1,1,9412.52,-6848.4,15.3197,0.703365,0,0,0.344478,0.938794,300,0,1),
+(@GUID+118,195090,530,1,1,9414.82,-6851.42,15.0296,5.58069,0,0,0.344071,-0.938944,300,0,1),
+(@GUID+119,195090,530,1,1,9410.57,-6853.66,14.9713,3.57007,0,0,0.977139,-0.212602,300,0,1),
+(@GUID+120,195090,530,1,1,9405.72,-6861.46,14.9588,4.79136,0,0,0.678642,-0.734469,300,0,1),
+(@GUID+121,195090,530,1,1,9412.52,-6861.73,14.6487,5.88699,0,0,0.196805,-0.980443,300,0,1),
+(@GUID+122,195090,530,1,1,9416.75,-6856.38,14.8519,5.80845,0,0,0.235147,-0.97196,300,0,1),
+(@GUID+123,195090,530,1,1,9418.64,-6852.18,14.9737,5.72205,0,0,0.2769,-0.960899,300,0,1),
+(@GUID+124,195090,1,1,1,10062.7,2128.29,1329.77,1.94816,0,0,0.827186,0.561928,300,0,1),
+(@GUID+125,195090,1,1,1,10066.2,2127.23,1329.66,4.62637,0,0,0.736856,-0.67605,300,0,1),
+(@GUID+126,195090,1,1,1,10065.9,2121.66,1330.2,4.78738,0,0,0.680104,-0.733115,300,0,1),
+(@GUID+127,195090,1,1,1,10064.8,2117.6,1330.03,4.56746,0,0,0.756445,-0.654057,300,0,1),
+(@GUID+128,195090,1,1,1,10063.4,2113.77,1330.06,4.01769,0,0,0.905582,-0.424171,300,0,1),
+(@GUID+129,195090,1,1,1,10054.1,2110.63,1329.93,3.8449,0,0,0.938805,-0.344449,300,0,1),
+(@GUID+130,195090,1,1,1,10049.1,2112.98,1330.03,2.00314,0,0,0.842318,0.538981,300,0,1),
+(@GUID+131,195090,1,1,1,10046.4,2109.25,1329.96,4.10408,0,0,0.88642,-0.462882,300,0,1),
+(@GUID+132,195090,1,1,1,10053.1,2126.22,1330.07,1.08422,0,0,0.515946,0.856621,300,0,1),
+(@GUID+133,195090,1,1,1,10054,2130.84,1330.02,1.00961,0,0,0.483637,0.875269,300,0,1),
+(@GUID+134,195090,1,1,1,10060.3,2124.09,1330.01,4.74418,0,0,0.695778,-0.718257,300,0,1),
+(@GUID+135,195090,1,1,1,10059.9,2135.05,1330.75,1.53583,0,0,0.694637,0.719361,300,0,1),
+(@GUID+136,195090,1,1,1,10066.4,2132.16,1332.09,2.49402,0,0,0.948037,0.31816,300,0,1),
+(@GUID+137,195090,1,1,1,10052.2,2104.91,1330.92,3.28727,0,0,0.997349,-0.0727721,300,0,1),
+(@GUID+138,195090,1,1,1,-988.152,-59.1082,27.5232,5.15851,0,0,0.533167,-0.84601,300,0,1),
+(@GUID+139,195090,1,1,1,-977.555,-56.5706,26.7082,5.00143,0,0,0.5979,-0.801571,300,0,1),
+(@GUID+140,195090,1,1,1,-979.763,-72.5159,19.6852,3.24999,0,0,0.998531,-0.0541744,300,0,1),
+(@GUID+141,195090,1,1,1,-979.359,-76.7106,19.6107,3.13611,0,0,0.999996,0.00274046,300,0,1),
+(@GUID+142,195090,1,1,1,-976.6,-74.4185,18.8465,3.47776,0,0,0.985907,-0.167293,300,0,1),
+(@GUID+143,195090,1,1,1,-981.652,-79.1964,20.249,3.91758,0,0,0.925669,-0.378334,300,0,1),
+(@GUID+144,195090,1,1,1,-985.178,-75.001,21.0173,3.12433,0,0,0.999963,0.00863036,300,0,1),
+(@GUID+145,195090,1,1,1,-981.153,-66.7737,20.9042,2.28788,0,0,0.910272,0.41401,300,0,1),
+(@GUID+146,195090,530,1,1,-4319.45,-12430.9,18.6806,2.09613,0,0,0.866459,0.499248,300,0,1),
+(@GUID+147,195090,530,1,1,-4320.99,-12432.3,18.6806,3.9536,0,0,0.918707,-0.394941,300,0,1),
+(@GUID+148,195090,530,1,1,-4331.11,-12443.6,18.6114,2.34746,0,0,0.922199,0.386715,300,0,1),
+(@GUID+149,195090,530,1,1,-4325.9,-12451.6,16.6623,0.839496,0,0,0.40753,0.913192,300,0,1),
+(@GUID+150,195090,530,1,1,-4326.17,-12455.4,16.9729,0.509629,0,0,0.252066,0.96771,300,0,1),
+(@GUID+151,195090,530,1,1,-4320.52,-12456.9,17.3025,0.721686,0,0,0.353063,0.9356,300,0,1),
+(@GUID+152,195090,530,1,1,-4321.35,-12454.2,17.2013,0.914109,0,0,0.441307,0.897356,300,0,1),
+(@GUID+153,195090,530,1,1,-4320.01,-12449.5,17.0817,0.800226,0,0,0.389522,0.921017,300,0,1),
+(@GUID+154,195090,530,1,1,-4314.66,-12447.8,17.3873,1.00836,0,0,0.483088,0.875572,300,0,1),
+(@GUID+155,195090,530,1,1,-4311.21,-12446.3,17.4275,1.0869,0,0,0.51709,0.855931,300,0,1),
+(@GUID+156,195090,530,1,1,-4316.32,-12444.3,17.1922,0.88662,0,0,0.428932,0.903337,300,0,1),
+(@GUID+157,195090,530,1,1,-4310.89,-12440.6,17.2147,1.05941,0,0,0.505278,0.862957,300,0,1),
+(@GUID+158,195090,530,1,1,-1801.49,4910.65,-21.3903,5.6034,0,0,0.333386,-0.94279,300,0,1),
+(@GUID+159,195090,530,1,1,-1796.61,4911.2,-21.382,0.113465,0,0,0.0567022,0.998391,300,0,1),
+(@GUID+160,195090,530,1,1,-1792.12,4916.53,-21.0244,1.24837,0,0,0.584434,0.811441,300,0,1),
+(@GUID+161,195090,530,1,1,-1788.82,4923.25,-21.0863,1.01275,0,0,0.485009,0.874509,300,0,1),
+(@GUID+162,195090,530,1,1,-1786.08,4925.63,-21.1386,0.243056,0,0,0.121229,0.992625,300,0,1),
+(@GUID+163,195090,530,1,1,-1806.29,4914.21,-22.0573,3.90301,0,0,0.928401,-0.371579,300,0,1),
+(@GUID+164,195090,530,1,1,-1814.82,4912.82,-21.4843,3.71452,0,0,0.95925,-0.28256,300,0,1),
+(@GUID+165,195090,530,1,1,-1808.63,4922.35,-21.8564,1.05594,0,0,0.503782,0.863831,300,0,1),
+(@GUID+166,195090,530,1,1,-1810.52,4926.39,-21.734,1.05202,0,0,0.502085,0.864818,300,0,1),
+(@GUID+167,195090,530,1,1,-1812.06,4920.92,-21.9526,0.945987,0,0,0.455553,0.890209,300,0,1),
+(@GUID+168,195090,530,1,1,-1795.43,4927.2,-22.1493,0.270544,0,0,0.13486,0.990865,300,0,1),
+(@GUID+169,195090,530,1,1,-1796.32,4931.29,-22.3174,0.129173,0,0,0.0645415,0.997915,300,0,1),
+(@GUID+170,195090,530,1,1,-1799.12,4928.21,-22.2813,0.707226,0,0,0.346289,0.938128,300,0,1),
+(@GUID+171,195090,530,1,1,-1783.82,4935.44,-22.5892,5.4471,0,0,0.405971,-0.913886,300,0,1),
+(@GUID+172,195090,530,1,1,-1829.25,4920.79,-21.671,4.42216,0,0,0.801927,-0.597422,300,0,1),
+(@GUID+173,195090,530,1,1,-1835.24,4924,-21.3785,4.00983,0,0,0.907242,-0.420609,300,0,1),
+(@GUID+174,195090,530,1,1,-1798.26,4902.69,-21.4127,5.45889,0,0,0.400579,-0.916262,300,0,1),
+(@GUID+175,195090,530,1,1,-1792.22,4911.42,-21.4162,5.16829,0,0,0.529021,-0.848609,300,0,1),
+(@GUID+176,195090,0,1,1,-5146.92,-846.795,509.814,4.73578,0,0,0.698788,-0.715329,300,0,1),
+(@GUID+177,195090,0,1,1,-5148.88,-848.813,510.175,3.96217,0,0,0.917006,-0.398873,300,0,1),
+(@GUID+178,195090,0,1,1,-5154.23,-851.792,509.604,3.80116,0,0,0.946112,-0.323839,300,0,1),
+(@GUID+179,195090,0,1,1,-5151.12,-850.78,510.203,2.82334,0,0,0.987366,0.158455,300,0,1),
+(@GUID+180,195090,0,1,1,-5157.25,-865.505,507.488,4.03286,0,0,0.902338,-0.431029,300,0,1),
+(@GUID+181,195090,0,1,1,-5162.21,-871.414,507.192,3.93861,0,0,0.921641,-0.388044,300,0,1),
+(@GUID+182,195090,0,1,1,-5158.06,-875.801,507.508,4.08391,0,0,0.891043,-0.453918,300,0,1),
+(@GUID+183,195090,0,1,1,-5163.62,-875.984,507.254,4.18994,0,0,0.865739,-0.500496,300,0,1),
+(@GUID+184,195090,0,1,1,-5166.94,-874.019,507.083,2.13612,0,0,0.876268,0.481825,300,0,1),
+(@GUID+185,195090,0,1,1,-5166.83,-871.411,506.884,1.14652,0,0,0.542373,0.840138,300,0,1),
+(@GUID+186,195090,0,1,1,-5164.94,-867.229,506.913,1.14652,0,0,0.542373,0.840138,300,0,1),
+(@GUID+187,195090,0,1,1,-5167.77,-861.231,506.701,0.420025,0,0,0.208472,0.978028,300,0,1),
+(@GUID+188,195090,0,1,1,-5165.58,-860.107,506.446,0.475003,0,0,0.235275,0.971929,300,0,1),
+(@GUID+189,195090,0,1,1,-5163.08,-858.823,506.659,0.475003,0,0,0.235275,0.971929,300,0,1),
+(@GUID+190,195090,0,1,1,-5160.59,-857.539,506.642,0.475003,0,0,0.235275,0.971929,300,0,1),
+(@GUID+191,195090,0,1,1,-5157.78,-856.092,507.248,0.475003,0,0,0.235275,0.971929,300,0,1),
+(@GUID+192,195307,1,1,1,10054.6,2131.96,1329.66,-2.75761,0,0,0,1,180,100,1),
+(@GUID+193,195307,1,1,1,10062.8,2129.42,1329.66,-2.30383,0,0,0,1,180,100,1),
+(@GUID+194,195307,0,1,1,-5159.66,-869.708,507.315,3.00195,0,0,0,1,180,100,1),
+(@GUID+195,195307,0,1,1,-5160.8,-869.684,507.251,-2.30383,0,0,0,1,180,100,1),
+(@GUID+196,195307,0,1,1,-9328.34,171.941,62.8343,3.00195,0,0,0,1,180,100,1),
+(@GUID+197,195307,0,1,1,-9351.13,177.262,62.7149,-2.30383,0,0,0,1,180,100,1),
+(@GUID+198,195307,1,1,1,1171.94,-4462.66,21.3171,3.00195,0,0,0,1,180,100,1),
+(@GUID+199,195307,1,1,1,1177.22,-4464.5,22.4542,-2.30383,0,0,0,1,180,100,1),
+(@GUID+200,195307,1,1,1,-984.535,-75.8281,20.8642,3.00195,0,0,0,1,180,100,1),
+(@GUID+201,195307,1,1,1,-979.977,-71.342,20.7172,-2.30383,0,0,0,1,180,100,1),
+(@GUID+202,195068,0,1,1,1780.14,269.759,59.8725,0,0,0,0,1,180,100,1),
+(@GUID+203,195068,0,1,1,1777.31,220.538,59.5768,0,0,0,0,1,180,100,1),
+(@GUID+204,195068,1,1,1,10053.6,2109.59,1329.65,0,0,0,0,1,180,100,1),
+(@GUID+205,195068,1,1,1,10065,2118.72,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+206,195068,1,1,1,10053.4,2128.55,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+207,195068,0,1,1,-5160.02,-869.03,507.29,0,0,0,0,1,180,100,1),
+(@GUID+208,195068,0,1,1,-5159.92,-870.566,507.307,0,0,0,0,1,180,100,1),
+(@GUID+209,195068,0,1,1,-9328.37,170.188,61.6268,0,0,0,0,1,180,100,1),
+(@GUID+210,195068,0,1,1,-9327.13,181.863,61.6551,0,0,0,0,1,180,100,1),
+(@GUID+211,195068,1,1,1,1180.13,-4457.48,21.4889,0,0,0,0,1,180,100,1),
+(@GUID+212,195068,1,1,1,1186.07,-4471.15,21.3707,0,0,0,0,1,180,100,1),
+(@GUID+213,195068,1,1,1,1172.28,-4463.25,21.2866,0,0,0,0,1,180,100,1),
+(@GUID+214,195068,1,1,1,-983.009,-70.0955,20.7835,0,0,0,0,1,180,100,1),
+(@GUID+215,195068,1,1,1,-984.639,-76.1319,20.8549,0,0,0,0,1,180,100,1),
+(@GUID+216,195068,1,1,1,-984.92,-75.1719,20.9388,0,0,0,0,1,180,100,1),
+(@GUID+217,195067,0,1,1,1778.85,260.073,59.498,0,0,0,0,1,180,100,1),
+(@GUID+218,195067,1,1,1,10054.1,2124.82,1329.7,0,0,0,0,1,180,100,1),
+(@GUID+219,195067,1,1,1,10047.4,2110.17,1329.65,0,0,0,0,1,180,100,1),
+(@GUID+220,195067,1,1,1,10059.8,2122.52,1329.67,0,0,0,0,1,180,100,1),
+(@GUID+221,195067,0,1,1,-5161.69,-869.67,507.202,0,0,0,0,1,180,100,1),
+(@GUID+222,195067,0,1,1,-9352.43,172.927,61.5748,0,0,0,0,1,180,100,1),
+(@GUID+223,195067,1,1,1,1175.47,-4455.32,21.5219,0,0,0,0,1,180,100,1),
+(@GUID+224,195067,1,1,1,1185.36,-4460.86,21.102,0,0,0,0,1,180,100,1),
+(@GUID+225,195067,1,1,1,1179.27,-4468.45,21.2471,0,0,0,0,1,180,100,1),
+(@GUID+226,195067,1,1,1,-983.566,-73.3247,20.6424,0,0,0,0,1,180,100,1),
+(@GUID+227,195067,1,1,1,-980.892,-79.2656,20.1022,0,0,0,0,1,180,100,1),
+(@GUID+228,195063,1,1,1,1191.1,-4465.38,21.489,0,0,0,0,1,180,100,1),
+(@GUID+229,195063,1,1,1,1176.06,-4456.3,21.5271,0,0,0,0,1,180,100,1),
+(@GUID+230,195063,1,1,1,1185.15,-4469.57,21.3318,0,0,0,0,1,180,100,1),
+(@GUID+231,195063,0,1,1,1776.75,250.743,59.8824,0,0,0,0,1,180,100,1),
+(@GUID+232,195063,0,1,1,1782.6,260.549,59.42,0,0,0,0,1,180,100,1),
+(@GUID+233,195063,0,1,1,1776.35,223.174,59.5078,0,0,0,0,1,180,100,1),
+(@GUID+234,195063,0,1,1,1781.6,252.318,59.5262,0,0,0,0,1,180,100,1),
+(@GUID+235,195063,0,1,1,1779.51,268.924,59.893,0,0,0,0,1,180,100,1),
+(@GUID+236,195063,1,1,1,10066.4,2120.48,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+237,195063,1,1,1,10046.7,2110.08,1329.65,0,0,0,0,1,180,100,1),
+(@GUID+238,195063,1,1,1,10050.3,2118.57,1331.05,0,0,0,0,1,180,100,1),
+(@GUID+239,195063,1,1,1,10063.6,2112.16,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+240,195063,1,1,1,10055,2111.28,1329.65,0,0,0,0,1,180,100,1),
+(@GUID+241,195063,0,1,1,-5158.94,-869.955,507.357,0,0,0,0,1,180,100,1),
+(@GUID+242,195063,0,1,1,-5160.05,-871.753,507.315,0,0,0,0,1,180,100,1),
+(@GUID+243,195063,0,1,1,-5161.04,-868.969,507.233,0,0,0,0,1,180,100,1),
+(@GUID+244,195063,0,1,1,-5149.86,-882.234,508.225,0,0,0,0,1,180,100,1),
+(@GUID+245,195063,0,1,1,-5162.1,-870.601,507.185,0,0,0,0,1,180,100,1),
+(@GUID+246,195063,0,1,1,-5149.59,-854.429,509.499,0,0,0,0,1,180,100,1),
+(@GUID+247,195063,0,1,1,-9323.89,179.863,64.6421,0,0,0,0,1,180,100,1),
+(@GUID+248,195063,0,1,1,-9330.93,172.332,61.6442,0,0,0,0,1,180,100,1),
+(@GUID+249,195063,0,1,1,-9331.52,182.493,61.6,0,0,0,0,1,180,100,1),
+(@GUID+250,195063,0,1,1,-9334.96,176.014,63.3874,0,0,0,0,1,180,100,1),
+(@GUID+251,195063,0,1,1,-9340.66,187.524,61.5517,0,0,0,0,1,180,100,1),
+(@GUID+252,195063,1,1,1,1176.77,-4463.59,22.4735,0,0,0,0,1,180,100,1),
+(@GUID+253,195063,1,1,1,1177.63,-4467.96,21.307,0,0,0,0,1,180,100,1),
+(@GUID+254,195063,1,1,1,1174.72,-4455.49,21.5368,0,0,0,0,1,180,100,1),
+(@GUID+255,195063,1,1,1,-980.41,-71.3438,20.7185,0,0,0,0,1,180,100,1),
+(@GUID+256,195063,1,1,1,-983.493,-72.6302,20.6698,0,0,0,0,1,180,100,1),
+(@GUID+257,195063,1,1,1,-982.13,-68.0764,20.8836,0,0,0,0,1,180,100,1),
+(@GUID+258,195063,1,1,1,-984.149,-77.3333,20.7527,0,0,0,0,1,180,100,1),
+(@GUID+259,195063,1,1,1,-980.212,-80.2552,20.0676,0,0,0,0,1,180,100,1),
+(@GUID+260,182807,1,1,1,1184.02,-4469.83,21.2852,0,0,0,0,1,180,100,1),
+(@GUID+261,182807,530,1,1,9672.12,-7346.44,11.9311,-0.244346,0,0,0.121869,-0.992546,180,100,1),
+(@GUID+262,182807,0,1,1,1780.18,214.781,59.8534,0,0,0,0,1,180,100,1),
+(@GUID+263,182807,0,1,1,1780.76,215.611,59.7988,0,0,0,0,1,180,100,1),
+(@GUID+264,182807,1,1,1,10063.4,2111.85,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+265,182807,1,1,1,10062.7,2129.98,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+266,182807,1,1,1,10065.5,2118.46,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+267,182807,1,1,1,10054.8,2132.24,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+268,182807,1,1,1,10053.7,2125.31,1329.69,0,0,0,0,1,180,100,1),
+(@GUID+269,182807,0,1,1,-5161.27,-870.734,507.233,0,0,0,0,1,180,100,1),
+(@GUID+270,182807,0,1,1,-5160.73,-871.283,507.27,0,0,0,0,1,180,100,1),
+(@GUID+271,182807,0,1,1,-9326.85,170.807,62.8254,0,0,0,0,1,180,100,1),
+(@GUID+272,182807,0,1,1,-9335.46,175.405,61.6072,0,0,0,0,1,180,100,1),
+(@GUID+273,182807,1,1,1,1174.36,-4455.34,21.5514,0,0,0,0,1,180,100,1),
+(@GUID+274,182807,1,1,1,-984.738,-73.1875,20.9946,0,0,0,0,1,180,100,1),
+(@GUID+275,182807,1,1,1,-980.771,-79.8229,20.1335,0,0,0,0,1,180,100,1),
+(@GUID+276,180885,0,1,1,1805.89,217.134,60.6002,1.51844,0,0,0,1,180,100,1),
+(@GUID+277,180885,1,1,1,10050.3,2118.06,1329.94,0.750491,0,0,0,1,180,100,1),
+(@GUID+278,180885,0,1,1,-5149.52,-854.931,508.432,0.750491,0,0,0,1,180,100,1),
+(@GUID+279,180885,0,1,1,-9331.44,181.991,61.63,0.750491,0,0,0,1,180,100,1),
+(@GUID+280,180885,1,1,1,1176.85,-4464.09,21.3468,0.750491,0,0,0,1,180,100,1),
+(@GUID+281,180885,1,1,1,-980.33,-71.8455,19.5878,0.750491,0,0,0,1,180,100,1),
+(@GUID+282,195066,0,1,1,-9328.34,170.201,61.6675,0,0,0,0,1,180,100,1),
+(@GUID+283,195069,0,1,1,-9331.48,181.45,62.7343,-0.890117,0,0,0,1,180,100,1),
+(@GUID+284,195069,0,1,1,-9332.01,182.043,62.6892,-0.157079,0,0,0,1,180,100,1),
+(@GUID+285,195066,0,1,1,-9327.13,181.875,61.6549,0,0,0,0,1,180,100,1),
+(@GUID+286,195069,0,1,1,-5149.05,-855.003,509.504,2.54818,0,0,0,1,180,100,1),
+(@GUID+287,195069,0,1,1,-5149.55,-855.472,509.469,-0.890117,0,0,0,1,180,100,1),
+(@GUID+288,195069,0,1,1,-5150.07,-854.878,509.496,-0.157079,0,0,0,1,180,100,1),
+(@GUID+289,195066,0,1,1,-5159.99,-869.016,507.291,0,0,0,0,1,180,100,1),
+(@GUID+290,195066,0,1,1,-5159.91,-870.554,507.307,0,0,0,0,1,180,100,1),
+(@GUID+291,195069,1,1,1,10049.8,2118.11,1331.01,-0.157079,0,0,0,1,180,100,1),
+(@GUID+292,195069,1,1,1,10050.9,2117.89,1331.03,1.72787,0,0,0,1,180,100,1),
+(@GUID+293,195066,1,1,1,10065.1,2118.72,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+294,195066,1,1,1,10053.5,2128.55,1329.66,0,0,0,0,1,180,100,1),
+(@GUID+295,195069,1,1,1,10050.3,2117.48,1330.99,-0.890117,0,0,0,1,180,100,1),
+(@GUID+296,195066,1,1,1,10053.6,2109.59,1329.65,0,0,0,0,1,180,100,1),
+(@GUID+297,195066,0,1,1,1777.32,220.55,59.5767,0,0,0,0,1,180,100,1),
+(@GUID+298,195066,0,1,1,1780.16,269.773,59.8725,0,0,0,0,1,180,100,1),
+(@GUID+299,195069,0,1,1,1805.33,217.408,61.5327,-0.157079,0,0,0,1,180,100,1),
+(@GUID+300,195069,0,1,1,1805.86,216.814,61.5886,-0.890117,0,0,0,1,180,100,1),
+(@GUID+301,195069,0,1,1,1806.35,217.283,61.5437,2.54818,0,0,0,1,180,100,1),
+(@GUID+302,195066,1,1,1,1186.07,-4471.14,21.3708,0,0,0,0,1,180,100,1),
+(@GUID+303,195066,1,1,1,1180.13,-4457.47,21.4891,0,0,0,0,1,180,100,1),
+(@GUID+304,195069,1,1,1,1176.29,-4464.04,22.4501,-0.157079,0,0,0,1,180,100,1),
+(@GUID+305,195066,1,1,1,1172.31,-4463.23,21.2882,0,0,0,0,1,180,100,1),
+(@GUID+306,195069,1,1,1,1177.32,-4464.16,22.4611,2.54818,0,0,0,1,180,100,1),
+(@GUID+307,195069,1,1,1,1176.82,-4464.63,22.4507,-0.890117,0,0,0,1,180,100,1),
+(@GUID+308,195066,1,1,1,-984.632,-76.1215,20.8542,0,0,0,0,1,180,100,1),
+(@GUID+309,195069,1,1,1,-979.866,-71.9184,20.7017,2.54818,0,0,0,1,180,100,1),
+(@GUID+310,195066,1,1,1,-983.002,-70.0833,20.7837,0,0,0,0,1,180,100,1),
+(@GUID+311,195066,1,1,1,-984.913,-75.1597,20.9375,0,0,0,0,1,180,100,1),
+(@GUID+312,195069,1,1,1,-980.894,-71.7934,20.7099,-0.157079,0,0,0,1,180,100,1),
+(@GUID+313,195069,1,1,1,-980.365,-72.3872,20.7085,-0.890117,0,0,0,1,180,100,1);
+-- Assignment of gameobjects to event
+DELETE FROM `game_event_gameobject` WHERE `eventEntry`=51 AND `guid` BETWEEN @GUID AND @GUID+314;
+INSERT INTO `game_event_gameobject` (`eventEntry`, `guid`) VALUES
+(51,@GUID),(51,@GUID+1),(51,@GUID+2),(51,@GUID+3),(51,@GUID+4),(51,@GUID+5),(51,@GUID+6),(51,@GUID+7),(51,@GUID+8),(51,@GUID+9),(51,@GUID+10),
+(51,@GUID+11),(51,@GUID+12),(51,@GUID+13),(51,@GUID+14),(51,@GUID+15),(51,@GUID+16),(51,@GUID+17),(51,@GUID+18),(51,@GUID+19),(51,@GUID+20),
+(51,@GUID+21),(51,@GUID+22),(51,@GUID+23),(51,@GUID+24),(51,@GUID+25),(51,@GUID+26),(51,@GUID+27),(51,@GUID+28),(51,@GUID+29),(51,@GUID+30),
+(51,@GUID+31),(51,@GUID+32),(51,@GUID+33),(51,@GUID+34),(51,@GUID+35),(51,@GUID+36),(51,@GUID+37),(51,@GUID+38),(51,@GUID+39),(51,@GUID+40),
+(51,@GUID+41),(51,@GUID+42),(51,@GUID+43),(51,@GUID+44),(51,@GUID+45),(51,@GUID+46),(51,@GUID+47),(51,@GUID+48),(51,@GUID+49),(51,@GUID+50),
+(51,@GUID+51),(51,@GUID+52),(51,@GUID+53),(51,@GUID+54),(51,@GUID+55),(51,@GUID+56),(51,@GUID+57),(51,@GUID+58),(51,@GUID+59),(51,@GUID+60),
+(51,@GUID+61),(51,@GUID+62),(51,@GUID+63),(51,@GUID+64),(51,@GUID+65),(51,@GUID+66),(51,@GUID+67),(51,@GUID+68),(51,@GUID+69),(51,@GUID+70),
+(51,@GUID+71),(51,@GUID+72),(51,@GUID+73),(51,@GUID+74),(51,@GUID+75),(51,@GUID+76),(51,@GUID+77),(51,@GUID+78),(51,@GUID+79),(51,@GUID+80),
+(51,@GUID+81),(51,@GUID+82),(51,@GUID+83),(51,@GUID+84),(51,@GUID+85),(51,@GUID+86),(51,@GUID+87),(51,@GUID+88),(51,@GUID+89),(51,@GUID+90),
+(51,@GUID+91),(51,@GUID+92),(51,@GUID+93),(51,@GUID+94),(51,@GUID+95),(51,@GUID+96),(51,@GUID+97),(51,@GUID+98),(51,@GUID+99),(51,@GUID+100),
+(51,@GUID+101),(51,@GUID+102),(51,@GUID+103),(51,@GUID+104),(51,@GUID+105),(51,@GUID+106),(51,@GUID+107),(51,@GUID+108),(51,@GUID+109),(51,@GUID+110),
+(51,@GUID+111),(51,@GUID+112),(51,@GUID+113),(51,@GUID+114),(51,@GUID+115),(51,@GUID+116),(51,@GUID+117),(51,@GUID+118),(51,@GUID+119),(51,@GUID+120),
+(51,@GUID+121),(51,@GUID+122),(51,@GUID+123),(51,@GUID+124),(51,@GUID+125),(51,@GUID+126),(51,@GUID+127),(51,@GUID+128),(51,@GUID+129),(51,@GUID+130),
+(51,@GUID+131),(51,@GUID+132),(51,@GUID+133),(51,@GUID+134),(51,@GUID+135),(51,@GUID+136),(51,@GUID+137),(51,@GUID+138),(51,@GUID+139),(51,@GUID+140),
+(51,@GUID+141),(51,@GUID+142),(51,@GUID+143),(51,@GUID+144),(51,@GUID+145),(51,@GUID+146),(51,@GUID+147),(51,@GUID+148),(51,@GUID+149),(51,@GUID+150),
+(51,@GUID+151),(51,@GUID+152),(51,@GUID+153),(51,@GUID+154),(51,@GUID+155),(51,@GUID+156),(51,@GUID+157),(51,@GUID+158),(51,@GUID+159),(51,@GUID+160),
+(51,@GUID+161),(51,@GUID+162),(51,@GUID+163),(51,@GUID+164),(51,@GUID+165),(51,@GUID+166),(51,@GUID+167),(51,@GUID+168),(51,@GUID+169),(51,@GUID+170),
+(51,@GUID+171),(51,@GUID+172),(51,@GUID+173),(51,@GUID+174),(51,@GUID+175),(51,@GUID+176),(51,@GUID+177),(51,@GUID+178),(51,@GUID+179),(51,@GUID+180),
+(51,@GUID+181),(51,@GUID+182),(51,@GUID+183),(51,@GUID+184),(51,@GUID+185),(51,@GUID+186),(51,@GUID+187),(51,@GUID+188),(51,@GUID+189),(51,@GUID+190),
+(51,@GUID+191),(51,@GUID+192),(51,@GUID+193),(51,@GUID+194),(51,@GUID+195),(51,@GUID+196),(51,@GUID+197),(51,@GUID+198),(51,@GUID+199),(51,@GUID+200),
+(51,@GUID+201),(51,@GUID+202),(51,@GUID+203),(51,@GUID+204),(51,@GUID+205),(51,@GUID+206),(51,@GUID+207),(51,@GUID+208),(51,@GUID+209),(51,@GUID+210),
+(51,@GUID+211),(51,@GUID+212),(51,@GUID+213),(51,@GUID+214),(51,@GUID+215),(51,@GUID+216),(51,@GUID+217),(51,@GUID+218),(51,@GUID+219),(51,@GUID+220),
+(51,@GUID+221),(51,@GUID+222),(51,@GUID+223),(51,@GUID+224),(51,@GUID+225),(51,@GUID+226),(51,@GUID+227),(51,@GUID+228),(51,@GUID+229),(51,@GUID+230),
+(51,@GUID+231),(51,@GUID+232),(51,@GUID+233),(51,@GUID+234),(51,@GUID+235),(51,@GUID+236),(51,@GUID+237),(51,@GUID+238),(51,@GUID+239),(51,@GUID+240),
+(51,@GUID+241),(51,@GUID+242),(51,@GUID+243),(51,@GUID+244),(51,@GUID+245),(51,@GUID+246),(51,@GUID+247),(51,@GUID+248),(51,@GUID+249),(51,@GUID+250),
+(51,@GUID+251),(51,@GUID+252),(51,@GUID+253),(51,@GUID+254),(51,@GUID+255),(51,@GUID+256),(51,@GUID+257),(51,@GUID+258),(51,@GUID+259),(51,@GUID+260),
+(51,@GUID+261),(51,@GUID+262),(51,@GUID+263),(51,@GUID+264),(51,@GUID+265),(51,@GUID+266),(51,@GUID+267),(51,@GUID+268),(51,@GUID+269),(51,@GUID+270),
+(51,@GUID+271),(51,@GUID+272),(51,@GUID+273),(51,@GUID+274),(51,@GUID+275),(51,@GUID+276),(51,@GUID+277),(51,@GUID+278),(51,@GUID+279),(51,@GUID+280),
+(51,@GUID+281),(51,@GUID+282),(51,@GUID+283),(51,@GUID+284),(51,@GUID+285),(51,@GUID+286),(51,@GUID+287),(51,@GUID+288),(51,@GUID+289),(51,@GUID+290),
+(51,@GUID+291),(51,@GUID+292),(51,@GUID+293),(51,@GUID+294),(51,@GUID+295),(51,@GUID+296),(51,@GUID+297),(51,@GUID+298),(51,@GUID+299),(51,@GUID+300),
+(51,@GUID+301),(51,@GUID+302),(51,@GUID+303),(51,@GUID+304),(51,@GUID+305),(51,@GUID+306),(51,@GUID+307),(51,@GUID+308),(51,@GUID+309),(51,@GUID+310),
+(51,@GUID+311),(51,@GUID+312),(51,@GUID+313);
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 4803: To Catch a Sparrowhawk
+-- Sparrowhawk SAI
+SET @Sparrowhawk := 22979;
+SET @Net := 39810;
+SET @ItemSpell := 39812;
+SET @QuestItem := 32320;
+SET @Script := 39810;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@Sparrowhawk;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Sparrowhawk AND `source_type`=0;
+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
+(@Sparrowhawk,0,0,0,13,0,100,0,0,0,0,0,25,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Sparrowhawk - On target casting spell on it - Flee'),
+(@Sparrowhawk,0,1,2,8,0,100,0,@Net,0,0,0,85,@ItemSpell,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Sparrowhawk - On spell hit by net - Ivoker cast on self spell for item'),
+(@Sparrowhawk,0,2,3,61,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Sparrowhawk - Linked with previous event - Set unseen'),
+(@Sparrowhawk,0,3,0,61,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Sparrowhawk - Linked with previous event - Despawn in 1 sec');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 4843: Stop the Ascension!
+-- Halfdan SAI
+SET @Halfdan := 23671;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@Halfdan;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Halfdan AND `source_type`=0;
+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
+(@Halfdan,0,0,0,54,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,2000,0,0,0,0,0, 'Halfdan - On summoned - Say line 1'),
+(@Halfdan,0,1,0,52,0,100,0,0,@Halfdan,0,0,1,1,2000,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - On text 1 over - Say line 2'),
+(@Halfdan,0,2,3,52,0,100,0,1,@Halfdan,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - IC - Change faction to unfriendly'),
+(@Halfdan,0,3,0,61,0,100,0,0,0,0,0,46,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - Linked with previous event - Move 1 forward to aggro'),
+(@Halfdan,0,4,0,0,0,100,0,2000,5000,9500,11500,11,35263,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Halfdan - IC - Cast Frost attack'),
+(@Halfdan,0,5,0,0,0,100,0,2500,5000,6000,10000,11,32736,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Halfdan - IC - Cast Mortal Strike'),
+(@Halfdan,0,6,0,0,0,100,0,1250,5000,5000,6000,11,12169,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - IC - Cast Shield Block'),
+(@Halfdan,0,7,0,0,0,100,0,3000,8000,4000,12000,11,32015,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Halfdan - IC - Cast Knockdown'),
+(@Halfdan,0,8,0,9,0,100,0,8,25,5000,5000,11,19131,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Halfdan - On target in range - Cast Shield Charge'),
+(@Halfdan,0,9,10,2,0,100,1,75,75,120000,120000,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Halfdan - At 75% HP - Say line 3'),
+(@Halfdan,0,10,0,61,0,100,0,0,0,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - Linked with previous event - Cast Enrage on self'),
+(@Halfdan,0,11,0,2,0,100,1,25,25,120000,120000,1,3,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Halfdan - At 25% HP - Say line 4'),
+(@Halfdan,0,12,13,1,0,100,0,20000,20000,20000,20000,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - OOC more than 20 sec - Set unseen'),
+(@Halfdan,0,13,0,61,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Halfdan - Linked with previous event - Despawn in 1 sec');
+-- Texts
+DELETE FROM `creature_text` WHERE `entry`=@Halfdan;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@Halfdan,0,0, 'You think I do not know what you are trying to do? You think I haven''t been watching you?',12,0,100,1,2000,0, 'Halfdan'),
+(@Halfdan,1,0, 'Hah! You thought to interfere with my ascension? Nothing can stop me now!',12,0,100,1,2000,0, 'Halfdan'),
+(@Halfdan,2,0, 'You will not stop my ascension, tiny $C. Time to die!',14,0,100,1,2000,0, 'Halfdan'),
+(@Halfdan,3,0, 'No! You will not defeat me!',14,0,100,1,1000,0, 'Halfdan');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 4996: Melding of Influences
+-- Primal Ooze and Captured Fel Ooze SAIs
+SET @POoze := 6557;
+SET @CFOoze := 10290;
+SET @GFOoze := 9621; -- Gargantuan Ooze = result of merging
+SET @SpellTrigger := 16031; -- Cast Releasing Corrupt Ooze - can be used only with target of Primal Ooze to summon the Corrupted Ooze and trigger events
+SET @MergingOozes := 16032; -- Spell visual for Oozes at the moment of meging
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@POoze,@CFOoze);
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@POoze,@CFOoze);
+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
+(@POoze,0,0,0,8,0,100,0,@SpellTrigger,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Primal Ooze - On hit by spell Releasing Ooze - Set phase 2'),
+-- Phase 2 - used to delay a bit Primal Ooze actions, so the Corrupted Ooze will be spawned
+(@POoze,0,1,2,60,2,100,1,1500,1500,0,0,45,0,1,0,0,0,0,9,@CFOoze,0,35,0,0,0,0, 'Primal Ooze - On event update in phase 2 - Set data 0 1 on Corrupted Ooze'),
+(@POoze,0,2,0,61,2,100,0,0,0,0,0,29,0,0,10290,1,1,0,9,@CFOoze,0,35,0,0,0,0, 'Primal Ooze - Linked with previous event - Follow Captured felwood ooze'),
+(@POoze,0,3,4,65,2,100,0,0,0,0,0,47,0,0,0,0,0,0,0,0,1,0,0,0,0,0, 'Primal Ooze - On follow complete - Set unseen'),
+(@POoze,0,4,5,61,2,100,0,0,0,0,0,12,@GFOoze,6,20000,0,0,0,1,0,0,0,0,0,0,0, 'Primal Ooze - Linked with previous event - Spawn Gargantuan Ooze'),
+(@POoze,0,5,6,61,2,100,0,0,0,0,0,11,@MergingOozes,0,0,0,0,0,9,@GFOoze,0,5,0,0,0,0, 'Captured Fel Ooze - Linked with previous event - Cast Merging Oozes on Gargantuan Ooze'),
+(@POoze,0,6,0,61,2,100,0,0,0,0,0,41,50,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Primal Ooze - Linked with previous event - Despawn self'),
+-- <<<>>>>
+(@CFOoze,0,0,0,38,0,100,0,0,1,0,0,29,0,0,@POoze,0,1,0,9,@POoze,0,20,0,0,0,0, 'Captured Fel Ooze - On data set 0 1 - Follow Primal Ooze in less than 20 range'),
+(@CFOoze,0,1,2,65,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Captured Fel Ooze - On follow complete - Set unseen'),
+(@CFOoze,0,2,0,61,0,100,0,0,0,0,0,41,1000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Captured Fel Ooze - Linked with previous event - Despawn');
+-- Add conditions for Releasing Corrupt Ooze
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=@SpellTrigger;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@SpellTrigger,0,0,31,1,3,@POoze,0,0,0, '', 'Releasing Corrupted Ooze can be casted only on Primal Ooze');
+-- Condition for Merging Oozes so it can hit only Gargantuan Ooze
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@MergingOozes;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,@MergingOozes,0,0,31,0,3,@GFOoze,0,0,0, '', 'Merging Oozes can hit only Gargantuan Ooze');
+-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+DELETE FROM `creature_addon` WHERE `guid`=53882;
diff --git a/sql/updates/world/2012_11_18_00_world_ormorok.sql b/sql/updates/world/2012_11_18_00_world_ormorok.sql
new file mode 100644
index 00000000000..0ec8d13fd64
--- /dev/null
+++ b/sql/updates/world/2012_11_18_00_world_ormorok.sql
@@ -0,0 +1,56 @@
+-- Crystal Spikes - Script Effect - Spell casted by Ormorok - Triggers one summon spell in every direction
+DELETE FROM `spell_scripts` WHERE `id` IN (47958,57082);
+INSERT INTO `spell_scripts`(`id`,`command`,`datalong`,`datalong2`) VALUES
+-- Non heroic
+(47958,15,47954,1),
+(47958,15,47955,1),
+(47958,15,47956,1),
+(47958,15,47957,1),
+-- Heroic
+(57082,15,57077,1),
+(57082,15,57078,1),
+(57082,15,57080,1),
+(57082,15,57081,1);
+
+DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (47958,48016,48017) OR `spellid0` IN (47958,48016,48017);
+INSERT INTO `spelldifficulty_dbc`(`id`,`spellid0`,`spellid1`) VALUES
+(47958,47958,57082), -- Crystal Spikes
+(48016,48016,57066), -- Trample
+(48017,48017,57086); -- Frenzy
+
+-- Assign aura script for spawning Crystal Spike rows
+DELETE FROM `spell_script_names` WHERE `spell_id`=47941;
+INSERT INTO `spell_script_names`(`spell_id`,`ScriptName`) VALUES
+(47941,'spell_crystal_spike');
+
+-- Apply aura to triggers
+DELETE FROM `creature_template_addon` WHERE `entry` IN (27101,27079);
+INSERT INTO `creature_template_addon`(`entry`,`auras`) VALUES
+(27101,'47941'), -- Aura to summon the next trigger after 250ms
+(27079,'47941'); -- Aura to summon the next trigger after 250ms and visual effect
+
+-- Assign core scripts and SmartAI to trigger
+UPDATE `creature_template` SET `AIName`='',`ScriptName`='npc_crystal_spike_trigger' WHERE `entry` IN (27101,27079);
+UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`='' WHERE `entry`=27099;
+
+-- SAI for Crystal Spike (Damage dealer)
+DELETE FROM `smart_scripts` WHERE `entryorguid`=27099 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`event_type`,`action_type`,`action_param1`,`action_param2`,`target_type`,`comment`) VALUES
+(27099,54,80,2709900,2,1,'Crystal Spike - Is summoned - Call timed action list');
+
+-- Timed action list
+DELETE FROM `smart_scripts` WHERE `entryorguid`=2709900 AND `source_type`=9;
+INSERT INTO `smart_scripts`(`entryorguid`,`source_type`,`id`,`event_param1`,`event_param2`,`action_type`,`action_param1`,`action_param2`,`target_type`,`comment`) VALUES
+(2709900,9,1,2100,2100,11,47944,2,1,'Crystal Spike - Timed action list - Cast damage spell'),
+(2709900,9,2,0,0,41,0,0,1,'Crystal Spike - Timed action list - Despawn');
+
+-- Creature texts for the boss
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1576024 AND -1576020;
+
+DELETE FROM `creature_text` WHERE `entry`=26794;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`comment`) VALUES
+(26794,1,'Noo!',14,13328,'ormorok SAY_AGGRO'),
+(26794,2,'Aaggh!',14,13330,'ormorok SAY_DEATH'),
+(26794,3,'Back!',14,13331,'ormorok SAY_REFLECT'),
+(26794,4,'Bleed!',14,13332,'ormorok SAY_CRYSTAL_SPIKES'),
+(26794,5,'Aaggh! Kill!',14,13329,'ormorok SAY_KILL');
diff --git a/sql/updates/world/2012_11_18_01_world_creature_text.sql b/sql/updates/world/2012_11_18_01_world_creature_text.sql
new file mode 100644
index 00000000000..5d8da97f1f0
--- /dev/null
+++ b/sql/updates/world/2012_11_18_01_world_creature_text.sql
@@ -0,0 +1,15 @@
+-- Ossirian the Unscarred
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1509027 AND -1509018;
+DELETE FROM `creature_text` WHERE `entry`=15339;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(15339, 0, 0, 'I am rejuvinated!', 14, 0, 100, 0, 0, 8593, 'SAY_SUPREME_1'),
+(15339, 0, 1, 'My powers are renewed!', 14, 0, 100, 0, 0, 8595, 'SAY_SUPREME_2'),
+(15339, 0, 2, 'My powers return!', 14, 0, 100, 0, 0, 8596, 'SAY_SUPREME_3'),
+(15339, 1, 0, 'Protect the city at all costs!', 14, 0, 100, 0, 0, 8597, 'SAY_INTRO_1'),
+(15339, 1, 1, 'To your posts. Defend the city.', 14, 0, 100, 0, 0, 8600, 'SAY_INTRO_2'),
+(15339, 1, 2, 'Tresspassers will be terminated.', 14, 0, 100, 0, 0, 8601, 'SAY_INTRO_3'),
+(15339, 2, 0, 'Sands of the desert rise and block out the sun!', 14, 0, 100, 0, 0, 8598, 'SAY_AGGRO'),
+(15339, 3, 0, 'You are terminated.', 14, 0, 100, 0, 0, 8602, 'SAY_SLAY'),
+(15339, 4, 0, 'I...have...failed.', 14, 0, 100, 0, 0, 8594, 'SAY_DEATH'),
+(15339, 5, 0, 'The walls have been breached!', 14, 0, 100, 0, 0, 8599, 'SAY_KURINAXX_DEATH');
+
diff --git a/sql/updates/world/2012_11_18_01_world_gameobject.sql b/sql/updates/world/2012_11_18_01_world_gameobject.sql
new file mode 100644
index 00000000000..d82f9a07e7e
--- /dev/null
+++ b/sql/updates/world/2012_11_18_01_world_gameobject.sql
@@ -0,0 +1,3 @@
+-- Ossirian Crystal
+UPDATE `gameobject_template` SET `ScriptName`='go_ossirian_crystal' WHERE `entry`=180619;
+
diff --git a/sql/updates/world/2012_11_18_02_world_toc.sql b/sql/updates/world/2012_11_18_02_world_toc.sql
new file mode 100644
index 00000000000..9262aceed7a
--- /dev/null
+++ b/sql/updates/world/2012_11_18_02_world_toc.sql
@@ -0,0 +1,150 @@
+-- Trial of the Crusader Death knight Death grip scriptname
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (66017, 68753, 68754, 68755);
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(66017, 'spell_faction_champion_death_grip'),
+(68753, 'spell_faction_champion_death_grip'),
+(68754, 'spell_faction_champion_death_grip'),
+(68755, 'spell_faction_champion_death_grip');
+
+-- Trial of the Crusader shaman heroism/bloodlust
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (65983, 65980);
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(65983, 'spell_toc_heroism'),
+(65980, 'spell_toc_bloodlust');
+
+-- impale scriptname
+DELETE FROM `spell_script_names` WHERE `spell_id`=65919;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(65919, 'spell_impale');
+
+-- firebomb scriptname and modelid (ToC Gormok encounter)
+UPDATE `creature_template` SET `ScriptName`="npc_firebomb" WHERE `entry`=34854;
+
+-- frost sphere corrections
+UPDATE `creature_template` SET `minlevel`=80, `InhabitType`=4, `RegenHealth`=0 WHERE `entry` IN (34606, 34649);
+
+-- Dark / Light essence removing
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (-67222, -67223, -67224, -65686, -67176, -67177, -67178, -65684);
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+(-67222, -67511, 0, 'Light Essence 25M'),
+(-67223, -67512, 0, 'Light Essence 10M H'),
+(-67224, -67513, 0, 'Light Essence 25M H'),
+(-65686, -65811, 0, 'Light Essence 10M'),
+(-67176, -67179, 0, 'Dark Essence 25M'),
+(-67177, -67180, 0, 'Dark Essence 10M H'),
+(-67178, -67181, 0, 'Dark Essence 25M H'),
+(-65684, -65827, 0, 'Dark Essence 10M');
+
+-- Gormoks Fire Bomb scriptname
+DELETE FROM `spell_script_names` WHERE `spell_id`=66313;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(66313, 'spell_gormok_fire_bomb');
+
+-- correcting hitbox of Anub'Arak
+UPDATE `creature_model_info` SET `bounding_radius`=1.085, `combat_reach`=10.5 WHERE `modelid`=29268;
+
+-- correcting hitbox of Acidmaw
+UPDATE `creature_model_info` SET `bounding_radius`=1.24, `combat_reach`=12 WHERE `modelid`=29815;
+
+-- spawn the Anub'arak gate in all versions of the instance
+UPDATE `gameobject` SET `spawnMask`=15 WHERE `guid`=151192;
+
+-- adding ToC boss immunities
+UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask` | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 65536 | 131072 | 524288 | 4194304 | 8388608 | 67108864 | 536870912 WHERE `entry` IN (34796, 35438, 35439, 35440, 34799, 35514, 35515, 35516, 35144, 35511, 35512, 35513, 34797, 35447, 35448, 35449, 34780, 35216, 35268, 35269, 36066, 35347, 35348, 35349, 34497, 35350, 35351, 35352, 34564, 34566, 35615, 35616);
+
+-- adding Teleport locations to Trial of the Crusader/champion for GMs
+DELETE FROM `game_tele` WHERE `name` LIKE '%TrialOfTheCrusader%' OR `name` LIKE '%TrialOfTheChampion%';
+INSERT INTO `game_tele` (`position_x`, `position_y`, `position_z`, `orientation`, `map`, `name`) VALUES
+(8515.63, 714.174, 558.248, 1.57298, 571, 'TrialOfTheCrusader'),
+(8588.42, 791.888, 558.236, 3.23819, 571, 'TrialOfTheChampion');
+
+-- misc fixes for higher boss brackets
+UPDATE `creature_template` SET `dmg_multiplier`=70 WHERE `entry` IN (35440, 35513, 35516, 35449, 35269, 35352, 35349, 35616, 35664, 35670, 35673, 35676, 35682, 35685, 35688, 35691, 35694, 35697, 35701, 35704, 35707, 35710, 35713, 35716, 35720, 35723, 35726, 35730, 35733, 35736, 35739, 35742, 35745, 35748, 35749);
+UPDATE `creature_template` SET `flags_extra`=`flags_extra` | 1 WHERE `entry` IN (35438, 35439, 35440, 35511, 35512, 35513, 35514, 35515, 35516, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 35670, 35671, 35672, 35673, 35674, 35675, 35676, 35680, 35681, 35682, 35683, 35684, 35685, 35686, 35687, 35688, 35689, 35690, 35691, 35692, 35693, 35694, 35695, 35696, 35697, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 35706, 35707, 35708, 35709, 35710, 35711, 35712, 35713, 35714, 35715, 35716, 35718, 35719, 35720, 35721, 35722, 35723, 35724, 35725, 35726, 35728, 35729, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, 35743, 35744, 35745, 35746, 35747, 35748, 34442, 34443, 35749);
+UPDATE `creature_template` SET `speed_walk`=2.8, `speed_run`=1.71429 WHERE `entry` IN (35350, 35351, 35352, 35347, 35348, 35349);
+UPDATE `creature_template` SET `speed_walk`=2, `speed_run`=1.14286 WHERE `entry` IN (34566, 35615, 35616);
+UPDATE `creature_template` SET `skinloot`=34797 WHERE `entry` IN (35447, 35448, 35449);
+UPDATE `creature_template` SET `skinloot`=70214 WHERE `entry` IN (34566, 35615, 35616);
+UPDATE `creature_template` SET `mindmg`=388, `maxdmg`=583, `attackpower`=146 WHERE `entry` IN (35711, 35712, 35713);
+UPDATE `creature_template` SET `mindmg`=468, `maxdmg`=702, `attackpower`=175 WHERE `entry` IN (35699, 35700, 35701);
+UPDATE `creature_template` SET `dmg_multiplier`=35 WHERE `entry` IN (34472, 34454);
+UPDATE `creature_template` SET `unit_class`=1 WHERE `entry` IN (34461, 35743, 35744, 35745);
+
+-- adding Jaraxxus add immunities
+UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask` | 1024 | 2048 WHERE `entry` IN (34815, 35262, 35263, 35264, 34826, 35270, 35271, 35272);
+UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask` | 262144 WHERE `entry` IN (35263, 35264);
+-- adding Nether portal and Infernal volcano immunities to knockout/grip
+UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask` | 32 | 8192 WHERE `entry` IN (34825, 35278, 35279, 35280, 34813, 35265, 35266, 35267);
+
+-- cast Forbearance together with Divine shield (ToC Faction Champions paladin)
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=66010;
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+(66010, 25771, 0, 'Divine Shield - Forbearance');
+
+-- make all Diminishing returns rules apply in faction champions
+UPDATE `creature_template` SET `flags_extra`=`flags_extra` | 1048576 WHERE `entry` IN
+(34445,35705,35706,35707,
+34459,35686,35687,35688,
+34447,35683,35684,35685,
+34455,35680,35681,35682,
+34453,35718,35719,35720,
+34458,35692,35693,35694,
+34454,35711,35712,35713,
+34448,35724,35725,35726,
+34441,34442,34443,35749,
+34450,35695,35696,35697,
+35610,35774,35775,35776,
+35465,36301,36302,36303,
+34451,35671,35672,35673,
+34449,35689,35690,35691,
+34444,35740,35741,35742,
+34456,35708,35709,35710,
+34460,35702,35703,35704,
+34461,35743,35744,35745,
+34463,35734,35735,35736,
+34465,35746,35747,35748,
+34466,35665,35666,35667,
+34467,35662,35663,35664,
+34468,35721,35722,35723,
+34469,35714,35715,35716,
+34470,35728,35729,35730,
+34473,35674,35675,35676,
+34474,35731,35732,35733,
+34475,35737,35738,35739,
+34471,35668,35669,35670,
+34472,35699,35700,35701);
+
+-- correcting faction champions dmg multipliers
+UPDATE `creature_template` SET `dmg_multiplier`=10.8 WHERE `entry` IN (34445,34459,34447,34455,34453,34458,34454,34448,34441,34450,35610,35465,34451,34449,34444,34456,34460,34461,34463,34465,34466,34467,34468,34469,34470,34473,34474,34475,34472, 34471);
+UPDATE `creature_template` SET `dmg_multiplier`=16.1 WHERE `entry` IN (35705,35706,35686,35687,35683,35684,35680,35681,35718,35719,35692,35693,35711,35712,35724,35725,34442,34443,35695,35696,35774,35775,36301,36302,35671,35672,35689,35690,35740,35741,35708,35709,35702,35703,35743,35744,35734,35735,35746,35747,35665,35666,35662,35663,35721,35722,35714,35715,35728,35729,35674,35675,35731,35732,35737,35738,35699,35700, 35668, 35669);
+UPDATE `creature_template` SET `dmg_multiplier`=21.5 WHERE `entry` IN (35707,35688,35685,35682,35720,35694,35713,35726,35749,35697,35776,36303,35673,35691,35742,35710,35704,35745,35736,35748,35667,35664,35723,35716,35730,35676,35733,35739,35701, 35670);
+
+-- ToC warlock pet db corrections
+UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `exp`=2, `faction_A`=16, `faction_H`=16, `mindmg`=417, `maxdmg`=582, `attackpower`=608, `unit_class`=2, `dynamicflags`=8, `minrangedmg`=341, `maxrangedmg`=506, `rangedattackpower`=80 WHERE `entry` IN (36301, 36302, 36303);
+UPDATE `creature_template` SET `faction_A`=16, `faction_H`=16, `difficulty_entry_1`=36301, `difficulty_entry_2`=36302, `difficulty_entry_3`=36303 WHERE `entry`=35465;
+UPDATE `creature_template` SET `name`="Zhaagrym (1)" WHERE `entry`=36301;
+
+-- Jaraxxus Mistress Kiss
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_mistress_kiss_area';
+INSERT INTO `spell_script_names` (spell_id, `ScriptName`) VALUES
+(66336, 'spell_mistress_kiss_area'),
+(67076, 'spell_mistress_kiss_area'),
+(67077, 'spell_mistress_kiss_area'),
+(67078, 'spell_mistress_kiss_area');
+
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_mistress_kiss';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(66334, 'spell_mistress_kiss'),
+(67905, 'spell_mistress_kiss'),
+(67906, 'spell_mistress_kiss'),
+(67907, 'spell_mistress_kiss');
+
+-- Gormoks Rising anger targeting
+DELETE FROM `conditions` WHERE `SourceEntry`=66636;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `Comment`) VALUES
+(13, 1, 66636, 31, 3, 34796, 'Rising Anger');
+
+-- Twins loot correction
+UPDATE `creature_loot_template` SET `maxcount`=1 WHERE `entry`=34497 AND `mincountOrRef` IN (-34296, -34302);
+-- Anubarak loot correction
+UPDATE `creature_loot_template` SET `maxcount`=2 WHERE `entry`=34564 AND `mincountOrRef` IN (-34298, -34304);
diff --git a/sql/updates/world/2012_11_19_00_world_various_fixes.sql b/sql/updates/world/2012_11_19_00_world_various_fixes.sql
new file mode 100644
index 00000000000..ca78611fc0b
--- /dev/null
+++ b/sql/updates/world/2012_11_19_00_world_various_fixes.sql
@@ -0,0 +1,539 @@
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 856: NPC Jezelle Pruitt
+-- Update AI in Creature_Template to Smart AI
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=5702;
+-- Delete static spawns of Jezelles Imp,Voidwalker and Felhunter.
+DELETE FROM `creature` WHERE `id` IN (5726,5729,5730);
+-- Smart Script For Jezelle Pruitt
+DELETE FROM `smart_scripts` WHERE `entryorguid`=5702;
+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
+(5702,0,0,0,1,0,100,0,0,0,235000,235000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 0"),
+(5702,0,1,0,1,0,100,0,10000,10000,235000,235000,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 1"),
+(5702,0,2,0,1,0,100,0,13000,13000,235000,235000,11,8677,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Cast Summon Effect"),
+(5702,0,3,0,1,0,100,0,18000,18000,235000,235000,12,5730,2,30000,0,0,0,8,0,0,0,1793.26,128.034,-63.8432,3.14159,"Jezelle Pruitt - OOC - Spawn Jezelle's Imp"),
+(5702,0,4,0,1,0,100,0,20000,20000,235000,235000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 2"),
+(5702,0,5,0,1,0,100,0,50000,50000,235000,235000,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 3"),
+(5702,0,6,0,1,0,100,0,53000,53000,235000,235000,11,8677,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Cast Summon Effect"),
+(5702,0,7,0,1,0,100,0,58000,58000,235000,235000,12,5729,2,30000,0,0,0,8,0,0,0,1793.26,128.034,-63.8432,3.14159,"Jezelle Pruitt - OOC - Spawn Jezelle's Voidwalker"),
+(5702,0,8,0,1,0,100,0,60000,60000,235000,235000,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 4"),
+(5702,0,9,0,1,0,100,0,90000,90000,235000,235000,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 5"),
+(5702,0,10,0,1,0,100,0,93000,93000,235000,235000,11,8677,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Cast Summon Effect"),
+(5702,0,11,0,1,0,100,0,98000,98000,235000,235000,12,5728,2,30000,0,0,0,8,0,0,0,1793.26,128.034,-63.8432,3.14159,"Jezelle Pruitt - OOC - Spawn Jezelle's Succubus"),
+(5702,0,12,0,1,0,100,0,100000,100000,235000,235000,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 6"),
+(5702,0,13,0,1,0,100,0,130000,130000,235000,235000,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 7"),
+(5702,0,14,0,1,0,100,0,133000,133000,235000,235000,11,8677,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Cast Summon Effect"),
+(5702,0,15,0,1,0,100,0,138000,138000,235000,235000,12,5726,2,30000,0,0,0,8,0,0,0,1793.26,128.034,-63.8432,3.14159,"Jezelle Pruitt - OOC - Spawn Jezelle's FelHunter"),
+(5702,0,16,0,1,0,100,0,140000,140000,235000,235000,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 8"),
+(5702,0,17,0,1,0,100,0,170000,170000,235000,235000,1,9,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 9"),
+(5702,0,18,0,1,0,100,0,173000,173000,235000,235000,11,8677,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Cast Summon Effect"),
+(5702,0,19,0,1,0,100,0,178000,178000,235000,235000,12,5727,2,30000,0,0,0,8,0,0,0,1793.26,128.034,-63.8432,3.14159,"Jezelle Pruitt - OOC - Spawn Jezelle's Felsteed"),
+(5702,0,20,0,1,0,100,0,180000,180000,235000,235000,1,10,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 10"),
+(5702,0,21,0,1,0,100,0,210000,210000,235000,235000,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jezelle Pruitt - OOC - Say Line 11");
+-- Jezelle Pruitt Texts
+DELETE FROM `creature_text` WHERE `entry`=5702;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(5702,0,0, 'If you''re here, then it means you are prepared to begin the study of summoning demonic cohorts to do your bidding. We will start with the lowliest creatures you will be able to call and continue from there. Let us begin.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,1,0, 'The easiest creature for you to summon is the imp. You should already be able to bring forth this minion but for completeness'' sake I will start with him.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,2,0, 'This foul little beast is the imp. It is small and weak, making it almost useless as a meatshield, and its damage output is mediocre at best. This creature is best used for support of a larger group.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,3,0, 'Now that you have had a chance to study imp, let us move on the next minion you will be able to summon, the voidwalker.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,4,0, 'This demonic entity is known as the Voidwalker. Its strength and endurance are significant, making it ideal for defence. Send it to attack your enemy, then use it as a shield while you use your spells and abilities to drain away your opponent''s life.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,5,0, 'If you''ve never seen one, it is a sight to behold. A very impressive creature both on and off the field of battle. Next let us take a look at what I am sure all you male students have been waiting for. The succubus.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,6,0, 'All right now. Asside from the obvious distractions a minion like this will provide against your more masculine foes, she is also capable of dealing out impressive amounts of damage. However, her fragile endurance makes her almost useless as a shield.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,7,0, 'Study hard and you might one day be able to summon one on your own, but for now it''s time to move on to the felhunter.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,8,0, 'What you see before you is a felhunter. This creature''s natural talents include spell lock and other abilities which make it unequalled when facing a magically attuned opponent.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,9,0, 'When facing a spellcaster of any kind, this feral beast will be your best friend. Now, let us take a look at something a bit different. This next creature will aid your travels and make your future journeys much easier. Let''s take a look at a felsteed.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,10,0, 'I doubt you have had much occasion to see such a creature. These demonic equines will make your travels much faster by acting as your mount as long as you control them. However, they are difficult to control, so be sure you are ready before attempting it.',12,33,100,0,0,0, 'Jezelle Pruitt'),
+(5702,11,0, 'There you have it. Our lesson on summoning has come to an end. A new class will begin shortly, so if you wish to brush up, feel free to stay around.',12,33,100,0,0,0, 'Jezelle Pruitt');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 1539: Standards and Practices
+SET @GUID := 371;
+DELETE FROM `gameobject` WHERE `id`=182263;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(22718,182263,530,1,1,-2532.99,6306.90,14.0280,2.81871,0,0,0.986996,0.160743,181,100,1),-- already in TDB
+(371,182263,530,1,1,-2474.44,6111.16,91.7629,3.66388,0,0,0.966096,-0.258184,181,100,1),
+(379,182263,530,1,1,-2533.21,6168.56,59.9387,3.75028,0,0,0.954044,-0.299666,181,100,1);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 1977: An Improper Burial
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=39189;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,39189,0,0,31,0,3,21846,0,0,0,'',"set Sha'tari Torch implicit target to Slain Auchenai Warrior"),
+(13,1,39189,0,1,31,0,3,21859,0,0,0,'',"set Sha'tari Torch implicit target to Slain Sha'tar Vindicator");
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 2350: Postponing the Inevitable
+-- Mark Quest Invisman - Buying Time (26105) as trigger
+UPDATE `creature_template` SET `flags_extra` = 128 WHERE `entry` = 26105;
+-- Add event_script for Activate Interdimensional Refabricator (46547) Effect #2 http://old.wowhead.com/spell=46547
+-- Any idea how can this be made with SAI?
+DELETE FROM `event_scripts` WHERE id = 17364;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(17364,0,8,26105,0,0,0,0,0,0);
+-- Increase GO Range to 25 (original=10)
+UPDATE `gameobject_template` SET `data1`=25 WHERE `entry`=300183;
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 2782: Rune of Dawn
+-- Seal of the Dawn (13209) & Rune of the Dawn (19812) scourgestones fix
+UPDATE `item_template` SET `spellid_2`=17670, `spelltrigger_2`=1 WHERE `entry` IN (13209,19812);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 4013: No Rest For The Wicked
+-- Add support for quest "No Rest For the Wicked" - H {13367/13368 - daily}<>A {13367/13368 - daily}
+-- Credits: based on Kiperr, Kandera and Jankic fixes
+SET @SummonBunny := 32347;
+SET @Alumeth := 32300;
+SET @Trigger := 60831; -- Spell Alumeth's Remains that can hit only summoning bunny to trigger it
+UPDATE `creature_template` SET `AIName`='SmartAI',`unit_flags`=4,`flags_extra`=128 WHERE `entry`=@SummonBunny;
+UPDATE `creature_template` SET `AIName`='SmartAI',`faction_A`=21,`faction_H`=21 WHERE `entry`=@Alumeth; -- faction from sniffs
+UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `guid`=122317; -- Summon Bunny should stay at spawn point
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@SummonBunny,@Alumeth) AND `source_type`=0;
+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
+(@SummonBunny,0,0,0,8,0,100,0,60834,0,0,0,12,32300,6,20000,0,0,8,0,0,0,8219.157,2187.093,499.8201,3.106686,0, 'Alumeth Summon Bunny - On Spellhit - Summon Alumeth the Ascended'), -- He should dissapear after death, not on timer after summon.
+(@Alumeth,0,0,0,0,0,100,0,8000,9000 ,8000,9000 ,11,60472,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Alumeth - IC - Cast Mindflay'),
+(@Alumeth,0,1,0,0,0,100,0,8000,10000,8000,10000,11,34322,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Alumeth - IC - Cast Psychicscream'),
+(@Alumeth,0,2,0,0,0,100,0,9000,12000,9000,12000,11,37978,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Alumeth - IC - Cast Renew'),
+(@Alumeth,0,3,0,0,0,100,0,7000,10000,7000,10000,11,34942,1,0,0,0,0,2,0,0,0,0,0,0,0, 'Alumeth - IC - Cast Shadow Word: Pain');
+-- Fix Alumeth Soulstone GO spell focus data range
+UPDATE `gameobject_template` SET `data1`=25 WHERE `entry`=300241; -- This GO isn't sniffed and is temp for that reason, value over 300k so it can be edited.
+-- Add conditions for spell trigger to summon boss
+DELETE FROM `conditions` WHERE `SourceEntry` IN (@Trigger,60834) AND `SourceTypeOrReferenceId`=13;
+DELETE FROM `conditions` WHERE `SourceEntry`=@Trigger AND `SourceTypeOrReferenceId`=17;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(17,0,@Trigger,0,0,29,0,@Alumeth,40,0,1,0,'', 'Alumeth''s Remains can be used only, if he is not near caster in 40 yards'),
+(13,1,@Trigger,0,0,31,0,3,@SummonBunny,0,0,0,'', 'Alumeth''s Remains can hit only summoning bunny'),
+(13,1,60834,0,0,31,0,3,@SummonBunny,0,0,0,'','Ping Alumeth Summon Bunny can hit only SummonBunny');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 4350: Gregory Tabor
+-- Spawn Gregory Tabor
+SET @GUID := 43465;
+DELETE FROM `creature` WHERE `id`=34675;
+INSERT INTO `creature` (`guid`,`id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES
+(@GUID,34675,0,1,1,0,0,-9130.26,351.84,93.85,2.0151,300,0,0,1524,0,0,0,0,0);
+DELETE FROM `game_event_creature` WHERE `eventEntry`=26 AND `guid`=@GUID;
+INSERT INTO `game_event_creature` (`eventEntry`,`guid`) VALUES
+(26,@GUID);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 4551: Anatoly Will Talk
+DELETE FROM `npc_spellclick_spells` WHERE npc_entry = 27626;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type` ) VALUES
+(27626,49138,1,0);
+UPDATE creature_template SET faction_a = 16, faction_h = 16, `AIName` = 'SmartAI' WHERE `entry` = 27626;
+DELETE FROM smart_scripts WHERE `entryorguid` in (27626,2762600);
+INSERT INTO smart_scripts VALUES
+(27626,0,1,0,8,0,100,0x1,49134,0,0,0,12,27626,1,300000,0,0,0,0,0,0,0,0,0,0,0, 'Tatjana''s horse - On Spell Hit - resumm'),
+(27626,0,2,0,54,0,100,0,0,0,0,0,80,2762600,0,2,0,0,0,1,0,0,0,0,0,0,0,'On time - Run Script'),
+(27626,0,3,0,40,0,100,1,18,0,0,0,15,12330,0,0,0,0,0,18,5,0,0,0,0,0,0,'WP 18 - KC'),
+(27626,0,4,0,40,0,100,1,19,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'WP 19 - Despawn'),
+(27626,0,5,0,40,0,100,1,1,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0.0,0.0,0.0,0.0,"Set Run"),
+(27626,0,6,0,8,0,100,0x1,49134,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Tatjana''s horse - On Spell Hit - Invisible'),
+(27626,0,7,0,8,0,100,0x1,49134,0,0,0,41,500,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Tatjana''s horse - On Spell Hit - Despawn'),
+(27626,0,8,0,54,0,100,0,0,0,0,0,2,35,0,0,0,0,0,1,0,0,0,0,0,0,0,'On time - faction'),
+(2762600,9,0,0,0,0,100,1,4000,4000,0,0,53,0,27626,0,0,0,2,0,0,0,0,0,0,0,0,'On Script - WP Start');
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=49134;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `Comment`) VALUES
+(13,1,49134,31,3,27626, 'Tranquilizer Dart targets Tatjana''s Horse');
+DELETE FROM `waypoints` WHERE `entry`= 27626;
+INSERT INTO `waypoints`
+(`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`)
+VALUES
+(27626,1,4042.49,-4378.298,261.47,''),
+(27626,2,4052.839,-4381.89,260.577,''),
+(27626,3,4061.94,-4374.57,260.44,''),
+(27626,4,4078.97,-4375.19,260.93,''),
+(27626,5,4090.33,-4361.82,261.34,''),
+(27626,6,4091.73,-4341.6,261.34,''),
+(27626,7,4094.09,-4325.83,260.91,''),
+(27626,8,4108.3,-4300.63,252.85,''),
+(27626,9,4124.35,-4281.08,251.25,''),
+(27626,10,4126.15,-4258.29,251.3,''),
+(27626,11,4126.1,-4243.9,248.35,''),
+(27626,12,4100.1,-4224.51,237.86,''),
+(27626,13,4087.17,-4208.72,230.58,''),
+(27626,14,4082.93,-4172.83,218.13,''),
+(27626,15,4077.66,-4151.22,211.94,''),
+(27626,16,4083.57,-4138.46,212.4,''),
+(27626,17,4079.16,-4127.81,212.26,''),
+(27626,18,4067.57,-4127.6,211.13,''),
+(27626,19,4068.35,-4128.44,211.3,'');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5025: Pilgrim's Bounty
+-- Insert into proper DB table Piligrim's Bounty quest to prevent random showing it during the year
+DELETE FROM `creature_involvedrelation` WHERE `quest`=14036;
+DELETE FROM `game_event_creature_quest` WHERE `quest`=14036;
+INSERT INTO `game_event_creature_quest` (`eventEntry`, `id`, `quest`) VALUES
+(26,34677,14036);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5419: The Fallen Sisters Bugged again
+-- Quest - The Fallen Sisters
+SET @ENTRY := 23678;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9;
+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
+(@ENTRY,0,0,0,11,0,100,0,0,571,495,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - Respawn - reset faction'),
+(@ENTRY,0,1,0,25,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - Reset - set phase 1'),
+(@ENTRY,0,2,3,2,0,100,1,0,30,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - On health 30% - Do text emote'),
+(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - On health 30% - set phase 2'),
+(@ENTRY,0,4,0,0,0,75,0,2000,3000,2000,2000,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Chill Nymph - In Combat - Cast Wrath on victim'),
+(@ENTRY,0,5,6,8,2,100,0,43340,0,30000,30000,66,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Chill Nymph - On Spell hit 43340 - Face invoker'),
+(@ENTRY,0,6,7,61,0,100,0,0,0,0,0,33,24117,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Chill Nymph - On Spell hit 43340 - Give Quest credit'),
+(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,80,2367800,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - On Spell hit 43340 - Load script'),
+(@ENTRY,0,8,0,40,0,100,0,1,23678,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - On reach waypoint 1 - Despawn'),
+(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,24,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - Script 2 - Evade'),
+(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,2,35,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - Script 3 - Set faction 35'),
+(@ENTRY*100,9,2,0,0,0,100,0,2000,2000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - Script 4 - Say text 1'),
+(@ENTRY*100,9,3,0,0,0,100,0,1000,1000,0,0,53,1,23678,0,0,0,0,1,0,0,0,0,0,0,0, 'Chill Nymph - Script 5 - Start waypoint movement');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5647: The Lost Spirits
+-- Update Event Type From On Summon(11) to Reset(25)
+UPDATE `smart_scripts` SET `event_type`=25 WHERE `entryorguid`=25321 AND `source_type`=0 AND `id`=0;
+UPDATE `smart_scripts` SET `event_type`=25 WHERE `entryorguid`=25322 AND `source_type`=0 AND `id`=0;
+-- Update Core of Malice drop rate
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=-100 WHERE `entry`=25355 AND `item`=34711;
+-- Remove item Tuskarr Ritual Object from Beryl Hounds
+DELETE FROM `creature_loot_template` WHERE `item`=34713;
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5679: Feedin' Da Goolz
+SET @GHOUL := 28565;
+SET @TRIGER := 28591;
+SET @SOURCETYPE := 0;
+UPDATE `creature_template` SET `AiName`='SmartAI',`flags_extra`=`flags_extra`|2|128 WHERE `entry`=@TRIGER;
+UPDATE `creature_template` SET `AiName`='SmartAI' WHERE `entry`=@GHOUL;
+DELETE FROM `creature_ai_scripts`WHERE `creature_id` IN (@GHOUL,@TRIGER);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@GHOUL,@TRIGER);
+INSERT INTO `smart_scripts` VALUES
+(@GHOUL,@SOURCETYPE,0,0,38,0,100,0,0,1,0,0,29,1,1,28591,0,0,0,19,@TRIGER,15,0,0,0,0,0, 'Ghoul - on data 1 set - start follow'),
+(@GHOUL,@SOURCETYPE,1,2,65,0,100,0,0,0,0,0,33,28591,0,0,0,0,0,21,20,0,0,0,0,0,0, 'Ghoul - on follow completed - give kill credit'),
+(@GHOUL,@SOURCETYPE,2,3,61,0,100,0,0,0,0,0,41,2000,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Ghoul - on follow completed - despawn'),
+(@GHOUL,@SOURCETYPE,3,0,61,0,100,0,0,0,0,0,51,0,0,0,0,0,0,11,@TRIGER,50,0,0,0,0,0, 'Ghoul - on follow completed - kill ghoul'),
+(@TRIGER,@SOURCETYPE,0,0,25,0,100,0,0,0,0,0,45,0,1,0,0,0,0,19,@GHOUL,15,0,0,0,0,0, 'Ghoul Trigger - on just summoned - set data 1 on nearest Ghoul');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5764: The One That Got Away
+-- Fix quest The One That Got Away /Alliance only/ ID: 11410
+SET @Frostfin := 24500; -- The required npc to be summoned
+SET @Bite := 48287; -- Npc special attack
+SET @Event := 16103;
+-- Makes the specific spell that already have the callevent defined summon Frostfin
+DELETE FROM `event_scripts` WHERE `id`=@Event;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`x`,`y`,`z`,`o`) VALUES
+(16103,0,10,@Frostfin,300000,2321.083740,-5260.119629,221.108795,0.248830);
+-- Add SAI for Frostfin
+UPDATE `creature_template` SET `InhabitType`=2,`AIName`= 'SmartAI' WHERE `entry`= @Frostfin;
+DELETE FROM `creature_ai_scripts` WHERE creature_id = @Frostfin;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@Frostfin;
+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
+(@Frostfin,0,0,0,0,0,100,0,2000,3000,5000,8000,11,@Bite,0,0,0,0,0,2,0,0,0,0,0,0,0,'IC - Cast Powerful Bite');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5785: Find the Ancient Hero
+SET @Mjordin := 30718;
+SET @Iskalder := 30884; -- the hostile version
+SET @FriendlyI := 30886; -- the friendly version
+SET @Script1 := 3088400; -- spawn mjoldir on gossip
+SET @Script2 := 3088401; -- spawn Iskalder on gossip
+SET @Amulet := 3921; -- the spell casted on Iskalder
+SET @Witch := 30232; -- Bonne witch
+SET @Credit := 25729; -- quest credit
+-- Add SAI for Slumbering Mjording
+UPDATE `creature_template` SET AIName='SmartAI', unit_flags=0 WHERE `entry`=@Mjordin;
+DELETE FROM `smart_scripts` WHERE entryorguid IN(@Mjordin,@Script1,@Script2);
+INSERT INTO `smart_scripts` VALUES
+(@Mjordin,0,0,0,62,0,100,0,10008,0,0,0,87,@Script1,@Script1,@Script1,@Script2,@Script1,@Script1,1,0,0,0,0,0,0,0,'Slumbering Mjordin - Gossip - Random Script'),
+(@Script1,9,0,0,0,0,100,0,500,500,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Slumbering Mjordin - Script - Enemy'), -- Option 1
+(@Script1,9,1,0,0,0,100,0,1000,1000,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Slumbering Mjordin - Script - Aggresive'),
+(@Script2,9,0,0,0,0,100,0,1000,1000,0,0,12,@Iskalder,3,180000,0,0,0,1,0,0,0,0,0, 0,0,'Slumbering Mjordin - Script - Summon Iskalder '), -- Option 2
+(@Script2,9,1,0,0,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0, 0,0,'Slumbering Mjordin - Script - Unseen'),
+(@Script2,9,2,0,0,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0, 0,0,'Slumbering Mjordin - Script - Despawn');
+-- Add SAI for Iskalder hostile - these values are not sniffed they are guessed by wowhead comments...
+UPDATE `creature_template` SET `exp`=2,`faction_A`=14, `faction_H`=14, `minlevel`=80, `maxlevel`=80, `mindmg`=300, `maxdmg`=350, `AIName`='SmartAI' WHERE `entry`=@Iskalder;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@Iskalder;
+INSERT INTO `smart_scripts` VALUES
+(@Iskalder,0,0,0,54,0,100,0,0,0,0,0,1,1,100,0,0,0,0,1,0,0,0,0,0,0,0,'Iskalder - On summon - Say text'),
+(@Iskalder,0,1,0,8,0,100,0,@Amulet,0,0,0,41,5000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Iskalder - On hit by spell from amulet - Despawn');
+-- Add SAI for Iskalder Friendly
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@FriendlyI;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@FriendlyI;
+INSERT INTO `smart_scripts` VALUES
+(@FriendlyI,0,0,0,0,0,100,1,1,1,1,1,18,512,0,0,0,0,0,1,0,0,0,0,0,0,0,'Friendly Iskalder - On IC - Change field flag to immune to npc/prevents from not moving bug/'),
+(@FriendlyI,0,1,0,1,0,100,0,2000,3000,2000,3000,29,0,0,@Witch,0,1,0,9,@Witch,1,10,0,0,0,0,'Friendly Iskalder - On OOC - Follow Bonnewitch if in range 10 yards'),
+(@FriendlyI,0,2,0,65,0,100,0,0,0,0,0,11,@Credit,0,0,0,0,0,23,0,0,0,0,0,0,0,'Friendly Iskalder - On follow complete - Cast spell credit to player');
+-- Makes amulet target only the required npc
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=@Amulet;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@Amulet,0,0,31,1,3,@Iskalder,0,0,0,'','Amulet can target only Iskalder');
+-- The purple beam effect of amulet can target only Iskalder
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@Amulet;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,2,@Amulet,0,0,31,1,3,@Iskalder,0,0,0,'','The purple beam effect of amulet can target only Iskalder');
+-- Cast amulet on Iskalder warning /text/
+DELETE FROM `creature_text` WHERE `entry`=@Iskalder;
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(@Iskalder,1,1,'You have found him! Now is the time to use the The Bone Witch"s Amulet!',41,0,100,0,100,0,'Originaly it as the Bonne witch guide');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5821: Shattrath Daily Quests missing ExclusiveGroup
+-- Set ExclusiveGroup for Shattrath Daily Quests, you can have only one per questgiver
+UPDATE `quest_template` SET `ExclusiveGroup`=11364 WHERE `Id` IN (11376, 11383, 11385, 11371, 11389, 11500, 11364, 11387);
+UPDATE `quest_template` SET `ExclusiveGroup`=11354 WHERE `Id` IN (11382, 11368, 11378, 11374, 11499, 11370, 11372, 11369, 11388, 11362, 11363, 11375, 11354, 11386, 11373, 11384);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 6284: Nether Drake Egg
+UPDATE `gameobject_template` SET `data10`=36326,`data5`=1 WHERE `entry`=184867;
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 6627: Quest - 28056
+-- Add condition for gossip option
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=1282;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(15,1282,0,0,0,9,3566,0,0,0,0,'','Alter of Suntara - Show gossip option only if player has taken quest "Rise, Obsidion"');
+-- Adding SmartAI Text for Lathoric the Black
+DELETE FROM `creature_text` WHERE `entry`=8391;
+INSERT INTO creature_text (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(8391,0,0, 'You are here to stop the Archduke?',14,0,100,0,0,0, 'Lathoric the Black'),
+(8391,1,0, 'Fools. Obsidion! Rise, and destroy the interlopers!',14,0,100,0,0,0, 'Lathoric the Black');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 5760: Before the Gate of Horror
+-- Fix {Qs} Before the Gate of Horror Id: 13335 /Alliance/ and Before the Gate of Horror Id: 13329 /Horde/
+SET @SkeletalReaver := 32467; -- The main npcs that can be hit with spell Dissolve only in dead condition
+SET @FreedRemnant := 32288; -- Kill credit from quest that has no spell to be used with, so requires action 33
+SET @Dissolve := 60428; -- Spell used to trigger npc to cast kill credit on invoker
+-- Add SAI for Skeletal Reaver
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@SkeletalReaver;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@SkeletalReaver;
+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
+(@SkeletalReaver,0,0,1,8,0,100,0,@Dissolve,0,0,0,33,@FreedRemnant,0,0,0,0,0,7,0,0,0,0,0,0,0,'Skeletal Reaver - On hit by spell Dissolve - Give kill credit to invoker'),
+(@SkeletalReaver,0,1,2,61,0,100,0,0,0,0,0,47,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Skeletal Reaver - Linked with previous event - Set unseen'),
+(@SkeletalReaver,0,2,0,61,0,100,0,0,0,0,0,41,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Skeletal Reaver - Linked with previous event - Set despawn in 1 ms');
+-- Add conditions for spell Dissolve to target only dead Skeletal Reavers
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=17 AND `SourceEntry`=@Dissolve;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17,0,@Dissolve,0,0,36,1,0,0,0,1,0,'','Dissolve can be casted only on creatures that are not alive'),
+(17,0,@Dissolve,0,0,31,1,3,@SkeletalReaver,0,0,0,'','Dissolve can be casted only on Skeletal Reavers');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 6632: Quest Audio - 12593
+UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=25462;
+DELETE FROM `smart_scripts` WHERE (`entryorguid`=25462 AND `source_type`=0);
+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
+(25462,0,0,0,19,0,100,0,12593,0,0,0,4,14734,0,0,0,0,0,1,0,0,0,0,0,0,0, 'The Lich King - On Quest Accept - Play Sound');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 6724: Souls of the Decursed
+DELETE FROM `conditions` WHERE `SourceEntry`=46485 AND `ConditionValue2`=26814; -- /slap to the guy that entered this query
+UPDATE `conditions` SET `ConditionValue2`=25814,`ElseGroup`=0 WHERE `SourceEntry`=46485 AND `ConditionTypeOrReference`=31;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=25814 AND `source_type`=0;
+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
+(25814,0,0,0,4,0,100,0,0,0,0,0,1,1,10000,0,0,0,0,0,0,0,0,0,0,0,0, 'Fizzcrank Mechagnome - On Aggro - Say Line'),
+(25814,0,1,0,8,0,100,0,45980,0,0,0,33,25773,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Fizzcrank Mechagnome - On Spellhit 45980 - Give Kill Credit (Re-Cursive)'),
+(25814,0,2,3,8,0,100,0,46485,0,0,0,33,26096,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Fizzcrank Mechagnome - On Spellhit 46485 - Give Kill Credit (Souls of the Decursed'),
+(25814,0,3,0,61,0,100,0,0,0,0,0,41,10,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fizzcrank Mechagnome - On Spellhit 46485 - Despawn after 10 ms');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 7837: Norgannon's Shell (12872,12928)
+-- Loot
+DELETE FROM `creature_loot_template` WHERE `entry`=29775 AND `item`=41258;
+INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+(29775,41258,-100,1,0,1,1); -- Norgannon's Shell
+-- Charged Disk event script for summoning Archivist Mechaton
+DELETE FROM `creature` WHERE `id`=29775;
+DELETE FROM `event_scripts` WHERE `id`=19410;
+INSERT INTO `event_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(19410,2,10,29775,300000,0,7991.81,-827.674,968.263,2.89725);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 7907: Windcaller Yessendra (15498),Warden Haro (15499),Keyl Swiftclaw (15500),Mokvar (16012) & Deliana (16013) quests
+UPDATE `quest_template` SET `RequiredClasses`=1 WHERE `Id`=8556; -- Warrior
+UPDATE `quest_template` SET `RequiredClasses`=2 WHERE `Id`=8703; -- Paladin
+UPDATE `quest_template` SET `RequiredClasses`=4 WHERE `Id`=8704; -- Hunter
+UPDATE `quest_template` SET `RequiredClasses`=8 WHERE `Id`=8701; -- Rogue
+UPDATE `quest_template` SET `RequiredClasses`=16 WHERE `Id`=8697; -- Priest
+UPDATE `quest_template` SET `RequiredClasses`=64 WHERE `Id`=8698; -- Shaman
+UPDATE `quest_template` SET `RequiredClasses`=128 WHERE `Id`=8699; -- Mage
+UPDATE `quest_template` SET `RequiredClasses`=256 WHERE `Id`=8702; -- Warlock
+UPDATE `quest_template` SET `RequiredClasses`=1024 WHERE `Id`=8700; -- Druid
+-- Warden Haro (15499) quests RequiredClasses fix by nelegalno
+UPDATE `quest_template` SET `RequiredClasses`=1 WHERE `Id`=8558; -- Warrior
+UPDATE `quest_template` SET `RequiredClasses`=2 WHERE `Id`=8711; -- Paladin
+UPDATE `quest_template` SET `RequiredClasses`=4 WHERE `Id`=8712; -- Hunter
+UPDATE `quest_template` SET `RequiredClasses`=8 WHERE `Id`=8709; -- Rogue
+UPDATE `quest_template` SET `RequiredClasses`=16 WHERE `Id`=8705; -- Priest
+UPDATE `quest_template` SET `RequiredClasses`=64 WHERE `Id`=8706; -- Shaman
+UPDATE `quest_template` SET `RequiredClasses`=128 WHERE `Id`=8707; -- Mage
+UPDATE `quest_template` SET `RequiredClasses`=256 WHERE `Id`=8710; -- Warlock
+UPDATE `quest_template` SET `RequiredClasses`=1024 WHERE `Id`=8708; -- Druid
+-- Keyl Swiftclaw (15500) quests RequiredClasses fix by nelegalno
+UPDATE `quest_template` SET `RequiredClasses`=1 WHERE `Id`=8557; -- Warrior
+UPDATE `quest_template` SET `RequiredClasses`=2 WHERE `Id`=8695; -- Paladin
+UPDATE `quest_template` SET `RequiredClasses`=4 WHERE `Id`=8696; -- Hunter
+UPDATE `quest_template` SET `RequiredClasses`=8 WHERE `Id`=8693; -- Rogue
+UPDATE `quest_template` SET `RequiredClasses`=16 WHERE `Id`=8689; -- Priest
+UPDATE `quest_template` SET `RequiredClasses`=64 WHERE `Id`=8690; -- Shaman
+UPDATE `quest_template` SET `RequiredClasses`=128 WHERE `Id`=8691; -- Mage
+UPDATE `quest_template` SET `RequiredClasses`=256 WHERE `Id`=8694; -- Warlock
+UPDATE `quest_template` SET `RequiredClasses`=1024 WHERE `Id`=8692; -- Druid
+-- Mokvar (16012) quests RequiredClasses fix by nelegalno
+UPDATE `quest_template` SET `RequiredClasses`=1 WHERE `Id` IN (8920,8944,9013,9022); -- Warrior
+UPDATE `quest_template` SET `RequiredClasses`=2 WHERE `Id` IN (10493,10495,10497,10499); -- Paladin
+UPDATE `quest_template` SET `RequiredClasses`=4 WHERE `Id` IN (8914,8938,9008,9017); -- Hunter
+UPDATE `quest_template` SET `RequiredClasses`=8 WHERE `Id` IN (8917,8941,9010,9020); -- Rogue
+UPDATE `quest_template` SET `RequiredClasses`=16 WHERE `Id` IN (8916,8940,9009,9019); -- Priest
+UPDATE `quest_template` SET `RequiredClasses`=64 WHERE `Id` IN (8918,8942,8957,9011); -- Shaman
+UPDATE `quest_template` SET `RequiredClasses`=128 WHERE `Id` IN (8915,8939,9014,9018); -- Mage
+UPDATE `quest_template` SET `RequiredClasses`=256 WHERE `Id` IN (8919,8943,9012,9021); -- Warlock
+UPDATE `quest_template` SET `RequiredClasses`=1024 WHERE `Id` IN (8913,8927,9007,9016); -- Druid
+-- Deliana (16013) quests RequiredClasses fix by nelegalno
+UPDATE `quest_template` SET `RequiredClasses`=1 WHERE `Id` IN (8912,8959,8937,9006); -- Warrior
+UPDATE `quest_template` SET `RequiredClasses`=2 WHERE `Id` IN (8908,8954,10494,9002); -- Paladin
+UPDATE `quest_template` SET `RequiredClasses`=4 WHERE `Id` IN (8906,8952,8931,9000); -- Hunter
+UPDATE `quest_template` SET `RequiredClasses`=8 WHERE `Id` IN (8910,8956,8935,9004); -- Rogue
+UPDATE `quest_template` SET `RequiredClasses`=16 WHERE `Id` IN (8909,8955,8934,9003); -- Priest
+UPDATE `quest_template` SET `RequiredClasses`=64 WHERE `Id` IN (10492,10496,10494,10498); -- Shaman
+UPDATE `quest_template` SET `RequiredClasses`=128 WHERE `Id` IN (8907,8953,8932,9001); -- Mage
+UPDATE `quest_template` SET `RequiredClasses`=256 WHERE `Id` IN (8911,8958,8936,9005); -- Warlock
+UPDATE `quest_template` SET `RequiredClasses`=1024 WHERE `Id` IN (8905,8951,8926,8999); -- Druid
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 7908: Attunement to the Core (7487,7848)
+-- Attunement to the Core (7848) quest RequiredRaces fix by nelegalno
+-- UPDATE `quest_template` SET `RequiredRaces`=0 WHERE `Id`=7848;
+-- Revert previous Attunement to the Core (7487,7848) quest fix
+UPDATE `quest_template` SET `RequiredRaces`=1101 WHERE `Id`=7848; -- A
+UPDATE `quest_template` SET `RequiredRaces`=690 WHERE `Id`=7487; -- H
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 8021: spawn location in OG near Rogg (37072)
+SET @GUID := 387; -- set by TDB team
+DELETE FROM `gameobject` WHERE `guid`=@GUID;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@GUID,1685,1,1,1,1523.778,-4368.241,18.21412,6.07367,0,0,0,1,300,100,1);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 8086: Missing Fires for Hallow End Q
+-- This won't fix the quest until the rest of the event is scripted.
+SET @CREATURE_GUID := 85701; -- set by TDB team
+DELETE FROM `creature` WHERE `id` IN (23537,23686) AND `guid` BETWEEN @CREATURE_GUID+00 AND @CREATURE_GUID+12;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+-- Spawn fire dummys for fire effigys
+(@CREATURE_GUID+00,23537,530,1,1,0,0,-4192.38,-12268.1,2.53389,-1.72788,300,0,0,45780,0,0,0,0,0),
+(@CREATURE_GUID+01,23537,530,1,1,0,0,-4207.84,-12276.7,4.82085,-0.069813,300,0,0,45780,0,0,0,0,0),
+(@CREATURE_GUID+02,23537,0,1,1,0,0,-5753.24,-533.652,405.022,1.15192,300,0,0,45780,0,0,0,0,0),
+(@CREATURE_GUID+03,23537,0,1,1,0,0,-5761.17,-528.193,404.855,1.16937,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+04,23537,0,1,1,0,0,-5747.52,-527.634,401.297,0.610865,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+05,23537,1,1,1,0,0,286.565,-4561.45,28.5742,2.42601,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+06,23537,530,1,1,0,0,9235.05,-6783.4,26.4426,1.5708,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+07,23537,0,1,1,0,0,2240.44,459.159,39.2838,0.820305,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+08,23537,0,1,1,0,0,2239.49,487.861,38.3446,-0.715585,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+09,23537,0,1,1,0,0,-9328.25,56.2778,63.2509,2.60054,300,0,0,15260,0,0,0,0,0),
+(@CREATURE_GUID+10,23537,0,1,1,0,0,-9314.1,52.4562,77.7343,2.93215,300,0,0,15260,0,0,0,0,0),
+-- Spawn Fire Handlers for villages
+(@CREATURE_GUID+11,23686,1,1,1,0,0,305.144,-4724.5,9.83766,3.68348,300,0,0,7185,7196,0,0,0,0),
+(@CREATURE_GUID+12,23686,0,1,1,0,0,-9465.54,63.2228,55.8587,6.25841,300,0,0,7185,7196,0,0,0,0);
+DELETE FROM `game_event_creature` WHERE `guid` BETWEEN @CREATURE_GUID+00 AND @CREATURE_GUID+12;
+INSERT INTO `game_event_creature` VALUES
+(12,@CREATURE_GUID+00),
+(12,@CREATURE_GUID+01),
+(12,@CREATURE_GUID+02),
+(12,@CREATURE_GUID+03),
+(12,@CREATURE_GUID+04),
+(12,@CREATURE_GUID+05),
+(12,@CREATURE_GUID+06),
+(12,@CREATURE_GUID+07),
+(12,@CREATURE_GUID+08),
+(12,@CREATURE_GUID+09),
+(12,@CREATURE_GUID+10),
+(12,@CREATURE_GUID+11),
+(12,@CREATURE_GUID+12);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 8133: Wickerman Festival NPC & GO's
+-- Wickerman Festival
+SET @GO_GUID := 17868; -- set by TDB team (14)
+SET @CREATURE_GUID := 85632; -- set by TDB team (5)
+UPDATE `gameobject_template` SET `flags` = 17 WHERE `entry` = 180433;
+DELETE FROM `gameobject` WHERE id IN (180432,180433,180434,180437,180405,180406) AND `guid` BETWEEN @GO_GUID+00 AND @GO_GUID+13;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+-- Forsaken Banner
+(@GO_GUID+00,180432,0,1,1,1749.28,507.611,39.2312,1.49635,0,0,0.680301,0.732933,300,0,1),
+(@GO_GUID+01,180432,0,1,1,1712.63,507.05,38.2495,1.58824,0,0,0.713246,0.700914,300,0,1),
+-- The Wickerman
+(@GO_GUID+02,180433,0,1,1,1734.04,504.05,42.2861,1.4131,0,0,0.649213,0.760607,300,0,0),
+-- Bonfire
+(@GO_GUID+03,180434,0,1,1,1758.89,513.276,35.8655,1.28897,0,0,0.600788,0.799409,300,0,1),
+(@GO_GUID+04,180434,0,1,1,1704.48,518.689,35.4045,1.30704,0,0,0.607984,0.793949,300,0,1),
+(@GO_GUID+05,180434,0,1,1,1739.78,473.238,61.6565,1.59371,0,0,0.71516,0.698961,300,0,1),
+(@GO_GUID+06,180434,0,1,1,1717.32,472.723,61.6566,1.59371,0,0,0.71516,0.698961,300,0,1),
+-- Wickerman Ember
+(@GO_GUID+07,180437,0,1,1,1744.62,504.954,40.8518,1.23403,0,0,0.578603,0.81561,300,0,1),
+(@GO_GUID+08,180437,0,1,1,1729.13,510.378,40.8719,1.23403,0,0,0.578603,0.81561,300,0,1),
+(@GO_GUID+09,180437,0,1,1,1721.77,503.938,41.1381,1.23403,0,0,0.578603,0.81561,300,0,1),
+(@GO_GUID+10,180437,0,1,1,1744.96,496.25,41.44,1.24581,0,0,0.583397,0.812187,300,0,1),
+-- G_Pumpkin_01
+(@GO_GUID+11,180405,0,1,1,1746.07,517.066,38.936,2.83466,0,0,0.988247,0.152864,300,0,1),
+(@GO_GUID+12,180405,0,1,1,1728,475.099,63.6779,3.08363,0,0,0.99958,0.0289791,300,0,1),
+-- G_Pumpkin_02
+(@GO_GUID+13,180406,0,1,1,1719.67,522.979,36.8828,2.93283,0,0,0.994557,0.10419,300,0,1);
+DELETE FROM `creature` WHERE `id` IN (15195,15197,15199) AND `guid` BETWEEN @CREATURE_GUID+00 AND @CREATURE_GUID+04;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+-- Wickerman Guardian
+(@CREATURE_GUID+00,15195,0,1,1,0,0,1713.1,511.295,37.2005,1.48063,300,0,0,45780,0,0,0,0,0),
+(@CREATURE_GUID+01,15195,0,1,1,0,0,1750.57,511.697,37.7587,1.25444,300,0,0,45780,0,0,0,0,0),
+(@CREATURE_GUID+02,15195,0,1,1,0,0,1732.31,520.874,36.3326,1.30942,300,0,0,45780,0,0,0,0,0),
+-- Darkcaller Yanka
+(@CREATURE_GUID+03,15197,0,1,1,0,0,1734.6,508.803,41.2847,1.6173,300,0,0,15260,0,0,0,0,0),
+-- Sergeant Hartman
+(@CREATURE_GUID+04,15199,0,1,1,0,0,-813.614,-547.184,15.6377,1.69193,300,0,0,15260,0,0,0,0,0);
+DELETE FROM `game_event_gameobject` WHERE `guid` BETWEEN @GO_GUID+00 AND @GO_GUID+13;
+INSERT INTO `game_event_gameobject` VALUES
+(12,@GO_GUID+00),
+(12,@GO_GUID+01),
+(12,@GO_GUID+02),
+(12,@GO_GUID+03),
+(12,@GO_GUID+04),
+(12,@GO_GUID+05),
+(12,@GO_GUID+06),
+(12,@GO_GUID+07),
+(12,@GO_GUID+08),
+(12,@GO_GUID+09),
+(12,@GO_GUID+10),
+(12,@GO_GUID+11),
+(12,@GO_GUID+12),
+(12,@GO_GUID+13);
+DELETE FROM `game_event_creature` WHERE `guid` BETWEEN @CREATURE_GUID+00 AND @CREATURE_GUID+04;
+INSERT INTO `game_event_creature` VALUES
+(12,@CREATURE_GUID+00),
+(12,@CREATURE_GUID+01),
+(12,@CREATURE_GUID+02),
+(12,@CREATURE_GUID+03),
+(12,@CREATURE_GUID+04);
+-- Wickerman Ashes
+DELETE FROM `gossip_menu` WHERE `entry` = 6535;
+INSERT INTO `gossip_menu` VALUES
+(6535,7737),
+(6535,7738);
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=6535 AND `id`=0;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES
+(6535,0,0, 'Smear the ash on my face like war paint!',1,1,0,0,0,0, ''); -- need text confirmation
+-- gossip conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=6535;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,6535,7738,0,0,1,0,24705,0,0,0,0, '', 'Wickerman Ember - Show different gossip if player is affected by aura 24705'),
+(14,6535,7737,0,0,1,0,24705,0,0,1,0, '', 'Wickerman Ember - Show different gossip if player is affected by aura 24705'),
+(15,6535,0,0,0,1,0,24705,0,0,1,0, '', 'Wickerman Ember - Show different gossip option if player is affected by aura 24705');
+-- GO smart script
+UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=180437;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=180437 AND `source_type`=1;
+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
+(180437,1,0,1,62,0,100,0,6535,0,0,0,85,24705,34,0,0,0,0,7,0,0,0,0,0,0,0, 'Wickerman Ember - on Gossip Select - Cast Invocation of the Wickerman'),
+(180437,1,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Wickerman Ember - on Link - Close gossip');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 8244: Hallow's End Pumpkin Treat & Tricky Treat time fix
+-- Hallow's End Pumpkin Treat time fix & Tricky Treat time fix
+UPDATE `item_template` SET `flagsCustom`=1 WHERE `entry` IN(20557,33226);
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+-- Issue 8288: Exhausted Vrykul - not responding after using discipline stick on him
+SET @ENTRY := 30146; -- Exhausted Vrykul
+SET @SPELL := 56033; -- Disciplining Rod
+DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY*100,@ENTRY*100+1) AND `source_type`=9;
+DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
+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
+(@ENTRY,0,0,0,25,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - Reset - Switch to Phase 1'),
+(@ENTRY,0,1,0,1,1,100,0,0,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - On phase 1 - Seat'),
+(@ENTRY,0,2,3,8,1,100,0,@SPELL,0,0,0,33,29886,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Exhausted Vrykul - On Spell hit & phase 1 - Kill Credit'),
+(@ENTRY,0,3,0,61,1,100,0,0,0,0,0,31,2,3,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - Link Spell hit - Switch to Phase 2 or 3'),
+(@ENTRY,0,4,5,1,2,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - If phase 2 - Say random text 0'),
+(@ENTRY,0,5,6,61,2,100,0,0,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - If phase 2 - Stand up'),
+(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Exhausted Vrykul - On phase 2 - Start Attack'),
+(@ENTRY,0,7,8,1,4,100,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - On phase 3 - Say random text 1'),
+(@ENTRY,0,8,9,61,4,100,0,0,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - If phase 3 - Stand up'),
+(@ENTRY,0,9,10,61,4,100,0,0,0,0,0,46,6,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - If phase 3 - walk 6 yards'),
+(@ENTRY,0,10,0,61,4,100,0,0,0,0,0,17,233,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - On phase 3 - Emote Work mining'),
+(@ENTRY,0,11,0,1,4,100,1,60000,60000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Exhausted Vrykul - On phase 3 & 1 minute OOC - despawn'),
+(@ENTRY,0,12,0,2,0,100,1,0,30,0,0,11,57395,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Exhausted Vrykul - At 30% Hp - Cast Desperate Blow');
+-- ------------------------------------------------------------------------------------------------------------------------------------------------
+DELETE FROM `creature_addon` WHERE `guid` IN (45214,45215,45146,85486);
diff --git a/sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql b/sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql
new file mode 100644
index 00000000000..56cda092be6
--- /dev/null
+++ b/sql/updates/world/2012_11_19_01_world_pilgrims_bounty.sql
@@ -0,0 +1,4740 @@
+-- ------------------
+-- -- Event Definition --
+-- ------------------
+SET @Event = 26; -- game_event.entry - Set by TDB
+DELETE FROM `game_event` WHERE `eventEntry`=@Event;
+INSERT INTO `game_event` (`eventEntry`,`start_time`,`end_time`,`occurence`,`length`,`holiday`,`description`,`world_event`) VALUES
+(@Event,'2011-11-18 01:00:00','2020-12-31 05:00:00',525600,10020,404, 'Pilgrim''s Bounty',0);
+-- ------------------
+-- -- Event Spawns --
+-- ------------------
+SET @CGUID := 138255; -- Set by TDB
+SET @OGUID := 76055; -- Set by TDB
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID AND @CGUID+3998;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
+(@CGUID,20102,530,1,1,0,0,3038.56,3635.53,144.012,3.32713,300,0,0,42,0,0,0,0,0),
+(@CGUID+1,32823,0,1,1,0,0,-5082.28,-792.136,495.678,1.86906,300,0,0,1,0,0,0,0,0),
+(@CGUID+2,32823,0,1,1,0,0,-5093.01,-795.451,495.128,3.49483,300,0,0,1,0,0,0,0,0),
+(@CGUID+3,32823,0,1,1,0,0,-5092.7,-803.861,495.148,0.164747,300,0,0,1,0,0,0,0,0),
+(@CGUID+4,32823,0,1,1,0,0,-5079.45,-800.684,495.127,0.258995,300,0,0,1,0,0,0,0,0),
+(@CGUID+5,34812,0,1,1,0,0,-5078.48,-796.243,495.176,4.6533,300,0,0,112,120,0,0,0,0),
+(@CGUID+6,34812,0,1,1,0,0,-5085.3,-792.972,495.558,0.412147,300,0,0,112,120,0,0,0,0),
+(@CGUID+7,34812,0,1,1,0,0,-5089.67,-800.427,495.127,4.22918,300,0,0,112,120,0,0,0,0),
+(@CGUID+8,34812,0,1,1,0,0,-5092.47,-799.083,495.128,1.88084,300,0,0,112,120,0,0,0,0),
+(@CGUID+9,34823,0,1,1,0,0,-5087.72,-803.254,495.127,3.21995,300,0,0,112,120,0,0,0,0),
+(@CGUID+10,34823,0,1,1,0,0,-5097.2,-797.589,495.127,0.435709,300,0,0,112,120,0,0,0,0),
+(@CGUID+11,34823,0,1,1,0,0,-5083.38,-787.805,495.911,4.78682,300,0,0,112,120,0,0,0,0),
+(@CGUID+12,34823,0,1,1,0,0,-5074.94,-799.68,495.127,3.3299,300,0,0,112,120,0,0,0,0),
+(@CGUID+13,34819,0,1,1,0,0,-5076.41,-803.853,495.127,2.04185,300,0,0,112,120,0,0,0,0),
+(@CGUID+14,34819,0,1,1,0,0,-5090.39,-807.055,495.08,2.00258,300,0,0,112,120,0,0,0,0),
+(@CGUID+15,34819,0,1,1,0,0,-5095.91,-792.882,495.157,5.22664,300,0,0,112,120,0,0,0,0),
+(@CGUID+16,34819,0,1,1,0,0,-5079.43,-789.073,495.722,3.73046,300,0,0,112,120,0,0,0,0),
+(@CGUID+17,34822,0,1,1,0,0,-5079.51,-793.698,495.44,2.5445,300,0,0,112,120,0,0,0,0),
+(@CGUID+18,34822,0,1,1,0,0,-5081.14,-803.525,495.128,0.848043,300,0,0,112,120,0,0,0,0),
+(@CGUID+19,34822,0,1,1,0,0,-5094.72,-806.292,495.161,0.745942,300,0,0,112,120,0,0,0,0),
+(@CGUID+20,34824,0,1,1,0,0,-5095.77,-802.078,495.132,5.84318,300,0,0,112,120,0,0,0,0),
+(@CGUID+21,34824,0,1,1,0,0,-5089.96,-796.654,495.151,2.80369,300,0,0,112,120,0,0,0,0),
+(@CGUID+22,34824,0,1,1,0,0,-5082.59,-795.26,495.322,1.50385,300,0,0,112,120,0,0,0,0),
+(@CGUID+23,34824,0,1,1,0,0,-5082.54,-798.894,495.137,5.86674,300,0,0,112,120,0,0,0,0),
+(@CGUID+24,34653,0,1,1,0,0,-5071.89,-801.345,495.128,0.094064,300,0,0,5342,0,0,0,0,0),
+(@CGUID+25,34708,0,1,1,0,0,-5079.31,-809.352,495.833,1.53919,600,0,0,1524,0,0,0,0,0),
+(@CGUID+26,34645,0,1,1,0,0,-5076.66,-808.073,495.833,2.01829,600,0,0,1524,0,0,0,0,0),
+(@CGUID+27,35340,0,1,1,0,0,-5073.03,-787.526,495.117,4.57476,600,0,0,1524,0,0,0,0,0),
+(@CGUID+28,34644,0,1,1,0,0,-5084.24,-808.46,495.832,0.977634,300,0,0,1524,0,0,0,0,0),
+(@CGUID+29,32823,0,1,1,0,0,-9116.83,309.643,93.1605,1.45805,300,0,0,1,0,0,0,0,0),
+(@CGUID+30,32823,0,1,1,0,0,-9115.63,320.223,93.189,1.45805,300,0,0,1,0,0,0,0,0),
+(@CGUID+31,32823,0,1,1,0,0,-9114.71,332.007,93.1289,1.50517,300,0,0,1,0,0,0,0,0),
+(@CGUID+32,32823,0,1,1,0,0,-9113.9,344.27,93.6394,1.50517,300,0,0,1,0,0,0,0,0),
+(@CGUID+33,34812,0,1,1,0,0,-9118.42,345.069,93.9817,0.0993054,300,0,0,112,120,0,0,0,0),
+(@CGUID+34,34812,0,1,1,0,0,-9118.93,332.436,93.3026,0.0521796,300,0,0,112,120,0,0,0,0),
+(@CGUID+35,34812,0,1,1,0,0,-9119.35,320.819,93.3331,0.20926,300,0,0,112,120,0,0,0,0),
+(@CGUID+36,34823,0,1,1,0,0,-9116.52,314.55,93.0822,4.65069,300,0,0,112,120,0,0,0,0),
+(@CGUID+37,34823,0,1,1,0,0,-9115.78,325.128,93.2047,4.70174,300,0,0,112,120,0,0,0,0),
+(@CGUID+38,34823,0,1,1,0,0,-9114.1,336.911,93.4026,4.61927,300,0,0,112,120,0,0,0,0),
+(@CGUID+39,34823,0,1,1,0,0,-9113.13,348.931,93.5571,4.53288,300,0,0,112,120,0,0,0,0),
+(@CGUID+40,34819,0,1,1,0,0,-9110.13,345.405,93.4552,3.04455,300,0,0,112,120,0,0,0,0),
+(@CGUID+41,34819,0,1,1,0,0,-9111.31,333.146,93.2693,3.15058,300,0,0,112,120,0,0,0,0),
+(@CGUID+42,34819,0,1,1,0,0,-9111.83,320.705,93.1879,2.86784,300,0,0,112,120,0,0,0,0),
+(@CGUID+43,34819,0,1,1,0,0,-9113.34,310.046,93.2807,2.96208,300,0,0,112,120,0,0,0,0),
+(@CGUID+44,34822,0,1,1,0,0,-9114.8,307.034,93.4531,2.28664,300,0,0,112,120,0,0,0,0),
+(@CGUID+45,34824,0,1,1,0,0,-9119.35,307.993,93.1764,0.637305,300,0,0,112,120,0,0,0,0),
+(@CGUID+46,34822,0,1,1,0,0,-9114.01,317.994,93.1465,2.10207,300,0,0,112,120,0,0,0,0),
+(@CGUID+47,34824,0,1,1,0,0,-9118.64,318.192,93.207,0.484153,300,0,0,112,120,0,0,0,0),
+(@CGUID+48,34822,0,1,1,0,0,-9112.75,329.259,93.1734,2.12564,300,0,0,112,120,0,0,0,0),
+(@CGUID+49,34824,0,1,1,0,0,-9116.74,329.417,93.1118,0.923976,300,0,0,112,120,0,0,0,0),
+(@CGUID+50,34822,0,1,1,0,0,-9112.46,341.845,93.5009,1.93714,300,0,0,112,120,0,0,0,0),
+(@CGUID+51,34824,0,1,1,0,0,-9116.35,342.758,93.8079,0.637305,300,0,0,112,120,0,0,0,0),
+(@CGUID+52,34653,0,1,1,0,0,-9118.91,350.746,93.735,2.14134,300,0,0,5342,0,0,0,0,0),
+(@CGUID+53,34710,0,1,1,0,0,-9118.18,359.164,93.2702,1.90179,600,0,0,1524,0,0,0,0,0),
+(@CGUID+54,35337,0,1,1,0,0,-9111.63,353.697,93.4015,2.40837,600,0,0,1524,0,0,0,0,0),
+(@CGUID+55,34744,0,1,1,0,0,-9127.56,351.404,94.2329,2.13741,300,0,0,1524,0,0,0,0,0),
+(@CGUID+56,34682,0,1,1,0,0,-9110.83,366.354,94.0632,2.67934,600,0,0,1524,0,0,0,0,0),
+(@CGUID+57,34675,0,1,1,0,0,-9125.02,352.824,94.2342,2.1217,300,0,0,1524,0,0,0,0,0),
+(@CGUID+58,32823,1,1,1,0,0,9992.89,2213.08,1328.19,3.36582,300,0,0,1,0,0,0,0,0),
+(@CGUID+59,32823,1,1,1,0,0,9981.25,2210.43,1328.79,3.36582,300,0,0,1,0,0,0,0,0),
+(@CGUID+60,32823,1,1,1,0,0,9993.91,2203.28,1327.78,3.25587,300,0,0,1,0,0,0,0,0),
+(@CGUID+61,32823,1,1,1,0,0,9983.74,2200.09,1328.61,3.29906,300,0,0,1,0,0,0,0,0),
+(@CGUID+62,34812,1,1,1,0,0,9993.46,2199.34,1327.76,1.65758,300,0,0,112,120,0,0,0,0),
+(@CGUID+63,34812,1,1,1,0,0,9992.41,2209.12,1328.09,1.68507,300,0,0,112,120,0,0,0,0),
+(@CGUID+64,34812,1,1,1,0,0,9980.51,2206.25,1328.83,1.56333,300,0,0,112,120,0,0,0,0),
+(@CGUID+65,34812,1,1,1,0,0,9982.89,2195.91,1328.74,1.6026,300,0,0,112,120,0,0,0,0),
+(@CGUID+66,34812,1,1,1,0,0,9983.28,2195.71,1328.72,1.66543,300,0,0,112,120,0,0,0,0),
+(@CGUID+67,34812,1,1,1,0,0,9992.85,2209.39,1328.08,1.77146,300,0,0,112,120,0,0,0,0),
+(@CGUID+68,34823,1,1,1,0,0,9978.58,2199.07,1328.9,0.224227,300,0,0,112,120,0,0,0,0),
+(@CGUID+69,34823,1,1,1,0,0,9989.41,2202.1,1328.03,0.275278,300,0,0,112,120,0,0,0,0),
+(@CGUID+70,34823,1,1,1,0,0,9988.13,2211.82,1328.38,0.184957,300,0,0,112,120,0,0,0,0),
+(@CGUID+71,34823,1,1,1,0,0,9976.38,2209.67,1329.13,0.18103,300,0,0,112,120,0,0,0,0),
+(@CGUID+72,34819,1,1,1,0,0,9979.04,2213.85,1328.94,5.02301,300,0,0,112,120,0,0,0,0),
+(@CGUID+73,34819,1,1,1,0,0,9982.03,2203.39,1328.71,4.97982,300,0,0,112,120,0,0,0,0),
+(@CGUID+74,34819,1,1,1,0,0,9992.22,2206.94,1327.99,4.79132,300,0,0,112,120,0,0,0,0),
+(@CGUID+75,34819,1,1,1,0,0,9991.3,2216.25,1328.36,4.81096,300,0,0,112,120,0,0,0,0),
+(@CGUID+76,34822,1,1,1,0,0,9994.93,2215.9,1328.41,4.06483,300,0,0,112,120,0,0,0,0),
+(@CGUID+77,34824,1,1,1,0,0,9996.01,2211.72,1327.97,2.72966,300,0,0,112,120,0,0,0,0),
+(@CGUID+78,34822,1,1,1,0,0,9996.69,2205.42,1327.76,3.63286,300,0,0,112,120,0,0,0,0),
+(@CGUID+79,34824,1,1,1,0,0,9996.37,2202.04,1327.71,2.83176,300,0,0,112,120,0,0,0,0),
+(@CGUID+80,34822,1,1,1,0,0,9985.68,2202.2,1328.39,3.78994,300,0,0,112,120,0,0,0,0),
+(@CGUID+81,34824,1,1,1,0,0,9986.2,2198.49,1328.35,2.72966,300,0,0,112,120,0,0,0,0),
+(@CGUID+82,34822,1,1,1,0,0,9982.99,2213.05,1328.67,4.06483,300,0,0,112,120,0,0,0,0),
+(@CGUID+83,34824,1,1,1,0,0,9984.15,2208.95,1328.59,2.74536,300,0,0,112,120,0,0,0,0),
+(@CGUID+84,35338,1,1,1,0,0,9992.78,2238.74,1330.6,3.11451,600,0,0,1524,0,0,0,0,0),
+(@CGUID+85,35338,1,1,1,0,0,9989.53,2237.63,1330.96,3.11451,600,0,0,1524,0,0,0,0,0),
+(@CGUID+86,35338,1,1,1,0,0,9987.13,2238.11,1331.16,2.8082,600,0,0,1524,0,0,0,0,0),
+(@CGUID+87,34711,1,1,1,0,0,10001.8,2228.02,1330.16,2.9535,600,0,0,1524,0,0,0,0,0),
+(@CGUID+88,34653,1,1,1,0,0,9975.5,2212.18,1329.26,3.14199,300,0,0,5342,0,0,0,0,0),
+(@CGUID+89,34681,1,1,1,0,0,9982.08,2243.54,1332.54,3.01633,600,0,0,1524,0,0,0,0,0),
+(@CGUID+90,34676,1,1,1,0,0,9982.13,2246.34,1332.72,3.12629,300,0,0,1524,0,0,0,0,0),
+(@CGUID+91,32823,530,1,1,0,0,-3975.02,-11870.6,0.510499,1.83564,300,0,0,1,0,0,0,0,0),
+(@CGUID+92,32823,530,1,1,0,0,-3966.15,-11868.9,0.677072,4.56098,300,0,0,1,0,0,0,0,0),
+(@CGUID+93,32823,530,1,1,0,0,-3967.7,-11879,0.698275,4.67093,300,0,0,1,0,0,0,0,0),
+(@CGUID+94,32823,530,1,1,0,0,-3975.57,-11879.1,0.563379,4.59239,300,0,0,1,0,0,0,0,0),
+(@CGUID+95,34812,530,1,1,0,0,-3972.39,-11880.5,0.620286,3.0805,300,0,0,112,120,0,0,0,0),
+(@CGUID+96,34812,530,1,1,0,0,-3964.17,-11880.1,0.780479,3.19438,300,0,0,112,120,0,0,0,0),
+(@CGUID+97,34812,530,1,1,0,0,-3963.04,-11870.8,0.75601,2.91164,300,0,0,112,120,0,0,0,0),
+(@CGUID+98,34812,530,1,1,0,0,-3978.56,-11870.4,0.457089,0.131328,300,0,0,112,120,0,0,0,0),
+(@CGUID+99,34823,530,1,1,0,0,-3976.38,-11866.3,0.459333,5.05185,300,0,0,112,120,0,0,0,0),
+(@CGUID+100,34823,530,1,1,0,0,-3966.71,-11873.1,0.697868,1.5097,300,0,0,112,120,0,0,0,0),
+(@CGUID+101,34823,530,1,1,0,0,-3967.81,-11883.4,0.71311,1.655,300,0,0,112,120,0,0,0,0),
+(@CGUID+102,34823,530,1,1,0,0,-3976.18,-11882.9,0.572993,1.26623,300,0,0,112,120,0,0,0,0),
+(@CGUID+103,34819,530,1,1,0,0,-3978.81,-11880.6,0.5216,0.00173759,300,0,0,112,120,0,0,0,0),
+(@CGUID+104,34822,530,1,1,0,0,-3977.04,-11876.4,0.52305,4.85943,300,0,0,112,120,0,0,0,0),
+(@CGUID+105,34824,530,1,1,0,0,-3973.01,-11877.4,0.588198,3.97193,300,0,0,112,120,0,0,0,0),
+(@CGUID+106,34819,530,1,1,0,0,-3972.32,-11868,0.553342,3.75202,300,0,0,112,120,0,0,0,0),
+(@CGUID+107,34822,530,1,1,0,0,-3972.28,-11872,0.574069,2.48753,300,0,0,112,120,0,0,0,0),
+(@CGUID+108,34824,530,1,1,0,0,-3975.92,-11873.2,0.516282,1.21125,300,0,0,112,120,0,0,0,0),
+(@CGUID+109,34819,530,1,1,0,0,-3969.74,-11869.6,0.615128,5.97469,300,0,0,112,120,0,0,0,0),
+(@CGUID+110,34822,530,1,1,0,0,-3967.42,-11866.3,0.628005,5.11075,300,0,0,112,120,0,0,0,0),
+(@CGUID+111,34824,530,1,1,0,0,-3963.33,-11867.2,0.713348,3.7638,300,0,0,112,120,0,0,0,0),
+(@CGUID+112,34819,530,1,1,0,0,-3970.89,-11880,0.636388,6.24172,300,0,0,112,120,0,0,0,0),
+(@CGUID+113,34822,530,1,1,0,0,-3969.61,-11876.8,0.648169,5.31496,300,0,0,112,120,0,0,0,0),
+(@CGUID+114,34824,530,1,1,0,0,-3965.25,-11877.4,0.745982,3.85019,300,0,0,112,120,0,0,0,0),
+(@CGUID+115,34653,530,1,1,0,0,-3978.75,-11863,0.438156,3.94051,300,0,0,5342,0,0,0,0,0),
+(@CGUID+116,34785,530,1,1,0,0,-3957.89,-11863,0.778528,3.47713,600,0,0,1524,0,0,0,0,0),
+(@CGUID+117,34783,530,1,1,0,0,-3981.01,-11861.1,1.12189,4.16906,600,0,0,1524,0,0,0,0,0),
+(@CGUID+118,35340,530,1,1,0,0,-3955.87,-11866.3,0.850197,5.07934,600,0,0,1524,0,0,0,0,0),
+(@CGUID+119,32823,1,1,1,0,0,1282.83,-4418.29,26.5714,0.327693,300,0,0,1,0,0,0,0,0),
+(@CGUID+120,32823,1,1,1,0,0,1274.4,-4425.46,26.665,0.704684,300,0,0,1,0,0,0,0,0),
+(@CGUID+121,32823,1,1,1,0,0,1280.76,-4432.94,27.0913,0.704684,300,0,0,1,0,0,0,0,0),
+(@CGUID+122,32823,1,1,1,0,0,1290.11,-4426.16,26.7342,0.641852,300,0,0,1,0,0,0,0,0),
+(@CGUID+123,34654,1,1,1,0,0,1293.13,-4405.79,26.3839,4.12117,300,0,0,5342,0,0,0,0,0),
+(@CGUID+124,34812,1,1,1,0,0,1282,-4414.97,26.508,5.33068,300,0,0,112,120,0,0,0,0),
+(@CGUID+125,34812,1,1,1,0,0,1288.88,-4422.93,26.6279,5.421,300,0,0,112,120,0,0,0,0),
+(@CGUID+126,34812,1,1,1,0,0,1279.11,-4429.42,26.8343,5.4799,300,0,0,112,120,0,0,0,0),
+(@CGUID+127,34812,1,1,1,0,0,1272.58,-4422.59,26.6228,5.47598,300,0,0,112,120,0,0,0,0),
+(@CGUID+128,35342,1,1,1,0,0,1296.57,-4421.63,26.6309,5.13825,600,0,0,1524,0,0,0,0,0),
+(@CGUID+129,35342,1,1,1,0,0,1294.78,-4421.96,26.6249,5.14218,600,0,0,1524,0,0,0,0,0),
+(@CGUID+130,35342,1,1,1,0,0,1293.33,-4420.44,26.5897,5.25292,600,0,0,1524,0,0,0,0,0),
+(@CGUID+131,34713,1,1,1,0,0,1300.64,-4407.67,26.5393,3.71747,600,0,0,1524,0,0,0,0,0),
+(@CGUID+132,34679,1,1,1,0,0,1296.81,-4417.88,27.3402,2.33909,300,0,0,1524,0,0,0,0,0),
+(@CGUID+133,34685,1,1,1,0,0,1294.88,-4419.93,27.2965,2.29982,600,0,0,1524,0,0,0,0,0),
+(@CGUID+134,34823,1,1,1,0,0,1287.22,-4416.93,26.5846,3.44651,300,0,0,112,120,0,0,0,0),
+(@CGUID+135,34819,1,1,1,0,0,1285.47,-4420.7,26.597,2.05635,300,0,0,112,120,0,0,0,0),
+(@CGUID+136,34822,1,1,1,0,0,1281.16,-4420.96,26.5957,0.835057,300,0,0,112,120,0,0,0,0),
+(@CGUID+137,34824,1,1,1,0,0,1279.78,-4418.23,26.5395,0.0378778,300,0,0,112,120,0,0,0,0),
+(@CGUID+138,34823,1,1,1,0,0,1293.65,-4423.68,26.651,3.53683,300,0,0,112,120,0,0,0,0),
+(@CGUID+139,34819,1,1,1,0,0,1293.54,-4427.88,26.7986,2.43727,300,0,0,112,120,0,0,0,0),
+(@CGUID+140,34822,1,1,1,0,0,1289.68,-4429.39,26.893,1.29844,300,0,0,112,120,0,0,0,0),
+(@CGUID+141,34824,1,1,1,0,0,1287.16,-4425.62,26.7042,6.25431,300,0,0,112,120,0,0,0,0),
+(@CGUID+142,34823,1,1,1,0,0,1284.08,-4430.27,26.9355,3.83528,300,0,0,112,120,0,0,0,0),
+(@CGUID+143,34819,1,1,1,0,0,1284.44,-4434.11,27.246,2.59828,300,0,0,112,120,0,0,0,0),
+(@CGUID+144,34822,1,1,1,0,0,1280.6,-4435.71,27.2582,1.36128,300,0,0,112,120,0,0,0,0),
+(@CGUID+145,34824,1,1,1,0,0,1278.08,-4433.26,27.0236,0.20674,300,0,0,112,120,0,0,0,0),
+(@CGUID+146,34823,1,1,1,0,0,1277.61,-4422.57,26.5793,3.88633,300,0,0,112,120,0,0,0,0),
+(@CGUID+147,34819,1,1,1,0,0,1277.84,-4426.82,26.693,2.42942,300,0,0,112,120,0,0,0,0),
+(@CGUID+148,34822,1,1,1,0,0,1274.16,-4428.29,26.7377,1.28274,300,0,0,112,120,0,0,0,0),
+(@CGUID+149,34824,1,1,1,0,0,1271.67,-4426.25,26.6933,0.265645,300,0,0,112,120,0,0,0,0),
+(@CGUID+150,32823,1,1,1,0,0,-1328.29,188.777,60.5313,3.36455,300,0,0,1,0,0,0,0,0),
+(@CGUID+151,32823,1,1,1,0,0,-1321.55,190.334,59.733,3.36848,300,0,0,1,0,0,0,0,0),
+(@CGUID+152,32823,1,1,1,0,0,-1330.56,196.448,59.9585,3.26245,300,0,0,1,0,0,0,0,0),
+(@CGUID+153,32823,1,1,1,0,0,-1323.39,197.319,59.3536,3.26245,300,0,0,1,0,0,0,0,0),
+(@CGUID+154,34812,1,1,1,0,0,-1331.3,193.186,60.3687,1.69951,300,0,0,112,120,0,0,0,0),
+(@CGUID+155,34812,1,1,1,0,0,-1329.04,184.933,60.846,1.78198,300,0,0,112,120,0,0,0,0),
+(@CGUID+156,34812,1,1,1,0,0,-1321.85,186.615,60.0284,1.75449,300,0,0,112,120,0,0,0,0),
+(@CGUID+157,34812,1,1,1,0,0,-1323.98,194.051,59.6589,1.80161,300,0,0,112,120,0,0,0,0),
+(@CGUID+158,34823,1,1,1,0,0,-1327.57,196.437,59.7425,0.25045,300,0,0,112,120,0,0,0,0),
+(@CGUID+159,34819,1,1,1,0,0,-1325.66,200.086,59.307,5.02568,300,0,0,112,120,0,0,0,0),
+(@CGUID+160,34822,1,1,1,0,0,-1321.87,199.529,59.1138,3.86329,300,0,0,112,120,0,0,0,0),
+(@CGUID+161,34824,1,1,1,0,0,-1321.08,195.488,59.3111,2.53204,300,0,0,112,120,0,0,0,0),
+(@CGUID+162,34823,1,1,1,0,0,-1325.78,189.261,60.2152,0.22689,300,0,0,112,120,0,0,0,0),
+(@CGUID+163,34819,1,1,1,0,0,-1323.78,192.972,59.7357,5.12385,300,0,0,112,120,0,0,0,0),
+(@CGUID+164,34822,1,1,1,0,0,-1319.91,192.594,59.4278,3.87507,300,0,0,112,120,0,0,0,0),
+(@CGUID+165,34824,1,1,1,0,0,-1318.95,189.15,59.6095,2.7598,300,0,0,112,120,0,0,0,0),
+(@CGUID+166,34823,1,1,1,0,0,-1332.53,187.47,60.7196,0.289728,300,0,0,112,120,0,0,0,0),
+(@CGUID+167,34819,1,1,1,0,0,-1330.72,191.145,60.51,5.02961,300,0,0,112,120,0,0,0,0),
+(@CGUID+168,34822,1,1,1,0,0,-1327.19,191.169,60.1974,4.03608,300,0,0,112,120,0,0,0,0),
+(@CGUID+169,34824,1,1,1,0,0,-1326.18,186.987,60.4491,2.2493,300,0,0,112,120,0,0,0,0),
+(@CGUID+170,34823,1,1,1,0,0,-1335.05,195.361,60.4403,0.285803,300,0,0,112,120,0,0,0,0),
+(@CGUID+171,34819,1,1,1,0,0,-1332.47,199.595,59.7487,4.96678,300,0,0,112,120,0,0,0,0),
+(@CGUID+172,34822,1,1,1,0,0,-1329.34,199.006,59.6342,4.10677,300,0,0,112,120,0,0,0,0),
+(@CGUID+173,34824,1,1,1,0,0,-1328.41,194.364,60,2.34748,300,0,0,112,120,0,0,0,0),
+(@CGUID+174,34714,1,1,1,0,0,-1314.67,206.382,58.8653,3.50594,600,0,0,1524,0,0,0,0,0),
+(@CGUID+175,34654,1,1,1,0,0,-1337.67,190.598,60.8631,4.17745,300,0,0,5342,0,0,0,0,0),
+(@CGUID+176,35343,1,1,1,0,0,-1317.71,208.647,58.8602,5.42231,600,0,0,1524,0,0,0,0,0),
+(@CGUID+177,35343,1,1,1,0,0,-1317.08,185.668,59.6624,4.92751,600,0,0,1524,0,0,0,0,0),
+(@CGUID+178,34684,1,1,1,0,0,-1313.09,189.957,59.9336,2.56739,600,0,0,1524,0,0,0,0,0),
+(@CGUID+179,34678,1,1,1,0,0,-1311.92,192.569,59.8367,2.6852,300,0,0,1524,0,0,0,0,0),
+(@CGUID+180,32823,0,1,1,0,0,1834.55,253.055,59.7593,2.898,300,0,0,1,0,0,0,0,0),
+(@CGUID+181,32823,0,1,1,0,0,1824.34,255.595,59.9598,2.898,300,0,0,1,0,0,0,0,0),
+(@CGUID+182,32823,0,1,1,0,0,1836.01,219.866,60.2,2.98046,300,0,0,1,0,0,0,0,0),
+(@CGUID+183,32823,0,1,1,0,0,1826.08,221.479,60.564,2.98046,300,0,0,1,0,0,0,0,0),
+(@CGUID+184,34812,0,1,1,0,0,1824.34,218.407,60.4028,1.2251,300,0,0,112,120,0,0,0,0),
+(@CGUID+185,34812,0,1,1,0,0,1834.58,216.635,60.194,1.39003,300,0,0,112,120,0,0,0,0),
+(@CGUID+186,34812,0,1,1,0,0,1833.11,250.272,59.7872,1.50784,300,0,0,112,120,0,0,0,0),
+(@CGUID+187,34812,0,1,1,0,0,1822.42,252.376,60.0278,1.25259,300,0,0,112,120,0,0,0,0),
+(@CGUID+188,34823,0,1,1,0,0,1819.47,256.351,60.0177,6.08671,300,0,0,112,120,0,0,0,0),
+(@CGUID+189,34819,0,1,1,0,0,1823.47,259.36,59.921,4.44916,300,0,0,112,120,0,0,0,0),
+(@CGUID+190,34822,0,1,1,0,0,1826.98,256.962,59.7774,3.40851,300,0,0,112,120,0,0,0,0),
+(@CGUID+191,34824,0,1,1,0,0,1825.59,252.345,59.9664,2.01836,300,0,0,112,120,0,0,0,0),
+(@CGUID+192,34823,0,1,1,0,0,1830.29,254.158,59.6774,6.02781,300,0,0,112,120,0,0,0,0),
+(@CGUID+193,34819,0,1,1,0,0,1833.77,256.523,59.7223,4.64552,300,0,0,112,120,0,0,0,0),
+(@CGUID+194,34822,0,1,1,0,0,1837.2,254.766,59.856,3.58916,300,0,0,112,120,0,0,0,0),
+(@CGUID+195,34824,0,1,1,0,0,1836.83,251.094,59.922,2.54065,300,0,0,112,120,0,0,0,0),
+(@CGUID+196,34823,0,1,1,0,0,1821.62,222.529,60.1521,6.01211,300,0,0,112,120,0,0,0,0),
+(@CGUID+197,34819,0,1,1,0,0,1825.06,224.891,60.2886,4.72799,300,0,0,112,120,0,0,0,0),
+(@CGUID+198,34822,0,1,1,0,0,1828.78,223.155,60.5687,3.59309,300,0,0,112,120,0,0,0,0),
+(@CGUID+199,34824,0,1,1,0,0,1828.2,219.471,60.6056,2.42991,300,0,0,112,120,0,0,0,0),
+(@CGUID+200,34823,0,1,1,0,0,1831.58,220.664,60.5304,6.01918,300,0,0,112,120,0,0,0,0),
+(@CGUID+201,34819,0,1,1,0,0,1834.82,223.437,60.2865,4.83323,300,0,0,112,120,0,0,0,0),
+(@CGUID+202,34822,0,1,1,0,0,1838.43,221.277,60.1987,3.55697,300,0,0,112,120,0,0,0,0),
+(@CGUID+203,34824,0,1,1,0,0,1837.5,217.672,60.1333,2.31996,300,0,0,112,120,0,0,0,0),
+(@CGUID+204,34654,0,1,1,0,0,1828.25,248.785,59.9713,4.91178,300,0,0,5342,0,0,0,0,0),
+(@CGUID+205,34654,0,1,1,0,0,1830.22,228.484,60.2551,1.65238,300,0,0,5342,0,0,0,0,0),
+(@CGUID+206,34712,0,1,1,0,0,1822.06,266.801,60.0993,5.01388,600,0,0,1524,0,0,0,0,0),
+(@CGUID+207,34768,0,1,1,0,0,1817.01,258.573,60.721,4.95498,300,0,0,1524,0,0,0,0,0),
+(@CGUID+208,34683,0,1,1,0,0,1814.56,257.735,60.6853,4.9589,600,0,0,1524,0,0,0,0,0),
+(@CGUID+209,34677,0,1,1,0,0,1811.74,257.052,60.6289,4.87643,300,0,0,1524,0,0,0,0,0),
+(@CGUID+210,35341,0,1,1,0,0,1827.28,266.018,60.0083,0.203308,600,0,0,1524,0,0,0,0,0),
+(@CGUID+211,35341,0,1,1,0,0,1830.09,263.893,59.7316,0.22687,600,0,0,1524,0,0,0,0,0),
+(@CGUID+212,35341,0,1,1,0,0,1818.25,260.215,60.0523,4.03212,600,0,0,1524,0,0,0,0,0),
+(@CGUID+213,32823,530,1,1,0,0,9298,-7223.78,16.7799,1.75493,300,0,0,1,0,0,0,0,0),
+(@CGUID+214,32823,530,1,1,0,0,9296.96,-7213.65,16.3391,1.67246,300,0,0,1,0,0,0,0,0),
+(@CGUID+215,32823,530,1,1,0,0,9289.92,-7224.35,16.434,1.69603,300,0,0,1,0,0,0,0,0),
+(@CGUID+216,32823,530,1,1,0,0,9288.17,-7214.89,16.2739,1.80598,300,0,0,1,0,0,0,0,0),
+(@CGUID+217,34812,530,1,1,0,0,9284.31,-7214.59,16.2382,0.203766,300,0,0,112,120,0,0,0,0),
+(@CGUID+218,34812,530,1,1,0,0,9293.31,-7213.1,16.3096,0.0702483,300,0,0,112,120,0,0,0,0),
+(@CGUID+219,34812,530,1,1,0,0,9286.66,-7223.4,16.2791,0.105589,300,0,0,112,120,0,0,0,0),
+(@CGUID+220,34812,530,1,1,0,0,9294.7,-7222.76,16.6244,0.0663194,300,0,0,112,120,0,0,0,0),
+(@CGUID+221,34823,530,1,1,0,0,9297.16,-7219.19,16.6719,4.90438,300,0,0,112,120,0,0,0,0),
+(@CGUID+222,34819,530,1,1,0,0,9301.47,-7221.08,16.7434,3.52208,300,0,0,112,120,0,0,0,0),
+(@CGUID+223,34822,530,1,1,0,0,9300.59,-7225.64,16.6246,2.31649,300,0,0,112,120,0,0,0,0),
+(@CGUID+224,34824,530,1,1,0,0,9296.27,-7226.62,16.7478,1.09127,300,0,0,112,120,0,0,0,0),
+(@CGUID+225,34823,530,1,1,0,0,9289.11,-7219.58,16.2432,4.95542,300,0,0,112,120,0,0,0,0),
+(@CGUID+226,34819,530,1,1,0,0,9292.91,-7221.98,16.4884,3.49066,300,0,0,112,120,0,0,0,0),
+(@CGUID+227,34822,530,1,1,0,0,9292.41,-7226.39,16.6304,2.39895,300,0,0,112,120,0,0,0,0),
+(@CGUID+228,34824,530,1,1,0,0,9288.09,-7226.98,16.5047,1.02451,300,0,0,112,120,0,0,0,0),
+(@CGUID+229,34823,530,1,1,0,0,9287.09,-7210.47,16.4172,4.94364,300,0,0,112,120,0,0,0,0),
+(@CGUID+230,34819,530,1,1,0,0,9290.92,-7212.86,16.314,3.40426,300,0,0,112,120,0,0,0,0),
+(@CGUID+231,34822,530,1,1,0,0,9290.26,-7216.64,16.2758,2.35968,300,0,0,112,120,0,0,0,0),
+(@CGUID+232,34824,530,1,1,0,0,9286.61,-7217.47,16.1966,1.24049,300,0,0,112,120,0,0,0,0),
+(@CGUID+233,34823,530,1,1,0,0,9296.25,-7209.03,16.2939,4.86118,300,0,0,112,120,0,0,0,0),
+(@CGUID+234,34819,530,1,1,0,0,9300.17,-7211.93,16.2018,3.35715,300,0,0,112,120,0,0,0,0),
+(@CGUID+235,34822,530,1,1,0,0,9299.22,-7215.91,16.5658,2.45001,300,0,0,112,120,0,0,0,0),
+(@CGUID+236,34824,530,1,1,0,0,9295.06,-7215.99,16.3911,0.918483,300,0,0,112,120,0,0,0,0),
+(@CGUID+237,34654,530,1,1,0,0,9304.13,-7219.49,16.4335,5.7801,300,0,0,5342,0,0,0,0,0),
+(@CGUID+238,34787,530,1,1,0,0,9305.74,-7211.06,16.6184,5.76831,600,0,0,1524,0,0,0,0,0),
+(@CGUID+239,34786,530,1,1,0,0,9282.31,-7206.7,16.6141,5.7094,600,0,0,1524,0,0,0,0,0),
+(@CGUID+240,35342,530,1,1,0,0,9285.98,-7199.02,17.4229,5.64657,600,0,0,1524,0,0,0,0,0),
+(@CGUID+241,32820,0,1,1,0,0,-14286,283.778,32.739,1.543,600,20,0,2,0,1,0,0,0),
+(@CGUID+242,32820,0,1,1,0,0,-14187,731,24.75,1.778,600,20,0,2,0,1,0,0,0),
+(@CGUID+243,32820,0,1,1,0,0,1953.33,1514.46,88.0872,5.32666,600,20,0,2,0,1,0,0,0),
+(@CGUID+244,32820,0,1,1,0,0,2008.17,1571.98,78.9962,2.06544,600,20,0,2,0,1,0,0,0),
+(@CGUID+245,32820,0,1,1,0,0,-11550,-228,28.285,6.161,600,20,0,2,0,1,0,0,0),
+(@CGUID+246,32820,0,1,1,0,0,2041.98,1535.7,77.489,5.11492,600,20,0,2,0,1,0,0,0),
+(@CGUID+247,32820,0,1,1,0,0,2034.85,1631.35,70.8452,4.14039,600,20,0,2,0,1,0,0,0),
+(@CGUID+248,32820,0,1,1,0,0,1927.26,1692.24,80.6916,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+249,32820,0,1,1,0,0,1998.23,1590.11,80.3288,0.610921,600,20,0,2,0,1,0,0,0),
+(@CGUID+250,32820,0,1,1,0,0,2051.76,1763.78,87.6605,5.93412,600,20,0,2,0,1,0,0,0),
+(@CGUID+251,32820,0,1,1,0,0,2118.09,1685.36,75.11,1.20324,600,20,0,2,0,1,0,0,0),
+(@CGUID+252,32820,0,1,1,0,0,2084.58,1630.43,71.3452,2.4115,600,20,0,2,0,1,0,0,0),
+(@CGUID+253,32820,0,1,1,0,0,2139.72,1655.26,79.3505,2.00735,600,20,0,2,0,1,0,0,0),
+(@CGUID+254,32820,0,1,1,0,0,-10836,-2953,13.941,3.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+255,32820,0,1,1,0,0,-10779,-1194,35.275,0.915,600,20,0,2,0,1,0,0,0),
+(@CGUID+256,32820,0,1,1,0,0,-10575,-3377,22.344,0.017,600,20,0,2,0,1,0,0,0),
+(@CGUID+257,32820,0,1,1,0,0,-10559,1206.87,31.476,5.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+258,32820,0,1,1,0,0,-10181,83.288,24.122,4.197,600,20,0,2,0,1,0,0,0),
+(@CGUID+259,32820,0,1,1,0,0,-10170,227.366,22.462,1.415,600,20,0,2,0,1,0,0,0),
+(@CGUID+260,32820,0,1,1,0,0,-10154,619.3,27.052,4.304,600,20,0,2,0,1,0,0,0),
+(@CGUID+261,32820,0,1,1,0,0,-10149,1053.31,36.284,5.61,600,20,0,2,0,1,0,0,0),
+(@CGUID+262,32820,0,1,1,0,0,-10111,648.959,36.886,5.357,600,20,0,2,0,1,0,0,0),
+(@CGUID+263,32820,0,1,1,0,0,-10107,690.702,32.081,3.962,600,20,0,2,0,1,0,0,0),
+(@CGUID+264,32820,0,1,1,0,0,-10085,687.327,35.046,5.849,600,20,0,2,0,1,0,0,0),
+(@CGUID+265,32820,0,1,1,0,0,-10083,545.919,29.148,0.695,600,20,0,2,0,1,0,0,0),
+(@CGUID+266,32820,0,1,1,0,0,-10071,633.184,39.449,6.174,600,20,0,2,0,1,0,0,0),
+(@CGUID+267,32820,0,1,1,0,0,-10059,155.731,27.684,3.863,600,20,0,2,0,1,0,0,0),
+(@CGUID+268,32820,0,1,1,0,0,-10056,553.198,32.706,2.992,600,20,0,2,0,1,0,0,0),
+(@CGUID+269,32820,0,1,1,0,0,-10055,49.171,31.882,3.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+270,32820,0,1,1,0,0,-10049,48.827,32.967,5.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+271,32820,0,1,1,0,0,-10045,225.886,27.451,3.413,600,20,0,2,0,1,0,0,0),
+(@CGUID+272,32820,0,1,1,0,0,-10043,139.908,28.927,3.603,600,20,0,2,0,1,0,0,0),
+(@CGUID+273,32820,0,1,1,0,0,-10042,139.466,29.229,1.223,600,20,0,2,0,1,0,0,0),
+(@CGUID+274,32820,0,1,1,0,0,-10042,674.065,36.148,2.347,600,20,0,2,0,1,0,0,0),
+(@CGUID+275,32820,0,1,1,0,0,-10039,283.298,30.42,6.267,600,20,0,2,0,1,0,0,0),
+(@CGUID+276,32820,0,1,1,0,0,-10033,72.485,34.809,0.916,600,20,0,2,0,1,0,0,0),
+(@CGUID+277,32820,0,1,1,0,0,-10031,143.328,31.699,0.896,600,20,0,2,0,1,0,0,0),
+(@CGUID+278,32820,0,1,1,0,0,-10027,185.975,29.686,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+279,32820,0,1,1,0,0,-10022,20.283,36.088,5.391,600,20,0,2,0,1,0,0,0),
+(@CGUID+280,32820,0,1,1,0,0,-10019,660.572,36.286,1.038,600,20,0,2,0,1,0,0,0),
+(@CGUID+281,32820,0,1,1,0,0,-10017,654.089,37.149,5.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+282,32820,0,1,1,0,0,-10016,383.118,33.056,5.043,600,20,0,2,0,1,0,0,0),
+(@CGUID+283,32820,0,1,1,0,0,-10014,37.605,35.253,0.768,600,20,0,2,0,1,0,0,0),
+(@CGUID+284,32820,0,1,1,0,0,-10014,108.05,33.946,2.447,600,20,0,2,0,1,0,0,0),
+(@CGUID+285,32820,0,1,1,0,0,-10012,216.285,30.095,1.123,600,20,0,2,0,1,0,0,0),
+(@CGUID+286,32820,0,1,1,0,0,-10010,325.804,32.068,2.688,600,20,0,2,0,1,0,0,0),
+(@CGUID+287,32820,0,1,1,0,0,-10010,582.399,38.946,5.949,600,20,0,2,0,1,0,0,0),
+(@CGUID+288,32820,0,1,1,0,0,-10008,65.212,34.866,0.262,600,20,0,2,0,1,0,0,0),
+(@CGUID+289,32820,0,1,1,0,0,-10008,209.363,30.628,0.802,600,20,0,2,0,1,0,0,0),
+(@CGUID+290,32820,0,1,1,0,0,-10008,225.141,30.128,3.086,600,20,0,2,0,1,0,0,0),
+(@CGUID+291,32820,0,1,1,0,0,-10005,52.82,34.654,0.297,600,20,0,2,0,1,0,0,0),
+(@CGUID+292,32820,0,1,1,0,0,-10002,657.114,36.623,1.815,600,20,0,2,0,1,0,0,0),
+(@CGUID+293,32820,0,1,1,0,0,-9999,206.431,30.798,0.059,600,20,0,2,0,1,0,0,0),
+(@CGUID+294,32820,0,1,1,0,0,-9999,273.547,32.871,0.12,600,20,0,2,0,1,0,0,0),
+(@CGUID+295,32820,0,1,1,0,0,-9997,356.614,35.086,5.825,600,20,0,2,0,1,0,0,0),
+(@CGUID+296,32820,0,1,1,0,0,-9997,665.204,36.668,3.77,600,20,0,2,0,1,0,0,0),
+(@CGUID+297,32820,0,1,1,0,0,-9995,471.122,33.046,5.384,600,20,0,2,0,1,0,0,0),
+(@CGUID+298,32820,0,1,1,0,0,-9993,233.377,30.43,3.647,600,20,0,2,0,1,0,0,0),
+(@CGUID+299,32820,0,1,1,0,0,-9993,298.491,34.711,1.195,600,20,0,2,0,1,0,0,0),
+(@CGUID+300,32820,0,1,1,0,0,-9993,319.126,35.156,5.748,600,20,0,2,0,1,0,0,0),
+(@CGUID+301,32820,0,1,1,0,0,-9991,474.728,33.654,6.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+302,32820,0,1,1,0,0,-9990,310.445,35.333,3.769,600,20,0,2,0,1,0,0,0),
+(@CGUID+303,32820,0,1,1,0,0,-9989,-1478,24.047,5.275,600,20,0,2,0,1,0,0,0),
+(@CGUID+304,32820,0,1,1,0,0,-9989,238.463,30.235,2.087,600,20,0,2,0,1,0,0,0),
+(@CGUID+305,32820,0,1,1,0,0,-9989,270.974,33.069,1.406,600,20,0,2,0,1,0,0,0),
+(@CGUID+306,32820,0,1,1,0,0,-9988,472.114,34.029,1.646,600,20,0,2,0,1,0,0,0),
+(@CGUID+307,32820,0,1,1,0,0,-9987,303.128,34.983,3.132,600,20,0,2,0,1,0,0,0),
+(@CGUID+308,32820,0,1,1,0,0,-9986,191.426,31.517,1.057,600,20,0,2,0,1,0,0,0),
+(@CGUID+309,32820,0,1,1,0,0,-9986,453.746,35.546,0.018,600,20,0,2,0,1,0,0,0),
+(@CGUID+310,32820,0,1,1,0,0,-9985,446.073,36.32,4.079,600,20,0,2,0,1,0,0,0),
+(@CGUID+311,32820,0,1,1,0,0,-9984,448.163,36.195,5.497,600,20,0,2,0,1,0,0,0),
+(@CGUID+312,32820,0,1,1,0,0,-9982,562.627,37.885,1.274,600,20,0,2,0,1,0,0,0),
+(@CGUID+313,32820,0,1,1,0,0,-9981,542.102,37.19,5.026,600,20,0,2,0,1,0,0,0),
+(@CGUID+314,32820,0,1,1,0,0,-9980,156.79,34.349,0.199,600,20,0,2,0,1,0,0,0),
+(@CGUID+315,32820,0,1,1,0,0,-9979,644.991,37.125,5.198,600,20,0,2,0,1,0,0,0),
+(@CGUID+316,32820,0,1,1,0,0,-9976,-24,35.04,2.754,600,20,0,2,0,1,0,0,0),
+(@CGUID+317,32820,0,1,1,0,0,-9975,-27,34.762,4.23,600,20,0,2,0,1,0,0,0),
+(@CGUID+318,32820,0,1,1,0,0,-9975,292.899,36.336,4.86,600,20,0,2,0,1,0,0,0),
+(@CGUID+319,32820,0,1,1,0,0,-9853.68,284.862,37.987,1.89787,600,20,0,2,0,1,0,0,0),
+(@CGUID+320,32820,0,1,1,0,0,-9962,307.319,36.992,0.284,600,20,0,2,0,1,0,0,0),
+(@CGUID+321,32820,0,1,1,0,0,-9961,917.581,44.361,0.689,600,20,0,2,0,1,0,0,0),
+(@CGUID+322,32820,0,1,1,0,0,-9960,-144,24.59,0.618,600,20,0,2,0,1,0,0,0),
+(@CGUID+323,32820,0,1,1,0,0,-9959,925.294,45.374,5.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+324,32820,0,1,1,0,0,-9957,-1421,25.077,0.994,600,20,0,2,0,1,0,0,0),
+(@CGUID+325,32820,0,1,1,0,0,-9957,-1280,24.766,2.885,600,20,0,2,0,1,0,0,0),
+(@CGUID+326,32820,0,1,1,0,0,-9957,-274,26.367,3.351,600,20,0,2,0,1,0,0,0),
+(@CGUID+327,32820,0,1,1,0,0,-9957,-46,33.197,3.964,600,20,0,2,0,1,0,0,0),
+(@CGUID+328,32820,0,1,1,0,0,-9955,41.774,33.476,1.127,600,20,0,2,0,1,0,0,0),
+(@CGUID+329,32820,0,1,1,0,0,-9954,554.6,39.256,0.457,600,20,0,2,0,1,0,0,0),
+(@CGUID+330,32820,0,1,1,0,0,-9952,-133,25.452,3.594,600,20,0,2,0,1,0,0,0),
+(@CGUID+331,32820,0,1,1,0,0,-9952,-19,34.434,5.494,600,20,0,2,0,1,0,0,0),
+(@CGUID+332,32820,0,1,1,0,0,-9951,675.731,32.108,3.045,600,20,0,2,0,1,0,0,0),
+(@CGUID+333,32820,0,1,1,0,0,-9950,413.263,35.043,3.409,600,20,0,2,0,1,0,0,0),
+(@CGUID+334,32820,0,1,1,0,0,-9950,615.613,37.291,1.169,600,20,0,2,0,1,0,0,0),
+(@CGUID+335,32820,0,1,1,0,0,-9950,621.918,37.356,5.061,600,20,0,2,0,1,0,0,0),
+(@CGUID+336,32820,0,1,1,0,0,-9948,-55,32.847,5.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+337,32820,0,1,1,0,0,-9948,-20,34.2,5.984,600,20,0,2,0,1,0,0,0),
+(@CGUID+338,32820,0,1,1,0,0,-9947,-44,33.23,1.308,600,20,0,2,0,1,0,0,0),
+(@CGUID+339,32820,0,1,1,0,0,-9946,129.134,33.365,0.596,600,20,0,2,0,1,0,0,0),
+(@CGUID+340,32820,0,1,1,0,0,-9946,604.266,38.356,1.857,600,20,0,2,0,1,0,0,0),
+(@CGUID+341,32820,0,1,1,0,0,-9958.61,-153.27,22.3896,5.7039,600,20,0,2,0,1,0,0,0),
+(@CGUID+342,32820,0,1,1,0,0,-9942,-1560,25.45,2.348,600,20,0,2,0,1,0,0,0),
+(@CGUID+343,32820,0,1,1,0,0,-9937,650.755,33.537,0.565,600,20,0,2,0,1,0,0,0),
+(@CGUID+344,32820,0,1,1,0,0,-9936,583.854,37.895,3.957,600,20,0,2,0,1,0,0,0),
+(@CGUID+345,32820,0,1,1,0,0,-9933,-1164,20.941,4.451,600,20,0,2,0,1,0,0,0),
+(@CGUID+346,32820,0,1,1,0,0,-9933,-1093,23.46,6.133,600,20,0,2,0,1,0,0,0),
+(@CGUID+347,32820,0,1,1,0,0,-9931,-45,30.883,5.497,600,20,0,2,0,1,0,0,0),
+(@CGUID+348,32820,0,1,1,0,0,-9929,-1157,22.215,3.421,600,20,0,2,0,1,0,0,0),
+(@CGUID+349,32820,0,1,1,0,0,-9929,-1098,24.09,2.897,600,20,0,2,0,1,0,0,0),
+(@CGUID+350,32820,0,1,1,0,0,-9928,-1452,27.62,1.308,600,20,0,2,0,1,0,0,0),
+(@CGUID+351,32820,0,1,1,0,0,-9925,-90,29.881,0.517,600,20,0,2,0,1,0,0,0),
+(@CGUID+352,32820,0,1,1,0,0,-9924,-979,20.854,2.209,600,20,0,2,0,1,0,0,0),
+(@CGUID+353,32820,0,1,1,0,0,-9924,38.387,32.595,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+354,32820,0,1,1,0,0,-9923,-1477,24.17,2.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+355,32820,0,1,1,0,0,-9923,79.156,32.697,3.526,600,20,0,2,0,1,0,0,0),
+(@CGUID+356,32820,0,1,1,0,0,-9921,-1244,25.03,2.628,600,20,0,2,0,1,0,0,0),
+(@CGUID+357,32820,0,1,1,0,0,-9920,-419,24.92,3.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+358,32820,0,1,1,0,0,-9920,613.934,40.759,3.77,600,20,0,2,0,1,0,0,0),
+(@CGUID+359,32820,0,1,1,0,0,-9919,-64,30.693,1.277,600,20,0,2,0,1,0,0,0),
+(@CGUID+360,32820,0,1,1,0,0,-9918,-839,20.029,1.622,600,20,0,2,0,1,0,0,0),
+(@CGUID+361,32820,0,1,1,0,0,-9918,42.296,32.719,2.63,600,20,0,2,0,1,0,0,0),
+(@CGUID+362,32820,0,1,1,0,0,-9918,415.128,35.311,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+363,32820,0,1,1,0,0,-9917,599.298,39.564,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+364,32820,0,1,1,0,0,-9914,-1657,22.859,4.768,600,20,0,2,0,1,0,0,0),
+(@CGUID+365,32820,0,1,1,0,0,-9914,-1056,25.676,4.699,600,20,0,2,0,1,0,0,0),
+(@CGUID+366,32820,0,1,1,0,0,-9914,-911,23.237,2.325,600,20,0,2,0,1,0,0,0),
+(@CGUID+367,32820,0,1,1,0,0,-9913,646.473,36.822,4.221,600,20,0,2,0,1,0,0,0),
+(@CGUID+368,32820,0,1,1,0,0,-9911,-377,31.405,5.939,600,20,0,2,0,1,0,0,0),
+(@CGUID+369,32820,0,1,1,0,0,-9911,456.769,34.47,2.141,600,20,0,2,0,1,0,0,0),
+(@CGUID+370,32820,0,1,1,0,0,-9910,-894,23.534,0.697,600,20,0,2,0,1,0,0,0),
+(@CGUID+371,32820,0,1,1,0,0,-9908,-1489,26.38,5.963,600,20,0,2,0,1,0,0,0),
+(@CGUID+372,32820,0,1,1,0,0,-9907,-331,33.75,3.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+373,32820,0,1,1,0,0,-9906,-56,29.896,0.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+374,32820,0,1,1,0,0,-9902,81.655,32.322,5.607,600,20,0,2,0,1,0,0,0),
+(@CGUID+375,32820,0,1,1,0,0,-9901,-1281,32.436,4.133,600,20,0,2,0,1,0,0,0),
+(@CGUID+376,32820,0,1,1,0,0,-9901,-303,34.373,0.437,600,20,0,2,0,1,0,0,0),
+(@CGUID+377,32820,0,1,1,0,0,-9896,-1061,28.464,5.99,600,20,0,2,0,1,0,0,0),
+(@CGUID+378,32820,0,1,1,0,0,-9896,329.928,36.451,1.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+379,32820,0,1,1,0,0,-9895,-1281,33.821,4.304,600,20,0,2,0,1,0,0,0),
+(@CGUID+380,32820,0,1,1,0,0,-9892,-1359,34.463,6.268,600,20,0,2,0,1,0,0,0),
+(@CGUID+381,32820,0,1,1,0,0,-9892,-296,34.618,3.511,600,20,0,2,0,1,0,0,0),
+(@CGUID+382,32820,0,1,1,0,0,-9891,-291,34.098,3.514,600,20,0,2,0,1,0,0,0),
+(@CGUID+383,32820,0,1,1,0,0,-9890,-1332,32.508,3.66,600,20,0,2,0,1,0,0,0),
+(@CGUID+384,32820,0,1,1,0,0,-9890,338.467,36.649,2.758,600,20,0,2,0,1,0,0,0),
+(@CGUID+385,32820,0,1,1,0,0,-9770.83,279.166,43.1248,0.1198,600,20,0,2,0,1,0,0,0),
+(@CGUID+386,32820,0,1,1,0,0,-9833.96,188.524,22.577,5.79556,600,20,0,2,0,1,0,0,0),
+(@CGUID+387,32820,0,1,1,0,0,-9887,-749,22.768,1.657,600,20,0,2,0,1,0,0,0),
+(@CGUID+388,32820,0,1,1,0,0,-9884,-299,34.827,2.17,600,20,0,2,0,1,0,0,0),
+(@CGUID+389,32820,0,1,1,0,0,-9883,-1496,29.322,2.166,600,20,0,2,0,1,0,0,0),
+(@CGUID+390,32820,0,1,1,0,0,-9883,-1017,29.945,0.262,600,20,0,2,0,1,0,0,0),
+(@CGUID+391,32820,0,1,1,0,0,-9882,-446,30.028,3.263,600,20,0,2,0,1,0,0,0),
+(@CGUID+392,32820,0,1,1,0,0,-9882,685.787,34.208,0.54,600,20,0,2,0,1,0,0,0),
+(@CGUID+393,32820,0,1,1,0,0,-9881,322.619,37.824,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+394,32820,0,1,1,0,0,-9879,-816,28.519,1.704,600,20,0,2,0,1,0,0,0),
+(@CGUID+395,32820,0,1,1,0,0,-9878,-309,36.016,0.577,600,20,0,2,0,1,0,0,0),
+(@CGUID+396,32820,0,1,1,0,0,-9876,-1097,27.52,0.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+397,32820,0,1,1,0,0,-9876,-15,26.9,1.334,600,20,0,2,0,1,0,0,0),
+(@CGUID+398,32820,0,1,1,0,0,-9870,-1232,31.674,2.685,600,20,0,2,0,1,0,0,0),
+(@CGUID+399,32820,0,1,1,0,0,-9869,-1537,26.111,0.722,600,20,0,2,0,1,0,0,0),
+(@CGUID+400,32820,0,1,1,0,0,-9867,-917,36.258,0.774,600,20,0,2,0,1,0,0,0),
+(@CGUID+401,32820,0,1,1,0,0,-9953.17,491.623,31.376,1.92737,600,20,0,2,0,1,0,0,0),
+(@CGUID+402,32820,0,1,1,0,0,-9865,-222,35.965,0.876,600,20,0,2,0,1,0,0,0),
+(@CGUID+403,32820,0,1,1,0,0,-9864,-190,35.805,5.313,600,20,0,2,0,1,0,0,0),
+(@CGUID+404,32820,0,1,1,0,0,-9864,932.292,31.144,4.844,600,20,0,2,0,1,0,0,0),
+(@CGUID+405,32820,0,1,1,0,0,-9862,-1481,32.855,0.064,600,20,0,2,0,1,0,0,0),
+(@CGUID+406,32820,0,1,1,0,0,-9861,-124,28.832,2.762,600,20,0,2,0,1,0,0,0),
+(@CGUID+407,32820,0,1,1,0,0,-9859.72,-226.423,35.9223,0.545298,600,20,0,2,0,1,0,0,0),
+(@CGUID+408,32820,0,1,1,0,0,-9860,-129,29.292,0.763,600,20,0,2,0,1,0,0,0),
+(@CGUID+409,32820,0,1,1,0,0,-9860,471.51,36.643,4.627,600,20,0,2,0,1,0,0,0),
+(@CGUID+410,32820,0,1,1,0,0,-9860,924.283,30.318,1.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+411,32820,0,1,1,0,0,-9859,922.723,30.178,0.581,600,20,0,2,0,1,0,0,0),
+(@CGUID+412,32820,0,1,1,0,0,-9858,365.972,36.337,1.815,600,20,0,2,0,1,0,0,0),
+(@CGUID+413,32820,0,1,1,0,0,-9857,-930,37.532,2.233,600,20,0,2,0,1,0,0,0),
+(@CGUID+414,32820,0,1,1,0,0,-9857,-715,30.994,3.81,600,20,0,2,0,1,0,0,0),
+(@CGUID+415,32820,0,1,1,0,0,-9857,-135,29.663,6.193,600,20,0,2,0,1,0,0,0),
+(@CGUID+416,32820,0,1,1,0,0,-9857,671.134,37.354,2.036,600,20,0,2,0,1,0,0,0),
+(@CGUID+417,32820,0,1,1,0,0,-9856,-1199,32.526,2.099,600,20,0,2,0,1,0,0,0),
+(@CGUID+418,32820,0,1,1,0,0,-9856,-920,38.461,1.038,600,20,0,2,0,1,0,0,0),
+(@CGUID+419,32820,0,1,1,0,0,-9855,-1380,40.682,1.781,600,20,0,2,0,1,0,0,0),
+(@CGUID+420,32820,0,1,1,0,0,-9854,-993,36.544,1.231,600,20,0,2,0,1,0,0,0),
+(@CGUID+421,32820,0,1,1,0,0,-9853,-1134,27.79,0.14,600,20,0,2,0,1,0,0,0),
+(@CGUID+422,32820,0,1,1,0,0,-9851,-913,39.336,2.219,600,20,0,2,0,1,0,0,0),
+(@CGUID+423,32820,0,1,1,0,0,-9850,-593,20.515,4.231,600,20,0,2,0,1,0,0,0),
+(@CGUID+424,32820,0,1,1,0,0,-9850,644.698,39.705,3.528,600,20,0,2,0,1,0,0,0),
+(@CGUID+425,32820,0,1,1,0,0,-9804.73,240.662,41.1706,4.86251,600,20,0,2,0,1,0,0,0),
+(@CGUID+426,32820,0,1,1,0,0,-9848,-1652,22.788,0.41,600,20,0,2,0,1,0,0,0),
+(@CGUID+427,32820,0,1,1,0,0,-9847,-1585,26.385,2.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+428,32820,0,1,1,0,0,-9845,-924,40.598,6.244,600,20,0,2,0,1,0,0,0),
+(@CGUID+429,32820,0,1,1,0,0,-9843,-1486,35.741,4.619,600,20,0,2,0,1,0,0,0),
+(@CGUID+430,32820,0,1,1,0,0,-9841,-514,28.703,0.697,600,20,0,2,0,1,0,0,0),
+(@CGUID+431,32820,0,1,1,0,0,-9840,-1050,34.617,4.469,600,20,0,2,0,1,0,0,0),
+(@CGUID+432,32820,0,1,1,0,0,-9840,-839,38.619,4.48,600,20,0,2,0,1,0,0,0),
+(@CGUID+433,32820,0,1,1,0,0,-9840,94.95,38.219,3.128,600,20,0,2,0,1,0,0,0),
+(@CGUID+434,32820,0,1,1,0,0,-9839,-1016,36.34,3.464,600,20,0,2,0,1,0,0,0),
+(@CGUID+435,32820,0,1,1,0,0,-9836,-1589,27.767,5.994,600,20,0,2,0,1,0,0,0),
+(@CGUID+436,32820,0,1,1,0,0,-9836,-1503,39.312,5.869,600,20,0,2,0,1,0,0,0),
+(@CGUID+437,32820,0,1,1,0,0,-9835,-1180,33.735,6.256,600,20,0,2,0,1,0,0,0),
+(@CGUID+438,32820,0,1,1,0,0,-9835,-1014,36.715,3.416,600,20,0,2,0,1,0,0,0),
+(@CGUID+439,32820,0,1,1,0,0,-9834,-1641,27.372,0.369,600,20,0,2,0,1,0,0,0),
+(@CGUID+440,32820,0,1,1,0,0,-9843.61,198.627,22.7217,5.28962,600,20,0,2,0,1,0,0,0),
+(@CGUID+441,32820,0,1,1,0,0,-9832,-1498,39.74,5.377,600,20,0,2,0,1,0,0,0),
+(@CGUID+442,32820,0,1,1,0,0,-9831,-919,41.841,3.293,600,20,0,2,0,1,0,0,0),
+(@CGUID+443,32820,0,1,1,0,0,-9829,-546,26.926,2.84,600,20,0,2,0,1,0,0,0),
+(@CGUID+444,32820,0,1,1,0,0,-9829,471.386,36.938,0.335,600,20,0,2,0,1,0,0,0),
+(@CGUID+445,32820,0,1,1,0,0,-9829,562.429,39.357,6.275,600,20,0,2,0,1,0,0,0),
+(@CGUID+446,32820,0,1,1,0,0,-9826,-1192,35.56,4.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+447,32820,0,1,1,0,0,-9826,261.761,40.683,1.78,600,20,0,2,0,1,0,0,0),
+(@CGUID+448,32820,0,1,1,0,0,-9826,285.082,38.577,1.575,600,20,0,2,0,1,0,0,0),
+(@CGUID+449,32820,0,1,1,0,0,-9826,543.539,36.069,1.571,600,20,0,2,0,1,0,0,0),
+(@CGUID+450,32820,0,1,1,0,0,-9826,550.792,37.732,4.378,600,20,0,2,0,1,0,0,0),
+(@CGUID+451,32820,0,1,1,0,0,-9825,-358,54.618,2.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+452,32820,0,1,1,0,0,-9825,269.418,39.451,3.454,600,20,0,2,0,1,0,0,0),
+(@CGUID+453,32820,0,1,1,0,0,-9824,81.413,3.073,4.745,600,20,0,2,0,1,0,0,0),
+(@CGUID+454,32820,0,1,1,0,0,-9823,39.419,32.713,5.261,600,20,0,2,0,1,0,0,0),
+(@CGUID+455,32820,0,1,1,0,0,-9822,180.986,22.808,0.379,600,20,0,2,0,1,0,0,0),
+(@CGUID+456,32820,0,1,1,0,0,-9821,-1582,30.796,5.815,600,20,0,2,0,1,0,0,0),
+(@CGUID+457,32820,0,1,1,0,0,-9821,-760,37.255,3.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+458,32820,0,1,1,0,0,-9821,-235,37.324,4.182,600,20,0,2,0,1,0,0,0),
+(@CGUID+459,32820,0,1,1,0,0,-9821,270.262,39.826,3.543,600,20,0,2,0,1,0,0,0),
+(@CGUID+460,32820,0,1,1,0,0,-9820,-1186,35.621,0.891,600,20,0,2,0,1,0,0,0),
+(@CGUID+461,32820,0,1,1,0,0,-9806.61,181.334,22.481,0.226278,600,20,0,2,0,1,0,0,0),
+(@CGUID+462,32820,0,1,1,0,0,-9819,-1014,38.261,2.284,600,20,0,2,0,1,0,0,0),
+(@CGUID+463,32820,0,1,1,0,0,-9819,271.888,39.745,3.47,600,20,0,2,0,1,0,0,0),
+(@CGUID+464,32820,0,1,1,0,0,-9819,448.569,36.18,4.211,600,20,0,2,0,1,0,0,0),
+(@CGUID+465,32820,0,1,1,0,0,-9818,-173,33.968,0.393,600,20,0,2,0,1,0,0,0),
+(@CGUID+466,32820,0,1,1,0,0,-9818,-77,25.713,3.213,600,20,0,2,0,1,0,0,0),
+(@CGUID+467,32820,0,1,1,0,0,-9818,470.864,36.726,3.236,600,20,0,2,0,1,0,0,0),
+(@CGUID+468,32820,0,1,1,0,0,-9818,610.676,41.971,1.021,600,20,0,2,0,1,0,0,0),
+(@CGUID+469,32820,0,1,1,0,0,-9817,-856,39.261,5.935,600,20,0,2,0,1,0,0,0),
+(@CGUID+470,32820,0,1,1,0,0,-9817,-291,41.486,3.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+471,32820,0,1,1,0,0,-9817,-81,26.183,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+472,32820,0,1,1,0,0,-9817,49.706,34.991,3.594,600,20,0,2,0,1,0,0,0),
+(@CGUID+473,32820,0,1,1,0,0,-9817,139.933,5.035,4.008,600,20,0,2,0,1,0,0,0),
+(@CGUID+474,32820,0,1,1,0,0,-9817,415.699,36.716,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+475,32820,0,1,1,0,0,-9816,-184,36.307,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+476,32820,0,1,1,0,0,-9816,451.863,36.203,4.279,600,20,0,2,0,1,0,0,0),
+(@CGUID+477,32820,0,1,1,0,0,-9815,-1161,34.012,4.563,600,20,0,2,0,1,0,0,0),
+(@CGUID+478,32820,0,1,1,0,0,-9815,-1034,37.253,4.324,600,20,0,2,0,1,0,0,0),
+(@CGUID+479,32820,0,1,1,0,0,-9815,-120,28.903,6.033,600,20,0,2,0,1,0,0,0),
+(@CGUID+480,32820,0,1,1,0,0,-9813,-1023,37.602,1.692,600,20,0,2,0,1,0,0,0),
+(@CGUID+481,32820,0,1,1,0,0,-9812,-1007,39.106,6.136,600,20,0,2,0,1,0,0,0),
+(@CGUID+482,32820,0,1,1,0,0,-9809,-8,27.107,2.378,600,20,0,2,0,1,0,0,0),
+(@CGUID+483,32820,0,1,1,0,0,-9818.85,181.23,22.8492,3.23508,600,20,0,2,0,1,0,0,0),
+(@CGUID+484,32820,0,1,1,0,0,-9808,-1257,35.589,3.087,600,20,0,2,0,1,0,0,0),
+(@CGUID+485,32820,0,1,1,0,0,-9808,-931,39.855,0.515,600,20,0,2,0,1,0,0,0),
+(@CGUID+486,32820,0,1,1,0,0,-9808,700.085,33.112,4.485,600,20,0,2,0,1,0,0,0),
+(@CGUID+487,32820,0,1,1,0,0,-9806,-932,39.941,1.082,600,20,0,2,0,1,0,0,0),
+(@CGUID+488,32820,0,1,1,0,0,-9806,-927,39.94,4.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+489,32820,0,1,1,0,0,-9806,444.748,36.487,4.376,600,20,0,2,0,1,0,0,0),
+(@CGUID+490,32820,0,1,1,0,0,-9803,369.894,39.797,0.106,600,20,0,2,0,1,0,0,0),
+(@CGUID+491,32820,0,1,1,0,0,-9803,698.179,33.112,4.377,600,20,0,2,0,1,0,0,0),
+(@CGUID+492,32820,0,1,1,0,0,-9801,-339,50.996,2.859,600,20,0,2,0,1,0,0,0),
+(@CGUID+493,32820,0,1,1,0,0,-9828.89,215.772,15.5806,4.06545,600,20,0,2,0,1,0,0,0),
+(@CGUID+494,32820,0,1,1,0,0,-9801,428.308,37.763,5.009,600,20,0,2,0,1,0,0,0),
+(@CGUID+495,32820,0,1,1,0,0,-9800,-1545,40.87,6.055,600,20,0,2,0,1,0,0,0),
+(@CGUID+496,32820,0,1,1,0,0,-9800,-69,25.769,2.678,600,20,0,2,0,1,0,0,0),
+(@CGUID+497,32820,0,1,1,0,0,-9799,-84,25.817,2.924,600,20,0,2,0,1,0,0,0),
+(@CGUID+498,32820,0,1,1,0,0,-9799,109.791,24.437,2.13,600,20,0,2,0,1,0,0,0),
+(@CGUID+499,32820,0,1,1,0,0,-9825.36,199.121,13.9991,5.394,600,20,0,2,0,1,0,0,0),
+(@CGUID+500,32820,0,1,1,0,0,-9798,-1566,37.678,4.835,600,20,0,2,0,1,0,0,0),
+(@CGUID+501,32820,0,1,1,0,0,-9798,-71,25.992,2.625,600,20,0,2,0,1,0,0,0),
+(@CGUID+502,32820,0,1,1,0,0,-9798,460.417,36.02,1.952,600,20,0,2,0,1,0,0,0),
+(@CGUID+503,32820,0,1,1,0,0,-9797,-1545,41.124,6.074,600,20,0,2,0,1,0,0,0),
+(@CGUID+504,32820,0,1,1,0,0,-9797,99.441,27.848,3.72,600,20,0,2,0,1,0,0,0),
+(@CGUID+505,32820,0,1,1,0,0,-9797,140.117,23.51,0.629,600,20,0,2,0,1,0,0,0),
+(@CGUID+506,32820,0,1,1,0,0,-9796,-1328,44.102,3.989,600,20,0,2,0,1,0,0,0),
+(@CGUID+507,32820,0,1,1,0,0,-9796,-92,26.825,4.658,600,20,0,2,0,1,0,0,0),
+(@CGUID+508,32820,0,1,1,0,0,-9768.37,231.5,46.3995,2.64377,600,20,0,2,0,1,0,0,0),
+(@CGUID+509,32820,0,1,1,0,0,-9795,109.769,46.1,1.688,600,20,0,2,0,1,0,0,0),
+(@CGUID+510,32820,0,1,1,0,0,-9795,470.588,35.875,5.219,600,20,0,2,0,1,0,0,0),
+(@CGUID+511,32820,0,1,1,0,0,-9793,-76,26.349,0.763,600,20,0,2,0,1,0,0,0),
+(@CGUID+512,32820,0,1,1,0,0,-9790,-891,40.109,0.336,600,20,0,2,0,1,0,0,0),
+(@CGUID+513,32820,0,1,1,0,0,-9790,811.494,25.983,5.441,600,20,0,2,0,1,0,0,0),
+(@CGUID+514,32820,0,1,1,0,0,-9789,-52,26.779,3.638,600,20,0,2,0,1,0,0,0),
+(@CGUID+515,32820,0,1,1,0,0,-9788,111.106,46.738,4.66,600,20,0,2,0,1,0,0,0),
+(@CGUID+516,32820,0,1,1,0,0,-9787,-555,32.218,1.918,600,20,0,2,0,1,0,0,0),
+(@CGUID+517,32820,0,1,1,0,0,-9787,446.78,37.712,3.265,600,20,0,2,0,1,0,0,0),
+(@CGUID+518,32820,0,1,1,0,0,-9787,731.342,33.005,2.531,600,20,0,2,0,1,0,0,0),
+(@CGUID+519,32820,0,1,1,0,0,-9786,-338,52.05,3.137,600,20,0,2,0,1,0,0,0),
+(@CGUID+520,32820,0,1,1,0,0,-9785,-1131,35.206,4.418,600,20,0,2,0,1,0,0,0),
+(@CGUID+521,32820,0,1,1,0,0,-9785,-369,53.851,0.932,600,20,0,2,0,1,0,0,0),
+(@CGUID+522,32820,0,1,1,0,0,-9785,-312,47.715,1.767,600,20,0,2,0,1,0,0,0),
+(@CGUID+523,32820,0,1,1,0,0,-9784,-1540,43.124,6.088,600,20,0,2,0,1,0,0,0),
+(@CGUID+524,32820,0,1,1,0,0,-9784,-984,40.225,2.491,600,20,0,2,0,1,0,0,0),
+(@CGUID+525,32820,0,1,1,0,0,-9784,583.306,37.658,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+526,32820,0,1,1,0,0,-9783,-643,38.064,3.106,600,20,0,2,0,1,0,0,0),
+(@CGUID+527,32820,0,1,1,0,0,-9783,-206,40.169,4.714,600,20,0,2,0,1,0,0,0),
+(@CGUID+528,32820,0,1,1,0,0,-9783,108.722,46.037,1.602,600,20,0,2,0,1,0,0,0),
+(@CGUID+529,32820,0,1,1,0,0,-9782,-1214,40.11,4.743,600,20,0,2,0,1,0,0,0),
+(@CGUID+530,32820,0,1,1,0,0,-9781,-340,52.759,6.267,600,20,0,2,0,1,0,0,0),
+(@CGUID+531,32820,0,1,1,0,0,-9781,38.677,34.476,3.719,600,20,0,2,0,1,0,0,0),
+(@CGUID+532,32820,0,1,1,0,0,-9781,818.493,25.876,5.222,600,20,0,2,0,1,0,0,0),
+(@CGUID+533,32820,0,1,1,0,0,-9780,-713,37.885,4.901,600,20,0,2,0,1,0,0,0),
+(@CGUID+534,32820,0,1,1,0,0,-9774,42.294,35.31,3.105,600,20,0,2,0,1,0,0,0),
+(@CGUID+535,32820,0,1,1,0,0,-9773,-877,39.698,0.241,600,20,0,2,0,1,0,0,0),
+(@CGUID+536,32820,0,1,1,0,0,-9773,-663,38.65,4.342,600,20,0,2,0,1,0,0,0),
+(@CGUID+537,32820,0,1,1,0,0,-9773,-625,38.944,4.624,600,20,0,2,0,1,0,0,0),
+(@CGUID+538,32820,0,1,1,0,0,-9773,-85,28.616,5.453,600,20,0,2,0,1,0,0,0),
+(@CGUID+539,32820,0,1,1,0,0,-9772,-741,39.829,5.986,600,20,0,2,0,1,0,0,0),
+(@CGUID+540,32820,0,1,1,0,0,-9771,-857,39.585,4.254,600,20,0,2,0,1,0,0,0),
+(@CGUID+541,32820,0,1,1,0,0,-9771,-579,36.326,3.167,600,20,0,2,0,1,0,0,0),
+(@CGUID+542,32820,0,1,1,0,0,-9771,111.906,47.054,2.732,600,20,0,2,0,1,0,0,0),
+(@CGUID+543,32820,0,1,1,0,0,-9758.04,191.688,51.0349,3.51339,600,20,0,2,0,1,0,0,0),
+(@CGUID+544,32820,0,1,1,0,0,-9770,205.796,46.15,3.377,600,20,0,2,0,1,0,0,0),
+(@CGUID+545,32820,0,1,1,0,0,-9769,-1566,41.704,5.201,600,20,0,2,0,1,0,0,0),
+(@CGUID+546,32820,0,1,1,0,0,-9769,-77,28.542,4.893,600,20,0,2,0,1,0,0,0),
+(@CGUID+547,32820,0,1,1,0,0,-9765,-740,40.328,1.356,600,20,0,2,0,1,0,0,0),
+(@CGUID+548,32820,0,1,1,0,0,-9765,-640,40.579,3.144,600,20,0,2,0,1,0,0,0),
+(@CGUID+549,32820,0,1,1,0,0,-9764,-1627,47.481,2.482,600,20,0,2,0,1,0,0,0),
+(@CGUID+550,32820,0,1,1,0,0,-9764,-580,37.913,5.737,600,20,0,2,0,1,0,0,0),
+(@CGUID+551,32820,0,1,1,0,0,-9763,325.363,43.322,2.428,600,20,0,2,0,1,0,0,0),
+(@CGUID+552,32820,0,1,1,0,0,-9762,54.415,38.711,1.661,600,20,0,2,0,1,0,0,0),
+(@CGUID+553,32820,0,1,1,0,0,-9761,-1015,40.758,1.741,600,20,0,2,0,1,0,0,0),
+(@CGUID+554,32820,0,1,1,0,0,-9761,-948,39.179,5.835,600,20,0,2,0,1,0,0,0),
+(@CGUID+555,32820,0,1,1,0,0,-9759,-643,40.987,6.268,600,20,0,2,0,1,0,0,0),
+(@CGUID+556,32820,0,1,1,0,0,-9758,-137,32.806,0.543,600,20,0,2,0,1,0,0,0),
+(@CGUID+557,32820,0,1,1,0,0,-9758,-73,30.879,3.776,600,20,0,2,0,1,0,0,0),
+(@CGUID+558,32820,0,1,1,0,0,-9757,-734,40.014,1.117,600,20,0,2,0,1,0,0,0),
+(@CGUID+559,32820,0,1,1,0,0,-9757,212.414,47.7,0.285,600,20,0,2,0,1,0,0,0),
+(@CGUID+560,32820,0,1,1,0,0,-9756,-743,41.258,3.814,600,20,0,2,0,1,0,0,0),
+(@CGUID+561,32820,0,1,1,0,0,-9754,-1314,47.153,3.479,600,20,0,2,0,1,0,0,0),
+(@CGUID+562,32820,0,1,1,0,0,-9754,83.393,42.845,3.962,600,20,0,2,0,1,0,0,0),
+(@CGUID+563,32820,0,1,1,0,0,-9753,-265,46.591,4.372,600,20,0,2,0,1,0,0,0),
+(@CGUID+564,32820,0,1,1,0,0,-9752,-1450,49.442,5.795,600,20,0,2,0,1,0,0,0),
+(@CGUID+565,32820,0,1,1,0,0,-9752,-219,44.307,5.562,600,20,0,2,0,1,0,0,0),
+(@CGUID+566,32820,0,1,1,0,0,-9752,317.84,44.536,1.763,600,20,0,2,0,1,0,0,0),
+(@CGUID+567,32820,0,1,1,0,0,-9751,-747,41.764,5.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+568,32820,0,1,1,0,0,-9750,-749,41.764,5.17,600,20,0,2,0,1,0,0,0),
+(@CGUID+569,32820,0,1,1,0,0,-9750,317.248,44.883,6.075,600,20,0,2,0,1,0,0,0),
+(@CGUID+570,32820,0,1,1,0,0,-9750,520.191,35.408,4.794,600,20,0,2,0,1,0,0,0),
+(@CGUID+571,32820,0,1,1,0,0,-9749,-147,35.487,1.987,600,20,0,2,0,1,0,0,0),
+(@CGUID+572,32820,0,1,1,0,0,-9826.07,186.314,12.2822,1.2734,600,20,0,2,0,1,0,0,0),
+(@CGUID+573,32820,0,1,1,0,0,-9748,-753,41.264,5.73,600,20,0,2,0,1,0,0,0),
+(@CGUID+574,32820,0,1,1,0,0,-9748,-348,54.392,0.792,600,20,0,2,0,1,0,0,0),
+(@CGUID+575,32820,0,1,1,0,0,-9748,311.153,45.449,6.103,600,20,0,2,0,1,0,0,0),
+(@CGUID+576,32820,0,1,1,0,0,-9747,-1530,49.29,4.695,600,20,0,2,0,1,0,0,0),
+(@CGUID+577,32820,0,1,1,0,0,-9747,-918,39.343,6.169,600,20,0,2,0,1,0,0,0),
+(@CGUID+578,32820,0,1,1,0,0,-9747,103.541,45.928,0.122,600,20,0,2,0,1,0,0,0),
+(@CGUID+579,32820,0,1,1,0,0,-9851.49,213.185,14.1337,2.54401,600,20,0,2,0,1,0,0,0),
+(@CGUID+580,32820,0,1,1,0,0,-9744,87.153,12.71,6.018,600,20,0,2,0,1,0,0,0),
+(@CGUID+581,32820,0,1,1,0,0,-9743,-361,53.892,3.28,600,20,0,2,0,1,0,0,0),
+(@CGUID+582,32820,0,1,1,0,0,-9743,-1,37.689,2.205,600,20,0,2,0,1,0,0,0),
+(@CGUID+583,32820,0,1,1,0,0,-9743,430.639,38.11,3.056,600,20,0,2,0,1,0,0,0),
+(@CGUID+584,32820,0,1,1,0,0,-9742,-759,41.002,4.724,600,20,0,2,0,1,0,0,0),
+(@CGUID+585,32820,0,1,1,0,0,-9742,-725,40.918,1.935,600,20,0,2,0,1,0,0,0),
+(@CGUID+586,32820,0,1,1,0,0,-9741,-837,40.12,4.08,600,20,0,2,0,1,0,0,0),
+(@CGUID+587,32820,0,1,1,0,0,-9741,165.586,50.495,0.571,600,20,0,2,0,1,0,0,0),
+(@CGUID+588,32820,0,1,1,0,0,-9903.68,226.756,16.4163,0.336615,600,20,0,2,0,1,0,0,0),
+(@CGUID+589,32820,0,1,1,0,0,-9739,518.949,35.619,1.928,600,20,0,2,0,1,0,0,0),
+(@CGUID+590,32820,0,1,1,0,0,-9738,-1213,47.634,2.495,600,20,0,2,0,1,0,0,0),
+(@CGUID+591,32820,0,1,1,0,0,-9738,921.018,26.584,5.289,600,20,0,2,0,1,0,0,0),
+(@CGUID+592,32820,0,1,1,0,0,-9735,-989,42.063,0.381,600,20,0,2,0,1,0,0,0),
+(@CGUID+593,32820,0,1,1,0,0,-9735,-79,34.112,3.089,600,20,0,2,0,1,0,0,0),
+(@CGUID+594,32820,0,1,1,0,0,-9735,138.105,19.025,0.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+595,32820,0,1,1,0,0,-9734,114.787,24.424,5.405,600,20,0,2,0,1,0,0,0),
+(@CGUID+596,32820,0,1,1,0,0,-9731,115.349,24.41,4.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+597,32820,0,1,1,0,0,-9731,447.916,37.187,2.678,600,20,0,2,0,1,0,0,0),
+(@CGUID+598,32820,0,1,1,0,0,-9730,-1466,52.464,4.684,600,20,0,2,0,1,0,0,0),
+(@CGUID+599,32820,0,1,1,0,0,-9730,-259,47.41,2.503,600,20,0,2,0,1,0,0,0),
+(@CGUID+600,32820,0,1,1,0,0,-9730,103.062,46.948,5.309,600,20,0,2,0,1,0,0,0),
+(@CGUID+601,32820,0,1,1,0,0,-9730,341.769,43.205,2.423,600,20,0,2,0,1,0,0,0),
+(@CGUID+602,32820,0,1,1,0,0,-9729,437.74,37.602,2.513,600,20,0,2,0,1,0,0,0),
+(@CGUID+603,32820,0,1,1,0,0,-9728,-1553,52.11,6.186,600,20,0,2,0,1,0,0,0),
+(@CGUID+604,32820,0,1,1,0,0,-9728,-746,41.971,0.902,600,20,0,2,0,1,0,0,0),
+(@CGUID+605,32820,0,1,1,0,0,-9728,290.418,48.336,1.483,600,20,0,2,0,1,0,0,0),
+(@CGUID+606,32820,0,1,1,0,0,-9727,-1089,38.716,2.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+607,32820,0,1,1,0,0,-9727,40.062,39.599,3.984,600,20,0,2,0,1,0,0,0),
+(@CGUID+608,32820,0,1,1,0,0,-9727,474.598,35.212,2.846,600,20,0,2,0,1,0,0,0),
+(@CGUID+609,32820,0,1,1,0,0,-9727,720.553,28.913,6.131,600,20,0,2,0,1,0,0,0),
+(@CGUID+610,32820,0,1,1,0,0,-9726,-1129,39.08,2.512,600,20,0,2,0,1,0,0,0),
+(@CGUID+611,32820,0,1,1,0,0,-9726,712.112,29.85,2.776,600,20,0,2,0,1,0,0,0),
+(@CGUID+612,32820,0,1,1,0,0,-9724,-1310,48.816,0.756,600,20,0,2,0,1,0,0,0),
+(@CGUID+613,32820,0,1,1,0,0,-9724,-1112,40.213,3.67,600,20,0,2,0,1,0,0,0),
+(@CGUID+614,32820,0,1,1,0,0,-9724,-930,38.308,2.72,600,20,0,2,0,1,0,0,0),
+(@CGUID+615,32820,0,1,1,0,0,-9723,-581,45.81,5.94,600,20,0,2,0,1,0,0,0),
+(@CGUID+616,32820,0,1,1,0,0,-9722,128.517,47.234,0.323,600,20,0,2,0,1,0,0,0),
+(@CGUID+617,32820,0,1,1,0,0,-9722,197.088,50.27,4.67,600,20,0,2,0,1,0,0,0),
+(@CGUID+618,32820,0,1,1,0,0,-9722,256.462,49.063,1.155,600,20,0,2,0,1,0,0,0),
+(@CGUID+619,32820,0,1,1,0,0,-9721,23.362,39.87,5.61,600,20,0,2,0,1,0,0,0),
+(@CGUID+620,32820,0,1,1,0,0,-9721,428.239,38.853,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+621,32820,0,1,1,0,0,-9721,745.296,30.548,5.925,600,20,0,2,0,1,0,0,0),
+(@CGUID+622,32820,0,1,1,0,0,-9720,-1205,49.588,5.101,600,20,0,2,0,1,0,0,0),
+(@CGUID+623,32820,0,1,1,0,0,-9720,429.388,38.745,2.756,600,20,0,2,0,1,0,0,0),
+(@CGUID+624,32820,0,1,1,0,0,-9719,-395,50.859,0.383,600,20,0,2,0,1,0,0,0),
+(@CGUID+625,32820,0,1,1,0,0,-9718,-85,36.09,3.028,600,20,0,2,0,1,0,0,0),
+(@CGUID+626,32820,0,1,1,0,0,-9718,371.821,42.544,5.649,600,20,0,2,0,1,0,0,0),
+(@CGUID+627,32820,0,1,1,0,0,-9717,-1490,50.84,4.318,600,20,0,2,0,1,0,0,0),
+(@CGUID+628,32820,0,1,1,0,0,-9717,-1303,50.725,4.052,600,20,0,2,0,1,0,0,0),
+(@CGUID+629,32820,0,1,1,0,0,-9717,755.86,30.836,4.349,600,20,0,2,0,1,0,0,0),
+(@CGUID+630,32820,0,1,1,0,0,-9716,-1144,40.123,0.638,600,20,0,2,0,1,0,0,0),
+(@CGUID+631,32820,0,1,1,0,0,-9716,-818,43.924,1.439,600,20,0,2,0,1,0,0,0),
+(@CGUID+632,32820,0,1,1,0,0,-9715,-1537,54.61,0.335,600,20,0,2,0,1,0,0,0),
+(@CGUID+633,32820,0,1,1,0,0,-9715,-716,45.383,1.985,600,20,0,2,0,1,0,0,0),
+(@CGUID+634,32820,0,1,1,0,0,-9715,-245,48.313,0.157,600,20,0,2,0,1,0,0,0),
+(@CGUID+635,32820,0,1,1,0,0,-9714,-7,38.999,6.216,600,20,0,2,0,1,0,0,0),
+(@CGUID+636,32820,0,1,1,0,0,-9714,410.541,40.489,5.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+637,32820,0,1,1,0,0,-9713,-646,46.941,5.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+638,32820,0,1,1,0,0,-9712,-660,46.67,0.96,600,20,0,2,0,1,0,0,0),
+(@CGUID+639,32820,0,1,1,0,0,-9712,-181,43.842,3.608,600,20,0,2,0,1,0,0,0),
+(@CGUID+640,32820,0,1,1,0,0,-9712,-113,36.01,5.03,600,20,0,2,0,1,0,0,0),
+(@CGUID+641,32820,0,1,1,0,0,-9712,579.657,37.595,0.698,600,20,0,2,0,1,0,0,0),
+(@CGUID+642,32820,0,1,1,0,0,-9711,-1546,56.61,1.215,600,20,0,2,0,1,0,0,0),
+(@CGUID+643,32820,0,1,1,0,0,-9711,245.09,49.688,5.531,600,20,0,2,0,1,0,0,0),
+(@CGUID+644,32820,0,1,1,0,0,-9709,-515,53.228,5.221,600,20,0,2,0,1,0,0,0),
+(@CGUID+645,32820,0,1,1,0,0,-9708,-375,53.215,4.519,600,20,0,2,0,1,0,0,0),
+(@CGUID+646,32820,0,1,1,0,0,-9708,726.474,30.275,0.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+647,32820,0,1,1,0,0,-9707,-1225,54.113,6.001,600,20,0,2,0,1,0,0,0),
+(@CGUID+648,32820,0,1,1,0,0,-9706,-448,51.78,3.097,600,20,0,2,0,1,0,0,0),
+(@CGUID+649,32820,0,1,1,0,0,-9706,-50,38.471,0.338,600,20,0,2,0,1,0,0,0),
+(@CGUID+650,32820,0,1,1,0,0,-9705,-986,41.854,0.701,600,20,0,2,0,1,0,0,0),
+(@CGUID+651,32820,0,1,1,0,0,-9729.64,590.888,32.8345,2.93918,600,20,0,2,0,1,0,0,0),
+(@CGUID+652,32820,0,1,1,0,0,-9703,-194,45.877,3.77,600,20,0,2,0,1,0,0,0),
+(@CGUID+653,32820,0,1,1,0,0,-9701,-343,56.395,0.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+654,32820,0,1,1,0,0,-9699,-1219,53.988,3.839,600,20,0,2,0,1,0,0,0),
+(@CGUID+655,32820,0,1,1,0,0,-9699,754.402,31.08,4.664,600,20,0,2,0,1,0,0,0),
+(@CGUID+656,32820,0,1,1,0,0,-9698,-79,38.762,4.605,600,20,0,2,0,1,0,0,0),
+(@CGUID+657,32820,0,1,1,0,0,-9698,-73,38.956,5.983,600,20,0,2,0,1,0,0,0),
+(@CGUID+658,32820,0,1,1,0,0,-9697,-77,38.994,4.625,600,20,0,2,0,1,0,0,0),
+(@CGUID+659,32820,0,1,1,0,0,-9696,-563,47.972,4.491,600,20,0,2,0,1,0,0,0),
+(@CGUID+660,32820,0,1,1,0,0,-9696,-518,51.99,2.203,600,20,0,2,0,1,0,0,0),
+(@CGUID+661,32820,0,1,1,0,0,-9696,-287,58.855,3.667,600,20,0,2,0,1,0,0,0),
+(@CGUID+662,32820,0,1,1,0,0,-9696,119.949,48.207,3.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+663,32820,0,1,1,0,0,-9696,605.496,39.227,0.987,600,20,0,2,0,1,0,0,0),
+(@CGUID+664,32820,0,1,1,0,0,-9695,-596,48.613,2.691,600,20,0,2,0,1,0,0,0),
+(@CGUID+665,32820,0,1,1,0,0,-9694,-338,57.316,1.581,600,20,0,2,0,1,0,0,0),
+(@CGUID+666,32820,0,1,1,0,0,-9694,-325,56.084,3.284,600,20,0,2,0,1,0,0,0),
+(@CGUID+667,32820,0,1,1,0,0,-9693,-891,42.969,3.883,600,20,0,2,0,1,0,0,0),
+(@CGUID+668,32820,0,1,1,0,0,-9693,-681,46.882,3.713,600,20,0,2,0,1,0,0,0),
+(@CGUID+669,32820,0,1,1,0,0,-9693,-565,48.472,1.692,600,20,0,2,0,1,0,0,0),
+(@CGUID+670,32820,0,1,1,0,0,-9693,-12,40.812,2.241,600,20,0,2,0,1,0,0,0),
+(@CGUID+671,32820,0,1,1,0,0,-9693,757.182,31.571,2.831,600,20,0,2,0,1,0,0,0),
+(@CGUID+672,32820,0,1,1,0,0,-9691,-179,45.468,3.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+673,32820,0,1,1,0,0,-9690,-684,47.855,1.707,600,20,0,2,0,1,0,0,0),
+(@CGUID+674,32820,0,1,1,0,0,-9690,214.238,51.084,2.691,600,20,0,2,0,1,0,0,0),
+(@CGUID+675,32820,0,1,1,0,0,-9689,-702,48.288,1.51,600,20,0,2,0,1,0,0,0),
+(@CGUID+676,32820,0,1,1,0,0,-9689,-582,50.154,5.298,600,20,0,2,0,1,0,0,0),
+(@CGUID+677,32820,0,1,1,0,0,-9689,-311,56.459,1.525,600,20,0,2,0,1,0,0,0),
+(@CGUID+678,32820,0,1,1,0,0,-9688,-1583,56.778,3.584,600,20,0,2,0,1,0,0,0),
+(@CGUID+679,32820,0,1,1,0,0,-9688,-708,48.174,4.93,600,20,0,2,0,1,0,0,0),
+(@CGUID+680,32820,0,1,1,0,0,-9688,-363,55.84,4.373,600,20,0,2,0,1,0,0,0),
+(@CGUID+681,32820,0,1,1,0,0,-9688,212.671,51.334,2.213,600,20,0,2,0,1,0,0,0),
+(@CGUID+682,32820,0,1,1,0,0,-9688,535.311,38.85,4.16,600,20,0,2,0,1,0,0,0),
+(@CGUID+683,32820,0,1,1,0,0,-9687,-750,46.082,3.762,600,20,0,2,0,1,0,0,0),
+(@CGUID+684,32820,0,1,1,0,0,-9687,-684,48.302,6.184,600,20,0,2,0,1,0,0,0),
+(@CGUID+685,32820,0,1,1,0,0,-9687,-684,48.895,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+686,32820,0,1,1,0,0,-9686,-1131,40.541,4.802,600,20,0,2,0,1,0,0,0),
+(@CGUID+687,32820,0,1,1,0,0,-9686,-349,57.389,2.183,600,20,0,2,0,1,0,0,0),
+(@CGUID+688,32820,0,1,1,0,0,-9686,-168,45.128,3.634,600,20,0,2,0,1,0,0,0),
+(@CGUID+689,32820,0,1,1,0,0,-9685,-421,54.012,2.846,600,20,0,2,0,1,0,0,0),
+(@CGUID+690,32820,0,1,1,0,0,-9685,-269,61.53,3.605,600,20,0,2,0,1,0,0,0),
+(@CGUID+691,32820,0,1,1,0,0,-9684,-951,41.894,1.231,600,20,0,2,0,1,0,0,0),
+(@CGUID+692,32820,0,1,1,0,0,-9683,-50,39.54,2.438,600,20,0,2,0,1,0,0,0),
+(@CGUID+693,32820,0,1,1,0,0,-9682,-327,56.332,3.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+694,32820,0,1,1,0,0,-9682,136.4,47.849,0.967,600,20,0,2,0,1,0,0,0),
+(@CGUID+695,32820,0,1,1,0,0,-9681,-416,54.327,3.698,600,20,0,2,0,1,0,0,0),
+(@CGUID+696,32820,0,1,1,0,0,-9681,-335,57.205,3.703,600,20,0,2,0,1,0,0,0),
+(@CGUID+697,32820,0,1,1,0,0,-9681,-164,45.229,0.723,600,20,0,2,0,1,0,0,0),
+(@CGUID+698,32820,0,1,1,0,0,-9681,-135,43.235,5.441,600,20,0,2,0,1,0,0,0),
+(@CGUID+699,32820,0,1,1,0,0,-9680,356.074,43.955,3.999,600,20,0,2,0,1,0,0,0),
+(@CGUID+700,32820,0,1,1,0,0,-9680,754.835,33.07,1.964,600,20,0,2,0,1,0,0,0),
+(@CGUID+701,32820,0,1,1,0,0,-9678,-1581,57.199,3.789,600,20,0,2,0,1,0,0,0),
+(@CGUID+702,32820,0,1,1,0,0,-9678,-183,46.748,4.703,600,20,0,2,0,1,0,0,0),
+(@CGUID+703,32820,0,1,1,0,0,-9678,598.149,39.802,4.33,600,20,0,2,0,1,0,0,0),
+(@CGUID+704,32820,0,1,1,0,0,-9677,-567,49.951,3.448,600,20,0,2,0,1,0,0,0),
+(@CGUID+705,32820,0,1,1,0,0,-9676,-1601,54.754,2.82,600,20,0,2,0,1,0,0,0),
+(@CGUID+706,32820,0,1,1,0,0,-9676,-1573,55.732,3.81,600,20,0,2,0,1,0,0,0),
+(@CGUID+707,32820,0,1,1,0,0,-9676,-423,54.769,3.825,600,20,0,2,0,1,0,0,0),
+(@CGUID+708,32820,0,1,1,0,0,-9676,108.541,45.798,5.688,600,20,0,2,0,1,0,0,0),
+(@CGUID+709,32820,0,1,1,0,0,-9675,-815,47.432,3.599,600,20,0,2,0,1,0,0,0),
+(@CGUID+710,32820,0,1,1,0,0,-9675,174.857,49.398,0.567,600,20,0,2,0,1,0,0,0),
+(@CGUID+711,32820,0,1,1,0,0,-9674,-905,42.956,3.032,600,20,0,2,0,1,0,0,0),
+(@CGUID+712,32820,0,1,1,0,0,-9673,-492,51.997,4.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+713,32820,0,1,1,0,0,-9673,318.748,46.291,2.546,600,20,0,2,0,1,0,0,0),
+(@CGUID+714,32820,0,1,1,0,0,-9673,374.112,43.139,2.698,600,20,0,2,0,1,0,0,0),
+(@CGUID+715,32820,0,1,1,0,0,-9671,374.911,43.226,1.907,600,20,0,2,0,1,0,0,0),
+(@CGUID+716,32820,0,1,1,0,0,-9667,-434,54.843,0.73,600,20,0,2,0,1,0,0,0),
+(@CGUID+717,32820,0,1,1,0,0,-9667,-429,55.276,2.6,600,20,0,2,0,1,0,0,0),
+(@CGUID+718,32820,0,1,1,0,0,-9667,494.199,38.632,5.933,600,20,0,2,0,1,0,0,0),
+(@CGUID+719,32820,0,1,1,0,0,-9666,541.163,41.336,3.046,600,20,0,2,0,1,0,0,0),
+(@CGUID+720,32820,0,1,1,0,0,-9665,693.473,36.846,3.491,600,20,0,2,0,1,0,0,0),
+(@CGUID+721,32820,0,1,1,0,0,-9663,-1154,40.172,0.397,600,20,0,2,0,1,0,0,0),
+(@CGUID+722,32820,0,1,1,0,0,-9663,401.738,40.652,5.242,600,20,0,2,0,1,0,0,0),
+(@CGUID+723,32820,0,1,1,0,0,-9663,603.806,40.344,0.648,600,20,0,2,0,1,0,0,0),
+(@CGUID+724,32820,0,1,1,0,0,-9662,-190,50.471,0.433,600,20,0,2,0,1,0,0,0),
+(@CGUID+725,32820,0,1,1,0,0,-9661,-1084,43.3,0.976,600,20,0,2,0,1,0,0,0),
+(@CGUID+726,32820,0,1,1,0,0,-9660,525.708,41.011,2.836,600,20,0,2,0,1,0,0,0),
+(@CGUID+727,32820,0,1,1,0,0,-9658,108.193,46.029,3.889,600,20,0,2,0,1,0,0,0),
+(@CGUID+728,32820,0,1,1,0,0,-9658,208.041,48.973,1.677,600,20,0,2,0,1,0,0,0),
+(@CGUID+729,32820,0,1,1,0,0,-9658,384.124,41.988,2.129,600,20,0,2,0,1,0,0,0),
+(@CGUID+730,32820,0,1,1,0,0,-9657,177.253,48.539,1.592,600,20,0,2,0,1,0,0,0),
+(@CGUID+731,32820,0,1,1,0,0,-9656,-186,52.282,5.817,600,20,0,2,0,1,0,0,0),
+(@CGUID+732,32820,0,1,1,0,0,-9655,-430,56.846,3.104,600,20,0,2,0,1,0,0,0),
+(@CGUID+733,32820,0,1,1,0,0,-9655,161.958,47.921,4.104,600,20,0,2,0,1,0,0,0),
+(@CGUID+734,32820,0,1,1,0,0,-9654,-589,55.268,6.118,600,20,0,2,0,1,0,0,0),
+(@CGUID+735,32820,0,1,1,0,0,-9654,564.774,41.556,4.709,600,20,0,2,0,1,0,0,0),
+(@CGUID+736,32820,0,1,1,0,0,-9654,659.651,38.735,5.69,600,20,0,2,0,1,0,0,0),
+(@CGUID+737,32820,0,1,1,0,0,-9653,-1626,56.418,0.262,600,20,0,2,0,1,0,0,0),
+(@CGUID+738,32820,0,1,1,0,0,-9653,625.699,38.357,0.42,600,20,0,2,0,1,0,0,0),
+(@CGUID+739,32820,0,1,1,0,0,-9652,654.731,38.735,0.454,600,20,0,2,0,1,0,0,0),
+(@CGUID+740,32820,0,1,1,0,0,-9651,-923,46.883,3.953,600,20,0,2,0,1,0,0,0),
+(@CGUID+741,32820,0,1,1,0,0,-9651,-451,55.271,0.3,600,20,0,2,0,1,0,0,0),
+(@CGUID+742,32820,0,1,1,0,0,-9651,346.356,43.78,3.174,600,20,0,2,0,1,0,0,0),
+(@CGUID+743,32820,0,1,1,0,0,-9651,534.697,43.157,2.778,600,20,0,2,0,1,0,0,0),
+(@CGUID+744,32820,0,1,1,0,0,-9651,608.674,41.892,5.38,600,20,0,2,0,1,0,0,0),
+(@CGUID+745,32820,0,1,1,0,0,-9650,141.491,45.918,3.654,600,20,0,2,0,1,0,0,0),
+(@CGUID+746,32820,0,1,1,0,0,-9650,661.417,38.735,5.027,600,20,0,2,0,1,0,0,0),
+(@CGUID+747,32820,0,1,1,0,0,-9646,-259,62.374,4.038,600,20,0,2,0,1,0,0,0),
+(@CGUID+748,32820,0,1,1,0,0,-9644,-117,50.891,5.77,600,20,0,2,0,1,0,0,0),
+(@CGUID+749,32820,0,1,1,0,0,-9643,-390,60.446,1.07,600,20,0,2,0,1,0,0,0),
+(@CGUID+750,32820,0,1,1,0,0,-9643,-52,43.822,4.879,600,20,0,2,0,1,0,0,0),
+(@CGUID+751,32820,0,1,1,0,0,-9643,377.555,42.262,0.399,600,20,0,2,0,1,0,0,0),
+(@CGUID+752,32820,0,1,1,0,0,-9642,-208,53.564,3.837,600,20,0,2,0,1,0,0,0),
+(@CGUID+753,32820,0,1,1,0,0,-9642,171.817,47.878,1.497,600,20,0,2,0,1,0,0,0),
+(@CGUID+754,32820,0,1,1,0,0,-9641,-423,60.277,2.665,600,20,0,2,0,1,0,0,0),
+(@CGUID+755,32820,0,1,1,0,0,-9638,696.574,38.652,0.302,600,20,0,2,0,1,0,0,0),
+(@CGUID+756,32820,0,1,1,0,0,-9635,56.194,59.917,4.14,600,20,0,2,0,1,0,0,0),
+(@CGUID+757,32820,0,1,1,0,0,-9633,304.301,47.332,5.973,600,20,0,2,0,1,0,0,0),
+(@CGUID+758,32820,0,1,1,0,0,-9631,-1569,55.883,5.065,600,20,0,2,0,1,0,0,0),
+(@CGUID+759,32820,0,1,1,0,0,-9631,-45,44.366,2.666,600,20,0,2,0,1,0,0,0),
+(@CGUID+760,32820,0,1,1,0,0,-9629,212.808,47.86,2.653,600,20,0,2,0,1,0,0,0),
+(@CGUID+761,32820,0,1,1,0,0,-9621.46,-1038.96,39.6437,0.24935,600,20,0,2,0,1,0,0,0),
+(@CGUID+762,32820,0,1,1,0,0,-9621,195.889,47.699,4.419,600,20,0,2,0,1,0,0,0),
+(@CGUID+763,32820,0,1,1,0,0,-9620,-1070,39.575,0.448,600,20,0,2,0,1,0,0,0),
+(@CGUID+764,32820,0,1,1,0,0,-9617,-884,49.006,5.743,600,20,0,2,0,1,0,0,0),
+(@CGUID+765,32820,0,1,1,0,0,-9617,-854,45.009,4.939,600,20,0,2,0,1,0,0,0),
+(@CGUID+766,32820,0,1,1,0,0,-9616,-1039,39.999,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+767,32820,0,1,1,0,0,-9616,358.532,44.245,2.353,600,20,0,2,0,1,0,0,0),
+(@CGUID+768,32820,0,1,1,0,0,-9615,-1164,42.549,2.742,600,20,0,2,0,1,0,0,0),
+(@CGUID+769,32820,0,1,1,0,0,-9615,-877,48.881,0.785,600,20,0,2,0,1,0,0,0),
+(@CGUID+770,32820,0,1,1,0,0,-9614,-884,49.325,3.363,600,20,0,2,0,1,0,0,0),
+(@CGUID+771,32820,0,1,1,0,0,-9612,-880,48.976,2.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+772,32820,0,1,1,0,0,-9610.42,-1072.08,39.5028,3.2748,600,20,0,2,0,1,0,0,0),
+(@CGUID+773,32820,0,1,1,0,0,-9610,-1032,41.306,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+774,32820,0,1,1,0,0,-9610,640.565,38.652,2.732,600,20,0,2,0,1,0,0,0),
+(@CGUID+775,32820,0,1,1,0,0,-9609,-873,48.006,0.976,600,20,0,2,0,1,0,0,0),
+(@CGUID+776,32820,0,1,1,0,0,-9606,-1474,59.74,2.897,600,20,0,2,0,1,0,0,0),
+(@CGUID+777,32820,0,1,1,0,0,-9606,541.682,45.521,3.87,600,20,0,2,0,1,0,0,0),
+(@CGUID+778,32820,0,1,1,0,0,-9606,684.352,38.652,1.964,600,20,0,2,0,1,0,0,0),
+(@CGUID+779,32820,0,1,1,0,0,-9605,-536,55.4,2.668,600,20,0,2,0,1,0,0,0),
+(@CGUID+780,32820,0,1,1,0,0,-9600,-617,56.301,5.539,600,20,0,2,0,1,0,0,0),
+(@CGUID+781,32820,0,1,1,0,0,-9598,-625,56.651,3.35,600,20,0,2,0,1,0,0,0),
+(@CGUID+782,32820,0,1,1,0,0,-9596,-614,56.776,2.182,600,20,0,2,0,1,0,0,0),
+(@CGUID+783,32820,0,1,1,0,0,-9592,-614,57.006,3.361,600,20,0,2,0,1,0,0,0),
+(@CGUID+784,32820,0,1,1,0,0,-9590,-1128,44.706,1.545,600,20,0,2,0,1,0,0,0),
+(@CGUID+785,32820,0,1,1,0,0,-9588,-438,60.505,3.263,600,20,0,2,0,1,0,0,0),
+(@CGUID+786,32820,0,1,1,0,0,-9587,-1545,59.617,6.028,600,20,0,2,0,1,0,0,0),
+(@CGUID+787,32820,0,1,1,0,0,-9587,-1149,45.731,5.771,600,20,0,2,0,1,0,0,0),
+(@CGUID+788,32820,0,1,1,0,0,-9586,435.596,39.798,3.141,600,20,0,2,0,1,0,0,0),
+(@CGUID+789,32820,0,1,1,0,0,-9586,459.753,41.175,3.861,600,20,0,2,0,1,0,0,0),
+(@CGUID+790,32820,0,1,1,0,0,-9584,-160,57.909,5.738,600,20,0,2,0,1,0,0,0),
+(@CGUID+791,32820,0,1,1,0,0,-9582,-317,61.673,1.959,600,20,0,2,0,1,0,0,0),
+(@CGUID+792,32820,0,1,1,0,0,-9580,727.4,34.263,6.273,600,20,0,2,0,1,0,0,0),
+(@CGUID+793,32820,0,1,1,0,0,-9578,576.959,49.341,1.091,600,20,0,2,0,1,0,0,0),
+(@CGUID+794,32820,0,1,1,0,0,-9576,-718,99.27,3.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+795,32820,0,1,1,0,0,-9576,314.797,55.528,2.647,600,20,0,2,0,1,0,0,0),
+(@CGUID+796,32820,0,1,1,0,0,-9575,-424,62.826,1.817,600,20,0,2,0,1,0,0,0),
+(@CGUID+797,32820,0,1,1,0,0,-9575,-297,61.31,2.498,600,20,0,2,0,1,0,0,0),
+(@CGUID+798,32820,0,1,1,0,0,-9572.62,88.1464,58.8819,5.974,600,20,0,2,0,1,0,0,0),
+(@CGUID+799,32820,0,1,1,0,0,-9571,-432,62.519,0.868,600,20,0,2,0,1,0,0,0),
+(@CGUID+800,32820,0,1,1,0,0,-9570,-1141,43.698,5.645,600,20,0,2,0,1,0,0,0),
+(@CGUID+801,32820,0,1,1,0,0,-9570,518.539,48.457,1.061,600,20,0,2,0,1,0,0,0),
+(@CGUID+802,32820,0,1,1,0,0,-9568,-1482,61.479,0.377,600,20,0,2,0,1,0,0,0),
+(@CGUID+803,32820,0,1,1,0,0,-9568,-1260,47.978,3.074,600,20,0,2,0,1,0,0,0),
+(@CGUID+804,32820,0,1,1,0,0,-9568,-1142,43.928,5.745,600,20,0,2,0,1,0,0,0),
+(@CGUID+805,32820,0,1,1,0,0,-9568,-1011,47.385,2.208,600,20,0,2,0,1,0,0,0),
+(@CGUID+806,32820,0,1,1,0,0,-9568,-439,61.607,0.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+807,32820,0,1,1,0,0,-9568,-222,62.061,6.001,600,20,0,2,0,1,0,0,0),
+(@CGUID+808,32820,0,1,1,0,0,-9567,81.004,58.881,0.348,600,20,0,2,0,1,0,0,0),
+(@CGUID+809,32820,0,1,1,0,0,-9567,195.622,59.003,3.211,600,20,0,2,0,1,0,0,0),
+(@CGUID+810,32820,0,1,1,0,0,-9565,-1139,43.958,3.8,600,20,0,2,0,1,0,0,0),
+(@CGUID+811,32820,0,1,1,0,0,-9563,-307,63.23,2.619,600,20,0,2,0,1,0,0,0),
+(@CGUID+812,32820,0,1,1,0,0,-9562,103.726,58.882,4.918,600,20,0,2,0,1,0,0,0),
+(@CGUID+813,32820,0,1,1,0,0,-9560.06,74.1694,58.8881,0.905975,600,20,0,2,0,1,0,0,0),
+(@CGUID+814,32820,0,1,1,0,0,-9563.21,76.4257,58.8835,0.935819,600,20,0,2,0,1,0,0,0),
+(@CGUID+815,32820,0,1,1,0,0,-9558,104.884,58.882,4.923,600,20,0,2,0,1,0,0,0),
+(@CGUID+816,32820,0,1,1,0,0,-9557,89.681,58.881,4.876,600,20,0,2,0,1,0,0,0),
+(@CGUID+817,32820,0,1,1,0,0,-9557,129.744,58.881,5.82,600,20,0,2,0,1,0,0,0),
+(@CGUID+818,32820,0,1,1,0,0,-9556,-316,62.352,6.073,600,20,0,2,0,1,0,0,0),
+(@CGUID+819,32820,0,1,1,0,0,-9555,181.645,59.138,2.708,600,20,0,2,0,1,0,0,0),
+(@CGUID+820,32820,0,1,1,0,0,-9554,-390,62.948,0.279,600,20,0,2,0,1,0,0,0),
+(@CGUID+821,32820,0,1,1,0,0,-9554,-313,62.556,4.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+822,32820,0,1,1,0,0,-9553,-1502,61.176,6.117,600,20,0,2,0,1,0,0,0),
+(@CGUID+823,32820,0,1,1,0,0,-9553,-728,99.252,2.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+824,32820,0,1,1,0,0,-9553,-244,62.128,1.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+825,32820,0,1,1,0,0,-9553,108.151,58.882,0.059,600,20,0,2,0,1,0,0,0),
+(@CGUID+826,32820,0,1,1,0,0,-9552,140.323,58.881,5.078,600,20,0,2,0,1,0,0,0),
+(@CGUID+827,32820,0,1,1,0,0,-9551.31,-712.266,75.0554,3.9444,600,20,0,2,0,1,0,0,0),
+(@CGUID+828,32820,0,1,1,0,0,-9551,209.447,57.854,3.198,600,20,0,2,0,1,0,0,0),
+(@CGUID+829,32820,0,1,1,0,0,-9550,-315,62.703,2.76,600,20,0,2,0,1,0,0,0),
+(@CGUID+830,32820,0,1,1,0,0,-9549,-381,62.186,0.841,600,20,0,2,0,1,0,0,0),
+(@CGUID+831,32820,0,1,1,0,0,-9548.14,-710.201,90.4265,3.76926,600,20,0,2,0,1,0,0,0),
+(@CGUID+832,32820,0,1,1,0,0,-9548,-540,60.557,3.038,600,20,0,2,0,1,0,0,0),
+(@CGUID+833,32820,0,1,1,0,0,-9548,67.039,59.25,1.844,600,20,0,2,0,1,0,0,0),
+(@CGUID+834,32820,0,1,1,0,0,-9547,-975,49.27,2.344,600,20,0,2,0,1,0,0,0),
+(@CGUID+835,32820,0,1,1,0,0,-9547,-551,60.16,3.215,600,20,0,2,0,1,0,0,0),
+(@CGUID+836,32820,0,1,1,0,0,-9546,-187,61.342,5.506,600,20,0,2,0,1,0,0,0),
+(@CGUID+837,32820,0,1,1,0,0,-9545,-1401,53.933,2.466,600,20,0,2,0,1,0,0,0),
+(@CGUID+838,32820,0,1,1,0,0,-9545,-1145,46.409,4.804,600,20,0,2,0,1,0,0,0),
+(@CGUID+839,32820,0,1,1,0,0,-9545,126.803,59.076,2.364,600,20,0,2,0,1,0,0,0),
+(@CGUID+840,32820,0,1,1,0,0,-9544.87,77.7707,59.0124,5.92404,600,20,0,2,0,1,0,0,0),
+(@CGUID+841,32820,0,1,1,0,0,-9544,-1495,61.319,0.796,600,20,0,2,0,1,0,0,0),
+(@CGUID+842,32820,0,1,1,0,0,-9544,-886,46.261,3.139,600,20,0,2,0,1,0,0,0),
+(@CGUID+843,32820,0,1,1,0,0,-9543,-1003,51.05,3.629,600,20,0,2,0,1,0,0,0),
+(@CGUID+844,32820,0,1,1,0,0,-9542,-517,63.119,1.22,600,20,0,2,0,1,0,0,0),
+(@CGUID+845,32820,0,1,1,0,0,-9542,299.005,53.319,4.581,600,20,0,2,0,1,0,0,0),
+(@CGUID+846,32820,0,1,1,0,0,-9541.55,-716.649,99.212,3.32507,600,20,0,2,0,1,0,0,0),
+(@CGUID+847,32820,0,1,1,0,0,-9541,-1533,61.272,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+848,32820,0,1,1,0,0,-9541,-1067,47.727,0.79,600,20,0,2,0,1,0,0,0),
+(@CGUID+849,32820,0,1,1,0,0,-9541,-537,61.838,5.395,600,20,0,2,0,1,0,0,0),
+(@CGUID+850,32820,0,1,1,0,0,-9540,85.383,59.121,6.25,600,20,0,2,0,1,0,0,0),
+(@CGUID+851,32820,0,1,1,0,0,-9539,508.213,50.727,4.763,600,20,0,2,0,1,0,0,0),
+(@CGUID+852,32820,0,1,1,0,0,-9538,112.447,58.885,6.095,600,20,0,2,0,1,0,0,0),
+(@CGUID+853,32820,0,1,1,0,0,-9539.97,71.6819,58.8818,1.48463,600,20,0,2,0,1,0,0,0),
+(@CGUID+854,32820,0,1,1,0,0,-9537,-1214,48.234,4.904,600,20,0,2,0,1,0,0,0),
+(@CGUID+855,32820,0,1,1,0,0,-9537,513.434,51.446,2.756,600,20,0,2,0,1,0,0,0),
+(@CGUID+856,32820,0,1,1,0,0,-9536,-1273,43.544,5.542,600,20,0,2,0,1,0,0,0),
+(@CGUID+857,32820,0,1,1,0,0,-9536,277.975,53.924,5.843,600,20,0,2,0,1,0,0,0),
+(@CGUID+858,32820,0,1,1,0,0,-9535,-486,62.979,2.737,600,20,0,2,0,1,0,0,0),
+(@CGUID+859,32820,0,1,1,0,0,-9535,92,58.8819,4.462,600,20,0,2,0,1,0,0,0),
+(@CGUID+860,32820,0,1,1,0,0,-9535,280.233,54.284,4.968,600,20,0,2,0,1,0,0,0),
+(@CGUID+861,32820,0,1,1,0,0,-9534,-1303,44.488,5.102,600,20,0,2,0,1,0,0,0),
+(@CGUID+862,32820,0,1,1,0,0,-9534,-451,60.238,0.334,600,20,0,2,0,1,0,0,0),
+(@CGUID+863,32820,0,1,1,0,0,-9534,-378,59.494,0.528,600,20,0,2,0,1,0,0,0),
+(@CGUID+864,32820,0,1,1,0,0,-9533,-34,56.448,2.767,600,20,0,2,0,1,0,0,0),
+(@CGUID+865,32820,0,1,1,0,0,-9533,80.093,58.881,6.104,600,20,0,2,0,1,0,0,0),
+(@CGUID+866,32820,0,1,1,0,0,-9532,-730,62.635,3.772,600,20,0,2,0,1,0,0,0),
+(@CGUID+867,32820,0,1,1,0,0,-9531.92,-1222.34,47.6548,5.61777,600,20,0,2,0,1,0,0,0),
+(@CGUID+868,32820,0,1,1,0,0,-9531,-264,59.372,6.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+869,32820,0,1,1,0,0,-9531,-252,58.833,5.188,600,20,0,2,0,1,0,0,0),
+(@CGUID+870,32820,0,1,1,0,0,-9531,81.822,58.881,0.107,600,20,0,2,0,1,0,0,0),
+(@CGUID+871,32820,0,1,1,0,0,-9530,82.757,58.881,0.078,600,20,0,2,0,1,0,0,0),
+(@CGUID+872,32820,0,1,1,0,0,-9530,173.256,57.863,4.879,600,20,0,2,0,1,0,0,0),
+(@CGUID+873,32820,0,1,1,0,0,-9530,534.204,51.063,3.854,600,20,0,2,0,1,0,0,0),
+(@CGUID+874,32820,0,1,1,0,0,-9529,-651,63.198,0.171,600,20,0,2,0,1,0,0,0),
+(@CGUID+875,32820,0,1,1,0,0,-9528,175.567,57.614,0.737,600,20,0,2,0,1,0,0,0),
+(@CGUID+876,32820,0,1,1,0,0,-9528,177.394,57.646,2.687,600,20,0,2,0,1,0,0,0),
+(@CGUID+877,32820,0,1,1,0,0,-9526,-986,51.973,3.31,600,20,0,2,0,1,0,0,0),
+(@CGUID+878,32820,0,1,1,0,0,-9526,-138,61.369,2.666,600,20,0,2,0,1,0,0,0),
+(@CGUID+879,32820,0,1,1,0,0,-9523,-1290,44.27,0.136,600,20,0,2,0,1,0,0,0),
+(@CGUID+880,32820,0,1,1,0,0,-9522,-1048,49.724,4.858,600,20,0,2,0,1,0,0,0),
+(@CGUID+881,32820,0,1,1,0,0,-9522,409.066,52.694,4.811,600,20,0,2,0,1,0,0,0),
+(@CGUID+882,32820,0,1,1,0,0,-9521,-532,63.048,3.274,600,20,0,2,0,1,0,0,0),
+(@CGUID+883,32820,0,1,1,0,0,-9520,472.334,53.101,0.539,600,20,0,2,0,1,0,0,0),
+(@CGUID+884,32820,0,1,1,0,0,-9519,-452,59.807,2.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+885,32820,0,1,1,0,0,-9519,484.227,52.792,2.03,600,20,0,2,0,1,0,0,0),
+(@CGUID+886,32820,0,1,1,0,0,-9517,79.223,59.568,6.194,600,20,0,2,0,1,0,0,0),
+(@CGUID+887,32820,0,1,1,0,0,-9517,85.71,59.509,6.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+888,32820,0,1,1,0,0,-9516,409.141,52.729,3.851,600,20,0,2,0,1,0,0,0),
+(@CGUID+889,32820,0,1,1,0,0,-9516,427.811,54.883,0.716,600,20,0,2,0,1,0,0,0),
+(@CGUID+890,32820,0,1,1,0,0,-9516,551.302,51.241,3.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+891,32820,0,1,1,0,0,-9513,-1370,49.18,5.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+892,32820,0,1,1,0,0,-9512,-518,63.121,6.079,600,20,0,2,0,1,0,0,0),
+(@CGUID+893,32820,0,1,1,0,0,-9512,-303,55.091,5.382,600,20,0,2,0,1,0,0,0),
+(@CGUID+894,32820,0,1,1,0,0,-9511,-1286,44.145,3.789,600,20,0,2,0,1,0,0,0),
+(@CGUID+895,32820,0,1,1,0,0,-9511,-1005,54.496,1.658,600,20,0,2,0,1,0,0,0),
+(@CGUID+896,32820,0,1,1,0,0,-9511,-780,60.461,2.016,600,20,0,2,0,1,0,0,0),
+(@CGUID+897,32820,0,1,1,0,0,-9509,419.477,52.881,3.244,600,20,0,2,0,1,0,0,0),
+(@CGUID+898,32820,0,1,1,0,0,-9508,-1091,49.683,4.721,600,20,0,2,0,1,0,0,0),
+(@CGUID+899,32820,0,1,1,0,0,-9508,174.773,57.988,5.893,600,20,0,2,0,1,0,0,0),
+(@CGUID+900,32820,0,1,1,0,0,-9507,-1063,50.982,5.505,600,20,0,2,0,1,0,0,0),
+(@CGUID+901,32820,0,1,1,0,0,-9507,-1003,54.765,4.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+902,32820,0,1,1,0,0,-9507,391.523,50.688,2.994,600,20,0,2,0,1,0,0,0),
+(@CGUID+903,32820,0,1,1,0,0,-9505,-210,52.069,0.998,600,20,0,2,0,1,0,0,0),
+(@CGUID+904,32820,0,1,1,0,0,-9504,-1286,43.067,4.472,600,20,0,2,0,1,0,0,0),
+(@CGUID+905,32820,0,1,1,0,0,-9504,389.215,50.779,5.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+906,32820,0,1,1,0,0,-9503,-1520,61.407,3.675,600,20,0,2,0,1,0,0,0),
+(@CGUID+907,32820,0,1,1,0,0,-9499,-960,54.024,3.495,600,20,0,2,0,1,0,0,0),
+(@CGUID+908,32820,0,1,1,0,0,-9499,-56,59.989,1.879,600,20,0,2,0,1,0,0,0),
+(@CGUID+909,32820,0,1,1,0,0,-9498,66.229,56.528,6.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+910,32820,0,1,1,0,0,-9497,-1274,43.456,0.703,600,20,0,2,0,1,0,0,0),
+(@CGUID+911,32820,0,1,1,0,0,-9496,-939,54.836,0.463,600,20,0,2,0,1,0,0,0),
+(@CGUID+912,32820,0,1,1,0,0,-9496,73.146,56.438,6.088,600,20,0,2,0,1,0,0,0),
+(@CGUID+913,32820,0,1,1,0,0,-9494,-1063,52.208,2.649,600,20,0,2,0,1,0,0,0),
+(@CGUID+914,32820,0,1,1,0,0,-9494,83.081,56.474,6.151,600,20,0,2,0,1,0,0,0),
+(@CGUID+915,32820,0,1,1,0,0,-9494,324.211,52.561,6.057,600,20,0,2,0,1,0,0,0),
+(@CGUID+916,32820,0,1,1,0,0,-9493,-450,56.073,5.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+917,32820,0,1,1,0,0,-9492,-559,64.456,1.584,600,20,0,2,0,1,0,0,0),
+(@CGUID+918,32820,0,1,1,0,0,-9491,-1193,49.564,4.063,600,20,0,2,0,1,0,0,0),
+(@CGUID+919,32820,0,1,1,0,0,-9491,-53,60.493,5.207,600,20,0,2,0,1,0,0,0),
+(@CGUID+920,32820,0,1,1,0,0,-9491,-21,58.339,2.126,600,20,0,2,0,1,0,0,0),
+(@CGUID+921,32820,0,1,1,0,0,-9490,-958,55.971,3.14,600,20,0,2,0,1,0,0,0),
+(@CGUID+922,32820,0,1,1,0,0,-9490,-31,59.078,1.199,600,20,0,2,0,1,0,0,0),
+(@CGUID+923,32820,0,1,1,0,0,-9490,-29,58.923,4.502,600,20,0,2,0,1,0,0,0),
+(@CGUID+924,32820,0,1,1,0,0,-9490,475.371,51.298,6.274,600,20,0,2,0,1,0,0,0),
+(@CGUID+925,32820,0,1,1,0,0,-9489,482.235,51.715,5.562,600,20,0,2,0,1,0,0,0),
+(@CGUID+926,32820,0,1,1,0,0,-9488,-766,61.281,1.937,600,20,0,2,0,1,0,0,0),
+(@CGUID+927,32820,0,1,1,0,0,-9487,-1254,43.483,1.865,600,20,0,2,0,1,0,0,0),
+(@CGUID+928,32820,0,1,1,0,0,-9487,-1028,53.171,0.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+929,32820,0,1,1,0,0,-9487,271.435,52.855,4.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+930,32820,0,1,1,0,0,-9486,246.719,54.08,4.007,600,20,0,2,0,1,0,0,0),
+(@CGUID+931,32820,0,1,1,0,0,-9485,-329,54.892,0.419,600,20,0,2,0,1,0,0,0),
+(@CGUID+932,32820,0,1,1,0,0,-9484,-350,60.2,4.378,600,20,0,2,0,1,0,0,0),
+(@CGUID+933,32820,0,1,1,0,0,-9483,-1356,46.958,1.011,600,20,0,2,0,1,0,0,0),
+(@CGUID+934,32820,0,1,1,0,0,-9482,266.885,53.234,1.097,600,20,0,2,0,1,0,0,0),
+(@CGUID+935,32820,0,1,1,0,0,-9482,425.988,53.979,4.061,600,20,0,2,0,1,0,0,0),
+(@CGUID+936,32820,0,1,1,0,0,-9480,-786,60.603,5.01,600,20,0,2,0,1,0,0,0),
+(@CGUID+937,32820,0,1,1,0,0,-9479,-183,58.503,1.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+938,32820,0,1,1,0,0,-9478,280.815,53.192,4.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+939,32820,0,1,1,0,0,-9476,-1207,48.181,4.108,600,20,0,2,0,1,0,0,0),
+(@CGUID+940,32820,0,1,1,0,0,-9126.18,394.417,91.7424,3.92184,600,20,0,2,0,1,0,0,0),
+(@CGUID+941,32820,0,1,1,0,0,-9474,533.132,54.285,2.501,600,20,0,2,0,1,0,0,0),
+(@CGUID+942,32820,0,1,1,0,0,-9473,-18,57.595,1.346,600,20,0,2,0,1,0,0,0),
+(@CGUID+943,32820,0,1,1,0,0,-9473,-9,49.794,0.233,600,20,0,2,0,1,0,0,0),
+(@CGUID+944,32820,0,1,1,0,0,-9473,46.977,56.887,5.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+945,32820,0,1,1,0,0,-9472,-838,60.511,4.709,600,20,0,2,0,1,0,0,0),
+(@CGUID+946,32820,0,1,1,0,0,-9472,-271,58.229,2.496,600,20,0,2,0,1,0,0,0),
+(@CGUID+947,32820,0,1,1,0,0,-9472,-5,49.794,5.611,600,20,0,2,0,1,0,0,0),
+(@CGUID+948,32820,0,1,1,0,0,-9472,34.1,63.82,4.407,600,20,0,2,0,1,0,0,0),
+(@CGUID+949,32820,0,1,1,0,0,-9471,-165,59.226,1.293,600,20,0,2,0,1,0,0,0),
+(@CGUID+950,32820,0,1,1,0,0,-9471,27.047,56.339,5.751,600,20,0,2,0,1,0,0,0),
+(@CGUID+951,32820,0,1,1,0,0,-9471,46.904,56.764,4.637,600,20,0,2,0,1,0,0,0),
+(@CGUID+952,32820,0,1,1,0,0,-9471,419.262,53.117,4.697,600,20,0,2,0,1,0,0,0),
+(@CGUID+953,32820,0,1,1,0,0,-9470.26,-1289.42,41.1047,2.80465,600,20,0,2,0,1,0,0,0),
+(@CGUID+954,32820,0,1,1,0,0,-9470,-379,59.032,4.241,600,20,0,2,0,1,0,0,0),
+(@CGUID+955,32820,0,1,1,0,0,-9469,-1355,47.429,1.03,600,20,0,2,0,1,0,0,0),
+(@CGUID+956,32820,0,1,1,0,0,-9468,108.976,57.661,1.798,600,20,0,2,0,1,0,0,0),
+(@CGUID+957,32820,0,1,1,0,0,-9468,241.764,56.08,3.422,600,20,0,2,0,1,0,0,0),
+(@CGUID+958,32820,0,1,1,0,0,-9468,298.53,53.903,5.522,600,20,0,2,0,1,0,0,0),
+(@CGUID+959,32820,0,1,1,0,0,-9467,-5,49.793,4.691,600,20,0,2,0,1,0,0,0),
+(@CGUID+960,32820,0,1,1,0,0,-9467,-5,57.033,1.641,600,20,0,2,0,1,0,0,0),
+(@CGUID+961,32820,0,1,1,0,0,-9467,275.755,53.695,0.512,600,20,0,2,0,1,0,0,0),
+(@CGUID+962,32820,0,1,1,0,0,-9466,0.061,57.033,0.742,600,20,0,2,0,1,0,0,0),
+(@CGUID+963,32820,0,1,1,0,0,-9466,12.645,63.904,1.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+964,32820,0,1,1,0,0,-9466,48.142,56.968,1.466,600,20,0,2,0,1,0,0,0),
+(@CGUID+965,32820,0,1,1,0,0,-9466,74.007,56.779,5.336,600,20,0,2,0,1,0,0,0),
+(@CGUID+966,32820,0,1,1,0,0,-9465,9.633,57.146,1.449,600,20,0,2,0,1,0,0,0),
+(@CGUID+967,32820,0,1,1,0,0,-9465,93.99,58.527,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+968,32820,0,1,1,0,0,-9464,87.43,58.344,0.437,600,20,0,2,0,1,0,0,0),
+(@CGUID+969,32820,0,1,1,0,0,-9463,-827,60.746,0.319,600,20,0,2,0,1,0,0,0),
+(@CGUID+970,32820,0,1,1,0,0,-9463,-239,57.831,1.002,600,20,0,2,0,1,0,0,0),
+(@CGUID+971,32820,0,1,1,0,0,-9463,-236,57.742,1.557,600,20,0,2,0,1,0,0,0),
+(@CGUID+972,32820,0,1,1,0,0,-9463,16.192,57.046,3.037,600,20,0,2,0,1,0,0,0),
+(@CGUID+973,32820,0,1,1,0,0,-9462,109.353,57.878,2.653,600,20,0,2,0,1,0,0,0),
+(@CGUID+974,32820,0,1,1,0,0,-9461,-551,67.28,0.317,600,20,0,2,0,1,0,0,0),
+(@CGUID+975,32820,0,1,1,0,0,-9461,33.134,63.904,4.363,600,20,0,2,0,1,0,0,0),
+(@CGUID+976,32820,0,1,1,0,0,-9420.84,-1302.43,47.8857,5.23631,600,20,0,2,0,1,0,0,0),
+(@CGUID+977,32820,0,1,1,0,0,-9460,8.411,57.146,1.466,600,20,0,2,0,1,0,0,0),
+(@CGUID+978,32820,0,1,1,0,0,-9460,31.939,57.049,2.985,600,20,0,2,0,1,0,0,0),
+(@CGUID+979,32820,0,1,1,0,0,-9459,-992,57.716,2.639,600,20,0,2,0,1,0,0,0),
+(@CGUID+980,32820,0,1,1,0,0,-9459,325.026,53.68,1.983,600,20,0,2,0,1,0,0,0),
+(@CGUID+981,32820,0,1,1,0,0,-9457,29.361,63.904,2.967,600,20,0,2,0,1,0,0,0),
+(@CGUID+982,32820,0,1,1,0,0,-9457,99.168,58.343,4.304,600,20,0,2,0,1,0,0,0),
+(@CGUID+983,32820,0,1,1,0,0,-9455.22,-1386.21,47.1356,1.81376,600,20,0,2,0,1,0,0,0),
+(@CGUID+984,32820,0,1,1,0,0,-9455,73.496,56.996,3.142,600,20,1,2,0,1,0,0,0),
+(@CGUID+985,32820,0,1,1,0,0,-9455,87.35,58.343,2.628,600,20,0,2,0,1,0,0,0),
+(@CGUID+986,32820,0,1,1,0,0,-9454.16,-1385.95,47.1707,1.71476,600,20,0,2,0,1,0,0,0),
+(@CGUID+987,32820,0,1,1,0,0,-9452,-1051,57.28,0.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+988,32820,0,1,1,0,0,-9452,520.263,56.225,2.973,600,20,0,2,0,1,0,0,0),
+(@CGUID+989,32820,0,1,1,0,0,-9451,-957,55.738,4.467,600,20,0,2,0,1,0,0,0),
+(@CGUID+990,32820,0,1,1,0,0,-9449,-1449,59.031,0.017,600,20,0,2,0,1,0,0,0),
+(@CGUID+991,32820,0,1,1,0,0,-9449,-779,62.301,1.985,600,20,0,2,0,1,0,0,0),
+(@CGUID+992,32820,0,1,1,0,0,-9448,-494,63.785,5.27,600,20,0,2,0,1,0,0,0),
+(@CGUID+993,32820,0,1,1,0,0,-9448,217.373,59.931,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+994,32820,0,1,1,0,0,-9448,339.654,54.638,0.588,600,20,0,2,0,1,0,0,0),
+(@CGUID+995,32820,0,1,1,0,0,-9448,462.158,52.286,4.192,600,20,0,2,0,1,0,0,0),
+(@CGUID+996,32820,0,1,1,0,0,-9445,-973,55.591,4.366,600,20,0,2,0,1,0,0,0),
+(@CGUID+997,32820,0,1,1,0,0,-9445,-595,65.405,3.864,600,20,0,2,0,1,0,0,0),
+(@CGUID+998,32820,0,1,1,0,0,-9444.1,-1412.31,46.6621,1.63715,600,20,0,2,0,1,0,0,0),
+(@CGUID+999,32820,0,1,1,0,0,-9444,-900,58.153,3.64,600,20,0,2,0,1,0,0,0),
+(@CGUID+1000,32820,0,1,1,0,0,-9444,459.607,52.21,4.193,600,20,0,2,0,1,0,0,0),
+(@CGUID+1001,32820,0,1,1,0,0,-9440.76,-1391.15,46.7888,2.02346,600,20,0,2,0,1,0,0,0),
+(@CGUID+1002,32820,0,1,1,0,0,-9440,-1379,46.953,0.955,600,20,0,2,0,1,0,0,0),
+(@CGUID+1003,32820,0,1,1,0,0,-9439,-675,64.124,4.529,600,20,0,2,0,1,0,0,0),
+(@CGUID+1004,32820,0,1,1,0,0,-9438.49,-1405,46.662,4.60941,600,20,0,2,0,1,0,0,0),
+(@CGUID+1005,32820,0,1,1,0,0,-9438.22,-1412.35,46.662,1.68739,600,20,0,2,0,1,0,0,0),
+(@CGUID+1006,32820,0,1,1,0,0,-9438,-655,65.773,2.11,600,20,0,2,0,1,0,0,0),
+(@CGUID+1007,32820,0,1,1,0,0,-9438,470.249,53.274,4.009,600,20,0,2,0,1,0,0,0),
+(@CGUID+1008,32820,0,1,1,0,0,-9437,-1452,59.817,6.09,600,20,0,2,0,1,0,0,0),
+(@CGUID+1009,32820,0,1,1,0,0,-9435,-639,66.116,5.863,600,20,0,2,0,1,0,0,0),
+(@CGUID+1010,32820,0,1,1,0,0,-9434,-1253,49.267,2.305,600,20,0,2,0,1,0,0,0),
+(@CGUID+1011,32820,0,1,1,0,0,-9433,482.528,53.247,2.295,600,20,0,2,0,1,0,0,0),
+(@CGUID+1012,32820,0,1,1,0,0,-9432,-1387,46.663,5.947,600,20,0,2,0,1,0,0,0),
+(@CGUID+1013,32820,0,1,1,0,0,-9432,133.199,58.837,6.151,600,20,0,2,0,1,0,0,0),
+(@CGUID+1014,32820,0,1,1,0,0,-9432,150.687,55.834,2.532,600,20,0,2,0,1,0,0,0),
+(@CGUID+1015,32820,0,1,1,0,0,-9431,-2104,65.708,2.979,600,20,0,2,0,1,0,0,0),
+(@CGUID+1016,32820,0,1,1,0,0,-9430,-1514,68.918,0.448,600,20,0,2,0,1,0,0,0),
+(@CGUID+1017,32820,0,1,1,0,0,-9430,132.438,59.079,2.802,600,20,0,2,0,1,0,0,0),
+(@CGUID+1018,32820,0,1,1,0,0,-9430,134.259,58.901,3.849,600,20,0,2,0,1,0,0,0),
+(@CGUID+1019,32820,0,1,1,0,0,-9429,-1262,49.045,1.86,600,20,0,2,0,1,0,0,0),
+(@CGUID+1020,32820,0,1,1,0,0,-9429,-1261,49.154,5.276,600,20,0,2,0,1,0,0,0),
+(@CGUID+1021,32820,0,1,1,0,0,-9427,-671,64.684,4.566,600,20,0,2,0,1,0,0,0),
+(@CGUID+1022,32820,0,1,1,0,0,-9427,323.42,55.912,3.39,600,20,0,2,0,1,0,0,0),
+(@CGUID+1023,32820,0,1,1,0,0,-9426.71,-1323.56,51.4573,2.53904,600,20,0,2,0,1,0,0,0),
+(@CGUID+1024,32820,0,1,1,0,0,-9422,-1239,52.7,5.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+1025,32820,0,1,1,0,0,-9422,-1182,56.483,6.115,600,20,0,2,0,1,0,0,0),
+(@CGUID+1026,32820,0,1,1,0,0,-9421,-566,67.708,4.625,600,20,0,2,0,1,0,0,0),
+(@CGUID+1027,32820,0,1,1,0,0,-9421,-453,60.422,3.662,600,20,0,2,0,1,0,0,0),
+(@CGUID+1028,32820,0,1,1,0,0,-9419,-728,65.583,3.245,600,20,0,2,0,1,0,0,0),
+(@CGUID+1029,32820,0,1,1,0,0,-9418,-1362,50.564,4.5,600,20,0,2,0,1,0,0,0),
+(@CGUID+1030,32820,0,1,1,0,0,-9416,-782,66.395,1.487,600,20,0,2,0,1,0,0,0),
+(@CGUID+1031,32820,0,1,1,0,0,-9416,155.709,56.403,5.045,600,20,0,2,0,1,0,0,0),
+(@CGUID+1032,32820,0,1,1,0,0,-9415,295.758,60.265,4.891,600,20,0,2,0,1,0,0,0),
+(@CGUID+1033,32820,0,1,1,0,0,-9414,-845,62.561,0.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+1034,32820,0,1,1,0,0,-9412,-387,57.469,2.226,600,20,0,2,0,1,0,0,0),
+(@CGUID+1035,32820,0,1,1,0,0,-9412,-314,60.602,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1036,32820,0,1,1,0,0,-9411,-1350,50.028,1.498,600,20,0,2,0,1,0,0,0),
+(@CGUID+1037,32820,0,1,1,0,0,-9410,-1271,49.832,5.483,600,20,0,2,0,1,0,0,0),
+(@CGUID+1038,32820,0,1,1,0,0,-9410,-853,62.711,0.461,600,20,0,2,0,1,0,0,0),
+(@CGUID+1039,32820,0,1,1,0,0,-9410,-324,59.375,1.682,600,20,0,2,0,1,0,0,0),
+(@CGUID+1040,32820,0,1,1,0,0,-9410,208.355,61.079,3.912,600,20,0,2,0,1,0,0,0),
+(@CGUID+1041,32820,0,1,1,0,0,-9409,243.329,61.172,1.582,600,20,0,2,0,1,0,0,0),
+(@CGUID+1042,32820,0,1,1,0,0,-9408,-999,61.864,2.694,600,20,0,2,0,1,0,0,0),
+(@CGUID+1043,32820,0,1,1,0,0,-9407,-1107,61.211,5.323,600,20,0,2,0,1,0,0,0),
+(@CGUID+1044,32820,0,1,1,0,0,-9405,-1344,50.111,2.461,600,20,0,2,0,1,0,0,0),
+(@CGUID+1045,32820,0,1,1,0,0,-9404,-30,64.335,1.721,600,20,0,2,0,1,0,0,0),
+(@CGUID+1046,32820,0,1,1,0,0,-9402,324.172,58.219,0.634,600,20,0,2,0,1,0,0,0),
+(@CGUID+1047,32820,0,1,1,0,0,-9400.99,-1336.26,50.0274,3.16106,600,20,0,2,0,1,0,0,0),
+(@CGUID+1048,32820,0,1,1,0,0,-9397,-443,60.336,0.515,600,20,0,2,0,1,0,0,0),
+(@CGUID+1049,32820,0,1,1,0,0,-9397,305.106,61.005,5.919,600,20,0,2,0,1,0,0,0),
+(@CGUID+1050,32820,0,1,1,0,0,-9396,-711,67.79,2.396,600,20,0,2,0,1,0,0,0),
+(@CGUID+1051,32820,0,1,1,0,0,-9395,-1514,69.385,4.886,600,20,0,2,0,1,0,0,0),
+(@CGUID+1052,32820,0,1,1,0,0,-9395,312.681,61.586,1.533,600,20,0,2,0,1,0,0,0),
+(@CGUID+1053,32820,0,1,1,0,0,-9394,-2022,58.275,4.33,600,20,0,2,0,1,0,0,0),
+(@CGUID+1054,32820,0,1,1,0,0,-9393,-1276,54.057,6.24,600,20,0,2,0,1,0,0,0),
+(@CGUID+1055,32820,0,1,1,0,0,-9392,-345,59.169,5.621,600,20,0,2,0,1,0,0,0),
+(@CGUID+1056,32820,0,1,1,0,0,-9390,-587,67.012,4.101,600,20,0,2,0,1,0,0,0),
+(@CGUID+1057,32820,0,1,1,0,0,-9390,-508,68.811,2.179,600,20,0,2,0,1,0,0,0),
+(@CGUID+1058,32820,0,1,1,0,0,-9390,56.554,59.985,3.128,600,20,0,2,0,1,0,0,0),
+(@CGUID+1059,32820,0,1,1,0,0,-9390,528.081,61.321,3.906,600,20,0,2,0,1,0,0,0),
+(@CGUID+1060,32820,0,1,1,0,0,-9389,-1275,55.114,3.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+1061,32820,0,1,1,0,0,-9387.13,-117.859,58.8626,2.81827,600,20,0,2,0,1,0,0,0),
+(@CGUID+1062,32820,0,1,1,0,0,-9387,-1435,62.189,0.904,600,20,0,2,0,1,0,0,0),
+(@CGUID+1063,32820,0,1,1,0,0,-9387,-963,63.591,2.721,600,20,0,2,0,1,0,0,0),
+(@CGUID+1064,32820,0,1,1,0,0,-9386,-1276,55.562,2.717,600,20,0,2,0,1,0,0,0),
+(@CGUID+1065,32820,0,1,1,0,0,-9384,-924,63.488,2.606,600,20,0,2,0,1,0,0,0),
+(@CGUID+1066,32820,0,1,1,0,0,-9384,-486,68.886,1.506,600,20,0,2,0,1,0,0,0),
+(@CGUID+1067,32820,0,1,1,0,0,-9384,-230,64.15,0.899,600,20,0,2,0,1,0,0,0),
+(@CGUID+1068,32820,0,1,1,0,0,-9384,-21,62.361,0.496,600,20,0,2,0,1,0,0,0),
+(@CGUID+1069,32820,0,1,1,0,0,-9384,343.232,56.396,4.664,600,20,0,2,0,1,0,0,0),
+(@CGUID+1070,32820,0,1,1,0,0,-9381.82,-117.429,58.7558,4.28438,600,20,0,2,0,1,0,0,0),
+(@CGUID+1071,32820,0,1,1,0,0,-9381,-280,64.459,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1072,32820,0,1,1,0,0,-9381,127.141,61.364,3.11,600,20,0,2,0,1,0,0,0),
+(@CGUID+1073,32820,0,1,1,0,0,-9380,-70,64.521,4.555,600,20,0,2,0,1,0,0,0),
+(@CGUID+1074,32820,0,1,1,0,0,-9380,29.617,61.183,2.488,600,20,0,2,0,1,0,0,0),
+(@CGUID+1075,32820,0,1,1,0,0,-9379,-112,58.793,2.077,600,20,0,2,0,1,0,0,0),
+(@CGUID+1076,32820,0,1,1,0,0,-9378,-1127,62.701,1.784,600,20,0,2,0,1,0,0,0),
+(@CGUID+1077,32820,0,1,1,0,0,-9378,-216,63.953,0.897,600,20,0,2,0,1,0,0,0),
+(@CGUID+1078,32820,0,1,1,0,0,-9376,-74,64.521,3.456,600,20,0,2,0,1,0,0,0),
+(@CGUID+1079,32820,0,1,1,0,0,-9376,-67,69.202,1.075,600,20,0,2,0,1,0,0,0),
+(@CGUID+1080,32820,0,1,1,0,0,-9376,-66,69.202,5.798,600,20,0,2,0,1,0,0,0),
+(@CGUID+1081,32820,0,1,1,0,0,-9374,-1225,63.762,5.091,600,20,0,2,0,1,0,0,0),
+(@CGUID+1082,32820,0,1,1,0,0,-9374,-66,69.202,3.57,600,20,0,2,0,1,0,0,0),
+(@CGUID+1083,32820,0,1,1,0,0,-9373,-1210,63.557,3.059,600,20,0,2,0,1,0,0,0),
+(@CGUID+1084,32820,0,1,1,0,0,-9373,134.102,61.836,1.385,600,20,0,2,0,1,0,0,0),
+(@CGUID+1085,32820,0,1,1,0,0,-9373,147.602,61.685,4.386,600,20,0,2,0,1,0,0,0),
+(@CGUID+1086,32820,0,1,1,0,0,-9371,-944,65.101,5.773,600,20,0,2,0,1,0,0,0),
+(@CGUID+1087,32820,0,1,1,0,0,-9371,-70,69.202,0.374,600,20,0,2,0,1,0,0,0),
+(@CGUID+1088,32820,0,1,1,0,0,-9371,-68,69.202,5.049,600,20,0,2,0,1,0,0,0),
+(@CGUID+1089,32820,0,1,1,0,0,-9371,134.791,61.985,4.722,600,20,0,2,0,1,0,0,0),
+(@CGUID+1090,32820,0,1,1,0,0,-9369,-1192,63.624,0.609,600,20,0,2,0,1,0,0,0),
+(@CGUID+1091,32820,0,1,1,0,0,-9369,-68,69.202,2.963,600,20,0,2,0,1,0,0,0),
+(@CGUID+1092,32820,0,1,1,0,0,-9367,-1168,65.193,5.53,600,20,0,2,0,1,0,0,0),
+(@CGUID+1093,32820,0,1,1,0,0,-9366,-810,65.544,2.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+1094,32820,0,1,1,0,0,-9365,-596,69.178,4.296,600,20,0,2,0,1,0,0,0),
+(@CGUID+1095,32820,0,1,1,0,0,-9364,11.024,61.815,2.506,600,20,0,2,0,1,0,0,0),
+(@CGUID+1096,32820,0,1,1,0,0,-9361,-1405,63.575,4.344,600,20,0,2,0,1,0,0,0),
+(@CGUID+1097,32820,0,1,1,0,0,-9361,-869,64.962,3.987,600,20,0,2,0,1,0,0,0),
+(@CGUID+1098,32820,0,1,1,0,0,-9358,-926,65.732,2.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+1099,32820,0,1,1,0,0,-9358,-849,63.997,2.375,600,20,0,2,0,1,0,0,0),
+(@CGUID+1100,32820,0,1,1,0,0,-9354,-1404,63.973,4.167,600,20,0,2,0,1,0,0,0),
+(@CGUID+1101,32820,0,1,1,0,0,-9354,-1195,66.266,2.266,600,20,0,2,0,1,0,0,0),
+(@CGUID+1102,32820,0,1,1,0,0,-9354,-186,65.198,0.372,600,20,0,2,0,1,0,0,0),
+(@CGUID+1103,32820,0,1,1,0,0,-9353,-904,66.04,6.18,600,20,0,2,0,1,0,0,0),
+(@CGUID+1104,32820,0,1,1,0,0,-9353,-843,64.12,6.075,600,20,0,2,0,1,0,0,0),
+(@CGUID+1105,32820,0,1,1,0,0,-9352,-1164,65.353,2.384,600,20,0,2,0,1,0,0,0),
+(@CGUID+1106,32820,0,1,1,0,0,-9352,-1160,65.543,5.245,600,20,0,2,0,1,0,0,0),
+(@CGUID+1107,32820,0,1,1,0,0,-9352,-611,71.313,1.553,600,20,0,2,0,1,0,0,0),
+(@CGUID+1108,32820,0,1,1,0,0,-9352,503.765,50.321,4.473,600,20,0,2,0,1,0,0,0),
+(@CGUID+1109,32820,0,1,1,0,0,-9350,-1166,65.293,1.933,600,20,0,2,0,1,0,0,0),
+(@CGUID+1110,32820,0,1,1,0,0,-9347,-1445,66.672,1.459,600,20,0,2,0,1,0,0,0),
+(@CGUID+1111,32820,0,1,1,0,0,-9346,-748,68.344,0.262,600,20,0,2,0,1,0,0,0),
+(@CGUID+1112,32820,0,1,1,0,0,-9346,44.308,61.314,2.717,600,20,0,2,0,1,0,0,0),
+(@CGUID+1113,32820,0,1,1,0,0,-9346,477.343,52.18,5.385,600,20,0,2,0,1,0,0,0),
+(@CGUID+1114,32820,0,1,1,0,0,-9341,165.021,61.641,1.096,600,20,0,2,0,1,0,0,0),
+(@CGUID+1115,32820,0,1,1,0,0,-9340,-1120,67.994,5.368,600,20,0,2,0,1,0,0,0),
+(@CGUID+1116,32820,0,1,1,0,0,-9340,-716,67.003,4.005,600,20,0,2,0,1,0,0,0),
+(@CGUID+1117,32820,0,1,1,0,0,-9338,-1155,67.043,0.595,600,20,0,2,0,1,0,0,0),
+(@CGUID+1118,32820,0,1,1,0,0,-9336,-1254,66.113,5.261,600,20,0,2,0,1,0,0,0),
+(@CGUID+1119,32820,0,1,1,0,0,-9336,-436,67.543,3.382,600,20,0,2,0,1,0,0,0),
+(@CGUID+1120,32820,0,1,1,0,0,-9334,-947,67.321,5.957,600,20,0,2,0,1,0,0,0),
+(@CGUID+1121,32820,0,1,1,0,0,-9331,-1168,66.517,3.206,600,20,0,2,0,1,0,0,0),
+(@CGUID+1122,32820,0,1,1,0,0,-9330,-1313,65.07,0.091,600,20,0,2,0,1,0,0,0),
+(@CGUID+1123,32820,0,1,1,0,0,-9328,-1318,65.451,3.679,600,20,0,2,0,1,0,0,0),
+(@CGUID+1124,32820,0,1,1,0,0,-9327,366.189,66.437,4.384,600,20,0,2,0,1,0,0,0),
+(@CGUID+1125,32820,0,1,1,0,0,-9326,325.428,68.249,2.474,600,20,0,2,0,1,0,0,0),
+(@CGUID+1126,32820,0,1,1,0,0,-9324.74,-106.101,64.0093,1.6099,600,20,0,2,0,1,0,0,0),
+(@CGUID+1127,32820,0,1,1,0,0,-9323,-557,69.447,0.586,600,20,0,2,0,1,0,0,0),
+(@CGUID+1128,32820,0,1,1,0,0,-9322,-288,69.495,4.24,600,20,0,2,0,1,0,0,0),
+(@CGUID+1129,32820,0,1,1,0,0,-9321,-1189,68.549,4.907,600,20,0,2,0,1,0,0,0),
+(@CGUID+1130,32820,0,1,1,0,0,-9321,-386,67.161,3.968,600,20,0,2,0,1,0,0,0),
+(@CGUID+1131,32820,0,1,1,0,0,-9321,551.713,77.139,2.583,600,20,0,2,0,1,0,0,0),
+(@CGUID+1132,32820,0,1,1,0,0,-9320,-272,69.786,1.371,600,20,0,2,0,1,0,0,0),
+(@CGUID+1133,32820,0,1,1,0,0,-9319,397.511,71.732,0.497,600,20,0,2,0,1,0,0,0),
+(@CGUID+1134,32820,0,1,1,0,0,-9317,-1183,68.226,5.533,600,20,0,2,0,1,0,0,0),
+(@CGUID+1135,32820,0,1,1,0,0,-9316,-719,67.299,5.341,600,20,0,2,0,1,0,0,0),
+(@CGUID+1136,32820,0,1,1,0,0,-9316,-520,68.63,2.477,600,20,0,2,0,1,0,0,0),
+(@CGUID+1137,32820,0,1,1,0,0,-9316,-495,69.81,1.649,600,20,0,2,0,1,0,0,0),
+(@CGUID+1138,32820,0,1,1,0,0,-9315,324.735,70.124,0.198,600,20,0,2,0,1,0,0,0),
+(@CGUID+1139,32820,0,1,1,0,0,-9313,281.484,70.538,2.381,600,20,0,2,0,1,0,0,0),
+(@CGUID+1140,32820,0,1,1,0,0,-9313,291.223,70.619,4.102,600,20,0,2,0,1,0,0,0),
+(@CGUID+1141,32820,0,1,1,0,0,-9313,335.962,69.282,5.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+1142,32820,0,1,1,0,0,-9312,-432,68.237,2.052,600,20,0,2,0,1,0,0,0),
+(@CGUID+1143,32820,0,1,1,0,0,-9312,-169,65.719,4.121,600,20,0,2,0,1,0,0,0),
+(@CGUID+1144,32820,0,1,1,0,0,-9310,355.481,70.081,4.042,600,20,0,2,0,1,0,0,0),
+(@CGUID+1145,32820,0,1,1,0,0,-9309,-376,71.145,3.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+1146,32820,0,1,1,0,0,-9309,64.142,76.196,0.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+1147,32820,0,1,1,0,0,-9309,325.857,70.749,0.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+1148,32820,0,1,1,0,0,-9309.12,283.676,70.5382,2.26234,600,20,0,2,0,1,0,0,0),
+(@CGUID+1149,32820,0,1,1,0,0,-9308,454.329,77.708,2.505,600,20,0,2,0,1,0,0,0),
+(@CGUID+1150,32820,0,1,1,0,0,-9307,-287,70.447,3.22,600,20,0,2,0,1,0,0,0),
+(@CGUID+1151,32820,0,1,1,0,0,-9307,-109,66.028,0.785,600,20,0,2,0,1,0,0,0),
+(@CGUID+1152,32820,0,1,1,0,0,-9307,363.144,71.563,1.509,600,20,0,2,0,1,0,0,0),
+(@CGUID+1153,32820,0,1,1,0,0,-9306,-1303,68.616,0.837,600,20,0,2,0,1,0,0,0),
+(@CGUID+1154,32820,0,1,1,0,0,-9304,-65,67.552,1.358,600,20,0,2,0,1,0,0,0),
+(@CGUID+1155,32820,0,1,1,0,0,-9303,-27,69.883,4.012,600,20,0,2,0,1,0,0,0),
+(@CGUID+1156,32820,0,1,1,0,0,-9302,-105,67.37,0.023,600,20,0,2,0,1,0,0,0),
+(@CGUID+1157,32820,0,1,1,0,0,-9303.19,-292.231,70.63,3.22,600,20,0,2,0,1,0,0,0),
+(@CGUID+1158,32820,0,1,1,0,0,-9299,406.242,74.38,1.508,600,20,0,2,0,1,0,0,0),
+(@CGUID+1159,32820,0,1,1,0,0,-9299,653.552,131.166,4.433,600,20,0,2,0,1,0,0,0),
+(@CGUID+1160,32820,0,1,1,0,0,-9299,672.389,131.976,2.461,600,20,0,2,0,1,0,0,0),
+(@CGUID+1161,32820,0,1,1,0,0,-9298,625.19,130.763,5.201,600,20,0,2,0,1,0,0,0),
+(@CGUID+1162,32820,0,1,1,0,0,-9297,386.209,75.43,1.276,600,20,0,2,0,1,0,0,0),
+(@CGUID+1163,32820,0,1,1,0,0,-9297,394.508,76.329,6.133,600,20,0,2,0,1,0,0,0),
+(@CGUID+1164,32820,0,1,1,0,0,-9297,702.451,131.679,4.268,600,20,0,2,0,1,0,0,0),
+(@CGUID+1165,32820,0,1,1,0,0,-9296,474.446,79.65,4.031,600,20,0,2,0,1,0,0,0),
+(@CGUID+1166,32820,0,1,1,0,0,1684.79,1424.86,136.907,2.39333,600,20,0,2,0,1,0,0,0),
+(@CGUID+1167,32820,0,1,1,0,0,-9295,693.985,132.569,1.479,600,20,0,2,0,1,0,0,0),
+(@CGUID+1168,32820,0,1,1,0,0,-9293,-6,69.154,2.281,600,20,0,2,0,1,0,0,0),
+(@CGUID+1169,32820,0,1,1,0,0,-9293,707.857,132.644,4.331,600,20,0,2,0,1,0,0,0),
+(@CGUID+1170,32820,0,1,1,0,0,-9292,-674,64.812,1.99,600,20,0,2,0,1,0,0,0),
+(@CGUID+1171,32820,0,1,1,0,0,-9292,388.547,76.684,2.622,600,20,0,2,0,1,0,0,0),
+(@CGUID+1172,32820,0,1,1,0,0,2151.18,1679.44,84.4418,5.45437,600,20,0,2,0,1,0,0,0),
+(@CGUID+1173,32820,0,1,1,0,0,-9289,-1268,71.882,3.342,600,20,0,2,0,1,0,0,0),
+(@CGUID+1174,32820,0,1,1,0,0,-9289,-1243,70.201,1.858,600,20,0,2,0,1,0,0,0),
+(@CGUID+1175,32820,0,1,1,0,0,-9289,-820,69.269,1.641,600,20,0,2,0,1,0,0,0),
+(@CGUID+1176,32820,0,1,1,0,0,-9289,466.884,80.109,2.618,600,20,0,2,0,1,0,0,0),
+(@CGUID+1177,32820,0,1,1,0,0,1992.5,1552.64,78.9382,5.31272,600,20,0,2,0,1,0,0,0),
+(@CGUID+1178,32820,0,1,1,0,0,-9287,461.562,79.709,5.307,600,20,0,2,0,1,0,0,0),
+(@CGUID+1179,32820,0,1,1,0,0,-9285,350.418,75.529,4.967,600,20,0,2,0,1,0,0,0),
+(@CGUID+1180,32820,0,1,1,0,0,-9285,375.705,76.131,6.197,600,20,0,2,0,1,0,0,0),
+(@CGUID+1181,32820,0,1,1,0,0,-9285,446.773,79.723,3.549,600,20,0,2,0,1,0,0,0),
+(@CGUID+1182,32820,0,1,1,0,0,-9284,97.42,68.968,0.59,600,20,0,2,0,1,0,0,0),
+(@CGUID+1183,32820,0,1,1,0,0,-9282,-579,65.184,5.812,600,20,0,2,0,1,0,0,0),
+(@CGUID+1184,32820,0,1,1,0,0,-9282,-198,69.361,5.542,600,20,0,2,0,1,0,0,0),
+(@CGUID+1185,32820,0,1,1,0,0,-9282,269.266,70.933,0.031,600,20,0,2,0,1,0,0,0),
+(@CGUID+1186,32820,0,1,1,0,0,-9281,-1310,72.626,0.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+1187,32820,0,1,1,0,0,-9281,-1251,72.546,0.254,600,20,0,2,0,1,0,0,0),
+(@CGUID+1188,32820,0,1,1,0,0,-9281,662.627,131.965,6.151,600,20,0,2,0,1,0,0,0),
+(@CGUID+1189,32820,0,1,1,0,0,-9280,-1270,72.882,4.849,600,20,0,2,0,1,0,0,0),
+(@CGUID+1190,32820,0,1,1,0,0,-9279,-1183,71.143,4.553,600,20,0,2,0,1,0,0,0),
+(@CGUID+1191,32820,0,1,1,0,0,-9279,454.254,80.569,5.573,600,20,0,2,0,1,0,0,0),
+(@CGUID+1192,32820,0,1,1,0,0,-9278,-1253,73.114,0.458,600,20,0,2,0,1,0,0,0),
+(@CGUID+1193,32820,0,1,1,0,0,-9278,-1160,68.225,2.435,600,20,0,2,0,1,0,0,0),
+(@CGUID+1194,32820,0,1,1,0,0,-9277,-686,63.879,2.484,600,20,0,2,0,1,0,0,0),
+(@CGUID+1195,32820,0,1,1,0,0,-9277,-585,65.184,4.929,600,20,0,2,0,1,0,0,0),
+(@CGUID+1196,32820,0,1,1,0,0,-9273,23.978,71.351,0.267,600,20,0,2,0,1,0,0,0),
+(@CGUID+1197,32820,0,1,1,0,0,-9271,398.325,79.749,4.007,600,20,0,2,0,1,0,0,0),
+(@CGUID+1198,32820,0,1,1,0,0,-9270,-549,66.459,5.589,600,20,0,2,0,1,0,0,0),
+(@CGUID+1199,32820,0,1,1,0,0,-9268,459.041,81.799,3.677,600,20,0,2,0,1,0,0,0),
+(@CGUID+1200,32820,0,1,1,0,0,-9266.12,354.4,76.6919,2.2945,600,20,0,2,0,1,0,0,0),
+(@CGUID+1201,32820,0,1,1,0,0,-9265,294.519,71.125,2.064,600,20,0,2,0,1,0,0,0),
+(@CGUID+1202,32820,0,1,1,0,0,-9261,111.896,70.995,2.075,600,20,0,2,0,1,0,0,0),
+(@CGUID+1203,32820,0,1,1,0,0,-9260,-1972,77.436,6.126,600,20,0,2,0,1,0,0,0),
+(@CGUID+1204,32820,0,1,1,0,0,-9259,-21,73.236,1.091,600,20,0,2,0,1,0,0,0),
+(@CGUID+1205,32820,0,1,1,0,0,-9258,-1987,77.061,1.831,600,20,0,2,0,1,0,0,0),
+(@CGUID+1206,32820,0,1,1,0,0,-9256,-981,68.516,3.069,600,20,0,2,0,1,0,0,0),
+(@CGUID+1207,32820,0,1,1,0,0,-9256,-712,62.856,4.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+1208,32820,0,1,1,0,0,-9256,-708,63.098,0.942,600,20,0,2,0,1,0,0,0),
+(@CGUID+1209,32820,0,1,1,0,0,-9255,-1242,73.934,4.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+1210,32820,0,1,1,0,0,-9254,-574,66.763,5.249,600,20,0,2,0,1,0,0,0),
+(@CGUID+1211,32820,0,1,1,0,0,-9254,129.862,70.735,1.889,600,20,0,2,0,1,0,0,0),
+(@CGUID+1212,32820,0,1,1,0,0,-9253,368.858,77.524,1.918,600,20,0,2,0,1,0,0,0),
+(@CGUID+1213,32820,0,1,1,0,0,-9253,437.779,85.565,2.492,600,20,0,2,0,1,0,0,0),
+(@CGUID+1214,32820,0,1,1,0,0,-9252,-1241,74.04,2.156,600,20,0,2,0,1,0,0,0),
+(@CGUID+1215,32820,0,1,1,0,0,-9252,451.583,87.269,1.573,600,20,0,2,0,1,0,0,0),
+(@CGUID+1216,32820,0,1,1,0,0,-9250,126.236,71.395,3.382,600,20,0,2,0,1,0,0,0),
+(@CGUID+1217,32820,0,1,1,0,0,-9250,131.177,70.459,5.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+1218,32820,0,1,1,0,0,-9249,382.408,80.118,4.058,600,20,0,2,0,1,0,0,0),
+(@CGUID+1219,32820,0,1,1,0,0,-9247,-577,66.772,4.605,600,20,0,2,0,1,0,0,0),
+(@CGUID+1220,32820,0,1,1,0,0,-9246,-853,69.761,0.044,600,20,0,2,0,1,0,0,0),
+(@CGUID+1221,32820,0,1,1,0,0,-9246,52.701,73.837,2.13,600,20,0,2,0,1,0,0,0),
+(@CGUID+1222,32820,0,1,1,0,0,-9245,-713,63.039,1.92,600,20,0,2,0,1,0,0,0),
+(@CGUID+1223,32820,0,1,1,0,0,-9245,48.974,73.712,1.003,600,20,0,2,0,1,0,0,0),
+(@CGUID+1224,32820,0,1,1,0,0,-9245,275.584,72.016,2.785,600,20,0,2,0,1,0,0,0),
+(@CGUID+1225,32820,0,1,1,0,0,-9244,-2261,63.933,4.036,600,20,0,2,0,1,0,0,0),
+(@CGUID+1226,32820,0,1,1,0,0,-9244,238.294,71.189,2.089,600,20,0,2,0,1,0,0,0),
+(@CGUID+1227,32820,0,1,1,0,0,-9242,-1161,63.476,1.693,600,20,0,2,0,1,0,0,0),
+(@CGUID+1228,32820,0,1,1,0,0,-9239,-40,71.632,3.505,600,20,0,2,0,1,0,0,0),
+(@CGUID+1229,32820,0,1,1,0,0,-9238,244.909,71.441,3.295,600,20,0,2,0,1,0,0,0),
+(@CGUID+1230,32820,0,1,1,0,0,-9236,-1226,72.69,0.837,600,20,0,2,0,1,0,0,0),
+(@CGUID+1231,32820,0,1,1,0,0,-9236,-67,73.709,4.015,600,20,0,2,0,1,0,0,0),
+(@CGUID+1232,32820,0,1,1,0,0,-9234,265.97,72.531,2.269,600,20,0,2,0,1,0,0,0),
+(@CGUID+1233,32820,0,1,1,0,0,-9232,361.053,73.698,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1234,32820,0,1,1,0,0,-9230,-1199,67.716,1.134,600,20,0,2,0,1,0,0,0),
+(@CGUID+1235,32820,0,1,1,0,0,-9230,46.47,74.578,2.233,600,20,0,2,0,1,0,0,0),
+(@CGUID+1236,32820,0,1,1,0,0,-9229,67.144,75.609,5.941,600,20,0,2,0,1,0,0,0),
+(@CGUID+1237,32820,0,1,1,0,0,-9228,-70,74.946,2.101,600,20,0,2,0,1,0,0,0),
+(@CGUID+1238,32820,0,1,1,0,0,-9226,-1031,69.881,4.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+1239,32820,0,1,1,0,0,-9225,-62,74.978,3.717,600,20,0,2,0,1,0,0,0),
+(@CGUID+1240,32820,0,1,1,0,0,-9225,9.06,76.471,3.721,600,20,0,2,0,1,0,0,0),
+(@CGUID+1241,32820,0,1,1,0,0,-9224,-50,73.483,5.111,600,20,0,2,0,1,0,0,0),
+(@CGUID+1242,32820,0,1,1,0,0,-9224,-40,73.401,4.839,600,20,0,2,0,1,0,0,0),
+(@CGUID+1243,32820,0,1,1,0,0,-9223,-630,61.972,5.414,600,20,0,2,0,1,0,0,0),
+(@CGUID+1244,32820,0,1,1,0,0,-9222,54.203,75.669,1.742,600,20,0,2,0,1,0,0,0),
+(@CGUID+1245,32820,0,1,1,0,0,-9221,52.523,75.601,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1246,32820,0,1,1,0,0,-9219,-1243,76.007,3.363,600,20,0,2,0,1,0,0,0),
+(@CGUID+1247,32820,0,1,1,0,0,-9218,-1229,72.683,1.85,600,20,0,2,0,1,0,0,0),
+(@CGUID+1248,32820,0,1,1,0,0,-9217,427.754,89.692,0.175,600,20,0,2,0,1,0,0,0),
+(@CGUID+1249,32820,0,1,1,0,0,-9215,-39,75.276,0.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+1250,32820,0,1,1,0,0,-9214,-48,74.123,1.782,600,20,0,2,0,1,0,0,0),
+(@CGUID+1251,32820,0,1,1,0,0,-9213,302.359,74.24,2.633,600,20,0,2,0,1,0,0,0),
+(@CGUID+1252,32820,0,1,1,0,0,-9213,426.235,88.855,0.441,600,20,0,2,0,1,0,0,0),
+(@CGUID+1253,32820,0,1,1,0,0,-9211,146.711,72.205,4.103,600,20,0,2,0,1,0,0,0),
+(@CGUID+1254,32820,0,1,1,0,0,-9211,243.926,72.691,0.525,600,20,0,2,0,1,0,0,0),
+(@CGUID+1255,32820,0,1,1,0,0,-9210,54.903,76.405,4.504,600,20,0,2,0,1,0,0,0),
+(@CGUID+1256,32820,0,1,1,0,0,-9209,414.569,88.298,3.841,600,20,0,2,0,1,0,0,0),
+(@CGUID+1257,32820,0,1,1,0,0,-9208,31.073,74.841,2.235,600,20,0,2,0,1,0,0,0),
+(@CGUID+1258,32820,0,1,1,0,0,-9203,419.836,89.486,4.915,600,20,0,2,0,1,0,0,0),
+(@CGUID+1259,32820,0,1,1,0,0,-9202.86,204.19,71.1686,3.47368,600,20,1,2,0,1,0,0,0),
+(@CGUID+1260,32820,0,1,1,0,0,-9199,63.807,77.537,3.797,600,20,0,2,0,1,0,0,0),
+(@CGUID+1261,32820,0,1,1,0,0,-9196,-1113,71.647,4.988,600,20,0,2,0,1,0,0,0),
+(@CGUID+1262,32820,0,1,1,0,0,-9196,-846,70.045,2.073,600,20,0,2,0,1,0,0,0),
+(@CGUID+1263,32820,0,1,1,0,0,-9195,-1215,68.435,1.082,600,20,0,2,0,1,0,0,0),
+(@CGUID+1264,32820,0,1,1,0,0,-9195,-1003,70.54,3.322,600,20,0,2,0,1,0,0,0),
+(@CGUID+1265,32820,0,1,1,0,0,-9190,356.967,76.234,5.988,600,20,0,2,0,1,0,0,0),
+(@CGUID+1266,32820,0,1,1,0,0,-9189,-2301,90.541,3.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+1267,32820,0,1,1,0,0,-9185,-643,65.545,5.197,600,20,0,2,0,1,0,0,0),
+(@CGUID+1268,32820,0,1,1,0,0,-9185,117.698,74.854,4.701,600,20,0,2,0,1,0,0,0),
+(@CGUID+1269,32820,0,1,1,0,0,-9182,412.594,89.109,1.428,600,20,0,2,0,1,0,0,0),
+(@CGUID+1270,32820,0,1,1,0,0,-9177,418.347,91.326,0.86,600,20,0,2,0,1,0,0,0),
+(@CGUID+1271,32820,0,1,1,0,0,-9176,0.704,80.476,5.794,600,20,0,2,0,1,0,0,0),
+(@CGUID+1272,32820,0,1,1,0,0,-9175,-1125,71.073,4.476,600,20,0,2,0,1,0,0,0),
+(@CGUID+1273,32820,0,1,1,0,0,-9175,44.244,78.296,5.373,600,20,0,2,0,1,0,0,0),
+(@CGUID+1274,32820,0,1,1,0,0,-9173.18,317.426,80.4488,0.5183,600,20,1,2,0,1,0,0,0),
+(@CGUID+1275,32820,0,1,1,0,0,-9172,-1262,76.002,4.264,600,20,0,2,0,1,0,0,0),
+(@CGUID+1276,32820,0,1,1,0,0,-9172,-1251,75.127,2.195,600,20,0,2,0,1,0,0,0),
+(@CGUID+1277,32820,0,1,1,0,0,-9164.27,16.4855,78.7518,2.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+1278,32820,0,1,1,0,0,-9163,86.072,76.823,4.657,600,20,0,2,0,1,0,0,0),
+(@CGUID+1279,32820,0,1,1,0,0,-9162,84.631,77.076,1.632,600,20,0,2,0,1,0,0,0),
+(@CGUID+1280,32820,0,1,1,0,0,-9159,-591,59.162,2.716,600,20,0,2,0,1,0,0,0),
+(@CGUID+1281,32820,0,1,1,0,0,-9159,15.513,78.548,0.996,600,20,0,2,0,1,0,0,0),
+(@CGUID+1282,32820,0,1,1,0,0,-9155,-1277,77.293,4.105,600,20,0,2,0,1,0,0,0),
+(@CGUID+1283,32820,0,1,1,0,0,-9154,-962,71.24,4.629,600,20,0,2,0,1,0,0,0),
+(@CGUID+1284,32820,0,1,1,0,0,-9150,-1243,74.013,1.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+1285,32820,0,1,1,0,0,-9144,-1065,71.558,1.585,600,20,0,2,0,1,0,0,0),
+(@CGUID+1286,32820,0,1,1,0,0,-9136,-1148,70.616,4.383,600,20,0,2,0,1,0,0,0),
+(@CGUID+1287,32820,0,1,1,0,0,-9135,-818,70.427,2.753,600,20,0,2,0,1,0,0,0),
+(@CGUID+1288,32820,0,1,1,0,0,-9132,-596,57.446,4.187,600,20,0,2,0,1,0,0,0),
+(@CGUID+1289,32820,0,1,1,0,0,-9130,-984,76.181,2.059,600,20,0,2,0,1,0,0,0),
+(@CGUID+1290,32820,0,1,1,0,0,-9122,-300,73.442,5.435,600,20,0,2,0,1,0,0,0),
+(@CGUID+1291,32820,0,1,1,0,0,-9121,-386,73.345,0.785,600,20,0,2,0,1,0,0,0),
+(@CGUID+1292,32820,0,1,1,0,0,-9121,-355,73.511,0.882,600,20,0,2,0,1,0,0,0),
+(@CGUID+1293,32820,0,1,1,0,0,-9118,-1080,72.304,2.059,600,20,0,2,0,1,0,0,0),
+(@CGUID+1294,32820,0,1,1,0,0,-9118,-1017,72.287,0.898,600,20,0,2,0,1,0,0,0),
+(@CGUID+1295,32820,0,1,1,0,0,-9110,-257,75.005,1.177,600,20,0,2,0,1,0,0,0),
+(@CGUID+1296,32820,0,1,1,0,0,-9107,-1217,65.194,0.54,600,20,0,2,0,1,0,0,0),
+(@CGUID+1297,32820,0,1,1,0,0,-9100,-564,61.503,5.695,600,20,0,2,0,1,0,0,0),
+(@CGUID+1298,32820,0,1,1,0,0,-9098,-1101,73.715,2.16,600,20,0,2,0,1,0,0,0),
+(@CGUID+1299,32820,0,1,1,0,0,-9095,-12,91.408,3.817,600,20,0,2,0,1,0,0,0),
+(@CGUID+1300,32820,0,1,1,0,0,-9092,-951,68.852,6.09,600,20,0,2,0,1,0,0,0),
+(@CGUID+1301,32820,0,1,1,0,0,-9092,-238,74.343,0.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+1302,32820,0,1,1,0,0,-9091,-23,90.156,3.576,600,20,0,2,0,1,0,0,0),
+(@CGUID+1303,32820,0,1,1,0,0,-9090,-417,74.617,0.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+1304,32820,0,1,1,0,0,-9087,-242,74.122,2.901,600,20,0,2,0,1,0,0,0),
+(@CGUID+1305,32820,0,1,1,0,0,-9087,-31,89.033,2.37,600,20,0,2,0,1,0,0,0),
+(@CGUID+1306,32820,0,1,1,0,0,-9085,-577,62.104,1.69,600,20,0,2,0,1,0,0,0),
+(@CGUID+1307,32820,0,1,1,0,0,-9085,-556,60.266,5.407,600,20,0,2,0,1,0,0,0),
+(@CGUID+1308,32820,0,1,1,0,0,-9085,-281,73.99,4.262,600,20,0,2,0,1,0,0,0),
+(@CGUID+1309,32820,0,1,1,0,0,-9081,-180,74.765,4.778,600,20,0,2,0,1,0,0,0),
+(@CGUID+1310,32820,0,1,1,0,0,-9079,-1050,72.226,1.654,600,20,0,2,0,1,0,0,0),
+(@CGUID+1311,32820,0,1,1,0,0,-9079,-331,73.452,2.367,600,20,0,2,0,1,0,0,0),
+(@CGUID+1312,32820,0,1,1,0,0,-9079.87,442.777,93.2956,5.26296,600,20,0,2,0,1,0,0,0),
+(@CGUID+1313,32820,0,1,1,0,0,-9076,-1218,66.36,3.293,600,20,0,2,0,1,0,0,0),
+(@CGUID+1314,32820,0,1,1,0,0,-9072,-348,73.45,6.175,600,20,0,2,0,1,0,0,0),
+(@CGUID+1315,32820,0,1,1,0,0,-9059.67,417.093,93.2961,2.26746,600,20,0,2,0,1,0,0,0),
+(@CGUID+1316,32820,0,1,1,0,0,-9065,-547,58.235,1.246,600,20,0,2,0,1,0,0,0),
+(@CGUID+1317,32820,0,1,1,0,0,-9065,-312,73.452,2.842,600,20,0,2,0,1,0,0,0),
+(@CGUID+1318,32820,0,1,1,0,0,-9064,-48,88.244,1.519,600,20,0,2,0,1,0,0,0),
+(@CGUID+1319,32820,0,1,1,0,0,-9063,-39,87.959,4.575,600,20,0,2,0,1,0,0,0),
+(@CGUID+1320,32820,0,1,1,0,0,-9060,148.566,115.222,1.606,600,20,0,2,0,1,0,0,0),
+(@CGUID+1321,32820,0,1,1,0,0,-9093.46,425.22,92.1354,4.12178,600,20,0,2,0,1,0,0,0),
+(@CGUID+1322,32820,0,1,1,0,0,-9059,-458,72.486,1.305,600,20,0,2,0,1,0,0,0),
+(@CGUID+1323,32820,0,1,1,0,0,-9056,-459,72.524,1.373,600,20,0,2,0,1,0,0,0),
+(@CGUID+1324,32820,0,1,1,0,0,-9056,152.629,115.116,3.159,600,20,0,2,0,1,0,0,0),
+(@CGUID+1325,32820,0,1,1,0,0,-9053,-95,88.19,1.118,600,20,0,2,0,1,0,0,0),
+(@CGUID+1326,32820,0,1,1,0,0,-9052,-621,53.577,4.241,600,20,0,2,0,1,0,0,0),
+(@CGUID+1327,32820,0,1,1,0,0,-9052,-458,72.651,1.578,600,20,0,2,0,1,0,0,0),
+(@CGUID+1328,32820,0,1,1,0,0,-9045,-553,55.85,6.107,600,20,0,2,0,1,0,0,0),
+(@CGUID+1329,32820,0,1,1,0,0,-9045,-264,74.078,3.496,600,20,0,2,0,1,0,0,0),
+(@CGUID+1330,32820,0,1,1,0,0,-9044,-45,88.36,2.96,600,20,0,2,0,1,0,0,0),
+(@CGUID+1331,32820,0,1,1,0,0,-9041,-324,73.702,0.899,600,20,0,2,0,1,0,0,0),
+(@CGUID+1332,32820,0,1,1,0,0,-9040,-1105,71.361,4.023,600,20,0,2,0,1,0,0,0),
+(@CGUID+1333,32820,0,1,1,0,0,-9040,-607,53.241,1.478,600,20,0,2,0,1,0,0,0),
+(@CGUID+1334,32820,0,1,1,0,0,-9036,-265,73.556,5.196,600,20,0,2,0,1,0,0,0),
+(@CGUID+1335,32820,0,1,1,0,0,-9034,-368,75.484,4.205,600,20,0,2,0,1,0,0,0),
+(@CGUID+1336,32820,0,1,1,0,0,-9031,10.083,87.884,4.486,600,20,0,2,0,1,0,0,0),
+(@CGUID+1337,32820,0,1,1,0,0,-9029,-422,69.392,3.737,600,20,0,2,0,1,0,0,0),
+(@CGUID+1338,32820,0,1,1,0,0,-9016,-149,83.221,5.737,600,20,0,2,0,1,0,0,0),
+(@CGUID+1339,32820,0,1,1,0,0,-9013,-845,70.453,3.003,600,20,0,2,0,1,0,0,0),
+(@CGUID+1340,32820,0,1,1,0,0,-9012,-981,69.494,5.286,600,20,0,2,0,1,0,0,0),
+(@CGUID+1341,32820,0,1,1,0,0,-9012,-409,70.771,3.896,600,20,0,2,0,1,0,0,0),
+(@CGUID+1342,32820,0,1,1,0,0,-9012,-376,74.271,5.453,600,20,0,2,0,1,0,0,0),
+(@CGUID+1343,32820,0,1,1,0,0,-9012,-362,75.378,1.618,600,20,0,2,0,1,0,0,0),
+(@CGUID+1344,32820,0,1,1,0,0,-9011,-1231,74.086,0.222,600,20,0,2,0,1,0,0,0),
+(@CGUID+1345,32820,0,1,1,0,0,-9011,-867,69.49,1.788,600,20,0,2,0,1,0,0,0),
+(@CGUID+1346,32820,0,1,1,0,0,-9003,-148,80.381,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1347,32820,0,1,1,0,0,-9001,-826,69.884,2,600,20,0,2,0,1,0,0,0),
+(@CGUID+1348,32820,0,1,1,0,0,-9001,-404,71.292,6.259,600,20,0,2,0,1,0,0,0),
+(@CGUID+1349,32820,0,1,1,0,0,-9000,-414,69.884,3.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+1350,32820,0,1,1,0,0,-8996,-818,69.715,2.023,600,20,0,2,0,1,0,0,0),
+(@CGUID+1351,32820,0,1,1,0,0,-8914.36,-134.589,80.4957,2.23039,600,20,0,2,0,1,0,0,0),
+(@CGUID+1352,32820,0,1,1,0,0,-8990,-771,73.386,5.568,600,20,0,2,0,1,0,0,0),
+(@CGUID+1353,32820,0,1,1,0,0,-8989,-1174,65.43,1.623,600,20,0,2,0,1,0,0,0),
+(@CGUID+1354,32820,0,1,1,0,0,-8987,-855,69.49,4.981,600,20,0,2,0,1,0,0,0),
+(@CGUID+1355,32820,0,1,1,0,0,-8984,-1199,71.807,1.113,600,20,0,2,0,1,0,0,0),
+(@CGUID+1356,32820,0,1,1,0,0,-8984,-1170,65.087,2.688,600,20,0,2,0,1,0,0,0),
+(@CGUID+1357,32820,0,1,1,0,0,-8980,-208,73.729,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1358,32820,0,1,1,0,0,-8978,-339,73.712,5.346,600,20,0,2,0,1,0,0,0),
+(@CGUID+1359,32820,0,1,1,0,0,-8974,-57,91.582,1.171,600,20,0,2,0,1,0,0,0),
+(@CGUID+1360,32820,0,1,1,0,0,-8971,-359,73.401,2.806,600,20,0,2,0,1,0,0,0),
+(@CGUID+1361,32820,0,1,1,0,0,-8967,-203,75.644,2.318,600,20,0,2,0,1,0,0,0),
+(@CGUID+1362,32820,0,1,1,0,0,-8962,-406,68.404,3.042,600,20,0,2,0,1,0,0,0),
+(@CGUID+1363,32820,0,1,1,0,0,-8961,-447,66.772,4.475,600,20,0,2,0,1,0,0,0),
+(@CGUID+1364,32820,0,1,1,0,0,-8960,-807,69.773,1.665,600,20,0,2,0,1,0,0,0),
+(@CGUID+1365,32820,0,1,1,0,0,-8960,-228,77.593,4.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+1366,32820,0,1,1,0,0,-8959,-792,69.974,1.393,600,20,0,2,0,1,0,0,0),
+(@CGUID+1367,32820,0,1,1,0,0,-8956,-43,91.414,1.311,600,20,0,2,0,1,0,0,0),
+(@CGUID+1368,32820,0,1,1,0,0,-8955,-373,72.205,2.905,600,20,0,2,0,1,0,0,0),
+(@CGUID+1369,32820,0,1,1,0,0,-8952,-1145,66.507,6.157,600,20,0,2,0,1,0,0,0),
+(@CGUID+1370,32820,0,1,1,0,0,-8952,-404,68.705,3.014,600,20,0,2,0,1,0,0,0),
+(@CGUID+1371,32820,0,1,1,0,0,-8952,536.444,96.367,4.248,600,20,0,2,0,1,0,0,0),
+(@CGUID+1372,32820,0,1,1,0,0,-8951,-790,69.117,0.205,600,20,0,2,0,1,0,0,0),
+(@CGUID+1373,32820,0,1,1,0,0,-8951,-418,65.92,0.187,600,20,0,2,0,1,0,0,0),
+(@CGUID+1374,32820,0,1,1,0,0,-8949,-78,89.266,2.86,600,20,0,2,0,1,0,0,0),
+(@CGUID+1375,32820,0,1,1,0,0,-8948,-773,68.77,4.14,600,20,0,2,0,1,0,0,0),
+(@CGUID+1376,32820,0,1,1,0,0,-8937,-378,71.14,1.232,600,20,0,2,0,1,0,0,0),
+(@CGUID+1377,32820,0,1,1,0,0,-8937,518.506,96.366,3.598,600,20,0,2,0,1,0,0,0),
+(@CGUID+1378,32820,0,1,1,0,0,-8935,-52,90.24,0.223,600,20,0,2,0,1,0,0,0),
+(@CGUID+1379,32820,0,1,1,0,0,-8934,-167,80.842,5.977,600,20,0,2,0,1,0,0,0),
+(@CGUID+1380,32820,0,1,1,0,0,-8932.9,-136.332,83.1518,1.6083,600,20,0,2,0,1,0,0,0),
+(@CGUID+1381,32820,0,1,1,0,0,-8931,78.547,154.017,5.008,600,20,0,2,0,1,0,0,0),
+(@CGUID+1382,32820,0,1,1,0,0,-8929,-734,70.519,5.786,600,20,0,2,0,1,0,0,0),
+(@CGUID+1383,32820,0,1,1,0,0,-8929,-63,89.939,5.168,600,20,0,2,0,1,0,0,0),
+(@CGUID+1384,32820,0,1,1,0,0,-8928,-202,80.682,2.204,600,20,0,2,0,1,0,0,0),
+(@CGUID+1385,32820,0,1,1,0,0,-8927,-196,80.771,2.553,600,20,0,2,0,1,0,0,0),
+(@CGUID+1386,32820,0,1,1,0,0,-8924,-438,67.911,0.277,600,20,0,2,0,1,0,0,0),
+(@CGUID+1387,32820,0,1,1,0,0,-8947.97,-182.604,79.8355,5.84689,600,20,0,2,0,1,0,0,0),
+(@CGUID+1388,32820,0,1,1,0,0,-8921,-1201,74.587,3.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+1389,32820,0,1,1,0,0,-8918,-403,67.755,0.63,600,20,0,2,0,1,0,0,0),
+(@CGUID+1390,32820,0,1,1,0,0,-8918,-208,82.309,6.282,600,20,0,2,0,1,0,0,0),
+(@CGUID+1391,32820,0,1,1,0,0,-8917,-36,91.844,0.749,600,20,0,2,0,1,0,0,0),
+(@CGUID+1392,32820,0,1,1,0,0,-8915,-438,69.636,1.035,600,20,0,2,0,1,0,0,0),
+(@CGUID+1393,32820,0,1,1,0,0,-8915,-215,82.3,1.204,600,20,0,2,0,1,0,0,0),
+(@CGUID+1394,32820,0,1,1,0,0,-8914,-810,68.928,3.611,600,20,0,2,0,1,0,0,0),
+(@CGUID+1395,32820,0,1,1,0,0,-8910,-278,78.267,4.534,600,20,0,2,0,1,0,0,0),
+(@CGUID+1396,32820,0,1,1,0,0,-8910,-262,79.214,4.587,600,20,0,2,0,1,0,0,0),
+(@CGUID+1397,32820,0,1,1,0,0,-8910,-105,81.848,4.411,600,20,0,2,0,1,0,0,0),
+(@CGUID+1398,32820,0,1,1,0,0,-8908.13,-108.89,81.8481,4.28817,600,20,0,2,0,1,0,0,0),
+(@CGUID+1399,32820,0,1,1,0,0,-8906,-891,73.501,3.254,600,20,0,2,0,1,0,0,0),
+(@CGUID+1400,32820,0,1,1,0,0,-8904,792.487,87.501,2.376,600,20,0,2,0,1,0,0,0),
+(@CGUID+1401,32820,0,1,1,0,0,-8903,-286,77.597,3.899,600,20,0,2,0,1,0,0,0),
+(@CGUID+1402,32820,0,1,1,0,0,-8903,-163,82.022,2.042,600,20,0,2,0,1,0,0,0),
+(@CGUID+1403,32820,0,1,1,0,0,-8902,-182,113.24,0.873,600,20,0,2,0,1,0,0,0),
+(@CGUID+1404,32820,0,1,1,0,0,-8901.56,-112.697,81.8482,3.18871,600,20,0,2,0,1,0,0,0),
+(@CGUID+1405,32820,0,1,1,0,0,-8901,-362,71.707,5.729,600,20,0,2,0,1,0,0,0),
+(@CGUID+1406,32820,0,1,1,0,0,-8901,-80,84.384,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1407,32820,0,1,1,0,0,-8898,-120,82.016,3.315,600,20,0,2,0,1,0,0,0),
+(@CGUID+1408,32820,0,1,1,0,0,-8898,-19,92.553,1.283,600,20,0,2,0,1,0,0,0),
+(@CGUID+1409,32820,0,1,1,0,0,-8897.47,-115.457,81.838,3.76358,600,20,0,2,0,1,0,0,0),
+(@CGUID+1410,32820,0,1,1,0,0,-8896,-769,69.566,5.637,600,20,0,2,0,1,0,0,0),
+(@CGUID+1411,32820,0,1,1,0,0,-8895,575.431,92.564,5.253,600,20,0,2,0,1,0,0,0),
+(@CGUID+1412,32820,0,1,1,0,0,-8893,-1205,76.779,4.969,600,20,0,2,0,1,0,0,0),
+(@CGUID+1413,32820,0,1,1,0,0,-8892,-47,86.954,4.215,600,20,0,2,0,1,0,0,0),
+(@CGUID+1414,32820,0,1,1,0,0,-8890,-919,75.5,2.696,600,20,0,2,0,1,0,0,0),
+(@CGUID+1415,32820,0,1,1,0,0,-8890,639.99,99.522,0.474,600,20,0,2,0,1,0,0,0),
+(@CGUID+1416,32820,0,1,1,0,0,-8889,-755,69.426,1.799,600,20,0,2,0,1,0,0,0),
+(@CGUID+1417,32820,0,1,1,0,0,-8889,-393,67.44,2.896,600,20,0,2,0,1,0,0,0),
+(@CGUID+1418,32820,0,1,1,0,0,-8888,566.202,92.534,2.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+1419,32820,0,1,1,0,0,-8887,-779,69.713,0.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+1420,32820,0,1,1,0,0,-8887,635.868,99.606,0.765,600,20,0,2,0,1,0,0,0),
+(@CGUID+1421,32820,0,1,1,0,0,-8886,-1023,72.819,4.919,600,20,0,2,0,1,0,0,0),
+(@CGUID+1422,32820,0,1,1,0,0,-8885,6.25,94.517,4.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+1423,32820,0,1,1,0,0,-8885,752.073,96.195,5.432,600,20,0,2,0,1,0,0,0),
+(@CGUID+1424,32820,0,1,1,0,0,-8883,-60,85.681,5.152,600,20,0,2,0,1,0,0,0),
+(@CGUID+1425,32820,0,1,1,0,0,-8883,-33,88.557,5.21,600,20,0,2,0,1,0,0,0),
+(@CGUID+1426,32820,0,1,1,0,0,-8882,6.896,93.946,0.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+1427,32820,0,1,1,0,0,-8879,-955,75.224,6.101,600,20,0,2,0,1,0,0,0),
+(@CGUID+1428,32820,0,1,1,0,0,-8877,-1107,75.2,1.914,600,20,0,2,0,1,0,0,0),
+(@CGUID+1429,32820,0,1,1,0,0,-8877,-1083,74.682,1.344,600,20,0,2,0,1,0,0,0),
+(@CGUID+1430,32820,0,1,1,0,0,-8876,-186,81.938,1.482,600,20,0,2,0,1,0,0,0),
+(@CGUID+1431,32820,0,1,1,0,0,-8875,13.938,92.975,1.121,600,20,0,2,0,1,0,0,0),
+(@CGUID+1432,32820,0,1,1,0,0,-8874,-923,75.937,2.913,600,20,0,2,0,1,0,0,0),
+(@CGUID+1433,32820,0,1,1,0,0,-8874,-78,83.112,5.152,600,20,0,2,0,1,0,0,0),
+(@CGUID+1434,32820,0,1,1,0,0,-8869,-374,71.815,5.453,600,20,0,2,0,1,0,0,0),
+(@CGUID+1435,32820,0,1,1,0,0,-8842.51,-270.136,81.1989,1.18472,600,20,0,2,0,1,0,0,0),
+(@CGUID+1436,32820,0,1,1,0,0,-8865,-217,80.956,4.368,600,20,0,2,0,1,0,0,0),
+(@CGUID+1437,32820,0,1,1,0,0,-8865,762.931,96.889,2.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+1438,32820,0,1,1,0,0,-8860,-813,70.458,0.663,600,20,0,2,0,1,0,0,0),
+(@CGUID+1439,32820,0,1,1,0,0,-8857,937.947,102.143,0.53,600,20,0,2,0,1,0,0,0),
+(@CGUID+1440,32820,0,1,1,0,0,-8856,-81,84.245,0.97,600,20,0,2,0,1,0,0,0),
+(@CGUID+1441,32820,0,1,1,0,0,-8855,-1139,76.615,1.998,600,20,0,2,0,1,0,0,0),
+(@CGUID+1442,32820,0,1,1,0,0,-8854,-938,76.242,4.371,600,20,0,2,0,1,0,0,0),
+(@CGUID+1443,32820,0,1,1,0,0,-8854,-823,71.878,4.805,600,20,0,2,0,1,0,0,0),
+(@CGUID+1444,32820,0,1,1,0,0,-8854,-192,81.933,3.32,600,20,0,2,0,1,0,0,0),
+(@CGUID+1445,32820,0,1,1,0,0,-8854,541.299,105.898,4.976,600,20,0,2,0,1,0,0,0),
+(@CGUID+1446,32820,0,1,1,0,0,-8853,-835,73.025,1.413,600,20,0,2,0,1,0,0,0),
+(@CGUID+1447,32820,0,1,1,0,0,-8853,-776,70.516,5.55,600,20,0,2,0,1,0,0,0),
+(@CGUID+1448,32820,0,1,1,0,0,-8851,-919,75.995,1.985,600,20,0,2,0,1,0,0,0),
+(@CGUID+1449,32820,0,1,1,0,0,-8851,-223,81.562,4.969,600,20,0,2,0,1,0,0,0),
+(@CGUID+1450,32820,0,1,1,0,0,-8851,-188,89.313,2.37,600,20,0,2,0,1,0,0,0),
+(@CGUID+1451,32820,0,1,1,0,0,-8850,-287,78.741,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1452,32820,0,1,1,0,0,-8849,-918,76.015,2.365,600,20,0,2,0,1,0,0,0),
+(@CGUID+1453,32820,0,1,1,0,0,-8848,-812,70.712,4.206,600,20,0,2,0,1,0,0,0),
+(@CGUID+1454,32820,0,1,1,0,0,-8848,-105,81.92,3.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+1455,32820,0,1,1,0,0,-8844,-1125,76.107,5.95,600,20,0,2,0,1,0,0,0),
+(@CGUID+1456,32820,0,1,1,0,0,-8843,-981,74.577,1.568,600,20,0,2,0,1,0,0,0),
+(@CGUID+1457,32820,0,1,1,0,0,-8838,-854,74.684,0.639,600,20,0,2,0,1,0,0,0),
+(@CGUID+1458,32820,0,1,1,0,0,-8837,-999,74.077,6.018,600,20,0,2,0,1,0,0,0),
+(@CGUID+1459,32820,0,1,1,0,0,-8835,-61,86.624,0.924,600,20,0,2,0,1,0,0,0),
+(@CGUID+1460,32820,0,1,1,0,0,-8835,723.541,97.881,1.986,600,20,0,2,0,1,0,0,0),
+(@CGUID+1461,32820,0,1,1,0,0,-8834,-881,74.428,2.025,600,20,0,2,0,1,0,0,0),
+(@CGUID+1462,32820,0,1,1,0,0,-8833,542.104,96.942,2.753,600,20,1,2,0,1,0,0,0),
+(@CGUID+1463,32820,0,1,1,0,0,-8828,-867,74.593,3.229,600,20,0,2,0,1,0,0,0),
+(@CGUID+1464,32820,0,1,1,0,0,-8827,904.341,98.139,4.034,600,20,0,2,0,1,0,0,0),
+(@CGUID+1465,32820,0,1,1,0,0,-8825,613.922,94.463,0.89,600,20,1,2,0,1,0,0,0),
+(@CGUID+1466,32820,0,1,1,0,0,-8824,-142,80.839,5.912,600,20,0,2,0,1,0,0,0),
+(@CGUID+1467,32820,0,1,1,0,0,-8821,-843,74.501,2.856,600,20,0,2,0,1,0,0,0),
+(@CGUID+1468,32820,0,1,1,0,0,-8821,-122,80.865,3.5,600,20,0,2,0,1,0,0,0),
+(@CGUID+1469,32820,0,1,1,0,0,-8818,97.723,164.66,4.413,600,20,0,2,0,1,0,0,0),
+(@CGUID+1470,32820,0,1,1,0,0,-8817,810.273,99.022,3.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+1471,32820,0,1,1,0,0,-8813,803.688,98.623,3.761,600,20,0,2,0,1,0,0,0),
+(@CGUID+1472,32820,0,1,1,0,0,-8812,-169,81.309,5.209,600,20,0,2,0,1,0,0,0),
+(@CGUID+1473,32820,0,1,1,0,0,-8811,-1017,75.755,4.581,600,20,0,2,0,1,0,0,0),
+(@CGUID+1474,32820,0,1,1,0,0,-8811,-244,82.142,2.682,600,20,0,2,0,1,0,0,0),
+(@CGUID+1475,32820,0,1,1,0,0,-8809,-213,81.973,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1476,32820,0,1,1,0,0,-8809,-61,91.362,0.557,600,20,0,2,0,1,0,0,0),
+(@CGUID+1477,32820,0,1,1,0,0,-8808,-96,83.649,5.901,600,20,0,2,0,1,0,0,0),
+(@CGUID+1478,32820,0,1,1,0,0,-8808,623.519,94.485,2.347,600,20,0,2,0,1,0,0,0),
+(@CGUID+1479,32820,0,1,1,0,0,-8803,-81,86.374,3.092,600,20,0,2,0,1,0,0,0),
+(@CGUID+1480,32820,0,1,1,0,0,-8803,862.081,98.887,2.161,600,20,0,2,0,1,0,0,0),
+(@CGUID+1481,32820,0,1,1,0,0,-8799,-1097,76.21,1.408,600,20,0,2,0,1,0,0,0),
+(@CGUID+1482,32820,0,1,1,0,0,-8799,865.216,98.958,2.381,600,20,0,2,0,1,0,0,0),
+(@CGUID+1483,32820,0,1,1,0,0,-8798,-99,83.259,2.092,600,20,0,2,0,1,0,0,0),
+(@CGUID+1484,32820,0,1,1,0,0,-8797,-173,81.655,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1485,32820,0,1,1,0,0,-8796,-211,82.807,2.339,600,20,0,2,0,1,0,0,0),
+(@CGUID+1486,32820,0,1,1,0,0,-8795,-108,83.073,1.504,600,20,0,2,0,1,0,0,0),
+(@CGUID+1487,32820,0,1,1,0,0,-8791,-129,82.513,4.16,600,20,0,2,0,1,0,0,0),
+(@CGUID+1488,32820,0,1,1,0,0,-8790,-124,82.994,4.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+1489,32820,0,1,1,0,0,-8790,-121,82.98,2.568,600,20,0,2,0,1,0,0,0),
+(@CGUID+1490,32820,0,1,1,0,0,-8787,-935,74.019,3.324,600,20,0,2,0,1,0,0,0),
+(@CGUID+1491,32820,0,1,1,0,0,-8787,-252,82.661,2.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+1492,32820,0,1,1,0,0,-8785,-278,78.736,0.996,600,20,0,2,0,1,0,0,0),
+(@CGUID+1493,32820,0,1,1,0,0,-8782,-203,84.005,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1494,32820,0,1,1,0,0,-8780,-59,92.094,0.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+1495,32820,0,1,1,0,0,-8779,-250,82.702,2.752,600,20,0,2,0,1,0,0,0),
+(@CGUID+1496,32820,0,1,1,0,0,-8779,-171,82.004,0.97,600,20,0,2,0,1,0,0,0),
+(@CGUID+1497,32820,0,1,1,0,0,-8773,-127,83.395,3.134,600,20,0,2,0,1,0,0,0),
+(@CGUID+1498,32820,0,1,1,0,0,-8772,-151,81.32,0.721,600,20,0,2,0,1,0,0,0),
+(@CGUID+1499,32820,0,1,1,0,0,-8770,-158,81.992,4.023,600,20,0,2,0,1,0,0,0),
+(@CGUID+1500,32820,0,1,1,0,0,-8770,-118,83.495,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1501,32820,0,1,1,0,0,-8770,-102,87.125,5.647,600,20,0,2,0,1,0,0,0),
+(@CGUID+1502,32820,0,1,1,0,0,-8769,-286,77.486,3.298,600,20,0,2,0,1,0,0,0),
+(@CGUID+1503,32820,0,1,1,0,0,-8769,-272,78.433,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+1504,32820,0,1,1,0,0,-8768,-76,90.689,2.175,600,20,0,2,0,1,0,0,0),
+(@CGUID+1505,32820,0,1,1,0,0,-8765,-232,85.305,5.685,600,20,0,2,0,1,0,0,0),
+(@CGUID+1506,32820,0,1,1,0,0,-8765,-193,85.266,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+1507,32820,0,1,1,0,0,-8765,-183,84.088,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1508,32820,0,1,1,0,0,-8765,607.706,96.892,3.959,600,20,0,2,0,1,0,0,0),
+(@CGUID+1509,32820,0,1,1,0,0,-8760.53,-109.372,85.435,3.84574,600,20,0,2,0,1,0,0,0),
+(@CGUID+1510,32820,0,1,1,0,0,-8763,-158,82.828,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+1511,32820,0,1,1,0,0,-8762,-144,81.933,3.59,600,20,0,2,0,1,0,0,0),
+(@CGUID+1512,32820,0,1,1,0,0,-8756,-186,84.99,4.422,600,20,0,2,0,1,0,0,0),
+(@CGUID+1513,32820,0,1,1,0,0,-8756,-89,91.77,2.771,600,20,0,2,0,1,0,0,0),
+(@CGUID+1514,32820,0,1,1,0,0,-8755,-129,83.029,2.396,600,20,0,2,0,1,0,0,0),
+(@CGUID+1515,32820,0,1,1,0,0,-8753,-203,86.316,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1516,32820,0,1,1,0,0,-8744,-177,85.559,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+1517,32820,0,1,1,0,0,-8743,-120,85.732,1.077,600,20,0,2,0,1,0,0,0),
+(@CGUID+1518,32820,0,1,1,0,0,-8742,-163,84.981,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1519,32820,0,1,1,0,0,-8741,-192,86.09,0.947,600,20,0,2,0,1,0,0,0),
+(@CGUID+1520,32820,0,1,1,0,0,-8741,-97,89.23,2.363,600,20,0,2,0,1,0,0,0),
+(@CGUID+1521,32820,0,1,1,0,0,-8737,-58,91.341,2.596,600,20,0,2,0,1,0,0,0),
+(@CGUID+1522,32820,0,1,1,0,0,-8735,-103,87.046,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+1523,32820,0,1,1,0,0,-8728,375.537,101.265,3.352,600,20,0,2,0,1,0,0,0),
+(@CGUID+1524,32820,0,1,1,0,0,-8600.26,-139.186,87.808,3.4111,600,20,0,2,0,1,0,0,0),
+(@CGUID+1525,32820,0,1,1,0,0,-8724,-139,86.919,4.184,600,20,0,2,0,1,0,0,0),
+(@CGUID+1526,32820,0,1,1,0,0,-8723,-208,89.648,3.229,600,20,0,2,0,1,0,0,0),
+(@CGUID+1527,32820,0,1,1,0,0,-8717,-105,87.423,3.695,600,20,0,2,0,1,0,0,0),
+(@CGUID+1528,32820,0,1,1,0,0,-8717,923.309,100.879,2.292,600,20,0,2,0,1,0,0,0),
+(@CGUID+1529,32820,0,1,1,0,0,-8714,348.185,101.019,2.83,600,20,0,2,0,1,0,0,0),
+(@CGUID+1530,32820,0,1,1,0,0,-8710,-80,90.094,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1531,32820,0,1,1,0,0,-8708,-188,99.205,5.373,600,20,0,2,0,1,0,0,0),
+(@CGUID+1532,32820,0,1,1,0,0,-8698,-74,89.932,0.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+1533,32820,0,1,1,0,0,-8691,-122,88.343,2.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+1534,32820,0,1,1,0,0,-8685,-185,91.246,0.43,600,20,0,2,0,1,0,0,0),
+(@CGUID+1535,32820,0,1,1,0,0,-8684,575.301,97.054,3.805,600,20,0,2,0,1,0,0,0),
+(@CGUID+1536,32820,0,1,1,0,0,-8682,-100,89.536,2.684,600,20,0,2,0,1,0,0,0),
+(@CGUID+1537,32820,0,1,1,0,0,-8680,-191,91.409,6.181,600,20,0,2,0,1,0,0,0),
+(@CGUID+1538,32820,0,1,1,0,0,-8679,635.687,96.969,2.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+1539,32820,0,1,1,0,0,-8676,-203,94.627,4.422,600,20,0,2,0,1,0,0,0),
+(@CGUID+1540,32820,0,1,1,0,0,-8676,638.406,96.969,2.26,600,20,0,2,0,1,0,0,0),
+(@CGUID+1541,32820,0,1,1,0,0,-8675,869.995,97.016,2.455,600,20,0,2,0,1,0,0,0),
+(@CGUID+1542,32820,0,1,1,0,0,-8586.41,-147.882,89.9644,2.233,600,20,0,2,0,1,0,0,0),
+(@CGUID+1543,32820,0,1,1,0,0,-8556,-217.474,84.981,2.05473,600,20,0,2,0,1,0,0,0),
+(@CGUID+1544,32820,0,1,1,0,0,-8644,801.707,96.67,2.527,600,20,1,2,0,1,0,0,0),
+(@CGUID+1545,32820,0,1,1,0,0,-8561.69,-148.63,88.3487,3.41111,600,20,0,2,0,1,0,0,0),
+(@CGUID+1546,32820,0,1,1,0,0,-8545.58,-159.898,87.1807,1.5772,600,20,0,2,0,1,0,0,0),
+(@CGUID+1547,32820,0,1,1,0,0,-8539.24,-174.348,85.1864,2.13876,600,20,0,2,0,1,0,0,0),
+(@CGUID+1548,32820,0,1,1,0,0,-8623,848.741,96.721,2.331,600,20,1,2,0,1,0,0,0),
+(@CGUID+1549,32820,0,1,1,0,0,-8618,784.698,97.252,3.766,600,20,0,2,0,1,0,0,0),
+(@CGUID+1550,32820,0,1,1,0,0,-8565.04,-218.299,85.4327,0.399106,600,20,0,2,0,1,0,0,0),
+(@CGUID+1551,32820,0,1,1,0,0,-8613,778.144,97.243,3.864,600,20,0,2,0,1,0,0,0),
+(@CGUID+1552,32820,0,1,1,0,0,-8551.88,-202.872,85.526,5.97622,600,20,0,2,0,1,0,0,0),
+(@CGUID+1553,32820,0,1,1,0,0,-8533.56,-195.278,83.5968,1.74214,600,20,0,2,0,1,0,0,0),
+(@CGUID+1554,32820,0,1,1,0,0,-8583.03,-173.171,90.9283,1.62904,600,20,0,2,0,1,0,0,0),
+(@CGUID+1555,32820,0,1,1,0,0,-8644.95,-115.942,88.0407,3.95727,600,20,0,2,0,1,0,0,0),
+(@CGUID+1556,32820,0,1,1,0,0,-8563.16,-203.576,84.3093,4.568,600,20,0,2,0,1,0,0,0),
+(@CGUID+1557,32820,0,1,1,0,0,-8635.73,-111.035,86.8433,3.64311,600,20,0,2,0,1,0,0,0),
+(@CGUID+1558,32820,0,1,1,0,0,-8544,502.641,98.552,5.48,600,20,0,2,0,1,0,0,0),
+(@CGUID+1559,32820,0,1,1,0,0,-8887.99,-274.452,80.4154,4.88438,600,20,0,2,0,1,0,0,0),
+(@CGUID+1560,32820,0,1,1,0,0,-8856.3,-252.666,81.1253,5.68549,600,20,0,2,0,1,0,0,0),
+(@CGUID+1561,32820,0,1,1,0,0,-8534,692.766,97.669,3.918,600,20,1,2,0,1,0,0,0),
+(@CGUID+1562,32820,0,1,1,0,0,-8368,542.082,91.797,2.27,600,20,0,2,0,1,0,0,0),
+(@CGUID+1563,32820,0,1,1,0,0,-8217,-499,197.379,2.145,600,20,0,2,0,1,0,0,0),
+(@CGUID+1564,32820,0,1,1,0,0,-8208,-485,193.739,5.354,600,20,0,2,0,1,0,0,0),
+(@CGUID+1565,32820,0,1,1,0,0,-8205,-483,193.823,2.678,600,20,0,2,0,1,0,0,0),
+(@CGUID+1566,32820,0,1,1,0,0,-8184,-577,200.644,4.471,600,20,0,2,0,1,0,0,0),
+(@CGUID+1567,32820,0,1,1,0,0,-8177,-594,200.167,0.811,600,20,0,2,0,1,0,0,0),
+(@CGUID+1568,32820,0,1,1,0,0,-8159,-597,199.913,2.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+1569,32820,0,1,1,0,0,-8150,-540,200.85,1.866,600,20,0,2,0,1,0,0,0),
+(@CGUID+1570,32820,0,1,1,0,0,-7501,-2145,146.088,0.955,600,20,0,2,0,1,0,0,0),
+(@CGUID+1571,32820,0,1,1,0,0,-6807,-2289,280.753,2.587,600,20,0,2,0,1,0,0,0),
+(@CGUID+1572,32820,0,1,1,0,0,-6439,-1115,312.16,3.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+1573,32820,0,1,1,0,0,1901.5,1507.09,89.1851,0.850343,600,20,0,2,0,1,0,0,0),
+(@CGUID+1574,32820,0,1,1,0,0,1939.89,1545.48,90.165,1.22525,600,20,0,2,0,1,0,0,0),
+(@CGUID+1575,32820,0,1,1,0,0,1939.86,1574.08,82.4603,2.76817,600,20,0,2,0,1,0,0,0),
+(@CGUID+1576,32820,0,1,1,0,0,1909.7,1514.67,87.3891,4.62487,600,20,0,2,0,1,0,0,0),
+(@CGUID+1577,32820,0,1,1,0,0,-6160,325.568,399.968,1.928,600,20,0,2,0,1,0,0,0),
+(@CGUID+1578,32820,0,1,1,0,0,1947.43,1559.7,87.6517,5.05464,600,20,0,2,0,1,0,0,0),
+(@CGUID+1579,32820,0,1,1,0,0,1871.81,1511.04,88.1731,1.4094,600,20,0,2,0,1,0,0,0),
+(@CGUID+1580,32820,0,1,1,0,0,1923.72,1546.34,87.5938,5.72714,600,20,0,2,0,1,0,0,0),
+(@CGUID+1581,32820,0,1,1,0,0,1951.47,1608.03,83.4339,0.90738,600,20,0,2,0,1,0,0,0),
+(@CGUID+1582,32820,0,1,1,0,0,1957.45,1559.31,86.7158,3.11913,600,20,0,2,0,1,0,0,0),
+(@CGUID+1583,32820,0,1,1,0,0,1964.36,1596.41,88.1966,6.16458,600,20,0,2,0,1,0,0,0),
+(@CGUID+1584,32820,0,1,1,0,0,1958.78,1605.91,88.1813,3.39428,600,20,0,2,0,1,0,0,0),
+(@CGUID+1585,32820,0,1,1,0,0,1969.51,1611.49,88.1993,1.55372,600,20,0,2,0,1,0,0,0),
+(@CGUID+1586,32820,0,1,1,0,0,1998.98,1702.84,79.2207,4.83678,600,20,0,2,0,1,0,0,0),
+(@CGUID+1587,32820,0,1,1,0,0,1964.83,1611.97,88.1991,5.10508,600,20,0,2,0,1,0,0,0),
+(@CGUID+1588,32820,0,1,1,0,0,1965.75,1611.9,83.5143,4.57629,600,20,0,2,0,1,0,0,0),
+(@CGUID+1589,32820,0,1,1,0,0,1985.09,1674.03,77.8688,2.46003,600,20,0,2,0,1,0,0,0),
+(@CGUID+1590,32820,0,1,1,0,0,1961.67,1604,83.4338,1.92067,600,20,0,2,0,1,0,0,0),
+(@CGUID+1591,32820,0,1,1,0,0,1989.34,1614.82,82.0564,3.55892,600,20,0,2,0,1,0,0,0),
+(@CGUID+1592,32820,0,1,1,0,0,1744.62,1564.06,115.271,4.91857,600,20,0,2,0,1,0,0,0),
+(@CGUID+1593,32820,0,1,1,0,0,1992.71,1626.04,79.6506,1.53227,600,20,0,2,0,1,0,0,0),
+(@CGUID+1594,32820,0,1,1,0,0,-5816,-3455,311.46,4.143,600,20,0,2,0,1,0,0,0),
+(@CGUID+1595,32820,0,1,1,0,0,-5793,-2582,309.097,4.926,600,20,0,2,0,1,0,0,0),
+(@CGUID+1596,32820,0,1,1,0,0,-5787,-3588,335.657,3.72,600,20,0,2,0,1,0,0,0),
+(@CGUID+1597,32820,0,1,1,0,0,-5726,-3310,304.167,1.49,600,20,0,2,0,1,0,0,0),
+(@CGUID+1598,32820,0,1,1,0,0,-5706,-3545,305.103,4.912,600,20,0,2,0,1,0,0,0),
+(@CGUID+1599,32820,0,1,1,0,0,-5687,-3183,318.88,0.687,600,20,0,2,0,1,0,0,0),
+(@CGUID+1600,32820,0,1,1,0,0,-5670,-528,398.13,2.381,600,20,0,2,0,1,0,0,0),
+(@CGUID+1601,32820,0,1,1,0,0,-5656,-3646,315.12,5.039,600,20,0,2,0,1,0,0,0),
+(@CGUID+1602,32820,0,1,1,0,0,-5614,-3701,315.196,4.999,600,20,0,2,0,1,0,0,0),
+(@CGUID+1603,32820,0,1,1,0,0,-5559,-2779,364.792,0.143,600,20,0,2,0,1,0,0,0),
+(@CGUID+1604,32820,0,1,1,0,0,-5485,-3766,317.351,0.37,600,20,0,2,0,1,0,0,0),
+(@CGUID+1605,32820,0,1,1,0,0,-5454,-2859,348.231,3.275,600,20,0,2,0,1,0,0,0),
+(@CGUID+1606,32820,0,1,1,0,0,-5425,-2851,345.649,3.473,600,20,0,2,0,1,0,0,0),
+(@CGUID+1607,32820,0,1,1,0,0,-5352,-2892,341.729,1.654,600,20,0,2,0,1,0,0,0),
+(@CGUID+1608,32820,0,1,1,0,0,-5325,-3759,309.441,0.148,600,20,0,2,0,1,0,0,0),
+(@CGUID+1609,32820,0,1,1,0,0,-5250,-2806,345.624,3.708,600,20,0,2,0,1,0,0,0),
+(@CGUID+1610,32820,0,1,1,0,0,-5224,-3745,313.321,0.176,600,20,0,2,0,1,0,0,0),
+(@CGUID+1611,32820,0,1,1,0,0,-5212,-2780,338.271,1.048,600,20,0,2,0,1,0,0,0),
+(@CGUID+1612,32820,0,1,1,0,0,-5165,-876,507.245,0.929,600,20,0,2,0,1,0,0,0),
+(@CGUID+1613,32820,0,1,1,0,0,-5154,-2987,331.929,4.471,600,20,0,2,0,1,0,0,0),
+(@CGUID+1614,32820,0,1,1,0,0,-5135,-3739,311.317,0.08,600,20,0,2,0,1,0,0,0),
+(@CGUID+1615,32820,0,1,1,0,0,1776.54,1422.64,94.6241,1.23212,600,20,0,2,0,1,0,0,0),
+(@CGUID+1616,32820,0,1,1,0,0,-5085,-3052,323.62,6.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+1617,32820,0,1,1,0,0,-5076,-2855,323.234,5.708,600,20,0,2,0,1,0,0,0),
+(@CGUID+1618,32820,0,1,1,0,0,-5059,-3717,313.61,0.869,600,20,0,2,0,1,0,0,0),
+(@CGUID+1619,32820,0,1,1,0,0,-5049,-2745,336.041,2.09,600,20,0,2,0,1,0,0,0),
+(@CGUID+1620,32820,0,1,1,0,0,-4991,-2879,338.593,4.392,600,20,0,2,0,1,0,0,0),
+(@CGUID+1621,32820,0,1,1,0,0,-4977,-3080,317.529,3.301,600,20,0,2,0,1,0,0,0),
+(@CGUID+1622,32820,0,1,1,0,0,-4940,-2970,321.597,2.764,600,20,0,2,0,1,0,0,0),
+(@CGUID+1623,32820,0,1,1,0,0,-4905,-2783,329.388,3.044,600,20,0,2,0,1,0,0,0),
+(@CGUID+1624,32820,0,1,1,0,0,-4895,-2662,331.436,2.669,600,20,0,2,0,1,0,0,0),
+(@CGUID+1625,32820,0,1,1,0,0,-4816,-2960,321.874,0.081,600,20,0,2,0,1,0,0,0),
+(@CGUID+1626,32820,0,1,1,0,0,-4805,-2784,325.017,1.212,600,20,0,2,0,1,0,0,0),
+(@CGUID+1627,32820,0,1,1,0,0,-4782,-2972,322.237,1.247,600,20,0,2,0,1,0,0,0),
+(@CGUID+1628,32820,0,1,1,0,0,-4745,-2866,328.156,0.666,600,20,0,2,0,1,0,0,0),
+(@CGUID+1629,32820,0,1,1,0,0,-4720,-2753,325.374,0.837,600,20,0,2,0,1,0,0,0),
+(@CGUID+1630,32820,0,1,1,0,0,-4700,-2790,328.179,0.831,600,20,0,2,0,1,0,0,0),
+(@CGUID+1631,32820,0,1,1,0,0,1707.5,1481.87,146.438,5.03859,600,20,0,2,0,1,0,0,0),
+(@CGUID+1632,32820,0,1,1,0,0,-3645,-720,9.968,4.426,600,20,0,2,0,1,0,0,0),
+(@CGUID+1633,32820,0,1,1,0,0,-3639,-715,9.945,4.335,600,20,0,2,0,1,0,0,0),
+(@CGUID+1634,32820,0,1,1,0,0,-3636,-716,9.897,4.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+1635,32820,0,1,1,0,0,-3633,-718,9.898,4.041,600,20,0,2,0,1,0,0,0),
+(@CGUID+1636,32820,0,1,1,0,0,-3355,-845,1.063,1.734,600,20,0,2,0,1,0,0,0),
+(@CGUID+1637,32820,0,1,1,0,0,-3299,-2430,18.597,5.693,600,20,0,2,0,1,0,0,0),
+(@CGUID+1638,32820,0,1,1,0,0,-8836.48,-240.295,82.7459,5.43024,600,20,0,2,0,1,0,0,0),
+(@CGUID+1639,32820,0,1,1,0,0,-8962.26,-174.974,79.7247,2.9633,600,20,0,2,0,1,0,0,0),
+(@CGUID+1640,32820,0,1,1,0,0,-1468,-2625,48.363,4.617,600,20,0,2,0,1,0,0,0),
+(@CGUID+1641,32820,0,1,1,0,0,1897.38,1491.79,93.9505,3.99949,600,20,0,2,0,1,0,0,0),
+(@CGUID+1642,32820,0,1,1,0,0,1903.73,1497,89.1851,0.677535,600,20,0,2,0,1,0,0,0),
+(@CGUID+1643,32820,0,1,1,0,0,-1322.33,-3190.17,37.5942,0.173087,600,20,0,2,0,1,0,0,0),
+(@CGUID+1644,32820,0,1,1,0,0,-806,-638,12.021,5.902,600,20,0,2,0,1,0,0,0),
+(@CGUID+1645,32820,0,1,1,0,0,-789,1241.1,77.095,3.885,600,20,0,2,0,1,0,0,0),
+(@CGUID+1646,32820,0,1,1,0,0,-786,-607,15.235,1.414,600,20,0,2,0,1,0,0,0),
+(@CGUID+1647,32820,0,1,1,0,0,-782,-612,15.235,1.892,600,20,0,2,0,1,0,0,0),
+(@CGUID+1648,32820,0,1,1,0,0,-779,-631,14.728,1.099,600,20,0,2,0,1,0,0,0),
+(@CGUID+1649,32820,0,1,1,0,0,-779,-610,15.235,2.179,600,20,0,2,0,1,0,0,0),
+(@CGUID+1650,32820,0,1,1,0,0,-779,-601,15.235,3.222,600,20,0,2,0,1,0,0,0),
+(@CGUID+1651,32820,0,1,1,0,0,-777,-608,15.235,2.453,600,20,0,2,0,1,0,0,0),
+(@CGUID+1652,32820,0,1,1,0,0,-775,-606,15.235,2.706,600,20,0,2,0,1,0,0,0),
+(@CGUID+1653,32820,0,1,1,0,0,-750,-455,25.201,6.185,600,20,0,2,0,1,0,0,0),
+(@CGUID+1654,32820,0,1,1,0,0,-721,-592,25.011,3.121,600,20,0,2,0,1,0,0,0),
+(@CGUID+1655,32820,0,1,1,0,0,2051.43,1574.93,74.2552,2.10952,600,20,0,2,0,1,0,0,0),
+(@CGUID+1656,32820,0,1,1,0,0,-569,-112,47.513,1.302,600,20,0,2,0,1,0,0,0),
+(@CGUID+1657,32820,0,1,1,0,0,-566,-132,51.169,3.078,600,20,0,2,0,1,0,0,0),
+(@CGUID+1658,32820,0,1,1,0,0,-482,917.984,91.386,5.378,600,20,0,2,0,1,0,0,0),
+(@CGUID+1659,32820,0,1,1,0,0,-456,-111,54.729,1.605,600,20,0,2,0,1,0,0,0),
+(@CGUID+1660,32820,0,1,1,0,0,-408,-53,54.454,4.922,600,20,0,2,0,1,0,0,0),
+(@CGUID+1661,32820,0,1,1,0,0,-322,-3297,131.5,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1662,32820,0,1,1,0,0,-314,1135.16,72.124,5.49,600,20,0,2,0,1,0,0,0),
+(@CGUID+1663,32820,0,1,1,0,0,-313,1340.57,34.934,4.864,600,20,0,2,0,1,0,0,0),
+(@CGUID+1664,32820,0,1,1,0,0,-287,-3255,125.125,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1665,32820,0,1,1,0,0,-285,-4388,108.627,2.007,600,20,0,2,0,1,0,0,0),
+(@CGUID+1666,32820,0,1,1,0,0,-258,-3199,121.5,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1667,32820,0,1,1,0,0,-243,1359.05,37.73,2.687,600,20,0,2,0,1,0,0,0),
+(@CGUID+1668,32820,0,1,1,0,0,-221,1384.99,33.943,4.851,600,20,0,2,0,1,0,0,0),
+(@CGUID+1669,32820,0,1,1,0,0,-210,1297.49,40.747,1.959,600,20,0,2,0,1,0,0,0),
+(@CGUID+1670,32820,0,1,1,0,0,-204,1427.15,31.121,0.767,600,20,0,2,0,1,0,0,0),
+(@CGUID+1671,32820,0,1,1,0,0,-168.824,-3033.28,120.93,0.713902,600,20,0,2,0,1,0,0,0),
+(@CGUID+1672,32820,0,1,1,0,0,-164.849,-3120.23,119.516,1.97133,600,20,0,2,0,1,0,0,0),
+(@CGUID+1673,32820,0,1,1,0,0,-141,-2899,124,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1674,32820,0,1,1,0,0,-95,1120.03,64.676,2.09,600,20,0,2,0,1,0,0,0),
+(@CGUID+1675,32820,0,1,1,0,0,-93,1136.79,64.397,0.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+1676,32820,0,1,1,0,0,1751.11,1422.08,113.726,0.503288,600,20,0,2,0,1,0,0,0),
+(@CGUID+1677,32820,0,1,1,0,0,-72,-3364,123.75,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1678,32820,0,1,1,0,0,-55,1256.13,60.262,5.175,600,20,0,2,0,1,0,0,0),
+(@CGUID+1679,32820,0,1,1,0,0,-52,-4357,137,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1680,32820,0,1,1,0,0,-20,-996,55.837,1.499,600,20,0,2,0,1,0,0,0),
+(@CGUID+1681,32820,0,1,1,0,0,-8.41412,-3427.04,118.346,2.41664,600,20,0,2,0,1,0,0,0),
+(@CGUID+1682,32820,0,1,1,0,0,8.155,1241.76,62.017,0.162,600,20,0,2,0,1,0,0,0),
+(@CGUID+1683,32820,0,1,1,0,0,45.579,1312.13,63.793,2.42,600,20,0,2,0,1,0,0,0),
+(@CGUID+1684,32820,0,1,1,0,0,58,-4295,123,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1685,32820,0,1,1,0,0,71.864,690.764,63.165,4.919,600,20,0,2,0,1,0,0,0),
+(@CGUID+1686,32820,0,1,1,0,0,79.621,1189.98,63.799,6.213,600,20,0,2,0,1,0,0,0),
+(@CGUID+1687,32820,0,1,1,0,0,84.175,1333.08,67.441,6.08,600,20,0,2,0,1,0,0,0),
+(@CGUID+1688,32820,0,1,1,0,0,92.791,1120.78,68.67,5.628,600,20,0,2,0,1,0,0,0),
+(@CGUID+1689,32820,0,1,1,0,0,110.456,1269.12,67.596,2.889,600,20,0,2,0,1,0,0,0),
+(@CGUID+1690,32820,0,1,1,0,0,119.804,1150.93,70.085,4.101,600,20,0,2,0,1,0,0,0),
+(@CGUID+1691,32820,0,1,1,0,0,148.276,681.614,52.887,5.253,600,20,0,2,0,1,0,0,0),
+(@CGUID+1692,32820,0,1,1,0,0,164.149,1489.78,114.394,4.949,600,20,0,2,0,1,0,0,0),
+(@CGUID+1693,32820,0,1,1,0,0,176.92,1211.73,68.081,5.471,600,20,0,2,0,1,0,0,0),
+(@CGUID+1694,32820,0,1,1,0,0,197,-4201,122.125,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1695,32820,0,1,1,0,0,198.296,1373.02,98.163,1.522,600,20,0,2,0,1,0,0,0),
+(@CGUID+1696,32820,0,1,1,0,0,216,-2991,117.25,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1697,32820,0,1,1,0,0,219.332,1128.08,70.276,5.282,600,20,0,2,0,1,0,0,0),
+(@CGUID+1698,32820,0,1,1,0,0,279.445,1516.3,139.208,0.012,600,20,0,2,0,1,0,0,0),
+(@CGUID+1699,32820,0,1,1,0,0,282.42,-4022.96,119.372,4.14295,600,20,0,2,0,1,0,0,0),
+(@CGUID+1700,32820,0,1,1,0,0,294.869,691.752,42.9,0.711,600,20,0,2,0,1,0,0,0),
+(@CGUID+1701,32820,0,1,1,0,0,304.059,-3981.02,124.132,4.53172,600,20,0,2,0,1,0,0,0),
+(@CGUID+1702,32820,0,1,1,0,0,306,-4176,123.125,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1703,32820,0,1,1,0,0,313.482,-1524,58.629,5.506,600,20,0,2,0,1,0,0,0),
+(@CGUID+1704,32820,0,1,1,0,0,314.622,-1487,43.999,2.356,600,20,0,2,0,1,0,0,0),
+(@CGUID+1705,32820,0,1,1,0,0,324.261,-2227,137.775,3.107,600,20,0,2,0,1,0,0,0),
+(@CGUID+1706,32820,0,1,1,0,0,328.469,1291.78,77.505,2.143,600,20,0,2,0,1,0,0,0),
+(@CGUID+1707,32820,0,1,1,0,0,336.852,1435.4,125.617,0.703,600,20,0,2,0,1,0,0,0),
+(@CGUID+1708,32820,0,1,1,0,0,336.92,1276.86,78.202,4.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+1709,32820,0,1,1,0,0,340.961,1179.32,81.573,0.755,600,20,0,2,0,1,0,0,0),
+(@CGUID+1710,32820,0,1,1,0,0,341.178,1449.96,126.285,5.911,600,20,0,2,0,1,0,0,0),
+(@CGUID+1711,32820,0,1,1,0,0,350.82,1602.25,128.812,5.964,600,20,0,2,0,1,0,0,0),
+(@CGUID+1712,32820,0,1,1,0,0,354.014,1600.3,128.227,1.082,600,20,0,2,0,1,0,0,0),
+(@CGUID+1713,32820,0,1,1,0,0,367.389,1587.62,128.909,6.258,600,20,0,2,0,1,0,0,0),
+(@CGUID+1714,32820,0,1,1,0,0,372,-4205,118.375,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1715,32820,0,1,1,0,0,381,-3528,122,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+1716,32820,0,1,1,0,0,397.303,-865,124.349,4.744,600,20,0,2,0,1,0,0,0),
+(@CGUID+1717,32820,0,1,1,0,0,399.17,-845,126.687,0.343,600,20,0,2,0,1,0,0,0),
+(@CGUID+1718,32820,0,1,1,0,0,428.552,1181.1,87.954,4.704,600,20,0,2,0,1,0,0,0),
+(@CGUID+1719,32820,0,1,1,0,0,428.681,1196.46,84.859,0.324,600,20,0,2,0,1,0,0,0),
+(@CGUID+1720,32820,0,1,1,0,0,458.206,1315.96,81.804,4.773,600,20,0,2,0,1,0,0,0),
+(@CGUID+1721,32820,0,1,1,0,0,476.229,1595.9,126.662,5.942,600,20,0,2,0,1,0,0,0),
+(@CGUID+1722,32820,0,1,1,0,0,479.811,1267.26,82.98,5.984,600,20,0,2,0,1,0,0,0),
+(@CGUID+1723,32820,0,1,1,0,0,492.422,-772,147.39,0.249,600,20,0,2,0,1,0,0,0),
+(@CGUID+1724,32820,0,1,1,0,0,493.482,-1455,48.912,1.236,600,20,0,2,0,1,0,0,0),
+(@CGUID+1725,32820,0,1,1,0,0,508.227,1326.29,85.711,1.012,600,20,0,2,0,1,0,0,0),
+(@CGUID+1726,32820,0,1,1,0,0,516.715,1410.04,99.79,3.753,600,20,0,2,0,1,0,0,0),
+(@CGUID+1727,32820,0,1,1,0,0,521.218,-1447,50.313,0.002,600,20,0,2,0,1,0,0,0),
+(@CGUID+1728,32820,0,1,1,0,0,522.159,-764,157.889,0.261,600,20,0,2,0,1,0,0,0),
+(@CGUID+1729,32820,0,1,1,0,0,529.541,1160.25,93.347,6.039,600,20,0,2,0,1,0,0,0),
+(@CGUID+1730,32820,0,1,1,0,0,542.417,-1074,143.417,4.494,600,20,0,2,0,1,0,0,0),
+(@CGUID+1731,32820,0,1,1,0,0,547.18,1194.25,86.435,1.542,600,20,0,2,0,1,0,0,0),
+(@CGUID+1732,32820,0,1,1,0,0,635.297,-1337,102.984,1.89,600,20,0,2,0,1,0,0,0),
+(@CGUID+1733,32820,0,1,1,0,0,651.539,1308.37,84.0927,4.64149,600,20,0,2,0,1,0,0,0),
+(@CGUID+1734,32820,0,1,1,0,0,660.913,1367.78,79.66,1.29,600,20,0,2,0,1,0,0,0),
+(@CGUID+1735,32820,0,1,1,0,0,674.073,-1453,81.108,1.849,600,20,0,2,0,1,0,0,0),
+(@CGUID+1736,32820,0,1,1,0,0,691.448,1073.78,50.784,3.328,600,20,0,2,0,1,0,0,0),
+(@CGUID+1737,32820,0,1,1,0,0,698.865,1238.2,67.384,5.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+1738,32820,0,1,1,0,0,702.753,1365.46,73.569,3.576,600,20,0,2,0,1,0,0,0),
+(@CGUID+1739,32820,0,1,1,0,0,715.927,1462.33,61.307,1.025,600,20,0,2,0,1,0,0,0),
+(@CGUID+1740,32820,0,1,1,0,0,718.784,527.067,36.267,3.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+1741,32820,0,1,1,0,0,749.011,1645.38,38.022,0.664,600,20,0,2,0,1,0,0,0),
+(@CGUID+1742,32820,0,1,1,0,0,767.278,-1467,77.457,0.903,600,20,0,2,0,1,0,0,0),
+(@CGUID+1743,32820,0,1,1,0,0,783.957,1403.71,59.312,2.411,600,20,0,2,0,1,0,0,0),
+(@CGUID+1744,32820,0,1,1,0,0,790.984,-1462,75.27,5.116,600,20,0,2,0,1,0,0,0),
+(@CGUID+1745,32820,0,1,1,0,0,803.386,1224.31,54.166,5.726,600,20,0,2,0,1,0,0,0),
+(@CGUID+1746,32820,0,1,1,0,0,834.511,1501.72,42.526,2.397,600,20,0,2,0,1,0,0,0),
+(@CGUID+1747,32820,0,1,1,0,0,837.677,1657.8,24.021,4.907,600,20,0,2,0,1,0,0,0),
+(@CGUID+1748,32820,0,1,1,0,0,842.183,1713.32,18.871,1.618,600,20,0,2,0,1,0,0,0),
+(@CGUID+1749,32820,0,1,1,0,0,872.046,-1497,64.076,5.529,600,20,0,2,0,1,0,0,0),
+(@CGUID+1750,32820,0,1,1,0,0,879.713,1560.15,28.648,4.103,600,20,0,2,0,1,0,0,0),
+(@CGUID+1751,32820,0,1,1,0,0,902.236,-1517,55.037,4.744,600,20,0,2,0,1,0,0,0),
+(@CGUID+1752,32820,0,1,1,0,0,902.684,1150.51,49.979,4.75,600,20,0,2,0,1,0,0,0),
+(@CGUID+1753,32820,0,1,1,0,0,921.494,-1460,64.486,4.481,600,20,0,2,0,1,0,0,0),
+(@CGUID+1754,32820,0,1,1,0,0,932.54,1367.52,39.984,3.724,600,20,0,2,0,1,0,0,0),
+(@CGUID+1755,32820,0,1,1,0,0,934.564,1298.45,41.96,4.17,600,20,0,2,0,1,0,0,0),
+(@CGUID+1756,32820,0,1,1,0,0,939.838,-1489,64.446,1.179,600,20,0,2,0,1,0,0,0),
+(@CGUID+1757,32820,0,1,1,0,0,940.014,1370.98,40.845,2.561,600,20,0,2,0,1,0,0,0),
+(@CGUID+1758,32820,0,1,1,0,0,940.727,-1420,66.623,4.131,600,20,0,2,0,1,0,0,0),
+(@CGUID+1759,32820,0,1,1,0,0,941.62,1527.42,37.729,4.598,600,20,0,2,0,1,0,0,0),
+(@CGUID+1760,32820,0,1,1,0,0,961.048,1490.55,39.627,1.623,600,20,0,2,0,1,0,0,0),
+(@CGUID+1761,32820,0,1,1,0,0,961.14,1588.06,31.173,5.24,600,20,0,2,0,1,0,0,0),
+(@CGUID+1762,32820,0,1,1,0,0,961.831,1125.4,46.842,4.461,600,20,0,2,0,1,0,0,0),
+(@CGUID+1763,32820,0,1,1,0,0,964.77,-1479,62.365,2.321,600,20,0,2,0,1,0,0,0),
+(@CGUID+1764,32820,0,1,1,0,0,971.502,-1428,65.169,3.7,600,20,0,2,0,1,0,0,0),
+(@CGUID+1765,32820,0,1,1,0,0,972.236,1711.85,14.58,0.027,600,20,0,2,0,1,0,0,0),
+(@CGUID+1766,32820,0,1,1,0,0,975.02,1706.71,15.328,2.404,600,20,0,2,0,1,0,0,0),
+(@CGUID+1767,32820,0,1,1,0,0,976.797,-1484,65.31,4.421,600,20,0,2,0,1,0,0,0),
+(@CGUID+1768,32820,0,1,1,0,0,982.935,-1445,64.272,5.572,600,20,0,2,0,1,0,0,0),
+(@CGUID+1769,32820,0,1,1,0,0,989.992,1135.55,47.204,0.83,600,20,0,2,0,1,0,0,0),
+(@CGUID+1770,32820,0,1,1,0,0,992.585,-1428,66.198,5.702,600,20,0,2,0,1,0,0,0),
+(@CGUID+1771,32820,0,1,1,0,0,999.113,-1217,63.045,5.742,600,20,0,2,0,1,0,0,0),
+(@CGUID+1772,32820,0,1,1,0,0,1011.79,1898.79,6.703,2.323,600,20,0,2,0,1,0,0,0),
+(@CGUID+1773,32820,0,1,1,0,0,1014.25,1690.75,19.267,5.831,600,20,0,2,0,1,0,0,0),
+(@CGUID+1774,32820,0,1,1,0,0,1024.46,1607.47,23.935,1.58,600,20,0,2,0,1,0,0,0),
+(@CGUID+1775,32820,0,1,1,0,0,1026.51,1408.18,41.933,6.077,600,20,0,2,0,1,0,0,0),
+(@CGUID+1776,32820,0,1,1,0,0,1027.28,-1380,70.556,1.592,600,20,0,2,0,1,0,0,0),
+(@CGUID+1777,32820,0,1,1,0,0,1028.52,-1308,66.208,5.691,600,20,0,2,0,1,0,0,0),
+(@CGUID+1778,32820,0,1,1,0,0,1032.82,-1473,63.758,2.425,600,20,0,2,0,1,0,0,0),
+(@CGUID+1779,32820,0,1,1,0,0,1036.64,-1410,67.689,3.6,600,20,0,2,0,1,0,0,0),
+(@CGUID+1780,32820,0,1,1,0,0,1044.71,1442.55,45.77,0.773,600,20,0,2,0,1,0,0,0),
+(@CGUID+1781,32820,0,1,1,0,0,1047.85,1457,43.695,4.987,600,20,0,2,0,1,0,0,0),
+(@CGUID+1782,32820,0,1,1,0,0,1057.5,1450.18,44.245,3.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+1783,32820,0,1,1,0,0,1065.34,1115.21,40.001,5.21,600,20,0,2,0,1,0,0,0),
+(@CGUID+1784,32820,0,1,1,0,0,1072.76,1186.9,45.242,3.648,600,20,0,2,0,1,0,0,0),
+(@CGUID+1785,32820,0,1,1,0,0,1085.11,1831.97,17,0.039,600,20,0,2,0,1,0,0,0),
+(@CGUID+1786,32820,0,1,1,0,0,1096.79,1316.54,38.34,0.349,600,20,0,2,0,1,0,0,0),
+(@CGUID+1787,32820,0,1,1,0,0,1097.12,-1344,66.021,4.819,600,20,0,2,0,1,0,0,0),
+(@CGUID+1788,32820,0,1,1,0,0,1105.8,1352.05,38.387,0.359,600,20,0,2,0,1,0,0,0),
+(@CGUID+1789,32820,0,1,1,0,0,1110.63,1650.16,31.133,6.068,600,20,0,2,0,1,0,0,0),
+(@CGUID+1790,32820,0,1,1,0,0,1111.45,1274.43,40.292,4.603,600,20,0,2,0,1,0,0,0),
+(@CGUID+1791,32820,0,1,1,0,0,1117.94,1703.66,28.618,0.473,600,20,0,2,0,1,0,0,0),
+(@CGUID+1792,32820,0,1,1,0,0,1124.87,1935.88,10.525,3.143,600,20,0,2,0,1,0,0,0),
+(@CGUID+1793,32820,0,1,1,0,0,1139.53,1429.37,36.176,4.869,600,20,0,2,0,1,0,0,0),
+(@CGUID+1794,32820,0,1,1,0,0,1155.84,1635.29,26.623,5.293,600,20,0,2,0,1,0,0,0),
+(@CGUID+1795,32820,0,1,1,0,0,1165.2,1251.65,48.534,1.301,600,20,0,2,0,1,0,0,0),
+(@CGUID+1796,32820,0,1,1,0,0,1177.1,1398.64,35.231,3.281,600,20,0,2,0,1,0,0,0),
+(@CGUID+1797,32820,0,1,1,0,0,1200.58,1017.83,36.449,2.116,600,20,0,2,0,1,0,0,0),
+(@CGUID+1798,32820,0,1,1,0,0,1207,1087.9,38.04,3.912,600,20,0,2,0,1,0,0,0),
+(@CGUID+1799,32820,0,1,1,0,0,1210.67,902.129,33.872,4.266,600,20,0,2,0,1,0,0,0),
+(@CGUID+1800,32820,0,1,1,0,0,1220.44,1100.96,42.555,0.811,600,20,0,2,0,1,0,0,0),
+(@CGUID+1801,32820,0,1,1,0,0,1226.66,1831.86,10.109,4.419,600,20,0,2,0,1,0,0,0),
+(@CGUID+1802,32820,0,1,1,0,0,1227.34,1350.73,37.992,1.734,600,20,0,2,0,1,0,0,0),
+(@CGUID+1803,32820,0,1,1,0,0,1238.37,-2414,60.739,2.359,600,20,0,2,0,1,0,0,0),
+(@CGUID+1804,32820,0,1,1,0,0,1243.33,1218.2,52.665,3.723,600,20,0,2,0,1,0,0,0),
+(@CGUID+1805,32820,0,1,1,0,0,1244.41,1916.89,12.889,5.072,600,20,0,2,0,1,0,0,0),
+(@CGUID+1806,32820,0,1,1,0,0,1253.23,1889.74,13.083,6.259,600,20,0,2,0,1,0,0,0),
+(@CGUID+1807,32820,0,1,1,0,0,1260.69,1030.85,43.393,3.04,600,20,0,2,0,1,0,0,0),
+(@CGUID+1808,32820,0,1,1,0,0,1270.04,982.334,44.642,4.756,600,20,0,2,0,1,0,0,0),
+(@CGUID+1809,32820,0,1,1,0,0,1274.15,1028.39,44.708,4.273,600,20,0,2,0,1,0,0,0),
+(@CGUID+1810,32820,0,1,1,0,0,1284.15,1123.82,49.611,2.928,600,20,0,2,0,1,0,0,0),
+(@CGUID+1811,32820,0,1,1,0,0,1313.34,834.769,34.935,4.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+1812,32820,0,1,1,0,0,1321.23,884.217,46.26,1.124,600,20,0,2,0,1,0,0,0),
+(@CGUID+1813,32820,0,1,1,0,0,1365.56,805.331,49.44,0.836,600,20,0,2,0,1,0,0,0),
+(@CGUID+1814,32820,0,1,1,0,0,1374.01,735.929,46.282,3.878,600,20,0,2,0,1,0,0,0),
+(@CGUID+1815,32820,0,1,1,0,0,1380.44,-3701,77.017,6.271,600,20,0,2,0,1,0,0,0),
+(@CGUID+1816,32820,0,1,1,0,0,1396.86,989.125,52.179,2.145,600,20,0,2,0,1,0,0,0),
+(@CGUID+1817,32820,0,1,1,0,0,1402.22,1034.58,52.993,2.04,600,20,0,2,0,1,0,0,0),
+(@CGUID+1818,32820,0,1,1,0,0,1406.98,821.089,47.211,2.337,600,20,0,2,0,1,0,0,0),
+(@CGUID+1819,32820,0,1,1,0,0,1412.15,655.785,48.723,5.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+1820,32820,0,1,1,0,0,1887.06,1454.94,78.2062,1.73572,600,20,0,2,0,1,0,0,0),
+(@CGUID+1821,32820,0,1,1,0,0,1429.86,679.498,48.31,6.226,600,20,0,2,0,1,0,0,0),
+(@CGUID+1822,32820,0,1,1,0,0,1438.34,612.295,46.114,3.06,600,20,0,2,0,1,0,0,0),
+(@CGUID+1823,32820,0,1,1,0,0,1442.72,569.365,48.616,2.83,600,20,0,2,0,1,0,0,0),
+(@CGUID+1824,32820,0,1,1,0,0,1448.06,724.958,44.822,0.521,600,20,0,2,0,1,0,0,0),
+(@CGUID+1825,32820,0,1,1,0,0,1448.35,551.224,51.476,5.49,600,20,0,2,0,1,0,0,0),
+(@CGUID+1826,32820,0,1,1,0,0,1450.61,1113.83,60.735,1.44,600,20,0,2,0,1,0,0,0),
+(@CGUID+1827,32820,0,1,1,0,0,1453.31,917.864,57.259,3.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+1828,32820,0,1,1,0,0,1461.07,768.615,50.337,0.188,600,20,0,2,0,1,0,0,0),
+(@CGUID+1829,32820,0,1,1,0,0,1464.24,728.697,45.235,0.544,600,20,0,2,0,1,0,0,0),
+(@CGUID+1830,32820,0,1,1,0,0,1464.99,789.986,54.668,5.75,600,20,0,2,0,1,0,0,0),
+(@CGUID+1831,32820,0,1,1,0,0,1465.57,567.219,53.163,5.131,600,20,0,2,0,1,0,0,0),
+(@CGUID+1832,32820,0,1,1,0,0,1471.52,859.503,72.349,6.161,600,20,0,2,0,1,0,0,0),
+(@CGUID+1833,32820,0,1,1,0,0,1474.97,499.644,39.622,3.757,600,20,0,2,0,1,0,0,0),
+(@CGUID+1834,32820,0,1,1,0,0,1475.14,576.905,53.428,1.352,600,20,0,2,0,1,0,0,0),
+(@CGUID+1835,32820,0,1,1,0,0,1491.46,661.033,44.706,6.228,600,20,0,2,0,1,0,0,0),
+(@CGUID+1836,32820,0,1,1,0,0,1512.77,659.536,43.255,0.676,600,20,0,2,0,1,0,0,0),
+(@CGUID+1837,32820,0,1,1,0,0,1513.26,720.752,50.903,4.559,600,20,0,2,0,1,0,0,0),
+(@CGUID+1838,32820,0,1,1,0,0,1519.5,644.208,43.157,3.962,600,20,0,2,0,1,0,0,0),
+(@CGUID+1839,32820,0,1,1,0,0,1520.7,586.997,47.605,0.88,600,20,0,2,0,1,0,0,0),
+(@CGUID+1840,32820,0,1,1,0,0,1528.25,548.5,52.608,4.647,600,20,0,2,0,1,0,0,0),
+(@CGUID+1841,32820,0,1,1,0,0,1541.52,603.2,45.237,0.105,600,20,0,2,0,1,0,0,0),
+(@CGUID+1842,32820,0,1,1,0,0,1543.7,505.559,45.386,3.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+1843,32820,0,1,1,0,0,1579.24,508.478,43.526,5.306,600,20,0,2,0,1,0,0,0),
+(@CGUID+1844,32820,0,1,1,0,0,1583.18,612.709,51.515,0.361,600,20,0,2,0,1,0,0,0),
+(@CGUID+1845,32820,0,1,1,0,0,1599.26,631.194,65.446,3.249,600,20,0,2,0,1,0,0,0),
+(@CGUID+1846,32820,0,1,1,0,0,1602.33,665.019,84.633,0.198,600,20,0,2,0,1,0,0,0),
+(@CGUID+1847,32820,0,1,1,0,0,1602.58,535.46,38.724,4.262,600,20,0,2,0,1,0,0,0),
+(@CGUID+1848,32820,0,1,1,0,0,1603.01,586.253,37.579,4.245,600,20,0,2,0,1,0,0,0),
+(@CGUID+1849,32820,0,1,1,0,0,1611.48,600.123,44.223,1.541,600,20,0,2,0,1,0,0,0),
+(@CGUID+1850,32820,0,1,1,0,0,1615.33,517.125,39.614,2.911,600,20,0,2,0,1,0,0,0),
+(@CGUID+1851,32820,0,1,1,0,0,1625.79,535.696,35.541,4.307,600,20,0,2,0,1,0,0,0),
+(@CGUID+1852,32820,0,1,1,0,0,1633.98,510.343,41.396,0.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+1853,32820,0,1,1,0,0,1638.49,-373,45.013,0.679,600,20,0,2,0,1,0,0,0),
+(@CGUID+1854,32820,0,1,1,0,0,1638.76,-463,45.635,1.425,600,20,0,2,0,1,0,0,0),
+(@CGUID+1855,32820,0,1,1,0,0,1640.62,-588,44.993,1.372,600,20,0,2,0,1,0,0,0),
+(@CGUID+1856,32820,0,1,1,0,0,1651.88,684.505,77.946,1.918,600,20,0,2,0,1,0,0,0),
+(@CGUID+1857,32820,0,1,1,0,0,1651.93,-611,47.782,1.726,600,20,0,2,0,1,0,0,0),
+(@CGUID+1858,32820,0,1,1,0,0,1652.61,-478,45.697,3.065,600,20,0,2,0,1,0,0,0),
+(@CGUID+1859,32820,0,1,1,0,0,1655.15,-354,44.998,1.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+1860,32820,0,1,1,0,0,1655.88,-728,58.925,1.355,600,20,0,2,0,1,0,0,0),
+(@CGUID+1861,32820,0,1,1,0,0,1660.99,623.452,51.54,5.326,600,20,0,2,0,1,0,0,0),
+(@CGUID+1862,32820,0,1,1,0,0,1669.65,-719,58.302,0.806,600,20,0,2,0,1,0,0,0),
+(@CGUID+1863,32820,0,1,1,0,0,2113.83,1512.22,68.1744,3.83896,600,20,0,2,0,1,0,0,0),
+(@CGUID+1864,32820,0,1,1,0,0,1673.15,-733,59.067,1.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+1865,32820,0,1,1,0,0,-8869.22,-163.237,80.9719,0.959931,600,20,0,2,0,1,0,0,0),
+(@CGUID+1866,32820,0,1,1,0,0,1676.1,583.93,35.881,5.875,600,20,0,2,0,1,0,0,0),
+(@CGUID+1867,32820,0,1,1,0,0,1676.29,-514,44.081,0.221,600,20,0,2,0,1,0,0,0),
+(@CGUID+1868,32820,0,1,1,0,0,1684.25,-722,57.97,0.646,600,20,0,2,0,1,0,0,0),
+(@CGUID+1869,32820,0,1,1,0,0,1684.41,-479,43.864,1.012,600,20,0,2,0,1,0,0,0),
+(@CGUID+1870,32820,0,1,1,0,0,1678.99,1667.86,135.855,3.76991,600,20,0,2,0,1,0,0,0),
+(@CGUID+1871,32820,0,1,1,0,0,1685.87,746.877,46.417,0.75,600,20,0,2,0,1,0,0,0),
+(@CGUID+1872,32820,0,1,1,0,0,1691.92,-274,45.27,2.423,600,20,0,2,0,1,0,0,0),
+(@CGUID+1873,32820,0,1,1,0,0,1695.67,520.835,36.226,4.154,600,20,0,2,0,1,0,0,0),
+(@CGUID+1874,32820,0,1,1,0,0,1696.57,1555.23,123.589,1.832,600,20,0,2,0,1,0,0,0),
+(@CGUID+1875,32820,0,1,1,0,0,1698.1,-451,42.402,4.957,600,20,0,2,0,1,0,0,0),
+(@CGUID+1876,32820,0,1,1,0,0,2124.29,1441.22,65.7511,3.60963,600,20,0,2,0,1,0,0,0),
+(@CGUID+1877,32820,0,1,1,0,0,1701.33,1360.07,118.736,5.297,600,20,0,2,0,1,0,0,0),
+(@CGUID+1878,32820,0,1,1,0,0,1708.89,660.346,46.65,1.728,600,20,0,2,0,1,0,0,0),
+(@CGUID+1879,32820,0,1,1,0,0,1712.34,-799,57.709,5.224,600,20,0,2,0,1,0,0,0),
+(@CGUID+1880,32820,0,1,1,0,0,1875,1295.83,94.1748,3.14138,600,20,0,2,0,1,0,0,0),
+(@CGUID+1881,32820,0,1,1,0,0,2087.13,1555.71,73.1964,2.58382,600,20,0,2,0,1,0,0,0),
+(@CGUID+1882,32820,0,1,1,0,0,1715.04,-744,55.649,4.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+1883,32820,0,1,1,0,0,1715.86,-503,37.7,5.188,600,20,0,2,0,1,0,0,0),
+(@CGUID+1884,32820,0,1,1,0,0,1716.27,895.978,59.525,1.7,600,20,0,2,0,1,0,0,0),
+(@CGUID+1885,32820,0,1,1,0,0,1722.14,720.163,48.042,4.625,600,20,0,2,0,1,0,0,0),
+(@CGUID+1886,32820,0,1,1,0,0,1722.58,-411,38.156,2.721,600,20,0,2,0,1,0,0,0),
+(@CGUID+1887,32820,0,1,1,0,0,1725.59,-797,57.811,4.292,600,20,0,2,0,1,0,0,0),
+(@CGUID+1888,32820,0,1,1,0,0,1727.82,-431,33.846,0.401,600,20,0,2,0,1,0,0,0),
+(@CGUID+1889,32820,0,1,1,0,0,1843.58,1289.87,102.559,2.53327,600,20,0,2,0,1,0,0,0),
+(@CGUID+1890,32820,0,1,1,0,0,2117.84,1501.78,70.6263,3.58777,600,20,0,2,0,1,0,0,0),
+(@CGUID+1891,32820,0,1,1,0,0,1860.73,1327,76.9402,0.14983,600,20,0,2,0,1,0,0,0),
+(@CGUID+1892,32820,0,1,1,0,0,2043.76,1481.58,68.4653,1.36325,600,20,0,2,0,1,0,0,0),
+(@CGUID+1893,32820,0,1,1,0,0,1735.87,507.163,41.611,4.232,600,20,0,2,0,1,0,0,0),
+(@CGUID+1894,32820,0,1,1,0,0,1736.9,-743,59.443,2.177,600,20,0,2,0,1,0,0,0),
+(@CGUID+1895,32820,0,1,1,0,0,1739.56,-672,45.062,6.275,600,20,0,2,0,1,0,0,0),
+(@CGUID+1896,32820,0,1,1,0,0,1740.46,-726,59.947,2.055,600,20,0,2,0,1,0,0,0),
+(@CGUID+1897,32820,0,1,1,0,0,1740.5,718.644,48.531,4.257,600,20,0,2,0,1,0,0,0),
+(@CGUID+1898,32820,0,1,1,0,0,1875.24,1284.18,98.7998,3.50248,600,20,0,2,0,1,0,0,0),
+(@CGUID+1899,32820,0,1,1,0,0,2113.07,1459.33,64.3409,5.2157,600,20,0,2,0,1,0,0,0),
+(@CGUID+1900,32820,0,1,1,0,0,1747.26,996.788,51.869,5.302,600,20,0,2,0,1,0,0,0),
+(@CGUID+1901,32820,0,1,1,0,0,1747.84,-334,33.709,6.276,600,20,0,2,0,1,0,0,0),
+(@CGUID+1902,32820,0,1,1,0,0,1748.48,723.007,47.149,2.937,600,20,0,2,0,1,0,0,0),
+(@CGUID+1903,32820,0,1,1,0,0,1859.39,1358.49,71.724,3.31082,600,20,0,2,0,1,0,0,0),
+(@CGUID+1904,32820,0,1,1,0,0,1749.61,1143.83,65.782,4.822,600,20,0,2,0,1,0,0,0),
+(@CGUID+1905,32820,0,1,1,0,0,1749.83,-489,41.373,2.124,600,20,0,2,0,1,0,0,0),
+(@CGUID+1906,32820,0,1,1,0,0,1750.92,575.75,34.078,1.936,600,20,0,2,0,1,0,0,0),
+(@CGUID+1907,32820,0,1,1,0,0,2079.73,1495.97,65.6415,4.19379,600,20,0,2,0,1,0,0,0),
+(@CGUID+1908,32820,0,1,1,0,0,1752.85,805.094,55.123,2.523,600,20,0,2,0,1,0,0,0),
+(@CGUID+1909,32820,0,1,1,0,0,1962.59,1426.8,65.9927,1.73293,600,20,0,2,0,1,0,0,0),
+(@CGUID+1910,32820,0,1,1,0,0,1755.4,583.822,34.658,3.593,600,20,0,2,0,1,0,0,0),
+(@CGUID+1911,32820,0,1,1,0,0,1756.59,647.783,40.193,3.165,600,20,0,2,0,1,0,0,0),
+(@CGUID+1912,32820,0,1,1,0,0,1756.84,725.38,46.759,6.033,600,20,0,2,0,1,0,0,0),
+(@CGUID+1913,32820,0,1,1,0,0,1758.66,-723,60.08,1.556,600,20,0,2,0,1,0,0,0),
+(@CGUID+1914,32820,0,1,1,0,0,1760.69,510.543,35.915,6.259,600,20,0,2,0,1,0,0,0),
+(@CGUID+1915,32820,0,1,1,0,0,1764.56,-343,34.68,5.949,600,20,0,2,0,1,0,0,0),
+(@CGUID+1916,32820,0,1,1,0,0,1765.15,1382.99,92.056,5.248,600,20,0,2,0,1,0,0,0),
+(@CGUID+1917,32820,0,1,1,0,0,1766.44,1324.48,93.714,4.221,600,20,0,2,0,1,0,0,0),
+(@CGUID+1918,32820,0,1,1,0,0,1767.02,-725,59.559,1.387,600,20,0,2,0,1,0,0,0),
+(@CGUID+1919,32820,0,1,1,0,0,1769.21,1080.19,50.29,0.406,600,20,0,2,0,1,0,0,0),
+(@CGUID+1920,32820,0,1,1,0,0,1769.49,1406.18,95.175,3.895,600,20,0,2,0,1,0,0,0),
+(@CGUID+1921,32820,0,1,1,0,0,1771.38,675.97,44.102,6.258,600,20,0,2,0,1,0,0,0),
+(@CGUID+1922,32820,0,1,1,0,0,1829.34,1327.7,86.4345,3.61845,600,20,0,2,0,1,0,0,0),
+(@CGUID+1923,32820,0,1,1,0,0,1774.55,941.946,51.615,1.466,600,20,0,2,0,1,0,0,0),
+(@CGUID+1924,32820,0,1,1,0,0,1776.04,-726,59.321,1.587,600,20,0,2,0,1,0,0,0),
+(@CGUID+1925,32820,0,1,1,0,0,1776.3,-558,41.212,1.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+1926,32820,0,1,1,0,0,1776.79,809.271,45.337,2.398,600,20,0,2,0,1,0,0,0),
+(@CGUID+1927,32820,0,1,1,0,0,1777.3,1381.93,90.909,2.169,600,20,0,2,0,1,0,0,0),
+(@CGUID+1928,32820,0,1,1,0,0,1778.47,618.782,41.311,2.436,600,20,0,2,0,1,0,0,0),
+(@CGUID+1929,32820,0,1,1,0,0,1779.04,-713,58.765,1.819,600,20,0,2,0,1,0,0,0),
+(@CGUID+1930,32820,0,1,1,0,0,1779.22,1015.1,45.195,3.458,600,20,0,2,0,1,0,0,0),
+(@CGUID+1931,32820,0,1,1,0,0,1782.03,-588,39.544,1.547,600,20,0,2,0,1,0,0,0),
+(@CGUID+1932,32820,0,1,1,0,0,2096.18,1458.27,62.7233,1.46592,600,20,0,2,0,1,0,0,0),
+(@CGUID+1933,32820,0,1,1,0,0,1783.4,-726,59.358,2.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+1934,32820,0,1,1,0,0,1785.68,1126.35,51.003,2.578,600,20,0,2,0,1,0,0,0),
+(@CGUID+1935,32820,0,1,1,0,0,1786.31,948.231,45.374,0.271,600,20,0,2,0,1,0,0,0),
+(@CGUID+1936,32820,0,1,1,0,0,1787.57,1342.62,89.397,5.581,600,20,0,2,0,1,0,0,0),
+(@CGUID+1937,32820,0,1,1,0,0,1789.58,1335.53,89.614,1.3,600,20,0,2,0,1,0,0,0),
+(@CGUID+1938,32820,0,1,1,0,0,1789.88,-729,59.365,2.22,600,20,0,2,0,1,0,0,0),
+(@CGUID+1939,32820,0,1,1,0,0,1790.21,746.825,49.162,1.082,600,20,0,2,0,1,0,0,0),
+(@CGUID+1940,32820,0,1,1,0,0,1793.44,-585,39.674,6.122,600,20,0,2,0,1,0,0,0),
+(@CGUID+1941,32820,0,1,1,0,0,1793.69,1092.51,45.104,4.596,600,20,0,2,0,1,0,0,0),
+(@CGUID+1942,32820,0,1,1,0,0,1794.38,1420.41,87.027,3.22,600,20,0,2,0,1,0,0,0),
+(@CGUID+1943,32820,0,1,1,0,0,1795.21,653.885,40.579,0.341,600,20,0,2,0,1,0,0,0),
+(@CGUID+1944,32820,0,1,1,0,0,1795.23,611.12,39.596,6.249,600,20,0,2,0,1,0,0,0),
+(@CGUID+1945,32820,0,1,1,0,0,1796.6,744.136,48.883,3.167,600,20,0,2,0,1,0,0,0),
+(@CGUID+1946,32820,0,1,1,0,0,1798.77,722.748,48.9869,4.68094,600,20,0,2,0,1,0,0,0),
+(@CGUID+1947,32820,0,1,1,0,0,1796.91,700.662,47.661,1.148,600,20,0,2,0,1,0,0,0),
+(@CGUID+1948,32820,0,1,1,0,0,1799.02,587.317,45.299,3.106,600,20,0,2,0,1,0,0,0),
+(@CGUID+1949,32820,0,1,1,0,0,1804.06,945.904,41.354,0.456,600,20,0,2,0,1,0,0,0),
+(@CGUID+1950,32820,0,1,1,0,0,2130.92,1470.55,67.8589,5.86654,600,20,0,2,0,1,0,0,0),
+(@CGUID+1951,32820,0,1,1,0,0,1808.03,550.08,34.296,2.999,600,20,0,2,0,1,0,0,0),
+(@CGUID+1952,32820,0,1,1,0,0,1809.63,764.674,43.892,4.413,600,20,0,2,0,1,0,0,0),
+(@CGUID+1953,32820,0,1,1,0,0,1810.09,1388.97,78.849,4.225,600,20,0,2,0,1,0,0,0),
+(@CGUID+1954,32820,0,1,1,0,0,2094.89,1590.31,75.1982,2.80818,600,20,0,2,0,1,0,0,0),
+(@CGUID+1955,32820,0,1,1,0,0,1811.25,958.817,37.394,3.106,600,20,0,2,0,1,0,0,0),
+(@CGUID+1956,32820,0,1,1,0,0,1812.66,1328.37,88.503,5.502,600,20,0,2,0,1,0,0,0),
+(@CGUID+1957,32820,0,1,1,0,0,1813.97,1086.19,40.126,2.411,600,20,0,2,0,1,0,0,0),
+(@CGUID+1958,32820,0,1,1,0,0,1814.69,646.793,38.318,3.872,600,20,0,2,0,1,0,0,0),
+(@CGUID+1959,32820,0,1,1,0,0,2046.56,1454.31,66.9644,5.65726,600,20,0,2,0,1,0,0,0),
+(@CGUID+1960,32820,0,1,1,0,0,1816.61,-412,34.494,3.269,600,20,0,2,0,1,0,0,0),
+(@CGUID+1961,32820,0,1,1,0,0,1816.62,1171.46,52.676,2.391,600,20,0,2,0,1,0,0,0),
+(@CGUID+1962,32820,0,1,1,0,0,1813.74,1285.59,97.9754,2.39028,600,20,0,2,0,1,0,0,0),
+(@CGUID+1963,32820,0,1,1,0,0,1836.88,1362.87,74.5884,5.03491,600,20,0,2,0,1,0,0,0),
+(@CGUID+1964,32820,0,1,1,0,0,1819.85,1372.79,77.398,1.299,600,20,0,2,0,1,0,0,0),
+(@CGUID+1965,32820,0,1,1,0,0,2147.9,1561.27,79.8816,5.77033,600,20,0,2,0,1,0,0,0),
+(@CGUID+1966,32820,0,1,1,0,0,1822.34,1039.74,36.694,1.658,600,20,0,2,0,1,0,0,0),
+(@CGUID+1967,32820,0,1,1,0,0,1822.95,1581.81,95.519,1.553,600,20,1,2,0,1,0,0,0),
+(@CGUID+1968,32820,0,1,1,0,0,1997.29,1530.76,77.0698,0.676724,600,20,0,2,0,1,0,0,0),
+(@CGUID+1969,32820,0,1,1,0,0,1824.26,1637.18,95.64,4.757,600,20,1,2,0,1,0,0,0),
+(@CGUID+1970,32820,0,1,1,0,0,1824.89,-26,40.307,0.136,600,20,0,2,0,1,0,0,0),
+(@CGUID+1971,32820,0,1,1,0,0,1825.6,-457,34.707,5.735,600,20,0,2,0,1,0,0,0),
+(@CGUID+1972,32820,0,1,1,0,0,1826.04,825.973,26.091,1.117,600,20,0,2,0,1,0,0,0),
+(@CGUID+1973,32820,0,1,1,0,0,2141.36,1604.68,78.3542,5.06096,600,20,0,2,0,1,0,0,0),
+(@CGUID+1974,32820,0,1,1,0,0,1681.86,1582.67,127.197,5.19291,600,20,0,2,0,1,0,0,0),
+(@CGUID+1975,32820,0,1,1,0,0,1830.23,1089.14,36.664,1.256,600,20,0,2,0,1,0,0,0),
+(@CGUID+1976,32820,0,1,1,0,0,1831.57,1581.19,95.196,1.688,600,20,0,2,0,1,0,0,0),
+(@CGUID+1977,32820,0,1,1,0,0,1834.6,855.579,25.122,3.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+1978,32820,0,1,1,0,0,1835.48,1567.26,96.581,1.149,600,20,0,2,0,1,0,0,0),
+(@CGUID+1979,32820,0,1,1,0,0,1836.2,1641.24,97.628,5.411,600,20,0,2,0,1,0,0,0),
+(@CGUID+1980,32820,0,1,1,0,0,1912.12,1645.39,88.5127,1.663,600,20,0,2,0,1,0,0,0),
+(@CGUID+1981,32820,0,1,1,0,0,1835.42,1340.63,81.0884,2.26482,600,20,0,2,0,1,0,0,0),
+(@CGUID+1982,32820,0,1,1,0,0,1837.5,604.166,45.402,1.575,600,20,0,2,0,1,0,0,0),
+(@CGUID+1983,32820,0,1,1,0,0,1837.51,1630.92,96.933,5.732,600,20,0,2,0,1,0,0,0),
+(@CGUID+1984,32820,0,1,1,0,0,1837.56,-151,42.103,3.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+1985,32820,0,1,1,0,0,1657.81,1712.5,147.393,6.28308,600,20,0,2,0,1,0,0,0),
+(@CGUID+1986,32820,0,1,1,0,0,1838.74,1636.12,96.933,5.478,600,20,0,2,0,1,0,0,0),
+(@CGUID+1987,32820,0,1,1,0,0,1840.57,1567.1,96.579,1.738,600,20,0,2,0,1,0,0,0),
+(@CGUID+1988,32820,0,1,1,0,0,1840.67,828.307,25.675,5.783,600,20,0,2,0,1,0,0,0),
+(@CGUID+1989,32820,0,1,1,0,0,1842.69,857.234,25.365,0.148,600,20,0,2,0,1,0,0,0),
+(@CGUID+1990,32820,0,1,1,0,0,1843.18,965.094,32.259,0.896,600,20,0,2,0,1,0,0,0),
+(@CGUID+1991,32820,0,1,1,0,0,1843.24,1640.52,97.628,4.659,600,20,0,2,0,1,0,0,0),
+(@CGUID+1992,32820,0,1,1,0,0,2009.14,1567.49,79.1212,5.19624,600,20,0,2,0,1,0,0,0),
+(@CGUID+1993,32820,0,1,1,0,0,1845.17,983.134,30.429,2.39,600,20,0,2,0,1,0,0,0),
+(@CGUID+1994,32820,0,1,1,0,0,1846.35,607.813,47.902,4.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+1995,32820,0,1,1,0,0,1846.81,1580.69,94.733,1.544,600,20,0,2,0,1,0,0,0),
+(@CGUID+1996,32820,0,1,1,0,0,1847.24,1635.95,96.933,3.801,600,20,0,2,0,1,0,0,0),
+(@CGUID+1997,32820,0,1,1,0,0,1847.38,-479,37.062,0.526,600,20,0,2,0,1,0,0,0),
+(@CGUID+1998,32820,0,1,1,0,0,1848.14,1638.79,96.933,4.269,600,20,0,2,0,1,0,0,0),
+(@CGUID+1999,32820,0,1,1,0,0,1848.14,-280,39.265,1.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+2000,32820,0,1,1,0,0,1849.35,1625.72,96.933,2.619,600,20,0,2,0,1,0,0,0),
+(@CGUID+2001,32820,0,1,1,0,0,1850.01,801.833,25.284,1.716,600,20,0,2,0,1,0,0,0),
+(@CGUID+2002,32820,0,1,1,0,0,1850.51,-355,38.283,3.005,600,20,0,2,0,1,0,0,0),
+(@CGUID+2003,32820,0,1,1,0,0,1860.96,1378.44,75.3596,2.25591,600,20,0,2,0,1,0,0,0),
+(@CGUID+2004,32820,0,1,1,0,0,2127,1488.45,69.0985,2.74564,600,20,0,2,0,1,0,0,0),
+(@CGUID+2005,32820,0,1,1,0,0,1854.36,592.129,46.343,1.284,600,20,0,2,0,1,0,0,0),
+(@CGUID+2006,32820,0,1,1,0,0,1854.56,729.64,35.772,1.513,600,20,0,2,0,1,0,0,0),
+(@CGUID+2007,32820,0,1,1,0,0,2044.37,1593.64,70.4317,5.45417,600,20,0,2,0,1,0,0,0),
+(@CGUID+2008,32820,0,1,1,0,0,1922.86,1625.93,83.5842,5.30097,600,20,0,2,0,1,0,0,0),
+(@CGUID+2009,32820,0,1,1,0,0,1856.9,-731,63.023,5.278,600,20,0,2,0,1,0,0,0),
+(@CGUID+2010,32820,0,1,1,0,0,2072.53,1612.54,70.259,5.6282,600,20,0,2,0,1,0,0,0),
+(@CGUID+2011,32820,0,1,1,0,0,1859.98,-506,42.399,5.783,600,20,0,2,0,1,0,0,0),
+(@CGUID+2012,32820,0,1,1,0,0,1797.46,1301.62,102.951,1.10146,600,20,0,2,0,1,0,0,0),
+(@CGUID+2013,32820,0,1,1,0,0,1860.1,1568.58,94.312,1.348,600,20,0,2,0,1,0,0,0),
+(@CGUID+2014,32820,0,1,1,0,0,1860.12,1563.55,94.307,6.092,600,20,0,2,0,1,0,0,0),
+(@CGUID+2015,32820,0,1,1,0,0,1860.66,879.395,25.829,5.836,600,20,0,2,0,1,0,0,0),
+(@CGUID+2016,32820,0,1,1,0,0,1861.01,1586.07,92.45,1.604,600,20,1,2,0,1,0,0,0),
+(@CGUID+2017,32820,0,1,1,0,0,1862.08,982.911,30.425,0.568,600,20,0,2,0,1,0,0,0),
+(@CGUID+2018,32820,0,1,1,0,0,1782.46,1719.94,118.715,3.53443,600,20,0,2,0,1,0,0,0),
+(@CGUID+2019,32820,0,1,1,0,0,1862.71,515.728,36.189,4.633,600,20,0,2,0,1,0,0,0),
+(@CGUID+2020,32820,0,1,1,0,0,1862.88,1556.41,94.783,2.292,600,20,0,2,0,1,0,0,0),
+(@CGUID+2021,32820,0,1,1,0,0,1864.19,-652,45.329,1.955,600,20,0,2,0,1,0,0,0),
+(@CGUID+2022,32820,0,1,1,0,0,1865.48,1574.8,94.313,3.388,600,20,0,2,0,1,0,0,0),
+(@CGUID+2023,32820,0,1,1,0,0,1872.23,-242,35.433,0.293,600,20,0,2,0,1,0,0,0),
+(@CGUID+2024,32820,0,1,1,0,0,1936.33,1635.19,80.3736,5.76424,600,20,0,2,0,1,0,0,0),
+(@CGUID+2025,32820,0,1,1,0,0,1965.95,1639.71,77.8335,1.1349,600,20,0,2,0,1,0,0,0),
+(@CGUID+2026,32820,0,1,1,0,0,1804.12,1333.83,88.1972,4.64479,600,20,0,2,0,1,0,0,0),
+(@CGUID+2027,32820,0,1,1,0,0,1876.44,871.104,28.305,3.552,600,20,0,2,0,1,0,0,0),
+(@CGUID+2028,32820,0,1,1,0,0,1876.45,555.231,40.008,5.09,600,20,0,2,0,1,0,0,0),
+(@CGUID+2029,32820,0,1,1,0,0,1877.21,1596.18,91.709,4.337,600,20,0,2,0,1,0,0,0),
+(@CGUID+2030,32820,0,1,1,0,0,1978.28,1483.97,84.012,1.10496,600,20,0,2,0,1,0,0,0),
+(@CGUID+2031,32820,0,1,1,0,0,1878.76,1082.84,25.703,1.67,600,20,0,2,0,1,0,0,0),
+(@CGUID+2032,32820,0,1,1,0,0,1878.78,1166.95,48.971,2.537,600,20,0,2,0,1,0,0,0),
+(@CGUID+2033,32820,0,1,1,0,0,1880.06,-625,45.501,0.117,600,20,0,2,0,1,0,0,0),
+(@CGUID+2034,32820,0,1,1,0,0,1881.26,1018.92,28.588,5.649,600,20,0,2,0,1,0,0,0),
+(@CGUID+2035,32820,0,1,1,0,0,1881.53,-453,39.486,2.446,600,20,0,2,0,1,0,0,0),
+(@CGUID+2036,32820,0,1,1,0,0,1882.3,1641.52,93.646,4.491,600,20,0,2,0,1,0,0,0),
+(@CGUID+2037,32820,0,1,1,0,0,2023.47,1543.74,79.1664,5.45035,600,20,0,2,0,1,0,0,0),
+(@CGUID+2038,32820,0,1,1,0,0,1886.01,-437,38.723,1.311,600,20,0,2,0,1,0,0,0),
+(@CGUID+2039,32820,0,1,1,0,0,1886.1,484.668,36.103,1.891,600,20,0,2,0,1,0,0,0),
+(@CGUID+2040,32820,0,1,1,0,0,1886.81,949.465,26.261,1.724,600,20,0,2,0,1,0,0,0),
+(@CGUID+2041,32820,0,1,1,0,0,2080.8,1426.5,61.9559,2.22875,600,20,0,2,0,1,0,0,0),
+(@CGUID+2042,32820,0,1,1,0,0,1886.94,1610.79,92.62,4.476,600,20,0,2,0,1,0,0,0),
+(@CGUID+2043,32820,0,1,1,0,0,1887.42,-92,32.805,1.572,600,20,0,2,0,1,0,0,0),
+(@CGUID+2044,32820,0,1,1,0,0,1985.82,1637.55,77.274,4.34587,600,20,0,2,0,1,0,0,0),
+(@CGUID+2045,32820,0,1,1,0,0,2004.96,1536.57,76.9095,5.17953,600,20,0,2,0,1,0,0,0),
+(@CGUID+2046,32820,0,1,1,0,0,1890.28,1054.18,32.508,3.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+2047,32820,0,1,1,0,0,1891.12,542.912,40.554,3.497,600,20,0,2,0,1,0,0,0),
+(@CGUID+2048,32820,0,1,1,0,0,2012.47,1580.58,77.6077,4.3923,600,20,0,2,0,1,0,0,0),
+(@CGUID+2049,32820,0,1,1,0,0,1893.65,-537,41.372,3.531,600,20,0,2,0,1,0,0,0),
+(@CGUID+2050,32820,0,1,1,0,0,1893.68,-169,35.857,5.472,600,20,0,2,0,1,0,0,0),
+(@CGUID+2051,32820,0,1,1,0,0,1653.06,1609.58,149.414,4.17314,600,20,0,2,0,1,0,0,0),
+(@CGUID+2052,32820,0,1,1,0,0,1894.75,-205,37.689,1.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+2053,32820,0,1,1,0,0,1895.31,1581.26,88.185,0.67,600,20,0,2,0,1,0,0,0),
+(@CGUID+2054,32820,0,1,1,0,0,1895.89,-105,33.024,0.914,600,20,0,2,0,1,0,0,0),
+(@CGUID+2055,32820,0,1,1,0,0,1898.83,531.013,39.578,4.999,600,20,0,2,0,1,0,0,0),
+(@CGUID+2056,32820,0,1,1,0,0,1899,-683,53.638,2.476,600,20,0,2,0,1,0,0,0),
+(@CGUID+2057,32820,0,1,1,0,0,1899.19,476.333,37.781,3.259,600,20,0,2,0,1,0,0,0),
+(@CGUID+2058,32820,0,1,1,0,0,1899.36,688.674,36.042,2.18,600,20,0,2,0,1,0,0,0),
+(@CGUID+2059,32820,0,1,1,0,0,2020.63,1526.77,78.8895,4.93289,600,20,0,2,0,1,0,0,0),
+(@CGUID+2060,32820,0,1,1,0,0,1976.96,1515.52,86.8198,2.82125,600,20,0,2,0,1,0,0,0),
+(@CGUID+2061,32820,0,1,1,0,0,1975.9,1641.65,75.8876,1.81514,600,20,0,2,0,1,0,0,0),
+(@CGUID+2062,32820,0,1,1,0,0,1903.02,330.524,41.208,3.816,600,20,0,2,0,1,0,0,0),
+(@CGUID+2063,32820,0,1,1,0,0,1903.3,-550,45.428,4.392,600,20,0,2,0,1,0,0,0),
+(@CGUID+2064,32820,0,1,1,0,0,1888.39,1537.52,88.2019,3.65945,600,20,0,2,0,1,0,0,0),
+(@CGUID+2065,32820,0,1,1,0,0,1904.02,609.035,50.982,3.845,600,20,0,2,0,1,0,0,0),
+(@CGUID+2066,32820,0,1,1,0,0,1905.15,322.905,40.198,4.985,600,20,0,2,0,1,0,0,0),
+(@CGUID+2067,32820,0,1,1,0,0,2073.59,1476.34,66.1495,0.756588,600,20,0,2,0,1,0,0,0),
+(@CGUID+2068,32820,0,1,1,0,0,1905.31,-513,39.205,3.276,600,20,0,2,0,1,0,0,0),
+(@CGUID+2069,32820,0,1,1,0,0,1905.98,1054.98,34.74,1.406,600,20,0,2,0,1,0,0,0),
+(@CGUID+2070,32820,0,1,1,0,0,2087.25,1392.01,61.4079,6.27286,600,20,0,2,0,1,0,0,0),
+(@CGUID+2071,32820,0,1,1,0,0,1907.51,1151.35,39.611,5.437,600,20,0,2,0,1,0,0,0),
+(@CGUID+2072,32820,0,1,1,0,0,1908.24,792.84,37.379,4.588,600,20,0,2,0,1,0,0,0),
+(@CGUID+2073,32820,0,1,1,0,0,1970.62,1470.79,79.7657,5.48111,600,20,0,2,0,1,0,0,0),
+(@CGUID+2074,32820,0,1,1,0,0,1909.56,634.198,45.749,5.973,600,20,0,2,0,1,0,0,0),
+(@CGUID+2075,32820,0,1,1,0,0,1911.94,-117,36.172,0.283,600,20,0,2,0,1,0,0,0),
+(@CGUID+2076,32820,0,1,1,0,0,1913.53,-804,64.965,4.987,600,20,0,2,0,1,0,0,0),
+(@CGUID+2077,32820,0,1,1,0,0,1899.79,1553.29,88.9766,0.758083,600,20,0,2,0,1,0,0,0),
+(@CGUID+2078,32820,0,1,1,0,0,1913.97,832.742,41.563,1.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+2079,32820,0,1,1,0,0,2103.97,1420.71,60.5048,2.73086,600,20,0,2,0,1,0,0,0),
+(@CGUID+2080,32820,0,1,1,0,0,1914.55,826.282,41.174,5.214,600,20,0,2,0,1,0,0,0),
+(@CGUID+2081,32820,0,1,1,0,0,1914.66,959.827,31.803,1.865,600,20,0,2,0,1,0,0,0),
+(@CGUID+2082,32820,0,1,1,0,0,1915.67,-352,37.103,3.7,600,20,0,2,0,1,0,0,0),
+(@CGUID+2083,32820,0,1,1,0,0,1912.84,1604.96,84.7089,4.03322,600,20,0,2,0,1,0,0,0),
+(@CGUID+2084,32820,0,1,1,0,0,1917.24,-189,36.152,4.236,600,20,0,2,0,1,0,0,0),
+(@CGUID+2085,32820,0,1,1,0,0,1920.11,-561,49.963,2.026,600,20,0,2,0,1,0,0,0),
+(@CGUID+2086,32820,0,1,1,0,0,1920.96,182.272,10.43,1.058,600,20,0,2,0,1,0,0,0),
+(@CGUID+2087,32820,0,1,1,0,0,1976.86,1596.07,82.3567,5.34529,600,20,0,2,0,1,0,0,0),
+(@CGUID+2088,32820,0,1,1,0,0,1892.15,1516.01,88.1731,4.6511,600,20,0,2,0,1,0,0,0),
+(@CGUID+2089,32820,0,1,1,0,0,1923.08,784.038,41.753,3.343,600,20,0,2,0,1,0,0,0),
+(@CGUID+2090,32820,0,1,1,0,0,1922.86,1660.1,80.2627,1.04457,600,20,0,2,0,1,0,0,0),
+(@CGUID+2091,32820,0,1,1,0,0,1924.15,-262,34.052,1.142,600,20,0,2,0,1,0,0,0),
+(@CGUID+2092,32820,0,1,1,0,0,1811.3,1698.05,105.944,2.54522,600,20,0,2,0,1,0,0,0),
+(@CGUID+2093,32820,0,1,1,0,0,1930.87,-132,39.476,6.129,600,20,0,2,0,1,0,0,0),
+(@CGUID+2094,32820,0,1,1,0,0,1931.21,1.265,11.003,0.835,600,20,0,2,0,1,0,0,0),
+(@CGUID+2095,32820,0,1,1,0,0,1933.14,681.603,41.725,5.773,600,20,0,2,0,1,0,0,0),
+(@CGUID+2096,32820,0,1,1,0,0,1934.58,639.221,51.061,2.058,600,20,0,2,0,1,0,0,0),
+(@CGUID+2097,32820,0,1,1,0,0,1934.71,610.212,54.488,0.334,600,20,0,2,0,1,0,0,0),
+(@CGUID+2098,32820,0,1,1,0,0,1856.51,1528.37,88.5612,2.93345,600,20,0,2,0,1,0,0,0),
+(@CGUID+2099,32820,0,1,1,0,0,1938.13,1015.19,32.456,1.546,600,20,0,2,0,1,0,0,0),
+(@CGUID+2100,32820,0,1,1,0,0,1851.69,1505.98,89.3269,2.95227,600,20,0,2,0,1,0,0,0),
+(@CGUID+2101,32820,0,1,1,0,0,1940.49,574.039,50.971,2.927,600,20,0,2,0,1,0,0,0),
+(@CGUID+2102,32820,0,1,1,0,0,1940.51,426.475,37.108,1.603,600,20,0,2,0,1,0,0,0),
+(@CGUID+2103,32820,0,1,1,0,0,1940.71,-34,14.904,1.806,600,20,0,2,0,1,0,0,0),
+(@CGUID+2104,32820,0,1,1,0,0,1922.01,1575.06,84.9355,0.885617,600,20,0,2,0,1,0,0,0),
+(@CGUID+2105,32820,0,1,1,0,0,1918.92,1537.7,86.9618,0.138741,600,20,0,2,0,1,0,0,0),
+(@CGUID+2106,32820,0,1,1,0,0,1857.73,1705.33,94.4552,2.90437,600,20,0,2,0,1,0,0,0),
+(@CGUID+2107,32820,0,1,1,0,0,1943.15,111.969,9.73,2.298,600,20,0,2,0,1,0,0,0),
+(@CGUID+2108,32820,0,1,1,0,0,1943.39,-56,29.26,0.768,600,20,0,2,0,1,0,0,0),
+(@CGUID+2109,32820,0,1,1,0,0,1944.55,296.285,38.875,4.456,600,20,0,2,0,1,0,0,0),
+(@CGUID+2110,32820,0,1,1,0,0,1948.13,-592,54.881,5.435,600,20,0,2,0,1,0,0,0),
+(@CGUID+2111,32820,0,1,1,0,0,1948.55,792.451,37.931,5.945,600,20,0,2,0,1,0,0,0),
+(@CGUID+2112,32820,0,1,1,0,0,1891.52,1725.97,93.6389,4.01667,600,20,0,2,0,1,0,0,0),
+(@CGUID+2113,32820,0,1,1,0,0,1950.03,547.195,51.345,3.805,600,20,0,2,0,1,0,0,0),
+(@CGUID+2114,32820,0,1,1,0,0,1950.08,470.193,37.169,4.111,600,20,0,2,0,1,0,0,0),
+(@CGUID+2115,32820,0,1,1,0,0,1952.4,540.482,49.681,4.556,600,20,0,2,0,1,0,0,0),
+(@CGUID+2116,32820,0,1,1,0,0,1952.86,1169.39,40.689,3.675,600,20,0,2,0,1,0,0,0),
+(@CGUID+2117,32820,0,1,1,0,0,1952.9,-252,36.315,0.569,600,20,0,2,0,1,0,0,0),
+(@CGUID+2118,32820,0,1,1,0,0,1953.24,966.066,33.746,2.491,600,20,0,2,0,1,0,0,0),
+(@CGUID+2119,32820,0,1,1,0,0,1953.59,1095.42,33.556,1.442,600,20,0,2,0,1,0,0,0),
+(@CGUID+2120,32820,0,1,1,0,0,1953.89,-315,35.385,6.102,600,20,0,2,0,1,0,0,0),
+(@CGUID+2121,32820,0,1,1,0,0,1954.09,-602,56.585,0.377,600,20,0,2,0,1,0,0,0),
+(@CGUID+2122,32820,0,1,1,0,0,1954.25,1111.91,33.531,1.752,600,20,0,2,0,1,0,0,0),
+(@CGUID+2123,32820,0,1,1,0,0,1954.77,413.706,37.504,5.148,600,20,0,2,0,1,0,0,0),
+(@CGUID+2124,32820,0,1,1,0,0,1955.2,-232,33.633,1.746,600,20,0,2,0,1,0,0,0),
+(@CGUID+2125,32820,0,1,1,0,0,1955.75,39.908,18.991,5.913,600,20,0,2,0,1,0,0,0),
+(@CGUID+2126,32820,0,1,1,0,0,1955.84,719.583,36.919,1.406,600,20,0,2,0,1,0,0,0),
+(@CGUID+2127,32820,0,1,1,0,0,1955.92,886.075,34.76,2.482,600,20,0,2,0,1,0,0,0),
+(@CGUID+2128,32820,0,1,1,0,0,1955.99,-301,34.315,2.913,600,20,0,2,0,1,0,0,0),
+(@CGUID+2129,32820,0,1,1,0,0,1957.26,-431,35.451,3.13,600,20,0,2,0,1,0,0,0),
+(@CGUID+2130,32820,0,1,1,0,0,1957.68,-579,53.973,1.195,600,20,0,2,0,1,0,0,0),
+(@CGUID+2131,32820,0,1,1,0,0,1958.6,912.246,34.687,3.052,600,20,0,2,0,1,0,0,0),
+(@CGUID+2132,32820,0,1,1,0,0,1959.16,-414,35.702,5.209,600,20,0,2,0,1,0,0,0),
+(@CGUID+2133,32820,0,1,1,0,0,1862.97,1529.46,88.5361,0.636311,600,20,0,2,0,1,0,0,0),
+(@CGUID+2134,32820,0,1,1,0,0,1959.88,104.673,18.088,5.631,600,20,0,2,0,1,0,0,0),
+(@CGUID+2135,32820,0,1,1,0,0,1961.28,494.136,37.534,0.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+2136,32820,0,1,1,0,0,1940.53,1664.75,79.007,0.17767,600,20,0,2,0,1,0,0,0),
+(@CGUID+2137,32820,0,1,1,0,0,1963.1,1170.4,41.227,3.751,600,20,0,2,0,1,0,0,0),
+(@CGUID+2138,32820,0,1,1,0,0,1963.52,-397,35.452,3.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+2139,32820,0,1,1,0,0,1946.97,1590.39,82.2999,5.39887,600,20,0,2,0,1,0,0,0),
+(@CGUID+2140,32820,0,1,1,0,0,1904.25,1524.12,87.3555,1.85287,600,20,0,2,0,1,0,0,0),
+(@CGUID+2141,32820,0,1,1,0,0,1965.91,1378.91,64.162,6.1,600,20,0,2,0,1,0,0,0),
+(@CGUID+2142,32820,0,1,1,0,0,1966.15,821.354,39.084,2.69,600,20,0,2,0,1,0,0,0),
+(@CGUID+2143,32820,0,1,1,0,0,1968.89,355.661,39.631,0.293,600,20,0,2,0,1,0,0,0),
+(@CGUID+2144,32820,0,1,1,0,0,1971.24,1012.8,36.202,5.523,600,20,0,2,0,1,0,0,0),
+(@CGUID+2145,32820,0,1,1,0,0,1972.52,324.816,39.891,2.445,600,20,0,2,0,1,0,0,0),
+(@CGUID+2146,32820,0,1,1,0,0,1972.77,329.349,39.975,4.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+2147,32820,0,1,1,0,0,1974.31,141.348,15.627,3.536,600,20,0,2,0,1,0,0,0),
+(@CGUID+2148,32820,0,1,1,0,0,1974.32,-211,33.944,4.797,600,20,0,2,0,1,0,0,0),
+(@CGUID+2149,32820,0,1,1,0,0,1976.2,-320,36.589,6.212,600,20,0,2,0,1,0,0,0),
+(@CGUID+2150,32820,0,1,1,0,0,1976.48,724.143,35.804,4.097,600,20,0,2,0,1,0,0,0),
+(@CGUID+2151,32820,0,1,1,0,0,1976.74,956.769,37.919,1.483,600,20,0,2,0,1,0,0,0),
+(@CGUID+2152,32820,0,1,1,0,0,1976.91,1372.13,63.869,0.662,600,20,0,2,0,1,0,0,0),
+(@CGUID+2153,32820,0,1,1,0,0,1977,1381.61,63.031,6.075,600,20,0,2,0,1,0,0,0),
+(@CGUID+2154,32820,0,1,1,0,0,1977.12,-380,35.702,3.502,600,20,0,2,0,1,0,0,0),
+(@CGUID+2155,32820,0,1,1,0,0,1978.05,592.804,50.152,0.347,600,20,0,2,0,1,0,0,0),
+(@CGUID+2156,32820,0,1,1,0,0,2028.75,1695,78.2094,4.26584,600,20,0,2,0,1,0,0,0),
+(@CGUID+2157,32820,0,1,1,0,0,1978.75,897.572,34.957,0.503,600,20,0,2,0,1,0,0,0),
+(@CGUID+2158,32820,0,1,1,0,0,1979.7,988.74,33.193,0.35,600,20,0,2,0,1,0,0,0),
+(@CGUID+2159,32820,0,1,1,0,0,1918.99,1587.29,84.0605,3.8303,600,20,0,2,0,1,0,0,0),
+(@CGUID+2160,32820,0,1,1,0,0,1719.25,1686.25,132.317,2.03842,600,20,0,2,0,1,0,0,0),
+(@CGUID+2161,32820,0,1,1,0,0,2136.24,1379.74,69.1082,1.09842,600,20,0,2,0,1,0,0,0),
+(@CGUID+2162,32820,0,1,1,0,0,1981.74,-545,50.134,1.324,600,20,0,2,0,1,0,0,0),
+(@CGUID+2163,32820,0,1,1,0,0,1981.8,-211,34.36,3.751,600,20,0,2,0,1,0,0,0),
+(@CGUID+2164,32820,0,1,1,0,0,1983.04,1104.12,34.043,4.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+2165,32820,0,1,1,0,0,2086.6,1328.16,61.8731,5.722,600,20,0,2,0,1,0,0,0),
+(@CGUID+2166,32820,0,1,1,0,0,1985,694.409,43.827,4.429,600,20,0,2,0,1,0,0,0),
+(@CGUID+2167,32820,0,1,1,0,0,1985.3,17.109,30.404,2.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+2168,32820,0,1,1,0,0,1985.88,1376.55,62.691,0.77,600,20,0,2,0,1,0,0,0),
+(@CGUID+2169,32820,0,1,1,0,0,1987.16,-482,35.043,3.723,600,20,0,2,0,1,0,0,0),
+(@CGUID+2170,32820,0,1,1,0,0,1987.47,649.66,42.471,6.087,600,20,0,2,0,1,0,0,0),
+(@CGUID+2171,32820,0,1,1,0,0,1987.93,734.326,37.279,5.771,600,20,0,2,0,1,0,0,0),
+(@CGUID+2172,32820,0,1,1,0,0,1989.89,-453,34.525,1.198,600,20,0,2,0,1,0,0,0),
+(@CGUID+2173,32820,0,1,1,0,0,2143.56,1409.93,69.885,2.07938,600,20,0,2,0,1,0,0,0),
+(@CGUID+2174,32820,0,1,1,0,0,1992.91,429.715,35.739,1.723,600,20,0,2,0,1,0,0,0),
+(@CGUID+2175,32820,0,1,1,0,0,1993.71,280.852,47.869,3.271,600,20,0,2,0,1,0,0,0),
+(@CGUID+2176,32820,0,1,1,0,0,1994.38,-156,34.638,2.529,600,20,0,2,0,1,0,0,0),
+(@CGUID+2177,32820,0,1,1,0,0,1994.78,601.365,46.923,3.542,600,20,0,2,0,1,0,0,0),
+(@CGUID+2178,32820,0,1,1,0,0,1994.82,-153,34.467,1.022,600,20,0,2,0,1,0,0,0),
+(@CGUID+2179,32820,0,1,1,0,0,1745.02,1711.84,130.134,3.19535,600,20,0,2,0,1,0,0,0),
+(@CGUID+2180,32820,0,1,1,0,0,1995.44,966.284,36.649,2.418,600,20,0,2,0,1,0,0,0),
+(@CGUID+2181,32820,0,1,1,0,0,1901.4,1572.05,89.2571,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+2182,32820,0,1,1,0,0,2013.52,1505.72,74.5312,0.065802,600,20,0,2,0,1,0,0,0),
+(@CGUID+2183,32820,0,1,1,0,0,2022.5,1582.05,74.9962,3.91096,600,20,0,2,0,1,0,0,0),
+(@CGUID+2184,32820,0,1,1,0,0,1999.06,-369,35.702,2.865,600,20,0,2,0,1,0,0,0),
+(@CGUID+2185,32820,0,1,1,0,0,1999.12,876.686,33.847,0.581,600,20,0,2,0,1,0,0,0),
+(@CGUID+2186,32820,0,1,1,0,0,2002.6,280.089,47.823,3.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+2187,32820,0,1,1,0,0,1967.6,1641.89,77.3097,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+2188,32820,0,1,1,0,0,2004.93,1071.75,35.777,0.534,600,20,0,2,0,1,0,0,0),
+(@CGUID+2189,32820,0,1,1,0,0,2005.88,444.298,37.364,5.514,600,20,0,2,0,1,0,0,0),
+(@CGUID+2190,32820,0,1,1,0,0,2006.19,99.895,34.778,4.494,600,20,0,2,0,1,0,0,0),
+(@CGUID+2191,32820,0,1,1,0,0,2006.23,365.215,42.958,0.61,600,20,0,2,0,1,0,0,0),
+(@CGUID+2192,32820,0,1,1,0,0,2060.22,1775.06,88.9039,-1.53637,600,20,0,2,0,1,0,0,0),
+(@CGUID+2193,32820,0,1,1,0,0,2008.58,1006.15,32.019,4.622,600,20,0,2,0,1,0,0,0),
+(@CGUID+2194,32820,0,1,1,0,0,2009.37,223.66,35.843,5.281,600,20,0,2,0,1,0,0,0),
+(@CGUID+2195,32820,0,1,1,0,0,1749.95,1645.55,118.51,5.68655,600,20,0,2,0,1,0,0,0),
+(@CGUID+2196,32820,0,1,1,0,0,2011.53,-403,35.452,4.994,600,20,0,2,0,1,0,0,0),
+(@CGUID+2197,32820,0,1,1,0,0,2012.68,353.627,41.517,3.932,600,20,0,2,0,1,0,0,0),
+(@CGUID+2198,32820,0,1,1,0,0,2012.9,229.321,38.256,4.04,600,20,0,2,0,1,0,0,0),
+(@CGUID+2199,32820,0,1,1,0,0,2014.47,1024.09,29.558,4.305,600,20,0,2,0,1,0,0,0),
+(@CGUID+2200,32820,0,1,1,0,0,1913.93,1588.19,84.9734,2.88904,600,20,0,2,0,1,0,0,0),
+(@CGUID+2201,32820,0,1,1,0,0,2015.8,-344,35.702,0.018,600,20,0,2,0,1,0,0,0),
+(@CGUID+2202,32820,0,1,1,0,0,2016.65,36.857,35.85,3.609,600,20,0,2,0,1,0,0,0),
+(@CGUID+2203,32820,0,1,1,0,0,2017.34,-514,41.614,6.053,600,20,0,2,0,1,0,0,0),
+(@CGUID+2204,32820,0,1,1,0,0,2017.49,-417,35.452,0.018,600,20,0,2,0,1,0,0,0),
+(@CGUID+2205,32820,0,1,1,0,0,2017.73,79.376,36.834,0.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2206,32820,0,1,1,0,0,2019.74,-364,35.452,4.031,600,20,0,2,0,1,0,0,0),
+(@CGUID+2207,32820,0,1,1,0,0,2046.36,1822.14,107.323,-1.30963,600,20,0,2,0,1,0,0,0),
+(@CGUID+2208,32820,0,1,1,0,0,2042.42,1851.53,103.969,-1.74312,600,20,0,2,0,1,0,0,0),
+(@CGUID+2209,32820,0,1,1,0,0,2021.72,1201.21,50.152,5.867,600,20,0,2,0,1,0,0,0),
+(@CGUID+2210,32820,0,1,1,0,0,2022.21,883.465,34.844,6.222,600,20,0,2,0,1,0,0,0),
+(@CGUID+2211,32820,0,1,1,0,0,2022.4,85.277,36.178,0.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2212,32820,0,1,1,0,0,1797.22,1718.62,112.576,0.078981,600,20,0,2,0,1,0,0,0),
+(@CGUID+2213,32820,0,1,1,0,0,2023.04,73.922,36.302,0.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2214,32820,0,1,1,0,0,2051.46,1328.73,69.1295,2.2204,600,20,0,2,0,1,0,0,0),
+(@CGUID+2215,32820,0,1,1,0,0,2024.87,615.426,37.312,3.499,600,20,0,2,0,1,0,0,0),
+(@CGUID+2216,32820,0,1,1,0,0,2026.9,391.331,42.343,3.322,600,20,0,2,0,1,0,0,0),
+(@CGUID+2217,32820,0,1,1,0,0,2026.91,1074.94,34.519,1.16,600,20,0,2,0,1,0,0,0),
+(@CGUID+2218,32820,0,1,1,0,0,2027.05,226.902,38.685,4.85,600,20,0,2,0,1,0,0,0),
+(@CGUID+2219,32820,0,1,1,0,0,2027.55,-122,34.171,3.21,600,20,0,2,0,1,0,0,0),
+(@CGUID+2220,32820,0,1,1,0,0,1755.43,1745.95,139.746,0.129933,600,20,0,2,0,1,0,0,0),
+(@CGUID+2221,32820,0,1,1,0,0,2028.31,45.886,34.271,0.033,600,20,0,2,0,1,0,0,0),
+(@CGUID+2222,32820,0,1,1,0,0,2029.08,1119.06,35.292,5.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+2223,32820,0,1,1,0,0,2004.61,1644.08,73.5819,2.64459,600,20,0,2,0,1,0,0,0),
+(@CGUID+2224,32820,0,1,1,0,0,1808.03,1542.79,97.2619,2.91201,600,20,0,2,0,1,0,0,0),
+(@CGUID+2225,32820,0,1,1,0,0,2029.87,201.484,37.672,1.759,600,20,0,2,0,1,0,0,0),
+(@CGUID+2226,32820,0,1,1,0,0,2117.51,1370.31,62.8016,1.43566,600,20,0,2,0,1,0,0,0),
+(@CGUID+2227,32820,0,1,1,0,0,2042.87,1858.22,102.938,-1.70908,600,20,0,2,0,1,0,0,0),
+(@CGUID+2228,32820,0,1,1,0,0,2030.61,808.408,34.358,4.642,600,20,0,2,0,1,0,0,0),
+(@CGUID+2229,32820,0,1,1,0,0,2031.74,-551,54.019,5.226,600,20,0,2,0,1,0,0,0),
+(@CGUID+2230,32820,0,1,1,0,0,2034.18,1350.95,64.3509,4.01332,600,20,0,2,0,1,0,0,0),
+(@CGUID+2231,32820,0,1,1,0,0,2039.39,1849.1,103.807,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+2232,32820,0,1,1,0,0,2035.67,823.547,35.171,3.481,600,20,0,2,0,1,0,0,0),
+(@CGUID+2233,32820,0,1,1,0,0,2035.76,-82,34.226,5.239,600,20,0,2,0,1,0,0,0),
+(@CGUID+2234,32820,0,1,1,0,0,2015.52,1771.9,105.903,4.55457,600,20,0,2,0,1,0,0,0),
+(@CGUID+2235,32820,0,1,1,0,0,2036.43,-502,40.14,0.839,600,20,0,2,0,1,0,0,0),
+(@CGUID+2236,32820,0,1,1,0,0,2037.54,-141,36.938,1.933,600,20,0,2,0,1,0,0,0),
+(@CGUID+2237,32820,0,1,1,0,0,2038.44,-336,35.452,6.103,600,20,0,2,0,1,0,0,0),
+(@CGUID+2238,32820,0,1,1,0,0,1897.8,1504.98,93.9504,2.18601,600,20,0,2,0,1,0,0,0),
+(@CGUID+2239,32820,0,1,1,0,0,2040.2,-31,37.94,0.267,600,20,0,2,0,1,0,0,0),
+(@CGUID+2240,32820,0,1,1,0,0,2040.4,-332,35.68,3.45,600,20,0,2,0,1,0,0,0),
+(@CGUID+2241,32820,0,1,1,0,0,2021.58,1849.13,102.658,4.56117,600,20,0,2,0,1,0,0,0),
+(@CGUID+2242,32820,0,1,1,0,0,2040.84,58.942,33.868,4.036,600,20,0,2,0,1,0,0,0),
+(@CGUID+2243,32820,0,1,1,0,0,2041.02,726.205,38.435,1.326,600,20,0,2,0,1,0,0,0),
+(@CGUID+2244,32820,0,1,1,0,0,1762.79,1518,113.58,2.96888,600,20,0,2,0,1,0,0,0),
+(@CGUID+2245,32820,0,1,1,0,0,2043.66,-225,36.929,3.266,600,20,0,2,0,1,0,0,0),
+(@CGUID+2246,32820,0,1,1,0,0,2017.02,1853.65,102.919,2.19558,600,20,0,2,0,1,0,0,0),
+(@CGUID+2247,32820,0,1,1,0,0,2044.93,-24,39.357,2.159,600,20,0,2,0,1,0,0,0),
+(@CGUID+2248,32820,0,1,1,0,0,2046.22,971.689,33.381,0.407,600,20,0,2,0,1,0,0,0),
+(@CGUID+2249,32820,0,1,1,0,0,2046.36,734.951,38.477,1.144,600,20,0,2,0,1,0,0,0),
+(@CGUID+2250,32820,0,1,1,0,0,2031.61,1760.52,104.635,2.65555,600,20,0,2,0,1,0,0,0),
+(@CGUID+2251,32820,0,1,1,0,0,2046.61,-413,35.467,3.689,600,20,0,2,0,1,0,0,0),
+(@CGUID+2252,32820,0,1,1,0,0,1971.72,1332.93,77.2402,1.3484,600,20,0,2,0,1,0,0,0),
+(@CGUID+2253,32820,0,1,1,0,0,2042.69,1875.06,102.249,-0.92142,600,20,0,2,0,1,0,0,0),
+(@CGUID+2254,32820,0,1,1,0,0,2047.1,1015.39,31.633,0.017,600,20,0,2,0,1,0,0,0),
+(@CGUID+2255,32820,0,1,1,0,0,2047.41,1162.26,37.78,3.208,600,20,0,2,0,1,0,0,0),
+(@CGUID+2256,32820,0,1,1,0,0,2047.49,645.674,36.773,1.013,600,20,0,2,0,1,0,0,0),
+(@CGUID+2257,32820,0,1,1,0,0,2048.14,550.227,45.484,2.278,600,20,0,2,0,1,0,0,0),
+(@CGUID+2258,32820,0,1,1,0,0,1842.82,1678.65,97.1791,5.06255,600,20,0,2,0,1,0,0,0),
+(@CGUID+2259,32820,0,1,1,0,0,1907.3,1665.82,83.5905,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+2260,32820,0,1,1,0,0,2044.95,1708.38,76.6127,5.74122,600,20,0,2,0,1,0,0,0),
+(@CGUID+2261,32820,0,1,1,0,0,2050.19,-487,40.927,4.162,600,20,0,2,0,1,0,0,0),
+(@CGUID+2262,32820,0,1,1,0,0,2050.19,835.752,37.088,2.984,600,20,0,2,0,1,0,0,0),
+(@CGUID+2263,32820,0,1,1,0,0,2046.7,1420.23,64.6285,3.4127,600,20,0,2,0,1,0,0,0),
+(@CGUID+2264,32820,0,1,1,0,0,2051.93,-507,43.35,6.162,600,20,0,2,0,1,0,0,0),
+(@CGUID+2265,32820,0,1,1,0,0,2052.7,459.638,49.471,1.834,600,20,0,2,0,1,0,0,0),
+(@CGUID+2266,32820,0,1,1,0,0,2052.71,885.654,34.156,1.804,600,20,0,2,0,1,0,0,0),
+(@CGUID+2267,32820,0,1,1,0,0,2039.24,1927.41,106.997,5.2572,600,20,0,2,0,1,0,0,0),
+(@CGUID+2268,32820,0,1,1,0,0,2053.8,948.836,37.278,1.334,600,20,0,2,0,1,0,0,0),
+(@CGUID+2269,32820,0,1,1,0,0,2053.91,239.607,99.769,0.538,600,20,0,2,0,1,0,0,0),
+(@CGUID+2270,32820,0,1,1,0,0,2162.31,1631.2,85.9035,1.46979,600,20,0,2,0,1,0,0,0),
+(@CGUID+2271,32820,0,1,1,0,0,2055.44,692.034,40.564,4.801,600,20,0,2,0,1,0,0,0),
+(@CGUID+2272,32820,0,1,1,0,0,2060.85,1778.14,88.95,-1.80664,600,20,0,2,0,1,0,0,0),
+(@CGUID+2273,32820,0,1,1,0,0,2057.16,-23,40.07,3.832,600,20,0,2,0,1,0,0,0),
+(@CGUID+2274,32820,0,1,1,0,0,2057.21,913.271,33.526,3.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+2275,32820,0,1,1,0,0,2057.51,279.706,59.643,3.013,600,20,0,2,0,1,0,0,0),
+(@CGUID+2276,32820,0,1,1,0,0,2058.29,806.14,36.001,1.968,600,20,0,2,0,1,0,0,0),
+(@CGUID+2277,32820,0,1,1,0,0,2056.97,1776.17,90.0997,-0.482707,600,20,0,2,0,1,0,0,0),
+(@CGUID+2278,32820,0,1,1,0,0,2058.78,285.885,59.647,2.986,600,20,0,2,0,1,0,0,0),
+(@CGUID+2279,32820,0,1,1,0,0,2023.58,1706.39,79.4175,5.01283,600,20,0,2,0,1,0,0,0),
+(@CGUID+2280,32820,0,1,1,0,0,2059.86,482.621,48.592,0.632,600,20,0,2,0,1,0,0,0),
+(@CGUID+2281,32820,0,1,1,0,0,2028.19,1922.43,107.104,1.76648,600,20,0,2,0,1,0,0,0),
+(@CGUID+2282,32820,0,1,1,0,0,2062.18,338.783,55.208,5.476,600,20,0,2,0,1,0,0,0),
+(@CGUID+2283,32820,0,1,1,0,0,2063.56,290.546,97.031,5.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+2284,32820,0,1,1,0,0,2064.44,756.674,39.752,5.325,600,20,0,2,0,1,0,0,0),
+(@CGUID+2285,32820,0,1,1,0,0,2064.98,70.83,39.206,6.049,600,20,0,2,0,1,0,0,0),
+(@CGUID+2286,32820,0,1,1,0,0,2065.42,-370,35.665,5.481,600,20,0,2,0,1,0,0,0),
+(@CGUID+2287,32820,0,1,1,0,0,2066.76,-82,36.672,3.541,600,20,0,2,0,1,0,0,0),
+(@CGUID+2288,32820,0,1,1,0,0,2067.05,-550,55.844,5.643,600,20,0,2,0,1,0,0,0),
+(@CGUID+2289,32820,0,1,1,0,0,2067.3,-197,38.593,5.404,600,20,0,2,0,1,0,0,0),
+(@CGUID+2290,32820,0,1,1,0,0,2067.57,369.811,40.361,0.171,600,20,0,2,0,1,0,0,0),
+(@CGUID+2291,32820,0,1,1,0,0,2067.97,-101,38.276,1.817,600,20,0,2,0,1,0,0,0),
+(@CGUID+2292,32820,0,1,1,0,0,2068.44,-118,37.03,0.131,600,20,0,2,0,1,0,0,0),
+(@CGUID+2293,32820,0,1,1,0,0,2138.94,1335.12,54.5369,2.61531,600,20,0,2,0,1,0,0,0),
+(@CGUID+2294,32820,0,1,1,0,0,2070.34,878.129,35.484,1.15,600,20,0,2,0,1,0,0,0),
+(@CGUID+2295,32820,0,1,1,0,0,2060.03,1778.16,89.545,-1.58239,600,20,0,2,0,1,0,0,0),
+(@CGUID+2296,32820,0,1,1,0,0,2070.94,-287,42.476,1.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+2297,32820,0,1,1,0,0,2066.83,1349.86,61.2389,5.49917,600,20,0,2,0,1,0,0,0),
+(@CGUID+2298,32820,0,1,1,0,0,2072.44,276.922,59.6398,6.27228,600,20,0,2,0,1,0,0,0),
+(@CGUID+2299,32820,0,1,1,0,0,2004.17,1654.17,75.4569,1.8434,600,20,0,2,0,1,0,0,0),
+(@CGUID+2300,32820,0,1,1,0,0,2073.38,-419,39.952,4.991,600,20,0,2,0,1,0,0,0),
+(@CGUID+2301,32820,0,1,1,0,0,2073.47,282.781,59.645,6.124,600,20,0,2,0,1,0,0,0),
+(@CGUID+2302,32820,0,1,1,0,0,2073.73,1132.56,35.526,3.825,600,20,0,2,0,1,0,0,0),
+(@CGUID+2303,32820,0,1,1,0,0,2074.66,1034.66,34.803,0.718,600,20,0,2,0,1,0,0,0),
+(@CGUID+2304,32820,0,1,1,0,0,2074.73,-519,55.793,2.566,600,20,0,2,0,1,0,0,0),
+(@CGUID+2305,32820,0,1,1,0,0,2075.72,1202.52,45.322,2.771,600,20,0,2,0,1,0,0,0),
+(@CGUID+2306,32820,0,1,1,0,0,2021.02,1911.75,105.644,3.21279,600,20,0,2,0,1,0,0,0),
+(@CGUID+2307,32820,0,1,1,0,0,2076.91,-185,43.133,4.205,600,20,0,2,0,1,0,0,0),
+(@CGUID+2308,32820,0,1,1,0,0,2049.65,1732.27,80.4877,3.31944,600,20,0,2,0,1,0,0,0),
+(@CGUID+2309,32820,0,1,1,0,0,1971.43,1354.39,68.887,4.29635,600,20,0,2,0,1,0,0,0),
+(@CGUID+2310,32820,0,1,1,0,0,2077.52,693.921,37.999,5.065,600,20,0,2,0,1,0,0,0),
+(@CGUID+2311,32820,0,1,1,0,0,2078.41,-251,40.586,0.182,600,20,0,2,0,1,0,0,0),
+(@CGUID+2312,32820,0,1,1,0,0,2078.57,4.905,42.068,1.306,600,20,0,2,0,1,0,0,0),
+(@CGUID+2313,32820,0,1,1,0,0,2078.67,629.378,34.795,2.592,600,20,0,2,0,1,0,0,0),
+(@CGUID+2314,32820,0,1,1,0,0,2078.89,1140.56,35.846,4.338,600,20,0,2,0,1,0,0,0),
+(@CGUID+2315,32820,0,1,1,0,0,2078.96,91.511,36.836,2.531,600,20,0,2,0,1,0,0,0),
+(@CGUID+2316,32820,0,1,1,0,0,2019.53,1898.06,103.851,2.14568,600,20,0,2,0,1,0,0,0),
+(@CGUID+2317,32820,0,1,1,0,0,2006.41,1378.54,61.7167,1.51118,600,20,0,2,0,1,0,0,0),
+(@CGUID+2318,32820,0,1,1,0,0,2083.03,1201.24,44.457,6.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2319,32820,0,1,1,0,0,2083.07,684.921,38.775,0.814,600,20,0,2,0,1,0,0,0),
+(@CGUID+2320,32820,0,1,1,0,0,1896.38,1364.77,69.7813,5.23592,600,20,0,2,0,1,0,0,0),
+(@CGUID+2321,32820,0,1,1,0,0,2083.9,1947.31,98.64,2.035,600,20,0,2,0,1,0,0,0),
+(@CGUID+2322,32820,0,1,1,0,0,2084.73,452.826,53.378,5.251,600,20,0,2,0,1,0,0,0),
+(@CGUID+2323,32820,0,1,1,0,0,1827.52,1715.56,102.475,4.52974,600,20,0,2,0,1,0,0,0),
+(@CGUID+2324,32820,0,1,1,0,0,2085.16,345.001,52.812,1.366,600,20,0,2,0,1,0,0,0),
+(@CGUID+2325,32820,0,1,1,0,0,2085.53,-123,39.026,5.75,600,20,0,2,0,1,0,0,0),
+(@CGUID+2326,32820,0,1,1,0,0,1808.53,1774.53,132.221,4.17193,600,20,0,2,0,1,0,0,0),
+(@CGUID+2327,32820,0,1,1,0,0,2087.39,608.782,34.674,0.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2328,32820,0,1,1,0,0,1869.89,1671.97,92.0772,0.063407,600,20,0,2,0,1,0,0,0),
+(@CGUID+2329,32820,0,1,1,0,0,1815.67,1447.38,85.6652,4.00511,600,20,0,2,0,1,0,0,0),
+(@CGUID+2330,32820,0,1,1,0,0,2090.29,917.421,36.175,4.487,600,20,0,2,0,1,0,0,0),
+(@CGUID+2331,32820,0,1,1,0,0,2091.17,206.584,55.045,3.016,600,20,0,2,0,1,0,0,0),
+(@CGUID+2332,32820,0,1,1,0,0,2092.74,1062.42,32.512,5.418,600,20,0,2,0,1,0,0,0),
+(@CGUID+2333,32820,0,1,1,0,0,1840.7,1441.26,80.3841,4.92828,600,20,0,2,0,1,0,0,0),
+(@CGUID+2334,32820,0,1,1,0,0,2092.98,-455,44.693,3.958,600,20,0,2,0,1,0,0,0),
+(@CGUID+2335,32820,0,1,1,0,0,2093.42,1084.22,37.3,1.54,600,20,0,2,0,1,0,0,0),
+(@CGUID+2336,32820,0,1,1,0,0,2093.44,-43,39.19,0.084,600,20,0,2,0,1,0,0,0),
+(@CGUID+2337,32820,0,1,1,0,0,2095.32,1126.56,34.958,2.117,600,20,0,2,0,1,0,0,0),
+(@CGUID+2338,32820,0,1,1,0,0,2096.49,-589,61.891,0.042,600,20,0,2,0,1,0,0,0),
+(@CGUID+2339,32820,0,1,1,0,0,2097.09,1022.21,33.55,4.858,600,20,0,2,0,1,0,0,0),
+(@CGUID+2340,32820,0,1,1,0,0,2097.09,190.874,56.708,4.383,600,20,0,2,0,1,0,0,0),
+(@CGUID+2341,32820,0,1,1,0,0,2097.55,945.28,36.636,3.586,600,20,0,2,0,1,0,0,0),
+(@CGUID+2342,32820,0,1,1,0,0,2097.96,367.464,44.919,4.056,600,20,0,2,0,1,0,0,0),
+(@CGUID+2343,32820,0,1,1,0,0,2098.45,24.948,35.683,0.745,600,20,0,2,0,1,0,0,0),
+(@CGUID+2344,32820,0,1,1,0,0,2011.17,1337.33,72.2587,4.60995,600,20,0,2,0,1,0,0,0),
+(@CGUID+2345,32820,0,1,1,0,0,2100.96,105.429,32.285,2.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+2346,32820,0,1,1,0,0,1881.74,1440.92,74.5331,3.04863,600,20,0,2,0,1,0,0,0),
+(@CGUID+2347,32820,0,1,1,0,0,2088.35,1713.08,67.0698,5.9835,600,20,0,2,0,1,0,0,0),
+(@CGUID+2348,32820,0,1,1,0,0,2102.76,233.472,61.795,6.015,600,20,0,2,0,1,0,0,0),
+(@CGUID+2349,32820,0,1,1,0,0,2104.04,986.665,36.72,4.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+2350,32820,0,1,1,0,0,2077.3,1688.81,70.235,5.82023,600,20,0,2,0,1,0,0,0),
+(@CGUID+2351,32820,0,1,1,0,0,1861.56,1489.31,89.5527,4.47295,600,20,0,2,0,1,0,0,0),
+(@CGUID+2352,32820,0,1,1,0,0,1943.11,1434.81,67.6766,0.955429,600,20,0,2,0,1,0,0,0),
+(@CGUID+2353,32820,0,1,1,0,0,2107.05,660.18,35.125,4.362,600,20,0,2,0,1,0,0,0),
+(@CGUID+2354,32820,0,1,1,0,0,2108.62,-894,108.976,3.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+2355,32820,0,1,1,0,0,2108.83,478.31,62.263,6.225,600,20,0,2,0,1,0,0,0),
+(@CGUID+2356,32820,0,1,1,0,0,2110.95,1003.16,34.44,0.332,600,20,0,2,0,1,0,0,0),
+(@CGUID+2357,32820,0,1,1,0,0,2111.17,693.495,36.539,6.102,600,20,0,2,0,1,0,0,0),
+(@CGUID+2358,32820,0,1,1,0,0,2112.4,821.576,33.143,1.608,600,20,0,2,0,1,0,0,0),
+(@CGUID+2359,32820,0,1,1,0,0,2112.78,-625,93.599,0.281,600,20,0,2,0,1,0,0,0),
+(@CGUID+2360,32820,0,1,1,0,0,2114.84,-38,42.798,0.651,600,20,0,2,0,1,0,0,0),
+(@CGUID+2361,32820,0,1,1,0,0,2115.19,43.542,38.107,4.966,600,20,0,2,0,1,0,0,0),
+(@CGUID+2362,32820,0,1,1,0,0,1976.24,1495.05,85.6114,4.69927,600,20,0,2,0,1,0,0,0),
+(@CGUID+2363,32820,0,1,1,0,0,2115.64,-5299,82.163,1.075,600,20,0,2,0,1,0,0,0),
+(@CGUID+2364,32820,0,1,1,0,0,2115.65,549.438,40.849,0.092,600,20,0,2,0,1,0,0,0),
+(@CGUID+2365,32820,0,1,1,0,0,2117.29,516.623,53.938,5.176,600,20,0,2,0,1,0,0,0),
+(@CGUID+2366,32820,0,1,1,0,0,2118.06,-258,50.686,0.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+2367,32820,0,1,1,0,0,2118.31,-61,41.311,6.279,600,20,0,2,0,1,0,0,0),
+(@CGUID+2368,32820,0,1,1,0,0,2119.43,-191,41.035,2.649,600,20,0,2,0,1,0,0,0),
+(@CGUID+2369,32820,0,1,1,0,0,1881.93,1774.41,118.192,4.4506,600,20,0,2,0,1,0,0,0),
+(@CGUID+2370,32820,0,1,1,0,0,2119.86,825.431,32.753,5.361,600,20,0,2,0,1,0,0,0),
+(@CGUID+2371,32820,0,1,1,0,0,2059.25,1744.25,81.5146,3.61765,600,20,0,2,0,1,0,0,0),
+(@CGUID+2372,32820,0,1,1,0,0,2120.54,1012.54,33.564,4.349,600,20,0,2,0,1,0,0,0),
+(@CGUID+2373,32820,0,1,1,0,0,2121.89,622.939,34.849,5.541,600,20,0,2,0,1,0,0,0),
+(@CGUID+2374,32820,0,1,1,0,0,2122.32,-83,41.185,0.064,600,20,0,2,0,1,0,0,0),
+(@CGUID+2375,32820,0,1,1,0,0,2122.4,386.537,49.507,2.28,600,20,0,2,0,1,0,0,0),
+(@CGUID+2376,32820,0,1,1,0,0,2123.31,54.756,37.694,2.942,600,20,0,2,0,1,0,0,0),
+(@CGUID+2377,32820,0,1,1,0,0,1919.79,1780.21,118.376,1.84019,600,20,0,2,0,1,0,0,0),
+(@CGUID+2378,32820,0,1,1,0,0,2078.28,1604.84,71.8452,5.88908,600,20,0,2,0,1,0,0,0),
+(@CGUID+2379,32820,0,1,1,0,0,1931.08,1322.22,80.217,5.90955,600,20,0,2,0,1,0,0,0),
+(@CGUID+2380,32820,0,1,1,0,0,2128.11,1140.33,33.863,5.55,600,20,0,2,0,1,0,0,0),
+(@CGUID+2381,32820,0,1,1,0,0,2042.77,1895,101.84,3.27782,600,20,0,2,0,1,0,0,0),
+(@CGUID+2382,32820,0,1,1,0,0,2128.86,676.09,35.774,3.255,600,20,0,2,0,1,0,0,0),
+(@CGUID+2383,32820,0,1,1,0,0,1930.97,1361.04,68.2014,5.75946,600,20,0,2,0,1,0,0,0),
+(@CGUID+2384,32820,0,1,1,0,0,1917.79,1752.5,95.0883,3.73869,600,20,0,2,0,1,0,0,0),
+(@CGUID+2385,32820,0,1,1,0,0,2129.72,1302.56,53.803,0.914,600,20,0,2,0,1,0,0,0),
+(@CGUID+2386,32820,0,1,1,0,0,2129.84,845.292,32.861,1.673,600,20,0,2,0,1,0,0,0),
+(@CGUID+2387,32820,0,1,1,0,0,2130.11,1195.2,43.28,3.537,600,20,0,2,0,1,0,0,0),
+(@CGUID+2388,32820,0,1,1,0,0,2078.82,1746.4,76.4259,4.10132,600,20,0,2,0,1,0,0,0),
+(@CGUID+2389,32820,0,1,1,0,0,2130.51,-229,50.741,4.335,600,20,0,2,0,1,0,0,0),
+(@CGUID+2390,32820,0,1,1,0,0,2130.54,836.084,33.936,5.46,600,20,0,2,0,1,0,0,0),
+(@CGUID+2391,32820,0,1,1,0,0,2130.57,277.66,56.109,0.016,600,20,0,2,0,1,0,0,0),
+(@CGUID+2392,32820,0,1,1,0,0,2131.32,1081.94,32.295,1.587,600,20,0,2,0,1,0,0,0),
+(@CGUID+2393,32820,0,1,1,0,0,2131.94,78.192,32.567,4.208,600,20,0,2,0,1,0,0,0),
+(@CGUID+2394,32820,0,1,1,0,0,2132.06,1172.27,41.235,5.514,600,20,0,2,0,1,0,0,0),
+(@CGUID+2395,32820,0,1,1,0,0,2132.21,-292,53.727,6.193,600,20,0,2,0,1,0,0,0),
+(@CGUID+2396,32820,0,1,1,0,0,2134.68,766.579,33.696,1.245,600,20,0,2,0,1,0,0,0),
+(@CGUID+2397,32820,0,1,1,0,0,2134.81,24.776,40.508,1.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+2398,32820,0,1,1,0,0,2045.77,1592.61,70.3002,1.46481,600,20,0,2,0,1,0,0,0),
+(@CGUID+2399,32820,0,1,1,0,0,2136.56,-55,42.489,2.449,600,20,0,2,0,1,0,0,0),
+(@CGUID+2400,32820,0,1,1,0,0,1809.05,1487.63,92.2249,2.22045,600,20,0,2,0,1,0,0,0),
+(@CGUID+2401,32820,0,1,1,0,0,2137.51,447.275,67.546,4.482,600,20,0,2,0,1,0,0,0),
+(@CGUID+2402,32820,0,1,1,0,0,2138.22,932.278,32.517,2.298,600,20,0,2,0,1,0,0,0),
+(@CGUID+2403,32820,0,1,1,0,0,2139.55,-629,89.778,5.681,600,20,0,2,0,1,0,0,0),
+(@CGUID+2404,32820,0,1,1,0,0,2139.64,-70,43.366,6.014,600,20,0,2,0,1,0,0,0),
+(@CGUID+2405,32820,0,1,1,0,0,2140.19,-143,41.601,2.055,600,20,0,2,0,1,0,0,0),
+(@CGUID+2406,32820,0,1,1,0,0,2140.74,333.625,47.038,5.583,600,20,0,2,0,1,0,0,0),
+(@CGUID+2407,32820,0,1,1,0,0,2142.25,-574,79.316,1.743,600,20,0,2,0,1,0,0,0),
+(@CGUID+2408,32820,0,1,1,0,0,2143.7,617.114,34.785,6.194,600,20,0,2,0,1,0,0,0),
+(@CGUID+2409,32820,0,1,1,0,0,2143.81,905.505,33.556,5.041,600,20,0,2,0,1,0,0,0),
+(@CGUID+2410,32820,0,1,1,0,0,2143.92,-261,54.597,4.158,600,20,0,2,0,1,0,0,0),
+(@CGUID+2411,32820,0,1,1,0,0,2144.01,295.302,49.235,4.696,600,20,0,2,0,1,0,0,0),
+(@CGUID+2412,32820,0,1,1,0,0,2144.69,845.938,36.816,6.026,600,20,0,2,0,1,0,0,0),
+(@CGUID+2413,32820,0,1,1,0,0,2167.13,1289.97,53.8044,2.92954,600,20,0,2,0,1,0,0,0),
+(@CGUID+2414,32820,0,1,1,0,0,2146.51,1087.12,33.038,2.173,600,20,0,2,0,1,0,0,0),
+(@CGUID+2415,32820,0,1,1,0,0,2147.98,-162,42.288,1.28,600,20,0,2,0,1,0,0,0),
+(@CGUID+2416,32820,0,1,1,0,0,2148.51,-548,81.304,4.714,600,20,0,2,0,1,0,0,0),
+(@CGUID+2417,32820,0,1,1,0,0,2148.96,1173.49,41.564,1.967,600,20,0,2,0,1,0,0,0),
+(@CGUID+2418,32820,0,1,1,0,0,2149.56,923.256,33.366,2.19,600,20,0,2,0,1,0,0,0),
+(@CGUID+2419,32820,0,1,1,0,0,2149.72,784.085,35.757,4.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+2420,32820,0,1,1,0,0,1912.29,1756.79,96.8451,0.664982,600,20,0,2,0,1,0,0,0),
+(@CGUID+2421,32820,0,1,1,0,0,2150.27,581.356,38.759,5.833,600,20,0,2,0,1,0,0,0),
+(@CGUID+2422,32820,0,1,1,0,0,2151.13,-532,81.656,4.728,600,20,0,2,0,1,0,0,0),
+(@CGUID+2423,32820,0,1,1,0,0,2151.28,781.396,35.387,1.441,600,20,0,2,0,1,0,0,0),
+(@CGUID+2424,32820,0,1,1,0,0,1913.28,1698.36,84.2699,1.17009,600,20,0,2,0,1,0,0,0),
+(@CGUID+2425,32820,0,1,1,0,0,2152.85,-376,77.095,2.125,600,20,0,2,0,1,0,0,0),
+(@CGUID+2426,32820,0,1,1,0,0,2153.82,264.085,43.75,6.073,600,20,0,2,0,1,0,0,0),
+(@CGUID+2427,32820,0,1,1,0,0,2154.14,-549,81.38,4.69,600,20,0,2,0,1,0,0,0),
+(@CGUID+2428,32820,0,1,1,0,0,2154.25,1273.87,52.923,5.091,600,20,0,2,0,1,0,0,0),
+(@CGUID+2429,32820,0,1,1,0,0,2154.3,613.135,35.59,4.875,600,20,0,2,0,1,0,0,0),
+(@CGUID+2430,32820,0,1,1,0,0,2154.42,-509,81.625,6.261,600,20,0,2,0,1,0,0,0),
+(@CGUID+2431,32820,0,1,1,0,0,2156.87,76.336,30.127,1.953,600,20,0,2,0,1,0,0,0),
+(@CGUID+2432,32820,0,1,1,0,0,2157.17,1314.07,53.888,4.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+2433,32820,0,1,1,0,0,2157.89,657.364,34.545,1.219,600,20,0,2,0,1,0,0,0),
+(@CGUID+2434,32820,0,1,1,0,0,2158.68,1178.75,40.923,2.14,600,20,0,2,0,1,0,0,0),
+(@CGUID+2435,32820,0,1,1,0,0,2103.8,1670.5,71.61,4.75789,600,20,0,2,0,1,0,0,0),
+(@CGUID+2436,32820,0,1,1,0,0,2102.83,1710.7,67.3188,5.1591,600,20,0,2,0,1,0,0,0),
+(@CGUID+2437,32820,0,1,1,0,0,2161.29,-135,40.317,5.06,600,20,0,2,0,1,0,0,0),
+(@CGUID+2438,32820,0,1,1,0,0,2161.74,1309.66,54.058,3.609,600,20,0,2,0,1,0,0,0),
+(@CGUID+2439,32820,0,1,1,0,0,2161.79,1078.17,32.831,2.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+2440,32820,0,1,1,0,0,2161.84,810.492,40.524,3.461,600,20,0,2,0,1,0,0,0),
+(@CGUID+2441,32820,0,1,1,0,0,2162.56,1053.67,34.093,3.124,600,20,0,2,0,1,0,0,0),
+(@CGUID+2442,32820,0,1,1,0,0,2163.73,657.343,34.545,2.354,600,20,0,2,0,1,0,0,0),
+(@CGUID+2443,32820,0,1,1,0,0,2164.72,179.13,42.693,1.357,600,20,0,2,0,1,0,0,0),
+(@CGUID+2444,32820,0,1,1,0,0,1950.14,1751.67,112.956,5.89412,600,20,0,2,0,1,0,0,0),
+(@CGUID+2445,32820,0,1,1,0,0,1905.91,1666.46,84.3586,4.94577,600,20,0,2,0,1,0,0,0),
+(@CGUID+2446,32820,0,1,1,0,0,2167.67,480.995,66.483,1.386,600,20,0,2,0,1,0,0,0),
+(@CGUID+2447,32820,0,1,1,0,0,2167.71,-606,80.193,5.898,600,20,0,2,0,1,0,0,0),
+(@CGUID+2448,32820,0,1,1,0,0,2167.89,1275.51,53.207,4.893,600,20,0,2,0,1,0,0,0),
+(@CGUID+2449,32820,0,1,1,0,0,2169.13,1063.9,33.426,5.259,600,20,0,2,0,1,0,0,0),
+(@CGUID+2450,32820,0,1,1,0,0,2170.73,-739,72.017,2.104,600,20,0,2,0,1,0,0,0),
+(@CGUID+2451,32820,0,1,1,0,0,2171.07,11.519,41.672,3.089,600,20,0,2,0,1,0,0,0),
+(@CGUID+2452,32820,0,1,1,0,0,2173.42,959.488,34.521,4.991,600,20,0,2,0,1,0,0,0),
+(@CGUID+2453,32820,0,1,1,0,0,2175.75,-579,79.655,6.141,600,20,0,2,0,1,0,0,0),
+(@CGUID+2454,32820,0,1,1,0,0,2176.37,-415,71.493,3.83,600,20,0,2,0,1,0,0,0),
+(@CGUID+2455,32820,0,1,1,0,0,2176.81,-494,77.326,1.678,600,20,0,2,0,1,0,0,0),
+(@CGUID+2456,32820,0,1,1,0,0,2177.08,-448,75,2.048,600,20,0,2,0,1,0,0,0),
+(@CGUID+2457,32820,0,1,1,0,0,2177.16,-56,39.25,3.999,600,20,0,2,0,1,0,0,0),
+(@CGUID+2458,32820,0,1,1,0,0,2178.04,-707,68.489,4.028,600,20,0,2,0,1,0,0,0),
+(@CGUID+2459,32820,0,1,1,0,0,2179.45,265.599,41.922,2.515,600,20,0,2,0,1,0,0,0),
+(@CGUID+2460,32820,0,1,1,0,0,2182.14,-21,37.709,3.873,600,20,0,2,0,1,0,0,0),
+(@CGUID+2461,32820,0,1,1,0,0,2183.91,334.654,37.535,5.015,600,20,0,2,0,1,0,0,0),
+(@CGUID+2462,32820,0,1,1,0,0,2184.19,-451,75.493,2.496,600,20,0,2,0,1,0,0,0),
+(@CGUID+2463,32820,0,1,1,0,0,2184.33,156.662,54.539,3.572,600,20,0,2,0,1,0,0,0),
+(@CGUID+2464,32820,0,1,1,0,0,2185.43,905.478,44.982,4.872,600,20,0,2,0,1,0,0,0),
+(@CGUID+2465,32820,0,1,1,0,0,2185.44,-953,86.888,5.122,600,20,0,2,0,1,0,0,0),
+(@CGUID+2466,32820,0,1,1,0,0,2186.22,985.717,34.936,3.18,600,20,0,2,0,1,0,0,0),
+(@CGUID+2467,32820,0,1,1,0,0,2187.24,-124,33.846,3.261,600,20,0,2,0,1,0,0,0),
+(@CGUID+2468,32820,0,1,1,0,0,2188.02,867.697,47.564,1.242,600,20,0,2,0,1,0,0,0),
+(@CGUID+2469,32820,0,1,1,0,0,1963.34,1693.95,79.0409,5.03445,600,20,0,2,0,1,0,0,0),
+(@CGUID+2470,32820,0,1,1,0,0,2189.44,244.623,35.495,5.568,600,20,0,2,0,1,0,0,0),
+(@CGUID+2471,32820,0,1,1,0,0,2190.93,-350,76.38,0.323,600,20,0,2,0,1,0,0,0),
+(@CGUID+2472,32820,0,1,1,0,0,2192.44,-803,78.426,4.797,600,20,0,2,0,1,0,0,0),
+(@CGUID+2473,32820,0,1,1,0,0,2195.31,73.998,27.678,3.055,600,20,0,2,0,1,0,0,0),
+(@CGUID+2474,32820,0,1,1,0,0,2198.03,-628,79.928,5.654,600,20,0,2,0,1,0,0,0),
+(@CGUID+2475,32820,0,1,1,0,0,2199.94,-916,82.351,3.032,600,20,0,2,0,1,0,0,0),
+(@CGUID+2476,32820,0,1,1,0,0,2200.89,-834,81.376,3.29,600,20,0,2,0,1,0,0,0),
+(@CGUID+2477,32820,0,1,1,0,0,2201.67,569.413,28.92,1.475,600,20,0,2,0,1,0,0,0),
+(@CGUID+2478,32820,0,1,1,0,0,2201.7,1008.8,37.503,3.11,600,20,0,2,0,1,0,0,0),
+(@CGUID+2479,32820,0,1,1,0,0,2202.54,-790,77.934,5.658,600,20,0,2,0,1,0,0,0),
+(@CGUID+2480,32820,0,1,1,0,0,2202.84,1184.23,31.857,2.052,600,20,0,2,0,1,0,0,0),
+(@CGUID+2481,32820,0,1,1,0,0,2203.5,99.245,37.464,0.982,600,20,0,2,0,1,0,0,0),
+(@CGUID+2482,32820,0,1,1,0,0,2206.58,-291,60.776,1.558,600,20,0,2,0,1,0,0,0),
+(@CGUID+2483,32820,0,1,1,0,0,2207.06,625.442,24.75,5.076,600,20,0,2,0,1,0,0,0),
+(@CGUID+2484,32820,0,1,1,0,0,2207.85,-83,28.178,2.542,600,20,0,2,0,1,0,0,0),
+(@CGUID+2485,32820,0,1,1,0,0,2208.23,-46,29.994,3.938,600,20,0,2,0,1,0,0,0),
+(@CGUID+2486,32820,0,1,1,0,0,2208.29,1108.22,35.033,5.086,600,20,0,2,0,1,0,0,0),
+(@CGUID+2487,32820,0,1,1,0,0,2210.07,-884,79.818,3.91,600,20,0,2,0,1,0,0,0),
+(@CGUID+2488,32820,0,1,1,0,0,2210.19,690.232,34.949,1.716,600,20,0,2,0,1,0,0,0),
+(@CGUID+2489,32820,0,1,1,0,0,2210.48,613.118,25.056,1.509,600,20,0,2,0,1,0,0,0),
+(@CGUID+2490,32820,0,1,1,0,0,2210.61,-343,76.102,6.024,600,20,0,2,0,1,0,0,0),
+(@CGUID+2491,32820,0,1,1,0,0,2213.12,974.64,34.851,5.039,600,20,0,2,0,1,0,0,0),
+(@CGUID+2492,32820,0,1,1,0,0,2213.42,1151.44,36.331,1.773,600,20,0,2,0,1,0,0,0),
+(@CGUID+2493,32820,0,1,1,0,0,2213.96,1014.27,37.358,1.463,600,20,0,2,0,1,0,0,0),
+(@CGUID+2494,32820,0,1,1,0,0,2214.63,-142,29.372,6.129,600,20,0,2,0,1,0,0,0),
+(@CGUID+2495,32820,0,1,1,0,0,2214.8,830.625,42.754,3.829,600,20,0,2,0,1,0,0,0),
+(@CGUID+2496,32820,0,1,1,0,0,2215.25,89.87,33.792,2.13,600,20,0,2,0,1,0,0,0),
+(@CGUID+2497,32820,0,1,1,0,0,2215.64,810.335,36.014,4.717,600,20,0,2,0,1,0,0,0),
+(@CGUID+2498,32820,0,1,1,0,0,2215.74,744.866,37.825,4.187,600,20,0,2,0,1,0,0,0),
+(@CGUID+2499,32820,0,1,1,0,0,2215.75,187.039,46.615,0.698,600,20,0,2,0,1,0,0,0),
+(@CGUID+2500,32820,0,1,1,0,0,2216.58,716.134,37.089,4.992,600,20,0,2,0,1,0,0,0),
+(@CGUID+2501,32820,0,1,1,0,0,2217.6,688.029,35.747,6.015,600,20,0,2,0,1,0,0,0),
+(@CGUID+2502,32820,0,1,1,0,0,2217.66,781.878,33.909,0.436,600,20,0,2,0,1,0,0,0),
+(@CGUID+2503,32820,0,1,1,0,0,2218.03,780.519,33.878,4.977,600,20,0,2,0,1,0,0,0),
+(@CGUID+2504,32820,0,1,1,0,0,2218.38,853.719,47.378,0.906,600,20,0,2,0,1,0,0,0),
+(@CGUID+2505,32820,0,1,1,0,0,2218.94,-181,24.371,2.104,600,20,0,2,0,1,0,0,0),
+(@CGUID+2506,32820,0,1,1,0,0,2219.32,-688,66.713,5.733,600,20,0,2,0,1,0,0,0),
+(@CGUID+2507,32820,0,1,1,0,0,2219.82,449.194,53.727,1.446,600,20,0,2,0,1,0,0,0),
+(@CGUID+2508,32820,0,1,1,0,0,2220.45,58.252,34.739,2.252,600,20,0,2,0,1,0,0,0),
+(@CGUID+2509,32820,0,1,1,0,0,2222.72,847.681,46.425,6.038,600,20,0,2,0,1,0,0,0),
+(@CGUID+2510,32820,0,1,1,0,0,2223.43,712.979,36.523,0.662,600,20,0,2,0,1,0,0,0),
+(@CGUID+2511,32820,0,1,1,0,0,2223.5,399.235,45.126,0.504,600,20,0,2,0,1,0,0,0),
+(@CGUID+2512,32820,0,1,1,0,0,2225.04,382.953,39.736,5.981,600,20,0,2,0,1,0,0,0),
+(@CGUID+2513,32820,0,1,1,0,0,2226.55,517.816,40.286,3.045,600,20,0,2,0,1,0,0,0),
+(@CGUID+2514,32820,0,1,1,0,0,2227.02,-750,71.357,0.732,600,20,0,2,0,1,0,0,0),
+(@CGUID+2515,32820,0,1,1,0,0,2227.53,317.641,36.719,5.185,600,20,0,2,0,1,0,0,0),
+(@CGUID+2516,32820,0,1,1,0,0,2229.11,636.011,24.968,4.452,600,20,0,2,0,1,0,0,0),
+(@CGUID+2517,32820,0,1,1,0,0,2229.59,-206,40.297,1.597,600,20,0,2,0,1,0,0,0),
+(@CGUID+2518,32820,0,1,1,0,0,2230.34,-29,25.738,4.09,600,20,0,2,0,1,0,0,0),
+(@CGUID+2519,32820,0,1,1,0,0,2230.35,541.228,40.439,1.739,600,20,0,2,0,1,0,0,0),
+(@CGUID+2520,32820,0,1,1,0,0,2230.55,975.858,37.83,5.8,600,20,0,2,0,1,0,0,0),
+(@CGUID+2521,32820,0,1,1,0,0,2231.01,-239,52.908,0.153,600,20,0,2,0,1,0,0,0),
+(@CGUID+2522,32820,0,1,1,0,0,2231.63,560.475,34.627,5.567,600,20,0,2,0,1,0,0,0),
+(@CGUID+2523,32820,0,1,1,0,0,2231.82,755.998,34.81,4.626,600,20,0,2,0,1,0,0,0),
+(@CGUID+2524,32820,0,1,1,0,0,2233.58,-1007,80.965,2.657,600,20,0,2,0,1,0,0,0),
+(@CGUID+2525,32820,0,1,1,0,0,2235.19,447.66,46.216,2.968,600,20,0,2,0,1,0,0,0),
+(@CGUID+2526,32820,0,1,1,0,0,2236.58,312.188,36.721,3.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+2527,32820,0,1,1,0,0,2236.77,-680,66.274,0.418,600,20,0,2,0,1,0,0,0),
+(@CGUID+2528,32820,0,1,1,0,0,2238.35,918.627,45.64,4.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+2529,32820,0,1,1,0,0,2238.9,-915,75.816,4.474,600,20,0,2,0,1,0,0,0),
+(@CGUID+2530,32820,0,1,1,0,0,2240.14,609.873,33.625,3.535,600,20,0,2,0,1,0,0,0),
+(@CGUID+2531,32820,0,1,1,0,0,2241.17,133.656,48.826,4.33,600,20,0,2,0,1,0,0,0),
+(@CGUID+2532,32820,0,1,1,0,0,2241.75,458.269,39.242,0.722,600,20,0,2,0,1,0,0,0),
+(@CGUID+2533,32820,0,1,1,0,0,2242.3,707.793,35.301,6.015,600,20,0,2,0,1,0,0,0),
+(@CGUID+2534,32820,0,1,1,0,0,2244.3,-799,73.969,4.518,600,20,0,2,0,1,0,0,0),
+(@CGUID+2535,32820,0,1,1,0,0,2245.02,326.546,35.272,5.609,600,20,0,2,0,1,0,0,0),
+(@CGUID+2536,32820,0,1,1,0,0,2246.19,239.989,34.26,1.255,600,20,0,2,0,1,0,0,0),
+(@CGUID+2537,32820,0,1,1,0,0,2246.33,308.24,35.272,5.104,600,20,0,2,0,1,0,0,0),
+(@CGUID+2538,32820,0,1,1,0,0,2242.45,599.449,33.3335,2.52821,600,20,0,2,0,1,0,0,0),
+(@CGUID+2539,32820,0,1,1,0,0,2248.2,641.756,25,3.243,600,20,0,2,0,1,0,0,0),
+(@CGUID+2540,32820,0,1,1,0,0,2248.69,331.302,35.189,5.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+2541,32820,0,1,1,0,0,2249.07,237.011,41.115,6.115,600,20,0,2,0,1,0,0,0),
+(@CGUID+2542,32820,0,1,1,0,0,2249.76,267.438,34.274,3.569,600,20,0,2,0,1,0,0,0),
+(@CGUID+2543,32820,0,1,1,0,0,2249.8,416.225,40.756,3.341,600,20,0,2,0,1,0,0,0),
+(@CGUID+2544,32820,0,1,1,0,0,2250.01,960.429,42.133,1.314,600,20,0,2,0,1,0,0,0),
+(@CGUID+2545,32820,0,1,1,0,0,2250.26,322.025,35.272,5.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+2546,32820,0,1,1,0,0,2250.35,249.125,41.115,6.097,600,20,0,2,0,1,0,0,0),
+(@CGUID+2547,32820,0,1,1,0,0,2250.97,327.095,35.189,5.591,600,20,0,2,0,1,0,0,0),
+(@CGUID+2548,32820,0,1,1,0,0,2251.46,-182,27.26,1.651,600,20,0,2,0,1,0,0,0),
+(@CGUID+2549,32820,0,1,1,0,0,2251.83,641.975,24.75,0.245,600,20,0,2,0,1,0,0,0),
+(@CGUID+2550,32820,0,1,1,0,0,2251.91,-307,65.069,1.42,600,20,0,2,0,1,0,0,0),
+(@CGUID+2551,32820,0,1,1,0,0,2252.4,-17,26.358,0.748,600,20,0,2,0,1,0,0,0),
+(@CGUID+2552,32820,0,1,1,0,0,2252.48,247.986,34.259,4.599,600,20,1,2,0,1,0,0,0),
+(@CGUID+2553,32820,0,1,1,0,0,2252.73,250.472,34.259,6.011,600,20,0,2,0,1,0,0,0),
+(@CGUID+2554,32820,0,1,1,0,0,2253.01,251.748,41.115,5.255,600,20,0,2,0,1,0,0,0),
+(@CGUID+2555,32820,0,1,1,0,0,2253.27,-336,76.373,2.778,600,20,0,2,0,1,0,0,0),
+(@CGUID+2556,32820,0,1,1,0,0,2254.41,297.984,34.612,5.776,600,20,0,2,0,1,0,0,0),
+(@CGUID+2557,32820,0,1,1,0,0,2254.87,238.435,33.634,0.859,600,20,0,2,0,1,0,0,0),
+(@CGUID+2558,32820,0,1,1,0,0,2254.88,-229,51.733,1.118,600,20,0,2,0,1,0,0,0),
+(@CGUID+2559,32820,0,1,1,0,0,2255.34,317.76,35.165,6.128,600,20,0,2,0,1,0,0,0),
+(@CGUID+2560,32820,0,1,1,0,0,2256.2,329.762,35.189,5.605,600,20,0,2,0,1,0,0,0),
+(@CGUID+2561,32820,0,1,1,0,0,2256.83,233.273,41.115,1.251,600,20,0,2,0,1,0,0,0),
+(@CGUID+2562,32820,0,1,1,0,0,2257.28,1101.54,33.523,0.983,600,20,0,2,0,1,0,0,0),
+(@CGUID+2563,32820,0,1,1,0,0,2258,1230.01,34.533,0.171,600,20,0,2,0,1,0,0,0),
+(@CGUID+2564,32820,0,1,1,0,0,2258.75,-362,78.608,2.684,600,20,0,2,0,1,0,0,0),
+(@CGUID+2565,32820,0,1,1,0,0,2258.9,249.927,41.115,3.529,600,20,0,2,0,1,0,0,0),
+(@CGUID+2566,32820,0,1,1,0,0,2259.14,312.748,34.701,0.742,600,20,0,2,0,1,0,0,0),
+(@CGUID+2567,32820,0,1,1,0,0,2259.14,346.602,36.018,6.056,600,20,0,2,0,1,0,0,0),
+(@CGUID+2568,32820,0,1,1,0,0,2260.35,325.859,35.16,5.591,600,20,0,2,0,1,0,0,0),
+(@CGUID+2569,32820,0,1,1,0,0,2261,1015.88,39.699,2.774,600,20,0,2,0,1,0,0,0),
+(@CGUID+2570,32820,0,1,1,0,0,2262.08,-721,67.26,1.205,600,20,0,2,0,1,0,0,0),
+(@CGUID+2571,32820,0,1,1,0,0,2262.09,244.27,33.634,3.586,600,20,0,2,0,1,0,0,0),
+(@CGUID+2572,32820,0,1,1,0,0,2262.99,1488.16,33.519,3.996,600,20,0,2,0,1,0,0,0),
+(@CGUID+2573,32820,0,1,1,0,0,2264.45,251.177,41.115,4.974,600,20,0,2,0,1,0,0,0),
+(@CGUID+2574,32820,0,1,1,0,0,2264.8,146.817,42.451,2.634,600,20,0,2,0,1,0,0,0),
+(@CGUID+2575,32820,0,1,1,0,0,2265.31,238.893,34.257,2.61,600,20,0,2,0,1,0,0,0),
+(@CGUID+2576,32820,0,1,1,0,0,2265.82,333.306,35.183,5.779,600,20,0,2,0,1,0,0,0),
+(@CGUID+2577,32820,0,1,1,0,0,2266.43,320.628,34.316,5.505,600,20,0,2,0,1,0,0,0),
+(@CGUID+2578,32820,0,1,1,0,0,2266.47,345.762,36.019,4.754,600,20,0,2,0,1,0,0,0),
+(@CGUID+2579,32820,0,1,1,0,0,2266.67,1174.01,34.004,4.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+2580,32820,0,1,1,0,0,2268.22,897.28,46.609,1.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+2581,32820,0,1,1,0,0,2268.35,-404,77.129,3.161,600,20,0,2,0,1,0,0,0),
+(@CGUID+2582,32820,0,1,1,0,0,2269.4,245.072,34.256,3.934,600,20,0,2,0,1,0,0,0),
+(@CGUID+2583,32820,0,1,1,0,0,2269.52,280.954,35.135,2.893,600,20,0,2,0,1,0,0,0),
+(@CGUID+2584,32820,0,1,1,0,0,2271.04,242.997,41.198,1.917,600,20,0,2,0,1,0,0,0),
+(@CGUID+2585,32820,0,1,1,0,0,2271.33,1392.69,33.332,0.283,600,20,0,2,0,1,0,0,0),
+(@CGUID+2586,32820,0,1,1,0,0,2271.47,0,24.333,3.697,600,20,0,2,0,1,0,0,0),
+(@CGUID+2587,32820,0,1,1,0,0,2271.86,667.944,32.413,0.073,600,20,0,2,0,1,0,0,0),
+(@CGUID+2588,32820,0,1,1,0,0,2271.97,289.642,35.06,2.905,600,20,0,2,0,1,0,0,0),
+(@CGUID+2589,32820,0,1,1,0,0,2273.61,964.523,45.992,0.127,600,20,0,2,0,1,0,0,0),
+(@CGUID+2590,32820,0,1,1,0,0,2275.09,-196,36.918,5.87,600,20,0,2,0,1,0,0,0),
+(@CGUID+2591,32820,0,1,1,0,0,2277.59,-946,77.799,2.024,600,20,0,2,0,1,0,0,0),
+(@CGUID+2592,32820,0,1,1,0,0,2280.33,1473.05,33.332,2.445,600,20,0,2,0,1,0,0,0),
+(@CGUID+2593,32820,0,1,1,0,0,2280.49,1429.07,33.332,3.626,600,20,0,2,0,1,0,0,0),
+(@CGUID+2594,32820,0,1,1,0,0,2281.22,-877,74.515,5.913,600,20,0,2,0,1,0,0,0),
+(@CGUID+2595,32820,0,1,1,0,0,2281.5,1419.94,33.333,3.333,600,20,0,2,0,1,0,0,0),
+(@CGUID+2596,32820,0,1,1,0,0,2283.77,1192.16,36.171,0.37,600,20,0,2,0,1,0,0,0),
+(@CGUID+2597,32820,0,1,1,0,0,2283.95,242.051,41.114,2.494,600,20,0,2,0,1,0,0,0),
+(@CGUID+2598,32820,0,1,1,0,0,2284.06,1386.85,33.583,5.228,600,20,0,2,0,1,0,0,0),
+(@CGUID+2599,32820,0,1,1,0,0,2284.94,56.744,31.758,3.478,600,20,0,2,0,1,0,0,0),
+(@CGUID+2600,32820,0,1,1,0,0,2284.98,560.028,35.597,1.235,600,20,0,2,0,1,0,0,0),
+(@CGUID+2601,32820,0,1,1,0,0,2285.66,-222,43.143,0.708,600,20,0,2,0,1,0,0,0),
+(@CGUID+2602,32820,0,1,1,0,0,2285.93,597.451,30.5,2.537,600,20,0,2,0,1,0,0,0),
+(@CGUID+2603,32820,0,1,1,0,0,2286.23,337.584,34.228,3.604,600,20,1,2,0,1,0,0,0),
+(@CGUID+2604,32820,0,1,1,0,0,2286.48,-781,68.963,0.839,600,20,0,2,0,1,0,0,0),
+(@CGUID+2605,32820,0,1,1,0,0,2287.02,1314.32,31.399,5.33,600,20,0,2,0,1,0,0,0),
+(@CGUID+2606,32820,0,1,1,0,0,2287.27,302.189,35.189,2.968,600,20,0,2,0,1,0,0,0),
+(@CGUID+2607,32820,0,1,1,0,0,2287.94,855.278,39.751,1.603,600,20,0,2,0,1,0,0,0),
+(@CGUID+2608,32820,0,1,1,0,0,2288.69,717.236,35.489,1.637,600,20,0,2,0,1,0,0,0),
+(@CGUID+2609,32820,0,1,1,0,0,2288.87,243.432,27.172,5.223,600,20,0,2,0,1,0,0,0),
+(@CGUID+2610,32820,0,1,1,0,0,2288.99,706.963,35.832,6.265,600,20,0,2,0,1,0,0,0),
+(@CGUID+2611,32820,0,1,1,0,0,2289.03,235.309,27.088,1.301,600,20,0,2,0,1,0,0,0),
+(@CGUID+2612,32820,0,1,1,0,0,2289.26,391.07,34.114,3.156,600,20,0,2,0,1,0,0,0),
+(@CGUID+2613,32820,0,1,1,0,0,2289.37,401.44,33.95,3.308,600,20,0,2,0,1,0,0,0),
+(@CGUID+2614,32820,0,1,1,0,0,2291.09,-1019,76.653,5.459,600,20,0,2,0,1,0,0,0),
+(@CGUID+2615,32820,0,1,1,0,0,2292.45,233.122,27.273,1.71,600,20,0,2,0,1,0,0,0),
+(@CGUID+2616,32820,0,1,1,0,0,2293.34,423.774,34.761,5.638,600,20,0,2,0,1,0,0,0),
+(@CGUID+2617,32820,0,1,1,0,0,2294.07,722.974,35.609,5.35,600,20,0,2,0,1,0,0,0),
+(@CGUID+2618,32820,0,1,1,0,0,2295.49,850.026,40.156,3.269,600,20,0,2,0,1,0,0,0),
+(@CGUID+2619,32820,0,1,1,0,0,2295.53,178.992,35.525,6.01,600,20,0,2,0,1,0,0,0),
+(@CGUID+2620,32820,0,1,1,0,0,2295.68,246.425,27.541,3.589,600,20,0,2,0,1,0,0,0),
+(@CGUID+2621,32820,0,1,1,0,0,2296.19,-10,21.036,5.255,600,20,0,2,0,1,0,0,0),
+(@CGUID+2622,32820,0,1,1,0,0,2297.44,1463.4,33.333,1.799,600,20,0,2,0,1,0,0,0),
+(@CGUID+2623,32820,0,1,1,0,0,2298.11,1330.05,32.604,4.76,600,20,0,2,0,1,0,0,0),
+(@CGUID+2624,32820,0,1,1,0,0,2299.6,983.578,49.516,3.326,600,20,0,2,0,1,0,0,0),
+(@CGUID+2625,32820,0,1,1,0,0,2300.05,555.742,34.818,3.778,600,20,0,2,0,1,0,0,0),
+(@CGUID+2626,32820,0,1,1,0,0,2301.89,949.822,56.805,0.538,600,20,0,2,0,1,0,0,0),
+(@CGUID+2627,32820,0,1,1,0,0,2303.09,1125.23,34.745,0.168,600,20,0,2,0,1,0,0,0),
+(@CGUID+2628,32820,0,1,1,0,0,2305.5,715.549,37.693,3.289,600,20,0,2,0,1,0,0,0),
+(@CGUID+2629,32820,0,1,1,0,0,2305.77,1477.72,33.574,2.863,600,20,0,2,0,1,0,0,0),
+(@CGUID+2630,32820,0,1,1,0,0,2307.53,264.358,38.67,1.313,600,20,0,2,0,1,0,0,0),
+(@CGUID+2631,32820,0,1,1,0,0,2308.34,103.228,38.21,3.994,600,20,0,2,0,1,0,0,0),
+(@CGUID+2632,32820,0,1,1,0,0,2310.55,648.208,31.984,2.79,600,20,0,2,0,1,0,0,0),
+(@CGUID+2633,32820,0,1,1,0,0,2311.93,1037.26,43.999,5.483,600,20,0,2,0,1,0,0,0),
+(@CGUID+2634,32820,0,1,1,0,0,2311.94,-351,72.51,3.097,600,20,0,2,0,1,0,0,0),
+(@CGUID+2635,32820,0,1,1,0,0,2313.01,174.293,35.217,0.415,600,20,0,2,0,1,0,0,0),
+(@CGUID+2636,32820,0,1,1,0,0,2314.93,288.278,37.311,2.876,600,20,0,2,0,1,0,0,0),
+(@CGUID+2637,32820,0,1,1,0,0,2316.19,1537.13,34.128,4.887,600,20,0,2,0,1,0,0,0),
+(@CGUID+2638,32820,0,1,1,0,0,2316.75,1549.7,33.736,3.995,600,20,0,2,0,1,0,0,0),
+(@CGUID+2639,32820,0,1,1,0,0,2317.02,1314.35,32.847,4.488,600,20,0,2,0,1,0,0,0),
+(@CGUID+2640,32820,0,1,1,0,0,2317.38,-194,36.857,5.514,600,20,0,2,0,1,0,0,0),
+(@CGUID+2641,32820,0,1,1,0,0,2317.61,563.985,26.07,3.317,600,20,0,2,0,1,0,0,0),
+(@CGUID+2642,32820,0,1,1,0,0,2318.22,-176,32.414,0.941,600,20,0,2,0,1,0,0,0),
+(@CGUID+2643,32820,0,1,1,0,0,2319.53,1098.57,37.407,1.036,600,20,0,2,0,1,0,0,0),
+(@CGUID+2644,32820,0,1,1,0,0,2320.4,-255,47.498,3.949,600,20,0,2,0,1,0,0,0),
+(@CGUID+2645,32820,0,1,1,0,0,2320.82,653.608,31.56,5.556,600,20,0,2,0,1,0,0,0),
+(@CGUID+2646,32820,0,1,1,0,0,2322.08,-378,71.204,2.335,600,20,0,2,0,1,0,0,0),
+(@CGUID+2647,32820,0,1,1,0,0,2322.2,332.751,36.502,4.385,600,20,0,2,0,1,0,0,0),
+(@CGUID+2648,32820,0,1,1,0,0,2323.16,1482.42,33.574,1.884,600,20,0,2,0,1,0,0,0),
+(@CGUID+2649,32820,0,1,1,0,0,2323.53,1004.91,51.782,2.099,600,20,0,2,0,1,0,0,0),
+(@CGUID+2650,32820,0,1,1,0,0,2324.44,622.718,33.868,3.246,600,20,0,2,0,1,0,0,0),
+(@CGUID+2651,32820,0,1,1,0,0,2325.31,-667,69.304,0.387,600,20,0,2,0,1,0,0,0),
+(@CGUID+2652,32820,0,1,1,0,0,2327.63,114.74,36.88,3.775,600,20,0,2,0,1,0,0,0),
+(@CGUID+2653,32820,0,1,1,0,0,2327.67,-206,38.609,6.026,600,20,0,2,0,1,0,0,0),
+(@CGUID+2654,32820,0,1,1,0,0,2327.82,693.471,39.356,1.926,600,20,0,2,0,1,0,0,0),
+(@CGUID+2655,32820,0,1,1,0,0,2328.58,774.542,33.337,5.827,600,20,0,2,0,1,0,0,0),
+(@CGUID+2656,32820,0,1,1,0,0,2330.09,243.529,28.61,5.202,600,20,0,2,0,1,0,0,0),
+(@CGUID+2657,32820,0,1,1,0,0,2331.17,1391.91,33.333,3.749,600,20,0,2,0,1,0,0,0),
+(@CGUID+2658,32820,0,1,1,0,0,2331.26,1693.33,46.975,2.969,600,20,0,2,0,1,0,0,0),
+(@CGUID+2659,32820,0,1,1,0,0,2332.93,933.291,61.245,0.091,600,20,0,2,0,1,0,0,0),
+(@CGUID+2660,32820,0,1,1,0,0,2334.68,115.599,36.568,5.198,600,20,0,2,0,1,0,0,0),
+(@CGUID+2661,32820,0,1,1,0,0,2340.05,1015.01,51.349,1.017,600,20,0,2,0,1,0,0,0),
+(@CGUID+2662,32820,0,1,1,0,0,2340.52,763.396,34.971,4.497,600,20,0,2,0,1,0,0,0),
+(@CGUID+2663,32820,0,1,1,0,0,2340.65,732.441,36.408,2.016,600,20,0,2,0,1,0,0,0),
+(@CGUID+2664,32820,0,1,1,0,0,2341.36,178.039,38.336,6.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+2665,32820,0,1,1,0,0,2341.99,-226,41.779,3.074,600,20,0,2,0,1,0,0,0),
+(@CGUID+2666,32820,0,1,1,0,0,2342.92,1314.31,34.119,3.194,600,20,0,2,0,1,0,0,0),
+(@CGUID+2667,32820,0,1,1,0,0,2343.9,595.659,34.857,0.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+2668,32820,0,1,1,0,0,2344.03,265.531,34.206,0.211,600,20,0,2,0,1,0,0,0),
+(@CGUID+2669,32820,0,1,1,0,0,2344.56,894.859,57.8,5.072,600,20,0,2,0,1,0,0,0),
+(@CGUID+2670,32820,0,1,1,0,0,2345.99,1129.3,41.876,1.589,600,20,0,2,0,1,0,0,0),
+(@CGUID+2671,32820,0,1,1,0,0,2346.36,50.501,27.321,5.781,600,20,0,2,0,1,0,0,0),
+(@CGUID+2672,32820,0,1,1,0,0,2348.1,1384.92,33.528,0.728,600,20,0,2,0,1,0,0,0),
+(@CGUID+2673,32820,0,1,1,0,0,2348.53,176.39,37.435,2.873,600,20,0,2,0,1,0,0,0),
+(@CGUID+2674,32820,0,1,1,0,0,2348.58,492.862,33.358,4.879,600,20,0,2,0,1,0,0,0),
+(@CGUID+2675,32820,0,1,1,0,0,2349.34,-910,71.468,1.993,600,20,0,2,0,1,0,0,0),
+(@CGUID+2676,32820,0,1,1,0,0,2349.95,1291.15,33.534,1.661,600,20,0,2,0,1,0,0,0),
+(@CGUID+2677,32820,0,1,1,0,0,2350.06,679.128,35.492,2.183,600,20,0,2,0,1,0,0,0),
+(@CGUID+2678,32820,0,1,1,0,0,2350.12,609.547,35.335,1.012,600,20,0,2,0,1,0,0,0),
+(@CGUID+2679,32820,0,1,1,0,0,2350.54,1469.74,33.332,3.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+2680,32820,0,1,1,0,0,2350.96,-256,42.913,5.774,600,20,0,2,0,1,0,0,0),
+(@CGUID+2681,32820,0,1,1,0,0,2351.02,-1050,83.63,5.796,600,20,0,2,0,1,0,0,0),
+(@CGUID+2682,32820,0,1,1,0,0,2351.05,649.239,33.729,5.742,600,20,0,2,0,1,0,0,0),
+(@CGUID+2683,32820,0,1,1,0,0,2351.5,81.281,28.505,1.363,600,20,0,2,0,1,0,0,0),
+(@CGUID+2684,32820,0,1,1,0,0,2352.98,-160,28.558,2.635,600,20,0,2,0,1,0,0,0),
+(@CGUID+2685,32820,0,1,1,0,0,2354.14,1367.2,33.332,5.345,600,20,0,2,0,1,0,0,0),
+(@CGUID+2686,32820,0,1,1,0,0,2354.38,329.058,37.779,4.064,600,20,0,2,0,1,0,0,0),
+(@CGUID+2687,32820,0,1,1,0,0,2354.99,866.681,54.057,1.686,600,20,0,2,0,1,0,0,0),
+(@CGUID+2688,32820,0,1,1,0,0,2355.48,251.407,28.57,4.943,600,20,0,2,0,1,0,0,0),
+(@CGUID+2689,32820,0,1,1,0,0,2356.2,1173.56,37.18,0.307,600,20,0,2,0,1,0,0,0),
+(@CGUID+2690,32820,0,1,1,0,0,2356.43,672.208,34.242,0.826,600,20,0,2,0,1,0,0,0),
+(@CGUID+2691,32820,0,1,1,0,0,2356.71,1288.87,32.962,5.288,600,20,0,2,0,1,0,0,0),
+(@CGUID+2692,32820,0,1,1,0,0,2360.86,877.532,57.312,6.185,600,20,0,2,0,1,0,0,0),
+(@CGUID+2693,32820,0,1,1,0,0,2361.41,425.175,33.552,1.843,600,20,0,2,0,1,0,0,0),
+(@CGUID+2694,32820,0,1,1,0,0,2361.42,1313.94,33.537,6.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2695,32820,0,1,1,0,0,2363.14,1650.9,33.881,0.542,600,20,0,2,0,1,0,0,0),
+(@CGUID+2696,32820,0,1,1,0,0,2363.58,1215.44,34.043,1.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+2697,32820,0,1,1,0,0,2364.95,294.312,34.916,0.113,600,20,0,2,0,1,0,0,0),
+(@CGUID+2698,32820,0,1,1,0,0,2365.96,-581,75.685,0.85,600,20,0,2,0,1,0,0,0),
+(@CGUID+2699,32820,0,1,1,0,0,2370.9,-442,76.593,6.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+2700,32820,0,1,1,0,0,2371.08,204.149,35.612,1.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+2701,32820,0,1,1,0,0,2372.24,-834,71.854,5.471,600,20,0,2,0,1,0,0,0),
+(@CGUID+2702,32820,0,1,1,0,0,2372.64,334.076,38.745,0.673,600,20,1,2,0,1,0,0,0),
+(@CGUID+2703,32820,0,1,1,0,0,2373.57,1543.44,34.328,0.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+2704,32820,0,1,1,0,0,2374.06,1284.32,31.413,4.418,600,20,0,2,0,1,0,0,0),
+(@CGUID+2705,32820,0,1,1,0,0,2374.97,580.367,33.505,4.767,600,20,0,2,0,1,0,0,0),
+(@CGUID+2706,32820,0,1,1,0,0,2375.43,1098.79,43.639,5.316,600,20,0,2,0,1,0,0,0),
+(@CGUID+2707,32820,0,1,1,0,0,2376.34,1493.49,34.884,5.341,600,20,0,2,0,1,0,0,0),
+(@CGUID+2708,32820,0,1,1,0,0,2377,1017.97,54.718,3.905,600,20,0,2,0,1,0,0,0),
+(@CGUID+2709,32820,0,1,1,0,0,2377.16,111.89,27.662,4.962,600,20,0,2,0,1,0,0,0),
+(@CGUID+2710,32820,0,1,1,0,0,2377.67,-594,72.983,1.424,600,20,0,2,0,1,0,0,0),
+(@CGUID+2711,32820,0,1,1,0,0,2377.8,747.063,34.106,4.872,600,20,0,2,0,1,0,0,0),
+(@CGUID+2712,32820,0,1,1,0,0,2377.98,137.006,31.717,3.492,600,20,0,2,0,1,0,0,0),
+(@CGUID+2713,32820,0,1,1,0,0,2378.88,-572,74.79,2.643,600,20,0,2,0,1,0,0,0),
+(@CGUID+2714,32820,0,1,1,0,0,2379.37,1877.52,0.848,4.616,600,20,0,2,0,1,0,0,0),
+(@CGUID+2715,32820,0,1,1,0,0,2379.44,1017.43,55.545,0.852,600,20,0,2,0,1,0,0,0),
+(@CGUID+2716,32820,0,1,1,0,0,2382.23,636.662,30.31,0.463,600,20,0,2,0,1,0,0,0),
+(@CGUID+2717,32820,0,1,1,0,0,2382.42,-935,67.969,2.253,600,20,0,2,0,1,0,0,0),
+(@CGUID+2718,32820,0,1,1,0,0,2383.29,1106.76,46.027,6.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2719,32820,0,1,1,0,0,2384.88,1051.42,56.973,4.909,600,20,0,2,0,1,0,0,0),
+(@CGUID+2720,32820,0,1,1,0,0,2386.36,-1050,85.605,3.171,600,20,0,2,0,1,0,0,0),
+(@CGUID+2721,32820,0,1,1,0,0,2387.03,204.682,35.487,5.981,600,20,0,2,0,1,0,0,0),
+(@CGUID+2722,32820,0,1,1,0,0,2387.31,-627,70.923,4.593,600,20,0,2,0,1,0,0,0),
+(@CGUID+2723,32820,0,1,1,0,0,2387.66,-447,74.785,4.973,600,20,0,2,0,1,0,0,0),
+(@CGUID+2724,32820,0,1,1,0,0,2388.53,-448,75.259,3.57,600,20,0,2,0,1,0,0,0),
+(@CGUID+2725,32820,0,1,1,0,0,2388.84,-373,68.993,3.957,600,20,0,2,0,1,0,0,0),
+(@CGUID+2726,32820,0,1,1,0,0,2389.22,-932,68.069,1.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+2727,32820,0,1,1,0,0,2389.34,1440.19,34.403,2.12,600,20,0,2,0,1,0,0,0),
+(@CGUID+2728,32820,0,1,1,0,0,2390.27,336.502,40.016,2.271,600,20,0,2,0,1,0,0,0),
+(@CGUID+2729,32820,0,1,1,0,0,2394.46,-291,55.946,0.978,600,20,0,2,0,1,0,0,0),
+(@CGUID+2730,32820,0,1,1,0,0,2395.9,-592,71.83,0.24,600,20,0,2,0,1,0,0,0),
+(@CGUID+2731,32820,0,1,1,0,0,2396.11,1262.56,36.633,5.658,600,20,0,2,0,1,0,0,0),
+(@CGUID+2732,32820,0,1,1,0,0,2396.53,870.308,64.018,0.119,600,20,0,2,0,1,0,0,0),
+(@CGUID+2733,32820,0,1,1,0,0,2398.11,1026.08,61.023,3.502,600,20,0,2,0,1,0,0,0),
+(@CGUID+2734,32820,0,1,1,0,0,2398.29,1596.08,33.56,4.911,600,20,0,2,0,1,0,0,0),
+(@CGUID+2735,32820,0,1,1,0,0,2401.57,1406.94,32.985,2.087,600,20,0,2,0,1,0,0,0),
+(@CGUID+2736,32820,0,1,1,0,0,2402.73,1124.35,50.437,3.04,600,20,0,2,0,1,0,0,0),
+(@CGUID+2737,32820,0,1,1,0,0,2403.28,227.164,34.464,1.926,600,20,0,2,0,1,0,0,0),
+(@CGUID+2738,32820,0,1,1,0,0,2403.65,1105.96,52.947,6.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+2739,32820,0,1,1,0,0,2403.79,675.319,34.263,2.516,600,20,0,2,0,1,0,0,0),
+(@CGUID+2740,32820,0,1,1,0,0,2405.23,1285.12,31.2,4.19,600,20,0,2,0,1,0,0,0),
+(@CGUID+2741,32820,0,1,1,0,0,2405.36,-734,73.272,2.557,600,20,0,2,0,1,0,0,0),
+(@CGUID+2742,32820,0,1,1,0,0,2406.45,-1035,85.414,0.457,600,20,0,2,0,1,0,0,0),
+(@CGUID+2743,32820,0,1,1,0,0,2406.7,795.103,41.574,4.812,600,20,0,2,0,1,0,0,0),
+(@CGUID+2744,32820,0,1,1,0,0,2408.2,687.692,33.231,2.845,600,20,0,2,0,1,0,0,0),
+(@CGUID+2745,32820,0,1,1,0,0,2409.2,1381.42,36.009,6.158,600,20,0,2,0,1,0,0,0),
+(@CGUID+2746,32820,0,1,1,0,0,2409.28,1889.54,11.37,5.307,600,20,0,2,0,1,0,0,0),
+(@CGUID+2747,32820,0,1,1,0,0,2410.23,-241,45.519,1.328,600,20,0,2,0,1,0,0,0),
+(@CGUID+2748,32820,0,1,1,0,0,2410.56,1583.85,32.966,3.664,600,20,0,2,0,1,0,0,0),
+(@CGUID+2749,32820,0,1,1,0,0,2410.67,612.571,30.944,3.927,600,20,0,2,0,1,0,0,0),
+(@CGUID+2750,32820,0,1,1,0,0,2411.49,653.125,31.986,2.168,600,20,0,2,0,1,0,0,0),
+(@CGUID+2751,32820,0,1,1,0,0,2411.89,1399.55,33.384,0.56,600,20,0,2,0,1,0,0,0),
+(@CGUID+2752,32820,0,1,1,0,0,2412.98,745.356,41.134,0.099,600,20,0,2,0,1,0,0,0),
+(@CGUID+2753,32820,0,1,1,0,0,2413.26,-277,59.124,5.309,600,20,0,2,0,1,0,0,0),
+(@CGUID+2754,32820,0,1,1,0,0,2413.61,1520.4,34.687,2.74,600,20,0,2,0,1,0,0,0),
+(@CGUID+2755,32820,0,1,1,0,0,2414.1,1303.18,30.4,1.796,600,20,0,2,0,1,0,0,0),
+(@CGUID+2756,32820,0,1,1,0,0,2416.16,1335.9,33.074,3.269,600,20,0,2,0,1,0,0,0),
+(@CGUID+2757,32820,0,1,1,0,0,2416.42,195.813,31.897,4.942,600,20,0,2,0,1,0,0,0),
+(@CGUID+2758,32820,0,1,1,0,0,2417.2,-275,59.469,2.832,600,20,0,2,0,1,0,0,0),
+(@CGUID+2759,32820,0,1,1,0,0,2417.36,1214.98,43.743,3.638,600,20,0,2,0,1,0,0,0),
+(@CGUID+2760,32820,0,1,1,0,0,2417.91,-742,70.812,0.802,600,20,0,2,0,1,0,0,0),
+(@CGUID+2761,32820,0,1,1,0,0,2418,-479,74.076,4.456,600,20,0,2,0,1,0,0,0),
+(@CGUID+2762,32820,0,1,1,0,0,2419.78,1567.44,32.97,3.735,600,20,0,2,0,1,0,0,0),
+(@CGUID+2763,32820,0,1,1,0,0,2421.85,190.064,32.594,3.308,600,20,0,2,0,1,0,0,0),
+(@CGUID+2764,32820,0,1,1,0,0,2422.22,297.866,35.91,3.53,600,20,0,2,0,1,0,0,0),
+(@CGUID+2765,32820,0,1,1,0,0,2424.05,148.275,31.336,2.675,600,20,0,2,0,1,0,0,0),
+(@CGUID+2766,32820,0,1,1,0,0,2425.21,-651,72.322,4.155,600,20,0,2,0,1,0,0,0),
+(@CGUID+2767,32820,0,1,1,0,0,2425.83,218.091,36.324,2.626,600,20,0,2,0,1,0,0,0),
+(@CGUID+2768,32820,0,1,1,0,0,2429.17,1531.98,35.504,2.935,600,20,0,2,0,1,0,0,0),
+(@CGUID+2769,32820,0,1,1,0,0,2429.26,889.561,72.831,4.188,600,20,0,2,0,1,0,0,0),
+(@CGUID+2770,32820,0,1,1,0,0,2432.26,738.563,40.884,5.255,600,20,0,2,0,1,0,0,0),
+(@CGUID+2771,32820,0,1,1,0,0,2432.8,772.851,43.749,0.52,600,20,0,2,0,1,0,0,0),
+(@CGUID+2772,32820,0,1,1,0,0,2433.11,978.304,68.19,1.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+2773,32820,0,1,1,0,0,2434.17,608.949,31.609,3.929,600,20,0,2,0,1,0,0,0),
+(@CGUID+2774,32820,0,1,1,0,0,2434.33,-404,68.323,1.155,600,20,0,2,0,1,0,0,0),
+(@CGUID+2775,32820,0,1,1,0,0,2435.63,1777.61,29.416,4.681,600,20,0,2,0,1,0,0,0),
+(@CGUID+2776,32820,0,1,1,0,0,2436.55,-192,33.496,0.211,600,20,0,2,0,1,0,0,0),
+(@CGUID+2777,32820,0,1,1,0,0,2438.41,1599.72,50.777,5.947,600,20,0,2,0,1,0,0,0),
+(@CGUID+2778,32820,0,1,1,0,0,2438.83,875.833,74.285,3.298,600,20,0,2,0,1,0,0,0),
+(@CGUID+2779,32820,0,1,1,0,0,2439.32,-400,68.798,2.566,600,20,0,2,0,1,0,0,0),
+(@CGUID+2780,32820,0,1,1,0,0,2439.4,-684,72.739,3.02,600,20,0,2,0,1,0,0,0),
+(@CGUID+2781,32820,0,1,1,0,0,2440.72,486.974,44.588,4.485,600,20,0,2,0,1,0,0,0),
+(@CGUID+2782,32820,0,1,1,0,0,2441.02,1589.64,72.156,4.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2783,32820,0,1,1,0,0,2441.18,360.312,32.705,5.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+2784,32820,0,1,1,0,0,2441.91,763.84,46.683,5.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+2785,32820,0,1,1,0,0,2441.93,1472.27,32.176,4.253,600,20,0,2,0,1,0,0,0),
+(@CGUID+2786,32820,0,1,1,0,0,2442.47,1333.02,27.135,2.692,600,20,0,2,0,1,0,0,0),
+(@CGUID+2787,32820,0,1,1,0,0,2442.5,226.8,41.196,0.172,600,20,0,2,0,1,0,0,0),
+(@CGUID+2788,32820,0,1,1,0,0,2442.64,-543,71.297,3.584,600,20,0,2,0,1,0,0,0),
+(@CGUID+2789,32820,0,1,1,0,0,2442.75,-656,71.741,2.654,600,20,0,2,0,1,0,0,0),
+(@CGUID+2790,32820,0,1,1,0,0,2442.84,-611,70.441,3.285,600,20,0,2,0,1,0,0,0),
+(@CGUID+2791,32820,0,1,1,0,0,2444.13,1599.84,66.573,3.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+2792,32820,0,1,1,0,0,2447.07,797.919,48.376,5.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+2793,32820,0,1,1,0,0,2447.11,1584.32,44.952,1.498,600,20,0,2,0,1,0,0,0),
+(@CGUID+2794,32820,0,1,1,0,0,2447.51,-326,68.49,0.001,600,20,0,2,0,1,0,0,0),
+(@CGUID+2795,32820,0,1,1,0,0,2448.66,473.064,44.351,4.494,600,20,0,2,0,1,0,0,0),
+(@CGUID+2796,32820,0,1,1,0,0,2448.74,438.474,37.248,0.923,600,20,0,2,0,1,0,0,0),
+(@CGUID+2797,32820,0,1,1,0,0,2448.81,-473,76.137,4.731,600,20,0,2,0,1,0,0,0),
+(@CGUID+2798,32820,0,1,1,0,0,2449.55,1586.94,61.069,1.798,600,20,0,2,0,1,0,0,0),
+(@CGUID+2799,32820,0,1,1,0,0,2450.12,468.537,43.871,2.586,600,20,0,2,0,1,0,0,0),
+(@CGUID+2800,32820,0,1,1,0,0,2450.14,1596.42,37.069,3.452,600,20,0,2,0,1,0,0,0),
+(@CGUID+2801,32820,0,1,1,0,0,2451.87,939.724,75.693,4.989,600,20,0,2,0,1,0,0,0),
+(@CGUID+2802,32820,0,1,1,0,0,2452.02,400.364,35.155,1.552,600,20,0,2,0,1,0,0,0),
+(@CGUID+2803,32820,0,1,1,0,0,2453.19,1600.67,72.156,0.612,600,20,0,2,0,1,0,0,0),
+(@CGUID+2804,32820,0,1,1,0,0,2453.67,1085.37,61.041,0.916,600,20,0,2,0,1,0,0,0),
+(@CGUID+2805,32820,0,1,1,0,0,2456.21,1600.09,56.384,3.744,600,20,0,2,0,1,0,0,0),
+(@CGUID+2806,32820,0,1,1,0,0,2457.74,-961,73.592,4.799,600,20,0,2,0,1,0,0,0),
+(@CGUID+2807,32820,0,1,1,0,0,2460.72,-843,59.263,3.194,600,20,0,2,0,1,0,0,0),
+(@CGUID+2808,32820,0,1,1,0,0,2460.77,1715.16,24.784,0.707,600,20,0,2,0,1,0,0,0),
+(@CGUID+2809,32820,0,1,1,0,0,2461.74,1389.54,24.402,5.66,600,20,0,2,0,1,0,0,0),
+(@CGUID+2810,32820,0,1,1,0,0,2463.91,-832,61.865,2.465,600,20,0,2,0,1,0,0,0),
+(@CGUID+2811,32820,0,1,1,0,0,2464.89,240.908,44.565,2.955,600,20,0,2,0,1,0,0,0),
+(@CGUID+2812,32820,0,1,1,0,0,2468.9,-534,73.361,0.95,600,20,0,2,0,1,0,0,0),
+(@CGUID+2813,32820,0,1,1,0,0,2468.97,694.866,45.229,1.525,600,20,0,2,0,1,0,0,0),
+(@CGUID+2814,32820,0,1,1,0,0,2469.59,678.841,41.703,4.656,600,20,0,2,0,1,0,0,0),
+(@CGUID+2815,32820,0,1,1,0,0,2469.93,-414,76.909,4.781,600,20,0,2,0,1,0,0,0),
+(@CGUID+2816,32820,0,1,1,0,0,2470.08,-764,66.258,5.086,600,20,0,2,0,1,0,0,0),
+(@CGUID+2817,32820,0,1,1,0,0,2470.76,1133.18,62.891,4.785,600,20,0,2,0,1,0,0,0),
+(@CGUID+2818,32820,0,1,1,0,0,2472.49,-660,71.856,2.738,600,20,0,2,0,1,0,0,0),
+(@CGUID+2819,32820,0,1,1,0,0,2474.11,136.395,30.48,2.844,600,20,0,2,0,1,0,0,0),
+(@CGUID+2820,32820,0,1,1,0,0,2474.74,17.994,24.719,3.621,600,20,0,2,0,1,0,0,0),
+(@CGUID+2821,32820,0,1,1,0,0,2478.08,670.223,43.878,4.858,600,20,0,2,0,1,0,0,0),
+(@CGUID+2822,32820,0,1,1,0,0,2478.1,988.421,70.941,2.216,600,20,0,2,0,1,0,0,0),
+(@CGUID+2823,32820,0,1,1,0,0,2478.76,-586,72.697,3.975,600,20,0,2,0,1,0,0,0),
+(@CGUID+2824,32820,0,1,1,0,0,2481.06,-279,49.659,2.055,600,20,0,2,0,1,0,0,0),
+(@CGUID+2825,32820,0,1,1,0,0,2481.38,1649.24,15.072,3.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+2826,32820,0,1,1,0,0,2481.47,-221,31.593,2.759,600,20,0,2,0,1,0,0,0),
+(@CGUID+2827,32820,0,1,1,0,0,2481.59,1653.69,14.068,3.26,600,20,0,2,0,1,0,0,0),
+(@CGUID+2828,32820,0,1,1,0,0,2482.21,1328.45,25.967,3.804,600,20,0,2,0,1,0,0,0),
+(@CGUID+2829,32820,0,1,1,0,0,2483.31,1008,71.644,3.179,600,20,0,2,0,1,0,0,0),
+(@CGUID+2830,32820,0,1,1,0,0,2483.98,-342,73.162,0.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+2831,32820,0,1,1,0,0,2484.06,27.081,25.565,1.039,600,20,0,2,0,1,0,0,0),
+(@CGUID+2832,32820,0,1,1,0,0,2485.9,150.755,29.072,2.887,600,20,0,2,0,1,0,0,0),
+(@CGUID+2833,32820,0,1,1,0,0,2487.11,1442.07,8.595,4.038,600,20,0,2,0,1,0,0,0),
+(@CGUID+2834,32820,0,1,1,0,0,2487.39,1243.5,46.953,2.747,600,20,0,2,0,1,0,0,0),
+(@CGUID+2835,32820,0,1,1,0,0,2487.97,1419.32,7.593,4.576,600,20,0,2,0,1,0,0,0),
+(@CGUID+2836,32820,0,1,1,0,0,2490.63,1072.42,73.45,3.498,600,20,0,2,0,1,0,0,0),
+(@CGUID+2837,32820,0,1,1,0,0,2492.37,127.447,29.059,3.712,600,20,0,2,0,1,0,0,0),
+(@CGUID+2838,32820,0,1,1,0,0,2492.59,1112.71,69.615,3.005,600,20,0,2,0,1,0,0,0),
+(@CGUID+2839,32820,0,1,1,0,0,2492.84,646.658,32.245,2.232,600,20,0,2,0,1,0,0,0),
+(@CGUID+2840,32820,0,1,1,0,0,2493.48,785.188,120.149,1.976,600,20,0,2,0,1,0,0,0),
+(@CGUID+2841,32820,0,1,1,0,0,2493.81,1394.65,6.509,2.05,600,20,0,2,0,1,0,0,0),
+(@CGUID+2842,32820,0,1,1,0,0,2494.57,1673.4,10.128,2.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+2843,32820,0,1,1,0,0,2494.93,1669.37,8.719,5.881,600,20,0,2,0,1,0,0,0),
+(@CGUID+2844,32820,0,1,1,0,0,2497.9,364.587,35.105,0.979,600,20,0,2,0,1,0,0,0),
+(@CGUID+2845,32820,0,1,1,0,0,2499.18,348.946,34.077,1.87,600,20,0,2,0,1,0,0,0),
+(@CGUID+2846,32820,0,1,1,0,0,2500.01,1137.44,67.536,3.6,600,20,0,2,0,1,0,0,0),
+(@CGUID+2847,32820,0,1,1,0,0,2503.03,868.549,85.899,1.18,600,20,0,2,0,1,0,0,0),
+(@CGUID+2848,32820,0,1,1,0,0,2503.29,978.85,80.657,4.556,600,20,0,2,0,1,0,0,0),
+(@CGUID+2849,32820,0,1,1,0,0,2505.76,458.109,36.993,0.063,600,20,0,2,0,1,0,0,0),
+(@CGUID+2850,32820,0,1,1,0,0,2507.29,388.541,34.313,3.383,600,20,0,2,0,1,0,0,0),
+(@CGUID+2851,32820,0,1,1,0,0,2511.19,-536,87.971,0.224,600,20,0,2,0,1,0,0,0),
+(@CGUID+2852,32820,0,1,1,0,0,2512.91,-37,26.205,1.418,600,20,0,2,0,1,0,0,0),
+(@CGUID+2853,32820,0,1,1,0,0,2513.44,289.726,44.531,0.773,600,20,0,2,0,1,0,0,0),
+(@CGUID+2854,32820,0,1,1,0,0,2513.47,243.981,48.784,2.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+2855,32820,0,1,1,0,0,2514.11,-675,71.4,0.648,600,20,0,2,0,1,0,0,0),
+(@CGUID+2856,32820,0,1,1,0,0,2514.84,1344.22,21.131,3.802,600,20,0,2,0,1,0,0,0),
+(@CGUID+2857,32820,0,1,1,0,0,2517.36,789.009,110.905,4.528,600,20,0,2,0,1,0,0,0),
+(@CGUID+2858,32820,0,1,1,0,0,2517.52,226.214,44.075,5.972,600,20,0,2,0,1,0,0,0),
+(@CGUID+2859,32820,0,1,1,0,0,2518.14,-245,34.107,2.611,600,20,0,2,0,1,0,0,0),
+(@CGUID+2860,32820,0,1,1,0,0,2518.76,1609.94,-3,4.409,600,20,0,2,0,1,0,0,0),
+(@CGUID+2861,32820,0,1,1,0,0,2520.1,1497.1,0.191,1.595,600,20,0,2,0,1,0,0,0),
+(@CGUID+2862,32820,0,1,1,0,0,2521.87,-850,58.087,5.361,600,20,0,2,0,1,0,0,0),
+(@CGUID+2863,32820,0,1,1,0,0,2523.5,945.028,90.841,3.182,600,20,0,2,0,1,0,0,0),
+(@CGUID+2864,32820,0,1,1,0,0,2523.72,1421.92,1.661,2.047,600,20,0,2,0,1,0,0,0),
+(@CGUID+2865,32820,0,1,1,0,0,2523.8,1047.83,81.655,3.009,600,20,0,2,0,1,0,0,0),
+(@CGUID+2866,32820,0,1,1,0,0,2524.32,1174.54,69.023,6.092,600,20,0,2,0,1,0,0,0),
+(@CGUID+2867,32820,0,1,1,0,0,2524.39,1290.53,40.599,2.301,600,20,0,2,0,1,0,0,0),
+(@CGUID+2868,32820,0,1,1,0,0,2524.56,385.299,34.712,3.378,600,20,0,2,0,1,0,0,0),
+(@CGUID+2869,32820,0,1,1,0,0,2528.36,-905,57.091,1.203,600,20,0,2,0,1,0,0,0),
+(@CGUID+2870,32820,0,1,1,0,0,2528.93,293.153,42.922,3.196,600,20,0,2,0,1,0,0,0),
+(@CGUID+2871,32820,0,1,1,0,0,2531.76,-899,56.364,1.546,600,20,0,2,0,1,0,0,0),
+(@CGUID+2872,32820,0,1,1,0,0,2532.49,-892,55.919,4.546,600,20,0,2,0,1,0,0,0),
+(@CGUID+2873,32820,0,1,1,0,0,2532.96,-726,62.975,6.229,600,20,0,2,0,1,0,0,0),
+(@CGUID+2874,32820,0,1,1,0,0,2533.1,1390.19,4.32,4.062,600,20,0,2,0,1,0,0,0),
+(@CGUID+2875,32820,0,1,1,0,0,2533.89,543.76,15.734,0.35,600,20,0,2,0,1,0,0,0),
+(@CGUID+2876,32820,0,1,1,0,0,2533.9,956.824,92.354,2.725,600,20,0,2,0,1,0,0,0),
+(@CGUID+2877,32820,0,1,1,0,0,2536.84,1284.58,44.213,4.287,600,20,0,2,0,1,0,0,0),
+(@CGUID+2878,32820,0,1,1,0,0,2536.85,-61,29.111,5.919,600,20,0,2,0,1,0,0,0),
+(@CGUID+2879,32820,0,1,1,0,0,2536.85,769.594,110.986,5.986,600,20,0,2,0,1,0,0,0),
+(@CGUID+2880,32820,0,1,1,0,0,2538.43,279.164,47.359,4.017,600,20,0,2,0,1,0,0,0),
+(@CGUID+2881,32820,0,1,1,0,0,2538.94,547.931,15.817,3.534,600,20,0,2,0,1,0,0,0),
+(@CGUID+2882,32820,0,1,1,0,0,-9327.6,178.975,61.6973,4.10484,600,20,0,2,0,1,0,0,0),
+(@CGUID+2883,32820,0,1,1,0,0,2540.4,-1041,98.397,4.767,600,20,0,2,0,1,0,0,0),
+(@CGUID+2884,32820,0,1,1,0,0,2541.16,763.772,110.81,0.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+2885,32820,0,1,1,0,0,2543.3,979.199,89.469,3.708,600,20,0,2,0,1,0,0,0),
+(@CGUID+2886,32820,0,1,1,0,0,2543.48,-22,28.248,5.313,600,20,0,2,0,1,0,0,0),
+(@CGUID+2887,32820,0,1,1,0,0,2544.24,173.075,35.024,5.433,600,20,0,2,0,1,0,0,0),
+(@CGUID+2888,32820,0,1,1,0,0,2544.83,1050.89,85.722,0.247,600,20,0,2,0,1,0,0,0),
+(@CGUID+2889,32820,0,1,1,0,0,2545.18,1462.11,-5,0.007,600,20,0,2,0,1,0,0,0),
+(@CGUID+2890,32820,0,1,1,0,0,2545.58,293.867,42.537,1.439,600,20,0,2,0,1,0,0,0),
+(@CGUID+2891,32820,0,1,1,0,0,2545.93,1166.3,73.116,2.195,600,20,0,2,0,1,0,0,0),
+(@CGUID+2892,32820,0,1,1,0,0,2546.21,947.298,93.246,4.243,600,20,0,2,0,1,0,0,0),
+(@CGUID+2893,32820,0,1,1,0,0,2547.36,-626,81.138,3.999,600,20,0,2,0,1,0,0,0),
+(@CGUID+2894,32820,0,1,1,0,0,2547.51,-269,46.196,4.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+2895,32820,0,1,1,0,0,2548.62,-899,56.71,2.666,600,20,0,2,0,1,0,0,0),
+(@CGUID+2896,32820,0,1,1,0,0,2549,-104,24.141,3.394,600,20,0,2,0,1,0,0,0),
+(@CGUID+2897,32820,0,1,1,0,0,2549.66,816.335,109.295,5.37,600,20,0,2,0,1,0,0,0),
+(@CGUID+2898,32820,0,1,1,0,0,2549.94,404.449,31.932,3.233,600,20,0,2,0,1,0,0,0),
+(@CGUID+2899,32820,0,1,1,0,0,2550.7,386.404,33.878,6.21,600,20,0,2,0,1,0,0,0),
+(@CGUID+2900,32820,0,1,1,0,0,2551.59,878.635,91.77,5.735,600,20,0,2,0,1,0,0,0),
+(@CGUID+2901,32820,0,1,1,0,0,2552.27,1122.7,82.146,1.677,600,20,0,2,0,1,0,0,0),
+(@CGUID+2902,32820,0,1,1,0,0,2552.46,-275,48.48,0.503,600,20,0,2,0,1,0,0,0),
+(@CGUID+2903,32820,0,1,1,0,0,2552.9,121.243,29.951,5.989,600,20,0,2,0,1,0,0,0),
+(@CGUID+2904,32820,0,1,1,0,0,2552.97,236.42,47.253,4.223,600,20,0,2,0,1,0,0,0),
+(@CGUID+2905,32820,0,1,1,0,0,2556.54,1066.15,85.343,3.776,600,20,0,2,0,1,0,0,0),
+(@CGUID+2906,32820,0,1,1,0,0,2557.17,-892,56.093,3.269,600,20,0,2,0,1,0,0,0),
+(@CGUID+2907,32820,0,1,1,0,0,2557.55,-690,67.732,3.509,600,20,0,2,0,1,0,0,0),
+(@CGUID+2908,32820,0,1,1,0,0,2558.34,188.341,35.937,4.756,600,20,0,2,0,1,0,0,0),
+(@CGUID+2909,32820,0,1,1,0,0,2558.63,919.597,95.841,5.446,600,20,0,2,0,1,0,0,0),
+(@CGUID+2910,32820,0,1,1,0,0,2558.88,1393.52,3.939,3.53,600,20,0,2,0,1,0,0,0),
+(@CGUID+2911,32820,0,1,1,0,0,2559.27,1388.1,4.529,3.079,600,20,0,2,0,1,0,0,0),
+(@CGUID+2912,32820,0,1,1,0,0,2560.17,165.253,32.245,6.157,600,20,0,2,0,1,0,0,0),
+(@CGUID+2913,32820,0,1,1,0,0,2561.77,391.63,32.895,2.354,600,20,0,2,0,1,0,0,0),
+(@CGUID+2914,32820,0,1,1,0,0,2562.53,414.495,28.078,4.206,600,20,0,2,0,1,0,0,0),
+(@CGUID+2915,32820,0,1,1,0,0,2563.32,-13,27.873,5.002,600,20,0,2,0,1,0,0,0),
+(@CGUID+2916,32820,0,1,1,0,0,2563.46,807.718,108.717,0.277,600,20,0,2,0,1,0,0,0),
+(@CGUID+2917,32820,0,1,1,0,0,2563.7,1204.8,67.354,3.764,600,20,0,2,0,1,0,0,0),
+(@CGUID+2918,32820,0,1,1,0,0,2564.08,1108.73,85.43,5.738,600,20,0,2,0,1,0,0,0),
+(@CGUID+2919,32820,0,1,1,0,0,2566.08,-748,65.709,4.607,600,20,0,2,0,1,0,0,0),
+(@CGUID+2920,32820,0,1,1,0,0,2566.2,-770,65.17,1.883,600,20,0,2,0,1,0,0,0),
+(@CGUID+2921,32820,0,1,1,0,0,2566.91,1238.9,63.893,5.629,600,20,0,2,0,1,0,0,0),
+(@CGUID+2922,32820,0,1,1,0,0,2567.96,-298,62.694,1.472,600,20,0,2,0,1,0,0,0),
+(@CGUID+2923,32820,0,1,1,0,0,2569.49,-26,30.197,0.603,600,20,0,2,0,1,0,0,0),
+(@CGUID+2924,32820,0,1,1,0,0,2571.24,538.871,15.381,5.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+2925,32820,0,1,1,0,0,2571.73,1374.47,10.336,2.341,600,20,0,2,0,1,0,0,0),
+(@CGUID+2926,32820,0,1,1,0,0,2572.32,-50,33.493,3.851,600,20,0,2,0,1,0,0,0),
+(@CGUID+2927,32820,0,1,1,0,0,2573.81,-977,78.49,5.886,600,20,0,2,0,1,0,0,0),
+(@CGUID+2928,32820,0,1,1,0,0,2574.67,840.848,100.144,3.899,600,20,0,2,0,1,0,0,0),
+(@CGUID+2929,32820,0,1,1,0,0,2576.12,885.095,100.947,2.425,600,20,0,2,0,1,0,0,0),
+(@CGUID+2930,32820,0,1,1,0,0,2576.19,1004.2,94.243,4.529,600,20,0,2,0,1,0,0,0),
+(@CGUID+2931,32820,0,1,1,0,0,2576.21,290.176,47.016,2.896,600,20,0,2,0,1,0,0,0),
+(@CGUID+2932,32820,0,1,1,0,0,2576.22,-976,78.337,5.819,600,20,0,2,0,1,0,0,0),
+(@CGUID+2933,32820,0,1,1,0,0,2577.17,981.727,98.292,0.805,600,20,0,2,0,1,0,0,0),
+(@CGUID+2934,32820,0,1,1,0,0,2578.07,-1024,94.786,3.179,600,20,0,2,0,1,0,0,0),
+(@CGUID+2935,32820,0,1,1,0,0,2578.28,572.019,14.308,0.791,600,20,0,2,0,1,0,0,0),
+(@CGUID+2936,32820,0,1,1,0,0,2578.41,918.022,104.599,3.372,600,20,0,2,0,1,0,0,0),
+(@CGUID+2937,32820,0,1,1,0,0,2580.07,-107,30.212,1.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+2938,32820,0,1,1,0,0,2580.33,154.82,33.075,4.111,600,20,0,2,0,1,0,0,0),
+(@CGUID+2939,32820,0,1,1,0,0,2582.18,-723,69.794,3.713,600,20,0,2,0,1,0,0,0),
+(@CGUID+2940,32820,0,1,1,0,0,2583.98,-54,31.023,1.123,600,20,0,2,0,1,0,0,0),
+(@CGUID+2941,32820,0,1,1,0,0,2585.77,854.39,99.341,1.582,600,20,0,2,0,1,0,0,0),
+(@CGUID+2942,32820,0,1,1,0,0,2588.44,-956,76.685,5.424,600,20,0,2,0,1,0,0,0),
+(@CGUID+2943,32820,0,1,1,0,0,2589.61,-118,31.162,5.597,600,20,0,2,0,1,0,0,0),
+(@CGUID+2944,32820,0,1,1,0,0,2591.06,1019.88,99.046,0.34,600,20,0,2,0,1,0,0,0),
+(@CGUID+2945,32820,0,1,1,0,0,2593.26,136.157,30.133,4.803,600,20,0,2,0,1,0,0,0),
+(@CGUID+2946,32820,0,1,1,0,0,2594.13,1687.93,-1,3.606,600,20,0,2,0,1,0,0,0),
+(@CGUID+2947,32820,0,1,1,0,0,2594.44,246.63,41.364,5.094,600,20,0,2,0,1,0,0,0),
+(@CGUID+2948,32820,0,1,1,0,0,2597.33,1385.28,1.157,5.836,600,20,0,2,0,1,0,0,0),
+(@CGUID+2949,32820,0,1,1,0,0,2599.74,1284.34,51.977,6.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+2950,32820,0,1,1,0,0,2600.66,-690,78.686,6.225,600,20,0,2,0,1,0,0,0),
+(@CGUID+2951,32820,0,1,1,0,0,2601.85,520.278,17.73,3.256,600,20,0,2,0,1,0,0,0),
+(@CGUID+2952,32820,0,1,1,0,0,2603.09,-535,89,5.596,600,20,0,2,0,1,0,0,0),
+(@CGUID+2953,32820,0,1,1,0,0,2606.83,235.35,37.201,0.492,600,20,0,2,0,1,0,0,0),
+(@CGUID+2954,32820,0,1,1,0,0,2606.87,-781,74.363,3.376,600,20,0,2,0,1,0,0,0),
+(@CGUID+2955,32820,0,1,1,0,0,2611.07,-913,60.155,0.057,600,20,0,2,0,1,0,0,0),
+(@CGUID+2956,32820,0,1,1,0,0,2611.5,463.978,22.947,2.03,600,20,0,2,0,1,0,0,0),
+(@CGUID+2957,32820,0,1,1,0,0,2613.55,133.443,30.158,2.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+2958,32820,0,1,1,0,0,2613.68,1098.27,93.415,4.322,600,20,0,2,0,1,0,0,0),
+(@CGUID+2959,32820,0,1,1,0,0,2613.99,1124.28,90.504,0.247,600,20,0,2,0,1,0,0,0),
+(@CGUID+2960,32820,0,1,1,0,0,2617.13,313.391,37.435,5.833,600,20,0,2,0,1,0,0,0),
+(@CGUID+2961,32820,0,1,1,0,0,2620.38,883.914,111.555,0.524,600,20,0,2,0,1,0,0,0),
+(@CGUID+2962,32820,0,1,1,0,0,2623.53,1040.28,99.36,6.136,600,20,0,2,0,1,0,0,0),
+(@CGUID+2963,32820,0,1,1,0,0,2624.08,239.211,34.552,3.577,600,20,0,2,0,1,0,0,0),
+(@CGUID+2964,32820,0,1,1,0,0,2624.32,406.3,36.144,0.357,600,20,0,2,0,1,0,0,0),
+(@CGUID+2965,32820,0,1,1,0,0,2624.68,-824,71.093,1.271,600,20,0,2,0,1,0,0,0),
+(@CGUID+2966,32820,0,1,1,0,0,2625.31,462.516,21.719,3.28319,600,20,0,2,0,1,0,0,0),
+(@CGUID+2967,32820,0,1,1,0,0,2625.58,1291.88,47.811,5.974,600,20,0,2,0,1,0,0,0),
+(@CGUID+2968,32820,0,1,1,0,0,2626.29,-823,70.467,5.276,600,20,0,2,0,1,0,0,0),
+(@CGUID+2969,32820,0,1,1,0,0,2627.41,-323,86.15,3.227,600,20,0,2,0,1,0,0,0),
+(@CGUID+2970,32820,0,1,1,0,0,2630.11,980.202,109.971,2.083,600,20,0,2,0,1,0,0,0),
+(@CGUID+2971,32820,0,1,1,0,0,2631,60.832,28.403,0.685,600,20,0,2,0,1,0,0,0),
+(@CGUID+2972,32820,0,1,1,0,0,2632.86,388.887,35.111,2.082,600,20,0,2,0,1,0,0,0),
+(@CGUID+2973,32820,0,1,1,0,0,2634.35,-1071,108.356,4.795,600,20,0,2,0,1,0,0,0),
+(@CGUID+2974,32820,0,1,1,0,0,2635.33,51.674,28.114,5.333,600,20,0,2,0,1,0,0,0),
+(@CGUID+2975,32820,0,1,1,0,0,2636.46,144.211,32.506,0.82,600,20,0,2,0,1,0,0,0),
+(@CGUID+2976,32820,0,1,1,0,0,2636.98,1049.48,103.165,3.109,600,20,0,2,0,1,0,0,0),
+(@CGUID+2977,32820,0,1,1,0,0,2637.98,1191.98,79.642,3.719,600,20,0,2,0,1,0,0,0),
+(@CGUID+2978,32820,0,1,1,0,0,2638.66,892.341,112.888,0.664,600,20,0,2,0,1,0,0,0),
+(@CGUID+2979,32820,0,1,1,0,0,2639.2,254.461,34.408,1.233,600,20,0,2,0,1,0,0,0),
+(@CGUID+2980,32820,0,1,1,0,0,2640.71,1210.13,70.931,1.67,600,20,0,2,0,1,0,0,0),
+(@CGUID+2981,32820,0,1,1,0,0,2641.28,-4015,106.292,6.239,600,20,0,2,0,1,0,0,0),
+(@CGUID+2982,32820,0,1,1,0,0,2641.52,1067.63,102.771,2.691,600,20,0,2,0,1,0,0,0),
+(@CGUID+2983,32820,0,1,1,0,0,2641.83,1368.93,2.269,5.923,600,20,0,2,0,1,0,0,0),
+(@CGUID+2984,32820,0,1,1,0,0,2643.22,337.924,28.726,3.94,600,20,0,2,0,1,0,0,0),
+(@CGUID+2985,32820,0,1,1,0,0,2644.96,180.961,29.834,2.608,600,20,0,2,0,1,0,0,0),
+(@CGUID+2986,32820,0,1,1,0,0,2645.24,1061.54,104.29,1.755,600,20,0,2,0,1,0,0,0),
+(@CGUID+2987,32820,0,1,1,0,0,2646.01,404.876,31.007,5.402,600,20,0,2,0,1,0,0,0),
+(@CGUID+2988,32820,0,1,1,0,0,2646.92,-626,106.988,5.102,600,20,0,2,0,1,0,0,0),
+(@CGUID+2989,32820,0,1,1,0,0,2647.27,1153.66,85.855,5.867,600,20,0,2,0,1,0,0,0),
+(@CGUID+2990,32820,0,1,1,0,0,2648.11,-892,65.367,3.03,600,20,0,2,0,1,0,0,0),
+(@CGUID+2991,32820,0,1,1,0,0,2649.44,218.311,32.536,1.33,600,20,0,2,0,1,0,0,0),
+(@CGUID+2992,32820,0,1,1,0,0,2650.44,351.058,28.934,0.89,600,20,0,2,0,1,0,0,0),
+(@CGUID+2993,32820,0,1,1,0,0,2655.85,1314.34,41.119,5.317,600,20,0,2,0,1,0,0,0),
+(@CGUID+2994,32820,0,1,1,0,0,2656.03,950.07,113.864,0.646,600,20,0,2,0,1,0,0,0),
+(@CGUID+2995,32820,0,1,1,0,0,2656.3,533.697,15.485,1.331,600,20,0,2,0,1,0,0,0),
+(@CGUID+2996,32820,0,1,1,0,0,2657.29,-885,68.351,2.818,600,20,0,2,0,1,0,0,0),
+(@CGUID+2997,32820,0,1,1,0,0,2659.79,362.477,28.379,1,600,20,0,2,0,1,0,0,0),
+(@CGUID+2998,32820,0,1,1,0,0,2660.56,847.725,109.709,5.826,600,20,0,2,0,1,0,0,0),
+(@CGUID+2999,32820,0,1,1,0,0,2667.88,127.652,32.426,3.257,600,20,0,2,0,1,0,0,0),
+(@CGUID+3000,32820,0,1,1,0,0,2672.69,-887,71.183,2.83,600,20,0,2,0,1,0,0,0),
+(@CGUID+3001,32820,0,1,1,0,0,2673.69,256.889,31.865,3.889,600,20,0,2,0,1,0,0,0),
+(@CGUID+3002,32820,0,1,1,0,0,2678.87,311.54,31.12,4.258,600,20,0,2,0,1,0,0,0),
+(@CGUID+3003,32820,0,1,1,0,0,2679.21,1013.13,108.381,4.384,600,20,0,2,0,1,0,0,0),
+(@CGUID+3004,32820,0,1,1,0,0,2679.77,1032.67,108.821,5.304,600,20,0,2,0,1,0,0,0),
+(@CGUID+3005,32820,0,1,1,0,0,2680.93,812.035,109.282,3.861,600,20,0,2,0,1,0,0,0),
+(@CGUID+3006,32820,0,1,1,0,0,2681.23,861.878,108.754,5.771,600,20,0,2,0,1,0,0,0),
+(@CGUID+3007,32820,0,1,1,0,0,2684.66,443.218,18.817,2.514,600,20,0,2,0,1,0,0,0),
+(@CGUID+3008,32820,0,1,1,0,0,2685.8,8.171,29.688,2.305,600,20,0,2,0,1,0,0,0),
+(@CGUID+3009,32820,0,1,1,0,0,2686.46,221.022,31.364,0.673,600,20,0,2,0,1,0,0,0),
+(@CGUID+3010,32820,0,1,1,0,0,2689.81,7.583,30.024,5.376,600,20,0,2,0,1,0,0,0),
+(@CGUID+3011,32820,0,1,1,0,0,2691.65,944.4,110.92,2.273,600,20,0,2,0,1,0,0,0),
+(@CGUID+3012,32820,0,1,1,0,0,2692.62,884.526,110.192,5.771,600,20,0,2,0,1,0,0,0),
+(@CGUID+3013,32820,0,1,1,0,0,2693.22,97.336,35.577,4.421,600,20,0,2,0,1,0,0,0),
+(@CGUID+3014,32820,0,1,1,0,0,2693.45,492.476,17.507,3.089,600,20,0,2,0,1,0,0,0),
+(@CGUID+3015,32820,0,1,1,0,0,2701.31,-487,107.766,1.322,600,20,0,2,0,1,0,0,0),
+(@CGUID+3016,32820,0,1,1,0,0,2702.78,-269,62.324,0.484,600,20,0,2,0,1,0,0,0),
+(@CGUID+3017,32820,0,1,1,0,0,2705.41,379.311,26.93,1.551,600,20,0,2,0,1,0,0,0),
+(@CGUID+3018,32820,0,1,1,0,0,2706.57,407.431,23.754,1.209,600,20,0,2,0,1,0,0,0),
+(@CGUID+3019,32820,0,1,1,0,0,2707.92,-41,28.567,2.55,600,20,0,2,0,1,0,0,0),
+(@CGUID+3020,32820,0,1,1,0,0,2708.15,342.402,29.246,3.835,600,20,0,2,0,1,0,0,0),
+(@CGUID+3021,32820,0,1,1,0,0,2710.12,923.481,112.48,2.31,600,20,0,2,0,1,0,0,0),
+(@CGUID+3022,32820,0,1,1,0,0,2712.58,295.287,31.149,1.383,600,20,0,2,0,1,0,0,0),
+(@CGUID+3023,32820,0,1,1,0,0,2712.75,223.41,33.219,6.015,600,20,0,2,0,1,0,0,0),
+(@CGUID+3024,32820,0,1,1,0,0,2715.01,-343,92.65,1.784,600,20,0,2,0,1,0,0,0),
+(@CGUID+3025,32820,0,1,1,0,0,2716.14,-745,135.23,2.544,600,20,0,2,0,1,0,0,0),
+(@CGUID+3026,32820,0,1,1,0,0,2716.88,-688,119.268,4.116,600,20,0,2,0,1,0,0,0),
+(@CGUID+3027,32820,0,1,1,0,0,2717.71,780.438,111.583,5.339,600,20,0,2,0,1,0,0,0),
+(@CGUID+3028,32820,0,1,1,0,0,2723.15,842.9,114.437,3.655,600,20,0,2,0,1,0,0,0),
+(@CGUID+3029,32820,0,1,1,0,0,2723.92,-265,60.197,2.092,600,20,0,2,0,1,0,0,0),
+(@CGUID+3030,32820,0,1,1,0,0,2727.35,360.837,27.167,5.2,600,20,0,2,0,1,0,0,0),
+(@CGUID+3031,32820,0,1,1,0,0,2728.22,-47,29.317,6.112,600,20,0,2,0,1,0,0,0),
+(@CGUID+3032,32820,0,1,1,0,0,2730.6,122.119,34.944,3.636,600,20,0,2,0,1,0,0,0),
+(@CGUID+3033,32820,0,1,1,0,0,2731.25,140.329,30.919,3.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+3034,32820,0,1,1,0,0,2732.84,-505,103.028,3.26,600,20,0,2,0,1,0,0,0),
+(@CGUID+3035,32820,0,1,1,0,0,2733.1,221.369,34.842,0.67,600,20,0,2,0,1,0,0,0),
+(@CGUID+3036,32820,0,1,1,0,0,2737.26,861.033,115.463,1.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+3037,32820,0,1,1,0,0,2738.61,953.638,109.836,2.632,600,20,0,2,0,1,0,0,0),
+(@CGUID+3038,32820,0,1,1,0,0,2739.95,90.715,34.121,1.554,600,20,0,2,0,1,0,0,0),
+(@CGUID+3039,32820,0,1,1,0,0,2741.66,-229,50.351,0.806,600,20,0,2,0,1,0,0,0),
+(@CGUID+3040,32820,0,1,1,0,0,2741.69,-76,31.535,5.148,600,20,0,2,0,1,0,0,0),
+(@CGUID+3041,32820,0,1,1,0,0,2744.38,-790,147.906,2.75,600,20,0,2,0,1,0,0,0),
+(@CGUID+3042,32820,0,1,1,0,0,2745.03,238.559,34.676,3.898,600,20,0,2,0,1,0,0,0),
+(@CGUID+3043,32820,0,1,1,0,0,2745.98,782.205,114.843,1.214,600,20,0,2,0,1,0,0,0),
+(@CGUID+3044,32820,0,1,1,0,0,2746.17,313.784,30.283,5.061,600,20,0,2,0,1,0,0,0),
+(@CGUID+3045,32820,0,1,1,0,0,2747.19,-279,64.486,5.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+3046,32820,0,1,1,0,0,2748.59,881.264,114.505,0.087,600,20,0,2,0,1,0,0,0),
+(@CGUID+3047,32820,0,1,1,0,0,2749.44,786.891,114.357,1.408,600,20,0,2,0,1,0,0,0),
+(@CGUID+3048,32820,0,1,1,0,0,2750.02,-531,104.626,2.793,600,20,0,2,0,1,0,0,0),
+(@CGUID+3049,32820,0,1,1,0,0,2751.57,-531,104.416,4.951,600,20,0,2,0,1,0,0,0),
+(@CGUID+3050,32820,0,1,1,0,0,2753.36,122.284,29.101,5.357,600,20,0,2,0,1,0,0,0),
+(@CGUID+3051,32820,0,1,1,0,0,2754.19,272.893,28.355,6.13,600,20,0,2,0,1,0,0,0),
+(@CGUID+3052,32820,0,1,1,0,0,2754.9,807.562,113.174,1.676,600,20,0,2,0,1,0,0,0),
+(@CGUID+3053,32820,0,1,1,0,0,2756.84,-691,126.144,5.155,600,20,0,2,0,1,0,0,0),
+(@CGUID+3054,32820,0,1,1,0,0,2757.54,-347,78.813,3.879,600,20,0,2,0,1,0,0,0),
+(@CGUID+3055,32820,0,1,1,0,0,2758.23,-162,34.031,5.088,600,20,0,2,0,1,0,0,0),
+(@CGUID+3056,32820,0,1,1,0,0,2758.75,79.879,31.355,0.578,600,20,0,2,0,1,0,0,0),
+(@CGUID+3057,32820,0,1,1,0,0,2761.43,-751,135.385,0.335,600,20,0,2,0,1,0,0,0),
+(@CGUID+3058,32820,0,1,1,0,0,2763.1,445.459,20.5,0.648,600,20,0,2,0,1,0,0,0),
+(@CGUID+3059,32820,0,1,1,0,0,2763.11,-334,77.089,4.666,600,20,0,2,0,1,0,0,0),
+(@CGUID+3060,32820,0,1,1,0,0,2768.53,-171,36.586,1.213,600,20,0,2,0,1,0,0,0),
+(@CGUID+3061,32820,0,1,1,0,0,2769.63,-337,75.881,5.695,600,20,0,2,0,1,0,0,0),
+(@CGUID+3062,32820,0,1,1,0,0,2769.83,869.461,112.399,5.785,600,20,0,2,0,1,0,0,0),
+(@CGUID+3063,32820,0,1,1,0,0,2770.84,-13,34.186,1.078,600,20,0,2,0,1,0,0,0),
+(@CGUID+3064,32820,0,1,1,0,0,2771.16,153.872,30.78,1.108,600,20,0,2,0,1,0,0,0),
+(@CGUID+3065,32820,0,1,1,0,0,2771.49,187.297,31.745,4.168,600,20,0,2,0,1,0,0,0),
+(@CGUID+3066,32820,0,1,1,0,0,2775.09,-749,135.039,2.595,600,20,0,2,0,1,0,0,0),
+(@CGUID+3067,32820,0,1,1,0,0,2775.25,-406,82.028,5.275,600,20,0,2,0,1,0,0,0),
+(@CGUID+3068,32820,0,1,1,0,0,3027.02,671.836,90.4184,3.14605,600,20,0,2,0,1,0,0,0),
+(@CGUID+3069,32820,0,1,1,0,0,2777.98,285.861,31.831,2.783,600,20,0,2,0,1,0,0,0),
+(@CGUID+3070,32820,0,1,1,0,0,2778.1,1026.33,108.903,4.347,600,20,0,2,0,1,0,0,0),
+(@CGUID+3071,32820,0,1,1,0,0,2778.38,-66,34.106,4.347,600,20,0,2,0,1,0,0,0),
+(@CGUID+3072,32820,0,1,1,0,0,2779.73,344.693,26.697,1.297,600,20,0,2,0,1,0,0,0),
+(@CGUID+3073,32820,0,1,1,0,0,2780.26,-419,81.504,3.05,600,20,0,2,0,1,0,0,0),
+(@CGUID+3074,32820,0,1,1,0,0,2781.3,348.492,26.39,3.792,600,20,0,2,0,1,0,0,0),
+(@CGUID+3075,32820,0,1,1,0,0,2781.32,78.466,28.691,4.853,600,20,0,2,0,1,0,0,0),
+(@CGUID+3076,32820,0,1,1,0,0,2782.21,1060.45,110.458,4.223,600,20,0,2,0,1,0,0,0),
+(@CGUID+3077,32820,0,1,1,0,0,2782.22,-748,134.874,4.873,600,20,0,2,0,1,0,0,0),
+(@CGUID+3078,32820,0,1,1,0,0,2782.46,975.446,112.993,3.098,600,20,0,2,0,1,0,0,0),
+(@CGUID+3079,32820,0,1,1,0,0,2783.65,1057.34,110.378,4.234,600,20,0,2,0,1,0,0,0),
+(@CGUID+3080,32820,0,1,1,0,0,2783.88,-770,139.92,6.148,600,20,0,2,0,1,0,0,0),
+(@CGUID+3081,32820,0,1,1,0,0,2784.07,416.318,19.71,1.466,600,20,0,2,0,1,0,0,0),
+(@CGUID+3082,32820,0,1,1,0,0,2784.3,42.982,29.613,0.994,600,20,0,2,0,1,0,0,0),
+(@CGUID+3083,32820,0,1,1,0,0,2785.3,20.632,31.625,1.381,600,20,0,2,0,1,0,0,0),
+(@CGUID+3084,32820,0,1,1,0,0,2786.16,800.124,113.599,5.463,600,20,0,2,0,1,0,0,0),
+(@CGUID+3085,32820,0,1,1,0,0,2786.49,996.78,111.898,5.657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3086,32820,0,1,1,0,0,2786.53,237.086,33.154,0.563,600,20,0,2,0,1,0,0,0),
+(@CGUID+3087,32820,0,1,1,0,0,2786.78,1058.27,110.623,4.197,600,20,0,2,0,1,0,0,0),
+(@CGUID+3088,32820,0,1,1,0,0,2787.2,308.044,30.555,5.596,600,20,0,2,0,1,0,0,0),
+(@CGUID+3089,32820,0,1,1,0,0,2788.7,792.128,115.004,5.513,600,20,0,2,0,1,0,0,0),
+(@CGUID+3090,32820,0,1,1,0,0,2789.81,-31,33.866,3.21,600,20,0,2,0,1,0,0,0),
+(@CGUID+3091,32820,0,1,1,0,0,2791.81,-474,101.641,1.257,600,20,0,2,0,1,0,0,0),
+(@CGUID+3092,32820,0,1,1,0,0,2938.94,601.286,91.7991,0.439689,600,20,0,2,0,1,0,0,0),
+(@CGUID+3093,32820,0,1,1,0,0,2799.56,144.821,21.517,4.682,600,20,0,2,0,1,0,0,0),
+(@CGUID+3094,32820,0,1,1,0,0,2801.71,317.016,27.388,3.812,600,20,0,2,0,1,0,0,0),
+(@CGUID+3095,32820,0,1,1,0,0,2802.34,-106,33.645,2.441,600,20,0,2,0,1,0,0,0),
+(@CGUID+3096,32820,0,1,1,0,0,2805.02,314.912,27.249,0.702,600,20,0,2,0,1,0,0,0),
+(@CGUID+3097,32820,0,1,1,0,0,2805.06,1100.72,86.029,5.157,600,20,0,2,0,1,0,0,0),
+(@CGUID+3098,32820,0,1,1,0,0,2805.34,-679,137.438,3.973,600,20,0,2,0,1,0,0,0),
+(@CGUID+3099,32820,0,1,1,0,0,2806.21,745.621,139.187,1.847,600,20,0,2,0,1,0,0,0),
+(@CGUID+3100,32820,0,1,1,0,0,3059.38,655.884,75.3527,3.07709,600,20,0,2,0,1,0,0,0),
+(@CGUID+3101,32820,0,1,1,0,0,2807.62,49.259,27.098,6.24,600,20,0,2,0,1,0,0,0),
+(@CGUID+3102,32820,0,1,1,0,0,2807.95,-426,80.45,0.191,600,20,0,2,0,1,0,0,0),
+(@CGUID+3103,32820,0,1,1,0,0,2809.32,818.412,112.829,1.798,600,20,0,2,0,1,0,0,0),
+(@CGUID+3104,32820,0,1,1,0,0,2809.33,185.504,29.006,4.035,600,20,0,2,0,1,0,0,0),
+(@CGUID+3105,32820,0,1,1,0,0,2810.2,948.442,118.026,3.299,600,20,0,2,0,1,0,0,0),
+(@CGUID+3106,32820,0,1,1,0,0,2810.22,-311,67.937,2.459,600,20,0,2,0,1,0,0,0),
+(@CGUID+3107,32820,0,1,1,0,0,2810.6,142.153,21.616,1.07,600,20,0,2,0,1,0,0,0),
+(@CGUID+3108,32820,0,1,1,0,0,2811.14,-789,144.879,4.823,600,20,0,2,0,1,0,0,0),
+(@CGUID+3109,32820,0,1,1,0,0,2811.39,-790,145.105,2.535,600,20,0,2,0,1,0,0,0),
+(@CGUID+3110,32820,0,1,1,0,0,2813.94,831.372,112.091,6.105,600,20,0,2,0,1,0,0,0),
+(@CGUID+3111,32820,0,1,1,0,0,2814.09,1010.74,115.849,3.777,600,20,0,2,0,1,0,0,0),
+(@CGUID+3112,32820,0,1,1,0,0,2814.33,91.472,25.442,6.23,600,20,0,2,0,1,0,0,0),
+(@CGUID+3113,32820,0,1,1,0,0,2814.48,728.167,139.574,6.22,600,20,0,2,0,1,0,0,0),
+(@CGUID+3114,32820,0,1,1,0,0,2814.63,228.967,30.876,0.505,600,20,0,2,0,1,0,0,0),
+(@CGUID+3115,32820,0,1,1,0,0,2815.55,-19,32.59,0.677,600,20,0,2,0,1,0,0,0),
+(@CGUID+3116,32820,0,1,1,0,0,2815.74,182.766,27.329,3.478,600,20,0,2,0,1,0,0,0),
+(@CGUID+3117,32820,0,1,1,0,0,2815.95,-683,137.601,3.595,600,20,0,2,0,1,0,0,0),
+(@CGUID+3118,32820,0,1,1,0,0,2817.45,-381,77.81,0.86,600,20,0,2,0,1,0,0,0),
+(@CGUID+3119,32820,0,1,1,0,0,2820.31,-344,75.417,1.808,600,20,0,2,0,1,0,0,0),
+(@CGUID+3120,32820,0,1,1,0,0,2821.16,-649,140.416,1.739,600,20,0,2,0,1,0,0,0),
+(@CGUID+3121,32820,0,1,1,0,0,2821.66,-755,146.603,4.311,600,20,0,2,0,1,0,0,0),
+(@CGUID+3122,32820,0,1,1,0,0,2821.88,-87,32.634,4.857,600,20,0,2,0,1,0,0,0),
+(@CGUID+3123,32820,0,1,1,0,0,2822.21,487.184,31.126,3.7,600,20,0,2,0,1,0,0,0),
+(@CGUID+3124,32820,0,1,1,0,0,2822.22,948.464,120.006,0.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+3125,32820,0,1,1,0,0,2822.63,-220,47.639,4.51,600,20,0,2,0,1,0,0,0),
+(@CGUID+3126,32820,0,1,1,0,0,2822.8,-646,141.084,0.832,600,20,0,2,0,1,0,0,0),
+(@CGUID+3127,32820,0,1,1,0,0,2823.48,701.019,144.699,3.563,600,20,0,2,0,1,0,0,0),
+(@CGUID+3128,32820,0,1,1,0,0,2824.21,286.932,28.296,0.217,600,20,0,2,0,1,0,0,0),
+(@CGUID+3129,32820,0,1,1,0,0,2828.15,-484,99.097,6.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+3130,32820,0,1,1,0,0,2828.31,-713,138.438,3.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+3131,32820,0,1,1,0,0,2828.31,-713,138.668,3.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+3132,32820,0,1,1,0,0,2833.22,1020.89,116.123,5.984,600,20,0,2,0,1,0,0,0),
+(@CGUID+3133,32820,0,1,1,0,0,2835.46,-379,77.259,4.455,600,20,0,2,0,1,0,0,0),
+(@CGUID+3134,32820,0,1,1,0,0,2839.44,-226,48.06,5.984,600,20,0,2,0,1,0,0,0),
+(@CGUID+3135,32820,0,1,1,0,0,3043.64,684.044,66.735,4.72956,600,20,0,2,0,1,0,0,0),
+(@CGUID+3136,32820,0,1,1,0,0,2844.7,850.579,112.802,0.553,600,20,0,2,0,1,0,0,0),
+(@CGUID+3137,32820,0,1,1,0,0,2846.05,-505,107.585,1.65,600,20,0,2,0,1,0,0,0),
+(@CGUID+3138,32820,0,1,1,0,0,2847.02,-14,24.719,2.777,600,20,0,2,0,1,0,0,0),
+(@CGUID+3139,32820,0,1,1,0,0,2847.58,238.872,29.028,2.167,600,20,0,2,0,1,0,0,0),
+(@CGUID+3140,32820,0,1,1,0,0,2848.24,-451,77.662,6.055,600,20,0,2,0,1,0,0,0),
+(@CGUID+3141,32820,0,1,1,0,0,2848.26,-653,138.698,3.634,600,20,0,2,0,1,0,0,0),
+(@CGUID+3142,32820,0,1,1,0,0,2848.69,346.604,24.445,0.524,600,20,0,2,0,1,0,0,0),
+(@CGUID+3143,32820,0,1,1,0,0,2849.62,205.19,30.838,4.131,600,20,0,2,0,1,0,0,0),
+(@CGUID+3144,32820,0,1,1,0,0,2851.43,-19,23.539,2.208,600,20,0,2,0,1,0,0,0),
+(@CGUID+3145,32820,0,1,1,0,0,2852.84,-649,139.024,2.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+3146,32820,0,1,1,0,0,2852.87,1046.5,114.813,5.593,600,20,0,2,0,1,0,0,0),
+(@CGUID+3147,32820,0,1,1,0,0,2853.96,-182,43.164,5.031,600,20,0,2,0,1,0,0,0),
+(@CGUID+3148,32820,0,1,1,0,0,2854.2,-776,160.333,0.377,600,20,0,2,0,1,0,0,0),
+(@CGUID+3149,32820,0,1,1,0,0,2855.61,427.809,20.219,1.466,600,20,0,2,0,1,0,0,0),
+(@CGUID+3150,32820,0,1,1,0,0,2856.63,948.791,121.861,6.166,600,20,0,2,0,1,0,0,0),
+(@CGUID+3151,32820,0,1,1,0,0,2858.62,-219,50.504,3.283,600,20,0,2,0,1,0,0,0),
+(@CGUID+3152,32820,0,1,1,0,0,2858.66,276,29.324,4.692,600,20,0,2,0,1,0,0,0),
+(@CGUID+3153,32820,0,1,1,0,0,2858.72,-512,107.163,3.526,600,20,0,2,0,1,0,0,0),
+(@CGUID+3154,32820,0,1,1,0,0,3044.81,671.019,81.0471,4.74525,600,20,0,2,0,1,0,0,0),
+(@CGUID+3155,32820,0,1,1,0,0,2860.16,-291,56.522,1.288,600,20,0,2,0,1,0,0,0),
+(@CGUID+3156,32820,0,1,1,0,0,2860.19,-490,100.104,0.334,600,20,0,2,0,1,0,0,0),
+(@CGUID+3157,32820,0,1,1,0,0,2861.32,288.391,28.172,6.224,600,20,0,2,0,1,0,0,0),
+(@CGUID+3158,32820,0,1,1,0,0,2862.91,-798,160.333,0.405,600,20,0,2,0,1,0,0,0),
+(@CGUID+3159,32820,0,1,1,0,0,2863.2,1102.02,116.52,2.028,600,20,0,2,0,1,0,0,0),
+(@CGUID+3160,32820,0,1,1,0,0,2863.74,-742,160.332,1.931,600,20,0,2,0,1,0,0,0),
+(@CGUID+3161,32820,0,1,1,0,0,2864.16,-82,34.52,1.696,600,20,0,2,0,1,0,0,0),
+(@CGUID+3162,32820,0,1,1,0,0,2867.45,-444,76.938,6.279,600,20,0,2,0,1,0,0,0),
+(@CGUID+3163,32820,0,1,1,0,0,2868.94,-314,61.622,5.248,600,20,0,2,0,1,0,0,0),
+(@CGUID+3164,32820,0,1,1,0,0,2869.83,351.009,25.677,2.216,600,20,0,2,0,1,0,0,0),
+(@CGUID+3165,32820,0,1,1,0,0,2871.16,-653,137.776,5.027,600,20,0,2,0,1,0,0,0),
+(@CGUID+3166,32820,0,1,1,0,0,2872.27,68.096,7.318,0.468,600,20,0,2,0,1,0,0,0),
+(@CGUID+3167,32820,0,1,1,0,0,2873.01,931.492,120.33,1.98,600,20,0,2,0,1,0,0,0),
+(@CGUID+3168,32820,0,1,1,0,0,2873.29,-643,137.839,4.579,600,20,0,2,0,1,0,0,0),
+(@CGUID+3169,32820,0,1,1,0,0,2873.88,385.114,23.78,2.826,600,20,0,2,0,1,0,0,0),
+(@CGUID+3170,32820,0,1,1,0,0,2873.99,-766,160.333,2.103,600,20,0,2,0,1,0,0,0),
+(@CGUID+3171,32820,0,1,1,0,0,2878.97,755.981,121.907,1.751,600,20,0,2,0,1,0,0,0),
+(@CGUID+3172,32820,0,1,1,0,0,2879,-4,19.086,5.243,600,20,0,2,0,1,0,0,0),
+(@CGUID+3173,32820,0,1,1,0,0,2879.51,-744,160.416,5.197,600,20,0,2,0,1,0,0,0),
+(@CGUID+3174,32820,0,1,1,0,0,2880.28,845.764,112.495,2.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+3175,32820,0,1,1,0,0,2883.51,-789,160.333,3.574,600,20,0,2,0,1,0,0,0),
+(@CGUID+3176,32820,0,1,1,0,0,2883.86,261.845,24.999,4.842,600,20,0,2,0,1,0,0,0),
+(@CGUID+3177,32820,0,1,1,0,0,2885.88,-253,48.962,1.164,600,20,0,2,0,1,0,0,0),
+(@CGUID+3178,32820,0,1,1,0,0,2889.46,-448,80.326,0.968,600,20,0,2,0,1,0,0,0),
+(@CGUID+3179,32820,0,1,1,0,0,2889.54,182.161,7.886,1.546,600,20,0,2,0,1,0,0,0),
+(@CGUID+3180,32820,0,1,1,0,0,2891.65,-809,160.333,5.178,600,20,0,2,0,1,0,0,0),
+(@CGUID+3181,32820,0,1,1,0,0,2892.33,-533,106.285,3.91,600,20,0,2,0,1,0,0,0),
+(@CGUID+3182,32820,0,1,1,0,0,2893.6,53.019,8.434,4.642,600,20,0,2,0,1,0,0,0),
+(@CGUID+3183,32820,0,1,1,0,0,3020.6,705.731,99.9982,3.81062,600,20,0,2,0,1,0,0,0),
+(@CGUID+3184,32820,0,1,1,0,0,2894.91,-659,138.365,6.066,600,20,0,2,0,1,0,0,0),
+(@CGUID+3185,32820,0,1,1,0,0,2896.52,406.991,25.118,0.604,600,20,0,2,0,1,0,0,0),
+(@CGUID+3186,32820,0,1,1,0,0,2896.56,-538,106.566,3.246,600,20,0,2,0,1,0,0,0),
+(@CGUID+3187,32820,0,1,1,0,0,2899.94,388.981,29.211,3.126,600,20,0,2,0,1,0,0,0),
+(@CGUID+3188,32820,0,1,1,0,0,2901.96,102.868,6.763,1.788,600,20,0,2,0,1,0,0,0),
+(@CGUID+3189,32820,0,1,1,0,0,2902.53,-781,160.333,3.483,600,20,0,2,0,1,0,0,0),
+(@CGUID+3190,32820,0,1,1,0,0,2902.63,385.339,30.095,3.078,600,20,0,2,0,1,0,0,0),
+(@CGUID+3191,32820,0,1,1,0,0,2902.79,379.436,30.328,2.988,600,20,0,2,0,1,0,0,0),
+(@CGUID+3192,32820,0,1,1,0,0,2903.55,-707,154.518,2.736,600,20,0,2,0,1,0,0,0),
+(@CGUID+3193,32820,0,1,1,0,0,2904.61,-626,149.925,2.946,600,20,0,2,0,1,0,0,0),
+(@CGUID+3194,32820,0,1,1,0,0,2905.63,851.381,112.685,6.2,600,20,0,2,0,1,0,0,0),
+(@CGUID+3195,32820,0,1,1,0,0,2906.4,-79,23.843,1.339,600,20,0,2,0,1,0,0,0),
+(@CGUID+3196,32820,0,1,1,0,0,2907.77,-710,154.768,3.285,600,20,0,2,0,1,0,0,0),
+(@CGUID+3197,32820,0,1,1,0,0,2911.67,-162,33.899,2.483,600,20,0,2,0,1,0,0,0),
+(@CGUID+3198,32820,0,1,1,0,0,2912.35,-760,154.067,1.065,600,20,0,2,0,1,0,0,0),
+(@CGUID+3199,32820,0,1,1,0,0,2913.44,-754,153.983,2.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+3200,32820,0,1,1,0,0,2916.26,-83,26.383,4.804,600,20,0,2,0,1,0,0,0),
+(@CGUID+3201,32820,0,1,1,0,0,2916.44,149.209,6.926,3.96,600,20,0,2,0,1,0,0,0),
+(@CGUID+3202,32820,0,1,1,0,0,2916.55,1061.98,100.848,6.182,600,20,0,2,0,1,0,0,0),
+(@CGUID+3203,32820,0,1,1,0,0,2917.87,918.233,115.606,0.977,600,20,0,2,0,1,0,0,0),
+(@CGUID+3204,32820,0,1,1,0,0,2918.58,-440,85.155,4.499,600,20,0,2,0,1,0,0,0),
+(@CGUID+3205,32820,0,1,1,0,0,2918.6,1048.91,100.867,1.956,600,20,0,2,0,1,0,0,0),
+(@CGUID+3206,32820,0,1,1,0,0,2919.32,673.126,110.042,3.384,600,20,0,2,0,1,0,0,0),
+(@CGUID+3207,32820,0,1,1,0,0,2920.15,169.812,5.183,4.343,600,20,0,2,0,1,0,0,0),
+(@CGUID+3208,32820,0,1,1,0,0,2921.05,797.461,116.681,4.988,600,20,0,2,0,1,0,0,0),
+(@CGUID+3209,32820,0,1,1,0,0,2923.18,751.02,107.677,4.449,600,20,0,2,0,1,0,0,0),
+(@CGUID+3210,32820,0,1,1,0,0,2924.28,-415,80.677,3.127,600,20,0,2,0,1,0,0,0),
+(@CGUID+3211,32820,0,1,1,0,0,2925.68,953.221,121.743,4.328,600,20,0,2,0,1,0,0,0),
+(@CGUID+3212,32820,0,1,1,0,0,2926.76,658.565,107.85,1.553,600,20,0,2,0,1,0,0,0),
+(@CGUID+3213,32820,0,1,1,0,0,2927.31,319.104,20.54,0.619,600,20,0,2,0,1,0,0,0),
+(@CGUID+3214,32820,0,1,1,0,0,2929.2,89.24,4.717,5.706,600,20,0,2,0,1,0,0,0),
+(@CGUID+3215,32820,0,1,1,0,0,2929.25,666.884,108.087,1.678,600,20,0,2,0,1,0,0,0),
+(@CGUID+3216,32820,0,1,1,0,0,2929.88,788.119,109.945,0.705,600,20,0,2,0,1,0,0,0),
+(@CGUID+3217,32820,0,1,1,0,0,2929.93,-241,35.956,1.894,600,20,0,2,0,1,0,0,0),
+(@CGUID+3218,32820,0,1,1,0,0,2931.4,-730,153.635,4.361,600,20,0,2,0,1,0,0,0),
+(@CGUID+3219,32820,0,1,1,0,0,2934.09,263.472,8.085,6.266,600,20,0,2,0,1,0,0,0),
+(@CGUID+3220,32820,0,1,1,0,0,2936.11,-656,148.523,0.068,600,20,0,2,0,1,0,0,0),
+(@CGUID+3221,32820,0,1,1,0,0,2936.93,-237,34.005,0.051,600,20,0,2,0,1,0,0,0),
+(@CGUID+3222,32820,0,1,1,0,0,2941.69,102.462,6.311,6.056,600,20,0,2,0,1,0,0,0),
+(@CGUID+3223,32820,0,1,1,0,0,2942.63,-151,26.086,2.002,600,20,0,2,0,1,0,0,0),
+(@CGUID+3224,32820,0,1,1,0,0,2943.65,63.731,6.236,3.308,600,20,0,2,0,1,0,0,0),
+(@CGUID+3225,32820,0,1,1,0,0,2944.22,-625,154.703,2.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+3226,32820,0,1,1,0,0,2944.88,562.758,91.401,2.818,600,20,0,2,0,1,0,0,0),
+(@CGUID+3227,32820,0,1,1,0,0,2945.26,971.593,121.785,1.886,600,20,0,2,0,1,0,0,0),
+(@CGUID+3228,32820,0,1,1,0,0,2946.59,181.706,3.237,3.686,600,20,0,2,0,1,0,0,0),
+(@CGUID+3229,32820,0,1,1,0,0,2947.27,-769,154.118,0.31,600,20,0,2,0,1,0,0,0),
+(@CGUID+3230,32820,0,1,1,0,0,2947.86,161.726,4.916,1.018,600,20,0,2,0,1,0,0,0),
+(@CGUID+3231,32820,0,1,1,0,0,2947.92,-652,154.773,5.658,600,20,0,2,0,1,0,0,0),
+(@CGUID+3232,32820,0,1,1,0,0,2948.83,-273,27.43,2.897,600,20,0,2,0,1,0,0,0),
+(@CGUID+3233,32820,0,1,1,0,0,2953.51,-717,154.858,2.905,600,20,0,2,0,1,0,0,0),
+(@CGUID+3234,32820,0,1,1,0,0,2954.64,315.11,7.777,1.495,600,20,0,2,0,1,0,0,0),
+(@CGUID+3235,32820,0,1,1,0,0,2954.81,1018.79,103.163,3.807,600,20,0,2,0,1,0,0,0),
+(@CGUID+3236,32820,0,1,1,0,0,2956.01,709.12,105.911,0.855,600,20,0,2,0,1,0,0,0),
+(@CGUID+3237,32820,0,1,1,0,0,2956.12,819.863,101.797,2.267,600,20,0,2,0,1,0,0,0),
+(@CGUID+3238,32820,0,1,1,0,0,2967.57,333.307,8.102,5.69,600,20,0,2,0,1,0,0,0),
+(@CGUID+3239,32820,0,1,1,0,0,2968.38,335.047,8.085,0.401,600,20,0,2,0,1,0,0,0),
+(@CGUID+3240,32820,0,1,1,0,0,2969.37,-292,21.871,4.815,600,20,0,2,0,1,0,0,0),
+(@CGUID+3241,32820,0,1,1,0,0,2970.81,274.396,5.439,4.338,600,20,0,2,0,1,0,0,0),
+(@CGUID+3242,32820,0,1,1,0,0,2972.62,-558,111.918,3.277,600,20,0,2,0,1,0,0,0),
+(@CGUID+3243,32820,0,1,1,0,0,2974.08,571.61,94.697,2.646,600,20,0,2,0,1,0,0,0),
+(@CGUID+3244,32820,0,1,1,0,0,2974.75,287.31,4.246,0.001,600,20,0,2,0,1,0,0,0),
+(@CGUID+3245,32820,0,1,1,0,0,2978.02,-540,112.539,3.735,600,20,0,2,0,1,0,0,0),
+(@CGUID+3246,32820,0,1,1,0,0,2979.02,1073.34,85.655,5.99,600,20,0,2,0,1,0,0,0),
+(@CGUID+3247,32820,0,1,1,0,0,2979.26,-17,6.461,2.412,600,20,0,2,0,1,0,0,0),
+(@CGUID+3248,32820,0,1,1,0,0,2980.37,-179,18.694,0.84,600,20,0,2,0,1,0,0,0),
+(@CGUID+3249,32820,0,1,1,0,0,2981.09,-307,18.762,0.878,600,20,0,2,0,1,0,0,0),
+(@CGUID+3250,32820,0,1,1,0,0,2984.23,918.186,110.832,5.333,600,20,0,2,0,1,0,0,0),
+(@CGUID+3251,32820,0,1,1,0,0,2985.34,978.439,114.323,6.253,600,20,0,2,0,1,0,0,0),
+(@CGUID+3252,32820,0,1,1,0,0,2985.35,-748,157.915,6.231,600,20,0,2,0,1,0,0,0),
+(@CGUID+3253,32820,0,1,1,0,0,2986.52,422.934,19.479,5.042,600,20,0,2,0,1,0,0,0),
+(@CGUID+3254,32820,0,1,1,0,0,2990.13,-66,16.091,4.713,600,20,0,2,0,1,0,0,0),
+(@CGUID+3255,32820,0,1,1,0,0,2992.05,698.937,93.051,5.166,600,20,0,2,0,1,0,0,0),
+(@CGUID+3256,32820,0,1,1,0,0,2994.95,383.693,7.901,5.36,600,20,0,2,0,1,0,0,0),
+(@CGUID+3257,32820,0,1,1,0,0,3003.91,-540,115.815,3.553,600,20,0,2,0,1,0,0,0),
+(@CGUID+3258,32820,0,1,1,0,0,3004.72,-494,96.224,1.054,600,20,0,2,0,1,0,0,0),
+(@CGUID+3259,32820,0,1,1,0,0,3005.26,804.189,86.07,3.823,600,20,0,2,0,1,0,0,0),
+(@CGUID+3260,32820,0,1,1,0,0,3013.12,367.309,2.625,3.236,600,20,0,2,0,1,0,0,0),
+(@CGUID+3261,32820,0,1,1,0,0,3017.92,-559,118.956,2.777,600,20,0,2,0,1,0,0,0),
+(@CGUID+3262,32820,0,1,1,0,0,3019.24,-345,7.387,2.226,600,20,0,2,0,1,0,0,0),
+(@CGUID+3263,32820,0,1,1,0,0,3021.42,-542,119.423,2.598,600,20,0,2,0,1,0,0,0),
+(@CGUID+3264,32820,0,1,1,0,0,3022.31,-143,5.012,2.794,600,20,0,2,0,1,0,0,0),
+(@CGUID+3265,32820,0,1,1,0,0,3024.11,652.807,90.253,5.443,600,20,0,2,0,1,0,0,0),
+(@CGUID+3266,32820,0,1,1,0,0,3024.93,-233,7.387,1.6,600,20,0,2,0,1,0,0,0),
+(@CGUID+3267,32820,0,1,1,0,0,3026.09,-249,7.387,4.482,600,20,0,2,0,1,0,0,0),
+(@CGUID+3268,32820,0,1,1,0,0,3026.25,-362,4.429,5.986,600,20,0,2,0,1,0,0,0),
+(@CGUID+3269,32820,0,1,1,0,0,3027.17,689.5,65.964,2.264,600,20,0,2,0,1,0,0,0),
+(@CGUID+3270,32820,0,1,1,0,0,3028.97,-179,7.284,4.565,600,20,0,2,0,1,0,0,0),
+(@CGUID+3271,32820,0,1,1,0,0,3030.19,-366,2.743,4.049,600,20,0,2,0,1,0,0,0),
+(@CGUID+3272,32820,0,1,1,0,0,3032.96,655.387,75.35,0.114,600,20,0,2,0,1,0,0,0),
+(@CGUID+3273,32820,0,1,1,0,0,3033.13,398.802,0.929,2.906,600,20,0,2,0,1,0,0,0),
+(@CGUID+3274,32820,0,1,1,0,0,3038.01,656.1,75.35,6.275,600,20,0,2,0,1,0,0,0),
+(@CGUID+3275,32820,0,1,1,0,0,3040.67,-31,5.143,5.691,600,20,0,2,0,1,0,0,0),
+(@CGUID+3276,32820,0,1,1,0,0,3041.3,660.506,57.506,2.147,600,20,0,2,0,1,0,0,0),
+(@CGUID+3277,32820,0,1,1,0,0,3043.79,657.255,57.423,1.618,600,20,0,2,0,1,0,0,0),
+(@CGUID+3278,32820,0,1,1,0,0,2982.18,601.382,98.2531,2.72127,600,20,0,2,0,1,0,0,0),
+(@CGUID+3279,32820,0,1,1,0,0,3045.31,417.43,0.567,5.655,600,20,0,2,0,1,0,0,0),
+(@CGUID+3280,32820,0,1,1,0,0,3046.45,11.109,0.234,4.485,600,20,0,2,0,1,0,0,0),
+(@CGUID+3281,32820,0,1,1,0,0,3049.32,661.191,57.423,1.826,600,20,0,2,0,1,0,0,0),
+(@CGUID+3282,32820,0,1,1,0,0,3051.71,-551,126.513,3.651,600,20,0,2,0,1,0,0,0),
+(@CGUID+3283,32820,0,1,1,0,0,3052.12,-566,126.397,2.459,600,20,0,2,0,1,0,0,0),
+(@CGUID+3284,32820,0,1,1,0,0,3052.36,426.242,7.103,4.067,600,20,0,2,0,1,0,0,0),
+(@CGUID+3285,32820,0,1,1,0,0,3054.02,-183,1.923,0.202,600,20,0,2,0,1,0,0,0),
+(@CGUID+3286,32820,0,1,1,0,0,3056.72,-559,125.842,2.512,600,20,0,2,0,1,0,0,0),
+(@CGUID+3287,32820,0,1,1,0,0,3059.86,691.63,65.964,1.097,600,20,0,2,0,1,0,0,0),
+(@CGUID+3288,32820,0,1,1,0,0,3061.28,-147,-2,2.921,600,20,0,2,0,1,0,0,0),
+(@CGUID+3289,32820,0,1,1,0,0,3069,-80,0.579,4.59,600,20,0,2,0,1,0,0,0),
+(@CGUID+3290,32820,0,1,1,0,0,3076.78,-562,126.721,2.868,600,20,0,2,0,1,0,0,0),
+(@CGUID+3291,32820,0,1,1,0,0,2928.53,696.453,108.188,1.70351,600,20,0,2,0,1,0,0,0),
+(@CGUID+3292,32820,0,1,1,0,0,3078.75,-560,126.722,3.165,600,20,0,2,0,1,0,0,0),
+(@CGUID+3293,32820,0,1,1,0,0,3088.75,-10,0.235,2.426,600,20,0,2,0,1,0,0,0),
+(@CGUID+3294,32820,0,1,1,0,0,3096.26,-566,126.807,1.006,600,20,0,2,0,1,0,0,0),
+(@CGUID+3295,32820,0,1,1,0,0,3102.06,-553,126.627,0.175,600,20,0,2,0,1,0,0,0),
+(@CGUID+3296,32820,0,1,1,0,0,3119.52,-574,128.942,0.681,600,20,0,2,0,1,0,0,0),
+(@CGUID+3297,32820,0,1,1,0,0,1964.31,1554.16,85.7158,1.30119,600,20,0,2,0,1,0,0,0),
+(@CGUID+3298,32820,0,1,1,0,0,-9744,558.748,35.745,6.004,600,20,0,2,0,1,0,0,0),
+(@CGUID+3299,32820,0,1,1,0,0,-9793,-306,46.5,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+3300,32820,0,1,1,0,0,-9860,-221,36.19,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+3301,32820,0,1,1,0,0,-9898,-277,33.4,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+3302,32820,0,1,1,0,0,-9495.05,395.521,51.949,1.53097,600,20,0,2,0,1,0,0,0),
+(@CGUID+3303,32820,0,1,1,0,0,-9270,653.4,134.5,0.4,600,20,0,2,0,1,0,0,0),
+(@CGUID+3304,32820,0,1,1,0,0,1786.59,1490.76,104.011,0.357352,600,20,0,2,0,1,0,0,0),
+(@CGUID+3305,32820,0,1,1,0,0,2010.64,1633.8,71.8949,3.6393,600,20,0,2,0,1,0,0,0),
+(@CGUID+3306,32820,0,1,1,0,0,1825.83,1520.08,90.2908,4.37744,600,20,0,2,0,1,0,0,0),
+(@CGUID+3307,32820,0,1,1,0,0,2042.86,1895.12,102.009,4.20624,600,20,0,2,0,1,0,0,0),
+(@CGUID+3308,32820,0,1,1,0,0,2947.37,537.734,95.8111,1.59355,600,20,0,2,0,1,0,0,0),
+(@CGUID+3309,32820,0,1,1,0,0,2817.39,698.619,145.777,0.297644,600,20,0,2,0,1,0,0,0),
+(@CGUID+3310,32820,0,1,1,0,0,2910.61,801.003,118.231,2.66562,600,20,0,2,0,1,0,0,0),
+(@CGUID+3311,32820,0,1,1,0,0,-385.302,1110.64,85.3631,1.345,600,20,0,2,0,1,0,0,0),
+(@CGUID+3312,32820,0,1,1,0,0,-8933.42,-236.962,79.4718,3.6465,600,20,0,2,0,1,0,0,0),
+(@CGUID+3313,32820,0,1,1,0,0,1775.35,768.2,55.1358,3.94759,600,20,0,2,0,1,0,0,0),
+(@CGUID+3314,32820,0,1,1,0,0,2142.51,1818.9,112.467,0.113485,600,20,0,2,0,1,0,0,0),
+(@CGUID+3315,32820,0,1,1,0,0,2030.92,1759.4,105.187,3.13952,600,20,0,2,0,1,0,0,0),
+(@CGUID+3316,32820,0,1,1,0,0,2053.61,1904.96,101.297,2.74847,600,20,0,2,0,1,0,0,0),
+(@CGUID+3317,32820,0,1,1,0,0,2048.1,1913.08,102.643,3.59252,600,20,0,2,0,1,0,0,0),
+(@CGUID+3318,32820,0,1,1,0,0,2037.69,1915.95,102.442,2.21748,600,20,0,2,0,1,0,0,0),
+(@CGUID+3319,32820,0,1,1,0,0,2009.23,1927.88,105.324,0.789907,600,20,0,2,0,1,0,0,0),
+(@CGUID+3320,32820,0,1,1,0,0,2004.1,1943.92,103.936,2.06274,600,20,0,2,0,1,0,0,0),
+(@CGUID+3321,32820,0,1,1,0,0,2067.3,1974.92,100.632,0.468552,600,20,0,2,0,1,0,0,0),
+(@CGUID+3322,32820,0,1,1,0,0,2056.7,1973.26,100.731,5.72906,600,20,0,2,0,1,0,0,0),
+(@CGUID+3323,32820,0,1,1,0,0,2078.01,1960.71,96.9135,5.26414,600,20,0,2,0,1,0,0,0),
+(@CGUID+3324,32820,0,1,1,0,0,2077.98,1951.27,97.9999,3.21011,600,20,0,2,0,1,0,0,0),
+(@CGUID+3325,32820,0,1,1,0,0,2041.57,1990.01,100.102,1.21743,600,20,0,2,0,1,0,0,0),
+(@CGUID+3326,32820,0,1,1,0,0,2009.06,1952.52,102.697,2.3456,600,20,0,2,0,1,0,0,0),
+(@CGUID+3327,32820,0,1,1,0,0,2021.89,1970.46,100.136,4.28176,600,20,0,2,0,1,0,0,0),
+(@CGUID+3328,32820,0,1,1,0,0,2031.09,1981.2,99.4831,5.68204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3329,32820,0,1,1,0,0,2081.52,1969.65,101.161,3.06268,600,20,0,2,0,1,0,0,0),
+(@CGUID+3330,32820,0,1,1,0,0,2068.09,1970.57,99.694,5.04511,600,20,0,2,0,1,0,0,0),
+(@CGUID+3331,32820,0,1,1,0,0,2044.35,1863.3,102.94,2.87979,600,20,0,2,0,1,0,0,0),
+(@CGUID+3332,32820,0,1,1,0,0,2045.76,1876.12,101.938,0.09333,600,20,0,2,0,1,0,0,0),
+(@CGUID+3333,32820,0,1,1,0,0,2035.48,1884.91,103.122,0.21166,600,20,0,2,0,1,0,0,0),
+(@CGUID+3334,32820,0,1,1,0,0,2045.61,1832.43,107.74,0.226662,600,20,0,2,0,1,0,0,0),
+(@CGUID+3335,32820,0,1,1,0,0,2290.18,396.015,34.0273,6.22659,600,20,1,2,0,1,0,0,0),
+(@CGUID+3336,32820,0,1,1,0,0,2235.23,248.3,33.3851,3.24248,600,20,1,2,0,1,0,0,0),
+(@CGUID+3337,32820,0,1,1,0,0,2165.83,1763.53,98.8838,0.006357,600,20,0,2,0,1,0,0,0),
+(@CGUID+3338,32820,0,1,1,0,0,2135.63,1749.76,85.8838,0.947992,600,20,0,2,0,1,0,0,0),
+(@CGUID+3339,32820,0,1,1,0,0,2114.67,1785.05,91.621,3.36632,600,20,0,2,0,1,0,0,0),
+(@CGUID+3340,32820,0,1,1,0,0,2061.67,1790.69,92.8739,2.77722,600,20,0,2,0,1,0,0,0),
+(@CGUID+3341,32820,0,1,1,0,0,2042.98,1780.07,96.8739,5.71924,600,20,0,2,0,1,0,0,0),
+(@CGUID+3342,32820,0,1,1,0,0,2090.34,1794.37,104.809,1.85416,600,20,0,2,0,1,0,0,0),
+(@CGUID+3343,32820,0,1,1,0,0,2267.57,1148.76,33.1175,0.06058,600,20,0,2,0,1,0,0,0),
+(@CGUID+3344,32820,0,1,1,0,0,1952.85,674.922,46.8509,1.98156,600,20,0,2,0,1,0,0,0),
+(@CGUID+3345,32820,0,1,1,0,0,2149.02,-707.278,66.9912,5.39988,600,20,0,2,0,1,0,0,0),
+(@CGUID+3346,32820,0,1,1,0,0,2246.61,329.109,35.1891,5.54353,600,20,0,2,0,1,0,0,0),
+(@CGUID+3347,32820,0,1,1,0,0,-9585.09,22.4941,60.2258,3.83489,600,20,0,2,0,1,0,0,0),
+(@CGUID+3348,32820,0,1,1,0,0,1767.39,1401.59,95.4556,0.907202,600,20,0,2,0,1,0,0,0),
+(@CGUID+3349,32820,0,1,1,0,0,2133,1812.78,107.113,0.076802,600,20,0,2,0,1,0,0,0),
+(@CGUID+3350,32820,0,1,1,0,0,2055.19,1802.37,99.9483,5.11756,600,20,0,2,0,1,0,0,0),
+(@CGUID+3351,32820,0,1,1,0,0,1785.62,1413.87,89.7434,5.52893,600,20,0,2,0,1,0,0,0),
+(@CGUID+3352,32820,0,1,1,0,0,2150.35,1796.23,111.591,3.85096,600,20,0,2,0,1,0,0,0),
+(@CGUID+3353,32820,0,1,1,0,0,2176.15,1773.74,106.631,4.70236,600,20,0,2,0,1,0,0,0),
+(@CGUID+3354,32820,0,1,1,0,0,1745.32,1456.14,127.703,0.931008,600,20,0,2,0,1,0,0,0),
+(@CGUID+3355,32820,0,1,1,0,0,1745.24,1384.37,99.1645,3.97365,600,20,0,2,0,1,0,0,0),
+(@CGUID+3356,32820,0,1,1,0,0,1682.29,1331.34,129.135,5.97211,600,20,0,2,0,1,0,0,0),
+(@CGUID+3357,32820,0,1,1,0,0,1842.72,1326.38,82.5225,3.55238,600,20,0,2,0,1,0,0,0),
+(@CGUID+3358,32820,0,1,1,0,0,2042.62,1535.94,77.489,0.78331,600,20,0,2,0,1,0,0,0),
+(@CGUID+3359,32820,0,1,1,0,0,1680.36,1459.78,131.926,5.12536,600,20,0,2,0,1,0,0,0),
+(@CGUID+3360,32820,0,1,1,0,0,1743.9,1484.4,131.095,1.93249,600,20,0,2,0,1,0,0,0),
+(@CGUID+3361,32820,0,1,1,0,0,1843.25,1411.66,81.1712,3.52332,600,20,0,2,0,1,0,0,0),
+(@CGUID+3362,32820,0,1,1,0,0,1856.99,1486.92,90.4841,6.24703,600,20,0,2,0,1,0,0,0),
+(@CGUID+3363,32820,0,1,1,0,0,1875.6,1475.32,84.1047,1.0482,600,20,0,2,0,1,0,0,0),
+(@CGUID+3364,32820,0,1,1,0,0,1876.33,1286.86,97.0498,2.29111,600,20,0,2,0,1,0,0,0),
+(@CGUID+3365,32820,0,1,1,0,0,1904.95,1459.38,81.8932,1.99645,600,20,0,2,0,1,0,0,0),
+(@CGUID+3366,32820,0,1,1,0,0,1897.44,1470.9,84.7727,1.74171,600,20,0,2,0,1,0,0,0),
+(@CGUID+3367,32820,0,1,1,0,0,1814.22,1281.65,98.8504,4.30128,600,20,0,2,0,1,0,0,0),
+(@CGUID+3368,32820,0,1,1,0,0,-9314.44,534.504,75.7665,5.50474,600,20,0,2,0,1,0,0,0),
+(@CGUID+3369,32820,0,1,1,0,0,2164.71,1707.36,94.5088,5.24337,600,20,0,2,0,1,0,0,0),
+(@CGUID+3370,32820,0,1,1,0,0,1700.66,1412.59,128.992,3.27602,600,20,0,2,0,1,0,0,0),
+(@CGUID+3371,32820,0,1,1,0,0,1904.61,1490.4,93.9505,1.04444,600,20,0,2,0,1,0,0,0),
+(@CGUID+3372,32820,0,1,1,0,0,1911.6,1499.34,89.1851,4.08433,600,20,0,2,0,1,0,0,0),
+(@CGUID+3373,32820,0,1,1,0,0,-9511.31,-1285.64,44.1448,3.93122,600,20,0,2,0,1,0,0,0),
+(@CGUID+3374,32820,0,1,1,0,0,-9071.98,445.326,93.2958,5.4317,600,20,1,2,0,1,0,0,0),
+(@CGUID+3375,32820,0,1,1,0,0,-9055.89,424.686,93.2957,2.28775,600,20,1,2,0,1,0,0,0),
+(@CGUID+3376,32820,0,1,1,0,0,-10561.6,-1320.52,47.1949,2.26275,600,20,0,2,0,1,0,0,0),
+(@CGUID+3377,32820,0,1,1,0,0,-10683.7,-1233.15,28.7227,5.27282,600,20,0,2,0,1,0,0,0),
+(@CGUID+3378,32820,0,1,1,0,0,-10672.2,-1153.13,25.833,1.41593,600,20,0,2,0,1,0,0,0),
+(@CGUID+3379,32820,0,1,1,0,0,-9427.15,129.176,59.4742,2.84226,600,20,0,2,0,1,0,0,0),
+(@CGUID+3380,32820,0,1,1,0,0,-9332.22,272.505,68.1097,1.01197,600,20,0,2,0,1,0,0,0),
+(@CGUID+3381,32820,0,1,1,0,0,-9325.21,269.797,67.8272,5.27587,600,20,0,2,0,1,0,0,0),
+(@CGUID+3382,32820,0,1,1,0,0,-790.13,-605.027,22.1652,4.44376,600,20,0,2,0,1,0,0,0),
+(@CGUID+3383,32820,0,1,1,0,0,-753.823,-573.231,19.5524,1.55322,600,20,0,2,0,1,0,0,0),
+(@CGUID+3384,32820,0,1,1,0,0,-816.533,-537.25,15.3231,2.77414,600,20,0,2,0,1,0,0,0),
+(@CGUID+3385,32820,0,1,1,0,0,-814.948,-616.612,13.8203,1.96799,600,20,0,2,0,1,0,0,0),
+(@CGUID+3386,32820,0,1,1,0,0,-908.8,-959.17,30.4945,0.763091,600,20,0,2,0,1,0,0,0),
+(@CGUID+3387,32820,0,1,1,0,0,-10694.7,-1130.38,25.5715,3.55496,600,20,0,2,0,1,0,0,0),
+(@CGUID+3388,32820,0,1,1,0,0,-526.007,18.1682,49.3176,3.12987,600,20,0,2,0,1,0,0,0),
+(@CGUID+3389,32820,0,1,1,0,0,-479.589,4.75845,55.4283,4.72252,600,20,0,2,0,1,0,0,0),
+(@CGUID+3390,32820,0,1,1,0,0,-9944.64,-150.41,25.0081,1.68865,600,20,0,2,0,1,0,0,0),
+(@CGUID+3391,32820,0,1,1,0,0,-9472.62,47.3926,56.7775,5.34535,600,20,0,2,0,1,0,0,0),
+(@CGUID+3392,32820,0,1,1,0,0,-9507.4,-1209.39,47.8715,3.73257,600,20,0,2,0,1,0,0,0),
+(@CGUID+3393,32820,0,1,1,0,0,-9475.52,-1161.98,50.9518,4.90971,600,20,0,2,0,1,0,0,0),
+(@CGUID+3394,32820,0,1,1,0,0,-9478.55,-1166.22,50.4518,4.10283,600,20,0,2,0,1,0,0,0),
+(@CGUID+3395,32820,0,1,1,0,0,1977.02,1522.91,87.5698,4.72587,600,20,0,2,0,1,0,0,0),
+(@CGUID+3396,32820,0,1,1,0,0,1975.66,1546.43,87.2305,1.15654,600,20,0,2,0,1,0,0,0),
+(@CGUID+3397,32820,0,1,1,0,0,1976.01,1501.05,86.214,0.928894,600,20,0,2,0,1,0,0,0),
+(@CGUID+3398,32820,0,1,1,0,0,1994.22,1586.34,81.2317,2.31178,600,20,0,2,0,1,0,0,0),
+(@CGUID+3399,32820,0,1,1,0,0,1987.36,1591.49,82.5041,5.49851,600,20,0,2,0,1,0,0,0),
+(@CGUID+3400,32820,0,1,1,0,0,1971.58,1570.47,79.1067,4.18616,600,20,0,2,0,1,0,0,0),
+(@CGUID+3401,32820,0,1,1,0,0,2021.87,1612.39,71.5787,3.98252,600,20,0,2,0,1,0,0,0),
+(@CGUID+3402,32820,0,1,1,0,0,2993.51,640.431,95.6329,3.82409,600,20,0,2,0,1,0,0,0),
+(@CGUID+3403,32820,0,1,1,0,0,2908.8,916.291,115.437,1.75454,600,20,0,2,0,1,0,0,0),
+(@CGUID+3404,32820,0,1,1,0,0,3076.84,-557,126.803,3.108,600,20,0,2,0,1,0,0,0),
+(@CGUID+3405,32820,0,1,1,0,0,3076.96,-562.549,126.721,3.01007,600,20,0,2,0,1,0,0,0),
+(@CGUID+3406,32820,0,1,1,0,0,-9791.47,720.201,68.2069,0.529751,600,20,0,2,0,1,0,0,0),
+(@CGUID+3407,32820,0,1,1,0,0,-9616.04,642.939,62.6796,5.88775,600,20,0,2,0,1,0,0,0),
+(@CGUID+3408,32820,0,1,1,0,0,-9625.31,695.083,62.7331,2.7061,600,20,0,2,0,1,0,0,0),
+(@CGUID+3409,32820,0,1,1,0,0,1688.74,-726.084,58.1182,1.29598,600,20,0,2,0,1,0,0,0),
+(@CGUID+3410,32820,0,1,1,0,0,-9041.9,434.215,93.296,2.11911,600,20,0,2,0,1,0,0,0),
+(@CGUID+3411,32820,0,1,1,0,0,1909.56,1307.61,90.0274,5.69666,600,20,0,2,0,1,0,0,0),
+(@CGUID+3412,32820,0,1,1,0,0,1916.15,1382.17,69.2014,4.87436,600,20,0,2,0,1,0,0,0),
+(@CGUID+3413,32820,0,1,1,0,0,1806.7,1357.22,85.9472,2.21564,600,20,0,2,0,1,0,0,0),
+(@CGUID+3414,32820,0,1,1,0,0,1770.66,1357.48,89.9835,0.627305,600,20,0,2,0,1,0,0,0),
+(@CGUID+3415,32820,0,1,1,0,0,1780.09,1306.45,102.451,0.492249,600,20,0,2,0,1,0,0,0),
+(@CGUID+3416,32820,0,1,1,0,0,1789.5,1376.98,86.1594,0.482362,600,20,0,2,0,1,0,0,0),
+(@CGUID+3417,32820,0,1,1,0,0,1751.2,1321.49,101.106,4.24247,600,20,0,2,0,1,0,0,0),
+(@CGUID+3418,32820,0,1,1,0,0,1757.26,1370.34,92.2895,3.84071,600,20,0,2,0,1,0,0,0),
+(@CGUID+3419,32820,0,1,1,0,0,1731.53,1369.26,103.698,3.65316,600,20,0,2,0,1,0,0,0),
+(@CGUID+3420,32820,0,1,1,0,0,1812.44,1387.72,78.1535,4.82501,600,20,0,2,0,1,0,0,0),
+(@CGUID+3421,32820,0,1,1,0,0,1767.78,1335.96,90.7335,3.74657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3422,32820,0,1,1,0,0,1729.5,1318.17,111.616,5.02367,600,20,0,2,0,1,0,0,0),
+(@CGUID+3423,32820,0,1,1,0,0,1779.57,1381.83,90.4094,2.32509,600,20,0,2,0,1,0,0,0),
+(@CGUID+3424,32820,0,1,1,0,0,1789.48,1335.2,89.7295,1.36136,600,20,0,2,0,1,0,0,0),
+(@CGUID+3425,32820,0,1,1,0,0,1795.91,1342.81,89.0869,3.64774,600,20,0,2,0,1,0,0,0),
+(@CGUID+3426,32820,0,1,1,0,0,-11098.5,-1830.69,71.8642,3.63551,600,20,0,2,0,1,0,0,0),
+(@CGUID+3427,32820,0,1,1,0,0,2692.43,530.939,22.942,2.97468,600,20,0,2,0,1,0,0,0),
+(@CGUID+3428,32820,0,1,1,0,0,2598.77,480.74,24.1265,2.61145,600,20,0,2,0,1,0,0,0),
+(@CGUID+3429,32820,0,1,1,0,0,2487.49,455.609,39.5088,0.0451597,600,20,0,2,0,1,0,0,0),
+(@CGUID+3430,32820,0,1,1,0,0,-5429.74,-524.295,397.028,1.47952,600,20,0,2,0,1,0,0,0),
+(@CGUID+3431,32820,0,1,1,0,0,-9393.06,-12.708,61.7282,0.609785,600,20,0,2,0,1,0,0,0),
+(@CGUID+3432,32820,0,1,1,0,0,-5251.04,-2890.35,339.293,0.932313,600,20,0,2,0,1,0,0,0),
+(@CGUID+3433,32820,0,1,1,0,0,2553.22,507.565,18.0189,4.67312,600,20,0,2,0,1,0,0,0),
+(@CGUID+3434,32820,0,1,1,0,0,2522.67,506.184,38.5263,0.121734,600,20,0,2,0,1,0,0,0),
+(@CGUID+3435,32820,0,1,1,0,0,2607.11,642.275,28.6185,4.66722,600,20,0,2,0,1,0,0,0),
+(@CGUID+3436,32820,0,1,1,0,0,-10722.2,1669.9,44.0413,1.1882,600,20,0,2,0,1,0,0,0),
+(@CGUID+3437,32820,0,1,1,0,0,-9842.73,1269.92,41.3237,0.834495,600,20,0,2,0,1,0,0,0),
+(@CGUID+3438,32820,0,1,1,0,0,-10324,1419.24,39.9909,1.01209,600,20,0,2,0,1,0,0,0),
+(@CGUID+3439,32820,0,1,1,0,0,-10142.5,1048.42,36.8772,2.92152,600,20,0,2,0,1,0,0,0),
+(@CGUID+3440,32820,0,1,1,0,0,-10093.3,1053.26,37.1329,5.03173,600,20,0,2,0,1,0,0,0),
+(@CGUID+3441,32820,0,1,1,0,0,-10101.1,1053.31,36.5544,1.38766,600,20,0,2,0,1,0,0,0),
+(@CGUID+3442,32820,0,1,1,0,0,2364.21,1314.57,33.4123,1.35871,600,20,0,2,0,1,0,0,0),
+(@CGUID+3443,32820,0,1,1,0,0,2141.23,640.716,34.2212,5.15441,600,20,0,2,0,1,0,0,0),
+(@CGUID+3444,32820,0,1,1,0,0,2293.08,310.279,35.611,3.29253,600,20,0,2,0,1,0,0,0),
+(@CGUID+3445,32820,0,1,1,0,0,2326.63,1351.72,33.4583,5.00745,600,20,0,2,0,1,0,0,0),
+(@CGUID+3446,32820,0,1,1,0,0,2053.13,1905.26,101.451,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3447,32820,0,1,1,0,0,2047.8,1912.96,102.799,5.39307,600,20,0,2,0,1,0,0,0),
+(@CGUID+3448,32820,0,1,1,0,0,2059.84,1747.6,82.0121,5.46288,600,20,0,2,0,1,0,0,0),
+(@CGUID+3449,32820,0,1,1,0,0,2048.31,1729.92,80.3154,1.5708,600,20,0,2,0,1,0,0,0),
+(@CGUID+3450,32820,0,1,1,0,0,1996.41,1699.24,79.0733,4.19742,600,20,0,2,0,1,0,0,0),
+(@CGUID+3451,32820,0,1,1,0,0,2039.44,1637.45,70.7334,3.08192,600,20,0,2,0,1,0,0,0),
+(@CGUID+3452,32820,0,1,1,0,0,-9346.44,171.041,61.5582,2.74061,600,20,0,2,0,1,0,0,0),
+(@CGUID+3453,32820,0,1,1,0,0,-9340.16,183.339,61.5512,0.349854,600,20,0,2,0,1,0,0,0),
+(@CGUID+3454,32820,0,1,1,0,0,-9958.02,-155.297,22.3585,5.67327,600,20,0,2,0,1,0,0,0),
+(@CGUID+3455,32820,0,1,1,0,0,-9960.07,-154.13,21.9752,5.60729,600,20,0,2,0,1,0,0,0),
+(@CGUID+3456,32820,0,1,1,0,0,2023.33,1615.64,71.4021,2.48225,600,20,0,2,0,1,0,0,0),
+(@CGUID+3457,32820,0,1,1,0,0,2018.5,1613.13,71.539,5.58342,600,20,0,2,0,1,0,0,0),
+(@CGUID+3458,32820,0,1,1,0,0,2007.43,1635.3,72.8902,1.47816,600,20,0,2,0,1,0,0,0),
+(@CGUID+3459,32820,0,1,1,0,0,2143.41,1713.96,88.0088,4.44622,600,20,0,2,0,1,0,0,0),
+(@CGUID+3460,32820,0,1,1,0,0,2121.93,1762.63,89.4838,0.686555,600,20,0,2,0,1,0,0,0),
+(@CGUID+3461,32820,0,1,1,0,0,2113.85,1753.13,81.2572,6.05912,600,20,0,2,0,1,0,0,0),
+(@CGUID+3462,32820,0,1,1,0,0,797.762,-426.993,135.484,2.26174,600,20,0,2,0,1,0,0,0),
+(@CGUID+3463,32820,0,1,1,0,0,-7106.25,-3488.66,242.38,0.0916974,600,20,0,2,0,1,0,0,0),
+(@CGUID+3464,32820,0,1,1,0,0,-6863.72,-1537.16,241.747,3.64169,600,20,0,2,0,1,0,0,0),
+(@CGUID+3465,32820,0,1,1,0,0,1849.51,-2142.72,68.1751,3.99197,600,20,0,2,0,1,0,0,0),
+(@CGUID+3466,32820,0,1,1,0,0,2123.26,1723.26,75.4448,0.848595,600,20,0,2,0,1,0,0,0),
+(@CGUID+3467,32820,0,1,1,0,0,-9861.98,-223.795,36.1011,0.612494,600,20,0,2,0,1,0,0,0),
+(@CGUID+3468,32820,0,1,1,0,0,-9778.55,-1564.57,41.988,1.68063,600,20,0,2,0,1,0,0,0),
+(@CGUID+3469,32820,0,1,1,0,0,2051.51,1574.01,74.622,1.76244,600,20,0,2,0,1,0,0,0),
+(@CGUID+3470,32820,0,1,1,0,0,2020.66,1586.14,74.7462,2.30483,600,20,0,2,0,1,0,0,0),
+(@CGUID+3471,32820,0,1,1,0,0,-9897.53,1311.06,42.2721,2.52486,600,20,0,2,0,1,0,0,0),
+(@CGUID+3472,32820,0,1,1,0,0,2239.51,282.798,35.1478,5.28835,600,20,0,2,0,1,0,0,0),
+(@CGUID+3473,32820,0,1,1,0,0,1877.29,1485.36,86.1047,1.54772,600,20,0,2,0,1,0,0,0),
+(@CGUID+3474,32820,0,1,1,0,0,-5621.95,-472.837,397.14,5.67232,600,20,0,2,0,1,0,0,0),
+(@CGUID+3475,32820,0,1,1,0,0,1819.41,219.233,60.0732,0.337883,600,20,0,2,0,1,0,0,0),
+(@CGUID+3476,32820,0,1,1,0,0,603.436,1338.35,88.5123,5.87362,600,20,0,2,0,1,0,0,0),
+(@CGUID+3477,32820,0,1,1,0,0,-156.058,-872.543,57.013,2.16546,600,20,0,2,0,1,0,0,0),
+(@CGUID+3478,32820,0,1,1,0,0,2286.63,403.383,33.9185,5.40354,600,20,0,2,0,1,0,0,0),
+(@CGUID+3479,32820,0,1,1,0,0,2055.57,246.986,99.7687,5.24251,600,20,0,2,0,1,0,0,0),
+(@CGUID+3480,32820,0,1,1,0,0,2061.88,245.766,99.7687,3.6992,600,20,0,2,0,1,0,0,0),
+(@CGUID+3481,32820,0,1,1,0,0,2069.68,281.58,97.0315,1.49224,600,20,0,2,0,1,0,0,0),
+(@CGUID+3482,32820,0,1,1,0,0,2062.2,282.961,97.0315,1.13488,600,20,0,2,0,1,0,0,0),
+(@CGUID+3483,32820,0,1,1,0,0,1922.26,1487.58,87.5093,4.91906,600,20,0,2,0,1,0,0,0),
+(@CGUID+3484,32820,0,1,1,0,0,1925.79,1505.03,87.8891,2.73881,600,20,0,2,0,1,0,0,0),
+(@CGUID+3485,32820,0,1,1,0,0,1879.95,1531.01,88.1731,1.93335,600,20,0,2,0,1,0,0,0),
+(@CGUID+3486,32820,0,1,1,0,0,1941.18,1482.73,80.68,3.9118,600,20,0,2,0,1,0,0,0),
+(@CGUID+3487,32820,0,1,1,0,0,1936.46,1470.72,76.8807,3.05083,600,20,0,2,0,1,0,0,0),
+(@CGUID+3488,32820,0,1,1,0,0,1942.84,1504.06,86.6385,1.42973,600,20,0,2,0,1,0,0,0),
+(@CGUID+3489,32820,0,1,1,0,0,1938.6,1520.76,88.0872,1.41664,600,20,0,2,0,1,0,0,0),
+(@CGUID+3490,32820,0,1,1,0,0,1900.82,1551.82,88.9754,5.83433,600,20,0,2,0,1,0,0,0),
+(@CGUID+3491,32820,0,1,1,0,0,1903.38,1571.51,89.0855,6.14036,600,20,0,2,0,1,0,0,0),
+(@CGUID+3492,32820,0,1,1,0,0,1939.42,1543.6,90.165,1.29469,600,20,0,2,0,1,0,0,0),
+(@CGUID+3493,32820,0,1,1,0,0,1916.89,1579.84,85.3748,5.26223,600,20,0,2,0,1,0,0,0),
+(@CGUID+3494,32820,0,1,1,0,0,1941.21,1459.58,73.8011,3.80354,600,20,0,2,0,1,0,0,0),
+(@CGUID+3495,32820,0,1,1,0,0,1953.75,1514.37,88.0872,5.63848,600,20,0,2,0,1,0,0,0),
+(@CGUID+3496,32820,0,1,1,0,0,1952.23,1474.47,79.4592,3.58341,600,20,0,2,0,1,0,0,0),
+(@CGUID+3497,32820,0,1,1,0,0,1926.11,1583.07,83.2642,2.48772,600,20,0,2,0,1,0,0,0),
+(@CGUID+3498,32820,0,1,1,0,0,1975.21,1496.68,85.9142,3.69236,600,20,0,2,0,1,0,0,0),
+(@CGUID+3499,32820,0,1,1,0,0,1908.9,1605.24,85.7089,1.83176,600,20,0,2,0,1,0,0,0),
+(@CGUID+3500,32820,0,1,1,0,0,1945.63,1589.38,82.286,3.08945,600,20,0,2,0,1,0,0,0),
+(@CGUID+3501,32820,0,1,1,0,0,1976.71,1547.91,87.0632,2.66361,600,20,0,2,0,1,0,0,0),
+(@CGUID+3502,32820,0,1,1,0,0,1978.92,1574.15,79.2329,5.05864,600,20,0,2,0,1,0,0,0),
+(@CGUID+3503,32820,0,1,1,0,0,1980.2,1591.12,82.4889,3.00435,600,20,0,2,0,1,0,0,0),
+(@CGUID+3504,32820,0,1,1,0,0,1910.31,1641.54,89.5206,3.50196,600,20,0,2,0,1,0,0,0),
+(@CGUID+3505,32820,0,1,1,0,0,1865.18,1669.82,93.3175,2.92431,600,20,0,2,0,1,0,0,0),
+(@CGUID+3506,32820,0,1,1,0,0,1926.77,1661.55,79.5127,0.077276,600,20,0,2,0,1,0,0,0),
+(@CGUID+3507,32820,0,1,1,0,0,1981.57,1528.8,86.8198,3.16503,600,20,0,2,0,1,0,0,0),
+(@CGUID+3508,32820,0,1,1,0,0,1991.34,1528.17,80.8495,4.96921,600,20,0,2,0,1,0,0,0),
+(@CGUID+3509,32820,0,1,1,0,0,2015.67,1553.31,79.1846,0.825705,600,20,0,2,0,1,0,0,0),
+(@CGUID+3510,32820,0,1,1,0,0,2000.95,1587.97,78.9962,0.191096,600,20,0,2,0,1,0,0,0),
+(@CGUID+3511,32820,0,1,1,0,0,1962.43,1638.69,78.8776,3.91656,600,20,0,2,0,1,0,0,0),
+(@CGUID+3512,32820,0,1,1,0,0,1944.29,1667.7,78.3294,5.0045,600,20,0,2,0,1,0,0,0),
+(@CGUID+3513,32820,0,1,1,0,0,2004.91,1641.77,73.3319,3.15426,600,20,0,2,0,1,0,0,0),
+(@CGUID+3514,32820,0,1,1,0,0,1931.45,1688.03,79.5437,6.06427,600,20,0,2,0,1,0,0,0),
+(@CGUID+3515,32820,0,1,1,0,0,1964.51,1690.35,78.3776,1.10587,600,20,0,2,0,1,0,0,0),
+(@CGUID+3516,32820,0,1,1,0,0,1905.2,1690.69,86.5372,4.7797,600,20,0,2,0,1,0,0,0),
+(@CGUID+3517,32820,0,1,1,0,0,1980.72,1677.9,78.1821,0.840403,600,20,0,2,0,1,0,0,0),
+(@CGUID+3518,32820,0,1,1,0,0,1969.44,1592.83,82.4083,5.2709,600,20,0,2,0,1,0,0,0),
+(@CGUID+3519,32820,0,1,1,0,0,2018.37,1524,78.2645,3.27533,600,20,0,2,0,1,0,0,0),
+(@CGUID+3520,32820,0,1,1,0,0,2009.44,1505.26,73.9583,0.280782,600,20,0,2,0,1,0,0,0),
+(@CGUID+3521,32820,0,1,1,0,0,1930.14,1606.7,83.0828,4.03171,600,20,0,2,0,1,0,0,0),
+(@CGUID+3522,32820,0,1,1,0,0,1986.28,1453.64,72.3036,3.93793,600,20,0,2,0,1,0,0,0),
+(@CGUID+3523,32820,0,1,1,0,0,2075.97,1690.9,70.36,1.95063,600,20,0,2,0,1,0,0,0),
+(@CGUID+3524,32820,0,1,1,0,0,1940.68,1629.14,80.2658,0,600,20,0,2,0,1,0,0,0),
+(@CGUID+3525,32820,0,1,1,0,0,1922.12,1585.29,83.6855,4.3673,600,20,0,2,0,1,0,0,0),
+(@CGUID+3526,32820,0,1,1,0,0,1912.03,1588.68,85.3317,2.88977,600,20,0,2,0,1,0,0,0),
+(@CGUID+3527,32820,0,1,1,0,0,1938.94,1571.99,82.8736,2.15963,600,20,0,2,0,1,0,0,0),
+(@CGUID+3528,32820,0,1,1,0,0,1839.13,1676.02,97.8696,2.48715,600,20,0,2,0,1,0,0,0),
+(@CGUID+3529,32820,0,1,1,0,0,-8440.71,332.994,122.579,2.25725,600,20,0,2,0,1,0,0,0),
+(@CGUID+3530,32820,0,1,1,0,0,1986.74,-3652.08,120.22,3.70105,600,20,0,2,0,1,0,0,0),
+(@CGUID+3531,32820,0,1,1,0,0,1785.33,255.107,59.4587,5.99957,600,20,0,2,0,1,0,0,0),
+(@CGUID+3532,32820,0,1,1,0,0,1780.83,222.77,59.5924,6.05062,600,20,0,2,0,1,0,0,0),
+(@CGUID+3533,32820,0,1,1,0,0,1782.32,220.804,59.682,2.22355,600,20,0,2,0,1,0,0,0),
+(@CGUID+3534,32820,0,1,1,0,0,1821.38,222.513,60.1257,1.27628,600,20,0,2,0,1,0,0,0),
+(@CGUID+3535,32820,0,1,1,0,0,1824.52,227.309,60.1057,4.05004,600,20,0,2,0,1,0,0,0),
+(@CGUID+3536,32820,0,1,1,0,0,1825.34,223.486,60.3934,2.58265,600,20,0,2,0,1,0,0,0),
+(@CGUID+3537,32820,0,1,1,0,0,1835.32,263.231,59.9427,5.64963,600,20,0,2,0,1,0,0,0),
+(@CGUID+3538,32820,0,1,1,0,0,1827.62,265.956,59.9849,5.97439,600,20,0,2,0,1,0,0,0),
+(@CGUID+3539,32820,0,1,1,0,0,1829.44,268.891,59.9694,5.55464,600,20,0,2,0,1,0,0,0),
+(@CGUID+3540,32820,0,1,1,0,0,1831.32,263.327,59.7531,0.343526,600,20,0,2,0,1,0,0,0),
+(@CGUID+3541,32820,0,1,1,0,0,1832.91,267.348,59.9059,5.20296,600,20,0,2,0,1,0,0,0),
+(@CGUID+3542,32820,0,1,1,0,0,-9553.82,-1369.03,51.2913,4.73714,600,20,0,2,0,1,0,0,0),
+(@CGUID+3543,32820,0,1,1,0,0,-10569.2,270.718,30.3921,2.22656,600,20,0,2,0,1,0,0,0),
+(@CGUID+3544,32820,0,1,1,0,0,-6300.15,-3497.22,249.889,0.483008,600,20,0,2,0,1,0,0,0),
+(@CGUID+3545,32820,0,1,1,0,0,992.215,-1450.24,61.5221,2.99252,600,20,0,2,0,1,0,0,0),
+(@CGUID+3546,32820,0,1,1,0,0,-1208.24,-2664.68,45.3872,5.93412,600,20,0,2,0,1,0,0,0),
+(@CGUID+3547,32820,0,1,1,0,0,-14298.2,55.3486,1.47578,2.54818,600,20,0,2,0,1,0,0,0),
+(@CGUID+3548,32820,0,1,1,0,0,-612.235,-547.718,36.5576,4.5204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3549,32820,0,1,1,0,0,-3442.66,-947.768,9.99993,4.10152,600,20,0,2,0,1,0,0,0),
+(@CGUID+3550,32820,0,1,1,0,0,-14298.2,55.3486,1.47578,2.54818,600,20,0,2,0,1,0,0,0),
+(@CGUID+3551,32820,0,1,1,0,0,-9386.23,26.1518,60.6273,4.5204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3552,32820,0,1,1,0,0,-9432.88,-2136.9,66.4413,4.17939,600,20,0,2,0,1,0,0,0),
+(@CGUID+3553,32820,0,1,1,0,0,183.036,-2129.67,103.204,3.66519,600,20,0,2,0,1,0,0,0),
+(@CGUID+3554,32820,0,1,1,0,0,-10645.8,1061.62,33.1256,5.49779,600,20,0,2,0,1,0,0,0),
+(@CGUID+3555,32820,0,1,1,0,0,-5415.36,-497.514,396.772,4.76475,600,20,0,2,0,1,0,0,0),
+(@CGUID+3556,32820,0,1,1,0,0,-5243.61,-2892.8,338.307,1.93731,600,20,0,2,0,1,0,0,0),
+(@CGUID+3557,32820,0,1,1,0,0,-10697.6,-1158.41,25.0413,3.90954,600,20,0,2,0,1,0,0,0),
+(@CGUID+3558,32820,0,1,1,0,0,-1208.24,-2664.68,45.3872,5.93412,600,20,0,2,0,1,0,0,0),
+(@CGUID+3559,32820,0,1,1,0,0,-10943.7,-3228.1,41.5281,4.5204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3560,32820,0,1,1,0,0,-9389.17,26.7242,60.1325,4.5204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3561,32820,0,1,1,0,0,1005.67,-1467.89,61.4503,3.50539,600,20,0,2,0,1,0,0,0),
+(@CGUID+3562,32820,0,1,1,0,0,991.474,-1439.02,64.4612,4.86805,600,20,0,2,0,1,0,0,0),
+(@CGUID+3563,32820,0,1,1,0,0,1002.38,-1469.14,62.0178,0.285257,600,20,0,2,0,1,0,0,0),
+(@CGUID+3564,32820,0,1,1,0,0,991.534,-1441.7,63.8837,1.57881,600,20,0,2,0,1,0,0,0),
+(@CGUID+3565,32820,0,1,1,0,0,-9547.6,83.9896,59.5094,5.09636,600,20,0,2,0,1,0,0,0),
+(@CGUID+3566,32820,0,1,1,0,0,-9554.76,82.208,59.0394,1.38046,600,20,0,2,0,1,0,0,0),
+(@CGUID+3567,32820,0,1,1,0,0,-9548.47,115.032,59.1045,3.35103,600,20,0,2,0,1,0,0,0),
+(@CGUID+3568,32820,0,1,1,0,0,-5038.69,-793.428,495.214,2.36238,600,20,0,2,0,1,0,0,0),
+(@CGUID+3569,32820,0,1,1,0,0,-9145.26,339.64,90.6757,0.052739,600,20,0,2,0,1,0,0,0),
+(@CGUID+3570,32820,0,1,1,0,0,-5041.32,-790.831,495.211,0.350973,600,20,0,2,0,1,0,0,0),
+(@CGUID+3571,32820,0,1,1,0,0,-9129.28,362.629,92.3738,4.11774,600,20,0,2,0,1,0,0,0),
+(@CGUID+3572,32820,0,1,1,0,0,-5037.43,-789.404,495.213,3.49257,600,20,0,2,0,1,0,0,0),
+(@CGUID+3573,32820,0,1,1,0,0,-9114.79,338.765,93.6277,2.9147,600,20,0,2,0,1,0,0,0),
+(@CGUID+3574,32820,0,1,1,0,0,-9118.65,325.3,93.3136,1.91986,600,20,0,2,0,1,0,0,0),
+(@CGUID+3575,32820,0,1,1,0,0,-9128.35,345.368,94.0594,2.68781,600,20,0,2,0,1,0,0,0),
+(@CGUID+3576,32820,0,1,1,0,0,-9130.68,347.471,93.6376,5.67232,600,20,0,2,0,1,0,0,0),
+(@CGUID+3577,32820,0,1,1,0,0,-9131.85,358.836,92.3964,0.976147,600,20,0,2,0,1,0,0,0),
+(@CGUID+3578,32820,0,1,1,0,0,-9142.22,339.801,91.3411,3.19433,600,20,0,2,0,1,0,0,0),
+(@CGUID+3579,32820,0,1,1,0,0,-9118.48,348.456,93.9492,3.78736,600,20,0,2,0,1,0,0,0),
+(@CGUID+3580,32820,0,1,1,0,0,-9130.91,344.503,93.7304,0.942478,600,20,0,2,0,1,0,0,0),
+(@CGUID+3581,32820,0,1,1,0,0,-9130.69,333.939,93.3105,0.837273,600,20,0,2,0,1,0,0,0),
+(@CGUID+3582,32820,0,1,1,0,0,-9126.82,338.231,93.9283,3.97886,600,20,0,2,0,1,0,0,0),
+(@CGUID+3583,32820,0,1,1,0,0,-9127.97,347.931,93.9306,3.87463,600,20,0,2,0,1,0,0,0),
+(@CGUID+3584,32820,0,1,1,0,0,-5210.18,-512.958,389.592,0.808568,600,20,0,2,0,1,0,0,0),
+(@CGUID+3585,32820,0,1,1,0,0,-5195.69,-515.611,389.714,5.10018,600,20,0,2,0,1,0,0,0),
+(@CGUID+3586,32820,0,1,1,0,0,-5139.07,-579.316,397.26,4.03171,600,20,0,2,0,1,0,0,0),
+(@CGUID+3587,32820,0,1,1,0,0,-5185.08,-608.256,397.26,0.506145,600,20,0,2,0,1,0,0,0),
+(@CGUID+3588,32820,0,1,1,0,0,-5149.61,-634.204,397.265,1.72788,600,20,0,2,0,1,0,0,0),
+(@CGUID+3589,32820,0,1,1,0,0,-5210.78,-506.068,388.505,5.52483,600,20,0,2,0,1,0,0,0),
+(@CGUID+3590,32820,0,1,1,0,0,-5194.19,-519.275,390.262,1.95859,600,20,0,2,0,1,0,0,0),
+(@CGUID+3591,32820,0,1,1,0,0,-5207.01,-509.638,388.825,3.95016,600,20,0,2,0,1,0,0,0),
+(@CGUID+3592,32820,0,1,1,0,0,-5172.55,-586.553,397.906,0.046851,600,20,0,2,0,1,0,0,0),
+(@CGUID+3593,32820,0,1,1,0,0,-5166.66,-586.277,397.821,3.18844,600,20,0,2,0,1,0,0,0),
+(@CGUID+3594,32820,0,1,1,0,0,-5179.54,-596.714,397.412,4.97636,600,20,0,2,0,1,0,0,0),
+(@CGUID+3595,32820,0,1,1,0,0,-5178.24,-601.539,397.367,5.77101,600,20,0,2,0,1,0,0,0),
+(@CGUID+3596,32820,0,1,1,0,0,-5170.15,-578.862,397.368,4.41018,600,20,0,2,0,1,0,0,0),
+(@CGUID+3597,32820,0,1,1,0,0,-5165.99,-608.422,397.667,1.14204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3598,32820,0,1,1,0,0,-5154.86,-585.464,397.293,6.03208,600,20,0,2,0,1,0,0,0),
+(@CGUID+3599,32820,0,1,1,0,0,-5141.22,-594.877,397.547,4.15292,600,20,0,2,0,1,0,0,0),
+(@CGUID+3600,32820,0,1,1,0,0,-5162.54,-600.876,398.227,4.91465,600,20,0,2,0,1,0,0,0),
+(@CGUID+3601,32820,0,1,1,0,0,-5149.82,-605.071,398.556,0.7283,600,20,0,2,0,1,0,0,0),
+(@CGUID+3602,32820,0,1,1,0,0,-5144.81,-600.602,398.184,3.86989,600,20,0,2,0,1,0,0,0),
+(@CGUID+3603,32820,0,1,1,0,0,-5142.32,-609.345,398.355,4.1853,600,20,0,2,0,1,0,0,0),
+(@CGUID+3604,32820,0,1,1,0,0,-5161.28,-607.041,398.095,3.42675,600,20,0,2,0,1,0,0,0),
+(@CGUID+3605,32820,0,1,1,0,0,-5159.97,-627.401,397.341,0.481445,600,20,0,2,0,1,0,0,0),
+(@CGUID+3606,32820,0,1,1,0,0,-5150.19,-581.106,397.262,4.93512,600,20,0,2,0,1,0,0,0),
+(@CGUID+3607,32820,0,1,1,0,0,-5148.86,-587.004,397.285,1.79353,600,20,0,2,0,1,0,0,0),
+(@CGUID+3608,32820,0,1,1,0,0,-5155.71,-625.177,397.533,3.62304,600,20,0,2,0,1,0,0,0),
+(@CGUID+3609,32820,0,1,1,0,0,-5160.29,-623.134,397.509,4.788,600,20,0,2,0,1,0,0,0),
+(@CGUID+3610,32820,0,1,1,0,0,-5145.6,-614.992,398.375,3.93084,600,20,0,2,0,1,0,0,0),
+(@CGUID+3611,32820,0,1,1,0,0,1826.47,231.201,60.3244,1.71042,600,20,0,2,0,1,0,0,0),
+(@CGUID+3612,32820,0,1,1,0,0,1834.12,242.622,59.9811,2.70282,600,20,0,2,0,1,0,0,0),
+(@CGUID+3613,32820,0,1,1,0,0,1829.69,244.7,60.1498,4.44542,600,20,0,2,0,1,0,0,0),
+(@CGUID+3614,32820,0,1,1,0,0,1826.81,257.185,59.8664,4.06662,600,20,0,2,0,1,0,0,0),
+(@CGUID+3615,32820,0,1,1,0,0,1815.06,236.906,60.5297,0.263669,600,20,0,2,0,1,0,0,0),
+(@CGUID+3616,32820,0,1,1,0,0,1824.81,233.503,60.3995,0.366519,600,20,0,2,0,1,0,0,0),
+(@CGUID+3617,32820,0,1,1,0,0,1828.39,233.235,60.4152,2.80998,600,20,0,2,0,1,0,0,0),
+(@CGUID+3618,32820,0,1,1,0,0,1813.03,233.163,60.6701,0.206939,600,20,0,2,0,1,0,0,0),
+(@CGUID+3619,32820,0,1,1,0,0,1828.56,240.548,60.8235,1.30383,600,20,0,2,0,1,0,0,0),
+(@CGUID+3620,32820,0,1,1,0,0,1816.68,233.928,60.6217,2.06775,600,20,0,2,0,1,0,0,0),
+(@CGUID+3621,32820,0,1,1,0,0,1826.44,235.119,60.824,4.43314,600,20,0,2,0,1,0,0,0),
+(@CGUID+3622,32820,0,1,1,0,0,-9480.22,-1159.73,50.8268,0.586483,600,20,0,2,0,1,0,0,0),
+(@CGUID+3623,32820,0,1,1,0,0,-9871.14,237.252,19.4741,4.31734,600,20,0,2,0,1,0,0,0),
+(@CGUID+3624,32820,0,1,1,0,0,-9879.33,217.356,14.1337,5.82548,600,20,0,2,0,1,0,0,0),
+(@CGUID+3625,32820,0,1,1,0,0,-9879.43,190.812,16.6024,1.79753,600,20,0,2,0,1,0,0,0),
+(@CGUID+3626,32820,0,1,1,0,0,-9884.25,260.653,34.8986,2.57944,600,20,0,2,0,1,0,0,0),
+(@CGUID+3627,32820,0,1,1,0,0,-9885.02,196.351,15.2175,2.27603,600,20,0,2,0,1,0,0,0),
+(@CGUID+3628,32820,0,1,1,0,0,-9852.19,179.62,20.9187,3.22526,600,20,0,2,0,1,0,0,0),
+(@CGUID+3629,32820,0,1,1,0,0,-9822.68,180.421,22.9706,3.13012,600,20,0,2,0,1,0,0,0),
+(@CGUID+3630,32820,0,1,1,0,0,-9865.25,170.29,19.6687,5.36632,600,20,0,2,0,1,0,0,0),
+(@CGUID+3631,32820,0,1,1,0,0,-9816.59,120.354,45.9586,3.66559,600,20,0,2,0,1,0,0,0),
+(@CGUID+3632,32820,0,1,1,0,0,-9819.45,129.544,4.7231,5.83605,600,20,0,2,0,1,0,0,0),
+(@CGUID+3633,32820,0,1,1,0,0,-9827.35,124.626,4.25697,6.19969,600,20,0,2,0,1,0,0,0),
+(@CGUID+3634,32820,0,1,1,0,0,-9907.61,178.849,31.9818,5.60655,600,20,0,2,0,1,0,0,0),
+(@CGUID+3635,32820,0,1,1,0,0,-9888.21,153.554,32.0522,5.88405,600,20,0,2,0,1,0,0,0),
+(@CGUID+3636,32820,0,1,1,0,0,-9799.58,167.104,24.0743,2.08218,600,20,0,2,0,1,0,0,0),
+(@CGUID+3637,32820,0,1,1,0,0,-9840.62,161.11,4.89257,0.281934,600,20,0,2,0,1,0,0,0),
+(@CGUID+3638,32820,0,1,1,0,0,-9849.7,135.178,6.03231,6.08721,600,20,0,2,0,1,0,0,0),
+(@CGUID+3639,32820,0,1,1,0,0,-9857.44,157.624,6.20103,0.988133,600,20,0,2,0,1,0,0,0),
+(@CGUID+3640,32820,0,1,1,0,0,-9751.76,122.076,16.1832,6.27415,600,20,0,2,0,1,0,0,0),
+(@CGUID+3641,32820,0,1,1,0,0,-9750.53,109.906,25.705,3.41538,600,20,0,2,0,1,0,0,0),
+(@CGUID+3642,32820,0,1,1,0,0,-9800.68,103.668,24.789,5.76924,600,20,0,2,0,1,0,0,0),
+(@CGUID+3643,32820,0,1,1,0,0,-9797.96,109.575,24.4197,3.88405,600,20,0,2,0,1,0,0,0),
+(@CGUID+3644,32820,0,1,1,0,0,-9783.55,84.901,42.6198,3.27819,600,20,0,2,0,1,0,0,0),
+(@CGUID+3645,32820,0,1,1,0,0,-9752.98,120.348,15.9225,1.30766,600,20,0,2,0,1,0,0,0),
+(@CGUID+3646,32820,0,1,1,0,0,-9734.4,138.944,49.0226,0.433051,600,20,0,2,0,1,0,0,0),
+(@CGUID+3647,32820,0,1,1,0,0,-9954.52,222.797,26.328,4.94774,600,20,0,2,0,1,0,0,0),
+(@CGUID+3648,32820,0,1,1,0,0,-9354.72,167.942,61.665,0.27367,600,20,0,2,0,1,0,0,0),
+(@CGUID+3649,32820,0,1,1,0,0,1773.81,769.425,55.5537,3.61274,600,20,0,2,0,1,0,0,0),
+(@CGUID+3650,32820,0,1,1,0,0,1719.01,1446.6,124.313,2.87145,600,20,0,2,0,1,0,0,0),
+(@CGUID+3651,32820,0,1,1,0,0,-11023.7,1429.76,43.6226,3.60857,600,20,0,2,0,1,0,0,0),
+(@CGUID+3652,32820,0,1,1,0,0,-10314.4,1417.72,40.3659,1.51624,600,20,0,2,0,1,0,0,0),
+(@CGUID+3653,32820,0,1,1,0,0,-9854.85,1275.5,40.9487,3.8068,600,20,0,2,0,1,0,0,0),
+(@CGUID+3654,32820,0,1,1,0,0,1887.28,1494.68,87.9338,4.62341,600,20,0,2,0,1,0,0,0),
+(@CGUID+3655,32820,0,1,1,0,0,-9456.54,-1160.68,52.9803,4.11778,600,20,0,2,0,1,0,0,0),
+(@CGUID+3656,32820,0,1,1,0,0,-9342.2,187.984,61.5586,5.25467,600,20,0,2,0,1,0,0,0),
+(@CGUID+3657,32820,0,1,1,0,0,-10731.8,1678.61,45.4163,3.35598,600,20,0,2,0,1,0,0,0),
+(@CGUID+3658,32820,0,1,1,0,0,-10145.4,1059.4,36.4085,3.94727,600,20,0,2,0,1,0,0,0),
+(@CGUID+3659,32820,0,1,1,0,0,2027.17,187.734,35.9719,3.51091,600,20,0,2,0,1,0,0,0),
+(@CGUID+3660,32820,0,1,1,0,0,-9321.16,270.756,68.0387,6.23488,600,20,0,2,0,1,0,0,0),
+(@CGUID+3661,32820,0,1,1,0,0,-9877.59,1295.1,42.1903,3.43758,600,20,0,2,0,1,0,0,0),
+(@CGUID+3662,32820,0,1,1,0,0,-9861.1,1290.83,41.8237,1.62479,600,20,0,2,0,1,0,0,0),
+(@CGUID+3663,32820,0,1,1,0,0,-9164.88,-6.60355,79.3901,4.80705,600,20,0,2,0,1,0,0,0),
+(@CGUID+3664,32820,0,1,1,0,0,-9162.92,-2.91795,79.6812,0.60909,600,20,0,2,0,1,0,0,0),
+(@CGUID+3665,32820,0,1,1,0,0,-9167.2,19.38,78.803,1.52015,600,20,0,2,0,1,0,0,0),
+(@CGUID+3666,32820,0,1,1,0,0,-9162.07,13.6444,78.6699,5.53354,600,20,0,2,0,1,0,0,0),
+(@CGUID+3667,32820,0,1,1,0,0,-9180.29,-8.10362,78.8,3.87635,600,20,0,2,0,1,0,0,0),
+(@CGUID+3668,32820,0,1,1,0,0,-9189.71,0.452663,77.6916,3.02419,600,20,0,2,0,1,0,0,0),
+(@CGUID+3669,32820,0,1,1,0,0,-9344.05,175.877,61.5584,3.59669,600,20,0,2,0,1,0,0,0),
+(@CGUID+3670,32820,0,1,1,0,0,-9318.67,173.348,61.613,2.83957,600,20,0,2,0,1,0,0,0),
+(@CGUID+3671,32820,0,1,1,0,0,-9329.31,166.352,61.5815,1.76357,600,20,0,2,0,1,0,0,0),
+(@CGUID+3672,32820,0,1,1,0,0,2310.73,296.853,37.3108,4.44553,600,20,0,2,0,1,0,0,0),
+(@CGUID+3673,32820,0,1,1,0,0,-5607.53,-511.287,402.237,1.0253,600,20,0,2,0,1,0,0,0),
+(@CGUID+3674,32820,0,1,1,0,0,-9474.49,87.242,56.7402,2.98374,600,20,0,2,0,1,0,0,0),
+(@CGUID+3675,32820,0,1,1,0,0,-9322.06,168.47,61.6066,2.40367,600,20,0,2,0,1,0,0,0),
+(@CGUID+3676,32820,0,1,1,0,0,-5604.8,-527.253,399.659,2.43902,600,20,0,2,0,1,0,0,0),
+(@CGUID+3677,32820,0,1,1,0,0,-9460.17,26.0472,56.3399,5.44596,600,20,0,2,0,1,0,0,0),
+(@CGUID+3678,32820,0,1,1,0,0,-9349.19,176.153,61.726,5.18634,600,20,0,2,0,1,0,0,0),
+(@CGUID+3679,32820,0,1,1,0,0,-9350.81,171.018,61.7532,1.0198,600,20,0,2,0,1,0,0,0),
+(@CGUID+3680,32820,0,1,1,0,0,-9337.56,188.283,61.5117,3.72314,600,20,0,2,0,1,0,0,0),
+(@CGUID+3681,32820,0,1,1,0,0,2255.62,271.928,34.4734,2.52523,600,20,0,2,0,1,0,0,0),
+(@CGUID+3682,32820,0,1,1,0,0,2261.95,280.004,34.6234,2.42705,600,20,0,2,0,1,0,0,0),
+(@CGUID+3683,32820,0,1,1,0,0,2057.72,357.983,82.4699,5.64937,600,20,0,2,0,1,0,0,0),
+(@CGUID+3684,32820,0,1,1,0,0,-7916.41,-1354.48,134.08,3.19768,600,20,0,2,0,1,0,0,0),
+(@CGUID+3685,32820,0,1,1,0,0,-7986.89,-2355.5,124.949,4.57919,600,20,0,2,0,1,0,0,0),
+(@CGUID+3686,32820,0,1,1,0,0,-9449.18,-2123.47,69.2066,6.03994,600,20,0,2,0,1,0,0,0),
+(@CGUID+3687,32820,0,1,1,0,0,-3433.67,-959.299,9.56594,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3688,32820,0,1,1,0,0,-14277.8,54.594,0.903981,2.87979,600,20,0,2,0,1,0,0,0),
+(@CGUID+3689,32820,0,1,1,0,0,-14289.6,46.9671,0.852089,6.02139,600,20,0,2,0,1,0,0,0),
+(@CGUID+3690,32820,0,1,1,0,0,-14285.2,45.2736,0.5652,1.76951,600,20,0,2,0,1,0,0,0),
+(@CGUID+3691,32820,0,1,1,0,0,-14282.4,55.3707,0.467201,6.21337,600,20,0,2,0,1,0,0,0),
+(@CGUID+3692,32820,0,1,1,0,0,-1197.29,-2680.87,46.3772,6.12611,600,20,0,2,0,1,0,0,0),
+(@CGUID+3693,32820,0,1,1,0,0,-1202.46,-2657.93,45.8036,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3694,32820,0,1,1,0,0,-10968,-3234.34,41.4491,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3695,32820,0,1,1,0,0,-9375.14,26.3486,61.714,4.83456,600,20,0,2,0,1,0,0,0),
+(@CGUID+3696,32820,0,1,1,0,0,-9383.17,11.5458,61.1362,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3697,32820,0,1,1,0,0,-9373.36,22.8965,62.0908,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3698,32820,0,1,1,0,0,-5428.45,-486.615,396.646,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3699,32820,0,1,1,0,0,-5250.07,-2891.32,339.267,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3700,32820,0,1,1,0,0,-6686.65,-2194.68,248.353,0.145253,600,20,0,2,0,1,0,0,0),
+(@CGUID+3701,32820,0,1,1,0,0,-6685.3,-2199.44,248.978,3.21141,600,20,0,2,0,1,0,0,0),
+(@CGUID+3702,32820,0,1,1,0,0,-474.941,-4528.3,12.8381,4.66003,600,20,0,2,0,1,0,0,0),
+(@CGUID+3703,32820,0,1,1,0,0,-463.082,-4537.73,9.4355,2.15069,600,20,0,2,0,1,0,0,0),
+(@CGUID+3704,32820,0,1,1,0,0,-468.089,-4537.65,10.3289,1.34167,600,20,0,2,0,1,0,0,0),
+(@CGUID+3705,32820,0,1,1,0,0,1792.44,219.541,60.0122,1.5708,600,20,0,2,0,1,0,0,0),
+(@CGUID+3706,32820,0,1,1,0,0,1793.16,224.844,59.7142,4.46804,600,20,0,2,0,1,0,0,0),
+(@CGUID+3707,32820,0,1,1,0,0,1816.48,217.623,59.9269,2.04204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3708,32820,0,1,1,0,0,-10351.3,-3292.1,23.2491,4.5204,600,20,0,2,0,1,0,0,0),
+(@CGUID+3709,32820,0,1,1,0,0,-9437.42,-2137.57,66.7224,1.98536,600,20,0,2,0,1,0,0,0),
+(@CGUID+3710,32820,0,1,1,0,0,-9434.02,-2135.57,66.2969,3.75246,600,20,0,2,0,1,0,0,0),
+(@CGUID+3711,32820,0,1,1,0,0,178.85,-2118.32,104.996,0.85135,600,20,0,2,0,1,0,0,0),
+(@CGUID+3712,32820,0,1,1,0,0,-3427.64,-949.945,9.66967,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3713,32820,0,1,1,0,0,-1201.28,-2660.02,45.4031,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3714,32820,0,1,1,0,0,-10936.2,-3219.52,41.4308,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3715,32820,0,1,1,0,0,-10968.9,-3230.71,41.5834,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3716,32820,0,1,1,0,0,-10935.7,-3215.98,41.4308,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3717,32820,0,1,1,0,0,-5430.02,-489.223,396.787,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3718,32820,0,1,1,0,0,-5243.4,-2868.25,336.974,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3719,32820,0,1,1,0,0,-6688.79,-2191.26,247.728,5.94547,600,20,0,2,0,1,0,0,0),
+(@CGUID+3720,32820,0,1,1,0,0,-475.423,-4532.37,12.327,0.034308,600,20,0,2,0,1,0,0,0),
+(@CGUID+3721,32820,0,1,1,0,0,1814.13,220.927,59.5969,5.21853,600,20,0,2,0,1,0,0,0),
+(@CGUID+3722,32820,0,1,1,0,0,-9449.25,-2120.39,69.2066,4.57276,600,20,0,2,0,1,0,0,0),
+(@CGUID+3723,32820,0,1,1,0,0,-9382.33,14.4817,61.6174,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3724,32820,0,1,1,0,0,-5431.74,-502.427,397.758,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3725,32820,0,1,1,0,0,-5433.93,-500.603,397.292,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3726,32820,0,1,1,0,0,-5242.92,-2871.7,338.068,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3727,32820,0,1,1,0,0,-5250.77,-2895.2,338.614,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3728,32820,0,1,1,0,0,-1195.37,-2682.08,47.0076,2.53073,600,20,0,2,0,1,0,0,0),
+(@CGUID+3729,32820,0,1,1,0,0,186.365,-2115.52,105.464,3.12523,600,20,0,2,0,1,0,0,0),
+(@CGUID+3730,32820,0,1,1,0,0,187.437,-2112.56,106.084,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3731,32820,0,1,1,0,0,177.178,-2115.24,105.307,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3732,32820,0,1,1,0,0,-1143.94,-3549.91,52.3624,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3733,32820,0,1,1,0,0,-1142.06,-3553.01,52.2374,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3734,32820,0,1,1,0,0,-1115.13,-3547.66,50.1345,2.53073,600,20,0,2,0,1,0,0,0),
+(@CGUID+3735,32820,0,1,1,0,0,-1117.82,-3543.86,50.2867,5.34071,600,20,0,2,0,1,0,0,0),
+(@CGUID+3736,32820,0,1,1,0,0,-10684.3,-1148.58,25.833,5.39903,600,20,0,2,0,1,0,0,0),
+(@CGUID+3737,32820,0,1,1,0,0,-10682.6,-1168.07,24.7525,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3738,32820,0,1,1,0,0,-10681.5,-1164.25,25.208,1.03306,600,20,0,2,0,1,0,0,0),
+(@CGUID+3739,32820,0,1,1,0,0,-10680.3,-1147.93,25.833,5.02826,600,20,0,2,0,1,0,0,0),
+(@CGUID+3740,32820,0,1,1,0,0,-10352,-3296.74,23.6612,5.58471,600,20,0,2,0,1,0,0,0),
+(@CGUID+3741,32820,0,1,1,0,0,-10350.1,-3307.59,23.2149,0.191986,600,20,0,2,0,1,0,0,0),
+(@CGUID+3742,32820,0,1,1,0,0,-10344.4,-3306.41,23.1961,2.02267,600,20,0,2,0,1,0,0,0),
+(@CGUID+3743,32820,0,1,1,0,0,-14371.5,132.86,1.04293,1.78024,600,20,0,2,0,1,0,0,0),
+(@CGUID+3744,32820,0,1,1,0,0,-14388.8,125.666,1.1453,5.5676,600,20,0,2,0,1,0,0,0),
+(@CGUID+3745,32820,0,1,1,0,0,-14385.1,122.559,1.3256,0.642415,600,20,0,2,0,1,0,0,0),
+(@CGUID+3746,32820,0,1,1,0,0,-14374.6,137.59,0.44237,4.40481,600,20,0,2,0,1,0,0,0),
+(@CGUID+3747,32820,0,1,1,0,0,-122.378,-813.281,55.6416,3.01942,600,20,0,2,0,1,0,0,0),
+(@CGUID+3748,32820,0,1,1,0,0,-125.86,-811.308,55.3297,5.88176,600,20,0,2,0,1,0,0,0),
+(@CGUID+3749,32820,0,1,1,0,0,-129.014,-823.608,55.2595,0.593412,600,20,0,2,0,1,0,0,0),
+(@CGUID+3750,32820,0,1,1,0,0,-125.36,-821.476,55.4535,3.56047,600,20,0,2,0,1,0,0,0),
+(@CGUID+3751,32820,0,1,1,0,0,-4708.43,-1236.96,501.743,1.11701,600,20,0,2,0,1,0,0,0),
+(@CGUID+3752,32820,0,1,1,0,0,-4692.72,-1218.07,501.743,0.750492,600,20,0,2,0,1,0,0,0),
+(@CGUID+3753,32820,0,1,1,0,0,-4706.34,-1233.23,501.743,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3754,32820,0,1,1,0,0,-4688.58,-1213.5,501.743,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3755,32820,0,1,1,0,0,-10647,1072.17,34.0896,1.51844,600,20,0,2,0,1,0,0,0),
+(@CGUID+3756,32820,0,1,1,0,0,-10640.6,1080.97,34.8855,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3757,32820,0,1,1,0,0,-10646.3,1075.05,34.6687,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3758,32820,0,1,1,0,0,-10642.2,1083.53,35.0052,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3759,32820,0,1,1,0,0,-614.224,-535.796,36.2243,2.21657,600,20,0,2,0,1,0,0,0),
+(@CGUID+3760,32820,0,1,1,0,0,-615.6,-532.523,35.7472,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3761,32820,0,1,1,0,0,-8840.87,851.164,98.8638,1.91986,600,20,0,2,0,1,0,0,0),
+(@CGUID+3762,32820,0,1,1,0,0,-8842.71,856.191,98.5909,4.99164,600,20,0,2,0,1,0,0,0),
+(@CGUID+3763,32820,0,1,1,0,0,593.821,1350.02,90.3997,0.490553,600,20,0,2,0,1,0,0,0),
+(@CGUID+3764,32820,0,1,1,0,0,595.365,1345.8,90.1562,1.8675,600,20,0,2,0,1,0,0,0),
+(@CGUID+3765,32820,0,1,1,0,0,602.084,1351.74,88.1745,3.05093,600,20,0,2,0,1,0,0,0),
+(@CGUID+3766,32820,0,1,1,0,0,600.03,1355.18,88.8279,4.07527,600,20,0,2,0,1,0,0,0),
+(@CGUID+3767,32820,0,1,1,0,0,-7603.89,-2066,129.675,6.24828,600,20,0,2,0,1,0,0,0),
+(@CGUID+3768,32820,0,1,1,0,0,-7595.41,-2060.63,131.677,2.99611,600,20,0,2,0,1,0,0,0),
+(@CGUID+3769,32820,0,1,1,0,0,-7592.49,-2065.33,131.078,2.35619,600,20,0,2,0,1,0,0,0),
+(@CGUID+3770,32820,0,1,1,0,0,-7599.02,-2067,129.618,2.84489,600,20,0,2,0,1,0,0,0),
+(@CGUID+3771,32820,0,1,1,0,0,-623.304,-530.146,34.2168,4.2586,600,20,0,2,0,1,0,0,0),
+(@CGUID+3772,32820,0,1,1,0,0,-623.67,-533.012,34.4668,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3773,32820,0,1,1,0,0,-3434.67,-956.682,9.65595,5.23599,600,20,0,2,0,1,0,0,0),
+(@CGUID+3774,32820,0,1,1,0,0,-3428.97,-953.84,10.2242,1.44862,600,20,0,2,0,1,0,0,0),
+(@CGUID+3775,32820,0,1,1,0,0,-11252.4,1881.89,35.4734,3.69371,600,20,0,2,0,1,0,0,0),
+(@CGUID+3776,32820,0,1,1,0,0,-8932.72,-163.066,80.9754,5.81801,600,20,0,2,0,1,0,0,0),
+(@CGUID+3777,32820,0,1,1,0,0,-9238.75,-2055.19,77.099,4.86356,600,20,0,2,0,1,0,0,0),
+(@CGUID+3778,32820,0,1,1,0,0,-9429.92,56.1355,56.7913,2.98451,600,20,0,2,0,1,0,0,0),
+(@CGUID+3779,32820,0,1,1,0,0,-9431.01,58.3279,56.7729,5.48033,600,20,0,2,0,1,0,0,0),
+(@CGUID+3780,32820,0,1,1,0,0,-9428.72,54.0571,56.819,1.91986,600,20,0,2,0,1,0,0,0),
+(@CGUID+3781,32820,0,1,1,0,0,-9431.32,55.0524,56.6871,3.38594,600,20,0,2,0,1,0,0,0),
+(@CGUID+3782,32820,0,1,1,0,0,-9431.98,56.7107,56.6996,6.16101,600,20,0,2,0,1,0,0,0),
+(@CGUID+3783,32820,0,1,1,0,0,2052.22,294.354,56.9512,3.27529,600,20,0,2,0,1,0,0,0),
+(@CGUID+3784,32820,0,1,1,0,0,1945.08,252.741,44.3246,3.58978,600,20,0,2,0,1,0,0,0),
+(@CGUID+3785,32820,0,1,1,0,0,1832.47,210.797,60.312,2.04222,600,20,0,2,0,1,0,0,0),
+(@CGUID+3786,32820,0,1,1,0,0,-5151.65,-852.495,508.667,4.58185,600,20,0,2,0,1,0,0,0),
+(@CGUID+3787,32820,0,1,1,0,0,1828.96,210.695,60.2619,1.24504,600,20,0,2,0,1,0,0,0),
+(@CGUID+3788,32820,0,1,1,0,0,-9400.13,111.152,60.0272,5.17295,600,20,0,2,0,1,0,0,0),
+(@CGUID+3789,32820,0,1,1,0,0,-5155.07,-854.489,508.115,5.0845,600,20,0,2,0,1,0,0,0),
+(@CGUID+3790,32820,0,1,1,0,0,-9143.81,412.898,93.7079,5.32893,600,20,0,2,0,1,0,0,0),
+(@CGUID+3791,32820,0,1,1,0,0,-9109.08,365.884,93.9828,2.40332,600,20,0,2,0,1,0,0,0),
+(@CGUID+3792,32820,0,1,1,0,0,-9116.37,334.754,93.3562,1.99884,600,20,0,2,0,1,0,0,0),
+(@CGUID+3793,32820,0,1,1,0,0,-9177.49,414.626,90.1926,5.65879,600,20,0,2,0,1,0,0,0),
+(@CGUID+3794,32820,0,1,1,0,0,-9170.68,377.801,88.388,5.18362,600,20,0,2,0,1,0,0,0),
+(@CGUID+3795,32820,0,1,1,0,0,-9140.75,332.216,91.2239,2.34441,600,20,0,2,0,1,0,0,0),
+(@CGUID+3796,32820,0,1,1,0,0,-9227.25,318.984,73.9797,5.50171,600,20,0,2,0,1,0,0,0),
+(@CGUID+3797,32820,0,1,1,0,0,-9155.61,261.754,80.1009,2.98844,600,20,0,2,0,1,0,0,0),
+(@CGUID+3798,32820,0,1,1,0,0,-9468.33,24.9295,56.5369,6.0912,600,20,0,2,0,1,0,0,0),
+(@CGUID+3799,32820,0,1,1,0,0,-9465.93,24.9355,56.6126,3.12414,600,20,0,2,0,1,0,0,0),
+(@CGUID+3800,32820,0,1,1,0,0,-8866.35,676.362,97.9864,0.034907,600,20,0,2,0,1,0,0,0),
+(@CGUID+3801,32820,0,1,1,0,0,-8864.07,675.996,97.9864,2.87979,600,20,0,2,0,1,0,0,0),
+(@CGUID+3802,32820,0,1,1,0,0,-10647.7,1174.96,34.4276,1.09956,600,20,0,2,0,1,0,0,0),
+(@CGUID+3803,32820,0,1,1,0,0,-10645.7,1177.46,34.5556,4.13643,600,20,0,2,0,1,0,0,0),
+(@CGUID+3804,32820,0,1,1,0,0,-10523.2,-1164.94,27.5597,1.5708,600,20,0,2,0,1,0,0,0),
+(@CGUID+3805,32820,0,1,1,0,0,-10523.5,-1162.52,27.5597,4.66003,600,20,0,2,0,1,0,0,0),
+(@CGUID+3806,32820,0,1,1,0,0,-9223.84,-2153.94,64.0168,3.01942,600,20,0,2,0,1,0,0,0),
+(@CGUID+3807,32820,0,1,1,0,0,-9225.23,-2153.85,64.0168,6.23082,600,20,0,2,0,1,0,0,0),
+(@CGUID+3808,32820,0,1,1,0,0,-5581.24,-525.341,400.846,1.51844,600,20,0,2,0,1,0,0,0),
+(@CGUID+3809,32820,0,1,1,0,0,-5581.07,-523.102,400.846,4.62512,600,20,0,2,0,1,0,0,0),
+(@CGUID+3810,32820,0,1,1,0,0,-4853.14,-870.297,501.997,4.81711,600,20,0,2,0,1,0,0,0),
+(@CGUID+3811,32820,0,1,1,0,0,-4852.92,-872.19,501.997,1.69297,600,20,0,2,0,1,0,0,0),
+(@CGUID+3812,32820,0,1,1,0,0,-14461.9,491.803,15.2063,0.837758,600,20,0,2,0,1,0,0,0),
+(@CGUID+3813,32820,0,1,1,0,0,-14460.8,492.998,15.208,3.92699,600,20,0,2,0,1,0,0,0),
+(@CGUID+3814,32820,0,1,1,0,0,1635.82,233.67,-43.0193,1.11701,600,20,0,2,0,1,0,0,0),
+(@CGUID+3815,32820,0,1,1,0,0,1637.09,236.273,-43.0193,4.34587,600,20,0,2,0,1,0,0,0),
+(@CGUID+3816,32820,0,1,1,0,0,-11.5524,-932.199,57.2556,5.84685,600,20,0,2,0,1,0,0,0),
+(@CGUID+3817,32820,0,1,1,0,0,-9.5064,-933.083,57.2556,2.74017,600,20,0,2,0,1,0,0,0),
+(@CGUID+3818,32820,0,1,1,0,0,2249.08,240.226,34.3437,6.14356,600,20,0,2,0,1,0,0,0),
+(@CGUID+3819,32820,0,1,1,0,0,2251.53,240.007,34.3437,3.05433,600,20,0,2,0,1,0,0,0),
+(@CGUID+3820,32820,0,1,1,0,0,-6665.69,-2167.53,245.456,5.67232,600,20,0,2,0,1,0,0,0),
+(@CGUID+3821,32820,0,1,1,0,0,-6663,-2169.4,245.456,2.49582,600,20,0,2,0,1,0,0,0),
+(@CGUID+3822,32820,0,1,1,0,0,-858.777,-558.361,11.7749,4.66003,600,20,0,2,0,1,0,0,0),
+(@CGUID+3823,32820,0,1,1,0,0,-858.831,-559.944,11.7749,1.50098,600,20,0,2,0,1,0,0,0),
+(@CGUID+3824,32820,0,1,1,0,0,-9566.38,31.1655,61.4444,1.58992,600,20,0,2,0,1,0,0,0),
+(@CGUID+3825,32820,0,1,1,0,0,-9541.73,87.4378,59.3029,6.23082,600,20,0,2,0,1,0,0,0),
+(@CGUID+3826,32820,0,1,1,0,0,-9540.56,115.219,59.1773,4.62012,600,20,0,2,0,1,0,0,0),
+(@CGUID+3827,32820,0,1,1,0,0,-9525.15,89.6348,58.9238,4.11548,600,20,0,2,0,1,0,0,0),
+(@CGUID+3828,32820,0,1,1,0,0,-11265.3,1875.47,36.7309,5.89441,600,20,0,2,0,1,0,0,0),
+(@CGUID+3829,32820,0,1,1,0,0,-11259.8,1888.13,35.7742,4.43043,600,20,0,2,0,1,0,0,0),
+(@CGUID+3830,32820,0,1,1,0,0,-11251.2,1870.46,35.5459,2.39153,600,20,0,2,0,1,0,0,0),
+(@CGUID+3831,32820,0,1,1,0,0,-7442.29,-2257.15,347.476,5.51524,600,20,0,2,0,1,0,0,0),
+(@CGUID+3832,32820,0,1,1,0,0,-9330.46,180.936,61.6792,4.1716,600,20,0,2,0,1,0,0,0),
+(@CGUID+3833,32820,0,1,1,0,0,-9075.59,426.68,93.0562,3.78874,600,20,0,2,0,1,0,0,0),
+(@CGUID+3834,32820,0,1,1,0,0,-9180.08,300.471,78.2777,1.48024,600,20,0,2,0,1,0,0,0),
+(@CGUID+3835,32820,0,1,1,0,0,-9082.31,410.951,92.2809,3.21226,600,20,0,2,0,1,0,0,0),
+(@CGUID+3836,32820,0,1,1,0,0,-9045.34,-46.7572,88.3206,4.60601,600,20,0,2,0,1,0,0,0),
+(@CGUID+3837,32820,0,1,1,0,0,-9044.58,-43.6128,88.3693,1.24136,600,20,0,2,0,1,0,0,0),
+(@CGUID+3838,32820,0,1,1,0,0,-9068.83,-382.097,73.4742,1.12514,600,20,0,2,0,1,0,0,0),
+(@CGUID+3839,32820,0,1,1,0,0,-9067.18,-379.59,73.4847,4.20468,600,20,0,2,0,1,0,0,0),
+(@CGUID+3840,32820,0,1,1,0,0,-9083.1,-370.122,73.4512,2.04719,600,20,0,2,0,1,0,0,0),
+(@CGUID+3841,32820,0,1,1,0,0,-9093.95,-363.895,73.4845,1.58774,600,20,0,2,0,1,0,0,0),
+(@CGUID+3842,32820,0,1,1,0,0,-9093.79,-350.975,73.4519,0.331884,600,20,0,2,0,1,0,0,0),
+(@CGUID+3843,32820,0,1,1,0,0,-9114.81,-341.066,73.2501,1.02225,600,20,0,2,0,1,0,0,0),
+(@CGUID+3844,32820,0,1,1,0,0,-9111.6,-339.933,73.3671,2.90956,600,20,0,2,0,1,0,0,0),
+(@CGUID+3845,32820,0,1,1,0,0,-9085.03,-310.686,73.4186,1.76288,600,20,0,2,0,1,0,0,0),
+(@CGUID+3846,32820,0,1,1,0,0,-9085.39,-308.122,73.3757,4.73482,600,20,0,2,0,1,0,0,0),
+(@CGUID+3847,32820,0,1,1,0,0,-9067.4,-299.552,73.4566,5.35529,600,20,0,2,0,1,0,0,0),
+(@CGUID+3848,32820,0,1,1,0,0,-9027.26,-326.174,73.7017,1.51626,600,20,0,2,0,1,0,0,0),
+(@CGUID+3849,32820,0,1,1,0,0,-9031.94,-346.149,74.21,4.03346,600,20,0,2,0,1,0,0,0),
+(@CGUID+3850,32820,0,1,1,0,0,-9033.21,-347.614,74.1532,0.925643,600,20,0,2,0,1,0,0,0),
+(@CGUID+3851,32820,0,1,1,0,0,-9053.11,-362.477,73.5042,1.69219,600,20,0,2,0,1,0,0,0),
+(@CGUID+3852,32820,0,1,1,0,0,-9056.23,-339.958,73.4526,1.3529,600,20,0,2,0,1,0,0,0),
+(@CGUID+3853,32820,0,1,1,0,0,-8852.69,-373.834,70.594,2.33229,600,20,0,2,0,1,0,0,0),
+(@CGUID+3854,32820,0,1,1,0,0,-9002.91,-297.798,71.1119,1.96551,600,20,0,2,0,1,0,0,0),
+(@CGUID+3855,32820,0,1,1,0,0,-9099.05,-316.07,73.2522,4.72462,600,20,0,2,0,1,0,0,0),
+(@CGUID+3856,32820,0,1,1,0,0,-9100.01,-318.048,73.2989,0.825899,600,20,0,2,0,1,0,0,0),
+(@CGUID+3857,32820,0,1,1,0,0,-9098.24,-317.918,73.3343,2.3535,600,20,0,2,0,1,0,0,0),
+(@CGUID+3858,32820,0,1,1,0,0,-8686.07,-108.569,89.1135,2.78625,600,20,0,2,0,1,0,0,0),
+(@CGUID+3859,32820,0,1,1,0,0,-8666.96,-117.197,92.3837,3.99341,600,20,0,2,0,1,0,0,0),
+(@CGUID+3860,32820,0,1,1,0,0,-8670.19,-121.659,92.0285,2.88129,600,20,0,2,0,1,0,0,0),
+(@CGUID+3861,32820,0,1,1,0,0,-8669.95,-127.286,92.3917,2.34329,600,20,0,2,0,1,0,0,0),
+(@CGUID+3862,32820,0,1,1,0,0,-9040.38,-303.146,74.3207,2.427,600,20,0,2,0,1,0,0,0),
+(@CGUID+3863,32820,0,1,1,0,0,-9016.16,-310.595,73.9234,0.27187,600,20,0,2,0,1,0,0,0),
+(@CGUID+3864,32820,0,1,1,0,0,-9064,-283.949,73.6745,3.43703,600,20,0,2,0,1,0,0,0),
+(@CGUID+3865,32820,0,1,1,0,0,-9065.73,-284.406,73.7253,0.336275,600,20,0,2,0,1,0,0,0),
+(@CGUID+3866,32820,0,1,1,0,0,-8950.56,-429.528,65.1177,2.42386,600,20,0,2,0,1,0,0,0),
+(@CGUID+3867,32820,0,1,1,0,0,-8958.33,-432.896,64.651,1.27326,600,20,0,2,0,1,0,0,0),
+(@CGUID+3868,32820,0,1,1,0,0,-9142.99,-340.123,72.6333,0.0818056,600,20,0,2,0,1,0,0,0),
+(@CGUID+3869,32820,0,1,1,0,0,-9113.54,-339.171,73.3014,4.93007,600,20,0,2,0,1,0,0,0),
+(@CGUID+3870,32820,0,1,1,0,0,-8768.27,-178.215,83.3675,2.51811,600,20,0,2,0,1,0,0,0),
+(@CGUID+3871,32820,0,1,1,0,0,-8775.73,-181.91,82.5802,3.23282,600,20,0,2,0,1,0,0,0),
+(@CGUID+3872,32820,0,1,1,0,0,-8770.16,-164.681,82.478,0.248304,600,20,0,2,0,1,0,0,0),
+(@CGUID+3873,32820,0,1,1,0,0,-8756.49,-174.042,84.9656,3.31921,600,20,0,2,0,1,0,0,0),
+(@CGUID+3874,32820,0,1,1,0,0,-8781.03,-131.108,82.3968,0.897357,600,20,0,2,0,1,0,0,0),
+(@CGUID+3875,32820,0,1,1,0,0,-8785.22,-107.864,83.2028,0.123741,600,20,0,2,0,1,0,0,0),
+(@CGUID+3876,32820,0,1,1,0,0,-8776.25,-110.324,83.546,3.32031,600,20,0,2,0,1,0,0,0),
+(@CGUID+3877,32820,0,1,1,0,0,-8617.63,-139.172,87.0543,4.94263,600,20,0,2,0,1,0,0,0),
+(@CGUID+3878,32820,0,1,1,0,0,-8597.56,-168.066,86.7534,3.37969,600,20,0,2,0,1,0,0,0),
+(@CGUID+3879,32820,0,1,1,0,0,-8613.21,-165.797,85.7466,2.33118,600,20,0,2,0,1,0,0,0),
+(@CGUID+3880,32820,0,1,1,0,0,-8633.86,-149.127,86.0851,2.02487,600,20,0,2,0,1,0,0,0),
+(@CGUID+3881,32820,0,1,1,0,0,-8631.62,-143.587,86.3522,3.1205,600,20,0,2,0,1,0,0,0),
+(@CGUID+3882,32820,0,1,1,0,0,-8647.69,-133.363,87.7432,2.11912,600,20,0,2,0,1,0,0,0),
+(@CGUID+3883,32820,0,1,1,0,0,-8656.88,-124.537,90.8129,3.17155,600,20,0,2,0,1,0,0,0),
+(@CGUID+3884,32820,0,1,1,0,0,-8557.35,-209.402,84.2385,3.1912,600,20,0,2,0,1,0,0,0),
+(@CGUID+3885,32820,0,1,1,0,0,-5387.28,37.1367,395.534,6.2025,600,20,0,2,0,1,0,0,0),
+(@CGUID+3886,32820,0,1,1,0,0,-2958.56,-1753.26,9.50943,5.57129,600,20,0,2,0,1,0,0,0),
+(@CGUID+3887,32820,0,1,1,0,0,-9191.3,-2309.23,89.4674,4.11041,600,20,0,2,0,1,0,0,0),
+(@CGUID+3888,32820,0,1,1,0,0,-9475.93,-3009.16,134.516,0.205501,600,20,0,2,0,1,0,0,0),
+(@CGUID+3889,32820,0,1,1,0,0,2281.77,453.836,33.9988,4.05597,600,20,0,2,0,1,0,0,0),
+(@CGUID+3890,32820,0,1,1,0,0,-8253.41,-2609.76,133.155,1.12654,600,20,0,2,0,1,0,0,0),
+(@CGUID+3891,32820,0,1,1,0,0,-8246.66,-2607.97,133.155,5.62294,600,20,0,2,0,1,0,0,0),
+(@CGUID+3892,32820,0,1,1,0,0,-8243.34,-2610.47,133.155,2.40595,600,20,0,2,0,1,0,0,0),
+(@CGUID+3893,32820,0,1,1,0,0,-8260.93,-2615.06,133.292,5.39675,600,20,0,2,0,1,0,0,0),
+(@CGUID+3894,32820,0,1,1,0,0,-8258.65,-2617.86,133.251,2.3871,600,20,0,2,0,1,0,0,0),
+(@CGUID+3895,32820,0,1,1,0,0,-6689.68,-2200.1,248.974,0.0691265,600,20,0,2,0,1,0,0,0),
+(@CGUID+3896,32820,0,1,1,0,0,2286.11,463.02,33.7305,3.4143,600,20,0,2,0,1,0,0,0),
+(@CGUID+3897,32820,0,1,1,0,0,2283.48,462.282,33.7857,0.615141,600,20,0,2,0,1,0,0,0),
+(@CGUID+3898,32820,0,1,1,0,0,2285.45,441.484,34.6447,6.04774,600,20,0,2,0,1,0,0,0),
+(@CGUID+3899,32820,0,1,1,0,0,2287.89,440.899,35.0368,3.14177,600,20,0,2,0,1,0,0,0),
+(@CGUID+3900,32820,0,1,1,0,0,-9327.92,185.507,62.7096,4.07265,600,20,0,2,0,1,0,0,0),
+(@CGUID+3901,32820,0,1,1,0,0,2269.4,950.182,46.8056,1.88271,600,20,0,2,0,1,0,0,0),
+(@CGUID+3902,32820,0,1,1,0,0,2291.65,732.825,33.7658,5.40522,600,20,0,2,0,1,0,0,0),
+(@CGUID+3903,32820,0,1,1,0,0,2589.44,475.936,25.3739,3.21396,600,20,0,2,0,1,0,0,0),
+(@CGUID+3904,32820,0,1,1,0,0,2560.58,1207.44,66.8358,3.85013,600,20,0,2,0,1,0,0,0),
+(@CGUID+3905,32820,0,1,1,0,0,2047.95,292.193,56.5388,3.68053,600,20,0,2,0,1,0,0,0),
+(@CGUID+3906,32820,0,1,1,0,0,-14293.8,517.256,8.95354,3.72474,600,20,0,2,0,1,0,0,0),
+(@CGUID+3907,32820,0,1,1,0,0,-3756.55,-762.724,9.32934,2.4319,600,20,0,2,0,1,0,0,0),
+(@CGUID+3908,32820,0,1,1,0,0,-5040.8,-803.692,495.129,2.81595,600,20,0,2,0,1,0,0,0),
+(@CGUID+3909,32820,0,1,1,0,0,-5087.72,-803.254,495.127,3.21995,600,20,0,2,0,1,0,0,0),
+(@CGUID+3910,32820,0,1,1,0,0,-5097.2,-797.589,495.127,0.435709,600,20,0,2,0,1,0,0,0),
+(@CGUID+3911,32820,0,1,1,0,0,-5083.38,-787.805,495.911,4.78682,600,20,0,2,0,1,0,0,0),
+(@CGUID+3912,32820,0,1,1,0,0,-5074.94,-799.68,495.127,3.3299,600,20,0,2,0,1,0,0,0),
+(@CGUID+3913,32820,0,1,1,0,0,-5076.41,-803.853,495.127,2.04185,600,20,0,2,0,1,0,0,0),
+(@CGUID+3914,32820,0,1,1,0,0,-5090.39,-807.055,495.08,2.00258,600,20,0,2,0,1,0,0,0),
+(@CGUID+3915,32820,0,1,1,0,0,-5095.91,-792.882,495.157,5.22664,600,20,0,2,0,1,0,0,0),
+(@CGUID+3916,32820,0,1,1,0,0,-5079.43,-789.073,495.722,3.73046,600,20,0,2,0,1,0,0,0),
+(@CGUID+3917,32820,0,1,1,0,0,-5079.51,-793.698,495.44,2.5445,600,20,0,2,0,1,0,0,0),
+(@CGUID+3918,32820,0,1,1,0,0,-5081.14,-803.525,495.128,0.848043,600,20,0,2,0,1,0,0,0),
+(@CGUID+3919,32820,0,1,1,0,0,-5090.63,-807.07,495.078,1.75518,600,20,0,2,0,1,0,0,0),
+(@CGUID+3920,32820,0,1,1,0,0,-5094.72,-806.292,495.161,0.745942,600,20,0,2,0,1,0,0,0),
+(@CGUID+3921,32820,0,1,1,0,0,-5095.77,-802.078,495.132,5.84318,600,20,0,2,0,1,0,0,0),
+(@CGUID+3922,32820,0,1,1,0,0,-5089.96,-796.654,495.151,2.80369,600,20,0,2,0,1,0,0,0),
+(@CGUID+3923,32820,0,1,1,0,0,-5082.59,-795.26,495.322,1.50385,600,20,0,2,0,1,0,0,0),
+(@CGUID+3924,32820,0,1,1,0,0,-5082.54,-798.894,495.137,5.86674,600,20,0,2,0,1,0,0,0),
+(@CGUID+3925,32820,0,1,1,0,0,-5071.89,-801.345,495.128,0.094064,600,20,0,2,0,1,0,0,0),
+(@CGUID+3926,32820,0,1,1,0,0,-9116.52,314.55,93.0822,4.65069,600,20,0,2,0,1,0,0,0),
+(@CGUID+3927,32820,0,1,1,0,0,-9115.78,325.128,93.2047,4.70174,600,20,0,2,0,1,0,0,0),
+(@CGUID+3928,32820,0,1,1,0,0,-9114.1,336.911,93.4026,4.61927,600,20,0,2,0,1,0,0,0),
+(@CGUID+3929,32820,0,1,1,0,0,-9113.13,348.931,93.5571,4.53288,600,20,0,2,0,1,0,0,0),
+(@CGUID+3930,32820,0,1,1,0,0,-9110.13,345.405,93.4552,3.04455,600,20,0,2,0,1,0,0,0),
+(@CGUID+3931,32820,0,1,1,0,0,-9111.31,333.146,93.2693,3.15058,600,20,0,2,0,1,0,0,0),
+(@CGUID+3932,32820,0,1,1,0,0,-9111.83,320.705,93.1879,2.86784,600,20,0,2,0,1,0,0,0),
+(@CGUID+3933,32820,0,1,1,0,0,-9113.34,310.046,93.2807,2.96208,600,20,0,2,0,1,0,0,0),
+(@CGUID+3934,32820,0,1,1,0,0,-9114.8,307.034,93.4531,2.28664,600,20,0,2,0,1,0,0,0),
+(@CGUID+3935,32820,0,1,1,0,0,-9119.35,307.993,93.1764,0.637305,600,20,0,2,0,1,0,0,0),
+(@CGUID+3936,32820,0,1,1,0,0,-9114.01,317.994,93.1465,2.10207,600,20,0,2,0,1,0,0,0),
+(@CGUID+3937,32820,0,1,1,0,0,-9118.64,318.192,93.207,0.484153,600,20,0,2,0,1,0,0,0),
+(@CGUID+3938,32820,0,1,1,0,0,-9112.75,329.259,93.1734,2.12564,600,20,0,2,0,1,0,0,0),
+(@CGUID+3939,32820,0,1,1,0,0,-9116.74,329.417,93.1118,0.923976,600,20,0,2,0,1,0,0,0),
+(@CGUID+3940,32820,0,1,1,0,0,-9112.46,341.845,93.5009,1.93714,600,20,0,2,0,1,0,0,0),
+(@CGUID+3941,32820,0,1,1,0,0,-9116.35,342.758,93.8079,0.637305,600,20,0,2,0,1,0,0,0),
+(@CGUID+3942,32820,0,1,1,0,0,-9118.91,350.746,93.735,2.14134,600,20,0,2,0,1,0,0,0),
+(@CGUID+3943,32820,0,1,1,0,0,-9118.18,359.164,93.2702,1.90179,600,20,0,2,0,1,0,0,0),
+(@CGUID+3944,32820,0,1,1,0,0,-9111.63,353.697,93.4015,2.40837,600,20,0,2,0,1,0,0,0),
+(@CGUID+3945,32820,0,1,1,0,0,-9127.56,351.404,94.2329,2.13741,600,20,0,2,0,1,0,0,0),
+(@CGUID+3946,32820,0,1,1,0,0,-9110.83,366.354,94.0632,2.67934,600,20,0,2,0,1,0,0,0),
+(@CGUID+3947,32820,0,1,1,0,0,-9125.02,352.824,94.2342,2.1217,600,20,0,2,0,1,0,0,0),
+(@CGUID+3948,32820,0,1,1,0,0,1819.47,256.351,60.0177,6.08671,600,20,0,2,0,1,0,0,0),
+(@CGUID+3949,32820,0,1,1,0,0,1823.47,259.36,59.921,4.44916,600,20,0,2,0,1,0,0,0),
+(@CGUID+3950,32820,0,1,1,0,0,1826.98,256.962,59.7774,3.40851,600,20,0,2,0,1,0,0,0),
+(@CGUID+3951,32820,0,1,1,0,0,1825.59,252.345,59.9664,2.01836,600,20,0,2,0,1,0,0,0),
+(@CGUID+3952,32820,0,1,1,0,0,1830.29,254.158,59.6774,6.02781,600,20,0,2,0,1,0,0,0),
+(@CGUID+3953,32820,0,1,1,0,0,1833.77,256.523,59.7223,4.64552,600,20,0,2,0,1,0,0,0),
+(@CGUID+3954,32820,0,1,1,0,0,1837.2,254.766,59.856,3.58916,600,20,0,2,0,1,0,0,0),
+(@CGUID+3955,32820,0,1,1,0,0,1836.83,251.094,59.922,2.54065,600,20,0,2,0,1,0,0,0),
+(@CGUID+3956,32820,0,1,1,0,0,1821.62,222.529,60.1521,6.01211,600,20,0,2,0,1,0,0,0),
+(@CGUID+3957,32820,0,1,1,0,0,1825.06,224.891,60.2886,4.72799,600,20,0,2,0,1,0,0,0),
+(@CGUID+3958,32820,0,1,1,0,0,1828.78,223.155,60.5687,3.59309,600,20,0,2,0,1,0,0,0),
+(@CGUID+3959,32820,0,1,1,0,0,1828.2,219.471,60.6056,2.42991,600,20,0,2,0,1,0,0,0),
+(@CGUID+3960,32820,0,1,1,0,0,1831.58,220.664,60.5304,6.01918,600,20,0,2,0,1,0,0,0),
+(@CGUID+3961,32820,0,1,1,0,0,1834.82,223.437,60.2865,4.83323,600,20,0,2,0,1,0,0,0),
+(@CGUID+3962,32820,0,1,1,0,0,1838.43,221.277,60.1987,3.55697,600,20,0,2,0,1,0,0,0),
+(@CGUID+3963,32820,0,1,1,0,0,1837.5,217.672,60.1333,2.31996,600,20,0,2,0,1,0,0,0),
+(@CGUID+3964,18927,0,1,1,0,0,-8854.78,649.83,96.7417,1.43117,300,0,0,42,0,0,0,0,0),
+(@CGUID+3965,19148,0,1,1,0,0,-4915.33,-953.892,501.498,2.25016,300,0,0,42,0,0,0,0,0),
+(@CGUID+3966,19171,530,1,1,0,0,-3909.22,-11614.8,-138.101,3.1765,300,0,0,42,0,0,0,0,0),
+(@CGUID+3967,19172,0,1,1,0,0,-4829.02,-1174.75,502.193,0.724139,300,0,0,42,0,0,0,0,0),
+(@CGUID+3968,19173,1,1,1,0,0,9921.56,2499.58,1317.77,5.61996,300,0,0,42,0,0,0,0,0),
+(@CGUID+3969,19178,0,1,1,0,0,1626.7,222.7,-43.1027,1.01229,300,0,0,42,0,0,0,0,0),
+(@CGUID+3970,19177,1,1,1,0,0,1688.01,-4350.19,61.2691,2.56413,300,0,0,42,0,0,0,0,0),
+(@CGUID+3971,19176,1,1,1,0,0,-1241.98,81.7344,129.422,5.4992,300,0,0,42,0,0,0,0,0),
+(@CGUID+3972,19175,1,1,1,0,0,1607.39,-4402.93,10.1664,3.11715,300,0,0,42,0,0,0,0,0),
+(@CGUID+3973,19169,530,1,1,0,0,9659.86,-7115.63,14.3239,5.88552,300,0,0,42,0,0,0,0,0),
+(@CGUID+3974,20102,1,1,1,0,0,6747.03,-4664.43,724.551,3.61009,300,0,0,42,0,0,0,0,0),
+(@CGUID+3975,20102,1,1,1,0,0,-938.792,-3735.2,8.57162,3.66385,300,0,0,42,0,0,0,0,0),
+(@CGUID+3976,20102,1,1,1,0,0,-7177.24,-3810.02,8.3753,0.711558,300,0,0,42,0,0,0,0,0),
+(@CGUID+3977,20102,0,1,1,0,0,-14464.9,470.287,15.0369,5.96098,300,0,0,42,0,0,0,0,0),
+(@CGUID+3978,20102,530,1,1,0,0,-1888.02,5400.44,-12.4278,5.97919,300,0,0,42,0,0,0,0,0),
+(@CGUID+3979,20102,530,1,1,0,0,3035.51,3635.08,144.47,0.901821,300,0,0,42,0,0,0,0,0),
+(@CGUID+3980,19169,571,1,1,0,0,5889.57,550.355,639.637,1.57167,300,0,0,42,0,0,0,0,0),
+(@CGUID+3981,18927,571,1,1,0,0,5719.3,687.257,645.752,5.72721,300,0,0,42,0,0,0,0,0),
+(@CGUID+3982,18927,0,1,1,0,0,-8855.97,652.546,96.2675,5.07716,300,0,0,42,0,0,0,0,0),
+(@CGUID+3983,18927,571,1,1,0,0,5678.09,658.93,647.134,0.088838,300,0,0,42,0,0,0,0,0),
+(@CGUID+3984,19148,0,1,1,0,0,-4914.82,-951.191,501.498,4.5773,300,0,0,42,0,0,0,0,0),
+(@CGUID+3985,19171,530,1,1,0,0,-3910.91,-11612.4,-138.243,4.99941,300,0,0,42,0,0,0,0,0),
+(@CGUID+3986,19172,0,1,1,0,0,-4826.78,-1175.89,502.193,2.45358,300,0,0,42,0,0,0,0,0),
+(@CGUID+3987,19173,1,1,1,0,0,9923.44,2496.95,1317.49,2.28359,300,0,0,42,0,0,0,0,0),
+(@CGUID+3988,19169,571,1,1,0,0,5928.98,639.593,645.557,3.01052,300,0,0,42,0,0,0,0,0),
+(@CGUID+3989,19169,530,1,1,0,0,9664.38,-7117.91,14.324,2.63397,300,0,0,42,0,0,0,0,0),
+(@CGUID+3990,19175,1,1,1,0,0,1603.36,-4404.49,9.30901,0.627438,300,0,0,42,0,0,0,0,0),
+(@CGUID+3991,19176,1,1,1,0,0,-1242.68,76.7127,128.935,1.27376,300,0,0,42,0,0,0,0,0),
+(@CGUID+3992,19177,1,1,1,0,0,1685.07,-4352.88,61.7253,1.79601,300,0,0,42,0,0,0,0,0),
+(@CGUID+3993,19178,0,1,1,0,0,1629.95,219.238,-43.1027,1.91079,300,0,0,42,0,0,0,0,0),
+(@CGUID+3994,20102,1,1,1,0,0,6745.48,-4667.44,723.103,1.03712,300,0,0,42,0,0,0,0,0),
+(@CGUID+3995,20102,1,1,1,0,0,-936.306,-3738.3,8.96324,3.35283,300,0,0,42,0,0,0,0,0),
+(@CGUID+3996,20102,1,1,1,0,0,-7173.14,-3808.58,8.37043,3.3285,300,0,0,42,0,0,0,0,0),
+(@CGUID+3997,20102,0,1,1,0,0,-14461.4,468.507,15.1232,2.66545,300,0,0,42,0,0,0,0,0),
+(@CGUID+3998,20102,530,1,1,0,0,-1884.63,5397.52,-12.4278,2.51637,300,0,0,42,0,0,0,0,0);
+
+DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID AND @OGUID+591;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@OGUID,195191,0,1,1,-5074.44,-782.17,495.119,4.20169,0,0,0.862781,-0.505577,300,0,1),
+(@OGUID+1,195164,0,1,1,-5073.87,-782.25,496.007,3.03145,0,0,0.998484,0.0550425,300,0,1),
+(@OGUID+2,195195,0,1,1,-5073.04,-783.32,496.007,2.21464,0,0,0.894503,0.447062,300,0,1),
+(@OGUID+3,195192,0,1,1,-5075.63,-782.225,496.007,2.68195,0,0,0.973707,0.227804,300,0,1),
+(@OGUID+4,195215,0,1,1,-5074.51,-782.057,496.007,3.29063,0,0,0.997225,-0.0744513,300,0,1),
+(@OGUID+5,195198,0,1,1,-5078.52,-780.332,495.148,1.81016,0,0,0.786474,0.617624,300,0,1),
+(@OGUID+6,195196,0,1,1,-5081.48,-809.468,495.127,5.09312,0,0,0.560535,-0.82813,300,0,1),
+(@OGUID+7,195194,0,1,1,-5074.6,-805.472,495.127,5.17166,0,0,0.527592,-0.849498,300,0,1),
+(@OGUID+8,195197,0,1,1,-5071.19,-788.535,495.001,0.561371,0,0,0.277014,0.960866,300,0,1),
+(@OGUID+9,195212,0,1,1,-5071.77,-785.649,495.013,0.698816,0,0,0.342342,0.939576,300,0,1),
+(@OGUID+10,195303,0,1,1,-5079.17,-811.633,495.128,4.6101,0,0,0.742332,-0.670032,300,0,1),
+(@OGUID+11,195303,0,1,1,-5078.82,-811.385,495.128,1.35069,0,0,0.625168,0.78049,300,0,1),
+(@OGUID+12,195303,0,1,1,-5077.27,-781.108,495.129,4.67293,0,0,0.72092,-0.693018,300,0,1),
+(@OGUID+13,180353,0,1,1,-5084.4,-786.175,495.73,3.2435,0,0,0.998702,-0.0509329,300,0,1),
+(@OGUID+14,180353,0,1,1,-5095.12,-790.328,495.205,3.48698,0,0,0.985126,-0.171835,300,0,1),
+(@OGUID+15,180353,0,1,1,-5092.54,-808.978,495.1,6.22801,0,0,0.0275838,-0.999619,300,0,1),
+(@OGUID+16,180353,0,1,1,-5076.06,-806.492,495.126,5.89029,0,0,0.195186,-0.980766,300,0,1),
+(@OGUID+17,180353,0,1,1,-5085.47,-807.597,495.124,4.16634,0,0,0.871583,-0.490248,300,0,1),
+(@OGUID+18,180353,0,1,1,-5076.27,-780.06,495.307,1.17397,0,0,0.553855,0.832613,300,0,1),
+(@OGUID+19,180353,0,1,1,-5071.41,-783.176,494.957,0.702734,0,0,0.344182,0.938903,300,0,1),
+(@OGUID+20,180353,0,1,1,-5072.26,-803.167,495.128,6.17696,0,0,0.0530896,-0.99859,300,0,1),
+(@OGUID+21,180353,0,1,1,-5069.62,-790.932,495.128,6.07878,0,0,0.102024,-0.994782,300,0,1),
+(@OGUID+22,195191,0,1,1,-9108.9,364.276,93.9704,2.74217,0,0,0.980124,0.198386,300,0,1),
+(@OGUID+23,195164,0,1,1,-9108.9,364.276,94.8585,1.14389,0,0,0.541267,0.840851,300,0,1),
+(@OGUID+24,195195,0,1,1,-9110.3,362.797,94.8585,0.814019,0,0,0.395865,0.918309,300,0,1),
+(@OGUID+25,195192,0,1,1,-9108.85,365.595,94.8591,1.20672,0,0,0.567411,0.823434,300,0,1),
+(@OGUID+26,195215,0,1,1,-9109.13,364.867,94.8591,1.20672,0,0,0.567411,0.823434,300,0,1),
+(@OGUID+27,195200,0,1,1,-9114.88,360.066,93.5696,5.88769,0,0,0.196461,-0.980512,300,0,1),
+(@OGUID+28,195198,0,1,1,-9109.01,368.778,94.0214,0.342777,0,0,0.170551,0.985349,300,0,1),
+(@OGUID+29,195198,0,1,1,-9114.53,354.438,93.4013,5.24366,0,0,0.496674,-0.867937,300,0,1),
+(@OGUID+30,195196,0,1,1,-9113.92,363.176,93.8391,5.46357,0,0,0.398432,-0.917198,300,0,1),
+(@OGUID+31,195194,0,1,1,-9119.82,359.342,93.1893,5.08265,0,0,0.564861,-0.825186,300,0,1),
+(@OGUID+32,195197,0,1,1,-9111.72,368.989,94.1376,6.2529,0,0,0.0151425,-0.999885,300,0,1),
+(@OGUID+33,195197,0,1,1,-9109.75,353.516,93.3842,5.47535,0,0,0.393022,-0.919529,300,0,1),
+(@OGUID+34,195199,0,1,1,-9105.29,367.059,93.0555,6.15472,0,0,0.0641869,-0.997938,300,0,1),
+(@OGUID+35,195199,0,1,1,-9111.07,351.772,93.4565,2.0039,0,0,0.842522,0.538662,300,0,1),
+(@OGUID+36,195199,0,1,1,-9118.75,357.285,93.2502,1.69366,0,0,0.749186,0.66236,300,0,1),
+(@OGUID+37,195212,0,1,1,-9111.16,360.718,93.8337,2.31413,0,0,0.915627,0.402029,300,0,1),
+(@OGUID+38,195212,0,1,1,-9111.21,356.638,93.3919,2.32591,0,0,0.917979,0.396629,300,0,1),
+(@OGUID+39,195212,0,1,1,-9109.4,358.181,93.6363,2.58509,0,0,0.961537,0.274674,300,0,1),
+(@OGUID+40,195212,0,1,1,-9105.45,364.199,93.3237,3.12702,0,0,0.999973,0.00728787,300,0,1),
+(@OGUID+41,195212,0,1,1,-9106.28,369.586,93.3838,3.6336,0,0,0.969894,-0.243529,300,0,1),
+(@OGUID+42,195303,0,1,1,-9108.46,370.797,93.9633,3.30373,0,0,0.996716,-0.0809796,300,0,1),
+(@OGUID+43,195303,0,1,1,-9107.36,367.547,93.7091,3.25661,0,0,0.998347,-0.0574749,300,0,1),
+(@OGUID+44,195303,0,1,1,-9111.39,362.091,93.8947,2.0628,0,0,0.858019,0.513618,300,0,1),
+(@OGUID+45,180353,0,1,1,-9106.44,366.297,93.4249,5.97015,0,0,0.155878,-0.987776,300,0,1),
+(@OGUID+46,180353,0,1,1,-9107.49,361.434,93.7582,4.30904,0,0,0.834417,-0.551133,300,0,1),
+(@OGUID+47,180353,0,1,1,-9107.88,355.021,93.3263,2.12956,0,0,0.874682,0.484698,300,0,1),
+(@OGUID+48,180353,0,1,1,-9106.72,347.759,93.3323,4.69388,0,0,0.71362,-0.700533,300,0,1),
+(@OGUID+49,180353,0,1,1,-9106.8,343.546,93.5129,4.69388,0,0,0.71362,-0.700533,300,0,1),
+(@OGUID+50,180353,0,1,1,-9106.46,335.828,93.6541,4.75279,0,0,0.692681,-0.721244,300,0,1),
+(@OGUID+51,180353,0,1,1,-9106.32,332.317,93.5889,4.75279,0,0,0.692681,-0.721244,300,0,1),
+(@OGUID+52,180353,0,1,1,-9106.95,323.154,93.3763,4.79991,0,0,0.675496,-0.737363,300,0,1),
+(@OGUID+53,180353,0,1,1,-9106.67,320.002,93.4244,4.79991,0,0,0.675496,-0.737363,300,0,1),
+(@OGUID+54,180353,0,1,1,-9108.21,310.725,93.7368,4.61534,0,0,0.740572,-0.671977,300,0,1),
+(@OGUID+55,180353,0,1,1,-9108.5,307.8,93.8631,4.61534,0,0,0.740572,-0.671977,300,0,1),
+(@OGUID+56,180353,0,1,1,-9123.38,309.698,93.1581,1.61119,0,0,0.721244,0.692681,300,0,1),
+(@OGUID+57,180353,0,1,1,-9123.5,312.509,93.314,1.61119,0,0,0.721244,0.692681,300,0,1),
+(@OGUID+58,180353,0,1,1,-9123.81,320.224,93.4622,1.61119,0,0,0.721244,0.692681,300,0,1),
+(@OGUID+59,180353,0,1,1,-9123.96,324.078,93.4462,1.61119,0,0,0.721244,0.692681,300,0,1),
+(@OGUID+60,180353,0,1,1,-9123.28,332.133,93.3779,1.4816,0,0,0.674879,0.737928,300,0,1),
+(@OGUID+61,180353,0,1,1,-9122.97,335.626,93.6704,1.4816,0,0,0.674879,0.737928,300,0,1),
+(@OGUID+62,180353,0,1,1,-9122.03,343.65,94.1882,1.4816,0,0,0.674879,0.737928,300,0,1),
+(@OGUID+63,180353,0,1,1,-9121.66,347.84,94.0413,1.4816,0,0,0.674879,0.737928,300,0,1),
+(@OGUID+64,180353,0,1,1,-9120.34,357.919,93.1309,2.03924,0,0,0.851908,0.523692,300,0,1),
+(@OGUID+65,180353,0,1,1,-9124.05,353.904,93.4149,2.01096,0,0,0.844419,0.535683,300,0,1),
+(@OGUID+66,180353,0,1,1,-9129.1,350.316,93.5324,2.05966,0,0,0.857211,0.514966,300,0,1),
+(@OGUID+67,180353,0,1,1,-9126.2,352.023,93.5502,2.16569,0,0,0.883294,0.468819,300,0,1),
+(@OGUID+68,195191,1,1,1,10004.8,2226.45,1330.13,3.13414,0,0,0.999993,0.00372881,300,0,1),
+(@OGUID+69,195164,1,1,1,10004.8,2226.39,1331.01,1.59868,0,0,0.716896,0.69718,300,0,1),
+(@OGUID+70,195195,1,1,1,10004.7,2224.82,1331.01,1.51229,0,0,0.686121,0.727487,300,0,1),
+(@OGUID+71,195192,1,1,1,10004.3,2227.59,1331.01,1.67329,0,0,0.742401,0.669956,300,0,1),
+(@OGUID+72,195215,1,1,1,10004.4,2226.69,1331.01,1.67722,0,0,0.743715,0.668497,300,0,1),
+(@OGUID+73,195200,1,1,1,10001.9,2221.9,1329.61,4.41433,0,0,0.804258,-0.59428,300,0,1),
+(@OGUID+74,195198,1,1,1,9985.81,2241.07,1331.4,3.28336,0,0,0.997489,-0.0708247,300,0,1),
+(@OGUID+75,195198,1,1,1,10003.1,2234.87,1329.32,3.79387,0,0,0.947286,-0.320388,300,0,1),
+(@OGUID+76,195196,1,1,1,10002.5,2232.19,1329.84,3.7978,0,0,0.946655,-0.322247,300,0,1),
+(@OGUID+77,195196,1,1,1,9988.36,2241.36,1331.18,3.12236,0,0,0.999954,0.00961857,300,0,1),
+(@OGUID+78,195194,1,1,1,10001.2,2225.46,1329.96,2.88281,0,0,0.991641,0.129031,300,0,1),
+(@OGUID+79,195197,1,1,1,9987.62,2239.49,1331.19,3.04774,0,0,0.998899,0.0469072,300,0,1),
+(@OGUID+80,195197,1,1,1,10001.7,2234.57,1329.54,4.3358,0,0,0.826967,-0.56225,300,0,1),
+(@OGUID+81,195212,1,1,1,10005.8,2231.28,1329.7,3.66821,0,0,0.965534,-0.260278,300,0,1),
+(@OGUID+82,195212,1,1,1,10009.6,2230.83,1329.41,3.54648,0,0,0.979578,-0.201062,300,0,1),
+(@OGUID+83,195212,1,1,1,10008.6,2228.53,1329.99,3.45616,0,0,0.987657,-0.156634,300,0,1),
+(@OGUID+84,195212,1,1,1,10005.7,2221.27,1329.69,2.71788,0,0,0.977642,0.210275,300,0,1),
+(@OGUID+85,195212,1,1,1,9990.62,2240.48,1330.86,3.06346,0,0,0.999237,0.0390581,300,0,1),
+(@OGUID+86,195199,1,1,1,9990.57,2243.64,1330.71,3.1577,0,0,0.999968,-0.00805576,300,0,1),
+(@OGUID+87,195199,1,1,1,10007,2235.34,1328.77,4.29653,0,0,0.837846,-0.545907,300,0,1),
+(@OGUID+88,195199,1,1,1,10009.2,2223.82,1329.94,2.84355,0,0,0.988917,0.148472,300,0,1),
+(@OGUID+89,195303,1,1,1,10005.2,2222.65,1329.86,2.71003,0,0,0.976809,0.214111,300,0,1),
+(@OGUID+90,195303,1,1,1,10004.3,2229.67,1330.11,3.55041,0,0,0.979182,-0.202986,300,0,1),
+(@OGUID+91,195303,1,1,1,10004,2231.16,1329.87,3.58575,0,0,0.975442,-0.220257,300,0,1),
+(@OGUID+92,195303,1,1,1,9989.61,2240.32,1331.01,5.05444,0,0,0.576446,-0.817135,300,0,1),
+(@OGUID+93,180353,1,1,1,9983.18,2245.02,1331.84,3.23231,0,0,0.998971,-0.0453449,300,0,1),
+(@OGUID+94,180353,1,1,1,10006.4,2229.73,1329.97,4.63818,0,0,0.732852,-0.680388,300,0,1),
+(@OGUID+95,180353,1,1,1,10007,2223.84,1330.01,4.69316,0,0,0.713874,-0.700274,300,0,1),
+(@OGUID+96,180353,1,1,1,10002.6,2215.54,1328.7,3.11451,0,0,0.999908,0.013543,300,0,1),
+(@OGUID+97,180353,1,1,1,10002.7,2212.55,1328.26,3.16163,0,0,0.99995,-0.0100193,300,0,1),
+(@OGUID+98,180353,1,1,1,10002.2,2207.07,1327.79,3.14985,0,0,0.999991,-0.00412897,300,0,1),
+(@OGUID+99,180353,1,1,1,10002.8,2203.31,1327.76,3.25195,0,0,0.998478,-0.0551519,300,0,1),
+(@OGUID+100,180353,1,1,1,9996.26,2194.43,1327.7,3.25588,0,0,0.998368,-0.0571123,300,0,1),
+(@OGUID+101,180353,1,1,1,9992.76,2194.03,1327.82,3.25588,0,0,0.998368,-0.0571123,300,0,1),
+(@OGUID+102,180353,1,1,1,9985.05,2193.15,1328.59,3.25588,0,0,0.998368,-0.0571123,300,0,1),
+(@OGUID+103,180353,1,1,1,9982.1,2192.81,1328.84,3.25588,0,0,0.998368,-0.0571123,300,0,1),
+(@OGUID+104,180353,1,1,1,9975.17,2197.07,1328.93,1.54371,0,0,0.697466,0.716617,300,0,1),
+(@OGUID+105,180353,1,1,1,9975.25,2200.06,1328.91,1.54371,0,0,0.697466,0.716617,300,0,1),
+(@OGUID+106,180353,1,1,1,9973.8,2207.95,1329.23,1.61832,0,0,0.723709,0.690105,300,0,1),
+(@OGUID+107,180353,1,1,1,9973.67,2210.56,1329.33,1.62225,0,0,0.725063,0.688683,300,0,1),
+(@OGUID+108,180353,1,1,1,9976.81,2216.66,1329.18,0.122141,0,0,0.0610327,0.998136,300,0,1),
+(@OGUID+109,180353,1,1,1,9980.82,2217.15,1328.8,0.122141,0,0,0.0610327,0.998136,300,0,1),
+(@OGUID+110,180353,1,1,1,9990.4,2218.56,1328.55,0.0553825,0,0,0.0276877,0.999617,300,0,1),
+(@OGUID+111,180353,1,1,1,9993.38,2218.72,1328.65,0.0553825,0,0,0.0276877,0.999617,300,0,1),
+(@OGUID+112,195191,530,1,1,-3955.34,-11863.2,0.830986,3.63028,0,0,0.970296,-0.24192,300,0,1),
+(@OGUID+113,195164,530,1,1,-3955.34,-11863.2,1.71971,3.52818,0,0,0.981377,-0.192092,300,0,1),
+(@OGUID+114,195195,530,1,1,-3954.82,-11864.6,1.71971,1.88277,0,0,0.808374,0.588669,300,0,1),
+(@OGUID+115,195192,530,1,1,-3956.34,-11862.3,1.71989,2.16551,0,0,0.883254,0.468896,300,0,1),
+(@OGUID+116,195215,530,1,1,-3955.13,-11864.2,1.97205,2.12624,0,0,0.873877,0.486147,300,0,1),
+(@OGUID+117,195200,530,1,1,-3951.67,-11868.6,0.949688,3.61065,0,0,0.972624,-0.232383,300,0,1),
+(@OGUID+118,195198,530,1,1,-3955.82,-11857.2,0.764875,3.7206,0,0,0.958385,-0.285478,300,0,1),
+(@OGUID+119,195196,530,1,1,-3959.87,-11860,0.710028,3.96408,0,0,0.916625,-0.399748,300,0,1),
+(@OGUID+120,195194,530,1,1,-3957.05,-11866.4,0.827674,3.32397,0,0,0.995845,-0.0910648,300,0,1),
+(@OGUID+121,195197,530,1,1,-3954.63,-11867.9,0.891499,3.11192,0,0,0.99989,0.0148376,300,0,1),
+(@OGUID+122,195212,530,1,1,-3953.94,-11866.2,0.8877,3.1237,0,0,0.99996,0.00894757,300,0,1),
+(@OGUID+123,195212,530,1,1,-3953.9,-11859.5,0.824961,3.48498,0,0,0.985297,-0.170852,300,0,1),
+(@OGUID+124,195212,530,1,1,-3956.95,-11858.9,0.758281,3.66955,0,0,0.96536,-0.260923,300,0,1),
+(@OGUID+125,195212,530,1,1,-3959,-11857.7,0.705579,3.79521,0,0,0.947071,-0.321024,300,0,1),
+(@OGUID+126,195303,530,1,1,-3958.59,-11860.3,1.02229,4.30965,0,0,0.834249,-0.551388,300,0,1),
+(@OGUID+127,195303,530,1,1,-3957.48,-11861.1,0.769591,4.15257,0,0,0.874938,-0.484235,300,0,1),
+(@OGUID+128,180353,530,1,1,-3954.67,-11860.3,0.817822,3.70882,0,0,0.960051,-0.279826,300,0,1),
+(@OGUID+129,180353,530,1,1,-3952.77,-11864.2,0.892707,3.59886,0,0,0.973977,-0.226648,300,0,1),
+(@OGUID+130,180353,530,1,1,-3978.55,-11860.6,0.446388,3.98763,0,0,0.911853,-0.410517,300,0,1),
+(@OGUID+131,180353,530,1,1,-3980.7,-11859.3,0.420101,4.24681,0,0,0.851157,-0.524911,300,0,1),
+(@OGUID+132,180353,530,1,1,-3976.57,-11861.8,0.465867,4.09759,0,0,0.887918,-0.460003,300,0,1),
+(@OGUID+133,180353,530,1,1,-3974.81,-11863.1,0.483395,6.25743,0,0,0.0128756,-0.999917,300,0,1),
+(@OGUID+134,180353,530,1,1,-3970.8,-11863.2,0.532856,6.25743,0,0,0.0128756,-0.999917,300,0,1),
+(@OGUID+135,180353,530,1,1,-3965.14,-11863.3,0.639776,6.25743,0,0,0.0128756,-0.999917,300,0,1),
+(@OGUID+136,180353,530,1,1,-3958.77,-11871.5,0.842487,4.22718,0,0,0.856269,-0.516529,300,0,1),
+(@OGUID+137,180353,530,1,1,-3961.29,-11876.7,0.829859,4.26252,0,0,0.847008,-0.53158,300,0,1),
+(@OGUID+138,180353,530,1,1,-3963.99,-11882.9,0.794779,4.0701,0,0,0.894156,-0.447755,300,0,1),
+(@OGUID+139,180353,530,1,1,-3969.7,-11887.5,0.697352,2.84095,0,0,0.988723,0.149756,300,0,1),
+(@OGUID+140,180353,530,1,1,-3972.96,-11886.6,0.632589,2.86059,0,0,0.990146,0.140042,300,0,1),
+(@OGUID+141,180353,530,1,1,-3977.27,-11885.7,0.550238,2.99803,0,0,0.997425,0.0717196,300,0,1),
+(@OGUID+142,180353,530,1,1,-3982.69,-11880.4,0.446558,1.34869,0,0,0.624387,0.781115,300,0,1),
+(@OGUID+143,180353,530,1,1,-3981.39,-11874.6,0.447613,1.34869,0,0,0.624387,0.781115,300,0,1),
+(@OGUID+144,180353,530,1,1,-3981.4,-11869.1,0.40929,1.43509,0,0,0.657536,0.753423,300,0,1),
+(@OGUID+145,195191,1,1,1,1302.52,-4410.94,26.5561,3.19832,0,0,0.999598,-0.0283608,300,0,1),
+(@OGUID+146,195195,1,1,1,1302,-4412.47,27.4441,1.11702,0,0,0.529922,0.848046,300,0,1),
+(@OGUID+147,195192,1,1,1,1302.1,-4409.68,27.444,1.65109,0,0,0.734917,0.678157,300,0,1),
+(@OGUID+148,195215,1,1,1,1303.2,-4410.26,27.444,1.65501,0,0,0.736247,0.676713,300,0,1),
+(@OGUID+149,195200,1,1,1,1300.88,-4415.43,26.6914,0.150977,0,0,0.0754169,0.997152,300,0,1),
+(@OGUID+150,179968,1,1,1,1297.44,-4418.41,26.6135,5.58986,0,0,0.339761,-0.940512,300,0,1),
+(@OGUID+151,179968,1,1,1,1296.58,-4417.67,26.6345,5.57808,0,0,0.345295,-0.938494,300,0,1),
+(@OGUID+152,179968,1,1,1,1296.53,-4419.34,26.6187,5.66447,0,0,0.304446,-0.95253,300,0,1),
+(@OGUID+153,179968,1,1,1,1295.43,-4418.55,26.6254,5.65662,0,0,0.308184,-0.951327,300,0,1),
+(@OGUID+154,179968,1,1,1,1295.64,-4420.43,26.6132,5.64091,0,0,0.315646,-0.948877,300,0,1),
+(@OGUID+155,179968,1,1,1,1294.66,-4419.7,26.5909,5.64091,0,0,0.315646,-0.948877,300,0,1),
+(@OGUID+156,179968,1,1,1,1295.12,-4402.44,26.3123,1.1288,0,0,0.534908,0.84491,300,0,1),
+(@OGUID+157,179968,1,1,1,1294.65,-4403.47,26.3195,1.14843,0,0,0.543177,0.839618,300,0,1),
+(@OGUID+158,179968,1,1,1,1295.94,-4404.05,26.3415,1.14843,0,0,0.543177,0.839618,300,0,1),
+(@OGUID+159,179968,1,1,1,1296.37,-4403.09,26.3204,1.14843,0,0,0.543177,0.839618,300,0,1),
+(@OGUID+160,179968,1,1,1,1296.37,-4403.09,27.026,1.14843,0,0,0.543177,0.839618,300,0,1),
+(@OGUID+161,179968,1,1,1,1302.51,-4406.17,26.4073,0.339473,0,0,0.168922,0.985629,300,0,1),
+(@OGUID+162,179968,1,1,1,1302.51,-4406.17,27.1129,0.292349,0,0,0.145654,0.989336,300,0,1),
+(@OGUID+163,179968,1,1,1,1301.68,-4406.42,26.4589,0.292349,0,0,0.145654,0.989336,300,0,1),
+(@OGUID+164,179968,1,1,1,1301.09,-4405.5,26.478,0.245226,0,0,0.122306,0.992492,300,0,1),
+(@OGUID+165,179968,1,1,1,1302.34,-4407.39,26.4339,0.260935,0,0,0.130097,0.991501,300,0,1),
+(@OGUID+166,195198,1,1,1,1303.12,-4403.25,26.295,3.58788,0,0,0.975207,-0.221295,300,0,1),
+(@OGUID+167,195196,1,1,1,1304.8,-4406.37,26.1649,3.24623,0,0,0.998632,-0.0522942,300,0,1),
+(@OGUID+168,195194,1,1,1,1299.46,-4405.2,26.4748,3.85491,0,0,0.937068,-0.349146,300,0,1),
+(@OGUID+169,195197,1,1,1,1301.52,-4403.95,26.3724,3.72139,0,0,0.958272,-0.285857,300,0,1),
+(@OGUID+170,195197,1,1,1,1297.9,-4420.87,26.6368,2.72394,0,0,0.978275,0.207313,300,0,1),
+(@OGUID+171,195212,1,1,1,1304.73,-4408.7,26.2159,2.90065,0,0,0.992752,0.120178,300,0,1),
+(@OGUID+172,195212,1,1,1,1306.55,-4410.74,25.8364,2.8496,0,0,0.989362,0.145477,300,0,1),
+(@OGUID+173,195303,1,1,1,1305.29,-4413.29,26.1647,2.67289,0,0,0.972665,0.232213,300,0,1),
+(@OGUID+174,195303,1,1,1,1298.76,-4419.4,26.6275,1.69507,0,0,0.74965,0.661834,300,0,1),
+(@OGUID+175,180353,1,1,1,1280.23,-4413.12,26.4446,3.85884,0,0,0.93638,-0.350988,300,0,1),
+(@OGUID+176,180353,1,1,1,1275.71,-4417.02,26.4,3.85884,0,0,0.93638,-0.350988,300,0,1),
+(@OGUID+177,180353,1,1,1,1270.68,-4421.41,26.2863,3.85492,0,0,0.937067,-0.349148,300,0,1),
+(@OGUID+178,180353,1,1,1,1268.6,-4429.59,26.6604,5.32754,0,0,0.459849,-0.887997,300,0,1),
+(@OGUID+179,180353,1,1,1,1271.09,-4433.14,26.7162,5.32361,0,0,0.461591,-0.887093,300,0,1),
+(@OGUID+180,180353,1,1,1,1275.02,-4438.74,26.9386,5.32361,0,0,0.461591,-0.887093,300,0,1),
+(@OGUID+181,180353,1,1,1,1284.69,-4438.29,27.5673,0.528753,0,0,0.261308,0.965256,300,0,1),
+(@OGUID+182,180353,1,1,1,1289.41,-4435.53,27.3442,0.528753,0,0,0.261308,0.965256,300,0,1),
+(@OGUID+183,180353,1,1,1,1296.54,-4430.96,26.9027,0.697614,0,0,0.341777,0.939781,300,0,1),
+(@OGUID+184,180353,1,1,1,1304.26,-4412.35,26.4077,1.50657,0,0,0.68404,0.729444,300,0,1),
+(@OGUID+185,180353,1,1,1,1304.41,-4408.99,26.2925,1.52621,0,0,0.691168,0.722694,300,0,1),
+(@OGUID+186,180353,1,1,1,1295.63,-4406.77,26.4567,4.16907,0,0,0.870912,-0.491439,300,0,1),
+(@OGUID+187,180353,1,1,1,1290.06,-4404.73,26.3184,4.42826,0,0,0.800101,-0.599865,300,0,1),
+(@OGUID+188,179968,1,1,1,1281.13,-4412.77,26.4501,5.42178,0,0,0.417509,-0.908673,300,0,1),
+(@OGUID+189,179968,1,1,1,1279.71,-4413.85,26.4523,5.50817,0,0,0.37788,-0.925855,300,0,1),
+(@OGUID+190,179968,1,1,1,1276.3,-4416.39,26.4036,5.32361,0,0,0.461593,-0.887092,300,0,1),
+(@OGUID+191,179968,1,1,1,1274.84,-4417.44,26.3812,5.3511,0,0,0.449356,-0.893353,300,0,1),
+(@OGUID+192,179968,1,1,1,1271.26,-4420.47,26.2395,5.9048,0,0,0.188066,-0.982156,300,0,1),
+(@OGUID+193,179968,1,1,1,1270.17,-4422.24,26.376,5.87731,0,0,0.201547,-0.979479,300,0,1),
+(@OGUID+194,179968,1,1,1,1267.92,-4428.64,26.6532,0.520896,0,0,0.257513,0.966275,300,0,1),
+(@OGUID+195,179968,1,1,1,1268.77,-4430.44,26.6577,0.591582,0,0,0.291496,0.956572,300,0,1),
+(@OGUID+196,179968,1,1,1,1270.65,-4432.46,26.7018,0.842909,0,0,0.409088,0.912495,300,0,1),
+(@OGUID+197,179968,1,1,1,1271.64,-4433.71,26.7426,0.897887,0,0,0.434014,0.900906,300,0,1),
+(@OGUID+198,179968,1,1,1,1274.36,-4437.81,26.8996,0.752588,0,0,0.367476,0.930033,300,0,1),
+(@OGUID+199,179968,1,1,1,1275.57,-4439.37,26.9804,0.741593,0,0,0.362358,0.932039,300,0,1),
+(@OGUID+200,179968,1,1,1,1283.83,-4438.68,27.54,2.0807,0,0,0.862581,0.505919,300,0,1),
+(@OGUID+201,179968,1,1,1,1285.38,-4437.76,27.534,2.10426,0,0,0.868481,0.495723,300,0,1),
+(@OGUID+202,179968,1,1,1,1288.37,-4435.9,27.3867,2.11604,0,0,0.871386,0.490598,300,0,1),
+(@OGUID+203,179968,1,1,1,1289.92,-4435.09,27.3016,2.15138,0,0,0.879919,0.475124,300,0,1),
+(@OGUID+204,179968,1,1,1,1295.79,-4431.59,26.952,2.24563,0,0,0.901324,0.433146,300,0,1),
+(@OGUID+205,179968,1,1,1,1297.16,-4430.09,26.8497,2.30061,0,0,0.912888,0.408209,300,0,1),
+(@OGUID+206,195164,1,1,1,1297.52,-4430.13,27.5555,2.40664,0,0,0.933237,0.359262,300,0,1),
+(@OGUID+207,195164,1,1,1,1295.88,-4431.63,27.6582,2.21029,0,0,0.893529,0.449006,300,0,1),
+(@OGUID+208,195164,1,1,1,1290.11,-4435.29,28.0071,2.10033,0,0,0.867506,0.497427,300,0,1),
+(@OGUID+209,195164,1,1,1,1288.56,-4436.14,28.0923,1.99823,0,0,0.840993,0.541047,300,0,1),
+(@OGUID+210,195164,1,1,1,1285.61,-4437.76,28.2396,2.19065,0,0,0.889078,0.457756,300,0,1),
+(@OGUID+211,195164,1,1,1,1284.02,-4438.77,28.2456,2.09248,0,0,0.865546,0.50083,300,0,1),
+(@OGUID+212,195164,1,1,1,1275.56,-4439.34,27.6864,0.753374,0,0,0.367842,0.929888,300,0,1),
+(@OGUID+213,195164,1,1,1,1274.15,-4437.9,27.605,0.741593,0,0,0.362358,0.932039,300,0,1),
+(@OGUID+214,195164,1,1,1,1271.66,-4433.78,27.4488,0.906527,0,0,0.437902,0.899023,300,0,1),
+(@OGUID+215,195164,1,1,1,1270.69,-4432.51,27.4082,0.835841,0,0,0.405861,0.913935,300,0,1),
+(@OGUID+216,195164,1,1,1,1268.61,-4430.38,27.3632,0.563308,0,0,0.277945,0.960597,300,0,1),
+(@OGUID+217,195164,1,1,1,1267.88,-4428.73,27.3586,0.606505,0,0,0.298626,0.95437,300,0,1),
+(@OGUID+218,195164,1,1,1,1270.24,-4422.24,27.0815,5.81762,0,0,0.230685,-0.973029,300,0,1),
+(@OGUID+219,195164,1,1,1,1271.25,-4420.36,26.9449,5.87653,0,0,0.20193,-0.9794,300,0,1),
+(@OGUID+220,195164,1,1,1,1274.69,-4417.34,27.0869,5.35424,0,0,0.447952,-0.894058,300,0,1),
+(@OGUID+221,195164,1,1,1,1276.21,-4416.05,27.1098,5.34638,0,0,0.45146,-0.892292,300,0,1),
+(@OGUID+222,195164,1,1,1,1279.75,-4413.7,27.158,5.26392,0,0,0.487858,-0.872923,300,0,1),
+(@OGUID+223,195164,1,1,1,1280.97,-4412.84,27.1556,5.51917,0,0,0.372785,-0.927918,300,0,1),
+(@OGUID+224,195164,1,1,1,1296.35,-4419.28,27.3242,5.7705,0,0,0.253547,-0.967323,300,0,1),
+(@OGUID+225,195164,1,1,1,1301.94,-4411.23,27.444,0.311978,0,0,0.155357,0.987858,300,0,1),
+(@OGUID+226,195164,1,1,1,1296.44,-4403.09,27.7315,1.25681,0,0,0.587856,0.808965,300,0,1),
+(@OGUID+227,195164,1,1,1,1301.82,-4406.53,27.2368,5.4744,0,0,0.39346,-0.919342,300,0,1),
+(@OGUID+228,179968,530,1,1,-3981.01,-11861.1,0.416226,4.16906,0,0,0.870916,-0.491432,300,0,1),
+(@OGUID+229,179968,530,1,1,-3980.44,-11860.2,0.423322,4.16513,0,0,0.871879,-0.489721,300,0,1),
+(@OGUID+230,179968,530,1,1,-3980.04,-11861.9,0.426034,4.23975,0,0,0.853007,-0.5219,300,0,1),
+(@OGUID+231,179968,530,1,1,-3979.42,-11860.7,0.432217,4.23975,0,0,0.853007,-0.5219,300,0,1),
+(@OGUID+232,179968,530,1,1,-3962.22,-11859.2,0.655255,4.65994,0,0,0.725406,-0.688321,300,0,1),
+(@OGUID+233,179968,530,1,1,-3962.17,-11858.3,0.647246,4.65994,0,0,0.725406,-0.688321,300,0,1),
+(@OGUID+234,179968,530,1,1,-3962.17,-11858.3,1.35331,4.65994,0,0,0.725406,-0.688321,300,0,1),
+(@OGUID+235,179968,530,1,1,-3963.3,-11858,0.622251,4.49893,0,0,0.778409,-0.627758,300,0,1),
+(@OGUID+236,179968,530,1,1,-3963.57,-11858.9,0.625538,4.59711,0,0,0.746669,-0.665196,300,0,1),
+(@OGUID+237,179968,1,1,1,9982.13,2246.34,1332.02,3.13021,0,0,0.999984,0.0056905,300,0,1),
+(@OGUID+238,179968,1,1,1,9982.08,2243.54,1331.84,3.02026,0,0,0.99816,0.0606312,300,0,1),
+(@OGUID+239,179968,1,1,1,9999.55,2234.41,1329.88,4.31224,0,0,0.833534,-0.552467,300,0,1),
+(@OGUID+240,179968,1,1,1,9999.9,2235.24,1329.73,4.31224,0,0,0.833534,-0.552467,300,0,1),
+(@OGUID+241,179968,1,1,1,9999.9,2235.24,1330.44,4.31224,0,0,0.833534,-0.552467,300,0,1),
+(@OGUID+242,179968,1,1,1,9998.76,2235.77,1329.83,4.28475,0,0,0.841048,-0.54096,300,0,1),
+(@OGUID+243,179968,1,1,1,10002.5,2216.51,1328.84,3.28336,0,0,0.997489,-0.0708264,300,0,1),
+(@OGUID+244,179968,1,1,1,10002.9,2213.91,1328.47,3.31085,0,0,0.996421,-0.0845292,300,0,1),
+(@OGUID+245,179968,1,1,1,10003.2,2210.99,1328.12,3.17734,0,0,0.99984,-0.0178704,300,0,1),
+(@OGUID+246,179968,1,1,1,10003.1,2207.82,1327.83,3.33441,0,0,0.995356,-0.0962619,300,0,1),
+(@OGUID+247,179968,1,1,1,10003.3,2205.14,1327.77,3.22776,0,0,0.999072,-0.0430718,300,0,1),
+(@OGUID+248,179968,1,1,1,10003.9,2201.66,1327.86,3.21205,0,0,0.999379,-0.0352239,300,0,1),
+(@OGUID+249,179968,1,1,1,9997.22,2194.31,1327.73,1.54701,0,0,0.698647,0.715466,300,0,1),
+(@OGUID+250,179968,1,1,1,9994.37,2194.29,1327.74,1.48811,0,0,0.677275,0.73573,300,0,1),
+(@OGUID+251,179968,1,1,1,9991.63,2194.14,1327.89,1.41742,0,0,0.650855,0.759202,300,0,1),
+(@OGUID+252,179968,1,1,1,9986.12,2193.36,1328.47,1.60199,0,0,0.718048,0.695993,300,0,1),
+(@OGUID+253,179968,1,1,1,9983.56,2193.02,1328.73,1.55879,0,0,0.70285,0.711338,300,0,1),
+(@OGUID+254,179968,1,1,1,9980.77,2192.63,1328.9,1.51167,0,0,0.685896,0.7277,300,0,1),
+(@OGUID+255,179968,1,1,1,9974.98,2195.81,1328.95,0.0233379,0,0,0.0116687,0.999932,300,0,1),
+(@OGUID+256,179968,1,1,1,9975.06,2198.89,1328.92,6.25155,0,0,0.0158186,-0.999875,300,0,1),
+(@OGUID+257,179968,1,1,1,9975.13,2201.37,1328.94,6.1573,0,0,0.0629013,-0.99802,300,0,1),
+(@OGUID+258,179968,1,1,1,9974.23,2207.13,1329.15,0.0508296,0,0,0.0254121,0.999677,300,0,1),
+(@OGUID+259,179968,1,1,1,9973.79,2209.18,1329.29,0.0311947,0,0,0.0155967,0.999878,300,0,1),
+(@OGUID+260,179968,1,1,1,9973.39,2211.61,1329.39,0.156859,0,0,0.0783489,0.996926,300,0,1),
+(@OGUID+261,179968,1,1,1,9979.24,2216.92,1328.91,4.88889,0,0,0.642035,-0.766675,300,0,1),
+(@OGUID+262,179968,1,1,1,9975.86,2216.51,1329.29,4.82998,0,0,0.664334,-0.747436,300,0,1),
+(@OGUID+263,179968,1,1,1,9981.93,2217.48,1328.73,4.84961,0,0,0.656965,-0.753921,300,0,1),
+(@OGUID+264,179968,1,1,1,9988.83,2218.95,1328.58,4.75929,0,0,0.69033,-0.723494,300,0,1),
+(@OGUID+265,179968,1,1,1,9991.92,2218.84,1328.61,4.82213,0,0,0.667264,-0.744821,300,0,1),
+(@OGUID+266,179968,1,1,1,9994.95,2218.91,1328.77,4.66897,0,0,0.722289,-0.691592,300,0,1),
+(@OGUID+267,195164,1,1,1,9999.51,2234.51,1330.59,1.43313,0,0,0.6568,0.754065,300,0,1),
+(@OGUID+268,195164,1,1,1,9994.93,2219.04,1329.48,4.65326,0,0,0.727698,-0.685897,300,0,1),
+(@OGUID+269,195164,1,1,1,9991.99,2219.15,1329.31,4.66897,0,0,0.722289,-0.691591,300,0,1),
+(@OGUID+270,195164,1,1,1,9989.01,2219.09,1329.28,4.64148,0,0,0.731726,-0.681599,300,0,1),
+(@OGUID+271,195164,1,1,1,9981.98,2217.51,1329.43,4.68468,0,0,0.716835,-0.697243,300,0,1),
+(@OGUID+272,195164,1,1,1,9979.05,2217.06,1329.61,4.82212,0,0,0.667265,-0.74482,300,0,1),
+(@OGUID+273,195164,1,1,1,9975.8,2216.83,1330,4.82369,0,0,0.66668,-0.745344,300,0,1),
+(@OGUID+274,195164,1,1,1,9973.21,2211.7,1330.09,0.0877428,0,0,0.0438573,0.999038,300,0,1),
+(@OGUID+275,195164,1,1,1,9973.8,2209.13,1329.99,0.0846007,0,0,0.0422877,0.999105,300,0,1),
+(@OGUID+276,195164,1,1,1,9974.41,2207.01,1329.86,0.0610387,0,0,0.0305146,0.999534,300,0,1),
+(@OGUID+277,195164,1,1,1,9974.75,2201.51,1329.62,6.06541,0,0,0.108673,-0.994078,300,0,1),
+(@OGUID+278,195164,1,1,1,9975.09,2198.93,1329.62,0.0217681,0,0,0.0108838,0.999941,300,0,1),
+(@OGUID+279,195164,1,1,1,9974.65,2196.08,1329.65,0.00213314,0,0,0.00106657,0.999999,300,0,1),
+(@OGUID+280,195164,1,1,1,9980.82,2192.39,1329.6,1.42763,0,0,0.654723,0.755869,300,0,1),
+(@OGUID+281,195164,1,1,1,9983.48,2192.95,1329.43,1.40407,0,0,0.645773,0.76353,300,0,1),
+(@OGUID+282,195164,1,1,1,9986.32,2193.11,1329.18,1.48339,0,0,0.67554,0.737323,300,0,1),
+(@OGUID+283,195164,1,1,1,9991.7,2193.93,1328.59,1.71116,0,0,0.754951,0.655781,300,0,1),
+(@OGUID+284,195164,1,1,1,9994.25,2194.27,1328.45,1.45591,0,0,0.665343,0.746538,300,0,1),
+(@OGUID+285,195164,1,1,1,9997.38,2194.07,1328.44,1.45591,0,0,0.665343,0.746538,300,0,1),
+(@OGUID+286,195164,1,1,1,10004,2201.64,1328.57,3.10917,0,0,0.999869,0.0162108,300,0,1),
+(@OGUID+287,195164,1,1,1,10003.4,2205.32,1328.47,3.14059,0,0,1,0.000503496,300,0,1),
+(@OGUID+288,195164,1,1,1,10003.1,2207.89,1328.54,3.28196,0,0,0.997538,-0.0701248,300,0,1),
+(@OGUID+289,195164,1,1,1,10003.1,2210.9,1328.82,3.01492,0,0,0.997995,0.063293,300,0,1),
+(@OGUID+290,195164,1,1,1,10002.7,2213.92,1329.17,3.20342,0,0,0.999522,-0.0309075,300,0,1),
+(@OGUID+291,195164,1,1,1,10002.5,2216.61,1329.55,3.16415,0,0,0.999936,-0.0112772,300,0,1),
+(@OGUID+292,179968,0,1,1,-9125.02,352.824,93.5288,2.1217,0,0,0.872771,0.488131,300,0,1),
+(@OGUID+293,179968,0,1,1,-9127.56,351.404,93.5273,2.13741,0,0,0.876577,0.481261,300,0,1),
+(@OGUID+294,179968,0,1,1,-9121.57,348.944,93.9659,6.15864,0,0,0.0622308,-0.998062,300,0,1),
+(@OGUID+295,179968,0,1,1,-9122.27,346.012,94.1675,6.20969,0,0,0.0367379,-0.999325,300,0,1),
+(@OGUID+296,179968,0,1,1,-9122.08,342.306,94.1731,0.0325353,0,0,0.0162669,0.999868,300,0,1),
+(@OGUID+297,179968,0,1,1,-9122.38,336.465,93.7437,6.15864,0,0,0.0622322,-0.998062,300,0,1),
+(@OGUID+298,179968,0,1,1,-9122.77,333.542,93.4547,6.10759,0,0,0.0876855,-0.996148,300,0,1),
+(@OGUID+299,179968,0,1,1,-9123.52,331.044,93.3352,6.06832,0,0,0.107227,-0.994235,300,0,1),
+(@OGUID+300,179968,0,1,1,-9124.3,325.218,93.4123,6.25681,0,0,0.0131848,-0.999913,300,0,1),
+(@OGUID+301,179968,0,1,1,-9124.62,322.257,93.4678,6.26074,0,0,0.0112225,-0.999937,300,0,1),
+(@OGUID+302,179968,0,1,1,-9124,318.81,93.4679,0.0796561,0,0,0.0398175,0.999207,300,0,1),
+(@OGUID+303,179968,0,1,1,-9123.73,313.696,93.4004,0.00504303,0,0,0.00252151,0.999997,300,0,1),
+(@OGUID+304,179968,0,1,1,-9123.56,311.213,93.2591,0.00504327,0,0,0.00252163,0.999997,300,0,1),
+(@OGUID+305,179968,0,1,1,-9123.45,308.836,93.1538,0.0128972,0,0,0.00644858,0.999979,300,0,1),
+(@OGUID+306,179968,0,1,1,-9108.65,306.666,93.8969,2.91887,0,0,0.993806,0.111131,300,0,1),
+(@OGUID+307,179968,0,1,1,-9108.12,309.489,93.8183,3.13486,0,0,0.999994,0.00336869,300,0,1),
+(@OGUID+308,179968,0,1,1,-9108.47,311.573,93.6563,3.00919,0,0,0.99781,0.0661522,300,0,1),
+(@OGUID+309,179968,0,1,1,-9106.75,319.206,93.4457,3.18591,0,0,0.999755,-0.0221551,300,0,1),
+(@OGUID+310,179968,0,1,1,-9106.91,321.71,93.3826,3.26366,0,0,0.998138,-0.0609962,300,0,1),
+(@OGUID+311,179968,0,1,1,-9106.96,324.388,93.3783,3.26366,0,0,0.998138,-0.0609962,300,0,1),
+(@OGUID+312,179968,0,1,1,-9106,331.289,93.583,3.2833,0,0,0.997491,-0.0707923,300,0,1),
+(@OGUID+313,179968,0,1,1,-9106.34,333.725,93.6275,3.2401,0,0,0.998787,-0.0492332,300,0,1),
+(@OGUID+314,179968,0,1,1,-9106.58,336.794,93.6628,3.26759,0,0,0.998016,-0.062956,300,0,1),
+(@OGUID+315,179968,0,1,1,-9106.71,342.403,93.5723,3.20083,0,0,0.999561,-0.0296139,300,0,1),
+(@OGUID+316,179968,0,1,1,-9106.88,345.568,93.432,3.18669,0,0,0.999746,-0.0225476,300,0,1),
+(@OGUID+317,179968,0,1,1,-9107.08,348.925,93.3381,3.25345,0,0,0.998436,-0.0558998,300,0,1),
+(@OGUID+318,179968,0,1,1,-9105.76,361.675,93.4297,2.58586,0,0,0.961643,0.274304,300,0,1),
+(@OGUID+319,179968,0,1,1,-9105,361.2,93.4297,2.58586,0,0,0.961643,0.274304,300,0,1),
+(@OGUID+320,179968,0,1,1,-9105,361.2,94.1356,2.58586,0,0,0.961643,0.274304,300,0,1),
+(@OGUID+321,179968,0,1,1,-9104.09,360.604,93.0295,2.61335,0,0,0.965322,0.261061,300,0,1),
+(@OGUID+322,179968,0,1,1,-9104.09,360.604,93.7354,2.61335,0,0,0.965322,0.261061,300,0,1),
+(@OGUID+323,179968,0,1,1,-9104.09,360.604,94.441,2.61335,0,0,0.965322,0.261061,300,0,1),
+(@OGUID+324,179968,0,1,1,-9106.57,360.255,93.5506,2.58194,0,0,0.961103,0.276191,300,0,1),
+(@OGUID+325,179968,0,1,1,-9105.81,359.775,93.5506,2.48376,0,0,0.946393,0.323017,300,0,1),
+(@OGUID+326,179968,0,1,1,-9105.81,359.775,94.2564,2.55445,0,0,0.957216,0.289374,300,0,1),
+(@OGUID+327,179968,0,1,1,-9104.89,359.163,93.1483,2.55445,0,0,0.957216,0.289374,300,0,1),
+(@OGUID+328,179968,0,1,1,-9104.89,359.163,93.854,2.55445,0,0,0.957216,0.289374,300,0,1),
+(@OGUID+329,179968,0,1,1,-9105.53,358.184,93.17,2.49947,0,0,0.948901,0.315575,300,0,1),
+(@OGUID+330,195164,0,1,1,-9106.82,348.979,94.044,3.21811,0,0,0.999268,-0.0382483,300,0,1),
+(@OGUID+331,195164,0,1,1,-9106.61,345.589,94.1377,3.09637,0,0,0.999744,0.0226088,300,0,1),
+(@OGUID+332,195164,0,1,1,-9106.66,342.347,94.2784,3.10423,0,0,0.999825,0.0186827,300,0,1),
+(@OGUID+333,195164,0,1,1,-9106.7,336.98,94.3685,3.23774,0,0,0.998845,-0.0480566,300,0,1),
+(@OGUID+334,195164,0,1,1,-9106.44,333.544,94.3332,3.13564,0,0,0.999996,0.00297577,300,0,1),
+(@OGUID+335,195164,0,1,1,-9106.12,331.509,94.2891,3.13957,0,0,0.999999,0.00101228,300,0,1),
+(@OGUID+336,195164,0,1,1,-9106.91,324.458,94.084,3.17491,0,0,0.999861,-0.0166584,300,0,1),
+(@OGUID+337,195164,0,1,1,-9106.92,321.9,94.0888,3.17098,0,0,0.999892,-0.0146952,300,0,1),
+(@OGUID+338,195164,0,1,1,-9106.6,319.258,94.1514,3.21418,0,0,0.999341,-0.0362862,300,0,1),
+(@OGUID+339,195164,0,1,1,-9108.34,311.514,94.3619,3.04532,0,0,0.998842,0.0481176,300,0,1),
+(@OGUID+340,195164,0,1,1,-9108,309.563,94.524,3.16706,0,0,0.999919,-0.0127318,300,0,1),
+(@OGUID+341,195164,0,1,1,-9108.7,306.836,94.6029,2.92201,0,0,0.993979,0.109569,300,0,1),
+(@OGUID+342,195164,0,1,1,-9123.52,308.78,93.8595,0.0435288,0,0,0.0217627,0.999763,300,0,1),
+(@OGUID+343,195164,0,1,1,-9123.57,311.178,93.9648,6.25838,0,0,0.0124007,-0.999923,300,0,1),
+(@OGUID+344,195164,0,1,1,-9123.84,313.691,94.1064,6.19477,0,0,0.0441957,-0.999023,300,0,1),
+(@OGUID+345,195164,0,1,1,-9124.06,318.765,94.1735,6.26388,0,0,0.00965214,-0.999953,300,0,1),
+(@OGUID+346,195164,0,1,1,-9124.86,322.295,94.1734,6.20576,0,0,0.0387035,-0.999251,300,0,1),
+(@OGUID+347,195164,0,1,1,-9124.07,325.098,94.118,6.2678,0,0,0.0076905,-0.99997,300,0,1),
+(@OGUID+348,195164,0,1,1,-9123.43,331.097,94.041,6.01255,0,0,0.134905,-0.990859,300,0,1),
+(@OGUID+349,195164,0,1,1,-9122.56,333.536,94.1602,6.00077,0,0,0.140739,-0.990047,300,0,1),
+(@OGUID+350,195164,0,1,1,-9122.21,336.358,94.4494,6.06753,0,0,0.10762,-0.994192,300,0,1),
+(@OGUID+351,195164,0,1,1,-9122.17,342.507,94.8786,6.08323,0,0,0.0998095,-0.995007,300,0,1),
+(@OGUID+352,195164,0,1,1,-9122.66,346.034,94.8427,6.24031,0,0,0.0214347,-0.99977,300,0,1),
+(@OGUID+353,195164,0,1,1,-9121.72,348.977,94.6714,6.2246,0,0,0.0292862,-0.999571,300,0,1),
+(@OGUID+354,179968,0,1,1,-5084.24,-808.46,495.127,0.96978,0,0,0.466111,0.884726,300,0,1),
+(@OGUID+355,179968,0,1,1,-5079.31,-809.352,495.128,1.52349,0,0,0.690184,0.723634,300,0,1),
+(@OGUID+356,179968,0,1,1,-5076.66,-808.073,495.127,1.98294,0,0,0.836833,0.547459,300,0,1),
+(@OGUID+357,179968,0,1,1,-5070,-786.548,494.868,3.54589,0,0,0.979638,-0.200773,300,0,1),
+(@OGUID+358,179968,0,1,1,-5069.18,-786.172,494.83,3.57338,0,0,0.976786,-0.214218,300,0,1),
+(@OGUID+359,179968,0,1,1,-5069.18,-786.172,495.537,3.57338,0,0,0.976786,-0.214218,300,0,1),
+(@OGUID+360,179968,0,1,1,-5068.53,-787.239,494.916,3.63621,0,0,0.969575,-0.244794,300,0,1),
+(@OGUID+361,195191,1,1,1,-1312.7,205.607,58.866,6.27839,0,0,0.0023953,-0.999997,300,0,1),
+(@OGUID+362,195164,1,1,1,-1312.7,205.607,59.7541,6.27447,0,0,0.00435867,-0.999991,300,0,1),
+(@OGUID+363,195195,1,1,1,-1313.19,203.883,59.7541,1.3618,0,0,0.629493,0.777006,300,0,1),
+(@OGUID+364,195192,1,1,1,-1313.04,206.69,59.754,1.49925,0,0,0.681363,0.731945,300,0,1),
+(@OGUID+365,195215,1,1,1,-1313.14,204.888,59.754,1.51888,0,0,0.688516,0.725221,300,0,1),
+(@OGUID+366,195200,1,1,1,-1313.53,201.289,58.8654,5.48121,0,0,0.390326,-0.920677,300,0,1),
+(@OGUID+367,179968,1,1,1,-1311.94,192.52,59.1312,2.59095,0,0,0.962338,0.271855,300,0,1),
+(@OGUID+368,179968,1,1,1,-1313.24,190.02,59.2281,2.57524,0,0,0.960173,0.279405,300,0,1),
+(@OGUID+369,179968,1,1,1,-1314.58,187.54,59.418,2.54383,0,0,0.955666,0.294452,300,0,1),
+(@OGUID+370,179968,1,1,1,-1310.59,194.635,59.0592,2.70876,0,0,0.976673,0.21473,300,0,1),
+(@OGUID+371,195198,1,1,1,-1316.18,210.677,58.8661,1.71916,0,0,0.757568,0.652756,300,0,1),
+(@OGUID+372,195196,1,1,1,-1314.67,209.519,58.8661,3.94969,0,0,0.919477,-0.393144,300,0,1),
+(@OGUID+373,195194,1,1,1,-1315.17,204.322,58.8654,5.38304,0,0,0.435031,-0.900415,300,0,1),
+(@OGUID+374,195197,1,1,1,-1317.97,210.447,58.8648,5.32807,0,0,0.459614,-0.888119,300,0,1),
+(@OGUID+375,195197,1,1,1,-1317.79,185.104,59.7552,4.73116,0,0,0.700438,-0.713713,300,0,1),
+(@OGUID+376,195197,1,1,1,-1312.5,187.357,59.3122,1.54245,0,0,0.697013,0.717058,300,0,1),
+(@OGUID+377,195212,1,1,1,-1314.91,183.793,59.5933,2.07652,0,0,0.861522,0.507721,300,0,1),
+(@OGUID+378,195212,1,1,1,-1311.93,209.505,58.8648,3.53343,0,0,0.980869,-0.194669,300,0,1),
+(@OGUID+379,195212,1,1,1,-1309.82,205.756,58.8648,2.88548,0,0,0.991812,0.127707,300,0,1),
+(@OGUID+380,195303,1,1,1,-1313.19,208.798,58.8649,3.89079,0,0,0.930655,-0.365898,300,0,1),
+(@OGUID+381,195303,1,1,1,-1315.66,184.701,59.5959,1.69952,0,0,0.751123,0.660162,300,0,1),
+(@OGUID+382,180353,1,1,1,-1310.87,193.496,59.0985,2.40246,0,0,0.932483,0.361213,300,0,1),
+(@OGUID+383,180353,1,1,1,-1312.52,191.397,59.1709,2.68127,0,0,0.97363,0.228134,300,0,1),
+(@OGUID+384,180353,1,1,1,-1314.19,188.785,59.3004,2.63022,0,0,0.96749,0.252909,300,0,1),
+(@OGUID+385,180353,1,1,1,-1310.79,203.753,58.8658,1.51888,0,0,0.688516,0.725221,300,0,1),
+(@OGUID+386,180353,1,1,1,-1310.8,207.802,58.8649,1.57386,0,0,0.708189,0.706023,300,0,1),
+(@OGUID+387,180353,1,1,1,-1326.04,203.805,59.0962,3.37635,0,0,0.993119,-0.117109,300,0,1),
+(@OGUID+388,180353,1,1,1,-1333.43,201.997,59.5005,3.39598,0,0,0.991921,-0.126853,300,0,1),
+(@OGUID+389,180353,1,1,1,-1337.23,195.937,60.5344,4.95108,0,0,0.617889,-0.786265,300,0,1),
+(@OGUID+390,180353,1,1,1,-1334.99,186.726,60.4348,4.95108,0,0,0.617889,-0.786265,300,0,1),
+(@OGUID+391,180353,1,1,1,-1317.57,198.279,58.9668,1.782,0,0,0.7777,0.628636,300,0,1),
+(@OGUID+392,179968,1,1,1,-1317.25,197.073,58.992,3.47846,0,0,0.985849,-0.167636,300,0,1),
+(@OGUID+393,179968,1,1,1,-1317.89,199.355,58.9472,3.51773,0,0,0.982368,-0.18696,300,0,1),
+(@OGUID+394,179968,1,1,1,-1310.51,202.173,58.8655,2.74018,0,0,0.979926,0.199361,300,0,1),
+(@OGUID+395,179968,1,1,1,-1309.49,201.749,58.875,2.74803,0,0,0.980701,0.195512,300,0,1),
+(@OGUID+396,179968,1,1,1,-1309.49,201.749,59.5804,2.74803,0,0,0.980701,0.195512,300,0,1),
+(@OGUID+397,179968,1,1,1,-1308.66,202.545,59.6401,2.74803,0,0,0.980701,0.195512,300,0,1),
+(@OGUID+398,179968,1,1,1,-1310.23,200.817,58.8769,2.77552,0,0,0.983296,0.182014,300,0,1),
+(@OGUID+399,179968,1,1,1,-1309.39,203.087,58.8651,5.99173,0,0,0.145214,-0.9894,300,0,1),
+(@OGUID+400,179968,1,1,1,-1307.76,202.375,58.8758,2.74018,0,0,0.979926,0.199362,300,0,1),
+(@OGUID+401,179968,1,1,1,-1308.25,203.731,58.8678,4.49554,0,0,0.779471,-0.626439,300,0,1),
+(@OGUID+402,179968,1,1,1,-1325.17,203.847,59.0586,4.95893,0,0,0.614796,-0.788686,300,0,1),
+(@OGUID+403,179968,1,1,1,-1326.97,203.733,59.1374,5.02176,0,0,0.58972,-0.807608,300,0,1),
+(@OGUID+404,179968,1,1,1,-1332.88,202.025,59.4843,5.00213,0,0,0.59762,-0.801779,300,0,1),
+(@OGUID+405,179968,1,1,1,-1334.27,201.832,59.5742,4.9982,0,0,0.599193,-0.800605,300,0,1),
+(@OGUID+406,179968,1,1,1,-1337.15,196.971,60.3714,0.199416,0,0,0.0995429,0.995033,300,0,1),
+(@OGUID+407,179968,1,1,1,-1337.12,195.238,60.6238,0.187635,0,0,0.0936799,0.995602,300,0,1),
+(@OGUID+408,179968,1,1,1,-1335.37,187.803,60.5692,0.329007,0,0,0.163763,0.9865,300,0,1),
+(@OGUID+409,179968,1,1,1,-1334.83,185.873,60.319,0.348642,0,0,0.17344,0.984845,300,0,1),
+(@OGUID+410,195164,1,1,1,-1334.83,185.873,61.0245,0.348642,0,0,0.17344,0.984845,300,0,1),
+(@OGUID+411,195164,1,1,1,-1335.26,187.819,61.2746,0.152293,0,0,0.0760728,0.997102,300,0,1),
+(@OGUID+412,195164,1,1,1,-1337.35,195.259,61.3292,0.171928,0,0,0.0858581,0.996307,300,0,1),
+(@OGUID+413,195164,1,1,1,-1337.46,196.912,61.0769,0.120877,0,0,0.0604015,0.998174,300,0,1),
+(@OGUID+414,195164,1,1,1,-1334.29,201.632,60.2797,0.332934,0,0,0.165699,0.986176,300,0,1),
+(@OGUID+415,195164,1,1,1,-1332.57,201.932,60.1899,4.97071,0,0,0.610139,-0.792294,300,0,1),
+(@OGUID+416,195164,1,1,1,-1327.13,203.723,59.8431,5.04532,0,0,0.580165,-0.814499,300,0,1),
+(@OGUID+417,195164,1,1,1,-1325.23,204.052,59.7642,4.75473,0,0,0.691981,-0.721916,300,0,1),
+(@OGUID+418,195164,1,1,1,-1310.25,202.407,59.5709,6.03493,0,0,0.123811,-0.992306,300,0,1),
+(@OGUID+419,195164,1,1,1,-1309.5,203.196,59.5706,5.45373,0,0,0.402939,-0.915227,300,0,1),
+(@OGUID+420,195164,1,1,1,-1308.14,203.883,59.5734,4.30313,0,0,0.836042,-0.548665,300,0,1),
+(@OGUID+421,195164,1,1,1,-1317.92,199.34,59.6527,3.40777,0,0,0.991157,-0.132697,300,0,1),
+(@OGUID+422,195164,1,1,1,-1317.29,197.153,59.6975,3.52558,0,0,0.981626,-0.190817,300,0,1),
+(@OGUID+423,195164,1,1,1,-1310.59,194.661,59.7653,5.88963,0,0,0.195511,-0.980701,300,0,1),
+(@OGUID+424,195164,1,1,1,-1314.3,187.375,60.1235,2.71662,0,0,0.977509,0.210891,300,0,1),
+(@OGUID+425,195191,0,1,1,1822.65,268.486,60.1895,4.68401,0,0,0.717067,-0.697004,300,0,1),
+(@OGUID+426,195164,0,1,1,1822.65,268.486,61.0773,3.01112,0,0,0.997873,0.0651913,300,0,1),
+(@OGUID+427,195195,0,1,1,1824.44,268.244,61.0773,3.00719,0,0,0.997743,0.0671505,300,0,1),
+(@OGUID+428,195192,0,1,1,1821.87,267.983,61.0774,3.23496,0,0,0.998911,-0.0466647,300,0,1),
+(@OGUID+429,195215,0,1,1,1821.85,269.152,61.0774,3.13678,0,0,0.999997,0.00240572,300,0,1),
+(@OGUID+430,195200,0,1,1,1827.23,267.982,60.0917,6.10166,0,0,0.0906389,-0.995884,300,0,1),
+(@OGUID+431,179968,0,1,1,1811.88,256.913,59.9234,4.88429,0,0,0.643794,-0.765198,300,0,1),
+(@OGUID+432,179968,0,1,1,1814.57,257.68,59.9798,4.93927,0,0,0.62252,-0.782604,300,0,1),
+(@OGUID+433,179968,0,1,1,1817.01,258.573,60.0155,4.94319,0,0,0.620982,-0.783825,300,0,1),
+(@OGUID+434,195198,0,1,1,1817.06,270.329,60.2343,5.35552,0,0,0.447378,-0.894345,300,0,1),
+(@OGUID+435,195196,0,1,1,1818.48,267.871,60.1517,5.31233,0,0,0.466589,-0.884474,300,0,1),
+(@OGUID+436,195194,0,1,1,1822.93,266.659,60.1207,0.144402,0,0,0.0721385,0.997395,300,0,1),
+(@OGUID+437,195197,0,1,1,1828.05,264.454,59.8784,5.85425,0,0,0.212827,-0.97709,300,0,1),
+(@OGUID+438,195197,0,1,1,1819.25,266.187,59.9856,2.08434,0,0,0.8635,0.504348,300,0,1),
+(@OGUID+439,195212,0,1,1,1819.78,271.369,60.1539,4.83323,0,0,0.663117,-0.748515,300,0,1),
+(@OGUID+440,195212,0,1,1,1823.45,271.665,60.2191,4.73506,0,0,0.699046,-0.715077,300,0,1),
+(@OGUID+441,195199,0,1,1,1818.4,269.984,60.1338,5.27305,0,0,0.483865,-0.875142,300,0,1),
+(@OGUID+442,195199,0,1,1,1825.5,270.99,60.189,0.678472,0,0,0.332767,0.943009,300,0,1),
+(@OGUID+443,195303,0,1,1,1825.46,268.729,60.3853,4.50336,0,0,0.777016,-0.62948,300,0,1),
+(@OGUID+444,195303,0,1,1,1819.84,268.611,60.1151,5.10419,0,0,0.555944,-0.83122,300,0,1),
+(@OGUID+445,180353,0,1,1,1824.92,270.391,60.2257,3.20353,0,0,0.999521,-0.0309616,300,0,1),
+(@OGUID+446,180353,0,1,1,1821.17,270.063,60.1725,3.23101,0,0,0.999001,-0.0446961,300,0,1),
+(@OGUID+447,180353,0,1,1,1813.1,257.35,59.9493,4.88428,0,0,0.6438,-0.765193,300,0,1),
+(@OGUID+448,180353,0,1,1,1815.67,258.419,60.0141,4.9314,0,0,0.625595,-0.780148,300,0,1),
+(@OGUID+449,180353,0,1,1,1823.87,262.408,59.9219,6.00347,0,0,0.139404,-0.990236,300,0,1),
+(@OGUID+450,180353,0,1,1,1829.26,260.862,59.6116,6.00347,0,0,0.139404,-0.990236,300,0,1),
+(@OGUID+451,180353,0,1,1,1835.55,259.054,59.7994,6.00347,0,0,0.139404,-0.990236,300,0,1),
+(@OGUID+452,180353,0,1,1,1833.15,248.323,59.8227,2.89722,0,0,0.992544,0.121883,300,0,1),
+(@OGUID+453,180353,0,1,1,1822.7,250.93,60.0502,2.89722,0,0,0.992544,0.121883,300,0,1),
+(@OGUID+454,180353,0,1,1,1825.45,228.409,60.0708,6.12128,0,0,0.0808658,-0.996725,300,0,1),
+(@OGUID+455,180353,0,1,1,1835.52,226.764,60.2553,6.12128,0,0,0.0808658,-0.996725,300,0,1),
+(@OGUID+456,180353,0,1,1,1834.41,213.818,60.216,3.02289,0,0,0.998239,0.0593187,300,0,1),
+(@OGUID+457,180353,0,1,1,1828.95,214.53,60.503,3.0111,0,0,0.997872,0.0651978,300,0,1),
+(@OGUID+458,180353,0,1,1,1823.25,215.279,60.2116,3.0111,0,0,0.997872,0.0651978,300,0,1),
+(@OGUID+459,179968,0,1,1,1822.69,215.403,60.1776,1.39318,0,0,0.641607,0.767034,300,0,1),
+(@OGUID+460,179968,0,1,1,1823.8,214.992,60.2217,1.40104,0,0,0.644614,0.764508,300,0,1),
+(@OGUID+461,179968,0,1,1,1828.2,214.485,60.4552,1.51492,0,0,0.687078,0.726584,300,0,1),
+(@OGUID+462,179968,0,1,1,1829.91,214.581,60.4197,1.56676,0,0,0.705677,0.708534,300,0,1),
+(@OGUID+463,179968,0,1,1,1833.54,214.099,60.2353,1.51963,0,0,0.688788,0.724963,300,0,1),
+(@OGUID+464,179968,0,1,1,1835.43,214.118,60.2106,1.59424,0,0,0.715348,0.698768,300,0,1),
+(@OGUID+465,179968,0,1,1,1836.62,226.776,60.2415,1.5,0,0,0.681638,0.73169,300,0,1),
+(@OGUID+466,179968,0,1,1,1834.29,226.723,60.3708,1.33114,0,0,0.617506,0.786566,300,0,1),
+(@OGUID+467,179968,0,1,1,1826.45,228.143,60.1295,1.44109,0,0,0.659795,0.751446,300,0,1),
+(@OGUID+468,179968,0,1,1,1824.26,228.134,60.0401,1.36255,0,0,0.629785,0.77677,300,0,1),
+(@OGUID+469,179968,0,1,1,1834.21,247.981,59.8394,1.55105,0,0,0.70009,0.714054,300,0,1),
+(@OGUID+470,179968,0,1,1,1832.03,247.781,59.8763,1.60603,0,0,0.719452,0.694542,300,0,1),
+(@OGUID+471,179968,0,1,1,1823.6,250.277,60.0631,1.31936,0,0,0.612862,0.79019,300,0,1),
+(@OGUID+472,179968,0,1,1,1821.45,250.783,60.0482,1.22511,0,0,0.574959,0.818182,300,0,1),
+(@OGUID+473,179968,0,1,1,1822.89,262.578,59.9009,1.3115,0,0,0.609754,0.79259,300,0,1),
+(@OGUID+474,179968,0,1,1,1824.7,262.186,59.8891,1.37041,0,0,0.63283,0.774291,300,0,1),
+(@OGUID+475,179968,0,1,1,1828.37,261.229,59.6733,1.41753,0,0,0.650897,0.759166,300,0,1),
+(@OGUID+476,179968,0,1,1,1830.13,261.054,59.5981,1.33899,0,0,0.62059,0.784135,300,0,1),
+(@OGUID+477,179968,0,1,1,1834.58,258.927,59.7548,1.2526,0,0,0.58615,0.810203,300,0,1),
+(@OGUID+478,179968,0,1,1,1836.16,258.179,59.8198,1.14264,0,0,0.540743,0.841188,300,0,1),
+(@OGUID+479,179968,0,1,1,1815.95,271.259,60.2131,5.37594,0,0,0.438226,-0.898865,300,0,1),
+(@OGUID+480,179968,0,1,1,1815.39,271.969,60.2347,5.37986,0,0,0.43646,-0.899724,300,0,1),
+(@OGUID+481,179968,0,1,1,1815.39,271.969,60.9403,5.37986,0,0,0.43646,-0.899724,300,0,1),
+(@OGUID+482,179968,0,1,1,1816.72,272.957,60.2132,5.44584,0,0,0.406548,-0.913629,300,0,1),
+(@OGUID+483,179968,0,1,1,1817.36,272.251,60.1876,5.44584,0,0,0.406548,-0.913629,300,0,1),
+(@OGUID+484,195164,0,1,1,1817.36,272.251,60.8931,5.44584,0,0,0.406548,-0.913629,300,0,1),
+(@OGUID+485,195164,0,1,1,1822.88,262.575,60.6064,4.39341,0,0,0.810431,-0.585834,300,0,1),
+(@OGUID+486,195164,0,1,1,1824.72,262.287,60.5945,4.60154,0,0,0.745191,-0.666851,300,0,1),
+(@OGUID+487,195164,0,1,1,1828.41,261.179,60.3789,4.55834,0,0,0.75942,-0.650601,300,0,1),
+(@OGUID+488,195164,0,1,1,1830.29,260.989,60.3037,4.40519,0,0,0.806966,-0.590599,300,0,1),
+(@OGUID+489,195164,0,1,1,1834.49,259.129,60.4603,4.47588,0,0,0.785592,-0.618744,300,0,1),
+(@OGUID+490,195164,0,1,1,1836.31,258.493,60.5252,4.12245,0,0,0.882131,-0.471004,300,0,1),
+(@OGUID+491,195164,0,1,1,1821.67,250.916,60.7537,4.36199,0,0,0.819533,-0.573032,300,0,1),
+(@OGUID+492,195164,0,1,1,1823.47,250.206,60.7687,4.52222,0,0,0.771047,-0.636778,300,0,1),
+(@OGUID+493,195164,0,1,1,1832,248.018,60.582,4.7594,0,0,0.69029,-0.723532,300,0,1),
+(@OGUID+494,195164,0,1,1,1834.14,247.916,60.545,4.74212,0,0,0.696516,-0.717541,300,0,1),
+(@OGUID+495,195164,0,1,1,1836.37,227.114,60.9472,4.59683,0,0,0.746761,-0.665092,300,0,1),
+(@OGUID+496,195164,0,1,1,1834.26,226.399,61.0765,4.39891,0,0,0.808818,-0.588059,300,0,1),
+(@OGUID+497,195164,0,1,1,1826.36,228.105,60.835,4.52064,0,0,0.771549,-0.63617,300,0,1),
+(@OGUID+498,195164,0,1,1,1824.26,228.147,60.7457,4.61018,0,0,0.742306,-0.670061,300,0,1),
+(@OGUID+499,195164,0,1,1,1822.35,215.198,60.8831,4.55912,0,0,0.759166,-0.650897,300,0,1),
+(@OGUID+500,195164,0,1,1,1824,215.095,60.9274,4.51986,0,0,0.771799,-0.635867,300,0,1),
+(@OGUID+501,195164,0,1,1,1828.14,214.635,61.1607,4.56698,0,0,0.756604,-0.653874,300,0,1),
+(@OGUID+502,195164,0,1,1,1829.93,214.463,61.1252,4.60389,0,0,0.744407,-0.667726,300,0,1),
+(@OGUID+503,195164,0,1,1,1833.41,214.108,60.941,4.6196,0,0,0.73914,-0.673552,300,0,1),
+(@OGUID+504,195164,0,1,1,1835.64,214.253,60.9162,4.61567,0,0,0.740461,-0.672099,300,0,1),
+(@OGUID+505,179968,530,1,1,9305.97,-7211.26,15.9125,5.77224,0,0,0.252701,-0.967544,300,0,1),
+(@OGUID+506,179968,530,1,1,9305.18,-7213.52,15.9982,6.0864,0,0,0.0982337,-0.995163,300,0,1),
+(@OGUID+507,179968,530,1,1,9307.05,-7209.16,15.8791,5.57197,0,0,0.348162,-0.937434,300,0,1),
+(@OGUID+508,195191,530,1,1,9281.03,-7204.93,16.7354,5.63479,0,0,0.318548,-0.947907,300,0,1),
+(@OGUID+509,195164,530,1,1,9281.03,-7204.93,17.6235,4.91223,0,0,0.633045,-0.774115,300,0,1),
+(@OGUID+510,195195,530,1,1,9282.63,-7203.82,17.6235,3.74591,0,0,0.954697,-0.297581,300,0,1),
+(@OGUID+511,195192,530,1,1,9280.84,-7205.99,17.6245,4.04436,0,0,0.899845,-0.436211,300,0,1),
+(@OGUID+512,195215,530,1,1,9280.06,-7205.31,17.623,4.23678,0,0,0.85378,-0.520635,300,0,1),
+(@OGUID+513,195200,530,1,1,9284.67,-7200.88,17.2278,5.11643,0,0,0.550848,-0.834605,300,0,1),
+(@OGUID+514,195198,530,1,1,9277.36,-7207.52,16.424,6.09424,0,0,0.0943323,-0.995541,300,0,1),
+(@OGUID+515,195196,530,1,1,9279.56,-7209.09,16.4021,6.25525,0,0,0.0139694,-0.999902,300,0,1),
+(@OGUID+516,195194,530,1,1,9283.41,-7205.43,16.7583,1.28368,0,0,0.598669,0.800997,300,0,1),
+(@OGUID+517,195197,530,1,1,9286.75,-7200.71,17.2161,1.58213,0,0,0.711101,0.703089,300,0,1),
+(@OGUID+518,195197,530,1,1,9277.64,-7209.89,16.2857,2.34789,0,0,0.922283,0.386516,300,0,1),
+(@OGUID+519,195212,530,1,1,9276.6,-7204.24,16.638,5.61908,0,0,0.325986,-0.945375,300,0,1),
+(@OGUID+520,195212,530,1,1,9278.68,-7200.5,17.0822,5.58766,0,0,0.340795,-0.940138,300,0,1),
+(@OGUID+521,195212,530,1,1,9277.92,-7202.53,16.8511,5.67405,0,0,0.299879,-0.953977,300,0,1),
+(@OGUID+522,195199,530,1,1,9275.5,-7205.98,16.4592,5.67013,0,0,0.301752,-0.953387,300,0,1),
+(@OGUID+523,195199,530,1,1,9280.95,-7200.67,17.17,1.21299,0,0,0.569991,0.821651,300,0,1),
+(@OGUID+524,195303,530,1,1,9282.95,-7202.64,17.0309,5.42273,0,0,0.417079,-0.90887,300,0,1),
+(@OGUID+525,195303,530,1,1,9279.83,-7207.33,16.9276,6.00392,0,0,0.139179,-0.990267,300,0,1),
+(@OGUID+526,180353,530,1,1,9278.21,-7205.61,16.6083,0.957736,0,0,0.460775,0.887517,300,0,1),
+(@OGUID+527,180353,530,1,1,9280.55,-7202.27,16.9974,0.957736,0,0,0.460775,0.887517,300,0,1),
+(@OGUID+528,180353,530,1,1,9306.54,-7210.01,16.0835,5.78401,0,0,0.247004,-0.969014,300,0,1),
+(@OGUID+529,180353,530,1,1,9305.3,-7212.38,15.9549,6.14922,0,0,0.0669331,-0.997757,300,0,1),
+(@OGUID+530,180353,530,1,1,9302.77,-7211.58,16.0804,3.41211,0,0,0.990867,-0.134845,300,0,1),
+(@OGUID+531,180353,530,1,1,9303.11,-7223.44,16.4783,4.7355,0,0,0.698888,-0.715231,300,0,1),
+(@OGUID+532,180353,530,1,1,9299.34,-7229.96,16.5578,3.149,0,0,0.999993,-0.00370244,300,0,1),
+(@OGUID+533,180353,530,1,1,9293.58,-7230.07,16.8357,3.16078,0,0,0.999954,-0.00959279,300,0,1),
+(@OGUID+534,180353,530,1,1,9288.71,-7230.16,16.7451,3.16078,0,0,0.999954,-0.00959279,300,0,1),
+(@OGUID+535,180353,530,1,1,9283.86,-7225.95,16.2737,1.83346,0,0,0.793615,0.60842,300,0,1),
+(@OGUID+536,180353,530,1,1,9282.67,-7221.53,16.1109,1.83346,0,0,0.793615,0.60842,300,0,1),
+(@OGUID+537,180353,530,1,1,9281.12,-7215.74,16.1288,1.83346,0,0,0.793615,0.60842,300,0,1),
+(@OGUID+538,180353,530,1,1,9286.53,-7207.75,16.5461,0.117361,0,0,0.0586467,0.998279,300,0,1),
+(@OGUID+539,180353,530,1,1,9292.12,-7207.09,16.4871,0.117361,0,0,0.0586467,0.998279,300,0,1),
+(@OGUID+540,180353,530,1,1,9297.13,-7206.5,16.3099,0.117361,0,0,0.0586467,0.998279,300,0,1),
+(@OGUID+541,179968,530,1,1,9275.02,-7207.7,16.313,0.160557,0,0,0.0801923,0.996779,300,0,1),
+(@OGUID+542,179968,530,1,1,9274.35,-7207.81,16.313,0.160557,0,0,0.0801923,0.996779,300,0,1),
+(@OGUID+543,179968,530,1,1,9274.35,-7207.81,17.0197,0.160557,0,0,0.0801923,0.996779,300,0,1),
+(@OGUID+544,179968,530,1,1,9274.96,-7208.85,16.233,3.30608,0,0,0.99662,-0.0821494,300,0,1),
+(@OGUID+545,179968,530,1,1,9280.72,-7215.14,16.1388,0.368687,0,0,0.183301,0.983057,300,0,1),
+(@OGUID+546,179968,530,1,1,9281.43,-7216.52,16.1099,0.490423,0,0,0.242762,0.970086,300,0,1),
+(@OGUID+547,179968,530,1,1,9282.59,-7220.71,16.0999,0.309781,0,0,0.154272,0.988028,300,0,1),
+(@OGUID+548,179968,530,1,1,9282.9,-7222.09,16.1318,0.352978,0,0,0.175574,0.984466,300,0,1),
+(@OGUID+549,179968,530,1,1,9283.53,-7225.25,16.2282,0.553255,0,0,0.273113,0.961982,300,0,1),
+(@OGUID+550,179968,530,1,1,9284.43,-7226.71,16.3315,0.404029,0,0,0.200643,0.979664,300,0,1),
+(@OGUID+551,179968,530,1,1,9287.94,-7231.05,16.794,1.66459,0,0,0.739479,0.673179,300,0,1),
+(@OGUID+552,179968,530,1,1,9289.7,-7230.64,16.8237,1.73528,0,0,0.762805,0.646629,300,0,1),
+(@OGUID+553,179968,530,1,1,9292.94,-7230.5,16.8598,1.6214,0,0,0.724769,0.688993,300,0,1),
+(@OGUID+554,179968,530,1,1,9294.52,-7230.09,16.842,1.77455,0,0,0.775353,0.631527,300,0,1),
+(@OGUID+555,179968,530,1,1,9298.32,-7229.79,16.6317,1.53108,0,0,0.692925,0.72101,300,0,1),
+(@OGUID+556,179968,530,1,1,9300.41,-7229.9,16.4162,1.64103,0,0,0.731498,0.681844,300,0,1),
+(@OGUID+557,179968,530,1,1,9302.88,-7224.19,16.4577,2.9173,0,0,0.993718,0.11191,300,0,1),
+(@OGUID+558,179968,530,1,1,9303.3,-7222.68,16.4909,2.99977,0,0,0.997487,0.0708516,300,0,1),
+(@OGUID+559,179968,530,1,1,9302.54,-7210.81,16.0667,3.32964,0,0,0.995583,-0.0938842,300,0,1),
+(@OGUID+560,179968,530,1,1,9302.88,-7212.35,16.1022,3.40818,0,0,0.99113,-0.132898,300,0,1),
+(@OGUID+561,179968,530,1,1,9298.13,-7206.27,16.2716,4.76692,0,0,0.687567,-0.726121,300,0,1),
+(@OGUID+562,179968,530,1,1,9296.25,-7206.56,16.3527,4.85331,0,0,0.65557,-0.755135,300,0,1),
+(@OGUID+563,179968,530,1,1,9293.1,-7206.86,16.4519,4.85331,0,0,0.65557,-0.755135,300,0,1),
+(@OGUID+564,179968,530,1,1,9291.38,-7207.12,16.5108,4.84703,0,0,0.657939,-0.753071,300,0,1),
+(@OGUID+565,179968,530,1,1,9287.17,-7207.68,16.5565,4.91379,0,0,0.63244,-0.77461,300,0,1),
+(@OGUID+566,179968,530,1,1,9285.93,-7208.03,16.53,4.83132,0,0,0.663832,-0.747882,300,0,1),
+(@OGUID+567,195164,530,1,1,9275.34,-7208.59,16.8732,2.23558,0,0,0.899136,0.437669,300,0,1),
+(@OGUID+568,195164,530,1,1,9280.83,-7214.95,16.8446,0.287796,0,0,0.143402,0.989665,300,0,1),
+(@OGUID+569,195164,530,1,1,9281.47,-7216.43,16.8154,0.653006,0,0,0.320733,0.94717,300,0,1),
+(@OGUID+570,195164,530,1,1,9282.72,-7220.66,16.8067,0.169986,0,0,0.0848909,0.99639,300,0,1),
+(@OGUID+571,195164,530,1,1,9282.76,-7222.2,16.8376,0.307431,0,0,0.153111,0.988209,300,0,1),
+(@OGUID+572,195164,530,1,1,9283.49,-7225.2,16.934,0.668714,0,0,0.328162,0.944621,300,0,1),
+(@OGUID+573,195164,530,1,1,9284.4,-7226.69,17.0374,0.495927,0,0,0.24543,0.969414,300,0,1),
+(@OGUID+574,195164,530,1,1,9287.91,-7231.42,17.4998,1.74471,0,0,0.765845,0.643025,300,0,1),
+(@OGUID+575,195164,530,1,1,9289.82,-7230.78,17.5293,1.8154,0,0,0.788089,0.615562,300,0,1),
+(@OGUID+576,195164,530,1,1,9292.8,-7230.59,17.5657,1.64653,0,0,0.733371,0.679829,300,0,1),
+(@OGUID+577,195164,530,1,1,9294.49,-7230.15,17.5487,1.61119,0,0,0.721244,0.692681,300,0,1),
+(@OGUID+578,195164,530,1,1,9298.31,-7229.87,17.3376,1.67402,0,0,0.742645,0.669685,300,0,1),
+(@OGUID+579,195164,530,1,1,9300.33,-7229.86,17.1223,1.54051,0,0,0.696317,0.717734,300,0,1),
+(@OGUID+580,195164,530,1,1,9302.9,-7224.07,17.1636,3.09952,0,0,0.999779,0.0210337,300,0,1),
+(@OGUID+581,195164,530,1,1,9303.32,-7222.57,17.197,3.05633,0,0,0.999091,0.0426208,300,0,1),
+(@OGUID+582,195164,530,1,1,9305.22,-7213.43,16.7041,2.90317,0,0,0.992903,0.118928,300,0,1),
+(@OGUID+583,195164,530,1,1,9307.03,-7209.21,16.5859,2.57331,0,0,0.959902,0.280336,300,0,1),
+(@OGUID+584,195164,530,1,1,9302.46,-7210.65,16.7734,3.27231,0,0,0.997865,-0.065312,300,0,1),
+(@OGUID+585,195164,530,1,1,9302.7,-7212.36,16.8081,3.26838,0,0,0.997991,-0.0633526,300,0,1),
+(@OGUID+586,195164,530,1,1,9298.14,-7206.38,16.9784,4.81562,0,0,0.669685,-0.742645,300,0,1),
+(@OGUID+587,195164,530,1,1,9296.39,-7206.61,17.0586,4.77242,0,0,0.685567,-0.728009,300,0,1),
+(@OGUID+588,195164,530,1,1,9293.13,-7206.97,17.1583,4.741,0,0,0.696919,-0.71715,300,0,1),
+(@OGUID+589,195164,530,1,1,9291.36,-7207.04,17.2164,4.88237,0,0,0.644529,-0.76458,300,0,1),
+(@OGUID+590,195164,530,1,1,9287.29,-7207.67,17.2622,4.92164,0,0,0.629394,-0.777087,300,0,1),
+(@OGUID+591,195164,530,1,1,9285.87,-7208.02,17.2357,4.89415,0,0,0.640014,-0.768363,300,0,1);
+-- Link Creatures to event
+DELETE FROM `game_event_creature` WHERE `eventEntry`=@Event AND `guid` BETWEEN @CGUID AND @CGUID+3998;
+INSERT INTO game_event_creature SELECT @Event, creature.guid FROM `creature` WHERE creature.guid BETWEEN @CGUID AND @CGUID+3998;
+-- Link Objects to event
+DELETE FROM `game_event_gameobject` WHERE `eventEntry`=@Event AND `guid` BETWEEN @OGUID AND @OGUID+591;
+INSERT INTO `game_event_gameobject` SELECT @Event, gameobject.guid FROM `gameobject` WHERE gameobject.guid BETWEEN @OGUID AND @OGUID+591;
+-- ------------------
+-- -- Event Quests --
+-- ------------------
+-- Sets the chains from the event: "Pilgrim's Bounty" for Horde.
+UPDATE `quest_template` SET `RequiredRaces`=690 WHERE `Id` IN (14037,14040,14041,14043,14044,14047);
+-- Sets the chains from the event: "Pilgrim's Bounty" for Alliance.
+UPDATE `quest_template` SET `RequiredRaces`=1101 WHERE `Id` IN (14023,14024,14028,14030,14033,14035);
+-- Sets the dailys from the event: "Pilgrim's Bounty" for Horde.
+UPDATE `quest_template` SET `RequiredRaces`=690 WHERE `Id` IN (14059,14061,14062,14060,14058);
+-- Sets the dailys from the event: "Pilgrim's Bounty" for Alliance.
+UPDATE `quest_template` SET `RequiredRaces`=1101 WHERE `Id` IN (14053,14048,14051,14055,14054);
+-- Sets Quest "Sharing a Bountiful Feast" from the event: "Pilgrim's Bounty" for Horde.
+UPDATE `quest_template` SET `RequiredRaces`=690 WHERE `Id` =14065;
+-- Sets Quest "Sharing a Bountiful Feast" from the event: "Pilgrim's Bounty" for Alliance.
+UPDATE `quest_template` SET `RequiredRaces`=1101 WHERE `Id` =14064;
+-- Sets the quests in chain.
+-- Alliance
+UPDATE `quest_template` SET `PrevQuestId`=14023 WHERE `Id`=14024; -- Spice Bread Stuffing completed before starting Pumpkin Pie
+UPDATE `quest_template` SET `PrevQuestId`=14024 WHERE `Id`=14028; -- Pumpkin Pie completed before starting Cranberry Chutney
+UPDATE `quest_template` SET `PrevQuestId`=14028 WHERE `Id`=14030; -- Chanberry Chutney completed before starting They're Ravenous in Darnassus
+UPDATE `quest_template` SET `PrevQuestId`=14030 WHERE `Id`=14033; -- They're Ravenous in Darnassus completed before starting Candied Sweet Potatoes
+UPDATE `quest_template` SET `PrevQuestId`=14033 WHERE `Id`=14035; -- Candied Sweet Potatoes completed before starting Slow-roasted Turkey
+-- Horde
+UPDATE `quest_template` SET `PrevQuestId`=14037 WHERE `Id`=14040; -- Spice Bread Stuffing completed before starting Pumpkin Pie
+UPDATE `quest_template` SET `PrevQuestId`=14040 WHERE `Id`=14041; -- Pumpkin Pie completed before starting Cranberry Chutney
+UPDATE `quest_template` SET `PrevQuestId`=14041 WHERE `Id`=14043; -- Cranberry Chutney completed before starting Candied Sweet Potatoes
+UPDATE `quest_template` SET `PrevQuestId`=14043 WHERE `Id`=14044; -- Candied Sweet Potatoes completed before starting Undersupplied in the Undercity
+UPDATE `quest_template` SET `PrevQuestId`=14044 WHERE `Id`=14047; -- Undersupplied in the Undercity completed before starting Slow-roasted Turkey
+-- Adds the creature involved for the Chain Quests of the event: "Pilgrim's Bounty".
+DELETE FROM `creature_involvedrelation` WHERE `quest` IN (14022,14023,14024,14028,14030,14033,14035,14048,14051,14053,14054,14055,14036,14037,14040,14041,14043,14044,14047,14058,14059,14060,14061,14062);
+INSERT INTO `creature_involvedrelation` (`id`,`quest`) VALUES
+-- Alliance
+(34675,14022), -- Finish Pilgrim's Bounty on Gregory Tabor
+(34744,14023), -- Finish Spice Bread Stuffing on Jasper Moore
+(34644,14024), -- Finish Pumpkin Pie on Edward Winslow
+(34744,14028), -- Finish Cranberry Chutney on Jasper Moore
+(34676,14030), -- Finish They're Ravenous In Darnassus on Isaac Allerton
+(34675,14033), -- Finish Candied Sweet Potatoes on Gregory Tabor
+(34676,14035), -- Finish Slow-roasted Turkey on Isaac Allerton
+-- Alliance Daily
+(34708,14048), -- Finish Can't Get Enough Turkey on Caitrin Ironkettle
+(34708,14051), -- Finish Don't Forget The Stuffing on Caitrin Ironkettle
+(34710,14053), -- Finish We're Out of Cranberry Chutney Again? on Ellen Moore
+(34711,14054), -- Finish Easy as Pie on Mary Allerton
+(34744,14055), -- Finish She Says Potato on Jasper Moore
+-- Horde
+(34677,14036), -- Finish Pilgrim's Bounty on Miles Standish
+(34768,14037), -- Finish Spice Bread Stuffing on William Mullins
+(34679,14040), -- Finish Pumpkin Pie on Francis Eaton
+(34678,14041), -- Finish Cranberry Chutney on Dokin Farplain
+(34679,14043), -- Finish Candied Sweet Potatoes on Francis Eaton
+(34677,14044), -- Finish Undersupplied in the Undercity on Miles Standish
+(34679,14047), -- Finish Slow-roasted Turkey on Francis Eaton
+-- Horde Daily
+(34768,14058), -- Finish She Says Potato on William Mullins
+(34712,14059), -- Finish We're Out of Cranberry Chutney Again? on Roberta Carter
+(34714,14060), -- Finish Easy as Pie on Mahara Goldwheat
+(34713,14061), -- Finish Can't Get Enough Turkey on Ondani Greatmill
+(34713,14062); -- Finish Don't Forget The Stuffing on Ondani Greatmill
+-- Set the quest on creatures that are available outside of eventtime as well
+DELETE FROM `game_event_creature_quest` WHERE `quest` IN (14022,14036);
+INSERT INTO `game_event_creature_quest` (`eventEntry`,`id`,`quest`) VALUES
+(@Event,18927,14022), -- Start Pilgrim's Bounty on Human Commoner
+(@Event,20102,14022), -- Start Pilgrim's Bounty on Goblin Commoner
+(@Event,19169,14036), -- Start Pilgrim's Bounty on Blood Elf Commoner
+(@Event,19175,14036), -- Start Pilgrim's Bounty on Orc Commoner
+(@Event,20102,14036); -- Start Pilgrim's Bounty on Goblin Commoner
+-- Insert the quest relations on npc'sthat are only available during the event
+DELETE FROM `creature_questrelation` WHERE `quest` IN (14023,14024,14028,14030,14033,14035,14037,14040,14041,14043,14044,14047,14048,14051,14054,14055,14053,14061,14062,14060,14058,14059);
+INSERT INTO `creature_questrelation` (`id`,`quest`) VALUES
+-- Alliance
+(34675,14023), -- Start Spice Bread Stuffing on Gregory Tabor
+(34744,14024), -- Start Pumpkin Pie on Jasper Moore
+(34644,14028), -- Start Cranberry Chutney on Edward Winslow
+(34744,14030), -- Start They're Ravemous In Darnassus on Jasper Moore
+(34676,14033), -- Start Candied Sweet Potatoes on Isaac Allerton
+(34675,14035), -- Start Slow-roasted Turkey on Gregory Tabor
+-- Horde
+(34768,14037), -- Start Spice Bread Stuffing on Miles Standish
+(34768,14040), -- Start Pumpkin Pie on William Mullins
+(34679,14041), -- Start Cranberry Chutney on Francis Eaton
+(34678,14043), -- Start Candied Sweet Potatoes on Dokin Farplain
+(34679,14044), -- Start Undersupplied in the Undercity on Francis Eaton
+(34677,14047), -- Start Slow-roasted Turkey on Miles Standish
+-- Alliance Daily
+(34708,14048), -- Start Can't Get Enough Turkey on Caitrin Ironkettle
+(34708,14051), -- Start Don't Forget The Stuffing on Caitrin Ironkettle
+(34711,14054), -- Start Easy as Pie on Mary Allerton
+(34744,14055), -- Start She Says Potato on Jasper Moore
+(34710,14053), -- Start We're Out of Cranberry Chutney Again? on Ellen Moore
+-- Horde Daily
+(34713,14061), -- Start Can't Get Enough Turkey on Ondani Greatmill
+(34713,14062), -- Start Don't Forget The Stuffing on Ondani Greatmill
+(34714,14060), -- Start Easy as Pie on Mahara Goldwheat
+(34768,14058), -- Start She Says Potato on William Mullins
+(34712,14059); -- Start We're Out of Cranberry Chutney Again? on Roberta Carter
+-- -----------------
+-- -- Event Loots --
+-- -----------------
+-- Sets Wild Turkey and Lonely Turkey neutral.
+UPDATE `creature_template` SET `faction_A`=31,`faction_H`=31 WHERE `entry` IN (32820,32956);
+-- Adds the loot to those turkeys.
+SET @turkey:=32820; -- Wild Turkey
+SET @turkey2:=32956; -- Lonely Turkey
+DELETE FROM `creature_loot_template` WHERE `entry` IN (32820,32956);
+INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+(@turkey,44834,100,1,0,1,1),
+(@turkey2,44834,100,1,0,1,1);
+-- Sets loot id for those turkeys.
+UPDATE `creature_template` SET `lootid`=32820 WHERE `entry`=32820;
+UPDATE `creature_template` SET `lootid`=32956 WHERE `entry`=32956;
+-- Fix loot for cooking book
+DELETE FROM `item_loot_template` WHERE `entry` IN (46809,46810);
+INSERT INTO `item_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES
+-- Alliance book
+(46809,44861,100,0,0,1,1), -- Recipe: Slow-Roasted Turkey
+(46809,44859,100,0,0,1,1), -- Recipe: Candied Sweet Potato
+(46809,44858,100,0,0,1,1), -- Recipe: Cranberry Chutney
+(46809,44862,100,0,0,1,1), -- Recipe: Pumpkin Pie
+(46809,44860,100,0,0,1,1), -- Recipe: Spice Bread Stuffing
+-- Horde book
+(46810,46806,100,0,0,1,1), -- Recipe: Slow-Roasted Turkey
+(46810,46805,100,0,0,1,1), -- Recipe: Candied Sweet Potato
+(46810,46804,100,0,0,1,1), -- Recipe: Cranberry Chutney
+(46810,46807,100,0,0,1,1), -- Recipe: Pumpkin Pie
+(46810,46803,100,0,0,1,1); -- Recipe: Spice Bread Stuffing
diff --git a/sql/updates/world/2012_11_19_02_world_misc.sql b/sql/updates/world/2012_11_19_02_world_misc.sql
new file mode 100644
index 00000000000..1f792b8da41
--- /dev/null
+++ b/sql/updates/world/2012_11_19_02_world_misc.sql
@@ -0,0 +1,6 @@
+SET @Event = 26; -- game_event.entry - Set by TDB
+DELETE FROM `game_event` WHERE `eventEntry`=@Event;
+INSERT INTO `game_event` (`eventEntry`,`start_time`,`end_time`,`occurence`,`length`,`holiday`,`description`,`world_event`) VALUES
+(@Event,'2012-11-18 01:00:00','2020-12-31 05:00:00',525600,10020,404, 'Pilgrim''s Bounty',0);
+-- undo hack, reset to sniffed values
+UPDATE `gameobject_template` SET `data10`=37639,`data5`=0 WHERE `entry`=184867;
diff --git a/sql/updates/world/2012_11_19_03_world_ysera.sql b/sql/updates/world/2012_11_19_03_world_ysera.sql
new file mode 100644
index 00000000000..24a729f96dd
--- /dev/null
+++ b/sql/updates/world/2012_11_19_03_world_ysera.sql
@@ -0,0 +1,71 @@
+-- Dragonblight (Emerald Dragonshrine)
+-- Ysera should be laying down
+DELETE FROM `creature_addon` WHERE `guid`=108844;
+INSERT INTO `creature_addon` (`guid`,`bytes1`) VALUES
+(108844,3);
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Grizzly Hills (Bloodmoon Isle)
+-- Adding teleport
+DELETE FROM `game_tele` WHERE `id`=1422;
+INSERT INTO `game_tele` (`id`,`position_x`,`position_y`,`position_z`,`orientation`,`map`,`name`) VALUES
+(1422,4682.07,-5569.67,53.61,3.85,571,"BloodmoonIsle"); -- Teleport location (roughly): http://www.wowhead.com/maps?data=394:844258
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Bloodmoon worgen
+UPDATE `creature` SET `spawndist`=2.5,`movementType`=1 WHERE `guid` IN (108834,108799,108829);
+UPDATE `creature` SET `spawndist`=5,`movementType`=1 WHERE `guid` IN (108830,108828,108784);
+UPDATE `creature` SET `spawndist`=6,`movementType`=1 WHERE `guid`=108784;
+-- Bloodmoon Cultists
+UPDATE `creature` SET `position_x`=4599.94,`position_y`=-5706.74,`position_z`=184.50,`orientation`=3.72,`spawndist`=5 WHERE `guid`=109406;
+DELETE FROM `creature_addon` WHERE `guid` IN (109406,109407,109383,109412,109334,109385,109168,109147,109239,109240,109410,109411,109146,109169,109403,113585,109405,109408,109404);
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES
+(109406,0,8),(109407,0,8),(109383,0,8),
+(109412,0,1),(109334,0,1),(109168,0,1),
+(109147,0,1),(109240,0,1),(109239,0,1),
+(109411,0,1),(109410,0,1),(109169,0,1),
+(109146,0,1),(109403,0,8),(113585,0,8),
+(109405,0,8),(109408,0,8),(109404,1094040,0),
+(109385,1093850,0);
+DELETE FROM `creature` WHERE `guid` IN (113585,109404,109385);
+INSERT INTO `creature` (`guid`,`id`,`map`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`curhealth`,`curmana`,`MovementType`) VALUES
+(109404,27024,571,4676.16,-5575.82,53.61,0.85,120,6,9940,0,2),
+(109385,26935,571,4550.15,-5493.45,2.19,0.85,120,6,9940,0,2);
+-- Pathing Bloodmoon Cultist 1/2
+DELETE FROM `waypoint_data` WHERE `id` IN (1093850,1094040);
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`) VALUES
+(1093850,1,4550.159180,-5493.454102,2.198123,0),
+(1093850,2,4560.156250,-5505.391113,2.247392,0),
+(1093850,3,4568.288574,-5540.102051,2.325547,0),
+(1093850,4,4570.309570,-5555.015625,3.725862,0),
+(1093850,5,4593.584473,-5583.147461,17.485140,0),
+(1093850,6,4640.961426,-5587.870117,43.030090,0),
+(1093850,7,4663.515625,-5596.525391,51.983559,0),
+(1093850,8,4666.571777,-5585.750488,53.366554,0),
+(1093850,9,4679.179199,-5572.404297,53.618946,0),
+(1093850,10,4659.498047,-5593.301270,50.779484,0),
+(1093850,11,4633.121582,-5588.121582,38.891140,0),
+(1093850,12,4607.767090,-5586.987793,24.787226,0),
+(1093850,13,4588.015625,-5577.846680,13.770270,0),
+(1093850,14,4570.691895,-5554.702148,3.706614,0),
+(1093850,15,4564.821289,-5511.260742,2.249003,0),
+-- Pathing Bloodmoon Cultist 2/2
+(1094040,1,4676.167969,-5575.823730,53.619122,3000),
+(1094040,2,4665.977051,-5586.124512,53.232887,0),
+(1094040,3,4668.571289,-5599.335938,53.233620,0),
+(1094040,4,4678.922363,-5609.084961,58.034130,0),
+(1094040,5,4691.944336,-5631.230469,74.489761,0),
+(1094040,6,4692.178711,-5648.943359,79.715866,0),
+(1094040,7,4675.570313,-5656.392090,85.288292,0),
+(1094040,8,4643.766113,-5657.881836,105.69108,0),
+(1094040,9,4630.772461,-5652.050293,110.18435,0),
+(1094040,10,4647.054688,-5657.352539,103.57666,0),
+(1094040,11,4674.222656,-5656.737793,85.933739,0),
+(1094040,12,4692.171387,-5649.309082,79.797195,0),
+(1094040,13,4692.635254,-5633.777832,75.973076,0),
+(1094040,14,4677.485352,-5607.687500,57.116299,0),
+(1094040,15,4665.121094,-5596.857910,52.347866,0),
+(1094040,16,4666.613770,-5585.797363,53.372700,0);
+-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- Varlam
+UPDATE `creature` SET `position_x`=4700.48,`position_y`=-5568.50,`position_z`=53.61,`orientation`=3.39 WHERE `guid`=113673;
+-- Shade of Arugal
+UPDATE `creature` SET `position_x`=4590.02,`position_y`=-5712.43,`position_z`=184.50,`orientation`=1.01 WHERE `guid`=108492;
diff --git a/sql/updates/world/2012_11_20_00_world_creature_text.sql b/sql/updates/world/2012_11_20_00_world_creature_text.sql
new file mode 100644
index 00000000000..5b89db507d8
--- /dev/null
+++ b/sql/updates/world/2012_11_20_00_world_creature_text.sql
@@ -0,0 +1,427 @@
+-- Undercity
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000197 AND -1000196;
+DELETE FROM `creature_text` WHERE `entry`=10181;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`probability`,`comment`) VALUES
+(10181,0,'%s kneels down and pick up the amulet.',16,100,'npc_lady_sylvanas_windrunner EMOTE_LAMENT_END'),
+(10181,1,'Belore...',14,100,'npc_lady_sylvanas_windrunner SAY_LAMENT_END');
+
+-- Ironaya
+DELETE FROM `script_texts` WHERE `entry`=-1070000;
+DELETE FROM `creature_text` WHERE `entry`=7228;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(7228,0,'None may steal the secrets of the makers!',14,5851,100,'ironaya SAY_AGGRO');
+
+-- Opera
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532028 AND -1532025;
+DELETE FROM `creature_text` WHERE `entry`=17535;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17535,0,'Oh at last, at last. I can go home.',14,9190,100,'dorothee SAY_DOROTHEE_DEATH'),
+(17535,1,"Don't let them hurt us, Tito! Oh, you won't, will you?",14,9191,100,'dorothee SAY_DOROTHEE_SUMMON'),
+(17535,2,'Tito, oh Tito, no!',14,9192,100,'dorothee SAY_DOROTHEE_TITO_DEATH'),
+(17535,3,'Oh dear, we simply must find a way home! The old wizard could be our only hope! Strawman, Roar, Tinhead, will you... wait! Oh golly, look! We have visitors!',14,9195,100,'dorothee SAY_DOROTHEE_AGGRO');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532031 AND -1532029;
+DELETE FROM `creature_text` WHERE `entry`=17546;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17546,0,"Wanna fight? Huh? Do ya? C'mon, I'll fight you with both claws behind my back!",14,9227,100,'roar SAY_ROAR_AGGRO'),
+(17546,1,"You didn't have to go and do that.",14,9229,100,'roar SAY_ROAR_DEATH'),
+(17546,2,"I think I'm going to go take fourty winks.",14,9230,100,'roar SAY_ROAR_SLAY');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532034 AND -1532032;
+DELETE FROM `creature_text` WHERE `entry`=17543;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17543,0,"Now what should I do with you? I simply can't make up my mind.",14,9254,100,'strawman SAY_STRAWMAN_AGGRO'),
+(17543,1,"Don't let them make a mattress... out of me.",14,9256,100,'strawman SAY_STRAWMAN_DEATH'),
+(17543,2,"I guess I'm not a failure after all.",14,9257,100,'strawman SAY_STRAWMAN_SLAY');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532038 AND -1532035;
+DELETE FROM `creature_text` WHERE `entry`=17547;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17547,0,"I could really use a heart. Say, can I have yours?",14,9268,100,'tinhead SAY_TINHEAD_AGGRO'),
+(17547,1,"Back to being an old rustbucket.",14,9270,100,'tinhead SAY_TINHEAD_DEATH'),
+(17547,2,"Guess I'm not so rusty, after all.",14,9271,100,'tinhead SAY_TINHEAD_SLAY'),
+(17547,3,"%s begins to rust.",16,0,100,'tinhead EMOTE_RUST');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532042 AND -1532039;
+DELETE FROM `creature_text` WHERE `entry`=18168;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(18168,0,0,"Woe to each and every one of you my pretties! <cackles>",14,9179,100,'crone SAY_CRONE_AGGRO'),
+(18168,0,1,"It will all be over soon! <cackles>",14,9307,100,'crone SAY_CRONE_AGGRO2'),
+(18168,1,0,"How could you? What a cruel, cruel world!",14,9178,100,'crone SAY_CRONE_DEATH'),
+(18168,2,0,"Fixed you, didn't I? <cackles>",14,9180,100,'crone SAY_CRONE_SLAY');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532045 AND -1532043;
+DELETE FROM `creature_text` WHERE `entry`=17521;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17521,0,"All the better to own you with!",14,9276,100,'wolf SAY_WOLF_AGGRO'),
+(17521,1,"Mmmm... delicious.",14,9277,100,'SAY_WOLF_SLAY'),
+(17521,2,"Run away little girl, run away!",14,9278,100,'SAY_WOLF_HOOD');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532051 AND -1532046;
+DELETE FROM `creature_text` WHERE `entry`=17534;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17534,0,"What devil art thou, that dost torment me thus?",14,9196,100,'julianne SAY_JULIANNE_AGGRO'),
+(17534,1,"Where is my lord? Where is my Romulo?",14,9199,100,'julianne SAY_JULIANNE_ENTER'),
+(17534,2,"Romulo, I come! Oh... this do I drink to thee!",14,9199,100,'julianne SAY_JULIANNE_DEATH01'),
+(17534,3,"Where is my Lord? Where is my Romulo? Ohh, happy dagger! This is thy sheath! There rust, and let me die!",14,9310,100,'julianne SAY_JULIANNE_DEATH02'),
+(17534,4,"Come, gentle night; and give me back my Romulo!",14,9200,100,'julianne SAY_JULIANNE_RESURRECT'),
+(17534,5,"Parting is such sweet sorrow.",14,9201,100,'julianne SAY_JULIANNE_SLAY');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532056 AND -1532052;
+DELETE FROM `creature_text` WHERE `entry`=17533;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(17533,0,"Wilt thou provoke me? Then have at thee, boy!",14,9233,100,'romulo SAY_ROMULO_AGGRO'),
+(17533,1,"Thou smilest... upon the stroke that... murders me.",14,9235,100,'romulo SAY_ROMULO_DEATH'),
+(17533,2,"This day's black fate on more days doth depend. This but begins the woe. Others must end.",14,9236,100,'romulo SAY_ROMULO_ENTER'),
+(17533,3,"Thou detestable maw, thou womb of death; I enforce thy rotten jaws to open!",14,9237,100,'romulo SAY_ROMULO_RESURRECT'),
+(17533,4,"How well my comfort is revived by this!",14,9238,100,'romulo SAY_ROMULO_SLAY');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532114 AND -1532103;
+DELETE FROM `creature_text` WHERE `entry`=16812;
+INSERT INTO `creature_text`(`entry`,`groupid`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(16812,0,"Welcome Ladies and Gentlemen, to this evening's presentation!",14,9174,100,'barnes OZ1'),
+(16812,1,"Tonight we plumb the depths of the human soul as we join a lost, lonely girl trying desperately -- with the help of her loyal companions -- to find her way home!",14,9338,100,'barnes OZ2'),
+(16812,2,"But she is pursued... by a wicked malevolent crone!",14,9339,100,'barnes OZ3'),
+(16812,3,"Will she survive? Will she prevail? Only time will tell. And now ... on with the show!",14,9340,100,'barnes OZ4'),
+(16812,4,"Good evening, Ladies and Gentlemen! Welcome to this evening's presentation!",14,9175,100,'barnes HOOD1'),
+(16812,5,"Tonight, things are not what they seem. For tonight, your eyes may not be trusted",14,9335,100,'barnes HOOD2'),
+(16812,6,"Take for instance, this quiet, elderly woman, waiting for a visit from her granddaughter. Surely there is nothing to fear from this sweet, grey-haired, old lady.",14,9336,100,'barnes HOOD3'),
+(16812,7,"But don't let me pull the wool over your eyes. See for yourself what lies beneath those covers! And now... on with the show!",14,9337,100,'barnes HOOD4'),
+(16812,8,"Welcome, Ladies and Gentlemen, to this evening's presentation!",14,9176,100,'barnes RAJ1'),
+(16812,9,"Tonight, we explore a tale of forbidden love!",14,9341,100,'barnes RAJ2'),
+(16812,10,"But beware, for not all love stories end happily, as you may find out. Sometimes, love pricks like a thorn.",14,9342,100,'barnes RAJ3'),
+(16812,11,"But don't take it from me, see for yourself what tragedy lies ahead when the paths of star-crossed lovers meet. And now...on with the show!",14,9343,100,'barnes RAJ4');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532102 AND -1532091;
+DELETE FROM `creature_text` WHERE `entry`=15690;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(15690,0,0,"Madness has brought you here to me. I shall be your undoing!",14,9218,100,'malchezaar SAY_AGGRO'),
+(15690,1,0,"Simple fools! Time is the fire in which you'll burn!",14,9220,100,'malchezaar SAY_AXE_TOSS1'),
+(15690,2,0,"I see the subtlety of conception is beyond primitives such as you.",14,9317,100,'malchezaar SAY_AXE_TOSS2'),
+(15690,3,0,"Who knows what secrets hide in the dark.",14,9223,100,'malchezaar SAY_SPECIAL1'),
+(15690,4,0,"The cerestial forces are mine to manipulate.",14,9320,100,'malchezaar SAY_SPECIAL2'),
+(15690,5,0,"How can you hope to withstand against such overwhelming power?",14,9321,100,'malchezaar SAY_SPECIAL3'),
+(15690,6,0,"Surely you did not think you could win.",14,9222,100,'malchezaar SAY_SLAY1'),
+(15690,6,1,"Your greed, your foolishness has brought you to this end.",14,9318,100,'malchezaar SAY_SLAY2'),
+(15690,6,2,"You are, but a plaything, unfit even to amuse.",14,9319,100,'malchezaar SAY_SLAY3'),
+(15690,7,0,"All realities, all dimensions are open to me!",14,9224,100,'malchezaar SAY_SUMMON1'),
+(15690,7,1,"You face not Malchezaar alone, but the legions I command!",14,9322,100,'malchezaar SAY_SUMMON2'),
+(15690,8,0,"I refuse to concede defeat. I am a prince of the Eredar! I am...",14,9221,100,'malchezaar SAY_DEATH');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532088 AND -1532073;
+DELETE FROM `creature_text` WHERE `entry`=16524;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(16524,0,0,"Please, no more. My son... he's gone mad!",14,9241,100,'aran SAY_AGGRO1'),
+(16524,0,1,"I'll not be tortured again!",14,9323,100,'aran SAY_AGGRO2'),
+(16524,0,2,"Who are you? What do you want? Stay away from me!",14,9324,100,'aran SAY_AGGRO3'),
+(16524,1,0,"I'll show you this beaten dog still has some teeth!",14,9245,100,'aran SAY_FLAMEWREATH1'),
+(16524,1,1,"Burn you hellish fiends!",14,9326,100,'aran SAY_FLAMEWREATH2'),
+(16524,2,0,"I'll freeze you all!",14,9246,100,'aran SAY_BLIZZARD1'),
+(16524,2,1,"Back to the cold dark with you!",14,9327,100,'aran SAY_BLIZZARD2'),
+(16524,3,0,"Yes, yes, my son is quite powerful... but I have powers of my own!",14,9242,100,'aran SAY_EXPLOSION1'),
+(16524,3,1,"I am not some simple jester! I am Nielas Aran!",14,9325,100,'aran SAY_EXPLOSION2'),
+(16524,4,0,"Surely you would not deny an old man a replenishing drink? No, no I thought not.",14,9248,100,'aran SAY_DRINK'),
+(16524,5,0,"I'm not finished yet! No, I have a few more tricks up me sleeve.",14,9251,100,'aran SAY_ELEMENTALS'),
+(16524,6,0,"I want this nightmare to be over!",14,9250,100,'aran SAY_KILL1'),
+(16524,6,1,"Torment me no more!",14,9328,100,'aran SAY_KILL2'),
+(16524,7,0,"You've wasted enough of my time. Let these games be finished!",14,9247,100,'aran SAY_TIMEOVER'),
+(16524,8,0,"At last... The nightmare is.. over...",14,9244,100,'aran SAY_DEATH'),
+(16524,9,0,"Where did you get that?! Did HE send you?!",14,9249,100,'aran SAY_ATIESH');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532072 AND -1532065;
+DELETE FROM `creature_text` WHERE `entry`=15688;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(15688,0,0,"Your blood will anoint my circle.",14,9264,100,'terestian SAY_SLAY1'),
+(15688,0,1,"The great one will be pleased.",14,9329,100,'terestian SAY_SLAY2'),
+(15688,1,0,"My life, is yours. Oh great one.",14,9262,100,'terestian SAY_DEATH'),
+(15688,2,0,"Ah, you're just in time. The rituals are about to begin.",14,9260,100,'terestian SAY_AGGRO'),
+(15688,3,0,"Please, accept this humble offering, oh great one.",14,9263,100,'terestian SAY_SACRIFICE1'),
+(15688,3,1,"Let the sacrifice serve his testament to my fealty.",14,9330,100,'terestian SAY_SACRIFICE2'),
+(15688,4,0,"Come, you dwellers in the dark. Rally to my call!",14,9265,100,'terestian SAY_SUMMON1'),
+(15688,4,1,"Gather, my pets. There is plenty for all.",14,9331,100,'terestian SAY_SUMMON2');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532017 AND -1532011;
+DELETE FROM `creature_text` WHERE `entry`=15687;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(15687,0,0,"Hmm, unannounced visitors? Preparations must be made.",14,9211,100,'moroes SAY_AGGRO'),
+(15687,1,0,"Now, where was I? Oh yes...",14,9215,100,'moroes SAY_SPECIAL_1'),
+(15687,1,1,"You rang?",14,9316,100,'moroes SAY_SPECIAL_2'),
+(15687,2,0,"One more for dinner this evening.",14,9214,100,'moroes SAY_KILL_1'),
+(15687,2,1,"Time... Never enough time.",14,9314,100,'moroes SAY_KILL_2'),
+(15687,2,2,"I've gone and made a mess.",14,9315,100,'moroes SAY_KILL_3'),
+(15687,3,0,"How terribly clumsy of me...",14,9213,100,'moroes SAY_DEATH');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532064 AND -1532057;
+DELETE FROM `creature_text` WHERE `entry`=15691;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(15691,0,0,"The Menagerie is for guests only.",14,9183,100,'curator SAY_AGGRO'),
+(15691,1,0,"Gallery rules will be strictly enforced.",14,9188,100,'curator SAY_SUMMON1'),
+(15691,1,1,"This curator is equipped for gallery protection.",14,9309,100,'curator SAY_SUMMON2'),
+(15691,2,0,"Your request cannot be processed.",14,9186,100,'curator SAY_EVOCATE'),
+(15691,3,0,"Failure to comply will result in offensive action.",14,9185,100,'curator SAY_ENRAGE'),
+(15691,4,0,"Do not touch the displays.",14,9187,100,'curator SAY_KILL1'),
+(15691,4,1,"You are not a guest.",14,9308,100,'curator SAY_KILL2'),
+(15691,5,0,"This Curator is no longer op... er... ation... al.",14,9184,100,'curator SAY_DEATH');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532010 AND -1532000;
+DELETE FROM `creature_text` WHERE `entry`=16151;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(16151,0,0,"Well done Midnight!",14,9173,100,'attumen SAY_MIDNIGHT_KILL'),
+(16151,1,0,"Cowards! Wretches!",14,9167,100,'attumen SAY_APPEAR1'),
+(16151,1,1,"Who dares attack the steed of the Huntsman?",14,9298,100,'attumen SAY_APPEAR2'),
+(16151,1,2,"Perhaps you would rather test yourselves against a more formidable opponent?!",14,9299,100,'attumen SAY_APPEAR3'),
+(16151,2,0,"Come, Midnight, let's disperse this petty rabble!",14,9168,100,'attumen SAY_MOUNT'),
+(16151,3,0,"It was... inevitable.",14,9169,100,'attumen SAY_KILL1'),
+(16151,3,1,"Another trophy to add to my collection!",14,9300,100,'attumen SAY_KILL2'),
+(16151,4,0,"Weapons are merely a convenience for a warrior of my skill!",14,9166,100,'attumen SAY_DISARMED'),
+(16151,5,0,"I always knew... someday I would become... the hunted.",14,9165,100,'attumen SAY_DEATH'),
+(16151,6,0,"Such easy sport.",14,9170,100,'attumen SAY_RANDOM1'),
+(16151,6,1,"Amateurs! Do not think you can best me! I kill for a living.",14,9304,100,'attumen SAY_RANDOM2');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1532024 AND -1532018;
+DELETE FROM `creature_text` WHERE `entry`=16457;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(16457,0,0,"Your behavior will not be tolerated!",14,9204,100,'maiden SAY_AGGRO'),
+(16457,1,0,"Ah ah ah...",14,9207,100,'maiden SAY_SLAY1'),
+(16457,1,1,"This is for the best.",14,9312,100,'maiden SAY_SLAY2'),
+(16457,1,2,"Impure thoughts lead to profane actions.",14,9311,100,'maiden SAY_SLAY3'),
+(16457,2,0,"Cast out your corrupt thoughts.",14,9313,100,'maiden SAY_REPENTANCE1'),
+(16457,2,1,"Your impurity must be cleansed.",14,9208,100,'maiden SAY_REPENTANCE2'),
+(16457,3,0,"Death comes. Will your conscience be clear?",14,9206,100,'maiden SAY_DEATH');
+
+DELETE FROM `script_texts` WHERE `entry`=-1189021;
+DELETE FROM `creature_text` WHERE `entry`=3974;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(3974,0,0,"Release the hounds!",14,5841,100,'loksey SAY_AGGRO');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189007 AND -1189001;
+DELETE FROM `creature_text` WHERE `entry` IN (23682,23775);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(23775,0,0,"Hah, is that all?",14,5831,100,'headless horseman SAY_LOST_HEAD'),
+(23775,1,0,"Unworthy!",14,5836,100,'headless horseman SAY_PLAYER_DEATH'),
+(23682,0,0,"Blades of Light!",14,5832,100,'headless horseman SAY_ENTRANCE'),
+(23682,1,0,"Light, give me strength!",14,5833,100,'headless horseman SAY_REJOINED'),
+(23682,2,0,"%s becomes enraged!",16,0,100,'headless horseman SAY_CONFLAGRATION'),
+(23682,3,0,"Infidels! They must be purified!",14,5835,100,'headless horseman SAY_SPROUTING_PUMPKINS'),
+(23682,4,0,"At your side, milady!",14,5837,100,'headless horseman SAY_DEATH');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189004 AND -1189000;
+DELETE FROM `creature_text` WHERE `entry`=3975;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(3975,0,0,"Ah, I have been waiting for a real challenge!",14,5830,100,'herod SAY_AGGRO'),
+(3975,1,0,"Blades of Light!",14,5832,100,'herod SAY_WHIRLWIND'),
+(3975,2,0,"Light, give me strength!",14,5833,100,'herod SAY_ENRAGE'),
+(3975,3,0,"Hah, is that all?",14,5831,100,'herod SAY_KILL'),
+(3975,4,0,"%s becomes enraged!",16,0,100,'herod EMOTE_ENRAGE');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189020 AND -1189019;
+DELETE FROM `creature_text` WHERE `entry`=6487;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(6487,0,0,"You will not defile these mysteries!",14,5842,100,'doan SAY_AGGRO'),
+(6487,1,0,"Burn in righteous fire!",14,5843,100,'doan SAY_SPECIALAE');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189007 AND -1189005;
+DELETE FROM `creature_text` WHERE `entry`=3976;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(3976,0,0,"Infidels! They must be purified!",14,5835,100,'mograine SAY_MO_AGGRO'),
+(3976,1,0,"Unworthy!",14,5836,100,'mograine SAY_MO_KILL'),
+(3976,2,0,"At your side, milady!",14,5837,100,'mograine SAY_MO_RESSURECTED');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189010 AND -1189008;
+DELETE FROM `creature_text` WHERE `entry`=3977;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(3977,0,0,"What, Mograine has fallen? You shall pay for this treachery!",14,5838,100,'whitemane SAY_WH_INTRO'),
+(3977,1,0,"The Light has spoken!",14,5839,100,'whitemane SAY_WH_KILL'),
+(3977,2,0,"Arise, my champion!",14,5840,100,'whitemane SAY_WH_RESSURECT');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189018 AND -1189016;
+DELETE FROM `creature_text` WHERE `entry`=4543;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(4543,0,0,"We hunger for vengeance.",14,5844,100,'thalnos SAY_AGGRO'),
+(4543,1,0,"No rest, for the angry dead.",14,5846,100,'thalnos SAY_HEALTH'),
+(4543,2,0,"More... More souls.",14,5845,100,'thalnos SAY_KILL');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1189015 AND -1189011;
+DELETE FROM `creature_text` WHERE `entry` IN (3983,3981);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(3983,0,0,"Tell me... tell me everything!",14,5847,100,'vishas SAY_AGGRO'),
+(3983,1,0,"Naughty secrets!",14,5849,100,'vishas SAY_HEALTH1'),
+(3983,2,0,"I'll rip the secrets from your flesh!",14,5850,100,'vishas SAY_HEALTH2'),
+(3983,3,0,"Purged by pain!",14,5848,100,'vishas SAY_KILL'),
+(3981,0,0,"The monster got what he deserved.",12,0,100,'vishas SAY_TRIGGER_VORREL');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1033009 AND -1033007;
+DELETE FROM `creature_text` WHERE `entry` IN (3849,3850,4275);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`language`,`emote`,`comment`) VALUES
+(3849,0,0,"About time someone killed the wretch.",12,0,100,1,1,'prisoner adamant SAY_BOSS_DIE_AD'),
+(3850,0,0,"For once I agree with you... scum.",12,0,100,7,1,'prisoner ashcrombe SAY_BOSS_DIE_AS'),
+(4275,0,0,"Who dares interfere with the Sons of Arugal?",14,0,100,0,0,'');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1033006 AND -1033000;
+DELETE FROM `creature_text` WHERE `entry` IN (3849,3850);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`language`,`emote`,`comment`) VALUES
+(3850,0,0,"Follow me and I'll open the courtyard door for you.",14,0,100,7,1,'prisoner ashcrombe SAY_FREE_AS'),
+(3850,1,0,"I have just the spell to get this door open. Too bad the cell doors weren't locked so haphazardly.",14,0,100,7,1,'prisoner ashcrombe SAY_OPEN_DOOR_AS'),
+(3850,2,0,"There it is! Wide open. Good luck to you conquering what lies beyond. I must report back to the Kirin Tor at once!",14,0,100,7,1,'prisoner ashcrombe SAY_POST_DOOR_AS'),
+(3849,0,0,"Free from this wretched cell at last! Let me show you to the courtyard....",14,0,100,1,1,'prisoner adamant SAY_FREE_AD'),
+(3849,1,0,"You are indeed courageous for wanting to brave the horrors that lie beyond this door.",14,0,100,1,1,'prisoner adamant SAY_OPEN_DOOR_AD'),
+(3849,2,0,"There we go!",14,0,100,1,1,'prisoner adamant SAY_POST1_DOOR_AD'),
+(3849,3,0,"Good luck with Arugal. I must hurry back to Hadrec now.",14,0,100,1,1,'prisoner adamant SAY_POST2_DOOR_AD');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1580016 AND -1580000;
+DELETE FROM `creature_text` WHERE `entry` IN (24892,24850,24891);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(24892,0,0,"There will be no reprieve. My work here is nearly finished.",14,12451,100,'sathrovarr SAY_SATH_AGGRO'),
+(24892,1,0,"Pitious mortal!",14,12455,100,'sathrovarr SAY_SATH_SLAY1'),
+(24892,1,1,"Haven't you heard? I always win!",14,12456,100,'sathrovarr SAY_SATH_SLAY2'),
+(24892,2,0,"I'm... never on... the losing... side...",14,12452,100,'sathrovarr SAY_SATH_DEATH'),
+(24892,3,0,"Your misery is my delight!",14,12453,100,'sathrovarr SAY_SATH_SPELL1'),
+(24892,4,0,"I will watch you bleed!",14,12454,100,'sathrovarr SAY_SATH_SPELL2'),
+(24850,0,0,"Aggh! No longer will I be a slave to Malygos! Challenge me and you will be destroyed!",14,12422,100,'kalecgos SAY_EVIL_AGGRO'),
+(24850,1,0,"In the name of Kil'jaeden!",14,12425,100,'kalecgos SAY_EVIL_SLAY1'),
+(24850,1,1,"You were warned!",14,12426,100,'kalecgos SAY_EVIL_SLAY2'),
+(24850,2,0,"I am forever in your debt. Once we have triumphed over Kil'jaeden, this entire world will be in your debt as well.",14,12431,100,'kalecgos SAY_GOOD_PLRWIN'),
+(24850,3,0,"My awakening is complete! You shall all perish!",14,12427,100,'kalecgos SAY_EVIL_ENRAGE'),
+(24891,0,0,"I need... your help... Cannot... resist him... much longer...",14,12428,100,'kalecgos SAY_GOOD_AGGRO'),
+(24891,1,0,"Aaahhh! Help me, before I lose my mind!",14,12429,100,'kalecgos SAY_GOOD_NEAR_DEATH'),
+(24891,2,0,"Hurry! There is not much of me left!",14,12430,100,'kalecgos SAY_GOOD_NEAR_DEATH2');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1580065 AND -1580044;
+DELETE FROM `creature_text` WHERE `entry` IN (24882,24895);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`text`,`type`,`sound`,`probability`,`comment`) VALUES
+(24882,0,0,"Puny lizard! Death is the only answer you'll find here!",14,12458,100,'brutallus YELL_INTRO'),
+(24882,1,0,"Grah! Your magic is weak!",14,12459,100,'brutallus YELL_INTRO_BREAK_ICE'),
+(24882,2,0,"I will crush you!",14,12460,100,'brutallus YELL_INTRO_CHARGE'),
+(24882,3,0,"That was fun.",14,12461,100,'brutallus YELL_INTRO_KILL_MADRIGOSA'),
+(24882,4,0,"Come, try your luck!",14,12462,100,'brutallus YELL_INTRO_TAUNT'),
+(24882,5,0,"Ahh! More lambs to the slaughter!",14,12463,100,'brutallus YELL_AGGRO'),
+(24882,6,0,"Perish, insect!",14,12464,100,'brutallus YELL_KILL1'),
+(24882,6,1,"You are meat!",14,12465,100,'brutallus YELL_KILL2'),
+(24882,6,2,"Too easy!",14,12466,100,'brutallus YELL_KILL3'),
+(24882,7,0,"Bring the fight to me!",14,12467,100,'brutallus YELL_LOVE1'),
+(24882,7,1,"Another day, another glorious battle!",14,12468,100,'brutallus YELL_LOVE2'),
+(24882,7,2,"I live for this!",14,12469,100,'brutallus YELL_LOVE3'),
+(24882,8,0,"So much for a real challenge... Die!",14,12470,100,'brutallus YELL_BERSERK'),
+(24882,9,0,"Gah! Well done... Now... this gets... interesting...",14,12471,100,'brutallus YELL_DEATH'),
+(24895,0,0,"Hold, friends! There is information to be had before this devil meets his fate!",14,12472,100,'madrigosa YELL_MADR_ICE_BARRIER'),
+(24895,1,0,"Where is Anveena, demon? What has become of Kalec?",14,12473,100,'madrigosa YELL_MADR_INTRO'),
+(24895,2,0,"You will tell me where they are!",14,12474,100,'madrigosa YELL_MADR_ICE_BLOCK'),
+(24895,3,0,"Speak, I grow weary of asking!",14,12475,100,'madrigosa YELL_MADR_TRAP'),
+(24895,4,0,"Malygos, my lord! I did my best!",14,12476,100,'madrigosa YELL_MADR_DEATH');
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1580065 AND -1580044;
+DELETE FROM `creature_text` WHERE `entry` IN (25166,25165);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(25165,0,0,14,12484,100,"eredar - YELL_INTRO_SAC_1","Misery..."),
+(25165,1,0,14,0,100,"eredar - YELL_INTRO_SAC_3","Confusion..."),
+(25165,2,0,14,0,100,"eredar - YELL_INTRO_SAC_5","Mistrust..."),
+(25165,3,0,14,0,100,"eredar - YELL_INTRO_SAC_7","These are the hallmarks..."),
+(25165,4,0,14,0,100,"eredar - YELL_SAC_DEAD","I... fade."),
+(25165,5,0,41,0,100,"eredar - EMOTE_SHADOW_NOVA","%s directs Shadow Nova at $N"),
+(25165,6,0,14,0,100,"eredar - YELL_ENRAGE","Time is a luxury you no longer possess!"),
+(25165,7,0,14,12488,100,"eredar - YELL_SISTER_ALYTHESS_DEAD","Alythess! Your fire burns within me!"),
+(25165,8,0,14,12486,100,"eredar - YELL_SAC_KILL_1","Shadow engulf."),
+(25165,8,1,14,12487,100,"eredar - YELL_SAC_KILL_2","Ee-nok Kryul!"),
+(25165,9,0,14,12485,100,"eredar - YELL_SHADOW_NOVA","Shadow to the aid of fire!"),
+(25166,0,0,14,0,100,"eredar - YELL_INTRO_ALY_2","Depravity..."),
+(25166,1,0,14,0,100,"eredar - YELL_INTRO_ALY_4","Hatred..."),
+(25166,2,0,14,0,100,"eredar - YELL_INTRO_ALY_6","Chaos..."),
+(25166,3,0,14,0,100,"eredar - YELL_INTRO_ALY_8","These are the pillars..."),
+(25166,4,0,41,0,100,"eredar - EMOTE_CONFLAGRATION","%s directs Conflagration at $N"),
+(25166,5,0,14,12490,100,"eredar - YELL_ALY_KILL_1","Fire consume."),
+(25166,5,1,14,12491,100,"eredar - YELL_ALY_KILL_2","Ed-ir Halach!"),
+(25166,6,0,14,12494,100,"eredar - YELL_ALY_DEAD","De-ek Anur!"),
+(25166,7,0,14,12492,100,"eredar - YELL_SISTER_SACROLASH_DEAD","Sacrolash!"),
+(25166,8,0,14,12489,100,"eredar - YELL_CANFLAGRATION","Fire to the aid of shadow!"),
+(25166,9,0,14,12493,100,"eredar - YELL_BERSERK","Your luck has run its curse!");
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1580098 AND -1580066;
+DELETE FROM `creature_text` WHERE `entry` IN (25608,25319,25315,26046);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(25608,0,0,14,12495,100,"KJ - SAY_KJ_OFFCOMBAT1","All my plans have led to this!"),
+(25608,0,1,14,12496,100,"KJ - SAY_KJ_OFFCOMBAT2","Stay on task! Do not waste time!"),
+(25608,0,2,14,12497,100,"KJ - SAY_KJ_OFFCOMBAT3","I have waited long enough!"),
+(25608,0,3,14,12498,100,"KJ - SAY_KJ_OFFCOMBAT4","Fail me and suffer for eternity!"),
+(25608,0,4,14,12499,100,"KJ - SAY_KJ_OFFCOMBAT5","Drain the girl! Drain her power until there is nothing but a vacant shell!"),
+(25319,0,0,14,12449,100,"KJ - SAY_KALECGOS_ENCOURAGE","Strike now, heroes, while he is weakened! Vanquish the Deceiver!"),
+(25319,1,0,14,12440,100,"KJ - SAY_KALECGOS_READY1","I will channel my power into the orbs, be ready!"),
+(25319,2,0,14,12441,100,"KJ - SAY_KALECGOS_READY2","I have empowered another orb! Use it quickly!"),
+(25319,3,0,14,12442,100,"KJ - SAY_KALECGOS_READY3","Another orb is ready! Make haste!"),
+(25319,4,0,14,12443,100,"KJ - SAY_KALECGOS_READY4","I have channeled all I can! The power is in your hands!"),
+(25319,5,0,14,12445,100,"KJ - SAY_KALECGOS_AWAKEN","Anveena, you must awaken, this world needs you!"),
+(25319,6,0,14,12446,100,"KJ - SAY_KALECGOS_LETGO","You must let go! You must become what you were always meant to be! The time is now, Anveena!"),
+(25319,7,0,14,12447,100,"KJ - SAY_KALECGOS_FOCUS","Anveena, I love you! Focus on my voice, come back for me now! Only you can cleanse the Sunwell!"),
+(25319,8,0,14,12448,100,"KJ - SAY_KALECGOS_FATE","Yes, Anveena! Let fate embrace you now!"),
+(25319,9,0,14,12450,100,"KJ - SAY_KALECGOS_GOODBYE","Goodbye, Anveena, my love. Few will remember your name, yet this day you change the course of destiny. What was once corrupt is now pure. Heroes, do not let her sacrifice be in vain."),
+(25319,10,0,14,12438,100,"KJ - SAY_KALECGOS_JOIN","You are not alone. The Blue Dragonflight shall help you vanquish the Deceiver."),
+(25315,0,0,14,12527,100,"KJ - SAY_KJ_DEATH","Nooooooooooooo!"),
+(25315,1,0,14,12501,100,"KJ - SAY_KJ_SLAY1","Another step towards destruction!"),
+(25315,1,1,14,12502,100,"KJ - SAY_KJ_SLAY2","Anak-ky'ri!"),
+(25315,2,0,14,12503,100,"KJ - SAY_KJ_REFLECTION1","Who can you trust?"),
+(25315,2,1,14,12504,100,"KJ - SAY_KJ_REFLECTION2","The enemy is among you."),
+(25315,3,0,14,12500,100,"KJ - SAY_KJ_EMERGE","The expendible have perished... So be it! Now I shall succeed where Sargeras could not! I will bleed this wretched world and secure my place as the true master of the Burning Legion. The end has come! Let the unraveling of this world commence!"),
+(25315,4,0,14,12505,100,"KJ - SAY_KJ_DARKNESS1","Chaos!"),
+(25315,4,1,14,12506,100,"KJ - SAY_KJ_DARKNESS2","Destruction!"),
+(25315,4,2,14,12507,100,"KJ - SAY_KJ_DARKNESS3","Oblivion!"),
+(25315,5,0,14,12508,100,"KJ - SAY_KJ_PHASE3","I will not be denied! This world shall fall!"),
+(25315,6,0,14,12509,100,"KJ - SAY_KJ_PHASE4","Do not harbor false hope. You cannot win!"),
+(25315,7,0,14,12510,100,"KJ - SAY_KJ_PHASE5","Aggghh! The powers of the Sunwell... turned... against me! What have you done? WHAT HAVE YOU DONE?"),
+(25315,8,0,41,0,100,"KJ - EMOTE_KJ_DARKNESS","%s begins to channel dark energy"),
+(26046,0,0,14,12511,100,"KJ - SAY_ANVEENA_IMPRISONED","I serve only the Master now."),
+(26046,1,0,14,12512,100,"KJ - SAY_ANVEENA_LOST","But I'm... lost... I cannot find my way back!"),
+(26046,2,0,14,12513,100,"KJ - SAY_ANVEENA_KALEC","Kalec... Kalec?"),
+(26046,3,0,14,12514,100,"KJ - SAY_ANVEENA_GOODBYE","The nightmare is over, the spell is broken! Goodbye, Kalec, my love!");
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1580043 AND -1580036;
+DELETE FROM `creature_text` WHERE `entry`=25038;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(25038,0,0,14,12477,100,"felmyst - YELL_BIRTH","Glory to Kil'jaeden! Death to all who oppose!"),
+(25038,1,0,14,12480,100,"felmyst - YELL_KILL1","I kill for the master!"),
+(25038,1,1,14,12481,100,"felmyst - YELL_KILL2","The end has come!"),
+(25038,2,0,14,12478,100,"felmyst - YELL_BREATH","Choke on your final breath!"),
+(25038,3,0,14,12479,100,"felmyst - YELL_TAKEOFF","I am stronger than ever before!"),
+(25038,4,0,14,12482,100,"felmyst - YELL_BERSERK","No more hesitation! Your fates are written!"),
+(25038,5,0,14,12483,100,"felmyst - YELL_DEATH","Kil'jaeden... will... prevail..."),
+(25038,6,0,14,12439,100,"felmyst - YELL_KALECGOS","Madrigosa deserved a far better fate. You did what had to be done, but this battle is far from over.");
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000292 AND -1000287;
+DELETE FROM `creature_text` WHERE `entry`=7806;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(7806,0,0,12,0,100,"oox SAY_OOX_START","Emergency power activated! Initializing ambulanory motor! CLUCK!"),
+(7806,1,0,12,0,100,"oox SAY_OOX_AGGRO1","Physical threat detected! Evasive action! CLUCK!"),
+(7806,1,1,12,0,100,"oox SAY_OOX_AGGRO2","Thread analyzed! Activating combat plan beta! CLUCK!"),
+(7806,2,0,12,0,100,"oox SAY_OOX_AMBUSH","CLUCK! Sensors detect spatial anomaly - danger imminent! CLUCK!"),
+(7806,3,0,12,0,100,"oox SAY_OOX_AMBUSH_REPLY","No one challanges the Wastewander nomads - not even robotic chickens! ATTACK!"),
+(7806,4,0,12,0,100,"oox SAY_OOX_END","Cloaking systems online! CLUCK! Engaging cloak for transport to Booty Bay!");
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000409 AND -1000403;
+DELETE FROM `creature_text` WHERE `entry` IN (2691,7780);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(2691,0,0,12,0,100,"SAY_RIN_BY_OUTRUNNER","Attack my sisters! The troll must not escape!"),
+(7780,0,0,12,0,100,"SAY_RIN_FREE","Rin'ji is free!"),
+(7780,1,0,12,0,100,"SAY_RIN_HELP_1","Rin'ji needs help!"),
+(7780,1,1,12,0,100,"SAY_RIN_HELP_2","Rin'ji is being attacked!"),
+(7780,2,0,12,0,100,"SAY_RIN_COMPLETE","Rin'ji can see road now, $n. Rin'ji knows the way home."),
+(7780,3,0,12,0,100,"SAY_RIN_PROGRESS_1","Rin'ji will tell you secret now... $n, should go to the Overlook Cliffs. Rin'ji hid something on island there"),
+(7780,4,0,12,0,100,"SAY_RIN_PROGRESS_2","You find it, you keep it! Don't tell no one that Rin'ji talked to you!");
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1568009 AND -1568000;
+DELETE FROM `creature_text` WHERE `entry`=23578;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(23578,0,0,14,12031,100,"janalai SAY_AGGRO","Spirits of da wind be your doom!"),
+(23578,1,0,14,12032,100,"janalai SAY_FIRE_BOMBS","I burn ya now!"),
+(23578,2,0,14,12033,100,"janalai SAY_SUMMON_HATCHER","Where ma hatcha? Get to work on dem eggs!"),
+(23578,3,0,14,12034,100,"janalai SAY_ALL_EGGS","I show you strength... in numbers."),
+(23578,4,0,14,12035,100,"janalai SAY_BERSERK","You done run outta time!"),
+(23578,5,0,14,12036,100,"janalai SAY_SLAY_1","It all be over now, mon!"),
+(23578,5,1,14,12037,100,"janalai SAY_SLAY_2","Tazaga-choo!"),
+(23578,6,0,14,12038,100,"janalai SAY_DEATH","Zul'jin... got a surprise for you..."),
+(23578,7,0,14,12039,100,"janalai SAY_EVENT_STRANGERS","Come, strangers. The spirit of the dragonhawk hot be hungry for worthy souls."),
+(23578,8,0,14,12040,100,"janalai SAY_EVENT_FRIENDS","Come, friends. Your bodies gonna feed ma hatchlings, and your souls are going to feed me with power!");
+
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1469006 AND -1469004;
+DELETE FROM `creature_text` WHERE `entry`=10162;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(10162,0,0,12,0,100,"victor_nefarius SAY_GAMESBEGIN_1","In this world where time is your enemy, it is my greatest ally. This grand game of life that you think you play in fact plays you. To that I say..."),
+(10162,1,0,14,8280,100,"victor_nefarius SAY_GAMESBEGIN_2","Let the games begin!"),
+(10162,2,0,14,8279,100,"victor_nefarius SAY_VAEL_INTRO","Ah, the heroes. You are persistent, aren't you. Your allied attempted to match his power against mine, and had to pay the price. Now he shall serve me, by slaughtering you. Get up little red wyrm and destroy them!");
diff --git a/sql/updates/world/2012_11_21_00_world_sai.sql b/sql/updates/world/2012_11_21_00_world_sai.sql
new file mode 100644
index 00000000000..9cdd314bb8f
--- /dev/null
+++ b/sql/updates/world/2012_11_21_00_world_sai.sql
@@ -0,0 +1,169 @@
+SET @GOGUID := 380; -- need 1 set by TDB
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=66 WHERE `item`=38303 AND `entry`=26620;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=67 WHERE `item`=38303 AND `entry`=26639;
+UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=15 WHERE `item`=38303 AND `entry`=27431;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=47110;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9615 AND `SourceEntry`=1;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,47110,0,0,31,0,3,26498,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 01'),
+(13,1,47110,0,1,31,0,3,26559,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 02'),
+(13,1,47110,0,2,31,0,3,26700,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 03'),
+(13,1,47110,0,3,31,0,3,26789,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 04'),
+(13,1,47110,0,4,31,0,3,28015,0,0,0,'','Spell Summon Drakuru''s Image targets Drakuru''s Bunny 05'),
+(15,9615,1,0,0,8,0,11990,0,0,0,0,'','Drakuru - Show gossip option if player has rewarded quest 11990'),
+(15,9615,1,0,0,8,0,12238,0,0,1,0,'','Drakuru - Show gossip option if player has not rewarded quest 12238'),
+(15,9615,1,0,0,2,0,35797,1,1,1,0,'','Drakuru - Show gossip option if player has not item Drakuru''s Elixir');
+DELETE FROM `smart_scripts` WHERE `entryorguid`=26423 AND `source_type`=0 AND `id` IN (2,3);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26498,26559,26700,26789) AND `source_type`=0;
+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
+(26423,0,2,3,62,0,100,0,9615,1,0,0,85,50021,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru - On gossip option select - Invoker spellcast Replace Drakuru''s Elixir'),
+(26423,0,3,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru - On gossip option select - Close gossip'),
+(26498,0,0,0,8,0,100,0,47110,0,0,0,11,47117,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 01 - On spellhit - Spellcast Script Cast Summon Image of Drakuru'),
+(26559,0,0,0,8,0,100,0,47110,0,0,0,11,47149,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 02 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 02'),
+(26700,0,0,0,8,0,100,0,47110,0,0,0,11,47316,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 03 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 03'),
+(26789,0,0,0,8,0,100,0,47110,0,0,0,11,47405,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 04 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 04');
+DELETE FROM `creature` WHERE `guid` IN (43494,43496,43498,43501); -- double spawned
+DELETE FROM `gameobject` WHERE `guid`=364; -- double spawned
+-- Creature Template update from sniff
+UPDATE `creature_template` SET `faction_A`=14, `faction_H`=14, `speed_walk`=2, `speed_run`=0.992062, `unit_flags`=768, `equipment_id`=2481 WHERE `entry`=28498;
+UPDATE `creature_template` SET `gossip_menu_id`=9707, `faction_A`=190, `faction_H`=190, `speed_walk`=2, `npcflag`=`npcflag`|1, `unit_flags`=33024 WHERE `entry`=28016;
+UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (28015,28016,28492,28498);
+-- Gossip Menu insert from sniff
+DELETE FROM `gossip_menu` WHERE `entry`=9707 AND `text_id`=13265;
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(9707,13265);
+DELETE FROM `creature_equip_template` WHERE `entry`=2481;
+INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES
+(2481,33475,0,0);
+UPDATE `creature_model_info` SET `bounding_radius`=2.5, `combat_reach`=2.5 WHERE `modelid`=28122;
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=51825;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(13,1,51825,0,0,31,0,3,28016,0,0,0,'','Spell Arthas Scourge Drakuru targets Drakuru');
+-- Creature text insert from sniff
+DELETE FROM `creature_text` WHERE `entry` IN (28016,28498);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+(28016,0,0,'Ahh, Back in Drak''Tharon at last!',12,0,100,71,0,14006,'Drakuru'),
+(28016,1,0,'Drakuru casts his gaze down on Drak''Tharon Keep.',16,0,100,0,0,0,'Drakuru'),
+(28016,2,0,'Ya done well, mon....',12,0,100,0,0,14007,'Drakuru'),
+(28016,3,0,'Ya surpassed my greatest hopes.',12,0,100,0,0,14008,'Drakuru'),
+(28016,4,0,'For your efforts, you be gettin'' da greatest of rewards....',12,0,100,0,0,14009,'Drakuru'),
+(28016,5,0,'Revelation!',12,0,100,5,0,14010,'Drakuru'),
+(28016,6,0,'Be still, friend, and behold da truth of things!',12,0,100,0,0,14011,'Drakuru'),
+(28016,7,0,'Master, my mission be complete.',12,0,100,0,0,14012,'Drakuru'),
+(28016,8,0,'With da help of these mortals, dis region been cleansed of all who oppose us.',12,0,100,0,0,14013,'Drakuru'),
+(28016,9,0,'As you wish, master.',12,0,100,396,0,14014,'Drakuru'),
+(28016,10,0,'Forgive my deception, mon. It all been for your own good.',12,0,100,396,0,14015,'Drakuru'),
+(28016,11,0,'Ya needed ta prove yer worthiness....',12,0,100,396,0,14016,'Drakuru'),
+(28016,12,0,'I be needin'' worthy underlings in Zul''Drak, mon. Ones ready to wield real power.',12,0,100,396,0,14017,'Drakuru'),
+(28016,13,0,'You see for yourself now. Da Lich King be generous to dem who obey.',12,0,100,396,0,14018,'Drakuru'),
+(28016,14,0,'Follow dis path, mon, and soon you be tastin'' immortality!',12,0,100,396,0,14019,'Drakuru'),
+(28498,0,0,'You have done well, Drakuru.',12,0,100,396,0,14749,'The Lich King'),
+(28498,1,0,'Your betrayal of the Drakkari Empire has borne me a new army.',12,0,100,396,0,14750,'The Lich King'),
+(28498,2,0,'Your army....',12,0,100,0,0,14751,'The Lich King'),
+(28498,3,0,'Arise, and accept my gift.',12,0,100,396,0,14752,'The Lich King'),
+(28498,4,0,'I charge you now with the cleansing of Zul''Drak, Drakuru.',12,0,100,397,0,14753,'The Lich King'),
+(28498,5,0,'Fail me and it shall be your undoing...',12,0,100,396,0,14754,'The Lich King'),
+(28498,6,0,'Succeed, and even greater power shall be yours!',12,0,100,396,0,14755,'The Lich King');
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (28015,28016,28498,-127497,-127496,-127495,-127493) AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (28492*100,28016*100,28016*100+1,28498*100) AND `source_type`=9;
+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
+(28015,0,0,0,8,0,100,0,47110,0,0,0,11,50439,0,0,0,0,0,7,0,0,0,0,0,0,0,'Drakuru''s Bunny 05 - On spellhit - Spellcast Script Cast Summon Image of Drakuru 05'),
+(28016,0,0,0,54,0,100,0,0,0,0,0,80,28016*100+1,2,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On update - Run script'),
+(28016,0,1,2,40,0,100,0,1,0,0,0,54,2000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 1 - Pause movement 2 seconds'),
+(28016,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru - On WP 1 - Say line'),
+(28016,0,3,4,40,0,100,0,5,0,0,0,54,8000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 5 - Pause movement 8 seconds'),
+(28016,0,4,5,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru - On WP 5 - Say line'),
+(28016,0,5,0,61,0,100,0,0,0,0,0,80,28016*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 5 - Run script'),
+(28016,0,6,7,40,0,100,0,8,0,0,0,54,4000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 8 - Pause movement 4 seconds'),
+(28016,0,7,8,61,0,100,0,0,0,0,0,1,3,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru - On WP 8 - Say line'),
+(28016,0,8,0,61,0,100,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 8 - Set unit_field_bytes1'),
+(28016,0,9,10,40,0,100,0,9,0,0,0,54,4000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 9 - Pause movement 4 seconds'),
+(28016,0,10,0,61,0,100,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 9 - Set unit_field_bytes1'),
+(28016,0,11,12,40,0,100,0,10,0,0,0,54,3000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 10 - Pause movement 3 seconds'),
+(28016,0,12,13,61,0,100,0,0,0,0,0,1,4,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru - On WP 10 - Say line'),
+(28016,0,13,0,61,0,100,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 10 - Set unit_field_bytes1'),
+(28016,0,14,15,40,0,100,0,12,0,0,0,55,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On WP 12 - Stop movement'),
+(28016,0,15,16,61,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,4.694936,'Drakuru - On WP 12 - Set orientation'),
+(28016,0,16,0,61,0,100,0,0,0,0,0,1,5,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru - On WP 12 - Say line'),
+(28016,0,18,0,8,0,100,0,51825,0,0,0,11,51834,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru - On spellhit Arthas Scourge Drakuru - Spellcast Drakuru Transform'),
+(28498,0,0,0,54,0,100,0,0,0,0,0,53,0,28498,0,0,0,0,1,0,0,0,0,0,0,0,'The Lich King - Just summoned - Start WP movement'),
+(28498,0,1,2,40,0,100,0,2,0,0,0,54,83000,0,0,0,0,0,1,0,0,0,0,0,0,0,'The Lich King - On WP 2 - Pause movement 83 seconds'),
+(28498,0,2,0,61,0,100,0,0,0,0,0,80,28498*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'The Lich King - On WP 2 - Run script'),
+(28498,0,3,4,40,0,100,0,3,0,0,0,45,0,2,0,0,0,0,10,127495,0,0,0,0,0,0,'The Lich King - On WP 3 - Despawn'),
+(28498,0,4,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'The Lich King - On WP 3 - Despawn'),
+(-127497,0,0,1,38,0,100,0,0,1,0,0,11,51802,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Spellcast Red Lightning Bolt'),
+(-127497,0,1,0,61,0,100,0,0,0,0,0,45,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Set data 0 0'),
+(-127496,0,0,1,38,0,100,0,0,1,0,0,11,51802,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Spellcast Red Lightning Bolt'),
+(-127496,0,1,0,61,0,100,0,0,0,0,0,45,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Set data 0 0'),
+(-127493,0,0,1,38,0,100,0,0,1,0,0,11,51802,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Spellcast Red Lightning Bolt'),
+(-127493,0,1,0,61,0,100,0,0,0,0,0,45,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Set data 0 0'),
+(-127495,0,0,0,38,0,100,0,0,1,0,0,11,51807,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 1 - Spellcast Arthas Portal'),
+(-127495,0,1,2,38,0,100,0,0,2,0,0,80,28492*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 2 set - Start script'),
+(-127495,0,2,0,61,0,100,0,0,0,0,0,45,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 - On data 0 2 set - Set data 0 0'),
+(28016*100,9,0,0,0,0,100,0,6000,6000,0,0,5,21,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Play emote applaud'),
+(28016*100,9,1,0,0,0,100,0,2000,2000,0,0,1,2,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,2,0,0,0,100,0,6500,6500,0,0,50,190597,22.5,0,0,0,0,8,0,0,0,-241.5434,-675.4514,132.2164,-1.029743,'Drakuru script - Summon gameobject'),
+(28016*100,9,3,0,0,0,100,0,6000,6000,0,0,50,190596,15.5,0,0,0,0,8,0,0,0,-235.8484,-680.4561,131.885,-2.792518,'Drakuru script - Summon gameobject'),
+(28016*100,9,4,0,0,0,100,0,5000,5000,0,0,50,190595,11,0,0,0,0,8,0,0,0,-233.977,-673.1368,132.0999,0.7853968,'Drakuru script - Summon gameobject'),
+(28016*100,9,5,0,0,0,100,0,6000,6000,0,0,11,51795,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Spellcast Shadow Channelling (10 sec)'),
+(28016*100,9,6,0,0,0,100,0,5000,5000,0,0,45,0,1,0,0,0,0,10,127497,0,0,0,0,0,0,'Drakuru script - Set data 0 1'),
+(28016*100,9,7,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,127496,0,0,0,0,0,0,'Drakuru script - Set data 0 1'),
+(28016*100,9,8,0,0,0,100,0,0,0,0,0,45,0,1,0,0,0,0,10,127493,0,0,0,0,0,0,'Drakuru script - Set data 0 1'),
+(28016*100,9,9,0,0,0,100,0,4000,4000,0,0,45,0,1,0,0,0,0,10,127495,0,0,0,0,0,0,'Drakuru script - Set data 0 1'),
+(28016*100,9,10,0,0,0,100,0,1000,1000,0,0,1,6,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,11,0,0,0,100,0,5000,5000,0,0,12,28498,8,0,0,0,0,8,0,0,0,-237.1671,-702.1379,128.8857,1.570796,'Drakuru script - Summon Lich King'),
+(28016*100,9,12,0,0,0,100,0,4000,4000,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Set unit_field_bytes1'),
+(28016*100,9,13,0,0,0,100,0,2000,2000,0,0,1,7,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,14,0,0,0,100,0,6000,6000,0,0,1,8,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,15,0,0,0,100,0,33000,33000,0,0,91,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Remove unit_field_bytes1'),
+(28016*100,9,16,0,0,0,100,0,6000,6000,0,0,5,15,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Play emote roar'),
+(28016*100,9,17,0,0,0,100,0,0,0,0,0,4,3326,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Play sound roar'),
+(28016*100,9,18,0,0,0,100,0,12000,12000,0,0,1,9,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,19,0,0,0,100,0,27000,27000,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,2.70526,'Drakuru script - Set orientation'),
+(28016*100,9,20,0,0,0,100,0,7000,7000,0,0,1,10,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,21,0,0,0,100,0,8000,8000,0,0,1,11,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,22,0,0,0,100,0,8000,8000,0,0,1,12,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,23,0,0,0,100,0,11000,11000,0,0,1,13,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,24,0,0,0,100,0,7000,7000,0,0,1,14,0,0,0,0,0,23,0,0,0,0,0,0,0,'Drakuru script - Say line'),
+(28016*100,9,25,0,0,0,100,0,0,0,0,0,81,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Set npcflag'),
+(28016*100+1,9,0,0,0,0,100,0,0,0,0,0,83,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Remove npcflag'),
+(28016*100+1,9,1,0,0,0,100,0,3000,3000,0,0,53,0,28016,0,0,0,0,1,0,0,0,0,0,0,0,'Drakuru script - Start WP movement'),
+(28492*100,9,0,0,0,0,100,0,5000,5000,0,0,28,51807,0,0,0,0,0,1,0,0,0,0,0,0,0,'Drak''Tharon - Drakuru Event Invisman 00 script - Remove aura Arthas Portal'),
+(28498*100,9,0,0,0,0,100,0,15000,15000,0,0,1,0,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line'),
+(28498*100,9,1,0,0,0,100,0,6000,6000,0,0,1,1,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line'),
+(28498*100,9,2,0,0,0,100,0,10000,10000,0,0,1,2,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line'),
+(28498*100,9,3,0,0,0,100,0,6000,6000,0,0,1,3,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line'),
+(28498*100,9,4,0,0,0,100,0,5000,5000,0,0,11,51825,0,0,0,0,0,9,28016,0,10,0,0,0,0,'The Lich King script - Spellcast Arthas Scourge Drakuru'),
+(28498*100,9,5,0,0,0,100,0,8000,8000,0,0,1,4,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line'),
+(28498*100,9,6,0,0,0,100,0,16000,16000,0,0,1,5,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line'),
+(28498*100,9,7,0,0,0,100,0,6000,6000,0,0,1,6,0,0,0,0,0,23,0,0,0,0,0,0,0,'The Lich King script - Say line');
+DELETE FROM `creature_template_addon` WHERE `entry` IN (28016,28498);
+INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
+(28016,0,0,0,1,0,''),
+(28498,0,0,0,1,0,'');
+DELETE FROM `spell_scripts` WHERE `id`=50439;
+INSERT INTO `spell_scripts` (`id`,`effIndex`,`delay`,`command`,`datalong`,`datalong2`,`dataint`,`x`,`y`,`z`,`o`) VALUES
+(50439,0,0,15,50440,2,0,0,0,0,0); -- Script Cast Summon Image of Drakuru - Spellcast Envision Drakuru
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=50440;
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(50440,50446,1,'On Envision Drakuru - Spellcast Summon Drakuru');
+DELETE FROM `waypoints` WHERE `entry` IN (28016,28498);
+INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES
+(28016, 1,-240.1569,-630.3474,116.4973,'pause and text'),
+(28016, 2,-237.9522,-652.9613,131.131,''),
+(28016, 3,-252.4211,-663.5404,131.2025,''),
+(28016, 4,-261.2747,-667.5787,131.1916,''),
+(28016, 5,-264.9144,-667.5964,131.1769,'pause and text'),
+(28016, 6,-258.2646,-669.388,131.1983,''),
+(28016, 7,-248.6646,-674.2229,132.1737,''),
+(28016, 8,-243.7752,-674.9374,131.8365,'pause'),
+(28016, 9,-236.3793,-678.6719,131.8578,'pause'),
+(28016,10,-235.4743,-674.3039,131.8569,'pause'),
+(28016,11,-234.869,-674.1355,131.8544,''),
+(28016,12,-237.0977,-676.1853,131.8683,''),
+(28498,1,-237.4704,-689.8357,129.5296,''),
+(28498,2,-237.2737,-686.5334,132.1735,'pause'),
+(28498,3,-237.0624,-700.3822,130.4357,'');
+DELETE FROM `gameobject` WHERE `guid`=@GOGUID;
+INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
+(@GOGUID,300188,600,3,1,-236.766,-614.774,116.487,1.5708,0,0,0,1,180,0,1);
diff --git a/sql/updates/world/2012_11_24_00_world_creature_text.sql b/sql/updates/world/2012_11_24_00_world_creature_text.sql
new file mode 100644
index 00000000000..60e0f9c3aa1
--- /dev/null
+++ b/sql/updates/world/2012_11_24_00_world_creature_text.sql
@@ -0,0 +1,969 @@
+-- ----------------------------------
+-- Creature text conversion part 2 --
+-- ----------------------------------
+-- razorgore
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1469025 AND -1469022;
+DELETE FROM `creature_text` WHERE `entry`=12435;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(12435,0,0,14,8275,100,"razorgore SAY_EGGS_BROKEN1","You'll pay for forcing me to do this."),
+(12435,1,0,14,8276,100,"razorgore SAY_EGGS_BROKEN2","Fools! These eggs are more precious than you know."),
+(12435,2,0,14,8277,100,"razorgore SAY_EGGS_BROKEN3","No! Not another one! I'll have your heads for this atrocity."),
+(12435,3,0,14,8278,100,"razorgore SAY_DEATH","If I fall into the abyss I'll take all of you mortals with me...");
+
+-- nefarian
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1469021 AND -1469007;
+DELETE FROM `creature_text` WHERE `entry`=11583;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(11583,0,0,14,8288,100,"nefarian SAY_AGGRO","Well done, my minions. The mortals' courage begins to wane! Now, let's see how they contend with the true Lord of Blackrock Spire!"),
+(11583,0,1,14,8289,100,"nefarian SAY_XHEALTH","Enough! Now you vermin shall feel the force of my birthright, the fury of the earth itself."),
+(11583,0,2,14,8290,100,"nefarian SAY_SHADOWFLAME","Burn, you wretches! Burn!"),
+(11583,1,0,14,8291,100,"nefarian SAY_RAISE_SKELETONS","Impossible! Rise my minions! Serve your master once more!"),
+(11583,2,0,14,8293,100,"nefarian SAY_SLAY","Worthless $N! Your friends will join you soon enough!"),
+(11583,3,0,14,8292,100,"nefarian SAY_DEATH","This cannot be! I am the Master here! You mortals are nothing to my kind! DO YOU HEAR? NOTHING!"),
+(11583,4,0,14,0,100,"nefarian SAY_MAGE","Mages too? You should be more careful when you play with magic..."),
+(11583,5,0,14,0,100,"nefarian SAY_WARRIOR","Warriors, I know you can hit harder than that! Let's see it!"),
+(11583,6,0,14,0,100,"nefarian SAY_DRUID","Druids and your silly shapeshifting. Let's see it in action!"),
+(11583,7,0,14,0,100,"nefarian SAY_PRIEST","Priests! If you're going to keep healing like that, we might as well make it a little more interesting!"),
+(11583,8,0,14,0,100,"nefarian SAY_PALADIN","Paladins, I've heard you have many lives. Show me."),
+(11583,9,0,14,0,100,"nefarian SAY_SHAMAN","Shamans, show me what your totems can do!"),
+(11583,10,0,14,0,100,"nefarian SAY_WARLOCK","Warlocks, you shouldn't be playing with magic you don't understand. See what happens?"),
+(11583,11,0,14,0,100,"nefarian SAY_HUNTER","Hunters and your annoying pea-shooters!"),
+(11583,12,0,14,0,100,"nefarian SAY_ROGUE","Rogues? Stop hiding and face me!");
+
+-- broodlord
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1469001 AND -1469000;
+DELETE FROM `creature_text` WHERE `entry`=12017;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(12017,0,0,14,8286,100,"broodlord SAY_AGGRO","None of your kind should be here! You've doomed only yourselves!"),
+(12017,1,0,14,8287,100,"broodlord SAY_LEASH","Clever Mortals but I am not so easily lured away from my sanctum!");
+
+-- flamegor
+DELETE FROM `script_texts` WHERE `entry`=-1469031;
+DELETE FROM `creature_text` WHERE `entry`=11981;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(11981,0,0,16,0,100,"flamegor EMOTE_FRENZY","%s goes into a frenzy!");
+
+-- chromaggus
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1469003 AND -1469002;
+DELETE FROM `creature_text` WHERE `entry`=14020;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(14020,0,0,16,0,100,"chromaggus EMOTE_FRENZY","goes into a killing frenzy!"),
+(14020,1,0,16,0,100,"chromaggus EMOTE_SHIMMER","flinches as its skin shimmers.");
+
+-- vaelastrasz
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1469030 AND -1469026;
+DELETE FROM `creature_text` WHERE `entry`=13020;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(13020,0,0,14,8281,100,"vaelastrasz SAY_LINE1","Too late...friends. Nefarius' corruption has taken hold. I cannot...control myself."),
+(13020,1,0,14,8282,100,"vaelastrasz SAY_LINE2","I beg you Mortals, flee! Flee before I lose all control. The Black Fire rages within my heart. I must release it!"),
+(13020,2,0,14,8283,100,"vaelastrasz SAY_LINE3","FLAME! DEATH! DESTRUCTION! COWER MORTALS BEFORE THE WRATH OF LORD....NO! I MUST FIGHT THIS!"),
+(13020,3,0,14,8285,100,"vaelastrasz SAY_HALFLIFE","Nefarius' hate has made me stronger than ever before. You should have fled, while you could, mortals! The fury of Blackrock courses through my veins!"),
+(13020,4,0,14,8284,100,"vaelastrasz SAY_KILLTARGET","Forgive me $N, your death only adds to my failure.");
+
+-- doctor theolen krastinov
+-- No delete query here, it's a generic script text for frenzy emotes.
+DELETE FROM `creature_text` WHERE `entry`=11261;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(11261,0,0,16,0,100,"doctor theolen krastinov EMOTE_FRENZY_KILL","%s goes into a killing frenzy!");
+
+-- vectus
+-- No delete query here, it's a generic script text for frenzy emotes.
+DELETE FROM `creature_text` WHERE `entry`=10432;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(10432,0,0,16,0,100,"vectus EMOTE_FRENZY_KILL","%s goes into a killing frenzy!");
+
+-- galen
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000506 AND -1000500;
+DELETE FROM `creature_text` WHERE `entry`=5391;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(5391,0,0,12,0,100,"galen SAY_PERIODIC","Help! Please, You must help me!"),
+(5391,1,0,12,0,100,"galen SAY_QUEST_ACCEPTED","Let us leave this place."),
+(5391,2,0,12,0,100,"galen SAY_ATTACKED_1","Look out! The $c attacks!"),
+(5391,2,1,12,0,100,"galen SAY_ATTACKED_2","Help! I'm under attack!"),
+(5391,3,0,12,0,100,"galen SAY_QUEST_COMPLETE","Thank you $N. I will remember you always. You can find my strongbox in my camp, north of Stonard."),
+(5391,4,0,16,0,100,"galen EMOTE_WHISPER","%s whispers to $N the secret to opening his strongbox."),
+(5391,5,0,16,0,100,"galen EMOTE_DISAPPEAR","%s disappears into the swamp.");
+
+-- smite
+DELETE FROM `script_texts` WHERE `entry`=-1036001;
+DELETE FROM `creature_text` WHERE `entry`=646;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(646,0,0,14,5777,100,"smite SAY_AGGRO","We're under attack! A vast, ye swabs! Repel the invaders!");
+
+-- crusader
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1609519 AND -1609501;
+DELETE FROM `creature_text` WHERE `entry` IN (28939,28610,28940);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+-- Scarlet Preacher
+(28939,1,0,12,0,100,"crusader SAY_CRUSADER1","You'll be hanging in the gallows shortly, Scourge fiend!"),
+(28939,1,1,12,0,100,"crusader SAY_CRUSADER2","You'll have to kill me, monster! I will tell you NOTHING!"),
+(28939,1,2,12,0,100,"crusader SAY_CRUSADER3","You hit like a girl. Honestly. Is that the best you can do?"),
+(28939,1,3,12,0,100,"crusader SAY_CRUSADER4","ARGH! You burned my last good tabard!"),
+(28939,1,4,12,0,100,"crusader SAY_CRUSADER5","Argh... The pain... The pain is almost as unbearable as the lashings I received in grammar school when I was but a child."),
+(28939,1,5,12,0,100,"crusader SAY_CRUSADER6","I used to work for Grand Inquisitor Isillien! Your idea of pain is a normal mid-afternoon for me!"),
+(28939,2,0,12,0,100,"break crusader SAY_PERSUADED1","I'll tell you everything! STOP! PLEASE!"),
+(28939,3,0,12,0,100,"break crusader SAY_PERSUADED2","We... We have only been told that the \"Crimson Dawn\" is an awakening. You see, the Light speaks to the High General. It is the Light..."),
+(28939,4,0,12,0,100,"break crusader SAY_PERSUADED3","The Light that guides us. The movement was set in motion before you came... We... We do as we are told. It is what must be done."),
+(28939,5,0,12,0,100,"break crusader SAY_PERSUADED4","I know very little else... The High General chooses who may go and who must stay behind. There's nothing else... You must believe me!"),
+(28939,6,0,12,0,100,"break crusader SAY_PERSUADED6","NO! PLEASE! There is one more thing that I forgot to mention... A courier comes soon... From Hearthglen. It..."),
+-- Scarlet Crusader
+(28940,1,0,12,0,100,"crusader SAY_CRUSADER1","You'll be hanging in the gallows shortly, Scourge fiend!"),
+(28940,1,1,12,0,100,"crusader SAY_CRUSADER2","You'll have to kill me, monster! I will tell you NOTHING!"),
+(28940,1,2,12,0,100,"crusader SAY_CRUSADER3","You hit like a girl. Honestly. Is that the best you can do?"),
+(28940,1,3,12,0,100,"crusader SAY_CRUSADER4","ARGH! You burned my last good tabard!"),
+(28940,1,4,12,0,100,"crusader SAY_CRUSADER5","Argh... The pain... The pain is almost as unbearable as the lashings I received in grammar school when I was but a child."),
+(28940,1,5,12,0,100,"crusader SAY_CRUSADER6","I used to work for Grand Inquisitor Isillien! Your idea of pain is a normal mid-afternoon for me!"),
+(28940,2,0,12,0,100,"break crusader SAY_PERSUADED1","I'll tell you everything! STOP! PLEASE!"),
+(28940,3,0,12,0,100,"break crusader SAY_PERSUADED2","We... We have only been told that the \"Crimson Dawn\" is an awakening. You see, the Light speaks to the High General. It is the Light..."),
+(28940,4,0,12,0,100,"break crusader SAY_PERSUADED3","The Light that guides us. The movement was set in motion before you came... We... We do as we are told. It is what must be done."),
+(28940,5,0,12,0,100,"break crusader SAY_PERSUADED4","I know very little else... The High General chooses who may go and who must stay behind. There's nothing else... You must believe me!"),
+(28940,6,0,12,0,100,"break crusader SAY_PERSUADED6","NO! PLEASE! There is one more thing that I forgot to mention... A courier comes soon... From Hearthglen. It..."),
+-- Scarlet Marksman
+(28610,1,0,12,0,100,"crusader SAY_CRUSADER1","You'll be hanging in the gallows shortly, Scourge fiend!"),
+(28610,1,1,12,0,100,"crusader SAY_CRUSADER2","You'll have to kill me, monster! I will tell you NOTHING!"),
+(28610,1,2,12,0,100,"crusader SAY_CRUSADER3","You hit like a girl. Honestly. Is that the best you can do?"),
+(28610,1,3,12,0,100,"crusader SAY_CRUSADER4","ARGH! You burned my last good tabard!"),
+(28610,1,4,12,0,100,"crusader SAY_CRUSADER5","Argh... The pain... The pain is almost as unbearable as the lashings I received in grammar school when I was but a child."),
+(28610,1,5,12,0,100,"crusader SAY_CRUSADER6","I used to work for Grand Inquisitor Isillien! Your idea of pain is a normal mid-afternoon for me!"),
+(28610,2,0,12,0,100,"break crusader SAY_PERSUADED1","I'll tell you everything! STOP! PLEASE!"),
+(28610,3,0,12,0,100,"break crusader SAY_PERSUADED2","We... We have only been told that the \"Crimson Dawn\" is an awakening. You see, the Light speaks to the High General. It is the Light..."),
+(28610,4,0,12,0,100,"break crusader SAY_PERSUADED3","The Light that guides us. The movement was set in motion before you came... We... We do as we are told. It is what must be done."),
+(28610,5,0,12,0,100,"break crusader SAY_PERSUADED4","I know very little else... The High General chooses who may go and who must stay behind. There's nothing else... You must believe me!"),
+(28610,6,0,12,0,100,"break crusader SAY_PERSUADED6","NO! PLEASE! There is one more thing that I forgot to mention... A courier comes soon... From Hearthglen. It...");
+
+-- koltira deathweaver
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1609570 AND -1609561;
+DELETE FROM `creature_text` WHERE `entry`=28912;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(28912,0,0,12,0,100,"koltira deathweaver SAY_BREAKOUT1","I'll need to get my runeblade and armor... Just need a little more time."),
+(28912,1,0,12,0,100,"koltira deathweaver SAY_BREAKOUT2","I'm still weak, but I think I can get an anti-magic barrier up. Stay inside it or you'll be destroyed by their spells."),
+(28912,2,0,12,0,100,"koltira deathweaver SAY_BREAKOUT3","Maintaining this barrier will require all of my concentration. Kill them all!"),
+(28912,3,0,12,0,100,"koltira deathweaver SAY_BREAKOUT4","There are more coming. Defend yourself! Don't fall out of the anti-magic field! They'll tear you apart without its protection!"),
+(28912,4,0,12,0,100,"koltira deathweaver SAY_BREAKOUT5","I can't keep barrier up much longer... Where is that coward?"),
+(28912,5,0,12,0,100,"koltira deathweaver SAY_BREAKOUT6","The High Inquisitor comes! Be ready, death knight! Do not let him draw you out of the protective bounds of my anti-magic field! Kill him and take his head!"),
+(28912,6,0,12,0,100,"koltira deathweaver SAY_BREAKOUT7","Stay in the anti-magic field! Make them come to you!"),
+(28912,7,0,12,0,100,"koltira deathweaver SAY_BREAKOUT8","The death of the High Inquisitor of New Avalon will not go unnoticed. You need to get out of here at once! Go, before more of them show up. I'll be fine on my own."),
+(28912,8,0,12,0,100,"koltira deathweaver SAY_BREAKOUT9","I'll draw their fire, you make your escape behind me."),
+(28912,9,0,14,0,100,"koltira deathweaver SAY_BREAKOUT10","Your High Inquisitor is nothing more than a pile of meat, Crusaders! There are none beyond the grasp of the Scourge!");
+
+-- scarlet courier
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1609532 AND -1609531;
+DELETE FROM `creature_text` WHERE `entry`=29076;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(29076,0,0,12,0,100,"scarlet courier SAY_TREE1","Hrm, what a strange tree. I must investigate."),
+(29076,1,0,12,0,100,"scarlet courier SAY_TREE2","What's this!? This isn't a tree at all! Guards! Guards!");
+
+-- high inquisitor valroth
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1609586 AND -1609581;
+DELETE FROM `creature_text` WHERE `entry`=29001;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(29001,0,0,14,0,100,"high inquisitor valroth start","The Crusade will purge your kind from this world!"),
+(29001,1,0,14,0,100,"high inquisitor valroth SAY_VALROTH_AGGRO","It seems that I'll need to deal with you myself. The High Inquisitor comes for you, Scourge!"),
+(29001,2,0,12,0,100,"high inquisitor valroth SAY_VALROTH_RAND","You have come seeking deliverance? I have come to deliver!"),
+(29001,2,1,12,0,100,"high inquisitor valroth SAY_VALROTH_RAND","LIGHT PURGE YOU!"),
+(29001,2,2,12,0,100,"high inquisitor valroth SAY_VALROTH_RAND","Coward!"),
+(29001,3,0,16,0,100,"high inquisitor valroth SAY_VALROTH_DEATH","High Inquisitor Valroth's remains fall to the ground.");
+
+-- A special surprise
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1609078 AND -1609025;
+DELETE FROM `creature_text` WHERE `entry` IN (29032,29061,29065,29067,29068,29070,29074,29072,29073,29071,29053);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+-- Malar Bravehorn
+(29032,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29032,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29032,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29032,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29032,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29032,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29032,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29032,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29032,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29032,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29032,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29032,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29032,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29032,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29032,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29032,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29032,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29032,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29032,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29032,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29032,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29032,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29032,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29032,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29032,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29032,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29032,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29032,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29032,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29032,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29032,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29032,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29032,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29032,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29032,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29032,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29032,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29032,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29032,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29032,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29032,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+
+(29032,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29032,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29032,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29032,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29032,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29032,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29032,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29032,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29032,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29032,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29032,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29032,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Ellen Stanbridge
+(29061,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29061,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29061,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29061,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29061,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29061,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29061,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29061,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29061,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29061,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29061,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29061,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29061,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29061,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29061,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29061,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29061,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29061,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29061,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29061,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29061,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29061,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29061,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29061,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29061,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29061,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29061,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29061,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29061,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29061,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29061,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29061,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29061,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29061,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29061,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29061,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29061,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29061,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29061,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29061,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29061,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29061,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29061,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29061,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29061,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29061,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29061,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29061,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29061,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29061,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29061,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29061,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29061,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Yazmina Oakenthorn
+(29065,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29065,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29065,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29065,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29065,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29065,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29065,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29065,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29065,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29065,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29065,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29065,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29065,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29065,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29065,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29065,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29065,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29065,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29065,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29065,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29065,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29065,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29065,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29065,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29065,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29065,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29065,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29065,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29065,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29065,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29065,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29065,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29065,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29065,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29065,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29065,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29065,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29065,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29065,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29065,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29065,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29065,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29065,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29065,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29065,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29065,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29065,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29065,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29065,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29065,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29065,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29065,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29065,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Donovan Pulfrost
+(29067,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29067,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29067,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29067,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29067,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29067,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29067,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29067,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29067,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29067,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29067,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29067,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29067,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29067,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29067,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29067,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29067,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29067,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29067,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29067,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29067,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29067,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29067,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29067,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29067,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29067,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29067,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29067,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29067,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29067,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29067,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29067,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29067,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29067,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29067,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29067,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29067,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29067,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29067,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29067,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29067,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29067,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29067,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29067,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29067,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29067,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29067,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29067,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29067,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29067,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29067,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29067,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29067,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Goby Blastenheimer
+(29068,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29068,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29068,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29068,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29068,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29068,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29068,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29068,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29068,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29068,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29068,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29068,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29068,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29068,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29068,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29068,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29068,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29068,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29068,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29068,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29068,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29068,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29068,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29068,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29068,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29068,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29068,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29068,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29068,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29068,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29068,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29068,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29068,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29068,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29068,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29068,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29068,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29068,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29068,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29068,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29068,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29068,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29068,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29068,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29068,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29068,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29068,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29068,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29068,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29068,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29068,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29068,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29068,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Valok the Righteous
+(29070,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29070,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29070,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29070,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29070,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29070,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29070,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29070,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29070,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29070,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29070,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29070,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29070,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29070,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29070,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29070,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29070,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29070,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29070,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29070,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29070,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29070,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29070,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29070,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29070,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29070,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29070,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29070,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29070,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29070,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29070,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29070,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29070,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29070,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29070,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29070,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29070,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29070,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29070,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29070,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29070,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29070,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29070,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29070,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29070,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29070,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29070,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29070,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29070,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29070,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29070,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29070,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29070,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Lady Eonys
+(29074,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29074,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29074,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29074,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29074,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29074,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29074,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29074,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29074,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29074,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29074,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29074,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29074,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29074,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29074,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29074,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29074,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29074,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29074,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29074,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29074,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29074,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29074,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29074,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29074,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29074,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29074,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29074,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29074,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29074,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29074,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29074,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29074,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29074,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29074,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29074,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29074,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29074,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29074,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29074,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29074,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29074,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29074,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29074,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29074,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29074,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29074,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29074,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29074,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29074,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29074,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29074,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29074,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Kug Ironjaw
+(29072,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29072,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29072,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29072,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29072,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29072,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29072,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29072,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29072,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29072,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29072,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29072,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29072,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29072,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29072,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29072,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29072,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29072,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29072,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29072,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29072,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29072,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29072,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29072,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29072,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29072,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29072,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29072,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29072,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29072,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29072,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29072,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29072,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29072,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29072,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29072,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29072,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29072,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29072,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29072,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29072,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29072,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29072,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29072,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29072,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29072,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29072,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29072,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29072,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29072,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29072,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29072,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29072,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Iggy Darktusk
+(29073,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29073,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29073,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29073,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29073,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29073,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29073,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29073,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29073,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29073,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29073,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29073,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29073,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29073,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29073,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29073,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29073,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29073,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29073,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29073,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29073,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29073,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29073,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29073,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29073,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29073,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29073,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29073,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29073,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29073,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29073,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29073,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29073,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29073,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29073,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29073,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29073,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29073,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29073,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29073,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29073,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29073,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29073,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29073,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29073,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29073,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29073,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29073,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29073,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29073,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29073,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29073,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29073,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Antoine Brack
+(29071,0,0,12,0,100,"special_surprise SAY_EXEC_START_1","Come to finish the job, have you?"),
+(29071,1,0,12,0,100,"special_surprise SAY_EXEC_START_2","Come to finish the job, have ye?"),
+(29071,2,0,12,0,100,"special_surprise SAY_EXEC_START_3","Come ta finish da job, mon?"),
+(29071,3,0,12,0,100,"special_surprise SAY_EXEC_PROG_1","You'll look me in the eyes when..."),
+(29071,4,0,12,0,100,"special_surprise SAY_EXEC_PROG_2","Well this son o' Ironforge would like..."),
+(29071,5,0,12,0,100,"special_surprise SAY_EXEC_PROG_3","Ironic, isn't it? To be killed..."),
+(29071,6,0,12,0,100,"special_surprise SAY_EXEC_PROG_4","If you'd allow me just one..."),
+(29071,7,0,12,0,100,"special_surprise SAY_EXEC_PROG_5","I'd like to stand for..."),
+(29071,8,0,12,0,100,"special_surprise SAY_EXEC_PROG_6","I want to die like an orc..."),
+(29071,9,0,12,0,100,"special_surprise SAY_EXEC_PROG_7","Dis troll gonna stand for da..."),
+(29071,10,0,12,0,100,"special_surprise SAY_EXEC_NAME_1","$N?"),
+(29071,11,0,12,0,100,"special_surprise SAY_EXEC_NAME_2","$N? Mon?"),
+(29071,12,0,12,0,100,"special_surprise SAY_EXEC_RECOG_1","$N, I'd recognize that face anywhere... What... What have they done to you, $N?"),
+(29071,13,0,12,0,100,"special_surprise SAY_EXEC_RECOG_2","$N, I'd recognize those face tentacles anywhere... What... What have they done to you, $N?"),
+(29071,14,0,12,0,100,"special_surprise SAY_EXEC_RECOG_3","$N, I'd recognize that face anywhere... What... What have they done to ye, $Glad:lass;?"),
+(29071,15,0,12,0,100,"special_surprise SAY_EXEC_RECOG_4","$N, I'd recognize that decay anywhere... What... What have they done to you, $N?"),
+(29071,16,0,12,0,100,"special_surprise SAY_EXEC_RECOG_5","$N, I'd recognize those horns anywhere... What have they done to you, $N?"),
+(29071,17,0,12,0,100,"special_surprise SAY_EXEC_RECOG_6","$N, I'd recognize dem tusks anywhere... What... What have dey done ta you, mon?"),
+(29071,18,0,12,0,100,"special_surprise SAY_EXEC_NOREM_1","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a draenei!"),
+(29071,19,0,12,0,100,"special_surprise SAY_EXEC_NOREM_2","Ye don't remember me, do ye? Blasted Scourge... They've tried to drain ye o' everything that made ye a righteous force o' reckoning. Every last ounce o' good... Everything that made you a $Gson:daughter; of Ironforge!"),
+(29071,20,0,12,0,100,"special_surprise SAY_EXEC_NOREM_3","You don't remember me, do you? We were humans once - long, long ago - until Lordaeron fell to the Scourge. Your transformation to a Scourge zombie came shortly after my own. Not long after that, our minds were freed by the Dark Lady."),
+(29071,21,0,12,0,100,"special_surprise SAY_EXEC_NOREM_4","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a pint-sized force of reckoning. Every last ounce of good... Everything that made you a gnome!"),
+(29071,22,0,12,0,100,"special_surprise SAY_EXEC_NOREM_5","You don't remember me, do you? Blasted Scourge...They've tried to drain of everything that made you a righteous force of reckoning. Every last ounce of good...Everything that made you a human!"),
+(29071,23,0,12,0,100,"special_surprise SAY_EXEC_NOREM_6","You don't remember me? When you were a child your mother would leave you in my care while she served at the Temple of the Moon. I held you in my arms and fed you with honey and sheep's milk to calm you until she would return. You were my little angel. Blasted Scourge... What have they done to you, $N?"),
+(29071,24,0,12,0,100,"special_surprise SAY_EXEC_NOREM_7","You don't recognize me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you an orc!"),
+(29071,25,0,12,0,100,"special_surprise SAY_EXEC_NOREM_8","You don't remember me, do you? Blasted Scourge... They've tried to drain you of everything that made you a righteous force of reckoning. Every last ounce of good... Everything that made you a tauren!"),
+(29071,26,0,12,0,100,"special_surprise SAY_EXEC_NOREM_9","You don't remember me, mon? Damn da Scourge! Dey gone ta drain you of everytin dat made ya a mojo masta. Every last ounce of good... Everytin' dat made ya a troll hero, mon!"),
+(29071,27,0,12,0,100,"special_surprise SAY_EXEC_THINK_1","A pact was made, $Gbrother:sister;! We vowed vengeance against the Lich King! For what he had done to us! We battled the Scourge as Forsaken, pushing them back into the plaguelands and freeing Tirisfal! You and I were champions of the Forsaken!"),
+(29071,28,0,12,0,100,"special_surprise SAY_EXEC_THINK_2","You must remember the splendor of life, $Gbrother:sister;. You were a champion of the Kaldorei once! This isn't you!"),
+(29071,29,0,12,0,100,"special_surprise SAY_EXEC_THINK_3","Think, $N. Think back. Try and remember the majestic halls of Silvermoon City, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the sin'dorei once! This isn't you."),
+(29071,30,0,12,0,100,"special_surprise SAY_EXEC_THINK_4","Think, $N. Think back. Try and remember the proud mountains of Argus, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the draenei once! This isn't you."),
+(29071,31,0,12,0,100,"special_surprise SAY_EXEC_THINK_5","Think, $N. Think back. Try and remember the snow capped mountains o' Dun Morogh! Ye were born there, $Glad:lass;. Remember the splendor o' life, $N! Ye were a champion o' the dwarves once! This isn't ye!"),
+(29071,32,0,12,0,100,"special_surprise SAY_EXEC_THINK_6","Think, $N. Think back. Try and remember Gnomeregan before those damned troggs! Remember the feel of an [arclight spanner] $Gbrother:sister;. You were a champion of gnome-kind once! This isn't you."),
+(29071,33,0,12,0,100,"special_surprise SAY_EXEC_THINK_7","Think, $N. Think back. Try and remember the hills and valleys of Elwynn, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the Alliance once! This isn't you."),
+(29071,34,0,12,0,100,"special_surprise SAY_EXEC_THINK_8","Think, $N. Think back. Try and remember Durotar, $Gbrother:sister;! Remember the sacrifices our heroes made so that we could be free of the blood curse. Harken back to the Valley of Trials, where we were reborn into a world without demonic influence. We found the splendor of life, $N. Together! This isn't you. You were a champion of the Horde once!"),
+(29071,35,0,12,0,100,"special_surprise SAY_EXEC_THINK_9","Think, $N. Think back. Try and remember the rolling plains of Mulgore, where you were born. Remember the splendor of life, $Gbrother:sister;. You were a champion of the tauren once! This isn't you."),
+(29071,36,0,12,0,100,"special_surprise SAY_EXEC_THINK_10","TINK $N. Tink back, mon! We be Darkspear, mon! Bruddas and sistas! Remember when we fought the Zalazane and done took he head and freed da Echo Isles? MON! TINK! You was a champion of da Darkspear trolls!"),
+(29071,37,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_1","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29071,38,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_2","Listen to me, $N Ye must fight against the Lich King's control. He's a monster that wants to see this world - our world - in ruin. Don't let him use ye to accomplish his goals. Ye were once a hero and ye can be again. Fight, damn ye! Fight his control!"),
+(29071,39,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_3","Listen to me, $N. You must fight against the Lich King's control. He is a monster that wants to see this world - our world - in ruin. Don't let him use you to accomplish his goals AGAIN. You were once a hero and you can be again. Fight, damn you! Fight his control!"),
+(29071,40,0,12,0,100,"special_surprise SAY_EXEC_LISTEN_4","Listen ta me, $Gbrudda:sista;. You must fight against da Lich King's control. He be a monstar dat want ta see dis world - our world - be ruined. Don't let he use you ta accomplish he goals. You be a hero once and you be a hero again! Fight it, mon! Fight he control!"),
+(29071,42,0,12,0,100,"special_surprise SAY_EXEC_TIME_1","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Silvermoon. This world is worth saving!"),
+(29071,43,0,12,0,100,"special_surprise SAY_EXEC_TIME_2","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Argus. Don't let that happen to this world."),
+(29071,44,0,12,0,100,"special_surprise SAY_EXEC_TIME_3","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both $N... For KHAAAAAAAAZZZ MODAAAAAANNNNNN!!!"),
+(29071,45,0,12,0,100,"special_surprise SAY_EXEC_TIME_4","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Tirisfal! This world is worth saving!"),
+(29071,46,0,12,0,100,"special_surprise SAY_EXEC_TIME_5","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Gnomeregan! This world is worth saving."),
+(29071,47,0,12,0,100,"special_surprise SAY_EXEC_TIME_6","There... There's no more time for me. I'm done for. FInish me off, $N. Do it or they'll kill us both. $N...Remember Elwynn. This world is worth saving."),
+(29071,48,0,12,0,100,"special_surprise SAY_EXEC_TIME_7","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Teldrassil, our beloved home. This world is worth saving."),
+(29071,49,0,12,0,100,"special_surprise SAY_EXEC_TIME_8","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... For the Horde! This world is worth saving."),
+(29071,50,0,12,0,100,"special_surprise SAY_EXEC_TIME_9","There... There's no more time for me. I'm done for. Finish me off, $N. Do it or they'll kill us both. $N... Remember Mulgore. This world is worth saving."),
+(29071,51,0,12,0,100,"special_surprise SAY_EXEC_TIME_10","Der... Der's no more time for me. I be done for. Finish me off $N. Do it or they'll kill us both. $N... Remember Sen'jin Village, mon! Dis world be worth saving!"),
+(29071,52,0,12,0,100,"special_surprise SAY_EXEC_WAITING","Do it, $N! Put me out of my misery!"),
+(29071,53,0,16,0,100,"special_surprise EMOTE_DIES","%s dies from his wounds."),
+-- Plaguefist
+(29053,41,0,14,0,100,"special_surprise SAY_PLAGUEFIST","What's going on in there? What's taking so long, $N?");
+
+-- Highlord Darion Mograine
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1609286 AND -1609201;
+DELETE FROM `creature_text` WHERE `entry` IN (29183,29175,29227,29228,29176,29178,29204,29173);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(29173,0,0,14,14677,100,"Highlord Darion Mograine","Soldiers of the Scourge, stand ready! You will soon be able to unleash your fury upon the Argent Dawn!"),
+(29173,1,0,14,14678,100,"Highlord Darion Mograine","The sky weeps at the devastation of sister earth! Soon, tears of blood will rain down upon us!"),
+(29173,2,0,14,14681,100,"Highlord Darion Mograine","Death knights of Acherus, the death march begins!"),
+(29173,3,0,14,14679,100,"Highlord Darion Mograine","Soldiers of the Scourge, death knights of Acherus, minions of the darkness: hear the call of the Highlord!"),
+(29173,4,0,14,14680,100,"Highlord Darion Mograine","RISE!"),
+(29173,5,0,14,14682,100,"Highlord Darion Mograine","The skies turn red with the blood of the fallen! The Lich King watches over us, minions! Onward! Leave only ashes and misery in your destructive wake!"),
+(29176,6,0,14,0,100,"Korfax, Champion of the Light","Scourge armies approach!"),
+(29178,7,0,14,14487,100,"Lord Maxwell Tyrosus","Stand fast, brothers and sisters! The Light will prevail!"),
+(29173,8,0,12,14683,100,"Highlord Darion Mograine","Kneel before the Highlord!"),
+(29173,8,1,12,14684,100,"Highlord Darion Mograine","You stand no chance!"),
+(29173,8,2,12,14685,100,"Highlord Darion Mograine","The Scourge will destroy this place!"),
+(29173,8,3,12,14686,100,"Highlord Darion Mograine","Your life is forfeit."),
+(29173,8,4,12,14687,100,"Highlord Darion Mograine","Life is meaningless without suffering."),
+(29173,8,5,12,14688,100,"Highlord Darion Mograine","How much longer will your forces hold out?"),
+(29173,8,6,12,14689,100,"Highlord Darion Mograine","The Argent Dawn is finished!"),
+(29173,8,7,12,14690,100,"Highlord Darion Mograine","Spare no one!"),
+(29173,8,8,12,14691,100,"Highlord Darion Mograine","What is this?! My... I cannot strike..."),
+(29173,8,9,14,14692,100,"Highlord Darion Mograine","Obey me, blade!"),
+(29173,8,10,12,14693,100,"Highlord Darion Mograine","You will do as I command! I am in control here!"),
+(29173,8,11,12,14694,100,"Highlord Darion Mograine","I can not... the blade fights me."),
+(29173,8,12,12,14695,100,"Highlord Darion Mograine","What is happening to me?"),
+(29173,8,13,12,14696,100,"Highlord Darion Mograine","Power...wanes..."),
+(29173,8,14,12,14697,100,"Highlord Darion Mograine","Ashbringer defies me..."),
+(29173,8,15,12,14698,100,"Highlord Darion Mograine","Minions, come to my aid!"),
+(29175,24,0,14,14584,100,"Highlord Tirion Fordring","You cannot win, Darion!"),
+(29175,25,0,14,14585,100,"Highlord Tirion Fordring","Bring them before the chapel!"),
+(29173,26,0,12,14699,100,"Highlord Darion Mograine","Stand down, death knights. We have lost... The Light... This place... No hope..."),
+(29175,27,0,12,14586,100,"Highlord Tirion Fordring","Have you learned nothing, boy? You have become all that your father fought against! Like that coward, Arthas, you allowed yourself to be consumed by the darkness...the hate... Feeding upon the misery of those you tortured and killed!"),
+(29175,28,0,12,14587,100,"Highlord Tirion Fordring","Your master knows what lies beneath the chapel. It is why he dares not show his face! He's sent you and your death knights to meet their doom, Darion."),
+(29175,29,0,12,14588,100,"Highlord Tirion Fordring","What you are feeling right now is the anguish of a thousand lost souls! Souls that you and your master brought here! The Light will tear you apart, Darion!"),
+(29173,30,0,12,14700,100,"Highlord Darion Mograine","Save your breath, old man. It might be the last you ever draw."),
+(29227,31,0,12,14493,100,"Highlord Alexandros Mograine","My son! My dear, beautiful boy!"),
+(29173,32,0,12,14701,100,"Highlord Darion Mograine","Father!"),
+(29173,33,0,12,14702,100,"Highlord Darion Mograine","Argh...what...is..."),
+(29228,34,0,12,14703,100,"Darion Mograine","Father, you have returned!"),
+(29228,35,0,12,14704,100,"Darion Mograine","You have been gone a long time, father. I thought..."),
+(29227,36,0,12,14494,100,"Highlord Alexandros Mograine","Nothing could have kept me away from here, Darion. Not from my home and family."),
+(29228,37,0,12,14705,100,"Darion Mograine","Father, I wish to join you in the war against the undead. I want to fight! I can sit idle no longer!"),
+(29227,38,0,12,14495,100,"Highlord Alexandros Mograine","Darion Mograine, you are barely of age to hold a sword, let alone battle the undead hordes of Lordaeron! I couldn't bear losing you. Even the thought..."),
+(29228,39,0,12,14706,100,"Darion Mograine","If I die, father, I would rather it be on my feet, standing in defiance against the undead legions! If I die, father, I die with you!"),
+(29227,40,0,12,14496,100,"Highlord Alexandros Mograine","My son, there will come a day when you will command the Ashbringer and, with it, mete justice across this land. I have no doubt that when that day finally comes, you will bring pride to our people and that Lordaeron will be a better place because of you. But, my son, that day is not today."),
+(29227,41,0,12,14497,100,"Highlord Alexandros Mograine","Do not forget..."),
+(29183,42,0,14,14803,100,"The Lich King","Touching..."),
+(29173,43,0,14,14707,100,"Highlord Darion Mograine","You have've betrayed me! You betrayed us all you monster! Face the might of Mograine!"),
+(29183,44,0,12,14805,100,"The Lich King","He's mine now..."),
+(29183,45,0,12,14804,100,"The Lich King","Pathetic..."),
+(29175,46,0,12,14589,100,"Highlord Tirion Fordring","You're a damned monster, Arthas!"),
+(29183,47,0,12,14806,100,"The Lich King","You were right, Fordring. I did send them in to die. Their lives are meaningless, but yours..."),
+(29183,48,0,12,14807,100,"The Lich King","How simple it was to draw the great Tirion Fordring out of hiding. You've left yourself exposed, paladin. Nothing will save you..."),
+(29178,49,0,14,14488,100,"Lord Maxwell Tyrosus","ATTACK!!!"),
+(29183,50,0,14,14808,100,"The Lich King","APOCALYPSE!"),
+(29173,51,0,12,14708,100,"Highlord Darion Mograine","That day is not today..."),
+(29173,52,0,14,14709,100,"Highlord Darion Mograine","Tirion!"),
+(29175,53,0,14,14591,100,"Highlord Tirion Fordring","ARTHAS!!!!"),
+(29183,54,0,14,14809,100,"The Lich King","What is this?"),
+(29175,55,0,14,14592,100,"Highlord Tirion Fordring","Your end."),
+(29183,56,0,14,14810,100,"The Lich King","Impossible..."),
+(29183,57,0,14,14811,100,"The Lich King","This... isn't... over..."),
+(29183,58,0,14,14812,100,"The Lich King","When next we meet it won't be on holy ground, paladin."),
+(29175,59,0,12,14593,100,"Highlord Tirion Fordring","Rise, Darion, and listen..."),
+(29175,60,0,12,14594,100,"Highlord Tirion Fordring","We have all been witness to a terrible tragedy. The blood of good men has been shed upon this soil! Honorable knights, slain defending their lives - our lives!"),
+(29175,61,0,12,14595,100,"Highlord Tirion Fordring","And while such things can never be forgotten, we must remain vigilant in our cause!"),
+(29175,62,0,12,14596,100,"Highlord Tirion Fordring","The Lich King must answer for what he has done and must not be allowed to cause further destruction to our world."),
+(29175,63,0,12,14597,100,"Highlord Tirion Fordring","I make a promise to you now, brothers and sisters: The Lich King will be defeated! On this day, I call for a union."),
+(29175,64,0,12,14598,100,"Highlord Tirion Fordring","The Argent Dawn and the Order of the Silver Hand will come together as one! We will succeed where so many before us have failed!"),
+(29175,65,0,12,14599,100,"Highlord Tirion Fordring","We will take the fight to Arthas and tear down the walls of Icecrown!"),
+(29175,66,0,14,14600,100,"Highlord Tirion Fordring","The Argent Crusade comes for you, Arthas!"),
+(29173,67,0,12,14710,100,"Highlord Darion Mograine","So too do the Knights of the Ebon Blade... While our kind has no place in your world, we will fight to bring an end to the Lich King. This I vow!"),
+(29173,68,0,16,0,100,"","Thousands of Scourge rise up at the Highlord's command."),
+(29173,69,0,16,0,100,"","The army marches towards Light's Hope Chapel."),
+(29173,70,0,16,0,100,"","After over a hundred Defenders of the Light fall, Highlord Tirion Fordring arrives."),
+(29204,71,0,16,0,100,"Orbaz","%s flee"),
+(29173,72,0,16,0,100,"Highlord Darion Mograine","%s kneels in defeat before Tirion Fordring."),
+(29227,73,0,16,0,100,"Highlord Alexandros Mograine","%s arrives."),
+(29173,74,0,16,0,100,"Highlord Darion Mograine","%s becomes a shade of his past, and walks up to his father."),
+(29228,75,0,16,0,100,"Darion Mograine","%s hugs his father."),
+(29173,76,0,16,0,100,"Alexandros","%s disappears, and the Lich King appears."),
+(29173,77,0,16,0,100,"Highlord Darion Mograine","%s becomes himself again...and is now angry."),
+(29183,78,0,16,0,100,"The Lich King","%s casts a spell on Tirion."),
+(29175,79,0,16,0,100,"Highlord Tirion Fordring","%s gasps for air."),
+(29183,80,0,16,0,100,"The Lich King","%s casts a powerful spell, killing the Defenders and knocking back the others."),
+(29173,81,0,16,0,100,"Highlord Darion Mograine","%s throws the Corrupted Ashbringer to Tirion, who catches it. Tirion becomes awash with Light, and the Ashbringer is cleansed."),
+(29173,82,0,16,0,100,"Highlord Darion Mograine","%s collapses."),
+(29175,83,0,16,0,100,"Highlord Tirion Fordring","%s charges towards the Lich King, Ashbringer in hand and strikes the Lich King."),
+(29183,84,0,16,0,100,"The Lich King","%s disappears. Tirion walks over to where Darion lay"),
+(29173,85,0,16,0,100,"","Light washes over the chapel ? the Light of Dawn is uncovered.");
+
+-- grimstone
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1230008 AND -1230003;
+DELETE FROM `creature_text` WHERE `entry`=10096;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(10096,0,0,14,0,100,"grimstone SCRIPT_TEXT1","You have been sentenced to death for crimes against the Dark Iron nation!"),
+(10096,1,0,14,0,100,"grimstone SCRIPT_TEXT2","The Sons of Thaurissan shall watch you perish in the Ring of the Law!"),
+(10096,2,0,14,0,100,"grimstone SCRIPT_TEXT3","Unleash the fury and let it be done!"),
+(10096,3,0,14,0,100,"grimstone SCRIPT_TEXT4","Haha! I bet you thought you were done!"),
+(10096,4,0,14,0,100,"grimstone SCRIPT_TEXT5","But your real punishment lies ahead."),
+(10096,5,0,14,0,100,"grimstone SCRIPT_TEXT6","Good riddance!");
+
+-- rocknot
+DELETE FROM `script_texts` WHERE `entry`=-1230000;
+DELETE FROM `creature_text` WHERE `entry`=9503;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(9503,0,0,12,0,100,"rocknot SAY_GOT_BEER","Ah, hits the spot!");
+
+-- doctor theolen krastinov
+-- No delete query here, it's a generic script text for frenzy emotes.
+DELETE FROM `creature_text` WHERE `entry`=9028;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(9028,0,0,16,0,100,"grizzle EMOTE_FRENZY_KILL","%s goes into a killing frenzy!");
+
+-- dagran
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1230002 AND -1230001;
+DELETE FROM `creature_text` WHERE `entry`=9019;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(9019,0,0,14,0,100,"dagran SAY_AGGRO","Come to aid the Throne!"),
+(9019,1,0,14,0,100,"dagran SAY_SLAY","Hail to the king, baby!");
+
+-- lilatha
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000146 AND -1000140;
+DELETE FROM `creature_text` WHERE `entry` IN (16295,16220);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(16295,0,0,12,0,100,"lilatha SAY_START","Let's go."),
+(16295,1,0,12,0,100,"lilatha SAY_PROGRESS1","$N, let's use the antechamber to the right."),
+(16295,2,0,12,0,100,"lilatha SAY_PROGRESS2","I can see the light at the end of the tunnel!"),
+(16295,3,0,12,0,100,"lilatha SAY_PROGRESS3","There's Farstrider Enclave now, $C. Not far to go... Look out! Troll ambush!!"),
+(16295,4,0,12,0,100,"lilatha SAY_END1","Thank you for saving my life and bringing me back to safety, $N"),
+(16295,5,0,12,0,100,"lilatha SAY_END2","Captain Helios, I've been rescued from the Amani Catacombs. Reporting for duty, sir!"),
+(16220,0,0,12,0,100,"lilatha CAPTAIN_ANSWER","Liatha, get someone to look at those injuries. Thank you for bringing her back safely.");
+
+-- stillblade
+DELETE FROM `script_texts` WHERE `entry`=-1000193;
+DELETE FROM `creature_text` WHERE `entry`=17768;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(17768,0,0,12,0,100,"stillblade SAY_HEAL","Thank you, dear $C, you just saved my life.");
+
+-- stilwell
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000297 AND -1000293;
+DELETE FROM `creature_text` WHERE `entry`=6182;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(6182,0,0,12,0,100,"stilwell SAY_DS_START","To the house! Stay close to me, no matter what! I have my gun and ammo there!"),
+(6182,1,0,12,0,100,"stilwell SAY_DS_DOWN_1","We showed that one!"),
+(6182,2,0,12,0,100,"stilwell SAY_DS_DOWN_2","One more down!"),
+(6182,3,0,12,0,100,"stilwell SAY_DS_DOWN_3","We've done it! We won!"),
+(6182,4,0,12,0,100,"stilwell SAY_DS_PROLOGUE","Meet me down by the orchard-- I just need to put my gun away.");
+
+-- defias traitor
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000105 AND -1000101;
+DELETE FROM `creature_text` WHERE `entry`=467;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(467,0,0,12,0,100,"defias traitor SAY_START","Follow me, $N. I'll take you to the Defias hideout. But you better protect me or I am as good as dead."),
+(467,1,0,12,0,100,"defias traitor SAY_PROGRESS","The entrance is hidden here in Moonbrook. Keep your eyes peeled for thieves. They want me dead."),
+(467,2,0,12,0,100,"defias traitor SAY_END","You can go tell Stoutmantle this is where the Defias Gang is holed up, $N."),
+(467,3,0,12,0,100,"defias traitor SAY_AGGRO_1","%s coming in fast! Prepare to fight!"),
+(467,3,1,12,0,100,"defias traitor SAY_AGGRO_2","Help!");
+
+-- vexallus
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1585011 AND -1585007;
+DELETE FROM `creature_text` WHERE `entry`=24744;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(24744,0,0,14,12389,100,"vexallus SAY_AGGRO","Drain...life!"),
+(24744,1,0,14,12392,100,"vexallus SAY_ENERGY","Un...con...tainable."),
+(24744,2,0,14,12390,100,"vexallus SAY_OVERLOAD","Un...leash..."),
+(24744,3,0,14,12393,100,"vexallus SAY_KILL","Con...sume."),
+(24744,4,0,41,0,100,"vexallus EMOTE_DISCHARGE_ENERGY","%s discharges pure energy!");
+
+-- kaelthas
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1585029 AND -1585023;
+DELETE FROM `creature_text` WHERE `entry`=24664;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(24664,0,0,14,12413,100,"kaelthas MT SAY_AGGRO","Don't look so smug! I know what you're thinking, but Tempest Keep was merely a set back. Did you honestly believe I would trust the future to some blind, half-night elf mongrel? Oh no, he was merely an instrument, a stepping stone to a much larger plan! It has all led to this, and this time, you will not interfere!"),
+(24664,1,0,14,12415,100,"kaelthas MT SAY_PHOENIX","Vengeance burns!"),
+(24664,2,0,14,12417,100,"kaelthas MT SAY_FLAMESTRIKE","Felomin ashal!"),
+(24664,3,0,14,12418,100,"kaelthas MT SAY_GRAVITY_LAPSE","I'll turn your world... upside... down..."),
+(24664,4,0,14,12419,100,"kaelthas MT SAY_TIRED","Master... grant me strength."),
+(24664,5,0,14,12420,100,"kaelthas MT SAY_RECAST_GRAVITY","Do not... get too comfortable."),
+(24664,6,0,14,12421,100,"kaelthas MT SAY_DEATH","My demise accomplishes nothing! The Master will have you! You will drown in your own blood! This world shall burn! Aaaghh!");
+
+-- selin
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1585006 AND -1585000;
+DELETE FROM `creature_text` WHERE `entry`=24723;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(24723,0,0,14,12378,100,"selin SAY_AGGRO","You only waste my time!"),
+(24723,1,0,14,12381,100,"selin SAY_ENERGY","My hunger knows no bounds!"),
+(24723,2,0,14,12382,100,"selin SAY_EMPOWERED","Yes! I am a god!"),
+(24723,3,0,14,12388,100,"selin SAY_KILL_1","Enough distractions!"),
+(24723,3,1,14,12385,100,"selin SAY_KILL_2","I am invincible!"),
+(24723,4,0,14,12383,100,"selin SAY_DEATH","No! More... I must have more!"),
+(24723,5,0,41,0,100,"selin EMOTE_CRYSTAL","%s begins to channel from the nearby Fel Crystal...");
+
+-- delrissa
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1585022 AND -1585012;
+DELETE FROM `creature_text` WHERE `entry`=24560;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(24560,0,0,14,12395,100,"delrissa SAY_AGGRO","Annihilate them!"),
+(24560,1,0,14,12398,100,"delrissa LackeyDeath1","Oh, the horror."),
+(24560,2,0,14,12400,100,"delrissa LackeyDeath2","Well, aren't you lucky?"),
+(24560,3,0,14,12401,100,"delrissa LackeyDeath3","Now I'm getting annoyed."),
+(24560,4,0,14,12403,100,"delrissa LackeyDeath4","Lackies be damned! I'll finish you myself!"),
+(24560,5,0,14,12405,100,"delrissa PlayerDeath1","I call that a good start."),
+(24560,6,0,14,12407,100,"delrissa PlayerDeath2","I could have sworn there were more of you."),
+(24560,7,0,14,12409,100,"delrissa PlayerDeath3","Not really much of a group, anymore, is it?"),
+(24560,8,0,14,12410,100,"delrissa PlayerDeath4","One is such a lonely number."),
+(24560,9,0,14,12411,100,"delrissa PlayerDeath5","It's been a kick, really."),
+(24560,10,0,14,12397,100,"delrissa SAY_DEATH","Not what I had... planned...");
+
+-- lord gregor lescovar
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000463 AND -1000457;
+DELETE FROM `creature_text` WHERE `entry` IN (1755,7766,1754,1756);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(1756,0,0,12,0,100,"lord gregor lescovar SAY_GUARD_2","Yes, sir!"),
+(1754,0,0,12,0,100,"lord gregor lescovar SAY_LESCOVAR_2","It's time for my meditation, leave me."),
+(1754,1,0,12,0,100,"lord gregor lescovar SAY_LESCOVAR_3","There you are. What news from Westfall?"),
+(1754,2,0,12,0,100,"lord gregor lescovar SAY_LESCOVAR_4","Hmm, it could be that meddle Shaw. I will see what I can discover. Be off with you. I'll contact you again soon."),
+(1755,0,0,12,0,100,"lord gregor lescovar SAY_MARZON_1","VanCleef sends word that the plans are underway. But he's hear rumors about someone snooping about."),
+(1755,1,0,12,0,100,"lord gregor lescovar SAY_MARZON_2","The Defias shall succeed! No meek adventurer will stop us!"),
+(7766,0,0,14,0,100,"lord gregor lescovar SAY_TYRION_2","That's it! That's what you were waiting for! KILL THEM!");
+
+-- tyrion spybot
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1000456 AND -1000450 OR `entry`=-1000499;
+DELETE FROM `creature_text` WHERE `entry` IN (7766,8856,1756,1754);
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(8856,0,0,12,0,100,"tyrion spybot SAY_QUEST_ACCEPT_ATTACK","By your command!"),
+(8856,1,0,12,0,100,"tyrion spybot SAY_SPYBOT_1","Good day to you both. I would speak to Lord Lescovar."),
+(8856,2,0,12,0,100,"tyrion spybot SAY_SPYBOT_2","Thank you. The Light be with you both."),
+(8856,3,0,12,0,100,"tyrion spybot SAY_SPYBOT_3","Milord, your guest has arrived. He awaits your presence."),
+(8856,4,0,12,0,100,"tyrion spybot SAY_SPYBOT_4","I shall use the time wisely, milord. Thank you."),
+(7766,0,0,12,0,100,"tyrion spybot SAY_TYRION_1","Wait here. Spybot will make Lescovar come out as soon as possible. Be ready! Attack only after you've overheard their conversation."),
+(1756,0,0,12,0,100,"tyrion spybot SAY_GUARD_1","Of course. He awaits you in the library."),
+(1754,0,0,12,0,100,"tyrion spybot SAY_LESCOVAR_1","Ah, thank you kindly. I will leave you to the library while I tend to this small matter.");
+
+-- rager
+DELETE FROM `script_texts` WHERE `entry`=-1409002;
+DELETE FROM `creature_text` WHERE `entry`=11988;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(11988,0,0,16,0,100,"core rager EMOTE_LOWHP","%s refuses to die while its master is in trouble.");
+
+-- ragnaros
+DELETE FROM `script_texts` WHERE `entry` BETWEEN -1409018 AND -1409008;
+DELETE FROM `creature_text` WHERE `entry`=11502;
+INSERT INTO `creature_text`(`entry`,`groupid`,`id`,`type`,`sound`,`probability`,`comment`,`text`) VALUES
+(11502,0,0,14,8040,100,"ragnaros SAY_SUMMON_MAJ","Behold Ragnaros, the Firelord! He who was ancient when this world was young! Bow before him, mortals! Bow before your ending!"),
+(11502,1,0,14,8043,100,"ragnaros SAY_ARRIVAL1_RAG","TOO SOON! YOU HAVE AWAKENED ME TOO SOON, EXECUTUS! WHAT IS THE MEANING OF THIS INTRUSION?"),
+(11502,2,0,14,8041,100,"ragnaros SAY_ARRIVAL2_MAJ","These mortal infidels, my lord! They have invaded your sanctum, and seek to steal your secrets!"),
+(11502,3,0,14,8044,100,"ragnaros SAY_ARRIVAL3_RAG","FOOL! YOU ALLOWED THESE INSECTS TO RUN RAMPANT THROUGH THE HALLOWED CORE, AND NOW YOU LEAD THEM TO MY VERY LAIR? YOU HAVE FAILED ME, EXECUTUS! JUSTICE SHALL BE MET, INDEED!"),
+(11502,4,0,14,8045,100,"ragnaros SAY_ARRIVAL5_RAG","NOW FOR YOU, INSECTS. BOLDLY YOU SAUGHT THE POWER OF RAGNAROS NOW YOU SHALL SEE IT FIRST HAND."),
+(11502,5,0,14,8049,100,"ragnaros SAY_REINFORCEMENTS1","COME FORTH, MY SERVANTS! DEFEND YOUR MASTER!"),
+(11502,6,0,14,8050,100,"ragnaros SAY_REINFORCEMENTS2","YOU CANNOT DEFEAT THE LIVING FLAME! COME YOU MINIONS OF FIRE! COME FORTH YOU CREATURES OF HATE! YOUR MASTER CALLS!"),
+(11502,7,0,14,8046,100,"ragnaros SAY_HAND","BY FIRE BE PURGED!"),
+(11502,8,0,14,8047,100,"ragnaros SAY_WRATH","TASTE THE FLAMES OF SULFURON!"),
+(11502,9,0,14,8051,100,"ragnaros SAY_KILL","DIE INSECT!"),
+(11502,10,0,14,8048,100,"ragnaros SAY_MAGMABURST","MY PATIENCE IS DWINDLING! COME, GNATS, TO YOUR DEATH!");
diff --git a/src/server/authserver/CMakeLists.txt b/src/server/authserver/CMakeLists.txt
index 0d94dc47407..581b48f571c 100644
--- a/src/server/authserver/CMakeLists.txt
+++ b/src/server/authserver/CMakeLists.txt
@@ -15,15 +15,9 @@ file(GLOB_RECURSE sources_realms Realms/*.cpp Realms/*.h)
file(GLOB_RECURSE sources_server Server/*.cpp Server/*.h)
file(GLOB sources_localdir *.cpp *.h)
-if( USE_COREPCH )
- include_directories(${CMAKE_CURRENT_BINARY_DIR})
-endif()
-
-if ( USE_COREPCH AND MSVC )
- set(authserver_SRCS
- PrecompiledHeaders/authPCH.cpp
- PrecompiledHeaders/authPCH.h
- )
+if (USE_COREPCH)
+ set(authserver_PCH_HDR PrecompiledHeaders/authPCH.h)
+ set(authserver_PCH_SRC PrecompiledHeaders/authPCH.cpp)
endif()
set(authserver_SRCS
@@ -62,34 +56,23 @@ include_directories(
${OPENSSL_INCLUDE_DIR}
)
-set(authserver_LINK_FLAGS "")
-
add_executable(authserver
${authserver_SRCS}
+ ${authserver_PCH_SRC}
)
add_dependencies(authserver revision.h)
if( NOT WIN32 )
- add_definitions(-D_TRINITY_REALM_CONFIG='"${CONF_DIR}/authserver.conf"')
-endif()
-
-if( UNIX )
- set(authserver_LINK_FLAGS "-pthread ${authserver_LINK_FLAGS}")
-endif()
-
-if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
- set(authserver_LINK_FLAGS "-framework Carbon ${authserver_LINK_FLAGS}")
+ set_target_properties(authserver PROPERTIES
+ COMPILE_DEFINITIONS _TRINITY_REALM_CONFIG="${CONF_DIR}/authserver.conf"
+ )
endif()
-set_target_properties(authserver PROPERTIES LINK_FLAGS "${authserver_LINK_FLAGS}")
-
target_link_libraries(authserver
shared
${MYSQL_LIBRARY}
${OPENSSL_LIBRARIES}
- ${OPENSSL_EXTRA_LIBRARIES}
- ${OSX_LIBS}
)
if( WIN32 )
@@ -108,11 +91,6 @@ elseif( WIN32 )
endif()
# Generate precompiled header
-if( USE_COREPCH )
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_precompiled_header(authserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/authPCH.h)
- elseif(MSVC)
- add_native_precompiled_header(authserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/authPCH)
- endif()
+if (USE_COREPCH)
+ add_cxx_pch(authserver ${authserver_PCH_HDR} ${authserver_PCH_SRC})
endif()
-
diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp
index fc4d4dfcc9b..ed3b3cf4145 100755
--- a/src/server/authserver/Server/AuthSocket.cpp
+++ b/src/server/authserver/Server/AuthSocket.cpp
@@ -280,7 +280,7 @@ void AuthSocket::_SetVSFields(const std::string& rI)
v = g.ModExp(x, N);
// No SQL injection (username escaped)
- const char *v_hex, *s_hex;
+ char *v_hex, *s_hex;
v_hex = v.AsHexStr();
s_hex = s.AsHexStr();
@@ -290,8 +290,8 @@ void AuthSocket::_SetVSFields(const std::string& rI)
stmt->setString(2, _login);
LoginDatabase.Execute(stmt);
- OPENSSL_free((void*)v_hex);
- OPENSSL_free((void*)s_hex);
+ OPENSSL_free(v_hex);
+ OPENSSL_free(s_hex);
}
// Logon Challenge command handler
diff --git a/src/server/authserver/Server/RealmSocket.cpp b/src/server/authserver/Server/RealmSocket.cpp
index c868bb43777..d65431eca44 100755
--- a/src/server/authserver/Server/RealmSocket.cpp
+++ b/src/server/authserver/Server/RealmSocket.cpp
@@ -79,7 +79,7 @@ int RealmSocket::open(void * arg)
return 0;
}
-int RealmSocket::close(int)
+int RealmSocket::close(u_long)
{
shutdown();
diff --git a/src/server/authserver/Server/RealmSocket.h b/src/server/authserver/Server/RealmSocket.h
index c03a0e3ad1e..b093691047c 100755
--- a/src/server/authserver/Server/RealmSocket.h
+++ b/src/server/authserver/Server/RealmSocket.h
@@ -59,7 +59,7 @@ public:
virtual int open(void *);
- virtual int close(int);
+ virtual int close(u_long);
virtual int handle_input(ACE_HANDLE = ACE_INVALID_HANDLE);
virtual int handle_output(ACE_HANDLE = ACE_INVALID_HANDLE);
diff --git a/src/server/collision/CMakeLists.txt b/src/server/collision/CMakeLists.txt
index d54d5f91046..a9605759d46 100644
--- a/src/server/collision/CMakeLists.txt
+++ b/src/server/collision/CMakeLists.txt
@@ -17,12 +17,10 @@ file(GLOB_RECURSE sources_Maps Maps/*.cpp Maps/*.h)
file(GLOB_RECURSE sources_Models Models/*.cpp Models/*.h)
file(GLOB sources_localdir *.cpp *.h)
-if( USE_COREPCH AND MSVC )
- set(collision_STAT_SRCS
- PrecompiledHeaders/collisionPCH.cpp
- PrecompiledHeaders/collisionPCH.h
- )
-endif()
+if (USE_COREPCH)
+ set(collision_STAT_PCH_HDR PrecompiledHeaders/collisionPCH.h)
+ set(collision_STAT_PCH_SRC PrecompiledHeaders/collisionPCH.cpp)
+endif ()
set(collision_STAT_SRCS
${collision_STAT_SRCS}
@@ -33,6 +31,7 @@ set(collision_STAT_SRCS
)
include_directories(
+ ${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/dep/g3dlite/include
${CMAKE_SOURCE_DIR}/dep/recastnavigation/Detour
${CMAKE_SOURCE_DIR}/src/server/shared
@@ -75,20 +74,16 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/Management
${CMAKE_CURRENT_SOURCE_DIR}/Maps
${CMAKE_CURRENT_SOURCE_DIR}/Models
- ${CMAKE_BINARY_DIR}
${ACE_INCLUDE_DIR}
${MYSQL_INCLUDE_DIR}
- ${OPENSSL_INCLUDE_DIR}
)
-add_library(collision STATIC ${collision_STAT_SRCS})
+add_library(collision STATIC
+ ${collision_STAT_SRCS}
+ ${collision_STAT_PCH_SRC}
+)
# Generate precompiled header
-if( USE_COREPCH )
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_precompiled_header(collision ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/collisionPCH.h)
- elseif(MSVC)
- add_native_precompiled_header(collision ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/collisionPCH)
- endif()
-endif()
-
+if (USE_COREPCH)
+ add_cxx_pch(collision ${collision_STAT_PCH_HDR} ${collision_STAT_PCH_SRC})
+endif ()
diff --git a/src/server/collision/Models/GameObjectModel.cpp b/src/server/collision/Models/GameObjectModel.cpp
index d8c39925dc6..ae8465843b5 100644
--- a/src/server/collision/Models/GameObjectModel.cpp
+++ b/src/server/collision/Models/GameObjectModel.cpp
@@ -28,6 +28,7 @@
#include "TemporarySummon.h"
#include "Object.h"
#include "DBCStores.h"
+#include "World.h"
using G3D::Vector3;
using G3D::Ray;
diff --git a/src/server/collision/RegularGrid.h b/src/server/collision/RegularGrid.h
index 00d7b0cd209..5b7d1d74987 100644
--- a/src/server/collision/RegularGrid.h
+++ b/src/server/collision/RegularGrid.h
@@ -86,7 +86,7 @@ public:
static Cell ComputeCell(float fx, float fy)
{
- Cell c = {fx * (1.f/CELL_SIZE) + (CELL_NUMBER/2), fy * (1.f/CELL_SIZE) + (CELL_NUMBER/2)};
+ Cell c = { int(fx * (1.f/CELL_SIZE) + (CELL_NUMBER/2)), int(fy * (1.f/CELL_SIZE) + (CELL_NUMBER/2)) };
return c;
}
diff --git a/src/server/game/AI/CoreAI/CombatAI.cpp b/src/server/game/AI/CoreAI/CombatAI.cpp
index 5ab5f99310a..d9d19c2f009 100755
--- a/src/server/game/AI/CoreAI/CombatAI.cpp
+++ b/src/server/game/AI/CoreAI/CombatAI.cpp
@@ -21,6 +21,7 @@
#include "SpellInfo.h"
#include "Vehicle.h"
#include "ObjectAccessor.h"
+#include "Player.h"
int AggressorAI::Permissible(const Creature* creature)
{
diff --git a/src/server/game/AI/CoreAI/GameObjectAI.h b/src/server/game/AI/CoreAI/GameObjectAI.h
index 6dfea9ac158..4561aa92741 100644
--- a/src/server/game/AI/CoreAI/GameObjectAI.h
+++ b/src/server/game/AI/CoreAI/GameObjectAI.h
@@ -37,12 +37,12 @@ class GameObjectAI
virtual void InitializeAI() { Reset(); }
- virtual void Reset() {};
+ virtual void Reset() { }
// Pass parameters between AI
virtual void DoAction(const int32 /*param = 0 */) {}
- virtual void SetGUID(const uint64& /*guid*/, int32 /*id = 0 */) {}
- virtual uint64 GetGUID(int32 /*id = 0 */) { return 0; }
+ virtual void SetGUID(uint64 /*guid*/, int32 /*id = 0 */) {}
+ virtual uint64 GetGUID(int32 /*id = 0 */) const { return 0; }
static int Permissible(GameObject const* go);
@@ -53,9 +53,9 @@ class GameObjectAI
virtual bool QuestReward(Player* /*player*/, Quest const* /*quest*/, uint32 /*opt*/) { return false; }
virtual uint32 GetDialogStatus(Player* /*player*/) { return 100; }
virtual void Destroyed(Player* /*player*/, uint32 /*eventId*/) {}
- virtual uint32 GetData(uint32 /*id*/) { return 0; }
+ virtual uint32 GetData(uint32 /*id*/) const { return 0; }
virtual void SetData64(uint32 /*id*/, uint64 /*value*/) {}
- virtual uint64 GetData64(uint32 /*id*/) { return 0; }
+ virtual uint64 GetData64(uint32 /*id*/) const { return 0; }
virtual void SetData(uint32 /*id*/, uint32 /*value*/) {}
virtual void OnGameEvent(bool /*start*/, uint16 /*eventId*/) {}
virtual void OnStateChanged(uint32 /*state*/, Unit* /*unit*/) {}
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index 6802c109401..1de5417b820 100755
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -90,8 +90,6 @@ void PetAI::UpdateAI(const uint32 diff)
else
m_updateAlliesTimer -= diff;
- // me->getVictim() can't be used for check in case stop fighting, me->getVictim() clear at Unit death etc.
- // Must also check if victim is alive
if (me->getVictim() && me->getVictim()->isAlive())
{
// is only necessary to stop casting, the pet must not exit combat
@@ -108,7 +106,9 @@ void PetAI::UpdateAI(const uint32 diff)
return;
}
- DoMeleeAttackIfReady();
+ // Check before attacking to prevent pets from leaving stay position
+ if (CanAttack(me->getVictim()))
+ DoMeleeAttackIfReady();
}
else if (owner && me->GetCharmInfo()) //no victim
{
@@ -335,7 +335,8 @@ void PetAI::AttackStart(Unit* target)
if (Unit* owner = me->GetOwner())
owner->SetInCombatWith(target);
- DoAttack(target, true);
+ // Only chase if not commanded to stay or if stay but commanded to attack
+ DoAttack(target, (!me->GetCharmInfo()->HasCommandState(COMMAND_STAY) || me->GetCharmInfo()->IsCommandAttack()));
}
void PetAI::OwnerDamagedBy(Unit* attacker)
@@ -382,31 +383,42 @@ void PetAI::OwnerAttacked(Unit* target)
Unit* PetAI::SelectNextTarget()
{
// Provides next target selection after current target death
+ // Targets are not evaluated here for being valid attack targets
// Passive pets don't do next target selection
if (me->HasReactState(REACT_PASSIVE))
return NULL;
- Unit* target = me->getAttackerForHelper();
+ // Check pet attackers first so we don't drag a bunch of targets to the owner
+ if (Unit* myAttacker = me->getAttackerForHelper())
+ if (!myAttacker->HasBreakableByDamageCrowdControlAura())
+ return myAttacker;
- // Check pet's attackers first to prevent dragging mobs back to owner
- if (target && !target->HasBreakableByDamageCrowdControlAura())
- return target;
-
- if (me->GetCharmerOrOwner())
- {
- // Check owner's attackers if pet didn't have any
- target = me->GetCharmerOrOwner()->getAttackerForHelper();
- if (target && !target->HasBreakableByDamageCrowdControlAura())
- return target;
-
- // 3.0.2 - Pets now start attacking their owners target in defensive mode as soon as the hunter does
- target = me->GetCharmerOrOwner()->getVictim();
- if (target && !target->HasBreakableByDamageCrowdControlAura())
- return target;
- }
+ // Not sure why we wouldn't have an owner but just in case...
+ if (!me->GetCharmerOrOwner())
+ return NULL;
- // Default
+ // Check owner attackers
+ if (Unit* ownerAttacker = me->GetCharmerOrOwner()->getAttackerForHelper())
+ if (!ownerAttacker->HasBreakableByDamageCrowdControlAura())
+ return ownerAttacker;
+
+ // Check owner victim
+ // 3.0.2 - Pets now start attacking their owners victim in defensive mode as soon as the hunter does
+ if (Unit* ownerVictim = me->GetCharmerOrOwner()->getVictim())
+ if (!ownerVictim->HasBreakableByDamageCrowdControlAura())
+ return ownerVictim;
+
+ // Neither pet or owner had a target and aggressive pets can pick any target
+ // Note: Creature::SelectNearestTarget() If no distance is supplied it uses MAX_VISIBILITY_DISTANCE
+ // We also want to lock this to LOS so pet doesn't go running through walls and stuff
+ if (me->HasReactState(REACT_AGGRESSIVE))
+ if (Unit* nearTarget = me->ToCreature()->SelectNearestTarget())
+ if (nearTarget->IsHostileTo(me) && !nearTarget->HasBreakableByDamageCrowdControlAura())
+ if (nearTarget->IsWithinLOS(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()))
+ return nearTarget;
+
+ // Default - no valid targets
return NULL;
}
@@ -518,6 +530,10 @@ bool PetAI::CanAttack(Unit* target)
// Evaluates wether a pet can attack a specific
// target based on CommandState, ReactState and other flags
+ // Can't attack dead targets...
+ if (!target->isAlive())
+ return false;
+
// Returning - check first since pets returning ignore attacks
if (me->GetCharmInfo()->IsReturning())
return false;
@@ -526,19 +542,17 @@ bool PetAI::CanAttack(Unit* target)
if (me->HasReactState(REACT_PASSIVE))
return me->GetCharmInfo()->IsCommandAttack();
- // Pets commanded to attack should not stop their approach if attacked by another creature
- if (me->getVictim() && (me->getVictim() != target))
- return !me->GetCharmInfo()->IsCommandAttack();
-
- // From this point on, pet will always be either aggressive or defensive
+ // Follow
+ if (me->GetCharmInfo()->HasCommandState(COMMAND_FOLLOW))
+ return true;
// Stay - can attack if target is within range or commanded to
if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY))
- return (me->IsWithinMeleeRange(target, MELEE_RANGE) || me->GetCharmInfo()->IsCommandAttack());
+ return (me->IsWithinMeleeRange(target) || me->GetCharmInfo()->IsCommandAttack());
- // Follow
- if (me->GetCharmInfo()->HasCommandState(COMMAND_FOLLOW))
- return true;
+ // Pets commanded to attack should not stop their approach if attacked by another creature
+ if (me->getVictim() && (me->getVictim() != target))
+ return !me->GetCharmInfo()->IsCommandAttack();
// default, though we shouldn't ever get here
return false;
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h
index b07c766ae0b..2eab0e89fcd 100755
--- a/src/server/game/AI/CoreAI/UnitAI.h
+++ b/src/server/game/AI/CoreAI/UnitAI.h
@@ -24,8 +24,9 @@
#include "Containers.h"
#include <list>
-class Unit;
class Player;
+class Quest;
+class Unit;
struct AISpellInfoType;
// Default script texts
@@ -146,10 +147,10 @@ class UnitAI
// Pass parameters between AI
virtual void DoAction(int32 const /*param*/) {}
- virtual uint32 GetData(uint32 /*id = 0*/) { return 0; }
+ virtual uint32 GetData(uint32 /*id = 0*/) const { return 0; }
virtual void SetData(uint32 /*id*/, uint32 /*value*/) {}
virtual void SetGUID(uint64 /*guid*/, int32 /*id*/ = 0) {}
- virtual uint64 GetGUID(int32 /*id*/ = 0) { return 0; }
+ virtual uint64 GetGUID(int32 /*id*/ = 0) const { return 0; }
Unit* SelectTarget(SelectAggroTarget targetType, uint32 position = 0, float dist = 0.0f, bool playerOnly = false, int32 aura = 0);
// Select the targets satifying the predicate.
diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp
index 78a84eb7ae4..84e44109e58 100755
--- a/src/server/game/AI/EventAI/CreatureEventAI.cpp
+++ b/src/server/game/AI/EventAI/CreatureEventAI.cpp
@@ -497,23 +497,6 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
}
break;
}
- case ACTION_T_SUMMON:
- {
- Unit* target = GetTargetByType(action.summon.target, actionInvoker);
-
- Creature* creature = NULL;
-
- if (action.summon.duration)
- creature = me->SummonCreature(action.summon.creatureId, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, action.summon.duration);
- else
- creature = me->SummonCreature(action.summon.creatureId, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
-
- if (!creature)
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: failed to spawn creature %u. Spawn event %d is on creature %d", action.summon.creatureId, eventId, me->GetEntry());
- else if (action.summon.target != TARGET_T_SELF && target)
- creature->AI()->AttackStart(target);
- break;
- }
case ACTION_T_THREAT_SINGLE_PCT:
if (Unit* target = GetTargetByType(action.threat_single_pct.target, actionInvoker))
me->getThreatManager().modifyThreatPercent(target, action.threat_single_pct.percent);
@@ -663,30 +646,6 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
else
sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: ACTION_T_RANDOM_PHASE_RANGE cannot have Param2 < Param1. Event = %d. CreatureEntry = %d", eventId, me->GetEntry());
break;
- case ACTION_T_SUMMON_ID:
- {
- Unit* target = GetTargetByType(action.summon_id.target, actionInvoker);
-
- CreatureEventAI_Summon_Map::const_iterator i = sEventAIMgr->GetCreatureEventAISummonMap().find(action.summon_id.spawnId);
- if (i == sEventAIMgr->GetCreatureEventAISummonMap().end())
- {
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: failed to spawn creature %u. Summon map index %u does not exist. EventID %d. CreatureID %d", action.summon_id.creatureId, action.summon_id.spawnId, eventId, me->GetEntry());
- return;
- }
-
- Creature* creature = NULL;
- if ((*i).second.SpawnTimeSecs)
- creature = me->SummonCreature(action.summon_id.creatureId, (*i).second.position_x, (*i).second.position_y, (*i).second.position_z, (*i).second.orientation, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, (*i).second.SpawnTimeSecs);
- else
- creature = me->SummonCreature(action.summon_id.creatureId, (*i).second.position_x, (*i).second.position_y, (*i).second.position_z, (*i).second.orientation, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0);
-
- if (!creature)
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: failed to spawn creature %u. EventId %d.Creature %d", action.summon_id.creatureId, eventId, me->GetEntry());
- else if (action.summon_id.target != TARGET_T_SELF && target)
- creature->AI()->AttackStart(target);
-
- break;
- }
case ACTION_T_KILLED_MONSTER:
//first attempt player who tapped creature
if (Player* player = me->GetLootRecipient())
@@ -798,7 +757,6 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
}
break;
}
-
case ACTION_T_SET_SHEATH:
{
me->SetSheath(SheathState(action.set_sheath.sheath));
diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
index 2d973d9eb8f..f3df332c1e9 100755
--- a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
+++ b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp
@@ -26,6 +26,7 @@
#include "ConditionMgr.h"
#include "SpellMgr.h"
#include "SpellInfo.h"
+#include "Player.h"
// -------------------
void CreatureEventAIMgr::LoadCreatureEventAI_Texts()
@@ -100,52 +101,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Texts()
sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u additional CreatureEventAI Texts data in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
-void CreatureEventAIMgr::LoadCreatureEventAI_Summons()
-{
- uint32 oldMSTime = getMSTime();
-
- //Drop Existing EventSummon Map
- m_CreatureEventAI_Summon_Map.clear();
-
- // Gather additional data for EventAI
- QueryResult result = WorldDatabase.Query("SELECT id, position_x, position_y, position_z, orientation, spawntimesecs FROM creature_ai_summons");
-
- if (!result)
- {
- sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 CreatureEventAI Summon definitions. DB table `creature_ai_summons` is empty.");
- return;
- }
-
- uint32 count = 0;
-
- do
- {
- Field* fields = result->Fetch();
-
- CreatureEventAI_Summon temp;
-
- uint32 i = fields[0].GetUInt32();
- temp.position_x = fields[1].GetFloat();
- temp.position_y = fields[2].GetFloat();
- temp.position_z = fields[3].GetFloat();
- temp.orientation = fields[4].GetFloat();
- temp.SpawnTimeSecs = fields[5].GetUInt32();
-
- if (!Trinity::IsValidMapCoord(temp.position_x, temp.position_y, temp.position_z, temp.orientation))
- {
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: Summon id %u have wrong coordinates (%f, %f, %f, %f), skipping.", i, temp.position_x, temp.position_y, temp.position_z, temp.orientation);
- continue;
- }
-
- //Add to map
- m_CreatureEventAI_Summon_Map[i] = temp;
- ++count;
- }
- while (result->NextRow());
-
- sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u CreatureEventAI summon definitions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
-}
-
void CreatureEventAIMgr::LoadCreatureEventAI_Scripts()
{
uint32 oldMSTime = getMSTime();
@@ -622,14 +577,6 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts()
// equal case processed at call
}
break;
- case ACTION_T_SUMMON_ID:
- if (!sObjectMgr->GetCreatureTemplate(action.summon_id.creatureId))
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: Event %u Action %u uses non-existant creature entry %u.", i, j+1, action.summon_id.creatureId);
- if (action.summon_id.target >= TARGET_T_END)
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1);
- if (m_CreatureEventAI_Summon_Map.find(action.summon_id.spawnId) == m_CreatureEventAI_Summon_Map.end())
- sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: Event %u Action %u summons missing CreatureEventAI_Summon %u", i, j+1, action.summon_id.spawnId);
- break;
case ACTION_T_KILLED_MONSTER:
if (!sObjectMgr->GetCreatureTemplate(action.killed_monster.creatureId))
sLog->outError(LOG_FILTER_SQL, "CreatureEventAI: Event %u Action %u uses non-existant creature entry %u.", i, j+1, action.killed_monster.creatureId);
diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.h b/src/server/game/AI/EventAI/CreatureEventAIMgr.h
index 93e953681b6..75e24266fb5 100755
--- a/src/server/game/AI/EventAI/CreatureEventAIMgr.h
+++ b/src/server/game/AI/EventAI/CreatureEventAIMgr.h
@@ -32,16 +32,13 @@ class CreatureEventAIMgr
public:
void LoadCreatureEventAI_Texts();
- void LoadCreatureEventAI_Summons();
void LoadCreatureEventAI_Scripts();
CreatureEventAI_Event_Map const& GetCreatureEventAIMap() const { return m_CreatureEventAI_Event_Map; }
- CreatureEventAI_Summon_Map const& GetCreatureEventAISummonMap() const { return m_CreatureEventAI_Summon_Map; }
CreatureEventAI_TextMap const& GetCreatureEventAITextMap() const { return m_CreatureEventAI_TextMap; }
private:
CreatureEventAI_Event_Map m_CreatureEventAI_Event_Map;
- CreatureEventAI_Summon_Map m_CreatureEventAI_Summon_Map;
CreatureEventAI_TextMap m_CreatureEventAI_TextMap;
};
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index f8025a32b7f..67cabc6ccb1 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -77,17 +77,13 @@ void SummonList::RemoveNotExisting()
}
}
-bool SummonList::HasEntry(uint32 entry)
+bool SummonList::HasEntry(uint32 entry) const
{
- for (iterator i = begin(); i != end();)
+ for (const_iterator i = begin(); i != end(); ++i)
{
Creature* summon = Unit::GetCreature(*me, *i);
- if (!summon)
- erase(i++);
- else if (summon->GetEntry() == entry)
+ if (summon && summon->GetEntry() == entry)
return true;
- else
- ++i;
}
return false;
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
index aa46d555b7d..2a221d04404 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
@@ -54,7 +54,7 @@ class SummonList : public std::list<uint64>
void DoZoneInCombat(uint32 entry = 0);
void RemoveNotExisting();
- bool HasEntry(uint32 entry);
+ bool HasEntry(uint32 entry) const;
private:
Creature* me;
};
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
index 9c666e7de32..3f5952a210d 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
@@ -12,6 +12,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "Group.h"
+#include "Player.h"
enum ePoints
{
diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
index ebb734156b4..96209084240 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
@@ -12,6 +12,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedFollowerAI.h"
#include "Group.h"
+#include "Player.h"
const float MAX_PLAYER_DISTANCE = 100.0f;
diff --git a/src/server/game/AI/ScriptedAI/ScriptedGossip.h b/src/server/game/AI/ScriptedAI/ScriptedGossip.h
index 34300ff406c..ae1b5fcc12d 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedGossip.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedGossip.h
@@ -8,7 +8,6 @@
#ifndef SC_GOSSIP_H
#define SC_GOSSIP_H
-#include "Player.h"
#include "GossipDef.h"
#include "QuestDef.h"
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 7dd4053b82f..6aebcbb2d8a 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -698,7 +698,7 @@ void SmartAI::DoAction(const int32 param)
GetScript()->ProcessEventsFor(SMART_EVENT_ACTION_DONE, NULL, param);
}
-uint32 SmartAI::GetData(uint32 /*id*/)
+uint32 SmartAI::GetData(uint32 /*id*/) const
{
return 0;
}
@@ -712,7 +712,7 @@ void SmartAI::SetGUID(uint64 /*guid*/, int32 /*id*/)
{
}
-uint64 SmartAI::GetGUID(int32 /*id*/)
+uint64 SmartAI::GetGUID(int32 /*id*/) const
{
return 0;
}
diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h
index f81d6e86850..6f748f9dee2 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.h
+++ b/src/server/game/AI/SmartScripts/SmartAI.h
@@ -22,7 +22,6 @@
#include "Creature.h"
#include "CreatureAI.h"
#include "Unit.h"
-#include "ConditionMgr.h"
#include "Spell.h"
#include "SmartScript.h"
@@ -151,7 +150,7 @@ class SmartAI : public CreatureAI
void DoAction(const int32 param = 0);
// Used in scripts to share variables
- uint32 GetData(uint32 id = 0);
+ uint32 GetData(uint32 id = 0) const;
// Used in scripts to share variables
void SetData(uint32 id, uint32 value);
@@ -160,7 +159,7 @@ class SmartAI : public CreatureAI
void SetGUID(uint64 guid, int32 id = 0);
// Used in scripts to share variables
- uint64 GetGUID(int32 id = 0);
+ uint64 GetGUID(int32 id = 0) const;
//core related
static int Permissible(const Creature*);
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index a1fb2147cc2..2cd65c42f74 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -15,25 +15,25 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "Cell.h"
+#include "CellImpl.h"
+#include "CreatureTextMgr.h"
#include "DatabaseEnv.h"
-#include "ObjectMgr.h"
-#include "ObjectDefines.h"
+#include "GossipDef.h"
#include "GridDefines.h"
#include "GridNotifiers.h"
-#include "SpellMgr.h"
#include "GridNotifiersImpl.h"
-#include "Cell.h"
-#include "CellImpl.h"
+#include "Group.h"
#include "InstanceScript.h"
+#include "Language.h"
+#include "ObjectDefines.h"
+#include "ObjectMgr.h"
#include "ScriptedCreature.h"
-#include "GossipDef.h"
-#include "ScriptedCreature.h"
-#include "SmartScript.h"
+#include "ScriptedGossip.h"
#include "SmartAI.h"
-#include "Group.h"
+#include "SmartScript.h"
+#include "SpellMgr.h"
#include "Vehicle.h"
-#include "ScriptedGossip.h"
-#include "CreatureTextMgr.h"
class TrinityStringTextBuilder
{
@@ -472,6 +472,13 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
+ // Special handling for vehicles
+ if (IsUnit(*itr))
+ if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit())
+ for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
+ if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger))
+ player->AreaExploredOrEventHappens(e.action.quest.quest);
+
if (IsPlayer(*itr))
{
(*itr)->ToPlayer()->AreaExploredOrEventHappens(e.action.quest.quest);
@@ -746,12 +753,21 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
}
case SMART_ACTION_CALL_GROUPEVENTHAPPENS:
{
+ if (!unit)
+ break;
+
if (IsPlayer(unit) && GetBaseObject())
{
unit->ToPlayer()->GroupEventHappens(e.action.quest.quest, GetBaseObject());
sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_CALL_GROUPEVENTHAPPENS: Player %u, group credit for quest %u",
unit->GetGUIDLow(), e.action.quest.quest);
}
+
+ // Special handling for vehicles
+ if (Vehicle* vehicle = unit->GetVehicleKit())
+ for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
+ if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger))
+ player->GroupEventHappens(e.action.quest.quest, GetBaseObject());
break;
}
case SMART_ACTION_CALL_CASTEDCREATUREORGO:
@@ -878,6 +894,13 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
+ // Special handling for vehicles
+ if (IsUnit(*itr))
+ if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit())
+ for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
+ if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger))
+ player->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, player);
+
if (!IsPlayer(*itr))
continue;
diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h
index 2a0eceb574a..61e22b25d17 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.h
+++ b/src/server/game/AI/SmartScripts/SmartScript.h
@@ -22,7 +22,6 @@
#include "Creature.h"
#include "CreatureAI.h"
#include "Unit.h"
-#include "ConditionMgr.h"
#include "Spell.h"
#include "GridNotifiers.h"
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index 2b67acfd6d0..a82de501ea6 100755
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -22,6 +22,7 @@
#include "Player.h"
#include "Util.h"
#include "SHA1.h"
+#include "WorldSession.h"
namespace AccountMgr
{
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 0ee133edce9..91437ae3bb5 100755
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -16,30 +16,32 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Common.h"
-#include "DBCEnums.h"
-#include "ObjectMgr.h"
-#include "ArenaTeamMgr.h"
-#include "GuildMgr.h"
-#include "World.h"
-#include "WorldPacket.h"
-#include "DatabaseEnv.h"
#include "AchievementMgr.h"
#include "ArenaTeam.h"
+#include "ArenaTeamMgr.h"
+#include "BattlegroundAB.h"
+#include "Battleground.h"
#include "CellImpl.h"
+#include "Common.h"
+#include "DatabaseEnv.h"
+#include "DBCEnums.h"
+#include "DisableMgr.h"
#include "GameEventMgr.h"
#include "GridNotifiersImpl.h"
#include "Guild.h"
+#include "GuildMgr.h"
+#include "InstanceScript.h"
#include "Language.h"
+#include "Map.h"
+#include "MapManager.h"
+#include "ObjectMgr.h"
#include "Player.h"
-#include "SpellMgr.h"
-#include "DisableMgr.h"
+#include "ReputationMgr.h"
#include "ScriptMgr.h"
-#include "MapManager.h"
-#include "Battleground.h"
-#include "BattlegroundAB.h"
-#include "Map.h"
-#include "InstanceScript.h"
+#include "SpellMgr.h"
+#include "World.h"
+#include "WorldPacket.h"
+
namespace Trinity
{
@@ -355,7 +357,7 @@ bool AchievementCriteriaData::Meets(uint32 criteria_id, Player const* source, Un
return false;
return target->getGender() == gender.gender;
case ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT:
- return sScriptMgr->OnCriteriaCheck(this, const_cast<Player*>(source), const_cast<Unit*>(target));
+ return sScriptMgr->OnCriteriaCheck(ScriptId, const_cast<Player*>(source), const_cast<Unit*>(target));
case ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_DIFFICULTY:
if (source->GetMap()->IsRaid())
if (source->GetMap()->Is25ManRaid() != ((difficulty.difficulty & RAID_DIFFICULTY_MASK_25MAN) != 0))
@@ -1617,7 +1619,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK:
case ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE:
case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE:
- case ACHIEVEMENT_CRITERIA_TYPE_TOTAL:
break; // Not implemented yet :(
}
@@ -2405,7 +2406,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
if (!result)
{
- sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 completed achievements. DB table `character_achievement` is empty.");
+ sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 realm first completed achievements. DB table `character_achievement` is empty.");
return;
}
@@ -2432,7 +2433,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements()
m_allCompletedAchievements.insert(achievementId);
} while (result->NextRow());
- sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %lu completed achievements in %u ms", (unsigned long)m_allCompletedAchievements.size(), GetMSTimeDiffToNow(oldMSTime));
+ sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %lu realm first completed achievements in %u ms", (unsigned long)m_allCompletedAchievements.size(), GetMSTimeDiffToNow(oldMSTime));
}
void AchievementGlobalMgr::LoadRewards()
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index b3f5c7bf704..7e3b3cc0f1a 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -587,12 +587,12 @@ bool Battlefield::AddOrSetPlayerToCorrectBfGroup(Player* player)
//--------------------
//-Battlefield Method-
//--------------------
-BfGraveyard* Battlefield::GetGraveyardById(uint32 id)
+BfGraveyard* Battlefield::GetGraveyardById(uint32 id) const
{
if (id < m_GraveyardList.size())
{
- if (m_GraveyardList[id])
- return m_GraveyardList[id];
+ if (BfGraveyard* graveyard = m_GraveyardList.at(id))
+ return graveyard;
else
sLog->outError(LOG_FILTER_BATTLEFIELD, "Battlefield::GetGraveyardById Id:%u not existed", id);
}
diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h
index 0752fa88fc1..4533c666869 100644
--- a/src/server/game/Battlefield/Battlefield.h
+++ b/src/server/game/Battlefield/Battlefield.h
@@ -79,6 +79,8 @@ class BfCapturePoint
public:
BfCapturePoint(Battlefield* bf);
+ virtual ~BfCapturePoint() { }
+
virtual void FillInitialWorldStates(WorldPacket& /*data*/) {}
// Send world state update to all players present
@@ -145,7 +147,7 @@ class BfGraveyard
// Method to changing who controls the graveyard
void GiveControlTo(TeamId team);
- TeamId GetControlTeamId() { return m_ControlTeam; }
+ TeamId GetControlTeamId() const { return m_ControlTeam; }
// Find the nearest graveyard to a player
float GetDistance(Player* player);
@@ -185,7 +187,7 @@ class BfGraveyard
bool HasPlayer(uint64 guid) { return m_ResurrectQueue.find(guid) != m_ResurrectQueue.end(); }
// Get the graveyard's ID.
- uint32 GetGraveyardId() { return m_GraveyardId; }
+ uint32 GetGraveyardId() const { return m_GraveyardId; }
protected:
TeamId m_ControlTeam;
@@ -258,11 +260,11 @@ class Battlefield : public ZoneScript
void HandlePlayerLeaveZone(Player* player, uint32 zone);
// All-purpose data storage 64 bit
- virtual uint64 GetData64(uint32 dataId) { return m_Data64[dataId]; }
+ virtual uint64 GetData64(uint32 dataId) const { return m_Data64[dataId]; }
virtual void SetData64(uint32 dataId, uint64 value) { m_Data64[dataId] = value; }
// All-purpose data storage 32 bit
- virtual uint32 GetData(uint32 dataId) { return m_Data32[dataId]; }
+ virtual uint32 GetData(uint32 dataId) const { return m_Data32[dataId]; }
virtual void SetData(uint32 dataId, uint32 value) { m_Data32[dataId] = value; }
virtual void UpdateData(uint32 index, int32 pad) { m_Data32[index] += pad; }
@@ -290,7 +292,7 @@ class Battlefield : public ZoneScript
virtual void AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid);
void RemovePlayerFromResurrectQueue(uint64 player_guid);
void SetGraveyardNumber(uint32 number) { m_GraveyardList.resize(number); }
- BfGraveyard* GetGraveyardById(uint32 id);
+ BfGraveyard* GetGraveyardById(uint32 id) const;
// Misc methods
Creature* SpawnCreature(uint32 entry, float x, float y, float z, float o, TeamId team);
diff --git a/src/server/game/Battlefield/BattlefieldHandler.cpp b/src/server/game/Battlefield/BattlefieldHandler.cpp
index 1ebeb664fb3..a2d8cec3936 100644
--- a/src/server/game/Battlefield/BattlefieldHandler.cpp
+++ b/src/server/game/Battlefield/BattlefieldHandler.cpp
@@ -25,6 +25,7 @@
#include "Battlefield.h"
#include "BattlefieldMgr.h"
#include "Opcodes.h"
+#include "Player.h"
//This send to player windows for invite player to join the war
//Param1:(BattleId) the BattleId of Bf
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
index 59dc6761583..0ea4266cc22 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
@@ -20,10 +20,14 @@
// TODO: Use spell victory/defeat in wg instead of RewardMarkOfHonor() && RewardHonor
// TODO: Add proper implement of achievement
-#include "ObjectMgr.h"
#include "BattlefieldWG.h"
+#include "ObjectMgr.h"
+#include "Opcodes.h"
+#include "Player.h"
#include "SpellAuras.h"
+#include "TemporarySummon.h"
#include "Vehicle.h"
+#include "WorldSession.h"
enum WGVehicles
{
@@ -453,7 +457,7 @@ void BattlefieldWG::OnStartGrouping()
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_WILL_START);
}
-uint8 BattlefieldWG::GetSpiritGraveyardId(uint32 areaId)
+uint8 BattlefieldWG::GetSpiritGraveyardId(uint32 areaId) const
{
switch (areaId)
{
@@ -801,7 +805,7 @@ void BattlefieldWG::OnPlayerEnterZone(Player* player)
SendInitWorldStatesTo(player);
}
-uint32 BattlefieldWG::GetData(uint32 data)
+uint32 BattlefieldWG::GetData(uint32 data) const
{
switch (data)
{
@@ -812,8 +816,8 @@ uint32 BattlefieldWG::GetData(uint32 data)
case AREA_WESTPARK_WORKSHOP:
case AREA_EASTPARK_WORKSHOP:
// Graveyards and Workshops are controlled by the same team.
- if (m_GraveyardList[GetSpiritGraveyardId(data)])
- return m_GraveyardList[GetSpiritGraveyardId(data)]->GetControlTeamId();
+ if (BfGraveyard const* graveyard = GetGraveyardById(GetSpiritGraveyardId(data)))
+ return graveyard->GetControlTeamId();
}
return Battlefield::GetData(data);
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h
index 49ea25a5e04..bd616167e8b 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.h
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h
@@ -21,11 +21,10 @@
#include "ObjectAccessor.h"
#include "WorldPacket.h"
-#include "World.h"
-#include "Group.h"
-#include "GroupMgr.h"
#include "Battlefield.h"
+#include "World.h"
+class Group;
class BattlefieldWG;
class WintergraspCapturePoint;
@@ -153,10 +152,10 @@ class BfGraveyardWG : public BfGraveyard
public:
BfGraveyardWG(BattlefieldWG* Bf);
- void SetTextId(uint32 textid) { m_GossipTextId = textid; }
- uint32 GetTextId() { return m_GossipTextId; }
+ void SetTextId(int32 textid) { m_GossipTextId = textid; }
+ int32 GetTextId() { return m_GossipTextId; }
protected:
- uint32 m_GossipTextId;
+ int32 m_GossipTextId;
};
enum WGGraveyardId
@@ -227,7 +226,7 @@ struct BfWGCoordGY
float o;
uint32 gyid;
uint8 type;
- uint32 textid; // for gossip menu
+ int32 textid; // for gossip menu
TeamId startcontrol;
};
@@ -412,9 +411,9 @@ class BattlefieldWG : public Battlefield
bool FindAndRemoveVehicleFromList(Unit* vehicle);
// returns the graveyardId in the specified area.
- uint8 GetSpiritGraveyardId(uint32 areaId);
+ uint8 GetSpiritGraveyardId(uint32 areaId) const;
- uint32 GetData(uint32 data);
+ uint32 GetData(uint32 data) const;
protected:
bool m_isRelicInteractible;
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index d763b29bbc1..fd58765b056 100755
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -22,6 +22,9 @@
#include "World.h"
#include "Group.h"
#include "ArenaTeamMgr.h"
+#include "Player.h"
+#include "WorldSession.h"
+#include "Opcodes.h"
ArenaTeam::ArenaTeam()
: TeamId(0), Type(0), TeamName(), CaptainGuid(0), BackgroundColor(0), EmblemStyle(0), EmblemColor(0),
@@ -510,6 +513,23 @@ void ArenaTeam::BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCoun
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_ARENA_TEAM_EVENT");
}
+void ArenaTeam::MassInviteToEvent(WorldSession* session)
+{
+ WorldPacket data(SMSG_CALENDAR_ARENA_TEAM, (Members.size() - 1) * (4 + 8 + 1));
+ data << uint32(Members.size() - 1);
+
+ for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
+ {
+ if (itr->Guid != session->GetPlayer()->GetGUID())
+ {
+ data.appendPackGUID(itr->Guid);
+ data << uint8(0); // unk
+ }
+ }
+
+ session->SendPacket(&data);
+}
+
uint8 ArenaTeam::GetSlotByType(uint32 type)
{
switch (type)
diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h
index 7d2d680cddc..137ac93d3c0 100755
--- a/src/server/game/Battlegrounds/ArenaTeam.h
+++ b/src/server/game/Battlegrounds/ArenaTeam.h
@@ -162,6 +162,8 @@ class ArenaTeam
void BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCount, std::string const& str1, std::string const& str2, std::string const& str3);
void NotifyStatsChanged();
+ void MassInviteToEvent(WorldSession* session);
+
void Roster(WorldSession* session);
void Query(WorldSession* session);
void SendStats(WorldSession* session);
diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
index 55de445345b..8a2dcecd209 100644
--- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp
@@ -22,6 +22,7 @@
#include "DatabaseEnv.h"
#include "Language.h"
#include "ObjectAccessor.h"
+#include "Player.h"
ArenaTeamMgr::ArenaTeamMgr()
{
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 50f8554d5db..40a74a49b69 100755
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -16,24 +16,24 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Player.h"
-#include "ObjectMgr.h"
-#include "ArenaTeamMgr.h"
-#include "World.h"
-#include "WorldPacket.h"
#include "ArenaTeam.h"
+#include "ArenaTeamMgr.h"
#include "Battleground.h"
#include "BattlegroundMgr.h"
#include "Creature.h"
#include "Formulas.h"
#include "GridNotifiersImpl.h"
#include "Group.h"
-#include "Language.h"
#include "MapManager.h"
#include "Object.h"
-#include "SpellAuras.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ReputationMgr.h"
#include "SpellAuraEffects.h"
+#include "SpellAuras.h"
#include "Util.h"
+#include "World.h"
+#include "WorldPacket.h"
namespace Trinity
{
@@ -404,6 +404,17 @@ inline void Battleground::_ProcessRessurect(uint32 diff)
}
}
+uint32 Battleground::GetPrematureWinner()
+{
+ uint32 winner = 0;
+ if (GetPlayersCountByTeam(ALLIANCE) >= GetMinPlayersPerTeam())
+ winner = ALLIANCE;
+ else if (GetPlayersCountByTeam(HORDE) >= GetMinPlayersPerTeam())
+ winner = HORDE;
+
+ return winner;
+}
+
inline void Battleground::_ProcessProgress(uint32 diff)
{
// *********************************************************
@@ -418,13 +429,7 @@ inline void Battleground::_ProcessProgress(uint32 diff)
else if (m_PrematureCountDownTimer < diff)
{
// time's up!
- uint32 winner = 0;
- if (GetPlayersCountByTeam(ALLIANCE) >= GetMinPlayersPerTeam())
- winner = ALLIANCE;
- else if (GetPlayersCountByTeam(HORDE) >= GetMinPlayersPerTeam())
- winner = HORDE;
-
- EndBattleground(winner);
+ EndBattleground(GetPrematureWinner());
m_PrematureCountDown = false;
}
else if (!sBattlegroundMgr->isTesting())
@@ -642,7 +647,12 @@ void Battleground::SendPacketToTeam(uint32 TeamID, WorldPacket* packet, Player*
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
if (Player* player = _GetPlayerForTeam(TeamID, itr, "SendPacketToTeam"))
if (self || sender != player)
- player->GetSession()->SendPacket(packet);
+ {
+ WorldSession* session = player->GetSession();
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "%s %s - SendPacketToTeam %u, Player: %s", GetOpcodeNameForLogging(packet->GetOpcode()).c_str(),
+ session->GetPlayerInfo().c_str(), TeamID, sender ? sender->GetName().c_str() : "null");
+ session->SendPacket(packet);
+ }
}
void Battleground::PlaySoundToAll(uint32 SoundID)
@@ -1064,7 +1074,7 @@ void Battleground::RemovePlayerAtLeave(uint64 guid, bool Transport, bool SendPac
if (Transport)
player->TeleportToBGEntryPoint();
- sLog->outInfo(LOG_FILTER_BATTLEGROUND, "BATTLEGROUND: Removed player %s from Battleground.", player->GetName().c_str());
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Removed player %s from Battleground.", player->GetName().c_str());
}
//battleground object will be deleted next Battleground::Update() call
@@ -1078,9 +1088,6 @@ void Battleground::Reset()
SetStartTime(0);
SetEndTime(0);
SetLastResurrectTime(0);
- SetArenaType(0);
- SetRated(false);
-
m_Events = 0;
if (m_InvitedAlliance > 0 || m_InvitedHorde > 0)
@@ -1177,10 +1184,9 @@ void Battleground::AddPlayer(Player* player)
player->ResetAllPowers();
}
- WorldPacket teammate;
- teammate.Initialize(SMSG_ARENA_OPPONENT_UPDATE, 8);
- teammate << uint64(player->GetGUID());
- SendPacketToTeam(team, &teammate, player, false);
+ WorldPacket data(SMSG_ARENA_OPPONENT_UPDATE, 8);
+ data << uint64(player->GetGUID());
+ SendPacketToTeam(team, &data, player, false);
}
else
{
@@ -1203,9 +1209,6 @@ void Battleground::AddPlayer(Player* player)
// setup BG group membership
PlayerAddedToBGCheckIfBGIsRunning(player);
AddOrSetPlayerToCorrectBgGroup(player, team);
-
- // Log
- sLog->outInfo(LOG_FILTER_BATTLEGROUND, "BATTLEGROUND: Player %s joined the battle.", player->GetName().c_str());
}
// this method adds player to his team's bg group, or sets his correct group if player is already in bg group
diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h
index 6d188d1367a..71dbd097b0a 100755
--- a/src/server/game/Battlegrounds/Battleground.h
+++ b/src/server/game/Battlegrounds/Battleground.h
@@ -168,23 +168,6 @@ struct BattlegroundObjectInfo
uint32 spellid;
};
-// handle the queue types and bg types separately to enable joining queue for different sized arenas at the same time
-enum BattlegroundQueueTypeId
-{
- BATTLEGROUND_QUEUE_NONE = 0,
- BATTLEGROUND_QUEUE_AV = 1,
- BATTLEGROUND_QUEUE_WS = 2,
- BATTLEGROUND_QUEUE_AB = 3,
- BATTLEGROUND_QUEUE_EY = 4,
- BATTLEGROUND_QUEUE_SA = 5,
- BATTLEGROUND_QUEUE_IC = 6,
- BATTLEGROUND_QUEUE_RB = 7,
- BATTLEGROUND_QUEUE_2v2 = 8,
- BATTLEGROUND_QUEUE_3v3 = 9,
- BATTLEGROUND_QUEUE_5v5 = 10,
- MAX_BATTLEGROUND_QUEUE_TYPES
-};
-
enum ScoreType
{
SCORE_KILLING_BLOWS = 1,
@@ -253,27 +236,6 @@ enum BattlegroundStartingEventsIds
};
#define BG_STARTING_EVENT_COUNT 4
-enum GroupJoinBattlegroundResult
-{
- // positive values are indexes in BattlemasterList.dbc
- ERR_GROUP_JOIN_BATTLEGROUND_FAIL = 0, // Your group has joined a battleground queue, but you are not eligible (showed for non existing BattlemasterList.dbc indexes)
- ERR_BATTLEGROUND_NONE = -1, // not show anything
- ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS = -2, // You cannot join the battleground yet because you or one of your party members is flagged as a Deserter.
- ERR_ARENA_TEAM_PARTY_SIZE = -3, // Incorrect party size for this arena.
- ERR_BATTLEGROUND_TOO_MANY_QUEUES = -4, // You can only be queued for 2 battles at once
- ERR_BATTLEGROUND_CANNOT_QUEUE_FOR_RATED = -5, // You cannot queue for a rated match while queued for other battles
- ERR_BATTLEDGROUND_QUEUED_FOR_RATED = -6, // You cannot queue for another battle while queued for a rated arena match
- ERR_BATTLEGROUND_TEAM_LEFT_QUEUE = -7, // Your team has left the arena queue
- ERR_BATTLEGROUND_NOT_IN_BATTLEGROUND = -8, // You can't do that in a battleground.
- ERR_BATTLEGROUND_JOIN_XP_GAIN = -9, // wtf, doesn't exist in client...
- ERR_BATTLEGROUND_JOIN_RANGE_INDEX = -10, // Cannot join the queue unless all members of your party are in the same battleground level range.
- ERR_BATTLEGROUND_JOIN_TIMED_OUT = -11, // %s was unavailable to join the queue. (uint64 guid exist in client cache)
- ERR_BATTLEGROUND_JOIN_FAILED = -12, // Join as a group failed (uint64 guid doesn't exist in client cache)
- ERR_LFG_CANT_USE_BATTLEGROUND = -13, // You cannot queue for a battleground or arena while using the dungeon system.
- ERR_IN_RANDOM_BG = -14, // Can't do that while in a Random Battleground queue.
- ERR_IN_NON_RANDOM_BG = -15 // Can't queue for Random Battleground while in another Battleground queue.
-};
-
struct BattlegroundScore
{
BattlegroundScore() : KillingBlows(0), Deaths(0), HonorableKills(0), BonusHonor(0),
@@ -566,6 +528,8 @@ class Battleground
virtual uint64 GetFlagPickerGUID(int32 /*team*/ = -1) const { return 0; }
virtual void SetDroppedFlagGUID(uint64 /*guid*/, int32 /*team*/ = -1) {}
uint32 GetTeamScore(uint32 TeamID) const;
+
+ virtual uint32 GetPrematureWinner();
protected:
// this method is called, when BG cannot spawn its own spirit guide, or something is wrong, It correctly ends Battleground
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index bfa3b955427..a0f95e1eaef 100755
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -44,6 +44,7 @@
#include "SharedDefines.h"
#include "Formulas.h"
#include "DisableMgr.h"
+#include "Opcodes.h"
/*********************************************************/
/*** BATTLEGROUND MANAGER ***/
@@ -131,7 +132,7 @@ void BattlegroundMgr::Update(uint32 diff)
if (m_NextRatedArenaUpdate < diff)
{
// forced update for rated arenas (scan all, but skipped non rated)
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BattlegroundMgr: UPDATING ARENA QUEUES");
+ sLog->outTrace(LOG_FILTER_ARENAS, "BattlegroundMgr: UPDATING ARENA QUEUES");
for (int qtype = BATTLEGROUND_QUEUE_2v2; qtype <= BATTLEGROUND_QUEUE_5v5; ++qtype)
for (int bracket = BG_BRACKET_ID_FIRST; bracket < MAX_BATTLEGROUND_BRACKETS; ++bracket)
m_BattlegroundQueues[qtype].BattlegroundQueueUpdate(diff,
@@ -699,8 +700,8 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
data.MaxPlayersPerTeam = fields[2].GetUInt16();
data.LevelMin = fields[3].GetUInt8();
data.LevelMax = fields[4].GetUInt8();
- uint8 spawn = fields[9].GetUInt8();
- data.StartMaxDist = float(spawn * spawn);
+ float dist = fields[9].GetFloat();
+ data.StartMaxDist = dist * dist;
data.scriptId = sObjectMgr->GetScriptId(fields[11].GetCString());
data.BattlegroundName = bl->name[sWorld->GetDefaultDbcLocale()];
@@ -904,25 +905,25 @@ BattlegroundQueueTypeId BattlegroundMgr::BGQueueTypeId(BattlegroundTypeId bgType
{
switch (bgTypeId)
{
- case BATTLEGROUND_WS:
- return BATTLEGROUND_QUEUE_WS;
case BATTLEGROUND_AB:
return BATTLEGROUND_QUEUE_AB;
case BATTLEGROUND_AV:
return BATTLEGROUND_QUEUE_AV;
case BATTLEGROUND_EY:
return BATTLEGROUND_QUEUE_EY;
- case BATTLEGROUND_SA:
- return BATTLEGROUND_QUEUE_SA;
case BATTLEGROUND_IC:
return BATTLEGROUND_QUEUE_IC;
case BATTLEGROUND_RB:
return BATTLEGROUND_QUEUE_RB;
+ case BATTLEGROUND_SA:
+ return BATTLEGROUND_QUEUE_SA;
+ case BATTLEGROUND_WS:
+ return BATTLEGROUND_QUEUE_WS;
case BATTLEGROUND_AA:
- case BATTLEGROUND_NA:
- case BATTLEGROUND_RL:
case BATTLEGROUND_BE:
case BATTLEGROUND_DS:
+ case BATTLEGROUND_NA:
+ case BATTLEGROUND_RL:
case BATTLEGROUND_RV:
switch (arenaType)
{
diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp
index 922cccb9186..c610cafa1b1 100755
--- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp
@@ -16,14 +16,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "BattlegroundQueue.h"
#include "ArenaTeam.h"
+#include "ArenaTeamMgr.h"
#include "BattlegroundMgr.h"
+#include "BattlegroundQueue.h"
#include "Chat.h"
-#include "ObjectMgr.h"
-#include "ArenaTeamMgr.h"
-#include "Log.h"
#include "Group.h"
+#include "Log.h"
+#include "Language.h"
+#include "ObjectMgr.h"
+#include "Player.h"
/*********************************************************/
/*** BATTLEGROUND QUEUE SYSTEM ***/
@@ -216,7 +218,7 @@ GroupQueueInfo* BattlegroundQueue::AddGroup(Player* leader, Group* grp, Battlegr
// Show queue status to player only (when joining queue)
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY))
{
- ChatHandler(leader).PSendSysMessage(LANG_BG_QUEUE_ANNOUNCE_SELF, bgName, q_min_level, q_max_level,
+ ChatHandler(leader->GetSession()).PSendSysMessage(LANG_BG_QUEUE_ANNOUNCE_SELF, bgName, q_min_level, q_max_level,
qAlliance, (MinPlayers > qAlliance) ? MinPlayers - qAlliance : (uint32)0, qHorde, (MinPlayers > qHorde) ? MinPlayers - qHorde : (uint32)0);
}
// System message
@@ -475,7 +477,7 @@ bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg,
uint32 queueSlot = player->GetBattlegroundQueueIndex(bgQueueTypeId);
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: invited player %s (%u) to BG instance %u queueindex %u bgtype %u, I can't help it if they don't press the enter battle button.",
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: invited player %s (%u) to BG instance %u queueindex %u bgtype %u",
player->GetName().c_str(), player->GetGUIDLow(), bg->GetInstanceID(), queueSlot, bg->GetTypeID());
// send status packet
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
index 5a887c647b1..47320db27cf 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
@@ -26,6 +26,7 @@
#include "Object.h"
#include "Player.h"
#include "Util.h"
+#include "WorldSession.h"
BattlegroundAB::BattlegroundAB()
{
@@ -548,6 +549,25 @@ void BattlegroundAB::EventPlayerClickedOnFlag(Player* source, GameObject* /*targ
PlaySoundToAll(sound);
}
+uint32 BattlegroundAB::GetPrematureWinner()
+{
+ // How many bases each team owns
+ uint8 ally = 0, horde = 0;
+ for (uint8 i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
+ if (m_Nodes[i] == BG_AB_NODE_STATUS_ALLY_OCCUPIED)
+ ++ally;
+ else if (m_Nodes[i] == BG_AB_NODE_STATUS_HORDE_OCCUPIED)
+ ++horde;
+
+ if (ally > horde)
+ return ALLIANCE;
+ else if (horde > ally)
+ return HORDE;
+
+ // If the values are equal, fall back to the original result (based on number of players on each team)
+ return Battleground::GetPrematureWinner();
+}
+
bool BattlegroundAB::SetupBattleground()
{
for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
index 63c89717c8f..b80e216a216 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
@@ -272,6 +272,8 @@ class BattlegroundAB : public Battleground
/* achievement req. */
bool IsAllNodesConrolledByTeam(uint32 team) const; // overwrited
bool IsTeamScores500Disadvantage(uint32 team) const { return m_TeamScores500Disadvantage[GetTeamIndexByTeamId(team)]; }
+
+ uint32 GetPrematureWinner();
private:
void PostUpdateImpl(uint32 diff);
/* Gameobject spawning/despawning */
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
index a348ec69b8a..918cef4d261 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
@@ -21,11 +21,12 @@
#include "ObjectMgr.h"
#include "WorldPacket.h"
-#include "Miscellaneous/Formulas.h"
+#include "Formulas.h"
#include "GameObject.h"
-#include "Miscellaneous/Language.h"
+#include "Language.h"
#include "Player.h"
#include "SpellAuras.h"
+#include "WorldSession.h"
BattlegroundAV::BattlegroundAV()
{
@@ -1695,3 +1696,16 @@ bool BattlegroundAV::IsAllTowersControlledAndCaptainAlive(uint32 team) const
return false;
}
+
+uint32 BattlegroundAV::GetPrematureWinner()
+{
+ uint32 allianceScore = m_Team_Scores[GetTeamIndexByTeamId(ALLIANCE)];
+ uint32 hordeScore = m_Team_Scores[GetTeamIndexByTeamId(HORDE)];
+
+ if (allianceScore > hordeScore)
+ return ALLIANCE;
+ else if (hordeScore > allianceScore)
+ return HORDE;
+
+ return Battleground::GetPrematureWinner();
+}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
index dab67fe3258..bedd946a78c 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
@@ -1556,7 +1556,7 @@ class BattlegroundAV : public Battleground
/*general stuff*/
void UpdateScore(uint16 team, int16 points);
- void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true);
+ void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true);
/*handlestuff*/ //these are functions which get called from extern
void EventPlayerClickedOnFlag(Player* source, GameObject* target_obj);
@@ -1572,6 +1572,8 @@ class BattlegroundAV : public Battleground
/* achievement req. */
bool IsBothMinesControlledByTeam(uint32 team) const;
bool IsAllTowersControlledAndCaptainAlive(uint32 team) const;
+
+ uint32 GetPrematureWinner();
private:
void PostUpdateImpl(uint32 diff);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
index a64184261c7..02c5167c9ec 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundDS.cpp
@@ -17,11 +17,12 @@
*/
#include "BattlegroundDS.h"
-#include "ObjectAccessor.h"
+#include "Creature.h"
+#include "GameObject.h"
#include "Language.h"
+#include "ObjectAccessor.h"
#include "Player.h"
#include "WorldPacket.h"
-#include "GameObject.h"
BattlegroundDS::BattlegroundDS()
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index e900bc9b1d3..458e86729e7 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -937,3 +937,13 @@ bool BattlegroundEY::IsAllNodesConrolledByTeam(uint32 team) const
return count == EY_POINTS_MAX;
}
+
+uint32 BattlegroundEY::GetPrematureWinner()
+{
+ if (GetTeamScore(TEAM_ALLIANCE) > GetTeamScore(TEAM_HORDE))
+ return ALLIANCE;
+ else if (GetTeamScore(TEAM_HORDE) > GetTeamScore(TEAM_ALLIANCE))
+ return HORDE;
+
+ return Battleground::GetPrematureWinner();
+} \ No newline at end of file
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
index 61ee5b16c1c..2cfd4ca7e0f 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
@@ -369,6 +369,8 @@ class BattlegroundEY : public Battleground
/* achievement req. */
bool IsAllNodesConrolledByTeam(uint32 team) const;
+
+ uint32 GetPrematureWinner();
private:
void PostUpdateImpl(uint32 diff);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
index 90c0dae9f5e..dbffc318c78 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
@@ -25,6 +25,7 @@
#include "ObjectMgr.h"
#include "Vehicle.h"
#include "Transport.h"
+#include "WorldSession.h"
BattlegroundIC::BattlegroundIC()
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
index 1386af13186..9e58a93fd2d 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
@@ -20,6 +20,8 @@
#define __BATTLEGROUNDIC_H
#include "Battleground.h"
+#include "Language.h"
+#include "Object.h"
const uint32 BG_IC_Factions[2] =
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 7dba811c1a1..ab479eeff2d 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -22,6 +22,7 @@
#include "GameObject.h"
#include "ObjectMgr.h"
#include "WorldPacket.h"
+#include "WorldSession.h"
BattlegroundSA::BattlegroundSA()
{
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
index 5fd6e43c029..965045c5293 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
@@ -858,3 +858,12 @@ void BattlegroundWS::FillInitialWorldStates(WorldPacket& data)
data << uint32(BG_WS_FLAG_STATE_ALLIANCE) << uint32(1);
}
+uint32 BattlegroundWS::GetPrematureWinner()
+{
+ if (GetTeamScore(TEAM_ALLIANCE) > GetTeamScore(TEAM_HORDE))
+ return ALLIANCE;
+ else if (GetTeamScore(TEAM_HORDE) > GetTeamScore(TEAM_ALLIANCE))
+ return HORDE;
+
+ return Battleground::GetPrematureWinner();
+} \ No newline at end of file
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
index ec9f4ab1506..5b72de43b32 100755
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
@@ -211,6 +211,8 @@ class BattlegroundWS : public Battleground
void AddPoint(uint32 TeamID, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] += Points; }
void SetTeamPoint(uint32 TeamID, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] = Points; }
void RemovePoint(uint32 TeamID, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] -= Points; }
+
+ uint32 GetPrematureWinner();
private:
uint64 m_FlagKeepers[2]; // 0 - alliance, 1 - horde
uint64 m_DroppedFlagGUID[2];
diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt
index 0f8bec7f0e5..15eb61b8477 100644
--- a/src/server/game/CMakeLists.txt
+++ b/src/server/game/CMakeLists.txt
@@ -8,10 +8,6 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-if( USE_COREPCH )
- include_directories(${CMAKE_CURRENT_BINARY_DIR})
-endif()
-
file(GLOB_RECURSE sources_Accounts Accounts/*.cpp Accounts/*.h)
file(GLOB_RECURSE sources_Achievements Achievements/*.cpp Achievements/*.h)
file(GLOB_RECURSE sources_Addons Addons/*.cpp Addons/*.h)
@@ -55,12 +51,10 @@ file(GLOB_RECURSE sources_World World/*.cpp World/*.h)
# Create game-libary
-if( USE_COREPCH AND MSVC )
- set(game_STAT_SRCS
- PrecompiledHeaders/gamePCH.cpp
- PrecompiledHeaders/gamePCH.h
- )
-endif()
+if (USE_COREPCH)
+ set(game_STAT_PCH_HDR PrecompiledHeaders/gamePCH.h)
+ set(game_STAT_PCH_SRC PrecompiledHeaders/gamePCH.cpp)
+endif ()
set(game_STAT_SRCS
${game_STAT_SRCS}
@@ -207,15 +201,14 @@ include_directories(
${OPENSSL_INCLUDE_DIR}
)
-add_library(game STATIC ${game_STAT_SRCS})
+add_library(game STATIC
+ ${game_STAT_SRCS}
+ ${game_STAT_PCH_SRC}
+)
add_dependencies(game revision.h)
# Generate precompiled header
-if( USE_COREPCH )
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_precompiled_header(game ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/gamePCH.h)
- elseif(MSVC)
- add_native_precompiled_header(game ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/gamePCH)
- endif()
-endif()
+if (USE_COREPCH)
+ add_cxx_pch(game ${game_STAT_PCH_HDR} ${game_STAT_PCH_SRC})
+endif ()
diff --git a/src/server/game/Calendar/Calendar.cpp b/src/server/game/Calendar/Calendar.cpp
deleted file mode 100755
index 139e63614cc..00000000000
--- a/src/server/game/Calendar/Calendar.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * 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
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Player.h"
-#include "Calendar.h"
-
-std::string CalendarInvite::GetDebugString() const
-{
- std::ostringstream data;
-
- data << "CalendarInvite::"
- << " inviteId: " << _inviteId
- << " EventId: " << _eventId
- << " Status: " << uint32(_status)
- << " Invitee: " << _invitee
- << " Sender: " << _senderGUID
- << " Rank: " << uint32(_rank)
- << " Text: " << _text;
-
- return data.str();
-}
-
-void CalendarInvite::Init()
-{
- _eventId = 0;
- _invitee = 0;
- _senderGUID = 0;
- _statusTime = 0;
- _status = CALENDAR_STATUS_INVITED; // default (0)?
- _rank = CALENDAR_RANK_PLAYER;
- _text = "";
-}
-
-std::string CalendarEvent::GetDebugString() const
-{
- std::ostringstream data;
-
- data << "CalendarEvent::"
- << " EventId: " << _eventId
- << " Title: " << _title
- << " Description" << _description
- << " Type: " << uint32(_type)
- << " Max Invites: " << _maxInvites
- << " Creator: " << _creatorGUID
- << " Flags: " << _flags
- << " Guild: " << _guildId
- << " Time: " << _eventTime
- << " Time2: " << _timezoneTime
- << " Repeatable: " << uint32(_repeatable)
- << " DungeonId: " << _dungeonId;
-
- return data.str();
-}
-
-void CalendarEvent::Init()
-{
- _creatorGUID = 0;
- _guildId = 0;
- _type = CALENDAR_TYPE_OTHER;
- _dungeonId = -1;
- _maxInvites = 0;
- _eventTime = 0;
- _flags = 0;
- _repeatable = false;
- _timezoneTime = 0;
- _title = "";
- _description = "";
-
-}
-
-std::string CalendarAction::GetDebugString() const
-{
- std::ostringstream data;
-
- data << "CalendarAction::"
- << " Action: " << GetAction()
- << " Guid: " << GetPlayer()->GetGUID()
- << " Invite Id: " << GetInviteId()
- << " Extra data: " << GetExtraData()
- << " Event: " << Event.GetDebugString()
- << " Invite: " << Invite.GetDebugString();
-
- return data.str();
-}
diff --git a/src/server/game/Calendar/Calendar.h b/src/server/game/Calendar/Calendar.h
deleted file mode 100755
index 273db4c3854..00000000000
--- a/src/server/game/Calendar/Calendar.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * 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
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef TRINITY_CALENDAR_H
-#define TRINITY_CALENDAR_H
-
-#include "Errors.h"
-#include "SharedDefines.h"
-#include <map>
-
-class CalendarInvite
-{
- public:
- CalendarInvite() : _inviteId(0) { Init(); }
- explicit CalendarInvite(uint64 inviteId) : _inviteId(inviteId) { Init(); }
-
- ~CalendarInvite() { }
-
- void SetInviteId(uint64 inviteId) { _inviteId = inviteId; }
- uint64 GetInviteId() const { return _inviteId; }
-
- void SetEventId(uint64 eventId) { _eventId = eventId; }
- uint64 GetEventId() const { return _eventId; }
-
- void SetSenderGUID(uint64 guid) { _senderGUID = guid; }
- uint64 GetSenderGUID() const { return _senderGUID; }
-
- void SetInvitee(uint64 guid) { _invitee = guid; }
- uint64 GetInvitee() const { return _invitee; }
-
- void SetStatusTime(uint32 statusTime) { _statusTime = statusTime; }
- uint32 GetStatusTime() const { return _statusTime; }
-
- void SetText(std::string const& text) { _text = text; }
- std::string const& GetText() const { return _text; }
-
- void SetStatus(CalendarInviteStatus status) { _status = status; }
- CalendarInviteStatus GetStatus() const { return _status; }
-
- void SetRank(CalendarModerationRank rank) { _rank = rank; }
- CalendarModerationRank GetRank() const { return _rank; }
-
- std::string GetDebugString() const;
-
- private:
- void Init();
-
- uint64 _inviteId;
- uint64 _eventId;
- uint64 _invitee;
- uint64 _senderGUID;
- uint32 _statusTime;
- CalendarInviteStatus _status;
- CalendarModerationRank _rank;
- std::string _text;
-};
-
-typedef std::set<uint64> CalendarInviteIdList;
-
-class CalendarEvent
-{
- public:
- CalendarEvent() : _eventId(0) { Init(); }
- explicit CalendarEvent(uint64 eventId) : _eventId(eventId) { Init(); }
-
- ~CalendarEvent() { }
-
- void SetEventId(uint64 eventId) { _eventId = eventId; }
- uint64 GetEventId() const { return _eventId; }
-
- void SetCreatorGUID(uint64 guid) { _creatorGUID = guid; }
- uint64 GetCreatorGUID() const { return _creatorGUID; }
-
- void SetGuildId(uint32 guildId) { _guildId = guildId; }
- uint32 GetGuildId() const { return _guildId; }
-
- void SetTitle(std::string const& title) { _title = title; }
- std::string const& GetTitle() const { return _title; }
-
- void SetDescription(std::string const& description) { _description = description; }
- std::string const& GetDescription() const { return _description; }
-
- void SetType(CalendarEventType type) { _type = type; }
- CalendarEventType GetType() const { return _type; }
-
- void SetMaxInvites(uint32 limit) { _maxInvites = limit; }
- uint32 GetMaxInvites() const { return _maxInvites; }
-
- void SetDungeonId(int32 dungeonId) { _dungeonId = dungeonId; }
- int32 GetDungeonId() const { return _dungeonId; }
-
- void SetTime(uint32 eventTime) { _eventTime = eventTime; }
- uint32 GetTime() const { return _eventTime; }
-
- void SetFlags(uint32 flags) { _flags = flags; }
- uint32 GetFlags() const { return _flags; }
-
- void SetRepeatable(bool repeatable) { _repeatable = repeatable; }
- bool GetRepeatable() const { return _repeatable; }
-
- void SetTimeZoneTime(uint32 timezoneTime) { _timezoneTime = timezoneTime; }
- uint32 GetTimeZoneTime() const { return _timezoneTime; }
-
- void AddInvite(uint64 inviteId)
- {
- if (inviteId)
- _invites.insert(inviteId);
- }
-
- void RemoveInvite(uint64 inviteId) { _invites.erase(inviteId); }
- bool HasInvite(uint64 inviteId) const { return _invites.find(inviteId) != _invites.end(); }
- CalendarInviteIdList const& GetInviteIdList() const { return _invites; }
- void SetInviteIdList(CalendarInviteIdList const& list) { _invites = list; }
- void ClearInviteIdList() { _invites.clear(); }
-
- std::string GetDebugString() const;
-
- private:
- void Init();
-
- uint64 _eventId;
- uint64 _creatorGUID;
- uint32 _guildId;
- CalendarEventType _type;
- int32 _dungeonId;
- uint32 _maxInvites;
- uint32 _eventTime;
- uint32 _flags;
- bool _repeatable;
- uint32 _timezoneTime;
- std::string _title;
- std::string _description;
- CalendarInviteIdList _invites;
-};
-
-typedef std::set<uint64> CalendarEventIdList;
-typedef std::map<uint64, CalendarInviteIdList> CalendarPlayerInviteIdMap;
-typedef std::map<uint64, CalendarEventIdList> CalendarPlayerEventIdMap;
-typedef std::map<uint64, CalendarInvite> CalendarInviteMap;
-typedef std::map<uint64, CalendarEvent> CalendarEventMap;
-
-class Player;
-
-struct CalendarAction
-{
- CalendarAction(): _action(CALENDAR_ACTION_NONE), _player(NULL), _inviteId(0), _data(0)
- {
- }
-
- void SetAction(CalendarActionData data) { _action = data; }
- CalendarActionData GetAction() const { return _action; }
-
- void SetPlayer(Player* player) { ASSERT(player); _player = player; }
- Player* GetPlayer() const { return _player; }
-
- void SetInviteId(uint64 id) { _inviteId = id; }
- uint64 GetInviteId() const { return _inviteId; }
-
- void SetExtraData(uint32 data) { _data = data; }
- uint32 GetExtraData() const { return _data; }
-
- CalendarEvent Event;
- CalendarInvite Invite;
-
- std::string GetDebugString() const;
-
- private:
- CalendarActionData _action;
- Player* _player;
- uint64 _inviteId;
- uint32 _data;
-};
-
-#endif
diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp
index 80de42c0ce2..9f4816d6c7c 100644
--- a/src/server/game/Calendar/CalendarMgr.cpp
+++ b/src/server/game/Calendar/CalendarMgr.cpp
@@ -15,579 +15,621 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/*
-
-DROP TABLE IF EXISTS `calendar_events`;
-CREATE TABLE IF NOT EXISTS `calendar_events` (
- `id` int(11) unsigned NOT NULL DEFAULT '0',
- `creator` int(11) unsigned NOT NULL DEFAULT '0',
- `title` varchar(255) NOT NULL DEFAULT '',
- `description` varchar(255) NOT NULL DEFAULT '',
- `type` tinyint(1) unsigned NOT NULL DEFAULT '4',
- `dungeon` tinyint(3) NOT NULL DEFAULT '-1',
- `eventtime` int(10) unsigned NOT NULL DEFAULT '0',
- `flags` int(10) unsigned NOT NULL DEFAULT '0',
- `repeatable` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `time2` int(10) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-);
-
-DROP TABLE IF EXISTS `calendar_invites`;
-CREATE TABLE IF NOT EXISTS `calendar_invites` (
- `id` int(11) unsigned NOT NULL DEFAULT '0',
- `event` int(11) unsigned NOT NULL DEFAULT '0',
- `invitee` int(11) unsigned NOT NULL DEFAULT '0',
- `sender` int(11) unsigned NOT NULL DEFAULT '0',
- `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `statustime` int(10) unsigned NOT NULL DEFAULT '0',
- `rank` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `text` varchar(255) NOT NULL DEFAULT '',
- PRIMARY KEY (`id`)
-);
-*/
-
#include "CalendarMgr.h"
#include "QueryResult.h"
#include "DatabaseEnv.h"
#include "Log.h"
#include "Player.h"
+#include "GuildMgr.h"
#include "ObjectAccessor.h"
+#include "Opcodes.h"
-CalendarMgr::CalendarMgr() :
- _eventNum(0), _inviteNum(0)
+CalendarInvite::~CalendarInvite()
{
+ sCalendarMgr->FreeInviteId(_inviteId);
}
-CalendarMgr::~CalendarMgr()
+CalendarEvent::~CalendarEvent()
{
+ sCalendarMgr->FreeEventId(_eventId);
}
-uint32 CalendarMgr::GetPlayerNumPending(uint64 guid)
+CalendarMgr::CalendarMgr()
{
- if (!guid)
- return 0;
-
- CalendarPlayerInviteIdMap::const_iterator itr = _playerInvites.find(guid);
- if (itr == _playerInvites.end())
- return 0;
-
- uint32 pendingNum = 0;
- for (CalendarInviteIdList::const_iterator it = itr->second.begin(); it != itr->second.end(); ++it)
- if (CalendarInvite* invite = GetInvite(*it))
- if (invite->GetRank() != CALENDAR_RANK_OWNER
- && invite->GetStatus() != CALENDAR_STATUS_CONFIRMED
- && invite->GetStatus() != CALENDAR_STATUS_8
- && invite->GetStatus() != CALENDAR_STATUS_9) // FIXME Check the proper value
- ++pendingNum;
-
- return pendingNum;
}
-CalendarInviteIdList const& CalendarMgr::GetPlayerInvites(uint64 guid)
+CalendarMgr::~CalendarMgr()
{
- return _playerInvites[guid];
}
-CalendarEventIdList const& CalendarMgr::GetPlayerEvents(uint64 guid)
+void CalendarMgr::LoadFromDB()
{
- return _playerEvents[guid];
-}
+ uint32 count = 0;
+ _maxEventId = 0;
+ _maxInviteId = 0;
-CalendarInvite* CalendarMgr::GetInvite(uint64 inviteId)
-{
- CalendarInviteMap::iterator itr = _invites.find(inviteId);
- if (itr != _invites.end())
- return &(itr->second);
+ // 0 1 2 3 4 5 6 7 8
+ if (QueryResult result = CharacterDatabase.Query("SELECT id, creator, title, description, type, dungeon, eventtime, flags, time2 FROM calendar_events"))
+ do
+ {
+ Field* fields = result->Fetch();
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::GetInvite: [" UI64FMTD "] not found!", inviteId);
- return NULL;
-}
+ uint64 eventId = fields[0].GetUInt64();
+ uint64 creatorGUID = MAKE_NEW_GUID(fields[1].GetUInt32(), 0, HIGHGUID_PLAYER);
+ std::string title = fields[2].GetString();
+ std::string description = fields[3].GetString();
+ CalendarEventType type = CalendarEventType(fields[4].GetUInt8());
+ int32 dungeonId = fields[5].GetInt32();
+ uint32 eventTime = fields[6].GetUInt32();
+ uint32 flags = fields[7].GetUInt32();
+ uint32 timezoneTime = fields[8].GetUInt32();
+ uint32 guildId = 0;
-CalendarEvent* CalendarMgr::GetEvent(uint64 eventId)
-{
- CalendarEventMap::iterator itr = _events.find(eventId);
- if (itr != _events.end())
- return &(itr->second);
+ if (flags & CALENDAR_FLAG_GUILD_EVENT || flags & CALENDAR_FLAG_WITHOUT_INVITES)
+ guildId = Player::GetGuildIdFromDB(creatorGUID);
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::GetEvent: [" UI64FMTD "] not found!", eventId);
- return NULL;
-}
+ CalendarEvent* calendarEvent = new CalendarEvent(eventId, creatorGUID , guildId, type, dungeonId, time_t(eventTime), flags, time_t(timezoneTime), title, description);
+ _events.insert(calendarEvent);
-uint64 CalendarMgr::GetFreeEventId()
-{
- return ++_eventNum;
-}
-uint64 CalendarMgr::GetFreeInviteId()
-{
- return ++_inviteNum;
-}
+ _maxEventId = std::max(_maxEventId, eventId);
-void CalendarMgr::LoadFromDB()
-{
- /*
- uint32 count = 0;
- // 0 1 2 3 4 5 6 7 8 9
- if (QueryResult result = CharacterDatabase.Query("SELECT id, creator, title, description, type, dungeon, eventtime, flags, repeatable, time2 FROM calendar_events"))
- do
- {
- Field * fields = result->Fetch();
-
- uint64 eventId = fields[0].GetUInt64();
- CalendarEvent& calendarEvent = _events[eventId];
-
- calendarEvent.SetEventId(eventId);
- calendarEvent.SetCreatorGUID(fields[1].GetUInt64());
- calendarEvent.SetTitle(fields[2].GetString());
- calendarEvent.SetDescription(fields[3].GetString());
- calendarEvent.SetType(fields[4].GetUInt8());
- calendarEvent.SetDungeonId(fields[5].GetInt32());
- calendarEvent.SetTime(fields[6].GetUInt32());
- calendarEvent.SetFlags(fields[7].GetUInt32());
- calendarEvent.SetRepeatable(fields[8].GetBool());
- calendarEvent.SetTimeZoneTime(fields[9].GetUInt32());
++count;
}
while (result->NextRow());
- sLog->outInfo(LOG_FILTER_CALENDAR, ">> Loaded %u calendar events", count);
+ sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u calendar events", count);
count = 0;
// 0 1 2 3 4 5 6 7
if (QueryResult result = CharacterDatabase.Query("SELECT id, event, invitee, sender, status, statustime, rank, text FROM calendar_invites"))
do
{
- Field * fields = result->Fetch();
+ Field* fields = result->Fetch();
- uint64 inviteId = fields[0].GetUInt64();
- uint64 eventId = fields[1].GetUInt64();
+ uint64 inviteId = fields[0].GetUInt64();
+ uint64 eventId = fields[1].GetUInt64();
+ uint64 invitee = MAKE_NEW_GUID(fields[2].GetUInt32(), 0, HIGHGUID_PLAYER);
+ uint64 senderGUID = MAKE_NEW_GUID(fields[3].GetUInt32(), 0, HIGHGUID_PLAYER);
+ CalendarInviteStatus status = CalendarInviteStatus(fields[4].GetUInt8());
+ uint32 statusTime = fields[5].GetUInt32();
+ CalendarModerationRank rank = CalendarModerationRank(fields[6].GetUInt8());
+ std::string text = fields[7].GetString();
- CalendarInvite& invite = _invites[inviteId];
+ CalendarInvite* invite = new CalendarInvite(inviteId, eventId, invitee, senderGUID, time_t(statusTime), status, rank, text);
+ _invites[eventId].push_back(invite);
- invite.SetEventId(eventId);
- invite.SetInvitee(fields[2].GetUInt64());
- invite.SetSenderGUID(fields[3].GetUInt64());
- invite.SetStatus(fields[4].GetUInt8());
- invite.SetStatusTime(fields[5].GetUInt32());
- invite.SetRank(fields[6].GetUInt8());
- invite.SetText(fields[7].GetString());
+ _maxInviteId = std::max(_maxInviteId, inviteId);
- CalendarEvent& calendarEvent = _events[eventId];
- calendarEvent.AddInvite(inviteId);
+ ++count;
}
while (result->NextRow());
- sLog->outInfo(LOG_FILTER_CALENDAR, ">> Loaded %u calendar Invites", count);
- */
+ sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u calendar invites", count);
+
+ for (uint64 i = 1; i < _maxEventId; ++i)
+ if (!GetEvent(i))
+ _freeEventIds.push_back(i);
+
+ for (uint64 i = 1; i < _maxInviteId; ++i)
+ if (!GetInvite(i))
+ _freeInviteIds.push_back(i);
}
-CalendarEvent* CalendarMgr::CheckPermisions(uint64 eventId, Player* player, uint64 inviteId, CalendarModerationRank minRank)
+void CalendarMgr::AddEvent(CalendarEvent* calendarEvent, CalendarSendEventType sendType)
{
- if (!player)
- return NULL; // CALENDAR_ERROR_INTERNAL
+ _events.insert(calendarEvent);
+ UpdateEvent(calendarEvent);
+ SendCalendarEvent(calendarEvent->GetCreatorGUID(), *calendarEvent, sendType);
+}
- CalendarEvent* calendarEvent = GetEvent(eventId);
- if (!calendarEvent)
- {
- player->GetSession()->SendCalendarCommandResult(CALENDAR_ERROR_EVENT_INVALID);
- return NULL;
- }
+void CalendarMgr::AddInvite(CalendarEvent* calendarEvent, CalendarInvite* invite)
+{
+ if (!calendarEvent->IsGuildAnnouncement())
+ SendCalendarEventInvite(*invite);
- CalendarInvite* invite = GetInvite(inviteId);
- if (!invite)
- {
- player->GetSession()->SendCalendarCommandResult(CALENDAR_ERROR_NO_INVITE);
- return NULL;
- }
+ if (!calendarEvent->IsGuildEvent() || invite->GetInviteeGUID() == calendarEvent->GetCreatorGUID())
+ SendCalendarEventInviteAlert(*calendarEvent, *invite);
- if (!calendarEvent->HasInvite(inviteId))
+ if (!calendarEvent->IsGuildAnnouncement())
{
- player->GetSession()->SendCalendarCommandResult(CALENDAR_ERROR_NOT_INVITED);
- return NULL;
+ _invites[invite->GetEventId()].push_back(invite);
+ UpdateInvite(invite);
}
+}
+
+void CalendarMgr::RemoveEvent(uint64 eventId, uint64 remover)
+{
+ CalendarEvent* calendarEvent = GetEvent(eventId);
- if (invite->GetEventId() != calendarEvent->GetEventId() || invite->GetInvitee() != player->GetGUID())
+ if (!calendarEvent)
{
- player->GetSession()->SendCalendarCommandResult(CALENDAR_ERROR_INTERNAL);
- return NULL;
+ SendCalendarCommandResult(remover, CALENDAR_ERROR_EVENT_INVALID);
+ return;
}
- if (invite->GetRank() < minRank)
+ SendCalendarEventRemovedAlert(*calendarEvent);
+
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ PreparedStatement* stmt;
+ MailDraft mail(calendarEvent->BuildCalendarMailSubject(remover), calendarEvent->BuildCalendarMailBody());
+
+ std::vector<CalendarInvite*>::iterator itr = _invites[eventId].begin();
+ while (itr != _invites[eventId].end())
{
- player->GetSession()->SendCalendarCommandResult(CALENDAR_ERROR_PERMISSIONS);
- return NULL;
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_INVITE);
+ stmt->setUInt64(0, (*itr)->GetInviteId());
+ trans->Append(stmt);
+
+ // guild events only? check invite status here?
+ // When an event is deleted, all invited (accepted/declined? - verify) guildies are notified via in-game mail. (wowwiki)
+ if (remover && (*itr)->GetInviteeGUID() != remover)
+ mail.SendMailTo(trans, MailReceiver((*itr)->GetInviteeGUID()), calendarEvent, MAIL_CHECK_MASK_COPIED);
+
+ delete *itr;
+ _invites[eventId].erase(itr);
}
- return calendarEvent;
+ _invites.erase(eventId);
+
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_EVENT);
+ stmt->setUInt64(0, eventId);
+ trans->Append(stmt);
+ CharacterDatabase.CommitTransaction(trans);
+
+ delete calendarEvent;
+ _events.erase(calendarEvent);
}
-void CalendarMgr::AddAction(CalendarAction const& action)
+void CalendarMgr::RemoveInvite(uint64 inviteId, uint64 eventId, uint64 /*remover*/)
{
- switch (action.GetAction())
- {
- case CALENDAR_ACTION_ADD_EVENT:
- {
- if (AddEvent(action.Event) && AddInvite(action.Invite))
- {
- SendCalendarEventInviteAlert(action.Event, action.Invite);
- SendCalendarEvent(action.Event, CALENDAR_SENDTYPE_ADD);
- }
- break;
- }
- case CALENDAR_ACTION_MODIFY_EVENT:
- {
- uint64 eventId = action.Event.GetEventId();
- CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
- if (!calendarEvent)
- return;
-
- calendarEvent->SetEventId(action.Event.GetEventId());
- calendarEvent->SetType(action.Event.GetType());
- calendarEvent->SetFlags(action.Event.GetFlags());
- calendarEvent->SetTime(action.Event.GetTime());
- calendarEvent->SetTimeZoneTime(action.Event.GetTimeZoneTime());
- calendarEvent->SetRepeatable(action.Event.GetRepeatable());
- calendarEvent->SetDungeonId(action.Event.GetDungeonId());
- calendarEvent->SetTitle(action.Event.GetTitle());
- calendarEvent->SetDescription(action.Event.GetDescription());
- calendarEvent->SetMaxInvites(action.Event.GetMaxInvites());
-
- CalendarInviteIdList const& invites = calendarEvent->GetInviteIdList();
- for (CalendarInviteIdList::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
- if (CalendarInvite* invite = GetInvite(*itr))
- SendCalendarEventUpdateAlert(invite->GetInvitee(), *calendarEvent, CALENDAR_SENDTYPE_ADD);
+ CalendarEvent* calendarEvent = GetEvent(eventId);
- break;
- }
- case CALENDAR_ACTION_COPY_EVENT:
- {
- CalendarEvent* calendarEvent = CheckPermisions(action.Event.GetEventId(), action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_OWNER);
-
- if (!calendarEvent)
- return;
-
- uint64 eventId = GetFreeEventId();
- CalendarEvent newEvent(eventId);
- newEvent.SetType(calendarEvent->GetType());
- newEvent.SetFlags(calendarEvent->GetFlags());
- newEvent.SetTime(action.Event.GetTime());
- newEvent.SetTimeZoneTime(calendarEvent->GetTimeZoneTime());
- newEvent.SetRepeatable(calendarEvent->GetRepeatable());
- newEvent.SetDungeonId(calendarEvent->GetDungeonId());
- newEvent.SetTitle(calendarEvent->GetTitle());
- newEvent.SetDescription(calendarEvent->GetDescription());
- newEvent.SetMaxInvites(calendarEvent->GetMaxInvites());
- newEvent.SetCreatorGUID(calendarEvent->GetCreatorGUID());
- newEvent.SetGuildId(calendarEvent->GetGuildId());
-
- CalendarInviteIdList const invites = calendarEvent->GetInviteIdList();
- for (CalendarInviteIdList::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
- {
- if (CalendarInvite* invite = GetInvite(*itr))
- {
- uint64 inviteId = GetFreeInviteId();
- CalendarInvite newInvite(inviteId);
- newInvite.SetEventId(eventId);
- newInvite.SetSenderGUID(action.GetPlayer()->GetGUID());
- newInvite.SetInvitee(invite->GetInvitee());
- newInvite.SetStatus(invite->GetStatus());
- newInvite.SetStatusTime(invite->GetStatusTime());
- newInvite.SetText(invite->GetText());
- newInvite.SetRank(invite->GetRank());
- if (AddInvite(newInvite))
- {
- SendCalendarEventInviteAlert(newEvent, newInvite);
- newEvent.AddInvite(inviteId);
- }
- }
- }
-
- if (AddEvent(newEvent))
- SendCalendarEvent(newEvent, CALENDAR_SENDTYPE_COPY);
+ if (!calendarEvent)
+ return;
+ std::vector<CalendarInvite*>::iterator itr = _invites[eventId].begin();
+ for (; itr != _invites[eventId].end(); ++itr)
+ if ((*itr)->GetInviteId() == inviteId)
break;
- }
- case CALENDAR_ACTION_REMOVE_EVENT:
- {
- uint64 eventId = action.Event.GetEventId();
- //uint32 flags = action.Event.GetFlags();
- // FIXME - Use of Flags here!
- CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_OWNER);
- if (!calendarEvent)
- return;
+ if (itr == _invites[eventId].end())
+ return;
- RemoveEvent(eventId);
- break;
- }
- case CALENDAR_ACTION_ADD_EVENT_INVITE:
- {
- uint64 eventId = action.Invite.GetEventId();
- CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
- if (!calendarEvent)
- return;
-
- if (AddInvite(action.Invite))
- {
- calendarEvent->AddInvite(action.Invite.GetInviteId());
- SendCalendarEventInvite(action.Invite, (!(calendarEvent->GetFlags() & CALENDAR_FLAG_INVITES_LOCKED) &&
- !action.Invite.GetStatusTime()));
- SendCalendarEventInviteAlert(*calendarEvent, action.Invite);
- }
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CALENDAR_INVITE);
+ stmt->setUInt64(0, (*itr)->GetInviteId());
+ trans->Append(stmt);
+ CharacterDatabase.CommitTransaction(trans);
- break;
- }
- case CALENDAR_ACTION_SIGNUP_TO_EVENT:
- {
- uint64 eventId = action.Event.GetEventId();
- CalendarEvent* calendarEvent = GetEvent(eventId);
- CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
+ if (!calendarEvent->IsGuildEvent())
+ SendCalendarEventInviteRemoveAlert((*itr)->GetInviteeGUID(), *calendarEvent, CALENDAR_STATUS_REMOVED);
- if (!calendarEvent || !(calendarEvent->GetFlags() & CALENDAR_FLAG_GUILD_ONLY)
- || !calendarEvent->GetGuildId() || calendarEvent->GetGuildId() != action.GetExtraData())
- return;
+ SendCalendarEventInviteRemove(*calendarEvent, **itr, calendarEvent->GetFlags());
- CalendarInviteStatus status = action.Invite.GetStatus();
+ // we need to find out how to use CALENDAR_INVITE_REMOVED_MAIL_SUBJECT to force client to display different mail
+ //if ((*itr)->GetInviteeGUID() != remover)
+ // MailDraft(calendarEvent->BuildCalendarMailSubject(remover), calendarEvent->BuildCalendarMailBody())
+ // .SendMailTo(trans, MailReceiver((*itr)->GetInvitee()), calendarEvent, MAIL_CHECK_MASK_COPIED);
- if (status == CALENDAR_STATUS_INVITED)
- status = CALENDAR_STATUS_CONFIRMED;
- else if (status == CALENDAR_STATUS_ACCEPTED)
- status = CALENDAR_STATUS_8;
+ delete *itr;
+ _invites[eventId].erase(itr);
+}
- CalendarInvite newInvite(GetFreeInviteId());
- newInvite.SetStatus(status);
- newInvite.SetStatusTime(uint32(time(NULL)));
- newInvite.SetEventId(eventId);
- newInvite.SetInvitee(action.GetPlayer()->GetGUID());
- newInvite.SetSenderGUID(action.GetPlayer()->GetGUID());
+void CalendarMgr::UpdateEvent(CalendarEvent* calendarEvent)
+{
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CALENDAR_EVENT);
+ stmt->setUInt64(0, calendarEvent->GetEventId());
+ stmt->setUInt32(1, GUID_LOPART(calendarEvent->GetCreatorGUID()));
+ stmt->setString(2, calendarEvent->GetTitle());
+ stmt->setString(3, calendarEvent->GetDescription());
+ stmt->setUInt8(4, calendarEvent->GetType());
+ stmt->setInt32(5, calendarEvent->GetDungeonId());
+ stmt->setUInt32(6, uint32(calendarEvent->GetEventTime()));
+ stmt->setUInt32(7, calendarEvent->GetFlags());
+ stmt->setUInt32(8, calendarEvent->GetTimeZoneTime()); // correct?
+ trans->Append(stmt);
+ CharacterDatabase.CommitTransaction(trans);
+}
- if (AddInvite(newInvite))
- SendCalendarEventInvite(newInvite, false);
+void CalendarMgr::UpdateInvite(CalendarInvite* invite)
+{
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CALENDAR_INVITE);
+ stmt->setUInt64(0, invite->GetInviteId());
+ stmt->setUInt64(1, invite->GetEventId());
+ stmt->setUInt32(2, GUID_LOPART(invite->GetInviteeGUID()));
+ stmt->setUInt32(3, GUID_LOPART(invite->GetSenderGUID()));
+ stmt->setUInt8(4, invite->GetStatus());
+ stmt->setUInt32(5, uint32(invite->GetStatusTime()));
+ stmt->setUInt8(6, invite->GetRank());
+ stmt->setString(7, invite->GetText());
+ trans->Append(stmt);
+ CharacterDatabase.CommitTransaction(trans);
+}
- break;
- }
- case CALENDAR_ACTION_MODIFY_EVENT_INVITE:
- {
- uint64 eventId = action.Invite.GetEventId();
- uint64 inviteId = action.Invite.GetInviteId();
+void CalendarMgr::RemoveAllPlayerEventsAndInvites(uint64 guid)
+{
+ for (CalendarEventStore::const_iterator itr = _events.begin(); itr != _events.end(); ++itr)
+ if ((*itr)->GetCreatorGUID() == guid)
+ RemoveEvent((*itr)->GetEventId(), 0); // don't send mail if removing a character
- CalendarEvent* calendarEvent = NULL;
- if (action.GetInviteId() != action.Invite.GetInviteId())
- calendarEvent = CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
- else
- calendarEvent = GetEvent(eventId);
+ std::vector<CalendarInvite*> playerInvites = GetPlayerInvites(guid);
+ for (std::vector<CalendarInvite*>::const_iterator itr = playerInvites.begin(); itr != playerInvites.end(); ++itr)
+ RemoveInvite((*itr)->GetInviteId(), (*itr)->GetEventId(), guid);
+}
- CalendarInvite* invite = GetInvite(inviteId);
+void CalendarMgr::RemovePlayerGuildEventsAndSignups(uint64 guid, uint32 guildId)
+{
+ for (CalendarEventStore::const_iterator itr = _events.begin(); itr != _events.end(); ++itr)
+ if ((*itr)->GetCreatorGUID() == guid && ((*itr)->IsGuildEvent() || (*itr)->IsGuildAnnouncement()))
+ RemoveEvent((*itr)->GetEventId(), guid);
+
+ std::vector<CalendarInvite*> playerInvites = GetPlayerInvites(guid);
+ for (std::vector<CalendarInvite*>::const_iterator itr = playerInvites.begin(); itr != playerInvites.end(); ++itr)
+ if (CalendarEvent* calendarEvent = GetEvent((*itr)->GetEventId()))
+ if (calendarEvent->IsGuildEvent() && calendarEvent->GetGuildId() == guildId)
+ RemoveInvite((*itr)->GetInviteId(), (*itr)->GetEventId(), guid);
+}
- if (!calendarEvent || !invite || !calendarEvent->HasInvite(inviteId))
- return;
+CalendarEvent* CalendarMgr::GetEvent(uint64 eventId)
+{
+ for (CalendarEventStore::const_iterator itr = _events.begin(); itr != _events.end(); ++itr)
+ if ((*itr)->GetEventId() == eventId)
+ return *itr;
- invite->SetStatus(action.Invite.GetStatus());
- SendCalendarEventStatus(invite->GetSenderGUID(), *calendarEvent, *invite);
- break;
- }
- case CALENDAR_ACTION_MODIFY_MODERATOR_EVENT_INVITE:
- {
- uint64 eventId = action.Invite.GetEventId();
- uint64 inviteId = action.Invite.GetInviteId();
+ sLog->outDebug(LOG_FILTER_CALENDAR, "CalendarMgr::GetEvent: [" UI64FMTD "] not found!", eventId);
+ return NULL;
+}
- CalendarEvent* calendarEvent = NULL;
- if (action.GetInviteId() != action.Invite.GetInviteId())
- calendarEvent = CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_OWNER);
- else
- calendarEvent = GetEvent(eventId);
+CalendarInvite* CalendarMgr::GetInvite(uint64 inviteId)
+{
+ for (CalendarInviteStore::const_iterator itr = _invites.begin(); itr != _invites.end(); ++itr)
+ for (std::vector<CalendarInvite*>::const_iterator itr2 = itr->second.begin(); itr2 != itr->second.end(); ++itr2)
+ if ((*itr2)->GetInviteId() == inviteId)
+ return *itr2;
- CalendarInvite* invite = GetInvite(inviteId);
+ sLog->outDebug(LOG_FILTER_CALENDAR, "CalendarMgr::GetInvite: [" UI64FMTD "] not found!", inviteId);
+ return NULL;
+}
- if (!calendarEvent || !invite || !calendarEvent->HasInvite(inviteId))
- return;
+void CalendarMgr::FreeEventId(uint64 id)
+{
+ if (id == _maxEventId)
+ --_maxEventId;
+ else
+ _freeEventIds.push_back(id);
+}
- invite->SetStatus(action.Invite.GetStatus());
- SendCalendarEventModeratorStatusAlert(*invite);
- break;
- }
- case CALENDAR_ACTION_REMOVE_EVENT_INVITE:
- {
- uint64 eventId = action.Invite.GetEventId();
- uint64 inviteId = action.Invite.GetInviteId();
- CalendarEvent* calendarEvent = CheckPermisions(eventId, action.GetPlayer(), action.GetInviteId(), CALENDAR_RANK_MODERATOR);
- if (!calendarEvent)
- return;
-
- // already checked in CheckPermisions
- CalendarInvite* invite = GetInvite(inviteId);
- if (!invite)
- return;
-
- if (calendarEvent->GetCreatorGUID() == invite->GetInvitee())
- {
- action.GetPlayer()->GetSession()->SendCalendarCommandResult(CALENDAR_ERROR_DELETE_CREATOR_FAILED);
- return;
- }
-
- if (uint64 invitee = RemoveInvite(inviteId))
- {
- SendCalendarEventInviteRemoveAlert(invitee, *calendarEvent, CALENDAR_STATUS_9);
- SendCalendarEventInviteRemove(action.GetPlayer()->GetGUID(), action.Invite, calendarEvent->GetFlags());
- }
- break;
- }
- default:
- break;
+uint64 CalendarMgr::GetFreeEventId()
+{
+ if (_freeEventIds.empty())
+ return ++_maxEventId;
+ else
+ {
+ uint64 eventId = _freeEventIds.front();
+ _freeEventIds.pop_front();
+ return eventId;
}
+}
+void CalendarMgr::FreeInviteId(uint64 id)
+{
+ if (id == _maxInviteId)
+ --_maxInviteId;
+ else
+ _freeInviteIds.push_back(id);
}
-bool CalendarMgr::AddEvent(CalendarEvent const& newEvent)
+uint64 CalendarMgr::GetFreeInviteId()
{
- uint64 eventId = newEvent.GetEventId();
- if (_events.find(eventId) != _events.end())
+ if (_freeInviteIds.empty())
+ return ++_maxInviteId;
+ else
{
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::AddEvent: Event [" UI64FMTD "] exists", eventId);
- return false;
+ uint64 inviteId = _freeInviteIds.front();
+ _freeInviteIds.pop_front();
+ return inviteId;
}
+}
+
+CalendarEventStore CalendarMgr::GetPlayerEvents(uint64 guid)
+{
+ CalendarEventStore events;
+
+ for (CalendarInviteStore::const_iterator itr = _invites.begin(); itr != _invites.end(); ++itr)
+ for (std::vector<CalendarInvite*>::const_iterator itr2 = itr->second.begin(); itr2 != itr->second.end(); ++itr2)
+ if ((*itr2)->GetInviteeGUID() == guid)
+ events.insert(GetEvent(itr->first));
- _events[eventId] = newEvent;
- return true;
+ if (Player* player = ObjectAccessor::FindPlayer(guid))
+ for (CalendarEventStore::const_iterator itr = _events.begin(); itr != _events.end(); ++itr)
+ if ((*itr)->GetGuildId() == player->GetGuildId())
+ events.insert(*itr);
+
+ return events;
}
-bool CalendarMgr::RemoveEvent(uint64 eventId)
+std::vector<CalendarInvite*> CalendarMgr::GetEventInvites(uint64 eventId)
{
- CalendarEventMap::iterator itr = _events.find(eventId);
- if (itr == _events.end())
- {
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::RemoveEvent: Event [" UI64FMTD "] does not exist", eventId);
- return false;
- }
+ return _invites[eventId];
+}
- bool val = true;
+std::vector<CalendarInvite*> CalendarMgr::GetPlayerInvites(uint64 guid)
+{
+ std::vector<CalendarInvite*> invites;
- CalendarInviteIdList const& invites = itr->second.GetInviteIdList();
- for (CalendarInviteIdList::const_iterator itrInvites = invites.begin(); itrInvites != invites.end(); ++itrInvites)
- {
- CalendarInvite* invite = GetInvite(*itrInvites);
- if (!invite || !RemovePlayerEvent(invite->GetInvitee(), eventId))
- val = false;
+ for (CalendarInviteStore::const_iterator itr = _invites.begin(); itr != _invites.end(); ++itr)
+ for (std::vector<CalendarInvite*>::const_iterator itr2 = itr->second.begin(); itr2 != itr->second.end(); ++itr2)
+ if ((*itr2)->GetInviteeGUID() == guid)
+ invites.push_back(*itr2);
- if (uint64 invitee = RemoveInvite(*itrInvites))
- SendCalendarEventRemovedAlert(invitee, itr->second);
- }
+ return invites;
+}
+
+uint32 CalendarMgr::GetPlayerNumPending(uint64 guid)
+{
+ std::vector<CalendarInvite*> const& invites = GetPlayerInvites(guid);
- _events.erase(itr);
+ uint32 pendingNum = 0;
+ for (std::vector<CalendarInvite*>::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
+ // correct?
+ if ((*itr)->GetStatus() == CALENDAR_STATUS_INVITED || (*itr)->GetStatus() == CALENDAR_STATUS_TENTATIVE || (*itr)->GetStatus() == CALENDAR_STATUS_NOT_SIGNED_UP)
+ ++pendingNum;
- return val;
+ return pendingNum;
}
-bool CalendarMgr::AddPlayerEvent(uint64 guid, uint64 eventId)
+std::string CalendarEvent::BuildCalendarMailSubject(uint64 remover) const
{
- _playerEvents[guid].insert(eventId);
- return true;
+ std::ostringstream strm;
+ strm << remover << ':' << _title;
+ return strm.str();
}
-bool CalendarMgr::RemovePlayerEvent(uint64 guid, uint64 eventId)
+std::string CalendarEvent::BuildCalendarMailBody() const
{
- _playerEvents[guid].erase(eventId);
- return true;
+ WorldPacket data;
+ uint32 time;
+ std::ostringstream strm;
+
+ // we are supposed to send PackedTime so i used WorldPacket to pack it
+ data.AppendPackedTime(_eventTime);
+ data >> time;
+ strm << time;
+ return strm.str();
}
-bool CalendarMgr::AddInvite(CalendarInvite const& newInvite)
+void CalendarMgr::SendCalendarEventInvite(CalendarInvite const& invite)
{
- uint64 inviteId = newInvite.GetInviteId();
- if (!inviteId)
+ CalendarEvent* calendarEvent = GetEvent(invite.GetEventId());
+ time_t statusTime = invite.GetStatusTime();
+ bool hasStatusTime = statusTime != 946684800; // 01/01/2000 00:00:00
+
+ uint64 invitee = invite.GetInviteeGUID();
+ Player* player = ObjectAccessor::FindPlayer(invitee);
+
+ uint8 level = player ? player->getLevel() : Player::GetLevelFromDB(invitee);
+
+ WorldPacket data(SMSG_CALENDAR_EVENT_INVITE, 8 + 8 + 8 + 1 + 1 + 1 + (statusTime ? 4 : 0) + 1);
+ data.appendPackGUID(invitee);
+ data << uint64(invite.GetEventId());
+ data << uint64(invite.GetInviteId());
+ data << uint8(level);
+ data << uint8(invite.GetStatus());
+ data << uint8(hasStatusTime);
+ if (hasStatusTime)
+ data.AppendPackedTime(statusTime);
+ data << uint8(invite.GetSenderGUID() != invite.GetInviteeGUID()); // false only if the invite is sign-up
+
+ if (!calendarEvent) // Pre-invite
{
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::AddInvite: Cant add Invite 0");
- return false;
+ if (Player* player = ObjectAccessor::FindPlayer(invite.GetSenderGUID()))
+ player->SendDirectMessage(&data);
}
-
- if (_invites.find(inviteId) != _invites.end())
+ else
{
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::AddInvite: Invite [" UI64FMTD "] exists", inviteId);
- return false;
+ if (calendarEvent->GetCreatorGUID() != invite.GetInviteeGUID()) // correct?
+ SendPacketToAllEventRelatives(data, *calendarEvent);
}
-
- _invites[inviteId] = newInvite;
- uint64 guid = newInvite.GetInvitee();
- bool inviteAdded = AddPlayerInvite(guid, inviteId);
- bool eventAdded = AddPlayerEvent(guid, newInvite.GetEventId());
- return eventAdded && inviteAdded;
}
-uint64 CalendarMgr::RemoveInvite(uint64 inviteId)
+void CalendarMgr::SendCalendarEventUpdateAlert(CalendarEvent const& calendarEvent, time_t oldEventTime)
{
- CalendarInviteMap::iterator itr = _invites.find(inviteId);
- if (itr == _invites.end())
- {
- sLog->outError(LOG_FILTER_CALENDAR, "CalendarMgr::RemoveInvite: Invite [" UI64FMTD "] does not exist", inviteId);
- return 0;
- }
-
- uint64 invitee = itr->second.GetInvitee();
- _invites.erase(itr);
-
- return RemovePlayerInvite(invitee, inviteId) ? invitee : 0;
+ WorldPacket data(SMSG_CALENDAR_EVENT_UPDATED_ALERT, 1 + 8 + 4 + 4 + 4 + 1 + 4 +
+ calendarEvent.GetTitle().size() + calendarEvent.GetDescription().size() + 1 + 4 + 4);
+ data << uint8(1); // unk
+ data << uint64(calendarEvent.GetEventId());
+ data.AppendPackedTime(oldEventTime);
+ data << uint32(calendarEvent.GetFlags());
+ data.AppendPackedTime(calendarEvent.GetEventTime());
+ data << uint8(calendarEvent.GetType());
+ data << int32(calendarEvent.GetDungeonId());
+ data << calendarEvent.GetTitle();
+ data << calendarEvent.GetDescription();
+ data << uint8(CALENDAR_REPEAT_NEVER); // repeatable
+ data << uint32(CALENDAR_MAX_INVITES);
+ data << uint32(0); // unk
+
+ SendPacketToAllEventRelatives(data, calendarEvent);
}
-bool CalendarMgr::AddPlayerInvite(uint64 guid, uint64 inviteId)
+void CalendarMgr::SendCalendarEventStatus(CalendarEvent const& calendarEvent, CalendarInvite const& invite)
{
- _playerInvites[guid].insert(inviteId);
- return true;
+ WorldPacket data(SMSG_CALENDAR_EVENT_STATUS, 8 + 8 + 4 + 4 + 1 + 1 + 4);
+ data.appendPackGUID(invite.GetInviteeGUID());
+ data << uint64(calendarEvent.GetEventId());
+ data.AppendPackedTime(calendarEvent.GetEventTime());
+ data << uint32(calendarEvent.GetFlags());
+ data << uint8(invite.GetStatus());
+ data << uint8(invite.GetRank());
+ data.AppendPackedTime(invite.GetStatusTime());
+
+ SendPacketToAllEventRelatives(data, calendarEvent);
}
-bool CalendarMgr::RemovePlayerInvite(uint64 guid, uint64 inviteId)
+void CalendarMgr::SendCalendarEventRemovedAlert(CalendarEvent const& calendarEvent)
{
- _playerInvites[guid].erase(inviteId);
- return true;
+ WorldPacket data(SMSG_CALENDAR_EVENT_REMOVED_ALERT, 1 + 8 + 1);
+ data << uint8(1); // FIXME: If true does not SignalEvent(EVENT_CALENDAR_ACTION_PENDING)
+ data << uint64(calendarEvent.GetEventId());
+ data.AppendPackedTime(calendarEvent.GetEventTime());
+
+ SendPacketToAllEventRelatives(data, calendarEvent);
}
-void CalendarMgr::SendCalendarEvent(CalendarEvent const& calendarEvent, CalendarSendEventType type)
+void CalendarMgr::SendCalendarEventInviteRemove(CalendarEvent const& calendarEvent, CalendarInvite const& invite, uint32 flags)
{
- if (Player* player = ObjectAccessor::FindPlayer(calendarEvent.GetCreatorGUID()))
- player->GetSession()->SendCalendarEvent(calendarEvent, type);
+ WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_REMOVED, 8 + 4 + 4 + 1);
+ data.appendPackGUID(invite.GetInviteeGUID());
+ data << uint64(invite.GetEventId());
+ data << uint32(flags);
+ data << uint8(1); // FIXME
+
+ SendPacketToAllEventRelatives(data, calendarEvent);
}
-void CalendarMgr::SendCalendarEventInvite(CalendarInvite const& invite, bool pending)
+void CalendarMgr::SendCalendarEventModeratorStatusAlert(CalendarEvent const& calendarEvent, CalendarInvite const& invite)
{
- if (Player* player = ObjectAccessor::FindPlayer(invite.GetSenderGUID()))
- player->GetSession()->SendCalendarEventInvite(invite, pending);
+ WorldPacket data(SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT, 8 + 8 + 1 + 1);
+ data.appendPackGUID(invite.GetInviteeGUID());
+ data << uint64(invite.GetEventId());
+ data << uint8(invite.GetRank());
+ data << uint8(1); // Unk boolean - Display to client?
+
+ SendPacketToAllEventRelatives(data, calendarEvent);
}
void CalendarMgr::SendCalendarEventInviteAlert(CalendarEvent const& calendarEvent, CalendarInvite const& invite)
{
- if (Player* player = ObjectAccessor::FindPlayer(invite.GetInvitee()))
- player->GetSession()->SendCalendarEventInviteAlert(calendarEvent, invite);
+ WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_ALERT);
+ data << uint64(calendarEvent.GetEventId());
+ data << calendarEvent.GetTitle();
+ data.AppendPackedTime(calendarEvent.GetEventTime());
+ data << uint32(calendarEvent.GetFlags());
+ data << uint32(calendarEvent.GetType());
+ data << int32(calendarEvent.GetDungeonId());
+ data << uint64(invite.GetInviteId());
+ data << uint8(invite.GetStatus());
+ data << uint8(invite.GetRank());
+ data.appendPackGUID(calendarEvent.GetCreatorGUID());
+ data.appendPackGUID(invite.GetSenderGUID());
+
+ if (calendarEvent.IsGuildEvent() || calendarEvent.IsGuildAnnouncement())
+ {
+ if (Guild* guild = sGuildMgr->GetGuildById(calendarEvent.GetGuildId()))
+ guild->BroadcastPacket(&data);
+ }
+ else
+ if (Player* player = ObjectAccessor::FindPlayer(invite.GetInviteeGUID()))
+ player->SendDirectMessage(&data);
}
-void CalendarMgr::SendCalendarEventUpdateAlert(uint64 guid, CalendarEvent const& calendarEvent, CalendarSendEventType type)
+void CalendarMgr::SendCalendarEvent(uint64 guid, CalendarEvent const& calendarEvent, CalendarSendEventType sendType)
{
- if (Player* player = ObjectAccessor::FindPlayer(guid))
- player->GetSession()->SendCalendarEventUpdateAlert(calendarEvent, type);
-}
+ Player* player = ObjectAccessor::FindPlayer(guid);
+ if (!player)
+ return;
+
+ std::vector<CalendarInvite*> const& eventInviteeList = _invites[calendarEvent.GetEventId()];
+
+ WorldPacket data(SMSG_CALENDAR_SEND_EVENT, 60 + eventInviteeList.size() * 32);
+ data << uint8(sendType);
+ data.appendPackGUID(calendarEvent.GetCreatorGUID());
+ data << uint64(calendarEvent.GetEventId());
+ data << calendarEvent.GetTitle();
+ data << calendarEvent.GetDescription();
+ data << uint8(calendarEvent.GetType());
+ data << uint8(CALENDAR_REPEAT_NEVER); // repeatable
+ data << uint32(CALENDAR_MAX_INVITES);
+ data << int32(calendarEvent.GetDungeonId());
+ data << uint32(calendarEvent.GetFlags());
+ data.AppendPackedTime(calendarEvent.GetEventTime());
+ data.AppendPackedTime(calendarEvent.GetTimeZoneTime());
+ data << uint32(calendarEvent.GetGuildId());
+
+ data << uint32(eventInviteeList.size());
+ for (std::vector<CalendarInvite*>::const_iterator itr = eventInviteeList.begin(); itr != eventInviteeList.end(); ++itr)
+ {
+ CalendarInvite const* calendarInvite = (*itr);
+ uint64 inviteeGuid = calendarInvite->GetInviteeGUID();
+ Player* invitee = ObjectAccessor::FindPlayer(inviteeGuid);
+
+ uint8 inviteeLevel = invitee ? invitee->getLevel() : Player::GetLevelFromDB(inviteeGuid);
+ uint32 inviteeGuildId = invitee ? invitee->GetGuildId() : Player::GetGuildIdFromDB(inviteeGuid);
+
+ data.appendPackGUID(inviteeGuid);
+ data << uint8(inviteeLevel);
+ data << uint8(calendarInvite->GetStatus());
+ data << uint8(calendarInvite->GetRank());
+ data << uint8(calendarEvent.IsGuildEvent() && calendarEvent.GetGuildId() == inviteeGuildId);
+ data << uint64(calendarInvite->GetInviteId());
+ data.AppendPackedTime(calendarInvite->GetStatusTime());
+ data << calendarInvite->GetText();
+ }
-void CalendarMgr::SendCalendarEventStatus(uint64 guid, CalendarEvent const& calendarEvent, CalendarInvite const& invite)
-{
- if (Player* player = ObjectAccessor::FindPlayer(guid))
- player->GetSession()->SendCalendarEventStatus(calendarEvent, invite);
+ player->SendDirectMessage(&data);
}
-void CalendarMgr::SendCalendarEventRemovedAlert(uint64 guid, CalendarEvent const& calendarEvent)
+void CalendarMgr::SendCalendarEventInviteRemoveAlert(uint64 guid, CalendarEvent const& calendarEvent, CalendarInviteStatus status)
{
if (Player* player = ObjectAccessor::FindPlayer(guid))
- player->GetSession()->SendCalendarEventRemovedAlert(calendarEvent);
+ {
+ WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT, 8 + 4 + 4 + 1);
+ data << uint64(calendarEvent.GetEventId());
+ data.AppendPackedTime(calendarEvent.GetEventTime());
+ data << uint32(calendarEvent.GetFlags());
+ data << uint8(status);
+
+ player->SendDirectMessage(&data);
+ }
}
-void CalendarMgr::SendCalendarEventInviteRemoveAlert(uint64 guid, CalendarEvent const& calendarEvent, CalendarInviteStatus status)
+void CalendarMgr::SendCalendarClearPendingAction(uint64 guid)
{
if (Player* player = ObjectAccessor::FindPlayer(guid))
- player->GetSession()->SendCalendarEventInviteRemoveAlert(calendarEvent, status);
+ {
+ WorldPacket data(SMSG_CALENDAR_CLEAR_PENDING_ACTION, 0);
+ player->SendDirectMessage(&data);
+ }
}
-void CalendarMgr::SendCalendarEventInviteRemove(uint64 guid, CalendarInvite const& invite, uint32 flags)
+void CalendarMgr::SendCalendarCommandResult(uint64 guid, CalendarError err, char const* param /*= NULL*/)
{
if (Player* player = ObjectAccessor::FindPlayer(guid))
- player->GetSession()->SendCalendarEventInviteRemove(invite, flags);
+ {
+ WorldPacket data(SMSG_CALENDAR_COMMAND_RESULT, 0);
+ data << uint32(0);
+ data << uint8(0);
+ switch (err)
+ {
+ case CALENDAR_ERROR_OTHER_INVITES_EXCEEDED:
+ case CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S:
+ case CALENDAR_ERROR_IGNORING_YOU_S:
+ data << param;
+ break;
+ default:
+ data << uint8(0);
+ break;
+ }
+
+ data << uint32(err);
+
+ player->SendDirectMessage(&data);
+ }
}
-void CalendarMgr::SendCalendarEventModeratorStatusAlert(CalendarInvite const& invite)
+void CalendarMgr::SendPacketToAllEventRelatives(WorldPacket packet, CalendarEvent const& calendarEvent)
{
- if (Player* player = ObjectAccessor::FindPlayer(invite.GetInvitee()))
- player->GetSession()->SendCalendarEventModeratorStatusAlert(invite);
+ // Send packet to all guild members
+ if (calendarEvent.IsGuildEvent() || calendarEvent.IsGuildAnnouncement())
+ if (Guild* guild = sGuildMgr->GetGuildById(calendarEvent.GetGuildId()))
+ guild->BroadcastPacket(&packet);
+
+ // Send packet to all invitees if event is non-guild, in other case only to non-guild invitees (packet was broadcasted for them)
+ std::vector<CalendarInvite*> invites = _invites[calendarEvent.GetEventId()];
+ for (std::vector<CalendarInvite*>::iterator itr = invites.begin(); itr != invites.end(); ++itr)
+ if (Player* player = ObjectAccessor::FindPlayer((*itr)->GetInviteeGUID()))
+ if (!calendarEvent.IsGuildEvent() || (calendarEvent.IsGuildEvent() && player->GetGuildId() != calendarEvent.GetGuildId()))
+ player->SendDirectMessage(&packet);
}
diff --git a/src/server/game/Calendar/CalendarMgr.h b/src/server/game/Calendar/CalendarMgr.h
index a8749778cb3..db6acb667ec 100644
--- a/src/server/game/Calendar/CalendarMgr.h
+++ b/src/server/game/Calendar/CalendarMgr.h
@@ -19,60 +19,311 @@
#define TRINITY_CALENDARMGR_H
#include <ace/Singleton.h>
-#include "Calendar.h"
+#include "Common.h"
+#include "WorldPacket.h"
+
+enum CalendarMailAnswers
+{
+ // else
+ CALENDAR_EVENT_REMOVED_MAIL_SUBJECT = 0,
+ // if ( *(_DWORD *)(a1 + 8292) & 0x100 )
+ CALENDAR_INVITE_REMOVED_MAIL_SUBJECT = 0x100
+};
+
+enum CalendarFlags
+{
+ CALENDAR_FLAG_ALL_ALLOWED = 0x001,
+ CALENDAR_FLAG_INVITES_LOCKED = 0x010,
+ CALENDAR_FLAG_WITHOUT_INVITES = 0x040,
+ CALENDAR_FLAG_GUILD_EVENT = 0x400
+};
+
+enum CalendarModerationRank
+{
+ CALENDAR_RANK_PLAYER = 0,
+ CALENDAR_RANK_MODERATOR = 1,
+ CALENDAR_RANK_OWNER = 2
+};
+
+enum CalendarSendEventType
+{
+ CALENDAR_SENDTYPE_GET = 0,
+ CALENDAR_SENDTYPE_ADD = 1,
+ CALENDAR_SENDTYPE_COPY = 2
+};
+
+enum CalendarEventType
+{
+ CALENDAR_TYPE_RAID = 0,
+ CALENDAR_TYPE_DUNGEON = 1,
+ CALENDAR_TYPE_PVP = 2,
+ CALENDAR_TYPE_MEETING = 3,
+ CALENDAR_TYPE_OTHER = 4
+};
+
+enum CalendarRepeatType
+{
+ CALENDAR_REPEAT_NEVER = 0,
+ CALENDAR_REPEAT_WEEKLY = 1,
+ CALENDAR_REPEAT_BIWEEKLY = 2,
+ CALENDAR_REPEAT_MONTHLY = 3
+};
+
+enum CalendarInviteStatus
+{
+ CALENDAR_STATUS_INVITED = 0,
+ CALENDAR_STATUS_ACCEPTED = 1,
+ CALENDAR_STATUS_DECLINED = 2,
+ CALENDAR_STATUS_CONFIRMED = 3,
+ CALENDAR_STATUS_OUT = 4,
+ CALENDAR_STATUS_STANDBY = 5,
+ CALENDAR_STATUS_SIGNED_UP = 6,
+ CALENDAR_STATUS_NOT_SIGNED_UP = 7,
+ CALENDAR_STATUS_TENTATIVE = 8,
+ CALENDAR_STATUS_REMOVED = 9 // correct name?
+};
+
+enum CalendarError
+{
+ CALENDAR_OK = 0,
+ CALENDAR_ERROR_GUILD_EVENTS_EXCEEDED = 1,
+ CALENDAR_ERROR_EVENTS_EXCEEDED = 2,
+ CALENDAR_ERROR_SELF_INVITES_EXCEEDED = 3,
+ CALENDAR_ERROR_OTHER_INVITES_EXCEEDED = 4,
+ CALENDAR_ERROR_PERMISSIONS = 5,
+ CALENDAR_ERROR_EVENT_INVALID = 6,
+ CALENDAR_ERROR_NOT_INVITED = 7,
+ CALENDAR_ERROR_INTERNAL = 8,
+ CALENDAR_ERROR_GUILD_PLAYER_NOT_IN_GUILD = 9,
+ CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S = 10,
+ CALENDAR_ERROR_PLAYER_NOT_FOUND = 11,
+ CALENDAR_ERROR_NOT_ALLIED = 12,
+ CALENDAR_ERROR_IGNORING_YOU_S = 13,
+ CALENDAR_ERROR_INVITES_EXCEEDED = 14,
+ CALENDAR_ERROR_INVALID_DATE = 16,
+ CALENDAR_ERROR_INVALID_TIME = 17,
+
+ CALENDAR_ERROR_NEEDS_TITLE = 19,
+ CALENDAR_ERROR_EVENT_PASSED = 20,
+ CALENDAR_ERROR_EVENT_LOCKED = 21,
+ CALENDAR_ERROR_DELETE_CREATOR_FAILED = 22,
+ CALENDAR_ERROR_SYSTEM_DISABLED = 24,
+ CALENDAR_ERROR_RESTRICTED_ACCOUNT = 25,
+ CALENDAR_ERROR_ARENA_EVENTS_EXCEEDED = 26,
+ CALENDAR_ERROR_RESTRICTED_LEVEL = 27,
+ CALENDAR_ERROR_USER_SQUELCHED = 28,
+ CALENDAR_ERROR_NO_INVITE = 29,
+
+ CALENDAR_ERROR_EVENT_WRONG_SERVER = 36,
+ CALENDAR_ERROR_INVITE_WRONG_SERVER = 37,
+ CALENDAR_ERROR_NO_GUILD_INVITES = 38,
+ CALENDAR_ERROR_INVALID_SIGNUP = 39,
+ CALENDAR_ERROR_NO_MODERATOR = 40
+};
+
+#define CALENDAR_MAX_EVENTS 30
+#define CALENDAR_MAX_GUILD_EVENTS 100
+#define CALENDAR_MAX_INVITES 100
+
+struct CalendarInvite
+{
+ public:
+ CalendarInvite(CalendarInvite const& calendarInvite, uint64 inviteId, uint64 eventId)
+ {
+ _inviteId = inviteId;
+ _eventId = eventId;
+ _invitee = calendarInvite.GetInviteeGUID();
+ _senderGUID = calendarInvite.GetSenderGUID();
+ _statusTime = calendarInvite.GetStatusTime();
+ _status = calendarInvite.GetStatus();
+ _rank = calendarInvite.GetRank();
+ _text = calendarInvite.GetText();
+ }
+
+ CalendarInvite() : _inviteId(1), _eventId(0), _invitee(0), _senderGUID(0), _statusTime(time(NULL)),
+ _status(CALENDAR_STATUS_INVITED), _rank(CALENDAR_RANK_PLAYER), _text("") { }
+
+ CalendarInvite(uint64 inviteId, uint64 eventId, uint64 invitee, uint64 senderGUID, time_t statusTime,
+ CalendarInviteStatus status, CalendarModerationRank rank, std::string text) :
+ _inviteId(inviteId), _eventId(eventId), _invitee(invitee), _senderGUID(senderGUID), _statusTime(statusTime),
+ _status(status), _rank(rank), _text(text) { }
+
+ ~CalendarInvite();
+
+ void SetInviteId(uint64 inviteId) { _inviteId = inviteId; }
+ uint64 GetInviteId() const { return _inviteId; }
+
+ void SetEventId(uint64 eventId) { _eventId = eventId; }
+ uint64 GetEventId() const { return _eventId; }
+
+ void SetSenderGUID(uint64 guid) { _senderGUID = guid; }
+ uint64 GetSenderGUID() const { return _senderGUID; }
+
+ void SetInvitee(uint64 guid) { _invitee = guid; }
+ uint64 GetInviteeGUID() const { return _invitee; }
+
+ void SetStatusTime(time_t statusTime) { _statusTime = statusTime; }
+ time_t GetStatusTime() const { return _statusTime; }
+
+ void SetText(std::string text) { _text = text; }
+ std::string GetText() const { return _text; }
+
+ void SetStatus(CalendarInviteStatus status) { _status = status; }
+ CalendarInviteStatus GetStatus() const { return _status; }
+
+ void SetRank(CalendarModerationRank rank) { _rank = rank; }
+ CalendarModerationRank GetRank() const { return _rank; }
+
+ private:
+ uint64 _inviteId;
+ uint64 _eventId;
+ uint64 _invitee;
+ uint64 _senderGUID;
+ time_t _statusTime;
+ CalendarInviteStatus _status;
+ CalendarModerationRank _rank;
+ std::string _text;
+};
+
+struct CalendarEvent
+{
+ public:
+ CalendarEvent(CalendarEvent const& calendarEvent, uint64 eventId)
+ {
+ _eventId = eventId;
+ _creatorGUID = calendarEvent.GetCreatorGUID();
+ _guildId = calendarEvent.GetGuildId();
+ _type = calendarEvent.GetType();
+ _dungeonId = calendarEvent.GetDungeonId();
+ _eventTime = calendarEvent.GetEventTime();
+ _flags = calendarEvent.GetFlags();
+ _timezoneTime = calendarEvent.GetTimeZoneTime();
+ _title = calendarEvent.GetTitle();
+ _description = calendarEvent.GetDescription();
+ }
+
+ CalendarEvent(uint64 eventId, uint64 creatorGUID, uint32 guildId, CalendarEventType type, int32 dungeonId,
+ time_t eventTime, uint32 flags, time_t timezoneTime, std::string title, std::string description) :
+ _eventId(eventId), _creatorGUID(creatorGUID), _guildId(guildId), _type(type), _dungeonId(dungeonId),
+ _eventTime(eventTime), _flags(flags), _timezoneTime(timezoneTime), _title(title),
+ _description(description) { }
+
+ CalendarEvent() : _eventId(1), _creatorGUID(0), _guildId(0), _type(CALENDAR_TYPE_OTHER), _dungeonId(-1), _eventTime(0),
+ _flags(0), _timezoneTime(0), _title(""), _description("") { }
+
+ ~CalendarEvent();
+
+ void SetEventId(uint64 eventId) { _eventId = eventId; }
+ uint64 GetEventId() const { return _eventId; }
+
+ void SetCreatorGUID(uint64 guid) { _creatorGUID = guid; }
+ uint64 GetCreatorGUID() const { return _creatorGUID; }
+
+ void SetGuildId(uint32 guildId) { _guildId = guildId; }
+ uint32 GetGuildId() const { return _guildId; }
+
+ void SetTitle(std::string title) { _title = title; }
+ std::string GetTitle() const { return _title; }
+
+ void SetDescription(std::string description) { _description = description; }
+ std::string GetDescription() const { return _description; }
+
+ void SetType(CalendarEventType type) { _type = type; }
+ CalendarEventType GetType() const { return _type; }
+
+ void SetDungeonId(int32 dungeonId) { _dungeonId = dungeonId; }
+ int32 GetDungeonId() const { return _dungeonId; }
+
+ void SetEventTime(time_t eventTime) { _eventTime = eventTime; }
+ time_t GetEventTime() const { return _eventTime; }
+
+ void SetFlags(uint32 flags) { _flags = flags; }
+ uint32 GetFlags() const { return _flags; }
+
+ void SetTimeZoneTime(time_t timezoneTime) { _timezoneTime = timezoneTime; }
+ time_t GetTimeZoneTime() const { return _timezoneTime; }
+
+ bool IsGuildEvent() const { return _flags & CALENDAR_FLAG_GUILD_EVENT; }
+ bool IsGuildAnnouncement() const { return _flags & CALENDAR_FLAG_WITHOUT_INVITES; }
+
+ std::string BuildCalendarMailSubject(uint64 remover) const;
+ std::string BuildCalendarMailBody() const;
+
+ private:
+ uint64 _eventId;
+ uint64 _creatorGUID;
+ uint32 _guildId;
+ CalendarEventType _type;
+ int32 _dungeonId;
+ time_t _eventTime;
+ uint32 _flags;
+ time_t _timezoneTime;
+ std::string _title;
+ std::string _description;
+};
+
+typedef std::set<CalendarEvent*> CalendarEventStore;
+typedef std::map<uint64 /* eventId */, std::vector<CalendarInvite*> > CalendarInviteStore;
class CalendarMgr
{
- friend class ACE_Singleton<CalendarMgr, ACE_Null_Mutex>;
+ friend class ACE_Singleton<CalendarMgr, ACE_Null_Mutex>;
+ private:
CalendarMgr();
~CalendarMgr();
+ CalendarEventStore _events;
+ CalendarInviteStore _invites;
+
+ std::deque<uint64> _freeEventIds;
+ std::deque<uint64> _freeInviteIds;
+ uint64 _maxEventId;
+ uint64 _maxInviteId;
+
public:
void LoadFromDB();
- CalendarInvite* GetInvite(uint64 inviteId);
CalendarEvent* GetEvent(uint64 eventId);
+ CalendarEventStore const& GetEvents() const { return _events; }
+ CalendarEventStore GetPlayerEvents(uint64 guid);
- CalendarInviteIdList const& GetPlayerInvites(uint64 guid);
- CalendarEventIdList const& GetPlayerEvents(uint64 guid);
+ CalendarInvite* GetInvite(uint64 inviteId);
+ CalendarInviteStore const& GetInvites() const { return _invites; }
+ std::vector<CalendarInvite*> GetEventInvites(uint64 eventId);
+ std::vector<CalendarInvite*> GetPlayerInvites(uint64 guid);
- uint32 GetPlayerNumPending(uint64 guid);
+ void FreeEventId(uint64 id);
uint64 GetFreeEventId();
+ void FreeInviteId(uint64 id);
uint64 GetFreeInviteId();
- void AddAction(CalendarAction const& action);
-
- void SendCalendarEvent(CalendarEvent const& calendarEvent, CalendarSendEventType type);
- void SendCalendarEventInvite(CalendarInvite const& invite, bool pending);
- void SendCalendarEventInviteAlert(CalendarEvent const& calendarEvent, CalendarInvite const& invite);
- void SendCalendarEventInviteRemove(uint64 guid, CalendarInvite const& invite, uint32 flags);
- void SendCalendarEventInviteRemoveAlert(uint64 guid, CalendarEvent const& calendarEvent, CalendarInviteStatus status);
- void SendCalendarEventUpdateAlert(uint64 guid, CalendarEvent const& calendarEvent, CalendarSendEventType type);
- void SendCalendarEventStatus(uint64 guid, CalendarEvent const& calendarEvent, CalendarInvite const& invite);
- void SendCalendarEventRemovedAlert(uint64 guid, CalendarEvent const& calendarEvent);
- void SendCalendarEventModeratorStatusAlert(CalendarInvite const& invite);
+ uint32 GetPlayerNumPending(uint64 guid);
- private:
- CalendarEvent* CheckPermisions(uint64 eventId, Player* player, uint64 inviteId, CalendarModerationRank minRank);
+ void AddEvent(CalendarEvent* calendarEvent, CalendarSendEventType sendType);
+ void RemoveEvent(uint64 eventId, uint64 remover);
+ void UpdateEvent(CalendarEvent* calendarEvent);
- bool AddEvent(CalendarEvent const& calendarEvent);
- bool RemoveEvent(uint64 eventId);
- bool AddPlayerEvent(uint64 guid, uint64 eventId);
- bool RemovePlayerEvent(uint64 guid, uint64 eventId);
+ void AddInvite(CalendarEvent* calendarEvent, CalendarInvite* invite);
+ void RemoveInvite(uint64 inviteId, uint64 eventId, uint64 remover);
+ void UpdateInvite(CalendarInvite* invite);
- bool AddInvite(CalendarInvite const& invite);
- uint64 RemoveInvite(uint64 inviteId);
- bool AddPlayerInvite(uint64 guid, uint64 inviteId);
- bool RemovePlayerInvite(uint64 guid, uint64 inviteId);
+ void RemoveAllPlayerEventsAndInvites(uint64 guid);
+ void RemovePlayerGuildEventsAndSignups(uint64 guid, uint32 guildId);
- CalendarEventMap _events;
- CalendarInviteMap _invites;
- CalendarPlayerInviteIdMap _playerInvites;
- CalendarPlayerEventIdMap _playerEvents;
+ void SendCalendarEvent(uint64 guid, CalendarEvent const& calendarEvent, CalendarSendEventType sendType);
+ void SendCalendarEventInvite(CalendarInvite const& invite);
+ void SendCalendarEventInviteAlert(CalendarEvent const& calendarEvent, CalendarInvite const& invite);
+ void SendCalendarEventInviteRemove(CalendarEvent const& calendarEvent, CalendarInvite const& invite, uint32 flags);
+ void SendCalendarEventInviteRemoveAlert(uint64 guid, CalendarEvent const& calendarEvent, CalendarInviteStatus status);
+ void SendCalendarEventUpdateAlert(CalendarEvent const& calendarEvent, time_t oldEventTime);
+ void SendCalendarEventStatus(CalendarEvent const& calendarEvent, CalendarInvite const& invite);
+ void SendCalendarEventRemovedAlert(CalendarEvent const& calendarEvent);
+ void SendCalendarEventModeratorStatusAlert(CalendarEvent const& calendarEvent, CalendarInvite const& invite);
+ void SendCalendarClearPendingAction(uint64 guid);
+ void SendCalendarCommandResult(uint64 guid, CalendarError err, char const* param = NULL);
- uint64 _eventNum;
- uint64 _inviteNum;
+ void SendPacketToAllEventRelatives(WorldPacket packet, CalendarEvent const& calendarEvent);
};
#define sCalendarMgr ACE_Singleton<CalendarMgr, ACE_Null_Mutex>::instance()
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 66f964fb4cf..cba38a3ebf1 100755
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -23,49 +23,56 @@
#include "World.h"
#include "DatabaseEnv.h"
#include "AccountMgr.h"
-
-Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team) : m_announce(true),
- m_ownership(true), m_name(name), m_password(""), m_flags(0), m_channelId(channel_id),
- m_ownerGUID(0), m_Team(Team)
+#include "Player.h"
+
+Channel::Channel(std::string const& name, uint32 channelId, uint32 team):
+ _announce(true),
+ _ownership(true),
+ _IsSaved(false),
+ _flags(0),
+ _channelId(channelId),
+ _Team(team),
+ _ownerGUID(0),
+ _name(name),
+ _password("")
{
- m_IsSaved = false;
// set special flags if built-in channel
- if (ChatChannelsEntry const* ch = sChatChannelsStore.LookupEntry(channel_id)) // check whether it's a built-in channel
+ if (ChatChannelsEntry const* ch = sChatChannelsStore.LookupEntry(channelId)) // check whether it's a built-in channel
{
- m_announce = false; // no join/leave announces
- m_ownership = false; // no ownership handout
+ _announce = false; // no join/leave announces
+ _ownership = false; // no ownership handout
- m_flags |= CHANNEL_FLAG_GENERAL; // for all built-in channels
+ _flags |= CHANNEL_FLAG_GENERAL; // for all built-in channels
if (ch->flags & CHANNEL_DBC_FLAG_TRADE) // for trade channel
- m_flags |= CHANNEL_FLAG_TRADE;
+ _flags |= CHANNEL_FLAG_TRADE;
if (ch->flags & CHANNEL_DBC_FLAG_CITY_ONLY2) // for city only channels
- m_flags |= CHANNEL_FLAG_CITY;
+ _flags |= CHANNEL_FLAG_CITY;
if (ch->flags & CHANNEL_DBC_FLAG_LFG) // for LFG channel
- m_flags |= CHANNEL_FLAG_LFG;
+ _flags |= CHANNEL_FLAG_LFG;
else // for all other channels
- m_flags |= CHANNEL_FLAG_NOT_LFG;
+ _flags |= CHANNEL_FLAG_NOT_LFG;
}
else // it's custom channel
{
- m_flags |= CHANNEL_FLAG_CUSTOM;
+ _flags |= CHANNEL_FLAG_CUSTOM;
// If storing custom channels in the db is enabled either load or save the channel
if (sWorld->getBoolConfig(CONFIG_PRESERVE_CUSTOM_CHANNELS))
{
PreparedStatement *stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHANNEL);
stmt->setString(0, name);
- stmt->setUInt32(1, m_Team);
+ stmt->setUInt32(1, _Team);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result) //load
{
Field* fields = result->Fetch();
- m_announce = fields[0].GetBool();
- m_ownership = fields[1].GetBool();
- m_password = fields[2].GetString();
+ _announce = fields[0].GetBool();
+ _ownership = fields[1].GetBool();
+ _password = fields[2].GetString();
const char* db_BannedList = fields[3].GetCString();
if (db_BannedList)
@@ -76,8 +83,8 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team) : m_an
uint64 banned_guid = atol(*i);
if (banned_guid)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "Channel(%s) loaded banned guid:" UI64FMTD "", name.c_str(), banned_guid);
- banned.insert(banned_guid);
+ sLog->outDebug(LOG_FILTER_CHATSYS, "Channel(%s) loaded bannedStore guid:" UI64FMTD "", name.c_str(), banned_guid);
+ bannedStore.insert(banned_guid);
}
}
}
@@ -86,45 +93,45 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team) : m_an
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHANNEL);
stmt->setString(0, name);
- stmt->setUInt32(1, m_Team);
+ stmt->setUInt32(1, _Team);
CharacterDatabase.Execute(stmt);
sLog->outDebug(LOG_FILTER_CHATSYS, "Channel(%s) saved in database", name.c_str());
}
- m_IsSaved = true;
+ _IsSaved = true;
}
}
}
void Channel::UpdateChannelInDB() const
{
- if (m_IsSaved)
+ if (_IsSaved)
{
std::ostringstream banlist;
- BannedList::const_iterator iter;
- for (iter = banned.begin(); iter != banned.end(); ++iter)
+ BannedContainer::const_iterator iter;
+ for (iter = bannedStore.begin(); iter != bannedStore.end(); ++iter)
banlist << (*iter) << ' ';
std::string banListStr = banlist.str();
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHANNEL);
- stmt->setBool(0, m_announce);
- stmt->setBool(1, m_ownership);
- stmt->setString(2, m_password);
+ stmt->setBool(0, _announce);
+ stmt->setBool(1, _ownership);
+ stmt->setString(2, _password);
stmt->setString(3, banListStr);
- stmt->setString(4, m_name);
- stmt->setUInt32(5, m_Team);
+ stmt->setString(4, _name);
+ stmt->setUInt32(5, _Team);
CharacterDatabase.Execute(stmt);
- sLog->outDebug(LOG_FILTER_CHATSYS, "Channel(%s) updated in database", m_name.c_str());
+ sLog->outDebug(LOG_FILTER_CHATSYS, "Channel(%s) updated in database", _name.c_str());
}
}
void Channel::UpdateChannelUseageInDB() const
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHANNEL_USAGE);
- stmt->setString(0, m_name);
- stmt->setUInt32(1, m_Team);
+ stmt->setString(0, _name);
+ stmt->setUInt32(1, _Team);
CharacterDatabase.Execute(stmt);
}
@@ -140,531 +147,507 @@ void Channel::CleanOldChannelsInDB()
}
}
-void Channel::Join(uint64 p, const char *pass)
+void Channel::JoinChannel(Player* player, std::string const& pass)
{
- WorldPacket data;
- if (IsOn(p))
+ uint64 guid = player->GetGUID();
+ if (IsOn(guid))
{
- if (!IsConstant()) // non send error message for built-in channels
+ // Do not send error message for built-in channels
+ if (!IsConstant())
{
- MakePlayerAlreadyMember(&data, p);
- SendToOne(&data, p);
+ WorldPacket data;
+ MakePlayerAlreadyMember(&data, guid);
+ SendToOne(&data, guid);
}
return;
}
- if (IsBanned(p))
+ if (IsBanned(guid))
{
+ WorldPacket data;
MakeBanned(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
- if (m_password.length() > 0 && strcmp(pass, m_password.c_str()))
+ if (!_password.empty() && pass != _password)
{
+ WorldPacket data;
MakeWrongPassword(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
- Player* player = ObjectAccessor::FindPlayer(p);
-
- if (player)
+ if (HasFlag(CHANNEL_FLAG_LFG) &&
+ sWorld->getBoolConfig(CONFIG_RESTRICTED_LFG_CHANNEL) &&
+ AccountMgr::IsPlayerAccount(player->GetSession()->GetSecurity()) &&
+ player->GetGroup())
{
- if (HasFlag(CHANNEL_FLAG_LFG) &&
- sWorld->getBoolConfig(CONFIG_RESTRICTED_LFG_CHANNEL) && AccountMgr::IsPlayerAccount(player->GetSession()->GetSecurity()) && player->GetGroup())
- {
- MakeNotInLfg(&data);
- SendToOne(&data, p);
- return;
- }
-
- player->JoinedChannel(this);
+ WorldPacket data;
+ MakeNotInLfg(&data);
+ SendToOne(&data, guid);
+ return;
}
- if (m_announce && (!player || !AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()) || !sWorld->getBoolConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL)))
+ player->JoinedChannel(this);
+
+ if (_announce && (!AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()) ||
+ !sWorld->getBoolConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL)))
{
- MakeJoined(&data, p);
+ WorldPacket data;
+ MakeJoined(&data, guid);
SendToAll(&data);
}
- data.clear();
-
PlayerInfo pinfo;
- pinfo.player = p;
+ pinfo.player = guid;
pinfo.flags = MEMBER_FLAG_NONE;
- players[p] = pinfo;
+ playersStore[guid] = pinfo;
+ WorldPacket data;
MakeYouJoined(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
- JoinNotify(p);
+ JoinNotify(guid);
// Custom channel handling
if (!IsConstant())
{
// Update last_used timestamp in db
- if (!players.empty())
+ if (!playersStore.empty())
UpdateChannelUseageInDB();
// If the channel has no owner yet and ownership is allowed, set the new owner.
- if (!m_ownerGUID && m_ownership)
+ if (!_ownerGUID && _ownership)
{
- SetOwner(p, (players.size() > 1 ? true : false));
- players[p].SetModerator(true);
+ SetOwner(guid, playersStore.size() > 1);
+ playersStore[guid].SetModerator(true);
}
}
}
-void Channel::Leave(uint64 p, bool send)
+void Channel::LeaveChannel(Player* player, bool send)
{
- if (!IsOn(p))
+ uint64 guid = player->GetGUID();
+ if (!IsOn(guid))
{
if (send)
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
}
+ return;
}
- else
+
+ if (send)
{
- Player* player = ObjectAccessor::FindPlayer(p);
+ WorldPacket data;
+ MakeYouLeft(&data);
+ SendToOne(&data, guid);
+ player->LeftChannel(this);
+ data.clear();
+ }
- if (send)
- {
- WorldPacket data;
- MakeYouLeft(&data);
- SendToOne(&data, p);
- if (player)
- player->LeftChannel(this);
- data.clear();
- }
+ bool changeowner = playersStore[guid].IsOwner();
- bool changeowner = players[p].IsOwner();
+ playersStore.erase(guid);
+ if (_announce && (!AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()) ||
+ !sWorld->getBoolConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL)))
+ {
+ WorldPacket data;
+ MakeLeft(&data, guid);
+ SendToAll(&data);
+ }
- players.erase(p);
- if (m_announce && (!player || !AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()) || !sWorld->getBoolConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL)))
- {
- WorldPacket data;
- MakeLeft(&data, p);
- SendToAll(&data);
- }
+ LeaveNotify(guid);
- LeaveNotify(p);
+ if (!IsConstant())
+ {
+ // Update last_used timestamp in db
+ UpdateChannelUseageInDB();
- if (!IsConstant())
+ // If the channel owner left and there are still playersStore inside, pick a new owner
+ if (changeowner && _ownership && !playersStore.empty())
{
- // Update last_used timestamp in db
- UpdateChannelUseageInDB();
-
- // If the channel owner left and there are still players inside, pick a new owner
- if (changeowner && m_ownership && !players.empty())
- {
- uint64 newowner = players.begin()->second.player;
- players[newowner].SetModerator(true);
- SetOwner(newowner);
- }
+ uint64 newowner = playersStore.begin()->second.player;
+ playersStore[newowner].SetModerator(true);
+ SetOwner(newowner);
}
}
}
-void Channel::KickOrBan(uint64 good, const char *badname, bool ban)
+void Channel::KickOrBan(Player const* player, std::string const& badname, bool ban)
{
- AccountTypes sec = SEC_PLAYER;
- Player* gplr = ObjectAccessor::FindPlayer(good);
- if (gplr)
- sec = gplr->GetSession()->GetSecurity();
+ AccountTypes sec = player->GetSession()->GetSecurity();
+ uint64 good = player->GetGUID();
if (!IsOn(good))
{
WorldPacket data;
MakeNotMember(&data);
SendToOne(&data, good);
+ return;
}
- else if (!players[good].IsModerator() && !AccountMgr::IsGMAccount(sec))
+
+ if (!playersStore[good].IsModerator() && !AccountMgr::IsGMAccount(sec))
{
WorldPacket data;
MakeNotModerator(&data);
SendToOne(&data, good);
+ return;
}
- else
+
+ Player* bad = sObjectAccessor->FindPlayerByName(badname);
+ uint64 victim = bad ? bad->GetGUID() : 0;
+ if (!victim || !IsOn(victim))
{
- Player* bad = sObjectAccessor->FindPlayerByName(badname);
- if (bad == NULL || !IsOn(bad->GetGUID()))
- {
- WorldPacket data;
- MakePlayerNotFound(&data, badname);
- SendToOne(&data, good);
- }
- else if (!AccountMgr::IsGMAccount(sec) && bad->GetGUID() == m_ownerGUID && good != m_ownerGUID)
- {
- WorldPacket data;
- MakeNotOwner(&data);
- SendToOne(&data, good);
- }
- else
- {
- bool changeowner = (m_ownerGUID == bad->GetGUID());
-
- WorldPacket data;
- bool notify = !(AccountMgr::IsGMAccount(sec) && sWorld->getBoolConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL));
+ WorldPacket data;
+ MakePlayerNotFound(&data, badname);
+ SendToOne(&data, good);
+ return;
+ }
- if (ban && !IsBanned(bad->GetGUID()))
- {
- banned.insert(bad->GetGUID());
- UpdateChannelInDB();
+ bool changeowner = _ownerGUID == victim;
- if (notify)
- MakePlayerBanned(&data, bad->GetGUID(), good);
- }
- else if (notify)
- MakePlayerKicked(&data, bad->GetGUID(), good);
+ if (!AccountMgr::IsGMAccount(sec) && changeowner && good != _ownerGUID)
+ {
+ WorldPacket data;
+ MakeNotOwner(&data);
+ SendToOne(&data, good);
+ return;
+ }
- if (notify)
- SendToAll(&data);
+ bool notify = !(AccountMgr::IsGMAccount(sec) && sWorld->getBoolConfig(CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL));
- players.erase(bad->GetGUID());
- bad->LeftChannel(this);
+ if (ban && !IsBanned(victim))
+ {
+ bannedStore.insert(victim);
+ UpdateChannelInDB();
- if (changeowner && m_ownership && !players.empty())
- {
- uint64 newowner = good;
- players[newowner].SetModerator(true);
- SetOwner(newowner);
- }
+ if (notify)
+ {
+ WorldPacket data;
+ MakePlayerBanned(&data, victim, good);
+ SendToAll(&data);
}
}
+ else if (notify)
+ {
+ WorldPacket data;
+ MakePlayerKicked(&data, victim, good);
+ SendToAll(&data);
+ }
+
+ playersStore.erase(victim);
+ bad->LeftChannel(this);
+
+ if (changeowner && _ownership && !playersStore.empty())
+ {
+ uint64 newowner = good;
+ playersStore[newowner].SetModerator(true);
+ SetOwner(newowner);
+ }
}
-void Channel::UnBan(uint64 good, const char *badname)
+void Channel::UnBan(Player const* player, std::string const& badname)
{
- uint32 sec = 0;
- Player* gplr = ObjectAccessor::FindPlayer(good);
- if (gplr)
- sec = gplr->GetSession()->GetSecurity();
+ uint32 sec = player->GetSession()->GetSecurity();
+ uint64 good = player->GetGUID();
if (!IsOn(good))
{
WorldPacket data;
MakeNotMember(&data);
SendToOne(&data, good);
+ return;
}
- else if (!players[good].IsModerator() && !AccountMgr::IsGMAccount(sec))
+
+ if (!playersStore[good].IsModerator() && !AccountMgr::IsGMAccount(sec))
{
WorldPacket data;
MakeNotModerator(&data);
SendToOne(&data, good);
+ return;
}
- else
- {
- Player* bad = sObjectAccessor->FindPlayerByName(badname);
- if (bad == NULL || !IsBanned(bad->GetGUID()))
- {
- WorldPacket data;
- MakePlayerNotFound(&data, badname);
- SendToOne(&data, good);
- }
- else
- {
- banned.erase(bad->GetGUID());
- WorldPacket data;
- MakePlayerUnbanned(&data, bad->GetGUID(), good);
- SendToAll(&data);
+ Player* bad = sObjectAccessor->FindPlayerByName(badname);
+ uint64 victim = bad ? bad->GetGUID(): 0;
- UpdateChannelInDB();
- }
+ if (!victim || !IsBanned(victim))
+ {
+ WorldPacket data;
+ MakePlayerNotFound(&data, badname);
+ SendToOne(&data, good);
+ return;
}
+
+ bannedStore.erase(victim);
+
+ WorldPacket data;
+ MakePlayerUnbanned(&data, victim, good);
+ SendToAll(&data);
+
+ UpdateChannelInDB();
}
-void Channel::Password(uint64 p, const char *pass)
+void Channel::Password(Player const* player, std::string const& pass)
{
- uint32 sec = 0;
- Player* player = ObjectAccessor::FindPlayer(p);
- if (player)
- sec = player->GetSession()->GetSecurity();
-
- ChatHandler chat(player);
+ uint64 guid = player->GetGUID();
- if (!IsOn(p))
+ ChatHandler chat(player->GetSession());
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else if (!players[p].IsModerator() && !AccountMgr::IsGMAccount(sec))
+
+ if (!playersStore[guid].IsModerator() && !AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()))
{
WorldPacket data;
MakeNotModerator(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else
- {
- m_password = pass;
- WorldPacket data;
- MakePasswordChanged(&data, p);
- SendToAll(&data);
+ _password = pass;
- UpdateChannelInDB();
- }
+ WorldPacket data;
+ MakePasswordChanged(&data, guid);
+ SendToAll(&data);
+
+ UpdateChannelInDB();
}
-void Channel::SetMode(uint64 p, const char *p2n, bool mod, bool set)
+void Channel::SetMode(Player const* player, std::string const& p2n, bool mod, bool set)
{
- Player* player = ObjectAccessor::FindPlayer(p);
- if (!player)
- return;
-
+ uint64 guid = player->GetGUID();
uint32 sec = player->GetSession()->GetSecurity();
- if (!IsOn(p))
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else if (!players[p].IsModerator() && !AccountMgr::IsGMAccount(sec))
+
+ if (!playersStore[guid].IsModerator() && !AccountMgr::IsGMAccount(sec))
{
WorldPacket data;
MakeNotModerator(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else
- {
- Player* newp = sObjectAccessor->FindPlayerByName(p2n);
- if (!newp)
- {
- WorldPacket data;
- MakePlayerNotFound(&data, p2n);
- SendToOne(&data, p);
- return;
- }
- if (p == m_ownerGUID && newp->GetGUID() == m_ownerGUID && mod)
- return;
+ if (guid == _ownerGUID && std::string(p2n) == player->GetName() && mod)
+ return;
- if (!IsOn(newp->GetGUID()))
- {
- WorldPacket data;
- MakePlayerNotFound(&data, p2n);
- SendToOne(&data, p);
- return;
- }
+ Player* newp = sObjectAccessor->FindPlayerByName(p2n);
+ uint64 victim = newp ? newp->GetGUID() : 0;
+ if (!victim || !IsOn(victim) ||
// allow make moderator from another team only if both is GMs
// at this moment this only way to show channel post for GM from another team
- if ((!AccountMgr::IsGMAccount(player->GetSession()->GetSecurity()) || !AccountMgr::IsGMAccount(newp->GetSession()->GetSecurity())) &&
- player->GetTeam() != newp->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL))
- {
- WorldPacket data;
- MakePlayerNotFound(&data, p2n);
- SendToOne(&data, p);
- return;
- }
-
- if (m_ownerGUID == newp->GetGUID() && m_ownerGUID != p)
- {
- WorldPacket data;
- MakeNotOwner(&data);
- SendToOne(&data, p);
- return;
- }
+ ((!AccountMgr::IsGMAccount(sec) || !AccountMgr::IsGMAccount(newp->GetSession()->GetSecurity())) &&
+ player->GetTeam() != newp->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)))
+ {
+ WorldPacket data;
+ MakePlayerNotFound(&data, p2n);
+ SendToOne(&data, guid);
+ return;
+ }
- if (mod)
- SetModerator(newp->GetGUID(), set);
- else
- SetMute(newp->GetGUID(), set);
+ if (_ownerGUID == victim && _ownerGUID != guid)
+ {
+ WorldPacket data;
+ MakeNotOwner(&data);
+ SendToOne(&data, guid);
+ return;
}
+
+ if (mod)
+ SetModerator(newp->GetGUID(), set);
+ else
+ SetMute(newp->GetGUID(), set);
}
-void Channel::SetOwner(uint64 p, const char *newname)
+void Channel::SetOwner(Player const* player, std::string const& newname)
{
- Player* player = ObjectAccessor::FindPlayer(p);
- if (!player)
- return;
-
+ uint64 guid = player->GetGUID();
uint32 sec = player->GetSession()->GetSecurity();
- if (!IsOn(p))
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
- if (!AccountMgr::IsGMAccount(sec) && p != m_ownerGUID)
+ if (!AccountMgr::IsGMAccount(sec) && guid != _ownerGUID)
{
WorldPacket data;
MakeNotOwner(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
Player* newp = sObjectAccessor->FindPlayerByName(newname);
- if (newp == NULL || !IsOn(newp->GetGUID()))
+ uint64 victim = newp ? newp->GetGUID() : 0;
+
+ if (!victim || !IsOn(victim) ||
+ (newp->GetTeam() != player->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)))
{
WorldPacket data;
MakePlayerNotFound(&data, newname);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
- if (newp->GetTeam() != player->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL))
- {
- WorldPacket data;
- MakePlayerNotFound(&data, newname);
- SendToOne(&data, p);
- return;
- }
-
- players[newp->GetGUID()].SetModerator(true);
- SetOwner(newp->GetGUID());
+ playersStore[victim].SetModerator(true);
+ SetOwner(victim);
}
-void Channel::SendWhoOwner(uint64 p)
+void Channel::SendWhoOwner(uint64 guid)
{
- if (!IsOn(p))
- {
- WorldPacket data;
- MakeNotMember(&data);
- SendToOne(&data, p);
- }
- else
- {
- WorldPacket data;
+ WorldPacket data;
+ if (IsOn(guid))
MakeChannelOwner(&data);
- SendToOne(&data, p);
- }
+ else
+ MakeNotMember(&data);
+ SendToOne(&data, guid);
}
-void Channel::List(Player* player)
+void Channel::List(Player const* player)
{
- uint64 p = player->GetGUID();
+ uint64 guid = player->GetGUID();
- if (!IsOn(p))
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else
- {
- WorldPacket data(SMSG_CHANNEL_LIST, 1+(GetName().size()+1)+1+4+players.size()*(8+1));
- data << uint8(1); // channel type?
- data << GetName(); // channel name
- data << uint8(GetFlags()); // channel flags?
- size_t pos = data.wpos();
- data << uint32(0); // size of list, placeholder
+ sLog->outDebug(LOG_FILTER_CHATSYS, "SMSG_CHANNEL_LIST %s Channel: %s",
+ player->GetSession()->GetPlayerInfo().c_str(), GetName().c_str());
- uint32 gmLevelInWhoList = sWorld->getIntConfig(CONFIG_GM_LEVEL_IN_WHO_LIST);
+ WorldPacket data(SMSG_CHANNEL_LIST, 1+(GetName().size()+1)+1+4+playersStore.size()*(8+1));
+ data << uint8(1); // channel type?
+ data << GetName(); // channel name
+ data << uint8(GetFlags()); // channel flags?
- uint32 count = 0;
- for (PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
- {
- Player* member = ObjectAccessor::FindPlayer(i->first);
+ size_t pos = data.wpos();
+ data << uint32(0); // size of list, placeholder
- // PLAYER can't see MODERATOR, GAME MASTER, ADMINISTRATOR characters
- // MODERATOR, GAME MASTER, ADMINISTRATOR can see all
- if (member && (!AccountMgr::IsPlayerAccount(player->GetSession()->GetSecurity()) || member->GetSession()->GetSecurity() <= AccountTypes(gmLevelInWhoList)) &&
- member->IsVisibleGloballyFor(player))
- {
- data << uint64(i->first);
- data << uint8(i->second.flags); // flags seems to be changed...
- ++count;
- }
- }
+ uint32 gmLevelInWhoList = sWorld->getIntConfig(CONFIG_GM_LEVEL_IN_WHO_LIST);
- data.put<uint32>(pos, count);
+ uint32 count = 0;
+ for (PlayerContainer::const_iterator i = playersStore.begin(); i != playersStore.end(); ++i)
+ {
+ Player* member = ObjectAccessor::FindPlayer(i->first);
- SendToOne(&data, p);
+ // PLAYER can't see MODERATOR, GAME MASTER, ADMINISTRATOR characters
+ // MODERATOR, GAME MASTER, ADMINISTRATOR can see all
+ if (member && (!AccountMgr::IsPlayerAccount(player->GetSession()->GetSecurity()) || member->GetSession()->GetSecurity() <= AccountTypes(gmLevelInWhoList)) &&
+ member->IsVisibleGloballyFor(player))
+ {
+ data << uint64(i->first);
+ data << uint8(i->second.flags); // flags seems to be changed...
+ ++count;
+ }
}
+
+ data.put<uint32>(pos, count);
+
+ SendToOne(&data, guid);
}
-void Channel::Announce(uint64 p)
+void Channel::Announce(Player const* player)
{
- uint32 sec = 0;
- Player* player = ObjectAccessor::FindPlayer(p);
- if (player)
- sec = player->GetSession()->GetSecurity();
+ uint64 guid = player->GetGUID();
+ uint32 sec = player->GetSession()->GetSecurity();
- if (!IsOn(p))
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else if (!players[p].IsModerator() && !AccountMgr::IsGMAccount(sec))
+
+ if (!playersStore[guid].IsModerator() && !AccountMgr::IsGMAccount(sec))
{
WorldPacket data;
MakeNotModerator(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else
- {
- m_announce = !m_announce;
- WorldPacket data;
- if (m_announce)
- MakeAnnouncementsOn(&data, p);
- else
- MakeAnnouncementsOff(&data, p);
- SendToAll(&data);
+ _announce = !_announce;
- UpdateChannelInDB();
- }
+ WorldPacket data;
+ if (_announce)
+ MakeAnnouncementsOn(&data, guid);
+ else
+ MakeAnnouncementsOff(&data, guid);
+ SendToAll(&data);
+
+ UpdateChannelInDB();
}
-void Channel::Say(uint64 p, const char *what, uint32 lang)
+void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
{
- if (!what)
+ if (what.empty())
return;
+
if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL))
lang = LANG_UNIVERSAL;
- Player* player = ObjectAccessor::FindPlayer(p);
-
- if (!IsOn(p))
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
+ return;
}
- else if (players[p].IsMuted())
+
+ if (playersStore[guid].IsMuted())
{
WorldPacket data;
MakeMuted(&data);
- SendToOne(&data, p);
- }
- else
- {
- uint32 messageLength = strlen(what) + 1;
-
- WorldPacket data(SMSG_MESSAGECHAT, 1+4+8+4+m_name.size()+1+8+4+messageLength+1);
- data << (uint8)CHAT_MSG_CHANNEL;
- data << (uint32)lang;
- data << p; // 2.1.0
- data << uint32(0); // 2.1.0
- data << m_name;
- data << p;
- data << messageLength;
- data << what;
- data << uint8(player ? player->GetChatTag() : 0);
-
- SendToAll(&data, !players[p].IsModerator() ? p : false);
+ SendToOne(&data, guid);
+ return;
}
+
+ WorldPacket data(SMSG_MESSAGECHAT, 1 + 4 + 8 + 4 + _name.size() + 8 + 4 + what.size() + 1);
+ data << uint8(CHAT_MSG_CHANNEL);
+ data << uint32(lang);
+ data << uint64(guid);
+ data << uint32(0);
+ data << _name;
+ data << uint64(guid);
+ data << uint32(what.size() + 1);
+ data << what;
+ Player* player = ObjectAccessor::FindPlayer(guid);
+ data << uint8(player ? player->GetChatTag() : 0);
+
+ SendToAll(&data, !playersStore[guid].IsModerator() ? guid : false);
}
-void Channel::Invite(uint64 p, const char *newname)
+void Channel::Invite(Player const* player, std::string const& newname)
{
- if (!IsOn(p))
+ uint64 guid = player->GetGUID();
+
+ if (!IsOn(guid))
{
WorldPacket data;
MakeNotMember(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
@@ -673,7 +656,7 @@ void Channel::Invite(uint64 p, const char *newname)
{
WorldPacket data;
MakePlayerNotFound(&data, newname);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
@@ -681,19 +664,15 @@ void Channel::Invite(uint64 p, const char *newname)
{
WorldPacket data;
MakePlayerInviteBanned(&data, newname);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
- Player* player = ObjectAccessor::FindPlayer(p);
- if (!player)
- return;
-
if (newp->GetTeam() != player->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL))
{
WorldPacket data;
MakeInviteWrongFaction(&data);
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
@@ -701,45 +680,47 @@ void Channel::Invite(uint64 p, const char *newname)
{
WorldPacket data;
MakePlayerAlreadyMember(&data, newp->GetGUID());
- SendToOne(&data, p);
+ SendToOne(&data, guid);
return;
}
- WorldPacket data;
- if (!newp->GetSocial()->HasIgnore(GUID_LOPART(p)))
+ if (!newp->GetSocial()->HasIgnore(GUID_LOPART(guid)))
{
- MakeInvite(&data, p);
+ WorldPacket data;
+ MakeInvite(&data, guid);
SendToOne(&data, newp->GetGUID());
data.clear();
}
+
+ WorldPacket data;
MakePlayerInvited(&data, newp->GetName());
- SendToOne(&data, p);
+ SendToOne(&data, guid);
}
void Channel::SetOwner(uint64 guid, bool exclaim)
{
- if (m_ownerGUID)
+ if (_ownerGUID)
{
// [] will re-add player after it possible removed
- PlayerList::iterator p_itr = players.find(m_ownerGUID);
- if (p_itr != players.end())
+ PlayerContainer::iterator p_itr = playersStore.find(_ownerGUID);
+ if (p_itr != playersStore.end())
p_itr->second.SetOwner(false);
}
- m_ownerGUID = guid;
- if (m_ownerGUID)
+ _ownerGUID = guid;
+ if (_ownerGUID)
{
- uint8 oldFlag = GetPlayerFlags(m_ownerGUID);
- players[m_ownerGUID].SetModerator(true);
- players[m_ownerGUID].SetOwner(true);
+ uint8 oldFlag = GetPlayerFlags(_ownerGUID);
+ playersStore[_ownerGUID].SetModerator(true);
+ playersStore[_ownerGUID].SetOwner(true);
WorldPacket data;
- MakeModeChange(&data, m_ownerGUID, oldFlag);
+ MakeModeChange(&data, _ownerGUID, oldFlag);
SendToAll(&data);
if (exclaim)
{
- MakeOwnerChanged(&data, m_ownerGUID);
+ MakeOwnerChanged(&data, _ownerGUID);
SendToAll(&data);
}
@@ -747,36 +728,25 @@ void Channel::SetOwner(uint64 guid, bool exclaim)
}
}
-void Channel::SendToAll(WorldPacket* data, uint64 p)
+void Channel::SendToAll(WorldPacket* data, uint64 guid)
{
- for (PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
- {
- Player* player = ObjectAccessor::FindPlayer(i->first);
- if (player)
- {
- if (!p || !player->GetSocial()->HasIgnore(GUID_LOPART(p)))
+ for (PlayerContainer::const_iterator i = playersStore.begin(); i != playersStore.end(); ++i)
+ if (Player* player = ObjectAccessor::FindPlayer(i->first))
+ if (!guid || !player->GetSocial()->HasIgnore(GUID_LOPART(guid)))
player->GetSession()->SendPacket(data);
- }
- }
}
void Channel::SendToAllButOne(WorldPacket* data, uint64 who)
{
- for (PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
- {
+ for (PlayerContainer::const_iterator i = playersStore.begin(); i != playersStore.end(); ++i)
if (i->first != who)
- {
- Player* player = ObjectAccessor::FindPlayer(i->first);
- if (player)
+ if (Player* player = ObjectAccessor::FindPlayer(i->first))
player->GetSession()->SendPacket(data);
- }
- }
}
void Channel::SendToOne(WorldPacket* data, uint64 who)
{
- Player* player = ObjectAccessor::FindPlayer(who);
- if (player)
+ if (Player* player = ObjectAccessor::FindPlayer(who))
player->GetSession()->SendPacket(data);
}
@@ -790,29 +760,25 @@ void Channel::DeVoice(uint64 /*guid1*/, uint64 /*guid2*/)
}
-// done
void Channel::MakeNotifyPacket(WorldPacket* data, uint8 notify_type)
{
- data->Initialize(SMSG_CHANNEL_NOTIFY, 1+m_name.size()+1);
+ data->Initialize(SMSG_CHANNEL_NOTIFY, 1 + _name.size());
*data << uint8(notify_type);
- *data << m_name;
+ *data << _name;
}
-// done 0x00
void Channel::MakeJoined(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_JOINED_NOTICE);
*data << uint64(guid);
}
-// done 0x01
void Channel::MakeLeft(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_LEFT_NOTICE);
*data << uint64(guid);
}
-// done 0x02
void Channel::MakeYouJoined(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_YOU_JOINED_NOTICE);
@@ -821,7 +787,6 @@ void Channel::MakeYouJoined(WorldPacket* data)
*data << uint32(0);
}
-// done 0x03
void Channel::MakeYouLeft(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_YOU_LEFT_NOTICE);
@@ -829,64 +794,55 @@ void Channel::MakeYouLeft(WorldPacket* data)
*data << uint8(IsConstant());
}
-// done 0x04
void Channel::MakeWrongPassword(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_WRONG_PASSWORD_NOTICE);
}
-// done 0x05
void Channel::MakeNotMember(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_NOT_MEMBER_NOTICE);
}
-// done 0x06
void Channel::MakeNotModerator(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_NOT_MODERATOR_NOTICE);
}
-// done 0x07
void Channel::MakePasswordChanged(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_PASSWORD_CHANGED_NOTICE);
*data << uint64(guid);
}
-// done 0x08
void Channel::MakeOwnerChanged(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_OWNER_CHANGED_NOTICE);
*data << uint64(guid);
}
-// done 0x09
-void Channel::MakePlayerNotFound(WorldPacket* data, const std::string& name)
+void Channel::MakePlayerNotFound(WorldPacket* data, std::string const& name)
{
MakeNotifyPacket(data, CHAT_PLAYER_NOT_FOUND_NOTICE);
*data << name;
}
-// done 0x0A
void Channel::MakeNotOwner(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_NOT_OWNER_NOTICE);
}
-// done 0x0B
void Channel::MakeChannelOwner(WorldPacket* data)
{
std::string name = "";
- if (!sObjectMgr->GetPlayerNameByGUID(m_ownerGUID, name) || name.empty())
+ if (!sObjectMgr->GetPlayerNameByGUID(_ownerGUID, name) || name.empty())
name = "PLAYER_NOT_FOUND";
MakeNotifyPacket(data, CHAT_CHANNEL_OWNER_NOTICE);
- *data << ((IsConstant() || !m_ownerGUID) ? "Nobody" : name);
+ *data << ((IsConstant() || !_ownerGUID) ? "Nobody" : name);
}
-// done 0x0C
void Channel::MakeModeChange(WorldPacket* data, uint64 guid, uint8 oldflags)
{
MakeNotifyPacket(data, CHAT_MODE_CHANGE_NOTICE);
@@ -895,27 +851,23 @@ void Channel::MakeModeChange(WorldPacket* data, uint64 guid, uint8 oldflags)
*data << uint8(GetPlayerFlags(guid));
}
-// done 0x0D
void Channel::MakeAnnouncementsOn(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_ANNOUNCEMENTS_ON_NOTICE);
*data << uint64(guid);
}
-// done 0x0E
void Channel::MakeAnnouncementsOff(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_ANNOUNCEMENTS_OFF_NOTICE);
*data << uint64(guid);
}
-// done 0x11
void Channel::MakeMuted(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_MUTED_NOTICE);
}
-// done 0x12
void Channel::MakePlayerKicked(WorldPacket* data, uint64 bad, uint64 good)
{
MakeNotifyPacket(data, CHAT_PLAYER_KICKED_NOTICE);
@@ -923,13 +875,11 @@ void Channel::MakePlayerKicked(WorldPacket* data, uint64 bad, uint64 good)
*data << uint64(good);
}
-// done 0x13
void Channel::MakeBanned(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_BANNED_NOTICE);
}
-// done 0x14
void Channel::MakePlayerBanned(WorldPacket* data, uint64 bad, uint64 good)
{
MakeNotifyPacket(data, CHAT_PLAYER_BANNED_NOTICE);
@@ -937,7 +887,6 @@ void Channel::MakePlayerBanned(WorldPacket* data, uint64 bad, uint64 good)
*data << uint64(good);
}
-// done 0x15
void Channel::MakePlayerUnbanned(WorldPacket* data, uint64 bad, uint64 good)
{
MakeNotifyPacket(data, CHAT_PLAYER_UNBANNED_NOTICE);
@@ -945,91 +894,77 @@ void Channel::MakePlayerUnbanned(WorldPacket* data, uint64 bad, uint64 good)
*data << uint64(good);
}
-// done 0x16
void Channel::MakePlayerNotBanned(WorldPacket* data, const std::string &name)
{
MakeNotifyPacket(data, CHAT_PLAYER_NOT_BANNED_NOTICE);
*data << name;
}
-// done 0x17
void Channel::MakePlayerAlreadyMember(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_PLAYER_ALREADY_MEMBER_NOTICE);
*data << uint64(guid);
}
-// done 0x18
void Channel::MakeInvite(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_INVITE_NOTICE);
*data << uint64(guid);
}
-// done 0x19
void Channel::MakeInviteWrongFaction(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_INVITE_WRONG_FACTION_NOTICE);
}
-// done 0x1A
void Channel::MakeWrongFaction(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_WRONG_FACTION_NOTICE);
}
-// done 0x1B
void Channel::MakeInvalidName(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_INVALID_NAME_NOTICE);
}
-// done 0x1C
void Channel::MakeNotModerated(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_NOT_MODERATED_NOTICE);
}
-// done 0x1D
void Channel::MakePlayerInvited(WorldPacket* data, const std::string& name)
{
MakeNotifyPacket(data, CHAT_PLAYER_INVITED_NOTICE);
*data << name;
}
-// done 0x1E
void Channel::MakePlayerInviteBanned(WorldPacket* data, const std::string& name)
{
MakeNotifyPacket(data, CHAT_PLAYER_INVITE_BANNED_NOTICE);
*data << name;
}
-// done 0x1F
void Channel::MakeThrottled(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_THROTTLED_NOTICE);
}
-// done 0x20
void Channel::MakeNotInArea(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_NOT_IN_AREA_NOTICE);
}
-// done 0x21
void Channel::MakeNotInLfg(WorldPacket* data)
{
MakeNotifyPacket(data, CHAT_NOT_IN_LFG_NOTICE);
}
-// done 0x22
void Channel::MakeVoiceOn(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_VOICE_ON_NOTICE);
*data << uint64(guid);
}
-// done 0x23
void Channel::MakeVoiceOff(WorldPacket* data, uint64 guid)
{
MakeNotifyPacket(data, CHAT_VOICE_OFF_NOTICE);
@@ -1038,13 +973,7 @@ void Channel::MakeVoiceOff(WorldPacket* data, uint64 guid)
void Channel::JoinNotify(uint64 guid)
{
- WorldPacket data;
-
- if (IsConstant())
- data.Initialize(SMSG_USERLIST_ADD, 8+1+1+4+GetName().size()+1);
- else
- data.Initialize(SMSG_USERLIST_UPDATE, 8+1+1+4+GetName().size()+1);
-
+ WorldPacket data(IsConstant() ? SMSG_USERLIST_ADD : SMSG_USERLIST_UPDATE, 8 + 1 + 1 + 4 + GetName().size());
data << uint64(guid);
data << uint8(GetPlayerFlags(guid));
data << uint8(GetFlags());
@@ -1059,7 +988,7 @@ void Channel::JoinNotify(uint64 guid)
void Channel::LeaveNotify(uint64 guid)
{
- WorldPacket data(SMSG_USERLIST_REMOVE, 8+1+4+GetName().size()+1);
+ WorldPacket data(SMSG_USERLIST_REMOVE, 8 + 1 + 4 + GetName().size());
data << uint64(guid);
data << uint8(GetFlags());
data << uint32(GetNumPlayers());
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index bdb5112c7ef..c816cd91257 100755
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -26,7 +26,6 @@
#include "Common.h"
#include "Opcodes.h"
-#include "Player.h"
#include "WorldPacket.h"
enum ChatNotify
@@ -52,10 +51,10 @@ enum ChatNotify
// CHAT_MODERATION_OFF_NOTICE = 0x10, //+ "[%s] Channel moderation disabled by %s.";
CHAT_MUTED_NOTICE = 0x11, //+ "[%s] You do not have permission to speak.";
CHAT_PLAYER_KICKED_NOTICE = 0x12, //? "[%s] Player %s kicked by %s.";
- CHAT_BANNED_NOTICE = 0x13, //+ "[%s] You are banned from that channel.";
- CHAT_PLAYER_BANNED_NOTICE = 0x14, //? "[%s] Player %s banned by %s.";
+ CHAT_BANNED_NOTICE = 0x13, //+ "[%s] You are bannedStore from that channel.";
+ CHAT_PLAYER_BANNED_NOTICE = 0x14, //? "[%s] Player %s bannedStore by %s.";
CHAT_PLAYER_UNBANNED_NOTICE = 0x15, //? "[%s] Player %s unbanned by %s.";
- CHAT_PLAYER_NOT_BANNED_NOTICE = 0x16, //+ "[%s] Player %s is not banned.";
+ CHAT_PLAYER_NOT_BANNED_NOTICE = 0x16, //+ "[%s] Player %s is not bannedStore.";
CHAT_PLAYER_ALREADY_MEMBER_NOTICE = 0x17, //+ "[%s] Player %s is already on the channel.";
CHAT_INVITE_NOTICE = 0x18, //+ "%2$s has invited you to join the channel '%1$s'.";
CHAT_INVITE_WRONG_FACTION_NOTICE = 0x19, //+ "Target is in the wrong alliance for %s.";
@@ -63,7 +62,7 @@ enum ChatNotify
CHAT_INVALID_NAME_NOTICE = 0x1B, //+ "Invalid channel name";
CHAT_NOT_MODERATED_NOTICE = 0x1C, //+ "%s is not moderated";
CHAT_PLAYER_INVITED_NOTICE = 0x1D, //+ "[%s] You invited %s to join the channel";
- CHAT_PLAYER_INVITE_BANNED_NOTICE = 0x1E, //+ "[%s] %s has been banned.";
+ CHAT_PLAYER_INVITE_BANNED_NOTICE = 0x1E, //+ "[%s] %s has been bannedStore.";
CHAT_THROTTLED_NOTICE = 0x1F, //+ "[%s] The number of messages that can be sent to this channel is limited, please wait to send another message.";
CHAT_NOT_IN_AREA_NOTICE = 0x20, //+ "[%s] You are not in the correct area for this channel."; -- The user is trying to send a chat to a zone specific channel, and they're not physically in that zone.
CHAT_NOT_IN_LFG_NOTICE = 0x21, //+ "[%s] You must be queued in looking for group before joining this channel."; -- The user must be in the looking for group system to join LFG chat channels.
@@ -146,18 +145,45 @@ class Channel
}
};
- typedef std::map<uint64, PlayerInfo> PlayerList;
- PlayerList players;
- typedef std::set<uint64> BannedList;
- BannedList banned;
- bool m_announce;
- bool m_ownership;
- std::string m_name;
- std::string m_password;
- uint8 m_flags;
- uint32 m_channelId;
- uint64 m_ownerGUID;
- bool m_IsSaved;
+ public:
+ Channel(std::string const& name, uint32 channel_id, uint32 Team = 0);
+ std::string const& GetName() const { return _name; }
+ uint32 GetChannelId() const { return _channelId; }
+ bool IsConstant() const { return _channelId != 0; }
+ bool IsAnnounce() const { return _announce; }
+ bool IsLFG() const { return GetFlags() & CHANNEL_FLAG_LFG; }
+ std::string const& GetPassword() const { return _password; }
+ void SetPassword(std::string const& npassword) { _password = npassword; }
+ void SetAnnounce(bool nannounce) { _announce = nannounce; }
+ uint32 GetNumPlayers() const { return playersStore.size(); }
+ uint8 GetFlags() const { return _flags; }
+ bool HasFlag(uint8 flag) const { return _flags & flag; }
+
+ void JoinChannel(Player* player, std::string const& pass);
+ void LeaveChannel(Player* player, bool send = true);
+ void KickOrBan(Player const* player, std::string const& badname, bool ban);
+ void Kick(Player const* player, std::string const& badname) { KickOrBan(player, badname, false); }
+ void Ban(Player const* player, std::string const& badname) { KickOrBan(player, badname, true); }
+ void UnBan(Player const* player, std::string const& badname);
+ void Password(Player const* player, std::string const& pass);
+ void SetMode(Player const* player, std::string const& p2n, bool mod, bool set);
+ void SetOwner(uint64 guid, bool exclaim = true);
+ void SetOwner(Player const* player, std::string const& name);
+ void SendWhoOwner(uint64 guid);
+ void SetModerator(Player const* player, std::string const& newname) { SetMode(player, newname, true, true); }
+ void UnsetModerator(Player const* player, std::string const& newname) { SetMode(player, newname, true, false); }
+ void SetMute(Player const* player, std::string const& newname) { SetMode(player, newname, false, true); }
+ void UnsetMute(Player const* player, std::string const& newname) { SetMode(player, newname, false, false); }
+ void List(Player const* player);
+ void Announce(Player const* player);
+ void Say(uint64 guid, std::string const& what, uint32 lang);
+ void Invite(Player const* player, std::string const& newp);
+ void Voice(uint64 guid1, uint64 guid2);
+ void DeVoice(uint64 guid1, uint64 guid2);
+ void JoinNotify(uint64 guid); // invisible notify
+ void LeaveNotify(uint64 guid); // invisible notify
+ void SetOwnership(bool ownership) { _ownership = ownership; };
+ static void CleanOldChannelsInDB();
private:
// initial packet data (notify type and channel name)
@@ -198,91 +224,62 @@ class Channel
void MakeVoiceOn(WorldPacket* data, uint64 guid); //+ 0x22
void MakeVoiceOff(WorldPacket* data, uint64 guid); //+ 0x23
- void SendToAll(WorldPacket* data, uint64 p = 0);
+ void SendToAll(WorldPacket* data, uint64 guid = 0);
void SendToAllButOne(WorldPacket* data, uint64 who);
void SendToOne(WorldPacket* data, uint64 who);
- bool IsOn(uint64 who) const { return players.find(who) != players.end(); }
- bool IsBanned(uint64 guid) const { return banned.find(guid) != banned.end(); }
+ bool IsOn(uint64 who) const { return playersStore.find(who) != playersStore.end(); }
+ bool IsBanned(uint64 guid) const { return bannedStore.find(guid) != bannedStore.end(); }
void UpdateChannelInDB() const;
void UpdateChannelUseageInDB() const;
- uint8 GetPlayerFlags(uint64 p) const
+ uint8 GetPlayerFlags(uint64 guid) const
{
- PlayerList::const_iterator p_itr = players.find(p);
- if (p_itr == players.end())
- return 0;
-
- return p_itr->second.flags;
+ PlayerContainer::const_iterator itr = playersStore.find(guid);
+ return itr != playersStore.end() ? itr->second.flags : 0;
}
- void SetModerator(uint64 p, bool set)
+ void SetModerator(uint64 guid, bool set)
{
- if (players[p].IsModerator() != set)
+ if (playersStore[guid].IsModerator() != set)
{
- uint8 oldFlag = GetPlayerFlags(p);
- players[p].SetModerator(set);
+ uint8 oldFlag = GetPlayerFlags(guid);
+ playersStore[guid].SetModerator(set);
WorldPacket data;
- MakeModeChange(&data, p, oldFlag);
+ MakeModeChange(&data, guid, oldFlag);
SendToAll(&data);
}
}
- void SetMute(uint64 p, bool set)
+ void SetMute(uint64 guid, bool set)
{
- if (players[p].IsMuted() != set)
+ if (playersStore[guid].IsMuted() != set)
{
- uint8 oldFlag = GetPlayerFlags(p);
- players[p].SetMuted(set);
+ uint8 oldFlag = GetPlayerFlags(guid);
+ playersStore[guid].SetMuted(set);
WorldPacket data;
- MakeModeChange(&data, p, oldFlag);
+ MakeModeChange(&data, guid, oldFlag);
SendToAll(&data);
}
}
- public:
- uint32 m_Team;
- Channel(std::string const& name, uint32 channel_id, uint32 Team = 0);
- std::string const& GetName() const { return m_name; }
- uint32 GetChannelId() const { return m_channelId; }
- bool IsConstant() const { return m_channelId != 0; }
- bool IsAnnounce() const { return m_announce; }
- bool IsLFG() const { return GetFlags() & CHANNEL_FLAG_LFG; }
- std::string const& GetPassword() const { return m_password; }
- void SetPassword(std::string const& npassword) { m_password = npassword; }
- void SetAnnounce(bool nannounce) { m_announce = nannounce; }
- uint32 GetNumPlayers() const { return players.size(); }
- uint8 GetFlags() const { return m_flags; }
- bool HasFlag(uint8 flag) const { return m_flags & flag; }
+ typedef std::map<uint64, PlayerInfo> PlayerContainer;
+ typedef std::set<uint64> BannedContainer;
- void Join(uint64 p, const char *pass);
- void Leave(uint64 p, bool send = true);
- void KickOrBan(uint64 good, const char *badname, bool ban);
- void Kick(uint64 good, const char *badname) { KickOrBan(good, badname, false); }
- void Ban(uint64 good, const char *badname) { KickOrBan(good, badname, true); }
- void UnBan(uint64 good, const char *badname);
- void Password(uint64 p, const char *pass);
- void SetMode(uint64 p, const char *p2n, bool mod, bool set);
- void SetOwner(uint64 p, bool exclaim = true);
- void SetOwner(uint64 p, const char *newname);
- void SendWhoOwner(uint64 p);
- void SetModerator(uint64 p, const char *newname) { SetMode(p, newname, true, true); }
- void UnsetModerator(uint64 p, const char *newname) { SetMode(p, newname, true, false); }
- void SetMute(uint64 p, const char *newname) { SetMode(p, newname, false, true); }
- void UnsetMute(uint64 p, const char *newname) { SetMode(p, newname, false, false); }
- void List(Player* p);
- void Announce(uint64 p);
- void Say(uint64 p, const char *what, uint32 lang);
- void Invite(uint64 p, const char *newp);
- void Voice(uint64 guid1, uint64 guid2);
- void DeVoice(uint64 guid1, uint64 guid2);
- void JoinNotify(uint64 guid); // invisible notify
- void LeaveNotify(uint64 guid); // invisible notify
- void SetOwnership(bool ownership) { m_ownership = ownership; };
- static void CleanOldChannelsInDB();
+ bool _announce;
+ bool _ownership;
+ bool _IsSaved;
+ uint8 _flags;
+ uint32 _channelId;
+ uint32 _Team;
+ uint64 _ownerGUID;
+ std::string _name;
+ std::string _password;
+ PlayerContainer playersStore;
+ BannedContainer bannedStore;
};
#endif
diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp
index 78b71744e0e..acd85f11ed8 100755
--- a/src/server/game/Chat/Channels/ChannelMgr.cpp
+++ b/src/server/game/Chat/Channels/ChannelMgr.cpp
@@ -17,7 +17,7 @@
*/
#include "ChannelMgr.h"
-
+#include "Player.h"
#include "World.h"
ChannelMgr::~ChannelMgr()
@@ -35,13 +35,14 @@ ChannelMgr* ChannelMgr::forTeam(uint32 team)
if (team == ALLIANCE)
return ACE_Singleton<AllianceChannelMgr, ACE_Null_Mutex>::instance();
+
if (team == HORDE)
return ACE_Singleton<HordeChannelMgr, ACE_Null_Mutex>::instance();
return NULL;
}
-Channel* ChannelMgr::GetJoinChannel(std::string const& name, uint32 channel_id)
+Channel* ChannelMgr::GetJoinChannel(std::string const& name, uint32 channelId)
{
std::wstring wname;
Utf8toWStr(name, wname);
@@ -51,7 +52,7 @@ Channel* ChannelMgr::GetJoinChannel(std::string const& name, uint32 channel_id)
if (i == channels.end())
{
- Channel* nchan = new Channel(name, channel_id, team);
+ Channel* nchan = new Channel(name, channelId, team);
channels[wname] = nchan;
return nchan;
}
@@ -78,8 +79,8 @@ Channel* ChannelMgr::GetChannel(std::string const& name, Player* player, bool pk
return NULL;
}
- else
- return i->second;
+
+ return i->second;
}
void ChannelMgr::LeftChannel(std::string const& name)
@@ -95,7 +96,7 @@ void ChannelMgr::LeftChannel(std::string const& name)
Channel* channel = i->second;
- if (channel->GetNumPlayers() == 0 && !channel->IsConstant())
+ if (!channel->GetNumPlayers() && !channel->IsConstant())
{
channels.erase(wname);
delete channel;
@@ -104,6 +105,6 @@ void ChannelMgr::LeftChannel(std::string const& name)
void ChannelMgr::MakeNotOnPacket(WorldPacket* data, std::string const& name)
{
- data->Initialize(SMSG_CHANNEL_NOTIFY, (1+10)); // we guess size
- (*data) << (uint8)0x05 << name;
+ data->Initialize(SMSG_CHANNEL_NOTIFY, 1 + name.size());
+ (*data) << uint8(5) << name;
}
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index 7faf05a577c..c1ea96b0db1 100755
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -1169,6 +1169,11 @@ int ChatHandler::GetSessionDbLocaleIndex() const
return m_session->GetSessionDbLocaleIndex();
}
+std::string ChatHandler::GetNameLink(Player* chr) const
+{
+ return playerLink(chr->GetName());
+}
+
const char *CliHandler::GetTrinityString(int32 entry) const
{
return sObjectMgr->GetTrinityStringForDBCLocale(entry);
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 0c1b22182e1..3b08fd9aa76 100755
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -20,16 +20,18 @@
#define TRINITYCORE_CHAT_H
#include "SharedDefines.h"
-#include "Player.h"
+#include "WorldSession.h"
#include <vector>
class ChatHandler;
-class WorldSession;
-class WorldObject;
class Creature;
+class Group;
class Player;
class Unit;
+class WorldSession;
+class WorldObject;
+
struct GameTele;
class ChatCommand
@@ -48,7 +50,6 @@ class ChatHandler
public:
WorldSession* GetSession() { return m_session; }
explicit ChatHandler(WorldSession* session) : m_session(session), sentErrorMessage(false) {}
- explicit ChatHandler(Player* player) : m_session(player->GetSession()), sentErrorMessage(false) {}
virtual ~ChatHandler() {}
static void FillMessageData(WorldPacket* data, WorldSession* session, uint8 type, uint32 language, const char *channelName, uint64 target_guid, const char *message, Unit* speaker);
@@ -115,7 +116,7 @@ class ChatHandler
bool extractPlayerTarget(char* args, Player** player, uint64* player_guid = NULL, std::string* player_name = NULL);
std::string playerLink(std::string const& name) const { return m_session ? "|cffffffff|Hplayer:"+name+"|h["+name+"]|h|r" : name; }
- std::string GetNameLink(Player* chr) const { return playerLink(chr->GetName()); }
+ std::string GetNameLink(Player* chr) const;
GameObject* GetNearbyGameObject();
GameObject* GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid, uint32 entry);
diff --git a/src/server/game/Chat/ChatLink.cpp b/src/server/game/Chat/ChatLink.cpp
index d26f937c43d..a9c72e1112e 100644
--- a/src/server/game/Chat/ChatLink.cpp
+++ b/src/server/game/Chat/ChatLink.cpp
@@ -19,6 +19,7 @@
#include "SpellMgr.h"
#include "ObjectMgr.h"
#include "SpellInfo.h"
+#include "DBCStores.h"
// Supported shift-links (client generated and server side)
// |color|Hachievement:achievement_id:player_guid:0:0:0:0:0:0:0:0|h[name]|h|r
@@ -74,7 +75,7 @@ inline bool CheckDelimiter(std::istringstream& iss, char delimiter, const char*
char c = iss.peek();
if (c != delimiter)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid %s link structure ('%c' expected, '%c' found)", iss.str().c_str(), context, delimiter, c);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid %s link structure ('%c' expected, '%c' found)", iss.str().c_str(), context, delimiter, c);
return false;
}
iss.ignore(1);
@@ -108,20 +109,20 @@ bool ItemChatLink::Initialize(std::istringstream& iss)
uint32 itemEntry = 0;
if (!ReadUInt32(iss, itemEntry))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading item entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading item entry", iss.str().c_str());
return false;
}
// Validate item
_item = sObjectMgr->GetItemTemplate(itemEntry);
if (!_item)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid itemEntry %u in |item command", iss.str().c_str(), itemEntry);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid itemEntry %u in |item command", iss.str().c_str(), itemEntry);
return false;
}
// Validate item's color
if (_color != ItemQualityColors[_item->Quality])
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked item has color %u, but user claims %u", iss.str().c_str(), ItemQualityColors[_item->Quality], _color);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked item has color %u, but user claims %u", iss.str().c_str(), ItemQualityColors[_item->Quality], _color);
return false;
}
// Number of various item properties after item entry
@@ -135,7 +136,7 @@ bool ItemChatLink::Initialize(std::istringstream& iss)
int32 id = 0;
if (!ReadInt32(iss, id))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading item property (%u)", iss.str().c_str(), index);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading item property (%u)", iss.str().c_str(), index);
return false;
}
if (id && (index == randomPropertyPosition))
@@ -146,7 +147,7 @@ bool ItemChatLink::Initialize(std::istringstream& iss)
_property = sItemRandomPropertiesStore.LookupEntry(id);
if (!_property)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid item property id %u in |item command", iss.str().c_str(), id);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid item property id %u in |item command", iss.str().c_str(), id);
return false;
}
}
@@ -155,7 +156,7 @@ bool ItemChatLink::Initialize(std::istringstream& iss)
_suffix = sItemRandomSuffixStore.LookupEntry(-id);
if (!_suffix)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid item suffix id %u in |item command", iss.str().c_str(), -id);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid item suffix id %u in |item command", iss.str().c_str(), -id);
return false;
}
}
@@ -197,7 +198,7 @@ bool ItemChatLink::ValidateName(char* buffer, const char* context)
}
}
if (!res)
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked item (id: %u) name wasn't found in any localization", context, _item->ItemId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked item (id: %u) name wasn't found in any localization", context, _item->ItemId);
return res;
}
@@ -209,14 +210,14 @@ bool QuestChatLink::Initialize(std::istringstream& iss)
uint32 questId = 0;
if (!ReadUInt32(iss, questId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading quest entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading quest entry", iss.str().c_str());
return false;
}
// Validate quest
_quest = sObjectMgr->GetQuestTemplate(questId);
if (!_quest)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): quest template %u not found", iss.str().c_str(), questId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): quest template %u not found", iss.str().c_str(), questId);
return false;
}
// Check delimiter
@@ -225,13 +226,13 @@ bool QuestChatLink::Initialize(std::istringstream& iss)
// Read quest level
if (!ReadInt32(iss, _questLevel))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading quest level", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading quest level", iss.str().c_str());
return false;
}
// Validate quest level
if (_questLevel >= STRONG_MAX_LEVEL)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): quest level %d is too big", iss.str().c_str(), _questLevel);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): quest level %d is too big", iss.str().c_str(), _questLevel);
return false;
}
return true;
@@ -251,7 +252,7 @@ bool QuestChatLink::ValidateName(char* buffer, const char* context)
break;
}
if (!res)
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked quest (id: %u) title wasn't found in any localization", context, _quest->GetQuestId());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked quest (id: %u) title wasn't found in any localization", context, _quest->GetQuestId());
return res;
}
@@ -265,14 +266,14 @@ bool SpellChatLink::Initialize(std::istringstream& iss)
uint32 spellId = 0;
if (!ReadUInt32(iss, spellId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading spell entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading spell entry", iss.str().c_str());
return false;
}
// Validate spell
_spell = sSpellMgr->GetSpellInfo(spellId);
if (!_spell)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |spell command", iss.str().c_str(), spellId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |spell command", iss.str().c_str(), spellId);
return false;
}
return true;
@@ -288,19 +289,19 @@ bool SpellChatLink::ValidateName(char* buffer, const char* context)
SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(_spell->Id);
if (bounds.first == bounds.second)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): skill line not found for spell %u", context, _spell->Id);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): skill line not found for spell %u", context, _spell->Id);
return false;
}
SkillLineAbilityEntry const* skillInfo = bounds.first->second;
if (!skillInfo)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): skill line ability not found for spell %u", context, _spell->Id);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): skill line ability not found for spell %u", context, _spell->Id);
return false;
}
SkillLineEntry const* skillLine = sSkillLineStore.LookupEntry(skillInfo->skillId);
if (!skillLine)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): skill line not found for skill %u", context, skillInfo->skillId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): skill line not found for skill %u", context, skillInfo->skillId);
return false;
}
@@ -326,7 +327,7 @@ bool SpellChatLink::ValidateName(char* buffer, const char* context)
}
if (!res)
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked spell (id: %u) name wasn't found in any localization", context, _spell->Id);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked spell (id: %u) name wasn't found in any localization", context, _spell->Id);
return res;
}
@@ -340,14 +341,14 @@ bool AchievementChatLink::Initialize(std::istringstream& iss)
uint32 achievementId = 0;
if (!ReadUInt32(iss, achievementId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement entry", iss.str().c_str());
return false;
}
// Validate achievement
_achievement = sAchievementStore.LookupEntry(achievementId);
if (!_achievement)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid achivement id %u in |achievement command", iss.str().c_str(), achievementId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid achivement id %u in |achievement command", iss.str().c_str(), achievementId);
return false;
}
// Check delimiter
@@ -356,7 +357,7 @@ bool AchievementChatLink::Initialize(std::istringstream& iss)
// Read HEX
if (!ReadHex(iss, _guid, 0))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid hexadecimal number while reading char's guid", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid hexadecimal number while reading char's guid", iss.str().c_str());
return false;
}
// Skip progress
@@ -368,7 +369,7 @@ bool AchievementChatLink::Initialize(std::istringstream& iss)
if (!ReadUInt32(iss, _data[index]))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement property (%u)", iss.str().c_str(), index);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement property (%u)", iss.str().c_str(), index);
return false;
}
}
@@ -388,7 +389,7 @@ bool AchievementChatLink::ValidateName(char* buffer, const char* context)
}
if (!res)
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked achievement (id: %u) name wasn't found in any localization", context, _achievement->ID);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): linked achievement (id: %u) name wasn't found in any localization", context, _achievement->ID);
return res;
}
@@ -402,14 +403,14 @@ bool TradeChatLink::Initialize(std::istringstream& iss)
uint32 spellId = 0;
if (!ReadUInt32(iss, spellId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement entry", iss.str().c_str());
return false;
}
// Validate spell
_spell = sSpellMgr->GetSpellInfo(spellId);
if (!_spell)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |trade command", iss.str().c_str(), spellId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |trade command", iss.str().c_str(), spellId);
return false;
}
// Check delimiter
@@ -418,7 +419,7 @@ bool TradeChatLink::Initialize(std::istringstream& iss)
// Minimum talent level
if (!ReadInt32(iss, _minSkillLevel))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading minimum talent level", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading minimum talent level", iss.str().c_str());
return false;
}
// Check delimiter
@@ -427,7 +428,7 @@ bool TradeChatLink::Initialize(std::istringstream& iss)
// Maximum talent level
if (!ReadInt32(iss, _maxSkillLevel))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading maximum talent level", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading maximum talent level", iss.str().c_str());
return false;
}
// Check delimiter
@@ -436,7 +437,7 @@ bool TradeChatLink::Initialize(std::istringstream& iss)
// Something hexadecimal
if (!ReadHex(iss, _guid, 0))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement's owner guid", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading achievement's owner guid", iss.str().c_str());
return false;
}
// Skip base64 encoded stuff
@@ -453,21 +454,21 @@ bool TalentChatLink::Initialize(std::istringstream& iss)
// Read talent entry
if (!ReadUInt32(iss, _talentId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading talent entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading talent entry", iss.str().c_str());
return false;
}
// Validate talent
TalentEntry const* talentInfo = sTalentStore.LookupEntry(_talentId);
if (!talentInfo)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid talent id %u in |talent command", iss.str().c_str(), _talentId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid talent id %u in |talent command", iss.str().c_str(), _talentId);
return false;
}
// Validate talent's spell
_spell = sSpellMgr->GetSpellInfo(talentInfo->RankID[0]);
if (!_spell)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |trade command", iss.str().c_str(), talentInfo->RankID[0]);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |trade command", iss.str().c_str(), talentInfo->RankID[0]);
return false;
}
// Delimiter
@@ -476,7 +477,7 @@ bool TalentChatLink::Initialize(std::istringstream& iss)
// Rank
if (!ReadInt32(iss, _rankId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading talent rank", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading talent rank", iss.str().c_str());
return false;
}
return true;
@@ -492,14 +493,14 @@ bool EnchantmentChatLink::Initialize(std::istringstream& iss)
uint32 spellId = 0;
if (!ReadUInt32(iss, spellId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading enchantment spell entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading enchantment spell entry", iss.str().c_str());
return false;
}
// Validate spell
_spell = sSpellMgr->GetSpellInfo(spellId);
if (!_spell)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |enchant command", iss.str().c_str(), spellId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |enchant command", iss.str().c_str(), spellId);
return false;
}
return true;
@@ -514,7 +515,7 @@ bool GlyphChatLink::Initialize(std::istringstream& iss)
// Slot
if (!ReadUInt32(iss, _slotId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading slot id", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading slot id", iss.str().c_str());
return false;
}
// Check delimiter
@@ -524,21 +525,21 @@ bool GlyphChatLink::Initialize(std::istringstream& iss)
uint32 glyphId = 0;
if (!ReadUInt32(iss, glyphId))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading glyph entry", iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly while reading glyph entry", iss.str().c_str());
return false;
}
// Validate glyph
_glyph = sGlyphPropertiesStore.LookupEntry(glyphId);
if (!_glyph)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid glyph id %u in |glyph command", iss.str().c_str(), glyphId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid glyph id %u in |glyph command", iss.str().c_str(), glyphId);
return false;
}
// Validate glyph's spell
_spell = sSpellMgr->GetSpellInfo(_glyph->SpellId);
if (!_spell)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |glyph command", iss.str().c_str(), _glyph->SpellId);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid spell id %u in |glyph command", iss.str().c_str(), _glyph->SpellId);
return false;
}
return true;
@@ -576,14 +577,14 @@ bool LinkExtractor::IsValidMessage()
}
else if (_iss.get() != PIPE_CHAR)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence aborted unexpectedly", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence aborted unexpectedly", _iss.str().c_str());
return false;
}
// pipe has always to be followed by at least one char
if (_iss.peek() == '\0')
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): pipe followed by '\\0'", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): pipe followed by '\\0'", _iss.str().c_str());
return false;
}
@@ -606,14 +607,14 @@ bool LinkExtractor::IsValidMessage()
}
else
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid sequence, expected '%c' but got '%c'", _iss.str().c_str(), *validSequenceIterator, commandChar);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid sequence, expected '%c' but got '%c'", _iss.str().c_str(), *validSequenceIterator, commandChar);
return false;
}
}
else if (validSequence != validSequenceIterator)
{
// no escaped pipes in sequences
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got escaped pipe in sequence", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got escaped pipe in sequence", _iss.str().c_str());
return false;
}
@@ -622,7 +623,7 @@ bool LinkExtractor::IsValidMessage()
case 'c':
if (!ReadHex(_iss, color, 8))
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid hexadecimal number while reading color", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): invalid hexadecimal number while reading color", _iss.str().c_str());
return false;
}
break;
@@ -631,7 +632,7 @@ bool LinkExtractor::IsValidMessage()
_iss.getline(buffer, 256, DELIMITER);
if (_iss.eof())
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly", _iss.str().c_str());
return false;
}
@@ -653,7 +654,7 @@ bool LinkExtractor::IsValidMessage()
link = new GlyphChatLink();
else
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): user sent unsupported link type '%s'", _iss.str().c_str(), buffer);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): user sent unsupported link type '%s'", _iss.str().c_str(), buffer);
return false;
}
_links.push_back(link);
@@ -668,13 +669,13 @@ bool LinkExtractor::IsValidMessage()
// links start with '['
if (_iss.get() != '[')
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): link caption doesn't start with '['", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): link caption doesn't start with '['", _iss.str().c_str());
return false;
}
_iss.getline(buffer, 256, ']');
if (_iss.eof())
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): sequence finished unexpectedly", _iss.str().c_str());
return false;
}
@@ -692,7 +693,7 @@ bool LinkExtractor::IsValidMessage()
// no further payload
break;
default:
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid command |%c", _iss.str().c_str(), commandChar);
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): got invalid command |%c", _iss.str().c_str(), commandChar);
return false;
}
}
@@ -700,7 +701,7 @@ bool LinkExtractor::IsValidMessage()
// check if every opened sequence was also closed properly
if (validSequence != validSequenceIterator)
{
- sLog->outDebug(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): EOF in active sequence", _iss.str().c_str());
+ sLog->outTrace(LOG_FILTER_CHATSYS, "ChatHandler::isValidChatMessage('%s'): EOF in active sequence", _iss.str().c_str());
return false;
}
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 72f00406c69..2f3cb0fbaaf 100755
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -16,15 +16,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Player.h"
-#include "SpellAuras.h"
-#include "SpellMgr.h"
+#include "ConditionMgr.h"
#include "GameEventMgr.h"
-#include "ObjectMgr.h"
#include "InstanceScript.h"
-#include "ConditionMgr.h"
-#include "ScriptMgr.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ReputationMgr.h"
#include "ScriptedCreature.h"
+#include "ScriptMgr.h"
+#include "SpellAuras.h"
+#include "SpellMgr.h"
#include "Spell.h"
// Checks if object meets the condition
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index 57af0562dcd..7b0dc1f20bf 100755
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -19,8 +19,11 @@
#ifndef TRINITY_CONDITIONMGR_H
#define TRINITY_CONDITIONMGR_H
-#include "LootMgr.h"
+#include "Define.h"
+#include "Errors.h"
#include <ace/Singleton.h>
+#include <list>
+#include <map>
class Player;
class Unit;
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index a209d9b6cf6..cc23036c534 100755
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -21,6 +21,7 @@
#include "OutdoorPvP.h"
#include "SpellMgr.h"
#include "VMapManager2.h"
+#include "Player.h"
namespace DisableMgr
{
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 12ec7206141..4fa2e3e748e 100755
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -19,18 +19,21 @@
#ifndef DBCENUMS_H
#define DBCENUMS_H
-// Client expected level limitation, like as used in DBC item max levels for "until max player level"
-// use as default max player level, must be fit max level for used client
-// also see MAX_LEVEL and STRONG_MAX_LEVEL define
-#define DEFAULT_MAX_LEVEL 80
-
-// client supported max level for player/pets/etc. Avoid overflow or client stability affected.
-// also see GT_MAX_LEVEL define
-#define MAX_LEVEL 100
-
-// Server side limitation. Base at used code requirements.
-// also see MAX_LEVEL and GT_MAX_LEVEL define
-#define STRONG_MAX_LEVEL 255
+enum LevelLimit
+{
+ // Client expected level limitation, like as used in DBC item max levels for "until max player level"
+ // use as default max player level, must be fit max level for used client
+ // also see MAX_LEVEL and STRONG_MAX_LEVEL define
+ DEFAULT_MAX_LEVEL = 80,
+
+ // client supported max level for player/pets/etc. Avoid overflow or client stability affected.
+ // also see GT_MAX_LEVEL define
+ MAX_LEVEL = 100,
+
+ // Server side limitation. Base at used code requirements.
+ // also see MAX_LEVEL and GT_MAX_LEVEL define
+ STRONG_MAX_LEVEL = 255,
+};
enum BattlegroundBracketId // bracketId for level ranges
{
@@ -58,16 +61,16 @@ enum AchievementFaction
enum AchievementFlags
{
- ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete)
- ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only
- ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx"
- ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all reqirements (and calculate max value)
- ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??)
- ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value)
- ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value)
- ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value)
- ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, //
- ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200 //
+ ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete)
+ ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only
+ ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx"
+ ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all requirements (and calculate max value)
+ ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??)
+ ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value)
+ ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value)
+ ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value)
+ ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, //
+ ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200 //
};
#define MAX_CRITERIA_REQUIREMENTS 2
@@ -108,124 +111,117 @@ enum AchievementCriteriaTimedTypes
enum AchievementCriteriaTypes
{
- ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0,
- ACHIEVEMENT_CRITERIA_TYPE_WIN_BG = 1,
- ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL = 5,
- ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL = 7,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT = 9,
- // you have to complete a daily quest x times in a row
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11,
- ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE = 13,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND= 15,
- ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP= 16,
- ACHIEVEMENT_CRITERIA_TYPE_DEATH= 17,
- ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON = 18,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID = 19,
- ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE = 20,
- ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER = 23,
- ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING = 24,
- ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26,
- ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27,
- ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET = 28,
- ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL= 29,
- ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30,
- ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31,
- ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA = 32,
- ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33,
- ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34,
- ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL = 35,
- ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36,
- // TODO: the archievements 1162 and 1163 requires a special rating which can't be found in the dbc
- ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39,
- ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40,
- ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM = 41,
- ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM= 42,
- ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43,
- ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK= 44,
- ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT= 45,
- ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION= 46,
- ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION= 47,
- // noted: rewarded as soon as the player payed, not at taking place at the seat
- ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP= 48,
- ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49,
- // TODO: itemlevel is mentioned in text but not present in dbc
- ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50,
- ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT= 51,
- ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52,
- ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53,
- ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54,
- ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55,
- // TODO: in some cases map not present, and in some cases need do without die
- ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56,
- ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57,
- ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59,
- ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60,
- ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS = 61,
- ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD = 62,
- ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING = 63,
- ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER = 65,
- ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL = 66,
- ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY = 67,
- ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT = 68,
- ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2= 69,
- ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL= 70,
- ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72,
- // TODO: title id is not mentioned in dbc
- ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE = 74,
- ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS= 75,
- ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76,
- ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77,
- // TODO: creature type (demon, undead etc.) is not stored in dbc
- ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE = 78,
- ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS= 80,
- ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION= 82,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID= 83,
- ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS= 84,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD = 85,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED = 86,
- ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION = 87,
- ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION = 88,
- ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS = 89,
- ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM = 90,
- ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM = 91,
- ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED = 93,
- ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED = 94,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH = 95,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_POWER = 96,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_STAT = 97,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER = 98,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR = 99,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING = 100,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT = 101,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_RECEIVED = 102,
- ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED = 103,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED = 104,
- ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED = 105,
- ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED = 106,
- ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107,
- ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108,
- ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109,
- // TODO: target entry is missing
- ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110,
- ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE= 112,
- ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113,
- ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
- // 0..115 => 116 criteria types total
- ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115,
+ ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0,
+ ACHIEVEMENT_CRITERIA_TYPE_WIN_BG = 1,
+ ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL = 5,
+ ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL = 7,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT = 9,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10, // you have to complete a daily quest x times in a row
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11,
+ ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE = 13,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND = 15,
+ ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP = 16,
+ ACHIEVEMENT_CRITERIA_TYPE_DEATH = 17,
+ ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON = 18,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID = 19,
+ ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE = 20,
+ ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER = 23,
+ ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING = 24,
+ ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26,
+ ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27,
+ ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET = 28,
+ ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL = 29,
+ ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30,
+ ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31,
+ ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA = 32,
+ ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33,
+ ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34,
+ ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL = 35,
+ ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36,
+ ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37, // TODO: the archievements 1162 and 1163 requires a special rating which can't be found in the dbc
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39,
+ ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40,
+ ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM = 41,
+ ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM = 42,
+ ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43,
+ ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK = 44,
+ ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT = 45,
+ ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION = 46,
+ ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION = 47,
+ ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP = 48,
+ ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49,
+ ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, // TODO: itemlevel is mentioned in text but not present in dbc
+ ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT = 51,
+ ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52,
+ ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53,
+ ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54,
+ ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55,
+ ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56, // TODO: in some cases map not present, and in some cases need do without die
+ ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57,
+ ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59,
+ ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60,
+ ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS = 61,
+ ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD = 62,
+ ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING = 63,
+ ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER = 65,
+ ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL = 66,
+ ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY = 67,
+ ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT = 68,
+ ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 = 69,
+ ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70,
+ ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72,
+ // TODO 73: Achievements 1515, 1241, 1103 (Name: Mal'Ganis)
+ ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE = 74, // TODO: title id is not mentioned in dbc
+ ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75,
+ ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76,
+ ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77,
+ ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE = 78,
+ ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS = 80,
+ ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION = 82,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID = 83,
+ ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS = 84,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD = 85,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED = 86,
+ ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION = 87,
+ ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION = 88,
+ ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS = 89,
+ ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM = 90,
+ ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM = 91,
+ ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED = 93,
+ ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED = 94,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH = 95,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_POWER = 96,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_STAT = 97,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER = 98,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR = 99,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING = 100,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT = 101,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_RECEIVED = 102,
+ ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED = 103,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED = 104,
+ ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED = 105,
+ ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED = 106,
+ ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107,
+ ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108,
+ ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109,
+ ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110, // TODO: target entry is missing
+ ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE = 112,
+ ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113,
+ ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
+ ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115,
ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS = 119,
// 120
// 121
// 122
// 123
// 0..123 => 124 criteria types total
- ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 124
};
+#define ACHIEVEMENT_CRITERIA_TYPE_TOTAL 124
+
enum AchievementCategory
{
CATEGORY_CHILDRENS_WEEK = 163
@@ -286,7 +282,7 @@ enum Difficulty
enum SpawnMask
{
- SPAWNMASK_CONTINENT = (1 << REGULAR_DIFFICULTY), // any any maps without spawn modes
+ SPAWNMASK_CONTINENT = (1 << REGULAR_DIFFICULTY), // any maps without spawn modes
SPAWNMASK_DUNGEON_NORMAL = (1 << DUNGEON_DIFFICULTY_NORMAL),
SPAWNMASK_DUNGEON_HEROIC = (1 << DUNGEON_DIFFICULTY_HEROIC),
@@ -349,19 +345,19 @@ enum ItemEnchantmentType
enum ItemLimitCategoryMode
{
- ITEM_LIMIT_CATEGORY_MODE_HAVE = 0, // limit applied to amount items in inventory/bank
- ITEM_LIMIT_CATEGORY_MODE_EQUIP = 1 // limit applied to amount equipped items (including used gems)
+ ITEM_LIMIT_CATEGORY_MODE_HAVE = 0, // limit applied to amount items in inventory/bank
+ ITEM_LIMIT_CATEGORY_MODE_EQUIP = 1 // limit applied to amount equipped items (including used gems)
};
enum TotemCategoryType
{
- TOTEM_CATEGORY_TYPE_KNIFE = 1,
- TOTEM_CATEGORY_TYPE_TOTEM = 2,
- TOTEM_CATEGORY_TYPE_ROD = 3,
- TOTEM_CATEGORY_TYPE_PICK = 21,
- TOTEM_CATEGORY_TYPE_STONE = 22,
- TOTEM_CATEGORY_TYPE_HAMMER = 23,
- TOTEM_CATEGORY_TYPE_SPANNER = 24
+ TOTEM_CATEGORY_TYPE_KNIFE = 1,
+ TOTEM_CATEGORY_TYPE_TOTEM = 2,
+ TOTEM_CATEGORY_TYPE_ROD = 3,
+ TOTEM_CATEGORY_TYPE_PICK = 21,
+ TOTEM_CATEGORY_TYPE_STONE = 22,
+ TOTEM_CATEGORY_TYPE_HAMMER = 23,
+ TOTEM_CATEGORY_TYPE_SPANNER = 24
};
// SummonProperties.dbc, col 1
diff --git a/src/server/game/DungeonFinding/LFG.h b/src/server/game/DungeonFinding/LFG.h
index 6ad30547670..8477002279c 100755
--- a/src/server/game/DungeonFinding/LFG.h
+++ b/src/server/game/DungeonFinding/LFG.h
@@ -41,7 +41,7 @@ enum LfgUpdateType
LFG_UPDATETYPE_DEFAULT = 0, // Internal Use
LFG_UPDATETYPE_LEADER_UNK1 = 1, // FIXME: At group leave
LFG_UPDATETYPE_ROLECHECK_ABORTED = 4,
- LFG_UPDATETYPE_JOIN_PROPOSAL = 5,
+ LFG_UPDATETYPE_JOIN_QUEUE = 5,
LFG_UPDATETYPE_ROLECHECK_FAILED = 6,
LFG_UPDATETYPE_REMOVED_FROM_QUEUE = 7,
LFG_UPDATETYPE_PROPOSAL_FAILED = 8,
diff --git a/src/server/game/DungeonFinding/LFGGroupData.cpp b/src/server/game/DungeonFinding/LFGGroupData.cpp
index a4ee230b5eb..c7cf6f23ce9 100644
--- a/src/server/game/DungeonFinding/LFGGroupData.cpp
+++ b/src/server/game/DungeonFinding/LFGGroupData.cpp
@@ -37,7 +37,7 @@ void LfgGroupData::SetState(LfgState state)
case LFG_STATE_FINISHED_DUNGEON:
case LFG_STATE_NONE:
case LFG_STATE_DUNGEON:
- m_OldState = state;
+ m_OldState = m_State;
// No break on purpose
default:
m_State = state;
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index c91be00080e..da279016255 100755
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -21,6 +21,7 @@
#include "DisableMgr.h"
#include "ObjectMgr.h"
#include "SocialMgr.h"
+#include "Language.h"
#include "LFGMgr.h"
#include "LFGScripts.h"
#include "LFGGroupData.h"
@@ -30,6 +31,7 @@
#include "Player.h"
#include "GroupMgr.h"
#include "GameEventMgr.h"
+#include "WorldSession.h"
LFGMgr::LFGMgr(): m_QueueTimer(0), m_lfgProposalId(1),
m_options(sWorld->getIntConfig(CONFIG_LFG_OPTIONSMASK))
@@ -551,14 +553,17 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const
LfgDungeonSet const& playerDungeons = GetSelectedDungeons(guid);
if (playerDungeons == dungeons) // Joining the same dungeons -- Send OK
{
- LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_ADDED_TO_QUEUE, dungeons, comment);
player->GetSession()->SendLfgJoinResult(joinData); // Default value of joinData.result = LFG_JOIN_OK
if (grp)
{
+ LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_ADDED_TO_QUEUE, dungeons, comment);
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
if (itr->getSource() && itr->getSource()->GetSession())
itr->getSource()->GetSession()->SendLfgUpdateParty(updateData);
}
+ else
+ player->GetSession()->SendLfgUpdatePlayer(LfgUpdateData(LFG_UPDATETYPE_JOIN_QUEUE, dungeons, comment));
+
return;
}
else // Remove from queue and rejoin
@@ -689,7 +694,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const
SetState(gguid, LFG_STATE_ROLECHECK);
// Send update to player
- LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_JOIN_PROPOSAL, dungeons, comment);
+ LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_JOIN_QUEUE, dungeons, comment);
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
{
if (Player* plrg = itr->getSource())
@@ -726,7 +731,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const
}
// Send update to player
player->GetSession()->SendLfgJoinResult(joinData);
- player->GetSession()->SendLfgUpdatePlayer(LfgUpdateData(LFG_UPDATETYPE_JOIN_PROPOSAL, dungeons, comment));
+ player->GetSession()->SendLfgUpdatePlayer(LfgUpdateData(LFG_UPDATETYPE_JOIN_QUEUE, dungeons, comment));
SetState(gguid, LFG_STATE_QUEUED);
SetRoles(guid, roles);
debugNames.append(player->GetName());
@@ -749,10 +754,10 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const
*/
void LFGMgr::LeaveLfg(uint64 guid)
{
- LfgState state = GetState(guid);
- uint64 gguid = IS_GROUP(guid) ? guid : GetGroup(guid);
-
sLog->outDebug(LOG_FILTER_LFG, "LFGMgr::Leave: [" UI64FMTD "]", guid);
+
+ uint64 gguid = IS_GROUP(guid) ? guid : GetGroup(guid);
+ LfgState state = GetState(guid);
switch (state)
{
case LFG_STATE_QUEUED:
@@ -1962,11 +1967,10 @@ void LFGMgr::SetOptions(uint32 options)
m_options = options;
}
-LfgState LFGMgr::GetLfgStatus(uint64 guid, LfgUpdateData& data)
+LfgUpdateData LFGMgr::GetLfgStatus(uint64 guid)
{
LfgPlayerData& playerData = PlayersStore[guid];
- data.dungeons = playerData.GetSelectedDungeons();
- return playerData.GetState();
+ return LfgUpdateData(LFG_UPDATETYPE_UPDATE_STATUS, playerData.GetState(), playerData.GetSelectedDungeons());
}
bool LFGMgr::IsSeasonActive(uint32 dungeonId)
diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h
index ba1cc251278..9c023d1daf8 100755
--- a/src/server/game/DungeonFinding/LFGMgr.h
+++ b/src/server/game/DungeonFinding/LFGMgr.h
@@ -18,8 +18,9 @@
#ifndef _LFGMGR_H
#define _LFGMGR_H
-#include "Common.h"
#include <ace/Singleton.h>
+#include "DBCStructure.h"
+#include "Field.h"
#include "LFG.h"
#include "LFGQueue.h"
#include "LFGGroupData.h"
@@ -155,11 +156,14 @@ struct LfgJoinResultData
// Data needed by SMSG_LFG_UPDATE_PARTY and SMSG_LFG_UPDATE_PLAYER
struct LfgUpdateData
{
- LfgUpdateData(LfgUpdateType _type = LFG_UPDATETYPE_DEFAULT): updateType(_type), comment("") {}
+ LfgUpdateData(LfgUpdateType _type = LFG_UPDATETYPE_DEFAULT): updateType(_type), state(LFG_STATE_NONE), comment("") { }
LfgUpdateData(LfgUpdateType _type, LfgDungeonSet const& _dungeons, std::string const& _comment):
- updateType(_type), dungeons(_dungeons), comment(_comment) {}
+ updateType(_type), state(LFG_STATE_NONE), dungeons(_dungeons), comment(_comment) { }
+ LfgUpdateData(LfgUpdateType _type, LfgState _state, LfgDungeonSet const& _dungeons, std::string const& _comment = ""):
+ updateType(_type), state(_state), dungeons(_dungeons), comment(_comment) { }
LfgUpdateType updateType;
+ LfgState state;
LfgDungeonSet dungeons;
std::string comment;
};
@@ -361,7 +365,7 @@ class LFGMgr
bool isOptionEnabled(uint32 option);
uint32 GetOptions();
void SetOptions(uint32 options);
- LfgState GetLfgStatus(uint64 guid, LfgUpdateData& data);
+ LfgUpdateData GetLfgStatus(uint64 guid);
bool IsSeasonActive(uint32 dungeonId);
std::string DumpQueueInfo(bool full = false);
diff --git a/src/server/game/DungeonFinding/LFGPlayerData.cpp b/src/server/game/DungeonFinding/LFGPlayerData.cpp
index e5645f0f0aa..f1281875598 100644
--- a/src/server/game/DungeonFinding/LFGPlayerData.cpp
+++ b/src/server/game/DungeonFinding/LFGPlayerData.cpp
@@ -35,7 +35,7 @@ void LfgPlayerData::SetState(LfgState state)
m_SelectedDungeons.clear();
// No break on purpose
case LFG_STATE_DUNGEON:
- m_OldState = state;
+ m_OldState = m_State;
// No break on purpose
default:
m_State = state;
diff --git a/src/server/game/DungeonFinding/LFGQueue.cpp b/src/server/game/DungeonFinding/LFGQueue.cpp
index cf600b0645f..3bcd1ee5643 100644
--- a/src/server/game/DungeonFinding/LFGQueue.cpp
+++ b/src/server/game/DungeonFinding/LFGQueue.cpp
@@ -639,7 +639,7 @@ void LFGQueue::FindBestCompatibleInQueue(LfgQueueDataContainer::iterator itrQueu
std::string sguid = o.str();
for (LfgCompatibleContainer::const_iterator itr = CompatibleMapStore.begin(); itr != CompatibleMapStore.end(); ++itr)
- if (itr->second.compatibility == LFG_COMPATIBLES_WITH_LESS_PLAYERS &&
+ if (itr->second.compatibility == LFG_COMPATIBLES_WITH_LESS_PLAYERS &&
std::string::npos != itr->first.find(sguid))
{
UpdateBestCompatibleInQueue(itrQueue, itr->first, itr->second.roles);
@@ -650,7 +650,7 @@ void LFGQueue::UpdateBestCompatibleInQueue(LfgQueueDataContainer::iterator itrQu
{
LfgQueueData& queueData = itrQueue->second;
- uint8 storedSize = queueData.bestCompatible.empty() ? 0 :
+ uint8 storedSize = queueData.bestCompatible.empty() ? 0 :
std::count(queueData.bestCompatible.begin(), queueData.bestCompatible.end(), '|') + 1;
uint8 size = std::count(key.begin(), key.end(), '|') + 1;
diff --git a/src/server/game/DungeonFinding/LFGQueue.h b/src/server/game/DungeonFinding/LFGQueue.h
index f937ac0d21a..e6ba038a9e6 100644
--- a/src/server/game/DungeonFinding/LFGQueue.h
+++ b/src/server/game/DungeonFinding/LFGQueue.h
@@ -42,7 +42,7 @@ struct LfgCompatibilityData
compatibility(_compatibility), roles(_roles) { }
LfgCompatibility compatibility;
- LfgRolesMap roles;
+ LfgRolesMap roles;
};
/// Stores player or group queue info
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp
index 91314e64285..f9e3c02fe98 100644
--- a/src/server/game/DungeonFinding/LFGScripts.cpp
+++ b/src/server/game/DungeonFinding/LFGScripts.cpp
@@ -27,6 +27,7 @@
#include "LFGMgr.h"
#include "ScriptMgr.h"
#include "ObjectAccessor.h"
+#include "WorldSession.h"
LFGPlayerScript::LFGPlayerScript() : PlayerScript("LFGPlayerScript")
{
@@ -45,14 +46,11 @@ void LFGPlayerScript::OnLogout(Player* player)
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
return;
- uint64 guid = player->GetGUID();
- sLFGMgr->LeaveLfg(guid);
- LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_REMOVED_FROM_QUEUE);
- player->GetSession()->SendLfgUpdateParty(updateData);
- player->GetSession()->SendLfgUpdatePlayer(updateData);
- player->GetSession()->SendLfgLfrList(false);
- // TODO - Do not remove, add timer before deleting
- sLFGMgr->RemovePlayerData(guid);
+ if (!player->GetGroup())
+ {
+ player->GetSession()->SendLfgLfrList(false);
+ sLFGMgr->LeaveLfg(player->GetGUID());
+ }
}
void LFGPlayerScript::OnLogin(Player* player)
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 9bcd4d9c1e2..911ccd25728 100755
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -16,40 +16,42 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "BattlegroundMgr.h"
+#include "CellImpl.h"
#include "Common.h"
-#include "DatabaseEnv.h"
-#include "WorldPacket.h"
-#include "World.h"
-#include "ObjectMgr.h"
-#include "GroupMgr.h"
-#include "SpellMgr.h"
-#include "Creature.h"
-#include "QuestDef.h"
-#include "GossipDef.h"
-#include "Player.h"
-#include "PoolMgr.h"
-#include "Opcodes.h"
-#include "Log.h"
-#include "LootMgr.h"
-#include "MapManager.h"
#include "CreatureAI.h"
#include "CreatureAISelector.h"
+#include "CreatureGroups.h"
+#include "Creature.h"
+#include "DatabaseEnv.h"
#include "Formulas.h"
-#include "WaypointMovementGenerator.h"
-#include "InstanceScript.h"
-#include "BattlegroundMgr.h"
-#include "Util.h"
+#include "GameEventMgr.h"
+#include "GossipDef.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#include "CellImpl.h"
-#include "OutdoorPvPMgr.h"
-#include "GameEventMgr.h"
-#include "CreatureGroups.h"
-#include "Vehicle.h"
-#include "SpellAuraEffects.h"
#include "Group.h"
-#include "MoveSplineInit.h"
+#include "GroupMgr.h"
+#include "InstanceScript.h"
+#include "Log.h"
+#include "LootMgr.h"
+#include "MapManager.h"
#include "MoveSpline.h"
+#include "MoveSplineInit.h"
+#include "ObjectMgr.h"
+#include "Opcodes.h"
+#include "OutdoorPvPMgr.h"
+#include "Player.h"
+#include "PoolMgr.h"
+#include "QuestDef.h"
+#include "SpellAuraEffects.h"
+#include "SpellMgr.h"
+#include "TemporarySummon.h"
+#include "Util.h"
+#include "Vehicle.h"
+#include "WaypointMovementGenerator.h"
+#include "World.h"
+#include "WorldPacket.h"
+
// apply implementation of the singletons
TrainerSpell const* TrainerSpellData::Find(uint32 spell_id) const
@@ -953,30 +955,6 @@ bool Creature::isCanTrainingAndResetTalentsOf(Player* player) const
&& player->getClass() == GetCreatureTemplate()->trainer_class;
}
-void Creature::AI_SendMoveToPacket(float x, float y, float z, uint32 time, uint32 /*MovementFlags*/, uint8 /*type*/)
-{
- /* uint32 timeElap = getMSTime();
- if ((timeElap - m_startMove) < m_moveTime)
- {
- oX = (dX - oX) * ((timeElap - m_startMove) / m_moveTime);
- oY = (dY - oY) * ((timeElap - m_startMove) / m_moveTime);
- }
- else
- {
- oX = dX;
- oY = dY;
- }
-
- dX = x;
- dY = y;
- m_orientation = atan2((oY - dY), (oX - dX));
-
- m_startMove = getMSTime();
- m_moveTime = time;*/
- float speed = GetDistance(x, y, z) / ((float)time * 0.001f);
- MonsterMoveWithSpeed(x, y, z, speed);
-}
-
Player* Creature::GetLootRecipient() const
{
if (!m_lootRecipient)
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index c0703196075..228485d001e 100755
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -520,7 +520,6 @@ class Creature : public Unit, public GridObject<Creature>, public MapCreature
bool AIM_Initialize(CreatureAI* ai = NULL);
void Motion_Initialize();
- void AI_SendMoveToPacket(float x, float y, float z, uint32 time, uint32 MovementFlags, uint8 type);
CreatureAI* AI() const { return (CreatureAI*)i_AI; }
bool SetWalk(bool enable);
diff --git a/src/server/game/Entities/Creature/TemporarySummon.cpp b/src/server/game/Entities/Creature/TemporarySummon.cpp
index 43b29c600d6..a6b51a4d395 100755
--- a/src/server/game/Entities/Creature/TemporarySummon.cpp
+++ b/src/server/game/Entities/Creature/TemporarySummon.cpp
@@ -21,6 +21,8 @@
#include "CreatureAI.h"
#include "ObjectMgr.h"
#include "TemporarySummon.h"
+#include "Pet.h"
+#include "Player.h"
TempSummon::TempSummon(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject) :
Creature(isWorldObject), m_Properties(properties), m_type(TEMPSUMMON_MANUAL_DESPAWN),
diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp
index db563c712cd..73b38c1da83 100755
--- a/src/server/game/Entities/Item/Container/Bag.cpp
+++ b/src/server/game/Entities/Item/Container/Bag.cpp
@@ -23,6 +23,7 @@
#include "Bag.h"
#include "Log.h"
#include "UpdateData.h"
+#include "Player.h"
Bag::Bag(): Item()
{
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index f1a7d646fe4..a1ff6cf2ce8 100755
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -26,6 +26,8 @@
#include "SpellInfo.h"
#include "ScriptMgr.h"
#include "ConditionMgr.h"
+#include "Player.h"
+#include "Opcodes.h"
void AddItemsSetItem(Player* player, Item* item)
{
diff --git a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
index f85bf80e145..cfb8c880479 100755
--- a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
+++ b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
@@ -25,6 +25,7 @@
#include <list>
#include <vector>
#include "Util.h"
+#include "DBCStores.h"
struct EnchStoreItem
{
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index d7e87cedbf8..ca32fd377e9 100755
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1844,7 +1844,7 @@ bool WorldObject::CanDetect(WorldObject const* obj, bool ignoreStealth) const
if (obj->IsAlwaysDetectableFor(seer))
return true;
- if (!seer->CanDetectInvisibilityOf(obj))
+ if (!ignoreStealth && !seer->CanDetectInvisibilityOf(obj))
return false;
if (!ignoreStealth && !seer->CanDetectStealthOf(obj))
@@ -2360,119 +2360,6 @@ TempSummon* WorldObject::SummonCreature(uint32 entry, const Position &pos, TempS
return NULL;
}
-Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 duration)
-{
- Pet* pet = new Pet(this, petType);
-
- if (petType == SUMMON_PET && pet->LoadPetFromDB(this, entry))
- {
- // Remove Demonic Sacrifice auras (known pet)
- Unit::AuraEffectList const& auraClassScripts = GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
- for (Unit::AuraEffectList::const_iterator itr = auraClassScripts.begin(); itr != auraClassScripts.end();)
- {
- if ((*itr)->GetMiscValue() == 2228)
- {
- RemoveAurasDueToSpell((*itr)->GetId());
- itr = auraClassScripts.begin();
- }
- else
- ++itr;
- }
-
- if (duration > 0)
- pet->SetDuration(duration);
-
- return NULL;
- }
-
- // petentry == 0 for hunter "call pet" (current pet summoned if any)
- if (!entry)
- {
- delete pet;
- return NULL;
- }
-
- pet->Relocate(x, y, z, ang);
- if (!pet->IsPositionValid())
- {
- sLog->outError(LOG_FILTER_GENERAL, "Pet (guidlow %d, entry %d) not summoned. Suggested coordinates isn't valid (X: %f Y: %f)", pet->GetGUIDLow(), pet->GetEntry(), pet->GetPositionX(), pet->GetPositionY());
- delete pet;
- return NULL;
- }
-
- Map* map = GetMap();
- uint32 pet_number = sObjectMgr->GeneratePetNumber();
- if (!pet->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_PET), map, GetPhaseMask(), entry, pet_number))
- {
- sLog->outError(LOG_FILTER_GENERAL, "no such creature entry %u", entry);
- delete pet;
- return NULL;
- }
-
- pet->SetCreatorGUID(GetGUID());
- pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, getFaction());
-
- pet->setPowerType(POWER_MANA);
- pet->SetUInt32Value(UNIT_NPC_FLAGS, 0);
- pet->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pet->InitStatsForLevel(getLevel());
-
- SetMinion(pet, true);
-
- switch (petType)
- {
- case SUMMON_PET:
- // this enables pet details window (Shift+P)
- pet->GetCharmInfo()->SetPetNumber(pet_number, true);
- pet->SetUInt32Value(UNIT_FIELD_BYTES_0, 2048);
- pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
- pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, 1000);
- pet->SetFullHealth();
- pet->SetPower(POWER_MANA, pet->GetMaxPower(POWER_MANA));
- pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(time(NULL))); // cast can't be helped in this case
- break;
- default:
- break;
- }
-
- map->AddToMap(pet->ToCreature());
-
- switch (petType)
- {
- case SUMMON_PET:
- pet->InitPetCreateSpells();
- pet->InitTalentForLevel();
- pet->SavePetToDB(PET_SAVE_AS_CURRENT);
- PetSpellInitialize();
- break;
- default:
- break;
- }
-
- if (petType == SUMMON_PET)
- {
- // Remove Demonic Sacrifice auras (known pet)
- Unit::AuraEffectList const& auraClassScripts = GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
- for (Unit::AuraEffectList::const_iterator itr = auraClassScripts.begin(); itr != auraClassScripts.end();)
- {
- if ((*itr)->GetMiscValue() == 2228)
- {
- RemoveAurasDueToSpell((*itr)->GetId());
- itr = auraClassScripts.begin();
- }
- else
- ++itr;
- }
- }
-
- if (duration > 0)
- pet->SetDuration(duration);
-
- //ObjectAccessor::UpdateObjectVisibility(pet);
-
- return pet;
-}
-
GameObject* WorldObject::SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
{
if (!IsInWorld())
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index d2d9bdac4b3..b6417681f4a 100755
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -30,6 +30,7 @@
#include "Unit.h"
#include "Util.h"
#include "Group.h"
+#include "Opcodes.h"
#define PET_XP_FACTOR 0.05f
@@ -1077,7 +1078,7 @@ bool Pet::HaveInDiet(ItemTemplate const* item) const
return diet & FoodMask;
}
-uint32 Pet::GetCurrentFoodBenefitLevel(uint32 itemlevel)
+uint32 Pet::GetCurrentFoodBenefitLevel(uint32 itemlevel) const
{
// -5 or greater food level
if (getLevel() <= itemlevel + 5) //possible to feed level 60 pet with level 55 level food for full effect
@@ -1881,7 +1882,7 @@ void Pet::ToggleAutocast(SpellInfo const* spellInfo, bool apply)
}
}
-bool Pet::IsPermanentPetFor(Player* owner)
+bool Pet::IsPermanentPetFor(Player* owner) const
{
switch (getPetType())
{
diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h
index f55d03ce081..a1dd57a26cc 100755
--- a/src/server/game/Entities/Pet/Pet.h
+++ b/src/server/game/Entities/Pet/Pet.h
@@ -19,50 +19,11 @@
#ifndef TRINITYCORE_PET_H
#define TRINITYCORE_PET_H
-#include "ObjectDefines.h"
-#include "Unit.h"
+#include "PetDefines.h"
#include "TemporarySummon.h"
-enum PetType
-{
- SUMMON_PET = 0,
- HUNTER_PET = 1,
- MAX_PET_TYPE = 4
-};
-
-#define MAX_PET_STABLES 4
-
-// stored in character_pet.slot
-enum PetSaveMode
-{
- PET_SAVE_AS_DELETED = -1, // not saved in fact
- PET_SAVE_AS_CURRENT = 0, // in current slot (with player)
- PET_SAVE_FIRST_STABLE_SLOT = 1,
- PET_SAVE_LAST_STABLE_SLOT = MAX_PET_STABLES, // last in DB stable slot index (including), all higher have same meaning as PET_SAVE_NOT_IN_SLOT
- PET_SAVE_NOT_IN_SLOT = 100 // for avoid conflict with stable size grow will use 100
-};
-
-enum HappinessState
-{
- UNHAPPY = 1,
- CONTENT = 2,
- HAPPY = 3
-};
-
-enum PetSpellState
-{
- PETSPELL_UNCHANGED = 0,
- PETSPELL_CHANGED = 1,
- PETSPELL_NEW = 2,
- PETSPELL_REMOVED = 3
-};
-
-enum PetSpellType
-{
- PETSPELL_NORMAL = 0,
- PETSPELL_FAMILY = 1,
- PETSPELL_TALENT = 2
-};
+#define PET_FOCUS_REGEN_INTERVAL 4 * IN_MILLISECONDS
+#define HAPPINESS_LEVEL_SIZE 333000
struct PetSpell
{
@@ -71,51 +32,9 @@ struct PetSpell
PetSpellType type;
};
-enum ActionFeedback
-{
- FEEDBACK_NONE = 0,
- FEEDBACK_PET_DEAD = 1,
- FEEDBACK_NOTHING_TO_ATT = 2,
- FEEDBACK_CANT_ATT_TARGET = 3
-};
-
-enum PetTalk
-{
- PET_TALK_SPECIAL_SPELL = 0,
- PET_TALK_ATTACK = 1
-};
-
-enum PetNameInvalidReason
-{
- // custom, not send
- PET_NAME_SUCCESS = 0,
-
- PET_NAME_INVALID = 1,
- PET_NAME_NO_NAME = 2,
- PET_NAME_TOO_SHORT = 3,
- PET_NAME_TOO_LONG = 4,
- PET_NAME_MIXED_LANGUAGES = 6,
- PET_NAME_PROFANE = 7,
- PET_NAME_RESERVED = 8,
- PET_NAME_THREE_CONSECUTIVE = 11,
- PET_NAME_INVALID_SPACE = 12,
- PET_NAME_CONSECUTIVE_SPACES = 13,
- PET_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 14,
- PET_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 15,
- PET_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 16
-};
-
typedef UNORDERED_MAP<uint32, PetSpell> PetSpellMap;
typedef std::vector<uint32> AutoSpellList;
-#define HAPPINESS_LEVEL_SIZE 333000
-
-#define ACTIVE_SPELLS_MAX 4
-
-#define PET_FOLLOW_DIST 1.0f
-#define PET_FOLLOW_ANGLE (M_PI/2)
-#define PET_FOCUS_REGEN_INTERVAL 4 * IN_MILLISECONDS
-
class Player;
class Pet : public Guardian
@@ -132,9 +51,9 @@ class Pet : public Guardian
bool isControlled() const { return getPetType() == SUMMON_PET || getPetType() == HUNTER_PET; }
bool isTemporarySummoned() const { return m_duration > 0; }
- bool IsPermanentPetFor(Player* owner); // pet have tab in character windows and set UNIT_FIELD_PETNUMBER
+ bool IsPermanentPetFor(Player* owner) const; // pet have tab in character windows and set UNIT_FIELD_PETNUMBER
- bool Create (uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 pet_number);
+ bool Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 pet_number);
bool CreateBaseAtCreature(Creature* creature);
bool CreateBaseAtCreatureInfo(CreatureTemplate const* cinfo, Unit* owner);
bool CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phaseMask);
@@ -162,9 +81,9 @@ class Pet : public Guardian
void GivePetLevel(uint8 level);
void SynchronizeLevelWithOwner();
bool HaveInDiet(ItemTemplate const* item) const;
- uint32 GetCurrentFoodBenefitLevel(uint32 itemlevel);
+ uint32 GetCurrentFoodBenefitLevel(uint32 itemlevel) const;
void SetDuration(int32 dur) { m_duration = dur; }
- int32 GetDuration() { return m_duration; }
+ int32 GetDuration() const { return m_duration; }
/*
bool UpdateStats(Stats stat);
diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h
new file mode 100644
index 00000000000..76de2647c8c
--- /dev/null
+++ b/src/server/game/Entities/Pet/PetDefines.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
+ *
+ * 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
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef TRINITYCORE_PET_DEFINES_H
+#define TRINITYCORE_PET_DEFINES_H
+
+enum PetType
+{
+ SUMMON_PET = 0,
+ HUNTER_PET = 1,
+ MAX_PET_TYPE = 4
+};
+
+#define MAX_PET_STABLES 4
+
+// stored in character_pet.slot
+enum PetSaveMode
+{
+ PET_SAVE_AS_DELETED = -1, // not saved in fact
+ PET_SAVE_AS_CURRENT = 0, // in current slot (with player)
+ PET_SAVE_FIRST_STABLE_SLOT = 1,
+ PET_SAVE_LAST_STABLE_SLOT = MAX_PET_STABLES, // last in DB stable slot index (including), all higher have same meaning as PET_SAVE_NOT_IN_SLOT
+ PET_SAVE_NOT_IN_SLOT = 100 // for avoid conflict with stable size grow will use 100
+};
+
+enum HappinessState
+{
+ UNHAPPY = 1,
+ CONTENT = 2,
+ HAPPY = 3
+};
+
+enum PetSpellState
+{
+ PETSPELL_UNCHANGED = 0,
+ PETSPELL_CHANGED = 1,
+ PETSPELL_NEW = 2,
+ PETSPELL_REMOVED = 3
+};
+
+enum PetSpellType
+{
+ PETSPELL_NORMAL = 0,
+ PETSPELL_FAMILY = 1,
+ PETSPELL_TALENT = 2
+};
+
+enum ActionFeedback
+{
+ FEEDBACK_NONE = 0,
+ FEEDBACK_PET_DEAD = 1,
+ FEEDBACK_NOTHING_TO_ATT = 2,
+ FEEDBACK_CANT_ATT_TARGET = 3
+};
+
+enum PetTalk
+{
+ PET_TALK_SPECIAL_SPELL = 0,
+ PET_TALK_ATTACK = 1
+};
+
+#define PET_FOLLOW_DIST 1.0f
+#define PET_FOLLOW_ANGLE (M_PI/2)
+
+#endif
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 46110a2cc11..dd9907d8c07 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16,67 +16,68 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Common.h"
-#include "Language.h"
-#include "DatabaseEnv.h"
-#include "Log.h"
-#include "Opcodes.h"
-#include "SpellMgr.h"
-#include "World.h"
-#include "WorldPacket.h"
-#include "WorldSession.h"
-#include "UpdateMask.h"
#include "Player.h"
-#include "Vehicle.h"
-#include "SkillDiscovery.h"
-#include "QuestDef.h"
-#include "GossipDef.h"
-#include "UpdateData.h"
+#include "AccountMgr.h"
+#include "AchievementMgr.h"
+#include "ArenaTeam.h"
+#include "ArenaTeamMgr.h"
+#include "Battlefield.h"
+#include "BattlefieldMgr.h"
+#include "BattlefieldWG.h"
+#include "BattlegroundAV.h"
+#include "Battleground.h"
+#include "BattlegroundMgr.h"
+#include "CellImpl.h"
#include "Channel.h"
#include "ChannelMgr.h"
-#include "MapManager.h"
-#include "MapInstanced.h"
-#include "InstanceSaveMgr.h"
-#include "GridNotifiers.h"
-#include "GridNotifiersImpl.h"
-#include "CellImpl.h"
-#include "ObjectMgr.h"
-#include "ArenaTeamMgr.h"
-#include "GuildMgr.h"
-#include "GroupMgr.h"
-#include "ObjectAccessor.h"
+#include "CharacterDatabaseCleaner.h"
+#include "Chat.h"
+#include <cmath>
+#include "Common.h"
+#include "ConditionMgr.h"
#include "CreatureAI.h"
+#include "DatabaseEnv.h"
+#include "DisableMgr.h"
#include "Formulas.h"
+#include "GameEventMgr.h"
+#include "GossipDef.h"
+#include "GridNotifiers.h"
+#include "GridNotifiersImpl.h"
#include "Group.h"
+#include "GroupMgr.h"
#include "Guild.h"
-#include "Pet.h"
-#include "Util.h"
-#include "Transport.h"
-#include "Weather.h"
-#include "Battleground.h"
-#include "BattlegroundAV.h"
-#include "BattlegroundMgr.h"
+#include "GuildMgr.h"
+#include "InstanceSaveMgr.h"
+#include "InstanceScript.h"
+#include "Language.h"
+#include "LFGMgr.h"
+#include "Log.h"
+#include "MapInstanced.h"
+#include "MapManager.h"
+#include "ObjectAccessor.h"
+#include "ObjectMgr.h"
+#include "Opcodes.h"
#include "OutdoorPvP.h"
#include "OutdoorPvPMgr.h"
-#include "ArenaTeam.h"
-#include "Chat.h"
-#include "Spell.h"
+#include "ReputationMgr.h"
+#include "Pet.h"
+#include "QuestDef.h"
+#include "SkillDiscovery.h"
#include "SocialMgr.h"
-#include "GameEventMgr.h"
-#include "AchievementMgr.h"
-#include "SpellAuras.h"
#include "SpellAuraEffects.h"
-#include "ConditionMgr.h"
-#include "DisableMgr.h"
+#include "SpellAuras.h"
+#include "Spell.h"
+#include "SpellMgr.h"
+#include "Transport.h"
+#include "UpdateData.h"
+#include "UpdateMask.h"
+#include "Util.h"
+#include "Vehicle.h"
+#include "Weather.h"
#include "WeatherMgr.h"
-#include "LFGMgr.h"
-#include "CharacterDatabaseCleaner.h"
-#include "InstanceScript.h"
-#include <cmath>
-#include "AccountMgr.h"
-#include "Battlefield.h"
-#include "BattlefieldMgr.h"
-#include "BattlefieldWG.h"
+#include "World.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
#define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS)
@@ -643,7 +644,7 @@ void KillRewarder::Reward()
#ifdef _MSC_VER
#pragma warning(disable:4355)
#endif
-Player::Player(WorldSession* session): Unit(true), m_achievementMgr(this), m_reputationMgr(this)
+Player::Player(WorldSession* session): Unit(true)
{
#ifdef _MSC_VER
#pragma warning(default:4355)
@@ -869,6 +870,8 @@ Player::Player(WorldSession* session): Unit(true), m_achievementMgr(this), m_rep
SetPendingBind(0, 0);
_activeCheats = CHEAT_NONE;
+ m_achievementMgr = new AchievementMgr(this);
+ m_reputationMgr = new ReputationMgr(this);
}
Player::~Player()
@@ -904,6 +907,8 @@ Player::~Player()
delete m_declinedname;
delete m_runes;
+ delete m_achievementMgr;
+ delete m_reputationMgr;
sWorld->DecreasePlayerCount();
}
@@ -1609,7 +1614,7 @@ void Player::Update(uint32 p_time)
}
}
- m_achievementMgr.UpdateTimedAchievements(p_time);
+ m_achievementMgr->UpdateTimedAchievements(p_time);
if (HasUnitState(UNIT_STATE_MELEE_ATTACKING) && !HasUnitState(UNIT_STATE_CASTING))
{
@@ -5580,11 +5585,11 @@ void Player::CleanupChannels()
{
Channel* ch = *m_channels.begin();
m_channels.erase(m_channels.begin()); // remove from player's channel list
- ch->Leave(GetGUID(), false); // not send to client, not remove from player's channel list
+ ch->LeaveChannel(this, false); // not send to client, not remove from player's channel list
if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetTeam()))
cMgr->LeftChannel(ch->GetName()); // deleted channel if empty
}
- sLog->outDebug(LOG_FILTER_CHATSYS, "Player: channels cleaned up!");
+ sLog->outDebug(LOG_FILTER_CHATSYS, "Player %s: channels cleaned up!", GetName().c_str());
}
void Player::UpdateLocalChannels(uint32 newZone)
@@ -5657,11 +5662,11 @@ void Player::UpdateLocalChannels(uint32 newZone)
removeChannel = usedChannel;
if (joinChannel)
- joinChannel->Join(GetGUID(), ""); // Changed Channel: ... or Joined Channel: ...
+ joinChannel->JoinChannel(this, ""); // Changed Channel: ... or Joined Channel: ...
if (removeChannel)
{
- removeChannel->Leave(GetGUID(), sendRemove); // Leave old channel
+ removeChannel->LeaveChannel(this, sendRemove); // Leave old channel
std::string name = removeChannel->GetName(); // Store name, (*i)erase in LeftChannel
LeftChannel(removeChannel); // Remove from player's channel list
cMgr->LeftChannel(name); // Delete if empty
@@ -5676,7 +5681,7 @@ void Player::LeaveLFGChannel()
{
if ((*i)->IsLFG())
{
- (*i)->Leave(GetGUID());
+ (*i)->LeaveChannel(this);
break;
}
}
@@ -5684,13 +5689,8 @@ void Player::LeaveLFGChannel()
void Player::UpdateDefense()
{
- uint32 defense_skill_gain = sWorld->getIntConfig(CONFIG_SKILL_GAIN_DEFENSE);
-
- if (UpdateSkill(SKILL_DEFENSE, defense_skill_gain))
- {
- // update dependent from defense skill part
- UpdateDefenseBonusesMod();
- }
+ if (UpdateSkill(SKILL_DEFENSE, sWorld->getIntConfig(CONFIG_SKILL_GAIN_DEFENSE)))
+ UpdateDefenseBonusesMod(); // update dependent from defense skill part
}
void Player::HandleBaseModValue(BaseModGroup modGroup, BaseModType modType, float amount, bool apply)
@@ -7259,7 +7259,7 @@ bool Player::RewardHonor(Unit* victim, uint32 groupsize, int32 honor, bool pvpto
int32 count = sWorld->getIntConfig(CONFIG_PVP_TOKEN_COUNT);
if (AddItem(itemId, count))
- ChatHandler(this).PSendSysMessage("You have been awarded a token for slaying another player.");
+ ChatHandler(GetSession()).PSendSysMessage("You have been awarded a token for slaying another player.");
}
}
@@ -16648,6 +16648,11 @@ float Player::GetFloatValueFromArray(Tokenizer const& data, uint16 index)
return result;
}
+bool Player::isBeingLoaded() const
+{
+ return GetSession()->PlayerLoading();
+}
+
bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
{
//// 0 1 2 3 4 5 6 7 8 9 10 11
@@ -16732,7 +16737,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f);
// load achievements before anything else to prevent multiple gains for the same achievement/criteria on every loading (as loading does call UpdateAchievementCriteria)
- m_achievementMgr.LoadFromDB(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADACHIEVEMENTS), holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADCRITERIAPROGRESS));
+ m_achievementMgr->LoadFromDB(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADACHIEVEMENTS), holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADCRITERIAPROGRESS));
uint32 money = fields[8].GetUInt32();
if (money > MAX_MONEY_AMOUNT)
@@ -17176,7 +17181,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
learnDefaultSpells();
// must be before inventory (some items required reputation check)
- m_reputationMgr.LoadFromDB(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADREPUTATION));
+ m_reputationMgr->LoadFromDB(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADREPUTATION));
_LoadInventory(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADINVENTORY), time_diff);
@@ -17284,7 +17289,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
_LoadDeclinedNames(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADDECLINEDNAMES));
- m_achievementMgr.CheckAllAchievementCriteria();
+ m_achievementMgr->CheckAllAchievementCriteria();
_LoadEquipmentSets(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADEQUIPMENTSETS));
@@ -18509,6 +18514,14 @@ bool Player::CheckInstanceLoginValid()
return sMapMgr->CanPlayerEnter(GetMap()->GetId(), this, true);
}
+bool Player::CheckInstanceCount(uint32 instanceId) const
+{
+ if (_instanceResetTimes.size() < sWorld->getIntConfig(CONFIG_MAX_INSTANCES_PER_HOUR))
+ return true;
+ return _instanceResetTimes.find(instanceId) != _instanceResetTimes.end();
+}
+
+
bool Player::_LoadHomeBind(PreparedQueryResult result)
{
PlayerInfo const* info = sObjectMgr->GetPlayerInfo(getRace(), getClass());
@@ -18828,8 +18841,8 @@ void Player::SaveToDB(bool create /*=false*/)
_SaveActions(trans);
_SaveAuras(trans);
_SaveSkills(trans);
- m_achievementMgr.SaveToDB(trans);
- m_reputationMgr.SaveToDB(trans);
+ m_achievementMgr->SaveToDB(trans);
+ m_reputationMgr->SaveToDB(trans);
_SaveEquipmentSets(trans);
GetSession()->SaveTutorialsData(trans); // changed only while character in game
_SaveGlyphs(trans);
@@ -19967,7 +19980,7 @@ void Player::Whisper(const std::string& text, uint32 language, uint64 receiver)
}
else if (!isAddonMessage)
// announce to player that player he is whispering to is dnd and cannot receive his message
- ChatHandler(this).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName().c_str(), rPlayer->dndMsg.c_str());
+ ChatHandler(GetSession()).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName().c_str(), rPlayer->dndMsg.c_str());
// rest stuff shouldn't happen in case of addon message
if (isAddonMessage)
@@ -19976,12 +19989,12 @@ void Player::Whisper(const std::string& text, uint32 language, uint64 receiver)
if (!isAcceptWhispers() && !isGameMaster() && !rPlayer->isGameMaster())
{
SetAcceptWhispers(true);
- ChatHandler(this).SendSysMessage(LANG_COMMAND_WHISPERON);
+ ChatHandler(GetSession()).SendSysMessage(LANG_COMMAND_WHISPERON);
}
// announce to player that player he is whispering to is afk
if (rPlayer->isAFK())
- ChatHandler(this).PSendSysMessage(LANG_PLAYER_AFK, rPlayer->GetName().c_str(), rPlayer->afkMsg.c_str());
+ ChatHandler(GetSession()).PSendSysMessage(LANG_PLAYER_AFK, rPlayer->GetName().c_str(), rPlayer->afkMsg.c_str());
// if player whisper someone, auto turn of dnd to be able to receive an answer
if (isDND() && !rPlayer->isGameMaster())
@@ -21702,7 +21715,7 @@ bool Player::IsAlwaysDetectableFor(WorldObject const* seer) const
return false;
}
-bool Player::IsVisibleGloballyFor(Player* u) const
+bool Player::IsVisibleGloballyFor(Player const* u) const
{
if (!u)
return false;
@@ -22077,8 +22090,8 @@ void Player::SendInitialPacketsBeforeAddToMap()
GetSession()->SendPacket(&data);
SendInitialActionButtons();
- m_reputationMgr.SendInitialReputations();
- m_achievementMgr.SendAllAchievementData();
+ m_reputationMgr->SendInitialReputations();
+ m_achievementMgr->SendAllAchievementData();
SendEquipmentSetList();
@@ -24189,42 +24202,42 @@ void Player::HandleFall(MovementInfo const& movementInfo)
void Player::ResetAchievements()
{
- m_achievementMgr.Reset();
+ m_achievementMgr->Reset();
}
void Player::SendRespondInspectAchievements(Player* player) const
{
- m_achievementMgr.SendRespondInspectAchievements(player);
+ m_achievementMgr->SendRespondInspectAchievements(player);
}
bool Player::HasAchieved(uint32 achievementId) const
{
- return m_achievementMgr.HasAchieved(achievementId);
+ return m_achievementMgr->HasAchieved(achievementId);
}
void Player::StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost/* = 0*/)
{
- m_achievementMgr.StartTimedAchievement(type, entry, timeLost);
+ m_achievementMgr->StartTimedAchievement(type, entry, timeLost);
}
void Player::RemoveTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
{
- m_achievementMgr.RemoveTimedAchievement(type, entry);
+ m_achievementMgr->RemoveTimedAchievement(type, entry);
}
void Player::ResetAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1 /*= 0*/, uint32 miscValue2 /*= 0*/, bool evenIfCriteriaComplete /* = false*/)
{
- m_achievementMgr.ResetAchievementCriteria(type, miscValue1, miscValue2, evenIfCriteriaComplete);
+ m_achievementMgr->ResetAchievementCriteria(type, miscValue1, miscValue2, evenIfCriteriaComplete);
}
void Player::UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1 /*= 0*/, uint32 miscValue2 /*= 0*/, Unit* unit /*= NULL*/)
{
- m_achievementMgr.UpdateAchievementCriteria(type, miscValue1, miscValue2, unit);
+ m_achievementMgr->UpdateAchievementCriteria(type, miscValue1, miscValue2, unit);
}
void Player::CompletedAchievement(AchievementEntry const* entry)
{
- m_achievementMgr.CompletedAchievement(entry);
+ m_achievementMgr->CompletedAchievement(entry);
}
void Player::LearnTalent(uint32 talentId, uint32 talentRank)
@@ -25330,7 +25343,7 @@ bool Player::AddItem(uint32 itemId, uint32 count)
if (count == 0 || dest.empty())
{
// -- TODO: Send to mailbox if no space
- ChatHandler(this).PSendSysMessage("You don't have any space in your bags.");
+ ChatHandler(GetSession()).PSendSysMessage("You don't have any space in your bags.");
return false;
}
@@ -25594,3 +25607,116 @@ Guild* Player::GetGuild()
uint32 guildId = GetGuildId();
return guildId ? sGuildMgr->GetGuildById(guildId) : NULL;
}
+
+Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 duration)
+{
+ Pet* pet = new Pet(this, petType);
+
+ if (petType == SUMMON_PET && pet->LoadPetFromDB(this, entry))
+ {
+ // Remove Demonic Sacrifice auras (known pet)
+ Unit::AuraEffectList const& auraClassScripts = GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
+ for (Unit::AuraEffectList::const_iterator itr = auraClassScripts.begin(); itr != auraClassScripts.end();)
+ {
+ if ((*itr)->GetMiscValue() == 2228)
+ {
+ RemoveAurasDueToSpell((*itr)->GetId());
+ itr = auraClassScripts.begin();
+ }
+ else
+ ++itr;
+ }
+
+ if (duration > 0)
+ pet->SetDuration(duration);
+
+ return NULL;
+ }
+
+ // petentry == 0 for hunter "call pet" (current pet summoned if any)
+ if (!entry)
+ {
+ delete pet;
+ return NULL;
+ }
+
+ pet->Relocate(x, y, z, ang);
+ if (!pet->IsPositionValid())
+ {
+ sLog->outError(LOG_FILTER_GENERAL, "Pet (guidlow %d, entry %d) not summoned. Suggested coordinates isn't valid (X: %f Y: %f)", pet->GetGUIDLow(), pet->GetEntry(), pet->GetPositionX(), pet->GetPositionY());
+ delete pet;
+ return NULL;
+ }
+
+ Map* map = GetMap();
+ uint32 pet_number = sObjectMgr->GeneratePetNumber();
+ if (!pet->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_PET), map, GetPhaseMask(), entry, pet_number))
+ {
+ sLog->outError(LOG_FILTER_GENERAL, "no such creature entry %u", entry);
+ delete pet;
+ return NULL;
+ }
+
+ pet->SetCreatorGUID(GetGUID());
+ pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, getFaction());
+
+ pet->setPowerType(POWER_MANA);
+ pet->SetUInt32Value(UNIT_NPC_FLAGS, 0);
+ pet->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pet->InitStatsForLevel(getLevel());
+
+ SetMinion(pet, true);
+
+ switch (petType)
+ {
+ case SUMMON_PET:
+ // this enables pet details window (Shift+P)
+ pet->GetCharmInfo()->SetPetNumber(pet_number, true);
+ pet->SetUInt32Value(UNIT_FIELD_BYTES_0, 2048);
+ pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
+ pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, 1000);
+ pet->SetFullHealth();
+ pet->SetPower(POWER_MANA, pet->GetMaxPower(POWER_MANA));
+ pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(time(NULL))); // cast can't be helped in this case
+ break;
+ default:
+ break;
+ }
+
+ map->AddToMap(pet->ToCreature());
+
+ switch (petType)
+ {
+ case SUMMON_PET:
+ pet->InitPetCreateSpells();
+ pet->InitTalentForLevel();
+ pet->SavePetToDB(PET_SAVE_AS_CURRENT);
+ PetSpellInitialize();
+ break;
+ default:
+ break;
+ }
+
+ if (petType == SUMMON_PET)
+ {
+ // Remove Demonic Sacrifice auras (known pet)
+ Unit::AuraEffectList const& auraClassScripts = GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
+ for (Unit::AuraEffectList::const_iterator itr = auraClassScripts.begin(); itr != auraClassScripts.end();)
+ {
+ if ((*itr)->GetMiscValue() == 2228)
+ {
+ RemoveAurasDueToSpell((*itr)->GetId());
+ itr = auraClassScripts.begin();
+ }
+ else
+ ++itr;
+ }
+ }
+
+ if (duration > 0)
+ pet->SetDuration(duration);
+
+ //ObjectAccessor::UpdateObjectVisibility(pet);
+
+ return pet;
+}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index fe1d1a5b798..3e4b3e8a971 100755
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -19,30 +19,28 @@
#ifndef _PLAYER_H
#define _PLAYER_H
-#include "AchievementMgr.h"
-#include "Battleground.h"
-#include "Bag.h"
-#include "Common.h"
-#include "DatabaseEnv.h"
-#include "DBCEnums.h"
+#include "DBCStores.h"
#include "GroupReference.h"
-#include "ItemPrototype.h"
-#include "Item.h"
#include "MapReference.h"
-#include "NPCHandler.h"
-#include "Pet.h"
+
+#include "Item.h"
+#include "PetDefines.h"
#include "QuestDef.h"
-#include "ReputationMgr.h"
-#include "Unit.h"
-#include "Util.h" // for Tokens typedef
-#include "WorldSession.h"
#include "SpellMgr.h"
+#include "Unit.h"
-#include<string>
-#include<vector>
+#include <string>
+#include <vector>
+struct CreatureTemplate;
struct Mail;
+struct TrainerSpell;
+struct VendorItem;
+
+class AchievementMgr;
+class ReputationMgr;
class Channel;
+class CharacterCreateInfo;
class Creature;
class DynamicObject;
class Group;
@@ -242,9 +240,7 @@ typedef std::list<PlayerCreateInfoAction> PlayerCreateInfoActions;
struct PlayerInfo
{
// existence checked by displayId != 0
- PlayerInfo() : displayId_m(0), displayId_f(0), levelInfo(NULL)
- {
- }
+ PlayerInfo() : displayId_m(0), displayId_f(0), levelInfo(NULL) { }
uint32 mapId;
uint32 areaId;
@@ -725,13 +721,6 @@ enum RestType
REST_TYPE_IN_CITY = 2
};
-enum DuelCompleteType
-{
- DUEL_INTERRUPTED = 0,
- DUEL_WON = 1,
- DUEL_FLED = 2
-};
-
enum TeleportToOptions
{
TELE_TO_GM_MODE = 0x01,
@@ -834,17 +823,6 @@ struct InstancePlayerBind
InstancePlayerBind() : save(NULL), perm(false) {}
};
-enum DungeonStatusFlag
-{
- DUNGEON_STATUSFLAG_NORMAL = 0x01,
- DUNGEON_STATUSFLAG_HEROIC = 0x02,
-
- RAID_STATUSFLAG_10MAN_NORMAL = 0x01,
- RAID_STATUSFLAG_25MAN_NORMAL = 0x02,
- RAID_STATUSFLAG_10MAN_HEROIC = 0x04,
- RAID_STATUSFLAG_25MAN_HEROIC = 0x08
-};
-
struct AccessRequirement
{
uint8 levelMin;
@@ -1513,7 +1491,7 @@ class Player : public Unit, public GridObject<Player>
/*********************************************************/
bool LoadFromDB(uint32 guid, SQLQueryHolder *holder);
- bool isBeingLoaded() const { return GetSession()->PlayerLoading();}
+ bool isBeingLoaded() const;
void Initialize(uint32 guid);
static uint32 GetUInt32ValueFromArray(Tokenizer const& data, uint16 index);
@@ -2037,8 +2015,8 @@ class Player : public Unit, public GridObject<Player>
uint8 GetGrantableLevels() { return m_grantableLevels; }
void SetGrantableLevels(uint8 val) { m_grantableLevels = val; }
- ReputationMgr& GetReputationMgr() { return m_reputationMgr; }
- ReputationMgr const& GetReputationMgr() const { return m_reputationMgr; }
+ ReputationMgr& GetReputationMgr() { return *m_reputationMgr; }
+ ReputationMgr const& GetReputationMgr() const { return *m_reputationMgr; }
ReputationRank GetReputationRank(uint32 faction_id) const;
void RewardReputation(Unit* victim, float rate);
void RewardReputation(Quest const* quest);
@@ -2339,7 +2317,7 @@ class Player : public Unit, public GridObject<Player>
bool IsNeverVisible() const;
- bool IsVisibleGloballyFor(Player* player) const;
+ bool IsVisibleGloballyFor(Player const* player) const;
void SendInitialVisiblePackets(Unit* target);
void UpdateObjectVisibility(bool forced = true);
@@ -2398,12 +2376,7 @@ class Player : public Unit, public GridObject<Player>
static void ConvertInstancesToGroup(Player* player, Group* group, bool switchLeader);
bool Satisfy(AccessRequirement const* ar, uint32 target_map, bool report = false);
bool CheckInstanceLoginValid();
- bool CheckInstanceCount(uint32 instanceId) const
- {
- if (_instanceResetTimes.size() < sWorld->getIntConfig(CONFIG_MAX_INSTANCES_PER_HOUR))
- return true;
- return _instanceResetTimes.find(instanceId) != _instanceResetTimes.end();
- }
+ bool CheckInstanceCount(uint32 instanceId) const;
void AddInstanceEnterTime(uint32 instanceId, time_t enterTime)
{
@@ -2860,8 +2833,8 @@ class Player : public Unit, public GridObject<Player>
uint32 m_temporaryUnsummonedPetNumber;
uint32 m_oldpetspell;
- AchievementMgr m_achievementMgr;
- ReputationMgr m_reputationMgr;
+ AchievementMgr* m_achievementMgr;
+ ReputationMgr* m_reputationMgr;
SpellCooldowns m_spellCooldowns;
diff --git a/src/server/game/Entities/Totem/Totem.cpp b/src/server/game/Entities/Totem/Totem.cpp
index d5d1bd99277..4d726181c4f 100755
--- a/src/server/game/Entities/Totem/Totem.cpp
+++ b/src/server/game/Entities/Totem/Totem.cpp
@@ -17,13 +17,14 @@
*/
#include "Totem.h"
-#include "WorldPacket.h"
#include "Log.h"
#include "Group.h"
-#include "Player.h"
#include "ObjectMgr.h"
+#include "Opcodes.h"
+#include "Player.h"
#include "SpellMgr.h"
#include "SpellInfo.h"
+#include "WorldPacket.h"
Totem::Totem(SummonPropertiesEntry const* properties, Unit* owner) : Minion(properties, owner, false)
{
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index f52d0059a36..6de359c67dd 100755
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -26,6 +26,7 @@
#include "DBCStores.h"
#include "World.h"
#include "GameObjectAI.h"
+#include "Player.h"
void MapManager::LoadTransports()
{
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 29afc0c1b36..0b168a1615b 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -16,49 +16,50 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "Unit.h"
#include "Common.h"
+#include "Battlefield.h"
+#include "BattlefieldMgr.h"
+#include "Battleground.h"
+#include "CellImpl.h"
+#include "ConditionMgr.h"
+#include "CreatureAI.h"
#include "CreatureAIImpl.h"
-#include "Log.h"
-#include "Opcodes.h"
-#include "WorldPacket.h"
-#include "WorldSession.h"
-#include "World.h"
-#include "ObjectMgr.h"
-#include "SpellMgr.h"
-#include "Unit.h"
-#include "QuestDef.h"
-#include "Player.h"
+#include "CreatureGroups.h"
#include "Creature.h"
-#include "Spell.h"
+#include "Formulas.h"
+#include "GridNotifiersImpl.h"
#include "Group.h"
-#include "SpellAuras.h"
-#include "SpellAuraEffects.h"
+#include "InstanceSaveMgr.h"
+#include "InstanceScript.h"
+#include "Log.h"
#include "MapManager.h"
+#include "MoveSpline.h"
+#include "MoveSplineInit.h"
#include "ObjectAccessor.h"
-#include "CreatureAI.h"
-#include "Formulas.h"
-#include "Pet.h"
-#include "Util.h"
-#include "Totem.h"
-#include "Battleground.h"
+#include "ObjectMgr.h"
+#include "Opcodes.h"
#include "OutdoorPvP.h"
-#include "InstanceSaveMgr.h"
-#include "GridNotifiersImpl.h"
-#include "CellImpl.h"
-#include "CreatureGroups.h"
-#include "PetAI.h"
#include "PassiveAI.h"
+#include "PetAI.h"
+#include "Pet.h"
+#include "Player.h"
+#include "QuestDef.h"
+#include "ReputationMgr.h"
+#include "SpellAuraEffects.h"
+#include "SpellAuras.h"
+#include "Spell.h"
+#include "SpellInfo.h"
+#include "SpellMgr.h"
#include "TemporarySummon.h"
-#include "Vehicle.h"
+#include "Totem.h"
#include "Transport.h"
-#include "InstanceScript.h"
-#include "SpellInfo.h"
-#include "MoveSplineInit.h"
-#include "MoveSpline.h"
-#include "ConditionMgr.h"
#include "UpdateFieldFlags.h"
-#include "Battlefield.h"
-#include "BattlefieldMgr.h"
+#include "Util.h"
+#include "Vehicle.h"
+#include "World.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
#include <math.h>
@@ -1328,7 +1329,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)
// If this is a creature and it attacks from behind it has a probability to daze it's victim
if ((damageInfo->hitOutCome == MELEE_HIT_CRIT || damageInfo->hitOutCome == MELEE_HIT_CRUSHING || damageInfo->hitOutCome == MELEE_HIT_NORMAL || damageInfo->hitOutCome == MELEE_HIT_GLANCING) &&
GetTypeId() != TYPEID_PLAYER && !ToCreature()->IsControlledByPlayer() && !victim->HasInArc(M_PI, this)
- && (victim->GetTypeId() == TYPEID_PLAYER || !victim->ToCreature()->isWorldBoss()))
+ && (victim->GetTypeId() == TYPEID_PLAYER || !victim->ToCreature()->isWorldBoss())&& !victim->IsVehicle())
{
// -probability is between 0% and 40%
// 20% base chance
@@ -1341,7 +1342,10 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)
uint32 VictimDefense=victim->GetDefenseSkillValue();
uint32 AttackerMeleeSkill=GetUnitMeleeSkill();
- Probability *= AttackerMeleeSkill/(float)VictimDefense;
+ Probability *= AttackerMeleeSkill/(float)VictimDefense*0.16;
+
+ if (Probability < 0)
+ Probability = 0;
if (Probability > 40.0f)
Probability = 40.0f;
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index ce329098bc6..08fefe4c420 100755
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -19,24 +19,14 @@
#ifndef __UNIT_H
#define __UNIT_H
-#include "Common.h"
-#include "Object.h"
-#include "Opcodes.h"
-#include "SpellAuraDefines.h"
-#include "UpdateFields.h"
-#include "SharedDefines.h"
-#include "ThreatManager.h"
-#include "HostileRefManager.h"
+#include "EventProcessor.h"
#include "FollowerReference.h"
#include "FollowerRefManager.h"
-#include "EventProcessor.h"
+#include "HostileRefManager.h"
#include "MotionMaster.h"
-#include "DBCStructure.h"
-#include "SpellInfo.h"
-#include "Path.h"
-#include "WorldPacket.h"
-#include "Timer.h"
-#include <list>
+#include "Object.h"
+#include "SpellAuraDefines.h"
+#include "ThreatManager.h"
#define WORLD_TRIGGER 12999
@@ -342,6 +332,7 @@ class Totem;
class Transport;
class Vehicle;
class TransportBase;
+class SpellCastTargets;
typedef std::list<Unit*> UnitList;
typedef std::list< std::pair<Aura*, uint8> > DispelChargesList;
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index 84274a9692d..f8f7a1a1b72 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -29,6 +29,7 @@
#include "SpellMgr.h"
#include "SpellInfo.h"
#include "MoveSplineInit.h"
+#include "TemporarySummon.h"
Vehicle::Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry) : _me(unit), _vehicleInfo(vehInfo), _usableSeatNum(0), _creatureEntry(creatureEntry)
{
diff --git a/src/server/game/Globals/ObjectAccessor.cpp b/src/server/game/Globals/ObjectAccessor.cpp
index b19abc778a9..cedb20eccf1 100755
--- a/src/server/game/Globals/ObjectAccessor.cpp
+++ b/src/server/game/Globals/ObjectAccessor.cpp
@@ -17,25 +17,25 @@
*/
#include "ObjectAccessor.h"
-#include "ObjectMgr.h"
-
-#include "Player.h"
+#include "CellImpl.h"
+#include "Corpse.h"
#include "Creature.h"
-#include "GameObject.h"
#include "DynamicObject.h"
-#include "Vehicle.h"
-#include "WorldPacket.h"
-#include "Item.h"
-#include "Corpse.h"
+#include "GameObject.h"
#include "GridNotifiers.h"
-#include "MapManager.h"
-#include "Map.h"
-#include "CellImpl.h"
#include "GridNotifiersImpl.h"
-#include "Opcodes.h"
-#include "ObjectDefines.h"
+#include "Item.h"
+#include "Map.h"
#include "MapInstanced.h"
+#include "MapManager.h"
+#include "ObjectDefines.h"
+#include "ObjectMgr.h"
+#include "Opcodes.h"
+#include "Pet.h"
+#include "Player.h"
+#include "Vehicle.h"
#include "World.h"
+#include "WorldPacket.h"
#include <cmath>
@@ -47,6 +47,12 @@ ObjectAccessor::~ObjectAccessor()
{
}
+Player* ObjectAccessor::GetObjectInWorld(uint64 guid, Player* /*typeSpecifier*/)
+{
+ Player* player = HashMapHolder<Player>::Find(guid);
+ return player && player->IsInWorld() ? player : NULL;
+}
+
WorldObject* ObjectAccessor::GetWorldObject(WorldObject const& p, uint64 guid)
{
switch (GUID_HIPART(guid))
diff --git a/src/server/game/Globals/ObjectAccessor.h b/src/server/game/Globals/ObjectAccessor.h
index 41a7abc9a24..d2b532c9f94 100755
--- a/src/server/game/Globals/ObjectAccessor.h
+++ b/src/server/game/Globals/ObjectAccessor.h
@@ -28,7 +28,6 @@
#include "GridDefines.h"
#include "Object.h"
-#include "Player.h"
#include <set>
@@ -116,11 +115,7 @@ class ObjectAccessor
}
// Player may be not in world while in ObjectAccessor
- static Player* GetObjectInWorld(uint64 guid, Player* /*typeSpecifier*/)
- {
- Player* player = HashMapHolder<Player>::Find(guid);
- return player && player->IsInWorld() ? player : NULL;
- }
+ static Player* GetObjectInWorld(uint64 guid, Player* /*typeSpecifier*/);
static Unit* GetObjectInWorld(uint64 guid, Unit* /*typeSpecifier*/)
{
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index db8a484ad76..ff734efe385 100755
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -16,36 +16,38 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "AccountMgr.h"
+#include "AchievementMgr.h"
+#include "ArenaTeam.h"
+#include "ArenaTeamMgr.h"
+#include "Chat.h"
#include "Common.h"
#include "DatabaseEnv.h"
+#include "DisableMgr.h"
+#include "GameEventMgr.h"
+#include "GossipDef.h"
+#include "GroupMgr.h"
+#include "GuildMgr.h"
+#include "InstanceSaveMgr.h"
+#include "Language.h"
+#include "LFGMgr.h"
#include "Log.h"
#include "MapManager.h"
#include "ObjectMgr.h"
-#include "ArenaTeamMgr.h"
-#include "GuildMgr.h"
-#include "GroupMgr.h"
+#include "Pet.h"
+#include "PoolMgr.h"
+#include "ReputationMgr.h"
+#include "ScriptMgr.h"
+#include "SpellAuras.h"
+#include "Spell.h"
#include "SpellMgr.h"
-#include "UpdateMask.h"
-#include "World.h"
-#include "ArenaTeam.h"
+#include "SpellScript.h"
#include "Transport.h"
-#include "Language.h"
-#include "GameEventMgr.h"
-#include "Spell.h"
-#include "Chat.h"
-#include "AccountMgr.h"
-#include "InstanceSaveMgr.h"
-#include "SpellAuras.h"
+#include "UpdateMask.h"
#include "Util.h"
-#include "WaypointManager.h"
-#include "GossipDef.h"
#include "Vehicle.h"
-#include "AchievementMgr.h"
-#include "DisableMgr.h"
-#include "ScriptMgr.h"
-#include "SpellScript.h"
-#include "PoolMgr.h"
-#include "LFGMgr.h"
+#include "WaypointManager.h"
+#include "World.h"
ScriptMapMap sQuestEndScripts;
ScriptMapMap sQuestStartScripts;
@@ -227,11 +229,29 @@ bool SpellClickInfo::IsFitToRequirements(Unit const* clicker, Unit const* clicke
return true;
}
-ObjectMgr::ObjectMgr(): _auctionId(1), _equipmentSetGuid(1),
- _itemTextId(1), _mailId(1), _hiPetNumber(1), _hiCharGuid(1),
- _hiCreatureGuid(1), _hiPetGuid(1), _hiVehicleGuid(1), _hiItemGuid(1),
- _hiGoGuid(1), _hiDoGuid(1), _hiCorpseGuid(1), _hiMoTransGuid(1)
-{}
+ObjectMgr::ObjectMgr():
+ _auctionId(1),
+ _equipmentSetGuid(1),
+ _itemTextId(1),
+ _mailId(1),
+ _hiPetNumber(1),
+ _hiCharGuid(1),
+ _hiCreatureGuid(1),
+ _hiPetGuid(1),
+ _hiVehicleGuid(1),
+ _hiItemGuid(1),
+ _hiGoGuid(1),
+ _hiDoGuid(1),
+ _hiCorpseGuid(1),
+ _hiMoTransGuid(1)
+{
+ for (uint8 i = 0; i < MAX_CLASSES; ++i)
+ {
+ _playerClassInfo[i] = NULL;
+ for (uint8 j = 0; j < MAX_RACES; ++j)
+ _playerInfo[j][i] = NULL;
+ }
+}
ObjectMgr::~ObjectMgr()
{
@@ -243,11 +263,21 @@ ObjectMgr::~ObjectMgr()
// free only if loaded
for (int class_ = 0; class_ < MAX_CLASSES; ++class_)
- delete[] _playerClassInfo[class_].levelInfo;
+ {
+ if (_playerClassInfo[class_])
+ delete[] _playerClassInfo[class_]->levelInfo;
+ delete _playerClassInfo[class_];
+ }
for (int race = 0; race < MAX_RACES; ++race)
+ {
for (int class_ = 0; class_ < MAX_CLASSES; ++class_)
- delete[] _playerInfo[race][class_].levelInfo;
+ {
+ if (_playerInfo[race][class_])
+ delete[] _playerInfo[race][class_]->levelInfo;
+ delete _playerInfo[race][class_];
+ }
+ }
for (CacheVendorItemContainer::iterator itr = _cacheVendorItemStore.begin(); itr != _cacheVendorItemStore.end(); ++itr)
itr->second.Clear();
@@ -257,6 +287,9 @@ ObjectMgr::~ObjectMgr()
for (DungeonEncounterContainer::iterator itr =_dungeonEncounterStore.begin(); itr != _dungeonEncounterStore.end(); ++itr)
for (DungeonEncounterList::iterator encounterItr = itr->second.begin(); encounterItr != itr->second.end(); ++encounterItr)
delete *encounterItr;
+
+ for (AccessRequirementContainer::iterator itr = _accessRequirementStore.begin(); itr != _accessRequirementStore.end(); ++itr)
+ delete itr->second;
}
void ObjectMgr::AddLocaleString(std::string const& s, LocaleConstant locale, StringVector& data)
@@ -2923,8 +2956,11 @@ PetLevelInfo const* ObjectMgr::GetPetLevelInfo(uint32 creature_id, uint8 level)
void ObjectMgr::PlayerCreateInfoAddItemHelper(uint32 race_, uint32 class_, uint32 itemId, int32 count)
{
+ if (!_playerInfo[race_][class_])
+ return;
+
if (count > 0)
- _playerInfo[race_][class_].item.push_back(PlayerCreateInfoItem(itemId, count));
+ _playerInfo[race_][class_]->item.push_back(PlayerCreateInfoItem(itemId, count));
else
{
if (count < -1)
@@ -3031,17 +3067,16 @@ void ObjectMgr::LoadPlayerInfo()
continue;
}
- PlayerInfo* pInfo = &_playerInfo[current_race][current_class];
-
- pInfo->mapId = mapId;
- pInfo->areaId = areaId;
- pInfo->positionX = positionX;
- pInfo->positionY = positionY;
- pInfo->positionZ = positionZ;
- pInfo->orientation = orientation;
-
- pInfo->displayId_m = rEntry->model_m;
- pInfo->displayId_f = rEntry->model_f;
+ PlayerInfo* info = new PlayerInfo();
+ info->mapId = mapId;
+ info->areaId = areaId;
+ info->positionX = positionX;
+ info->positionY = positionY;
+ info->positionZ = positionZ;
+ info->orientation = orientation;
+ info->displayId_m = rEntry->model_m;
+ info->displayId_f = rEntry->model_f;
+ _playerInfo[current_race][current_class] = info;
++count;
}
@@ -3164,10 +3199,16 @@ void ObjectMgr::LoadPlayerInfo()
uint32 max_class = current_class ? current_class + 1 : MAX_CLASSES;
for (uint32 r = min_race; r < max_race; ++r)
for (uint32 c = min_class; c < max_class; ++c)
- _playerInfo[r][c].spell.push_back(fields[2].GetUInt32());
+ if (PlayerInfo * info = _playerInfo[r][c])
+ info->spell.push_back(fields[2].GetUInt32());
}
+ else if (PlayerInfo * info = _playerInfo[current_race][current_class])
+ info->spell.push_back(fields[2].GetUInt32());
else
- _playerInfo[current_race][current_class].spell.push_back(fields[2].GetUInt32());
+ {
+ sLog->outError(LOG_FILTER_SQL, "Wrong race: %u, class: %u combination in `playercreateinfo_spell` table, ignoring.", current_race, current_class);
+ continue;
+ }
++count;
}
@@ -3212,8 +3253,8 @@ void ObjectMgr::LoadPlayerInfo()
continue;
}
- PlayerInfo* pInfo = &_playerInfo[current_race][current_class];
- pInfo->action.push_back(PlayerCreateInfoAction(fields[2].GetUInt16(), fields[3].GetUInt32(), fields[4].GetUInt16()));
+ if (PlayerInfo* info = _playerInfo[current_race][current_class])
+ info->action.push_back(PlayerCreateInfoAction(fields[2].GetUInt16(), fields[3].GetUInt32(), fields[4].GetUInt16()));
++count;
}
@@ -3228,13 +3269,12 @@ void ObjectMgr::LoadPlayerInfo()
{
uint32 oldMSTime = getMSTime();
- // 0 1 2 3
+ // 0 1 2 3
QueryResult result = WorldDatabase.Query("SELECT class, level, basehp, basemana FROM player_classlevelstats");
if (!result)
{
sLog->outError(LOG_FILTER_SQL, ">> Loaded 0 level health/mana definitions. DB table `game_event_condition` is empty.");
-
exit(1);
}
@@ -3259,15 +3299,18 @@ void ObjectMgr::LoadPlayerInfo()
continue;
}
- PlayerClassInfo* pClassInfo = &_playerClassInfo[current_class];
-
- if (!pClassInfo->levelInfo)
- pClassInfo->levelInfo = new PlayerClassLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)];
+ PlayerClassInfo* info = _playerClassInfo[current_class];
+ if (!info)
+ {
+ info = new PlayerClassInfo();
+ info->levelInfo = new PlayerClassLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)];
+ _playerClassInfo[current_class] = info;
+ }
- PlayerClassLevelInfo* pClassLevelInfo = &pClassInfo->levelInfo[current_level-1];
+ PlayerClassLevelInfo& levelInfo = info->levelInfo[current_level-1];
- pClassLevelInfo->basehealth = fields[2].GetUInt16();
- pClassLevelInfo->basemana = fields[3].GetUInt16();
+ levelInfo.basehealth = fields[2].GetUInt16();
+ levelInfo.basemana = fields[3].GetUInt16();
++count;
}
@@ -3280,7 +3323,7 @@ void ObjectMgr::LoadPlayerInfo()
if (!sChrClassesStore.LookupEntry(class_))
continue;
- PlayerClassInfo* pClassInfo = &_playerClassInfo[class_];
+ PlayerClassInfo* pClassInfo = _playerClassInfo[class_];
// fatal error if no level 1 data
if (!pClassInfo->levelInfo || pClassInfo->levelInfo[0].basehealth == 0)
@@ -3351,16 +3394,14 @@ void ObjectMgr::LoadPlayerInfo()
continue;
}
- PlayerInfo* pInfo = &_playerInfo[current_race][current_class];
-
- if (!pInfo->levelInfo)
- pInfo->levelInfo = new PlayerLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)];
-
- PlayerLevelInfo* pLevelInfo = &pInfo->levelInfo[current_level-1];
-
- for (int i = 0; i < MAX_STATS; i++)
+ if (PlayerInfo* info = _playerInfo[current_race][current_class])
{
- pLevelInfo->stats[i] = fields[i+3].GetUInt8();
+ if (!info->levelInfo)
+ info->levelInfo = new PlayerLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)];
+
+ PlayerLevelInfo& levelInfo = info->levelInfo[current_level-1];
+ for (int i = 0; i < MAX_STATS; i++)
+ levelInfo.stats[i] = fields[i+3].GetUInt8();
}
++count;
@@ -3380,10 +3421,8 @@ void ObjectMgr::LoadPlayerInfo()
if (!sChrClassesStore.LookupEntry(class_))
continue;
- PlayerInfo* pInfo = &_playerInfo[race][class_];
-
- // skip non loaded combinations
- if (!pInfo->displayId_m || !pInfo->displayId_f)
+ PlayerInfo* info = _playerInfo[race][class_];
+ if (!info)
continue;
// skip expansion races if not playing with expansion
@@ -3395,7 +3434,7 @@ void ObjectMgr::LoadPlayerInfo()
continue;
// fatal error if no level 1 data
- if (!pInfo->levelInfo || pInfo->levelInfo[0].stats[0] == 0)
+ if (!info->levelInfo || info->levelInfo[0].stats[0] == 0)
{
sLog->outError(LOG_FILTER_SQL, "Race %i Class %i Level 1 does not have stats data!", race, class_);
exit(1);
@@ -3404,10 +3443,10 @@ void ObjectMgr::LoadPlayerInfo()
// fill level gaps
for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level)
{
- if (pInfo->levelInfo[level].stats[0] == 0)
+ if (info->levelInfo[level].stats[0] == 0)
{
sLog->outError(LOG_FILTER_SQL, "Race %i Class %i Level %i does not have stats data. Using stats data of level %i.", race, class_, level+1, level);
- pInfo->levelInfo[level] = pInfo->levelInfo[level-1];
+ info->levelInfo[level] = info->levelInfo[level-1];
}
}
}
@@ -3480,7 +3519,7 @@ void ObjectMgr::GetPlayerClassLevelInfo(uint32 class_, uint8 level, PlayerClassL
if (level < 1 || class_ >= MAX_CLASSES)
return;
- PlayerClassInfo const* pInfo = &_playerClassInfo[class_];
+ PlayerClassInfo const* pInfo = _playerClassInfo[class_];
if (level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
level = sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL);
@@ -3493,8 +3532,8 @@ void ObjectMgr::GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, Play
if (level < 1 || race >= MAX_RACES || class_ >= MAX_CLASSES)
return;
- PlayerInfo const* pInfo = &_playerInfo[race][class_];
- if (pInfo->displayId_m == 0 || pInfo->displayId_f == 0)
+ PlayerInfo const* pInfo = _playerInfo[race][class_];
+ if (!pInfo)
return;
if (level <= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
@@ -3506,7 +3545,7 @@ void ObjectMgr::GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, Play
void ObjectMgr::BuildPlayerLevelInfo(uint8 race, uint8 _class, uint8 level, PlayerLevelInfo* info) const
{
// base data (last known level)
- *info = _playerInfo[race][_class].levelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)-1];
+ *info = _playerInfo[race][_class]->levelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)-1];
// if conversion from uint32 to uint8 causes unexpected behaviour, change lvl to uint32
for (uint8 lvl = sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)-1; lvl < level; ++lvl)
@@ -5898,7 +5937,13 @@ void ObjectMgr::LoadAccessRequirements()
{
uint32 oldMSTime = getMSTime();
- _accessRequirementStore.clear(); // need for reload case
+ if (!_accessRequirementStore.empty())
+ {
+ for (AccessRequirementContainer::iterator itr = _accessRequirementStore.begin(); itr != _accessRequirementStore.end(); ++itr)
+ delete itr->second;
+
+ _accessRequirementStore.clear(); // need for reload case
+ }
// 0 1 2 3 4 5 6 7 8 9
QueryResult result = WorldDatabase.Query("SELECT mapid, difficulty, level_min, level_max, item, item2, quest_done_A, quest_done_H, completed_achievement, quest_failed_text FROM access_requirement");
@@ -5920,61 +5965,61 @@ void ObjectMgr::LoadAccessRequirements()
uint8 difficulty = fields[1].GetUInt8();
uint32 requirement_ID = MAKE_PAIR32(mapid, difficulty);
- AccessRequirement ar;
+ AccessRequirement* ar = new AccessRequirement();
- ar.levelMin = fields[2].GetUInt8();
- ar.levelMax = fields[3].GetUInt8();
- ar.item = fields[4].GetUInt32();
- ar.item2 = fields[5].GetUInt32();
- ar.quest_A = fields[6].GetUInt32();
- ar.quest_H = fields[7].GetUInt32();
- ar.achievement = fields[8].GetUInt32();
- ar.questFailedText = fields[9].GetString();
+ ar->levelMin = fields[2].GetUInt8();
+ ar->levelMax = fields[3].GetUInt8();
+ ar->item = fields[4].GetUInt32();
+ ar->item2 = fields[5].GetUInt32();
+ ar->quest_A = fields[6].GetUInt32();
+ ar->quest_H = fields[7].GetUInt32();
+ ar->achievement = fields[8].GetUInt32();
+ ar->questFailedText = fields[9].GetString();
- if (ar.item)
+ if (ar->item)
{
- ItemTemplate const* pProto = GetItemTemplate(ar.item);
+ ItemTemplate const* pProto = GetItemTemplate(ar->item);
if (!pProto)
{
- sLog->outError(LOG_FILTER_GENERAL, "Key item %u does not exist for map %u difficulty %u, removing key requirement.", ar.item, mapid, difficulty);
- ar.item = 0;
+ sLog->outError(LOG_FILTER_GENERAL, "Key item %u does not exist for map %u difficulty %u, removing key requirement.", ar->item, mapid, difficulty);
+ ar->item = 0;
}
}
- if (ar.item2)
+ if (ar->item2)
{
- ItemTemplate const* pProto = GetItemTemplate(ar.item2);
+ ItemTemplate const* pProto = GetItemTemplate(ar->item2);
if (!pProto)
{
- sLog->outError(LOG_FILTER_GENERAL, "Second item %u does not exist for map %u difficulty %u, removing key requirement.", ar.item2, mapid, difficulty);
- ar.item2 = 0;
+ sLog->outError(LOG_FILTER_GENERAL, "Second item %u does not exist for map %u difficulty %u, removing key requirement.", ar->item2, mapid, difficulty);
+ ar->item2 = 0;
}
}
- if (ar.quest_A)
+ if (ar->quest_A)
{
- if (!GetQuestTemplate(ar.quest_A))
+ if (!GetQuestTemplate(ar->quest_A))
{
- sLog->outError(LOG_FILTER_SQL, "Required Alliance Quest %u not exist for map %u difficulty %u, remove quest done requirement.", ar.quest_A, mapid, difficulty);
- ar.quest_A = 0;
+ sLog->outError(LOG_FILTER_SQL, "Required Alliance Quest %u not exist for map %u difficulty %u, remove quest done requirement.", ar->quest_A, mapid, difficulty);
+ ar->quest_A = 0;
}
}
- if (ar.quest_H)
+ if (ar->quest_H)
{
- if (!GetQuestTemplate(ar.quest_H))
+ if (!GetQuestTemplate(ar->quest_H))
{
- sLog->outError(LOG_FILTER_SQL, "Required Horde Quest %u not exist for map %u difficulty %u, remove quest done requirement.", ar.quest_H, mapid, difficulty);
- ar.quest_H = 0;
+ sLog->outError(LOG_FILTER_SQL, "Required Horde Quest %u not exist for map %u difficulty %u, remove quest done requirement.", ar->quest_H, mapid, difficulty);
+ ar->quest_H = 0;
}
}
- if (ar.achievement)
+ if (ar->achievement)
{
- if (!sAchievementStore.LookupEntry(ar.achievement))
+ if (!sAchievementStore.LookupEntry(ar->achievement))
{
- sLog->outError(LOG_FILTER_SQL, "Required Achievement %u not exist for map %u difficulty %u, remove quest done requirement.", ar.achievement, mapid, difficulty);
- ar.achievement = 0;
+ sLog->outError(LOG_FILTER_SQL, "Required Achievement %u not exist for map %u difficulty %u, remove quest done requirement.", ar->achievement, mapid, difficulty);
+ ar->achievement = 0;
}
}
@@ -8202,7 +8247,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (!cInfo)
{
if (player)
- ChatHandler(player).SendSysMessage(LANG_COMMAND_VENDORSELECTION);
+ ChatHandler(player->GetSession()).SendSysMessage(LANG_COMMAND_VENDORSELECTION);
else
sLog->outError(LOG_FILTER_SQL, "Table `(game_event_)npc_vendor` have data for not existed creature template (Entry: %u), ignore", vendor_entry);
return false;
@@ -8213,7 +8258,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (!skip_vendors || skip_vendors->count(vendor_entry) == 0)
{
if (player)
- ChatHandler(player).SendSysMessage(LANG_COMMAND_VENDORSELECTION);
+ ChatHandler(player->GetSession()).SendSysMessage(LANG_COMMAND_VENDORSELECTION);
else
sLog->outError(LOG_FILTER_SQL, "Table `(game_event_)npc_vendor` have data for not creature template (Entry: %u) without vendor flag, ignore", vendor_entry);
@@ -8226,7 +8271,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (!sObjectMgr->GetItemTemplate(item_id))
{
if (player)
- ChatHandler(player).PSendSysMessage(LANG_ITEM_NOT_FOUND, item_id);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_ITEM_NOT_FOUND, item_id);
else
sLog->outError(LOG_FILTER_SQL, "Table `(game_event_)npc_vendor` for Vendor (Entry: %u) have in item list non-existed item (%u), ignore", vendor_entry, item_id);
return false;
@@ -8235,7 +8280,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (ExtendedCost && !sItemExtendedCostStore.LookupEntry(ExtendedCost))
{
if (player)
- ChatHandler(player).PSendSysMessage(LANG_EXTENDED_COST_NOT_EXIST, ExtendedCost);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_EXTENDED_COST_NOT_EXIST, ExtendedCost);
else
sLog->outError(LOG_FILTER_SQL, "Table `(game_event_)npc_vendor` have Item (Entry: %u) with wrong ExtendedCost (%u) for vendor (%u), ignore", item_id, ExtendedCost, vendor_entry);
return false;
@@ -8244,7 +8289,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (maxcount > 0 && incrtime == 0)
{
if (player)
- ChatHandler(player).PSendSysMessage("MaxCount != 0 (%u) but IncrTime == 0", maxcount);
+ ChatHandler(player->GetSession()).PSendSysMessage("MaxCount != 0 (%u) but IncrTime == 0", maxcount);
else
sLog->outError(LOG_FILTER_SQL, "Table `(game_event_)npc_vendor` has `maxcount` (%u) for item %u of vendor (Entry: %u) but `incrtime`=0, ignore", maxcount, item_id, vendor_entry);
return false;
@@ -8252,7 +8297,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
else if (maxcount == 0 && incrtime > 0)
{
if (player)
- ChatHandler(player).PSendSysMessage("MaxCount == 0 but IncrTime<>= 0");
+ ChatHandler(player->GetSession()).PSendSysMessage("MaxCount == 0 but IncrTime<>= 0");
else
sLog->outError(LOG_FILTER_SQL, "Table `(game_event_)npc_vendor` has `maxcount`=0 for item %u of vendor (Entry: %u) but `incrtime`<>0, ignore", item_id, vendor_entry);
return false;
@@ -8265,7 +8310,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (vItems->FindItemCostPair(item_id, ExtendedCost))
{
if (player)
- ChatHandler(player).PSendSysMessage(LANG_ITEM_ALREADY_IN_LIST, item_id, ExtendedCost);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_ITEM_ALREADY_IN_LIST, item_id, ExtendedCost);
else
sLog->outError(LOG_FILTER_SQL, "Table `npc_vendor` has duplicate items %u (with extended cost %u) for vendor (Entry: %u), ignoring", item_id, ExtendedCost, vendor_entry);
return false;
@@ -8274,7 +8319,7 @@ bool ObjectMgr::IsVendorItemValid(uint32 vendor_entry, uint32 item_id, int32 max
if (vItems->GetItemCount() >= MAX_VENDOR_ITEMS)
{
if (player)
- ChatHandler(player).SendSysMessage(LANG_COMMAND_ADDVENDORITEMITEMS);
+ ChatHandler(player->GetSession()).SendSysMessage(LANG_COMMAND_ADDVENDORITEMITEMS);
else
sLog->outError(LOG_FILTER_SQL, "Table `npc_vendor` has too many items (%u >= %i) for vendor (Entry: %u), ignore", vItems->GetItemCount(), MAX_VENDOR_ITEMS, vendor_entry);
return false;
@@ -8695,3 +8740,15 @@ VehicleAccessoryList const* ObjectMgr::GetVehicleAccessoryList(Vehicle* veh) con
return &itr->second;
return NULL;
}
+
+PlayerInfo const* ObjectMgr::GetPlayerInfo(uint32 race, uint32 class_) const
+{
+ if (race >= MAX_RACES)
+ return NULL;
+ if (class_ >= MAX_CLASSES)
+ return NULL;
+ PlayerInfo const* info = _playerInfo[race][class_];
+ if (!info)
+ return NULL;
+ return info;
+}
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 29ca353bdd7..3dcab3df951 100755
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -23,7 +23,6 @@
#include "Object.h"
#include "Bag.h"
#include "Creature.h"
-#include "Player.h"
#include "DynamicObject.h"
#include "GameObject.h"
#include "Corpse.h"
@@ -44,6 +43,11 @@
#include <functional>
class Item;
+struct AccessRequirement;
+struct PlayerClassInfo;
+struct PlayerClassLevelInfo;
+struct PlayerInfo;
+struct PlayerLevelInfo;
// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push, N), also any gcc version not support it at some platform
#if defined(__GNUC__)
@@ -65,6 +69,41 @@ struct PageText
#pragma pack(pop)
#endif
+// DB scripting commands
+enum ScriptCommands
+{
+ SCRIPT_COMMAND_TALK = 0, // source/target = Creature, target = any, datalong = talk type (0=say, 1=whisper, 2=yell, 3=emote text, 4=boss emote text), datalong2 & 1 = player talk (instead of creature), dataint = string_id
+ SCRIPT_COMMAND_EMOTE = 1, // source/target = Creature, datalong = emote id, datalong2 = 0: set emote state; > 0: play emote state
+ SCRIPT_COMMAND_FIELD_SET = 2, // source/target = Creature, datalong = field id, datalog2 = value
+ SCRIPT_COMMAND_MOVE_TO = 3, // source/target = Creature, datalong2 = time to reach, x/y/z = destination
+ SCRIPT_COMMAND_FLAG_SET = 4, // source/target = Creature, datalong = field id, datalog2 = bitmask
+ SCRIPT_COMMAND_FLAG_REMOVE = 5, // source/target = Creature, datalong = field id, datalog2 = bitmask
+ SCRIPT_COMMAND_TELEPORT_TO = 6, // source/target = Creature/Player (see datalong2), datalong = map_id, datalong2 = 0: Player; 1: Creature, x/y/z = destination, o = orientation
+ SCRIPT_COMMAND_QUEST_EXPLORED = 7, // target/source = Player, target/source = GO/Creature, datalong = quest id, datalong2 = distance or 0
+ SCRIPT_COMMAND_KILL_CREDIT = 8, // target/source = Player, datalong = creature entry, datalong2 = 0: personal credit, 1: group credit
+ SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9, // source = WorldObject (summoner), datalong = GO guid, datalong2 = despawn delay
+ SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10, // source = WorldObject (summoner), datalong = creature entry, datalong2 = despawn delay, x/y/z = summon position, o = orientation
+ SCRIPT_COMMAND_OPEN_DOOR = 11, // source = Unit, datalong = GO guid, datalong2 = reset delay (min 15)
+ SCRIPT_COMMAND_CLOSE_DOOR = 12, // source = Unit, datalong = GO guid, datalong2 = reset delay (min 15)
+ SCRIPT_COMMAND_ACTIVATE_OBJECT = 13, // source = Unit, target = GO
+ SCRIPT_COMMAND_REMOVE_AURA = 14, // source (datalong2 != 0) or target (datalong2 == 0) = Unit, datalong = spell id
+ SCRIPT_COMMAND_CAST_SPELL = 15, // source and/or target = Unit, datalong2 = cast direction (0: s->t 1: s->s 2: t->t 3: t->s 4: s->creature with dataint entry), dataint & 1 = triggered flag
+ SCRIPT_COMMAND_PLAY_SOUND = 16, // source = WorldObject, target = none/Player, datalong = sound id, datalong2 (bitmask: 0/1=anyone/player, 0/2=without/with distance dependency, so 1|2 = 3 is target with distance dependency)
+ SCRIPT_COMMAND_CREATE_ITEM = 17, // target/source = Player, datalong = item entry, datalong2 = amount
+ SCRIPT_COMMAND_DESPAWN_SELF = 18, // target/source = Creature, datalong = despawn delay
+
+ SCRIPT_COMMAND_LOAD_PATH = 20, // source = Unit, datalong = path id, datalong2 = is repeatable
+ SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT = 21, // source = WorldObject (if present used as a search center), datalong = script id, datalong2 = unit lowguid, dataint = script table to use (see ScriptsType)
+ SCRIPT_COMMAND_KILL = 22, // source/target = Creature, dataint = remove corpse attribute
+
+ // TrinityCore only
+ SCRIPT_COMMAND_ORIENTATION = 30, // source = Unit, target (datalong > 0) = Unit, datalong = > 0 turn source to face target, o = orientation
+ SCRIPT_COMMAND_EQUIP = 31, // soucre = Creature, datalong = equipment id
+ SCRIPT_COMMAND_MODEL = 32, // source = Creature, datalong = model id
+ SCRIPT_COMMAND_CLOSE_GOSSIP = 33, // source = Player
+ SCRIPT_COMMAND_PLAYMOVIE = 34 // source = Player, datalong = movie id
+};
+
// Benchmarked: Faster than UNORDERED_MAP (insert/find)
typedef std::map<uint32, PageText> PageTextContainer;
@@ -598,7 +637,7 @@ class ObjectMgr
typedef UNORDERED_MAP<uint32, uint32> AreaTriggerScriptContainer;
- typedef UNORDERED_MAP<uint32, AccessRequirement> AccessRequirementContainer;
+ typedef UNORDERED_MAP<uint32, AccessRequirement*> AccessRequirementContainer;
typedef UNORDERED_MAP<uint32, RepRewardRate > RepRewardRateContainer;
typedef UNORDERED_MAP<uint32, ReputationOnKillEntry> RepOnKillContainer;
@@ -647,21 +686,11 @@ class ObjectMgr
{
if (class_ >= MAX_CLASSES)
return NULL;
- return &_playerClassInfo[class_];
+ return _playerClassInfo[class_];
}
void GetPlayerClassLevelInfo(uint32 class_, uint8 level, PlayerClassLevelInfo* info) const;
- PlayerInfo const* GetPlayerInfo(uint32 race, uint32 class_) const
- {
- if (race >= MAX_RACES)
- return NULL;
- if (class_ >= MAX_CLASSES)
- return NULL;
- PlayerInfo const* info = &_playerInfo[race][class_];
- if (info->displayId_m == 0 || info->displayId_f == 0)
- return NULL;
- return info;
- }
+ PlayerInfo const* GetPlayerInfo(uint32 race, uint32 class_) const;
void GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, PlayerLevelInfo* info) const;
@@ -722,7 +751,7 @@ class ObjectMgr
{
AccessRequirementContainer::const_iterator itr = _accessRequirementStore.find(MAKE_PAIR32(mapid, difficulty));
if (itr != _accessRequirementStore.end())
- return &itr->second;
+ return itr->second;
return NULL;
}
@@ -1233,11 +1262,11 @@ class ObjectMgr
// PetLevelInfoContainer[creature_id][level]
PetLevelInfoContainer _petInfoStore; // [creature_id][level]
- PlayerClassInfo _playerClassInfo[MAX_CLASSES];
+ PlayerClassInfo* _playerClassInfo[MAX_CLASSES];
void BuildPlayerLevelInfo(uint8 race, uint8 class_, uint8 level, PlayerLevelInfo* plinfo) const;
- PlayerInfo _playerInfo[MAX_RACES][MAX_CLASSES];
+ PlayerInfo* _playerInfo[MAX_RACES][MAX_CLASSES];
typedef std::vector<uint32> PlayerXPperLevel; // [level]
PlayerXPperLevel _playerXPperLevel;
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index db4dc819557..752c6ec068e 100755
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -31,6 +31,7 @@
#include "Unit.h"
#include "CreatureAI.h"
#include "Spell.h"
+#include "WorldSession.h"
class Player;
//class Map;
diff --git a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
index e3cda4dd76d..2d60678d4ff 100755
--- a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
@@ -26,6 +26,7 @@
#include "UpdateData.h"
#include "CreatureAI.h"
#include "SpellAuras.h"
+#include "Opcodes.h"
template<class T>
inline void Trinity::VisibleNotifier::Visit(GridRefManager<T> &m)
diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h
index a00b7e1ef3a..b20a1bd9dd4 100755
--- a/src/server/game/Groups/Group.h
+++ b/src/server/game/Groups/Group.h
@@ -19,16 +19,14 @@
#ifndef TRINITYCORE_GROUP_H
#define TRINITYCORE_GROUP_H
-#include "Battleground.h"
#include "DBCEnums.h"
#include "GroupRefManager.h"
#include "LootMgr.h"
#include "QueryResult.h"
#include "SharedDefines.h"
-#include "Player.h"
-#include "Battlefield.h"
-#include "BattlefieldMgr.h"
+class Battlefield;
+class Battleground;
class Creature;
class GroupReference;
class InstanceSave;
diff --git a/src/server/game/Groups/GroupMgr.cpp b/src/server/game/Groups/GroupMgr.cpp
index 77b3a304f6b..8283075a226 100644
--- a/src/server/game/Groups/GroupMgr.cpp
+++ b/src/server/game/Groups/GroupMgr.cpp
@@ -18,6 +18,8 @@
#include "Common.h"
#include "GroupMgr.h"
#include "InstanceSaveMgr.h"
+#include "World.h"
+#include "DBCStores.h"
GroupMgr::GroupMgr()
{
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 8f7359d9d44..a03e94ff190 100755
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -16,19 +16,72 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "AccountMgr.h"
+#include "CalendarMgr.h"
+#include "Chat.h"
+#include "Config.h"
#include "DatabaseEnv.h"
#include "Guild.h"
#include "GuildMgr.h"
+#include "Language.h"
+#include "Log.h"
#include "ScriptMgr.h"
-#include "Chat.h"
-#include "Config.h"
#include "SocialMgr.h"
-#include "Log.h"
-#include "AccountMgr.h"
+#include "Opcodes.h"
#define MAX_GUILD_BANK_TAB_TEXT_LEN 500
#define EMBLEM_PRICE 10 * GOLD
+std::string _GetGuildEventString(GuildEvents event)
+{
+ switch (event)
+ {
+ case GE_PROMOTION:
+ return "Member promotion";
+ case GE_DEMOTION:
+ return "Member demotion";
+ case GE_MOTD:
+ return "Guild MOTD";
+ case GE_JOINED:
+ return "Member joined";
+ case GE_LEFT:
+ return "Member left";
+ case GE_REMOVED:
+ return "Member removed";
+ case GE_LEADER_IS:
+ return "Leader is";
+ case GE_LEADER_CHANGED:
+ return "Leader changed";
+ case GE_DISBANDED:
+ return "Guild disbanded";
+ case GE_TABARDCHANGE:
+ return "Tabard change";
+ case GE_RANK_UPDATED:
+ return "Rank updated";
+ case GE_RANK_DELETED:
+ return "Rank deleted";
+ case GE_SIGNED_ON:
+ return "Member signed on";
+ case GE_SIGNED_OFF:
+ return "Member signed off";
+ case GE_GUILDBANKBAGSLOTS_CHANGED:
+ return "Bank bag slots changed";
+ case GE_BANK_TAB_PURCHASED:
+ return "Bank tab purchased";
+ case GE_BANK_TAB_UPDATED:
+ return "Bank tab updated";
+ case GE_BANK_MONEY_SET:
+ return "Bank money set";
+ case GE_BANK_MONEY_CHANGED:
+ return "Bank money changed";
+ case GE_BANK_TEXT_CHANGED:
+ return "Bank tab text changed";
+ default:
+ break;
+ }
+ return "<None>";
+}
+
inline uint32 _GetGuildBankTabPrice(uint8 tabId)
{
switch (tabId)
@@ -240,9 +293,9 @@ void Guild::RankInfo::CreateMissingTabsIfNeeded(uint8 tabs, SQLTransaction& tran
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_RIGHT);
stmt->setUInt32(0, m_guildId);
- stmt->setUInt8 (1, i);
- stmt->setUInt8 (2, m_rankId);
- stmt->setUInt32(3, rightsAndSlots.GetRights());
+ stmt->setUInt8(1, i);
+ stmt->setUInt8(2, m_rankId);
+ stmt->setUInt8(3, rightsAndSlots.GetRights());
stmt->setUInt32(4, rightsAndSlots.GetSlots());
trans->Append(stmt);
}
@@ -1428,24 +1481,21 @@ void Guild::HandleBuyBankTab(WorldSession* session, uint8 tabId)
if (_GetPurchasedTabsSize() >= GUILD_BANK_MAX_TABS)
return;
- if (tabId != _GetPurchasedTabsSize())
- return;
+ if (tabId != _GetPurchasedTabsSize())
+ return;
- uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD;
- if (!tabCost)
- return;
+ uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD;
+ if (!tabCost)
+ return;
- if (!player->HasEnoughMoney(tabCost)) // Should not happen, this is checked by client
- return;
+ if (!player->HasEnoughMoney(tabCost)) // Should not happen, this is checked by client
+ return;
- player->ModifyMoney(-int32(tabCost));
+ player->ModifyMoney(-int32(tabCost));
- uint8 rankId = member->GetRankId();
_CreateNewBankTab();
- _SetRankBankMoneyPerDay(rankId, uint32(GUILD_WITHDRAW_MONEY_UNLIMITED));
- GuildBankRightsAndSlots rightsAndSlots(tabId);
- _SetRankBankTabRightsAndSlots(rankId, rightsAndSlots);
- SendBankTabsInfo(session);
+ _BroadcastEvent(GE_BANK_TAB_PURCHASED, 0);
+ SendPermissions(session); /// Hack to force client to update permissions
}
void Guild::HandleInviteMember(WorldSession* session, std::string const& name)
@@ -1532,6 +1582,8 @@ void Guild::HandleLeaveMember(WorldSession* session)
SendCommandResult(session, GUILD_COMMAND_QUIT, ERR_GUILD_COMMAND_SUCCESS, m_name);
}
+
+ sCalendarMgr->RemovePlayerGuildEventsAndSignups(player->GetGUID(), GetId());
}
void Guild::HandleRemoveMember(WorldSession* session, std::string const& name)
@@ -2091,6 +2143,39 @@ void Guild::BroadcastPacket(WorldPacket* packet) const
player->GetSession()->SendPacket(packet);
}
+void Guild::MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 maxLevel, uint32 minRank)
+{
+ uint32 count = 0;
+
+ WorldPacket data(SMSG_CALENDAR_FILTER_GUILD);
+ data << uint32(count); // count placeholder
+
+ for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
+ {
+ // not sure if needed, maybe client checks it as well
+ if (count >= CALENDAR_MAX_INVITES)
+ {
+ if (Player* player = session->GetPlayer())
+ sCalendarMgr->SendCalendarCommandResult(player->GetGUID(), CALENDAR_ERROR_INVITES_EXCEEDED);
+ return;
+ }
+
+ Member* member = itr->second;
+ uint32 level = Player::GetLevelFromDB(member->GetGUID());
+
+ if (member->GetGUID() != session->GetPlayer()->GetGUID() && level >= minLevel && level <= maxLevel && member->IsRankNotLower(minRank))
+ {
+ data.appendPackGUID(member->GetGUID());
+ data << uint8(0); // unk
+ ++count;
+ }
+ }
+
+ data.put<uint32>(0, count);
+
+ session->SendPacket(&data);
+}
+
// Members handling
bool Guild::AddMember(uint64 guid, uint8 rankId)
{
@@ -2299,6 +2384,10 @@ void Guild::_CreateNewBankTab()
stmt->setUInt8 (1, tabId);
trans->Append(stmt);
+ ++tabId;
+ for (Ranks::iterator itr = m_ranks.begin(); itr != m_ranks.end(); ++itr)
+ (*itr).CreateMissingTabsIfNeeded(tabId, trans, false);
+
CharacterDatabase.CommitTransaction(trans);
}
@@ -2734,7 +2823,9 @@ void Guild::_BroadcastEvent(GuildEvents guildEvent, uint64 guid, const char* par
data << uint64(guid);
BroadcastPacket(&data);
- sLog->outDebug(LOG_FILTER_GUILD, "SMSG_GUILD_EVENT [Broadcast] Event: %u", guildEvent);
+
+ if (sLog->ShouldLog(LOG_FILTER_GUILD, LOG_LEVEL_DEBUG))
+ sLog->outDebug(LOG_FILTER_GUILD, "SMSG_GUILD_EVENT [Broadcast] Event: %s (%u)", _GetGuildEventString(guildEvent).c_str(), guildEvent);
}
void Guild::_SendBankList(WorldSession* session /* = NULL*/, uint8 tabId /*= 0*/, bool sendAllSlots /*= false*/, SlotIds *slots /*= NULL*/) const
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index a8bf5dcdb62..2f43245159b 100755
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -711,6 +711,8 @@ public:
void BroadcastPacketToRank(WorldPacket* packet, uint8 rankId) const;
void BroadcastPacket(WorldPacket* packet) const;
+ void MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 maxLevel, uint32 minRank);
+
template<class Do>
void BroadcastWorker(Do& _do, Player* except = NULL)
{
diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp
index d3738883d6d..b8592fd846e 100755
--- a/src/server/game/Handlers/ArenaTeamHandler.cpp
+++ b/src/server/game/Handlers/ArenaTeamHandler.cpp
@@ -27,6 +27,7 @@
#include "ObjectMgr.h"
#include "SocialMgr.h"
#include "ArenaTeamMgr.h"
+#include "Opcodes.h"
void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket & recvData)
{
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index 3c3a6978384..7e23429be2f 100755
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -24,6 +24,7 @@
#include "AuctionHouseMgr.h"
#include "Log.h"
+#include "Language.h"
#include "Opcodes.h"
#include "UpdateMask.h"
#include "Util.h"
diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp
index 3a359704916..0a076dfaa34 100755
--- a/src/server/game/Handlers/BattleGroundHandler.cpp
+++ b/src/server/game/Handlers/BattleGroundHandler.cpp
@@ -342,8 +342,6 @@ void WorldSession::HandleBattlefieldListOpcode(WorldPacket &recvData)
void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Recvd CMSG_BATTLEFIELD_PORT Message");
-
uint8 type; // arenatype if arena
uint8 unk2; // unk, can be 0x0 (may be if was invited?) and 0x1
uint32 bgTypeId_; // type id from dbc
@@ -351,16 +349,17 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData)
uint8 action; // enter battle 0x1, leave queue 0x0
recvData >> type >> unk2 >> bgTypeId_ >> unk >> action;
-
if (!sBattlemasterListStore.LookupEntry(bgTypeId_))
{
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BattlegroundHandler: invalid bgtype (%u) with player (Name: %s, GUID: %u) received.", bgTypeId_, _player->GetName().c_str(), _player->GetGUIDLow());
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "CMSG_BATTLEFIELD_PORT %s ArenaType: %u, Unk: %u, BgType: %u, Action: %u. Invalid BgType!",
+ GetPlayerInfo().c_str(), type, unk2, bgTypeId_, action);
return;
}
if (!_player->InBattlegroundQueue())
{
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BattlegroundHandler: Invalid CMSG_BATTLEFIELD_PORT received from player (Name: %s, GUID: %u), he is not in bg_queue.", _player->GetName().c_str(), _player->GetGUIDLow());
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "CMSG_BATTLEFIELD_PORT %s ArenaType: %u, Unk: %u, BgType: %u, Action: %u. Player not in queue!",
+ GetPlayerInfo().c_str(), type, unk2, bgTypeId_, action);
return;
}
@@ -372,27 +371,39 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData)
GroupQueueInfo ginfo;
if (!bgQueue.GetPlayerGroupInfoData(_player->GetGUID(), &ginfo))
{
- sLog->outError(LOG_FILTER_NETWORKIO, "BattlegroundHandler: itrplayerstatus not found.");
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "CMSG_BATTLEFIELD_PORT %s ArenaType: %u, Unk: %u, BgType: %u, Action: %u. Player not in queue (No player Group Info)!",
+ GetPlayerInfo().c_str(), type, unk2, bgTypeId_, action);
return;
}
// if action == 1, then instanceId is required
if (!ginfo.IsInvitedToBGInstanceGUID && action == 1)
{
- sLog->outError(LOG_FILTER_NETWORKIO, "BattlegroundHandler: instance not found.");
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "CMSG_BATTLEFIELD_PORT %s ArenaType: %u, Unk: %u, BgType: %u, Action: %u. Player is not invited to any bg!",
+ GetPlayerInfo().c_str(), type, unk2, bgTypeId_, action);
return;
}
Battleground* bg = sBattlegroundMgr->GetBattleground(ginfo.IsInvitedToBGInstanceGUID, bgTypeId);
-
- // bg template might and must be used in case of leaving queue, when instance is not created yet
- if (!bg && action == 0)
- bg = sBattlegroundMgr->GetBattlegroundTemplate(bgTypeId);
if (!bg)
{
- sLog->outError(LOG_FILTER_NETWORKIO, "BattlegroundHandler: bg_template not found for type id %u.", bgTypeId);
- return;
+ if (action)
+ {
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "CMSG_BATTLEFIELD_PORT %s ArenaType: %u, Unk: %u, BgType: %u, Action: %u. Cant find BG with id %u!",
+ GetPlayerInfo().c_str(), type, unk2, bgTypeId_, action, ginfo.IsInvitedToBGInstanceGUID);
+ return;
+ }
+
+ bg = sBattlegroundMgr->GetBattlegroundTemplate(bgTypeId);
+ if (!bg)
+ {
+ sLog->outError(LOG_FILTER_NETWORKIO, "BattlegroundHandler: bg_template not found for type id %u.", bgTypeId);
+ return;
+ }
}
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "CMSG_BATTLEFIELD_PORT %s ArenaType: %u, Unk: %u, BgType: %u, Action: %u.",
+ GetPlayerInfo().c_str(), type, unk2, bgTypeId_, action);
+
// expected bracket entry
PvPDifficultyEntry const* bracketEntry = GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
if (!bracketEntry)
@@ -409,86 +420,82 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData)
sBattlegroundMgr->BuildGroupJoinedBattlegroundPacket(&data2, ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
_player->GetSession()->SendPacket(&data2);
action = 0;
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: player %s (%u) has a deserter debuff, do not port him to battleground!", _player->GetName().c_str(), _player->GetGUIDLow());
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Player %s (%u) has a deserter debuff, do not port him to battleground!", _player->GetName().c_str(), _player->GetGUIDLow());
}
//if player don't match battleground max level, then do not allow him to enter! (this might happen when player leveled up during his waiting in queue
if (_player->getLevel() > bg->GetMaxLevel())
{
- sLog->outError(LOG_FILTER_NETWORKIO, "Battleground: Player %s (%u) has level (%u) higher than maxlevel (%u) of battleground (%u)! Do not port him to battleground!",
+ sLog->outError(LOG_FILTER_NETWORKIO, "Player %s (%u) has level (%u) higher than maxlevel (%u) of battleground (%u)! Do not port him to battleground!",
_player->GetName().c_str(), _player->GetGUIDLow(), _player->getLevel(), bg->GetMaxLevel(), bg->GetTypeID());
action = 0;
}
}
uint32 queueSlot = _player->GetBattlegroundQueueIndex(bgQueueTypeId);
WorldPacket data;
- switch (action)
+ if (action)
{
- case 1: // port to battleground
- if (!_player->IsInvitedForBattlegroundQueueType(bgQueueTypeId))
- return; // cheating?
+ if (!_player->IsInvitedForBattlegroundQueueType(bgQueueTypeId))
+ return; // cheating?
- if (!_player->InBattleground())
- _player->SetBattlegroundEntryPoint();
+ if (!_player->InBattleground())
+ _player->SetBattlegroundEntryPoint();
- // resurrect the player
- if (!_player->isAlive())
- {
- _player->ResurrectPlayer(1.0f);
- _player->SpawnCorpseBones();
- }
- // stop taxi flight at port
- if (_player->isInFlight())
- {
- _player->GetMotionMaster()->MovementExpired();
- _player->CleanupAfterTaxiFlight();
- }
+ // resurrect the player
+ if (!_player->isAlive())
+ {
+ _player->ResurrectPlayer(1.0f);
+ _player->SpawnCorpseBones();
+ }
+ // stop taxi flight at port
+ if (_player->isInFlight())
+ {
+ _player->GetMotionMaster()->MovementExpired();
+ _player->CleanupAfterTaxiFlight();
+ }
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_IN_PROGRESS, 0, bg->GetStartTime(), bg->GetArenaType());
- _player->GetSession()->SendPacket(&data);
- // remove battleground queue status from BGmgr
- bgQueue.RemovePlayer(_player->GetGUID(), false);
- // this is still needed here if battleground "jumping" shouldn't add deserter debuff
- // also this is required to prevent stuck at old battleground after SetBattlegroundId set to new
- if (Battleground* currentBg = _player->GetBattleground())
- currentBg->RemovePlayerAtLeave(_player->GetGUID(), false, true);
-
- // set the destination instance id
- _player->SetBattlegroundId(bg->GetInstanceID(), bgTypeId);
- // set the destination team
- _player->SetBGTeam(ginfo.Team);
- // bg->HandleBeforeTeleportToBattleground(_player);
- sBattlegroundMgr->SendToBattleground(_player, ginfo.IsInvitedToBGInstanceGUID, bgTypeId);
- // add only in HandleMoveWorldPortAck()
- // bg->AddPlayer(_player, team);
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: player %s (%u) joined battle for bg %u, bgtype %u, queue type %u.", _player->GetName().c_str(), _player->GetGUIDLow(), bg->GetInstanceID(), bg->GetTypeID(), bgQueueTypeId);
- break;
- case 0: // leave queue
- if (bg->isArena() && bg->GetStatus() > STATUS_WAIT_QUEUE)
- return;
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_IN_PROGRESS, 0, bg->GetStartTime(), bg->GetArenaType());
+ _player->GetSession()->SendPacket(&data);
+ // remove battleground queue status from BGmgr
+ bgQueue.RemovePlayer(_player->GetGUID(), false);
+ // this is still needed here if battleground "jumping" shouldn't add deserter debuff
+ // also this is required to prevent stuck at old battleground after SetBattlegroundId set to new
+ if (Battleground* currentBg = _player->GetBattleground())
+ currentBg->RemovePlayerAtLeave(_player->GetGUID(), false, true);
+
+ // set the destination instance id
+ _player->SetBattlegroundId(bg->GetInstanceID(), bgTypeId);
+ // set the destination team
+ _player->SetBGTeam(ginfo.Team);
+ // bg->HandleBeforeTeleportToBattleground(_player);
+ sBattlegroundMgr->SendToBattleground(_player, ginfo.IsInvitedToBGInstanceGUID, bgTypeId);
+ // add only in HandleMoveWorldPortAck()
+ // bg->AddPlayer(_player, team);
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: player %s (%u) joined battle for bg %u, bgtype %u, queue type %u.", _player->GetName().c_str(), _player->GetGUIDLow(), bg->GetInstanceID(), bg->GetTypeID(), bgQueueTypeId);
+ }
+ else // leave queue
+ {
+ if (bg->isArena() && bg->GetStatus() > STATUS_WAIT_QUEUE)
+ return;
- // if player leaves rated arena match before match start, it is counted as he played but he lost
- if (ginfo.IsRated && ginfo.IsInvitedToBGInstanceGUID)
+ // if player leaves rated arena match before match start, it is counted as he played but he lost
+ if (ginfo.IsRated && ginfo.IsInvitedToBGInstanceGUID)
+ {
+ ArenaTeam* at = sArenaTeamMgr->GetArenaTeamById(ginfo.Team);
+ if (at)
{
- ArenaTeam* at = sArenaTeamMgr->GetArenaTeamById(ginfo.Team);
- if (at)
- {
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "UPDATING memberLost's personal arena rating for %u by opponents rating: %u, because he has left queue!", GUID_LOPART(_player->GetGUID()), ginfo.OpponentsTeamRating);
- at->MemberLost(_player, ginfo.OpponentsMatchmakerRating);
- at->SaveToDB();
- }
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "UPDATING memberLost's personal arena rating for %u by opponents rating: %u, because he has left queue!", GUID_LOPART(_player->GetGUID()), ginfo.OpponentsTeamRating);
+ at->MemberLost(_player, ginfo.OpponentsMatchmakerRating);
+ at->SaveToDB();
}
- _player->RemoveBattlegroundQueueId(bgQueueTypeId); // must be called this way, because if you move this call to queue->removeplayer, it causes bugs
- sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_NONE, 0, 0, 0);
- bgQueue.RemovePlayer(_player->GetGUID(), true);
- // player left queue, we should update it - do not update Arena Queue
- if (!ginfo.ArenaType)
- sBattlegroundMgr->ScheduleQueueUpdate(ginfo.ArenaMatchmakerRating, ginfo.ArenaType, bgQueueTypeId, bgTypeId, bracketEntry->GetBracketId());
- SendPacket(&data);
- sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: player %s (%u) left queue for bgtype %u, queue type %u.", _player->GetName().c_str(), _player->GetGUIDLow(), bg->GetTypeID(), bgQueueTypeId);
- break;
- default:
- sLog->outError(LOG_FILTER_NETWORKIO, "Battleground port: unknown action %u", action);
- break;
+ }
+ _player->RemoveBattlegroundQueueId(bgQueueTypeId); // must be called this way, because if you move this call to queue->removeplayer, it causes bugs
+ sBattlegroundMgr->BuildBattlegroundStatusPacket(&data, bg, queueSlot, STATUS_NONE, 0, 0, 0);
+ bgQueue.RemovePlayer(_player->GetGUID(), true);
+ // player left queue, we should update it - do not update Arena Queue
+ if (!ginfo.ArenaType)
+ sBattlegroundMgr->ScheduleQueueUpdate(ginfo.ArenaMatchmakerRating, ginfo.ArenaType, bgQueueTypeId, bgTypeId, bracketEntry->GetBracketId());
+ SendPacket(&data);
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Battleground: player %s (%u) left queue for bgtype %u, queue type %u.", _player->GetName().c_str(), _player->GetGUIDLow(), bg->GetTypeID(), bgQueueTypeId);
}
}
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index 0cecd3d615a..876a0fc4463 100755
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -19,131 +19,116 @@
/*
----- Opcodes Not Used yet -----
-SMSG_CALENDAR_CLEAR_PENDING_ACTION SendCalendarClearPendingAction()
-SMSG_CALENDAR_RAID_LOCKOUT_UPDATED SendCalendarRaidLockoutUpdated(InstanceSave const* save)
-
------ Opcodes without Sniffs -----
-SMSG_CALENDAR_FILTER_GUILD [ for (... uint32(count) { packguid(???), uint8(???) } ]
-SMSG_CALENDAR_ARENA_TEAM [ for (... uint32(count) { packguid(???), uint8(???) } ]
-CMSG_CALENDAR_EVENT_INVITE_NOTES [ packguid(Invitee), uint64(inviteId), string(Text), Boolean(Unk) ]
-SMSG_CALENDAR_EVENT_INVITE_NOTES [ uint32(unk1), uint32(unk2), uint32(unk3), uint32(unk4), uint32(unk5) ]
+SMSG_CALENDAR_EVENT_INVITE_NOTES [ packguid(Invitee), uint64(inviteId), string(Text), Boolean(Unk) ]
+?CMSG_CALENDAR_EVENT_INVITE_NOTES [ uint32(unk1), uint32(unk2), uint32(unk3), uint32(unk4), uint32(unk5) ]
SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT [ uint64(inviteId), string(Text) ]
-SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT [ Structure unkown ]
+SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT [ uint64(eventId), uint32(eventTime), uint32(unkFlag), uint8(deletePending) ]
+SMSG_CALENDAR_RAID_LOCKOUT_UPDATED SendCalendarRaidLockoutUpdated(InstanceSave const* save)
-*/
+----- TODO -----
-#include "Common.h"
-#include "WorldPacket.h"
-#include "WorldSession.h"
+Finish complains' handling - what to do with received complains and how to respond?
+Find out what to do with all "not used yet" opcodes
+Correct errors sending (event/invite not found, invites exceeded, event already passed, permissions etc.)
+Fix locked events to be displayed properly and response time shouldn't be shown for people that haven't respond yet
+Copied events should probably have a new owner
+
+*/
#include "InstanceSaveMgr.h"
#include "Log.h"
#include "Opcodes.h"
#include "Player.h"
+#include "SocialMgr.h"
#include "CalendarMgr.h"
#include "ObjectMgr.h"
#include "ObjectAccessor.h"
#include "DatabaseEnv.h"
+#include "GuildMgr.h"
+#include "ArenaTeamMgr.h"
+#include "WorldSession.h"
void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
{
uint64 guid = _player->GetGUID();
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_GET_CALENDAR [" UI64FMTD "]", guid);
- time_t cur_time = time_t(time(NULL));
+ time_t currTime = time(NULL);
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_SEND_CALENDAR [" UI64FMTD "]", guid);
- WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR, 1000); // Impossible to get the correct size without doing a double iteration of some elements
+ WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR, 1000); // Average size if no instance
- CalendarInviteIdList const& invites = sCalendarMgr->GetPlayerInvites(guid);
+ std::vector<CalendarInvite*> invites = sCalendarMgr->GetPlayerInvites(guid);
data << uint32(invites.size());
- for (CalendarInviteIdList::const_iterator it = invites.begin(); it != invites.end(); ++it)
+ for (std::vector<CalendarInvite*>::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
{
- CalendarInvite* invite = sCalendarMgr->GetInvite(*it);
- CalendarEvent* calendarEvent = invite ? sCalendarMgr->GetEvent(invite->GetEventId()) : NULL;
+ data << uint64((*itr)->GetEventId());
+ data << uint64((*itr)->GetInviteId());
+ data << uint8((*itr)->GetStatus());
+ data << uint8((*itr)->GetRank());
- if (calendarEvent)
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent((*itr)->GetEventId()))
{
- data << uint64(invite->GetEventId());
- data << uint64(invite->GetInviteId());
- data << uint8(invite->GetStatus());
- data << uint8(invite->GetRank());
- data << uint8(calendarEvent->GetGuildId() != 0);
+ data << uint8(calendarEvent->IsGuildEvent());
data.appendPackGUID(calendarEvent->GetCreatorGUID());
}
else
{
- sLog->outError(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_SEND_CALENDAR: No Invite found with id [" UI64FMTD "]", *it);
- data << uint64(0);
- data << uint64(0);
- data << uint8(0);
data << uint8(0);
- data << uint8(0);
- data.appendPackGUID(0);
+ data.appendPackGUID((*itr)->GetSenderGUID());
}
}
- CalendarEventIdList const& events = sCalendarMgr->GetPlayerEvents(guid);
- data << uint32(events.size());
- for (CalendarEventIdList::const_iterator it = events.begin(); it != events.end(); ++it)
+ CalendarEventStore playerEvents = sCalendarMgr->GetPlayerEvents(guid);
+ data << uint32(playerEvents.size());
+ for (CalendarEventStore::const_iterator itr = playerEvents.begin(); itr != playerEvents.end(); ++itr)
{
- if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(*it))
- {
- data << uint64(*it);
- data << calendarEvent->GetTitle();
- data << uint32(calendarEvent->GetType());
- data.AppendPackedTime(calendarEvent->GetTime());
- data << uint32(calendarEvent->GetFlags());
- data << uint32(calendarEvent->GetDungeonId());
- data.appendPackGUID(calendarEvent->GetCreatorGUID());
- }
- else
- {
- sLog->outError(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_SEND_CALENDAR: No Event found with id [" UI64FMTD "]", *it);
- data << uint64(0);
- data << uint8(0);
- data << uint32(0);
- data << uint32(0);
- data << uint32(0);
- data << uint32(0);
- data.appendPackGUID(0);
- }
+ CalendarEvent* calendarEvent = *itr;
+
+ data << uint64(calendarEvent->GetEventId());
+ data << calendarEvent->GetTitle();
+ data << uint32(calendarEvent->GetType());
+ data.AppendPackedTime(calendarEvent->GetEventTime());
+ data << uint32(calendarEvent->GetFlags());
+ data << int32(calendarEvent->GetDungeonId());
+ data.appendPackGUID(calendarEvent->GetCreatorGUID());
}
- data << uint32(cur_time); // server time
- data.AppendPackedTime(cur_time); // server time
-
- uint32 counter = 0;
- size_t p_counter = data.wpos();
- data << uint32(counter); // instance save count
+ data << uint32(currTime); // server time
+ data.AppendPackedTime(currTime); // zone time
+ ByteBuffer dataBuffer;
+ uint32 boundCounter = 0;
for (uint8 i = 0; i < MAX_DIFFICULTY; ++i)
- for (Player::BoundInstancesMap::const_iterator itr = _player->m_boundInstances[i].begin(); itr != _player->m_boundInstances[i].end(); ++itr)
+ {
+ Player::BoundInstancesMap boundInstances = _player->GetBoundInstances(Difficulty(i));
+ for (Player::BoundInstancesMap::const_iterator itr = boundInstances.begin(); itr != boundInstances.end(); ++itr)
+ {
if (itr->second.perm)
{
InstanceSave const* save = itr->second.save;
- data << uint32(save->GetMapId());
- data << uint32(save->GetDifficulty());
- data << uint32(save->GetResetTime() - cur_time);
- data << uint64(save->GetInstanceId()); // instance save id as unique instance copy id
- ++counter;
+ dataBuffer << uint32(save->GetMapId());
+ dataBuffer << uint32(save->GetDifficulty());
+ dataBuffer << uint32(save->GetResetTime() - currTime);
+ dataBuffer << uint64(save->GetInstanceId()); // instance save id as unique instance copy id
+ ++boundCounter;
}
+ }
+ }
- data.put<uint32>(p_counter, counter);
-
- data << uint32(1135753200); // unk (28.12.2005 07:00)
+ data << uint32(boundCounter);
+ data.append(dataBuffer);
- counter = 0;
- p_counter = data.wpos();
- data << uint32(counter); // raid reset count
+ data << uint32(1135753200); // Constant date, unk (28.12.2005 07:00)
+ // Reuse variables
+ boundCounter = 0;
std::set<uint32> sentMaps;
+ dataBuffer.clear();
ResetTimeByMapDifficultyMap const& resets = sInstanceSaveMgr->GetResetTimeMap();
for (ResetTimeByMapDifficultyMap::const_iterator itr = resets.begin(); itr != resets.end(); ++itr)
{
uint32 mapId = PAIR32_LOPART(itr->first);
-
if (sentMaps.find(mapId) != sentMaps.end())
continue;
@@ -153,12 +138,14 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
sentMaps.insert(mapId);
- data << uint32(mapId);
- data << uint32(itr->second - cur_time);
- data << uint32(mapEntry->unk_time);
- ++counter;
+ dataBuffer << int32(mapId);
+ dataBuffer << int32(itr->second - currTime);
+ dataBuffer << int32(0); // Never seen anything else in sniffs - still unknown
+ ++boundCounter;
}
- data.put<uint32>(p_counter, counter);
+
+ data << uint32(boundCounter);
+ data.append(dataBuffer);
// TODO: Fix this, how we do know how many and what holidays to send?
uint32 holidayCount = 0;
@@ -174,7 +161,7 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
data << uint32(holiday->CalendarFilterType); // m_calendarFilterType
for (uint8 j = 0; j < MAX_HOLIDAY_DATES; ++j)
- data << uint32(holiday->Date[j]); // 26 * m_date
+ data << uint32(holiday->Date[j]); // 26 * m_date -- WritePackedTime ?
for (uint8 j = 0; j < MAX_HOLIDAY_DURATIONS; ++j)
data << uint32(holiday->Duration[j]); // 10 * m_duration
@@ -193,133 +180,114 @@ void WorldSession::HandleCalendarGetEvent(WorldPacket& recvData)
uint64 eventId;
recvData >> eventId;
- sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_GET_EVENT. Event: ["
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_GET_EVENT. Player ["
UI64FMTD "] Event [" UI64FMTD "]", _player->GetGUID(), eventId);
if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
- SendCalendarEvent(*calendarEvent, CALENDAR_SENDTYPE_GET);
+ sCalendarMgr->SendCalendarEvent(_player->GetGUID(), *calendarEvent, CALENDAR_SENDTYPE_GET);
+ else
+ sCalendarMgr->SendCalendarCommandResult(_player->GetGUID(), CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarGuildFilter(WorldPacket& recvData)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_GUILD_FILTER [" UI64FMTD "]", _player->GetGUID());
- int32 unk1, unk2, unk3;
- recvData >> unk1;
- recvData >> unk2;
- recvData >> unk3;
+ uint32 minLevel;
+ uint32 maxLevel;
+ uint32 minRank;
+
+ recvData >> minLevel >> maxLevel >> minRank;
+
+ if (Guild* guild = sGuildMgr->GetGuildById(_player->GetGuildId()))
+ guild->MassInviteToEvent(this, minLevel, maxLevel, minRank);
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Calendar: CMSG_CALENDAR_GUILD_FILTER - unk1: %d unk2: %d unk3: %d", unk1, unk2, unk3);
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_GUILD_FILTER: Min level [%d], Max level [%d], Min rank [%d]", minLevel, maxLevel, minRank);
}
void WorldSession::HandleCalendarArenaTeam(WorldPacket& recvData)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_ARENA_TEAM [" UI64FMTD "]", _player->GetGUID());
- int32 unk1;
- recvData >> unk1;
+ uint32 arenaTeamId;
+ recvData >> arenaTeamId;
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Calendar: CMSG_CALENDAR_ARENA_TEAM - unk1: %d", unk1);
+ if (ArenaTeam* team = sArenaTeamMgr->GetArenaTeamById(arenaTeamId))
+ team->MassInviteToEvent(this);
}
void WorldSession::HandleCalendarAddEvent(WorldPacket& recvData)
{
uint64 guid = _player->GetGUID();
+
std::string title;
std::string description;
uint8 type;
- bool repeatable;
+ uint8 repeatable;
uint32 maxInvites;
int32 dungeonId;
uint32 eventPackedTime;
uint32 unkPackedTime;
uint32 flags;
- uint64 inviteId = 0;
- uint64 invitee = 0;
- uint8 status;
- uint8 rank;
- recvData >> title >> description >> type >> repeatable >> maxInvites;
- recvData >> dungeonId;
+ recvData >> title >> description >> type >> repeatable >> maxInvites >> dungeonId;
recvData.ReadPackedTime(eventPackedTime);
recvData.ReadPackedTime(unkPackedTime);
recvData >> flags;
- if (!(flags & CALENDAR_FLAG_WITHOUT_INVITES))
+ CalendarEvent* calendarEvent = new CalendarEvent(sCalendarMgr->GetFreeEventId(), guid, 0, CalendarEventType(type), dungeonId,
+ time_t(eventPackedTime), flags, time_t(unkPackedTime), title, description);
+
+ if (calendarEvent->IsGuildEvent() || calendarEvent->IsGuildAnnouncement())
+ if (Player* creator = ObjectAccessor::FindPlayer(guid))
+ calendarEvent->SetGuildId(creator->GetGuildId());
+
+ if (calendarEvent->IsGuildAnnouncement())
+ {
+ // 946684800 is 01/01/2000 00:00:00 - default response time
+ CalendarInvite* invite = new CalendarInvite(0, calendarEvent->GetEventId(), 0, guid, 946684800, CALENDAR_STATUS_NOT_SIGNED_UP, CALENDAR_RANK_PLAYER, "");
+ sCalendarMgr->AddInvite(calendarEvent, invite);
+ }
+ else
{
uint32 inviteCount;
recvData >> inviteCount;
- recvData.readPackGUID(invitee);
- recvData >> status >> rank;
- if (inviteCount != 1 || invitee != guid)
+ for (uint32 i = 0; i < inviteCount; ++i)
{
- sLog->outError(LOG_FILTER_NETWORKIO, "HandleCalendarAddEvent: [" UI64FMTD
- "]: More than one invite (%d) or Invitee [" UI64FMTD
- "] differs", guid, inviteCount, invitee);
- return;
+ uint64 invitee = 0;
+ uint8 status = 0;
+ uint8 rank = 0;
+ recvData.readPackGUID(invitee);
+ recvData >> status >> rank;
+
+ // 946684800 is 01/01/2000 00:00:00 - default response time
+ CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent->GetEventId(), invitee, guid, 946684800, CalendarInviteStatus(status), CalendarModerationRank(rank), "");
+ sCalendarMgr->AddInvite(calendarEvent, invite);
}
-
- inviteId = sCalendarMgr->GetFreeInviteId();
- }
- else
- {
- inviteId = 0;
- status = CALENDAR_STATUS_NO_OWNER;
- rank = CALENDAR_RANK_PLAYER;
}
- sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_ADD_EVENT: [" UI64FMTD "] "
- "Title %s, Description %s, type %u, Repeatable %u, MaxInvites %u, "
- "Dungeon ID %d, Time %u, Time2 %u, Flags %u, Invitee [" UI64FMTD "] "
- "Status %d, Rank %d", guid, title.c_str(), description.c_str(),
- type, repeatable, maxInvites, dungeonId, eventPackedTime,
- unkPackedTime, flags, invitee, status, rank);
-
- CalendarAction action;
-
- action.SetAction(CALENDAR_ACTION_ADD_EVENT);
- action.SetPlayer(_player);
- action.Event.SetEventId(sCalendarMgr->GetFreeEventId());
- action.Event.SetCreatorGUID(guid);
- action.Event.SetType((CalendarEventType) type);
- action.Event.SetFlags(flags);
- action.Event.SetTime(eventPackedTime);
- action.Event.SetTimeZoneTime(unkPackedTime);
- action.Event.SetRepeatable(repeatable);
- action.Event.SetMaxInvites(maxInvites);
- action.Event.SetDungeonId(dungeonId);
- action.Event.SetGuildId((flags & CALENDAR_FLAG_GUILD_ONLY) ? GetPlayer()->GetGuildId() : 0);
- action.Event.SetTitle(title);
- action.Event.SetDescription(description);
- action.Event.AddInvite(inviteId);
- action.Invite.SetEventId(action.Event.GetEventId());
- action.Invite.SetInviteId(inviteId);
- action.Invite.SetInvitee(invitee);
- action.Invite.SetStatus((CalendarInviteStatus) status);
- action.Invite.SetRank((CalendarModerationRank) rank);
- action.Invite.SetSenderGUID(guid);
-
- sCalendarMgr->AddAction(action);
+ sCalendarMgr->AddEvent(calendarEvent, CALENDAR_SENDTYPE_ADD);
}
void WorldSession::HandleCalendarUpdateEvent(WorldPacket& recvData)
{
uint64 guid = _player->GetGUID();
+ time_t oldEventTime;
+
uint64 eventId;
uint64 inviteId;
std::string title;
std::string description;
uint8 type;
- bool repeatable;
+ uint8 repetitionType;
uint32 maxInvites;
int32 dungeonId;
uint32 eventPackedTime;
uint32 timeZoneTime;
uint32 flags;
- recvData >> eventId >> inviteId >> title >> description >> type;
- recvData >> repeatable >> maxInvites >> dungeonId;
+ recvData >> eventId >> inviteId >> title >> description >> type >> repetitionType >> maxInvites >> dungeonId;
recvData.ReadPackedTime(eventPackedTime);
recvData.ReadPackedTime(timeZoneTime);
recvData >> flags;
@@ -328,46 +296,37 @@ void WorldSession::HandleCalendarUpdateEvent(WorldPacket& recvData)
"], InviteId [" UI64FMTD "] Title %s, Description %s, type %u "
"Repeatable %u, MaxInvites %u, Dungeon ID %d, Time %u "
"Time2 %u, Flags %u", guid, eventId, inviteId, title.c_str(),
- description.c_str(), type, repeatable, maxInvites, dungeonId,
+ description.c_str(), type, repetitionType, maxInvites, dungeonId,
eventPackedTime, timeZoneTime, flags);
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_MODIFY_EVENT);
- action.SetPlayer(_player);
- action.SetInviteId(inviteId);
- action.Event.SetEventId(eventId);
- action.Event.SetType((CalendarEventType) type);
- action.Event.SetFlags((CalendarFlags) flags);
- action.Event.SetTime(eventPackedTime);
- action.Event.SetTimeZoneTime(timeZoneTime);
- action.Event.SetRepeatable(repeatable);
- action.Event.SetDungeonId(dungeonId);
- action.Event.SetTitle(title);
- action.Event.SetDescription(description);
- action.Event.SetMaxInvites(maxInvites);
-
- sCalendarMgr->AddAction(action);
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ oldEventTime = calendarEvent->GetEventTime();
+
+ calendarEvent->SetType(CalendarEventType(type));
+ calendarEvent->SetFlags(flags);
+ calendarEvent->SetEventTime(time_t(eventPackedTime));
+ calendarEvent->SetTimeZoneTime(time_t(timeZoneTime)); // Not sure, seems constant from the little sniffs we have
+ calendarEvent->SetDungeonId(dungeonId);
+ calendarEvent->SetTitle(title);
+ calendarEvent->SetDescription(description);
+
+ sCalendarMgr->UpdateEvent(calendarEvent);
+ sCalendarMgr->SendCalendarEventUpdateAlert(*calendarEvent, oldEventTime);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarRemoveEvent(WorldPacket& recvData)
{
uint64 guid = _player->GetGUID();
uint64 eventId;
- uint64 inviteId;
- uint32 flags;
- recvData >> eventId >> inviteId >> flags;
- sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_REMOVE_EVENT [" UI64FMTD "], EventId [" UI64FMTD
- "] inviteId [" UI64FMTD "] Flags?: %u", guid, eventId, inviteId, flags);
-
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_REMOVE_EVENT);
- action.SetPlayer(_player);
- action.SetInviteId(inviteId);
- action.Event.SetEventId(eventId);
- action.Event.SetFlags((CalendarFlags) flags);
+ recvData >> eventId;
+ recvData.rfinish(); // Skip flags & invite ID, we don't use them
- sCalendarMgr->AddAction(action);
+ sCalendarMgr->RemoveEvent(eventId, guid);
}
void WorldSession::HandleCalendarCopyEvent(WorldPacket& recvData)
@@ -382,94 +341,140 @@ void WorldSession::HandleCalendarCopyEvent(WorldPacket& recvData)
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_COPY_EVENT [" UI64FMTD "], EventId [" UI64FMTD
"] inviteId [" UI64FMTD "] Time: %u", guid, eventId, inviteId, time);
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_COPY_EVENT);
- action.SetPlayer(_player);
- action.SetInviteId(inviteId);
- action.Event.SetEventId(eventId);
- action.Event.SetTime(time);
+ if (CalendarEvent* oldEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ CalendarEvent* newEvent = new CalendarEvent(*oldEvent, sCalendarMgr->GetFreeEventId());
+ newEvent->SetEventTime(time_t(time));
+ sCalendarMgr->AddEvent(newEvent, CALENDAR_SENDTYPE_COPY);
+
+ std::vector<CalendarInvite*> invites = sCalendarMgr->GetEventInvites(eventId);
+
+ for (std::vector<CalendarInvite*>::const_iterator itr = invites.begin(); itr != invites.end(); ++itr)
+ sCalendarMgr->AddInvite(newEvent, new CalendarInvite(**itr, sCalendarMgr->GetFreeInviteId(), newEvent->GetEventId()));
- sCalendarMgr->AddAction(action);
+ // should we change owner when somebody makes a copy of event owned by another person?
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarEventInvite(WorldPacket& recvData)
{
- uint64 guid = _player->GetGUID();
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_INVITE");
+
+ uint64 playerGuid = _player->GetGUID();
+
uint64 eventId;
uint64 inviteId;
std::string name;
- uint8 status;
- uint8 rank;
- uint64 invitee = 0;
- uint32 team = 0;
+ bool isPreInvite;
+ bool isGuildEvent;
+
+ uint64 inviteeGuid = 0;
+ uint32 inviteeTeam = 0;
+ uint32 inviteeGuildId = 0;
- recvData >> eventId >> inviteId >> name >> status >> rank;
- if (Player* player = sObjectAccessor->FindPlayerByName(name))
+ recvData >> eventId >> inviteId >> name >> isPreInvite >> isGuildEvent;
+
+ if (Player* player = sObjectAccessor->FindPlayerByName(name.c_str()))
{
- invitee = player->GetGUID();
- team = player->GetTeam();
+ // Invitee is online
+ inviteeGuid = player->GetGUID();
+ inviteeTeam = player->GetTeam();
+ inviteeGuildId = player->GetGuildId();
}
else
{
+ // Invitee offline, get data from database
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_RACE_ACC_BY_NAME);
stmt->setString(0, name);
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
Field* fields = result->Fetch();
- invitee = MAKE_NEW_GUID(fields[0].GetUInt32(), 0, HIGHGUID_PLAYER);
- team = Player::TeamForRace(fields[1].GetUInt8());
+ inviteeGuid = MAKE_NEW_GUID(fields[0].GetUInt32(), 0, HIGHGUID_PLAYER);
+ inviteeTeam = Player::TeamForRace(fields[1].GetUInt8());
+ inviteeGuildId = Player::GetGuildIdFromDB(inviteeGuid);
}
}
- sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_INVITE [" UI64FMTD "], EventId ["
- UI64FMTD "] InviteId [" UI64FMTD "] Name %s ([" UI64FMTD "]), status %u, "
- "Rank %u", guid, eventId, inviteId, name.c_str(), invitee, status, rank);
-
- if (!invitee)
+ if (!inviteeGuid)
{
- SendCalendarCommandResult(CALENDAR_ERROR_PLAYER_NOT_FOUND);
+ sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_PLAYER_NOT_FOUND);
return;
}
- if (_player->GetTeam() != team && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CALENDAR))
+ if (_player->GetTeam() != inviteeTeam && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CALENDAR))
{
- SendCalendarCommandResult(CALENDAR_ERROR_NOT_ALLIED);
+ sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_NOT_ALLIED);
return;
}
- // TODO: Check ignore, even if offline (db query)
+ if (QueryResult result = CharacterDatabase.PQuery("SELECT flags FROM character_social WHERE guid = " UI64FMTD " AND friend = " UI64FMTD, inviteeGuid, playerGuid))
+ {
+ Field* fields = result->Fetch();
+ if (fields[0].GetUInt8() & SOCIAL_FLAG_IGNORED)
+ {
+ sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_IGNORING_YOU_S, name.c_str());
+ return;
+ }
+ }
+
+ if (!isPreInvite)
+ {
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ if (calendarEvent->IsGuildEvent() && calendarEvent->GetGuildId() == inviteeGuildId)
+ {
+ // we can't invite guild members to guild events
+ sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_NO_GUILD_INVITES);
+ return;
+ }
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_ADD_EVENT_INVITE);
- action.SetPlayer(_player);
- action.SetInviteId(inviteId);
- action.Invite.SetEventId(eventId);
- action.Invite.SetInviteId(sCalendarMgr->GetFreeInviteId());
- action.Invite.SetSenderGUID(_player->GetGUID());
- action.Invite.SetInvitee(invitee);
- action.Invite.SetRank((CalendarModerationRank) rank);
- action.Invite.SetStatus((CalendarInviteStatus) status);
+ // 946684800 is 01/01/2000 00:00:00 - default response time
+ CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), eventId, inviteeGuid, playerGuid, 946684800, CALENDAR_STATUS_INVITED, CALENDAR_RANK_PLAYER, "");
+ sCalendarMgr->AddInvite(calendarEvent, invite);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_EVENT_INVALID);
+ }
+ else
+ {
+ if (isGuildEvent && inviteeGuildId == _player->GetGuildId())
+ {
+ sCalendarMgr->SendCalendarCommandResult(playerGuid, CALENDAR_ERROR_NO_GUILD_INVITES);
+ return;
+ }
- sCalendarMgr->AddAction(action);
+ // 946684800 is 01/01/2000 00:00:00 - default response time
+ CalendarInvite* invite = new CalendarInvite(inviteId, 0, inviteeGuid, playerGuid, 946684800, CALENDAR_STATUS_INVITED, CALENDAR_RANK_PLAYER, "");
+ sCalendarMgr->SendCalendarEventInvite(*invite);
+ }
}
void WorldSession::HandleCalendarEventSignup(WorldPacket& recvData)
{
uint64 guid = _player->GetGUID();
uint64 eventId;
- uint8 status;
+ bool tentative;
+
+ recvData >> eventId >> tentative;
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_SIGNUP [" UI64FMTD "] EventId [" UI64FMTD "] Tentative %u", guid, eventId, tentative);
- recvData >> eventId >> status;
- sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_SIGNUP [" UI64FMTD "] EventId ["
- UI64FMTD "] Status %u", guid, eventId, status);
-
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_SIGNUP_TO_EVENT);
- action.SetPlayer(_player);
- action.SetExtraData(GetPlayer()->GetGuildId());
- action.Event.SetEventId(eventId);
- action.Invite.SetStatus((CalendarInviteStatus) status);
- sCalendarMgr->AddAction(action);
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ if (calendarEvent->IsGuildEvent() && calendarEvent->GetGuildId() != _player->GetGuildId())
+ {
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_GUILD_PLAYER_NOT_IN_GUILD);
+ return;
+ }
+
+ CalendarInviteStatus status = tentative ? CALENDAR_STATUS_TENTATIVE : CALENDAR_STATUS_SIGNED_UP;
+ CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), eventId, guid, guid, time(NULL), status, CALENDAR_RANK_PLAYER, "");
+ sCalendarMgr->AddInvite(calendarEvent, invite);
+ sCalendarMgr->SendCalendarClearPendingAction(guid);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarEventRsvp(WorldPacket& recvData)
@@ -477,22 +482,36 @@ void WorldSession::HandleCalendarEventRsvp(WorldPacket& recvData)
uint64 guid = _player->GetGUID();
uint64 eventId;
uint64 inviteId;
- uint8 status;
+ uint32 status;
recvData >> eventId >> inviteId >> status;
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_RSVP [" UI64FMTD"] EventId ["
UI64FMTD "], InviteId [" UI64FMTD "], status %u", guid, eventId,
inviteId, status);
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_MODIFY_EVENT_INVITE);
- action.SetPlayer(_player);
- action.SetInviteId(inviteId);
- action.Invite.SetInviteId(inviteId);
- action.Invite.SetEventId(eventId);
- action.Invite.SetStatus((CalendarInviteStatus) status);
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ // i think we still should be able to remove self from locked events
+ if (status != CALENDAR_STATUS_REMOVED && calendarEvent->GetFlags() & CALENDAR_FLAG_INVITES_LOCKED)
+ {
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_LOCKED);
+ return;
+ }
+
+ if (CalendarInvite* invite = sCalendarMgr->GetInvite(inviteId))
+ {
+ invite->SetStatus(CalendarInviteStatus(status));
+ invite->SetStatusTime(time(NULL));
- sCalendarMgr->AddAction(action);
+ sCalendarMgr->UpdateInvite(invite);
+ sCalendarMgr->SendCalendarEventStatus(*calendarEvent, *invite);
+ sCalendarMgr->SendCalendarClearPendingAction(guid);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_NO_INVITE); // correct?
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarEventRemoveInvite(WorldPacket& recvData)
@@ -500,26 +519,29 @@ void WorldSession::HandleCalendarEventRemoveInvite(WorldPacket& recvData)
uint64 guid = _player->GetGUID();
uint64 invitee;
uint64 eventId;
- uint64 owninviteId;
+ uint64 ownerInviteId; // isn't it sender's inviteId?
uint64 inviteId;
recvData.readPackGUID(invitee);
- recvData >> inviteId >> owninviteId >> eventId;
+ recvData >> inviteId >> ownerInviteId >> eventId;
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_REMOVE_INVITE ["
- UI64FMTD "] EventId [" UI64FMTD "], OwnInviteId ["
+ UI64FMTD "] EventId [" UI64FMTD "], ownerInviteId ["
UI64FMTD "], Invitee ([" UI64FMTD "] id: [" UI64FMTD "])",
- guid, eventId, owninviteId, invitee, inviteId);
+ guid, eventId, ownerInviteId, invitee, inviteId);
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_REMOVE_EVENT_INVITE);
- action.SetPlayer(_player);
- action.SetInviteId(owninviteId);
- action.Invite.SetInviteId(inviteId);
- action.Invite.SetEventId(eventId);
- action.Invite.SetInvitee(invitee);
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ if (calendarEvent->GetCreatorGUID() == invitee)
+ {
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_DELETE_CREATOR_FAILED);
+ return;
+ }
- sCalendarMgr->AddAction(action);
+ sCalendarMgr->RemoveInvite(inviteId, eventId, guid);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_NO_INVITE);
}
void WorldSession::HandleCalendarEventStatus(WorldPacket& recvData)
@@ -528,25 +550,32 @@ void WorldSession::HandleCalendarEventStatus(WorldPacket& recvData)
uint64 invitee;
uint64 eventId;
uint64 inviteId;
- uint64 owninviteId;
+ uint64 ownerInviteId; // isn't it sender's inviteId?
uint8 status;
recvData.readPackGUID(invitee);
- recvData >> eventId >> inviteId >> owninviteId >> status;
+ recvData >> eventId >> inviteId >> ownerInviteId >> status;
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_STATUS [" UI64FMTD"] EventId ["
- UI64FMTD "] OwnInviteId [" UI64FMTD "], Invitee ([" UI64FMTD "] id: ["
- UI64FMTD "], status %u", guid, eventId, owninviteId, invitee, inviteId, status);
-
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_MODIFY_EVENT_INVITE);
- action.SetPlayer(_player);
- action.SetInviteId(owninviteId);
- action.Invite.SetInviteId(inviteId);
- action.Invite.SetEventId(eventId);
- action.Invite.SetInvitee(invitee);
- action.Invite.SetStatus((CalendarInviteStatus) status);
-
- sCalendarMgr->AddAction(action);
+ UI64FMTD "] ownerInviteId [" UI64FMTD "], Invitee ([" UI64FMTD "] id: ["
+ UI64FMTD "], status %u", guid, eventId, ownerInviteId, invitee, inviteId, status);
+
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ if (CalendarInvite* invite = sCalendarMgr->GetInvite(inviteId))
+ {
+ invite->SetStatus((CalendarInviteStatus)status);
+ // not sure if we should set response time when moderator changes invite status
+ //invite->SetStatusTime(time(NULL));
+
+ sCalendarMgr->UpdateInvite(invite);
+ sCalendarMgr->SendCalendarEventStatus(*calendarEvent, *invite);
+ sCalendarMgr->SendCalendarClearPendingAction(invitee);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_NO_INVITE); // correct?
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarEventModeratorStatus(WorldPacket& recvData)
@@ -555,25 +584,28 @@ void WorldSession::HandleCalendarEventModeratorStatus(WorldPacket& recvData)
uint64 invitee;
uint64 eventId;
uint64 inviteId;
- uint64 owninviteId;
- uint8 status;
+ uint64 ownerInviteId; // isn't it sender's inviteId?
+ uint8 rank;
recvData.readPackGUID(invitee);
- recvData >> eventId >> inviteId >> owninviteId >> status;
+ recvData >> eventId >> inviteId >> ownerInviteId >> rank;
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_EVENT_MODERATOR_STATUS [" UI64FMTD "] EventId ["
- UI64FMTD "] OwnInviteId [" UI64FMTD "], Invitee ([" UI64FMTD "] id: ["
- UI64FMTD "], status %u", guid, eventId, owninviteId, invitee, inviteId, status);
-
- CalendarAction action;
- action.SetAction(CALENDAR_ACTION_MODIFY_MODERATOR_EVENT_INVITE);
- action.SetPlayer(_player);
- action.SetInviteId(owninviteId);
- action.Invite.SetInviteId(inviteId);
- action.Invite.SetEventId(eventId);
- action.Invite.SetInvitee(invitee);
- action.Invite.SetStatus((CalendarInviteStatus) status);
-
- sCalendarMgr->AddAction(action);
+ UI64FMTD "] ownerInviteId [" UI64FMTD "], Invitee ([" UI64FMTD "] id: ["
+ UI64FMTD "], rank %u", guid, eventId, ownerInviteId, invitee, inviteId, rank);
+
+ if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(eventId))
+ {
+ if (CalendarInvite* invite = sCalendarMgr->GetInvite(inviteId))
+ {
+ invite->SetRank(CalendarModerationRank(rank));
+ sCalendarMgr->UpdateInvite(invite);
+ sCalendarMgr->SendCalendarEventModeratorStatusAlert(*calendarEvent, *invite);
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_NO_INVITE); // correct?
+ }
+ else
+ sCalendarMgr->SendCalendarCommandResult(guid, CALENDAR_ERROR_EVENT_INVALID);
}
void WorldSession::HandleCalendarComplain(WorldPacket& recvData)
@@ -585,6 +617,8 @@ void WorldSession::HandleCalendarComplain(WorldPacket& recvData)
recvData >> eventId >> complainGUID;
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_COMPLAIN [" UI64FMTD "] EventId ["
UI64FMTD "] guid [" UI64FMTD "]", guid, eventId, complainGUID);
+
+ // what to do with complains?
}
void WorldSession::HandleCalendarGetNumPending(WorldPacket& /*recvData*/)
@@ -600,279 +634,25 @@ void WorldSession::HandleCalendarGetNumPending(WorldPacket& /*recvData*/)
SendPacket(&data);
}
-// ----------------------------------- SEND ------------------------------------
-
-void WorldSession::SendCalendarEvent(CalendarEvent const& calendarEvent, CalendarSendEventType sendEventType)
-{
- uint64 eventId = calendarEvent.GetEventId();
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_SEND_EVENT [" UI64FMTD "] EventId ["
- UI64FMTD "] SendType %u", _player->GetGUID(), eventId, sendEventType);
-
- WorldPacket data(SMSG_CALENDAR_SEND_EVENT);
- data << uint8(sendEventType);
- data.appendPackGUID(calendarEvent.GetCreatorGUID());
- data << uint64(eventId);
- data << calendarEvent.GetTitle();
- data << calendarEvent.GetDescription();
- data << uint8(calendarEvent.GetType());
- data << uint8(calendarEvent.GetRepeatable());
- data << uint32(calendarEvent.GetMaxInvites());
- data << int32(calendarEvent.GetDungeonId());
- data << uint32(calendarEvent.GetFlags());
- data.AppendPackedTime(calendarEvent.GetTime());
- data.AppendPackedTime(calendarEvent.GetTimeZoneTime());
- data << uint32(calendarEvent.GetGuildId());
-
- CalendarInviteIdList const& invites = calendarEvent.GetInviteIdList();
- data << uint32(invites.size());
- for (CalendarInviteIdList::const_iterator it = invites.begin(); it != invites.end(); ++it)
- {
- if (CalendarInvite* invite = sCalendarMgr->GetInvite(*it))
- {
- uint64 guid = invite->GetInvitee();
- Player* player = ObjectAccessor::FindPlayer(guid);
- uint8 level = player ? player->getLevel() : Player::GetLevelFromDB(guid);
-
- data.appendPackGUID(guid);
- data << uint8(level);
- data << uint8(invite->GetStatus());
- data << uint8(invite->GetRank());
- data << uint8(calendarEvent.GetGuildId() != 0);
- data << uint64(invite->GetInviteId());
- data << uint32(invite->GetStatusTime());
- data << invite->GetText();
- }
- else
- {
- data.appendPackGUID(_player->GetGUID());
- data << uint8(0) << uint8(0) << uint8(0) << uint8(0)
- << uint64(0) << uint32(0) << uint8(0);
-
- sLog->outError(LOG_FILTER_NETWORKIO, "SendCalendarEvent: No Invite found with id [" UI64FMTD "]", *it);
- }
- }
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventInvite(CalendarInvite const& invite, bool pending)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = invite.GetEventId();
- uint64 inviteId = invite.GetInviteId();
- uint64 invitee = invite.GetInvitee();
- uint8 status = invite.GetStatus();
- uint32 statusTime = invite.GetStatusTime();
- Player* player = ObjectAccessor::FindPlayer(invitee);
- uint8 level = player ? player->getLevel() : Player::GetLevelFromDB(invitee);
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_INVITE [" UI64FMTD "] EventId ["
- UI64FMTD "] InviteId [" UI64FMTD "] Invitee [" UI64FMTD "] "
- " Level %u, Status %u, StatusTime %u" , guid, eventId, inviteId,
- invitee, level, status, statusTime);
-
- WorldPacket data(SMSG_CALENDAR_EVENT_INVITE, 8 + 8 + 8 + 1 + 1 + 1 + (statusTime ? 4 : 0) + 1);
- data.appendPackGUID(invitee);
- data << uint64(eventId);
- data << uint64(inviteId);
- data << uint8(level);
- data << uint8(status);
- if (statusTime)
- data << uint8(1) << uint32(statusTime);
- else
- data << uint8(0);
- data << uint8(pending);
-
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventInviteAlert(CalendarEvent const& calendarEvent, CalendarInvite const& invite)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = calendarEvent.GetEventId();
- uint64 inviteId = invite.GetInviteId();
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_INVITE_ALERT [" UI64FMTD "] EventId ["
- UI64FMTD "] InviteId [" UI64FMTD "]", guid, eventId, inviteId);
-
- WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_ALERT);
- data << uint64(eventId);
- data << calendarEvent.GetTitle().c_str();
- data.AppendPackedTime(calendarEvent.GetTime());
- data << uint32(calendarEvent.GetFlags());
- data << uint32(calendarEvent.GetType());
- data << uint32(calendarEvent.GetDungeonId());
- data << uint64(inviteId);
- data << uint8(invite.GetStatus());
- data << uint8(invite.GetRank());
- data.appendPackGUID(calendarEvent.GetCreatorGUID());
- data.appendPackGUID(invite.GetSenderGUID());
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventUpdateAlert(CalendarEvent const& calendarEvent, CalendarSendEventType sendEventType)
+void WorldSession::HandleSetSavedInstanceExtend(WorldPacket& recvData)
{
- uint64 guid = _player->GetGUID();
- uint64 eventId = calendarEvent.GetEventId();
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_UPDATED_ALERT ["
- UI64FMTD "] EventId [" UI64FMTD "]", guid, eventId);
-
-
- WorldPacket data(SMSG_CALENDAR_EVENT_UPDATED_ALERT, 1 + 8 + 4 + 4 + 4 + 1 + 4 +
- calendarEvent.GetTitle().size() + calendarEvent.GetDescription().size() + 1 + 4 + 4);
- data << uint8(sendEventType);
- data << uint64(eventId);
- data.AppendPackedTime(calendarEvent.GetTime());
- data << uint32(calendarEvent.GetFlags());
- data.AppendPackedTime(calendarEvent.GetTime());
- data << uint8(calendarEvent.GetType());
- data << uint32(calendarEvent.GetDungeonId());
- data << calendarEvent.GetTitle().c_str();
- data << calendarEvent.GetDescription().c_str();
- data << uint8(calendarEvent.GetRepeatable());
- data << uint32(calendarEvent.GetMaxInvites());
- data << uint32(0); // FIXME
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventRemovedAlert(CalendarEvent const& calendarEvent)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = calendarEvent.GetEventId();
- uint32 eventTime = calendarEvent.GetTime();
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_REMOVED_ALERT [" UI64FMTD "] EventId ["
- UI64FMTD "] Time %u", guid, eventId, eventTime);
-
- WorldPacket data(SMSG_CALENDAR_EVENT_REMOVED_ALERT, 1 + 8 + 1);
- data << uint8(1); // FIXME: If true does not SignalEvent(EVENT_CALENDAR_ACTION_PENDING)
- data << uint64(eventId);
- data.AppendPackedTime(eventTime);
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventStatus(CalendarEvent const& calendarEvent, CalendarInvite const& invite)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = calendarEvent.GetEventId();
- uint64 inviteId = invite.GetInviteId();
- uint64 invitee = invite.GetInvitee();
- uint32 eventTime = calendarEvent.GetTime();
- uint32 flags = calendarEvent.GetFlags();
- uint8 status = invite.GetStatus();
- uint8 rank = invite.GetRank();
- uint32 statusTime = invite.GetStatusTime();
-
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_STATUS [" UI64FMTD "] EventId ["
- UI64FMTD "] InviteId [" UI64FMTD "] Invitee [" UI64FMTD "] Time %u "
- "Flags %u, Status %u, Rank %u, StatusTime %u",
- guid, eventId, inviteId, invitee, eventTime, flags, status, rank,
- statusTime);
-
- WorldPacket data(SMSG_CALENDAR_EVENT_STATUS, 8 + 8 + 4 + 4 + 1 + 1 + 4);
- data.appendPackGUID(invitee);
- data << uint64(eventId);
- data.AppendPackedTime(eventTime);
- data << uint32(flags);
- data << uint8(status);
- data << uint8(rank);
- data.AppendPackedTime(statusTime);
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventModeratorStatusAlert(CalendarInvite const& invite)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = invite.GetEventId();
- uint64 invitee = invite.GetInvitee();
- uint8 status = invite.GetStatus();
-
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT [" UI64FMTD
- "] Invitee [" UI64FMTD "] EventId [" UI64FMTD "] Status %u ", guid,
- invitee, eventId, status);
-
-
- WorldPacket data(SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT, 8 + 8 + 1 + 1);
- data.appendPackGUID(invitee);
- data << uint64(eventId);
- data << uint8(status);
- data << uint8(1); // FIXME
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventInviteRemoveAlert(CalendarEvent const& calendarEvent, CalendarInviteStatus status)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = calendarEvent.GetEventId();
- uint32 eventTime = calendarEvent.GetTime();
- uint32 flags = calendarEvent.GetFlags();
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT ["
- UI64FMTD "] EventId [" UI64FMTD "] Time %u, Flags %u, Status %u",
- guid, eventId, eventTime, flags, status);
-
- WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT, 8 + 4 + 4 + 1);
- data << uint64(eventId);
- data.AppendPackedTime(eventTime);
- data << uint32(flags);
- data << uint8(status);
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarEventInviteRemove(CalendarInvite const& invite, uint32 flags)
-{
- uint64 guid = _player->GetGUID();
- uint64 eventId = invite.GetEventId();
- uint64 invitee = invite.GetInvitee();
-
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_EVENT_INVITE_REMOVED ["
- UI64FMTD "] Invitee [" UI64FMTD "] EventId [" UI64FMTD
- "] Flags %u", guid, invitee, eventId, flags);
-
- WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_REMOVED, 8 + 4 + 4 + 1);
- data.appendPackGUID(invitee);
- data << uint32(eventId);
- data << uint32(flags);
- data << uint8(1); // FIXME
- SendPacket(&data);
-}
-
-void WorldSession::SendCalendarClearPendingAction()
-{
- uint64 guid = _player->GetGUID();
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_CLEAR_PENDING_ACTION [" UI64FMTD "]", guid);
+ uint32 mapId, difficulty;
+ uint8 toggleExtend;
+ recvData >> mapId >> difficulty>> toggleExtend;
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_SET_SAVED_INSTANCE_EXTEND - MapId: %u, Difficulty: %u, ToggleExtend: %s", mapId, difficulty, toggleExtend ? "On" : "Off");
+
+ /*
+ InstancePlayerBind* instanceBind = _player->GetBoundInstance(mapId, Difficulty(difficulty));
+ if (!instanceBind || !instanceBind->save)
+ return;
- WorldPacket data(SMSG_CALENDAR_CLEAR_PENDING_ACTION, 0);
- SendPacket(&data);
+ InstanceSave* save = instanceBind->save;
+ // http://www.wowwiki.com/Instance_Lock_Extension
+ // SendCalendarRaidLockoutUpdated(save);
+ */
}
-void WorldSession::SendCalendarCommandResult(CalendarError err, char const* param /*= NULL*/)
-{
- uint64 guid = _player->GetGUID();
- sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_COMMAND_RESULT [" UI64FMTD "] Value: %u", guid, err);
-
- WorldPacket data(SMSG_CALENDAR_COMMAND_RESULT, 0);
- data << uint32(0);
- data << uint8(0);
- switch (err)
- {
- case CALENDAR_ERROR_OTHER_INVITES_EXCEEDED:
- case CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S:
- case CALENDAR_ERROR_IGNORING_YOU_S:
- data << param;
- break;
- default:
- data << uint8(0);
- break;
- }
-
- data << uint32(err);
-
- SendPacket(&data);
-}
+// ----------------------------------- SEND ------------------------------------
void WorldSession::SendCalendarRaidLockout(InstanceSave const* save, bool add)
{
@@ -902,13 +682,13 @@ void WorldSession::SendCalendarRaidLockoutUpdated(InstanceSave const* save)
sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_RAID_LOCKOUT_UPDATED [" UI64FMTD
"] Map: %u, Difficulty %u", guid, save->GetMapId(), save->GetDifficulty());
- time_t cur_time = time_t(time(NULL));
+ time_t currTime = time(NULL);
WorldPacket data(SMSG_CALENDAR_RAID_LOCKOUT_UPDATED, 4 + 4 + 4 + 4 + 8);
- data.AppendPackedTime(cur_time);
+ data.AppendPackedTime(currTime);
data << uint32(save->GetMapId());
data << uint32(save->GetDifficulty());
data << uint32(0); // Amount of seconds that has changed to the reset time
- data << uint32(save->GetResetTime() - cur_time);
+ data << uint32(save->GetResetTime() - currTime);
SendPacket(&data);
}
diff --git a/src/server/game/Handlers/ChannelHandler.cpp b/src/server/game/Handlers/ChannelHandler.cpp
index a65e3830a81..462bc7fff0b 100755
--- a/src/server/game/Handlers/ChannelHandler.cpp
+++ b/src/server/game/Handlers/ChannelHandler.cpp
@@ -18,252 +18,256 @@
#include "ObjectMgr.h" // for normalizePlayerName
#include "ChannelMgr.h"
+#include "Player.h"
void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
-
- uint32 channel_id;
+ uint32 channelId;
uint8 unknown1, unknown2;
- std::string channelname, pass;
+ std::string channelName, password;
+
+ recvPacket >> channelId >> unknown1 >> unknown2 >> channelName >> password;
- recvPacket >> channel_id;
- recvPacket >> unknown1 >> unknown2;
- recvPacket >> channelname;
- recvPacket >> pass;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_JOIN_CHANNEL %s Channel: %u, unk1: %u, unk2: %u, channel: %s, password: %s",
+ GetPlayerInfo().c_str(), channelId, unknown1, unknown2, channelName.c_str(), password.c_str());
- if (channel_id)
+ if (channelId)
{
- ChatChannelsEntry const* channel = sChatChannelsStore.LookupEntry(channel_id);
+ ChatChannelsEntry const* channel = sChatChannelsStore.LookupEntry(channelId);
if (!channel)
return;
- AreaTableEntry const* current_zone = GetAreaEntryByAreaID(_player->GetZoneId());
- if (!current_zone)
- return;
-
- if (!_player->CanJoinConstantChannelInZone(channel, current_zone))
+ AreaTableEntry const* zone = GetAreaEntryByAreaID(GetPlayer()->GetZoneId());
+ if (!zone || !GetPlayer()->CanJoinConstantChannelInZone(channel, zone))
return;
}
- if (channelname.empty())
+ if (channelName.empty())
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
{
- cMgr->setTeam(_player->GetTeam());
- if (Channel* chn = cMgr->GetJoinChannel(channelname, channel_id))
- chn->Join(_player->GetGUID(), pass.c_str());
+ cMgr->setTeam(GetPlayer()->GetTeam());
+ if (Channel* channel = cMgr->GetJoinChannel(channelName, channelId))
+ channel->JoinChannel(GetPlayer(), password);
}
}
void WorldSession::HandleLeaveChannel(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
-
uint32 unk;
- std::string channelname;
- recvPacket >> unk; // channel id?
- recvPacket >> channelname;
+ std::string channelName;
+ recvPacket >> unk >> channelName;
- if (channelname.empty())
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_LEAVE_CHANNEL %s Channel: %s, unk1: %u",
+ GetPlayerInfo().c_str(), channelName.c_str(), unk);
+
+ if (channelName.empty())
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
{
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->Leave(_player->GetGUID(), true);
- cMgr->LeftChannel(channelname);
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->LeaveChannel(GetPlayer(), true);
+ cMgr->LeftChannel(channelName);
}
}
void WorldSession::HandleChannelList(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname;
- recvPacket >> channelname;
+ std::string channelName;
+ recvPacket >> channelName;
+
+ sLog->outDebug(LOG_FILTER_CHATSYS, "%s %s Channel: %s",
+ recvPacket.GetOpcode() == CMSG_CHANNEL_DISPLAY_LIST ? "CMSG_CHANNEL_DISPLAY_LIST" : "CMSG_CHANNEL_LIST",
+ GetPlayerInfo().c_str(), channelName.c_str());
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->List(_player);
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->List(GetPlayer());
}
void WorldSession::HandleChannelPassword(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, pass;
- recvPacket >> channelname;
+ std::string channelName, password;
+ recvPacket >> channelName >> password;
- recvPacket >> pass;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_PASSWORD %s Channel: %s, Password: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), password.c_str());
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->Password(_player->GetGUID(), pass.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->Password(GetPlayer(), password);
}
void WorldSession::HandleChannelSetOwner(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, newp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> newp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_SET_OWNER %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(newp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->SetOwner(_player->GetGUID(), newp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->SetOwner(GetPlayer(), targetName);
}
void WorldSession::HandleChannelOwner(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname;
- recvPacket >> channelname;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->SendWhoOwner(_player->GetGUID());
+ std::string channelName;
+ recvPacket >> channelName;
+
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_OWNER %s Channel: %s",
+ GetPlayerInfo().c_str(), channelName.c_str());
+
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->SendWhoOwner(GetPlayer()->GetGUID());
}
void WorldSession::HandleChannelModerator(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_MODERATOR %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->SetModerator(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->SetModerator(GetPlayer(), targetName);
}
void WorldSession::HandleChannelUnmoderator(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_UNMODERATOR %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->UnsetModerator(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->UnsetModerator(GetPlayer(), targetName);
}
void WorldSession::HandleChannelMute(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_MUTE %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->SetMute(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->SetMute(GetPlayer(), targetName);
}
void WorldSession::HandleChannelUnmute(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
-
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_UNMUTE %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->UnsetMute(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->UnsetMute(GetPlayer(), targetName);
}
void WorldSession::HandleChannelInvite(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_INVITE %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->Invite(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->Invite(GetPlayer(), targetName);
}
void WorldSession::HandleChannelKick(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
- if (!normalizePlayerName(otp))
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_KICK %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
+
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->Kick(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->Kick(GetPlayer(), targetName);
}
void WorldSession::HandleChannelBan(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_BAN %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->Ban(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->Ban(GetPlayer(), targetName);
}
void WorldSession::HandleChannelUnban(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
-
- std::string channelname, otp;
- recvPacket >> channelname;
+ std::string channelName, targetName;
+ recvPacket >> channelName >> targetName;
- recvPacket >> otp;
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_UNBAN %s Channel: %s, Target: %s",
+ GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
- if (!normalizePlayerName(otp))
+ if (!normalizePlayerName(targetName))
return;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->UnBan(_player->GetGUID(), otp.c_str());
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->UnBan(GetPlayer(), targetName);
}
void WorldSession::HandleChannelAnnouncements(WorldPacket& recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname;
- recvPacket >> channelname;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->Announce(_player->GetGUID());
+ std::string channelName;
+ recvPacket >> channelName;
+
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_ANNOUNCEMENTS %s Channel: %s",
+ GetPlayerInfo().c_str(), channelName.c_str());
+
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->Announce(GetPlayer());
}
void WorldSession::HandleChannelDisplayListQuery(WorldPacket &recvPacket)
@@ -274,17 +278,23 @@ void WorldSession::HandleChannelDisplayListQuery(WorldPacket &recvPacket)
void WorldSession::HandleGetChannelMemberCount(WorldPacket &recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname;
- recvPacket >> channelname;
- if (ChannelMgr* cMgr = ChannelMgr::forTeam(_player->GetTeam()))
+ std::string channelName;
+ recvPacket >> channelName;
+
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_GET_CHANNEL_MEMBER_COUNT %s Channel: %s",
+ GetPlayerInfo().c_str(), channelName.c_str());
+
+ if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
{
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
{
- WorldPacket data(SMSG_CHANNEL_MEMBER_COUNT, chn->GetName().size()+1+1+4);
- data << chn->GetName();
- data << uint8(chn->GetFlags());
- data << uint32(chn->GetNumPlayers());
+ sLog->outDebug(LOG_FILTER_CHATSYS, "SMSG_CHANNEL_MEMBER_COUNT %s Channel: %s Count: %u",
+ GetPlayerInfo().c_str(), channelName.c_str(), channel->GetNumPlayers());
+
+ WorldPacket data(SMSG_CHANNEL_MEMBER_COUNT, channel->GetName().size() + 1 + 4);
+ data << channel->GetName();
+ data << uint8(channel->GetFlags());
+ data << uint32(channel->GetNumPlayers());
SendPacket(&data);
}
}
@@ -292,10 +302,15 @@ void WorldSession::HandleGetChannelMemberCount(WorldPacket &recvPacket)
void WorldSession::HandleSetChannelWatch(WorldPacket &recvPacket)
{
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
- std::string channelname;
- recvPacket >> channelname;
- /*if (ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
- if (Channel* chn = cMgr->GetChannel(channelname, _player))
- chn->JoinNotify(_player->GetGUID());*/
+ std::string channelName;
+ recvPacket >> channelName;
+
+ sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_SET_CHANNEL_WATCH %s Channel: %s",
+ GetPlayerInfo().c_str(), channelName.c_str());
+
+ /*
+ if (ChannelMgr* cMgr = channelMgr(GetPlayer()->GetTeam()))
+ if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
+ channel->JoinNotify(GetPlayer());
+ */
}
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 258878b1f87..0b01c796511 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -16,34 +16,37 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Common.h"
-#include "ObjectAccessor.h"
-#include "ObjectMgr.h"
-#include "ArenaTeamMgr.h"
-#include "GuildMgr.h"
-#include "SystemConfig.h"
-#include "World.h"
-#include "WorldPacket.h"
-#include "WorldSession.h"
-#include "DatabaseEnv.h"
-
+#include "AccountMgr.h"
#include "ArenaTeam.h"
+#include "ArenaTeamMgr.h"
+#include "Battleground.h"
+#include "CalendarMgr.h"
#include "Chat.h"
+#include "Common.h"
+#include "DatabaseEnv.h"
#include "Group.h"
#include "Guild.h"
+#include "GuildMgr.h"
#include "Language.h"
+#include "LFGMgr.h"
#include "Log.h"
+#include "ObjectAccessor.h"
+#include "ObjectMgr.h"
#include "Opcodes.h"
-#include "Player.h"
+#include "Pet.h"
#include "PlayerDump.h"
+#include "Player.h"
+#include "ReputationMgr.h"
+#include "ScriptMgr.h"
#include "SharedDefines.h"
#include "SocialMgr.h"
+#include "SystemConfig.h"
#include "UpdateMask.h"
#include "Util.h"
-#include "ScriptMgr.h"
-#include "Battleground.h"
-#include "AccountMgr.h"
-#include "LFGMgr.h"
+#include "World.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
+
class LoginQueryHolder : public SQLQueryHolder
{
@@ -726,6 +729,7 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket & recvData)
sLog->outCharDump(dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
}
+ sCalendarMgr->RemoveAllPlayerEventsAndInvites(guid);
Player::DeleteFromDB(guid, GetAccountId());
WorldPacket data(SMSG_CHAR_DELETE, 1);
@@ -772,7 +776,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
Player* pCurrChar = new Player(this);
// for send server info and strings (config)
- ChatHandler chH = ChatHandler(pCurrChar);
+ ChatHandler chH = ChatHandler(pCurrChar->GetSession());
// "GetAccountId() == db stored account id" checked in LoadFromDB (prevent login not own character using cheating tools)
if (!pCurrChar->LoadFromDB(GUID_LOPART(playerGuid), holder))
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 8b7fc5542ab..e4989816998 100755
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -114,7 +114,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
return;
break;
default:
- sLog->outError(LOG_FILTER_NETWORKIO, "Player %s (GUID: %u) sent a chatmessage with an invalid language/message type combination",
+ sLog->outError(LOG_FILTER_NETWORKIO, "Player %s (GUID: %u) sent a chatmessage with an invalid language/message type combination",
GetPlayer()->GetName().c_str(), GetPlayer()->GetGUIDLow());
recvData.rfinish();
@@ -561,8 +561,8 @@ void WorldSession::HandleTextEmoteOpcode(WorldPacket& recvData)
// Only allow text-emotes for "dead" entities (feign death included)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
break;
- GetPlayer()->HandleEmoteCommand(emote_anim);
- break;
+ GetPlayer()->HandleEmoteCommand(emote_anim);
+ break;
}
Unit* unit = ObjectAccessor::GetUnit(*_player, guid);
diff --git a/src/server/game/Handlers/CombatHandler.cpp b/src/server/game/Handlers/CombatHandler.cpp
index 1cd86afc6d2..d30164b2592 100755
--- a/src/server/game/Handlers/CombatHandler.cpp
+++ b/src/server/game/Handlers/CombatHandler.cpp
@@ -25,6 +25,8 @@
#include "ObjectDefines.h"
#include "Vehicle.h"
#include "VehicleDefines.h"
+#include "Player.h"
+#include "Opcodes.h"
void WorldSession::HandleAttackSwingOpcode(WorldPacket& recvData)
{
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index 223a5316c7a..8555b4a6a1f 100755
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -18,19 +18,20 @@
#include "Common.h"
#include "DatabaseEnv.h"
-#include "Opcodes.h"
+#include "Group.h"
+#include "GroupMgr.h"
#include "Log.h"
-#include "WorldPacket.h"
-#include "WorldSession.h"
-#include "World.h"
#include "ObjectMgr.h"
-#include "GroupMgr.h"
+#include "Opcodes.h"
+#include "Pet.h"
#include "Player.h"
-#include "Group.h"
#include "SocialMgr.h"
-#include "Util.h"
#include "SpellAuras.h"
+#include "Util.h"
#include "Vehicle.h"
+#include "World.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
class Aura;
diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp
index 9926c75eb2a..3f33b60329b 100755
--- a/src/server/game/Handlers/LFGHandler.cpp
+++ b/src/server/game/Handlers/LFGHandler.cpp
@@ -15,14 +15,13 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "WorldSession.h"
-#include "WorldPacket.h"
-#include "DBCStores.h"
-#include "Player.h"
-#include "Group.h"
#include "LFGMgr.h"
#include "ObjectMgr.h"
-#include "GroupMgr.h"
+#include "Group.h"
+#include "Player.h"
+#include "Opcodes.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
void BuildPlayerLockDungeonBlock(WorldPacket& data, const LfgLockMap& lock)
{
@@ -59,11 +58,11 @@ void WorldSession::HandleLfgJoinOpcode(WorldPacket& recvData)
uint32 roles;
recvData >> roles;
- recvData.read_skip<uint16>(); // uint8 (always 0) - uint8 (always 0)
+ recvData.read_skip<uint16>(); // uint8 (always 0) - uint8 (always 0)
recvData >> numDungeons;
if (!numDungeons)
{
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_JOIN [" UI64FMTD "] no dungeons selected", GetPlayer()->GetGUID());
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_JOIN %s no dungeons selected", GetPlayerInfo().c_str());
recvData.rfinish();
return;
}
@@ -72,14 +71,15 @@ void WorldSession::HandleLfgJoinOpcode(WorldPacket& recvData)
for (int8 i = 0; i < numDungeons; ++i)
{
recvData >> dungeon;
- newDungeons.insert((dungeon & 0x00FFFFFF)); // remove the type from the dungeon entry
+ newDungeons.insert((dungeon & 0x00FFFFFF)); // remove the type from the dungeon entry
}
- recvData.read_skip<uint32>(); // for 0..uint8 (always 3) { uint8 (always 0) }
+ recvData.read_skip<uint32>(); // for 0..uint8 (always 3) { uint8 (always 0) }
std::string comment;
recvData >> comment;
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_JOIN [" UI64FMTD "] roles: %u, Dungeons: %u, Comment: %s", GetPlayer()->GetGUID(), roles, uint8(newDungeons.size()), comment.c_str());
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_JOIN %s roles: %u, Dungeons: %u, Comment: %s",
+ GetPlayerInfo().c_str(), roles, uint8(newDungeons.size()), comment.c_str());
sLFGMgr->JoinLfg(GetPlayer(), uint8(roles), newDungeons, comment);
}
@@ -89,7 +89,8 @@ void WorldSession::HandleLfgLeaveOpcode(WorldPacket& /*recvData*/)
uint64 guid = GetPlayer()->GetGUID();
uint64 gguid = grp ? grp->GetGUID() : guid;
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_LEAVE [" UI64FMTD "] in group: %u", guid, grp ? 1 : 0);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_LEAVE %s in group: %u",
+ GetPlayerInfo().c_str(), grp ? 1 : 0);
// Check cheating - only leader can leave the queue
if (!grp || grp->GetLeaderGUID() == GetPlayer()->GetGUID())
@@ -98,28 +99,31 @@ void WorldSession::HandleLfgLeaveOpcode(WorldPacket& /*recvData*/)
void WorldSession::HandleLfgProposalResultOpcode(WorldPacket& recvData)
{
- uint32 lfgGroupID; // Internal lfgGroupID
+ uint32 lfgGroupID; // Internal lfgGroupID
bool accept; // Accept to join?
recvData >> lfgGroupID;
recvData >> accept;
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_PROPOSAL_RESULT [" UI64FMTD "] proposal: %u accept: %u", GetPlayer()->GetGUID(), lfgGroupID, accept ? 1 : 0);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_PROPOSAL_RESULT %s proposal: %u accept: %u",
+ GetPlayerInfo().c_str(), lfgGroupID, accept ? 1 : 0);
sLFGMgr->UpdateProposal(lfgGroupID, GetPlayer()->GetGUID(), accept);
}
void WorldSession::HandleLfgSetRolesOpcode(WorldPacket& recvData)
{
uint8 roles;
- recvData >> roles; // Player Group Roles
+ recvData >> roles; // Player Group Roles
uint64 guid = GetPlayer()->GetGUID();
Group* grp = GetPlayer()->GetGroup();
if (!grp)
{
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_ROLES [" UI64FMTD "] Not in group", guid);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_ROLES %s Not in group",
+ GetPlayerInfo().c_str());
return;
}
uint64 gguid = grp->GetGUID();
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_ROLES: Group [" UI64FMTD "], Player [" UI64FMTD "], Roles: %u", gguid, guid, roles);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_ROLES: Group %u, Player %s, Roles: %u",
+ GUID_LOPART(gguid), GetPlayerInfo().c_str(), roles);
sLFGMgr->UpdateRoleCheck(gguid, guid, roles);
}
@@ -128,7 +132,8 @@ void WorldSession::HandleLfgSetCommentOpcode(WorldPacket& recvData)
std::string comment;
recvData >> comment;
uint64 guid = GetPlayer()->GetGUID();
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_COMMENT [" UI64FMTD "] comment: %s", guid, comment.c_str());
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_COMMENT %s comment: %s",
+ GetPlayerInfo().c_str(), comment.c_str());
sLFGMgr->SetComment(guid, comment);
}
@@ -139,7 +144,8 @@ void WorldSession::HandleLfgSetBootVoteOpcode(WorldPacket& recvData)
recvData >> agree;
uint64 guid = GetPlayer()->GetGUID();
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_BOOT_VOTE [" UI64FMTD "] agree: %u", guid, agree ? 1 : 0);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_SET_BOOT_VOTE %s agree: %u",
+ GetPlayerInfo().c_str(), agree ? 1 : 0);
sLFGMgr->UpdateBoot(guid, agree);
}
@@ -148,14 +154,16 @@ void WorldSession::HandleLfgTeleportOpcode(WorldPacket& recvData)
bool out;
recvData >> out;
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_TELEPORT [" UI64FMTD "] out: %u", GetPlayer()->GetGUID(), out ? 1 : 0);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_TELEPORT %s out: %u",
+ GetPlayerInfo().c_str(), out ? 1 : 0);
sLFGMgr->TeleportPlayer(GetPlayer(), out, true);
}
void WorldSession::HandleLfgPlayerLockInfoRequestOpcode(WorldPacket& /*recvData*/)
{
uint64 guid = GetPlayer()->GetGUID();
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_PLAYER_LOCK_INFO_REQUEST [" UI64FMTD "]", guid);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_PLAYER_LOCK_INFO_REQUEST %s",
+ GetPlayerInfo().c_str());
// Get Random dungeons that can be done at a certain level and expansion
LfgDungeonSet randomDungeons;
@@ -176,7 +184,7 @@ void WorldSession::HandleLfgPlayerLockInfoRequestOpcode(WorldPacket& /*recvData*
uint32 rsize = uint32(randomDungeons.size());
uint32 lsize = uint32(lock.size());
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PLAYER_INFO [" UI64FMTD "]", guid);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PLAYER_INFO %s", GetPlayerInfo().c_str());
WorldPacket data(SMSG_LFG_PLAYER_INFO, 1 + rsize * (4 + 1 + 4 + 4 + 4 + 4 + 1 + 4 + 4 + 4) + 4 + lsize * (1 + 4 + 4 + 4 + 4 + 1 + 4 + 4 + 4));
data << uint8(randomDungeons.size()); // Random Dungeon count
@@ -234,7 +242,7 @@ void WorldSession::HandleLfgPlayerLockInfoRequestOpcode(WorldPacket& /*recvData*
void WorldSession::HandleLfgPartyLockInfoRequestOpcode(WorldPacket& /*recvData*/)
{
uint64 guid = GetPlayer()->GetGUID();
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_PARTY_LOCK_INFO_REQUEST [" UI64FMTD "]", guid);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_PARTY_LOCK_INFO_REQUEST %s", GetPlayerInfo().c_str());
Group* grp = GetPlayer()->GetGroup();
if (!grp)
@@ -259,7 +267,7 @@ void WorldSession::HandleLfgPartyLockInfoRequestOpcode(WorldPacket& /*recvData*
for (LfgLockPartyMap::const_iterator it = lockMap.begin(); it != lockMap.end(); ++it)
size += 8 + 4 + uint32(it->second.size()) * (4 + 4);
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PARTY_INFO [" UI64FMTD "]", guid);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PARTY_INFO %s", GetPlayerInfo().c_str());
WorldPacket data(SMSG_LFG_PARTY_INFO, 1 + size);
BuildPartyLockDungeonBlock(data, lockMap);
SendPacket(&data);
@@ -269,7 +277,8 @@ void WorldSession::HandleLfrJoinOpcode(WorldPacket& recvData)
{
uint32 entry; // Raid id to search
recvData >> entry;
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_LFR_JOIN [" UI64FMTD "] dungeon entry: %u", GetPlayer()->GetGUID(), entry);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_LFR_JOIN %s dungeon entry: %u",
+ GetPlayerInfo().c_str(), entry);
//SendLfrUpdateListOpcode(entry);
}
@@ -277,48 +286,64 @@ void WorldSession::HandleLfrLeaveOpcode(WorldPacket& recvData)
{
uint32 dungeonId; // Raid id queue to leave
recvData >> dungeonId;
- sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_LFR_LEAVE [" UI64FMTD "] dungeonId: %u", GetPlayer()->GetGUID(), dungeonId);
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_LFR_LEAVE %s dungeonId: %u",
+ GetPlayerInfo().c_str(), dungeonId);
//sLFGMgr->LeaveLfr(GetPlayer(), dungeonId);
}
+void WorldSession::HandleLfgGetStatus(WorldPacket& /*recvData*/)
+{
+ sLog->outDebug(LOG_FILTER_LFG, "CMSG_LFG_GET_STATUS %s", GetPlayerInfo().c_str());
+
+ uint64 guid = GetPlayer()->GetGUID();
+ LfgUpdateData updateData = sLFGMgr->GetLfgStatus(guid);
+
+ if (GetPlayer()->GetGroup())
+ {
+ SendLfgUpdateParty(updateData);
+ updateData.dungeons.clear();
+ SendLfgUpdatePlayer(updateData);
+ }
+ else
+ {
+ SendLfgUpdatePlayer(updateData);
+ updateData.dungeons.clear();
+ SendLfgUpdateParty(updateData);
+ }
+}
+
void WorldSession::SendLfgUpdatePlayer(const LfgUpdateData& updateData)
{
bool queued = false;
- bool extrainfo = false;
- uint64 guid = GetPlayer()->GetGUID();
uint8 size = uint8(updateData.dungeons.size());
switch (updateData.updateType)
{
- case LFG_UPDATETYPE_JOIN_PROPOSAL:
+ case LFG_UPDATETYPE_JOIN_QUEUE:
case LFG_UPDATETYPE_ADDED_TO_QUEUE:
queued = true;
- extrainfo = true;
break;
case LFG_UPDATETYPE_UPDATE_STATUS:
- extrainfo = size > 0;
- break;
- case LFG_UPDATETYPE_PROPOSAL_BEGIN:
- extrainfo = true;
+ queued = updateData.state == LFG_STATE_QUEUED;
break;
default:
break;
}
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_UPDATE_PLAYER [" UI64FMTD "] updatetype: %u", guid, updateData.updateType);
- WorldPacket data(SMSG_LFG_UPDATE_PLAYER, 1 + 1 + (extrainfo ? 1 : 0) * (1 + 1 + 1 + 1 + size * 4 + updateData.comment.length()));
- data << uint8(updateData.updateType); // Lfg Update type
- data << uint8(extrainfo); // Extra info
- if (extrainfo)
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_UPDATE_PLAYER %s updatetype: %u",
+ GetPlayerInfo().c_str(), updateData.updateType);
+ WorldPacket data(SMSG_LFG_UPDATE_PLAYER, 1 + 1 + (size > 0 ? 1 : 0) * (1 + 1 + 1 + 1 + size * 4 + updateData.comment.length()));
+ data << uint8(updateData.updateType); // Lfg Update type
+ data << uint8(size > 0); // Extra info
+ if (size)
{
- data << uint8(queued); // Join the queue
- data << uint8(0); // unk - Always 0
- data << uint8(0); // unk - Always 0
+ data << uint8(queued); // Join the queue
+ data << uint8(0); // unk - Always 0
+ data << uint8(0); // unk - Always 0
data << uint8(size);
- if (size)
- for (LfgDungeonSet::const_iterator it = updateData.dungeons.begin(); it != updateData.dungeons.end(); ++it)
- data << uint32(*it);
+ for (LfgDungeonSet::const_iterator it = updateData.dungeons.begin(); it != updateData.dungeons.end(); ++it)
+ data << uint32(*it);
data << updateData.comment;
}
SendPacket(&data);
@@ -327,51 +352,42 @@ void WorldSession::SendLfgUpdatePlayer(const LfgUpdateData& updateData)
void WorldSession::SendLfgUpdateParty(const LfgUpdateData& updateData)
{
bool join = false;
- bool extrainfo = false;
bool queued = false;
- uint64 guid = GetPlayer()->GetGUID();
uint8 size = uint8(updateData.dungeons.size());
switch (updateData.updateType)
{
- case LFG_UPDATETYPE_JOIN_PROPOSAL:
- extrainfo = true;
- break;
- case LFG_UPDATETYPE_ADDED_TO_QUEUE:
- extrainfo = true;
- join = true;
+ case LFG_UPDATETYPE_ADDED_TO_QUEUE: // Rolecheck Success
queued = true;
- break;
- case LFG_UPDATETYPE_UPDATE_STATUS:
- extrainfo = size > 0;
- join = true;
- queued = true;
- break;
+ // no break on purpose
case LFG_UPDATETYPE_PROPOSAL_BEGIN:
- extrainfo = true;
join = true;
break;
+ case LFG_UPDATETYPE_UPDATE_STATUS:
+ join = updateData.state != LFG_STATE_ROLECHECK && updateData.state != LFG_STATE_NONE;
+ queued = updateData.state == LFG_STATE_QUEUED;
+ break;
default:
break;
}
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_UPDATE_PARTY [" UI64FMTD "] updatetype: %u", guid, updateData.updateType);
- WorldPacket data(SMSG_LFG_UPDATE_PARTY, 1 + 1 + (extrainfo ? 1 : 0) * (1 + 1 + 1 + 1 + 1 + size * 4 + updateData.comment.length()));
- data << uint8(updateData.updateType); // Lfg Update type
- data << uint8(extrainfo); // Extra info
- if (extrainfo)
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_UPDATE_PARTY %s updatetype: %u",
+ GetPlayerInfo().c_str(), updateData.updateType);
+ WorldPacket data(SMSG_LFG_UPDATE_PARTY, 1 + 1 + (size > 0 ? 1 : 0) * (1 + 1 + 1 + 1 + 1 + size * 4 + updateData.comment.length()));
+ data << uint8(updateData.updateType); // Lfg Update type
+ data << uint8(size > 0); // Extra info
+ if (size)
{
- data << uint8(join); // LFG Join
- data << uint8(queued); // Join the queue
- data << uint8(0); // unk - Always 0
- data << uint8(0); // unk - Always 0
+ data << uint8(join); // LFG Join
+ data << uint8(queued); // Join the queue
+ data << uint8(0); // unk - Always 0
+ data << uint8(0); // unk - Always 0
for (uint8 i = 0; i < 3; ++i)
- data << uint8(0); // unk - Always 0
+ data << uint8(0); // unk - Always 0
data << uint8(size);
- if (size)
- for (LfgDungeonSet::const_iterator it = updateData.dungeons.begin(); it != updateData.dungeons.end(); ++it)
- data << uint32(*it);
+ for (LfgDungeonSet::const_iterator it = updateData.dungeons.begin(); it != updateData.dungeons.end(); ++it)
+ data << uint32(*it);
data << updateData.comment;
}
SendPacket(&data);
@@ -379,7 +395,8 @@ void WorldSession::SendLfgUpdateParty(const LfgUpdateData& updateData)
void WorldSession::SendLfgRoleChosen(uint64 guid, uint8 roles)
{
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_ROLE_CHOSEN [" UI64FMTD "] guid: [" UI64FMTD "] roles: %u", GetPlayer()->GetGUID(), guid, roles);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_ROLE_CHOSEN %s guid: %u roles: %u",
+ GetPlayerInfo().c_str(), GUID_LOPART(guid), roles);
WorldPacket data(SMSG_LFG_ROLE_CHOSEN, 8 + 1 + 4);
data << uint64(guid); // Guid
@@ -396,7 +413,7 @@ void WorldSession::SendLfgRoleCheckUpdate(const LfgRoleCheck& roleCheck)
else
dungeons = roleCheck.dungeons;
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_ROLE_CHECK_UPDATE [" UI64FMTD "]", GetPlayer()->GetGUID());
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_ROLE_CHECK_UPDATE %s", GetPlayerInfo().c_str());
WorldPacket data(SMSG_LFG_ROLE_CHECK_UPDATE, 4 + 1 + 1 + dungeons.size() * 4 + 1 + roleCheck.roles.size() * (8 + 1 + 4 + 1));
data << uint32(roleCheck.state); // Check result
@@ -421,7 +438,7 @@ void WorldSession::SendLfgRoleCheckUpdate(const LfgRoleCheck& roleCheck)
data << uint8(roles > 0); // Ready
data << uint32(roles); // Roles
Player* player = ObjectAccessor::FindPlayer(guid);
- data << uint8(player ? player->getLevel() : 0); // Level
+ data << uint8(player ? player->getLevel() : 0); // Level
for (LfgRolesMap::const_iterator it = roleCheck.roles.begin(); it != roleCheck.roles.end(); ++it)
{
@@ -434,7 +451,7 @@ void WorldSession::SendLfgRoleCheckUpdate(const LfgRoleCheck& roleCheck)
data << uint8(roles > 0); // Ready
data << uint32(roles); // Roles
player = ObjectAccessor::FindPlayer(guid);
- data << uint8(player ? player->getLevel() : 0); // Level
+ data << uint8(player ? player->getLevel() : 0);// Level
}
}
SendPacket(&data);
@@ -446,7 +463,8 @@ void WorldSession::SendLfgJoinResult(const LfgJoinResultData& joinData)
for (LfgLockPartyMap::const_iterator it = joinData.lockmap.begin(); it != joinData.lockmap.end(); ++it)
size += 8 + 4 + uint32(it->second.size()) * (4 + 4);
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_JOIN_RESULT [" UI64FMTD "] checkResult: %u checkValue: %u", GetPlayer()->GetGUID(), joinData.result, joinData.state);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_JOIN_RESULT %s checkResult: %u checkValue: %u",
+ GetPlayerInfo().c_str(), joinData.result, joinData.state);
WorldPacket data(SMSG_LFG_JOIN_RESULT, 4 + 4 + size);
data << uint32(joinData.result); // Check Result
data << uint32(joinData.state); // Check Value
@@ -457,8 +475,8 @@ void WorldSession::SendLfgJoinResult(const LfgJoinResultData& joinData)
void WorldSession::SendLfgQueueStatus(const LfgQueueStatusData& queueData)
{
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_QUEUE_STATUS [" UI64FMTD "] dungeon: %u - waitTime: %d - avgWaitTime: %d - waitTimeTanks: %d - waitTimeHealer: %d - waitTimeDps: %d - queuedTime: %u - tanks: %u - healers: %u - dps: %u",
- GetPlayer()->GetGUID(), queueData.dungeonId, queueData.waitTime, queueData.waitTimeAvg, queueData.waitTimeTank, queueData.waitTimeHealer, queueData.waitTimeDps, queueData.queuedTime, queueData.tanks, queueData.healers, queueData.dps);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_QUEUE_STATUS %s dungeon: %u - waitTime: %d - avgWaitTime: %d - waitTimeTanks: %d - waitTimeHealer: %d - waitTimeDps: %d - queuedTime: %u - tanks: %u - healers: %u - dps: %u",
+ GetPlayerInfo().c_str(), queueData.dungeonId, queueData.waitTime, queueData.waitTimeAvg, queueData.waitTimeTank, queueData.waitTimeHealer, queueData.waitTimeDps, queueData.queuedTime, queueData.tanks, queueData.healers, queueData.dps);
WorldPacket data(SMSG_LFG_QUEUE_STATUS, 4 + 4 + 4 + 4 + 4 +4 + 1 + 1 + 1 + 4);
data << uint32(queueData.dungeonId); // Dungeon
@@ -481,7 +499,8 @@ void WorldSession::SendLfgPlayerReward(uint32 rdungeonEntry, uint32 sdungeonEntr
uint8 itemNum = uint8(quest ? quest->GetRewItemsCount() : 0);
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PLAYER_REWARD [" UI64FMTD "] rdungeonEntry: %u - sdungeonEntry: %u - done: %u", GetPlayer()->GetGUID(), rdungeonEntry, sdungeonEntry, done);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PLAYER_REWARD %s rdungeonEntry: %u - sdungeonEntry: %u - done: %u",
+ GetPlayerInfo().c_str(), rdungeonEntry, sdungeonEntry, done);
WorldPacket data(SMSG_LFG_PLAYER_REWARD, 4 + 4 + 1 + 4 + 4 + 4 + 4 + 4 + 1 + itemNum * (4 + 4 + 4));
data << uint32(rdungeonEntry); // Random Dungeon Finished
data << uint32(sdungeonEntry); // Dungeon Finished
@@ -522,8 +541,12 @@ void WorldSession::SendLfgBootProposalUpdate(const LfgPlayerBoot& boot)
++agreeNum;
}
}
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_BOOT_PROPOSAL_UPDATE [" UI64FMTD "] inProgress: %u - didVote: %u - agree: %u - victim: [" UI64FMTD "] votes: %u - agrees: %u - left: %u - needed: %u - reason %s",
- guid, uint8(boot.inProgress), uint8(playerVote != LFG_ANSWER_PENDING), uint8(playerVote == LFG_ANSWER_AGREE), boot.victim, votesNum, agreeNum, secsleft, LFG_GROUP_KICK_VOTES_NEEDED, boot.reason.c_str());
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_BOOT_PROPOSAL_UPDATE %s inProgress: %u - "
+ "didVote: %u - agree: %u - victim: %u votes: %u - agrees: %u - left: %u - "
+ "needed: %u - reason %s",
+ GetPlayerInfo().c_str(), uint8(boot.inProgress), uint8(playerVote != LFG_ANSWER_PENDING),
+ uint8(playerVote == LFG_ANSWER_AGREE), GUID_LOPART(boot.victim), votesNum, agreeNum,
+ secsleft, LFG_GROUP_KICK_VOTES_NEEDED, boot.reason.c_str());
WorldPacket data(SMSG_LFG_BOOT_PROPOSAL_UPDATE, 1 + 1 + 1 + 8 + 4 + 4 + 4 + 4 + boot.reason.length());
data << uint8(boot.inProgress); // Vote in progress
data << uint8(playerVote != LFG_ANSWER_PENDING); // Did Vote
@@ -544,7 +567,8 @@ void WorldSession::SendLfgUpdateProposal(uint32 proposalId, LfgProposal const& p
bool silent = !proposal.isNew && gguid == proposal.group;
uint32 dungeonEntry = proposal.dungeonId;
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PROPOSAL_UPDATE [" UI64FMTD "] state: %u", guid, proposal.state);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_PROPOSAL_UPDATE %s state: %u",
+ GetPlayerInfo().c_str(), proposal.state);
WorldPacket data(SMSG_LFG_PROPOSAL_UPDATE, 4 + 1 + 4 + 4 + 1 + 1 + proposal.players.size() * (4 + 1 + 1 + 1 + 1 +1));
// show random dungeon if player selected random dungeon and it's not lfg group
@@ -577,18 +601,19 @@ void WorldSession::SendLfgUpdateProposal(uint32 proposalId, LfgProposal const& p
}
else
{
- data << uint8(player.group == proposal.group); // In dungeon (silent)
- data << uint8(player.group == gguid); // Same Group than player
+ data << uint8(player.group == proposal.group); // In dungeon (silent)
+ data << uint8(player.group == gguid); // Same Group than player
}
- data << uint8(player.accept != LFG_ANSWER_PENDING); // Answered
- data << uint8(player.accept == LFG_ANSWER_AGREE); // Accepted
+ data << uint8(player.accept != LFG_ANSWER_PENDING);// Answered
+ data << uint8(player.accept == LFG_ANSWER_AGREE); // Accepted
}
SendPacket(&data);
}
void WorldSession::SendLfgLfrList(bool update)
{
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_LFR_LIST [" UI64FMTD "] update: %u", GetPlayer()->GetGUID(), update ? 1 : 0);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_LFR_LIST %s update: %u",
+ GetPlayerInfo().c_str(), update ? 1 : 0);
WorldPacket data(SMSG_LFG_UPDATE_SEARCH, 1);
data << uint8(update); // In Lfg Queue?
SendPacket(&data);
@@ -596,14 +621,15 @@ void WorldSession::SendLfgLfrList(bool update)
void WorldSession::SendLfgDisabled()
{
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_DISABLED [" UI64FMTD "]", GetPlayer()->GetGUID());
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_DISABLED %s", GetPlayerInfo().c_str());
WorldPacket data(SMSG_LFG_DISABLED, 0);
SendPacket(&data);
}
void WorldSession::SendLfgOfferContinue(uint32 dungeonEntry)
{
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_OFFER_CONTINUE [" UI64FMTD "] dungeon entry: %u", GetPlayer()->GetGUID(), dungeonEntry);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_OFFER_CONTINUE %s dungeon entry: %u",
+ GetPlayerInfo().c_str(), dungeonEntry);
WorldPacket data(SMSG_LFG_OFFER_CONTINUE, 4);
data << uint32(dungeonEntry);
SendPacket(&data);
@@ -611,48 +637,18 @@ void WorldSession::SendLfgOfferContinue(uint32 dungeonEntry)
void WorldSession::SendLfgTeleportError(uint8 err)
{
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_TELEPORT_DENIED [" UI64FMTD "] reason: %u", GetPlayer()->GetGUID(), err);
+ sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_TELEPORT_DENIED %s reason: %u",
+ GetPlayerInfo().c_str(), err);
WorldPacket data(SMSG_LFG_TELEPORT_DENIED, 4);
data << uint32(err); // Error
SendPacket(&data);
}
-void WorldSession::HandleLfgGetStatus(WorldPacket& /*recvData*/)
-{
- uint64 guid = GetPlayer()->GetGUID();
- sLog->outDebug(LOG_FILTER_LFG, "SMSG_LFG_GET_STATUS [" UI64FMTD "]", guid);
-
- LfgUpdateData updateData = LfgUpdateData(LFG_UPDATETYPE_UPDATE_STATUS);
- LfgState state = sLFGMgr->GetLfgStatus(guid, updateData);
-
- if (state == LFG_STATE_NONE || updateData.dungeons.empty())
- {
- SendLfgUpdatePlayer(updateData);
- SendLfgUpdateParty(updateData);
- return;
- }
-
- if (state != LFG_STATE_QUEUED)
- return;
-
- if (GetPlayer()->GetGroup())
- {
- SendLfgUpdateParty(updateData);
- updateData.dungeons.clear();
- SendLfgUpdatePlayer(updateData);
- }
- else
- {
- SendLfgUpdatePlayer(updateData);
- updateData.dungeons.clear();
- SendLfgUpdateParty(updateData);
- }
-}
-
/*
void WorldSession::SendLfrUpdateListOpcode(uint32 dungeonEntry)
{
- sLog->outDebug(LOG_FILTER_PACKETIO, "SMSG_LFG_UPDATE_LIST [" UI64FMTD "] dungeon entry: %u", GetPlayer()->GetGUID(), dungeonEntry);
+ sLog->outDebug(LOG_FILTER_PACKETIO, "SMSG_LFG_UPDATE_LIST %s dungeon entry: %u",
+ GetPlayerInfo().c_str(), dungeonEntry);
WorldPacket data(SMSG_LFG_UPDATE_LIST);
SendPacket(&data);
}
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index 83deaaa1bc6..1c9719a210f 100755
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -17,18 +17,19 @@
*/
#include "Common.h"
-#include "WorldPacket.h"
#include "Log.h"
#include "Corpse.h"
+#include "Creature.h"
#include "GameObject.h"
-#include "Player.h"
-#include "ObjectAccessor.h"
-#include "WorldSession.h"
+#include "Group.h"
#include "LootMgr.h"
+#include "ObjectAccessor.h"
#include "Object.h"
-#include "Group.h"
+#include "Opcodes.h"
+#include "Player.h"
#include "World.h"
-#include "Util.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
void WorldSession::HandleAutostoreLootItemOpcode(WorldPacket & recvData)
{
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 5a7a3b52b56..cb3a6d920b8 100755
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -607,10 +607,8 @@ void WorldSession::HandleGetMailList(WorldPacket & recvData)
case MAIL_CREATURE:
case MAIL_GAMEOBJECT:
case MAIL_AUCTION:
- data << uint32((*itr)->sender); // creature/gameobject entry, auction id
- break;
- case MAIL_ITEM: // item entry (?) sender = "Unknown", NYI
- data << uint32(0); // item entry
+ case MAIL_CALENDAR:
+ data << uint32((*itr)->sender); // creature/gameobject entry, auction id, calendar event id?
break;
}
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 8928a7c15a1..aa182a16d91 100755
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -888,7 +888,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
}
if (player->isDebugAreaTriggers)
- ChatHandler(player).PSendSysMessage(LANG_DEBUG_AREATRIGGER_REACHED, triggerId);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_DEBUG_AREATRIGGER_REACHED, triggerId);
if (sScriptMgr->OnAreaTrigger(player, atEntry))
return;
@@ -1382,25 +1382,21 @@ void WorldSession::HandleFarSightOpcode(WorldPacket& recvData)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_FAR_SIGHT");
- uint8 apply;
+ bool apply;
recvData >> apply;
- switch (apply)
+ if (apply)
{
- case 0:
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Player %u set vision to self", _player->GetGUIDLow());
- _player->SetSeer(_player);
- break;
- case 1:
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Added FarSight " UI64FMTD " to player %u", _player->GetUInt64Value(PLAYER_FARSIGHT), _player->GetGUIDLow());
- if (WorldObject* target = _player->GetViewpoint())
- _player->SetSeer(target);
- else
- sLog->outError(LOG_FILTER_NETWORKIO, "Player %s requests non-existing seer " UI64FMTD, _player->GetName().c_str(), _player->GetUInt64Value(PLAYER_FARSIGHT));
- break;
- default:
- sLog->outDebug(LOG_FILTER_NETWORKIO, "Unhandled mode in CMSG_FAR_SIGHT: %u", apply);
- return;
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "Added FarSight " UI64FMTD " to player %u", _player->GetUInt64Value(PLAYER_FARSIGHT), _player->GetGUIDLow());
+ if (WorldObject* target = _player->GetViewpoint())
+ _player->SetSeer(target);
+ else
+ sLog->outError(LOG_FILTER_NETWORKIO, "Player %s requests non-existing seer " UI64FMTD, _player->GetName().c_str(), _player->GetUInt64Value(PLAYER_FARSIGHT));
+ }
+ else
+ {
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "Player %u set vision to self", _player->GetGUIDLow());
+ _player->SetSeer(_player);
}
GetPlayer()->UpdateVisibilityForPlayer();
@@ -1467,7 +1463,7 @@ void WorldSession::HandleSetDungeonDifficultyOpcode(WorldPacket& recvData)
if (mode >= MAX_DUNGEON_DIFFICULTY)
{
- sLog->outError(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetDungeonDifficultyOpcode: player %d sent an invalid instance mode %d!", _player->GetGUIDLow(), mode);
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetDungeonDifficultyOpcode: player %d sent an invalid instance mode %d!", _player->GetGUIDLow(), mode);
return;
}
@@ -1478,7 +1474,7 @@ void WorldSession::HandleSetDungeonDifficultyOpcode(WorldPacket& recvData)
Map* map = _player->FindMap();
if (map && map->IsDungeon())
{
- sLog->outError(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetDungeonDifficultyOpcode: player (Name: %s, GUID: %u) tried to reset the instance while player is inside!",
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetDungeonDifficultyOpcode: player (Name: %s, GUID: %u) tried to reset the instance while player is inside!",
_player->GetName().c_str(), _player->GetGUIDLow());
return;
}
@@ -1499,7 +1495,7 @@ void WorldSession::HandleSetDungeonDifficultyOpcode(WorldPacket& recvData)
if (groupGuy->GetMap()->IsNonRaidDungeon())
{
- sLog->outError(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetDungeonDifficultyOpcode: player %d tried to reset the instance while group member (Name: %s, GUID: %u) is inside!",
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetDungeonDifficultyOpcode: player %d tried to reset the instance while group member (Name: %s, GUID: %u) is inside!",
_player->GetGUIDLow(), groupGuy->GetName().c_str(), groupGuy->GetGUIDLow());
return;
}
@@ -1534,7 +1530,7 @@ void WorldSession::HandleSetRaidDifficultyOpcode(WorldPacket& recvData)
Map* map = _player->FindMap();
if (map && map->IsDungeon())
{
- sLog->outError(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetRaidDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetRaidDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
return;
}
@@ -1557,7 +1553,7 @@ void WorldSession::HandleSetRaidDifficultyOpcode(WorldPacket& recvData)
if (groupGuy->GetMap()->IsRaid())
{
- sLog->outError(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetRaidDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
+ sLog->outDebug(LOG_FILTER_NETWORKIO, "WorldSession::HandleSetRaidDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
return;
}
}
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index 0265d1e6f60..ef0f8e130b6 100755
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -31,6 +31,7 @@
#include "ObjectAccessor.h"
#include "Creature.h"
#include "Pet.h"
+#include "ReputationMgr.h"
#include "BattlegroundMgr.h"
#include "Battleground.h"
#include "ScriptMgr.h"
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index 7ed5e3846ef..97a2765b4df 100755
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -31,8 +31,9 @@
#include "World.h"
#include "Group.h"
#include "SpellInfo.h"
+#include "Player.h"
-void WorldSession::HandleDismissCritter(WorldPacket &recvData)
+void WorldSession::HandleDismissCritter(WorldPacket& recvData)
{
uint64 guid;
recvData >> guid;
@@ -138,7 +139,7 @@ void WorldSession::HandlePetStopAttack(WorldPacket &recvData)
pet->AttackStop();
}
-void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint16 spellid, uint16 flag, uint64 guid2)
+void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid, uint16 flag, uint64 guid2)
{
CharmInfo* charmInfo = pet->GetCharmInfo();
if (!charmInfo)
@@ -848,15 +849,15 @@ void WorldSession::SendPetNameInvalid(uint32 error, const std::string& name, Dec
SendPacket(&data);
}
-void WorldSession::HandlePetLearnTalent(WorldPacket & recvData)
+void WorldSession::HandlePetLearnTalent(WorldPacket& recvData)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_PET_LEARN_TALENT");
uint64 guid;
- uint32 talent_id, requested_rank;
- recvData >> guid >> talent_id >> requested_rank;
+ uint32 talentId, requestedRank;
+ recvData >> guid >> talentId >> requestedRank;
- _player->LearnPetTalent(guid, talent_id, requested_rank);
+ _player->LearnPetTalent(guid, talentId, requestedRank);
_player->SendTalentsInfoData(true);
}
diff --git a/src/server/game/Handlers/SkillHandler.cpp b/src/server/game/Handlers/SkillHandler.cpp
index 88ae01f59be..ec389142182 100755
--- a/src/server/game/Handlers/SkillHandler.cpp
+++ b/src/server/game/Handlers/SkillHandler.cpp
@@ -18,13 +18,14 @@
#include "Common.h"
#include "DatabaseEnv.h"
-#include "Opcodes.h"
#include "Log.h"
+#include "ObjectAccessor.h"
+#include "Opcodes.h"
#include "Player.h"
+#include "Pet.h"
+#include "UpdateMask.h"
#include "WorldPacket.h"
#include "WorldSession.h"
-#include "ObjectAccessor.h"
-#include "UpdateMask.h"
void WorldSession::HandleLearnTalentOpcode(WorldPacket & recvData)
{
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index 1c834b323ac..270980c8e7c 100755
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -32,6 +32,7 @@
#include "ScriptMgr.h"
#include "GameObjectAI.h"
#include "SpellAuraEffects.h"
+#include "Player.h"
void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlags, SpellCastTargets& targets)
{
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index 41e834d84e8..1571d857f41 100755
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -17,15 +17,16 @@
*/
#include "zlib.h"
-#include "Language.h"
-#include "WorldPacket.h"
#include "Common.h"
+#include "Language.h"
#include "ObjectMgr.h"
-#include "TicketMgr.h"
+#include "Opcodes.h"
#include "Player.h"
+#include "TicketMgr.h"
+#include "Util.h"
#include "World.h"
+#include "WorldPacket.h"
#include "WorldSession.h"
-#include "Util.h"
void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData)
{
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index f8df5862df0..a370cf25d97 100755
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -16,15 +16,18 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "InstanceScript.h"
-#include "DatabaseEnv.h"
-#include "Map.h"
-#include "Player.h"
-#include "GameObject.h"
#include "Creature.h"
#include "CreatureAI.h"
-#include "Log.h"
+#include "DatabaseEnv.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
#include "LFGMgr.h"
+#include "Log.h"
+#include "Map.h"
+#include "Player.h"
+#include "Pet.h"
+#include "WorldSession.h"
+#include "Opcodes.h"
void InstanceScript::SaveToDB()
{
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp
index fca8d78a3de..ef3d2b9fbd6 100755
--- a/src/server/game/Loot/LootMgr.cpp
+++ b/src/server/game/Loot/LootMgr.cpp
@@ -25,6 +25,7 @@
#include "SpellMgr.h"
#include "SpellInfo.h"
#include "Group.h"
+#include "Player.h"
static Rates const qualityToRate[MAX_ITEM_QUALITY] =
{
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 929a1d81d57..108856d81b6 100755
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -26,6 +26,7 @@
#include "BattlegroundMgr.h"
#include "Item.h"
#include "AuctionHouseMgr.h"
+#include "CalendarMgr.h"
MailSender::MailSender(Object* sender, MailStationery stationery) : m_stationery(stationery)
{
@@ -39,10 +40,10 @@ MailSender::MailSender(Object* sender, MailStationery stationery) : m_stationery
m_messageType = MAIL_GAMEOBJECT;
m_senderId = sender->GetEntry();
break;
- case TYPEID_ITEM:
+ /*case TYPEID_ITEM:
m_messageType = MAIL_ITEM;
m_senderId = sender->GetEntry();
- break;
+ break;*/
case TYPEID_PLAYER:
m_messageType = MAIL_NORMAL;
m_senderId = sender->GetGUIDLow();
@@ -55,6 +56,11 @@ MailSender::MailSender(Object* sender, MailStationery stationery) : m_stationery
}
}
+MailSender::MailSender(CalendarEvent* sender)
+ : m_messageType(MAIL_CALENDAR), m_senderId(sender->GetEventId()), m_stationery(MAIL_STATIONERY_DEFAULT) // what stationery we should use here?
+{
+}
+
MailSender::MailSender(AuctionEntry* sender)
: m_messageType(MAIL_AUCTION), m_senderId(sender->GetHouseId()), m_stationery(MAIL_STATIONERY_AUCTION)
{
diff --git a/src/server/game/Mails/Mail.h b/src/server/game/Mails/Mail.h
index 7c12ac1a1c6..c2771f4b57c 100755
--- a/src/server/game/Mails/Mail.h
+++ b/src/server/game/Mails/Mail.h
@@ -23,6 +23,7 @@
#include <map>
struct AuctionEntry;
+struct CalendarEvent;
class Item;
class Object;
class Player;
@@ -36,7 +37,7 @@ enum MailMessageType
MAIL_AUCTION = 2,
MAIL_CREATURE = 3, // client send CMSG_CREATURE_QUERY on this mailmessagetype
MAIL_GAMEOBJECT = 4, // client send CMSG_GAMEOBJECT_QUERY on this mailmessagetype
- MAIL_ITEM = 5 // client send CMSG_ITEM_QUERY on this mailmessagetype
+ MAIL_CALENDAR = 5
};
enum MailCheckMask
@@ -85,6 +86,7 @@ class MailSender
{
}
MailSender(Object* sender, MailStationery stationery = MAIL_STATIONERY_DEFAULT);
+ MailSender(CalendarEvent* sender);
MailSender(AuctionEntry* sender);
MailSender(Player* sender);
public: // Accessors
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index b1200252c54..1bb651831c7 100755
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -17,23 +17,25 @@
*/
#include "Map.h"
-#include "GridStates.h"
-#include "ScriptMgr.h"
-#include "VMapFactory.h"
+#include "Battleground.h"
#include "MMapFactory.h"
-#include "MapInstanced.h"
#include "CellImpl.h"
+#include "DynamicTree.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#include "Transport.h"
+#include "GridStates.h"
+#include "Group.h"
#include "InstanceScript.h"
-#include "ObjectAccessor.h"
+#include "LFGMgr.h"
+#include "MapInstanced.h"
#include "MapManager.h"
+#include "ObjectAccessor.h"
#include "ObjectMgr.h"
-#include "Group.h"
-#include "LFGMgr.h"
-#include "DynamicTree.h"
+#include "Pet.h"
+#include "ScriptMgr.h"
+#include "Transport.h"
#include "Vehicle.h"
+#include "VMapFactory.h"
union u_map_magic
{
@@ -157,7 +159,7 @@ void Map::LoadMap(int gx, int gy, bool reload)
// load grid map for base map
if (!m_parentMap->GridMaps[gx][gy])
- m_parentMap->EnsureGridCreated(GridCoord(63-gx, 63-gy));
+ m_parentMap->EnsureGridCreated_i(GridCoord(63-gx, 63-gy));
((MapInstanced*)(m_parentMap))->AddGridMapReference(GridCoord(gx, gy));
GridMaps[gx][gy] = m_parentMap->GridMaps[gx][gy];
@@ -322,32 +324,34 @@ void Map::DeleteFromWorld(Player* player)
delete player;
}
+void Map::EnsureGridCreated(const GridCoord &p)
+{
+ TRINITY_GUARD(ACE_Thread_Mutex, Lock);
+ EnsureGridCreated_i(p);
+}
+
//Create NGrid so the object can be added to it
//But object data is not loaded here
-void Map::EnsureGridCreated(const GridCoord &p)
+void Map::EnsureGridCreated_i(const GridCoord &p)
{
if (!getNGrid(p.x_coord, p.y_coord))
{
- TRINITY_GUARD(ACE_Thread_Mutex, Lock);
- if (!getNGrid(p.x_coord, p.y_coord))
- {
- sLog->outDebug(LOG_FILTER_MAPS, "Creating grid[%u, %u] for map %u instance %u", p.x_coord, p.y_coord, GetId(), i_InstanceId);
+ sLog->outDebug(LOG_FILTER_MAPS, "Creating grid[%u, %u] for map %u instance %u", p.x_coord, p.y_coord, GetId(), i_InstanceId);
- setNGrid(new NGridType(p.x_coord*MAX_NUMBER_OF_GRIDS + p.y_coord, p.x_coord, p.y_coord, i_gridExpiry, sWorld->getBoolConfig(CONFIG_GRID_UNLOAD)),
- p.x_coord, p.y_coord);
+ setNGrid(new NGridType(p.x_coord*MAX_NUMBER_OF_GRIDS + p.y_coord, p.x_coord, p.y_coord, i_gridExpiry, sWorld->getBoolConfig(CONFIG_GRID_UNLOAD)),
+ p.x_coord, p.y_coord);
- // build a linkage between this map and NGridType
- buildNGridLinkage(getNGrid(p.x_coord, p.y_coord));
+ // build a linkage between this map and NGridType
+ buildNGridLinkage(getNGrid(p.x_coord, p.y_coord));
- getNGrid(p.x_coord, p.y_coord)->SetGridState(GRID_STATE_IDLE);
+ getNGrid(p.x_coord, p.y_coord)->SetGridState(GRID_STATE_IDLE);
- //z coord
- int gx = (MAX_NUMBER_OF_GRIDS - 1) - p.x_coord;
- int gy = (MAX_NUMBER_OF_GRIDS - 1) - p.y_coord;
+ //z coord
+ int gx = (MAX_NUMBER_OF_GRIDS - 1) - p.x_coord;
+ int gy = (MAX_NUMBER_OF_GRIDS - 1) - p.y_coord;
- if (!GridMaps[gx][gy])
- LoadMapAndVMap(gx, gy);
- }
+ if (!GridMaps[gx][gy])
+ LoadMapAndVMap(gx, gy);
}
}
diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h
index 126d0855352..e35f430b638 100755
--- a/src/server/game/Maps/Map.h
+++ b/src/server/game/Maps/Map.h
@@ -502,6 +502,7 @@ class Map : public GridRefManager<NGridType>
bool IsGridLoaded(const GridCoord &) const;
void EnsureGridCreated(const GridCoord &);
+ void EnsureGridCreated_i(const GridCoord &);
bool EnsureGridLoaded(Cell const&);
void EnsureGridLoadedForActiveObject(Cell const&, WorldObject* object);
diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp
index e0dbc19aff4..f45105c324a 100755
--- a/src/server/game/Maps/MapInstanced.cpp
+++ b/src/server/game/Maps/MapInstanced.cpp
@@ -25,6 +25,7 @@
#include "InstanceSaveMgr.h"
#include "World.h"
#include "Group.h"
+#include "Player.h"
MapInstanced::MapInstanced(uint32 id, time_t expiry) : Map(id, expiry, 0, DUNGEON_DIFFICULTY_NORMAL)
{
@@ -282,4 +283,4 @@ bool MapInstanced::CanEnter(Player* /*player*/)
{
//ASSERT(false);
return true;
-} \ No newline at end of file
+}
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp
index f6aa6ff7dc3..96a2a44655d 100755
--- a/src/server/game/Maps/MapManager.cpp
+++ b/src/server/game/Maps/MapManager.cpp
@@ -33,6 +33,9 @@
#include "Language.h"
#include "WorldPacket.h"
#include "Group.h"
+#include "Player.h"
+#include "WorldSession.h"
+#include "Opcodes.h"
extern GridState* si_GridStates[]; // debugging code, should be deleted some day
@@ -439,4 +442,4 @@ void MapManager::FreeInstanceId(uint32 instanceId)
SetNextInstanceId(instanceId);
_instanceIds[instanceId] = false;
-} \ No newline at end of file
+}
diff --git a/src/server/game/Maps/MapUpdater.cpp b/src/server/game/Maps/MapUpdater.cpp
index b747d065a14..5e5f520505c 100644
--- a/src/server/game/Maps/MapUpdater.cpp
+++ b/src/server/game/Maps/MapUpdater.cpp
@@ -69,7 +69,7 @@ MapUpdater::~MapUpdater()
int MapUpdater::activate(size_t num_threads)
{
- return m_executor.activate((int)num_threads, new WDBThreadStartReq1, new WDBThreadEndReq1);
+ return m_executor.start((int)num_threads, new WDBThreadStartReq1, new WDBThreadEndReq1);
}
int MapUpdater::deactivate()
diff --git a/src/server/game/Maps/ZoneScript.h b/src/server/game/Maps/ZoneScript.h
index df6349a7664..7b20b0ee676 100755
--- a/src/server/game/Maps/ZoneScript.h
+++ b/src/server/game/Maps/ZoneScript.h
@@ -32,19 +32,20 @@ class ZoneScript
virtual uint32 GetCreatureEntry(uint32 /*guidlow*/, CreatureData const* data) { return data->id; }
virtual uint32 GetGameObjectEntry(uint32 /*guidlow*/, uint32 entry) { return entry; }
- virtual void OnCreatureCreate(Creature* /*creature*/) {}
- virtual void OnCreatureRemove(Creature* /*creature*/) {}
- virtual void OnGameObjectCreate(GameObject* /*go*/) {}
- virtual void OnGameObjectRemove(GameObject* /*go*/) {}
+ virtual void OnCreatureCreate(Creature *) { }
+ virtual void OnCreatureRemove(Creature *) { }
- virtual void OnUnitDeath(Unit* /*unit*/) {}
+ virtual void OnGameObjectCreate(GameObject *) { }
+ virtual void OnGameObjectRemove(GameObject *) { }
+
+ virtual void OnUnitDeath(Unit*) { }
//All-purpose data storage 64 bit
- virtual uint64 GetData64(uint32 /*DataId*/) { return 0; }
+ virtual uint64 GetData64(uint32 /*DataId*/) const { return 0; }
virtual void SetData64(uint32 /*DataId*/, uint64 /*Value*/) {}
//All-purpose data storage 32 bit
- virtual uint32 GetData(uint32 /*DataId*/) { return 0; }
+ virtual uint32 GetData(uint32 /*DataId*/) const { return 0; }
virtual void SetData(uint32 /*DataId*/, uint32 /*Value*/) {}
virtual void ProcessEvent(WorldObject* /*obj*/, uint32 /*eventId*/) {}
diff --git a/src/server/game/Miscellaneous/Formulas.h b/src/server/game/Miscellaneous/Formulas.h
index dac5b1ef9a2..4f358d7a145 100755
--- a/src/server/game/Miscellaneous/Formulas.h
+++ b/src/server/game/Miscellaneous/Formulas.h
@@ -22,6 +22,7 @@
#include "World.h"
#include "SharedDefines.h"
#include "ScriptMgr.h"
+#include "Player.h"
namespace Trinity
{
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 07bfd284a7d..5321202b256 100755
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -950,8 +950,8 @@ enum TrinityStrings
LANG_BATTLEGROUND = 5015,
LANG_ARENA = 5016,
LANG_RAID = 5017,
- LANG_HEROIC = 5018,
- LANG_MOUNTABLE = 5019,
+ //= 5018,
+ //= 5019,
LANG_NPCINFO_PHASEMASK = 5020,
LANG_NPCINFO_ARMOR = 5021,
LANG_CHANNEL_ENABLE_OWNERSHIP = 5022,
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index ae594f555e7..7d69753b287 100755
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -3423,106 +3423,113 @@ enum ActivateTaxiReply
ERR_TAXINOTSTANDING = 12
};
-// Calendar - start
-
-enum CalendarFlags
-{
- CALENDAR_FLAG_ALL_ALLOWED = 0x001,
- CALENDAR_FLAG_INVITES_LOCKED = 0x010,
- CALENDAR_FLAG_WITHOUT_INVITES = 0x040,
- CALENDAR_FLAG_GUILD_ONLY = 0x400
-};
-
-enum CalendarActionData
-{
- CALENDAR_ACTION_NONE,
- CALENDAR_ACTION_ADD_EVENT,
- CALENDAR_ACTION_MODIFY_EVENT,
- CALENDAR_ACTION_REMOVE_EVENT,
- CALENDAR_ACTION_COPY_EVENT,
- CALENDAR_ACTION_ADD_EVENT_INVITE,
- CALENDAR_ACTION_MODIFY_EVENT_INVITE,
- CALENDAR_ACTION_MODIFY_MODERATOR_EVENT_INVITE,
- CALENDAR_ACTION_REMOVE_EVENT_INVITE,
- CALENDAR_ACTION_SIGNUP_TO_EVENT
-};
-
-enum CalendarModerationRank
-{
- CALENDAR_RANK_PLAYER,
- CALENDAR_RANK_MODERATOR,
- CALENDAR_RANK_OWNER
-};
-
-enum CalendarSendEventType
-{
- CALENDAR_SENDTYPE_GET,
- CALENDAR_SENDTYPE_ADD,
- CALENDAR_SENDTYPE_COPY
-};
-
-enum CalendarEventType
-{
- CALENDAR_TYPE_RAID,
- CALENDAR_TYPE_DUNGEON,
- CALENDAR_TYPE_PVP,
- CALENDAR_TYPE_MEETING,
- CALENDAR_TYPE_OTHER
-};
-
-enum CalendarInviteStatus
-{
- CALENDAR_STATUS_INVITED,
- CALENDAR_STATUS_ACCEPTED,
- CALENDAR_STATUS_DECLINED,
- CALENDAR_STATUS_TENTATIVE,
- CALENDAR_STATUS_OUT,
- CALENDAR_STATUS_STANDBY,
- CALENDAR_STATUS_CONFIRMED,
- CALENDAR_STATUS_NO_OWNER,
- CALENDAR_STATUS_8,
- CALENDAR_STATUS_9
-};
-
-enum CalendarError
-{
- CALENDAR_OK = 0,
- CALENDAR_ERROR_GUILD_EVENTS_EXCEEDED = 1,
- CALENDAR_ERROR_EVENTS_EXCEEDED = 2,
- CALENDAR_ERROR_SELF_INVITES_EXCEEDED = 3,
- CALENDAR_ERROR_OTHER_INVITES_EXCEEDED = 4,
- CALENDAR_ERROR_PERMISSIONS = 5,
- CALENDAR_ERROR_EVENT_INVALID = 6,
- CALENDAR_ERROR_NOT_INVITED = 7,
- CALENDAR_ERROR_INTERNAL = 8,
- CALENDAR_ERROR_GUILD_PLAYER_NOT_IN_GUILD = 9,
- CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S = 10,
- CALENDAR_ERROR_PLAYER_NOT_FOUND = 11,
- CALENDAR_ERROR_NOT_ALLIED = 12,
- CALENDAR_ERROR_IGNORING_YOU_S = 13,
- CALENDAR_ERROR_INVITES_EXCEEDED = 14,
- CALENDAR_ERROR_INVALID_DATE = 16,
- CALENDAR_ERROR_INVALID_TIME = 17,
-
- CALENDAR_ERROR_NEEDS_TITLE = 19,
- CALENDAR_ERROR_EVENT_PASSED = 20,
- CALENDAR_ERROR_EVENT_LOCKED = 21,
- CALENDAR_ERROR_DELETE_CREATOR_FAILED = 22,
- CALENDAR_ERROR_SYSTEM_DISABLED = 24,
- CALENDAR_ERROR_RESTRICTED_ACCOUNT = 25,
- CALENDAR_ERROR_ARENA_EVENTS_EXCEEDED = 26,
- CALENDAR_ERROR_RESTRICTED_LEVEL = 27,
- CALENDAR_ERROR_USER_SQUELCHED = 28,
- CALENDAR_ERROR_NO_INVITE = 29,
-
- CALENDAR_ERROR_EVENT_WRONG_SERVER = 36,
- CALENDAR_ERROR_INVITE_WRONG_SERVER = 37,
- CALENDAR_ERROR_NO_GUILD_INVITES = 38,
- CALENDAR_ERROR_INVALID_SIGNUP = 39,
- CALENDAR_ERROR_NO_MODERATOR = 40
-};
-
-// Calendar - end
+enum DuelCompleteType
+{
+ DUEL_INTERRUPTED = 0,
+ DUEL_WON = 1,
+ DUEL_FLED = 2
+};
+// handle the queue types and bg types separately to enable joining queue for different sized arenas at the same time
+enum BattlegroundQueueTypeId
+{
+ BATTLEGROUND_QUEUE_NONE = 0,
+ BATTLEGROUND_QUEUE_AV = 1,
+ BATTLEGROUND_QUEUE_WS = 2,
+ BATTLEGROUND_QUEUE_AB = 3,
+ BATTLEGROUND_QUEUE_EY = 4,
+ BATTLEGROUND_QUEUE_SA = 5,
+ BATTLEGROUND_QUEUE_IC = 6,
+ BATTLEGROUND_QUEUE_RB = 7,
+ BATTLEGROUND_QUEUE_2v2 = 8,
+ BATTLEGROUND_QUEUE_3v3 = 9,
+ BATTLEGROUND_QUEUE_5v5 = 10,
+ MAX_BATTLEGROUND_QUEUE_TYPES
+};
+
+enum GroupJoinBattlegroundResult
+{
+ // positive values are indexes in BattlemasterList.dbc
+ ERR_GROUP_JOIN_BATTLEGROUND_FAIL = 0, // Your group has joined a battleground queue, but you are not eligible (showed for non existing BattlemasterList.dbc indexes)
+ ERR_BATTLEGROUND_NONE = -1, // not show anything
+ ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS = -2, // You cannot join the battleground yet because you or one of your party members is flagged as a Deserter.
+ ERR_ARENA_TEAM_PARTY_SIZE = -3, // Incorrect party size for this arena.
+ ERR_BATTLEGROUND_TOO_MANY_QUEUES = -4, // You can only be queued for 2 battles at once
+ ERR_BATTLEGROUND_CANNOT_QUEUE_FOR_RATED = -5, // You cannot queue for a rated match while queued for other battles
+ ERR_BATTLEDGROUND_QUEUED_FOR_RATED = -6, // You cannot queue for another battle while queued for a rated arena match
+ ERR_BATTLEGROUND_TEAM_LEFT_QUEUE = -7, // Your team has left the arena queue
+ ERR_BATTLEGROUND_NOT_IN_BATTLEGROUND = -8, // You can't do that in a battleground.
+ ERR_BATTLEGROUND_JOIN_XP_GAIN = -9, // wtf, doesn't exist in client...
+ ERR_BATTLEGROUND_JOIN_RANGE_INDEX = -10, // Cannot join the queue unless all members of your party are in the same battleground level range.
+ ERR_BATTLEGROUND_JOIN_TIMED_OUT = -11, // %s was unavailable to join the queue. (uint64 guid exist in client cache)
+ ERR_BATTLEGROUND_JOIN_FAILED = -12, // Join as a group failed (uint64 guid doesn't exist in client cache)
+ ERR_LFG_CANT_USE_BATTLEGROUND = -13, // You cannot queue for a battleground or arena while using the dungeon system.
+ ERR_IN_RANDOM_BG = -14, // Can't do that while in a Random Battleground queue.
+ ERR_IN_NON_RANDOM_BG = -15 // Can't queue for Random Battleground while in another Battleground queue.
+};
+
+enum PetNameInvalidReason
+{
+ // custom, not send
+ PET_NAME_SUCCESS = 0,
+
+ PET_NAME_INVALID = 1,
+ PET_NAME_NO_NAME = 2,
+ PET_NAME_TOO_SHORT = 3,
+ PET_NAME_TOO_LONG = 4,
+ PET_NAME_MIXED_LANGUAGES = 6,
+ PET_NAME_PROFANE = 7,
+ PET_NAME_RESERVED = 8,
+ PET_NAME_THREE_CONSECUTIVE = 11,
+ PET_NAME_INVALID_SPACE = 12,
+ PET_NAME_CONSECUTIVE_SPACES = 13,
+ PET_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 14,
+ PET_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 15,
+ PET_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 16
+};
+
+enum DungeonStatusFlag
+{
+ DUNGEON_STATUSFLAG_NORMAL = 0x01,
+ DUNGEON_STATUSFLAG_HEROIC = 0x02,
+
+ RAID_STATUSFLAG_10MAN_NORMAL = 0x01,
+ RAID_STATUSFLAG_25MAN_NORMAL = 0x02,
+ RAID_STATUSFLAG_10MAN_HEROIC = 0x04,
+ RAID_STATUSFLAG_25MAN_HEROIC = 0x08
+};
+
+enum PartyResult
+{
+ ERR_PARTY_RESULT_OK = 0,
+ ERR_BAD_PLAYER_NAME_S = 1,
+ ERR_TARGET_NOT_IN_GROUP_S = 2,
+ ERR_TARGET_NOT_IN_INSTANCE_S = 3,
+ ERR_GROUP_FULL = 4,
+ ERR_ALREADY_IN_GROUP_S = 5,
+ ERR_NOT_IN_GROUP = 6,
+ ERR_NOT_LEADER = 7,
+ ERR_PLAYER_WRONG_FACTION = 8,
+ ERR_IGNORING_YOU_S = 9,
+ ERR_LFG_PENDING = 12,
+ ERR_INVITE_RESTRICTED = 13,
+ ERR_GROUP_SWAP_FAILED = 14, // if (PartyOperation == PARTY_OP_SWAP) ERR_GROUP_SWAP_FAILED else ERR_INVITE_IN_COMBAT
+ ERR_INVITE_UNKNOWN_REALM = 15,
+ ERR_INVITE_NO_PARTY_SERVER = 16,
+ ERR_INVITE_PARTY_BUSY = 17,
+ ERR_PARTY_TARGET_AMBIGUOUS = 18,
+ ERR_PARTY_LFG_INVITE_RAID_LOCKED = 19,
+ ERR_PARTY_LFG_BOOT_LIMIT = 20,
+ ERR_PARTY_LFG_BOOT_COOLDOWN_S = 21,
+ ERR_PARTY_LFG_BOOT_IN_PROGRESS = 22,
+ ERR_PARTY_LFG_BOOT_TOO_FEW_PLAYERS = 23,
+ ERR_PARTY_LFG_BOOT_NOT_ELIGIBLE_S = 24,
+ ERR_RAID_DISALLOWED_BY_LEVEL = 25,
+ ERR_PARTY_LFG_BOOT_IN_COMBAT = 26,
+ ERR_VOTE_KICK_REASON_NEEDED = 27,
+ ERR_PARTY_LFG_BOOT_DUNGEON_COMPLETE = 28,
+ ERR_PARTY_LFG_BOOT_LOOT_ROLLS = 29,
+ ERR_PARTY_LFG_TELEPORT_IN_COMBAT = 30
+};
#define MMAP_MAGIC 0x4d4d4150 // 'MMAP'
#define MMAP_VERSION 3
diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
index 578654ca162..3d75e384e93 100644
--- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
@@ -24,6 +24,7 @@
#include "ObjectAccessor.h"
#include "MoveSplineInit.h"
#include "MoveSpline.h"
+#include "Player.h"
#define MIN_QUIET_DISTANCE 28.0f
#define MAX_QUIET_DISTANCE 43.0f
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
index dc6cc55b855..554e38d7efd 100755
--- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
@@ -49,8 +49,19 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T* owner, bool upd
}
else
{
+ float size;
+
+ // Pets need special handling.
+ // We need to subtract GetObjectSize() because it gets added back further down the chain
+ // and that makes pets too far away. Subtracting it allows pets to properly
+ // be (GetCombatReach() + i_offset) away.
+ if (owner.isPet())
+ size = i_target->GetCombatReach() - i_target->GetObjectSize();
+ else
+ size = owner.GetObjectSize();
+
// to at i_offset distance from target and i_angle from target facing
- i_target->GetClosePoint(x, y, z, owner->GetObjectSize(), i_offset, i_angle);
+ i_target->GetClosePoint(x, y, z, size, i_offset, i_angle);
}
}
else
diff --git a/src/server/game/Movement/Spline/MoveSpline.cpp b/src/server/game/Movement/Spline/MoveSpline.cpp
index 7160f64c0fb..1821a78d993 100644
--- a/src/server/game/Movement/Spline/MoveSpline.cpp
+++ b/src/server/game/Movement/Spline/MoveSpline.cpp
@@ -201,7 +201,7 @@ bool MoveSplineInitArgs::Validate(Unit* unit) const
#define CHECK(exp) \
if (!(exp))\
{\
- sLog->outError(LOG_FILTER_GENERAL, "MoveSplineInitArgs::Validate: expression '%s' failed for GUID: %u", #exp, unit->GetTypeId() == TYPEID_PLAYER ? unit->GetGUIDLow() : unit->ToCreature()->GetDBTableGUIDLow());\
+ sLog->outError(LOG_FILTER_GENERAL, "MoveSplineInitArgs::Validate: expression '%s' failed for GUID: %u Entry: %u", #exp, unit->GetTypeId() == TYPEID_PLAYER ? unit->GetGUIDLow() : unit->ToCreature()->GetDBTableGUIDLow(), unit->GetEntry());\
return false;\
}
CHECK(path.size() > 1);
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp
index b6cd1391ca3..e2a18d21ff2 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.cpp
+++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp
@@ -22,6 +22,8 @@
#include "Unit.h"
#include "Transport.h"
#include "Vehicle.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
namespace Movement
{
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 356a70ba6a5..3a8dc7c5e63 100755
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -24,6 +24,7 @@
#include "World.h"
#include "ObjectMgr.h"
#include "ScriptMgr.h"
+#include "Opcodes.h"
const int32 ReputationMgr::PointsInRank[MAX_REPUTATION_RANK] = {36000, 3000, 3000, 3000, 6000, 12000, 21000, 1000};
diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp
index 517ea6cb6bd..069ae71b7cb 100755
--- a/src/server/game/Scripting/MapScripts.cpp
+++ b/src/server/game/Scripting/MapScripts.cpp
@@ -16,19 +16,20 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "Map.h"
-#include "World.h"
#include "CellImpl.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#include "Transport.h"
-#include "ScriptedCreature.h"
-#include "WaypointManager.h"
#include "GossipDef.h"
+#include "Map.h"
#include "MapManager.h"
-#include "ObjectMgr.h"
#include "MapRefManager.h"
+#include "ObjectMgr.h"
+#include "Pet.h"
+#include "ScriptedCreature.h"
#include "ScriptMgr.h"
+#include "Transport.h"
+#include "WaypointManager.h"
+#include "World.h"
/// Put scripts in the execution queue
void Map::ScriptsStart(ScriptMapMap const& scripts, uint32 id, Object* source, Object* target)
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index 47ce6c17b28..6682d3c11e3 100755
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -30,6 +30,8 @@
#include "SpellScript.h"
#include "GossipDef.h"
#include "CreatureAI.h"
+#include "Player.h"
+#include "WorldPacket.h"
// This is the global static registry of scripts.
template<class TScript>
@@ -1186,12 +1188,12 @@ void ScriptMgr::OnShutdown()
FOREACH_SCRIPT(WorldScript)->OnShutdown();
}
-bool ScriptMgr::OnCriteriaCheck(AchievementCriteriaData const* data, Player* source, Unit* target)
+bool ScriptMgr::OnCriteriaCheck(uint32 scriptId, Player* source, Unit* target)
{
ASSERT(source);
// target can be NULL.
- GET_SCRIPT_RET(AchievementCriteriaScript, data->ScriptId, tmpscript, false);
+ GET_SCRIPT_RET(AchievementCriteriaScript, scriptId, tmpscript, false);
return tmpscript->OnCheck(source, target);
}
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 270182509f9..947be2b73fe 100755
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -24,7 +24,6 @@
#include <ace/Atomic_Op.h>
#include "DBCStores.h"
-#include "Player.h"
#include "SharedDefines.h"
#include "World.h"
#include "Weather.h"
@@ -980,7 +979,7 @@ class ScriptMgr
public: /* AchievementCriteriaScript */
- bool OnCriteriaCheck(AchievementCriteriaData const* data, Player* source, Unit* target);
+ bool OnCriteriaCheck(uint32 scriptId, Player* source, Unit* target);
public: /* PlayerScript */
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 9078f6720a0..0821be2abb9 100755
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -684,7 +684,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x28F*/ { "CMSG_GROUP_ASSISTANT_LEADER", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupAssistantLeaderOpcode},
/*0x290*/ { "CMSG_BUYBACK_ITEM", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuybackItem },
/*0x291*/ { "SMSG_SERVER_MESSAGE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
- /*0x292*/ { "CMSG_SET_SAVED_INSTANCE_EXTEND", STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL },
+ /*0x292*/ { "CMSG_SET_SAVED_INSTANCE_EXTEND", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetSavedInstanceExtend },
/*0x293*/ { "SMSG_LFG_OFFER_CONTINUE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x294*/ { "CMSG_TEST_DROP_RATE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x295*/ { "SMSG_TEST_DROP_RATE_RESULT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 18ff3b32d67..0185d4adc9f 100755
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -225,7 +225,10 @@ void WorldSession::LogUnexpectedOpcode(WorldPacket* packet, const char* status,
/// Logging helper for unexpected opcodes
void WorldSession::LogUnprocessedTail(WorldPacket* packet)
{
- sLog->outError(LOG_FILTER_OPCODES, "Unprocessed tail data (read stop at %u from %u) Opcode %s from %s",
+ if (!sLog->ShouldLog(LOG_FILTER_OPCODES, LOG_LEVEL_TRACE) || packet->rpos() >= packet->wpos())
+ return;
+
+ sLog->outTrace(LOG_FILTER_OPCODES, "Unprocessed tail data (read stop at %u from %u) Opcode %s from %s",
uint32(packet->rpos()), uint32(packet->wpos()), GetOpcodeNameForLogging(packet->GetOpcode()).c_str(), GetPlayerInfo().c_str());
packet->print_storage();
}
@@ -293,8 +296,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
{
sScriptMgr->OnPacketReceive(m_Socket, WorldPacket(*packet));
(this->*opHandle.handler)(*packet);
- if (sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE) && packet->rpos() < packet->wpos())
- LogUnprocessedTail(packet);
+ LogUnprocessedTail(packet);
}
// lag can cause STATUS_LOGGEDIN opcodes to arrive after the player started a transfer
break;
@@ -307,8 +309,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
// not expected _player or must checked in packet handler
sScriptMgr->OnPacketReceive(m_Socket, WorldPacket(*packet));
(this->*opHandle.handler)(*packet);
- if (sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE) && packet->rpos() < packet->wpos())
- LogUnprocessedTail(packet);
+ LogUnprocessedTail(packet);
}
break;
case STATUS_TRANSFER:
@@ -320,8 +321,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
{
sScriptMgr->OnPacketReceive(m_Socket, WorldPacket(*packet));
(this->*opHandle.handler)(*packet);
- if (sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE) && packet->rpos() < packet->wpos())
- LogUnprocessedTail(packet);
+ LogUnprocessedTail(packet);
}
break;
case STATUS_AUTHED:
@@ -339,8 +339,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
sScriptMgr->OnPacketReceive(m_Socket, WorldPacket(*packet));
(this->*opHandle.handler)(*packet);
- if (sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE) && packet->rpos() < packet->wpos())
- LogUnprocessedTail(packet);
+ LogUnprocessedTail(packet);
break;
case STATUS_NEVER:
sLog->outError(LOG_FILTER_OPCODES, "Received not allowed opcode %s from %s", GetOpcodeNameForLogging(packet->GetOpcode()).c_str()
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 7d5dba847d4..a442bb45a69 100755
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -31,8 +31,6 @@
#include "WorldPacket.h"
#include "Cryptography/BigNumber.h"
-class CalendarEvent;
-class CalendarInvite;
class Creature;
class GameObject;
class InstanceSave;
@@ -93,40 +91,6 @@ enum PartyOperation
PARTY_OP_SWAP = 4
};
-enum PartyResult
-{
- ERR_PARTY_RESULT_OK = 0,
- ERR_BAD_PLAYER_NAME_S = 1,
- ERR_TARGET_NOT_IN_GROUP_S = 2,
- ERR_TARGET_NOT_IN_INSTANCE_S = 3,
- ERR_GROUP_FULL = 4,
- ERR_ALREADY_IN_GROUP_S = 5,
- ERR_NOT_IN_GROUP = 6,
- ERR_NOT_LEADER = 7,
- ERR_PLAYER_WRONG_FACTION = 8,
- ERR_IGNORING_YOU_S = 9,
- ERR_LFG_PENDING = 12,
- ERR_INVITE_RESTRICTED = 13,
- ERR_GROUP_SWAP_FAILED = 14, // if (PartyOperation == PARTY_OP_SWAP) ERR_GROUP_SWAP_FAILED else ERR_INVITE_IN_COMBAT
- ERR_INVITE_UNKNOWN_REALM = 15,
- ERR_INVITE_NO_PARTY_SERVER = 16,
- ERR_INVITE_PARTY_BUSY = 17,
- ERR_PARTY_TARGET_AMBIGUOUS = 18,
- ERR_PARTY_LFG_INVITE_RAID_LOCKED = 19,
- ERR_PARTY_LFG_BOOT_LIMIT = 20,
- ERR_PARTY_LFG_BOOT_COOLDOWN_S = 21,
- ERR_PARTY_LFG_BOOT_IN_PROGRESS = 22,
- ERR_PARTY_LFG_BOOT_TOO_FEW_PLAYERS = 23,
- ERR_PARTY_LFG_BOOT_NOT_ELIGIBLE_S = 24,
- ERR_RAID_DISALLOWED_BY_LEVEL = 25,
- ERR_PARTY_LFG_BOOT_IN_COMBAT = 26,
- ERR_VOTE_KICK_REASON_NEEDED = 27,
- ERR_PARTY_LFG_BOOT_DUNGEON_COMPLETE = 28,
- ERR_PARTY_LFG_BOOT_LOOT_ROLLS = 29,
- ERR_PARTY_LFG_TELEPORT_IN_COMBAT = 30
-};
-
-
enum BFLeaveReason
{
BF_LEAVE_REASON_CLOSE = 0x00000001,
@@ -750,7 +714,7 @@ class WorldSession
//Pet
void HandlePetAction(WorldPacket& recvData);
void HandlePetStopAttack(WorldPacket& recvData);
- void HandlePetActionHelper(Unit* pet, uint64 guid1, uint16 spellid, uint16 flag, uint64 guid2);
+ void HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid, uint16 flag, uint64 guid2);
void HandlePetNameQuery(WorldPacket& recvData);
void HandlePetSetAction(WorldPacket& recvData);
void HandlePetAbandon(WorldPacket& recvData);
@@ -904,19 +868,9 @@ class WorldSession
void HandleCalendarGetNumPending(WorldPacket& recvData);
void HandleCalendarEventSignup(WorldPacket& recvData);
- void SendCalendarEvent(CalendarEvent const& calendarEvent, CalendarSendEventType sendEventType);
- void SendCalendarEventInvite(CalendarInvite const& invite, bool pending);
- void SendCalendarEventInviteAlert(CalendarEvent const& calendarEvent, CalendarInvite const& calendarInvite);
- void SendCalendarEventInviteRemove(CalendarInvite const& invite, uint32 flags);
- void SendCalendarEventInviteRemoveAlert(CalendarEvent const& calendarEvent, CalendarInviteStatus status);
- void SendCalendarEventRemovedAlert(CalendarEvent const& calendarEvent);
- void SendCalendarEventUpdateAlert(CalendarEvent const& calendarEvent, CalendarSendEventType sendEventType);
- void SendCalendarEventStatus(CalendarEvent const& calendarEvent, CalendarInvite const& invite);
- void SendCalendarEventModeratorStatusAlert(CalendarInvite const& invite);
- void SendCalendarClearPendingAction();
void SendCalendarRaidLockout(InstanceSave const* save, bool add);
void SendCalendarRaidLockoutUpdated(InstanceSave const* save);
- void SendCalendarCommandResult(CalendarError err, char const* param = NULL);
+ void HandleSetSavedInstanceExtend(WorldPacket& recvData);
void HandleSpellClick(WorldPacket& recvData);
void HandleMirrorImageDataRequest(WorldPacket& recvData);
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index ee54c8d662c..8b034299ad6 100755
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -29,7 +29,7 @@
#include "WorldSocket.h"
#include "Common.h"
-
+#include "Player.h"
#include "Util.h"
#include "World.h"
#include "WorldPacket.h"
@@ -163,6 +163,9 @@ int WorldSocket::SendPacket(WorldPacket const& pct)
if (sPacketLog->CanLogPacket())
sPacketLog->LogPacket(pct, SERVER_TO_CLIENT);
+ if (m_Session)
+ sLog->outTrace(LOG_FILTER_OPCODES, "S->C %s %s", m_Session->GetPlayerInfo().c_str(), GetOpcodeNameForLogging(pct.GetOpcode()).c_str());
+
// Create a copy of the original packet; this is to avoid issues if a hook modifies it.
sScriptMgr->OnPacketSend(this, WorldPacket(pct));
@@ -674,6 +677,9 @@ int WorldSocket::ProcessIncoming(WorldPacket* new_pct)
if (sPacketLog->CanLogPacket())
sPacketLog->LogPacket(*new_pct, CLIENT_TO_SERVER);
+ if (m_Session)
+ sLog->outTrace(LOG_FILTER_OPCODES, "C->S %s %s", m_Session->GetPlayerInfo().c_str(), GetOpcodeNameForLogging(new_pct->GetOpcode()).c_str());
+
try
{
switch (opcode)
@@ -857,6 +863,17 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
uint32 recruiter = fields[9].GetUInt32();
std::string os = fields[10].GetString();
+ // Must be done before WorldSession is created
+ if (sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED) && os != "Win" && os != "OSX")
+ {
+ packet.Initialize(SMSG_AUTH_RESPONSE, 1);
+ packet << uint8(AUTH_REJECT);
+ SendPacket(packet);
+
+ sLog->outError(LOG_FILTER_NETWORKIO, "WorldSocket::HandleAuthSession: Client %s attempted to log in using invalid client OS (%s).", GetRemoteAddress().c_str(), os.c_str());
+ return -1;
+ }
+
// Checks gmlevel per Realm
stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_GMLEVEL_BY_REALMID);
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 5e9e8cc090b..b29f1498152 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -38,6 +38,8 @@
#include "Vehicle.h"
#include "Battlefield.h"
#include "BattlefieldMgr.h"
+#include "Pet.h"
+#include "ReputationMgr.h"
class Aura;
//
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 77adece17b4..97f0f350ab0 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -5456,6 +5456,9 @@ SpellCastResult Spell::CheckCast(bool strict)
if (target->GetCharmerGUID())
return SPELL_FAILED_CHARMED;
+ if (target->GetOwner() && target->GetOwner()->GetTypeId() == TYPEID_PLAYER)
+ return SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED;
+
int32 damage = CalculateDamage(i, target);
if (damage && int32(target->getLevel()) > damage)
return SPELL_FAILED_HIGHLEVEL;
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index cdb9490c10d..622f3e1517b 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -64,6 +64,7 @@
#include "AccountMgr.h"
#include "InstanceScript.h"
#include "PathGenerator.h"
+#include "ReputationMgr.h"
pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
{
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 27b4f22bbcf..be4c522956c 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -21,6 +21,8 @@
#include "Spell.h"
#include "DBCStores.h"
#include "ConditionMgr.h"
+#include "Player.h"
+#include "Battleground.h"
uint32 GetTargetFlagMask(SpellTargetObjectTypes objType)
{
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 4ffbab6cb63..1edb8eab103 100755
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -32,6 +32,7 @@
#include "BattlegroundIC.h"
#include "BattlefieldWG.h"
#include "BattlefieldMgr.h"
+#include "Player.h"
bool IsPrimaryProfessionSkill(uint32 skill)
{
@@ -80,6 +81,9 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
// Gnaw
else if (spellproto->Id == 47481)
return DIMINISHING_CONTROLLED_STUN;
+ // ToC Icehowl Arctic Breath
+ else if (spellproto->SpellVisual[0] == 14153)
+ return DIMINISHING_NONE;
break;
}
// Event spells
@@ -373,7 +377,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
if (msg)
{
if (player)
- ChatHandler(player).PSendSysMessage("Craft spell %u not have create item entry.", spellInfo->Id);
+ ChatHandler(player->GetSession()).PSendSysMessage("Craft spell %u not have create item entry.", spellInfo->Id);
else
sLog->outError(LOG_FILTER_SQL, "Craft spell %u not have create item entry.", spellInfo->Id);
}
@@ -387,7 +391,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
if (msg)
{
if (player)
- ChatHandler(player).PSendSysMessage("Craft spell %u create not-exist in DB item (Entry: %u) and then...", spellInfo->Id, spellInfo->Effects[i].ItemType);
+ ChatHandler(player->GetSession()).PSendSysMessage("Craft spell %u create not-exist in DB item (Entry: %u) and then...", spellInfo->Id, spellInfo->Effects[i].ItemType);
else
sLog->outError(LOG_FILTER_SQL, "Craft spell %u create not-exist in DB item (Entry: %u) and then...", spellInfo->Id, spellInfo->Effects[i].ItemType);
}
@@ -405,7 +409,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
if (msg)
{
if (player)
- ChatHandler(player).PSendSysMessage("Spell %u learn to broken spell %u, and then...", spellInfo->Id, spellInfo->Effects[i].TriggerSpell);
+ ChatHandler(player->GetSession()).PSendSysMessage("Spell %u learn to broken spell %u, and then...", spellInfo->Id, spellInfo->Effects[i].TriggerSpell);
else
sLog->outError(LOG_FILTER_SQL, "Spell %u learn to invalid spell %u, and then...", spellInfo->Id, spellInfo->Effects[i].TriggerSpell);
}
@@ -425,7 +429,7 @@ bool SpellMgr::IsSpellValid(SpellInfo const* spellInfo, Player* player, bool msg
if (msg)
{
if (player)
- ChatHandler(player).PSendSysMessage("Craft spell %u have not-exist reagent in DB item (Entry: %u) and then...", spellInfo->Id, spellInfo->Reagent[j]);
+ ChatHandler(player->GetSession()).PSendSysMessage("Craft spell %u have not-exist reagent in DB item (Entry: %u) and then...", spellInfo->Id, spellInfo->Reagent[j]);
else
sLog->outError(LOG_FILTER_SQL, "Craft spell %u have not-exist reagent in DB item (Entry: %u) and then...", spellInfo->Id, spellInfo->Reagent[j]);
}
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 5c2639175d2..89b75fd1695 100755
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -65,6 +65,47 @@ class CreatureTextBuilder
uint64 _targetGUID;
};
+class PlayerTextBuilder
+{
+ public:
+ PlayerTextBuilder(WorldObject* obj, WorldObject* speaker, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, uint64 targetGUID)
+ : _source(obj), _talker(speaker), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _targetGUID(targetGUID)
+ {
+ }
+
+ size_t operator()(WorldPacket* data, LocaleConstant locale) const
+ {
+ std::string const& text = sCreatureTextMgr->GetLocalizedChatString(_source->GetEntry(), _textGroup, _textId, locale);
+
+ *data << uint8(_msgType);
+ *data << uint32(_language);
+ *data << uint64(_talker->GetGUID());
+ *data << uint32(1); // 2.1.0
+ *data << uint32(_talker->GetName().size() + 1);
+ *data << _talker->GetName();
+ size_t whisperGUIDpos = data->wpos();
+ *data << uint64(_targetGUID); // Unit Target
+ if (_targetGUID && !IS_PLAYER_GUID(_targetGUID))
+ {
+ *data << uint32(1); // target name length
+ *data << uint8(0); // target name
+ }
+ *data << uint32(text.length() + 1);
+ *data << text;
+ *data << uint8(0); // ChatTag
+
+ return whisperGUIDpos;
+ }
+
+ WorldObject* _source;
+ WorldObject* _talker;
+ ChatMsg _msgType;
+ uint8 _textGroup;
+ uint32 _textId;
+ uint32 _language;
+ uint64 _targetGUID;
+};
+
void CreatureTextMgr::LoadCreatureTexts()
{
uint32 oldMSTime = getMSTime();
@@ -170,7 +211,7 @@ void CreatureTextMgr::LoadCreatureTextLocales()
}
-uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid /*= 0*/, ChatMsg msgType /*= CHAT_MSG_ADDON*/, Language language /*= LANG_ADDON*/, TextRange range /*= TEXT_RANGE_NORMAL*/, uint32 sound /*= 0*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/, Player* srcPlr /*= NULL*/)
+uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid /*= 0*/, ChatMsg msgType /*= CHAT_MSG_ADDON*/, Language language /*= LANG_ADDON*/, CreatureTextRange range /*= TEXT_RANGE_NORMAL*/, uint32 sound /*= 0*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/, Player* srcPlr /*= NULL*/)
{
if (!source)
return 0;
@@ -261,8 +302,16 @@ uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisp
if (iter->emote)
SendEmote(finalSource, iter->emote);
- CreatureTextBuilder builder(finalSource, finalType, iter->group, iter->id, finalLang, whisperGuid);
- SendChatPacket(finalSource, builder, finalType, whisperGuid, range, team, gmOnly);
+ if (srcPlr)
+ {
+ PlayerTextBuilder builder(source, finalSource, finalType, iter->group, iter->id, finalLang, whisperGuid);
+ SendChatPacket(finalSource, builder, finalType, whisperGuid, range, team, gmOnly);
+ }
+ else
+ {
+ CreatureTextBuilder builder(finalSource, finalType, iter->group, iter->id, finalLang, whisperGuid);
+ SendChatPacket(finalSource, builder, finalType, whisperGuid, range, team, gmOnly);
+ }
if (isEqualChanced || (!isEqualChanced && totalChance == 100.0f))
SetRepeatId(source, textGroup, iter->id);
@@ -288,7 +337,7 @@ float CreatureTextMgr::GetRangeForChatType(ChatMsg msgType) const
return dist;
}
-void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly)
+void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly)
{
if (!sound || !source)
return;
@@ -298,7 +347,7 @@ void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType,
SendNonChatPacket(source, &data, msgType, whisperGuid, range, team, gmOnly);
}
-void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) const
+void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const
{
float dist = GetRangeForChatType(msgType);
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index 8ed0b01fcd5..df6dd7fe4f3 100755
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -22,6 +22,7 @@
#include "GridNotifiers.h"
#include "ObjectAccessor.h"
#include "SharedDefines.h"
+#include "Opcodes.h"
struct CreatureTextEntry
{
@@ -37,7 +38,7 @@ struct CreatureTextEntry
uint32 sound;
};
-enum TextRange
+enum CreatureTextRange
{
TEXT_RANGE_NORMAL = 0,
TEXT_RANGE_AREA = 1,
@@ -89,21 +90,21 @@ class CreatureTextMgr
void LoadCreatureTextLocales();
CreatureTextMap const& GetTextMap() const { return mTextMap; }
- void SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly);
+ void SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly);
void SendEmote(Unit* source, uint32 emote);
//if sent, returns the 'duration' of the text else 0 if error
- uint32 SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid = 0, ChatMsg msgType = CHAT_MSG_ADDON, Language language = LANG_ADDON, TextRange range = TEXT_RANGE_NORMAL, uint32 sound = 0, Team team = TEAM_OTHER, bool gmOnly = false, Player* srcPlr = NULL);
+ uint32 SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid = 0, ChatMsg msgType = CHAT_MSG_ADDON, Language language = LANG_ADDON, CreatureTextRange range = TEXT_RANGE_NORMAL, uint32 sound = 0, Team team = TEAM_OTHER, bool gmOnly = false, Player* srcPlr = NULL);
bool TextExist(uint32 sourceEntry, uint8 textGroup);
std::string GetLocalizedChatString(uint32 entry, uint8 textGroup, uint32 id, LocaleConstant locale) const;
template<class Builder>
- void SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid = 0, TextRange range = TEXT_RANGE_NORMAL, Team team = TEAM_OTHER, bool gmOnly = false) const;
+ void SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid = 0, CreatureTextRange range = TEXT_RANGE_NORMAL, Team team = TEAM_OTHER, bool gmOnly = false) const;
private:
CreatureTextRepeatIds GetRepeatGroup(Creature* source, uint8 textGroup);
void SetRepeatId(Creature* source, uint8 textGroup, uint8 id);
- void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) const;
+ void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const;
float GetRangeForChatType(ChatMsg msgType) const;
CreatureTextMap mTextMap;
@@ -172,7 +173,7 @@ class CreatureTextLocalizer
};
template<class Builder>
-void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) const
+void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const
{
if (!source)
return;
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp
index 51e17cb9076..3f0e608ec14 100755
--- a/src/server/game/Tickets/TicketMgr.cpp
+++ b/src/server/game/Tickets/TicketMgr.cpp
@@ -20,10 +20,13 @@
#include "TicketMgr.h"
#include "DatabaseEnv.h"
#include "Log.h"
+#include "Language.h"
#include "WorldPacket.h"
#include "WorldSession.h"
#include "Chat.h"
#include "World.h"
+#include "Player.h"
+#include "Opcodes.h"
inline float GetAge(uint64 t) { return float(time(NULL) - t) / DAY; }
diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp
index ec7d2e08001..57986243879 100644
--- a/src/server/game/Tools/PlayerDump.cpp
+++ b/src/server/game/Tools/PlayerDump.cpp
@@ -22,6 +22,7 @@
#include "UpdateFields.h"
#include "ObjectMgr.h"
#include "AccountMgr.h"
+#include "World.h"
#define DUMP_TABLE_COUNT 27
struct DumpTable
diff --git a/src/server/game/Warden/Warden.cpp b/src/server/game/Warden/Warden.cpp
index ce64dbd1a94..06f8454fda7 100644
--- a/src/server/game/Warden/Warden.cpp
+++ b/src/server/game/Warden/Warden.cpp
@@ -151,13 +151,28 @@ bool Warden::IsValidCheckSum(uint32 checksum, const uint8* data, const uint16 le
}
}
+struct keyData {
+ union
+ {
+ struct
+ {
+ uint8 bytes[20];
+ } bytes;
+
+ struct
+ {
+ uint32 ints[5];
+ } ints;
+ };
+};
+
uint32 Warden::BuildChecksum(const uint8* data, uint32 length)
{
- uint8 hash[20];
- SHA1(data, length, hash);
+ keyData hash;
+ SHA1(data, length, hash.bytes.bytes);
uint32 checkSum = 0;
for (uint8 i = 0; i < 5; ++i)
- checkSum = checkSum ^ *(uint32*)(&hash[0] + i * 4);
+ checkSum = checkSum ^ hash.ints.ints[i];
return checkSum;
}
diff --git a/src/server/game/Warden/WardenMac.cpp b/src/server/game/Warden/WardenMac.cpp
index e08d24ecbcd..c6ce33fe131 100644
--- a/src/server/game/Warden/WardenMac.cpp
+++ b/src/server/game/Warden/WardenMac.cpp
@@ -114,17 +114,32 @@ void WardenMac::RequestHash()
_session->SendPacket(&pkt);
}
+struct keyData {
+ union
+ {
+ struct
+ {
+ uint8 bytes[16];
+ } bytes;
+
+ struct
+ {
+ int ints[4];
+ } ints;
+ };
+};
+
void WardenMac::HandleHashResult(ByteBuffer &buff)
{
// test
int keyIn[4];
- uint8 mod_seed[16] = { 0x4D, 0x80, 0x8D, 0x2C, 0x77, 0xD9, 0x05, 0xC4, 0x1A, 0x63, 0x80, 0xEC, 0x08, 0x58, 0x6A, 0xFE };
+ keyData mod_seed = { { { { 0x4D, 0x80, 0x8D, 0x2C, 0x77, 0xD9, 0x05, 0xC4, 0x1A, 0x63, 0x80, 0xEC, 0x08, 0x58, 0x6A, 0xFE } } } };
for (int i = 0; i < 4; ++i)
{
- keyIn[i] = *(int*)(&mod_seed[0] + i * 4);
+ keyIn[i] = mod_seed.ints.ints[i];
}
int keyOut[4];
diff --git a/src/server/game/Weather/Weather.cpp b/src/server/game/Weather/Weather.cpp
index 896e7161606..e119ebf5f2e 100755
--- a/src/server/game/Weather/Weather.cpp
+++ b/src/server/game/Weather/Weather.cpp
@@ -28,6 +28,7 @@
#include "ObjectMgr.h"
#include "Util.h"
#include "ScriptMgr.h"
+#include "Opcodes.h"
/// Create the Weather object
Weather::Weather(uint32 zone, WeatherData const* weatherChances)
diff --git a/src/server/game/Weather/WeatherMgr.cpp b/src/server/game/Weather/WeatherMgr.cpp
index da62122d7a3..c96ec1742cf 100755
--- a/src/server/game/Weather/WeatherMgr.cpp
+++ b/src/server/game/Weather/WeatherMgr.cpp
@@ -25,6 +25,9 @@
#include "Log.h"
#include "ObjectMgr.h"
#include "AutoPtr.h"
+#include "Player.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
namespace WeatherMgr
{
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index e19f0b56f4b..be5b005dc27 100755
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -1668,9 +1668,6 @@ void World::SetInitialWorldSettings()
sLog->outInfo(LOG_FILTER_SERVER_LOADING, "Loading CreatureEventAI Texts...");
sEventAIMgr->LoadCreatureEventAI_Texts();
- sLog->outInfo(LOG_FILTER_SERVER_LOADING, "Loading CreatureEventAI Summons...");
- sEventAIMgr->LoadCreatureEventAI_Summons();
-
sLog->outInfo(LOG_FILTER_SERVER_LOADING, "Loading CreatureEventAI Scripts...");
sEventAIMgr->LoadCreatureEventAI_Scripts();
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 7342c76f619..37c35c58c29 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -474,41 +474,6 @@ enum WorldStates
WS_GUILD_DAILY_RESET_TIME = 20006, // Next guild cap reset time
};
-// DB scripting commands
-enum ScriptCommands
-{
- SCRIPT_COMMAND_TALK = 0, // source/target = Creature, target = any, datalong = talk type (0=say, 1=whisper, 2=yell, 3=emote text, 4=boss emote text), datalong2 & 1 = player talk (instead of creature), dataint = string_id
- SCRIPT_COMMAND_EMOTE = 1, // source/target = Creature, datalong = emote id, datalong2 = 0: set emote state; > 0: play emote state
- SCRIPT_COMMAND_FIELD_SET = 2, // source/target = Creature, datalong = field id, datalog2 = value
- SCRIPT_COMMAND_MOVE_TO = 3, // source/target = Creature, datalong2 = time to reach, x/y/z = destination
- SCRIPT_COMMAND_FLAG_SET = 4, // source/target = Creature, datalong = field id, datalog2 = bitmask
- SCRIPT_COMMAND_FLAG_REMOVE = 5, // source/target = Creature, datalong = field id, datalog2 = bitmask
- SCRIPT_COMMAND_TELEPORT_TO = 6, // source/target = Creature/Player (see datalong2), datalong = map_id, datalong2 = 0: Player; 1: Creature, x/y/z = destination, o = orientation
- SCRIPT_COMMAND_QUEST_EXPLORED = 7, // target/source = Player, target/source = GO/Creature, datalong = quest id, datalong2 = distance or 0
- SCRIPT_COMMAND_KILL_CREDIT = 8, // target/source = Player, datalong = creature entry, datalong2 = 0: personal credit, 1: group credit
- SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9, // source = WorldObject (summoner), datalong = GO guid, datalong2 = despawn delay
- SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10, // source = WorldObject (summoner), datalong = creature entry, datalong2 = despawn delay, x/y/z = summon position, o = orientation
- SCRIPT_COMMAND_OPEN_DOOR = 11, // source = Unit, datalong = GO guid, datalong2 = reset delay (min 15)
- SCRIPT_COMMAND_CLOSE_DOOR = 12, // source = Unit, datalong = GO guid, datalong2 = reset delay (min 15)
- SCRIPT_COMMAND_ACTIVATE_OBJECT = 13, // source = Unit, target = GO
- SCRIPT_COMMAND_REMOVE_AURA = 14, // source (datalong2 != 0) or target (datalong2 == 0) = Unit, datalong = spell id
- SCRIPT_COMMAND_CAST_SPELL = 15, // source and/or target = Unit, datalong2 = cast direction (0: s->t 1: s->s 2: t->t 3: t->s 4: s->creature with dataint entry), dataint & 1 = triggered flag
- SCRIPT_COMMAND_PLAY_SOUND = 16, // source = WorldObject, target = none/Player, datalong = sound id, datalong2 (bitmask: 0/1=anyone/player, 0/2=without/with distance dependency, so 1|2 = 3 is target with distance dependency)
- SCRIPT_COMMAND_CREATE_ITEM = 17, // target/source = Player, datalong = item entry, datalong2 = amount
- SCRIPT_COMMAND_DESPAWN_SELF = 18, // target/source = Creature, datalong = despawn delay
-
- SCRIPT_COMMAND_LOAD_PATH = 20, // source = Unit, datalong = path id, datalong2 = is repeatable
- SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT = 21, // source = WorldObject (if present used as a search center), datalong = script id, datalong2 = unit lowguid, dataint = script table to use (see ScriptsType)
- SCRIPT_COMMAND_KILL = 22, // source/target = Creature, dataint = remove corpse attribute
-
- // TrinityCore only
- SCRIPT_COMMAND_ORIENTATION = 30, // source = Unit, target (datalong > 0) = Unit, datalong = > 0 turn source to face target, o = orientation
- SCRIPT_COMMAND_EQUIP = 31, // soucre = Creature, datalong = equipment id
- SCRIPT_COMMAND_MODEL = 32, // source = Creature, datalong = model id
- SCRIPT_COMMAND_CLOSE_GOSSIP = 33, // source = Player
- SCRIPT_COMMAND_PLAYMOVIE = 34 // source = Player, datalong = movie id
-};
-
/// Storage class for commands issued for delayed execution
struct CliCommandHolder
{
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt
index 2d15dfb3081..b41c3790392 100644
--- a/src/server/scripts/CMakeLists.txt
+++ b/src/server/scripts/CMakeLists.txt
@@ -9,18 +9,11 @@
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# Enable precompiled headers when using the GCC compiler.
-if( USE_SCRIPTPCH )
- include_directories(
- ${CMAKE_CURRENT_BINARY_DIR}
- )
-endif()
-if( USE_SCRIPTPCH AND MSVC )
- set(scripts_STAT_SRCS
- PrecompiledHeaders/ScriptPCH.cpp
- PrecompiledHeaders/ScriptPCH.h
- )
-endif()
+if (USE_SCRIPTPCH)
+ set(scripts_STAT_PCH_HDR PrecompiledHeaders/ScriptPCH.h)
+ set(scripts_STAT_PCH_SRC PrecompiledHeaders/ScriptPCH.cpp)
+endif ()
message(STATUS "SCRIPT PREPARATIONS")
include(Spells/CMakeLists.txt)
@@ -150,15 +143,14 @@ include_directories(
${MYSQL_INCLUDE_DIR}
)
-add_library(scripts STATIC ${scripts_STAT_SRCS})
+add_library(scripts STATIC
+ ${scripts_STAT_SRCS}
+ ${scripts_STAT_PCH_SRC}
+)
add_dependencies(scripts revision.h)
# Generate precompiled header
-if( USE_SCRIPTPCH )
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_precompiled_header(scripts ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/ScriptPCH.h)
- elseif(MSVC)
- add_native_precompiled_header(scripts ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/ScriptPCH)
- endif()
+if (USE_SCRIPTPCH)
+ add_cxx_pch(scripts ${scripts_STAT_PCH_HDR} ${scripts_STAT_PCH_SRC})
endif()
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index 15a724e69d1..9269bbb07ee 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -22,9 +22,11 @@ Comment: All account related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
#include "AccountMgr.h"
#include "Chat.h"
+#include "Language.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class account_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_achievement.cpp b/src/server/scripts/Commands/cs_achievement.cpp
index 7667e79ece7..9f5c861c52f 100644
--- a/src/server/scripts/Commands/cs_achievement.cpp
+++ b/src/server/scripts/Commands/cs_achievement.cpp
@@ -22,8 +22,10 @@ Comment: All achievement related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
#include "Chat.h"
+#include "Language.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class achievement_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp
index bfb52d342e1..3d340f3aaea 100644
--- a/src/server/scripts/Commands/cs_ban.cpp
+++ b/src/server/scripts/Commands/cs_ban.cpp
@@ -22,11 +22,13 @@ Comment: All ban related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "Chat.h"
#include "AccountMgr.h"
+#include "Chat.h"
+#include "Language.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class ban_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_cast.cpp b/src/server/scripts/Commands/cs_cast.cpp
index 70cfb8cb830..7539ebd2b0c 100644
--- a/src/server/scripts/Commands/cs_cast.cpp
+++ b/src/server/scripts/Commands/cs_cast.cpp
@@ -24,6 +24,9 @@ EndScriptData */
#include "ScriptMgr.h"
#include "Chat.h"
+#include "Creature.h"
+#include "Language.h"
+#include "Player.h"
class cast_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index 2202edbe4aa..f8db39e0338 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -22,11 +22,13 @@ Comment: All character related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "Chat.h"
#include "AccountMgr.h"
+#include "Chat.h"
#include "ObjectMgr.h"
#include "PlayerDump.h"
+#include "Player.h"
+#include "ReputationMgr.h"
+#include "ScriptMgr.h"
class character_commandscript : public CommandScript
{
@@ -238,11 +240,11 @@ public:
if (handler->needReportToTarget(player))
{
if (oldLevel == newLevel)
- ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_PROGRESS_RESET, handler->GetNameLink().c_str());
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_PROGRESS_RESET, handler->GetNameLink().c_str());
else if (oldLevel < newLevel)
- ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_UP, handler->GetNameLink().c_str(), newLevel);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_UP, handler->GetNameLink().c_str(), newLevel);
else // if (oldlevel > newlevel)
- ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_DOWN, handler->GetNameLink().c_str(), newLevel);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_DOWN, handler->GetNameLink().c_str(), newLevel);
}
}
else
diff --git a/src/server/scripts/Commands/cs_cheat.cpp b/src/server/scripts/Commands/cs_cheat.cpp
index 4f503fdbb76..026177ece6d 100644
--- a/src/server/scripts/Commands/cs_cheat.cpp
+++ b/src/server/scripts/Commands/cs_cheat.cpp
@@ -22,9 +22,11 @@ Comment: All cheat related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
#include "Chat.h"
+#include "Language.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class cheat_commandscript : public CommandScript
{
@@ -233,7 +235,7 @@ public:
chr->SetTaxiCheater(true);
handler->PSendSysMessage(LANG_YOU_GIVE_TAXIS, handler->GetNameLink(chr).c_str());
if (handler->needReportToTarget(chr))
- ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_ADDED, handler->GetNameLink().c_str());
+ ChatHandler(chr->GetSession()).PSendSysMessage(LANG_YOURS_TAXIS_ADDED, handler->GetNameLink().c_str());
return true;
}
@@ -242,7 +244,7 @@ public:
chr->SetTaxiCheater(false);
handler->PSendSysMessage(LANG_YOU_REMOVE_TAXIS, handler->GetNameLink(chr).c_str());
if (handler->needReportToTarget(chr))
- ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_REMOVED, handler->GetNameLink().c_str());
+ ChatHandler(chr->GetSession()).PSendSysMessage(LANG_YOURS_TAXIS_REMOVED, handler->GetNameLink().c_str());
return true;
}
@@ -271,13 +273,13 @@ public:
{
handler->PSendSysMessage(LANG_YOU_SET_EXPLORE_ALL, handler->GetNameLink(chr).c_str());
if (handler->needReportToTarget(chr))
- ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_ALL, handler->GetNameLink().c_str());
+ ChatHandler(chr->GetSession()).PSendSysMessage(LANG_YOURS_EXPLORE_SET_ALL, handler->GetNameLink().c_str());
}
else
{
handler->PSendSysMessage(LANG_YOU_SET_EXPLORE_NOTHING, handler->GetNameLink(chr).c_str());
if (handler->needReportToTarget(chr))
- ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_NOTHING, handler->GetNameLink().c_str());
+ ChatHandler(chr->GetSession()).PSendSysMessage(LANG_YOURS_EXPLORE_SET_NOTHING, handler->GetNameLink().c_str());
}
for (uint8 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i)
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 99ed8cc4301..956d9ac3376 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -31,6 +31,7 @@ EndScriptData */
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
#include "GossipDef.h"
+#include "Language.h"
#include <fstream>
diff --git a/src/server/scripts/Commands/cs_disable.cpp b/src/server/scripts/Commands/cs_disable.cpp
index 0bb376b08dd..73ed341a21c 100644
--- a/src/server/scripts/Commands/cs_disable.cpp
+++ b/src/server/scripts/Commands/cs_disable.cpp
@@ -22,11 +22,14 @@ Comment: All disable related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
#include "Chat.h"
#include "DisableMgr.h"
+#include "Language.h"
+#include "ObjectMgr.h"
#include "OutdoorPvP.h"
+#include "Player.h"
+#include "ScriptMgr.h"
+#include "SpellMgr.h"
class disable_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_event.cpp b/src/server/scripts/Commands/cs_event.cpp
index 4f6acd7b629..b0a646b7288 100644
--- a/src/server/scripts/Commands/cs_event.cpp
+++ b/src/server/scripts/Commands/cs_event.cpp
@@ -22,9 +22,11 @@ Comment: All event related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "GameEventMgr.h"
#include "Chat.h"
+#include "GameEventMgr.h"
+#include "Language.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class event_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp
index 4c6e36d3f71..b46f99eaa8f 100644
--- a/src/server/scripts/Commands/cs_gm.cpp
+++ b/src/server/scripts/Commands/cs_gm.cpp
@@ -26,7 +26,10 @@ EndScriptData */
#include "ObjectMgr.h"
#include "Chat.h"
#include "AccountMgr.h"
+#include "Language.h"
#include "World.h"
+#include "Player.h"
+#include "Opcodes.h"
class gm_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index f7371884da2..6d75e63d053 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -27,6 +27,8 @@ EndScriptData */
#include "MapManager.h"
#include "TicketMgr.h"
#include "Chat.h"
+#include "Language.h"
+#include "Player.h"
class go_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp
index 6803354d29b..c9f07c90259 100644
--- a/src/server/scripts/Commands/cs_gobject.cpp
+++ b/src/server/scripts/Commands/cs_gobject.cpp
@@ -28,6 +28,9 @@ EndScriptData */
#include "PoolMgr.h"
#include "MapManager.h"
#include "Chat.h"
+#include "Language.h"
+#include "Player.h"
+#include "Opcodes.h"
class gobject_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_guild.cpp b/src/server/scripts/Commands/cs_guild.cpp
index a453122aef6..73955a6b9b2 100644
--- a/src/server/scripts/Commands/cs_guild.cpp
+++ b/src/server/scripts/Commands/cs_guild.cpp
@@ -22,11 +22,12 @@ Comment: All guild related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
#include "Chat.h"
+#include "Language.h"
#include "Guild.h"
#include "GuildMgr.h"
#include "ObjectAccessor.h"
+#include "ScriptMgr.h"
class guild_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_honor.cpp b/src/server/scripts/Commands/cs_honor.cpp
index 4edc5f6fea0..c1d9229ccd3 100644
--- a/src/server/scripts/Commands/cs_honor.cpp
+++ b/src/server/scripts/Commands/cs_honor.cpp
@@ -22,9 +22,11 @@ Comment: All honor related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
#include "Chat.h"
+#include "Language.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class honor_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_instance.cpp b/src/server/scripts/Commands/cs_instance.cpp
index f51727af2ef..ffd8a5a7cf7 100644
--- a/src/server/scripts/Commands/cs_instance.cpp
+++ b/src/server/scripts/Commands/cs_instance.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "InstanceSaveMgr.h"
#include "InstanceScript.h"
#include "MapManager.h"
+#include "Player.h"
class instance_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_learn.cpp b/src/server/scripts/Commands/cs_learn.cpp
index cfdfc66f991..9c383153d46 100644
--- a/src/server/scripts/Commands/cs_learn.cpp
+++ b/src/server/scripts/Commands/cs_learn.cpp
@@ -25,8 +25,11 @@ EndScriptData */
#include "Chat.h"
#include "ScriptMgr.h"
#include "ObjectMgr.h"
+#include "Language.h"
#include "SpellMgr.h"
#include "SpellInfo.h"
+#include "Player.h"
+#include "Pet.h"
class learn_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_lfg.cpp b/src/server/scripts/Commands/cs_lfg.cpp
index 5f1ed59176f..c4da37d032c 100644
--- a/src/server/scripts/Commands/cs_lfg.cpp
+++ b/src/server/scripts/Commands/cs_lfg.cpp
@@ -17,8 +17,10 @@
#include "ScriptMgr.h"
#include "Chat.h"
+#include "Language.h"
#include "LFGMgr.h"
#include "Group.h"
+#include "Player.h"
void GetPlayerInfo(ChatHandler* handler, Player* player)
{
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index 5c16a0963d3..977369d1405 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -25,8 +25,10 @@ EndScriptData */
#include "ScriptMgr.h"
#include "Chat.h"
#include "SpellAuraEffects.h"
+#include "Language.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
+#include "Player.h"
class list_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 8f7e3ed3247..c265cd1faa5 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -22,12 +22,15 @@ Comment: All lookup related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "Chat.h"
#include "AccountMgr.h"
+#include "Chat.h"
#include "GameEventMgr.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
+#include "Player.h"
+#include "ReputationMgr.h"
+#include "ScriptMgr.h"
+#include "SpellInfo.h"
class lookup_commandscript : public CommandScript
{
@@ -1156,109 +1159,72 @@ public:
return true;
}
- static bool HandleLookupMapCommand(ChatHandler* /*handler*/, char const* args)
+ static bool HandleLookupMapCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
- /*
+
std::string namePart = args;
std::wstring wNamePart;
- // converting string that we try to find to lower case
if (!Utf8toWStr(namePart, wNamePart))
return false;
wstrToLower(wNamePart);
- bool found = false;
+ uint32 counter = 0;
+ uint32 maxResults = sWorld->getIntConfig(CONFIG_MAX_RESULTS_LOOKUP_COMMANDS);
+ uint8 locale = handler->GetSession() ? handler->GetSession()->GetSessionDbcLocale() : sWorld->GetDefaultDbcLocale();
// search in Map.dbc
for (uint32 id = 0; id < sMapStore.GetNumRows(); id++)
{
- MapEntry const* MapInfo = sMapStore.LookupEntry(id);
- if (MapInfo)
+ if (MapEntry const* mapInfo = sMapStore.LookupEntry(id))
{
- uint8 locale = handler->GetSession() ? handler->GetSession()->GetSessionDbcLocale() : sWorld->GetDefaultDbcLocale();
-
- std::string name = MapInfo->name[locale];
+ std::string name = mapInfo->name[locale];
if (name.empty())
continue;
- if (!Utf8FitTo(name, wNamePart))
+ if (Utf8FitTo(name, wNamePart) && locale < TOTAL_LOCALES)
{
- locale = LOCALE_enUS;
- for (; locale < TOTAL_LOCALES; locale++)
+ if (maxResults && counter == maxResults)
{
- if (handler->GetSession() && locale == handler->GetSession()->GetSessionDbcLocale())
- continue;
-
- name = MapInfo->name[locale];
- if (name.empty())
- continue;
-
- if (Utf8FitTo(name, wNamePart))
- break;
+ handler->PSendSysMessage(LANG_COMMAND_LOOKUP_MAX_RESULTS, maxResults);
+ return true;
}
- }
- if (locale < TOTAL_LOCALES)
- {
- // send map in "id - [name][Continent][Instance/Battleground/Arena][Raid reset time:][Heroic reset time:][Mountable]" format
std::ostringstream ss;
+ ss << id << " - [" << name << ']';
- if (handler->GetSession())
- ss << id << " - |cffffffff|Hmap:" << id << "|h[" << name << ']';
- else // console
- ss << id << " - [" << name << ']';
-
- if (MapInfo->IsContinent())
+ if (mapInfo->IsContinent())
ss << handler->GetTrinityString(LANG_CONTINENT);
- switch (MapInfo->map_type)
+ switch (mapInfo->map_type)
{
- case MAP_INSTANCE: ss << handler->GetTrinityString(LANG_INSTANCE); break;
- case MAP_BATTLEGROUND: ss << handler->GetTrinityString(LANG_BATTLEGROUND); break;
- case MAP_ARENA: ss << handler->GetTrinityString(LANG_ARENA); break;
+ case MAP_INSTANCE:
+ ss << handler->GetTrinityString(LANG_INSTANCE);
+ break;
+ case MAP_RAID:
+ ss << handler->GetTrinityString(LANG_RAID);
+ break;
+ case MAP_BATTLEGROUND:
+ ss << handler->GetTrinityString(LANG_BATTLEGROUND);
+ break;
+ case MAP_ARENA:
+ ss << handler->GetTrinityString(LANG_ARENA);
+ break;
}
- if (MapInfo->IsRaid())
- ss << handler->GetTrinityString(LANG_RAID);
-
- if (MapInfo->SupportsHeroicMode())
- ss << handler->GetTrinityString(LANG_HEROIC);
-
- uint32 ResetTimeRaid = MapInfo->resetTimeRaid;
-
- std::string ResetTimeRaidStr;
- if (ResetTimeRaid)
- ResetTimeRaidStr = secsToTimeString(ResetTimeRaid, true, false);
-
- uint32 ResetTimeHeroic = MapInfo->resetTimeHeroic;
- std::string ResetTimeHeroicStr;
- if (ResetTimeHeroic)
- ResetTimeHeroicStr = secsToTimeString(ResetTimeHeroic, true, false);
-
- if (MapInfo->IsMountAllowed())
- ss << handler->GetTrinityString(LANG_MOUNTABLE);
-
- if (ResetTimeRaid && !ResetTimeHeroic)
- handler->PSendSysMessage(ss.str().c_str(), ResetTimeRaidStr.c_str());
- else if (!ResetTimeRaid && ResetTimeHeroic)
- handler->PSendSysMessage(ss.str().c_str(), ResetTimeHeroicStr.c_str());
- else if (ResetTimeRaid && ResetTimeHeroic)
- handler->PSendSysMessage(ss.str().c_str(), ResetTimeRaidStr.c_str(), ResetTimeHeroicStr.c_str());
- else
- handler->SendSysMessage(ss.str().c_str());
+ handler->SendSysMessage(ss.str().c_str());
- if (!found)
- found = true;
+ ++counter;
}
}
}
- if (!found)
+ if (!counter)
handler->SendSysMessage(LANG_COMMAND_NOMAPFOUND);
- */
+
return true;
}
diff --git a/src/server/scripts/Commands/cs_message.cpp b/src/server/scripts/Commands/cs_message.cpp
index de2fcf26943..30c94442c51 100644
--- a/src/server/scripts/Commands/cs_message.cpp
+++ b/src/server/scripts/Commands/cs_message.cpp
@@ -25,6 +25,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "Chat.h"
#include "ChannelMgr.h"
+#include "Language.h"
+#include "Player.h"
class message_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 7e460c7482f..5e54778b14a 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -23,12 +23,16 @@
#include "GridNotifiers.h"
#include "Group.h"
#include "InstanceSaveMgr.h"
+#include "Language.h"
#include "MovementGenerator.h"
#include "ObjectAccessor.h"
+#include "Opcodes.h"
#include "SpellAuras.h"
#include "TargetedMovementGenerator.h"
#include "WeatherMgr.h"
#include "ace/INET_Addr.h"
+#include "Player.h"
+#include "Pet.h"
class misc_commandscript : public CommandScript
{
@@ -495,7 +499,7 @@ public:
handler->PSendSysMessage(LANG_SUMMONING, nameLink.c_str(), "");
if (handler->needReportToTarget(target))
- ChatHandler(target).PSendSysMessage(LANG_SUMMONED_BY, handler->playerLink(_player->GetName()).c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_SUMMONED_BY, handler->playerLink(_player->GetName()).c_str());
// stop flight if need
if (target->isInFlight())
@@ -606,7 +610,7 @@ public:
handler->PSendSysMessage(LANG_SUMMONING, plNameLink.c_str(), "");
if (handler->needReportToTarget(player))
- ChatHandler(player).PSendSysMessage(LANG_SUMMONED_BY, handler->GetNameLink().c_str());
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_SUMMONED_BY, handler->GetNameLink().c_str());
// stop flight if need
if (player->isInFlight())
@@ -1804,7 +1808,7 @@ public:
int64 muteTime = time(NULL) + notSpeakTime * MINUTE;
target->GetSession()->m_muteTime = muteTime;
stmt->setInt64(0, muteTime);
- ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_DISABLED, notSpeakTime, muteReasonStr.c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOUR_CHAT_DISABLED, notSpeakTime, muteReasonStr.c_str());
}
else
{
@@ -1860,7 +1864,7 @@ public:
LoginDatabase.Execute(stmt);
if (target)
- ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_ENABLED);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOUR_CHAT_ENABLED);
std::string nameLink = handler->playerLink(targetName);
@@ -2137,7 +2141,7 @@ public:
handler->PSendSysMessage(LANG_YOU_REPAIR_ITEMS, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- ChatHandler(target).PSendSysMessage(LANG_YOUR_ITEMS_REPAIRED, handler->GetNameLink().c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOUR_ITEMS_REPAIRED, handler->GetNameLink().c_str());
return true;
}
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp
index ff74ae83c20..16599e5d892 100644
--- a/src/server/scripts/Commands/cs_modify.cpp
+++ b/src/server/scripts/Commands/cs_modify.cpp
@@ -22,9 +22,14 @@ Comment: All modify related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
#include "Chat.h"
+#include "ObjectMgr.h"
+#include "Opcodes.h"
+#include "Pet.h"
+#include "Player.h"
+#include "ReputationMgr.h"
+#include "ScriptMgr.h"
+
class modify_commandscript : public CommandScript
{
@@ -106,7 +111,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_HP, handler->GetNameLink(target).c_str(), hp, hpm);
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_HP_CHANGED, handler->GetNameLink().c_str(), hp, hpm);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_HP_CHANGED, handler->GetNameLink().c_str(), hp, hpm);
target->SetMaxHealth(hpm);
target->SetHealth(hp);
@@ -144,7 +149,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_MANA, handler->GetNameLink(target).c_str(), mana, manam);
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_MANA_CHANGED, handler->GetNameLink().c_str(), mana, manam);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MANA_CHANGED, handler->GetNameLink().c_str(), mana, manam);
target->SetMaxPower(POWER_MANA, manam);
target->SetPower(POWER_MANA, mana);
@@ -193,7 +198,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target).c_str(), energy/10, energym/10);
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink().c_str(), energy/10, energym/10);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink().c_str(), energy/10, energym/10);
target->SetMaxPower(POWER_ENERGY, energym);
target->SetPower(POWER_ENERGY, energy);
@@ -244,7 +249,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target).c_str(), rage/10, ragem/10);
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink().c_str(), rage/10, ragem/10);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink().c_str(), rage/10, ragem/10);
target->SetMaxPower(POWER_RAGE, ragem);
target->SetPower(POWER_RAGE, rage);
@@ -278,7 +283,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target).c_str(), rune/10, runem/10);
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink().c_str(), rune/10, runem/10);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink().c_str(), rune/10, runem/10);
target->SetMaxPower(POWER_RUNIC_POWER, runem);
target->SetPower(POWER_RUNIC_POWER, rune);
@@ -408,7 +413,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellflatid, val, mark, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, handler->GetNameLink().c_str(), spellflatid, val, mark);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, handler->GetNameLink().c_str(), spellflatid, val, mark);
WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1+1+2+2));
data << uint8(spellflatid);
@@ -504,7 +509,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_ASPEED, ASpeed, targetNameLink.c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_ASPEED_CHANGED, handler->GetNameLink().c_str(), ASpeed);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ASPEED_CHANGED, handler->GetNameLink().c_str(), ASpeed);
target->SetSpeed(MOVE_WALK, ASpeed, true);
target->SetSpeed(MOVE_RUN, ASpeed, true);
@@ -552,7 +557,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_SPEED, Speed, targetNameLink.c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_SPEED_CHANGED, handler->GetNameLink().c_str(), Speed);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SPEED_CHANGED, handler->GetNameLink().c_str(), Speed);
target->SetSpeed(MOVE_RUN, Speed, true);
@@ -597,7 +602,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_SWIM_SPEED, Swim, targetNameLink.c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_SWIM_SPEED_CHANGED, handler->GetNameLink().c_str(), Swim);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SWIM_SPEED_CHANGED, handler->GetNameLink().c_str(), Swim);
target->SetSpeed(MOVE_SWIM, Swim, true);
@@ -642,7 +647,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_BACK_SPEED, BSpeed, targetNameLink.c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_BACK_SPEED_CHANGED, handler->GetNameLink().c_str(), BSpeed);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_BACK_SPEED_CHANGED, handler->GetNameLink().c_str(), BSpeed);
target->SetSpeed(MOVE_RUN_BACK, BSpeed, true);
@@ -678,7 +683,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_FLY_SPEED, FSpeed, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_FLY_SPEED_CHANGED, handler->GetNameLink().c_str(), FSpeed);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_FLY_SPEED_CHANGED, handler->GetNameLink().c_str(), FSpeed);
target->SetSpeed(MOVE_FLIGHT, FSpeed, true);
@@ -715,7 +720,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_SIZE, Scale, handler->GetNameLink(player).c_str());
if (handler->needReportToTarget(player))
- (ChatHandler(player)).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, handler->GetNameLink().c_str(), Scale);
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, handler->GetNameLink().c_str(), Scale);
}
target->SetObjectScale(Scale);
@@ -963,7 +968,7 @@ public:
handler->PSendSysMessage(LANG_YOU_GIVE_MOUNT, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_MOUNT_GIVED, handler->GetNameLink().c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_MOUNT_GIVED, handler->GetNameLink().c_str());
target->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP);
target->Mount(mId);
@@ -1019,7 +1024,7 @@ public:
{
handler->PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_ALL_MONEY_GONE, handler->GetNameLink().c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ALL_MONEY_GONE, handler->GetNameLink().c_str());
target->SetMoney(0);
}
@@ -1030,7 +1035,7 @@ public:
handler->PSendSysMessage(LANG_YOU_TAKE_MONEY, abs(moneyToAdd), handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, handler->GetNameLink().c_str(), abs(moneyToAdd));
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, handler->GetNameLink().c_str(), abs(moneyToAdd));
target->SetMoney(newmoney);
}
}
@@ -1038,7 +1043,7 @@ public:
{
handler->PSendSysMessage(LANG_YOU_GIVE_MONEY, moneyToAdd, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, handler->GetNameLink().c_str(), moneyToAdd);
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, handler->GetNameLink().c_str(), moneyToAdd);
if (moneyToAdd >= MAX_MONEY_AMOUNT)
target->SetMoney(MAX_MONEY_AMOUNT);
@@ -1378,7 +1383,7 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_GENDER, handler->GetNameLink(target).c_str(), gender_full);
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full, handler->GetNameLink().c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full, handler->GetNameLink().c_str());
return true;
}
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index ba7342caa80..28e0744c29d 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -27,8 +27,11 @@ EndScriptData */
#include "Chat.h"
#include "Transport.h"
#include "CreatureGroups.h"
+#include "Language.h"
#include "TargetedMovementGenerator.h" // for HandleNpcUnFollowCommand
#include "CreatureAI.h"
+#include "Player.h"
+#include "Pet.h"
class npc_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp
index c2ec563b3c7..22d6e0831d6 100644
--- a/src/server/scripts/Commands/cs_quest.cpp
+++ b/src/server/scripts/Commands/cs_quest.cpp
@@ -22,9 +22,11 @@ Comment: All quest related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
#include "Chat.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ReputationMgr.h"
+#include "ScriptMgr.h"
class quest_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 25f4c176bfc..c2791c815ad 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -22,22 +22,24 @@ Comment: All reload related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
-#include "SpellMgr.h"
-#include "TicketMgr.h"
-#include "MapManager.h"
+#include "AchievementMgr.h"
+#include "AuctionHouseMgr.h"
+#include "Chat.h"
#include "CreatureEventAIMgr.h"
+#include "CreatureTextMgr.h"
#include "DisableMgr.h"
+#include "Language.h"
#include "LFGMgr.h"
-#include "AuctionHouseMgr.h"
-#include "CreatureTextMgr.h"
-#include "SmartAI.h"
+#include "MapManager.h"
+#include "ObjectMgr.h"
+#include "ScriptMgr.h"
#include "SkillDiscovery.h"
#include "SkillExtraItems.h"
-#include "Chat.h"
-#include "WaypointManager.h"
+#include "SmartAI.h"
+#include "SpellMgr.h"
+#include "TicketMgr.h"
#include "WardenCheckMgr.h"
+#include "WaypointManager.h"
class reload_commandscript : public CommandScript
{
@@ -78,7 +80,6 @@ public:
{ "config", SEC_ADMINISTRATOR, true, &HandleReloadConfigCommand, "", NULL },
{ "creature_text", SEC_ADMINISTRATOR, true, &HandleReloadCreatureText, "", NULL },
{ "creature_ai_scripts", SEC_ADMINISTRATOR, true, &HandleReloadEventAIScriptsCommand, "", NULL },
- { "creature_ai_summons", SEC_ADMINISTRATOR, true, &HandleReloadEventAISummonsCommand, "", NULL },
{ "creature_ai_texts", SEC_ADMINISTRATOR, true, &HandleReloadEventAITextsCommand, "", NULL },
{ "creature_involvedrelation", SEC_ADMINISTRATOR, true, &HandleReloadCreatureQuestInvRelationsCommand, "", NULL },
{ "creature_linked_respawn", SEC_GAMEMASTER, true, &HandleReloadLinkedRespawnCommand, "", NULL },
@@ -276,7 +277,6 @@ public:
static bool HandleReloadAllEventAICommand(ChatHandler* handler, const char* /*args*/)
{
HandleReloadEventAITextsCommand(handler, "a");
- HandleReloadEventAISummonsCommand(handler, "a");
HandleReloadEventAIScriptsCommand(handler, "a");
return true;
}
@@ -1037,14 +1037,6 @@ public:
return true;
}
- static bool HandleReloadEventAISummonsCommand(ChatHandler* handler, const char* /*args*/)
- {
- sLog->outInfo(LOG_FILTER_GENERAL, "Re-Loading Summons from `creature_ai_summons`...");
- sEventAIMgr->LoadCreatureEventAI_Summons();
- handler->SendGlobalGMSysMessage("DB table `creature_ai_summons` reloaded.");
- return true;
- }
-
static bool HandleReloadEventAIScriptsCommand(ChatHandler* handler, const char* /*args*/)
{
sLog->outInfo(LOG_FILTER_GENERAL, "Re-Loading Scripts from `creature_ai_scripts`...");
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index 76a4eb5d943..21a22381ae0 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -22,9 +22,13 @@ Comment: All reset related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
+#include "AchievementMgr.h"
#include "Chat.h"
+#include "Language.h"
#include "ObjectAccessor.h"
+#include "Player.h"
+#include "Pet.h"
+#include "ScriptMgr.h"
class reset_commandscript : public CommandScript
{
@@ -168,7 +172,7 @@ public:
{
target->resetSpells(/* bool myClassOnly */);
- ChatHandler(target).SendSysMessage(LANG_RESET_SPELLS);
+ ChatHandler(target->GetSession()).SendSysMessage(LANG_RESET_SPELLS);
if (!handler->GetSession() || handler->GetSession()->GetPlayer() != target)
handler->PSendSysMessage(LANG_RESET_SPELLS_ONLINE, handler->GetNameLink(target).c_str());
}
@@ -220,7 +224,7 @@ public:
creature->ToPet()->resetTalents();
owner->ToPlayer()->SendTalentsInfoData(true);
- ChatHandler(owner->ToPlayer()).SendSysMessage(LANG_RESET_PET_TALENTS);
+ ChatHandler(owner->ToPlayer()->GetSession()).SendSysMessage(LANG_RESET_PET_TALENTS);
if (!handler->GetSession() || handler->GetSession()->GetPlayer() != owner->ToPlayer())
handler->PSendSysMessage(LANG_RESET_PET_TALENTS_ONLINE, handler->GetNameLink(owner->ToPlayer()).c_str());
}
@@ -236,7 +240,7 @@ public:
{
target->resetTalents(true);
target->SendTalentsInfoData(false);
- ChatHandler(target).SendSysMessage(LANG_RESET_TALENTS);
+ ChatHandler(target->GetSession()).SendSysMessage(LANG_RESET_TALENTS);
if (!handler->GetSession() || handler->GetSession()->GetPlayer() != target)
handler->PSendSysMessage(LANG_RESET_TALENTS_ONLINE, handler->GetNameLink(target).c_str());
diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp
index db1995ebb6e..bb4f9be5ffe 100644
--- a/src/server/scripts/Commands/cs_server.cpp
+++ b/src/server/scripts/Commands/cs_server.cpp
@@ -22,11 +22,13 @@ Comment: All server related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
#include "Chat.h"
-#include "SystemConfig.h"
#include "Config.h"
+#include "Language.h"
#include "ObjectAccessor.h"
+#include "Player.h"
+#include "ScriptMgr.h"
+#include "SystemConfig.h"
class server_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp
index 8f390d17cd4..756bd75387b 100644
--- a/src/server/scripts/Commands/cs_tele.cpp
+++ b/src/server/scripts/Commands/cs_tele.cpp
@@ -22,11 +22,13 @@ Comment: All tele related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
-#include "MapManager.h"
#include "Chat.h"
#include "Group.h"
+#include "Language.h"
+#include "MapManager.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class tele_commandscript : public CommandScript
{
@@ -178,7 +180,7 @@ public:
handler->PSendSysMessage(LANG_TELEPORTING_TO, chrNameLink.c_str(), "", tele->name.c_str());
if (handler->needReportToTarget(target))
- (ChatHandler(target)).PSendSysMessage(LANG_TELEPORTED_TO_BY, handler->GetNameLink().c_str());
+ ChatHandler(target->GetSession()).PSendSysMessage(LANG_TELEPORTED_TO_BY, handler->GetNameLink().c_str());
// stop flight if need
if (target->isInFlight())
@@ -274,7 +276,7 @@ public:
handler->PSendSysMessage(LANG_TELEPORTING_TO, plNameLink.c_str(), "", tele->name.c_str());
if (handler->needReportToTarget(player))
- (ChatHandler(player)).PSendSysMessage(LANG_TELEPORTED_TO_BY, nameLink.c_str());
+ ChatHandler(player->GetSession()).PSendSysMessage(LANG_TELEPORTED_TO_BY, nameLink.c_str());
// stop flight if need
if (player->isInFlight())
diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp
index c99931a90fb..c2c5a0909d6 100644
--- a/src/server/scripts/Commands/cs_ticket.cpp
+++ b/src/server/scripts/Commands/cs_ticket.cpp
@@ -22,11 +22,14 @@ Comment: All ticket related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "Chat.h"
#include "AccountMgr.h"
+#include "Chat.h"
+#include "Language.h"
#include "ObjectMgr.h"
+#include "Opcodes.h"
+#include "Player.h"
#include "TicketMgr.h"
+#include "ScriptMgr.h"
class ticket_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp
index e1b30d122de..c6e11c930fb 100644
--- a/src/server/scripts/Commands/cs_titles.cpp
+++ b/src/server/scripts/Commands/cs_titles.cpp
@@ -22,9 +22,11 @@ Comment: All titles related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
-#include "ObjectMgr.h"
#include "Chat.h"
+#include "Language.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
class titles_commandscript : public CommandScript
{
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index e3cd185e4a3..c0b2938c156 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -22,10 +22,12 @@ Comment: All wp related commands
Category: commandscripts
EndScriptData */
-#include "ScriptMgr.h"
+#include "Chat.h"
+#include "Language.h"
#include "ObjectMgr.h"
+#include "Player.h"
+#include "ScriptMgr.h"
#include "WaypointManager.h"
-#include "Chat.h"
class wp_commandscript : public CommandScript
{
@@ -941,7 +943,7 @@ public:
{
wpCreature->SetDisplayId(target->GetDisplayId());
wpCreature->SetObjectScale(0.5f);
- wpCreature->SetLevel(point > STRONG_MAX_LEVEL ? STRONG_MAX_LEVEL : point);
+ wpCreature->SetLevel(std::min<uint32>(point, STRONG_MAX_LEVEL));
}
}
while (result->NextRow());
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
index b2b4083f9c6..cef95b607c7 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
@@ -24,8 +24,8 @@ enum Spells
SPELL_CLEAVE = 40504,
SPELL_DEMORALIZING_SHOUT = 23511,
SPELL_ENRAGE = 8599,
- SPELL_WHIRLWIND1 = 15589,
- SPELL_WHIRLWIND2 = 13736,
+ SPELL_WHIRLWIND = 13736,
+
SPELL_NORTH_MARSHAL = 45828,
SPELL_SOUTH_MARSHAL = 45829,
SPELL_STONEHEARTH_MARSHAL = 45830,
@@ -48,38 +48,55 @@ enum Creatures
NPC_WEST_FROSTWOLF_WARMASTER = 14777
};
+enum Events
+{
+ EVENT_CHARGE_TARGET = 1,
+ EVENT_CLEAVE = 2,
+ EVENT_DEMORALIZING_SHOUT = 3,
+ EVENT_WHIRLWIND = 4,
+ EVENT_ENRAGE = 5,
+ EVENT_CHECK_RESET = 6
+};
+
+struct SpellPair
+{
+ uint32 npcEntry;
+ uint32 spellId;
+};
+
+uint8 const MAX_SPELL_PAIRS = 8;
+SpellPair const _auraPairs[MAX_SPELL_PAIRS] =
+{
+ { NPC_NORTH_MARSHAL, SPELL_NORTH_MARSHAL },
+ { NPC_SOUTH_MARSHAL, SPELL_SOUTH_MARSHAL },
+ { NPC_STONEHEARTH_MARSHAL, SPELL_STONEHEARTH_MARSHAL },
+ { NPC_ICEWING_MARSHAL, SPELL_ICEWING_MARSHAL },
+ { NPC_EAST_FROSTWOLF_WARMASTER, SPELL_EAST_FROSTWOLF_WARMASTER },
+ { NPC_WEST_FROSTWOLF_WARMASTER, SPELL_WEST_FROSTWOLF_WARMASTER },
+ { NPC_TOWER_POINT_WARMASTER, SPELL_TOWER_POINT_WARMASTER },
+ { NPC_ICEBLOOD_WARMASTER, SPELL_ICEBLOOD_WARMASTER }
+};
+
class mob_av_marshal_or_warmaster : public CreatureScript
{
public:
-
- mob_av_marshal_or_warmaster()
- : CreatureScript("mob_av_marshal_or_warmaster") {}
+ mob_av_marshal_or_warmaster() : CreatureScript("mob_av_marshal_or_warmaster") { }
struct mob_av_marshal_or_warmasterAI : public ScriptedAI
{
- mob_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 ChargeTimer;
- uint32 CleaveTimer;
- uint32 DemoralizingShoutTimer;
- uint32 Whirlwind1Timer;
- uint32 Whirlwind2Timer;
- uint32 EnrageTimer;
- uint32 ResetTimer;
-
- bool bHasAura;
+ mob_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) { }
void Reset()
{
- ChargeTimer = urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
- CleaveTimer = urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS);
- DemoralizingShoutTimer = urand(2 * IN_MILLISECONDS, 2 * IN_MILLISECONDS);
- Whirlwind1Timer = urand(1 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
- Whirlwind2Timer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
- EnrageTimer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
- ResetTimer = 5 * IN_MILLISECONDS;
-
- bHasAura = false;
+ events.Reset();
+ events.ScheduleEvent(EVENT_CHARGE_TARGET, urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CLEAVE, urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 2000);
+ events.ScheduleEvent(EVENT_WHIRLWIND, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ENRAGE, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CHECK_RESET, 5000);
+
+ _hasAura = false;
}
void JustRespawned()
@@ -87,90 +104,70 @@ class mob_av_marshal_or_warmaster : public CreatureScript
Reset();
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
- if (!bHasAura)
+ // I have a feeling this isn't blizzlike, but owell, I'm only passing by and cleaning up.
+ if (!_hasAura)
{
- switch (me->GetEntry())
- {
- case NPC_NORTH_MARSHAL:
- DoCast(me, SPELL_NORTH_MARSHAL);
- break;
- case NPC_SOUTH_MARSHAL:
- DoCast(me, SPELL_SOUTH_MARSHAL);
- break;
- case NPC_STONEHEARTH_MARSHAL:
- DoCast(me, SPELL_STONEHEARTH_MARSHAL);
- break;
- case NPC_ICEWING_MARSHAL:
- DoCast(me, SPELL_ICEWING_MARSHAL);
- break;
- case NPC_EAST_FROSTWOLF_WARMASTER:
- DoCast(me, SPELL_EAST_FROSTWOLF_WARMASTER);
- break;
- case NPC_WEST_FROSTWOLF_WARMASTER:
- DoCast(me, SPELL_WEST_FROSTWOLF_WARMASTER);
- break;
- case NPC_ICEBLOOD_WARMASTER:
- DoCast(me, SPELL_ICEBLOOD_WARMASTER);
- break;
- case NPC_TOWER_POINT_WARMASTER:
- DoCast(me, SPELL_TOWER_POINT_WARMASTER);
- break;
- }
+ for (uint8 i = 0; i < MAX_SPELL_PAIRS; ++i)
+ if (_auraPairs[i].npcEntry == me->GetEntry())
+ DoCast(me, _auraPairs[i].spellId);
- bHasAura = true;
+ _hasAura = true;
}
if (!UpdateVictim())
return;
- if (ChargeTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CHARGE);
- ChargeTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
- } else ChargeTimer -= diff;
-
- if (CleaveTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_CLEAVE);
- CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
- } else CleaveTimer -= diff;
-
- if (DemoralizingShoutTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_DEMORALIZING_SHOUT);
- DemoralizingShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
- } else DemoralizingShoutTimer -= diff;
+ events.Update(diff);
- if (Whirlwind1Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_WHIRLWIND1);
- Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
- } else Whirlwind1Timer -= diff;
-
- if (Whirlwind2Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_WHIRLWIND2);
- Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
- } else Whirlwind2Timer -= diff;
-
- if (EnrageTimer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ENRAGE);
- EnrageTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
- }else EnrageTimer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- // check if creature is not outside of building
- if (ResetTimer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
- EnterEvadeMode();
- ResetTimer = 5 * IN_MILLISECONDS;
- } else ResetTimer -= diff;
+ switch (eventId)
+ {
+ case EVENT_CHARGE_TARGET:
+ DoCast(me->getVictim(), SPELL_CHARGE);
+ events.ScheduleEvent(EVENT_CHARGE, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
+ break;
+ case EVENT_CLEAVE:
+ DoCast(me->getVictim(), SPELL_CLEAVE);
+ events.ScheduleEvent(EVENT_CLEAVE, urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS));
+ break;
+ case EVENT_DEMORALIZING_SHOUT:
+ DoCast(me, SPELL_DEMORALIZING_SHOUT);
+ events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS));
+ break;
+ case EVENT_WHIRLWIND:
+ DoCast(me, SPELL_WHIRLWIND);
+ events.ScheduleEvent(EVENT_WHIRLWIND, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
+ break;
+ case EVENT_ENRAGE:
+ DoCast(me, SPELL_ENRAGE);
+ events.ScheduleEvent(EVENT_ENRAGE, urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS));
+ break;
+ case EVENT_CHECK_RESET:
+ {
+ Position const& _homePosition = me->GetHomePosition();
+ if (me->GetDistance2d(_homePosition.GetPositionX(), _homePosition.GetPositionY()) > 50.0f)
+ {
+ EnterEvadeMode();
+ return;
+ }
+ events.ScheduleEvent(EVENT_CHECK_RESET, 5000);
+ break;
+ }
+ }
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ EventMap events;
+ bool _hasAura;
};
CreatureAI* GetAI(Creature* creature) const
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
index fdb6a5da320..af61c723ca3 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
@@ -22,8 +22,8 @@ enum Yells
{
YELL_AGGRO = 0,
YELL_EVADE = 1,
- YELL_RESPAWN1 = -1810010, // no creature_text
- YELL_RESPAWN2 = -1810011, // no creature_text
+ //YELL_RESPAWN1 = -1810010, // Missing in database
+ //YELL_RESPAWN2 = -1810011, // Missing in database
YELL_RANDOM = 2,
YELL_SPELL = 3,
};
@@ -64,12 +64,6 @@ public:
Talk(YELL_AGGRO);
}
- void JustRespawned()
- {
- Reset();
- DoScriptText(RAND(YELL_RESPAWN1, YELL_RESPAWN2), me);
- }
-
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
index 263897edfad..5b5787b2ab8 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
@@ -20,6 +20,8 @@
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "blackrock_depths.h"
+#include "Player.h"
+#include "WorldSession.h"
//go_shadowforge_brazier
class go_shadowforge_brazier : public GameObjectScript
@@ -99,12 +101,12 @@ public:
// npc_grimstone
enum GrimstoneTexts
{
- SCRIPT_TEXT1 = -1230003,
- SCRIPT_TEXT2 = -1230004,
- SCRIPT_TEXT3 = -1230005,
- SCRIPT_TEXT4 = -1230006,
- SCRIPT_TEXT5 = -1230007,
- SCRIPT_TEXT6 = -1230008
+ SAY_TEXT1 = 0,
+ SAY_TEXT2 = 1,
+ SAY_TEXT3 = 2,
+ SAY_TEXT4 = 3,
+ SAY_TEXT5 = 4,
+ SAY_TEXT6 = 5
};
//TODO: implement quest part of event (different end boss)
@@ -184,12 +186,12 @@ public:
switch (waypointId)
{
case 0:
- DoScriptText(SCRIPT_TEXT1, me);//2
+ Talk(SAY_TEXT1);
CanWalk = false;
Event_Timer = 5000;
break;
case 1:
- DoScriptText(SCRIPT_TEXT2, me);//4
+ Talk(SAY_TEXT2);
CanWalk = false;
Event_Timer = 5000;
break;
@@ -197,10 +199,10 @@ public:
CanWalk = false;
break;
case 3:
- DoScriptText(SCRIPT_TEXT3, me);//5
+ Talk(SAY_TEXT3);
break;
case 4:
- DoScriptText(SCRIPT_TEXT4, me);//6
+ Talk(SAY_TEXT4);
CanWalk = false;
Event_Timer = 5000;
break;
@@ -270,7 +272,7 @@ public:
switch (EventPhase)
{
case 0:
- DoScriptText(SCRIPT_TEXT5, me);//1
+ Talk(SAY_TEXT5);
HandleGameObject(DATA_ARENA4, false);
Start(false, false);
CanWalk = true;
@@ -305,7 +307,7 @@ public:
case 7:
me->SetVisible(true);
HandleGameObject(DATA_ARENA1, false);
- DoScriptText(SCRIPT_TEXT6, me);//4
+ Talk(SAY_TEXT6);
CanWalk = true;
Event_Timer = 0;
break;
@@ -1176,7 +1178,7 @@ public:
// npc_rocknot
enum RocknotSays
{
- SAY_GOT_BEER = -1230000
+ SAY_GOT_BEER = 0
};
enum RocknotSpells
@@ -1213,7 +1215,7 @@ public:
//keep track of amount in instance script, returns SPECIAL if amount ok and event in progress
if (instance->GetData(TYPE_BAR) == SPECIAL)
{
- DoScriptText(SAY_GOT_BEER, creature);
+ creature->AI()->Talk(SAY_GOT_BEER);
creature->CastSpell(creature, SPELL_DRUNKEN_RAGE, false);
if (npc_escortAI* escortAI = CAST_AI(npc_rocknot::npc_rocknotAI, creature->AI()))
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
index 204fa3177e7..bad4d8735b7 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
@@ -22,8 +22,8 @@
enum Yells
{
- SAY_AGGRO = -1230001,
- SAY_SLAY = -1230002
+ SAY_AGGRO = 0,
+ SAY_SLAY = 1
};
enum Spells
@@ -63,13 +63,13 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
me->CallForHelp(VISIBLE_RANGE);
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_SLAY, me);
+ Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
index 40f8b2507e3..2aab7739d8d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
@@ -19,10 +19,11 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-enum Spells
+enum Grizzle
{
- SPELL_GROUNDTREMOR = 6524,
- SPELL_FRENZY = 28371
+ SPELL_GROUNDTREMOR = 6524,
+ SPELL_FRENZY = 28371,
+ EMOTE_FRENZY_KILL = 0
};
class boss_grizzle : public CreatureScript
@@ -69,7 +70,7 @@ public:
if (Frenzy_Timer <= diff)
{
DoCast(me, SPELL_FRENZY);
- DoScriptText(EMOTE_GENERIC_FRENZY_KILL, me);
+ Talk(EMOTE_FRENZY_KILL);
Frenzy_Timer = 15000;
} else Frenzy_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
index 347aff2ce0b..ecdcb4b0b82 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
@@ -20,6 +20,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "blackrock_depths.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
index 0d02e4495a5..2c2ae3a79c5 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
@@ -273,7 +273,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -298,7 +298,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
index fdb73fe1196..124743174b6 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
@@ -222,7 +222,7 @@ public:
}
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
index ceca6330152..d05b6220441 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
@@ -28,8 +28,8 @@ EndScriptData */
enum Say
{
- SAY_AGGRO = -1469000,
- SAY_LEASH = -1469001
+ SAY_AGGRO = 0,
+ SAY_LEASH = 1,
};
enum Spells
@@ -69,7 +69,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
DoZoneInCombat();
}
@@ -110,7 +110,7 @@ public:
} else KnockBack_Timer -= diff;
if (EnterEvadeIfOutOfCombatArea(diff))
- DoScriptText(SAY_LEASH, me);
+ Talk(SAY_LEASH);
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
index 9beb3bb10fe..8f12ab3f2e8 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
@@ -28,8 +28,8 @@ EndScriptData */
enum Emotes
{
- EMOTE_FRENZY = -1469002,
- EMOTE_SHIMMER = -1469003
+ EMOTE_FRENZY = 0,
+ EMOTE_SHIMMER = 1,
};
enum Spells
@@ -219,7 +219,7 @@ public:
DoCast(me, spell);
CurrentVurln_Spell = spell;
- DoScriptText(EMOTE_SHIMMER, me);
+ Talk(EMOTE_SHIMMER);
Shimmer_Timer = 45000;
} else Shimmer_Timer -= diff;
@@ -280,7 +280,7 @@ public:
if (Frenzy_Timer <= diff)
{
DoCast(me, SPELL_FRENZY);
- DoScriptText(EMOTE_FRENZY, me);
+ Talk(EMOTE_FRENZY);
Frenzy_Timer = urand(10000, 15000);
} else Frenzy_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp
index e84ccd0e160..b191d2fbb02 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_flamegor.cpp
@@ -28,7 +28,7 @@ EndScriptData */
enum Emotes
{
- EMOTE_FRENZY = -1469031
+ EMOTE_FRENZY = 0,
};
enum Spells
@@ -93,7 +93,7 @@ public:
//Frenzy_Timer
if (Frenzy_Timer <= diff)
{
- DoScriptText(EMOTE_FRENZY, me);
+ Talk(EMOTE_FRENZY);
DoCast(me, SPELL_FRENZY);
Frenzy_Timer = urand(8000, 10000);
} else Frenzy_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
index 787fbe5312b..5a3c72054b4 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
@@ -28,22 +28,20 @@ EndScriptData */
enum Say
{
- SAY_AGGRO = -1469007,
- SAY_XHEALTH = -1469008,
- SAY_SHADOWFLAME = -1469009,
- SAY_RAISE_SKELETONS = -1469010,
- SAY_SLAY = -1469011,
- SAY_DEATH = -1469012,
-
- SAY_MAGE = -1469013,
- SAY_WARRIOR = -1469014,
- SAY_DRUID = -1469015,
- SAY_PRIEST = -1469016,
- SAY_PALADIN = -1469017,
- SAY_SHAMAN = -1469018,
- SAY_WARLOCK = -1469019,
- SAY_HUNTER = -1469020,
- SAY_ROGUE = -1469021
+ SAY_RANDOM = 0,
+ SAY_RAISE_SKELETONS = 1,
+ SAY_SLAY = 2,
+ SAY_DEATH = 3,
+
+ SAY_MAGE = 4,
+ SAY_WARRIOR = 5,
+ SAY_DRUID = 6,
+ SAY_PRIEST = 7,
+ SAY_PALADIN = 8,
+ SAY_SHAMAN = 9,
+ SAY_WARLOCK = 10,
+ SAY_HUNTER = 11,
+ SAY_ROGUE = 12,
};
enum Spells
@@ -109,17 +107,17 @@ public:
if (rand()%5)
return;
- DoScriptText(SAY_SLAY, me, Victim);
+ Talk(SAY_SLAY, Victim->GetGUID());
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
}
void EnterCombat(Unit* who)
{
- DoScriptText(RAND(SAY_XHEALTH, SAY_AGGRO, SAY_SHADOWFLAME), me);
+ Talk(SAY_RANDOM);
DoCast(who, SPELL_SHADOWFLAME_INITIAL);
DoZoneInCombat();
@@ -184,39 +182,39 @@ public:
switch (urand(0, 8))
{
case 0:
- DoScriptText(SAY_MAGE, me);
+ Talk(SAY_MAGE);
DoCast(me, SPELL_MAGE);
break;
case 1:
- DoScriptText(SAY_WARRIOR, me);
+ Talk(SAY_WARRIOR);
DoCast(me, SPELL_WARRIOR);
break;
case 2:
- DoScriptText(SAY_DRUID, me);
+ Talk(SAY_DRUID);
DoCast(me, SPELL_DRUID);
break;
case 3:
- DoScriptText(SAY_PRIEST, me);
+ Talk(SAY_PRIEST);
DoCast(me, SPELL_PRIEST);
break;
case 4:
- DoScriptText(SAY_PALADIN, me);
+ Talk(SAY_PALADIN);
DoCast(me, SPELL_PALADIN);
break;
case 5:
- DoScriptText(SAY_SHAMAN, me);
+ Talk(SAY_SHAMAN);
DoCast(me, SPELL_SHAMAN);
break;
case 6:
- DoScriptText(SAY_WARLOCK, me);
+ Talk(SAY_WARLOCK);
DoCast(me, SPELL_WARLOCK);
break;
case 7:
- DoScriptText(SAY_HUNTER, me);
+ Talk(SAY_HUNTER);
DoCast(me, SPELL_HUNTER);
break;
case 8:
- DoScriptText(SAY_ROGUE, me);
+ Talk(SAY_ROGUE);
DoCast(me, SPELL_ROGUE);
break;
}
@@ -228,7 +226,7 @@ public:
if (!Phase3 && HealthBelowPct(20))
{
Phase3 = true;
- DoScriptText(SAY_RAISE_SKELETONS, me);
+ Talk(SAY_RAISE_SKELETONS);
}
DoMeleeAttackIfReady();
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
index 04eca3586cc..577516383b2 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
@@ -30,10 +30,10 @@ EndScriptData */
enum Say
{
- SAY_EGGS_BROKEN1 = -1469022,
- SAY_EGGS_BROKEN2 = -1469023,
- SAY_EGGS_BROKEN3 = -1469024,
- SAY_DEATH = -1469025
+ SAY_EGGS_BROKEN1 = 0,
+ SAY_EGGS_BROKEN2 = 1,
+ SAY_EGGS_BROKEN3 = 2,
+ SAY_DEATH = 3,
};
enum Spells
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
index 8cc42baff8e..6ffe30d2c50 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
@@ -26,14 +26,15 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
enum Says
{
- SAY_LINE1 = -1469026,
- SAY_LINE2 = -1469027,
- SAY_LINE3 = -1469028,
- SAY_HALFLIFE = -1469029,
- SAY_KILLTARGET = -1469030
+ SAY_LINE1 = 0,
+ SAY_LINE2 = 1,
+ SAY_LINE3 = 2,
+ SAY_HALFLIFE = 3,
+ SAY_KILLTARGET = 4
};
#define GOSSIP_ITEM "Start Event <Needs Gossip Text>"
@@ -129,7 +130,7 @@ public:
PlayerGUID = target->GetGUID();
//10 seconds
- DoScriptText(SAY_LINE1, me);
+ Talk(SAY_LINE1);
SpeechTimer = 10000;
SpeechNum = 0;
@@ -143,7 +144,7 @@ public:
if (rand()%5)
return;
- DoScriptText(SAY_KILLTARGET, me, victim);
+ Talk(SAY_KILLTARGET, victim->GetGUID());
}
void EnterCombat(Unit* /*who*/)
@@ -166,13 +167,13 @@ public:
{
case 0:
//16 seconds till next line
- DoScriptText(SAY_LINE2, me);
+ Talk(SAY_LINE2);
SpeechTimer = 16000;
++SpeechNum;
break;
case 1:
//This one is actually 16 seconds but we only go to 10 seconds because he starts attacking after he says "I must fight this!"
- DoScriptText(SAY_LINE3, me);
+ Talk(SAY_LINE3);
SpeechTimer = 10000;
++SpeechNum;
break;
@@ -197,7 +198,7 @@ public:
// Yell if hp lower than 15%
if (HealthBelowPct(15) && !HasYelled)
{
- DoScriptText(SAY_HALFLIFE, me);
+ Talk(SAY_HALFLIFE);
HasYelled = true;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
index 30638e9edeb..1335f189286 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
@@ -26,12 +26,13 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
enum Says
{
- SAY_GAMESBEGIN_1 = -1469004,
- SAY_GAMESBEGIN_2 = -1469005,
- SAY_VAEL_INTRO = -1469006 //when he corrupts Vaelastrasz
+ SAY_GAMESBEGIN_1 = 0,
+ SAY_GAMESBEGIN_2 = 1,
+ //SAY_VAEL_INTRO = 2, Not used - when he corrupts Vaelastrasz
};
#define GOSSIP_ITEM_1 "I've made no mistakes."
@@ -100,7 +101,7 @@ public:
break;
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
- DoScriptText(SAY_GAMESBEGIN_1, creature);
+ creature->AI()->Talk(SAY_GAMESBEGIN_1);
CAST_AI(boss_victor_nefarius::boss_victor_nefariusAI, creature->AI())->BeginEvent(player);
break;
}
@@ -237,7 +238,7 @@ public:
void BeginEvent(Player* target)
{
- DoScriptText(SAY_GAMESBEGIN_2, me);
+ Talk(SAY_GAMESBEGIN_2);
//Trinity::Singleton<MapManager>::Instance().GetMap(me->GetMapId(), me)->GetPlayers().begin();
/*
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
index f107fd7c5ec..712f7fbe8c5 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
@@ -35,7 +35,7 @@ enum eSpels
EQUIP_SWORD = 5191,
EQUIP_MACE = 7230,
- SAY_AGGRO = -1036001
+ SAY_AGGRO = 0,
};
class boss_mr_smite : public CreatureScript
@@ -82,7 +82,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
bool bCheckChances()
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
index 888171c5415..5ce55307675 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
@@ -27,6 +27,8 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "deadmines.h"
#include "Spell.h"
+#include "Player.h"
+#include "WorldSession.h"
/*#####
# item_Defias_Gunpowder
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
index 8e0fb9ff411..1b2beb11351 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
@@ -26,6 +26,9 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "deadmines.h"
+#include "TemporarySummon.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
enum Sounds
{
@@ -213,7 +216,7 @@ class instance_deadmines : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -224,7 +227,7 @@ class instance_deadmines : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
@@ -237,16 +240,7 @@ class instance_deadmines : public InstanceMapScript
void DoPlaySound(GameObject* unit, uint32 sound)
{
- WorldPacket data(4);
- data.SetOpcode(SMSG_PLAY_SOUND);
- data << uint32(sound);
- unit->SendMessageToSet(&data, false);
- }
-
- void DoPlaySoundCreature(Unit* unit, uint32 sound)
- {
- WorldPacket data(4);
- data.SetOpcode(SMSG_PLAY_SOUND);
+ WorldPacket data(SMSG_PLAY_SOUND, 4);
data << uint32(sound);
unit->SendMessageToSet(&data, false);
}
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
index 8f79c4973f7..71cd69caeb5 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
@@ -27,6 +27,7 @@ Script Data End */
#include "ScriptedGossip.h"
#include "gnomeregan.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
#define GOSSIP_START_EVENT "I am ready to being"
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
index 931c0bb90fc..8e126fae588 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "gnomeregan.h"
+#include "Player.h"
#define MAX_ENCOUNTER 1
@@ -113,7 +114,7 @@ public:
}
}
- uint32 GetData(uint32 uiType)
+ uint32 GetData(uint32 uiType) const
{
switch (uiType)
{
@@ -122,7 +123,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiType)
+ uint64 GetData64(uint32 uiType) const
{
switch (uiType)
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
index 2c7e1b9c48a..13c70630c7a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
@@ -26,23 +26,27 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SAY_AGGRO -1532057
-#define SAY_SUMMON1 -1532058
-#define SAY_SUMMON2 -1532059
-#define SAY_EVOCATE -1532060
-#define SAY_ENRAGE -1532061
-#define SAY_KILL1 -1532062
-#define SAY_KILL2 -1532063
-#define SAY_DEATH -1532064
-
-//Flare spell info
-#define SPELL_ASTRAL_FLARE_PASSIVE 30234 //Visual effect + Flare damage
-
-//Curator spell info
-#define SPELL_HATEFUL_BOLT 30383
-#define SPELL_EVOCATION 30254
-#define SPELL_ENRAGE 30403 //Arcane Infusion: Transforms Curator and adds damage.
-#define SPELL_BERSERK 26662
+enum Curator
+{
+ SAY_AGGRO = 0,
+ SAY_SUMMON = 1,
+ SAY_EVOCATE = 2,
+ SAY_ENRAGE = 3,
+ SAY_KILL = 4,
+ SAY_DEATH = 5,
+
+ //Flare spell info
+ SPELL_ASTRAL_FLARE_PASSIVE = 30234, //Visual effect + Flare damage
+
+ //Curator spell info
+ SPELL_HATEFUL_BOLT = 30383,
+ SPELL_EVOCATION = 30254,
+ SPELL_ENRAGE = 30403, //Arcane Infusion: Transforms Curator and adds damage.
+ SPELL_BERSERK = 26662,
+};
+
+
+
class boss_curator : public CreatureScript
{
@@ -78,17 +82,17 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
}
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
@@ -109,7 +113,7 @@ public:
}
//may not be correct SAY (generic hard enrage)
- DoScriptText(SAY_ENRAGE, me);
+ Talk(SAY_ENRAGE);
me->InterruptNonMeleeSpells(true);
DoCast(me, SPELL_BERSERK);
@@ -151,7 +155,7 @@ public:
//if this get's us below 10%, then we evocate (the 10th should be summoned now)
if (me->GetPower(POWER_MANA)*100 / me->GetMaxPower(POWER_MANA) < 10)
{
- DoScriptText(SAY_EVOCATE, me);
+ Talk(SAY_EVOCATE);
me->InterruptNonMeleeSpells(false);
DoCast(me, SPELL_EVOCATION);
Evocating = true;
@@ -162,7 +166,7 @@ public:
{
if (urand(0, 1) == 0)
{
- DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
+ Talk(SAY_SUMMON);
}
}
}
@@ -174,7 +178,7 @@ public:
{
Enraged = true;
DoCast(me, SPELL_ENRAGE);
- DoScriptText(SAY_ENRAGE, me);
+ Talk(SAY_ENRAGE);
}
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
index 5f974a890bf..026524108b3 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
@@ -26,19 +26,19 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SAY_AGGRO -1532018
-#define SAY_SLAY1 -1532019
-#define SAY_SLAY2 -1532020
-#define SAY_SLAY3 -1532021
-#define SAY_REPENTANCE1 -1532022
-#define SAY_REPENTANCE2 -1532023
-#define SAY_DEATH -1532024
-
-#define SPELL_REPENTANCE 29511
-#define SPELL_HOLYFIRE 29522
-#define SPELL_HOLYWRATH 32445
-#define SPELL_HOLYGROUND 29512
-#define SPELL_BERSERK 26662
+enum MaidenOfVirtue
+{
+ SAY_AGGRO = 0,
+ SAY_SLAY = 1,
+ SAY_REPENTANCE = 2,
+ SAY_DEATH = 3,
+
+ SPELL_REPENTANCE = 29511,
+ SPELL_HOLYFIRE = 29522,
+ SPELL_HOLYWRATH = 32445,
+ SPELL_HOLYGROUND = 29512,
+ SPELL_BERSERK = 26662,
+};
class boss_maiden_of_virtue : public CreatureScript
{
@@ -76,17 +76,17 @@ public:
void KilledUnit(Unit* /*Victim*/)
{
if (urand(0, 1) == 0)
- DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
+ Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
}
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
@@ -109,7 +109,7 @@ public:
if (Repentance_Timer <= diff)
{
DoCast(me->getVictim(), SPELL_REPENTANCE);
- DoScriptText(RAND(SAY_REPENTANCE1, SAY_REPENTANCE2), me);
+ Talk(SAY_REPENTANCE);
Repentance_Timer = urand(25000, 35000); //A little randomness on that spell
} else Repentance_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index 7eeced1d970..73fefe210df 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -25,27 +25,27 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "SpellInfo.h"
-#define SAY_MIDNIGHT_KILL -1532000
-#define SAY_APPEAR1 -1532001
-#define SAY_APPEAR2 -1532002
-#define SAY_APPEAR3 -1532003
-#define SAY_MOUNT -1532004
-#define SAY_KILL1 -1532005
-#define SAY_KILL2 -1532006
-#define SAY_DISARMED -1532007
-#define SAY_DEATH -1532008
-#define SAY_RANDOM1 -1532009
-#define SAY_RANDOM2 -1532010
-
-#define SPELL_SHADOWCLEAVE 29832
-#define SPELL_INTANGIBLE_PRESENCE 29833
-#define SPELL_BERSERKER_CHARGE 26561 //Only when mounted
-
-#define MOUNTED_DISPLAYID 16040
-
-//Attumen (TODO: Use the summoning spell instead of Creature id. It works, but is not convenient for us)
-#define SUMMON_ATTUMEN 15550
+enum Midnight
+{
+ SAY_MIDNIGHT_KILL = 0,
+ SAY_APPEAR = 1,
+ SAY_MOUNT = 2,
+ SAY_KILL = 3,
+ SAY_DISARMED = 4,
+ SAY_DEATH = 5,
+ SAY_RANDOM = 6,
+
+ SPELL_SHADOWCLEAVE = 29832,
+ SPELL_INTANGIBLE_PRESENCE = 29833,
+ SPELL_BERSERKER_CHARGE = 26561, //Only when mounted
+
+ MOUNTED_DISPLAYID = 16040,
+
+ //Attumen (TODO: Use the summoning spell instead of Creature id. It works, but is not convenient for us)
+ SUMMON_ATTUMEN = 15550,
+};
class boss_attumen : public CreatureScript
{
@@ -93,14 +93,14 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
- if (Unit* pMidnight = Unit::GetUnit(*me, Midnight))
- pMidnight->Kill(pMidnight);
+ Talk(SAY_DEATH);
+ if (Unit* midnight = Unit::GetUnit(*me, Midnight))
+ midnight->Kill(midnight);
}
void UpdateAI(const uint32 diff);
@@ -108,7 +108,7 @@ public:
void SpellHit(Unit* /*source*/, const SpellInfo* spell)
{
if (spell->Mechanic == MECHANIC_DISARM)
- DoScriptText(SAY_DISARMED, me);
+ Talk(SAY_DISARMED);
}
};
};
@@ -148,7 +148,7 @@ public:
if (Phase == 2)
{
if (Unit* unit = Unit::GetUnit(*me, Attumen))
- DoScriptText(SAY_MIDNIGHT_KILL, unit);
+ Talk(SAY_MIDNIGHT_KILL, unit->GetGUID());
}
}
@@ -160,12 +160,12 @@ public:
if (Phase == 1 && HealthBelowPct(95))
{
Phase = 2;
- if (Creature* pAttumen = me->SummonCreature(SUMMON_ATTUMEN, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000))
+ if (Creature* attumen = me->SummonCreature(SUMMON_ATTUMEN, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000))
{
- Attumen = pAttumen->GetGUID();
- pAttumen->AI()->AttackStart(me->getVictim());
- SetMidnight(pAttumen, me->GetGUID());
- DoScriptText(RAND(SAY_APPEAR1, SAY_APPEAR2, SAY_APPEAR3), pAttumen);
+ Attumen = attumen->GetGUID();
+ attumen->AI()->AttackStart(me->getVictim());
+ SetMidnight(attumen, me->GetGUID());
+ Talk(SAY_APPEAR, Attumen);
}
}
else if (Phase == 2 && HealthBelowPct(25))
@@ -203,7 +203,7 @@ public:
void Mount(Unit* pAttumen)
{
- DoScriptText(SAY_MOUNT, pAttumen);
+ Talk(SAY_MOUNT, pAttumen->GetGUID());
Phase = 3;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pAttumen->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -273,7 +273,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff)
if (RandomYellTimer <= diff)
{
- DoScriptText(RAND(SAY_RANDOM1, SAY_RANDOM2), me);
+ Talk(SAY_RANDOM);
RandomYellTimer = urand(30000, 60000);
} else RandomYellTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
index 99f2cb51c85..38eb3289ec4 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
@@ -27,19 +27,20 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "karazhan.h"
-#define SAY_AGGRO -1532011
-#define SAY_SPECIAL_1 -1532012
-#define SAY_SPECIAL_2 -1532013
-#define SAY_KILL_1 -1532014
-#define SAY_KILL_2 -1532015
-#define SAY_KILL_3 -1532016
-#define SAY_DEATH -1532017
-
-#define SPELL_VANISH 29448
-#define SPELL_GARROTE 37066
-#define SPELL_BLIND 34694
-#define SPELL_GOUGE 29425
-#define SPELL_FRENZY 37023
+enum Moroes
+{
+ SAY_AGGRO = 0,
+ SAY_SPECIAL = 1,
+ SAY_KILL = 2,
+ SAY_DEATH = 3,
+
+ SPELL_VANISH = 29448,
+ SPELL_GARROTE = 37066,
+ SPELL_BLIND = 34694,
+ SPELL_GOUGE = 29425,
+ SPELL_FRENZY = 37023,
+};
+
#define POS_Z 81.73f
@@ -124,19 +125,19 @@ public:
{
StartEvent();
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
AddsAttack();
DoZoneInCombat();
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2, SAY_KILL_3), me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_MOROES, DONE);
@@ -294,7 +295,7 @@ public:
{
if (Wait_Timer <= diff)
{
- DoScriptText(RAND(SAY_SPECIAL_1, SAY_SPECIAL_2), me);
+ Talk(SAY_SPECIAL);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
target->CastSpell(target, SPELL_GARROTE, true);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index c6587c3cd8a..37506d9fd0e 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -26,18 +26,23 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "karazhan.h"
+#include "Player.h"
-#define EMOTE_PHASE_PORTAL -1532089
-#define EMOTE_PHASE_BANISH -1532090
+enum Netherspite
+{
+ EMOTE_PHASE_PORTAL = 0,
+ EMOTE_PHASE_BANISH = 1,
+
+ SPELL_NETHERBURN_AURA = 30522,
+ SPELL_VOIDZONE = 37063,
+ SPELL_NETHER_INFUSION = 38688,
+ SPELL_NETHERBREATH = 38523,
+ SPELL_BANISH_VISUAL = 39833,
+ SPELL_BANISH_ROOT = 42716,
+ SPELL_EMPOWERMENT = 38549,
+ SPELL_NETHERSPITE_ROAR = 38684,
+};
-#define SPELL_NETHERBURN_AURA 30522
-#define SPELL_VOIDZONE 37063
-#define SPELL_NETHER_INFUSION 38688
-#define SPELL_NETHERBREATH 38523
-#define SPELL_BANISH_VISUAL 39833
-#define SPELL_BANISH_ROOT 42716
-#define SPELL_EMPOWERMENT 38549
-#define SPELL_NETHERSPITE_ROAR 38684
const float PortalCoord[3][3] =
{
@@ -228,7 +233,7 @@ public:
PortalPhase = true;
PortalTimer = 10000;
EmpowermentTimer = 10000;
- DoScriptText(EMOTE_PHASE_PORTAL, me);
+ Talk(EMOTE_PHASE_PORTAL);
}
void SwitchToBanishPhase()
@@ -240,7 +245,7 @@ public:
DestroyPortals();
PhaseTimer = 30000;
PortalPhase = false;
- DoScriptText(EMOTE_PHASE_BANISH, me);
+ Talk(EMOTE_PHASE_BANISH);
for (int i=0; i<3; ++i)
me->RemoveAurasDueToSpell(NetherBuff[i]);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index d1c4790d705..845a773c108 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -26,19 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "karazhan.h"
-
-#define SAY_AGGRO -1532091
-#define SAY_AXE_TOSS1 -1532092
-#define SAY_AXE_TOSS2 -1532093
-#define SAY_SPECIAL1 -1532094
-#define SAY_SPECIAL2 -1532095
-#define SAY_SPECIAL3 -1532096
-#define SAY_SLAY1 -1532097
-#define SAY_SLAY2 -1532098
-#define SAY_SLAY3 -1532099
-#define SAY_SUMMON1 -1532100
-#define SAY_SUMMON2 -1532101
-#define SAY_DEATH -1532102
+#include "SpellInfo.h"
// 18 Coordinates for Infernal spawns
struct InfernalPoint
@@ -70,31 +58,43 @@ static InfernalPoint InfernalPoints[] =
{-10935.7f, -1996.0f}
};
-#define TOTAL_INFERNAL_POINTS 18
-
//Enfeeble is supposed to reduce hp to 1 and then heal player back to full when it ends
//Along with reducing healing and regen while enfeebled to 0%
//This spell effect will only reduce healing
-
-#define SPELL_ENFEEBLE 30843 //Enfeeble during phase 1 and 2
-#define SPELL_ENFEEBLE_EFFECT 41624
-
-#define SPELL_SHADOWNOVA 30852 //Shadownova used during all phases
-#define SPELL_SW_PAIN 30854 //Shadow word pain during phase 1 and 3 (different targeting rules though)
-#define SPELL_THRASH_PASSIVE 12787 //Extra attack chance during phase 2
-#define SPELL_SUNDER_ARMOR 30901 //Sunder armor during phase 2
-#define SPELL_THRASH_AURA 12787 //Passive proc chance for thrash
-#define SPELL_EQUIP_AXES 30857 //Visual for axe equiping
-#define SPELL_AMPLIFY_DAMAGE 39095 //Amplifiy during phase 3
-#define SPELL_CLEAVE 30131 //Same as Nightbane.
-#define SPELL_HELLFIRE 30859 //Infenals' hellfire aura
-#define NETHERSPITE_INFERNAL 17646 //The netherspite infernal creature
-#define MALCHEZARS_AXE 17650 //Malchezar's axes (creatures), summoned during phase 3
-
-#define INFERNAL_MODEL_INVISIBLE 11686 //Infernal Effects
-#define SPELL_INFERNAL_RELAY 30834
-
-#define EQUIP_ID_AXE 33542 //Axes info
+enum PrinceMalchezaar
+{
+ SAY_AGGRO = 0,
+ SAY_AXE_TOSS1 = 1,
+ SAY_AXE_TOSS2 = 2,
+// SAY_SPECIAL1 = 3, Not used, needs to be implemented, but I don't know where it should be used.
+// SAY_SPECIAL2 = 4, Not used, needs to be implemented, but I don't know where it should be used.
+// SAY_SPECIAL3 = 5, Not used, needs to be implemented, but I don't know where it should be used.
+ SAY_SLAY = 6,
+ SAY_SUMMON = 7,
+ SAY_DEATH = 8,
+
+ TOTAL_INFERNAL_POINTS = 18,
+
+ SPELL_ENFEEBLE = 30843, //Enfeeble during phase 1 and 2
+ SPELL_ENFEEBLE_EFFECT = 41624,
+
+ SPELL_SHADOWNOVA = 30852, //Shadownova used during all phases
+ SPELL_SW_PAIN = 30854, //Shadow word pain during phase 1 and 3 (different targeting rules though)
+ SPELL_THRASH_PASSIVE = 12787, //Extra attack chance during phase 2
+ SPELL_SUNDER_ARMOR = 30901, //Sunder armor during phase 2
+ SPELL_THRASH_AURA = 12787, //Passive proc chance for thrash
+ SPELL_EQUIP_AXES = 30857, //Visual for axe equiping
+ SPELL_AMPLIFY_DAMAGE = 39095, //Amplifiy during phase 3
+ SPELL_CLEAVE = 30131, //Same as Nightbane.
+ SPELL_HELLFIRE = 30859, //Infenals' hellfire aura
+ NETHERSPITE_INFERNAL = 17646, //The netherspite infernal creature
+ MALCHEZARS_AXE = 17650, //Malchezar's axes (creatures), summoned during phase 3
+
+ INFERNAL_MODEL_INVISIBLE = 11686, //Infernal Effects
+ SPELL_INFERNAL_RELAY = 30834,
+
+ EQUIP_ID_AXE = 33542, //Axes info
+};
//---------Infernal code first
class netherspite_infernal : public CreatureScript
@@ -244,12 +244,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
+ Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
AxesCleanup();
ClearWeapons();
@@ -265,7 +265,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
if (instance)
instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), false); // Open the door leading further in
@@ -383,7 +383,7 @@ public:
DoCast(Infernal, SPELL_INFERNAL_RELAY);
}
- DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
+ Talk(SAY_SUMMON);
}
void UpdateAI(const uint32 diff)
@@ -415,7 +415,7 @@ public:
DoCast(me, SPELL_EQUIP_AXES);
//text
- DoScriptText(SAY_AXE_TOSS1, me);
+ Talk(SAY_AXE_TOSS1);
//passive thrash aura
DoCast(me, SPELL_THRASH_AURA, true);
@@ -451,7 +451,7 @@ public:
//remove thrash
me->RemoveAurasDueToSpell(SPELL_THRASH_AURA);
- DoScriptText(SAY_AXE_TOSS2, me);
+ Talk(SAY_AXE_TOSS2);
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
for (uint8 i = 0; i < 2; ++i)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
index 25fafdfcd0d..843220663b7 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -27,52 +27,50 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "karazhan.h"
#include "GameObject.h"
+#include "SpellInfo.h"
-#define SAY_AGGRO1 -1532073
-#define SAY_AGGRO2 -1532074
-#define SAY_AGGRO3 -1532075
-#define SAY_FLAMEWREATH1 -1532076
-#define SAY_FLAMEWREATH2 -1532077
-#define SAY_BLIZZARD1 -1532078
-#define SAY_BLIZZARD2 -1532079
-#define SAY_EXPLOSION1 -1532080
-#define SAY_EXPLOSION2 -1532081
-#define SAY_DRINK -1532082 //Low Mana / AoE Pyroblast
-#define SAY_ELEMENTALS -1532083
-#define SAY_KILL1 -1532084
-#define SAY_KILL2 -1532085
-#define SAY_TIMEOVER -1532086
-#define SAY_DEATH -1532087
-#define SAY_ATIESH -1532088 //Atiesh is equipped by a raid member
-
-//Spells
-#define SPELL_FROSTBOLT 29954
-#define SPELL_FIREBALL 29953
-#define SPELL_ARCMISSLE 29955
-#define SPELL_CHAINSOFICE 29991
-#define SPELL_DRAGONSBREATH 29964
-#define SPELL_MASSSLOW 30035
-#define SPELL_FLAME_WREATH 29946
-#define SPELL_AOE_CS 29961
-#define SPELL_PLAYERPULL 32265
-#define SPELL_AEXPLOSION 29973
-#define SPELL_MASS_POLY 29963
-#define SPELL_BLINK_CENTER 29967
-#define SPELL_ELEMENTALS 29962
-#define SPELL_CONJURE 29975
-#define SPELL_DRINK 30024
-#define SPELL_POTION 32453
-#define SPELL_AOE_PYROBLAST 29978
-
-//Creature Spells
-#define SPELL_CIRCULAR_BLIZZARD 29951 //29952 is the REAL circular blizzard that leaves persistant blizzards that last for 10 seconds
-#define SPELL_WATERBOLT 31012
-#define SPELL_SHADOW_PYRO 29978
-
-//Creatures
-#define CREATURE_WATER_ELEMENTAL 17167
-#define CREATURE_SHADOW_OF_ARAN 18254
-#define CREATURE_ARAN_BLIZZARD 17161
+enum ShadeOfAran
+{
+ SAY_AGGRO = 0,
+ SAY_FLAMEWREATH = 1,
+ SAY_BLIZZARD = 2,
+ SAY_EXPLOSION = 3,
+ SAY_DRINK = 4,
+ SAY_ELEMENTALS = 5,
+ SAY_KILL = 6,
+ SAY_TIMEOVER = 7,
+ SAY_DEATH = 8,
+// SAY_ATIESH = 9, Unused
+
+ //Spells
+ SPELL_FROSTBOLT = 29954,
+ SPELL_FIREBALL = 29953,
+ SPELL_ARCMISSLE = 29955,
+ SPELL_CHAINSOFICE = 29991,
+ SPELL_DRAGONSBREATH = 29964,
+ SPELL_MASSSLOW = 30035,
+ SPELL_FLAME_WREATH = 29946,
+ SPELL_AOE_CS = 29961,
+ SPELL_PLAYERPULL = 32265,
+ SPELL_AEXPLOSION = 29973,
+ SPELL_MASS_POLY = 29963,
+ SPELL_BLINK_CENTER = 29967,
+ SPELL_ELEMENTALS = 29962,
+ SPELL_CONJURE = 29975,
+ SPELL_DRINK = 30024,
+ SPELL_POTION = 32453,
+ SPELL_AOE_PYROBLAST = 29978,
+
+ //Creature Spells
+ SPELL_CIRCULAR_BLIZZARD = 29951,
+ SPELL_WATERBOLT = 31012,
+ SPELL_SHADOW_PYRO = 29978,
+
+ //Creatures
+ CREATURE_WATER_ELEMENTAL = 17167,
+ CREATURE_SHADOW_OF_ARAN = 18254,
+ CREATURE_ARAN_BLIZZARD = 17161,
+};
enum SuperSpell
{
@@ -159,12 +157,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
{
@@ -175,7 +173,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
+ Talk(SAY_AGGRO);
if (instance)
{
@@ -263,7 +261,7 @@ public:
Drinking = true;
me->InterruptNonMeleeSpells(false);
- DoScriptText(SAY_DRINK, me);
+ Talk(SAY_DRINK);
if (!DrinkInturrupted)
{
@@ -383,7 +381,7 @@ public:
switch (LastSuperSpell)
{
case SUPER_AE:
- DoScriptText(RAND(SAY_EXPLOSION1, SAY_EXPLOSION2), me);
+ Talk(SAY_EXPLOSION);
DoCast(me, SPELL_BLINK_CENTER, true);
DoCast(me, SPELL_PLAYERPULL, true);
@@ -392,7 +390,7 @@ public:
break;
case SUPER_FLAME:
- DoScriptText(RAND(SAY_FLAMEWREATH1, SAY_FLAMEWREATH2), me);
+ Talk(SAY_FLAMEWREATH);
FlameWreathTimer = 20000;
FlameWreathCheckTime = 500;
@@ -405,7 +403,7 @@ public:
break;
case SUPER_BLIZZARD:
- DoScriptText(RAND(SAY_BLIZZARD1, SAY_BLIZZARD2), me);
+ Talk(SAY_BLIZZARD);
if (Creature* pSpawn = me->SummonCreature(CREATURE_ARAN_BLIZZARD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 25000))
{
@@ -431,7 +429,7 @@ public:
}
}
- DoScriptText(SAY_ELEMENTALS, me);
+ Talk(SAY_ELEMENTALS);
}
if (BerserkTimer <= diff)
@@ -445,7 +443,7 @@ public:
}
}
- DoScriptText(SAY_TIMEOVER, me);
+ Talk(SAY_TIMEOVER);
BerserkTimer = 60000;
} else BerserkTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index 688a678060f..cb5a1b7b914 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -28,35 +28,36 @@ EndScriptData */
#include "karazhan.h"
#include "PassiveAI.h"
-#define SAY_SLAY1 -1532065
-#define SAY_SLAY2 -1532066
-#define SAY_DEATH -1532067
-#define SAY_AGGRO -1532068
-#define SAY_SACRIFICE1 -1532069
-#define SAY_SACRIFICE2 -1532070
-#define SAY_SUMMON1 -1532071
-#define SAY_SUMMON2 -1532072
-
-#define SPELL_SUMMON_DEMONCHAINS 30120 // Summons demonic chains that maintain the ritual of sacrifice.
-#define SPELL_DEMON_CHAINS 30206 // Instant - Visual Effect
-#define SPELL_ENRAGE 23537 // Increases the caster's attack speed by 50% and the Physical damage it deals by 219 to 281 for 10 min.
-#define SPELL_SHADOW_BOLT 30055 // Hurls a bolt of dark magic at an enemy, inflicting Shadow damage.
-#define SPELL_SACRIFICE 30115 // Teleports and adds the debuff
-#define SPELL_BERSERK 32965 // Increases attack speed by 75%. Periodically casts Shadow Bolt Volley.
-#define SPELL_SUMMON_FIENDISIMP 30184 // Summons a Fiendish Imp.
-#define SPELL_SUMMON_IMP 30066 // Summons Kil'rek
-
-#define SPELL_FIENDISH_PORTAL 30171 // Opens portal and summons Fiendish Portal, 2 sec cast
-#define SPELL_FIENDISH_PORTAL_1 30179 // Opens portal and summons Fiendish Portal, instant cast
-
-#define SPELL_FIREBOLT 30050 // Blasts a target for 150 Fire damage.
-#define SPELL_BROKEN_PACT 30065 // All damage taken increased by 25%.
-#define SPELL_AMPLIFY_FLAMES 30053 // Increases the Fire damage taken by an enemy by 500 for 25 sec.
-
-#define CREATURE_DEMONCHAINS 17248
-#define CREATURE_FIENDISHIMP 17267
-#define CREATURE_PORTAL 17265
-#define CREATURE_KILREK 17229
+enum TerestianIllhoof
+{
+ SAY_SLAY = 1,
+ SAY_DEATH = 2,
+ SAY_AGGRO = 3,
+ SAY_SACRIFICE = 4,
+ SAY_SUMMON = 5,
+
+ SPELL_SUMMON_DEMONCHAINS = 30120, // Summons demonic chains that maintain the ritual of sacrifice.
+ SPELL_DEMON_CHAINS = 30206, // Instant - Visual Effect
+ SPELL_ENRAGE = 23537, // Increases the caster's attack speed by 50% and the Physical damage it deals by 219 to 281 for 10 min.
+ SPELL_SHADOW_BOLT = 30055, // Hurls a bolt of dark magic at an enemy, inflicting Shadow damage.
+ SPELL_SACRIFICE = 30115, // Teleports and adds the debuff
+ SPELL_BERSERK = 32965, // Increases attack speed by 75%. Periodically casts Shadow Bolt Volley.
+ SPELL_SUMMON_FIENDISIMP = 30184, // Summons a Fiendish Imp.
+ SPELL_SUMMON_IMP = 30066, // Summons Kil'rek
+
+ SPELL_FIENDISH_PORTAL = 30171, // Opens portal and summons Fiendish Portal, 2 sec cast
+ SPELL_FIENDISH_PORTAL_1 = 30179, // Opens portal and summons Fiendish Portal, instant cast
+
+ SPELL_FIREBOLT = 30050, // Blasts a target for 150 Fire damage.
+ SPELL_BROKEN_PACT = 30065, // All damage taken increased by 25%.
+ SPELL_AMPLIFY_FLAMES = 30053, // Increases the Fire damage taken by an enemy by 500 for 25 sec.
+
+ CREATURE_DEMONCHAINS = 17248,
+ CREATURE_FIENDISHIMP = 17267,
+ CREATURE_PORTAL = 17265,
+ CREATURE_KILREK = 17229,
+};
+
class mob_kilrek : public CreatureScript
{
@@ -319,7 +320,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void JustSummoned(Creature* summoned)
@@ -331,7 +332,7 @@ public:
if (summoned->GetUInt32Value(UNIT_CREATED_BY_SPELL) == SPELL_FIENDISH_PORTAL_1)
{
- DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
+ Talk(SAY_SUMMON);
SummonedPortals = true;
}
}
@@ -339,7 +340,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
+ Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
@@ -355,7 +356,7 @@ public:
}
}
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_TERESTIAN, DONE);
@@ -378,7 +379,7 @@ public:
{
CAST_AI(mob_demon_chain::mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID();
Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true);
- DoScriptText(RAND(SAY_SACRIFICE1, SAY_SACRIFICE2), me);
+ Talk(SAY_SACRIFICE);
SacrificeTimer = 30000;
}
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index a4f4f603206..7053cbb3ed7 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -27,68 +27,75 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "karazhan.h"
+#include "Player.h"
+#include "SpellInfo.h"
/***********************************/
/*** OPERA WIZARD OF OZ EVENT *****/
/*********************************/
+enum Says
+{
+ SAY_DOROTHEE_DEATH = 0,
+ SAY_DOROTHEE_SUMMON = 1,
+ SAY_DOROTHEE_TITO_DEATH = 2,
+ SAY_DOROTHEE_AGGRO = 3,
+
+ SAY_ROAR_AGGRO = 0,
+ SAY_ROAR_DEATH = 1,
+ SAY_ROAR_SLAY = 2,
+
+ SAY_STRAWMAN_AGGRO = 0,
+ SAY_STRAWMAN_DEATH = 1,
+ SAY_STRAWMAN_SLAY = 2,
+
+ SAY_TINHEAD_AGGRO = 0,
+ SAY_TINHEAD_DEATH = 1,
+ SAY_TINHEAD_SLAY = 2,
+ EMOTE_RUST = 3,
+
+ SAY_CRONE_AGGRO = 0,
+ SAY_CRONE_DEATH = 1,
+ SAY_CRONE_SLAY = 2,
+};
-#define SAY_DOROTHEE_DEATH -1532025
-#define SAY_DOROTHEE_SUMMON -1532026
-#define SAY_DOROTHEE_TITO_DEATH -1532027
-#define SAY_DOROTHEE_AGGRO -1532028
-
-#define SAY_ROAR_AGGRO -1532029
-#define SAY_ROAR_DEATH -1532030
-#define SAY_ROAR_SLAY -1532031
-
-#define SAY_STRAWMAN_AGGRO -1532032
-#define SAY_STRAWMAN_DEATH -1532033
-#define SAY_STRAWMAN_SLAY -1532034
-
-#define SAY_TINHEAD_AGGRO -1532035
-#define SAY_TINHEAD_DEATH -1532036
-#define SAY_TINHEAD_SLAY -1532037
-#define EMOTE_RUST -1532038
-
-#define SAY_CRONE_AGGRO -1532039
-#define SAY_CRONE_AGGRO2 -1532040
-#define SAY_CRONE_DEATH -1532041
-#define SAY_CRONE_SLAY -1532042
-
-/**** Spells ****/
-// Dorothee
-#define SPELL_WATERBOLT 31012
-#define SPELL_SCREAM 31013
-#define SPELL_SUMMONTITO 31014
-
-// Tito
-#define SPELL_YIPPING 31015
-
-// Strawman
-#define SPELL_BRAIN_BASH 31046
-#define SPELL_BRAIN_WIPE 31069
-#define SPELL_BURNING_STRAW 31075
-
-// Tinhead
-#define SPELL_CLEAVE 31043
-#define SPELL_RUST 31086
-
-// Roar
-#define SPELL_MANGLE 31041
-#define SPELL_SHRED 31042
-#define SPELL_FRIGHTENED_SCREAM 31013
-
-// Crone
-#define SPELL_CHAIN_LIGHTNING 32337
-
-// Cyclone
-#define SPELL_KNOCKBACK 32334
-#define SPELL_CYCLONE_VISUAL 32332
+enum Spells
+{
+ // Dorothee
+ SPELL_WATERBOLT = 31012,
+ SPELL_SCREAM = 31013,
+ SPELL_SUMMONTITO = 31014,
+
+ // Tito
+ SPELL_YIPPING = 31015,
+
+ // Strawman
+ SPELL_BRAIN_BASH = 31046,
+ SPELL_BRAIN_WIPE = 31069,
+ SPELL_BURNING_STRAW = 31075,
+
+ // Tinhead
+ SPELL_CLEAVE = 31043,
+ SPELL_RUST = 31086,
+
+ // Roar
+ SPELL_MANGLE = 31041,
+ SPELL_SHRED = 31042,
+ SPELL_FRIGHTENED_SCREAM = 31013,
+
+ // Crone
+ SPELL_CHAIN_LIGHTNING = 32337,
+
+ // Cyclone
+ SPELL_KNOCKBACK = 32334,
+ SPELL_CYCLONE_VISUAL = 32332,
+};
-/** Creature Entries **/
-#define CREATURE_TITO 17548
-#define CREATURE_CYCLONE 18412
-#define CREATURE_CRONE 18168
+enum Creatures
+{
+ CREATURE_TITO = 17548,
+ CREATURE_CYCLONE = 18412,
+ CREATURE_CRONE = 18168,
+};
void SummonCroneIfReady(InstanceScript* instance, Creature* creature)
{
@@ -146,7 +153,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_DOROTHEE_AGGRO, me);
+ Talk(SAY_DOROTHEE_AGGRO);
}
void JustReachedHome()
@@ -158,7 +165,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DOROTHEE_DEATH, me);
+ Talk(SAY_DOROTHEE_DEATH);
if (instance)
SummonCroneIfReady(instance, me);
@@ -251,7 +258,7 @@ public:
if (Dorothee && Dorothee->isAlive())
{
CAST_AI(boss_dorothee::boss_dorotheeAI, Dorothee->AI())->TitoDied = true;
- DoScriptText(SAY_DOROTHEE_TITO_DEATH, Dorothee);
+ Talk(SAY_DOROTHEE_TITO_DEATH, Dorothee->GetGUID());
}
}
}
@@ -276,7 +283,7 @@ void boss_dorothee::boss_dorotheeAI::SummonTito()
{
if (Creature* pTito = me->SummonCreature(CREATURE_TITO, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
{
- DoScriptText(SAY_DOROTHEE_SUMMON, me);
+ Talk(SAY_DOROTHEE_SUMMON);
CAST_AI(mob_tito::mob_titoAI, pTito->AI())->DorotheeGUID = me->GetGUID();
pTito->AI()->AttackStart(me->getVictim());
SummonedTito = true;
@@ -332,7 +339,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_STRAWMAN_AGGRO, me);
+ Talk(SAY_STRAWMAN_AGGRO);
}
void JustReachedHome()
@@ -355,7 +362,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_STRAWMAN_DEATH, me);
+ Talk(SAY_STRAWMAN_DEATH);
if (instance)
SummonCroneIfReady(instance, me);
@@ -363,7 +370,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_STRAWMAN_SLAY, me);
+ Talk(SAY_STRAWMAN_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -434,7 +441,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_TINHEAD_AGGRO, me);
+ Talk(SAY_TINHEAD_AGGRO);
}
void JustReachedHome()
@@ -460,7 +467,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_TINHEAD_DEATH, me);
+ Talk(SAY_TINHEAD_DEATH);
if (instance)
SummonCroneIfReady(instance, me);
@@ -468,7 +475,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_TINHEAD_SLAY, me);
+ Talk(SAY_TINHEAD_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -496,7 +503,7 @@ public:
if (RustTimer <= diff)
{
++RustCount;
- DoScriptText(EMOTE_RUST, me);
+ Talk(EMOTE_RUST);
DoCast(me, SPELL_RUST);
RustTimer = 6000;
} else RustTimer -= diff;
@@ -557,7 +564,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_ROAR_AGGRO, me);
+ Talk(SAY_ROAR_AGGRO);
}
void JustReachedHome()
@@ -567,7 +574,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_ROAR_DEATH, me);
+ Talk(SAY_ROAR_DEATH);
if (instance)
SummonCroneIfReady(instance, me);
@@ -575,7 +582,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_ROAR_SLAY, me);
+ Talk(SAY_ROAR_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -648,16 +655,21 @@ public:
me->DespawnOrUnsummon();
}
+ void KilledUnit(Unit* /*victim*/)
+ {
+ Talk(SAY_CRONE_SLAY);
+ }
+
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(RAND(SAY_CRONE_AGGRO, SAY_CRONE_AGGRO2), me);
+ Talk(SAY_CRONE_AGGRO);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_CRONE_DEATH, me);
+ Talk(SAY_CRONE_DEATH);
if (instance)
{
@@ -742,22 +754,24 @@ public:
/**************************************/
/**** Opera Red Riding Hood Event* ***/
/************************************/
+enum RedRidingHood
+{
+ SAY_WOLF_AGGRO = 0,
+ SAY_WOLF_SLAY = 1,
+ SAY_WOLF_HOOD = 2,
+ SOUND_WOLF_DEATH = 9275,
-/**** Yells for the Wolf ****/
-#define SAY_WOLF_AGGRO -1532043
-#define SAY_WOLF_SLAY -1532044
-#define SAY_WOLF_HOOD -1532045
-#define SOUND_WOLF_DEATH 9275 //Only sound on death, no text.
+ SPELL_LITTLE_RED_RIDING_HOOD = 30768,
+ SPELL_TERRIFYING_HOWL = 30752,
+ SPELL_WIDE_SWIPE = 30761,
+
+ CREATURE_BIG_BAD_WOLF = 17521,
+};
-/**** Spells For The Wolf ****/
-#define SPELL_LITTLE_RED_RIDING_HOOD 30768
-#define SPELL_TERRIFYING_HOWL 30752
-#define SPELL_WIDE_SWIPE 30761
#define GOSSIP_GRANDMA "What phat lewtz you have grandmother?"
-/**** The Wolf's Entry* ***/
-#define CREATURE_BIG_BAD_WOLF 17521
+
class npc_grandmother : public CreatureScript
{
@@ -829,7 +843,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_WOLF_AGGRO, me);
+ Talk(SAY_WOLF_AGGRO);
+ }
+
+ void KilledUnit(Unit* /*victim*/)
+ {
+ Talk(SAY_WOLF_SLAY);
}
void JustReachedHome()
@@ -865,7 +884,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
- DoScriptText(SAY_WOLF_HOOD, me);
+ Talk(SAY_WOLF_HOOD);
DoCast(target, SPELL_LITTLE_RED_RIDING_HOOD, true);
TempThreat = DoGetThreat(target);
if (TempThreat)
@@ -915,41 +934,41 @@ public:
/******** Opera Romeo and Juliet Event* ******/
/********************************************/
-/**** Speech *****/
-#define SAY_JULIANNE_AGGRO -1532046
-#define SAY_JULIANNE_ENTER -1532047
-#define SAY_JULIANNE_DEATH01 -1532048
-#define SAY_JULIANNE_DEATH02 -1532049
-#define SAY_JULIANNE_RESURRECT -1532050
-#define SAY_JULIANNE_SLAY -1532051
-
-#define SAY_ROMULO_AGGRO -1532052
-#define SAY_ROMULO_DEATH -1532053
-#define SAY_ROMULO_ENTER -1532054
-#define SAY_ROMULO_RESURRECT -1532055
-#define SAY_ROMULO_SLAY -1532056
-
-/***** Spells For Julianne *****/
-#define SPELL_BLINDING_PASSION 30890
-#define SPELL_DEVOTION 30887
-#define SPELL_ETERNAL_AFFECTION 30878
-#define SPELL_POWERFUL_ATTRACTION 30889
-#define SPELL_DRINK_POISON 30907
-
-/***** Spells For Romulo ****/
-#define SPELL_BACKWARD_LUNGE 30815
-#define SPELL_DARING 30841
-#define SPELL_DEADLY_SWATHE 30817
-#define SPELL_POISON_THRUST 30822
-
-/**** Other Misc. Spells ****/
-#define SPELL_UNDYING_LOVE 30951
-#define SPELL_RES_VISUAL 24171
-
-/*** Misc. Information ****/
-#define CREATURE_ROMULO 17533
-#define ROMULO_X -10900
-#define ROMULO_Y -1758
+enum JulianneRomulo
+{
+ /**** Speech *****/
+ SAY_JULIANNE_AGGRO = 0,
+ SAY_JULIANNE_ENTER = 1,
+ SAY_JULIANNE_DEATH01 = 2,
+ SAY_JULIANNE_DEATH02 = 3,
+ SAY_JULIANNE_RESURRECT = 4,
+ SAY_JULIANNE_SLAY = 5,
+
+ SAY_ROMULO_AGGRO = 0,
+ SAY_ROMULO_DEATH = 1,
+ SAY_ROMULO_ENTER = 2,
+ SAY_ROMULO_RESURRECT = 3,
+ SAY_ROMULO_SLAY = 4,
+
+ SPELL_BLINDING_PASSION = 30890,
+ SPELL_DEVOTION = 30887,
+ SPELL_ETERNAL_AFFECTION = 30878,
+ SPELL_POWERFUL_ATTRACTION = 30889,
+ SPELL_DRINK_POISON = 30907,
+
+ SPELL_BACKWARD_LUNGE = 30815,
+ SPELL_DARING = 30841,
+ SPELL_DEADLY_SWATHE = 30817,
+ SPELL_POISON_THRUST = 30822,
+
+ SPELL_UNDYING_LOVE = 30951,
+ SPELL_RES_VISUAL = 24171,
+
+ CREATURE_ROMULO = 17533,
+ ROMULO_X = -10900,
+ ROMULO_Y = -1758,
+};
+
enum RAJPhase
{
@@ -1076,7 +1095,7 @@ public:
{
if (Spell->Id == SPELL_DRINK_POISON)
{
- DoScriptText(SAY_JULIANNE_DEATH01, me);
+ Talk(SAY_JULIANNE_DEATH01);
DrinkPoisonTimer = 2500;
}
}
@@ -1085,7 +1104,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_JULIANNE_DEATH02, me);
+ Talk(SAY_JULIANNE_DEATH02);
if (instance)
{
@@ -1099,7 +1118,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_JULIANNE_SLAY, me);
+ Talk(SAY_JULIANNE_SLAY);
}
void UpdateAI(const uint32 diff);
@@ -1170,7 +1189,7 @@ public:
if (Phase == PHASE_ROMULO)
{
- DoScriptText(SAY_ROMULO_DEATH, me);
+ Talk(SAY_ROMULO_DEATH);
PretendToDie(me);
IsFakingDeath = true;
Phase = PHASE_BOTH;
@@ -1217,7 +1236,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_ROMULO_AGGRO, me);
+ Talk(SAY_ROMULO_AGGRO);
if (JulianneGUID)
{
Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID));
@@ -1239,7 +1258,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_ROMULO_DEATH, me);
+ Talk(SAY_ROMULO_DEATH);
if (instance)
{
@@ -1254,7 +1273,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_ROMULO_SLAY, me);
+ Talk(SAY_ROMULO_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -1269,7 +1288,7 @@ public:
Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID));
if (Julianne && CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->IsFakingDeath)
{
- DoScriptText(SAY_ROMULO_RESURRECT, me);
+ Talk(SAY_ROMULO_RESURRECT);
Resurrect(Julianne);
CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->IsFakingDeath = false;
JulianneDead = false;
@@ -1318,7 +1337,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
{
if (EntryYellTimer <= diff)
{
- DoScriptText(SAY_JULIANNE_ENTER, me);
+ Talk(SAY_JULIANNE_ENTER);
EntryYellTimer = 0;
} else EntryYellTimer -= diff;
}
@@ -1327,7 +1346,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
{
if (AggroYellTimer <= diff)
{
- DoScriptText(SAY_JULIANNE_AGGRO, me);
+ Talk(SAY_JULIANNE_AGGRO);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->setFaction(16);
AggroYellTimer = 0;
@@ -1389,7 +1408,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID));
if (Romulo && CAST_AI(boss_romulo::boss_romuloAI, Romulo->AI())->IsFakingDeath)
{
- DoScriptText(SAY_JULIANNE_RESURRECT, me);
+ Talk(SAY_JULIANNE_RESURRECT);
Resurrect(Romulo);
CAST_AI(boss_romulo::boss_romuloAI, Romulo->AI())->IsFakingDeath = false;
RomuloDead = false;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
index 2ecd98cbc4c..2937d0ab700 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp
@@ -241,7 +241,7 @@ public:
return strSaveData;
}
- uint32 GetData(uint32 uiData)
+ uint32 GetData(uint32 uiData) const
{
switch (uiData)
{
@@ -264,7 +264,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData)
+ uint64 GetData64(uint32 uiData) const
{
switch (uiData)
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index 3bdfeab30da..660b8f6c460 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -34,6 +34,7 @@ EndContentData */
#include "ScriptedGossip.h"
#include "karazhan.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
# npc_barnesAI
@@ -62,26 +63,26 @@ struct Dialogue
static Dialogue OzDialogue[]=
{
- {-1532103, 6000},
- {-1532104, 18000},
- {-1532105, 9000},
- {-1532106, 15000}
+ {0, 6000},
+ {1, 18000},
+ {2, 9000},
+ {3, 15000}
};
static Dialogue HoodDialogue[]=
{
- {-1532107, 6000},
- {-1532108, 10000},
- {-1532109, 14000},
- {-1532110, 15000}
+ {4, 6000},
+ {5, 10000},
+ {6, 14000},
+ {7, 15000}
};
static Dialogue RAJDialogue[]=
{
- {-1532111, 5000},
- {-1532112, 7000},
- {-1532113, 14000},
- {-1532114, 14000}
+ {8, 5000},
+ {9, 7000},
+ {10, 14000},
+ {11, 14000}
};
// Entries and spawn locations for creatures in Oz event
@@ -224,7 +225,8 @@ public:
}
if (text)
- DoScriptText(text, me);
+ CreatureAI::Talk(text);
+
}
void PrepareEncounter()
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index e21a84d9499..22a26fd4389 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -27,46 +27,57 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "magisters_terrace.h"
#include "WorldPacket.h"
+#include "Opcodes.h"
-#define SAY_AGGRO -1585023 //This yell should be done when the room is cleared. For now, set it as a movelineofsight yell.
-#define SAY_PHOENIX -1585024
-#define SAY_FLAMESTRIKE -1585025
-#define SAY_GRAVITY_LAPSE -1585026
-#define SAY_TIRED -1585027
-#define SAY_RECAST_GRAVITY -1585028
-#define SAY_DEATH -1585029
+enum Says
+{
+ SAY_AGGRO = 0, //This yell should be done when the room is cleared. For now, set it as a movelineofsight yell.
+ SAY_PHOENIX = 1,
+ SAY_FLAMESTRIKE = 2,
+ SAY_GRAVITY_LAPSE = 3,
+ SAY_TIRED = 4,
+ SAY_RECAST_GRAVITY = 5,
+ SAY_DEATH = 6
+};
-/*** Spells ***/
-// Phase 1 spells
-#define SPELL_FIREBALL_NORMAL 44189 // Deals 2700-3300 damage at current target
-#define SPELL_FIREBALL_HEROIC 46164 // 4950-6050
+enum Spells
+{
+ // Phase 1 spells
+ SPELL_FIREBALL_NORMAL = 44189, // Deals 2700-3300 damage at current target
+ SPELL_FIREBALL_HEROIC = 46164, // 4950-6050
-#define SPELL_PHOENIX 44194 // Summons a phoenix (Doesn't work?)
-#define SPELL_PHOENIX_BURN 44197 // A spell Phoenix uses to damage everything around
-#define SPELL_REBIRTH_DMG 44196 // DMG if a Phoenix rebirth happen
+ SPELL_PHOENIX = 44194, // Summons a phoenix (Doesn't work?)
+ SPELL_PHOENIX_BURN = 44197, // A spell Phoenix uses to damage everything around
+ SPELL_REBIRTH_DMG = 44196, // DMG if a Phoenix rebirth happen
-#define SPELL_FLAMESTRIKE1_NORMAL 44190 // Damage part
-#define SPELL_FLAMESTRIKE1_HEROIC 46163 // Heroic damage part
-#define SPELL_FLAMESTRIKE2 44191 // Flamestrike indicator before the damage
-#define SPELL_FLAMESTRIKE3 44192 // Summons the trigger + animation (projectile)
+ SPELL_FLAMESTRIKE1_NORMAL = 44190, // Damage part
+ SPELL_FLAMESTRIKE1_HEROIC = 46163, // Heroic damage part
+ SPELL_FLAMESTRIKE2 = 44191, // Flamestrike indicator before the damage
+ SPELL_FLAMESTRIKE3 = 44192, // Summons the trigger + animation (projectile)
-#define SPELL_SHOCK_BARRIER 46165 // Heroic only; 10k damage shield, followed by Pyroblast
-#define SPELL_PYROBLAST 36819 // Heroic only; 45-55k fire damage
+ SPELL_SHOCK_BARRIER = 46165, // Heroic only; 10k damage shield, followed by Pyroblast
+ SPELL_PYROBLAST = 36819, // Heroic only; 45-55k fire damage
// Phase 2 spells
-#define SPELL_GRAVITY_LAPSE_INITIAL 44224 // Cast at the beginning of every Gravity Lapse
-#define SPELL_GRAVITY_LAPSE_CHANNEL 44251 // Channeled; blue beam animation to every enemy in range
-#define SPELL_TELEPORT_CENTER 44218 // Should teleport people to the center. Requires DB entry in spell_target_position.
-#define SPELL_GRAVITY_LAPSE_FLY 44227 // Hastens flyspeed and allows flying for 1 minute. For some reason removes 44226.
-#define SPELL_GRAVITY_LAPSE_DOT 44226 // Knocks up in the air and applies a 300 DPS DoT.
-#define SPELL_ARCANE_SPHERE_PASSIVE 44263 // Passive auras on Arcane Spheres
-#define SPELL_POWER_FEEDBACK 44233 // Stuns him, making him take 50% more damage for 10 seconds. Cast after Gravity Lapse
-
-/*** Creatures ***/
-#define CREATURE_PHOENIX 24674
-#define CREATURE_PHOENIX_EGG 24675
-#define CREATURE_ARCANE_SPHERE 24708
+ SPELL_GRAVITY_LAPSE_INITIAL = 44224, // Cast at the beginning of every Gravity Lapse
+ SPELL_GRAVITY_LAPSE_CHANNEL = 44251, // Channeled; blue beam animation to every enemy in range
+ SPELL_TELEPORT_CENTER = 44218, // Should teleport people to the center. Requires DB entry in spell_target_position.
+ SPELL_GRAVITY_LAPSE_FLY = 44227, // Hastens flyspeed and allows flying for 1 minute. For some reason removes 44226.
+ SPELL_GRAVITY_LAPSE_DOT = 44226, // Knocks up in the air and applies a 300 DPS DoT.
+ SPELL_ARCANE_SPHERE_PASSIVE = 44263, // Passive auras on Arcane Spheres
+ SPELL_POWER_FEEDBACK = 44233 // Stuns him, making him take 50% more damage for 10 seconds. Cast after Gravity Lapse
+};
+
+
+
+enum Creatures
+{
+ CREATURE_PHOENIX = 24674,
+ CREATURE_PHOENIX_EGG = 24675,
+ CREATURE_ARCANE_SPHERE = 24708
+};
+
/** Locations **/
float KaelLocations[3][2]=
@@ -140,27 +151,21 @@ public:
Phase = 0;
if (instance)
- {
instance->SetData(DATA_KAELTHAS_EVENT, NOT_STARTED);
- instance->HandleGameObject(instance->GetData64(DATA_KAEL_DOOR), true);
- // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here)
- // Small door opened after event are expected to be closed by default
- }
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (!instance)
return;
- // Open the encounter door
- instance->HandleGameObject(instance->GetData64(DATA_KAEL_DOOR), true);
+ instance->SetData(DATA_KAELTHAS_EVENT, DONE);
// Enable the Translocation Orb Exit
if (GameObject* escapeOrb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ESCAPE_ORB)))
- escapeOrb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ escapeOrb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
void DamageTaken(Unit* /*done_by*/, uint32 &damage)
@@ -173,16 +178,15 @@ public:
{
if (!instance)
return;
-
- //Close the encounter door, open it in JustDied/Reset
- instance->HandleGameObject(instance->GetData64(DATA_KAEL_DOOR), false);
+
+ instance->SetData(DATA_KAELTHAS_EVENT, IN_PROGRESS);
}
void MoveInLineOfSight(Unit* who)
{
if (!HasTaunted && me->IsWithinDistInMap(who, 40.0f))
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
HasTaunted = true;
}
@@ -248,8 +252,7 @@ public:
// Also needs an exception in spell system.
unit->CastSpell(unit, SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, me->GetGUID());
// Use packet hack
- WorldPacket data(12);
- data.SetOpcode(SMSG_MOVE_SET_CAN_FLY);
+ WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12);
data.append(unit->GetPackGUID());
data << uint32(0);
unit->SendMessageToSet(&data, true);
@@ -269,8 +272,7 @@ public:
unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY);
unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT);
- WorldPacket data(12);
- data.SetOpcode(SMSG_MOVE_UNSET_CAN_FLY);
+ WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12);
data.append(unit->GetPackGUID());
data << uint32(0);
unit->SendMessageToSet(&data, true);
@@ -323,7 +325,7 @@ public:
Phoenix->AI()->AttackStart(target);
}
- DoScriptText(SAY_PHOENIX, me);
+ Talk(SAY_PHOENIX);
PhoenixTimer = 60000;
} else PhoenixTimer -= diff;
@@ -335,7 +337,7 @@ public:
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
me->InterruptSpell(CURRENT_GENERIC_SPELL);
DoCast(target, SPELL_FLAMESTRIKE3, true);
- DoScriptText(SAY_FLAMESTRIKE, me);
+ Talk(SAY_FLAMESTRIKE);
}
FlameStrikeTimer = urand(15000, 25000);
} else FlameStrikeTimer -= diff;
@@ -365,18 +367,14 @@ public:
case 0:
if (FirstGravityLapse) // Different yells at 50%, and at every following Gravity Lapse
{
- DoScriptText(SAY_GRAVITY_LAPSE, me);
+ Talk(SAY_GRAVITY_LAPSE);
FirstGravityLapse = false;
if (instance)
- {
- instance->HandleGameObject(instance->GetData64(DATA_KAEL_STATUE_LEFT), true);
- instance->HandleGameObject(instance->GetData64(DATA_KAEL_STATUE_RIGHT), true);
- }
- }else
- {
- DoScriptText(SAY_RECAST_GRAVITY, me);
+ instance->SetData(DATA_KAELTHAS_STATUES, 1);
}
+ else
+ Talk(SAY_RECAST_GRAVITY);
DoCast(me, SPELL_GRAVITY_LAPSE_INITIAL);
GravityLapseTimer = 2000 + diff;// Don't interrupt the visual spell
@@ -419,7 +417,7 @@ public:
case 4:
me->InterruptNonMeleeSpells(false);
- DoScriptText(SAY_TIRED, me);
+ Talk(SAY_TIRED);
DoCast(me, SPELL_POWER_FEEDBACK);
RemoveGravityLapse();
GravityLapseTimer = 10000;
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
index 2af417381a5..b2cf2336024 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
@@ -34,25 +34,25 @@ struct Speech
static Speech LackeyDeath[]=
{
- {-1585013},
- {-1585014},
- {-1585015},
- {-1585016},
+ {1},
+ {2},
+ {3},
+ {4},
};
static Speech PlayerDeath[]=
{
- {-1585017},
- {-1585018},
- {-1585019},
- {-1585020},
- {-1585021},
+ {5},
+ {6},
+ {7},
+ {8},
+ {9},
};
enum eEnums
{
- SAY_AGGRO = -1585012,
- SAY_DEATH = -1585022,
+ SAY_AGGRO = 0,
+ SAY_DEATH = 10,
SPELL_DISPEL_MAGIC = 27609,
SPELL_FLASH_HEAL = 17843,
@@ -144,7 +144,7 @@ public:
void EnterCombat(Unit* who)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)
{
@@ -216,7 +216,7 @@ public:
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
- DoScriptText(PlayerDeath[PlayersKilled].id, me);
+ Talk(PlayerDeath[PlayersKilled].id);
if (PlayersKilled < 4)
++PlayersKilled;
@@ -224,7 +224,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (!instance)
return;
@@ -415,7 +415,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
return;
//should delrissa really yell if dead?
- DoScriptText(LackeyDeath[uiLackeyDeathCount].id, pDelrissa);
+ pDelrissa->AI()->Talk(LackeyDeath[uiLackeyDeathCount].id);
instance->SetData(DATA_DELRISSA_DEATH_COUNT, SPECIAL);
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
index 430bbb79bde..4d9bd1f2192 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
@@ -27,30 +27,37 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "magisters_terrace.h"
-#define SAY_AGGRO -1585000
-#define SAY_ENERGY -1585001
-#define SAY_EMPOWERED -1585002
-#define SAY_KILL_1 -1585003
-#define SAY_KILL_2 -1585004
-#define SAY_DEATH -1585005
-#define EMOTE_CRYSTAL -1585006
-
-//Crystal effect spells
-#define SPELL_FEL_CRYSTAL_COSMETIC 44374
-#define SPELL_FEL_CRYSTAL_DUMMY 44329
-#define SPELL_FEL_CRYSTAL_VISUAL 44355
-#define SPELL_MANA_RAGE 44320 // This spell triggers 44321, which changes scale and regens mana Requires an entry in spell_script_target
+enum Says
+{
+ SAY_AGGRO = 0,
+ SAY_ENERGY = 1,
+ SAY_EMPOWERED = 2,
+ SAY_KILL = 3,
+ SAY_DEATH = 4,
+ EMOTE_CRYSTAL = 5
+};
-//Selin's spells
-#define SPELL_DRAIN_LIFE 44294
-#define SPELL_FEL_EXPLOSION 44314
+enum Spells
+{
+ //Crystal effect spells
+ SPELL_FEL_CRYSTAL_COSMETIC = 44374,
+ SPELL_FEL_CRYSTAL_DUMMY = 44329,
+ SPELL_FEL_CRYSTAL_VISUAL = 44355,
+ SPELL_MANA_RAGE = 44320, // This spell triggers 44321, which changes scale and regens mana Requires an entry in spell_script_target
-#define SPELL_DRAIN_MANA 46153 // Heroic only
+ //Selin's spells
+ SPELL_DRAIN_LIFE = 44294,
+ SPELL_FEL_EXPLOSION = 44314,
-#define CRYSTALS_NUMBER 5
-#define DATA_CRYSTALS 6
+ SPELL_DRAIN_MANA = 46153 // Heroic only
+};
-#define CREATURE_FEL_CRYSTAL 24722
+enum Misc
+{
+ CRYSTALS_NUMBER = 5,
+ DATA_CRYSTALS = 6,
+ CREATURE_FEL_CRYSTAL = 24722
+};
class boss_selin_fireheart : public CreatureScript
{
@@ -75,6 +82,7 @@ public:
uint32 size = instance->GetData(DATA_FEL_CRYSTAL_SIZE);
for (uint8 i = 0; i < size; ++i)
{
+ instance->SetData64(DATA_FEL_CRYSTAL, i);
uint64 guid = instance->GetData64(DATA_FEL_CRYSTAL);
sLog->outDebug(LOG_FILTER_TSCR, "Selin: Adding Fel Crystal " UI64FMTD " to list", guid);
Crystals.push_back(guid);
@@ -115,10 +123,6 @@ public:
}
}
- instance->HandleGameObject(instance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), true);
- // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here)
- // Small door opened after event are expected to be closed by default
-
// Set Inst data for encounter
instance->SetData(DATA_SELIN_EVENT, NOT_STARTED);
} else sLog->outError(LOG_FILTER_TSCR, ERROR_INST_DATA);
@@ -164,8 +168,8 @@ public:
}
if (CrystalChosen)
{
- DoScriptText(SAY_ENERGY, me);
- DoScriptText(EMOTE_CRYSTAL, me);
+ Talk(SAY_ENERGY);
+ Talk(EMOTE_CRYSTAL);
CrystalChosen->CastSpell(CrystalChosen, SPELL_FEL_CRYSTAL_COSMETIC, true);
@@ -195,16 +199,14 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
-
+ Talk(SAY_AGGRO);
if (instance)
- instance->HandleGameObject(instance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), false);
- //Close the encounter door, open it in JustDied/Reset
+ instance->SetData(DATA_SELIN_EVENT, IN_PROGRESS);
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
+ Talk(SAY_KILL);
}
void MovementInform(uint32 type, uint32 id)
@@ -231,14 +233,12 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (!instance)
return;
instance->SetData(DATA_SELIN_EVENT, DONE); // Encounter complete!
- instance->HandleGameObject(instance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), true); // Open the encounter door
- instance->HandleGameObject(instance->GetData64(DATA_SELIN_DOOR), true); // Open the door leading further in
ShatterRemainingCrystals();
}
@@ -300,7 +300,7 @@ public:
IsDraining = false;
DrainingCrystal = false;
- DoScriptText(SAY_EMPOWERED, me);
+ Talk(SAY_EMPOWERED);
Unit* CrystalChosen = Unit::GetUnit(*me, CrystalGUID);
if (CrystalChosen && CrystalChosen->isAlive())
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
index 34682683ee3..31821623878 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
@@ -29,11 +29,11 @@ EndScriptData */
enum eEnums
{
- SAY_AGGRO = -1585007,
- SAY_ENERGY = -1585008,
- SAY_OVERLOAD = -1585009,
- SAY_KILL = -1585010,
- EMOTE_DISCHARGE_ENERGY = -1585011,
+ SAY_AGGRO = 0,
+ SAY_ENERGY = 1,
+ SAY_OVERLOAD = 2,
+ SAY_KILL = 3,
+ EMOTE_DISCHARGE_ENERGY = 4,
//is this text for real?
//#define SAY_DEATH "What...happen...ed."
@@ -99,7 +99,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_KILL, me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
@@ -110,7 +110,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_VEXALLUS_EVENT, IN_PROGRESS);
@@ -144,8 +144,8 @@ public:
else
++IntervalHealthAmount;
- DoScriptText(SAY_ENERGY, me);
- DoScriptText(EMOTE_DISCHARGE_ENERGY, me);
+ Talk(SAY_ENERGY);
+ Talk(EMOTE_DISCHARGE_ENERGY);
if (IsHeroic())
{
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
index da8b24c3985..c8bf50c0bcc 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
@@ -72,8 +72,7 @@ public:
uint32 Encounter[MAX_ENCOUNTER];
uint32 DelrissaDeathCount;
- std::list<uint64> FelCrystals;
- std::list<uint64>::const_iterator CrystalItr;
+ std::vector<uint64> FelCrystals;
uint64 SelinGUID;
uint64 DelrissaGUID;
@@ -84,8 +83,8 @@ public:
uint64 KaelDoorGUID;
uint64 KaelStatue[2];
uint64 EscapeOrbGUID;
-
- bool InitializedItr;
+ uint32 StatuesState;
+ uint8 felCristalIndex;
void Initialize()
{
@@ -105,8 +104,8 @@ public:
KaelStatue[0] = 0;
KaelStatue[1] = 0;
EscapeOrbGUID = 0;
-
- InitializedItr = false;
+ StatuesState = 0;
+ felCristalIndex = 0;
}
bool IsEncounterInProgress() const
@@ -117,7 +116,7 @@ public:
return false;
}
- uint32 GetData(uint32 identifier)
+ uint32 GetData(uint32 identifier) const
{
switch (identifier)
{
@@ -142,21 +141,35 @@ public:
switch (identifier)
{
case DATA_SELIN_EVENT:
+ if (data == DONE)
+ {
+ HandleGameObject(SelinEncounterDoorGUID, true);
+ HandleGameObject(SelinDoorGUID, true);
+ }
+ else if (data == IN_PROGRESS)
+ HandleGameObject(SelinEncounterDoorGUID, false);
+ else if (data == NOT_STARTED)
+ HandleGameObject(SelinEncounterDoorGUID, true);
+
Encounter[0] = data;
break;
case DATA_VEXALLUS_EVENT:
if (data == DONE)
- DoUseDoorOrButton(VexallusDoorGUID);
+ HandleGameObject(VexallusDoorGUID, true);
Encounter[1] = data;
break;
case DATA_DELRISSA_EVENT:
if (data == DONE)
- DoUseDoorOrButton(DelrissaDoorGUID);
+ HandleGameObject(DelrissaDoorGUID, true);
if (data == IN_PROGRESS)
DelrissaDeathCount = 0;
Encounter[2] = data;
break;
case DATA_KAELTHAS_EVENT:
+ if (data == NOT_STARTED || data == DONE)
+ HandleGameObject(KaelDoorGUID, true);
+ else if (data == IN_PROGRESS)
+ HandleGameObject(KaelDoorGUID, false);
Encounter[3] = data;
break;
case DATA_DELRISSA_DEATH_COUNT:
@@ -165,7 +178,14 @@ public:
else
DelrissaDeathCount = 0;
break;
+ case DATA_KAELTHAS_STATUES:
+ HandleGameObject(KaelStatue[0], data);
+ HandleGameObject(KaelStatue[1], data);
+ StatuesState = data;
+ break;
}
+
+ SaveToDB();
}
void OnCreatureCreate(Creature* creature)
@@ -215,7 +235,45 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << Encounter[0] << ' ' << Encounter[1] << ' ' << Encounter[2] << ' ' << Encounter[3] << ' ' << StatuesState;
+
+ 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);
+
+ std::istringstream loadStream(str);
+
+ for (uint32 i = 0; i < MAX_ENCOUNTER; ++i)
+ {
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetData(i, tmpState);
+ }
+
+ loadStream >> StatuesState;
+ SetData(DATA_KAELTHAS_STATUES, StatuesState);
+
+ OUT_LOAD_INST_DATA_COMPLETE;
+ }
+
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -225,10 +283,6 @@ public:
return DelrissaGUID;
case DATA_VEXALLUS_DOOR:
return VexallusDoorGUID;
- case DATA_SELIN_DOOR:
- return SelinDoorGUID;
- case DATA_SELIN_ENCOUNTER_DOOR:
- return SelinEncounterDoorGUID;
case DATA_DELRISSA_DOOR:
return DelrissaDoorGUID;
case DATA_KAEL_DOOR:
@@ -239,28 +293,23 @@ public:
return KaelStatue[1];
case DATA_ESCAPE_ORB:
return EscapeOrbGUID;
-
case DATA_FEL_CRYSTAL:
- {
- if (FelCrystals.empty())
+ if (FelCrystals.size() < felCristalIndex)
{
sLog->outError(LOG_FILTER_TSCR, "Magisters Terrace: No Fel Crystals loaded in Inst Data");
return 0;
}
- if (!InitializedItr)
- {
- CrystalItr = FelCrystals.begin();
- InitializedItr = true;
- }
-
- uint64 guid = *CrystalItr;
- ++CrystalItr;
- return guid;
- }
+ return FelCrystals.at(felCristalIndex);
}
return 0;
}
+
+ void SetData64(uint32 identifier, uint64 value)
+ {
+ if (identifier == DATA_FEL_CRYSTAL)
+ felCristalIndex = value;
+ }
};
};
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
index 64b6c8d75b2..5925be5f415 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
@@ -30,6 +30,8 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## npc_kalecgos
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
index 660e58d325a..41b847635d7 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
@@ -23,28 +23,26 @@
enum Data
{
- DATA_SELIN_EVENT = 0,
- DATA_VEXALLUS_EVENT = 1,
- DATA_DELRISSA_EVENT = 2,
- DATA_KAELTHAS_EVENT = 3,
-
- DATA_SELIN = 4,
- DATA_FEL_CRYSTAL = 5,
- DATA_FEL_CRYSTAL_SIZE = 6,
-
- DATA_VEXALLUS_DOOR = 7,
- DATA_SELIN_DOOR = 8,
- DATA_DELRISSA = 9,
- DATA_DELRISSA_DOOR = 10,
- DATA_SELIN_ENCOUNTER_DOOR = 11,
-
- DATA_KAEL_DOOR = 12,
- DATA_KAEL_STATUE_LEFT = 13,
- DATA_KAEL_STATUE_RIGHT = 14,
-
- DATA_DELRISSA_DEATH_COUNT = 15,
-
- DATA_ESCAPE_ORB = 16
+ DATA_SELIN_EVENT,
+ DATA_VEXALLUS_EVENT,
+ DATA_DELRISSA_EVENT,
+ DATA_KAELTHAS_EVENT,
+
+ DATA_SELIN,
+ DATA_FEL_CRYSTAL,
+ DATA_FEL_CRYSTAL_SIZE,
+
+ DATA_VEXALLUS_DOOR,
+ DATA_DELRISSA,
+ DATA_DELRISSA_DOOR,
+
+ DATA_KAEL_DOOR,
+ DATA_KAEL_STATUE_LEFT,
+ DATA_KAEL_STATUE_RIGHT,
+
+ DATA_DELRISSA_DEATH_COUNT,
+ DATA_KAELTHAS_STATUES,
+ DATA_ESCAPE_ORB
};
#endif
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp
index fa99078cedb..5e5cc0ffab8 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_golemagg.cpp
@@ -30,7 +30,7 @@ EndScriptData */
enum Texts
{
- EMOTE_LOWHP = -1409002,
+ EMOTE_LOWHP = 0,
};
enum Spells
@@ -149,7 +149,7 @@ class mob_core_rager : public CreatureScript
if (pGolemagg->isAlive())
{
me->AddAura(SPELL_GOLEMAGG_TRUST, me);
- DoScriptText(EMOTE_LOWHP, me);
+ Talk(EMOTE_LOWHP);
me->SetFullHealth();
}
}
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
index f085e15fcb7..c7d6b31d2ea 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "molten_core.h"
+#include "Player.h"
enum Texts
{
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
index 9d48d04cf07..edd8905ff4a 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
@@ -29,17 +29,17 @@ EndScriptData */
enum Texts
{
- SAY_REINFORCEMENTS1 = -1409013,
- SAY_REINFORCEMENTS2 = -1409014,
- SAY_HAND = -1409015,
- SAY_WRATH = -1409016,
- SAY_KILL = -1409017,
- SAY_MAGMABURST = -1409018,
- SAY_SUMMON_MAJ = -1409008,
- SAY_ARRIVAL1_RAG = -1409009,
- SAY_ARRIVAL2_MAJ = -1409010,
- SAY_ARRIVAL3_RAG = -1409011,
- SAY_ARRIVAL5_RAG = -1409012,
+ SAY_SUMMON_MAJ = 0,
+ SAY_ARRIVAL1_RAG = 1,
+ SAY_ARRIVAL2_MAJ = 2,
+ SAY_ARRIVAL3_RAG = 3,
+ SAY_ARRIVAL5_RAG = 4,
+ SAY_REINFORCEMENTS1 = 5,
+ SAY_REINFORCEMENTS2 = 6,
+ SAY_HAND = 7,
+ SAY_WRATH = 8,
+ SAY_KILL = 9,
+ SAY_MAGMABURST = 10
};
enum Spells
@@ -112,7 +112,7 @@ class boss_ragnaros : public CreatureScript
void KilledUnit(Unit* /*victim*/)
{
if (urand(0, 99) < 25)
- DoScriptText(SAY_KILL, me);
+ Talk(SAY_KILL);
}
void UpdateAI(const uint32 diff)
@@ -137,16 +137,16 @@ class boss_ragnaros : public CreatureScript
switch (eventId)
{
case EVENT_INTRO_1:
- DoScriptText(SAY_ARRIVAL1_RAG, me);
+ Talk(SAY_ARRIVAL1_RAG);
break;
case EVENT_INTRO_2:
- DoScriptText(SAY_ARRIVAL3_RAG, me);
+ Talk(SAY_ARRIVAL3_RAG);
break;
case EVENT_INTRO_3:
me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK1H);
break;
case EVENT_INTRO_4:
- DoScriptText(SAY_ARRIVAL5_RAG, me);
+ Talk(SAY_ARRIVAL5_RAG);
if (instance)
if (Creature* executus = Unit::GetCreature(*me, instance->GetData64(BOSS_MAJORDOMO_EXECUTUS)))
me->Kill(executus);
@@ -205,13 +205,13 @@ class boss_ragnaros : public CreatureScript
case EVENT_WRATH_OF_RAGNAROS:
DoCastVictim(SPELL_WRATH_OF_RAGNAROS);
if (urand(0, 1))
- DoScriptText(SAY_WRATH, me);
+ Talk(SAY_WRATH);
events.ScheduleEvent(EVENT_WRATH_OF_RAGNAROS, 25000);
break;
case EVENT_HAND_OF_RAGNAROS:
DoCast(me, SPELL_HAND_OF_RAGNAROS);
if (urand(0, 1))
- DoScriptText(SAY_HAND, me);
+ Talk(SAY_HAND);
events.ScheduleEvent(EVENT_HAND_OF_RAGNAROS, 20000);
break;
case EVENT_LAVA_BURST:
@@ -229,7 +229,7 @@ class boss_ragnaros : public CreatureScript
if (!_hasYelledMagmaBurst)
{
//Say our dialog
- DoScriptText(SAY_MAGMABURST, me);
+ Talk(SAY_MAGMABURST);
_hasYelledMagmaBurst = true;
}
}
@@ -256,7 +256,7 @@ class boss_ragnaros : public CreatureScript
if (!_hasSubmergedOnce)
{
- DoScriptText(SAY_REINFORCEMENTS1, me);
+ Talk(SAY_REINFORCEMENTS1);
// summon 8 elementals
for (uint8 i = 0; i < 8; ++i)
@@ -272,7 +272,7 @@ class boss_ragnaros : public CreatureScript
}
else
{
- DoScriptText(SAY_REINFORCEMENTS2, me);
+ Talk(SAY_REINFORCEMENTS2);
for (uint8 i = 0; i < 8; ++i)
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp
index f6a6e647a1d..1a055b9bce0 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/instance_molten_core.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "InstanceScript.h"
#include "CreatureAI.h"
#include "molten_core.h"
+#include "TemporarySummon.h"
Position const SummonPositions[10] =
{
@@ -116,7 +117,7 @@ class instance_molten_core : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -127,7 +128,7 @@ class instance_molten_core : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index c17a059d007..0cb2bd7f7bc 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -23,6 +23,8 @@
#include "ScriptedEscortAI.h"
#include "CombatAI.h"
#include "PassiveAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
##Quest 12848
@@ -307,7 +309,7 @@ public:
prisonerGUID = guid;
}
- uint64 GetGUID(int32 /*id*/)
+ uint64 GetGUID(int32 /*id*/) const
{
return prisonerGUID;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index b4c6268a43e..78fc8d127b2 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -18,33 +18,34 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
//How to win friends and influence enemies
// texts signed for creature 28939 but used for 28939, 28940, 28610
enum win_friends
{
- SAY_PERSUADE1 = -1609501,
- SAY_PERSUADE2 = -1609502,
- SAY_PERSUADE3 = -1609503,
- SAY_PERSUADE4 = -1609504,
- SAY_PERSUADE5 = -1609505,
- SAY_PERSUADE6 = -1609506,
- SAY_PERSUADE7 = -1609507,
- SAY_CRUSADER1 = -1609508,
- SAY_CRUSADER2 = -1609509,
- SAY_CRUSADER3 = -1609510,
- SAY_CRUSADER4 = -1609511,
- SAY_CRUSADER5 = -1609512,
- SAY_CRUSADER6 = -1609513,
- SAY_PERSUADED1 = -1609514,
- SAY_PERSUADED2 = -1609515,
- SAY_PERSUADED3 = -1609516,
- SAY_PERSUADED4 = -1609517,
- SAY_PERSUADED5 = -1609518,
- SAY_PERSUADED6 = -1609519,
- SPELL_PERSUASIVE_STRIKE = 52781
+ SAY_CRUSADER = 1,
+ SAY_PERSUADED1 = 2,
+ SAY_PERSUADED2 = 3,
+ SAY_PERSUADED3 = 4,
+ SAY_PERSUADED4 = 5,
+ SAY_PERSUADED6 = 6,
+ SPELL_PERSUASIVE_STRIKE = 52781,
+ SPELL_THREAT_PULSE = 58111,
+ QUEST_HOW_TO_WIN_FRIENDS = 12720,
};
+#define SAY_PERSUADED5 "LIES! The pain you are about to endure will be talked about for years to come!"
+
+#define SAY_PERSUADE1 "I'll tear the secrets from your soul! Tell me about the \"Crimson Dawn\" and your life may be spared!"
+#define SAY_PERSUADE2 "Tell me what you know about \"Crimson Dawn\" or the beatings will continue!"
+#define SAY_PERSUADE3 "I'm through being courteous with your kind, human! What is the \"Crimson Dawn\"?"
+#define SAY_PERSUADE4 "Is your life worth so little? Just tell me what I need to know about \"Crimson Dawn\" and I'll end your suffering quickly."
+#define SAY_PERSUADE5 "I can keep this up for a very long time, Scarlet dog! Tell me about the \"Crimson Dawn\"!"
+#define SAY_PERSUADE6 "What is the \"Crimson Dawn\"?"
+#define SAY_PERSUADE7 "\"Crimson Dawn\"! What is it! Speak!"
+
class npc_crusade_persuaded : public CreatureScript
{
public:
@@ -59,97 +60,119 @@ public:
{
npc_crusade_persuadedAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 uiSpeech_timer;
- uint32 uiSpeech_counter;
- uint64 uiPlayerGUID;
+ uint32 speechTimer;
+ uint32 speechCounter;
+ uint64 playerGUID;
void Reset()
{
- uiSpeech_timer = 0;
- uiSpeech_counter = 0;
- uiPlayerGUID = 0;
+ speechTimer = 0;
+ speechCounter = 0;
+ playerGUID = 0;
me->SetReactState(REACT_AGGRESSIVE);
me->RestoreFaction();
}
void SpellHit(Unit* caster, const SpellInfo* spell)
{
- if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->isAlive() && !uiSpeech_counter)
+ if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->isAlive() && !speechCounter)
{
- if (CAST_PLR(caster)->GetQuestStatus(12720) == QUEST_STATUS_INCOMPLETE)
+ if (Player* player = caster->ToPlayer())
{
- uiPlayerGUID = caster->GetGUID();
- uiSpeech_timer = 1000;
- uiSpeech_counter = 1;
- me->setFaction(caster->getFaction());
- me->CombatStop(true);
- me->GetMotionMaster()->MoveIdle();
- me->SetReactState(REACT_PASSIVE);
- DoCastAOE(58111, true);
-
- DoScriptText(RAND(SAY_PERSUADE1, SAY_PERSUADE2, SAY_PERSUADE3,
- SAY_PERSUADE4, SAY_PERSUADE5, SAY_PERSUADE6,
- SAY_PERSUADE7), caster);
-
- DoScriptText(RAND(SAY_CRUSADER1, SAY_CRUSADER2, SAY_CRUSADER3,
- SAY_CRUSADER4, SAY_CRUSADER5, SAY_CRUSADER6), me);
+ if (player->GetQuestStatus(QUEST_HOW_TO_WIN_FRIENDS) == QUEST_STATUS_INCOMPLETE)
+ {
+ playerGUID = player->GetGUID();
+ speechTimer = 1000;
+ speechCounter = 1;
+ me->setFaction(player->getFaction());
+ me->CombatStop(true);
+ me->GetMotionMaster()->MoveIdle();
+ me->SetReactState(REACT_PASSIVE);
+ DoCastAOE(SPELL_THREAT_PULSE, true);
+
+ switch (urand(1, 7))
+ {
+ case 1:
+ player->Say(SAY_PERSUADE1, LANG_UNIVERSAL);
+ break;
+ case 2:
+ player->Say(SAY_PERSUADE2, LANG_UNIVERSAL);
+ break;
+ case 3:
+ player->Say(SAY_PERSUADE3, LANG_UNIVERSAL);
+ break;
+ case 4:
+ player->Say(SAY_PERSUADE4, LANG_UNIVERSAL);
+ break;
+ case 5:
+ player->Say(SAY_PERSUADE5, LANG_UNIVERSAL);
+ break;
+ case 6:
+ player->Say(SAY_PERSUADE6, LANG_UNIVERSAL);
+ break;
+ case 7:
+ player->Say(SAY_PERSUADE7, LANG_UNIVERSAL);
+ break;
+ }
+ Talk(SAY_CRUSADER);
+ }
}
}
}
void UpdateAI(const uint32 diff)
{
- if (uiSpeech_counter)
+ if (speechCounter)
{
- if (uiSpeech_timer <= diff)
+ if (speechTimer <= diff)
{
- Player* player = Unit::GetPlayer(*me, uiPlayerGUID);
+ Player* player = Unit::GetPlayer(*me, playerGUID);
if (!player)
{
EnterEvadeMode();
return;
}
- switch (uiSpeech_counter)
+ switch (speechCounter)
{
case 1:
- DoScriptText(SAY_PERSUADED1, me);
- uiSpeech_timer = 8000;
+ Talk(SAY_PERSUADED1);
+ speechTimer = 8000;
break;
case 2:
- DoScriptText(SAY_PERSUADED2, me);
- uiSpeech_timer = 8000;
+ Talk(SAY_PERSUADED2);
+ speechTimer = 8000;
break;
case 3:
- DoScriptText(SAY_PERSUADED3, me);
- uiSpeech_timer = 8000;
+ Talk(SAY_PERSUADED3);
+ speechTimer = 8000;
break;
case 4:
- DoScriptText(SAY_PERSUADED4, me);
- uiSpeech_timer = 8000;
+ Talk(SAY_PERSUADED4);
+ speechTimer = 8000;
break;
case 5:
- DoScriptText(SAY_PERSUADED5, player);
- uiSpeech_timer = 8000;
+ player->Say(SAY_PERSUADED5, LANG_UNIVERSAL);
+ speechTimer = 8000;
break;
case 6:
- DoScriptText(SAY_PERSUADED6, me);
+ Talk(SAY_PERSUADED6);
player->Kill(me);
- //me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- //me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- uiSpeech_counter = 0;
- player->GroupEventHappens(12720, me);
+ speechCounter = 0;
+ player->GroupEventHappens(QUEST_HOW_TO_WIN_FRIENDS, me);
return;
}
- ++uiSpeech_counter;
- DoCastAOE(58111, true);
- } else uiSpeech_timer -= diff;
+ ++speechCounter;
+ DoCastAOE(SPELL_THREAT_PULSE, true);
+
+ } else
+ speechTimer -= diff;
return;
}
@@ -169,16 +192,16 @@ public:
enum eKoltira
{
- SAY_BREAKOUT1 = -1609561,
- SAY_BREAKOUT2 = -1609562,
- SAY_BREAKOUT3 = -1609563,
- SAY_BREAKOUT4 = -1609564,
- SAY_BREAKOUT5 = -1609565,
- SAY_BREAKOUT6 = -1609566,
- SAY_BREAKOUT7 = -1609567,
- SAY_BREAKOUT8 = -1609568,
- SAY_BREAKOUT9 = -1609569,
- SAY_BREAKOUT10 = -1609570,
+ SAY_BREAKOUT1 = 0,
+ SAY_BREAKOUT2 = 1,
+ SAY_BREAKOUT3 = 2,
+ SAY_BREAKOUT4 = 3,
+ SAY_BREAKOUT5 = 4,
+ SAY_BREAKOUT6 = 5,
+ SAY_BREAKOUT7 = 6,
+ SAY_BREAKOUT8 = 7,
+ SAY_BREAKOUT9 = 8,
+ SAY_BREAKOUT10 = 9,
SPELL_KOLTIRA_TRANSFORM = 52899,
SPELL_ANTI_MAGIC_ZONE = 52894,
@@ -245,7 +268,7 @@ public:
switch (waypointId)
{
case 0:
- DoScriptText(SAY_BREAKOUT1, me);
+ Talk(SAY_BREAKOUT1);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
break;
case 1:
@@ -260,7 +283,7 @@ public:
case 3:
SetEscortPaused(true);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
- DoScriptText(SAY_BREAKOUT2, me);
+ Talk(SAY_BREAKOUT2);
DoCast(me, SPELL_ANTI_MAGIC_ZONE); // cast again that makes bubble up
break;
case 4:
@@ -304,22 +327,22 @@ public:
switch (m_uiWave)
{
case 0:
- DoScriptText(SAY_BREAKOUT3, me);
+ Talk(SAY_BREAKOUT3);
SummonAcolyte(3);
m_uiWave_Timer = 20000;
break;
case 1:
- DoScriptText(SAY_BREAKOUT4, me);
+ Talk(SAY_BREAKOUT4);
SummonAcolyte(3);
m_uiWave_Timer = 20000;
break;
case 2:
- DoScriptText(SAY_BREAKOUT5, me);
+ Talk(SAY_BREAKOUT5);
SummonAcolyte(4);
m_uiWave_Timer = 20000;
break;
case 3:
- DoScriptText(SAY_BREAKOUT6, me);
+ Talk(SAY_BREAKOUT6);
me->SummonCreature(NPC_HIGH_INQUISITOR_VALROTH, 1642.329f, -6045.818f, 127.583f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000);
m_uiWave_Timer = 1000;
break;
@@ -329,7 +352,7 @@ public:
if (!temp || !temp->isAlive())
{
- DoScriptText(SAY_BREAKOUT8, me);
+ Talk(SAY_BREAKOUT8);
m_uiWave_Timer = 5000;
}
else
@@ -340,13 +363,13 @@ public:
break;
}
case 5:
- DoScriptText(SAY_BREAKOUT9, me);
+ Talk(SAY_BREAKOUT9);
me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE);
// i do not know why the armor will also be removed
m_uiWave_Timer = 2500;
break;
case 6:
- DoScriptText(SAY_BREAKOUT10, me);
+ Talk(SAY_BREAKOUT10);
SetEscortPaused(false);
break;
}
@@ -364,8 +387,8 @@ public:
//Scarlet courier
enum ScarletCourierEnum
{
- SAY_TREE1 = -1609531,
- SAY_TREE2 = -1609532,
+ SAY_TREE1 = 0,
+ SAY_TREE2 = 1,
SPELL_SHOOT = 52818,
GO_INCONSPICUOUS_TREE = 191144,
NPC_SCARLET_COURIER = 29076
@@ -397,7 +420,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_TREE2, me);
+ Talk(SAY_TREE2);
me->Dismount();
uiStage = 0;
}
@@ -423,7 +446,7 @@ public:
me->SetWalk(true);
if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f))
{
- DoScriptText(SAY_TREE1, me);
+ Talk(SAY_TREE1);
float x, y, z;
tree->GetContactPoint(me, x, y, z);
me->GetMotionMaster()->MovePoint(1, x, y, z);
@@ -453,12 +476,10 @@ public:
enum valroth
{
- SAY_VALROTH1 = -1609581,
- SAY_VALROTH2 = -1609582,
- SAY_VALROTH3 = -1609583,
- SAY_VALROTH4 = -1609584,
- SAY_VALROTH5 = -1609585,
- SAY_VALROTH6 = -1609586,
+ //SAY_VALROTH1 = 0, Unused
+ SAY_VALROTH_AGGRO = 1,
+ SAY_VALROTH_RAND = 2,
+ SAY_VALROTH_DEATH = 3,
SPELL_RENEW = 38210,
SPELL_INQUISITOR_PENANCE = 52922,
SPELL_VALROTH_SMITE = 52926,
@@ -492,7 +513,7 @@ public:
void EnterCombat(Unit* who)
{
- DoScriptText(SAY_VALROTH2, me);
+ Talk(SAY_VALROTH_AGGRO);
DoCast(who, SPELL_VALROTH_SMITE);
}
@@ -525,12 +546,12 @@ public:
void Shout()
{
if (rand()%100 < 15)
- DoScriptText(RAND(SAY_VALROTH3, SAY_VALROTH4, SAY_VALROTH5), me);
+ Talk(SAY_VALROTH_RAND);
}
void JustDied(Unit* killer)
{
- DoScriptText(SAY_VALROTH6, me);
+ Talk(SAY_VALROTH_DEATH);
killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true);
}
};
@@ -543,60 +564,60 @@ public:
//used by 29032, 29061, 29065, 29067, 29068, 29070, 29074, 29072, 29073, 29071 but signed for 29032
enum SpecialSurprise
{
- SAY_EXEC_START_1 = -1609025, // speech for all
- SAY_EXEC_START_2 = -1609026,
- SAY_EXEC_START_3 = -1609027,
- SAY_EXEC_PROG_1 = -1609028,
- SAY_EXEC_PROG_2 = -1609029,
- SAY_EXEC_PROG_3 = -1609030,
- SAY_EXEC_PROG_4 = -1609031,
- SAY_EXEC_PROG_5 = -1609032,
- SAY_EXEC_PROG_6 = -1609033,
- SAY_EXEC_PROG_7 = -1609034,
- SAY_EXEC_NAME_1 = -1609035,
- SAY_EXEC_NAME_2 = -1609036,
- SAY_EXEC_RECOG_1 = -1609037,
- SAY_EXEC_RECOG_2 = -1609038,
- SAY_EXEC_RECOG_3 = -1609039,
- SAY_EXEC_RECOG_4 = -1609040,
- SAY_EXEC_RECOG_5 = -1609041,
- SAY_EXEC_RECOG_6 = -1609042,
- SAY_EXEC_NOREM_1 = -1609043,
- SAY_EXEC_NOREM_2 = -1609044,
- SAY_EXEC_NOREM_3 = -1609045,
- SAY_EXEC_NOREM_4 = -1609046,
- SAY_EXEC_NOREM_5 = -1609047,
- SAY_EXEC_NOREM_6 = -1609048,
- SAY_EXEC_NOREM_7 = -1609049,
- SAY_EXEC_NOREM_8 = -1609050,
- SAY_EXEC_NOREM_9 = -1609051,
- SAY_EXEC_THINK_1 = -1609052,
- SAY_EXEC_THINK_2 = -1609053,
- SAY_EXEC_THINK_3 = -1609054,
- SAY_EXEC_THINK_4 = -1609055,
- SAY_EXEC_THINK_5 = -1609056,
- SAY_EXEC_THINK_6 = -1609057,
- SAY_EXEC_THINK_7 = -1609058,
- SAY_EXEC_THINK_8 = -1609059,
- SAY_EXEC_THINK_9 = -1609060,
- SAY_EXEC_THINK_10 = -1609061,
- SAY_EXEC_LISTEN_1 = -1609062,
- SAY_EXEC_LISTEN_2 = -1609063,
- SAY_EXEC_LISTEN_3 = -1609064,
- SAY_EXEC_LISTEN_4 = -1609065,
- SAY_PLAGUEFIST = -1609066,
- SAY_EXEC_TIME_1 = -1609067,
- SAY_EXEC_TIME_2 = -1609068,
- SAY_EXEC_TIME_3 = -1609069,
- SAY_EXEC_TIME_4 = -1609070,
- SAY_EXEC_TIME_5 = -1609071,
- SAY_EXEC_TIME_6 = -1609072,
- SAY_EXEC_TIME_7 = -1609073,
- SAY_EXEC_TIME_8 = -1609074,
- SAY_EXEC_TIME_9 = -1609075,
- SAY_EXEC_TIME_10 = -1609076,
- SAY_EXEC_WAITING = -1609077,
- EMOTE_DIES = -1609078,
+ SAY_EXEC_START_1 = 0, // speech for all
+ SAY_EXEC_START_2 = 1,
+ SAY_EXEC_START_3 = 2,
+ SAY_EXEC_PROG_1 = 3,
+ SAY_EXEC_PROG_2 = 4,
+ SAY_EXEC_PROG_3 = 5,
+ SAY_EXEC_PROG_4 = 6,
+ SAY_EXEC_PROG_5 = 7,
+ SAY_EXEC_PROG_6 = 8,
+ SAY_EXEC_PROG_7 = 9,
+ SAY_EXEC_NAME_1 = 10,
+ SAY_EXEC_NAME_2 = 11,
+ SAY_EXEC_RECOG_1 = 12,
+ SAY_EXEC_RECOG_2 = 13,
+ SAY_EXEC_RECOG_3 = 14,
+ SAY_EXEC_RECOG_4 = 15,
+ SAY_EXEC_RECOG_5 = 16,
+ SAY_EXEC_RECOG_6 = 17,
+ SAY_EXEC_NOREM_1 = 18,
+ SAY_EXEC_NOREM_2 = 19,
+ SAY_EXEC_NOREM_3 = 20,
+ SAY_EXEC_NOREM_4 = 21,
+ SAY_EXEC_NOREM_5 = 22,
+ SAY_EXEC_NOREM_6 = 23,
+ SAY_EXEC_NOREM_7 = 24,
+ SAY_EXEC_NOREM_8 = 25,
+ SAY_EXEC_NOREM_9 = 26,
+ SAY_EXEC_THINK_1 = 27,
+ SAY_EXEC_THINK_2 = 28,
+ SAY_EXEC_THINK_3 = 29,
+ SAY_EXEC_THINK_4 = 30,
+ SAY_EXEC_THINK_5 = 31,
+ SAY_EXEC_THINK_6 = 32,
+ SAY_EXEC_THINK_7 = 33,
+ SAY_EXEC_THINK_8 = 34,
+ SAY_EXEC_THINK_9 = 35,
+ SAY_EXEC_THINK_10 = 36,
+ SAY_EXEC_LISTEN_1 = 37,
+ SAY_EXEC_LISTEN_2 = 38,
+ SAY_EXEC_LISTEN_3 = 39,
+ SAY_EXEC_LISTEN_4 = 40,
+ SAY_PLAGUEFIST = 41,
+ SAY_EXEC_TIME_1 = 42,
+ SAY_EXEC_TIME_2 = 43,
+ SAY_EXEC_TIME_3 = 44,
+ SAY_EXEC_TIME_4 = 45,
+ SAY_EXEC_TIME_5 = 46,
+ SAY_EXEC_TIME_6 = 47,
+ SAY_EXEC_TIME_7 = 48,
+ SAY_EXEC_TIME_8 = 49,
+ SAY_EXEC_TIME_9 = 50,
+ SAY_EXEC_TIME_10 = 51,
+ SAY_EXEC_WAITING = 52,
+ EMOTE_DIES = 53,
NPC_PLAGUEFIST = 29053
};
@@ -707,28 +728,28 @@ public:
case RACE_HUMAN:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_5, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_1, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_5, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_7, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_5, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_5, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_7, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_6, me, player);
+ Talk(SAY_EXEC_TIME_6, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -737,28 +758,28 @@ public:
case RACE_ORC:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_6, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_1, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_7, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_8, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_6, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_7, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_8, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_8, me, player);
+ Talk(SAY_EXEC_TIME_8, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -767,28 +788,28 @@ public:
case RACE_DWARF:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_2, me, player); break;
+ case 0: Talk(SAY_EXEC_START_2, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_2, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_3, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_2, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_5, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_2, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_2, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_3, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_2, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_5, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_2, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_3, me, player);
+ Talk(SAY_EXEC_TIME_3, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -797,28 +818,28 @@ public:
case RACE_NIGHTELF:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_5, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_1, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_6, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_2, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_5, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_6, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_2, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_7, me, player);
+ Talk(SAY_EXEC_TIME_7, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -827,28 +848,28 @@ public:
case RACE_UNDEAD_PLAYER:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_3, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_4, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_3, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_1, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_3, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_3, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_4, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_3, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_1, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_3, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_4, me, player);
+ Talk(SAY_EXEC_TIME_4, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -857,28 +878,28 @@ public:
case RACE_TAUREN:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_1, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_5, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_8, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_9, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_1, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_5, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_8, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_9, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_9, me, player);
+ Talk(SAY_EXEC_TIME_9, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -887,28 +908,28 @@ public:
case RACE_GNOME:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_4, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_1, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_4, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_6, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_4, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_4, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_6, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_5, me, player);
+ Talk(SAY_EXEC_TIME_5, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -917,28 +938,28 @@ public:
case RACE_TROLL:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_3, me, player); break;
+ case 0: Talk(SAY_EXEC_START_3, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_7, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_2, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_6, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_9, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_10, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_4, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_7, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_2, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_6, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_9, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_10, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_4, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_10, me, player);
+ Talk(SAY_EXEC_TIME_10, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -947,28 +968,28 @@ public:
case RACE_BLOODELF:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_1, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_1, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
//case 5: //unknown
- case 6: DoScriptText(SAY_EXEC_THINK_3, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 6: Talk(SAY_EXEC_THINK_3, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_1, me, player);
+ Talk(SAY_EXEC_TIME_1, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
@@ -977,28 +998,28 @@ public:
case RACE_DRAENEI:
switch (ExecuteSpeech_Counter)
{
- case 0: DoScriptText(SAY_EXEC_START_1, me, player); break;
+ case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: DoScriptText(SAY_EXEC_PROG_1, me, player); break;
- case 3: DoScriptText(SAY_EXEC_NAME_1, me, player); break;
- case 4: DoScriptText(SAY_EXEC_RECOG_2, me, player); break;
- case 5: DoScriptText(SAY_EXEC_NOREM_1, me, player); break;
- case 6: DoScriptText(SAY_EXEC_THINK_4, me, player); break;
- case 7: DoScriptText(SAY_EXEC_LISTEN_1, me, player); break;
+ case 2: Talk(SAY_EXEC_PROG_1, player->GetGUID()); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
+ case 4: Talk(SAY_EXEC_RECOG_2, player->GetGUID()); break;
+ case 5: Talk(SAY_EXEC_NOREM_1, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_4, player->GetGUID()); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- DoScriptText(SAY_PLAGUEFIST, Plaguefist, player);
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
break;
case 9:
- DoScriptText(SAY_EXEC_TIME_2, me, player);
+ Talk(SAY_EXEC_TIME_2, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- DoScriptText(SAY_EXEC_WAITING, me, player);
+ Talk(SAY_EXEC_WAITING, player->GetGUID());
break;
case 11:
- DoScriptText(EMOTE_DIES, me);
+ Talk(EMOTE_DIES);
me->setDeathState(JUST_DIED);
me->SetHealth(0);
return;
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index 4d1552b932e..77c1e3bc066 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
#define LESS_MOB // if you do not have a good server and do not want it to be laggy as hell
//Light of Dawn
@@ -50,93 +51,78 @@ enum mograine
WORLD_STATE_COUNTDOWN = 3603,
WORLD_STATE_EVENT_BEGIN = 3605,
- SAY_LIGHT_OF_DAWN01 = -1609201, // pre text
- SAY_LIGHT_OF_DAWN02 = -1609202,
- SAY_LIGHT_OF_DAWN03 = -1609203,
- SAY_LIGHT_OF_DAWN04 = -1609204, // intro
- SAY_LIGHT_OF_DAWN05 = -1609205,
- SAY_LIGHT_OF_DAWN06 = -1609206,
- SAY_LIGHT_OF_DAWN07 = -1609207, // During the fight - Korfax, Champion of the Light
- SAY_LIGHT_OF_DAWN08 = -1609208, // Lord Maxwell Tyrosus
- SAY_LIGHT_OF_DAWN09 = -1609209, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN10 = -1609210,
- SAY_LIGHT_OF_DAWN11 = -1609211,
- SAY_LIGHT_OF_DAWN12 = -1609212,
- SAY_LIGHT_OF_DAWN13 = -1609213,
- SAY_LIGHT_OF_DAWN14 = -1609214,
- SAY_LIGHT_OF_DAWN15 = -1609215,
- SAY_LIGHT_OF_DAWN16 = -1609216,
- SAY_LIGHT_OF_DAWN17 = -1609217,
- SAY_LIGHT_OF_DAWN18 = -1609218,
- SAY_LIGHT_OF_DAWN19 = -1609219,
- SAY_LIGHT_OF_DAWN20 = -1609220,
- SAY_LIGHT_OF_DAWN21 = -1609221,
- SAY_LIGHT_OF_DAWN22 = -1609222,
- SAY_LIGHT_OF_DAWN23 = -1609223,
- SAY_LIGHT_OF_DAWN24 = -1609224,
- SAY_LIGHT_OF_DAWN25 = -1609225, // After the fight
- SAY_LIGHT_OF_DAWN26 = -1609226, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN27 = -1609227, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN28 = -1609228, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN29 = -1609229, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN30 = -1609230, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN31 = -1609231, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN32 = -1609232, // Highlord Alexandros Mograine
- SAY_LIGHT_OF_DAWN33 = -1609233, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN34 = -1609234, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN35 = -1609235, // Darion Mograine
- SAY_LIGHT_OF_DAWN36 = -1609236, // Darion Mograine
- SAY_LIGHT_OF_DAWN37 = -1609237, // Highlord Alexandros Mograine
- SAY_LIGHT_OF_DAWN38 = -1609238, // Darion Mograine
- SAY_LIGHT_OF_DAWN39 = -1609239, // Highlord Alexandros Mograine
- SAY_LIGHT_OF_DAWN40 = -1609240, // Darion Mograine
- SAY_LIGHT_OF_DAWN41 = -1609241, // Highlord Alexandros Mograine
- SAY_LIGHT_OF_DAWN42 = -1609242, // Highlord Alexandros Mograine
- SAY_LIGHT_OF_DAWN43 = -1609243, // The Lich King
- SAY_LIGHT_OF_DAWN44 = -1609244, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN45 = -1609245, // The Lich King
- SAY_LIGHT_OF_DAWN46 = -1609246, // The Lich King
- SAY_LIGHT_OF_DAWN47 = -1609247, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN48 = -1609248, // The Lich King
- SAY_LIGHT_OF_DAWN49 = -1609249, // The Lich King
- SAY_LIGHT_OF_DAWN50 = -1609250, // Lord Maxwell Tyrosus
- SAY_LIGHT_OF_DAWN51 = -1609251, // The Lich King
- SAY_LIGHT_OF_DAWN52 = -1609252, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN53 = -1609253, // Highlord Darion Mograine
- SAY_LIGHT_OF_DAWN54 = -1609254, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN55 = -1609255, // The Lich King
- SAY_LIGHT_OF_DAWN56 = -1609256, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN57 = -1609257, // The Lich King
- SAY_LIGHT_OF_DAWN58 = -1609258, // The Lich King
- SAY_LIGHT_OF_DAWN59 = -1609259, // The Lich King
- SAY_LIGHT_OF_DAWN60 = -1609260, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN61 = -1609261, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN62 = -1609262, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN63 = -1609263, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN64 = -1609264, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN65 = -1609265, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN66 = -1609266, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN67 = -1609267, // Highlord Tirion Fordring
- SAY_LIGHT_OF_DAWN68 = -1609268, // Highlord Darion Mograine
-
- EMOTE_LIGHT_OF_DAWN01 = -1609269, // Emotes
- EMOTE_LIGHT_OF_DAWN02 = -1609270,
- EMOTE_LIGHT_OF_DAWN03 = -1609271,
- EMOTE_LIGHT_OF_DAWN04 = -1609272,
- EMOTE_LIGHT_OF_DAWN05 = -1609273,
- EMOTE_LIGHT_OF_DAWN06 = -1609274,
- EMOTE_LIGHT_OF_DAWN07 = -1609275,
- EMOTE_LIGHT_OF_DAWN08 = -1609276,
- EMOTE_LIGHT_OF_DAWN09 = -1609277,
- EMOTE_LIGHT_OF_DAWN10 = -1609278,
- EMOTE_LIGHT_OF_DAWN11 = -1609279,
- EMOTE_LIGHT_OF_DAWN12 = -1609280,
- EMOTE_LIGHT_OF_DAWN13 = -1609281,
- EMOTE_LIGHT_OF_DAWN14 = -1609282,
- EMOTE_LIGHT_OF_DAWN15 = -1609283,
- EMOTE_LIGHT_OF_DAWN16 = -1609284,
- EMOTE_LIGHT_OF_DAWN17 = -1609285,
- EMOTE_LIGHT_OF_DAWN18 = -1609286,
+ SAY_LIGHT_OF_DAWN01 = 0, // pre text
+ SAY_LIGHT_OF_DAWN02 = 1,
+ SAY_LIGHT_OF_DAWN03 = 2,
+ SAY_LIGHT_OF_DAWN04 = 3, // intro
+ SAY_LIGHT_OF_DAWN05 = 4,
+ SAY_LIGHT_OF_DAWN06 = 5,
+ SAY_LIGHT_OF_DAWN07 = 6, // During the fight - Korfax, Champion of the Light
+ SAY_LIGHT_OF_DAWN08 = 7, // Lord Maxwell Tyrosus
+ SAY_LIGHT_OF_DAWN09 = 8, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN25 = 24, // After the fight
+ SAY_LIGHT_OF_DAWN26 = 25, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN27 = 26, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN28 = 27, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN29 = 28, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN30 = 29, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN31 = 30, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN32 = 31, // Highlord Alexandros Mograine
+ SAY_LIGHT_OF_DAWN33 = 32, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN34 = 33, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN35 = 34, // Darion Mograine
+ SAY_LIGHT_OF_DAWN36 = 35, // Darion Mograine
+ SAY_LIGHT_OF_DAWN37 = 36, // Highlord Alexandros Mograine
+ SAY_LIGHT_OF_DAWN38 = 37, // Darion Mograine
+ SAY_LIGHT_OF_DAWN39 = 38, // Highlord Alexandros Mograine
+ SAY_LIGHT_OF_DAWN40 = 39, // Darion Mograine
+ SAY_LIGHT_OF_DAWN41 = 40, // Highlord Alexandros Mograine
+ SAY_LIGHT_OF_DAWN42 = 41, // Highlord Alexandros Mograine
+ SAY_LIGHT_OF_DAWN43 = 42, // The Lich King
+ SAY_LIGHT_OF_DAWN44 = 43, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN45 = 44, // The Lich King
+ SAY_LIGHT_OF_DAWN46 = 45, // The Lich King
+ SAY_LIGHT_OF_DAWN47 = 46, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN48 = 47, // The Lich King
+ SAY_LIGHT_OF_DAWN49 = 48, // The Lich King
+ SAY_LIGHT_OF_DAWN50 = 49, // Lord Maxwell Tyrosus
+ SAY_LIGHT_OF_DAWN51 = 50, // The Lich King
+ SAY_LIGHT_OF_DAWN52 = 51, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN53 = 52, // Highlord Darion Mograine
+ SAY_LIGHT_OF_DAWN54 = 53, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN55 = 54, // The Lich King
+ SAY_LIGHT_OF_DAWN56 = 55, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN57 = 56, // The Lich King
+ SAY_LIGHT_OF_DAWN58 = 57, // The Lich King
+ SAY_LIGHT_OF_DAWN59 = 58, // The Lich King
+ SAY_LIGHT_OF_DAWN60 = 59, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN61 = 60, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN62 = 61, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN63 = 62, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN64 = 63, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN65 = 64, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN66 = 65, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN67 = 66, // Highlord Tirion Fordring
+ SAY_LIGHT_OF_DAWN68 = 67, // Highlord Darion Mograine
+
+ EMOTE_LIGHT_OF_DAWN01 = 68, // Emotes
+ EMOTE_LIGHT_OF_DAWN02 = 69,
+ EMOTE_LIGHT_OF_DAWN03 = 70,
+ EMOTE_LIGHT_OF_DAWN04 = 71,
+ EMOTE_LIGHT_OF_DAWN05 = 72,
+ EMOTE_LIGHT_OF_DAWN06 = 73,
+ EMOTE_LIGHT_OF_DAWN07 = 74,
+ EMOTE_LIGHT_OF_DAWN08 = 75,
+ EMOTE_LIGHT_OF_DAWN09 = 76,
+ EMOTE_LIGHT_OF_DAWN10 = 77,
+ EMOTE_LIGHT_OF_DAWN11 = 78,
+ EMOTE_LIGHT_OF_DAWN12 = 79,
+ EMOTE_LIGHT_OF_DAWN13 = 80,
+ EMOTE_LIGHT_OF_DAWN14 = 81,
+ EMOTE_LIGHT_OF_DAWN15 = 82,
+ EMOTE_LIGHT_OF_DAWN16 = 83,
+ EMOTE_LIGHT_OF_DAWN17 = 84,
+ EMOTE_LIGHT_OF_DAWN18 = 85,
GO_LIGHT_OF_DAWN = 191330,
SPELL_THE_LIGHT_OF_DAWN_Q = 53606, // quest credit
@@ -511,9 +497,9 @@ public:
SetHoldState(true);
SpawnNPC();
if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN07, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN07);
if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN08, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN08);
for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i)
NPCChangeTarget(uiGhoulGUID[i]);
@@ -545,7 +531,7 @@ public:
{
//Unit* pTirion = Unit::GetCreature(*me, uiTirionGUID);
- DoScriptText(EMOTE_LIGHT_OF_DAWN05, me);
+ Talk(EMOTE_LIGHT_OF_DAWN05);
if (me->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0))
me->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);
if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID))
@@ -582,7 +568,7 @@ public:
}
break;
case 4:
- DoScriptText(SAY_LIGHT_OF_DAWN27, me);
+ Talk(SAY_LIGHT_OF_DAWN27);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID))
@@ -592,7 +578,7 @@ public:
SetHoldState(true);
break;
case 5:
- DoScriptText(SAY_LIGHT_OF_DAWN33, me);
+ Talk(SAY_LIGHT_OF_DAWN33);
SetHoldState(true);
break;
case 6:
@@ -608,7 +594,7 @@ public:
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
me->CastSpell(temp, SPELL_ASHBRINGER, true);
- DoScriptText(EMOTE_LIGHT_OF_DAWN14, me);
+ Talk(EMOTE_LIGHT_OF_DAWN14);
SetHoldState(true);
break;
}
@@ -644,7 +630,7 @@ public:
break;
case 2:
- DoScriptText(SAY_LIGHT_OF_DAWN04, me);
+ Talk(SAY_LIGHT_OF_DAWN04);
if (Creature* pKoltira = GetClosestCreatureWithEntry(me, NPC_KOLTIRA_DEATHWEAVER, 50.0f))
uiKoltiraGUID = pKoltira->GetGUID();
if (Creature* pOrbaz = GetClosestCreatureWithEntry(me, NPC_ORBAZ_BLOODBANE, 50.0f))
@@ -655,7 +641,7 @@ public:
break;
case 3: // rise
- DoScriptText(SAY_LIGHT_OF_DAWN05, me);
+ Talk(SAY_LIGHT_OF_DAWN05);
JumpToNextStep(3000);
break;
@@ -733,7 +719,7 @@ public:
break;
case 8: // summon announce
- DoScriptText(SAY_LIGHT_OF_DAWN06, me);
+ Talk(SAY_LIGHT_OF_DAWN06);
JumpToNextStep(5000);
break;
@@ -772,34 +758,34 @@ public:
// ******* After battle *****************************************************************
case 11: // Tirion starts to speak
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN28, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN28);
JumpToNextStep(21000);
break;
case 12:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN29, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN29);
JumpToNextStep(13000);
break;
case 13:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN30, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN30);
JumpToNextStep(13000);
break;
case 14:
me->SetStandState(UNIT_STAND_STATE_STAND);
- DoScriptText(SAY_LIGHT_OF_DAWN31, me);
+ Talk(SAY_LIGHT_OF_DAWN31);
JumpToNextStep(7000);
break;
case 15: // summon gate
- if (Unit* temp = me->SummonCreature(NPC_HIGHLORD_ALEXANDROS_MOGRAINE, LightofDawnLoc[22].x, LightofDawnLoc[22].y, LightofDawnLoc[22].z, LightofDawnLoc[22].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
+ if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_ALEXANDROS_MOGRAINE, LightofDawnLoc[22].x, LightofDawnLoc[22].y, LightofDawnLoc[22].z, LightofDawnLoc[22].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
temp->CastSpell(temp, SPELL_ALEXANDROS_MOGRAINE_SPAWN, true);
- DoScriptText(EMOTE_LIGHT_OF_DAWN06, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN06);
uiAlexandrosGUID = temp->GetGUID();
}
JumpToNextStep(4000);
@@ -810,7 +796,7 @@ public:
{
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[23].x, LightofDawnLoc[23].y, LightofDawnLoc[23].z);
- DoScriptText(SAY_LIGHT_OF_DAWN32, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN32);
}
SetHoldState(false); // makes darion turns back
JumpToNextStep(5000);
@@ -818,14 +804,14 @@ public:
case 17:
me->SetStandState(UNIT_STAND_STATE_KNEEL);
- DoScriptText(SAY_LIGHT_OF_DAWN34, me);
+ Talk(SAY_LIGHT_OF_DAWN34);
JumpToNextStep(5000);
break;
case 18: // Darion's spirit out
- if (Unit* temp = me->SummonCreature(NPC_DARION_MOGRAINE, LightofDawnLoc[24].x, LightofDawnLoc[24].y, LightofDawnLoc[24].z, LightofDawnLoc[24].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
+ if (Creature* temp = me->SummonCreature(NPC_DARION_MOGRAINE, LightofDawnLoc[24].x, LightofDawnLoc[24].y, LightofDawnLoc[24].z, LightofDawnLoc[24].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
{
- DoScriptText(SAY_LIGHT_OF_DAWN35, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN35);
temp->SetWalk(false);
uiDarionGUID = temp->GetGUID();
}
@@ -835,7 +821,7 @@ public:
case 19: // runs to father
if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID))
{
- DoScriptText(EMOTE_LIGHT_OF_DAWN07, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN07);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[25].x, LightofDawnLoc[25].y, LightofDawnLoc[25].z);
}
JumpToNextStep(4000);
@@ -843,31 +829,31 @@ public:
case 20:
if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN36, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN36);
JumpToNextStep(4000);
break;
case 21:
if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID))
- DoScriptText(EMOTE_LIGHT_OF_DAWN08, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN08);
JumpToNextStep(4000);
break;
case 22:
if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN37, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN37);
JumpToNextStep(8000);
break;
case 23:
if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN38, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN38);
JumpToNextStep(8000);
break;
case 24:
if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN39, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN39);
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) // Tirion moves forward here
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[1].x, LightofDawnLoc[1].y, LightofDawnLoc[1].z);
@@ -877,13 +863,13 @@ public:
case 25:
if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN40, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN40);
JumpToNextStep(11000);
break;
case 26:
if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN41, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN41);
JumpToNextStep(5000);
break;
@@ -895,14 +881,14 @@ public:
case 28:
if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN42, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN42);
JumpToNextStep(6000);
break;
case 29: // lich king spawns
- if (Unit* temp = me->SummonCreature(NPC_THE_LICH_KING, LightofDawnLoc[26].x, LightofDawnLoc[26].y, LightofDawnLoc[26].z, LightofDawnLoc[26].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
+ if (Creature* temp = me->SummonCreature(NPC_THE_LICH_KING, LightofDawnLoc[26].x, LightofDawnLoc[26].y, LightofDawnLoc[26].z, LightofDawnLoc[26].o, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
{
- DoScriptText(SAY_LIGHT_OF_DAWN43, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN43);
uiLichKingGUID = temp->GetGUID();
if (Unit* pAlex = Unit::GetCreature(*me, uiAlexandrosGUID))
temp->CastSpell(pAlex, SPELL_SOUL_FEAST_ALEX, false);
@@ -913,21 +899,21 @@ public:
case 30:
if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) // just hide him
{
- DoScriptText(EMOTE_LIGHT_OF_DAWN09, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN09);
temp->SetVisible(false);
}
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
{
temp->InterruptNonMeleeSpells(false);
- DoScriptText(SAY_LIGHT_OF_DAWN45, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN45);
}
JumpToNextStep(3000);
break;
case 31:
me->SetStandState(UNIT_STAND_STATE_STAND);
- DoScriptText(EMOTE_LIGHT_OF_DAWN10, me);
- DoScriptText(SAY_LIGHT_OF_DAWN44, me);
+ Talk(EMOTE_LIGHT_OF_DAWN10);
+ Talk(SAY_LIGHT_OF_DAWN44);
JumpToNextStep(3000);
break;
@@ -951,7 +937,7 @@ public:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
{
temp->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
- DoScriptText(SAY_LIGHT_OF_DAWN46, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN46);
}
me->SetSpeed(MOVE_RUN, 6.0f);
me->SetStandState(UNIT_STAND_STATE_DEAD);
@@ -966,33 +952,33 @@ public:
case 38:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN47, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN47);
JumpToNextStep(8000);
break;
case 39:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN48, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN48);
JumpToNextStep(15000);
break;
case 40:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN49, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN49);
JumpToNextStep(17000);
break;
case 41: // Lich king - Apocalypse
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
{
- DoScriptText(EMOTE_LIGHT_OF_DAWN11, temp);
- DoScriptText(SAY_LIGHT_OF_DAWN51, temp);
- if (Unit* pTirion = Unit::GetCreature(*me, uiTirionGUID))
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN11);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN51);
+ if (Creature* pTirion = Unit::GetCreature(*me, uiTirionGUID))
{
pTirion->SetStandState(UNIT_STAND_STATE_KNEEL);
//temp->CastSpell(pTirion, SPELL_APOCALYPSE, false); // not working
temp->CastSpell(pTirion, SPELL_SOUL_FEAST_TIRION, false);
- DoScriptText(EMOTE_LIGHT_OF_DAWN12, pTirion);
+ pTirion->AI()->Talk(EMOTE_LIGHT_OF_DAWN12);
}
}
JumpToNextStep(2000);
@@ -1034,7 +1020,7 @@ public:
temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
- DoScriptText(SAY_LIGHT_OF_DAWN50, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN50);
}
if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID))
{
@@ -1057,7 +1043,7 @@ public:
case 43: // They all got kicked
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(EMOTE_LIGHT_OF_DAWN13, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN13);
if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID))
{
@@ -1106,7 +1092,7 @@ public:
break;
case 45:
- DoScriptText(SAY_LIGHT_OF_DAWN52, me);
+ Talk(SAY_LIGHT_OF_DAWN52);
JumpToNextStep(5000);
break;
@@ -1114,14 +1100,14 @@ public:
me->SetSpeed(MOVE_RUN, 1.0f);
me->SetWalk(true);
me->SetStandState(UNIT_STAND_STATE_STAND);
- DoScriptText(SAY_LIGHT_OF_DAWN53, me);
+ Talk(SAY_LIGHT_OF_DAWN53);
SetHoldState(false); // Darion throws sword
JumpToNextStep(7000);
break;
case 47: // Ashbringer rebirth
me->SetStandState(UNIT_STAND_STATE_KNEEL);
- DoScriptText(EMOTE_LIGHT_OF_DAWN15, me);
+ Talk(EMOTE_LIGHT_OF_DAWN15);
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
{
temp->SetStandState(UNIT_STAND_STATE_STAND);
@@ -1149,26 +1135,26 @@ public:
case 49:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN54, temp);
+ Talk(SAY_LIGHT_OF_DAWN54);
JumpToNextStep(4000);
break;
case 50:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN55, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN55);
JumpToNextStep(5000);
break;
case 51:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN56, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN56);
JumpToNextStep(1000);
break;
case 52: // Tiron charges
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
{
- DoScriptText(EMOTE_LIGHT_OF_DAWN16, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN16);
temp->CastSpell(temp, SPELL_TIRION_CHARGE, false); // jumping charge
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
temp->SetSpeed(MOVE_RUN, 3.0f); // workarounds, make Tirion still running
@@ -1182,7 +1168,7 @@ public:
case 53:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN57, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN57);
JumpToNextStep(1000);
break;
@@ -1210,13 +1196,13 @@ public:
case 57:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN58, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN58);
JumpToNextStep(10000);
break;
case 58:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN59, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN59);
JumpToNextStep(10000);
break;
@@ -1235,7 +1221,7 @@ public:
case 60:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) // Lich king disappears here
{
- DoScriptText(EMOTE_LIGHT_OF_DAWN17, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN17);
temp->Kill(temp);
}
JumpToNextStep(10000);
@@ -1243,7 +1229,7 @@ public:
case 61:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN60, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN60);
JumpToNextStep(3000);
break;
@@ -1260,50 +1246,50 @@ public:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
{
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[8].x, LightofDawnLoc[8].y, LightofDawnLoc[8].z);
- DoScriptText(SAY_LIGHT_OF_DAWN61, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN61);
}
JumpToNextStep(15000);
break;
case 64:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN62, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN62);
JumpToNextStep(7000);
break;
case 65:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN63, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN63);
JumpToNextStep(10000);
break;
case 66:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN64, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN64);
JumpToNextStep(11000);
break;
case 67:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN65, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN65);
JumpToNextStep(10000);
break;
case 68:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN66, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN66);
JumpToNextStep(8000);
break;
case 69:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN67, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN67);
JumpToNextStep(10000);
break;
case 70:
me->SetStandState(UNIT_STAND_STATE_STAND);
- DoScriptText(SAY_LIGHT_OF_DAWN68, me);
+ Talk(SAY_LIGHT_OF_DAWN68);
JumpToNextStep(10000);
break;
@@ -1381,12 +1367,7 @@ public:
if (uiFight_speech <= diff)
{
- DoScriptText(RAND(SAY_LIGHT_OF_DAWN09, SAY_LIGHT_OF_DAWN10, SAY_LIGHT_OF_DAWN11,
- SAY_LIGHT_OF_DAWN12, SAY_LIGHT_OF_DAWN13, SAY_LIGHT_OF_DAWN14,
- SAY_LIGHT_OF_DAWN15, SAY_LIGHT_OF_DAWN16, SAY_LIGHT_OF_DAWN17,
- SAY_LIGHT_OF_DAWN18, SAY_LIGHT_OF_DAWN19, SAY_LIGHT_OF_DAWN20,
- SAY_LIGHT_OF_DAWN21, SAY_LIGHT_OF_DAWN22, SAY_LIGHT_OF_DAWN23,
- SAY_LIGHT_OF_DAWN24), me);
+ Talk(SAY_LIGHT_OF_DAWN09);
uiFight_speech = urand(15000, 20000);
} else uiFight_speech -= diff;
@@ -1419,11 +1400,11 @@ public:
if (uiFight_duration <= diff + 5000)
{
if (!uiTirionGUID)
- if (Unit* temp = me->SummonCreature(NPC_HIGHLORD_TIRION_FORDRING, LightofDawnLoc[0].x, LightofDawnLoc[0].y, LightofDawnLoc[0].z, 1.528f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000))
+ if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_TIRION_FORDRING, LightofDawnLoc[0].x, LightofDawnLoc[0].y, LightofDawnLoc[0].z, 1.528f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000))
{
temp->setFaction(me->getFaction());
temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
- DoScriptText(SAY_LIGHT_OF_DAWN25, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN25);
uiTirionGUID = temp->GetGUID();
}
}
@@ -1500,7 +1481,7 @@ public:
}
if (Creature* temp = Unit::GetCreature(*me, uiOrbazGUID))
- DoScriptText(EMOTE_LIGHT_OF_DAWN04, temp);
+ temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN04);
if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID))
{
@@ -1515,7 +1496,7 @@ public:
}
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
- DoScriptText(SAY_LIGHT_OF_DAWN26, temp);
+ temp->AI()->Talk(SAY_LIGHT_OF_DAWN26);
SetHoldState(false);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp
index 81211f36df3..6e7f7e103c5 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "PassiveAI.h"
+#include "Player.h"
/*####
## npc_valkyr_battle_maiden
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
index c39a647d5e1..33335c32d05 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
@@ -28,8 +28,8 @@ EndScriptData */
enum eEnums
{
- SAY_AGGRO = -1189019,
- SAY_SPECIALAE = -1189020,
+ SAY_AGGRO = 0,
+ SAY_SPECIALAE = 1,
SPELL_POLYMORPH = 13323,
SPELL_AOESILENCE = 8988,
@@ -69,7 +69,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
@@ -93,7 +93,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
return;
- DoScriptText(SAY_SPECIALAE, me);
+ Talk(SAY_SPECIALAE);
DoCast(me, SPELL_ARCANEBUBBLE);
bCanDetonate = true;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
index ff1a0867de0..b97e1d15dc0 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
@@ -28,9 +28,9 @@ EndScriptData */
enum eEnums
{
- SAY_AGGRO = -1189016,
- SAY_HEALTH = -1189017,
- SAY_KILL = -1189018,
+ SAY_AGGRO = 0,
+ SAY_HEALTH = 1,
+ SAY_KILL = 2,
SPELL_FLAMESHOCK = 8053,
SPELL_SHADOWBOLT = 1106,
@@ -69,12 +69,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*Victim*/)
{
- DoScriptText(SAY_KILL, me);
+ Talk(SAY_KILL);
}
void UpdateAI(const uint32 diff)
@@ -85,7 +85,7 @@ public:
//If we are <35% hp
if (!HpYell && !HealthAbovePct(35))
{
- DoScriptText(SAY_HEALTH, me);
+ Talk(SAY_HEALTH);
HpYell = true;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 5e7fa111a7b..78a5f3797d8 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -28,17 +28,20 @@ EndScriptData */
#include "SpellMgr.h"
#include "scarlet_monastery.h"
#include "LFGMgr.h"
+#include "Player.h"
+#include "SpellInfo.h"
//this texts are already used by 3975 and 3976
enum Says
{
- SAY_ENTRANCE = -1189001,
- SAY_REJOINED = -1189002,
- SAY_LOST_HEAD = -1189003,
- SAY_CONFLAGRATION = -1189004,
- SAY_SPROUTING_PUMPKINS = -1189005,
- SAY_PLAYER_DEATH = -1189006,
- SAY_DEATH = -1189007
+ SAY_LOST_HEAD = 0,
+ SAY_PLAYER_DEATH = 1,
+
+ SAY_ENTRANCE = 0,
+ SAY_REJOINED = 1,
+ SAY_CONFLAGRATION = 2,
+ SAY_SPROUTING_PUMPKINS = 3,
+ SAY_DEATH = 4,
};
uint32 RandomLaugh[] = {11965, 11975, 11976};
@@ -249,13 +252,17 @@ public:
laugh = urand(15000, 30000);
}
- void EnterCombat(Unit* /*who*/) {}
- void SaySound(int32 textEntry, Unit* target = 0)
+ void EnterCombat(Unit* /*who*/) { }
+
+ void SaySound(uint8 textEntry, Unit* target = 0)
{
- DoScriptText(textEntry, me, target);
+ if (target)
+ Talk(textEntry, target->GetGUID());
+ else
+ Talk(textEntry);
+
//DoCast(me, SPELL_HEAD_SPEAKS, true);
- Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000);
- if (speaker)
+ if (Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000))
speaker->CastSpell(speaker, SPELL_HEAD_SPEAKS, false);
laugh += 3000;
}
@@ -515,9 +522,12 @@ public:
}
}
- void SaySound(int32 textEntry, Unit* target = 0)
+ void SaySound(uint8 textEntry, Unit* target = 0)
{
- DoScriptText(textEntry, me, target);
+ if (target)
+ Talk(textEntry, target->GetGUID());
+ else
+ Talk(textEntry);
laugh += 4000;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
index dbbbb7fb0dd..8c1b22e9871 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
@@ -29,15 +29,11 @@ EndScriptData */
enum Says
{
- SAY_AGGRO = -1189000,
- SAY_WHIRLWIND = -1189001,
- SAY_ENRAGE = -1189002,
- SAY_KILL = -1189003
-};
-
-enum Emotes
-{
- EMOTE_ENRAGE = -1189004
+ SAY_AGGRO = 0,
+ SAY_WHIRLWIND = 1,
+ SAY_ENRAGE = 2,
+ SAY_KILL = 3,
+ EMOTE_ENRAGE = 4
};
enum Spells
@@ -82,13 +78,13 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
DoCast(me, SPELL_RUSHINGCHARGE);
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_KILL, me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
@@ -105,8 +101,8 @@ public:
//If we are <30% hp goes Enraged
if (!Enrage && !HealthAbovePct(30) && !me->IsNonMeleeSpellCasted(false))
{
- DoScriptText(EMOTE_ENRAGE, me);
- DoScriptText(SAY_ENRAGE, me);
+ Talk(EMOTE_ENRAGE);
+ Talk(SAY_ENRAGE);
DoCast(me, SPELL_FRENZY);
Enrage = true;
}
@@ -122,7 +118,7 @@ public:
// Whirlwind_Timer
if (Whirlwind_Timer <= diff)
{
- DoScriptText(SAY_WHIRLWIND, me);
+ Talk(SAY_WHIRLWIND);
DoCast(me->getVictim(), SPELL_WHIRLWIND);
Whirlwind_Timer = 30000;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
index 9a66c9ba728..0d08431d39c 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
@@ -28,7 +28,7 @@ EndScriptData */
enum eEnums
{
- SAY_AGGRO = -1189021,
+ SAY_AGGRO = 0,
SPELL_SUMMONSCARLETHOUND = 17164,
SPELL_BLOODLUST = 6742
};
@@ -56,7 +56,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
index 07b5ec5d584..f0e7ac94703 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
@@ -29,11 +29,11 @@ EndScriptData */
enum Says
{
- SAY_AGGRO = -1189011,
- SAY_HEALTH1 = -1189012,
- SAY_HEALTH2 = -1189013,
- SAY_KILL = -1189014,
- SAY_TRIGGER_VORREL = -1189015
+ SAY_AGGRO = 0,
+ SAY_HEALTH1 = 1,
+ SAY_HEALTH2 = 2,
+ SAY_KILL = 3,
+ SAY_TRIGGER_VORREL = 0
};
enum Spells
@@ -71,12 +71,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*Victim*/)
{
- DoScriptText(SAY_KILL, me);
+ Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
@@ -85,8 +85,8 @@ public:
return;
//Any other Actions to do with vorrel? setStandState?
- if (Unit* vorrel = Unit::GetUnit(*me, instance->GetData64(DATA_VORREL)))
- DoScriptText(SAY_TRIGGER_VORREL, vorrel);
+ if (Creature* vorrel = Creature::GetCreature(*me, instance->GetData64(DATA_VORREL)))
+ vorrel->AI()->Talk(SAY_TRIGGER_VORREL);
}
void UpdateAI(const uint32 diff)
@@ -97,13 +97,13 @@ public:
//If we are low on hp Do sayings
if (!Yell60 && !HealthAbovePct(60))
{
- DoScriptText(SAY_HEALTH1, me);
+ Talk(SAY_HEALTH1);
Yell60 = true;
}
if (!Yell30 && !HealthAbovePct(30))
{
- DoScriptText(SAY_HEALTH2, me);
+ Talk(SAY_HEALTH2);
Yell30 = true;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
index 0aad2857a45..651ca453916 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
@@ -26,18 +26,19 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "scarlet_monastery.h"
+#include "SpellInfo.h"
enum Says
{
//Mograine says
- SAY_MO_AGGRO = -1189005,
- SAY_MO_KILL = -1189006,
- SAY_MO_RESSURECTED = -1189007,
+ SAY_MO_AGGRO = 0,
+ SAY_MO_KILL = 1,
+ SAY_MO_RESSURECTED = 2,
//Whitemane says
- SAY_WH_INTRO = -1189008,
- SAY_WH_KILL = -1189009,
- SAY_WH_RESSURECT = -1189010,
+ SAY_WH_INTRO = 0,
+ SAY_WH_KILL = 1,
+ SAY_WH_RESSURECT = 2,
};
enum Spells
@@ -113,7 +114,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_MO_AGGRO, me);
+ Talk(SAY_MO_AGGRO);
DoCast(me, SPELL_RETRIBUTIONAURA);
me->CallForHelp(VISIBLE_RANGE);
@@ -121,7 +122,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_MO_KILL, me);
+ Talk(SAY_MO_KILL);
}
void DamageTaken(Unit* /*doneBy*/, uint32 &damage)
@@ -166,7 +167,7 @@ public:
//When hit with ressurection say text
if (spell->Id == SPELL_SCARLETRESURRECTION)
{
- DoScriptText(SAY_MO_RESSURECTED, me);
+ Talk(SAY_MO_RESSURECTED);
_bFakeDeath = false;
if (instance)
@@ -275,12 +276,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_WH_INTRO, me);
+ Talk(SAY_WH_INTRO);
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_WH_KILL, me);
+ Talk(SAY_WH_KILL);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage)
@@ -302,7 +303,7 @@ public:
if (Unit* Mograine = Unit::GetUnit(*me, instance->GetData64(DATA_MOGRAINE)))
{
DoCast(Mograine, SPELL_SCARLETRESURRECTION);
- DoScriptText(SAY_WH_RESSURECT, me);
+ Talk(SAY_WH_RESSURECT);
_bCanResurrect = false;
}
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
index 3d3d9ae52ae..e65ab21b8cf 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
@@ -132,7 +132,7 @@ public:
}
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
@@ -147,7 +147,7 @@ public:
return 0;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == TYPE_MOGRAINE_AND_WHITE_EVENT)
return encounter[0];
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
index 197ee9a5bfe..08aa86d6a06 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
@@ -29,6 +29,7 @@ EndScriptData */
enum eEnums
{
+ EMOTE_FRENZY_KILL = 0,
SPELL_REND = 16509,
SPELL_BACKHAND = 18103,
SPELL_FRENZY = 8269
@@ -67,7 +68,10 @@ public:
instance->SetData(DATA_DOCTORTHEOLENKRASTINOV_DEATH, 0);
if (instance->GetData(TYPE_GANDLING) == IN_PROGRESS)
+ {
+ instance->SetData(TYPE_GANDLING, IN_PROGRESS);
me->SummonCreature(1853, 180.73f, -9.43856f, 75.507f, 1.61399f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ }
}
}
@@ -100,7 +104,7 @@ public:
if (m_uiFrenzy_Timer <= uiDiff)
{
DoCast(me, SPELL_FRENZY);
- DoScriptText(EMOTE_GENERIC_FRENZY_KILL, me);
+ Talk(EMOTE_FRENZY_KILL);
m_uiFrenzy_Timer = 120000;
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
index b6b5cc0acbd..e1cffbaf90d 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
@@ -67,7 +67,10 @@ public:
instance->SetData(DATA_LADYILLUCIABAROV_DEATH, 0);
if (instance->GetData(TYPE_GANDLING) == IN_PROGRESS)
+ {
+ instance->SetData(TYPE_GANDLING, IN_PROGRESS);
me->SummonCreature(1853, 180.73f, -9.43856f, 75.507f, 1.61399f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ }
}
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
index 406b1a6b10d..1768584cb25 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
@@ -74,7 +74,10 @@ public:
instance->SetData(DATA_INSTRUCTORMALICIA_DEATH, 0);
if (instance->GetData(TYPE_GANDLING) == IN_PROGRESS)
+ {
+ instance->SetData(TYPE_GANDLING, IN_PROGRESS);
me->SummonCreature(1853, 180.73f, -9.43856f, 75.507f, 1.61399f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ }
}
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
index 438c3c88bb4..3035688343c 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
@@ -63,7 +63,10 @@ public:
instance->SetData(DATA_LORDALEXEIBAROV_DEATH, 0);
if (instance->GetData(TYPE_GANDLING) == IN_PROGRESS)
+ {
+ instance->SetData(TYPE_GANDLING, IN_PROGRESS);
me->SummonCreature(1853, 180.73f, -9.43856f, 75.507f, 1.61399f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ }
}
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
index 64bbbbe9514..dfab9dd37df 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
@@ -67,7 +67,10 @@ public:
instance->SetData(DATA_LOREKEEPERPOLKELT_DEATH, 0);
if (instance->GetData(TYPE_GANDLING) == IN_PROGRESS)
+ {
+ instance->SetData(TYPE_GANDLING, IN_PROGRESS);
me->SummonCreature(1853, 180.73f, -9.43856f, 75.507f, 1.61399f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ }
}
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
index 381a039d609..b3d42d4676a 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
@@ -69,7 +69,10 @@ public:
instance->SetData(DATA_THERAVENIAN_DEATH, 0);
if (instance->GetData(TYPE_GANDLING) == IN_PROGRESS)
+ {
+ instance->SetData(TYPE_GANDLING, IN_PROGRESS);
me->SummonCreature(1853, 180.73f, -9.43856f, 75.507f, 1.61399f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ }
}
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
index 3c7771612e2..dd3e591bf61 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
@@ -28,6 +28,7 @@ EndScriptData */
enum eEnums
{
+ EMOTE_FRENZY_KILL = 0,
SPELL_FLAMESTRIKE = 18399,
SPELL_BLAST_WAVE = 16046,
SPELL_FIRESHIELD = 19626,
@@ -88,7 +89,7 @@ public:
if (m_uiFrenzy_Timer <= uiDiff)
{
DoCast(me, SPELL_FRENZY);
- DoScriptText(EMOTE_GENERIC_FRENZY_KILL, me);
+ Talk(EMOTE_FRENZY_KILL);
m_uiFrenzy_Timer = 24000;
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp
index c3b3724ec3d..f8a0c0010d2 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp
@@ -128,21 +128,14 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
- if (type == TYPE_GANDLING)
- {
- if (IsBossDied[0] && IsBossDied[1] && IsBossDied[2] && IsBossDied[3] && IsBossDied[4] && IsBossDied[5])
- {
- m_auiEncounter[0] = IN_PROGRESS;
- return IN_PROGRESS;
- }
- }
-
- return 0;
+ return (type == TYPE_GANDLING &&
+ IsBossDied[0] && IsBossDied[1] && IsBossDied[2] &&
+ IsBossDied[3] && IsBossDied[4] && IsBossDied[5])
+ ? IN_PROGRESS : 0;
}
};
-
};
void AddSC_instance_scholomance()
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
index b405f9eba85..5d9df239870 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
@@ -23,17 +23,19 @@ SDComment:
SDCategory: Shadowfang Keep
EndScriptData */
+#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "shadowfang_keep.h"
+#include "TemporarySummon.h"
#define MAX_ENCOUNTER 4
enum eEnums
{
- SAY_BOSS_DIE_AD = -1033007,
- SAY_BOSS_DIE_AS = -1033008,
- SAY_ARCHMAGE = -1033009,
+ SAY_BOSS_DIE_AD = 0,
+ SAY_BOSS_DIE_AS = 0,
+ SAY_ARCHMAGE = 0,
NPC_ASH = 3850,
NPC_ADA = 3849,
@@ -138,8 +140,8 @@ public:
if (pAda && pAda->isAlive() && pAsh && pAsh->isAlive())
{
- DoScriptText(SAY_BOSS_DIE_AD, pAda);
- DoScriptText(SAY_BOSS_DIE_AS, pAsh);
+ pAda->AI()->Talk(SAY_BOSS_DIE_AD);
+ pAsh->AI()->Talk(SAY_BOSS_DIE_AS);
}
}
@@ -191,7 +193,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -256,7 +258,7 @@ public:
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
summon->SetReactState(REACT_DEFENSIVE);
summon->CastSpell(summon, SPELL_ASHCROMBE_TELEPORT, true);
- DoScriptText(SAY_ARCHMAGE, summon);
+ summon->AI()->Talk(SAY_ARCHMAGE);
uiTimer = 2000;
uiPhase = 2;
break;
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
index 9ee3428c7dd..c98148e645b 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
@@ -34,6 +34,7 @@ EndContentData */
#include "SpellAuraEffects.h"
#include "ScriptedEscortAI.h"
#include "shadowfang_keep.h"
+#include "Player.h"
/*######
## npc_shadowfang_prisoner
@@ -41,13 +42,13 @@ EndContentData */
enum eEnums
{
- SAY_FREE_AS = -1033000,
- SAY_OPEN_DOOR_AS = -1033001,
- SAY_POST_DOOR_AS = -1033002,
- SAY_FREE_AD = -1033003,
- SAY_OPEN_DOOR_AD = -1033004,
- SAY_POST1_DOOR_AD = -1033005,
- SAY_POST2_DOOR_AD = -1033006,
+ SAY_FREE_AS = 0,
+ SAY_OPEN_DOOR_AS = 1,
+ SAY_POST_DOOR_AS = 2,
+ SAY_FREE_AD = 0,
+ SAY_OPEN_DOOR_AD = 1,
+ SAY_POST1_DOOR_AD = 2,
+ SAY_POST2_DOOR_AD = 3,
SPELL_UNLOCK = 6421,
NPC_ASH = 3850,
@@ -109,15 +110,15 @@ public:
{
case 0:
if (uiNpcEntry == NPC_ASH)
- DoScriptText(SAY_FREE_AS, me);
+ Talk(SAY_FREE_AS);
else
- DoScriptText(SAY_FREE_AD, me);
+ Talk(SAY_FREE_AD);
break;
case 10:
if (uiNpcEntry == NPC_ASH)
- DoScriptText(SAY_OPEN_DOOR_AS, me);
+ Talk(SAY_OPEN_DOOR_AS);
else
- DoScriptText(SAY_OPEN_DOOR_AD, me);
+ Talk(SAY_OPEN_DOOR_AD);
break;
case 11:
if (uiNpcEntry == NPC_ASH)
@@ -125,16 +126,16 @@ public:
break;
case 12:
if (uiNpcEntry == NPC_ASH)
- DoScriptText(SAY_POST_DOOR_AS, me);
+ Talk(SAY_POST_DOOR_AS);
else
- DoScriptText(SAY_POST1_DOOR_AD, me);
+ Talk(SAY_POST1_DOOR_AD);
if (instance)
instance->SetData(TYPE_FREE_NPC, DONE);
break;
case 13:
if (uiNpcEntry != NPC_ASH)
- DoScriptText(SAY_POST2_DOOR_AD, me);
+ Talk(SAY_POST2_DOOR_AD);
break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
index 47c6b66f4bb..96e59a657a3 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "stratholme.h"
+#include "Player.h"
/*#####
# Additional:
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
index 98df9638bae..2e4ec7278fc 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "stratholme.h"
+#include "Player.h"
#define GO_SERVICE_ENTRANCE 175368
#define GO_GAUNTLET_GATE1 175357
@@ -401,7 +402,7 @@ class instance_stratholme : public InstanceMapScript
OUT_LOAD_INST_DATA_COMPLETE;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -425,7 +426,7 @@ class instance_stratholme : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
index 9b4591bc633..467b532163b 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
@@ -34,6 +34,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "stratholme.h"
#include "Group.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## go_gauntlet_gate (this is the _first_ of the gauntlet gates, two exist)
diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
index e0987961f7e..624e5460213 100644
--- a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
+++ b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
@@ -193,7 +193,7 @@ public:
State = data;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == EVENT_STATE)
return State;
diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp
index 83ff86f5b88..040e2153c2d 100644
--- a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp
+++ b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "sunken_temple.h"
+#include "Player.h"
/*#####
# at_malfurion_Stormrage_trigger
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index c763cb69dec..3e9d2e991fc 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -28,41 +28,37 @@ EndScriptData */
enum Quotes
{
- YELL_INTRO = -1580017,
- YELL_INTRO_BREAK_ICE = -1580018,
- YELL_INTRO_CHARGE = -1580019,
- YELL_INTRO_KILL_MADRIGOSA = -1580020,
- YELL_INTRO_TAUNT = -1580021,
-
- YELL_MADR_ICE_BARRIER = -1580031,
- YELL_MADR_INTRO = -1580032,
- YELL_MADR_ICE_BLOCK = -1580033,
- YELL_MADR_TRAP = -1580034,
- YELL_MADR_DEATH = -1580035,
-
- YELL_AGGRO = -1580022,
- YELL_KILL1 = -1580023,
- YELL_KILL2 = -1580024,
- YELL_KILL3 = -1580025,
- YELL_LOVE1 = -1580026,
- YELL_LOVE2 = -1580027,
- YELL_LOVE3 = -1580028,
- YELL_BERSERK = -1580029,
- YELL_DEATH = -1580030
+ YELL_INTRO = 0,
+ YELL_INTRO_BREAK_ICE = 1,
+ YELL_INTRO_CHARGE = 2,
+ YELL_INTRO_KILL_MADRIGOSA = 3,
+ YELL_INTRO_TAUNT = 4,
+
+ YELL_AGGRO = 5,
+ YELL_KILL = 6,
+ YELL_LOVE = 7,
+ YELL_BERSERK = 8,
+ YELL_DEATH = 9,
+
+ YELL_MADR_ICE_BARRIER = 0,
+ YELL_MADR_INTRO = 1,
+ YELL_MADR_ICE_BLOCK = 2,
+ YELL_MADR_TRAP = 3,
+ YELL_MADR_DEATH = 4,
};
enum Spells
{
- SPELL_METEOR_SLASH = 45150,
- SPELL_BURN = 46394,
- SPELL_STOMP = 45185,
- SPELL_BERSERK = 26662,
- SPELL_DUAL_WIELD = 42459,
-
- SPELL_INTRO_FROST_BLAST = 45203,
- SPELL_INTRO_FROSTBOLT = 44843,
- SPELL_INTRO_ENCAPSULATE = 45665,
- SPELL_INTRO_ENCAPSULATE_CHANELLING = 45661
+ SPELL_METEOR_SLASH = 45150,
+ SPELL_BURN = 46394,
+ SPELL_STOMP = 45185,
+ SPELL_BERSERK = 26662,
+ SPELL_DUAL_WIELD = 42459,
+
+ SPELL_INTRO_FROST_BLAST = 45203,
+ SPELL_INTRO_FROSTBOLT = 44843,
+ SPELL_INTRO_ENCAPSULATE = 45665,
+ SPELL_INTRO_ENCAPSULATE_CHANELLING = 45661
};
#define FELMYST 25038
@@ -122,7 +118,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(YELL_AGGRO, me);
+ Talk(YELL_AGGRO);
if (instance)
instance->SetData(DATA_BRUTALLUS_EVENT, IN_PROGRESS);
@@ -130,12 +126,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(YELL_KILL1, YELL_KILL2, YELL_KILL3), me);
+ Talk(YELL_KILL);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(YELL_DEATH, me);
+ Talk(YELL_DEATH);
if (instance)
{
@@ -199,19 +195,19 @@ public:
switch (IntroPhase)
{
case 0:
- DoScriptText(YELL_MADR_ICE_BARRIER, Madrigosa);
+ Madrigosa->AI()->Talk(YELL_MADR_ICE_BARRIER);
IntroPhaseTimer = 7000;
++IntroPhase;
break;
case 1:
me->SetInFront(Madrigosa);
Madrigosa->SetInFront(me);
- DoScriptText(YELL_MADR_INTRO, Madrigosa, me);
+ Madrigosa->AI()->Talk(YELL_MADR_INTRO, me->GetGUID());
IntroPhaseTimer = 9000;
++IntroPhase;
break;
case 2:
- DoScriptText(YELL_INTRO, me, Madrigosa);
+ Talk(YELL_INTRO, Madrigosa->GetGUID());
IntroPhaseTimer = 13000;
++IntroPhase;
break;
@@ -225,32 +221,32 @@ public:
++IntroPhase;
break;
case 4:
- DoScriptText(YELL_INTRO_BREAK_ICE, me);
+ Talk(YELL_INTRO_BREAK_ICE);
IntroPhaseTimer = 6000;
++IntroPhase;
break;
case 5:
Madrigosa->CastSpell(me, SPELL_INTRO_ENCAPSULATE_CHANELLING, false);
- DoScriptText(YELL_MADR_TRAP, Madrigosa);
+ Madrigosa->AI()->Talk(YELL_MADR_TRAP);
DoCast(me, SPELL_INTRO_ENCAPSULATE);
IntroPhaseTimer = 11000;
++IntroPhase;
break;
case 6:
- DoScriptText(YELL_INTRO_CHARGE, me);
+ Talk(YELL_INTRO_CHARGE);
IntroPhaseTimer = 5000;
++IntroPhase;
break;
case 7:
me->Kill(Madrigosa);
- DoScriptText(YELL_MADR_DEATH, Madrigosa);
+ Madrigosa->AI()->Talk(YELL_MADR_DEATH);
me->SetFullHealth();
me->AttackStop();
IntroPhaseTimer = 4000;
++IntroPhase;
break;
case 8:
- DoScriptText(YELL_INTRO_KILL_MADRIGOSA, me);
+ Talk(YELL_INTRO_KILL_MADRIGOSA);
me->SetOrientation(0.14f);
me->StopMoving();
Madrigosa->setDeathState(CORPSE);
@@ -258,7 +254,7 @@ public:
++IntroPhase;
break;
case 9:
- DoScriptText(YELL_INTRO_TAUNT, me);
+ Talk(YELL_INTRO_TAUNT);
IntroPhaseTimer = 5000;
++IntroPhase;
break;
@@ -316,7 +312,7 @@ public:
if (StompTimer <= diff)
{
- DoScriptText(RAND(YELL_LOVE1, YELL_LOVE2, YELL_LOVE3), me);
+ Talk(YELL_LOVE);
DoCast(me->getVictim(), SPELL_STOMP);
StompTimer = 30000;
} else StompTimer -= diff;
@@ -336,7 +332,7 @@ public:
if (BerserkTimer < diff && !Enraged)
{
- DoScriptText(YELL_BERSERK, me);
+ Talk(YELL_BERSERK);
DoCast(me, SPELL_BERSERK);
Enraged = true;
} else BerserkTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 34548ec9116..23a83a7ee8f 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -24,38 +24,31 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "sunwell_plateau.h"
+#include "SpellInfo.h"
enum Quotes
{
- //Alytesh
- YELL_CANFLAGRATION = -1580044,
- YELL_SISTER_SACROLASH_DEAD = -1580045,
- YELL_ALY_KILL_1 = -1580046,
- YELL_ALY_KILL_2 = -1580047,
- YELL_ALY_DEAD = -1580048,
- YELL_BERSERK = -1580049,
-
- //Sacrolash
- YELL_SHADOW_NOVA = -1580050,
- YELL_SISTER_ALYTHESS_DEAD = -1580051,
- YELL_SAC_KILL_1 = -1580052,
- YELL_SAC_KILL_2 = -1580053,
- SAY_SAC_DEAD = -1580054,
- YELL_ENRAGE = -1580055,
-
- //Intro
- YELL_INTRO_SAC_1 = -1580056,
- YELL_INTRO_ALY_2 = -1580057,
- YELL_INTRO_SAC_3 = -1580058,
- YELL_INTRO_ALY_4 = -1580059,
- YELL_INTRO_SAC_5 = -1580060,
- YELL_INTRO_ALY_6 = -1580061,
- YELL_INTRO_SAC_7 = -1580062,
- YELL_INTRO_ALY_8 = -1580063,
-
- //Emote
- EMOTE_SHADOW_NOVA = -1580064,
- EMOTE_CONFLAGRATION = -1580065
+ YELL_INTRO_SAC_1 = 0,
+ YELL_INTRO_SAC_3 = 1,
+ YELL_INTRO_SAC_5 = 2,
+ YELL_INTRO_SAC_7 = 3,
+ YELL_SAC_DEAD = 4,
+ EMOTE_SHADOW_NOVA = 5,
+ YELL_ENRAGE = 6,
+ YELL_SISTER_ALYTHESS_DEAD = 7,
+ YELL_SAC_KILL = 8,
+ YELL_SHADOW_NOVA = 9,
+
+ YELL_INTRO_ALY_2 = 0,
+ YELL_INTRO_ALY_4 = 1,
+ YELL_INTRO_ALY_6 = 2,
+ YELL_INTRO_ALY_8 = 3,
+ EMOTE_CONFLAGRATION = 4,
+ YELL_ALY_KILL = 5,
+ YELL_ALY_DEAD = 6,
+ YELL_SISTER_SACROLASH_DEAD = 7,
+ YELL_CANFLAGRATION = 8,
+ YELL_BERSERK = 9,
};
enum Spells
@@ -164,7 +157,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
if (rand()%4 == 0)
- DoScriptText(RAND(YELL_SAC_KILL_1, YELL_SAC_KILL_2), me);
+ Talk(YELL_SAC_KILL);
}
void JustDied(Unit* /*killer*/)
@@ -172,7 +165,7 @@ public:
// only if ALY death
if (SisterDeath)
{
- DoScriptText(SAY_SAC_DEAD, me);
+ Talk(YELL_SAC_DEAD);
if (instance)
instance->SetData(DATA_EREDAR_TWINS_EVENT, DONE);
@@ -234,7 +227,7 @@ public:
Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
if (Temp && Temp->isDead())
{
- DoScriptText(YELL_SISTER_ALYTHESS_DEAD, me);
+ Talk(YELL_SISTER_ALYTHESS_DEAD);
DoCast(me, SPELL_EMPOWER);
me->InterruptSpell(CURRENT_GENERIC_SPELL);
SisterDeath = true;
@@ -274,8 +267,8 @@ public:
if (!SisterDeath)
{
if (target)
- DoScriptText(EMOTE_SHADOW_NOVA, me, target);
- DoScriptText(YELL_SHADOW_NOVA, me);
+ Talk(EMOTE_SHADOW_NOVA, target->GetGUID());
+ Talk(YELL_SHADOW_NOVA);
}
ShadownovaTimer = 30000+(rand()%5000);
}
@@ -323,7 +316,7 @@ public:
if (EnrageTimer < diff && !Enraged)
{
me->InterruptSpell(CURRENT_GENERIC_SPELL);
- DoScriptText(YELL_ENRAGE, me);
+ Talk(YELL_ENRAGE);
DoCast(me, SPELL_ENRAGE);
Enraged = true;
} else EnrageTimer -= diff;
@@ -456,7 +449,7 @@ public:
{
if (rand()%4 == 0)
{
- DoScriptText(RAND(YELL_ALY_KILL_1, YELL_ALY_KILL_2), me);
+ Talk(YELL_ALY_KILL);
}
}
@@ -464,7 +457,7 @@ public:
{
if (SisterDeath)
{
- DoScriptText(YELL_ALY_DEAD, me);
+ Talk(YELL_ALY_DEAD);
if (instance)
instance->SetData(DATA_EREDAR_TWINS_EVENT, DONE);
@@ -527,24 +520,24 @@ public:
case 0: return 0;
case 1:
if (Sacrolash)
- DoScriptText(YELL_INTRO_SAC_1, Sacrolash);
+ Sacrolash->AI()->Talk(YELL_INTRO_SAC_1);
return 1000;
- case 2: DoScriptText(YELL_INTRO_ALY_2, me); return 1000;
+ case 2: Talk(YELL_INTRO_ALY_2); return 1000;
case 3:
if (Sacrolash)
- DoScriptText(YELL_INTRO_SAC_3, Sacrolash);
+ Sacrolash->AI()->Talk(YELL_INTRO_SAC_3);
return 2000;
- case 4: DoScriptText(YELL_INTRO_ALY_4, me); return 1000;
+ case 4: Talk(YELL_INTRO_ALY_4); return 1000;
case 5:
if (Sacrolash)
- DoScriptText(YELL_INTRO_SAC_5, Sacrolash);
+ Sacrolash->AI()->Talk(YELL_INTRO_SAC_5);
return 2000;
- case 6: DoScriptText(YELL_INTRO_ALY_6, me); return 1000;
+ case 6: Talk(YELL_INTRO_ALY_6); return 1000;
case 7:
if (Sacrolash)
- DoScriptText(YELL_INTRO_SAC_7, Sacrolash);
+ Sacrolash->AI()->Talk(YELL_INTRO_SAC_7);
return 3000;
- case 8: DoScriptText(YELL_INTRO_ALY_8, me); return 900000;
+ case 8: Talk(YELL_INTRO_ALY_8); return 900000;
}
return 10000;
}
@@ -567,7 +560,7 @@ public:
Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
if (Temp && Temp->isDead())
{
- DoScriptText(YELL_SISTER_SACROLASH_DEAD, me);
+ Talk(YELL_SISTER_SACROLASH_DEAD);
DoCast(me, SPELL_EMPOWER);
me->InterruptSpell(CURRENT_GENERIC_SPELL);
SisterDeath = true;
@@ -621,8 +614,8 @@ public:
if (!SisterDeath)
{
if (target)
- DoScriptText(EMOTE_CONFLAGRATION, me, target);
- DoScriptText(YELL_CANFLAGRATION, me);
+ Talk(EMOTE_CONFLAGRATION, target->GetGUID());
+ Talk(YELL_CANFLAGRATION);
}
BlazeTimer = 4000;
@@ -660,7 +653,7 @@ public:
if (EnrageTimer < diff && !Enraged)
{
me->InterruptSpell(CURRENT_GENERIC_SPELL);
- DoScriptText(YELL_BERSERK, me);
+ Talk(YELL_BERSERK);
DoCast(me, SPELL_ENRAGE);
Enraged = true;
} else EnrageTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index bc841d76714..35fabb7a195 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -31,14 +31,13 @@ EndScriptData */
enum Yells
{
- YELL_BIRTH = -1580036,
- YELL_KILL1 = -1580037,
- YELL_KILL2 = -1580038,
- YELL_BREATH = -1580039,
- YELL_TAKEOFF = -1580040,
- YELL_BERSERK = -1580041,
- YELL_DEATH = -1580042,
- YELL_KALECGOS = -1580043, // after felmyst's death spawned and say this
+ YELL_BIRTH = 0,
+ YELL_KILL = 1,
+ YELL_BREATH = 2,
+ YELL_TAKEOFF = 3,
+ YELL_BERSERK = 4,
+ YELL_DEATH = 5,
+ //YELL_KALECGOS = 6, Not used. After felmyst's death spawned and say this
};
enum Spells
@@ -181,17 +180,17 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(YELL_KILL1, YELL_KILL2), me);
+ Talk(YELL_KILL);
}
void JustRespawned()
{
- DoScriptText(YELL_BIRTH, me);
+ Talk(YELL_BIRTH);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(YELL_DEATH, me);
+ Talk(YELL_DEATH);
if (instance)
instance->SetData(DATA_FELMYST_EVENT, DONE);
@@ -279,7 +278,7 @@ public:
me->GetMotionMaster()->Clear(false);
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
me->StopMoving();
- DoScriptText(YELL_TAKEOFF, me);
+ Talk(YELL_TAKEOFF);
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 2000);
break;
case 1:
@@ -424,7 +423,7 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_BERSERK:
- DoScriptText(YELL_BERSERK, me);
+ Talk(YELL_BERSERK);
DoCast(me, SPELL_BERSERK, true);
events.ScheduleEvent(EVENT_BERSERK, 10000);
break;
@@ -459,7 +458,7 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_BERSERK:
- DoScriptText(YELL_BERSERK, me);
+ Talk(YELL_BERSERK);
DoCast(me, SPELL_BERSERK, true);
break;
case EVENT_FLIGHT_SEQUENCE:
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 3e503a547d8..c7db80c7f22 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -26,63 +26,57 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "sunwell_plateau.h"
+#include "Player.h"
+#include "WorldSession.h"
enum Yells
{
- //Kalecgos dragon form
- SAY_EVIL_AGGRO = -1580000,
- SAY_EVIL_SPELL1 = -1580001,
- SAY_EVIL_SPELL2 = -1580002,
- SAY_EVIL_SLAY1 = -1580003,
- SAY_EVIL_SLAY2 = -1580004,
- SAY_EVIL_ENRAGE = -1580005,
-
- //Kalecgos humanoid form
- SAY_GOOD_AGGRO = -1580006,
- SAY_GOOD_NEAR_DEATH = -1580007,
- SAY_GOOD_NEAR_DEATH2 = -1580008,
- SAY_GOOD_PLRWIN = -1580009,
-
- //Sathrovarr
- SAY_SATH_AGGRO = -1580010,
- SAY_SATH_DEATH = -1580011,
- SAY_SATH_SPELL1 = -1580012,
- SAY_SATH_SPELL2 = -1580013,
- SAY_SATH_SLAY1 = -1580014,
- SAY_SATH_SLAY2 = -1580015,
- SAY_SATH_ENRAGE = -1580016,
+ SAY_SATH_AGGRO = 0,
+ SAY_SATH_SLAY = 1,
+ SAY_SATH_DEATH = 2,
+ SAY_SATH_SPELL1 = 3,
+ SAY_SATH_SPELL2 = 4,
+
+ SAY_EVIL_AGGRO = 0,
+ SAY_EVIL_SLAY = 1,
+ SAY_GOOD_PLRWIN = 2,
+ SAY_EVIL_ENRAGE = 3,
+
+ SAY_GOOD_AGGRO = 0,
+ SAY_GOOD_NEAR_DEATH = 1,
+ SAY_GOOD_NEAR_DEATH2 = 2,
};
enum Spells
{
- AURA_SUNWELL_RADIANCE = 45769,
- AURA_SPECTRAL_EXHAUSTION = 44867,
- AURA_SPECTRAL_REALM = 46021,
- AURA_SPECTRAL_INVISIBILITY = 44801,
- AURA_DEMONIC_VISUAL = 44800,
-
- SPELL_SPECTRAL_BLAST = 44869,
- SPELL_TELEPORT_SPECTRAL = 46019,
- SPELL_ARCANE_BUFFET = 45018,
- SPELL_FROST_BREATH = 44799,
- SPELL_TAIL_LASH = 45122,
-
- SPELL_BANISH = 44836,
- SPELL_TRANSFORM_KALEC = 44670,
- SPELL_ENRAGE = 44807,
-
- SPELL_CORRUPTION_STRIKE = 45029,
- SPELL_AGONY_CURSE = 45032,
- SPELL_SHADOW_BOLT = 45031,
-
- SPELL_HEROIC_STRIKE = 45026,
- SPELL_REVITALIZE = 45027
+ AURA_SUNWELL_RADIANCE = 45769,
+ AURA_SPECTRAL_EXHAUSTION = 44867,
+ AURA_SPECTRAL_REALM = 46021,
+ AURA_SPECTRAL_INVISIBILITY = 44801,
+ AURA_DEMONIC_VISUAL = 44800,
+
+ SPELL_SPECTRAL_BLAST = 44869,
+ SPELL_TELEPORT_SPECTRAL = 46019,
+ SPELL_ARCANE_BUFFET = 45018,
+ SPELL_FROST_BREATH = 44799,
+ SPELL_TAIL_LASH = 45122,
+
+ SPELL_BANISH = 44836,
+ SPELL_TRANSFORM_KALEC = 44670,
+ SPELL_ENRAGE = 44807,
+
+ SPELL_CORRUPTION_STRIKE = 45029,
+ SPELL_AGONY_CURSE = 45032,
+ SPELL_SHADOW_BOLT = 45031,
+
+ SPELL_HEROIC_STRIKE = 45026,
+ SPELL_REVITALIZE = 45027
};
enum SWPActions
{
- DO_ENRAGE = 1,
- DO_BANISH = 2,
+ DO_ENRAGE = 1,
+ DO_BANISH = 2,
};
#define GO_FAILED "You are unable to use this currently."
@@ -358,7 +352,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
me->SetStandState(UNIT_STAND_STATE_STAND);
- DoScriptText(SAY_EVIL_AGGRO, me);
+ Talk(SAY_EVIL_AGGRO);
DoZoneInCombat();
if (instance)
@@ -367,7 +361,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_EVIL_SLAY1, SAY_EVIL_SLAY2), me);
+ Talk(SAY_EVIL_SLAY);
}
void MovementInform(uint32 type, uint32 /*id*/)
@@ -406,7 +400,7 @@ public:
TalkTimer = 1000;
break;
case 2:
- DoScriptText(SAY_GOOD_PLRWIN, me);
+ Talk(SAY_GOOD_PLRWIN);
TalkTimer = 10000;
break;
case 3:
@@ -424,7 +418,7 @@ public:
switch (TalkSequence)
{
case 1:
- DoScriptText(SAY_EVIL_ENRAGE, me);
+ Talk(SAY_EVIL_ENRAGE);
TalkTimer = 3000;
break;
case 2:
@@ -503,20 +497,20 @@ public:
switch (YellSequence)
{
case 0:
- DoScriptText(SAY_GOOD_AGGRO, me);
+ Talk(SAY_GOOD_AGGRO);
++YellSequence;
break;
case 1:
if (HealthBelowPct(50))
{
- DoScriptText(SAY_GOOD_NEAR_DEATH, me);
+ Talk(SAY_GOOD_NEAR_DEATH);
++YellSequence;
}
break;
case 2:
if (HealthBelowPct(10))
{
- DoScriptText(SAY_GOOD_NEAR_DEATH2, me);
+ Talk(SAY_GOOD_NEAR_DEATH2);
++YellSequence;
}
break;
@@ -640,7 +634,7 @@ public:
me->AddThreat(Kalec, 100.0f);
Kalec->setActive(true);
}
- DoScriptText(SAY_SATH_AGGRO, me);
+ Talk(SAY_SATH_AGGRO);
}
void DamageTaken(Unit* done_by, uint32 &damage)
@@ -662,12 +656,12 @@ public:
EnterEvadeMode();
return;
}
- DoScriptText(RAND(SAY_SATH_SLAY1, SAY_SATH_SLAY2), me);
+ Talk(SAY_SATH_SLAY);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_SATH_DEATH, me);
+ Talk(SAY_SATH_DEATH);
me->SetPosition(me->GetPositionX(), me->GetPositionY(), DRAGON_REALM_Z, me->GetOrientation());
TeleportAllPlayersBack();
if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID))
@@ -779,7 +773,7 @@ public:
if (ShadowBoltTimer <= diff)
{
- if (!(rand()%5))DoScriptText(SAY_SATH_SPELL1, me);
+ if (!(rand()%5))Talk(SAY_SATH_SPELL1);
DoCast(me, SPELL_SHADOW_BOLT);
ShadowBoltTimer = 7000+(rand()%3000);
} else ShadowBoltTimer -= diff;
@@ -794,7 +788,7 @@ public:
if (CorruptionStrikeTimer <= diff)
{
- if (!(rand()%5))DoScriptText(SAY_SATH_SPELL2, me);
+ if (!(rand()%5))Talk(SAY_SATH_SPELL2);
DoCast(me->getVictim(), SPELL_CORRUPTION_STRIKE);
CorruptionStrikeTimer = 13000;
} else CorruptionStrikeTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 096f6daaec2..c2552963b0e 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -28,50 +28,39 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "sunwell_plateau.h"
#include <math.h>
+#include "Player.h"
/*** Speech and sounds***/
enum Yells
{
- // These are used throughout Sunwell and Magisters(?). Players can hear this while running through the instances.
- SAY_KJ_OFFCOMBAT1 = -1580066,
- SAY_KJ_OFFCOMBAT2 = -1580067,
- SAY_KJ_OFFCOMBAT3 = -1580068,
- SAY_KJ_OFFCOMBAT4 = -1580069,
- SAY_KJ_OFFCOMBAT5 = -1580070,
-
- // Encounter speech and sounds
- SAY_KJ_EMERGE = -1580071,
- SAY_KJ_SLAY1 = -1580072,
- SAY_KJ_SLAY2 = -1580073,
- SAY_KJ_REFLECTION1 = -1580074,
- SAY_KJ_REFLECTION2 = -1580075,
- SAY_KJ_DARKNESS1 = -1580076,
- SAY_KJ_DARKNESS2 = -1580077,
- SAY_KJ_DARKNESS3 = -1580078,
- SAY_KJ_PHASE3 = -1580079,
- SAY_KJ_PHASE4 = -1580080,
- SAY_KJ_PHASE5 = -1580081,
- SAY_KJ_DEATH = -1580093,
- EMOTE_KJ_DARKNESS = -1580094,
-
- /*** Kalecgos - Anveena speech at the beginning of Phase 5; Anveena's sacrifice ***/
- SAY_KALECGOS_AWAKEN = -1580082,
- SAY_ANVEENA_IMPRISONED = -1580083,
- SAY_KALECGOS_LETGO = -1580084,
- SAY_ANVEENA_LOST = -1580085,
- SAY_KALECGOS_FOCUS = -1580086,
- SAY_ANVEENA_KALEC = -1580087,
- SAY_KALECGOS_FATE = -1580088,
- SAY_ANVEENA_GOODBYE = -1580089,
- SAY_KALECGOS_GOODBYE = -1580090,
- SAY_KALECGOS_ENCOURAGE = -1580091,
-
- /*** Kalecgos says throughout the fight ***/
- SAY_KALECGOS_JOIN = -1580092,
- SAY_KALEC_ORB_READY1 = -1580095,
- SAY_KALEC_ORB_READY2 = -1580096,
- SAY_KALEC_ORB_READY3 = -1580097,
- SAY_KALEC_ORB_READY4 = -1580098
+ SAY_KJ_OFFCOMBAT = 0,
+
+ SAY_KALECGOS_ENCOURAGE = 0,
+ SAY_KALECGOS_READY1 = 1,
+ SAY_KALECGOS_READY2 = 2,
+ SAY_KALECGOS_READY3 = 3,
+ SAY_KALECGOS_READY4 = 4,
+ SAY_KALECGOS_AWAKEN = 5,
+ SAY_KALECGOS_LETGO = 6,
+ SAY_KALECGOS_FOCUS = 7,
+ SAY_KALECGOS_FATE = 8,
+ SAY_KALECGOS_GOODBYE = 9,
+ SAY_KALECGOS_JOIN = 10,
+
+ SAY_KJ_DEATH = 0,
+ SAY_KJ_SLAY = 1,
+ SAY_KJ_REFLECTION = 2,
+ SAY_KJ_EMERGE = 3,
+ SAY_KJ_DARKNESS = 4,
+ SAY_KJ_PHASE3 = 5,
+ SAY_KJ_PHASE4 = 6,
+ SAY_KJ_PHASE5 = 7,
+ EMOTE_KJ_DARKNESS = 8,
+
+ SAY_ANVEENA_IMPRISONED = 0,
+ SAY_ANVEENA_LOST = 1,
+ SAY_ANVEENA_KALEC = 2,
+ SAY_ANVEENA_GOODBYE = 3,
};
/*** Spells used during the encounter ***/
@@ -321,7 +310,7 @@ public:
pOrb->Refresh();
}
}
- DoScriptText(SAY_KALECGOS_ENCOURAGE, me);
+ Talk(SAY_KALECGOS_ENCOURAGE);
}
else
{
@@ -337,10 +326,10 @@ public:
++EmpowerCount;
switch (EmpowerCount)
{
- case 1: DoScriptText(SAY_KALEC_ORB_READY1, me); break;
- case 2: DoScriptText(SAY_KALEC_ORB_READY2, me); break;
- case 3: DoScriptText(SAY_KALEC_ORB_READY3, me); break;
- case 4: DoScriptText(SAY_KALEC_ORB_READY4, me); break;
+ case 1: Talk(SAY_KALECGOS_READY1); break;
+ case 2: Talk(SAY_KALECGOS_READY2); break;
+ case 3: Talk(SAY_KALECGOS_READY3); break;
+ case 4: Talk(SAY_KALECGOS_READY4); break;
}
}
}
@@ -468,7 +457,7 @@ public:
if (uiRandomSayTimer < diff)
{
if (instance && instance->GetData(DATA_MURU_EVENT) != DONE && instance->GetData(DATA_KILJAEDEN_EVENT) == NOT_STARTED)
- DoScriptText(RAND(SAY_KJ_OFFCOMBAT1, SAY_KJ_OFFCOMBAT2, SAY_KJ_OFFCOMBAT3, SAY_KJ_OFFCOMBAT4, SAY_KJ_OFFCOMBAT5), me);
+ Talk(SAY_KJ_OFFCOMBAT);
uiRandomSayTimer = 30000;
} else uiRandomSayTimer -= diff;
@@ -612,7 +601,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_KJ_DEATH, me);
+ Talk(SAY_KJ_DEATH);
summons.DespawnAll();
if (instance)
@@ -621,7 +610,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_KJ_SLAY1, SAY_KJ_SLAY2), me);
+ Talk(SAY_KJ_SLAY);
}
void EnterEvadeMode()
@@ -656,7 +645,7 @@ public:
void CastSinisterReflection()
{
- DoScriptText(RAND(SAY_KJ_REFLECTION1, SAY_KJ_REFLECTION2), me);
+ Talk(SAY_KJ_REFLECTION);
for (uint8 i = 0; i < 4; ++i)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true, -SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT))
@@ -716,8 +705,8 @@ public:
{
SpeechTimer = 0;
if (instance)
- if (Creature* pSpeechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature)))
- DoScriptText(Speeches[speechCount].textid, pSpeechCreature);
+ if (Creature* speechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature)))
+ speechCreature->AI()->Talk(Speeches[speechCount].textid);
if (speechCount == 12)
if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA)))
pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false);
@@ -798,7 +787,7 @@ public:
// Begins to channel for 8 seconds, then deals 50'000 damage to all raid members.
if (!IsInDarkness)
{
- DoScriptText(EMOTE_KJ_DARKNESS, me);
+ Talk(EMOTE_KJ_DARKNESS);
DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS, false);
ChangeTimers(true, 9000);
Timer[TIMER_DARKNESS] = 8750;
@@ -812,7 +801,7 @@ public:
Timer[TIMER_DARKNESS] = (Phase == PHASE_SACRIFICE) ? 15000 : urand(40000, 70000);
IsInDarkness = false;
DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS_DAMAGE);
- DoScriptText(RAND(SAY_KJ_DARKNESS1, SAY_KJ_DARKNESS2, SAY_KJ_DARKNESS3), me);
+ Talk(SAY_KJ_DARKNESS);
}
Timer[TIMER_SOUL_FLAY] = 9000;
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index 9fd0a5eb5d8..d23ca834f86 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -24,6 +24,8 @@ SDComment: all sounds, black hole effect triggers to often (46228)
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "sunwell_plateau.h"
+#include "Player.h"
+#include "SpellInfo.h"
// Muru & Entropius's spells
enum Spells
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
index bea73837304..c4bb41036bc 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "sunwell_plateau.h"
+#include "Player.h"
#define MAX_ENCOUNTER 6
@@ -121,7 +122,7 @@ public:
return false;
}
- Player* GetPlayerInMap()
+ Player const * GetPlayerInMap() const
{
Map::PlayerList const& players = instance->GetPlayers();
@@ -181,7 +182,7 @@ public:
}
}
- uint32 GetData(uint32 id)
+ uint32 GetData(uint32 id) const
{
switch (id)
{
@@ -195,7 +196,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 id)
+ uint64 GetData64(uint32 id) const
{
switch (id)
{
@@ -214,8 +215,8 @@ public:
case DATA_ANVEENA: return Anveena;
case DATA_KALECGOS_KJ: return KalecgosKJ;
case DATA_PLAYER_GUID:
- Player* Target = GetPlayerInMap();
- return Target->GetGUID();
+ Player const* target = GetPlayerInMap();
+ return target ? target->GetGUID() : 0;
}
return 0;
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index 74fad4f94d8..0b7a62f6563 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -29,6 +29,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "uldaman.h"
+#include "Player.h"
#define SAY_AGGRO "Who dares awaken Archaedas? Who dares the wrath of the makers!"
#define SOUND_AGGRO 5855
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
index c05a36f93a7..1537f0eeb88 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
@@ -26,11 +26,13 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
-#define SAY_AGGRO -1070000
-
-#define SPELL_ARCINGSMASH 8374
-#define SPELL_KNOCKAWAY 10101
-#define SPELL_WSTOMP 11876
+enum Ironaya
+{
+ SAY_AGGRO = 0,
+ SPELL_ARCINGSMASH = 8374,
+ SPELL_KNOCKAWAY = 10101,
+ SPELL_WSTOMP = 11876,
+};
class boss_ironaya : public CreatureScript
{
@@ -58,7 +60,7 @@ class boss_ironaya : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 uiDiff)
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
index ee82da668f8..efbc4f75ae1 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
@@ -466,20 +466,27 @@ class instance_uldaman : public InstanceMapScript
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
- if (identifier == 0) return uiWhoWokeuiArchaedasGUID;
- if (identifier == 1) return vVaultWalker[0]; // VaultWalker1
- if (identifier == 2) return vVaultWalker[1]; // VaultWalker2
- if (identifier == 3) return vVaultWalker[2]; // VaultWalker3
- if (identifier == 4) return vVaultWalker[3]; // VaultWalker4
-
- if (identifier == 5) return vEarthenGuardian[0];
- if (identifier == 6) return vEarthenGuardian[1];
- if (identifier == 7) return vEarthenGuardian[2];
- if (identifier == 8) return vEarthenGuardian[3];
- if (identifier == 9) return vEarthenGuardian[4];
- if (identifier == 10) return vEarthenGuardian[5];
+ switch (identifier)
+ {
+ case 0:
+ return uiWhoWokeuiArchaedasGUID;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ return vVaultWalker.at(identifier - 1);
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ return vEarthenGuardian.at(identifier - 5);
+ default:
+ break;
+ }
return 0;
} // end GetData64
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp
index 2b8d4e37b65..d86da3efce5 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp
@@ -33,6 +33,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "uldaman.h"
+#include "Player.h"
/*######
## mob_jadespine_basilisk
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
index a8afd19cd96..f7f279cf716 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
@@ -26,7 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "zulaman.h"
-//#include "spell.h"
+#include "SpellInfo.h"
#define YELL_AGGRO "Get on your knees and bow to da fang and claw!"
#define SOUND_AGGRO 12020
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
index 8a102757036..ed10dec97dd 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
@@ -31,16 +31,15 @@ EndScriptData */
enum eEnums
{
- SAY_AGGRO = -1568000,
- SAY_FIRE_BOMBS = -1568001,
- SAY_SUMMON_HATCHER = -1568002,
- SAY_ALL_EGGS = -1568003,
- SAY_BERSERK = -1568004,
- SAY_SLAY_1 = -1568005,
- SAY_SLAY_2 = -1568006,
- SAY_DEATH = -1568007,
- SAY_EVENT_STRANGERS = -1568008,
- SAY_EVENT_FRIENDS = -1568009,
+ SAY_AGGRO = 0,
+ SAY_FIRE_BOMBS = 1,
+ SAY_SUMMON_HATCHER = 2,
+ SAY_ALL_EGGS = 3,
+ SAY_BERSERK = 4,
+ SAY_SLAY = 5,
+ SAY_DEATH = 6,
+ SAY_EVENT_STRANGERS = 7,
+ SAY_EVENT_FRIENDS = 8,
// Jan'alai
SPELL_FLAME_BREATH = 43140,
@@ -163,7 +162,7 @@ class boss_janalai : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_JANALAIEVENT, DONE);
@@ -171,7 +170,7 @@ class boss_janalai : public CreatureScript
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
+ Talk(SAY_SLAY);
}
void EnterCombat(Unit* /*who*/)
@@ -179,7 +178,7 @@ class boss_janalai : public CreatureScript
if (instance)
instance->SetData(DATA_JANALAIEVENT, IN_PROGRESS);
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
// DoZoneInCombat();
}
@@ -352,7 +351,7 @@ class boss_janalai : public CreatureScript
}
else
{
- DoScriptText(SAY_BERSERK, me);
+ Talk(SAY_BERSERK);
DoCast(me, SPELL_BERSERK, true);
EnrageTimer = 300000;
}
@@ -360,7 +359,7 @@ class boss_janalai : public CreatureScript
if (BombTimer <= diff)
{
- DoScriptText(SAY_FIRE_BOMBS, me);
+ Talk(SAY_FIRE_BOMBS);
me->AttackStop();
me->GetMotionMaster()->Clear();
@@ -393,7 +392,7 @@ class boss_janalai : public CreatureScript
{
if (HealthBelowPct(35))
{
- DoScriptText(SAY_ALL_EGGS, me);
+ Talk(SAY_ALL_EGGS);
me->AttackStop();
me->GetMotionMaster()->Clear();
@@ -407,7 +406,7 @@ class boss_janalai : public CreatureScript
{
if (HatchAllEggs(0))
{
- DoScriptText(SAY_SUMMON_HATCHER, me);
+ Talk(SAY_SUMMON_HATCHER);
me->SummonCreature(MOB_AMANI_HATCHER, hatcherway[0][0][0], hatcherway[0][0][1], hatcherway[0][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(MOB_AMANI_HATCHER, hatcherway[1][0][0], hatcherway[1][0][1], hatcherway[1][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
HatcherTimer = 90000;
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
index 8fb3dd55077..5aa74fbbe89 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "zulaman.h"
+#include "SpellInfo.h"
//Speech
const char* YELL_TRANSFORM_TO_LYNX = "Let me introduce to you my new bruddahs: fang and claw!";
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
index 235bec7cc8a..7273ca99c7c 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
@@ -26,6 +26,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "zulaman.h"
+#include "Player.h"
+#include "TemporarySummon.h"
#define MAX_ENCOUNTER 6
#define RAND_VENDOR 2
@@ -282,7 +284,7 @@ class instance_zulaman : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
index f0bea065eb6..61c7bda00ac 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
@@ -31,6 +31,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "zulaman.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## npc_forest_frog
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
index 104d479383b..8d17a18bb1b 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
@@ -113,7 +113,7 @@ class instance_zulgurub : public InstanceMapScript
}
}
- uint32 GetData(uint32 uiType)
+ uint32 GetData(uint32 uiType) const
{
switch (uiType)
{
@@ -137,7 +137,7 @@ class instance_zulgurub : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 uiData)
+ uint64 GetData64(uint32 uiData) const
{
switch (uiData)
{
@@ -163,4 +163,4 @@ class instance_zulgurub : public InstanceMapScript
void AddSC_instance_zulgurub()
{
new instance_zulgurub();
-} \ No newline at end of file
+}
diff --git a/src/server/scripts/EasternKingdoms/arathi_highlands.cpp b/src/server/scripts/EasternKingdoms/arathi_highlands.cpp
index b0d59fe8b5a..7f96706f48e 100644
--- a/src/server/scripts/EasternKingdoms/arathi_highlands.cpp
+++ b/src/server/scripts/EasternKingdoms/arathi_highlands.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_professor_phizzlethorpe
diff --git a/src/server/scripts/EasternKingdoms/blasted_lands.cpp b/src/server/scripts/EasternKingdoms/blasted_lands.cpp
index 75109f3a2f6..47fb8298ca7 100644
--- a/src/server/scripts/EasternKingdoms/blasted_lands.cpp
+++ b/src/server/scripts/EasternKingdoms/blasted_lands.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npc_deathly_usher
diff --git a/src/server/scripts/EasternKingdoms/burning_steppes.cpp b/src/server/scripts/EasternKingdoms/burning_steppes.cpp
index eec747d6d73..ba1d339730a 100644
--- a/src/server/scripts/EasternKingdoms/burning_steppes.cpp
+++ b/src/server/scripts/EasternKingdoms/burning_steppes.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npc_ragged_john
diff --git a/src/server/scripts/EasternKingdoms/duskwood.cpp b/src/server/scripts/EasternKingdoms/duskwood.cpp
index e5af5344dc1..fbb98979e77 100644
--- a/src/server/scripts/EasternKingdoms/duskwood.cpp
+++ b/src/server/scripts/EasternKingdoms/duskwood.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
enum Yells
{
diff --git a/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp b/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp
index 7ca76e38fce..c9b60f847e8 100644
--- a/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp
@@ -33,6 +33,8 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "WorldSession.h"
class mobs_ghoul_flayer : public CreatureScript
{
diff --git a/src/server/scripts/EasternKingdoms/eversong_woods.cpp b/src/server/scripts/EasternKingdoms/eversong_woods.cpp
index d69ae3454b4..f62273e583d 100644
--- a/src/server/scripts/EasternKingdoms/eversong_woods.cpp
+++ b/src/server/scripts/EasternKingdoms/eversong_woods.cpp
@@ -35,6 +35,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## Quest 9686 Second Trial
diff --git a/src/server/scripts/EasternKingdoms/ghostlands.cpp b/src/server/scripts/EasternKingdoms/ghostlands.cpp
index 9793c6fd31c..ddd3b0f423a 100644
--- a/src/server/scripts/EasternKingdoms/ghostlands.cpp
+++ b/src/server/scripts/EasternKingdoms/ghostlands.cpp
@@ -34,6 +34,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npc_budd_nedreck
@@ -109,18 +111,18 @@ public:
enum eEnums
{
- SAY_START = -1000140,
- SAY_PROGRESS1 = -1000141,
- SAY_PROGRESS2 = -1000142,
- SAY_PROGRESS3 = -1000143,
- SAY_END1 = -1000144,
- SAY_END2 = -1000145,
- SAY_CAPTAIN_ANSWER = -1000146,
+ SAY_START = 0,
+ SAY_PROGRESS1 = 1,
+ SAY_PROGRESS2 = 2,
+ SAY_PROGRESS3 = 3,
+ SAY_END1 = 4,
+ SAY_END2 = 5,
+ SAY_CAPTAIN_ANSWER = 0,
QUEST_ESCAPE_FROM_THE_CATACOMBS = 9212,
- GO_CAGE = 181152,
- NPC_CAPTAIN_HELIOS = 16220,
- FACTION_SMOON_E = 1603,
+ GO_CAGE = 181152,
+ NPC_CAPTAIN_HELIOS = 16220,
+ FACTION_SMOON_E = 1603
};
class npc_ranger_lilatha : public CreatureScript
@@ -144,18 +146,18 @@ public:
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_ACTIVE);
- DoScriptText(SAY_START, me, player);
+ Talk(SAY_START, player->GetGUID());
break;
case 5:
- DoScriptText(SAY_PROGRESS1, me, player);
+ Talk(SAY_PROGRESS1, player->GetGUID());
break;
case 11:
- DoScriptText(SAY_PROGRESS2, me, player);
+ Talk(SAY_PROGRESS2, player->GetGUID());
me->SetOrientation(4.762841f);
break;
case 18:
{
- DoScriptText(SAY_PROGRESS3, me, player);
+ Talk(SAY_PROGRESS3, player->GetGUID());
Creature* Summ1 = me->SummonCreature(16342, 7627.083984f, -7532.538086f, 152.128616f, 1.082733f, TEMPSUMMON_DEAD_DESPAWN, 0);
Creature* Summ2 = me->SummonCreature(16343, 7620.432129f, -7532.550293f, 152.454865f, 0.827478f, TEMPSUMMON_DEAD_DESPAWN, 0);
if (Summ1 && Summ2)
@@ -178,14 +180,14 @@ public:
break;
case 32:
me->SetOrientation(2.978281f);
- DoScriptText(SAY_END1, me, player);
+ Talk(SAY_END1, player->GetGUID());
break;
case 33:
me->SetOrientation(5.858011f);
- DoScriptText(SAY_END2, me, player);
- Unit* CaptainHelios = me->FindNearestCreature(NPC_CAPTAIN_HELIOS, 50);
+ Talk(SAY_END2, player->GetGUID());
+ Creature* CaptainHelios = me->FindNearestCreature(NPC_CAPTAIN_HELIOS, 50);
if (CaptainHelios)
- DoScriptText(SAY_CAPTAIN_ANSWER, CaptainHelios, player);
+ CaptainHelios->AI()->Talk(SAY_CAPTAIN_ANSWER, player->GetGUID());
break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/hinterlands.cpp b/src/server/scripts/EasternKingdoms/hinterlands.cpp
index a6d01f0ca93..544ea0fd175 100644
--- a/src/server/scripts/EasternKingdoms/hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/hinterlands.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_00x09hl
@@ -38,11 +39,11 @@ EndContentData */
enum eOOX
{
- SAY_OOX_START = -1000287,
- SAY_OOX_AGGRO1 = -1000288,
- SAY_OOX_AGGRO2 = -1000289,
- SAY_OOX_AMBUSH = -1000290,
- SAY_OOX_END = -1000292,
+ SAY_OOX_START = 0,
+ SAY_OOX_AGGRO = 1,
+ SAY_OOX_AMBUSH = 3,
+ SAY_OOX_AMBUSH_REPLY = 4,
+ SAY_OOX_END = 5,
QUEST_RESQUE_OOX_09 = 836,
@@ -69,7 +70,7 @@ public:
else if (player->GetTeam() == HORDE)
creature->setFaction(FACTION_ESCORTEE_H);
- DoScriptText(SAY_OOX_START, creature, player);
+ creature->AI()->Talk(SAY_OOX_START, player->GetGUID());
if (npc_00x09hlAI* pEscortAI = CAST_AI(npc_00x09hl::npc_00x09hlAI, creature->AI()))
pEscortAI->Start(false, false, player->GetGUID(), quest);
@@ -93,13 +94,13 @@ public:
switch (waypointId)
{
case 26:
- DoScriptText(SAY_OOX_AMBUSH, me);
+ Talk(SAY_OOX_AMBUSH);
break;
case 43:
- DoScriptText(SAY_OOX_AMBUSH, me);
+ Talk(SAY_OOX_AMBUSH);
break;
case 64:
- DoScriptText(SAY_OOX_END, me);
+ Talk(SAY_OOX_END);
if (Player* player = GetPlayerForEscort())
player->GroupEventHappens(QUEST_RESQUE_OOX_09, me);
break;
@@ -136,10 +137,7 @@ public:
if (who->GetEntry() == NPC_MARAUDING_OWL || who->GetEntry() == NPC_VILE_AMBUSHER)
return;
- if (rand()%1)
- DoScriptText(SAY_OOX_AGGRO1, me);
- else
- DoScriptText(SAY_OOX_AGGRO2, me);
+ Talk(SAY_OOX_AGGRO);
}
void JustSummoned(Creature* summoned)
@@ -155,13 +153,13 @@ public:
enum eRinji
{
- SAY_RIN_FREE = -1000403, //from here
- SAY_RIN_BY_OUTRUNNER = -1000404,
- SAY_RIN_HELP_1 = -1000405,
- SAY_RIN_HELP_2 = -1000406, //to here, are used also by 6182 but this is wrong...
- SAY_RIN_COMPLETE = -1000407,
- SAY_RIN_PROGRESS_1 = -1000408,
- SAY_RIN_PROGRESS_2 = -1000409,
+ SAY_RIN_BY_OUTRUNNER = 0,
+
+ SAY_RIN_FREE = 0, //from here
+ SAY_RIN_HELP = 1,
+ SAY_RIN_COMPLETE = 2,
+ SAY_RIN_PROGRESS_1 = 3,
+ SAY_RIN_PROGRESS_2 = 4,
QUEST_RINJI_TRAPPED = 2742,
NPC_RANGER = 2694,
@@ -242,7 +240,8 @@ public:
{
if (who->GetEntry() == NPC_OUTRUNNER && !m_bIsByOutrunner)
{
- DoScriptText(SAY_RIN_BY_OUTRUNNER, who);
+ if (Creature* talker = who->ToCreature())
+ talker->AI()->Talk(SAY_RIN_BY_OUTRUNNER);
m_bIsByOutrunner = true;
}
@@ -250,7 +249,7 @@ public:
return;
//only if attacked and escorter is not in combat?
- DoScriptText(RAND(SAY_RIN_HELP_1, SAY_RIN_HELP_2), me);
+ Talk(SAY_RIN_HELP);
}
}
@@ -286,7 +285,7 @@ public:
switch (waypointId)
{
case 1:
- DoScriptText(SAY_RIN_FREE, me, player);
+ Talk(SAY_RIN_FREE, player->GetGUID());
break;
case 7:
DoSpawnAmbush(true);
@@ -295,7 +294,7 @@ public:
DoSpawnAmbush(false);
break;
case 17:
- DoScriptText(SAY_RIN_COMPLETE, me, player);
+ Talk(SAY_RIN_COMPLETE, player->GetGUID());
player->GroupEventHappens(QUEST_RINJI_TRAPPED, me);
SetRun();
m_uiPostEventCount = 1;
@@ -319,11 +318,11 @@ public:
switch (m_uiPostEventCount)
{
case 1:
- DoScriptText(SAY_RIN_PROGRESS_1, me, player);
+ Talk(SAY_RIN_PROGRESS_1, player->GetGUID());
++m_uiPostEventCount;
break;
case 2:
- DoScriptText(SAY_RIN_PROGRESS_2, me, player);
+ Talk(SAY_RIN_PROGRESS_2, player->GetGUID());
m_uiPostEventCount = 0;
break;
}
diff --git a/src/server/scripts/EasternKingdoms/ironforge.cpp b/src/server/scripts/EasternKingdoms/ironforge.cpp
index 2915ee1f3cb..fdd9f5f9a86 100644
--- a/src/server/scripts/EasternKingdoms/ironforge.cpp
+++ b/src/server/scripts/EasternKingdoms/ironforge.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npc_royal_historian_archesonus
diff --git a/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp
index e448ccda14c..c3a725f2f45 100644
--- a/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp
+++ b/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp
@@ -30,6 +30,9 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
+#include "Pet.h"
+#include "SpellInfo.h"
/*######
## npc_converted_sentry
diff --git a/src/server/scripts/EasternKingdoms/loch_modan.cpp b/src/server/scripts/EasternKingdoms/loch_modan.cpp
index 4e3aaae71a1..0937e3cbb30 100644
--- a/src/server/scripts/EasternKingdoms/loch_modan.cpp
+++ b/src/server/scripts/EasternKingdoms/loch_modan.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npc_mountaineer_pebblebitty
diff --git a/src/server/scripts/EasternKingdoms/redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/redridge_mountains.cpp
index 2473fec899a..f04b0111da7 100644
--- a/src/server/scripts/EasternKingdoms/redridge_mountains.cpp
+++ b/src/server/scripts/EasternKingdoms/redridge_mountains.cpp
@@ -24,6 +24,7 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
enum eCorporalKeeshan
{
diff --git a/src/server/scripts/EasternKingdoms/silvermoon_city.cpp b/src/server/scripts/EasternKingdoms/silvermoon_city.cpp
index 954f21f73f5..d8e9a9ae49a 100644
--- a/src/server/scripts/EasternKingdoms/silvermoon_city.cpp
+++ b/src/server/scripts/EasternKingdoms/silvermoon_city.cpp
@@ -29,13 +29,15 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*#######
# npc_blood_knight_stillblade
#######*/
enum eStillbladeData
{
- SAY_HEAL = -1000193,
+ SAY_HEAL = 0,
QUEST_REDEEMING_THE_DEAD = 9685,
SPELL_SHIMMERING_VESSEL = 31225,
@@ -96,7 +98,7 @@ public:
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
//me->RemoveAllAuras();
- DoScriptText(SAY_HEAL, me);
+ Talk(SAY_HEAL);
spellHit = true;
}
}
diff --git a/src/server/scripts/EasternKingdoms/silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/silverpine_forest.cpp
index b2cd3b16e7b..905d34221ed 100644
--- a/src/server/scripts/EasternKingdoms/silverpine_forest.cpp
+++ b/src/server/scripts/EasternKingdoms/silverpine_forest.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_deathstalker_erland
diff --git a/src/server/scripts/EasternKingdoms/stormwind_city.cpp b/src/server/scripts/EasternKingdoms/stormwind_city.cpp
index 560214d4085..188b3dcd2b1 100644
--- a/src/server/scripts/EasternKingdoms/stormwind_city.cpp
+++ b/src/server/scripts/EasternKingdoms/stormwind_city.cpp
@@ -37,6 +37,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_archmage_malin
@@ -205,13 +206,13 @@ public:
enum eLordGregorLescovar
{
- SAY_LESCOVAR_2 = -1000457,
- SAY_GUARD_2 = -1000458,
- SAY_LESCOVAR_3 = -1000459,
- SAY_MARZON_1 = -1000460,
- SAY_LESCOVAR_4 = -1000461,
- SAY_TYRION_2 = -1000462,
- SAY_MARZON_2 = -1000463,
+ SAY_GUARD_2 = 0,
+ SAY_LESCOVAR_2 = 0,
+ SAY_LESCOVAR_3 = 1,
+ SAY_LESCOVAR_4 = 2,
+ SAY_MARZON_1 = 0,
+ SAY_MARZON_2 = 1,
+ SAY_TYRION_2 = 0,
NPC_STORMWIND_ROYAL = 1756,
NPC_MARZON_BLADE = 1755,
@@ -276,7 +277,7 @@ public:
{
case 14:
SetEscortPaused(true);
- DoScriptText(SAY_LESCOVAR_2, me);
+ Talk(SAY_LESCOVAR_2);
uiTimer = 3000;
uiPhase = 1;
break;
@@ -317,7 +318,7 @@ public:
{
case 1:
if (Creature* pGuard = me->FindNearestCreature(NPC_STORMWIND_ROYAL, 8.0f, true))
- DoScriptText(SAY_GUARD_2, pGuard);
+ pGuard->AI()->Talk(SAY_GUARD_2);
uiTimer = 3000;
uiPhase = 2;
break;
@@ -332,18 +333,18 @@ public:
uiPhase = 0;
break;
case 4:
- DoScriptText(SAY_LESCOVAR_3, me);
+ Talk(SAY_LESCOVAR_3);
uiTimer = 0;
uiPhase = 0;
break;
case 5:
if (Creature* pMarzon = Unit::GetCreature(*me, MarzonGUID))
- DoScriptText(SAY_MARZON_1, pMarzon);
+ pMarzon->AI()->Talk(SAY_MARZON_1);
uiTimer = 3000;
uiPhase = 6;
break;
case 6:
- DoScriptText(SAY_LESCOVAR_4, me);
+ Talk(SAY_LESCOVAR_4);
if (Player* player = GetPlayerForEscort())
player->AreaExploredOrEventHappens(QUEST_THE_ATTACK);
uiTimer = 2000;
@@ -351,7 +352,7 @@ public:
break;
case 7:
if (Creature* pTyrion = me->FindNearestCreature(NPC_TYRION, 20.0f, true))
- DoScriptText(SAY_TYRION_2, pTyrion);
+ pTyrion->AI()->Talk(SAY_TYRION_2);
if (Creature* pMarzon = Unit::GetCreature(*me, MarzonGUID))
pMarzon->setFaction(14);
me->setFaction(14);
@@ -399,7 +400,7 @@ public:
void EnterCombat(Unit* who)
{
- DoScriptText(SAY_MARZON_2, me);
+ Talk(SAY_MARZON_2);
if (me->isSummon())
{
@@ -463,14 +464,14 @@ public:
enum eTyrionSpybot
{
- SAY_QUEST_ACCEPT_ATTACK = -1000499,
- SAY_TYRION_1 = -1000450,
- SAY_SPYBOT_1 = -1000451,
- SAY_GUARD_1 = -1000452,
- SAY_SPYBOT_2 = -1000453,
- SAY_SPYBOT_3 = -1000454,
- SAY_LESCOVAR_1 = -1000455,
- SAY_SPYBOT_4 = -1000456,
+ SAY_QUEST_ACCEPT_ATTACK = 0,
+ SAY_SPYBOT_1 = 1,
+ SAY_SPYBOT_2 = 2,
+ SAY_SPYBOT_3 = 3,
+ SAY_SPYBOT_4 = 4,
+ SAY_TYRION_1 = 0,
+ SAY_GUARD_1 = 0,
+ SAY_LESCOVAR_1 = 0,
NPC_PRIESTESS_TYRIONA = 7779,
NPC_LORD_GREGOR_LESCOVAR = 1754,
@@ -510,13 +511,13 @@ public:
break;
case 5:
SetEscortPaused(true);
- DoScriptText(SAY_SPYBOT_1, me);
+ Talk(SAY_SPYBOT_1);
uiTimer = 2000;
uiPhase = 5;
break;
case 17:
SetEscortPaused(true);
- DoScriptText(SAY_SPYBOT_3, me);
+ Talk(SAY_SPYBOT_3);
uiTimer = 3000;
uiPhase = 8;
break;
@@ -532,13 +533,13 @@ public:
switch (uiPhase)
{
case 1:
- DoScriptText(SAY_QUEST_ACCEPT_ATTACK, me);
+ Talk(SAY_QUEST_ACCEPT_ATTACK);
uiTimer = 3000;
uiPhase = 2;
break;
case 2:
if (Creature* pTyrion = me->FindNearestCreature(NPC_TYRION, 10.0f))
- DoScriptText(SAY_TYRION_1, pTyrion);
+ pTyrion->AI()->Talk(SAY_TYRION_1);
uiTimer = 3000;
uiPhase = 3;
break;
@@ -554,12 +555,12 @@ public:
break;
case 5:
if (Creature* pGuard = me->FindNearestCreature(NPC_STORMWIND_ROYAL, 10.0f, true))
- DoScriptText(SAY_GUARD_1, pGuard);
+ pGuard->AI()->Talk(SAY_GUARD_1);
uiTimer = 3000;
uiPhase = 6;
break;
case 6:
- DoScriptText(SAY_SPYBOT_2, me);
+ Talk(SAY_SPYBOT_2);
uiTimer = 3000;
uiPhase = 7;
break;
@@ -570,12 +571,12 @@ public:
break;
case 8:
if (Creature* pLescovar = me->FindNearestCreature(NPC_LORD_GREGOR_LESCOVAR, 10.0f))
- DoScriptText(SAY_LESCOVAR_1, pLescovar);
+ pLescovar->AI()->Talk(SAY_LESCOVAR_1);
uiTimer = 3000;
uiPhase = 9;
break;
case 9:
- DoScriptText(SAY_SPYBOT_4, me);
+ Talk(SAY_SPYBOT_4);
uiTimer = 3000;
uiPhase = 10;
break;
diff --git a/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp b/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp
index 40f046a5075..2217eba7d1b 100644
--- a/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp
+++ b/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp
@@ -29,6 +29,8 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## mob_yenniku
diff --git a/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp b/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp
index 4c81380fb60..099bc0770b7 100644
--- a/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp
+++ b/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp
@@ -19,6 +19,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_galen_goodward
@@ -30,13 +31,12 @@ enum Galen
GO_GALENS_CAGE = 37118,
- SAY_PERIODIC = -1000500,
- SAY_QUEST_ACCEPTED = -1000501,
- SAY_ATTACKED_1 = -1000502,
- SAY_ATTACKED_2 = -1000503,
- SAY_QUEST_COMPLETE = -1000504,
- EMOTE_WHISPER = -1000505,
- EMOTE_DISAPPEAR = -1000506
+ SAY_PERIODIC = 0,
+ SAY_QUEST_ACCEPTED = 1,
+ SAY_ATTACKED = 2,
+ SAY_QUEST_COMPLETE = 3,
+ EMOTE_WHISPER = 4,
+ EMOTE_DISAPPEAR = 5,
};
class npc_galen_goodward : public CreatureScript
@@ -51,7 +51,7 @@ public:
{
CAST_AI(npc_galen_goodward::npc_galen_goodwardAI, creature->AI())->Start(false, false, player->GetGUID());
creature->setFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
- DoScriptText(SAY_QUEST_ACCEPTED, creature);
+ creature->AI()->Talk(SAY_QUEST_ACCEPTED);
}
return true;
}
@@ -80,7 +80,7 @@ public:
void EnterCombat(Unit* who)
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
- DoScriptText(RAND(SAY_ATTACKED_1, SAY_ATTACKED_2), me, who);
+ Talk(SAY_ATTACKED, who->GetGUID());
}
void WaypointStart(uint32 uiPointId)
@@ -102,7 +102,7 @@ public:
break;
}
case 21:
- DoScriptText(EMOTE_DISAPPEAR, me);
+ Talk(EMOTE_DISAPPEAR);
break;
}
}
@@ -119,8 +119,8 @@ public:
if (Player* player = GetPlayerForEscort())
{
me->SetFacingToObject(player);
- DoScriptText(SAY_QUEST_COMPLETE, me, player);
- DoScriptText(EMOTE_WHISPER, me, player);
+ Talk(SAY_QUEST_COMPLETE, player->GetGUID());
+ Talk(EMOTE_WHISPER, player->GetGUID());
player->GroupEventHappens(QUEST_GALENS_ESCAPE, me);
}
SetRun(true);
@@ -138,7 +138,7 @@ public:
if (m_uiPeriodicSay < uiDiff)
{
if (!HasEscortState(STATE_ESCORT_ESCORTING))
- DoScriptText(SAY_PERIODIC, me);
+ Talk(SAY_PERIODIC);
m_uiPeriodicSay = 15000;
}
else
diff --git a/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
index 70f9f93c7a7..041f5976a6e 100644
--- a/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
+++ b/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
/*######
## npc_calvin_montague
diff --git a/src/server/scripts/EasternKingdoms/undercity.cpp b/src/server/scripts/EasternKingdoms/undercity.cpp
index 0d44db01592..05938452520 100644
--- a/src/server/scripts/EasternKingdoms/undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/undercity.cpp
@@ -32,6 +32,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npc_lady_sylvanas_windrunner
@@ -40,8 +41,8 @@ EndContentData */
enum Sylvanas
{
QUEST_JOURNEY_TO_UNDERCITY = 9180,
- SAY_LAMENT_END = -1000196,
- EMOTE_LAMENT_END = -1000197,
+ EMOTE_LAMENT_END = 0,
+ SAY_LAMENT_END = 1,
SOUND_CREDIT = 10896,
ENTRY_HIGHBORNE_LAMENTER = 21628,
@@ -152,8 +153,8 @@ public:
LamentEventTimer = 2000;
if (!me->HasAura(SPELL_SYLVANAS_CAST))
{
- DoScriptText(SAY_LAMENT_END, me);
- DoScriptText(EMOTE_LAMENT_END, me);
+ Talk(SAY_LAMENT_END);
+ Talk(EMOTE_LAMENT_END);
LamentEvent = false;
}
} else LamentEventTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/western_plaguelands.cpp
index 31dea10453a..1c2f2624b34 100644
--- a/src/server/scripts/EasternKingdoms/western_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/western_plaguelands.cpp
@@ -34,6 +34,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npcs_dithers_and_arbington
diff --git a/src/server/scripts/EasternKingdoms/westfall.cpp b/src/server/scripts/EasternKingdoms/westfall.cpp
index 478c5f6c0d6..16ba171928c 100644
--- a/src/server/scripts/EasternKingdoms/westfall.cpp
+++ b/src/server/scripts/EasternKingdoms/westfall.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_daphne_stilwell
@@ -38,11 +39,11 @@ EndContentData */
enum eEnums
{
- SAY_DS_START = -1000293,
- SAY_DS_DOWN_1 = -1000294,
- SAY_DS_DOWN_2 = -1000295,
- SAY_DS_DOWN_3 = -1000296,
- SAY_DS_PROLOGUE = -1000297,
+ SAY_DS_START = 0,
+ SAY_DS_DOWN_1 = 1,
+ SAY_DS_DOWN_2 = 2,
+ SAY_DS_DOWN_3 = 3,
+ SAY_DS_PROLOGUE = 4,
SPELL_SHOOT = 6660,
QUEST_TOME_VALOR = 1651,
@@ -59,7 +60,7 @@ public:
{
if (quest->GetQuestId() == QUEST_TOME_VALOR)
{
- DoScriptText(SAY_DS_START, creature);
+ creature->AI()->Talk(SAY_DS_START);
if (npc_escortAI* pEscortAI = CAST_AI(npc_daphne_stilwell::npc_daphne_stilwellAI, creature->AI()))
pEscortAI->Start(true, true, player->GetGUID());
@@ -87,13 +88,13 @@ public:
switch (uiWPHolder)
{
case 7:
- DoScriptText(SAY_DS_DOWN_1, me);
+ Talk(SAY_DS_DOWN_1);
break;
case 8:
- DoScriptText(SAY_DS_DOWN_2, me);
+ Talk(SAY_DS_DOWN_2);
break;
case 9:
- DoScriptText(SAY_DS_DOWN_3, me);
+ Talk(SAY_DS_DOWN_3);
break;
}
}
@@ -142,7 +143,7 @@ public:
SetRun(false);
break;
case 11:
- DoScriptText(SAY_DS_PROLOGUE, me);
+ Talk(SAY_DS_PROLOGUE);
break;
case 13:
SetEquipmentSlots(true);
@@ -196,12 +197,14 @@ public:
/*######
## npc_defias_traitor
######*/
+enum DefiasSays
+{
+ SAY_START = 0,
+ SAY_PROGRESS = 1,
+ SAY_END = 2,
+ SAY_AGGRO = 3
+};
-#define SAY_START -1000101
-#define SAY_PROGRESS -1000102
-#define SAY_END -1000103
-#define SAY_AGGRO_1 -1000104
-#define SAY_AGGRO_2 -1000105
#define QUEST_DEFIAS_BROTHERHOOD 155
@@ -217,7 +220,7 @@ public:
if (npc_escortAI* pEscortAI = CAST_AI(npc_defias_traitor::npc_defias_traitorAI, creature->AI()))
pEscortAI->Start(true, true, player->GetGUID());
- DoScriptText(SAY_START, creature, player);
+ creature->AI()->Talk(SAY_START, player->GetGUID());
}
return true;
@@ -244,10 +247,10 @@ public:
SetRun(false);
break;
case 36:
- DoScriptText(SAY_PROGRESS, me, player);
+ Talk(SAY_PROGRESS, player->GetGUID());
break;
case 44:
- DoScriptText(SAY_END, me, player);
+ Talk(SAY_END, player->GetGUID());
player->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD, me);
break;
}
@@ -255,7 +258,7 @@ public:
void EnterCombat(Unit* who)
{
- DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2), me, who);
+ Talk(SAY_AGGRO, who->GetGUID());
}
void Reset() {}
diff --git a/src/server/scripts/EasternKingdoms/wetlands.cpp b/src/server/scripts/EasternKingdoms/wetlands.cpp
index 34e6e7c9ddf..98f7b0ac967 100644
--- a/src/server/scripts/EasternKingdoms/wetlands.cpp
+++ b/src/server/scripts/EasternKingdoms/wetlands.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_tapoke_slim_jahn
diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp
index 763961271d8..28d033f9d48 100644
--- a/src/server/scripts/Events/childrens_week.cpp
+++ b/src/server/scripts/Events/childrens_week.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellAuras.h"
+#include "Player.h"
enum Orphans
{
diff --git a/src/server/scripts/Events/event.cpp b/src/server/scripts/Events/event.cpp
index 22334f8d365..d77ef2b78c1 100644
--- a/src/server/scripts/Events/event.cpp
+++ b/src/server/scripts/Events/event.cpp
@@ -15,8 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptPCH.h"
-
void AddSC_event_childrens_week();
void AddSC_event_scripts()
diff --git a/src/server/scripts/Examples/example_creature.cpp b/src/server/scripts/Examples/example_creature.cpp
index 17b9aae732b..1ef15c0ca61 100644
--- a/src/server/scripts/Examples/example_creature.cpp
+++ b/src/server/scripts/Examples/example_creature.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
// **** This script is designed as an example for others to build on ****
// **** Please modify whatever you'd like to as this script is only for developement ****
diff --git a/src/server/scripts/Examples/example_escort.cpp b/src/server/scripts/Examples/example_escort.cpp
index 20e4c5614e9..8cf0dad25d2 100644
--- a/src/server/scripts/Examples/example_escort.cpp
+++ b/src/server/scripts/Examples/example_escort.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
enum eEnums
{
diff --git a/src/server/scripts/Examples/example_gossip_codebox.cpp b/src/server/scripts/Examples/example_gossip_codebox.cpp
index d6936c8fb9e..352c43fc1de 100644
--- a/src/server/scripts/Examples/example_gossip_codebox.cpp
+++ b/src/server/scripts/Examples/example_gossip_codebox.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
#include <cstring>
enum eEnums
diff --git a/src/server/scripts/Examples/example_misc.cpp b/src/server/scripts/Examples/example_misc.cpp
index 3aa4bac3f1e..5ff66c4a7ed 100644
--- a/src/server/scripts/Examples/example_misc.cpp
+++ b/src/server/scripts/Examples/example_misc.cpp
@@ -24,6 +24,7 @@ SDCategory: Script Examples
EndScriptData */
#include "ScriptMgr.h"
+#include "Player.h"
enum eSay
{
diff --git a/src/server/scripts/Examples/example_spell.cpp b/src/server/scripts/Examples/example_spell.cpp
index cc27392919f..35e61a5300d 100644
--- a/src/server/scripts/Examples/example_spell.cpp
+++ b/src/server/scripts/Examples/example_spell.cpp
@@ -26,6 +26,7 @@
#include "SpellAuras.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index a70d05fa0ef..9cc515c1b0d 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -20,6 +20,7 @@
#include "ScriptedGossip.h"
#include "blackfathom_deeps.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
index 236c7b1ba69..8df5c5cdfd4 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
@@ -212,7 +212,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -233,7 +233,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
index 1c91d78cd29..afd7603a506 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "hyjal.h"
#include "SpellAuras.h"
#include "hyjal_trash.h"
+#include "Player.h"
enum Texts
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
index 48dd847b190..3ab06642fb5 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
@@ -33,6 +33,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "hyjalAI.h"
+#include "Player.h"
#define GOSSIP_ITEM_BEGIN_ALLY "My companions and I are with you, Lady Proudmoore."
#define GOSSIP_ITEM_ANETHERON "We are ready for whatever Archimonde might send our way, Lady Proudmoore."
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
index caff71c7320..df180bf5568 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
@@ -27,6 +27,9 @@ EndScriptData */
#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "hyjal_trash.h"
+#include "Player.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
enum Misc
{
@@ -156,7 +159,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -293,7 +296,7 @@ public:
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index e74ba833908..365c5dd7300 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -21,6 +21,8 @@
#include "culling_of_stratholme.h"
#include "ScriptedEscortAI.h"
#include "PassiveAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum Says
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
index ea02e8f50b5..0467109effc 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
@@ -19,6 +19,9 @@
#include "InstanceScript.h"
#include "CreatureTextMgr.h"
#include "culling_of_stratholme.h"
+#include "Player.h"
+#include "TemporarySummon.h"
+#include "SpellInfo.h"
#define MAX_ENCOUNTER 5
@@ -195,7 +198,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -215,7 +218,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
index bed3cde6fa4..8ca14d72b94 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
@@ -33,6 +33,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "dark_portal.h"
+#include "Player.h"
+#include "SpellInfo.h"
#define SAY_ENTER -1269020 //where does this belong?
#define SAY_INTRO -1269021
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
index da34eff7b77..b7820bae920 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
@@ -26,6 +26,9 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "dark_portal.h"
+#include "Player.h"
+#include "TemporarySummon.h"
+#include "SpellInfo.h"
#define MAX_ENCOUNTER 2
@@ -236,7 +239,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -252,7 +255,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
if (data == DATA_MEDIVH)
return MedivhGUID;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
index 7f7cbeaf566..5f7af55358e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "old_hillsbrad.h"
+#include "Player.h"
#define MAX_ENCOUNTER 6
@@ -202,7 +203,7 @@ public:
}
}
- uint32 GetData(uint32 data)
+ uint32 GetData(uint32 data) const
{
switch (data)
{
@@ -222,7 +223,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index 0158d470ef9..2000d8a52f8 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -34,6 +34,7 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "old_hillsbrad.h"
+#include "Player.h"
#define QUEST_ENTRY_HILLSBRAD 10282
#define QUEST_ENTRY_DIVERSION 10283
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
index 0689a8872bb..adcec659fa3 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
@@ -29,6 +29,7 @@ EndScriptData */
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
#include "onyxias_lair.h"
+#include "TemporarySummon.h"
class instance_onyxias_lair : public InstanceMapScript
{
@@ -189,7 +190,7 @@ public:
}
}
- uint32 GetData(uint32 Type)
+ uint32 GetData(uint32 Type) const
{
switch (Type)
{
@@ -200,7 +201,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 Data)
+ uint64 GetData64(uint32 Data) const
{
switch (Data)
{
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
index a0a8bb02d90..f7161638909 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
@@ -18,6 +18,8 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "razorfen_downs.h"
+#include "Player.h"
+#include "TemporarySummon.h"
#define MAX_ENCOUNTER 1
@@ -185,7 +187,7 @@ public:
}
}
- uint32 GetData(uint32 uiType)
+ uint32 GetData(uint32 uiType) const
{
switch (uiType)
{
@@ -196,7 +198,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiType)
+ uint64 GetData64(uint32 uiType) const
{
switch (uiType)
{
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index 3a147007fce..443c9f73cfb 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "razorfen_downs.h"
+#include "Player.h"
/*###
# npc_henry_stern
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
index cce0f8b180e..152c38a6b58 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "razorfen_kraul.h"
+#include "Player.h"
#define WARD_KEEPERS_NR 2
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index 374059c46ac..7b3cd9f9900 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "razorfen_kraul.h"
+#include "Player.h"
#define SAY_READY -1047000
#define SAY_POINT -1047001
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
index 36a1ff1bade..e6c5243819a 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
@@ -19,6 +19,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ruins_of_ahnqiraj.h"
+#include "CreatureTextMgr.h"
enum Spells
{
@@ -38,6 +39,11 @@ enum Events
EVENT_WIDE_SLASH = 4
};
+enum Texts
+{
+ SAY_KURINAXX_DEATH = 5, // Yelled by Ossirian the Unscarred
+};
+
class boss_kurinnaxx : public CreatureScript
{
public:
@@ -45,7 +51,7 @@ class boss_kurinnaxx : public CreatureScript
struct boss_kurinnaxxAI : public BossAI
{
- boss_kurinnaxxAI(Creature* creature) : BossAI(creature, BOSS_KURINNAXX)
+ boss_kurinnaxxAI(Creature* creature) : BossAI(creature, DATA_KURINNAXX)
{
}
@@ -68,6 +74,13 @@ class boss_kurinnaxx : public CreatureScript
}
}
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetData64(DATA_OSSIRIAN)))
+ sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
+ }
+
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
index c05613d387f..4abbf99d4ef 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -58,7 +58,7 @@ class boss_moam : public CreatureScript
struct boss_moamAI : public BossAI
{
- boss_moamAI(Creature* creature) : BossAI(creature, BOSS_MOAM)
+ boss_moamAI(Creature* creature) : BossAI(creature, DATA_MOAM)
{
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
index e9bb8be67b7..2bbdaa389ad 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
@@ -1,6 +1,5 @@
/*
* Copyright (C) 2008-2012 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
@@ -16,39 +15,262 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Boss_Ossirian
-SD%Complete: 0
-SDComment: Place holder
-SDCategory: Ruins of Ahn'Qiraj
-EndScriptData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ruins_of_ahnqiraj.h"
+#include "Player.h"
+#include "SpellInfo.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
+
+enum Texts
+{
+ SAY_SUPREME = 0,
+ SAY_INTRO = 1,
+ SAY_AGGRO = 2,
+ SAY_SLAY = 3,
+ SAY_DEATH = 4,
+};
+
+enum Spells
+{
+ SPELL_SILENCE = 25195,
+ SPELL_CYCLONE = 25189,
+ SPELL_STOMP = 25188,
+ SPELL_SUPREME = 25176,
+ SPELL_SUMMON = 20477,
+ SPELL_SAND_STORM = 25160,
+ SPELL_SUMMON_CRYSTAL = 25192,
+};
+
+enum Actions
+{
+ ACTION_TRIGGER_WEAKNESS = 1,
+};
+
+enum Events
+{
+ EVENT_SILENCE = 1,
+ EVENT_CYCLONE = 2,
+ EVENT_STOMP = 3
+};
+
+uint8 const NUM_CRYSTALS = 9;
-enum Yells
+// You spin me right round, baby
+// right round like a record, baby
+// right round round round
+Position CrystalCoordinates[NUM_CRYSTALS] =
{
- SAY_SURPREME2 = -1509019,
- SAY_SURPREME3 = -1509020,
- SAY_RAND_INTRO1 = -1509021,
- SAY_RAND_INTRO2 = -1509022,
- SAY_RAND_INTRO3 = -1509023,
- SAY_RAND_INTRO4 = -1509024, //possibly old?
- SAY_AGGRO = -1509025,
- SAY_SLAY = -1509026,
- SAY_DEATH = -1509027
+ { -9394.230469f, 1951.808594f, 85.97733f, 0.0f },
+ { -9357.931641f, 1930.596802f, 85.556198f, 0.0f },
+ { -9383.113281f, 2011.042725f, 85.556389f, 0.0f },
+ { -9243.36f, 1979.04f, 85.556f, 0.0f },
+ { -9281.68f, 1886.66f, 85.5558f, 0.0f },
+ { -9241.8f, 1806.39f, 85.5557f, 0.0f },
+ { -9366.78f, 1781.76f, 85.5561f, 0.0f },
+ { -9430.37f, 1786.86f, 85.557f, 0.0f },
+ { -9406.73f, 1863.13f, 85.5558f, 0.0f }
};
+float RoomRadius = 165.0f;
+uint8 const NUM_TORNADOS = 5; // TODO: This number is completly random!
+uint8 const NUM_WEAKNESS = 5;
+uint32 const SpellWeakness[NUM_WEAKNESS] = { 25177, 25178, 25180, 25181, 25183 };
+Position const RoomCenter = { -9343.041992f, 1923.278198f, 85.555984f, 0.0 };
+
class boss_ossirian : public CreatureScript
{
public:
boss_ossirian() : CreatureScript("boss_ossirian") { }
- struct boss_ossirianAI : public ScriptedAI
+ struct boss_ossirianAI : public BossAI
{
- boss_ossirianAI(Creature* creature) : ScriptedAI(creature)
+ boss_ossirianAI(Creature* creature) : BossAI(creature, DATA_OSSIRIAN)
+ {
+ SaidIntro = false;
+ Reset();
+ }
+
+ uint64 TriggerGUID;
+ uint64 CrystalGUID;
+ uint8 CrystalIterator;
+ bool SaidIntro;
+
+ void Reset()
+ {
+ _Reset();
+ CrystalIterator = 0;
+ TriggerGUID = 0;
+ CrystalGUID = 0;
+ }
+
+ void SpellHit(Unit* caster, SpellInfo const* spell)
+ {
+ for (uint8 i = 0; i < NUM_WEAKNESS; ++i)
+ {
+ if (spell->Id == SpellWeakness[i])
+ {
+ me->RemoveAurasDueToSpell(SPELL_SUPREME);
+ ((TempSummon*)caster)->UnSummon();
+ SpawnNextCrystal();
+ }
+ }
+ }
+
+ void DoAction(const int32 action)
+ {
+ if (action == ACTION_TRIGGER_WEAKNESS)
+ {
+ if (Creature* Trigger = me->GetMap()->GetCreature(TriggerGUID))
+ {
+ if (!Trigger->HasUnitState(UNIT_STATE_CASTING))
+ Trigger->CastSpell(Trigger, SpellWeakness[urand(0, 4)], false);
+ }
+ }
+ }
+
+ void EnterCombat(Unit* /*who*/)
+ {
+ _EnterCombat();
+ events.Reset();
+ events.ScheduleEvent(EVENT_SILENCE, 30000);
+ events.ScheduleEvent(EVENT_CYCLONE, 20000);
+ events.ScheduleEvent(EVENT_STOMP, 30000);
+
+ DoCast(me, SPELL_SUPREME);
+ Talk(SAY_AGGRO);
+
+ if (instance)
+ {
+ Map* map = me->GetMap();
+ if (!map->IsDungeon())
+ return;
+
+ WorldPacket data(SMSG_WEATHER, (4+4+4));
+ data << uint32(WEATHER_STATE_HEAVY_SANDSTORM) << float(1) << uint8(0);
+ map->SendToPlayers(&data);
+
+ for (uint8 i = 0; i < NUM_TORNADOS; ++i)
+ {
+ Position Point;
+ me->GetRandomPoint(RoomCenter, RoomRadius, Point);
+ if (Creature* Tornado = me->GetMap()->SummonCreature(NPC_SAND_VORTEX, Point))
+ Tornado->CastSpell(Tornado, SPELL_SAND_STORM, true);
+ }
+
+ SpawnNextCrystal();
+ }
+ }
+
+ void KilledUnit(Unit* /*victim*/)
{
+ Talk(SAY_SLAY);
+ }
+
+ void EnterEvadeMode()
+ {
+ Cleanup();
+ summons.DespawnAll();
+ ScriptedAI::EnterEvadeMode();
+ }
+
+ void JustDied(Unit* /*killer*/)
+ {
+ Cleanup();
+ _JustDied();
+ }
+
+ void Cleanup()
+ {
+ if (GameObject* Crystal = me->GetMap()->GetGameObject(CrystalGUID))
+ Crystal->Use(me);
+ }
+
+ void SpawnNextCrystal()
+ {
+ if (CrystalIterator == NUM_CRYSTALS)
+ CrystalIterator = 0;
+
+ if (Creature* Trigger = me->GetMap()->SummonCreature(NPC_OSSIRIAN_TRIGGER, CrystalCoordinates[CrystalIterator]))
+ {
+ TriggerGUID = Trigger->GetGUID();
+ if (GameObject* Crystal = Trigger->SummonGameObject(GO_OSSIRIAN_CRYSTAL,
+ CrystalCoordinates[CrystalIterator].GetPositionX(),
+ CrystalCoordinates[CrystalIterator].GetPositionY(),
+ CrystalCoordinates[CrystalIterator].GetPositionZ(),
+ 0, 0, 0, 0, 0, -1))
+ {
+ CrystalGUID = Crystal->GetGUID();
+ ++CrystalIterator;
+ }
+ }
+ }
+
+ void MoveInLineOfSight(Unit* /*who*/)
+ {
+ if (!SaidIntro)
+ {
+ Talk(SAY_INTRO);
+ SaidIntro = true;
+ }
+ }
+
+ void UpdateAI(uint32 const diff)
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ // No kiting!
+ if (me->GetDistance(me->getVictim()) > 60.00f && me->GetDistance(me->getVictim()) < 120.00f)
+ DoCast(me->getVictim(), SPELL_SUMMON);
+
+ bool ApplySupreme = true;
+
+ if (me->HasAura(SPELL_SUPREME))
+ ApplySupreme = false;
+ else
+ {
+ for (uint8 i = 0; i < NUM_WEAKNESS; ++i)
+ {
+ if (me->HasAura(SpellWeakness[i]))
+ {
+ ApplySupreme = false;
+ break;
+ }
+ }
+ }
+
+ if (ApplySupreme)
+ {
+ DoCast(me, SPELL_SUPREME);
+ Talk(SAY_SUPREME);
+ }
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SILENCE:
+ DoCast(me, SPELL_SILENCE);
+ events.ScheduleEvent(EVENT_SILENCE, urand(20000, 30000));
+ break;
+ case EVENT_CYCLONE:
+ DoCast(me->getVictim(), SPELL_CYCLONE);
+ events.ScheduleEvent(EVENT_CYCLONE, 20000);
+ break;
+ case EVENT_STOMP:
+ DoCast(me, SPELL_STOMP);
+ events.ScheduleEvent(EVENT_STOMP, 30000);
+ break;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
}
};
@@ -58,7 +280,28 @@ class boss_ossirian : public CreatureScript
}
};
+class go_ossirian_crystal : public GameObjectScript
+{
+ public:
+ go_ossirian_crystal() : GameObjectScript("go_ossirian_crystal") { }
+
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
+ {
+ InstanceScript* Instance = player->GetInstanceScript();
+ if (!Instance)
+ return false;
+
+ Creature* Ossirian = player->FindNearestCreature(NPC_OSSIRIAN, 30.0f);
+ if (!Ossirian || Instance->GetBossState(DATA_OSSIRIAN) != IN_PROGRESS)
+ return false;
+
+ Ossirian->AI()->DoAction(ACTION_TRIGGER_WEAKNESS);
+ return true;
+ }
+};
+
void AddSC_boss_ossirian()
{
new boss_ossirian();
+ new go_ossirian_crystal();
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
index afa8eff5823..da67f93f968 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
@@ -63,7 +63,7 @@ class boss_rajaxx : public CreatureScript
struct boss_rajaxxAI : public BossAI
{
- boss_rajaxxAI(Creature* creature) : BossAI(creature, BOSS_RAJAXX)
+ boss_rajaxxAI(Creature* creature) : BossAI(creature, DATA_RAJAXX)
{
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
index 2dbd52f7e42..d61d9416ac6 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
@@ -28,7 +28,7 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
{
instance_ruins_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map)
{
- SetBossNumber(MAX_ENCOUNTER);
+ SetBossNumber(NUM_ENCOUNTER);
_kurinaxxGUID = 0;
_rajaxxGUID = 0;
@@ -71,21 +71,21 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
return true;
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
- case BOSS_KURINNAXX:
+ case DATA_KURINNAXX:
return _kurinaxxGUID;
- case BOSS_RAJAXX:
+ case DATA_RAJAXX:
return _rajaxxGUID;
- case BOSS_MOAM:
+ case DATA_MOAM:
return _moamGUID;
- case BOSS_BURU:
+ case DATA_BURU:
return _buruGUID;
- case BOSS_AYAMISS:
+ case DATA_AYAMISS:
return _ayamissGUID;
- case BOSS_OSSIRIAN:
+ case DATA_OSSIRIAN:
return _ossirianGUID;
}
@@ -120,7 +120,7 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
if (dataHead1 == 'R' && dataHead2 == 'A')
{
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ for (uint8 i = 0; i < NUM_ENCOUNTER; ++i)
{
uint32 tmpState;
loadStream >> tmpState;
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h
index 14d129a7468..7f7efc83eb5 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h
@@ -18,15 +18,15 @@
#ifndef DEF_RUINS_OF_AHNQIRAJ_H
#define DEF_RUINS_OF_AHNQIRAJ_H
-enum Encounters
+enum DataTypes
{
- BOSS_KURINNAXX = 0,
- BOSS_RAJAXX = 1,
- BOSS_MOAM = 2,
- BOSS_BURU = 3,
- BOSS_AYAMISS = 4,
- BOSS_OSSIRIAN = 5,
- MAX_ENCOUNTER,
+ DATA_KURINNAXX = 0,
+ DATA_RAJAXX = 1,
+ DATA_MOAM = 2,
+ DATA_BURU = 3,
+ DATA_AYAMISS = 4,
+ DATA_OSSIRIAN = 5,
+ NUM_ENCOUNTER = 6
};
enum Creatures
@@ -40,6 +40,13 @@ enum Creatures
NPC_HIVEZARA_HORNET = 15934,
NPC_HIVEZARA_SWARMER = 15546,
NPC_HIVEZARA_LARVA = 15555,
+ NPC_SAND_VORTEX = 15428,
+ NPC_OSSIRIAN_TRIGGER = 15590,
+};
+
+enum GameObjects
+{
+ GO_OSSIRIAN_CRYSTAL = 180619,
};
#endif
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index 95c6d033aab..6b569bbd3e5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "temple_of_ahnqiraj.h"
+#include "Player.h"
/*
* This is a 2 phases events. Here follows an explanation of the main events and transition between phases and sub-phases.
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 36388cfbe9c..917c790f42b 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "temple_of_ahnqiraj.h"
#include "Group.h"
+#include "Player.h"
#define SAY_AGGRO1 -1531000
#define SAY_AGGRO2 -1531001
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
index 887ca4f3ad5..c8a1ff63925 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
@@ -90,7 +90,7 @@ public:
return false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -118,7 +118,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
index 1bb5c1180bd..afd4d834f07 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
@@ -80,7 +80,7 @@ public:
if (data == DONE)SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -98,7 +98,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
if (data == DATA_NARALEX)return NaralexGUID;
return 0;
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index 0d4efac4321..e1a3c3aeb45 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "wailing_caverns.h"
+#include "Player.h"
/*######
## npc_disciple_of_naralex
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
index 3a6a3f6241c..4cdddb2d9da 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -18,6 +18,8 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "zulfarrak.h"
+#include "Player.h"
+#include "TemporarySummon.h"
#define NPC_GAHZRILLA 7273
#define PATH_ADDS 81553
@@ -179,7 +181,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -189,7 +191,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index 03e3756f964..f288db920f4 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -32,6 +32,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "zulfarrak.h"
+#include "Player.h"
/*######
## npc_sergeant_bly
diff --git a/src/server/scripts/Kalimdor/ashenvale.cpp b/src/server/scripts/Kalimdor/ashenvale.cpp
index 6a9dd77433a..0e44da371d6 100644
--- a/src/server/scripts/Kalimdor/ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/ashenvale.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*####
# npc_torek
diff --git a/src/server/scripts/Kalimdor/azshara.cpp b/src/server/scripts/Kalimdor/azshara.cpp
index 8d08c26f0a7..213918db338 100644
--- a/src/server/scripts/Kalimdor/azshara.cpp
+++ b/src/server/scripts/Kalimdor/azshara.cpp
@@ -33,6 +33,9 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "SpellInfo.h"
+#include "WorldSession.h"
/*######
## mobs_spitelashes
@@ -355,14 +358,14 @@ public:
if (TeleportTimer <= diff)
{
- //temp solution - unit can't be teleported by core using spelleffect 5, only players
- if (me->GetMap())
- {
- me->SetPosition(3706.39f, -3969.15f, 35.9118f, 0);
- me->AI_SendMoveToPacket(3706.39f, -3969.15f, 35.9118f, 0, 0, 0);
- }
+ // temp solution - unit can't be teleported by core using spelleffect 5, only players
+ DoTeleportTo(3706.39f, -3969.15f, 35.9118f);
+
//begin swimming and summon depth charges
Player* player = Unit::GetPlayer(*me, PlayerGUID);
+ if (!player)
+ return;
+
SendText(MSG_ESCAPE_NOTICE, player);
DoCast(me, SPELL_PERIODIC_DEPTH_CHARGE);
me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
diff --git a/src/server/scripts/Kalimdor/bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
index 3883b740d02..339cd02c2e3 100644
--- a/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## mob_webbed_creature
diff --git a/src/server/scripts/Kalimdor/darkshore.cpp b/src/server/scripts/Kalimdor/darkshore.cpp
index 0e02a77169e..5d10076c114 100644
--- a/src/server/scripts/Kalimdor/darkshore.cpp
+++ b/src/server/scripts/Kalimdor/darkshore.cpp
@@ -34,6 +34,8 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*####
# npc_kerlonian
diff --git a/src/server/scripts/Kalimdor/desolace.cpp b/src/server/scripts/Kalimdor/desolace.cpp
index e196c71f681..30a87ef0197 100644
--- a/src/server/scripts/Kalimdor/desolace.cpp
+++ b/src/server/scripts/Kalimdor/desolace.cpp
@@ -34,6 +34,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum DyingKodo
{
diff --git a/src/server/scripts/Kalimdor/durotar.cpp b/src/server/scripts/Kalimdor/durotar.cpp
index ec06a542b6f..83111829c9e 100644
--- a/src/server/scripts/Kalimdor/durotar.cpp
+++ b/src/server/scripts/Kalimdor/durotar.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "Vehicle.h"
#include "SpellScript.h"
+#include "Player.h"
/*######
##Quest 5441: Lazy Peons
diff --git a/src/server/scripts/Kalimdor/dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
index 5800a6a58a0..6ab9b653c5d 100644
--- a/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
@@ -36,6 +36,8 @@ EndContentData */
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellScript.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## mobs_risen_husk_spirit
diff --git a/src/server/scripts/Kalimdor/felwood.cpp b/src/server/scripts/Kalimdor/felwood.cpp
index 1a0aa7b21c0..f1d9a9028e1 100644
--- a/src/server/scripts/Kalimdor/felwood.cpp
+++ b/src/server/scripts/Kalimdor/felwood.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npcs_riverbreeze_and_silversky
diff --git a/src/server/scripts/Kalimdor/feralas.cpp b/src/server/scripts/Kalimdor/feralas.cpp
index c1e247044f7..df4345b3aae 100644
--- a/src/server/scripts/Kalimdor/feralas.cpp
+++ b/src/server/scripts/Kalimdor/feralas.cpp
@@ -28,6 +28,8 @@ EndScriptData */
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellScript.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npc_gregan_brewspewer
diff --git a/src/server/scripts/Kalimdor/moonglade.cpp b/src/server/scripts/Kalimdor/moonglade.cpp
index 3c8d2267903..6d93e074e79 100644
--- a/src/server/scripts/Kalimdor/moonglade.cpp
+++ b/src/server/scripts/Kalimdor/moonglade.cpp
@@ -35,6 +35,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## npc_bunthen_plainswind
diff --git a/src/server/scripts/Kalimdor/mulgore.cpp b/src/server/scripts/Kalimdor/mulgore.cpp
index 5b35688c2b8..8ed26b8cf38 100644
--- a/src/server/scripts/Kalimdor/mulgore.cpp
+++ b/src/server/scripts/Kalimdor/mulgore.cpp
@@ -32,6 +32,8 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
# npc_skorn_whitecloud
diff --git a/src/server/scripts/Kalimdor/orgrimmar.cpp b/src/server/scripts/Kalimdor/orgrimmar.cpp
index fca8d0f5fc5..5080daefbf9 100644
--- a/src/server/scripts/Kalimdor/orgrimmar.cpp
+++ b/src/server/scripts/Kalimdor/orgrimmar.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*######
## npc_shenthul
diff --git a/src/server/scripts/Kalimdor/silithus.cpp b/src/server/scripts/Kalimdor/silithus.cpp
index 45a2fad9999..df7d3b1ee89 100644
--- a/src/server/scripts/Kalimdor/silithus.cpp
+++ b/src/server/scripts/Kalimdor/silithus.cpp
@@ -33,6 +33,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "Group.h"
+#include "Player.h"
/*###
## npc_highlord_demitrian
diff --git a/src/server/scripts/Kalimdor/stonetalon_mountains.cpp b/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
index d38395c7b37..5cf6d141805 100644
--- a/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
+++ b/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
@@ -32,6 +32,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_braug_dimspirit
diff --git a/src/server/scripts/Kalimdor/tanaris.cpp b/src/server/scripts/Kalimdor/tanaris.cpp
index 417c8b338c7..7341ccb1e2c 100644
--- a/src/server/scripts/Kalimdor/tanaris.cpp
+++ b/src/server/scripts/Kalimdor/tanaris.cpp
@@ -38,6 +38,8 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## mob_aquementas
diff --git a/src/server/scripts/Kalimdor/teldrassil.cpp b/src/server/scripts/Kalimdor/teldrassil.cpp
index 7f2b2fc7f05..6c1993d6447 100644
--- a/src/server/scripts/Kalimdor/teldrassil.cpp
+++ b/src/server/scripts/Kalimdor/teldrassil.cpp
@@ -30,6 +30,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedFollowerAI.h"
+#include "Player.h"
/*####
# npc_mist
diff --git a/src/server/scripts/Kalimdor/the_barrens.cpp b/src/server/scripts/Kalimdor/the_barrens.cpp
index f4983558b67..8a24f696a23 100644
--- a/src/server/scripts/Kalimdor/the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/the_barrens.cpp
@@ -36,6 +36,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## npc_beaten_corpse
diff --git a/src/server/scripts/Kalimdor/thousand_needles.cpp b/src/server/scripts/Kalimdor/thousand_needles.cpp
index b9ae356ddf1..7667a8b312c 100644
--- a/src/server/scripts/Kalimdor/thousand_needles.cpp
+++ b/src/server/scripts/Kalimdor/thousand_needles.cpp
@@ -36,6 +36,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*#####
# npc_kanati
diff --git a/src/server/scripts/Kalimdor/thunder_bluff.cpp b/src/server/scripts/Kalimdor/thunder_bluff.cpp
index b8b05b9692f..1b10a3a204b 100644
--- a/src/server/scripts/Kalimdor/thunder_bluff.cpp
+++ b/src/server/scripts/Kalimdor/thunder_bluff.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
/*#####
# npc_cairne_bloodhoof
diff --git a/src/server/scripts/Kalimdor/ungoro_crater.cpp b/src/server/scripts/Kalimdor/ungoro_crater.cpp
index 786d2fc0cd3..e00ea566c8f 100644
--- a/src/server/scripts/Kalimdor/ungoro_crater.cpp
+++ b/src/server/scripts/Kalimdor/ungoro_crater.cpp
@@ -32,6 +32,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum AmeData
{
diff --git a/src/server/scripts/Kalimdor/winterspring.cpp b/src/server/scripts/Kalimdor/winterspring.cpp
index 2c4da0fdf7c..73b8bfe9af1 100644
--- a/src/server/scripts/Kalimdor/winterspring.cpp
+++ b/src/server/scripts/Kalimdor/winterspring.cpp
@@ -30,6 +30,8 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npc_rivern_frostwind
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
index fe86f54ae15..9b48d7a9e1c 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
@@ -116,7 +116,7 @@ class boss_elder_nadox : public CreatureScript
GuardianDied = true;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_RESPECT_YOUR_ELDERS)
return !GuardianDied ? 1 : 0;
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
index 3a937942118..b4756a33b38 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
@@ -22,6 +22,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ahnkahet.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
index 02dcc04abd6..e6bb23b61d7 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -156,7 +156,7 @@ public:
volunteerWork = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_VOLUNTEER_WORK)
return volunteerWork ? 1 : 0;
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
index f870c61dd5f..7eaf8368c21 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
@@ -160,7 +160,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -252,7 +252,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
index 4e06ac0ba3a..10575ae288c 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
@@ -105,7 +105,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -149,7 +149,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
index a9d6d9d91ba..e20b08c515e 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
@@ -404,7 +404,7 @@ public:
me->AddLootMode(LOOT_MODE_HARD_MODE_1); // Add 1st Drake loot mode
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == TWILIGHT_ACHIEVEMENTS)
return drakeCount;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp
index 7d4438ed7c7..c39d7fbeb09 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp
@@ -108,7 +108,7 @@ public:
m_bVesperonKilled = true;
}
- uint32 GetData(uint32 uiType)
+ uint32 GetData(uint32 uiType) const
{
if (uiType == TYPE_SARTHARION_EVENT)
return m_auiEncounter[0];
@@ -122,7 +122,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData)
+ uint64 GetData64(uint32 uiData) const
{
switch (uiData)
{
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 82739c0026a..2bb2b1c3cd7 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -24,12 +24,13 @@
#include "GameObjectAI.h"
#include "ScriptedCreature.h"
#include "ruby_sanctum.h"
+#include "Player.h"
/* ScriptData
SDName: ruby_sanctum
SDAuthors: Kaelima, Warpten
SD%Complete: 90%
-SDComment: Based on Kaelima's initial work (nearly half of it). Corporeality handling is a pure guess, we lack info.
+SDComment: Based on Kaelima's initial work (half of it). Corporeality handling is a pure guess, we lack info.
SDCategory: Chamber of Aspects
EndScriptData */
@@ -123,13 +124,12 @@ enum Events
// Halion
EVENT_ACTIVATE_FIREWALL = 1,
EVENT_CLEAVE = 2,
- EVENT_FLAME_BREATH = 3,
+ EVENT_BREATH = 3,
EVENT_METEOR_STRIKE = 4,
EVENT_FIERY_COMBUSTION = 5,
EVENT_TAIL_LASH = 6,
// Twilight Halion
- EVENT_DARK_BREATH = 7,
EVENT_SOUL_CONSUMPTION = 8,
// Meteor Strike
@@ -153,12 +153,10 @@ enum Actions
ACTION_METEOR_STRIKE_AOE = 2,
// Halion Controller
- ACTION_PHASE_TWO = 3,
- ACTION_PHASE_THREE = 4,
- ACTION_CLEANUP = 5,
+ ACTION_MONITOR_CORPOREALITY = 3,
// Orb Carrier
- ACTION_SHOOT = 6
+ ACTION_SHOOT = 4
};
enum Phases
@@ -231,9 +229,11 @@ struct generic_halionAI : public BossAI
void EnterCombat(Unit* who)
{
BossAI::EnterCombat(who);
+ me->AddAura(SPELL_TWILIGHT_PRECISION, me);
_canEvade = false;
events.ScheduleEvent(EVENT_CLEAVE, urand(8000, 10000));
events.ScheduleEvent(EVENT_TAIL_LASH, 10000);
+ events.ScheduleEvent(EVENT_BREATH, urand(10000, 15000));
}
void Reset()
@@ -260,19 +260,20 @@ struct generic_halionAI : public BossAI
DoCastAOE(SPELL_TAIL_LASH);
events.ScheduleEvent(EVENT_TAIL_LASH, 10000);
break;
+ case EVENT_BREATH:
+ DoCast(me, me->GetEntry() == NPC_HALION ? SPELL_FLAME_BREATH : SPELL_DARK_BREATH);
+ events.ScheduleEvent(EVENT_BREATH, urand(10000, 12000));
+ break;
}
}
void UpdateAI(uint32 const diff)
{
- if (!UpdateVictim())
+ if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_CASTING))
return;
events.Update(diff);
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
while (uint32 eventId = events.ExecuteEvent())
ExecuteEvent(eventId);
@@ -319,7 +320,6 @@ class boss_halion : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
me->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->AddAura(SPELL_TWILIGHT_PRECISION, me);
}
void EnterEvadeMode()
@@ -342,7 +342,6 @@ class boss_halion : public CreatureScript
instance->SetBossState(DATA_HALION, IN_PROGRESS);
events.ScheduleEvent(EVENT_ACTIVATE_FIREWALL, 5000);
- events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 12000));
events.ScheduleEvent(EVENT_METEOR_STRIKE, urand(20000, 25000));
events.ScheduleEvent(EVENT_FIERY_COMBUSTION, urand(15000, 18000));
@@ -408,10 +407,6 @@ class boss_halion : public CreatureScript
if (GameObject* flameRing = ObjectAccessor::GetGameObject(*me, instance->GetData64(i)))
instance->HandleGameObject(instance->GetData64(DATA_FLAME_RING), false, flameRing);
break;
- case EVENT_FLAME_BREATH:
- DoCast(me, SPELL_FLAME_BREATH);
- events.ScheduleEvent(EVENT_FLAME_BREATH, 25000);
- break;
case EVENT_METEOR_STRIKE:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true, -SPELL_TWILIGHT_REALM))
@@ -490,7 +485,6 @@ class boss_twilight_halion : public CreatureScript
generic_halionAI::EnterCombat(who);
- events.ScheduleEvent(EVENT_DARK_BREATH, urand(10000, 15000));
events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 20000);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 2);
@@ -554,7 +548,7 @@ class boss_twilight_halion : public CreatureScript
{
case SPELL_TWILIGHT_DIVISION:
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER)))
- controller->AI()->SetData(DATA_FIGHT_PHASE, PHASE_THREE);
+ controller->AI()->DoAction(ACTION_MONITOR_CORPOREALITY);
break;
default:
generic_halionAI::SpellHit(who, spell);
@@ -566,10 +560,6 @@ class boss_twilight_halion : public CreatureScript
{
switch (eventId)
{
- case EVENT_DARK_BREATH:
- DoCast(me, SPELL_DARK_BREATH);
- events.ScheduleEvent(EVENT_DARK_BREATH, urand(10000, 15000));
- break;
case EVENT_SOUL_CONSUMPTION:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, SPELL_TWILIGHT_REALM))
DoCast(target, SPELL_SOUL_CONSUMPTION);
@@ -610,6 +600,8 @@ class npc_halion_controller : public CreatureScript
_summons.DespawnAll();
_events.Reset();
_materialCorporealityValue = 5;
+ _materialDamageTaken = 0;
+ _twilightDamageTaken = 0;
DoCast(me, SPELL_CLEAR_DEBUFFS);
}
@@ -658,6 +650,34 @@ class npc_halion_controller : public CreatureScript
_events.SetPhase(PHASE_INTRO);
_events.ScheduleEvent(EVENT_START_INTRO, 2000);
break;
+ case ACTION_MONITOR_CORPOREALITY:
+ {
+ for (uint8 itr = DATA_HALION; itr <= DATA_TWILIGHT_HALION; itr++)
+ {
+ Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(itr));
+ if (!halion)
+ continue;
+
+ halion->CastSpell(halion, GetSpell(_materialCorporealityValue, itr == DATA_TWILIGHT_HALION), false);
+ halion->AI()->SetData(DATA_FIGHT_PHASE, PHASE_THREE);
+
+ if (itr == DATA_TWILIGHT_HALION)
+ continue;
+
+ halion->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING);
+ halion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ // Summon Twilight portals
+ DoCast(me, SPELL_SUMMON_EXIT_PORTALS);
+
+ _instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 1);
+ // Hardcoding doesn't really matter here.
+ _instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
+ _instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
+
+ _events.ScheduleEvent(EVENT_CHECK_CORPOREALITY, 7500);
+ }
default:
break;
}
@@ -748,36 +768,8 @@ class npc_halion_controller : public CreatureScript
DoZoneInCombat();
break;
case PHASE_TWO:
- // Timer taken from a 4.3.4 solo video and confirmed by TankSpot's 3.3.5 guide. http://www.tankspot.com/showthread.php?67195-Halion-Encounter-Guide-Live
_events.ScheduleEvent(EVENT_SHADOW_PULSARS_SHOOT, 29000);
break;
- case PHASE_THREE:
- _events.ScheduleEvent(EVENT_CHECK_CORPOREALITY, 5000);
- // Load up corporeality data.
- for (uint8 itr = DATA_HALION; itr <= DATA_TWILIGHT_HALION; itr++)
- {
- Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(itr));
- if (!halion)
- continue;
-
- halion->CastSpell(halion, GetSpell(_materialCorporealityValue, itr == DATA_TWILIGHT_HALION), false);
- halion->AI()->SetData(DATA_FIGHT_PHASE, PHASE_THREE);
-
- if (itr == DATA_TWILIGHT_HALION)
- continue;
-
- halion->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING);
- halion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- // Summon Twilight portals
- DoCast(me, SPELL_SUMMON_EXIT_PORTALS);
-
- _instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 1);
- // Hardcoding doesn't really matter here.
- _instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
- _instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
- break;
default:
break;
}
@@ -808,17 +800,21 @@ class npc_halion_controller : public CreatureScript
float damageRatio = float(_materialDamageTaken) / float(_twilightDamageTaken);
CorporealityEvent action = CORPOREALITY_NONE;
- if (damageRatio < 0.98f) // [0 , 0.98[: Corporeality goes down
+ if (damageRatio < 0.98f) // [0 , 0.98[: Corporeality goes down
action = CORPOREALITY_DECREASE;
- else if (0.99f < damageRatio && damageRatio < 1.0f) // ]0.99, 1.01[: Twilight Mending
+ else if (0.99f < damageRatio && damageRatio < 1.01f) // ]0.99, 1.01[: Twilight Mending
action = CORPOREALITY_TWILIGHT_MENDING;
- else if (1.02f < damageRatio) // ]1.02, +oo [: Corporeality goes up
+ else if (1.02f < damageRatio) // ]1.02, +oo [: Corporeality goes up
action = CORPOREALITY_INCREASE;
switch (action)
{
case CORPOREALITY_NONE:
+ {
+ _materialDamageTaken = 0;
+ _twilightDamageTaken = 0;
return;
+ }
case CORPOREALITY_INCREASE:
{
if (_materialCorporealityValue >= (MAX_CORPOREALITY_STATE - 1))
@@ -1375,7 +1371,7 @@ class spell_halion_combustion_consumption : public SpellScriptLoader
public:
spell_halion_combustion_consumption_AuraScript(uint32 spellID) : AuraScript(), _markSpell(spellID) { }
- bool Validate(SpellEntry const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/)
{
if (!sSpellMgr->GetSpellInfo(_markSpell))
return false;
@@ -1434,7 +1430,7 @@ class spell_halion_marks : public SpellScriptLoader
spell_halion_marks_AuraScript(uint32 summonSpell, uint32 removeSpell) : AuraScript(),
_summonSpellId(summonSpell), _removeSpellId(removeSpell) { }
- bool Validate(SpellEntry const* /*spell*/)
+ bool Validate(SpellInfo const* /*spell*/)
{
if (!sSpellMgr->GetSpellInfo(_summonSpellId))
return false;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index bf48132b2b2..939c22325d7 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -18,7 +18,9 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "ruby_sanctum.h"
-
+#include "Player.h"
+#include "TemporarySummon.h"
+#include "WorldPacket.h"
DoorData const doorData[] =
{
@@ -162,7 +164,7 @@ class instance_ruby_sanctum : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
@@ -272,7 +274,7 @@ class instance_ruby_sanctum : public InstanceMapScript
BaltharusSharedHealth = data;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type != DATA_BALTHARUS_SHARED_HEALTH)
return 0;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
index 273c860a2ad..ce543b95fd5 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ruby_sanctum.h"
+#include "Player.h"
enum Texts
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
index f3b6078d536..35a22c6bf37 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "ScriptedEscortAI.h"
#include "Vehicle.h"
#include "trial_of_the_champion.h"
+#include "Player.h"
enum eSpells
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
index 310dd1003c3..d2a01003324 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "trial_of_the_champion.h"
+#include "Player.h"
#define MAX_ENCOUNTER 4
@@ -234,7 +235,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 uiData)
+ uint32 GetData(uint32 uiData) const
{
switch (uiData)
{
@@ -250,7 +251,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData)
+ uint64 GetData64(uint32 uiData) const
{
switch (uiData)
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
index a2488513d63..ffda3d12e2f 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptedGossip.h"
#include "trial_of_the_champion.h"
#include "Vehicle.h"
+#include "Player.h"
#define GOSSIP_START_EVENT1 "I'm ready to start challenge."
#define GOSSIP_START_EVENT2 "I'm ready for the next challenge."
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 564df34462b..f618d0e04e7 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -16,24 +16,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: boss_anubarak_trial
-SD%Complete: ??%
-SDComment: based on /dev/rsa
-SDCategory:
-EndScriptData */
-
// Known bugs:
// Anubarak - underground phase partially not worked
// - tele after impale hit a permafrost doesn't work (the entire tele spell should be better)
-// Burrow - visual is vanishing
-// Burrower - Spider Frenzy not working as it should (frenzy not stacking)
// Scarab - Kill credit isn't crediting?
-// FrostSph - often they are casting Permafrost a little above the ground
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "trial_of_the_crusader.h"
+#include "SpellScript.h"
+#include <limits>
enum Yells
{
@@ -47,7 +39,7 @@ enum Yells
SAY_KILL_PLAYER = 7,
SAY_DEATH = 8,
- EMOTE_SPIKE = 0,
+ EMOTE_SPIKE = 0
};
enum Summons
@@ -56,7 +48,7 @@ enum Summons
NPC_BURROW = 34862,
NPC_BURROWER = 34607,
NPC_SCARAB = 34605,
- NPC_SPIKE = 34660,
+ NPC_SPIKE = 34660
};
enum BossSpells
@@ -86,8 +78,9 @@ enum BossSpells
SPELL_EXPOSE_WEAKNESS = 67720, //Passive - Triggered
SPELL_SHADOW_STRIKE = 66134,
SPELL_SUBMERGE_EFFECT = 68394,
- SPELL_EMERGE_EFFECT = 65982,
SPELL_AWAKENED = 66311,
+ SPELL_EMERGE_EFFECT = 65982,
+
SPELL_PERSISTENT_DIRT = 68048,
SUMMON_SCARAB = NPC_SCARAB,
@@ -107,15 +100,15 @@ enum BossSpells
SPELL_SPIKE_SPEED2 = 65922,
SPELL_SPIKE_SPEED3 = 65923,
SPELL_SPIKE_FAIL = 66181,
- SPELL_SPIKE_TELE = 66170,
+ SPELL_SPIKE_TELE = 66170
};
#define SPELL_PERMAFROST_HELPER RAID_MODE<uint32>(66193, 67855, 67856, 67857)
enum SummonActions
{
- ACTION_SHADOW_STRIKE,
- ACTION_SCARAB_SUBMERGE,
+ ACTION_SHADOW_STRIKE = 0,
+ ACTION_SCARAB_SUBMERGE = 1
};
const Position SphereSpawn[6] =
@@ -133,446 +126,468 @@ enum MovementPoints
POINT_FALL_GROUND = 1
};
-class boss_anubarak_trial : public CreatureScript
+enum PursuingSpikesPhases
{
-public:
- boss_anubarak_trial() : CreatureScript("boss_anubarak_trial") { }
+ PHASE_NO_MOVEMENT = 0,
+ PHASE_IMPALE_NORMAL = 1,
+ PHASE_IMPALE_MIDDLE = 2,
+ PHASE_IMPALE_FAST = 3
+};
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_anubarak_trialAI(creature);
- };
+enum Events
+{
+ // Anub'arak
+ EVENT_FREEZE_SLASH = 1,
+ EVENT_PENETRATING_COLD = 2,
+ EVENT_SUMMON_NERUBIAN = 3,
+ EVENT_NERUBIAN_SHADOW_STRIKE = 4,
+ EVENT_SUBMERGE = 5,
+ EVENT_EMERGE = 6,
+ EVENT_PURSUING_SPIKE = 7,
+ EVENT_SUMMON_SCARAB = 8,
+ EVENT_SUMMON_FROST_SPHERE = 9,
+ EVENT_BERSERK = 10
+};
- struct boss_anubarak_trialAI : public ScriptedAI
- {
- boss_anubarak_trialAI(Creature* creature) : ScriptedAI(creature), Summons(me)
- {
- instance = creature->GetInstanceScript();
- }
+enum Phases
+{
+ // Anub'arak
+ PHASE_MELEE = 1,
+ PHASE_SUBMERGED = 2,
- InstanceScript* instance;
-
- SummonList Summons;
- std::list<uint64> m_vBurrowGUID;
- uint64 m_aSphereGUID[6];
-
- uint32 m_uiFreezeSlashTimer;
- uint32 m_uiPenetratingColdTimer;
- uint32 m_uiSummonNerubianTimer;
- uint32 m_uiNerubianShadowStrikeTimer;
- uint32 m_uiSubmergeTimer;
- uint32 m_uiPursuingSpikeTimer;
- uint32 m_uiSummonScarabTimer;
- uint32 m_uiSummonFrostSphereTimer;
- uint32 m_uiBerserkTimer;
-
- uint8 m_uiStage;
- bool m_bIntro;
- bool m_bReachedPhase3;
- uint64 m_uiTargetGUID;
- uint8 m_uiScarabSummoned;
-
- void Reset()
- {
- m_uiFreezeSlashTimer = 15*IN_MILLISECONDS;
- m_uiPenetratingColdTimer = 20*IN_MILLISECONDS;
- m_uiNerubianShadowStrikeTimer = 30*IN_MILLISECONDS;
- m_uiSummonNerubianTimer = 10*IN_MILLISECONDS;
- m_uiSubmergeTimer = 80*IN_MILLISECONDS;
-
- m_uiPursuingSpikeTimer = 2*IN_MILLISECONDS;
- m_uiSummonScarabTimer = 2*IN_MILLISECONDS;
-
- m_uiSummonFrostSphereTimer = 20*IN_MILLISECONDS;
-
- m_uiBerserkTimer = 10*MINUTE*IN_MILLISECONDS;
- m_uiStage = 0;
- m_uiScarabSummoned = 0;
- m_bIntro = true;
- m_bReachedPhase3 = false;
- m_uiTargetGUID = 0;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- Summons.DespawnAll();
- m_vBurrowGUID.clear();
- }
+ PHASE_MASK_MELEE = 1 << PHASE_MELEE
+};
- void KilledUnit(Unit* who)
+class boss_anubarak_trial : public CreatureScript
+{
+ public:
+ boss_anubarak_trial() : CreatureScript("boss_anubarak_trial") { }
+
+ struct boss_anubarak_trialAI : public BossAI
{
- if (who->GetTypeId() == TYPEID_PLAYER)
+ boss_anubarak_trialAI(Creature* creature) : BossAI(creature, BOSS_ANUBARAK)
{
- Talk(SAY_KILL_PLAYER);
- if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
- }
- void MoveInLineOfSight(Unit* /*who*/)
- {
- if (!m_bIntro)
+ void Reset()
{
- Talk(SAY_INTRO);
- m_bIntro = false;
+ _Reset();
+ events.SetPhase(PHASE_MELEE);
+ events.ScheduleEvent(EVENT_FREEZE_SLASH, 15*IN_MILLISECONDS, 0, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_PENETRATING_COLD, 20*IN_MILLISECONDS, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_SUMMON_NERUBIAN, 10*IN_MILLISECONDS, 0, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_SUBMERGE, 80*IN_MILLISECONDS, 0, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_BERSERK, 10*MINUTE*IN_MILLISECONDS);
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_NERUBIAN_SHADOW_STRIKE, 30*IN_MILLISECONDS, 0, PHASE_MELEE);
+
+ if (!IsHeroic())
+ events.ScheduleEvent(EVENT_SUMMON_FROST_SPHERE, 20*IN_MILLISECONDS);
+
+ _intro = true;
+ _reachedPhase3 = false;
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ // clean up spawned Frost Spheres
+ std::list<Creature*> FrostSphereList;
+ me->GetCreatureListWithEntryInGrid(FrostSphereList, NPC_FROST_SPHERE, 150.0f);
+ if (!FrostSphereList.empty())
+ for (std::list<Creature*>::iterator itr = FrostSphereList.begin(); itr != FrostSphereList.end(); itr++)
+ (*itr)->DespawnOrUnsummon();
+
+ _burrowGUID.clear();
}
- }
- void JustReachedHome()
- {
- if (instance)
- instance->SetData(TYPE_ANUBARAK, FAIL);
- //Summon Scarab Swarms neutral at random places
- for (int i=0; i < 10; i++)
- if (Creature* temp = me->SummonCreature(NPC_SCARAB, AnubarakLoc[1].GetPositionX()+urand(0, 50)-25, AnubarakLoc[1].GetPositionY()+urand(0, 50)-25, AnubarakLoc[1].GetPositionZ()))
+ void KilledUnit(Unit* who)
+ {
+ if (who->GetTypeId() == TYPEID_PLAYER)
{
- temp->setFaction(31);
- temp->GetMotionMaster()->MoveRandom(10);
+ Talk(SAY_KILL_PLAYER);
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
- }
-
- void JustDied(Unit* /*killer*/)
- {
- Summons.DespawnAll();
- Talk(SAY_DEATH);
- if (instance)
- instance->SetData(TYPE_ANUBARAK, DONE);
- }
-
- void JustSummoned(Creature* summoned)
- {
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true);
- switch (summoned->GetEntry())
- {
- case NPC_BURROW:
- m_vBurrowGUID.push_back(summoned->GetGUID());
- summoned->SetReactState(REACT_PASSIVE);
- summoned->CastSpell(summoned, SPELL_CHURNING_GROUND, false);
- break;
- case NPC_SPIKE:
- summoned->CombatStart(target);
- Talk(EMOTE_SPIKE, target->GetGUID());
- break;
- }
- Summons.Summon(summoned);
- }
+ }
- void SummonedCreatureDespawn(Creature* summoned)
- {
- switch (summoned->GetEntry())
+ void MoveInLineOfSight(Unit* /*who*/)
{
- case NPC_SPIKE:
- m_uiPursuingSpikeTimer = 2*IN_MILLISECONDS;
- break;
+ if (!_intro)
+ {
+ Talk(SAY_INTRO);
+ _intro = false;
+ }
}
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- Talk(SAY_AGGRO);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->SetInCombatWithZone();
- if (instance)
- instance->SetData(TYPE_ANUBARAK, IN_PROGRESS);
- //Despawn Scarab Swarms neutral
- EntryCheckPredicate pred(NPC_SCARAB);
- Summons.DoAction(ACTION_SCARAB_SUBMERGE, pred);
- //Spawn Burrow
- for (int i=0; i < 4; i++)
- me->SummonCreature(NPC_BURROW, AnubarakLoc[i+2]);
- //Spawn Frost Spheres
- for (int i=0; i < 6; i++)
- if (Unit* summoned = me->SummonCreature(NPC_FROST_SPHERE, SphereSpawn[i]))
- m_aSphereGUID[i] = summoned->GetGUID();
- }
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
+ void JustReachedHome()
+ {
+ if (instance)
+ instance->SetBossState(BOSS_ANUBARAK, FAIL);
+ //Summon Scarab Swarms neutral at random places
+ for (int i = 0; i < 10; i++)
+ if (Creature* temp = me->SummonCreature(NPC_SCARAB, AnubarakLoc[1].GetPositionX()+urand(0, 50)-25, AnubarakLoc[1].GetPositionY()+urand(0, 50)-25, AnubarakLoc[1].GetPositionZ()))
+ {
+ temp->setFaction(31);
+ temp->GetMotionMaster()->MoveRandom(10);
+ }
+ }
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+
+ // despawn frostspheres and Burrowers on death
+ std::list<Creature*> AddList;
+ me->GetCreatureListWithEntryInGrid(AddList, NPC_FROST_SPHERE, 150.0f);
+ me->GetCreatureListWithEntryInGrid(AddList, NPC_BURROWER, 150.0f);
+ if (!AddList.empty())
+ for (std::list<Creature*>::iterator itr = AddList.begin(); itr != AddList.end(); itr++)
+ (*itr)->DespawnOrUnsummon();
+ }
- switch (m_uiStage)
+ void JustSummoned(Creature* summoned)
{
- case 0:
- if (m_uiFreezeSlashTimer <= uiDiff)
- {
- DoCastVictim(SPELL_FREEZE_SLASH);
- m_uiFreezeSlashTimer = 15*IN_MILLISECONDS;
- } else m_uiFreezeSlashTimer -= uiDiff;
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true);
+ switch (summoned->GetEntry())
+ {
+ case NPC_BURROW:
+ _burrowGUID.push_back(summoned->GetGUID());
+ summoned->SetReactState(REACT_PASSIVE);
+ summoned->CastSpell(summoned, SPELL_CHURNING_GROUND, false);
+ summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid2);
+ break;
+ case NPC_SPIKE:
+ summoned->CombatStart(target);
+ summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid1);
+ Talk(EMOTE_SPIKE, target->GetGUID());
+ break;
+ default:
+ break;
+ }
+ summons.Summon(summoned);
+ }
- if (m_uiPenetratingColdTimer <= uiDiff)
- {
- me->CastCustomSpell(SPELL_PENETRATING_COLD, SPELLVALUE_MAX_TARGETS, RAID_MODE(2, 5, 2, 5));
- m_uiPenetratingColdTimer = 20*IN_MILLISECONDS;
- } else m_uiPenetratingColdTimer -= uiDiff;
+ void EnterCombat(Unit* /*who*/)
+ {
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+
+ // Despawn Scarab Swarms neutral
+ EntryCheckPredicate pred(NPC_SCARAB);
+ summons.DoAction(ACTION_SCARAB_SUBMERGE, pred);
+
+ // Spawn Burrow
+ for (int i = 0; i < 4; i++)
+ me->SummonCreature(NPC_BURROW, AnubarakLoc[i + 2]);
+
+ // Spawn 6 Frost Spheres at start
+ for (int i = 0; i < 6; i++)
+ if (Unit* summoned = me->SummonCreature(NPC_FROST_SPHERE, SphereSpawn[i]))
+ _sphereGUID[i] = summoned->GetGUID();
+ }
- if (m_uiSummonNerubianTimer <= uiDiff && (IsHeroic() || !m_bReachedPhase3))
- {
- me->CastCustomSpell(SPELL_SUMMON_BURROWER, SPELLVALUE_MAX_TARGETS, RAID_MODE(1, 2, 2, 4));
- m_uiSummonNerubianTimer = 45*IN_MILLISECONDS;
- } else m_uiSummonNerubianTimer -= uiDiff;
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
+ return;
- if (IsHeroic() && m_uiNerubianShadowStrikeTimer <= uiDiff)
- {
- EntryCheckPredicate pred(NPC_BURROWER);
- Summons.DoAction(ACTION_SHADOW_STRIKE, pred);
- m_uiNerubianShadowStrikeTimer = 30*IN_MILLISECONDS;
- } else m_uiNerubianShadowStrikeTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiSubmergeTimer <= uiDiff && !m_bReachedPhase3 && !me->HasAura(SPELL_BERSERK))
- {
- m_uiStage = 1;
- m_uiSubmergeTimer = 60*IN_MILLISECONDS;
- } else m_uiSubmergeTimer -= uiDiff;
- break;
- case 1:
- DoCast(me, SPELL_SUBMERGE_ANUBARAK);
- DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- Talk(EMOTE_BURROWER);
- m_uiScarabSummoned = 0;
- m_uiSummonScarabTimer = 4*IN_MILLISECONDS;
- m_uiStage = 2;
- break;
- case 2:
- if (m_uiPursuingSpikeTimer <= uiDiff)
- {
- DoCast(SPELL_SPIKE_CALL);
- // Just to make sure it won't happen again in this phase
- m_uiPursuingSpikeTimer = 90*IN_MILLISECONDS;
- } else m_uiPursuingSpikeTimer -= uiDiff;
+ events.Update(diff);
- if (m_uiSummonScarabTimer <= uiDiff)
- {
- /* WORKAROUND
- * - The correct implementation is more likely the comment below but it needs spell knowledge
- */
- std::list<uint64>::iterator i = m_vBurrowGUID.begin();
- uint32 at = urand(0, m_vBurrowGUID.size()-1);
- for (uint32 k = 0; k < at; k++)
- ++i;
- if (Creature* pBurrow = Unit::GetCreature(*me, *i))
- pBurrow->CastSpell(pBurrow, 66340, false);
- m_uiScarabSummoned++;
- m_uiSummonScarabTimer = 4*IN_MILLISECONDS;
- if (m_uiScarabSummoned == 4) m_uiSummonScarabTimer = RAID_MODE(4, 20)*IN_MILLISECONDS;
-
- /*It seems that this spell have something more that needs to be taken into account
- //Need more sniff info
- DoCast(SPELL_SUMMON_BEATLES);
- // Just to make sure it won't happen again in this phase
- m_uiSummonScarabTimer = 90*IN_MILLISECONDS;*/
- } else m_uiSummonScarabTimer -= uiDiff;
-
- if (m_uiSubmergeTimer <= uiDiff)
- {
- m_uiStage = 3;
- m_uiSubmergeTimer = 80*IN_MILLISECONDS;
- } else m_uiSubmergeTimer -= uiDiff;
- break;
- case 3:
- m_uiStage = 0;
- DoCast(SPELL_SPIKE_TELE);
- Summons.DespawnEntry(NPC_SPIKE);
- me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- DoCast(me, SPELL_EMERGE_ANUBARAK);
- me->GetMotionMaster()->MoveChase(me->getVictim());
- m_uiSummonNerubianTimer = 10*IN_MILLISECONDS;
- m_uiNerubianShadowStrikeTimer = 30*IN_MILLISECONDS;
- m_uiSummonScarabTimer = 2*IN_MILLISECONDS;
- break;
- }
-
- if (!IsHeroic())
- {
- if (m_uiSummonFrostSphereTimer <= uiDiff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- uint8 startAt = urand(0, 5);
- uint8 i = startAt;
- do
+ switch (eventId)
{
- if (Unit* pSphere = Unit::GetCreature(*me, m_aSphereGUID[i]))
+ case EVENT_FREEZE_SLASH:
+ DoCastVictim(SPELL_FREEZE_SLASH);
+ events.ScheduleEvent(EVENT_FREEZE_SLASH, 15*IN_MILLISECONDS, 0, PHASE_MELEE);
+ return;
+ case EVENT_PENETRATING_COLD:
+ me->CastCustomSpell(SPELL_PENETRATING_COLD, SPELLVALUE_MAX_TARGETS, RAID_MODE(2, 5, 2, 5));
+ events.ScheduleEvent(EVENT_PENETRATING_COLD, 20*IN_MILLISECONDS, 0, PHASE_MELEE);
+ return;
+ case EVENT_SUMMON_NERUBIAN:
+ if (IsHeroic() || !_reachedPhase3)
+ me->CastCustomSpell(SPELL_SUMMON_BURROWER, SPELLVALUE_MAX_TARGETS, RAID_MODE(1, 2, 2, 4));
+ events.ScheduleEvent(EVENT_SUMMON_NERUBIAN, 45*IN_MILLISECONDS, 0, PHASE_MELEE);
+ return;
+ case EVENT_NERUBIAN_SHADOW_STRIKE:
{
- if (!pSphere->HasAura(SPELL_FROST_SPHERE))
+ EntryCheckPredicate pred(NPC_BURROWER);
+ summons.DoAction(ACTION_SHADOW_STRIKE, pred);
+ events.ScheduleEvent(EVENT_NERUBIAN_SHADOW_STRIKE, 30*IN_MILLISECONDS, 0, PHASE_MELEE);
+ break;
+ }
+ case EVENT_SUBMERGE:
+ if (!_reachedPhase3 && !me->HasAura(SPELL_BERSERK))
{
- if (Creature* summon = me->SummonCreature(NPC_FROST_SPHERE, SphereSpawn[i]))
- m_aSphereGUID[i] = summon->GetGUID();
- break;
+ DoCast(me, SPELL_SUBMERGE_ANUBARAK);
+ DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ Talk(EMOTE_BURROWER);
+ events.SetPhase(PHASE_SUBMERGED);
+ events.ScheduleEvent(EVENT_PURSUING_SPIKE, 2*IN_MILLISECONDS, 0, PHASE_SUBMERGED);
+ events.ScheduleEvent(EVENT_SUMMON_SCARAB, 4*IN_MILLISECONDS, 0, PHASE_SUBMERGED);
+ events.ScheduleEvent(EVENT_EMERGE, 1*MINUTE*IN_MILLISECONDS, 0, PHASE_SUBMERGED);
}
+ break;
+ case EVENT_PURSUING_SPIKE:
+ DoCast(SPELL_SPIKE_CALL);
+ break;
+ case EVENT_SUMMON_SCARAB:
+ {
+ /* WORKAROUND
+ * - The correct implementation is more likely the comment below but it needs spell knowledge
+ */
+ std::list<uint64>::iterator i = _burrowGUID.begin();
+ uint32 at = urand(0, _burrowGUID.size()-1);
+ for (uint32 k = 0; k < at; k++)
+ ++i;
+ if (Creature* pBurrow = Unit::GetCreature(*me, *i))
+ pBurrow->CastSpell(pBurrow, 66340, false);
+
+ events.ScheduleEvent(EVENT_SUMMON_SCARAB, 4*IN_MILLISECONDS, 0, PHASE_SUBMERGED);
+
+ /*It seems that this spell have something more that needs to be taken into account
+ //Need more sniff info
+ DoCast(SPELL_SUMMON_BEATLES);
+ // Just to make sure it won't happen again in this phase
+ m_uiSummonScarabTimer = 90*IN_MILLISECONDS;*/
+ break;
}
- i = (i+1)%6;
- } while (i != startAt);
- m_uiSummonFrostSphereTimer = urand(20, 30)*IN_MILLISECONDS;
- } else m_uiSummonFrostSphereTimer -= uiDiff;
- }
+ case EVENT_EMERGE:
+ events.ScheduleEvent(EVENT_SUBMERGE, 80*IN_MILLISECONDS, 0, PHASE_MELEE);
+ DoCast(SPELL_SPIKE_TELE);
+ summons.DespawnEntry(NPC_SPIKE);
+ me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ DoCast(me, SPELL_EMERGE_ANUBARAK);
+ events.SetPhase(PHASE_MELEE);
+ events.ScheduleEvent(EVENT_FREEZE_SLASH, 15*IN_MILLISECONDS, 0, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_PENETRATING_COLD, 20*IN_MILLISECONDS, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_SUMMON_NERUBIAN, 10*IN_MILLISECONDS, 0, PHASE_MELEE);
+ events.ScheduleEvent(EVENT_SUBMERGE, 80*IN_MILLISECONDS, 0, PHASE_MELEE);
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_NERUBIAN_SHADOW_STRIKE, 30*IN_MILLISECONDS, 0, PHASE_MELEE);
+ return;
+ case EVENT_SUMMON_FROST_SPHERE:
+ {
+ uint8 startAt = urand(0, 5);
+ uint8 i = startAt;
+ do
+ {
+ if (Unit* pSphere = Unit::GetCreature(*me, _sphereGUID[i]))
+ {
+ if (!pSphere->HasAura(SPELL_FROST_SPHERE))
+ {
+ if (Creature* summon = me->SummonCreature(NPC_FROST_SPHERE, SphereSpawn[i]))
+ _sphereGUID[i] = summon->GetGUID();
+ break;
+ }
+ }
+ i = (i + 1) % 6;
+ }
+ while
+ (i != startAt);
+ events.ScheduleEvent(EVENT_SUMMON_FROST_SPHERE, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ break;
+ }
+ case EVENT_BERSERK:
+ DoCast(me, SPELL_BERSERK);
+ break;
+ default:
+ break;
+ }
- if (HealthBelowPct(30) && m_uiStage == 0 && !m_bReachedPhase3)
- {
- m_bReachedPhase3 = true;
- DoCastAOE(SPELL_LEECHING_SWARM);
- Talk(EMOTE_LEECHING_SWARM);
- Talk(SAY_LEECHING_SWARM);
- }
+ }
- if (m_uiBerserkTimer <= uiDiff && !me->HasAura(SPELL_BERSERK))
- {
- DoCast(me, SPELL_BERSERK);
- } else m_uiBerserkTimer -= uiDiff;
+ if (HealthBelowPct(30) && events.GetPhaseMask() & PHASE_MASK_MELEE && !_reachedPhase3)
+ {
+ _reachedPhase3 = true;
+ DoCastAOE(SPELL_LEECHING_SWARM);
+ Talk(EMOTE_LEECHING_SWARM);
+ Talk(SAY_LEECHING_SWARM);
+ }
- DoMeleeAttackIfReady();
- }
- };
+ if (events.GetPhaseMask() & PHASE_MASK_MELEE)
+ DoMeleeAttackIfReady();
+ }
+ private:
+ std::list<uint64> _burrowGUID;
+ uint64 _sphereGUID[6];
+ bool _intro;
+ bool _reachedPhase3;
+ uint32 _frostSphereTimer;
+ uint32 _berserkTimer;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_anubarak_trialAI(creature);
+ };
};
class mob_swarm_scarab : public CreatureScript
{
-public:
- mob_swarm_scarab() : CreatureScript("mob_swarm_scarab") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_swarm_scarabAI(creature);
- };
-
- struct mob_swarm_scarabAI : public ScriptedAI
- {
- mob_swarm_scarabAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 m_uiDeterminationTimer;
+ public:
+ mob_swarm_scarab() : CreatureScript("mob_swarm_scarab") { }
- void Reset()
+ struct mob_swarm_scarabAI : public ScriptedAI
{
- me->SetCorpseDelay(0);
- m_uiDeterminationTimer = urand(5*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- DoCast(me, SPELL_ACID_MANDIBLE);
- me->SetInCombatWithZone();
- if (me->isInCombat())
- if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ANUBARAK)))
- Anubarak->AI()->JustSummoned(me);
- }
+ mob_swarm_scarabAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = creature->GetInstanceScript();
+ }
- void DoAction(const int32 actionId)
- {
- switch (actionId)
+ void Reset()
{
- case ACTION_SCARAB_SUBMERGE:
- DoCast(SPELL_SUBMERGE_EFFECT);
- me->DespawnOrUnsummon(1000);
- break;
+ me->SetCorpseDelay(0);
+ _determinationTimer = urand(5*IN_MILLISECONDS, 60*IN_MILLISECONDS);
+ DoCast(me, SPELL_ACID_MANDIBLE);
+ me->SetInCombatWithZone();
+ if (me->isInCombat())
+ if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK)))
+ Anubarak->AI()->JustSummoned(me);
}
- }
- void JustDied(Unit* killer)
- {
- DoCast(killer, RAID_MODE(SPELL_TRAITOR_KING_10, SPELL_TRAITOR_KING_25));
- }
+ void DoAction(const int32 actionId)
+ {
+ switch (actionId)
+ {
+ case ACTION_SCARAB_SUBMERGE:
+ DoCast(SPELL_SUBMERGE_EFFECT);
+ me->DespawnOrUnsummon(1*IN_MILLISECONDS);
+ break;
+ default:
+ break;
+ }
+ }
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
+ void JustDied(Unit* killer)
+ {
+ DoCast(killer, RAID_MODE(SPELL_TRAITOR_KING_10, SPELL_TRAITOR_KING_25));
+ }
- /* Bosskillers don't recognize */
- if (m_uiDeterminationTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- DoCast(me, SPELL_DETERMINATION);
- m_uiDeterminationTimer = urand(10*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- } else m_uiDeterminationTimer -= uiDiff;
+ if (_instance && _instance->GetBossState(BOSS_ANUBARAK) != IN_PROGRESS)
+ me->DisappearAndDie();
- DoMeleeAttackIfReady();
- }
- };
+ if (!UpdateVictim())
+ return;
-};
+ /* Bosskillers don't recognize */
+ if (_determinationTimer <= diff)
+ {
+ DoCast(me, SPELL_DETERMINATION);
+ _determinationTimer = urand(10*IN_MILLISECONDS, 60*IN_MILLISECONDS);
+ }
+ else
+ _determinationTimer -= diff;
-class mob_nerubian_burrower : public CreatureScript
-{
-public:
- mob_nerubian_burrower() : CreatureScript("mob_nerubian_burrower") { }
+ DoMeleeAttackIfReady();
+ }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_nerubian_burrowerAI(creature);
- };
+ private:
+ InstanceScript* _instance;
+ uint32 _determinationTimer;
+ };
- struct mob_nerubian_burrowerAI : public ScriptedAI
- {
- mob_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature)
+ CreatureAI* GetAI(Creature* creature) const
{
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 m_uiSpiderFrenzyTimer;
- uint32 m_uiSubmergeTimer;
+ return new mob_swarm_scarabAI(creature);
+ };
+};
- void Reset()
- {
- me->SetCorpseDelay(10);
- m_uiSpiderFrenzyTimer = urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS);
- m_uiSubmergeTimer = 30*IN_MILLISECONDS;
- DoCast(me, SPELL_EXPOSE_WEAKNESS);
- DoCast(me, SPELL_SPIDER_FRENZY);
- DoCast(me, SPELL_AWAKENED);
- me->SetInCombatWithZone();
- if (me->isInCombat())
- if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ANUBARAK)))
- Anubarak->AI()->JustSummoned(me);
- }
+class mob_nerubian_burrower : public CreatureScript
+{
+ public:
+ mob_nerubian_burrower() : CreatureScript("mob_nerubian_burrower") { }
- void DoAction(const int32 actionId)
+ struct mob_nerubian_burrowerAI : public ScriptedAI
{
- switch (actionId)
+ mob_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature)
{
- case ACTION_SHADOW_STRIKE:
- if (!me->HasAura(SPELL_AWAKENED))
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SHADOW_STRIKE);
- break;
+ _instance = creature->GetInstanceScript();
}
- }
-
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
+ void Reset()
+ {
+ me->SetCorpseDelay(10);
+ _submergeTimer = 30*IN_MILLISECONDS;
+ DoCast(me, SPELL_EXPOSE_WEAKNESS);
+ DoCast(me, SPELL_SPIDER_FRENZY);
+ DoCast(me, SPELL_AWAKENED);
+ me->SetInCombatWithZone();
+ if (me->isInCombat())
+ if (Creature* Anubarak = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK)))
+ Anubarak->AI()->JustSummoned(me);
+ }
- if ((m_uiSubmergeTimer <= uiDiff) && HealthBelowPct(80))
+ void DoAction(const int32 actionId)
{
- if (me->HasAura(SPELL_SUBMERGE_EFFECT))
+ switch (actionId)
{
- me->RemoveAurasDueToSpell(SPELL_SUBMERGE_EFFECT);
- DoCast(me, SPELL_EMERGE_EFFECT);
- DoCast(me, SPELL_AWAKENED);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ case ACTION_SHADOW_STRIKE:
+ if (!me->HasAura(SPELL_AWAKENED))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ DoCast(target, SPELL_SHADOW_STRIKE);
+ break;
+ default:
+ break;
}
- else
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (_instance && _instance->GetBossState(BOSS_ANUBARAK) != IN_PROGRESS)
+ me->DisappearAndDie();
+
+ if (!UpdateVictim() && !me->HasAura(SPELL_SUBMERGE_EFFECT))
+ return;
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ if ((_submergeTimer <= diff) && HealthBelowPct(80))
{
- if (!me->HasAura(SPELL_PERMAFROST_HELPER))
+ if (me->HasAura(SPELL_SUBMERGE_EFFECT))
{
- DoCast(me, SPELL_SUBMERGE_EFFECT);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- DoCast(me, SPELL_PERSISTENT_DIRT, true);
+ me->RemoveAurasDueToSpell(SPELL_SUBMERGE_EFFECT);
+ DoCast(me, SPELL_EMERGE_EFFECT);
+ DoCast(me, SPELL_AWAKENED);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+ else
+ {
+ if (!me->HasAura(SPELL_PERMAFROST_HELPER))
+ {
+ DoCast(me, SPELL_SUBMERGE_EFFECT);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ DoCast(me, SPELL_PERSISTENT_DIRT, true);
+ }
}
+ _submergeTimer = 20*IN_MILLISECONDS;
}
- m_uiSubmergeTimer = 20*IN_MILLISECONDS;
- } else m_uiSubmergeTimer -= uiDiff;
+ else
+ _submergeTimer -= diff;
- DoMeleeAttackIfReady();
- }
- };
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ uint32 _submergeTimer;
+ Phases _phase;
+ EventMap _events;
+ InstanceScript* _instance;
+ };
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_nerubian_burrowerAI(creature);
+ };
};
class mob_frost_sphere : public CreatureScript
@@ -636,6 +651,8 @@ class mob_frost_sphere : public CreatureScript
DoCast(SPELL_PERMAFROST);
me->SetObjectScale(2.0f);
break;
+ default:
+ break;
}
}
};
@@ -648,92 +665,180 @@ class mob_frost_sphere : public CreatureScript
class mob_anubarak_spike : public CreatureScript
{
-public:
- mob_anubarak_spike() : CreatureScript("mob_anubarak_spike") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_anubarak_spikeAI(creature);
- };
+ public:
+ mob_anubarak_spike() : CreatureScript("mob_anubarak_spike") { }
- struct mob_anubarak_spikeAI : public ScriptedAI
- {
- mob_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature)
+ struct mob_anubarak_spikeAI : public ScriptedAI
{
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
- uint32 m_uiIncreaseSpeedTimer;
- uint8 m_uiSpeed;
- uint64 m_uiTargetGUID;
+ mob_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature)
+ {
+ }
- void Reset()
- {
- // For an unknown reason this npc isn't recognize the Aura of Permafrost with this flags =/
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
- m_uiTargetGUID = 0;
- }
+ void Reset()
+ {
+ _phase = PHASE_NO_MOVEMENT;
+ _phaseSwitchTimer = 1;
+ // make sure the spike has everyone on threat list
+ me->SetInCombatWithZone();
+ }
- bool CanAIAttack(Unit const* victim) const
- {
- return victim->GetTypeId() == TYPEID_PLAYER;
- }
+ bool CanAIAttack(Unit const* victim) const
+ {
+ return victim->GetTypeId() == TYPEID_PLAYER;
+ }
- void EnterCombat(Unit* who)
- {
- m_uiTargetGUID = who->GetGUID();
- DoCast(who, SPELL_MARK);
- Talk(EMOTE_SPIKE, who->GetGUID());
- me->SetSpeed(MOVE_RUN, 0.5f);
- m_uiSpeed = 0;
- m_uiIncreaseSpeedTimer = 1*IN_MILLISECONDS;
- me->TauntApply(who);
- }
+ void EnterCombat(Unit* who)
+ {
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ {
+ StartChase(target);
+ Talk(EMOTE_SPIKE, who->GetGUID());
+ }
+ }
- void DamageTaken(Unit* /*who*/, uint32& uiDamage)
- {
- uiDamage = 0;
- }
+ void DamageTaken(Unit* /*who*/, uint32& uiDamage)
+ {
+ uiDamage = 0;
+ }
- void UpdateAI(const uint32 uiDiff)
- {
- Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID);
- if (!target || !target->isAlive() || !target->HasAura(SPELL_MARK))
+ void UpdateAI(const uint32 diff)
{
- if (Creature* pAnubarak = Unit::GetCreature((*me), instance->GetData64(NPC_ANUBARAK)))
- pAnubarak->CastSpell(pAnubarak, SPELL_SPIKE_TELE, false);
- me->DisappearAndDie();
- return;
+ if (!UpdateVictim())
+ {
+ me->DisappearAndDie();
+ return;
+ }
+
+ if (_phaseSwitchTimer)
+ {
+ if (_phaseSwitchTimer <= diff)
+ {
+ switch (_phase)
+ {
+ case PHASE_NO_MOVEMENT:
+ DoCast(me, SPELL_SPIKE_SPEED1);
+ DoCast(me, SPELL_SPIKE_TRAIL);
+ _phase = PHASE_IMPALE_NORMAL;
+ if (Unit* target2 = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ {
+ StartChase(target2);
+ Talk(EMOTE_SPIKE, target2->GetGUID());
+ }
+ _phaseSwitchTimer = 7*IN_MILLISECONDS;
+ return;
+ case PHASE_IMPALE_NORMAL:
+ DoCast(me, SPELL_SPIKE_SPEED2);
+ _phase = PHASE_IMPALE_MIDDLE;
+ _phaseSwitchTimer = 7*IN_MILLISECONDS;
+ return;
+ case PHASE_IMPALE_MIDDLE:
+ DoCast(me, SPELL_SPIKE_SPEED3);
+ _phase = PHASE_IMPALE_FAST;
+ _phaseSwitchTimer = 0;
+ return;
+ default:
+ return;
+ }
+ }
+ else
+ _phaseSwitchTimer -= diff;
+ }
}
- if (m_uiIncreaseSpeedTimer)
+ void MoveInLineOfSight(Unit* pWho)
{
- if (m_uiIncreaseSpeedTimer <= uiDiff)
+ if (!pWho)
+ return;
+
+ if (pWho->GetEntry() != NPC_FROST_SPHERE)
+ return;
+
+ if (_phase == PHASE_NO_MOVEMENT)
+ return;
+
+ if (me->IsWithinDist(pWho, 7.0f))
{
- switch (m_uiSpeed)
+ switch (_phase)
{
- case 0:
- DoCast(me, SPELL_SPIKE_SPEED1);
- DoCast(me, SPELL_SPIKE_TRAIL);
- m_uiSpeed = 1;
- m_uiIncreaseSpeedTimer = 7*IN_MILLISECONDS;
+ case PHASE_IMPALE_NORMAL:
+ me->RemoveAurasDueToSpell(SPELL_SPIKE_SPEED1);
+ break;
+ case PHASE_IMPALE_MIDDLE:
+ me->RemoveAurasDueToSpell(SPELL_SPIKE_SPEED2);
break;
- case 1:
- DoCast(me, SPELL_SPIKE_SPEED2);
- m_uiSpeed = 2;
- m_uiIncreaseSpeedTimer = 7*IN_MILLISECONDS;
+ case PHASE_IMPALE_FAST:
+ me->RemoveAurasDueToSpell(SPELL_SPIKE_SPEED3);
break;
- case 2:
- DoCast(me, SPELL_SPIKE_SPEED3);
- m_uiIncreaseSpeedTimer = 0;
+ default:
break;
}
- } else m_uiIncreaseSpeedTimer -= uiDiff;
+
+ me->CastSpell(me, SPELL_SPIKE_FAIL, true);
+
+ pWho->ToCreature()->DespawnOrUnsummon(3*IN_MILLISECONDS);
+
+ // After the spikes hit the icy surface they can't move for about ~5 seconds
+ _phase = PHASE_NO_MOVEMENT;
+ _phaseSwitchTimer = 5*IN_MILLISECONDS;
+ SetCombatMovement(false);
+ me->GetMotionMaster()->MoveIdle();
+ me->GetMotionMaster()->Clear();
+ }
+ }
+
+ void StartChase(Unit* who)
+ {
+ DoCast(who, SPELL_MARK);
+ me->SetSpeed(MOVE_RUN, 0.5f);
+ // make sure the Spine will really follow the one he should
+ me->getThreatManager().clearReferences();
+ me->SetInCombatWithZone();
+ me->getThreatManager().addThreat(who, std::numeric_limits<float>::max());
+ me->GetMotionMaster()->Clear(true);
+ me->GetMotionMaster()->MoveChase(who);
+ me->TauntApply(who);
+ }
+
+ private:
+ uint32 _phaseSwitchTimer;
+ PursuingSpikesPhases _phase;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_anubarak_spikeAI(creature);
+ };
+};
+
+class spell_impale : public SpellScriptLoader
+{
+ public:
+ spell_impale() : SpellScriptLoader("spell_impale") { }
+
+ class spell_impale_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_impale_SpellScript);
+
+ void HandleDamageCalc(SpellEffIndex /*effIndex*/)
+ {
+ Unit* target = GetHitUnit();
+ uint32 permafrost = sSpellMgr->GetSpellIdForDifficulty(SPELL_PERMAFROST, target);
+
+ // make sure Impale doesnt do damage if we are standing on permafrost
+ if (target && target->HasAura(permafrost))
+ SetHitDamage(0);
}
- }
- };
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_impale_SpellScript::HandleDamageCalc, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_impale_SpellScript();
+ }
};
void AddSC_boss_anubarak_trial()
@@ -743,4 +848,6 @@ void AddSC_boss_anubarak_trial()
new mob_nerubian_burrower();
new mob_anubarak_spike();
new mob_frost_sphere();
+
+ new spell_impale();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index c662daf3671..a99aa373602 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -16,26 +16,17 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: faction_champions
-SD%Complete: ??%
-SDComment: Scripts by Selector, modified by /dev/rsa
-SDCategory: Crusader Coliseum
-EndScriptData */
-
-// Known bugs:
-// All - untested
-// Pets aren't being summoned by their masters
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "trial_of_the_crusader.h"
+#include "Player.h"
+#include "GridNotifiers.h"
enum Yells
{
- SAY_KILL_PLAYER = 6,
+ SAY_KILL_PLAYER = 6
};
enum eAIs
@@ -43,234 +34,527 @@ enum eAIs
AI_MELEE = 0,
AI_RANGED = 1,
AI_HEALER = 2,
- AI_PET = 3,
+ AI_PET = 3
};
enum eSpells
{
- SPELL_ANTI_AOE = 68595,
- SPELL_PVP_TRINKET = 65547,
+ // generic
+ SPELL_ANTI_AOE = 68595,
+ SPELL_PVP_TRINKET = 65547,
+
+ // druid healer
+ SPELL_LIFEBLOOM = 66093,
+ SPELL_NOURISH = 66066,
+ SPELL_REGROWTH = 66067,
+ SPELL_REJUVENATION = 66065,
+ SPELL_TRANQUILITY = 66086,
+ SPELL_BARKSKIN = 65860,
+ SPELL_THORNS = 66068,
+ SPELL_NATURE_GRASP = 66071,
+
+ // shaman healer
+ SPELL_HEALING_WAVE = 66055,
+ SPELL_RIPTIDE = 66053,
+ SPELL_SPIRIT_CLEANSE = 66056, //friendly only
+ SPELL_HEROISM = 65983,
+ SPELL_BLOODLUST = 65980,
+ SPELL_HEX = 66054,
+ SPELL_EARTH_SHIELD = 66063,
+ SPELL_EARTH_SHOCK = 65973,
+ AURA_EXHAUSTION = 57723,
+ AURA_SATED = 57724,
+
+ // paladin healer
+ SPELL_HAND_OF_FREEDOM = 68757,
+ SPELL_DIVINE_SHIELD = 66010,
+ SPELL_CLEANSE = 66116,
+ SPELL_FLASH_OF_LIGHT = 66113,
+ SPELL_HOLY_LIGHT = 66112,
+ SPELL_HOLY_SHOCK = 66114,
+ SPELL_HAND_OF_PROTECTION = 66009,
+ SPELL_HAMMER_OF_JUSTICE = 66613,
+ SPELL_FORBEARANCE = 25771,
+
+ // priest healer
+ SPELL_RENEW = 66177,
+ SPELL_SHIELD = 66099,
+ SPELL_FLASH_HEAL = 66104,
+ SPELL_DISPEL = 65546,
+ SPELL_PSYCHIC_SCREAM = 65543,
+ SPELL_MANA_BURN = 66100,
+ SPELL_PENANCE = 66097,
+
+ // priest dps
+ SPELL_SILENCE = 65542,
+ SPELL_VAMPIRIC_TOUCH = 65490,
+ SPELL_SW_PAIN = 65541,
+ SPELL_MIND_FLAY = 65488,
+ SPELL_MIND_BLAST = 65492,
+ SPELL_HORROR = 65545,
+ SPELL_DISPERSION = 65544,
+ SPELL_SHADOWFORM = 16592,
+
+ // warlock
+ SPELL_HELLFIRE = 65816,
+ SPELL_CORRUPTION = 65810,
+ SPELL_CURSE_OF_AGONY = 65814,
+ SPELL_CURSE_OF_EXHAUSTION = 65815,
+ SPELL_FEAR = 65809,
+ SPELL_SEARING_PAIN = 65819,
+ SPELL_SHADOW_BOLT = 65821,
+ SPELL_UNSTABLE_AFFLICTION = 65812,
+ SPELL_UNSTABLE_AFFLICTION_DISPEL = 65813,
+ SPELL_SUMMON_FELHUNTER = 67514,
+
+ // mage
+ SPELL_ARCANE_BARRAGE = 65799,
+ SPELL_ARCANE_BLAST = 65791,
+ SPELL_ARCANE_EXPLOSION = 65800,
+ SPELL_BLINK = 65793,
+ SPELL_COUNTERSPELL = 65790,
+ SPELL_FROST_NOVA = 65792,
+ SPELL_FROSTBOLT = 65807,
+ SPELL_ICE_BLOCK = 65802,
+ SPELL_POLYMORPH = 65801,
+
+ // hunter
+ SPELL_AIMED_SHOT = 65883,
+ SPELL_DETERRENCE = 65871,
+ SPELL_DISENGAGE = 65869,
+ SPELL_EXPLOSIVE_SHOT = 65866,
+ SPELL_FROST_TRAP = 65880,
+ SPELL_SHOOT = 65868,
+ SPELL_STEADY_SHOT = 65867,
+ SPELL_WING_CLIP = 66207,
+ SPELL_WYVERN_STING = 65877,
+ SPELL_CALL_PET = 67777,
+
+ // druid dps
+ SPELL_CYCLONE = 65859,
+ SPELL_ENTANGLING_ROOTS = 65857,
+ SPELL_FAERIE_FIRE = 65863,
+ SPELL_FORCE_OF_NATURE = 65861,
+ SPELL_INSECT_SWARM = 65855,
+ SPELL_MOONFIRE = 65856,
+ SPELL_STARFIRE = 65854,
+ SPELL_WRATH = 65862,
+
+ // warrior
+ SPELL_BLADESTORM = 65947,
+ SPELL_INTIMIDATING_SHOUT = 65930,
+ SPELL_MORTAL_STRIKE = 65926,
+ SPELL_CHARGE = 68764,
+ SPELL_DISARM = 65935,
+ SPELL_OVERPOWER = 65924,
+ SPELL_SUNDER_ARMOR = 65936,
+ SPELL_SHATTERING_THROW = 65940,
+ SPELL_RETALIATION = 65932,
+
+ // death knight
+ SPELL_CHAINS_OF_ICE = 66020,
+ SPELL_DEATH_COIL = 66019,
+ SPELL_DEATH_GRIP = 66017,
+ SPELL_FROST_STRIKE = 66047,
+ SPELL_ICEBOUND_FORTITUDE = 66023,
+ SPELL_ICY_TOUCH = 66021,
+ SPELL_STRANGULATE = 66018,
+ SPELL_DEATH_GRIP_PULL = 64431, // used at spellscript
+
+ // rogue
+ SPELL_FAN_OF_KNIVES = 65955,
+ SPELL_BLIND = 65960,
+ SPELL_CLOAK = 65961,
+ SPELL_BLADE_FLURRY = 65956,
+ SPELL_SHADOWSTEP = 66178,
+ SPELL_HEMORRHAGE = 65954,
+ SPELL_EVISCERATE = 65957,
+ SPELL_WOUND_POISON = 65962,
+
+ // shaman dps (some spells taken from shaman healer)
+ SPELL_LAVA_LASH = 65974,
+ SPELL_STORMSTRIKE = 65970,
+ SPELL_WINDFURY = 65976,
+
+ // paladin dps
+ SPELL_AVENGING_WRATH = 66011,
+ SPELL_CRUSADER_STRIKE = 66003,
+ SPELL_DIVINE_STORM = 66006,
+ SPELL_HAMMER_OF_JUSTICE_RET = 66007,
+ SPELL_JUDGEMENT_OF_COMMAND = 66005,
+ SPELL_REPENTANCE = 66008,
+ SPELL_SEAL_OF_COMMAND = 66004,
+
+ // warlock pet
+ SPELL_DEVOUR_MAGIC = 67518,
+ SPELL_SPELL_LOCK = 67519,
+
+ // hunter pet
+ SPELL_CLAW = 67793
};
-class boss_toc_champion_controller : public CreatureScript
+enum Events
{
-public:
- boss_toc_champion_controller() : CreatureScript("boss_toc_champion_controller") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_toc_champion_controllerAI (creature);
- }
-
- struct boss_toc_champion_controllerAI : public ScriptedAI
- {
- boss_toc_champion_controllerAI(Creature* creature) : ScriptedAI(creature), Summons(me)
- {
- instance = creature->GetInstanceScript();
- }
+ // generic
+ EVENT_THREAT = 1,
+ EVENT_REMOVE_CC = 2,
+
+ // druid healer
+ EVENT_LIFEBLOOM = 1,
+ EVENT_NOURISH = 2,
+ EVENT_REGROWTH = 3,
+ EVENT_REJUVENATION = 4,
+ EVENT_TRANQUILITY = 5,
+ EVENT_HEAL_BARKSKIN = 6,
+ EVENT_THORNS = 7,
+ EVENT_NATURE_GRASP = 8,
+
+ // shaman healer
+ EVENT_HEALING_WAVE = 1,
+ EVENT_RIPTIDE = 2,
+ EVENT_SPIRIT_CLEANSE = 3,
+ EVENT_HEAL_BLOODLUST_HEROISM = 4,
+ EVENT_HEX = 5,
+ EVENT_EARTH_SHIELD = 6,
+ EVENT_HEAL_EARTH_SHOCK = 7,
+
+ // paladin healer
+ EVENT_HAND_OF_FREEDOM = 1,
+ EVENT_HEAL_DIVINE_SHIELD = 2,
+ EVENT_CLEANSE = 3,
+ EVENT_FLASH_OF_LIGHT = 4,
+ EVENT_HOLY_LIGHT = 5,
+ EVENT_HOLY_SHOCK = 6,
+ EVENT_HEAL_HAND_OF_PROTECTION = 7,
+ EVENT_HAMMER_OF_JUSTICE = 8,
+
+ // priest healer
+ EVENT_RENEW = 1,
+ EVENT_SHIELD = 2,
+ EVENT_FLASH_HEAL = 3,
+ EVENT_HEAL_DISPEL = 4,
+ EVENT_HEAL_PSYCHIC_SCREAM = 5,
+ EVENT_MANA_BURN = 6,
+ EVENT_PENANCE = 7,
+
+ // priest dps
+ EVENT_SILENCE = 1,
+ EVENT_VAMPIRIC_TOUCH = 2,
+ EVENT_SW_PAIN = 3,
+ EVENT_MIND_BLAST = 4,
+ EVENT_HORROR = 5,
+ EVENT_DISPERSION = 6,
+ EVENT_DPS_DISPEL = 7,
+ EVENT_DPS_PSYCHIC_SCREAM = 8,
+
+ // warlock
+ EVENT_HELLFIRE = 1,
+ EVENT_CORRUPTION = 2,
+ EVENT_CURSE_OF_AGONY = 3,
+ EVENT_CURSE_OF_EXHAUSTION = 4,
+ EVENT_FEAR = 5,
+ EVENT_SEARING_PAIN = 6,
+ EVENT_UNSTABLE_AFFLICTION = 7,
+
+ // mage
+ EVENT_ARCANE_BARRAGE = 1,
+ EVENT_ARCANE_BLAST = 2,
+ EVENT_ARCANE_EXPLOSION = 3,
+ EVENT_BLINK = 4,
+ EVENT_COUNTERSPELL = 5,
+ EVENT_FROST_NOVA = 6,
+ EVENT_ICE_BLOCK = 7,
+ EVENT_POLYMORPH = 8,
+
+ // hunter
+ EVENT_AIMED_SHOT = 1,
+ EVENT_DETERRENCE = 2,
+ EVENT_DISENGAGE = 3,
+ EVENT_EXPLOSIVE_SHOT = 4,
+ EVENT_FROST_TRAP = 5,
+ EVENT_STEADY_SHOT = 6,
+ EVENT_WING_CLIP = 7,
+ EVENT_WYVERN_STING = 8,
+
+ // druid dps
+ EVENT_CYCLONE = 1,
+ EVENT_ENTANGLING_ROOTS = 2,
+ EVENT_FAERIE_FIRE = 3,
+ EVENT_FORCE_OF_NATURE = 4,
+ EVENT_INSECT_SWARM = 5,
+ EVENT_MOONFIRE = 6,
+ EVENT_STARFIRE = 7,
+ EVENT_DPS_BARKSKIN = 8,
+
+ // warrior
+ EVENT_BLADESTORM = 1,
+ EVENT_INTIMIDATING_SHOUT = 2,
+ EVENT_MORTAL_STRIKE = 3,
+ EVENT_WARR_CHARGE = 4,
+ EVENT_DISARM = 5,
+ EVENT_OVERPOWER = 6,
+ EVENT_SUNDER_ARMOR = 7,
+ EVENT_SHATTERING_THROW = 8,
+ EVENT_RETALIATION = 9,
+
+ // death knight
+ EVENT_CHAINS_OF_ICE = 1,
+ EVENT_DEATH_COIL = 2,
+ EVENT_DEATH_GRIP = 3,
+ EVENT_FROST_STRIKE = 4,
+ EVENT_ICEBOUND_FORTITUDE = 5,
+ EVENT_ICY_TOUCH = 6,
+ EVENT_STRANGULATE = 7,
+
+ // rogue
+ EVENT_FAN_OF_KNIVES = 1,
+ EVENT_BLIND = 2,
+ EVENT_CLOAK = 3,
+ EVENT_BLADE_FLURRY = 4,
+ EVENT_SHADOWSTEP = 5,
+ EVENT_HEMORRHAGE = 6,
+ EVENT_EVISCERATE = 7,
+ EVENT_WOUND_POISON = 8,
+
+ // shaman dps
+ EVENT_DPS_EARTH_SHOCK = 1,
+ EVENT_LAVA_LASH = 2,
+ EVENT_STORMSTRIKE = 3,
+ EVENT_DPS_BLOODLUST_HEROISM = 4,
+ EVENT_DEPLOY_TOTEM = 5,
+ EVENT_WINDFURY = 6,
+
+ // paladin dps
+ EVENT_AVENGING_WRATH = 1,
+ EVENT_CRUSADER_STRIKE = 2,
+ EVENT_DIVINE_STORM = 3,
+ EVENT_HAMMER_OF_JUSTICE_RET = 4,
+ EVENT_JUDGEMENT_OF_COMMAND = 5,
+ EVENT_REPENTANCE = 6,
+ EVENT_DPS_HAND_OF_PROTECTION = 7,
+ EVENT_DPS_DIVINE_SHIELD = 8,
+
+ // warlock pet
+ EVENT_DEVOUR_MAGIC = 1,
+ EVENT_SPELL_LOCK = 2
+};
- InstanceScript* instance;
- SummonList Summons;
- uint32 m_uiChampionsNotStarted;
- uint32 m_uiChampionsFailed;
- uint32 m_uiChampionsKilled;
- bool m_bInProgress;
+class boss_toc_champion_controller : public CreatureScript
+{
+ public:
+ boss_toc_champion_controller() : CreatureScript("boss_toc_champion_controller") { }
- void Reset()
+ struct boss_toc_champion_controllerAI : public ScriptedAI
{
- m_uiChampionsNotStarted = 0;
- m_uiChampionsFailed = 0;
- m_uiChampionsKilled = 0;
- m_bInProgress = false;
- }
+ boss_toc_champion_controllerAI(Creature* creature) : ScriptedAI(creature), _summons(me)
+ {
+ _instance = creature->GetInstanceScript();
+ }
- std::vector<uint32> SelectChampions(Team playerTeam)
- {
- std::vector<uint32> vHealersEntries;
- vHealersEntries.clear();
- vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_DRUID_RESTORATION : NPC_ALLIANCE_DRUID_RESTORATION);
- vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_PALADIN_HOLY : NPC_ALLIANCE_PALADIN_HOLY);
- vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_PRIEST_DISCIPLINE : NPC_ALLIANCE_PRIEST_DISCIPLINE);
- vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_SHAMAN_RESTORATION : NPC_ALLIANCE_SHAMAN_RESTORATION);
-
- std::vector<uint32> vOtherEntries;
- vOtherEntries.clear();
- vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_DEATH_KNIGHT : NPC_ALLIANCE_DEATH_KNIGHT);
- vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_HUNTER : NPC_ALLIANCE_HUNTER);
- vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_MAGE : NPC_ALLIANCE_MAGE);
- vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_ROGUE : NPC_ALLIANCE_ROGUE);
- vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARLOCK : NPC_ALLIANCE_WARLOCK);
- vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARRIOR : NPC_ALLIANCE_WARRIOR);
-
- uint8 healersSubtracted = 2;
- if (instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL || instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
- healersSubtracted = 1;
- for (uint8 i = 0; i < healersSubtracted; ++i)
+ void Reset()
{
- uint8 pos = urand(0, vHealersEntries.size()-1);
- switch (vHealersEntries[pos])
+ _championsNotStarted = 0;
+ _championsFailed = 0;
+ _championsKilled = 0;
+ _inProgress = false;
+ }
+
+ std::vector<uint32> SelectChampions(Team playerTeam)
+ {
+ std::vector<uint32> vHealersEntries;
+ vHealersEntries.clear();
+ vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_DRUID_RESTORATION : NPC_ALLIANCE_DRUID_RESTORATION);
+ vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_PALADIN_HOLY : NPC_ALLIANCE_PALADIN_HOLY);
+ vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_PRIEST_DISCIPLINE : NPC_ALLIANCE_PRIEST_DISCIPLINE);
+ vHealersEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_SHAMAN_RESTORATION : NPC_ALLIANCE_SHAMAN_RESTORATION);
+
+ std::vector<uint32> vOtherEntries;
+ vOtherEntries.clear();
+ vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_DEATH_KNIGHT : NPC_ALLIANCE_DEATH_KNIGHT);
+ vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_HUNTER : NPC_ALLIANCE_HUNTER);
+ vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_MAGE : NPC_ALLIANCE_MAGE);
+ vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_ROGUE : NPC_ALLIANCE_ROGUE);
+ vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARLOCK : NPC_ALLIANCE_WARLOCK);
+ vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARRIOR : NPC_ALLIANCE_WARRIOR);
+
+ uint8 healersSubtracted = 2;
+ if (_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL || _instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
+ healersSubtracted = 1;
+ for (uint8 i = 0; i < healersSubtracted; ++i)
{
- case NPC_ALLIANCE_DRUID_RESTORATION:
- vOtherEntries.push_back(NPC_ALLIANCE_DRUID_BALANCE);
- break;
- case NPC_HORDE_DRUID_RESTORATION:
- vOtherEntries.push_back(NPC_HORDE_DRUID_BALANCE);
- break;
- case NPC_ALLIANCE_PALADIN_HOLY:
- vOtherEntries.push_back(NPC_ALLIANCE_PALADIN_RETRIBUTION);
- break;
- case NPC_HORDE_PALADIN_HOLY:
- vOtherEntries.push_back(NPC_HORDE_PALADIN_RETRIBUTION);
- break;
- case NPC_ALLIANCE_PRIEST_DISCIPLINE:
- vOtherEntries.push_back(NPC_ALLIANCE_PRIEST_SHADOW);
- break;
- case NPC_HORDE_PRIEST_DISCIPLINE:
- vOtherEntries.push_back(NPC_HORDE_PRIEST_SHADOW);
- break;
- case NPC_ALLIANCE_SHAMAN_RESTORATION:
- vOtherEntries.push_back(NPC_ALLIANCE_SHAMAN_ENHANCEMENT);
- break;
- case NPC_HORDE_SHAMAN_RESTORATION:
- vOtherEntries.push_back(NPC_HORDE_SHAMAN_ENHANCEMENT);
- break;
+ uint8 pos = urand(0, vHealersEntries.size() - 1);
+ switch (vHealersEntries[pos])
+ {
+ case NPC_ALLIANCE_DRUID_RESTORATION:
+ vOtherEntries.push_back(NPC_ALLIANCE_DRUID_BALANCE);
+ break;
+ case NPC_HORDE_DRUID_RESTORATION:
+ vOtherEntries.push_back(NPC_HORDE_DRUID_BALANCE);
+ break;
+ case NPC_ALLIANCE_PALADIN_HOLY:
+ vOtherEntries.push_back(NPC_ALLIANCE_PALADIN_RETRIBUTION);
+ break;
+ case NPC_HORDE_PALADIN_HOLY:
+ vOtherEntries.push_back(NPC_HORDE_PALADIN_RETRIBUTION);
+ break;
+ case NPC_ALLIANCE_PRIEST_DISCIPLINE:
+ vOtherEntries.push_back(NPC_ALLIANCE_PRIEST_SHADOW);
+ break;
+ case NPC_HORDE_PRIEST_DISCIPLINE:
+ vOtherEntries.push_back(NPC_HORDE_PRIEST_SHADOW);
+ break;
+ case NPC_ALLIANCE_SHAMAN_RESTORATION:
+ vOtherEntries.push_back(NPC_ALLIANCE_SHAMAN_ENHANCEMENT);
+ break;
+ case NPC_HORDE_SHAMAN_RESTORATION:
+ vOtherEntries.push_back(NPC_HORDE_SHAMAN_ENHANCEMENT);
+ break;
+ default:
+ break;
+ }
+ vHealersEntries.erase(vHealersEntries.begin() + pos);
}
- vHealersEntries.erase(vHealersEntries.begin()+pos);
- }
- if (instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_NORMAL || instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)
- for (uint8 i = 0; i < 4; ++i)
- vOtherEntries.erase(vOtherEntries.begin()+urand(0, vOtherEntries.size()-1));
+ if (_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_NORMAL || _instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)
+ for (uint8 i = 0; i < 4; ++i)
+ vOtherEntries.erase(vOtherEntries.begin() + urand(0, vOtherEntries.size() - 1));
- std::vector<uint32> vChampionEntries;
- vChampionEntries.clear();
- for (uint8 i = 0; i < vHealersEntries.size(); ++i)
- vChampionEntries.push_back(vHealersEntries[i]);
- for (uint8 i = 0; i < vOtherEntries.size(); ++i)
- vChampionEntries.push_back(vOtherEntries[i]);
+ std::vector<uint32> vChampionEntries;
+ vChampionEntries.clear();
+ for (uint8 i = 0; i < vHealersEntries.size(); ++i)
+ vChampionEntries.push_back(vHealersEntries[i]);
+ for (uint8 i = 0; i < vOtherEntries.size(); ++i)
+ vChampionEntries.push_back(vOtherEntries[i]);
- return vChampionEntries;
- }
+ return vChampionEntries;
+ }
- void SummonChampions(Team playerTeam)
- {
- std::vector<Position> vChampionJumpOrigin;
- if (playerTeam == ALLIANCE)
- for (uint8 i = 0; i < 5; i++)
- vChampionJumpOrigin.push_back(FactionChampionLoc[i]);
- else
- for (uint8 i = 5; i < 10; i++)
- vChampionJumpOrigin.push_back(FactionChampionLoc[i]);
+ void SummonChampions(Team playerTeam)
+ {
+ std::vector<Position> vChampionJumpOrigin;
+ if (playerTeam == ALLIANCE)
+ for (uint8 i = 0; i < 5; i++)
+ vChampionJumpOrigin.push_back(FactionChampionLoc[i]);
+ else
+ for (uint8 i = 5; i < 10; i++)
+ vChampionJumpOrigin.push_back(FactionChampionLoc[i]);
- std::vector<Position> vChampionJumpTarget;
- for (uint8 i = 10; i < 20; i++)
- vChampionJumpTarget.push_back(FactionChampionLoc[i]);
- std::vector<uint32> vChampionEntries = SelectChampions(playerTeam);
+ std::vector<Position> vChampionJumpTarget;
+ for (uint8 i = 10; i < 20; i++)
+ vChampionJumpTarget.push_back(FactionChampionLoc[i]);
+ std::vector<uint32> vChampionEntries = SelectChampions(playerTeam);
- for (uint8 i = 0; i < vChampionEntries.size(); ++i)
- {
- uint8 pos = urand(0, vChampionJumpTarget.size()-1);
- if (Creature* temp = me->SummonCreature(vChampionEntries[i], vChampionJumpOrigin[urand(0, vChampionJumpOrigin.size()-1)], TEMPSUMMON_MANUAL_DESPAWN))
+ for (uint8 i = 0; i < vChampionEntries.size(); ++i)
{
- Summons.Summon(temp);
- temp->SetReactState(REACT_PASSIVE);
- temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
- if (playerTeam == ALLIANCE)
+ uint8 pos = urand(0, vChampionJumpTarget.size()-1);
+ if (Creature* temp = me->SummonCreature(vChampionEntries[i], vChampionJumpOrigin[urand(0, vChampionJumpOrigin.size()-1)], TEMPSUMMON_MANUAL_DESPAWN))
{
- temp->SetHomePosition(vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 0);
- temp->GetMotionMaster()->MoveJump(vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 20.0f, 20.0f);
- temp->SetOrientation(0);
- }
- else
- {
- temp->SetHomePosition((ToCCommonLoc[1].GetPositionX()*2)-vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 3);
- temp->GetMotionMaster()->MoveJump((ToCCommonLoc[1].GetPositionX()*2)-vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 20.0f, 20.0f);
- temp->SetOrientation(3);
+ _summons.Summon(temp);
+ temp->SetReactState(REACT_PASSIVE);
+ temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
+ if (playerTeam == ALLIANCE)
+ {
+ temp->SetHomePosition(vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 0);
+ temp->GetMotionMaster()->MoveJump(vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 20.0f, 20.0f);
+ temp->SetOrientation(0);
+ }
+ else
+ {
+ temp->SetHomePosition((ToCCommonLoc[1].GetPositionX()*2)-vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 3);
+ temp->GetMotionMaster()->MoveJump((ToCCommonLoc[1].GetPositionX()*2)-vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 20.0f, 20.0f);
+ temp->SetOrientation(3);
+ }
}
+ vChampionJumpTarget.erase(vChampionJumpTarget.begin()+pos);
}
- vChampionJumpTarget.erase(vChampionJumpTarget.begin()+pos);
}
- }
- void SetData(uint32 uiType, uint32 uiData)
- {
- switch (uiType)
+ void SetData(uint32 uiType, uint32 uiData)
{
- case 0:
- SummonChampions((Team)uiData);
- break;
- case 1:
- for (std::list<uint64>::iterator i = Summons.begin(); i != Summons.end(); ++i)
- {
- if (Creature* temp = Unit::GetCreature(*me, *i))
+ switch (uiType)
+ {
+ case 0:
+ SummonChampions((Team)uiData);
+ break;
+ case 1:
+ for (std::list<uint64>::iterator i = _summons.begin(); i != _summons.end(); ++i)
{
- temp->SetReactState(REACT_AGGRESSIVE);
- temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
- }
- }
- break;
- case 2:
- switch (uiData)
- {
- case FAIL:
- m_uiChampionsFailed++;
- if (m_uiChampionsFailed + m_uiChampionsKilled >= Summons.size())
- {
- instance->SetData(TYPE_CRUSADERS, FAIL);
- Summons.DespawnAll();
- me->DespawnOrUnsummon();
- }
- break;
- case IN_PROGRESS:
- if (!m_bInProgress)
- {
- m_uiChampionsNotStarted = 0;
- m_uiChampionsFailed = 0;
- m_uiChampionsKilled = 0;
- m_bInProgress = true;
- Summons.DoZoneInCombat();
- instance->SetData(TYPE_CRUSADERS, IN_PROGRESS);
- }
- break;
- case DONE:
- m_uiChampionsKilled++;
- if (m_uiChampionsKilled == 1)
- instance->SetData(TYPE_CRUSADERS, SPECIAL);
- else if (m_uiChampionsKilled >= Summons.size())
+ if (Creature* temp = Unit::GetCreature(*me, *i))
{
- instance->SetData(TYPE_CRUSADERS, DONE);
- Summons.DespawnAll();
- me->DespawnOrUnsummon();
+ temp->SetReactState(REACT_AGGRESSIVE);
+ temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
}
- break;
- }
- break;
+ }
+ break;
+ case 2:
+ switch (uiData)
+ {
+ case FAIL:
+ _championsFailed++;
+ if (_championsFailed + _championsKilled >= _summons.size())
+ {
+ _instance->SetBossState(BOSS_CRUSADERS, FAIL);
+ _summons.DespawnAll();
+ me->DespawnOrUnsummon();
+ }
+ break;
+ case IN_PROGRESS:
+ if (!_inProgress)
+ {
+ _championsNotStarted = 0;
+ _championsFailed = 0;
+ _championsKilled = 0;
+ _inProgress = true;
+ _summons.DoZoneInCombat();
+ _instance->SetBossState(BOSS_CRUSADERS, IN_PROGRESS);
+ }
+ break;
+ case DONE:
+ _championsKilled++;
+ if (_championsKilled == 1)
+ _instance->SetBossState(BOSS_CRUSADERS, SPECIAL);
+ else if (_championsKilled >= _summons.size())
+ {
+ _instance->SetBossState(BOSS_CRUSADERS, DONE);
+ _summons.DespawnAll();
+ me->DespawnOrUnsummon();
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
}
- }
- };
+ private:
+ InstanceScript* _instance;
+ SummonList _summons;
+ uint32 _championsNotStarted;
+ uint32 _championsFailed;
+ uint32 _championsKilled;
+ bool _inProgress;
+ };
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_toc_champion_controllerAI (creature);
+ }
};
-struct boss_faction_championsAI : public ScriptedAI
+struct boss_faction_championsAI : public BossAI
{
- boss_faction_championsAI(Creature* creature, uint32 aitype) : ScriptedAI(creature)
+ boss_faction_championsAI(Creature* creature, uint32 aitype) : BossAI(creature, BOSS_CRUSADERS)
{
- instance = creature->GetInstanceScript();
- mAIType = aitype;
+ _aiType = aitype;
}
- InstanceScript* instance;
-
- uint64 championControllerGUID;
- uint32 mAIType;
- uint32 ThreatTimer;
- uint32 CCTimer;
-
void Reset()
{
- championControllerGUID = 0;
- CCTimer = rand()%10000;
- ThreatTimer = 5000;
+ _events.ScheduleEvent(EVENT_THREAT, 5*IN_MILLISECONDS);
+ if (IsHeroic() && (_aiType != AI_PET))
+ _events.ScheduleEvent(EVENT_REMOVE_CC, 5*IN_MILLISECONDS);
}
void JustReachedHome()
@@ -283,9 +567,9 @@ struct boss_faction_championsAI : public ScriptedAI
float CalculateThreat(float distance, float armor, uint32 health)
{
- float dist_mod = (mAIType == AI_MELEE || mAIType == AI_PET) ? 15.0f/(15.0f + distance) : 1.0f;
- float armor_mod = (mAIType == AI_MELEE || mAIType == AI_PET) ? armor / 16635.0f : 0.0f;
- float eh = (health+1) * (1.0f + armor_mod);
+ float dist_mod = (_aiType == AI_MELEE || _aiType == AI_PET) ? 15.0f / (15.0f + distance) : 1.0f;
+ float armor_mod = (_aiType == AI_MELEE || _aiType == AI_PET) ? armor / 16635.0f : 0.0f;
+ float eh = (health + 1) * (1.0f + armor_mod);
return dist_mod * 30000.0f / eh;
}
@@ -297,7 +581,7 @@ struct boss_faction_championsAI : public ScriptedAI
Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && me->getThreatManager().getThreat(unit))
{
- if (unit->GetTypeId()==TYPEID_PLAYER)
+ if (unit->GetTypeId() == TYPEID_PLAYER)
{
float threat = CalculateThreat(me->GetDistance2d(unit), (float)unit->GetArmor(), unit->GetHealth());
me->getThreatManager().modifyThreatPercent(unit, -100);
@@ -311,8 +595,6 @@ struct boss_faction_championsAI : public ScriptedAI
{
if (me->getPowerType() == POWER_MANA)
me->ModifyPower(POWER_MANA, me->GetMaxPower(POWER_MANA) / 3);
- //else if (me->getPowerType() == POWER_ENERGY)
- // me->ModifyPower(POWER_ENERGY, 100);
}
void RemoveCC()
@@ -327,7 +609,7 @@ struct boss_faction_championsAI : public ScriptedAI
void JustDied(Unit* /*killer*/)
{
- if (mAIType != AI_PET)
+ if (_aiType != AI_PET)
if (instance)
if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, DONE);
@@ -336,7 +618,7 @@ struct boss_faction_championsAI : public ScriptedAI
void EnterCombat(Unit* /*who*/)
{
DoCast(me, SPELL_ANTI_AOE, true);
- me->SetInCombatWithZone();
+ _EnterCombat();
if (instance)
if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, IN_PROGRESS);
@@ -365,7 +647,7 @@ struct boss_faction_championsAI : public ScriptedAI
temp->AI()->Talk(SAY_KILL_PLAYER);
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
}
@@ -376,7 +658,7 @@ struct boss_faction_championsAI : public ScriptedAI
std::list<Creature*>::const_iterator itr = lst.begin();
if (lst.empty())
return NULL;
- advance(itr, rand()%lst.size());
+ advance(itr, rand() % lst.size());
return (*itr);
}
@@ -400,7 +682,7 @@ struct boss_faction_championsAI : public ScriptedAI
std::list<HostileReference*>::const_iterator iter;
uint32 count = 0;
Unit* target;
- for (iter = tList.begin(); iter!=tList.end(); ++iter)
+ for (iter = tList.begin(); iter != tList.end(); ++iter)
{
target = Unit::GetUnit(*me, (*iter)->getUnitGuid());
if (target && me->GetDistance2d(target) < distance)
@@ -420,7 +702,7 @@ struct boss_faction_championsAI : public ScriptedAI
me->SetInCombatWith(who);
who->SetInCombatWith(me);
- if (mAIType == AI_MELEE || mAIType == AI_PET)
+ if (_aiType == AI_MELEE || _aiType == AI_PET)
DoStartMovement(who);
else
DoStartMovement(who, 20.0f);
@@ -428,1642 +710,1666 @@ struct boss_faction_championsAI : public ScriptedAI
}
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (ThreatTimer < uiDiff)
- {
- UpdatePower();
- UpdateThreat();
- ThreatTimer = 4000;
- }
- else ThreatTimer -= uiDiff;
+ _events.Update(diff);
- if (mAIType != AI_PET)
+ while (uint32 eventId = _events.ExecuteEvent())
{
- if (CCTimer < uiDiff)
- {
- RemoveCC();
- CCTimer = 8000+rand()%2000;
+ switch (eventId)
+ {
+ case EVENT_THREAT:
+ UpdatePower();
+ UpdateThreat();
+ _events.ScheduleEvent(EVENT_THREAT, 4*IN_MILLISECONDS);
+ return;
+ case EVENT_REMOVE_CC:
+ if (me->HasBreakableByDamageCrowdControlAura())
+ {
+ RemoveCC();
+ _events.RescheduleEvent(EVENT_REMOVE_CC, 2*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ _events.RescheduleEvent(EVENT_REMOVE_CC, 3*IN_MILLISECONDS);
+ return;
+ default:
+ return;
}
- else CCTimer -= uiDiff;
}
- if (mAIType == AI_MELEE || mAIType == AI_PET) DoMeleeAttackIfReady();
+ if (_aiType == AI_MELEE || _aiType == AI_PET)
+ DoMeleeAttackIfReady();
}
+
+ private:
+ uint32 _aiType;
+ // make sure that every bosses separate events dont mix with these _events
+ EventMap _events;
};
/********************************************************************
HEALERS
********************************************************************/
-enum eDruidSpells
-{
- SPELL_LIFEBLOOM = 66093,
- SPELL_NOURISH = 66066,
- SPELL_REGROWTH = 66067,
- SPELL_REJUVENATION = 66065,
- SPELL_TRANQUILITY = 66086,
- SPELL_BARKSKIN = 65860, //1 min cd
- SPELL_THORNS = 66068,
- SPELL_NATURE_GRASP = 66071, //1 min cd, self buff
-};
-
class mob_toc_druid : public CreatureScript
{
-public:
- mob_toc_druid() : CreatureScript("mob_toc_druid") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_druidAI (creature);
- }
-
- struct mob_toc_druidAI : public boss_faction_championsAI
- {
- mob_toc_druidAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
-
- uint32 m_uiNatureGraspTimer;
- uint32 m_uiTranquilityTimer;
- uint32 m_uiBarkskinTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiNatureGraspTimer = IN_MILLISECONDS;
- m_uiTranquilityTimer = IN_MILLISECONDS;
- m_uiBarkskinTimer = IN_MILLISECONDS;
- m_uiCommonTimer = IN_MILLISECONDS;
- SetEquipmentSlots(false, 51799, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_druid() : CreatureScript("mob_toc_druid") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_druidAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_druidAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_LIFEBLOOM, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_NOURISH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_REGROWTH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_REJUVENATION, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_TRANQUILITY, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEAL_BARKSKIN, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_THORNS, 2*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_NATURE_GRASP, urand(3*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 51799, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- if (m_uiNatureGraspTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- DoCast(me, SPELL_NATURE_GRASP);
- m_uiNatureGraspTimer = urand(40*IN_MILLISECONDS, 80*IN_MILLISECONDS);
- } else m_uiNatureGraspTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiTranquilityTimer <= uiDiff)
- {
- DoCastAOE(SPELL_TRANQUILITY);
- m_uiTranquilityTimer = urand(40*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- } else m_uiTranquilityTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiBarkskinTimer <= uiDiff)
- {
- if (HealthBelowPct(50))
- DoCast(me, SPELL_BARKSKIN);
- m_uiBarkskinTimer = urand(45*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- } else m_uiBarkskinTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 4))
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0:
- DoCast(me, SPELL_LIFEBLOOM);
- break;
- case 1:
- DoCast(me, SPELL_NOURISH);
- break;
- case 2:
- DoCast(me, SPELL_REGROWTH);
- break;
- case 3:
- DoCast(me, SPELL_REJUVENATION);
- break;
- case 4:
- if (Creature* target = SelectRandomFriendlyMissingBuff(SPELL_THORNS))
- DoCast(target, SPELL_THORNS);
- break;
+ switch (eventId)
+ {
+ case EVENT_LIFEBLOOM:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_LIFEBLOOM);
+ events.ScheduleEvent(EVENT_LIFEBLOOM, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_NOURISH:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_NOURISH);
+ events.ScheduleEvent(EVENT_NOURISH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_REGROWTH:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_REGROWTH);
+ events.ScheduleEvent(EVENT_REGROWTH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_REJUVENATION:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_REJUVENATION);
+ events.ScheduleEvent(EVENT_REJUVENATION, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_TRANQUILITY:
+ DoCastAOE(SPELL_TRANQUILITY);
+ events.ScheduleEvent(EVENT_TRANQUILITY, urand(15*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_BARKSKIN:
+ if (HealthBelowPct(30))
+ {
+ DoCast(me, SPELL_BARKSKIN);
+ events.RescheduleEvent(EVENT_HEAL_BARKSKIN, 60*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_HEAL_BARKSKIN, 3*IN_MILLISECONDS);
+ return;
+ case EVENT_THORNS:
+ if (Creature* target = SelectRandomFriendlyMissingBuff(SPELL_THORNS))
+ DoCast(target, SPELL_THORNS);
+ events.ScheduleEvent(EVENT_THORNS, urand(25*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ return;
+ case EVENT_NATURE_GRASP:
+ DoCast(me, SPELL_NATURE_GRASP);
+ events.ScheduleEvent(EVENT_NATURE_GRASP, 60*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_druidAI (creature);
}
- };
-
-};
-
-enum eShamanSpells
-{
- SPELL_HEALING_WAVE = 66055,
- SPELL_RIPTIDE = 66053,
- SPELL_SPIRIT_CLEANSE = 66056, //friendly only
- SPELL_HEROISM = 65983,
- SPELL_BLOODLUST = 65980,
- SPELL_HEX = 66054,
- SPELL_EARTH_SHIELD = 66063,
- SPELL_EARTH_SHOCK = 65973,
- AURA_EXHAUSTION = 57723,
- AURA_SATED = 57724,
};
class mob_toc_shaman : public CreatureScript
{
-public:
- mob_toc_shaman() : CreatureScript("mob_toc_shaman") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_shamanAI (creature);
- }
-
- struct mob_toc_shamanAI : public boss_faction_championsAI
- {
- mob_toc_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
-
- uint32 m_uiHeroismOrBloodlustTimer;
- uint32 m_uiHexTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiHeroismOrBloodlustTimer = IN_MILLISECONDS;
- m_uiHexTimer = IN_MILLISECONDS;
- m_uiCommonTimer = IN_MILLISECONDS;
- SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_shaman() : CreatureScript("mob_toc_shaman") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_shamanAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_HEALING_WAVE, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_RIPTIDE, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SPIRIT_CLEANSE, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEAL_BLOODLUST_HEROISM, 20*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_HEX, urand(5*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_EARTH_SHIELD, 1*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_HEAL_EARTH_SHOCK, urand(5*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- if (m_uiHeroismOrBloodlustTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (me->getFaction()) //Am i alliance?
- {
- if (!me->HasAura(AURA_EXHAUSTION))
- DoCastAOE(SPELL_HEROISM);
- }
- else
- if (!me->HasAura(AURA_SATED))
- DoCastAOE(SPELL_BLOODLUST);
- m_uiHeroismOrBloodlustTimer = 300*IN_MILLISECONDS;
- } else m_uiHeroismOrBloodlustTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiHexTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_HEX);
- m_uiHexTimer = urand(10*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiHexTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 5))
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0: case 1:
- DoCast(me, SPELL_HEALING_WAVE);
- break;
- case 2:
- DoCast(me, SPELL_RIPTIDE);
- break;
- case 3:
- DoCast(me, SPELL_EARTH_SHOCK);
- break;
- case 4:
- DoCast(me, SPELL_SPIRIT_CLEANSE);
- break;
- case 5:
- if (Unit* target = SelectRandomFriendlyMissingBuff(SPELL_EARTH_SHIELD))
- DoCast(target, SPELL_EARTH_SHIELD);
- break;
+ switch (eventId)
+ {
+ case EVENT_HEALING_WAVE:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_HEALING_WAVE);
+ events.ScheduleEvent(EVENT_HEALING_WAVE, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ return;
+ case EVENT_RIPTIDE:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_RIPTIDE);
+ events.ScheduleEvent(EVENT_RIPTIDE, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_SPIRIT_CLEANSE:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_SPIRIT_CLEANSE);
+ events.ScheduleEvent(EVENT_SPIRIT_CLEANSE, urand(15*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_BLOODLUST_HEROISM:
+ if (me->getFaction()) // alliance = 1
+ {
+ if (!me->HasAura(AURA_EXHAUSTION))
+ DoCastAOE(SPELL_HEROISM);
+ }
+ else
+ {
+ if (!me->HasAura(AURA_SATED))
+ DoCastAOE(SPELL_BLOODLUST);
+ }
+ events.ScheduleEvent(EVENT_HEAL_BLOODLUST_HEROISM, 5*MINUTE*IN_MILLISECONDS);
+ return;
+ case EVENT_HEX:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ DoCast(target, SPELL_HEX);
+ events.ScheduleEvent(EVENT_HEX, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_EARTH_SHIELD:
+ if (Creature* target = SelectRandomFriendlyMissingBuff(SPELL_EARTH_SHIELD))
+ DoCast(target, SPELL_EARTH_SHIELD);
+ events.ScheduleEvent(EVENT_EARTH_SHIELD, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_EARTH_SHOCK:
+ if (Unit* target = SelectEnemyCaster(true))
+ DoCast(target, SPELL_EARTH_SHOCK);
+ events.ScheduleEvent(EVENT_HEAL_EARTH_SHOCK, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_shamanAI (creature);
}
- };
-
-};
-
-enum ePaladinSpells
-{
- SPELL_HAND_OF_FREEDOM = 68757, //25 sec cd
- SPELL_BUBBLE = 66010, //5 min cd
- SPELL_CLEANSE = 66116,
- SPELL_FLASH_OF_LIGHT = 66113,
- SPELL_HOLY_LIGHT = 66112,
- SPELL_HOLY_SHOCK = 66114,
- SPELL_HAND_OF_PROTECTION = 66009,
- SPELL_HAMMER_OF_JUSTICE = 66613,
};
class mob_toc_paladin : public CreatureScript
{
-public:
- mob_toc_paladin() : CreatureScript("mob_toc_paladin") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_paladinAI (creature);
- }
-
- struct mob_toc_paladinAI : public boss_faction_championsAI
- {
- mob_toc_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
-
- uint32 m_uiBubbleTimer;
- uint32 m_uiHandOfProtectionTimer;
- uint32 m_uiHolyShockTimer;
- uint32 m_uiHandOfFreedomTimer;
- uint32 m_uiHammerOfJusticeTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiBubbleTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- m_uiHandOfProtectionTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- m_uiHolyShockTimer = urand(6*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiHandOfFreedomTimer = urand(25*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- m_uiHammerOfJusticeTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 50771, 47079, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_paladin() : CreatureScript("mob_toc_paladin") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_paladinAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
-
- if (m_uiBubbleTimer <= uiDiff)
- {
- //cast bubble at 20% hp
- if (HealthBelowPct(20))
- DoCast(me, SPELL_BUBBLE);
- m_uiBubbleTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- } else m_uiBubbleTimer -= uiDiff;
+ mob_toc_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_HAND_OF_FREEDOM, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEAL_DIVINE_SHIELD, 20*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_CLEANSE, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FLASH_OF_LIGHT, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HOLY_LIGHT, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HOLY_SHOCK, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEAL_HAND_OF_PROTECTION, urand(30*IN_MILLISECONDS, 60*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HAMMER_OF_JUSTICE, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 50771, 47079, EQUIP_NO_CHANGE);
+ }
- if (m_uiHandOfProtectionTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (Unit* target = DoSelectLowestHpFriendly(40.0f))
- if (target->HealthBelowPct(15))
- DoCast(target, SPELL_HAND_OF_PROTECTION);
- m_uiHandOfProtectionTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- } else m_uiHandOfProtectionTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiHolyShockTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_HOLY_SHOCK);
- m_uiHolyShockTimer = urand(6*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiHolyShockTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiHandOfFreedomTimer <= uiDiff)
- {
- if (Unit* target = SelectRandomFriendlyMissingBuff(SPELL_HAND_OF_FREEDOM))
- DoCast(target, SPELL_HAND_OF_FREEDOM);
- m_uiHandOfFreedomTimer = urand(25*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiHandOfFreedomTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiHammerOfJusticeTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_HAMMER_OF_JUSTICE);
- m_uiHammerOfJusticeTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiHammerOfJusticeTimer -= uiDiff;
-
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 4))
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0: case 1:
- DoCast(me, SPELL_FLASH_OF_LIGHT);
- break;
- case 2: case 3:
- DoCast(me, SPELL_HOLY_LIGHT);
- break;
- case 4:
- DoCast(me, SPELL_CLEANSE);
- break;
+ switch (eventId)
+ {
+ case EVENT_HAND_OF_FREEDOM:
+ if (Unit* target = SelectRandomFriendlyMissingBuff(SPELL_HAND_OF_FREEDOM))
+ DoCast(target, SPELL_HAND_OF_FREEDOM);
+ events.ScheduleEvent(EVENT_HAND_OF_FREEDOM, urand(15*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_DIVINE_SHIELD:
+ if (HealthBelowPct(30) && !me->HasAura(SPELL_FORBEARANCE))
+ {
+ DoCast(me, SPELL_DIVINE_SHIELD);
+ events.RescheduleEvent(EVENT_HEAL_DIVINE_SHIELD, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_HEAL_DIVINE_SHIELD, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_CLEANSE:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_CLEANSE);
+ events.ScheduleEvent(EVENT_CLEANSE, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_FLASH_OF_LIGHT:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_FLASH_OF_LIGHT);
+ events.ScheduleEvent(EVENT_FLASH_OF_LIGHT, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ return;
+ case EVENT_HOLY_LIGHT:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_HOLY_LIGHT);
+ events.ScheduleEvent(EVENT_HOLY_LIGHT, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_HOLY_SHOCK:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_HOLY_SHOCK);
+ events.ScheduleEvent(EVENT_HOLY_SHOCK, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_HAND_OF_PROTECTION:
+ if (Unit* target = DoSelectLowestHpFriendly(30.0f))
+ {
+ if (!target->HasAura(SPELL_FORBEARANCE))
+ {
+ DoCast(target, SPELL_HAND_OF_PROTECTION);
+ events.RescheduleEvent(EVENT_HEAL_HAND_OF_PROTECTION, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_HEAL_HAND_OF_PROTECTION, 3*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_HEAL_HAND_OF_PROTECTION, 10*IN_MILLISECONDS);
+ return;
+ case EVENT_HAMMER_OF_JUSTICE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 15.0f, true))
+ DoCast(target, SPELL_HAMMER_OF_JUSTICE);
+ events.ScheduleEvent(EVENT_HAMMER_OF_JUSTICE, 40*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_paladinAI (creature);
}
- };
-
-};
-
-enum ePriestSpells
-{
- SPELL_RENEW = 66177,
- SPELL_SHIELD = 66099,
- SPELL_FLASH_HEAL = 66104,
- SPELL_DISPEL = 65546,
- SPELL_PSYCHIC_SCREAM = 65543,
- SPELL_MANA_BURN = 66100,
};
class mob_toc_priest : public CreatureScript
{
-public:
- mob_toc_priest() : CreatureScript("mob_toc_priest") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_priestAI (creature);
- }
-
- struct mob_toc_priestAI : public boss_faction_championsAI
- {
- mob_toc_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
-
- uint32 m_uiPsychicScreamTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiPsychicScreamTimer = IN_MILLISECONDS;
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_priest() : CreatureScript("mob_toc_priest") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_priestAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_HEALER) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_RENEW, urand(3*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SHIELD, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FLASH_HEAL, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEAL_DISPEL, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEAL_PSYCHIC_SCREAM, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_MANA_BURN, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_PENANCE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- if (m_uiPsychicScreamTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (EnemiesInRange(10.0f) > 2)
- DoCastAOE(SPELL_PSYCHIC_SCREAM);
- m_uiPsychicScreamTimer = urand(5*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiPsychicScreamTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 5))
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0:
- DoCast(me, SPELL_RENEW);
- break;
- case 1:
- DoCast(me, SPELL_SHIELD);
- break;
- case 2: case 3:
- DoCast(me, SPELL_FLASH_HEAL);
- break;
- case 4:
- if (Unit* target = urand(0, 1) ? SelectTarget(SELECT_TARGET_RANDOM, 0) : DoSelectLowestHpFriendly(40.0f))
- DoCast(target, SPELL_DISPEL);
- break;
- case 5:
- DoCast(me, SPELL_MANA_BURN);
- break;
+ switch (eventId)
+ {
+ case EVENT_RENEW:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_RENEW);
+ events.ScheduleEvent(EVENT_RENEW, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ return;
+ case EVENT_SHIELD:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_SHIELD);
+ events.ScheduleEvent(EVENT_SHIELD, urand(15*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_FLASH_HEAL:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_FLASH_HEAL);
+ events.ScheduleEvent(EVENT_FLASH_HEAL, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_DISPEL:
+ if (Unit* target = urand(0, 1) ? SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true) : DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_DISPEL);
+ events.ScheduleEvent(EVENT_HEAL_DISPEL, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_HEAL_PSYCHIC_SCREAM:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_PSYCHIC_SCREAM);
+ events.ScheduleEvent(EVENT_HEAL_PSYCHIC_SCREAM, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_MANA_BURN:
+ if (Unit* target = SelectEnemyCaster(false))
+ DoCast(target, SPELL_MANA_BURN);
+ events.ScheduleEvent(EVENT_MANA_BURN, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_PENANCE:
+ if (Unit* target = DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_PENANCE);
+ events.ScheduleEvent(EVENT_PENANCE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_priestAI (creature);
}
- };
-
};
/********************************************************************
RANGED
********************************************************************/
-enum eShadowPriestSpells
-{
- SPELL_SILENCE = 65542,
- SPELL_VAMPIRIC_TOUCH = 65490,
- SPELL_SW_PAIN = 65541,
- SPELL_MIND_FLAY = 65488,
- SPELL_MIND_BLAST = 65492,
- SPELL_HORROR = 65545,
- SPELL_DISPERSION = 65544,
- SPELL_SHADOWFORM = 16592,
-};
-
class mob_toc_shadow_priest : public CreatureScript
{
-public:
- mob_toc_shadow_priest() : CreatureScript("mob_toc_shadow_priest") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_shadow_priestAI (creature);
- }
-
- struct mob_toc_shadow_priestAI : public boss_faction_championsAI
- {
- mob_toc_shadow_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
-
- uint32 m_uiPsychicScreamTimer;
- uint32 m_uiDispersionTimer;
- uint32 m_uiSilenceTimer;
- uint32 m_uiMindBlastTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiPsychicScreamTimer = urand(5*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiDispersionTimer = urand(1*IN_MILLISECONDS, 180*IN_MILLISECONDS);
- m_uiSilenceTimer = urand(8*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiMindBlastTimer = urand(3*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 50040, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- DoCast(me, SPELL_SHADOWFORM);
- }
-
- void EnterCombat(Unit* who)
- {
- boss_faction_championsAI::EnterCombat(who);
- }
+ public:
+ mob_toc_shadow_priest() : CreatureScript("mob_toc_shadow_priest") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_shadow_priestAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
-
- if (m_uiPsychicScreamTimer <= uiDiff)
- {
- if (EnemiesInRange(10.0f) > 2)
- DoCastAOE(SPELL_PSYCHIC_SCREAM);
- m_uiPsychicScreamTimer = urand(5*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiPsychicScreamTimer -= uiDiff;
+ mob_toc_shadow_priestAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_SILENCE, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_VAMPIRIC_TOUCH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SW_PAIN, urand(3*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_MIND_BLAST, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HORROR, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DISPERSION, urand(20*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DPS_DISPEL, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DPS_PSYCHIC_SCREAM, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 50040, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ DoCast(me, SPELL_SHADOWFORM);
+ }
- if (m_uiDispersionTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (HealthBelowPct(20))
- DoCast(me, SPELL_DISPERSION);
- m_uiDispersionTimer = urand(1*IN_MILLISECONDS, 180*IN_MILLISECONDS);
- } else m_uiDispersionTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiSilenceTimer <= uiDiff)
- {
- if (Unit* target = SelectEnemyCaster(false))
- DoCast(target, SPELL_SILENCE);
- m_uiSilenceTimer = urand(8*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiSilenceTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiMindBlastTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_MIND_BLAST);
- m_uiMindBlastTimer = urand(3*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- } else m_uiMindBlastTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 4))
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0: case 1:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_MIND_FLAY);
- break;
- case 2:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_VAMPIRIC_TOUCH);
- break;
- case 3:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SW_PAIN);
- break;
- case 4:
- if (Unit* target = urand(0, 1) ? SelectTarget(SELECT_TARGET_RANDOM, 0) : DoSelectLowestHpFriendly(40.0f))
- DoCast(target, SPELL_DISPEL);
- break;
+ switch (eventId)
+ {
+ case EVENT_SILENCE:
+ if (Unit* target = SelectEnemyCaster(true))
+ DoCast(target, SPELL_SILENCE);
+ events.ScheduleEvent(EVENT_SILENCE, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_VAMPIRIC_TOUCH:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true))
+ DoCast(target, SPELL_VAMPIRIC_TOUCH);
+ events.ScheduleEvent(EVENT_VAMPIRIC_TOUCH, urand(10*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_SW_PAIN:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true))
+ DoCast(target, SPELL_SW_PAIN);
+ events.ScheduleEvent(EVENT_SW_PAIN, urand(10*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_MIND_BLAST:
+ DoCastVictim(SPELL_MIND_BLAST);
+ events.ScheduleEvent(EVENT_MIND_BLAST, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_HORROR:
+ DoCastVictim(SPELL_HORROR);
+ events.ScheduleEvent(EVENT_HORROR, urand(15*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_DISPERSION:
+ if (HealthBelowPct(40))
+ {
+ DoCast(me, SPELL_DISPERSION);
+ events.RescheduleEvent(EVENT_DISPERSION, 180*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DISPERSION, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_DPS_DISPEL:
+ if (Unit* target = urand(0, 1) ? SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true) : DoSelectLowestHpFriendly(40.0f))
+ DoCast(target, SPELL_DISPEL);
+ events.ScheduleEvent(EVENT_DPS_DISPEL, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_DPS_PSYCHIC_SCREAM:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_PSYCHIC_SCREAM);
+ events.ScheduleEvent(EVENT_DPS_PSYCHIC_SCREAM, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ DoSpellAttackIfReady(SPELL_MIND_FLAY);
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_shadow_priestAI (creature);
}
- };
-
-};
-
-enum WarlockSpells
-{
- SPELL_HELLFIRE = 65816,
- SPELL_CORRUPTION = 65810,
- SPELL_CURSE_OF_AGONY = 65814,
- SPELL_CURSE_OF_EXHAUSTION = 65815,
- SPELL_FEAR = 65809, // 8s
- SPELL_SEARING_PAIN = 65819,
- SPELL_SHADOW_BOLT = 65821,
- SPELL_UNSTABLE_AFFLICTION = 65812, // 15s
- SPELL_UNSTABLE_AFFLICTION_DISPEL = 65813,
- SPELL_SUMMON_FELHUNTER = 67514,
};
class mob_toc_warlock : public CreatureScript
{
-public:
- mob_toc_warlock() : CreatureScript("mob_toc_warlock") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_warlockAI (creature);
- }
-
- struct mob_toc_warlockAI : public boss_faction_championsAI
- {
- mob_toc_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED), Summons(me) {}
-
- SummonList Summons;
-
- uint32 m_uiFearTimer;
- uint32 m_uiHellfireTimer;
- uint32 m_uiUnstableAfflictionTimer;
- uint32 m_uiCommonTimer;
- uint32 m_uiSummonPetTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiFearTimer = urand(4*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiHellfireTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- m_uiUnstableAfflictionTimer = urand(2*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
-
- m_uiSummonPetTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- DoCast(SPELL_SUMMON_FELHUNTER);
- }
+ public:
+ mob_toc_warlock() : CreatureScript("mob_toc_warlock") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_warlockAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_HELLFIRE, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CORRUPTION, urand(2*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CURSE_OF_AGONY, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CURSE_OF_EXHAUSTION, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FEAR, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SEARING_PAIN, urand(5*IN_MILLISECONDS, 12*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_UNSTABLE_AFFLICTION, urand(7*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 49992, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- if (m_uiFearTimer <= uiDiff)
+ void EnterCombat(Unit* who)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_FEAR);
- m_uiFearTimer = urand(4*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiFearTimer -= uiDiff;
+ boss_faction_championsAI::EnterCombat(who);
+ DoCast(SPELL_SUMMON_FELHUNTER);
+ }
- if (m_uiHellfireTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (EnemiesInRange(10.0f) > 2)
- DoCastAOE(SPELL_HELLFIRE);
- m_uiHellfireTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiHellfireTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiUnstableAfflictionTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_UNSTABLE_AFFLICTION);
- m_uiUnstableAfflictionTimer = urand(2*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- } else m_uiUnstableAfflictionTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiSummonPetTimer <= uiDiff)
- {
- m_uiSummonPetTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiSummonPetTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 5))
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0: case 1:
- DoCastVictim(SPELL_SHADOW_BOLT);
- break;
- case 2:
- DoCastVictim(SPELL_SEARING_PAIN);
- break;
- case 3:
- DoCastVictim(SPELL_CORRUPTION);
- break;
- case 4:
- DoCastVictim(SPELL_CURSE_OF_AGONY);
- break;
- case 5:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_CURSE_OF_EXHAUSTION);
- break;
+ switch (eventId)
+ {
+ case EVENT_HELLFIRE:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_HELLFIRE);
+ events.ScheduleEvent(EVENT_HELLFIRE, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_CORRUPTION:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f))
+ DoCast(target, SPELL_CORRUPTION);
+ events.ScheduleEvent(EVENT_CORRUPTION, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_CURSE_OF_AGONY:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f))
+ DoCast(target, SPELL_CURSE_OF_AGONY);
+ events.ScheduleEvent(EVENT_CURSE_OF_AGONY, urand(20*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_CURSE_OF_EXHAUSTION:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f))
+ DoCast(target, SPELL_CURSE_OF_EXHAUSTION);
+ events.ScheduleEvent(EVENT_CURSE_OF_EXHAUSTION, urand(20*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_FEAR:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 20.0f, true))
+ DoCast(target, SPELL_FEAR);
+ events.ScheduleEvent(EVENT_FEAR, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_SEARING_PAIN:
+ DoCastVictim(SPELL_SEARING_PAIN);
+ events.ScheduleEvent(EVENT_SEARING_PAIN, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_UNSTABLE_AFFLICTION:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true))
+ DoCast(target, SPELL_UNSTABLE_AFFLICTION);
+ events.ScheduleEvent(EVENT_UNSTABLE_AFFLICTION, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
- boss_faction_championsAI::UpdateAI(uiDiff);
- }
- };
-
-};
+ DoSpellAttackIfReady(SPELL_SHADOW_BOLT);
+ }
+ };
-enum eMageSpells
-{
- SPELL_ARCANE_BARRAGE = 65799, //3s
- SPELL_ARCANE_BLAST = 65791,
- SPELL_ARCANE_EXPLOSION = 65800,
- SPELL_BLINK = 65793, //15s
- SPELL_COUNTERSPELL = 65790, //24s
- SPELL_FROST_NOVA = 65792, //25s
- SPELL_FROSTBOLT = 65807,
- SPELL_ICE_BLOCK = 65802, //5min
- SPELL_POLYMORPH = 65801, //15s
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_warlockAI (creature);
+ }
};
class mob_toc_mage : public CreatureScript
{
-public:
- mob_toc_mage() : CreatureScript("mob_toc_mage") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_mageAI (creature);
- }
-
- struct mob_toc_mageAI : public boss_faction_championsAI
- {
- mob_toc_mageAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
-
- uint32 m_uiCounterspellTimer;
- uint32 m_uiBlinkTimer;
- uint32 m_uiIceBlockTimer;
- uint32 m_uiPolymorphTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiCounterspellTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiBlinkTimer = urand(7*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiIceBlockTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- m_uiPolymorphTimer = urand(15*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 47524, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_mage() : CreatureScript("mob_toc_mage") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_mageAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_mageAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(1*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ARCANE_BLAST, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_BLINK, urand(15*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_COUNTERSPELL, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FROST_NOVA, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ICE_BLOCK, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_POLYMORPH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 47524, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- if (m_uiCounterspellTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (Unit* target = SelectEnemyCaster(false))
- DoCast(target, SPELL_COUNTERSPELL);
- m_uiCounterspellTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiCounterspellTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiBlinkTimer <= uiDiff)
- {
- if (HealthBelowPct(50) && EnemiesInRange(10.0f) > 3)
- {
- DoCastAOE(SPELL_FROST_NOVA);
- DoCast(SPELL_BLINK);
- }
- m_uiBlinkTimer = urand(7*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiBlinkTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiIceBlockTimer <= uiDiff)
- {
- if (HealthBelowPct(20))
- DoCast(me, SPELL_ICE_BLOCK);
- m_uiIceBlockTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- } else m_uiIceBlockTimer -= uiDiff;
-
- if (m_uiPolymorphTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_POLYMORPH);
- m_uiPolymorphTimer = urand(15*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiPolymorphTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 2))
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0:
- DoCast(me, SPELL_ARCANE_BARRAGE);
- break;
- case 1:
- DoCastVictim(SPELL_ARCANE_BLAST);
- break;
- case 2:
- DoCastVictim(SPELL_FROSTBOLT);
- break;
+ switch (eventId)
+ {
+ case EVENT_ARCANE_BARRAGE:
+ DoCastVictim(SPELL_ARCANE_BARRAGE);
+ events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(5*IN_MILLISECONDS, 7*IN_MILLISECONDS));
+ return;
+ case EVENT_ARCANE_BLAST:
+ DoCastVictim(SPELL_ARCANE_BLAST);
+ events.ScheduleEvent(EVENT_ARCANE_BLAST, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_ARCANE_EXPLOSION:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_ARCANE_EXPLOSION);
+ events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_BLINK:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCast(SPELL_BLINK);
+ events.ScheduleEvent(EVENT_BLINK, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_COUNTERSPELL:
+ if (Unit* target = SelectEnemyCaster(true))
+ DoCast(target, SPELL_COUNTERSPELL);
+ events.ScheduleEvent(EVENT_COUNTERSPELL, 24*IN_MILLISECONDS);
+ return;
+ case EVENT_FROST_NOVA:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_FROST_NOVA);
+ events.ScheduleEvent(EVENT_FROST_NOVA, 25*IN_MILLISECONDS);
+ return;
+ case EVENT_ICE_BLOCK:
+ if (HealthBelowPct(30))
+ {
+ DoCast(SPELL_ICE_BLOCK);
+ events.RescheduleEvent(EVENT_ICE_BLOCK, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_ICE_BLOCK, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_POLYMORPH:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ DoCast(target, SPELL_POLYMORPH);
+ events.ScheduleEvent(EVENT_POLYMORPH, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ DoSpellAttackIfReady(SPELL_FROSTBOLT);
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_mageAI (creature);
}
- };
-
-};
-
-enum eHunterSpells
-{
- SPELL_AIMED_SHOT = 65883,
- SPELL_DETERRENCE = 65871, //90s
- SPELL_DISENGAGE = 65869, //30s
- SPELL_EXPLOSIVE_SHOT = 65866,
- SPELL_FROST_TRAP = 65880, //30s
- SPELL_SHOOT = 65868, //1.7s
- SPELL_STEADY_SHOT = 65867, //3s
- SPELL_WING_CLIP = 66207, //6s
- SPELL_WYVERN_STING = 65877, //60s
- SPELL_CALL_PET = 67777,
};
class mob_toc_hunter : public CreatureScript
{
-public:
- mob_toc_hunter() : CreatureScript("mob_toc_hunter") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_hunterAI (creature);
- }
-
- struct mob_toc_hunterAI : public boss_faction_championsAI
- {
- mob_toc_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED), Summons(me) {}
-
- SummonList Summons;
-
- uint32 m_uiDisengageTimer;
- uint32 m_uiDeterrenceTimer;
- uint32 m_uiWyvernStingTimer;
- uint32 m_uiFrostTrapTimer;
- uint32 m_uiWingClipTimer;
- uint32 m_uiCommonTimer;
- uint32 m_uiSummonPetTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiDisengageTimer = urand(12*IN_MILLISECONDS, 20*IN_MILLISECONDS);
- m_uiDeterrenceTimer = urand(20*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- m_uiWyvernStingTimer = urand(7*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- m_uiFrostTrapTimer = urand(12*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- m_uiWingClipTimer = urand(4*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 47156, EQUIP_NO_CHANGE, 48711);
-
- m_uiSummonPetTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- DoCast(SPELL_CALL_PET);
- }
+ public:
+ mob_toc_hunter() : CreatureScript("mob_toc_hunter") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_hunterAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
-
- if (m_uiDisengageTimer <= uiDiff)
- {
- if (EnemiesInRange(10.0f) > 3)
- DoCast(SPELL_DISENGAGE);
- m_uiDisengageTimer = urand(12*IN_MILLISECONDS, 20*IN_MILLISECONDS);
- } else m_uiDisengageTimer -= uiDiff;
+ mob_toc_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_AIMED_SHOT, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DETERRENCE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DISENGAGE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_EXPLOSIVE_SHOT, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FROST_TRAP, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_STEADY_SHOT, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_WING_CLIP, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_WYVERN_STING, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 47156, EQUIP_NO_CHANGE, 48711);
+ }
- if (m_uiDeterrenceTimer <= uiDiff)
+ void EnterCombat(Unit* who)
{
- if (HealthBelowPct(20))
- DoCast(SPELL_DETERRENCE);
- m_uiDeterrenceTimer = urand(20*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- } else m_uiDeterrenceTimer -= uiDiff;
+ boss_faction_championsAI::EnterCombat(who);
+ DoCast(SPELL_CALL_PET);
+ }
- if (m_uiWyvernStingTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- DoCastVictim(SPELL_WYVERN_STING);
- m_uiWyvernStingTimer = urand(7*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- } else m_uiWyvernStingTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiFrostTrapTimer <= uiDiff)
- {
- DoCast(SPELL_FROST_TRAP);
- m_uiFrostTrapTimer = urand(12*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiFrostTrapTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiWingClipTimer <= uiDiff)
- {
- if (me->GetDistance2d(me->getVictim()) < 5.0f)
- DoCastVictim(SPELL_WING_CLIP);
- m_uiWingClipTimer = urand(4*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- } else m_uiWingClipTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiSummonPetTimer <= uiDiff)
- {
- m_uiSummonPetTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiSummonPetTimer -= uiDiff;
-
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 3))
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0: case 1:
- DoCastVictim(SPELL_SHOOT);
- break;
- case 2:
- DoCastVictim(SPELL_EXPLOSIVE_SHOT);
- break;
- case 3:
- DoCastVictim(SPELL_AIMED_SHOT);
- break;
+ switch (eventId)
+ {
+ case EVENT_AIMED_SHOT:
+ DoCastVictim(SPELL_AIMED_SHOT);
+ events.ScheduleEvent(EVENT_AIMED_SHOT, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_DETERRENCE:
+ if (HealthBelowPct(30))
+ {
+ DoCast(SPELL_DETERRENCE);
+ events.RescheduleEvent(EVENT_DETERRENCE, 150*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DETERRENCE, 10*IN_MILLISECONDS);
+ return;
+ case EVENT_DISENGAGE:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCast(SPELL_DISENGAGE);
+ events.ScheduleEvent(EVENT_DISENGAGE, 30*IN_MILLISECONDS);
+ return;
+ case EVENT_EXPLOSIVE_SHOT:
+ DoCastVictim(SPELL_EXPLOSIVE_SHOT);
+ events.ScheduleEvent(EVENT_EXPLOSIVE_SHOT, urand(6*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_FROST_TRAP:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_FROST_TRAP);
+ events.ScheduleEvent(EVENT_FROST_TRAP, 30*IN_MILLISECONDS);
+ return;
+ case EVENT_STEADY_SHOT:
+ DoCastVictim(SPELL_STEADY_SHOT);
+ events.ScheduleEvent(EVENT_STEADY_SHOT, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_WING_CLIP:
+ if (me->GetDistance2d(me->getVictim()) < 6.0f)
+ DoCastVictim(SPELL_WING_CLIP);
+ events.ScheduleEvent(EVENT_WING_CLIP, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_WYVERN_STING:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ DoCast(target, SPELL_WYVERN_STING);
+ events.ScheduleEvent(EVENT_WYVERN_STING, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ DoSpellAttackIfReady(SPELL_SHOOT);
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_hunterAI (creature);
}
- };
-
-};
-
-enum eBoomkinSpells
-{
- SPELL_CYCLONE = 65859, //6s
- SPELL_ENTANGLING_ROOTS = 65857, //10s
- SPELL_FAERIE_FIRE = 65863,
- SPELL_FORCE_OF_NATURE = 65861, //180s
- SPELL_INSECT_SWARM = 65855,
- SPELL_MOONFIRE = 65856, //5s
- SPELL_STARFIRE = 65854,
- SPELL_WRATH = 65862,
};
class mob_toc_boomkin : public CreatureScript
{
-public:
- mob_toc_boomkin() : CreatureScript("mob_toc_boomkin") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_boomkinAI (creature);
- }
-
- struct mob_toc_boomkinAI : public boss_faction_championsAI
- {
- mob_toc_boomkinAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
-
- uint32 m_uiBarkskinTimer;
- uint32 m_uiCycloneTimer;
- uint32 m_uiEntanglingRootsTimer;
- uint32 m_uiFaerieFireTimer;
- uint32 m_uiCommonTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiBarkskinTimer = urand(5*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- m_uiCycloneTimer = urand(5*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- m_uiEntanglingRootsTimer = urand(5*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- m_uiFaerieFireTimer = urand(10*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- SetEquipmentSlots(false, 50966, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_boomkin() : CreatureScript("mob_toc_boomkin") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_boomkinAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_boomkinAI(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) {}
- if (m_uiBarkskinTimer <= uiDiff)
+ void Reset()
{
- if (HealthBelowPct(50))
- DoCast(me, SPELL_BARKSKIN);
- m_uiBarkskinTimer = urand(5*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- } else m_uiBarkskinTimer -= uiDiff;
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_CYCLONE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ENTANGLING_ROOTS, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FAERIE_FIRE, urand(2*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FORCE_OF_NATURE, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_INSECT_SWARM, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_MOONFIRE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_STARFIRE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DPS_BARKSKIN, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
- if (m_uiCycloneTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_CYCLONE);
- m_uiCycloneTimer = urand(5*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiCycloneTimer -= uiDiff;
+ SetEquipmentSlots(false, 50966, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- if (m_uiEntanglingRootsTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_ENTANGLING_ROOTS);
- m_uiEntanglingRootsTimer = urand(5*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiEntanglingRootsTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiFaerieFireTimer <= uiDiff)
- {
- DoCastVictim(SPELL_FAERIE_FIRE);
- m_uiFaerieFireTimer = urand(10*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiFaerieFireTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiCommonTimer <= uiDiff)
- {
- switch (urand(0, 6))
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- case 0: case 1:
- DoCastVictim(SPELL_MOONFIRE);
- break;
- case 2:
- DoCastVictim(SPELL_INSECT_SWARM);
- break;
- case 3:
- DoCastVictim(SPELL_STARFIRE);
- break;
- case 4: case 5: case 6:
- DoCastVictim(SPELL_WRATH);
- break;
+ switch (eventId)
+ {
+ case EVENT_CYCLONE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ DoCast(target, SPELL_CYCLONE);
+ events.ScheduleEvent(EVENT_CYCLONE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_ENTANGLING_ROOTS:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true))
+ DoCast(target, SPELL_ENTANGLING_ROOTS);
+ events.ScheduleEvent(EVENT_ENTANGLING_ROOTS, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_FAERIE_FIRE:
+ DoCastVictim(SPELL_FAERIE_FIRE);
+ events.ScheduleEvent(EVENT_FAERIE_FIRE, urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ return;
+ case EVENT_FORCE_OF_NATURE:
+ DoCastVictim(SPELL_FORCE_OF_NATURE);
+ events.ScheduleEvent(EVENT_FORCE_OF_NATURE, 180*IN_MILLISECONDS);
+ return;
+ case EVENT_INSECT_SWARM:
+ DoCastVictim(SPELL_INSECT_SWARM);
+ events.ScheduleEvent(EVENT_INSECT_SWARM, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_MOONFIRE:
+ DoCastVictim(SPELL_MOONFIRE);
+ events.ScheduleEvent(EVENT_MOONFIRE, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_STARFIRE:
+ DoCastVictim(SPELL_STARFIRE);
+ events.ScheduleEvent(EVENT_STARFIRE, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_DPS_BARKSKIN:
+ if (HealthBelowPct(30))
+ {
+ DoCast(me, SPELL_BARKSKIN);
+ events.RescheduleEvent(EVENT_DPS_BARKSKIN, 60*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DPS_BARKSKIN, 5*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
}
- m_uiCommonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiCommonTimer -= uiDiff;
+ DoSpellAttackIfReady(SPELL_WRATH);
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_boomkinAI (creature);
}
- };
-
};
/********************************************************************
MELEE
********************************************************************/
-enum eWarriorSpells
-{
- SPELL_BLADESTORM = 65947,
- SPELL_INTIMIDATING_SHOUT = 65930,
- SPELL_MORTAL_STRIKE = 65926,
- SPELL_CHARGE = 68764,
- SPELL_DISARM = 65935,
- SPELL_OVERPOWER = 65924,
- SPELL_SUNDER_ARMOR = 65936,
- SPELL_SHATTERING_THROW = 65940,
- SPELL_RETALIATION = 65932,
-};
-
class mob_toc_warrior : public CreatureScript
{
-public:
- mob_toc_warrior() : CreatureScript("mob_toc_warrior") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_warriorAI (creature);
- }
-
- struct mob_toc_warriorAI : public boss_faction_championsAI
- {
- mob_toc_warriorAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
-
- uint32 m_uiBladestormTimer;
- uint32 m_uiIntimidatingShoutTimer;
- uint32 m_uiMortalStrikeTimer;
- uint32 m_uiSunderArmorTimer;
- uint32 m_uiChargeTimer;
- uint32 m_uiRetaliationTimer;
- uint32 m_uiOverpowerTimer;
- uint32 m_uiShatteringThrowTimer;
- uint32 m_uiDisarmTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiBladestormTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- m_uiIntimidatingShoutTimer = urand(10*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- m_uiMortalStrikeTimer = urand(6*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiSunderArmorTimer = urand(5*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiChargeTimer = urand(3*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiRetaliationTimer = urand(30*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- m_uiOverpowerTimer = urand(30*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- m_uiShatteringThrowTimer = urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiDisarmTimer = urand(20*IN_MILLISECONDS, 80*IN_MILLISECONDS);
- SetEquipmentSlots(false, 47427, 46964, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_warrior() : CreatureScript("mob_toc_warrior") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_warriorAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
-
- if (m_uiBladestormTimer <= uiDiff)
- {
- DoCastVictim(SPELL_BLADESTORM);
- m_uiBladestormTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiBladestormTimer -= uiDiff;
-
- if (m_uiIntimidatingShoutTimer <= uiDiff)
- {
- DoCast(me, SPELL_INTIMIDATING_SHOUT);
- m_uiIntimidatingShoutTimer = urand(10*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- } else m_uiIntimidatingShoutTimer -= uiDiff;
-
- if (m_uiMortalStrikeTimer <= uiDiff)
- {
- DoCastVictim(SPELL_MORTAL_STRIKE);
- m_uiMortalStrikeTimer = urand(6*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiMortalStrikeTimer -= uiDiff;
-
- if (m_uiSunderArmorTimer <= uiDiff)
- {
- DoCastVictim(SPELL_SUNDER_ARMOR);
- m_uiSunderArmorTimer = urand(5*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiSunderArmorTimer -= uiDiff;
-
- if (m_uiChargeTimer <= uiDiff)
- {
- DoCastVictim(SPELL_CHARGE);
- m_uiChargeTimer = urand(3*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiChargeTimer -= uiDiff;
+ mob_toc_warriorAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_BLADESTORM, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_INTIMIDATING_SHOUT, urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_WARR_CHARGE, 1*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_DISARM, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_OVERPOWER, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SUNDER_ARMOR, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SHATTERING_THROW, urand(20*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_RETALIATION, urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 47427, 46964, EQUIP_NO_CHANGE);
+ }
- if (m_uiRetaliationTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- DoCastVictim(SPELL_RETALIATION);
- m_uiRetaliationTimer = urand(30*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- } else m_uiRetaliationTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiOverpowerTimer <= uiDiff)
- {
- DoCastVictim(SPELL_OVERPOWER);
- m_uiOverpowerTimer = urand(30*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- } else m_uiOverpowerTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiShatteringThrowTimer <= uiDiff)
- {
- DoCastVictim(SPELL_SHATTERING_THROW);
- m_uiShatteringThrowTimer = urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiShatteringThrowTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiDisarmTimer <= uiDiff)
- {
- DoCastVictim(SPELL_DISARM);
- m_uiDisarmTimer = urand(20*IN_MILLISECONDS, 80*IN_MILLISECONDS);
- } else m_uiDisarmTimer -= uiDiff;
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_BLADESTORM:
+ DoCastVictim(SPELL_BLADESTORM);
+ events.ScheduleEvent(EVENT_BLADESTORM, 150*IN_MILLISECONDS);
+ return;
+ case EVENT_INTIMIDATING_SHOUT:
+ DoCastAOE(SPELL_INTIMIDATING_SHOUT);
+ events.ScheduleEvent(EVENT_INTIMIDATING_SHOUT, 120*IN_MILLISECONDS);
+ return;
+ case EVENT_MORTAL_STRIKE:
+ DoCastVictim(SPELL_MORTAL_STRIKE);
+ events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_WARR_CHARGE:
+ DoCastVictim(SPELL_CHARGE);
+ events.ScheduleEvent(EVENT_WARR_CHARGE, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_DISARM:
+ DoCastVictim(SPELL_DISARM);
+ events.ScheduleEvent(EVENT_DISARM, urand(15*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ return;
+ case EVENT_OVERPOWER:
+ DoCastVictim(SPELL_OVERPOWER);
+ events.ScheduleEvent(EVENT_OVERPOWER, urand(20*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ return;
+ case EVENT_SUNDER_ARMOR:
+ DoCastVictim(SPELL_SUNDER_ARMOR);
+ events.ScheduleEvent(EVENT_SUNDER_ARMOR, urand(2*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ return;
+ case EVENT_SHATTERING_THROW:
+ if (me->getVictim()->HasAuraWithMechanic(1<<MECHANIC_IMMUNE_SHIELD))
+ {
+ DoCastVictim(SPELL_SHATTERING_THROW);
+ events.RescheduleEvent(EVENT_SHATTERING_THROW, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_SHATTERING_THROW, 3*IN_MILLISECONDS);
+ return;
+ case EVENT_RETALIATION:
+ if (HealthBelowPct(50))
+ {
+ DoCast(SPELL_RETALIATION);
+ events.RescheduleEvent(EVENT_RETALIATION, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_RETALIATION, 5*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_warriorAI (creature);
}
- };
-
-};
-
-enum eDeathKnightSpells
-{
- SPELL_CHAINS_OF_ICE = 66020, //8sec
- SPELL_DEATH_COIL = 66019, //5sec
- SPELL_DEATH_GRIP = 66017, //35sec
- SPELL_FROST_STRIKE = 66047, //6sec
- SPELL_ICEBOUND_FORTITUDE = 66023, //1min
- SPELL_ICY_TOUCH = 66021, //8sec
- SPELL_STRANGULATE = 66018, //2min
};
class mob_toc_dk : public CreatureScript
{
-public:
- mob_toc_dk() : CreatureScript("mob_toc_dk") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_dkAI (creature);
- }
-
- struct mob_toc_dkAI : public boss_faction_championsAI
- {
- mob_toc_dkAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
-
- uint32 m_uiIceboundFortitudeTimer;
- uint32 m_uiChainsOfIceTimer;
- uint32 m_uiDeathCoilTimer;
- uint32 m_uiStrangulateTimer;
- uint32 m_uiFrostStrikeTimer;
- uint32 m_uiIcyTouchTimer;
- uint32 m_uiDeathGripTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiIceboundFortitudeTimer = urand(5*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- m_uiChainsOfIceTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiDeathCoilTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiStrangulateTimer = urand(10*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- m_uiFrostStrikeTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiIcyTouchTimer = urand(8*IN_MILLISECONDS, 12*IN_MILLISECONDS);
- m_uiDeathGripTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- SetEquipmentSlots(false, 47518, 51021, EQUIP_NO_CHANGE);
- }
+ public:
+ mob_toc_dk() : CreatureScript("mob_toc_dk") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_dkAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
-
- if (m_uiIceboundFortitudeTimer <= uiDiff)
- {
- if (HealthBelowPct(50))
- DoCast(me, SPELL_ICEBOUND_FORTITUDE);
- m_uiIceboundFortitudeTimer = urand(5*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- } else m_uiIceboundFortitudeTimer -= uiDiff;
-
- if (m_uiChainsOfIceTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_CHAINS_OF_ICE);
- m_uiChainsOfIceTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiChainsOfIceTimer -= uiDiff;
-
- if (m_uiDeathCoilTimer <= uiDiff)
- {
- DoCastVictim(SPELL_DEATH_COIL);
- m_uiDeathCoilTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiDeathCoilTimer -= uiDiff;
+ mob_toc_dkAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_CHAINS_OF_ICE, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DEATH_COIL, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DEATH_GRIP, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_FROST_STRIKE, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ICEBOUND_FORTITUDE, urand(25*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ICY_TOUCH, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_STRANGULATE, urand(5*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 47518, 51021, EQUIP_NO_CHANGE);
+ }
- if (m_uiStrangulateTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (Unit* target = SelectEnemyCaster(false))
- DoCast(target, SPELL_STRANGULATE);
- m_uiStrangulateTimer = urand(10*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- } else m_uiStrangulateTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiFrostStrikeTimer <= uiDiff)
- {
- DoCastVictim(SPELL_FROST_STRIKE);
- m_uiFrostStrikeTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiFrostStrikeTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiIcyTouchTimer <= uiDiff)
- {
- DoCastVictim(SPELL_ICY_TOUCH);
- m_uiIcyTouchTimer = urand(8*IN_MILLISECONDS, 12*IN_MILLISECONDS);
- } else m_uiIcyTouchTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiDeathGripTimer <= uiDiff)
- {
- if (me->IsInRange(me->getVictim(), 10.0f, 30.0f, false))
- DoCastVictim(SPELL_DEATH_GRIP);
- m_uiDeathGripTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiDeathGripTimer -= uiDiff;
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_CHAINS_OF_ICE:
+ DoCastVictim(SPELL_CHAINS_OF_ICE);
+ events.ScheduleEvent(EVENT_CHAINS_OF_ICE, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_DEATH_COIL:
+ DoCastVictim(SPELL_DEATH_COIL);
+ events.ScheduleEvent(EVENT_DEATH_COIL, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_DEATH_GRIP:
+ if (me->IsInRange(me->getVictim(), 5.0f, 30.0f, false))
+ {
+ DoCast(me->getVictim(), SPELL_DEATH_GRIP);
+ events.RescheduleEvent(EVENT_DEATH_GRIP, 35*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DEATH_GRIP, 3*IN_MILLISECONDS);
+ return;
+ case EVENT_FROST_STRIKE:
+ DoCastVictim(SPELL_FROST_STRIKE);
+ events.ScheduleEvent(EVENT_FROST_STRIKE, urand(6*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_ICEBOUND_FORTITUDE:
+ if (HealthBelowPct(50))
+ {
+ DoCast(SPELL_ICEBOUND_FORTITUDE);
+ events.RescheduleEvent(EVENT_ICEBOUND_FORTITUDE, 60*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_ICEBOUND_FORTITUDE, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_ICY_TOUCH:
+ DoCastVictim(SPELL_ICY_TOUCH);
+ events.ScheduleEvent(EVENT_ICY_TOUCH, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_STRANGULATE:
+ if (Unit* target = SelectEnemyCaster(false))
+ {
+ DoCast(target, SPELL_STRANGULATE);
+ events.RescheduleEvent(EVENT_STRANGULATE, 120*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_STRANGULATE, 5*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_dkAI (creature);
}
- };
-
-};
-
-enum eRogueSpells
-{
- SPELL_FAN_OF_KNIVES = 65955, //2sec
- SPELL_BLIND = 65960, //2min
- SPELL_CLOAK = 65961, //90sec
- SPELL_BLADE_FLURRY = 65956, //2min
- SPELL_SHADOWSTEP = 66178, //30sec
- SPELL_HEMORRHAGE = 65954,
- SPELL_EVISCERATE = 65957,
};
class mob_toc_rogue : public CreatureScript
{
-public:
- mob_toc_rogue() : CreatureScript("mob_toc_rogue") { }
+ public:
+ mob_toc_rogue() : CreatureScript("mob_toc_rogue") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_rogueAI (creature);
- }
+ struct mob_toc_rogueAI : public boss_faction_championsAI
+ {
+ mob_toc_rogueAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_FAN_OF_KNIVES, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_BLIND, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CLOAK, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_BLADE_FLURRY, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SHADOWSTEP, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HEMORRHAGE, urand(3*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_EVISCERATE, urand(20*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_WOUND_POISON, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 47422, 49982, EQUIP_NO_CHANGE);
+ me->setPowerType(POWER_ENERGY);
+ me->SetMaxPower(POWER_ENERGY, 100);
+ }
- struct mob_toc_rogueAI : public boss_faction_championsAI
- {
- mob_toc_rogueAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- uint32 m_uiFanOfKnivesTimer;
- uint32 m_uiHemorrhageTimer;
- uint32 m_uiEviscerateTimer;
- uint32 m_uiShadowstepTimer;
- uint32 m_uiBlindTimer;
- uint32 m_uiCloakTimer;
- uint32 m_uiBladeFlurryTimer;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FAN_OF_KNIVES:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCastAOE(SPELL_FAN_OF_KNIVES);
+ events.ScheduleEvent(EVENT_FAN_OF_KNIVES, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_BLIND:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ DoCast(target, SPELL_BLIND);
+ events.ScheduleEvent(EVENT_BLIND, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_CLOAK:
+ if (HealthBelowPct(50))
+ {
+ DoCast(SPELL_CLOAK);
+ events.RescheduleEvent(EVENT_CLOAK, 90*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_CLOAK, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_BLADE_FLURRY:
+ if (EnemiesInRange(10.0f) >= 2)
+ {
+ DoCast(SPELL_BLADE_FLURRY);
+ events.RescheduleEvent(EVENT_BLADE_FLURRY, 120*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_BLADE_FLURRY, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_SHADOWSTEP:
+ if (me->IsInRange(me->getVictim(), 10.0f, 40.0f, false))
+ {
+ DoCast(me->getVictim(), SPELL_SHADOWSTEP);
+ events.RescheduleEvent(EVENT_SHADOWSTEP, 30*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_SHADOWSTEP, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_HEMORRHAGE:
+ DoCastVictim(SPELL_HEMORRHAGE);
+ events.ScheduleEvent(EVENT_HEMORRHAGE, urand(3*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_EVISCERATE:
+ DoCastVictim(SPELL_EVISCERATE);
+ events.ScheduleEvent(EVENT_EVISCERATE, urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS));
+ return;
+ case EVENT_WOUND_POISON:
+ DoCastVictim(SPELL_WOUND_POISON);
+ events.ScheduleEvent(EVENT_WOUND_POISON, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ };
- void Reset()
+ CreatureAI* GetAI(Creature* creature) const
{
- boss_faction_championsAI::Reset();
- m_uiFanOfKnivesTimer = urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- m_uiHemorrhageTimer = urand(5*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- m_uiEviscerateTimer = urand(15*IN_MILLISECONDS, 20*IN_MILLISECONDS);
- m_uiShadowstepTimer = urand(10*IN_MILLISECONDS, 80*IN_MILLISECONDS);
- m_uiBlindTimer = urand(7*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- m_uiCloakTimer = urand(20*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- m_uiBladeFlurryTimer = urand(12*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- SetEquipmentSlots(false, 47422, 49982, EQUIP_NO_CHANGE);
+ return new mob_toc_rogueAI (creature);
}
+};
+
+class mob_toc_enh_shaman : public CreatureScript
+{
+ public:
+ mob_toc_enh_shaman() : CreatureScript("mob_toc_enh_shaman") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_toc_enh_shamanAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_enh_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_DPS_EARTH_SHOCK, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_LAVA_LASH, urand(3*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_STORMSTRIKE, urand(2*IN_MILLISECONDS, 5*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DPS_BLOODLUST_HEROISM, 20*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_DEPLOY_TOTEM, 1*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_WINDFURY, urand(20*IN_MILLISECONDS, 50*IN_MILLISECONDS));
+
+ _totemCount = 0;
+ _totemOldCenterX = me->GetPositionX();
+ _totemOldCenterY = me->GetPositionY();
+ SetEquipmentSlots(false, 51803, 48013, EQUIP_NO_CHANGE);
+ summons.DespawnAll();
+ }
- if (m_uiFanOfKnivesTimer <= uiDiff)
+ void JustSummoned(Creature* summoned)
{
- if (EnemiesInRange(15.0f) > 2)
- DoCastAOE(SPELL_FAN_OF_KNIVES);
- m_uiFanOfKnivesTimer = urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- } else m_uiFanOfKnivesTimer -= uiDiff;
+ summons.Summon(summoned);
+ }
- if (m_uiHemorrhageTimer <= uiDiff)
+ void SummonedCreatureDespawn(Creature* /*pSummoned*/)
{
- DoCastVictim(SPELL_HEMORRHAGE);
- m_uiHemorrhageTimer = urand(5*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- } else m_uiHemorrhageTimer -= uiDiff;
+ --_totemCount;
+ }
- if (m_uiEviscerateTimer <= uiDiff)
+ void DeployTotem()
{
- DoCastVictim(SPELL_EVISCERATE);
- m_uiEviscerateTimer = urand(15*IN_MILLISECONDS, 20*IN_MILLISECONDS);
- } else m_uiEviscerateTimer -= uiDiff;
+ _totemCount = 4;
+ _totemOldCenterX = me->GetPositionX();
+ _totemOldCenterY = me->GetPositionY();
+ /*
+ -Windfury (16% melee haste)
+ -Grounding (redirects one harmful magic spell to the totem)
- if (m_uiShadowstepTimer <= uiDiff)
- {
- if (me->IsInRange(me->getVictim(), 10.0f, 40.0f))
- DoCastVictim(SPELL_SHADOWSTEP);
- m_uiShadowstepTimer = urand(10*IN_MILLISECONDS, 80*IN_MILLISECONDS);
- } else m_uiShadowstepTimer -= uiDiff;
+ -Healing Stream (unable to find amount of healing in our logs)
- if (m_uiBlindTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
- if (me->IsInRange(target, 0.0f, 15.0f, false))
- DoCast(target, SPELL_BLIND);
- m_uiBlindTimer = urand(7*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- } else m_uiBlindTimer -= uiDiff;
+ -Tremor (prevents fear effects)
+ -Strength of Earth (155 strength and agil for the opposing team)
- if (m_uiCloakTimer <= uiDiff)
- {
- if (HealthBelowPct(50))
- DoCast(me, SPELL_CLOAK);
- m_uiCloakTimer = urand(20*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- } else m_uiCloakTimer -= uiDiff;
+ -Searing (average ~3500 damage on a random target every ~3.5 seconds)
+ */
+ }
- if (m_uiBladeFlurryTimer <= uiDiff)
+ void JustDied(Unit* killer)
{
- DoCastVictim(SPELL_BLADE_FLURRY);
- m_uiBladeFlurryTimer = urand(12*IN_MILLISECONDS, 120*IN_MILLISECONDS);
- } else m_uiBladeFlurryTimer -= uiDiff;
-
- boss_faction_championsAI::UpdateAI(uiDiff);
- }
- };
-
-};
-
-enum eEnhShamanSpells
-{
- SPELL_EARTH_SHOCK_ENH = 65973,
- SPELL_LAVA_LASH = 65974,
- SPELL_STORMSTRIKE = 65970,
-};
-
-class mob_toc_enh_shaman : public CreatureScript
-{
-public:
- mob_toc_enh_shaman() : CreatureScript("mob_toc_enh_shaman") { }
+ boss_faction_championsAI::JustDied(killer);
+ summons.DespawnAll();
+ }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_enh_shamanAI (creature);
- }
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
+ return;
- struct mob_toc_enh_shamanAI : public boss_faction_championsAI
- {
- mob_toc_enh_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE), Summons(me) {}
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- SummonList Summons;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- uint32 m_uiHeroismOrBloodlustTimer;
- uint32 m_uiEarthShockTimer;
- uint32 m_uiStormstrikeTimer;
- uint32 m_uiLavaLashTimer;
- uint32 m_uiDeployTotemTimer;
- uint8 m_uiTotemCount;
- float m_fTotemOldCenterX, m_fTotemOldCenterY;
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DPS_EARTH_SHOCK:
+ if (Unit* target = SelectEnemyCaster(true))
+ DoCast(target, SPELL_EARTH_SHOCK);
+ events.ScheduleEvent(EVENT_DPS_EARTH_SHOCK, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_LAVA_LASH:
+ DoCastVictim(SPELL_LAVA_LASH);
+ events.ScheduleEvent(EVENT_LAVA_LASH, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_STORMSTRIKE:
+ DoCastVictim(SPELL_STORMSTRIKE);
+ events.ScheduleEvent(EVENT_STORMSTRIKE, urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_DPS_BLOODLUST_HEROISM:
+ if (me->getFaction()) //Am i alliance?
+ {
+ if (!me->HasAura(AURA_EXHAUSTION))
+ DoCastAOE(SPELL_HEROISM);
+ }
+ else
+ {
+ if (!me->HasAura(AURA_SATED))
+ DoCastAOE(SPELL_BLOODLUST);
+ }
+ events.ScheduleEvent(EVENT_DPS_BLOODLUST_HEROISM, 5*MINUTE*IN_MILLISECONDS);
+ return;
+ case EVENT_DEPLOY_TOTEM:
+ if (_totemCount < 4 || me->GetDistance2d(_totemOldCenterX, _totemOldCenterY) > 20.0f)
+ DeployTotem();
+ events.ScheduleEvent(EVENT_DEPLOY_TOTEM, 1*IN_MILLISECONDS);
+ return;
+ case EVENT_WINDFURY:
+ DoCastVictim(SPELL_WINDFURY);
+ events.ScheduleEvent(EVENT_WINDFURY, urand(20*IN_MILLISECONDS, 60*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ private:
+ uint8 _totemCount;
+ float _totemOldCenterX, _totemOldCenterY;
+ };
- void Reset()
+ CreatureAI* GetAI(Creature* creature) const
{
- boss_faction_championsAI::Reset();
- m_uiHeroismOrBloodlustTimer = urand(25*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- m_uiEarthShockTimer = urand(5*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- m_uiStormstrikeTimer = urand(5*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- m_uiLavaLashTimer = urand(5*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- m_uiDeployTotemTimer = urand(1*IN_MILLISECONDS, 3*IN_MILLISECONDS);
- m_uiTotemCount = 0;
- m_fTotemOldCenterX = me->GetPositionX();
- m_fTotemOldCenterY = me->GetPositionY();
- SetEquipmentSlots(false, 51803, 48013, EQUIP_NO_CHANGE);
- Summons.DespawnAll();
+ return new mob_toc_enh_shamanAI (creature);
}
+};
- void JustSummoned(Creature* summoned)
- {
- Summons.Summon(summoned);
- }
+class mob_toc_retro_paladin : public CreatureScript
+{
+ public:
+ mob_toc_retro_paladin() : CreatureScript("mob_toc_retro_paladin") { }
- void SummonedCreatureDespawn(Creature* /*pSummoned*/)
+ struct mob_toc_retro_paladinAI : public boss_faction_championsAI
{
- --m_uiTotemCount;
- }
+ mob_toc_retro_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_AVENGING_WRATH, urand(25*IN_MILLISECONDS, 35*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_CRUSADER_STRIKE, urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DIVINE_STORM, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_HAMMER_OF_JUSTICE_RET, urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_JUDGEMENT_OF_COMMAND, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_REPENTANCE, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DPS_HAND_OF_PROTECTION, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_DPS_DIVINE_SHIELD, urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ SetEquipmentSlots(false, 47519, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ }
- void DeployTotem()
- {
- m_uiTotemCount = 4;
- m_fTotemOldCenterX = me->GetPositionX();
- m_fTotemOldCenterY = me->GetPositionY();
- /*
- -Windfury (16% melee haste)
- -Grounding (redirects one harmful magic spell to the totem)
+ void EnterCombat(Unit* who)
+ {
+ boss_faction_championsAI::EnterCombat(who);
+ DoCast(SPELL_SEAL_OF_COMMAND);
+ }
- -Healing Stream (unable to find amount of healing in our logs)
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
+ return;
- -Tremor (prevents fear effects)
- -Strength of Earth (155 strength and agil for the opposing team)
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- -Searing (average ~3500 damage on a random target every ~3.5 seconds)
- */
- }
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_AVENGING_WRATH:
+ DoCast(SPELL_AVENGING_WRATH);
+ events.ScheduleEvent(EVENT_AVENGING_WRATH, 180*IN_MILLISECONDS);
+ return;
+ case EVENT_CRUSADER_STRIKE:
+ DoCastVictim(SPELL_CRUSADER_STRIKE);
+ events.ScheduleEvent(EVENT_CRUSADER_STRIKE, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_DIVINE_STORM:
+ if (EnemiesInRange(10.0f) >= 2)
+ DoCast(SPELL_DIVINE_STORM);
+ events.ScheduleEvent(EVENT_DIVINE_STORM, urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS));
+ return;
+ case EVENT_HAMMER_OF_JUSTICE_RET:
+ DoCastVictim(SPELL_HAMMER_OF_JUSTICE_RET);
+ events.ScheduleEvent(EVENT_HAMMER_OF_JUSTICE_RET, 40*IN_MILLISECONDS);
+ return;
+ case EVENT_JUDGEMENT_OF_COMMAND:
+ DoCastVictim(SPELL_JUDGEMENT_OF_COMMAND);
+ events.ScheduleEvent(EVENT_JUDGEMENT_OF_COMMAND, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_REPENTANCE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ DoCast(target, SPELL_REPENTANCE);
+ events.ScheduleEvent(EVENT_REPENTANCE, 60*IN_MILLISECONDS);
+ return;
+ case EVENT_DPS_HAND_OF_PROTECTION:
+ if (Unit* target = DoSelectLowestHpFriendly(30.0f))
+ {
+ if (!target->HasAura(SPELL_FORBEARANCE))
+ {
+ DoCast(target, SPELL_HAND_OF_PROTECTION);
+ events.RescheduleEvent(EVENT_DPS_HAND_OF_PROTECTION, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DPS_HAND_OF_PROTECTION, 5*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DPS_HAND_OF_PROTECTION, 5*IN_MILLISECONDS);
+ return;
+ case EVENT_DPS_DIVINE_SHIELD:
+ if (HealthBelowPct(30) && !me->HasAura(SPELL_FORBEARANCE))
+ {
+ DoCast(me, SPELL_DIVINE_SHIELD);
+ events.RescheduleEvent(EVENT_DPS_DIVINE_SHIELD, 5*MINUTE*IN_MILLISECONDS);
+ }
+ else
+ events.RescheduleEvent(EVENT_DPS_DIVINE_SHIELD, 5*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ };
- void JustDied(Unit* killer)
+ CreatureAI* GetAI(Creature* creature) const
{
- boss_faction_championsAI::JustDied(killer);
- Summons.DespawnAll();
+ return new mob_toc_retro_paladinAI (creature);
}
+};
- void UpdateAI(const uint32 uiDiff)
+class mob_toc_pet_warlock : public CreatureScript
+{
+ public:
+ mob_toc_pet_warlock() : CreatureScript("mob_toc_pet_warlock") { }
+
+ struct mob_toc_pet_warlockAI : public boss_faction_championsAI
{
- if (!UpdateVictim())
- return;
+ mob_toc_pet_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
- if (m_uiHeroismOrBloodlustTimer <= uiDiff)
+ void Reset()
{
- if (me->getFaction()) //Am i alliance?
- {
- if (!me->HasAura(AURA_EXHAUSTION))
- DoCastAOE(SPELL_HEROISM);
- }
- else
- if (!me->HasAura(AURA_SATED))
- DoCastAOE(SPELL_BLOODLUST);
- m_uiHeroismOrBloodlustTimer = urand(25*IN_MILLISECONDS, 60*IN_MILLISECONDS);
- } else m_uiHeroismOrBloodlustTimer -= uiDiff;
+ boss_faction_championsAI::Reset();
+ events.ScheduleEvent(EVENT_DEVOUR_MAGIC, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_SPELL_LOCK, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ }
- if (m_uiEarthShockTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- DoCastVictim(SPELL_EARTH_SHOCK_ENH);
- m_uiEarthShockTimer = urand(5*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- } else m_uiEarthShockTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiStormstrikeTimer <= uiDiff)
- {
- DoCastVictim(SPELL_STORMSTRIKE);
- m_uiStormstrikeTimer = urand(5*IN_MILLISECONDS, 90*IN_MILLISECONDS);
- } else m_uiStormstrikeTimer -= uiDiff;
+ events.Update(diff);
+ boss_faction_championsAI::UpdateAI(diff);
- if (m_uiLavaLashTimer <= uiDiff)
- {
- DoCastVictim(SPELL_LAVA_LASH);
- m_uiLavaLashTimer = urand(5*IN_MILLISECONDS, 8*IN_MILLISECONDS);
- } else m_uiLavaLashTimer -= uiDiff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (m_uiDeployTotemTimer <= uiDiff)
- {
- if (m_uiTotemCount < 4 || me->GetDistance2d(m_fTotemOldCenterX, m_fTotemOldCenterY) > 20.0f)
- DeployTotem();
- m_uiDeployTotemTimer = urand(1*IN_MILLISECONDS, 3*IN_MILLISECONDS);
- } else m_uiDeployTotemTimer -= uiDiff;
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DEVOUR_MAGIC:
+ DoCastVictim(SPELL_DEVOUR_MAGIC);
+ events.ScheduleEvent(EVENT_DEVOUR_MAGIC, urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_SPELL_LOCK:
+ DoCast(SPELL_SPELL_LOCK);
+ events.ScheduleEvent(EVENT_SPELL_LOCK, urand(24*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_toc_pet_warlockAI (creature);
}
- };
-
};
-enum eRetroPaladinSpells
+class mob_toc_pet_hunter : public CreatureScript
{
- SPELL_AVENGING_WRATH = 66011, //3min cd
- SPELL_CRUSADER_STRIKE = 66003, //6sec cd
- SPELL_DIVINE_SHIELD = 66010, //5min cd
- SPELL_DIVINE_STORM = 66006, //10sec cd
- SPELL_HAMMER_OF_JUSTICE_RET = 66007, //40sec cd
- SPELL_HAND_OF_PROTECTION_RET = 66009, //5min cd
- SPELL_JUDGEMENT_OF_COMMAND = 66005, //8sec cd
- SPELL_REPENTANCE = 66008, //60sec cd
- SPELL_SEAL_OF_COMMAND = 66004, //no cd
-};
+ public:
+ mob_toc_pet_hunter() : CreatureScript("mob_toc_pet_hunter") { }
-class mob_toc_retro_paladin : public CreatureScript
-{
-public:
- mob_toc_retro_paladin() : CreatureScript("mob_toc_retro_paladin") { }
+ struct mob_toc_pet_hunterAI : public boss_faction_championsAI
+ {
+ mob_toc_pet_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_retro_paladinAI (creature);
- }
+ void Reset()
+ {
+ boss_faction_championsAI::Reset();
+ _clawTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS);
+ }
- struct mob_toc_retro_paladinAI : public boss_faction_championsAI
- {
- mob_toc_retro_paladinAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) {}
+ void UpdateAI(const uint32 diff)
+ {
+ if (!UpdateVictim())
+ return;
- uint32 m_uiRepeteanceTimer;
- uint32 m_uiCrusaderStrikeTimer;
- uint32 m_uiAvengingWrathTimer;
- uint32 m_uiDivineShieldTimer;
- uint32 m_uiDivineStormTimer;
- uint32 m_uiJudgementOfCommandTimer;
+ boss_faction_championsAI::UpdateAI(diff);
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiRepeteanceTimer = 60*IN_MILLISECONDS;
- m_uiCrusaderStrikeTimer = urand(6*IN_MILLISECONDS, 18*IN_MILLISECONDS);
- m_uiAvengingWrathTimer = 180*IN_MILLISECONDS;
- m_uiDivineShieldTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- m_uiDivineStormTimer = 10*IN_MILLISECONDS;
- m_uiJudgementOfCommandTimer = urand(8*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- SetEquipmentSlots(false, 47519, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- }
+ if (_clawTimer <= diff)
+ {
+ DoCastVictim(SPELL_CLAW);
+ _clawTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS);
+ }
+ else
+ _clawTimer -= diff;
+ }
+ private:
+ uint32 _clawTimer;
+ };
- void EnterCombat(Unit* who)
+ CreatureAI* GetAI(Creature* creature) const
{
- boss_faction_championsAI::EnterCombat(who);
- DoCast(SPELL_SEAL_OF_COMMAND);
+ return new mob_toc_pet_hunterAI (creature);
}
+};
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
-
- if (m_uiRepeteanceTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_REPENTANCE);
- m_uiRepeteanceTimer = 60*IN_MILLISECONDS;
- } else m_uiRepeteanceTimer -= uiDiff;
-
- if (m_uiCrusaderStrikeTimer <= uiDiff)
- {
- DoCastVictim(SPELL_CRUSADER_STRIKE);
- m_uiCrusaderStrikeTimer = urand(6*IN_MILLISECONDS, 18*IN_MILLISECONDS);
- } else m_uiCrusaderStrikeTimer -= uiDiff;
+class spell_faction_champion_warl_unstable_affliction : public SpellScriptLoader
+{
+ public:
+ spell_faction_champion_warl_unstable_affliction() : SpellScriptLoader("spell_faction_champion_warl_unstable_affliction") { }
- if (m_uiAvengingWrathTimer <= uiDiff)
- {
- DoCastVictim(SPELL_AVENGING_WRATH);
- m_uiAvengingWrathTimer = 180*IN_MILLISECONDS;
- } else m_uiAvengingWrathTimer -= uiDiff;
+ class spell_faction_champion_warl_unstable_affliction_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_faction_champion_warl_unstable_affliction_AuraScript);
- if (m_uiDivineShieldTimer <= uiDiff)
+ bool Validate(SpellInfo const* /*spell*/)
{
- if (HealthBelowPct(20))
- DoCast(me, SPELL_DIVINE_SHIELD);
- m_uiDivineShieldTimer = urand(0*IN_MILLISECONDS, 360*IN_MILLISECONDS);
- } else m_uiDivineShieldTimer -= uiDiff;
+ if (!sSpellMgr->GetSpellInfo(SPELL_UNSTABLE_AFFLICTION_DISPEL))
+ return false;
+ return true;
+ }
- if (m_uiDivineStormTimer <= uiDiff)
+ void HandleDispel(DispelInfo* dispelInfo)
{
- DoCastVictim(SPELL_DIVINE_STORM);
- m_uiDivineStormTimer = 10*IN_MILLISECONDS;
- } else m_uiDivineStormTimer -= uiDiff;
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(dispelInfo->GetDispeller(), SPELL_UNSTABLE_AFFLICTION_DISPEL, true, NULL, GetEffect(EFFECT_0));
+ }
- if (m_uiJudgementOfCommandTimer <= uiDiff)
+ void Register()
{
- DoCastVictim(SPELL_JUDGEMENT_OF_COMMAND);
- m_uiJudgementOfCommandTimer = urand(8*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiJudgementOfCommandTimer -= uiDiff;
+ AfterDispel += AuraDispelFn(spell_faction_champion_warl_unstable_affliction_AuraScript::HandleDispel);
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_faction_champion_warl_unstable_affliction_AuraScript();
}
- };
-
-};
-
-enum eWarlockPetSpells
-{
- SPELL_DEVOUR_MAGIC = 67518,
- SPELL_SPELL_LOCK = 67519,
};
-class mob_toc_pet_warlock : public CreatureScript
+class spell_faction_champion_death_grip : public SpellScriptLoader
{
-public:
- mob_toc_pet_warlock() : CreatureScript("mob_toc_pet_warlock") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_pet_warlockAI (creature);
- }
-
- struct mob_toc_pet_warlockAI : public boss_faction_championsAI
- {
- mob_toc_pet_warlockAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
-
- uint32 m_uiDevourMagicTimer;
- uint32 m_uiSpellLockTimer;
-
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiDevourMagicTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- m_uiSpellLockTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- }
+ public:
+ spell_faction_champion_death_grip() : SpellScriptLoader("spell_faction_champion_death_grip") { }
- void UpdateAI(const uint32 uiDiff)
+ class spell_faction_champion_death_grip_SpellScript : public SpellScript
{
- if (!UpdateVictim())
- return;
+ PrepareSpellScript(spell_faction_champion_death_grip_SpellScript);
- if (m_uiDevourMagicTimer <= uiDiff)
+ bool Validate(SpellInfo const* /*spell*/)
{
- DoCastVictim(SPELL_DEVOUR_MAGIC);
- m_uiDevourMagicTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiDevourMagicTimer -= uiDiff;
+ if (!sSpellMgr->GetSpellInfo(SPELL_DEATH_GRIP_PULL))
+ return false;
+ return true;
+ }
- if (m_uiSpellLockTimer <= uiDiff)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
- DoCastVictim(SPELL_SPELL_LOCK);
- m_uiSpellLockTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiSpellLockTimer -= uiDiff;
+ if (Unit* target = GetHitUnit())
+ {
+ if (Unit* caster = GetCaster())
+ target->CastSpell(caster, SPELL_DEATH_GRIP_PULL);
+ }
+ }
- boss_faction_championsAI::UpdateAI(uiDiff);
- }
- };
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_faction_champion_death_grip_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
-};
+ };
-enum eHunterPetSpells
-{
- SPELL_CLAW = 67793,
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_faction_champion_death_grip_SpellScript();
+ }
};
-class mob_toc_pet_hunter : public CreatureScript
+class spell_toc_bloodlust : public SpellScriptLoader
{
-public:
- mob_toc_pet_hunter() : CreatureScript("mob_toc_pet_hunter") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_toc_pet_hunterAI (creature);
- }
+ public:
+ spell_toc_bloodlust() : SpellScriptLoader("spell_toc_bloodlust") { }
- struct mob_toc_pet_hunterAI : public boss_faction_championsAI
- {
- mob_toc_pet_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) {}
+ class spell_toc_bloodlust_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_toc_bloodlust_SpellScript);
- uint32 m_uiClawTimer;
+ bool Validate(SpellInfo const* /*spellEntry*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(AURA_SATED))
+ return false;
+ return true;
+ }
- void Reset()
- {
- boss_faction_championsAI::Reset();
- m_uiClawTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- }
+ void RemoveInvalidTargets(std::list<WorldObject*>& targets)
+ {
+ targets.remove_if(Trinity::UnitAuraCheck(true, AURA_SATED));
+ }
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
+ void ApplyDebuff()
+ {
+ if (Unit* target = GetHitUnit())
+ target->CastSpell(target, AURA_SATED, true);
+ }
- if (m_uiClawTimer <= uiDiff)
+ void Register()
{
- DoCastVictim(SPELL_CLAW);
- m_uiClawTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- } else m_uiClawTimer -= uiDiff;
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_bloodlust_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
+ AfterHit += SpellHitFn(spell_toc_bloodlust_SpellScript::ApplyDebuff);
+ }
+ };
- boss_faction_championsAI::UpdateAI(uiDiff);
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_toc_bloodlust_SpellScript();
}
- };
};
-class spell_faction_champion_warl_unstable_affliction : public SpellScriptLoader
+class spell_toc_heroism : public SpellScriptLoader
{
public:
- spell_faction_champion_warl_unstable_affliction() : SpellScriptLoader("spell_faction_champion_warl_unstable_affliction") { }
+ spell_toc_heroism() : SpellScriptLoader("spell_toc_heroism") { }
- class spell_faction_champion_warl_unstable_affliction_AuraScript : public AuraScript
+ class spell_toc_heroism_SpellScript : public SpellScript
{
- PrepareAuraScript(spell_faction_champion_warl_unstable_affliction_AuraScript);
+ PrepareSpellScript(spell_toc_heroism_SpellScript);
- bool Validate(SpellInfo const* /*spell*/)
+ bool Validate(SpellInfo const* /*spellEntry*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_UNSTABLE_AFFLICTION_DISPEL))
+ if (!sSpellMgr->GetSpellInfo(AURA_EXHAUSTION))
return false;
return true;
}
- void HandleDispel(DispelInfo* dispelInfo)
+ void RemoveInvalidTargets(std::list<WorldObject*>& targets)
{
- if (Unit* caster = GetCaster())
- caster->CastSpell(dispelInfo->GetDispeller(), SPELL_UNSTABLE_AFFLICTION_DISPEL, true, NULL, GetEffect(EFFECT_0));
+ targets.remove_if(Trinity::UnitAuraCheck(true, AURA_EXHAUSTION));
+ }
+
+ void ApplyDebuff()
+ {
+ if (Unit* target = GetHitUnit())
+ target->CastSpell(target, AURA_EXHAUSTION, true);
}
void Register()
{
- AfterDispel += AuraDispelFn(spell_faction_champion_warl_unstable_affliction_AuraScript::HandleDispel);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_heroism_SpellScript::RemoveInvalidTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_toc_heroism_SpellScript::RemoveInvalidTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
+ AfterHit += SpellHitFn(spell_toc_heroism_SpellScript::ApplyDebuff);
}
};
- AuraScript* GetAuraScript() const
+ SpellScript* GetSpellScript() const
{
- return new spell_faction_champion_warl_unstable_affliction_AuraScript();
+ return new spell_toc_heroism_SpellScript();
}
};
@@ -2086,5 +2392,9 @@ void AddSC_boss_faction_champions()
new mob_toc_retro_paladin();
new mob_toc_pet_warlock();
new mob_toc_pet_hunter();
+
new spell_faction_champion_warl_unstable_affliction();
+ new spell_faction_champion_death_grip();
+ new spell_toc_bloodlust();
+ new spell_toc_heroism();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 87e7801566e..e2068cabb95 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -16,23 +16,10 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: trial_of_the_crusader
-SD%Complete: ??%
-SDComment: based on /dev/rsa
-SDCategory: Crusader Coliseum
-EndScriptData */
-
-// Known bugs:
-// Some visuals aren't appearing right sometimes
-//
-// TODO:
-// Redone summon's scripts in SAI
-// Add immunities to the boss and summons
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "trial_of_the_crusader.h"
+#include "SpellScript.h"
enum Yells
{
@@ -47,15 +34,7 @@ enum Yells
SAY_INFERNAL_ERUPTION = 8,
SAY_KILL_PLAYER = 9,
SAY_DEATH = 10,
- SAY_BERSERK = 11,
-};
-
-enum Equipment
-{
- EQUIP_MAIN = 47266,
- EQUIP_OFFHAND = 46996,
- EQUIP_RANGED = 47267,
- EQUIP_DONE = EQUIP_NO_CHANGE,
+ SAY_BERSERK = 11
};
enum Summons
@@ -64,7 +43,7 @@ enum Summons
NPC_INFERNAL_VOLCANO = 34813,
NPC_FEL_INFERNAL = 34815, // immune to all CC on Heroic (stuns, banish, interrupt, etc)
NPC_NETHER_PORTAL = 34825,
- NPC_MISTRESS_OF_PAIN = 34826,
+ NPC_MISTRESS_OF_PAIN = 34826
};
enum BossSpells
@@ -84,442 +63,530 @@ enum BossSpells
SPELL_BERSERK = 64238, // unused
// Mistress of Pain spells
- SPELL_SHIVAN_SLASH = 67098,
- SPELL_SPINNING_STRIKE = 66283,
- SPELL_MISTRESS_KISS = 67077,
- SPELL_FEL_INFERNO = 67047,
- SPELL_FEL_STREAK = 66494,
+ SPELL_SHIVAN_SLASH = 67098,
+ SPELL_SPINNING_STRIKE = 66283,
+ SPELL_MISTRESS_KISS = 66336,
+ SPELL_FEL_INFERNO = 67047,
+ SPELL_FEL_STREAK = 66494,
+ SPELL_LORD_HITTIN = 66326, // special effect preventing more specific spells be cast on the same player within 10 seconds
+ SPELL_MISTRESS_KISS_DEBUFF = 66334,
+ SPELL_MISTRESS_KISS_DAMAGE_SILENCE = 66359
};
-/*######
-## boss_jaraxxus
-######*/
+enum Events
+{
+ // Lord Jaraxxus
+ EVENT_FEL_FIREBALL = 1,
+ EVENT_FEL_LIGHTNING = 2,
+ EVENT_INCINERATE_FLESH = 3,
+ EVENT_NETHER_POWER = 4,
+ EVENT_LEGION_FLAME = 5,
+ EVENT_SUMMONO_NETHER_PORTAL = 6,
+ EVENT_SUMMON_INFERNAL_ERUPTION = 7,
+
+ // Mistress of Pain
+ EVENT_SHIVAN_SLASH = 8,
+ EVENT_SPINNING_STRIKE = 9,
+ EVENT_MISTRESS_KISS = 10
+};
class boss_jaraxxus : public CreatureScript
{
-public:
- boss_jaraxxus() : CreatureScript("boss_jaraxxus") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_jaraxxusAI(creature);
- }
-
- struct boss_jaraxxusAI : public ScriptedAI
- {
- boss_jaraxxusAI(Creature* creature) : ScriptedAI(creature), Summons(me)
- {
- instance = creature->GetInstanceScript();
- Reset();
- }
-
- InstanceScript* instance;
+ public:
+ boss_jaraxxus() : CreatureScript("boss_jaraxxus") { }
- SummonList Summons;
-
- uint32 m_uiFelFireballTimer;
- uint32 m_uiFelLightningTimer;
- uint32 m_uiIncinerateFleshTimer;
- uint32 m_uiNetherPowerTimer;
- uint32 m_uiLegionFlameTimer;
- uint32 m_uiSummonNetherPortalTimer;
- uint32 m_uiSummonInfernalEruptionTimer;
-
- void Reset()
+ struct boss_jaraxxusAI : public BossAI
{
- if (instance)
- instance->SetData(TYPE_JARAXXUS, NOT_STARTED);
- SetEquipmentSlots(false, EQUIP_MAIN, EQUIP_OFFHAND, EQUIP_RANGED);
- m_uiFelFireballTimer = 5*IN_MILLISECONDS;
- m_uiFelLightningTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- m_uiIncinerateFleshTimer = urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- m_uiNetherPowerTimer = 40*IN_MILLISECONDS;
- m_uiLegionFlameTimer = 30*IN_MILLISECONDS;
- m_uiSummonNetherPortalTimer = 1*MINUTE*IN_MILLISECONDS;
- m_uiSummonInfernalEruptionTimer = 2*MINUTE*IN_MILLISECONDS;
- Summons.DespawnAll();
- }
+ boss_jaraxxusAI(Creature* creature) : BossAI(creature, BOSS_JARAXXUS)
+ {
+ }
- void JustReachedHome()
- {
- if (instance)
- instance->SetData(TYPE_JARAXXUS, FAIL);
- DoCast(me, SPELL_JARAXXUS_CHAINS);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetReactState(REACT_PASSIVE);
- }
+ void Reset()
+ {
+ _Reset();
+ events.ScheduleEvent(EVENT_FEL_FIREBALL, 5*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_FEL_LIGHTNING, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_INCINERATE_FLESH, urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_NETHER_POWER, 40*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_LEGION_FLAME, 30*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_SUMMONO_NETHER_PORTAL, 20*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_SUMMON_INFERNAL_ERUPTION, 80*IN_MILLISECONDS);
+ }
- void KilledUnit(Unit* who)
- {
- if (who->GetTypeId() == TYPEID_PLAYER)
+ void JustReachedHome()
{
+ _JustReachedHome();
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetBossState(BOSS_JARAXXUS, FAIL);
+ DoCast(me, SPELL_JARAXXUS_CHAINS);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
- }
- void JustDied(Unit* /*killer*/)
- {
- Summons.DespawnAll();
- Talk(SAY_DEATH);
- if (instance)
- instance->SetData(TYPE_JARAXXUS, DONE);
- }
-
- void JustSummoned(Creature* summoned)
- {
- Summons.Summon(summoned);
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- me->SetInCombatWithZone();
- if (instance)
- instance->SetData(TYPE_JARAXXUS, IN_PROGRESS);
- Talk(SAY_AGGRO);
- }
-
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
-
- if (m_uiSummonInfernalEruptionTimer <= uiDiff)
+ void KilledUnit(Unit* who)
{
- Talk(EMOTE_INFERNAL_ERUPTION);
- Talk(SAY_INFERNAL_ERUPTION);
- DoCast(SPELL_INFERNAL_ERUPTION);
- m_uiSummonInfernalEruptionTimer = 2*MINUTE*IN_MILLISECONDS;
- } else m_uiSummonInfernalEruptionTimer -= uiDiff;
+ if (who->GetTypeId() == TYPEID_PLAYER)
+ {
+ Talk(SAY_KILL_PLAYER);
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
+ }
+ }
- if (m_uiSummonNetherPortalTimer <= uiDiff)
+ void JustDied(Unit* /*killer*/)
{
- Talk(EMOTE_NETHER_PORTAL);
- Talk(SAY_MISTRESS_OF_PAIN);
- DoCast(SPELL_NETHER_PORTAL);
- m_uiSummonNetherPortalTimer = 2*MINUTE*IN_MILLISECONDS;
- } else m_uiSummonNetherPortalTimer -= uiDiff;
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
- if (m_uiFelFireballTimer <= uiDiff)
+ void JustSummoned(Creature* summoned)
{
- DoCastVictim(SPELL_FEL_FIREBALL);
- m_uiFelFireballTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiFelFireballTimer -= uiDiff;
+ summons.Summon(summoned);
+ }
- if (m_uiFelLightningTimer <= uiDiff)
+ void EnterCombat(Unit* /*who*/)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
- DoCast(target, SPELL_FEL_LIGHTING);
- m_uiFelLightningTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
- } else m_uiFelLightningTimer -= uiDiff;
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+ }
- if (m_uiIncinerateFleshTimer <= uiDiff)
+ void UpdateAI(const uint32 diff)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0, true))
- {
- Talk(EMOTE_INCINERATE, target->GetGUID());
- Talk(SAY_INCINERATE);
- DoCast(target, SPELL_INCINERATE_FLESH);
- }
- m_uiIncinerateFleshTimer = urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiIncinerateFleshTimer -= uiDiff;
+ if (!UpdateVictim())
+ return;
- if (m_uiNetherPowerTimer <= uiDiff)
- {
- me->CastCustomSpell(SPELL_NETHER_POWER, SPELLVALUE_AURA_STACK, RAID_MODE<uint32>(5, 10, 5,10), me, true);
- m_uiNetherPowerTimer = 40*IN_MILLISECONDS;
- } else m_uiNetherPowerTimer -= uiDiff;
+ events.Update(diff);
- if (m_uiLegionFlameTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0, true))
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- Talk(EMOTE_LEGION_FLAME, target->GetGUID());
- DoCast(target, SPELL_LEGION_FLAME);
+ switch (eventId)
+ {
+ case EVENT_FEL_FIREBALL:
+ DoCastVictim(SPELL_FEL_FIREBALL);
+ events.ScheduleEvent(EVENT_FEL_FIREBALL, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_FEL_LIGHTNING:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true, -SPELL_LORD_HITTIN))
+ DoCast(target, SPELL_FEL_LIGHTING);
+ events.ScheduleEvent(EVENT_FEL_LIGHTNING, urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS));
+ return;
+ case EVENT_INCINERATE_FLESH:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_LORD_HITTIN))
+ {
+ Talk(EMOTE_INCINERATE, target->GetGUID());
+ Talk(SAY_INCINERATE);
+ DoCast(target, SPELL_INCINERATE_FLESH);
+ }
+ events.ScheduleEvent(EVENT_INCINERATE_FLESH, urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ return;
+ case EVENT_NETHER_POWER:
+ me->CastCustomSpell(SPELL_NETHER_POWER, SPELLVALUE_AURA_STACK, RAID_MODE<uint32>(5, 10, 5,10), me, true);
+ events.ScheduleEvent(EVENT_NETHER_POWER, 40*IN_MILLISECONDS);
+ return;
+ case EVENT_LEGION_FLAME:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_LORD_HITTIN))
+ {
+ Talk(EMOTE_LEGION_FLAME, target->GetGUID());
+ DoCast(target, SPELL_LEGION_FLAME);
+ }
+ events.ScheduleEvent(EVENT_LEGION_FLAME, 30*IN_MILLISECONDS);
+ return;
+ case EVENT_SUMMONO_NETHER_PORTAL:
+ Talk(EMOTE_NETHER_PORTAL);
+ Talk(SAY_MISTRESS_OF_PAIN);
+ DoCast(SPELL_NETHER_PORTAL);
+ events.ScheduleEvent(EVENT_SUMMONO_NETHER_PORTAL, 2*MINUTE*IN_MILLISECONDS);
+ return;
+ case EVENT_SUMMON_INFERNAL_ERUPTION:
+ Talk(EMOTE_INFERNAL_ERUPTION);
+ Talk(SAY_INFERNAL_ERUPTION);
+ DoCast(SPELL_INFERNAL_ERUPTION);
+ events.ScheduleEvent(EVENT_SUMMON_INFERNAL_ERUPTION, 2*MINUTE*IN_MILLISECONDS);
+ return;
+ }
}
- m_uiLegionFlameTimer = 30*IN_MILLISECONDS;
- } else m_uiLegionFlameTimer -= uiDiff;
- DoMeleeAttackIfReady();
- }
- };
+ DoMeleeAttackIfReady();
+ }
+ };
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_jaraxxusAI(creature);
+ }
};
class mob_legion_flame : public CreatureScript
{
-public:
- mob_legion_flame() : CreatureScript("mob_legion_flame") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_legion_flameAI(creature);
- }
+ public:
+ mob_legion_flame() : CreatureScript("mob_legion_flame") { }
- struct mob_legion_flameAI : public Scripted_NoMovementAI
- {
- mob_legion_flameAI(Creature* creature) : Scripted_NoMovementAI(creature)
+ struct mob_legion_flameAI : public Scripted_NoMovementAI
{
- Reset();
- }
+ mob_legion_flameAI(Creature* creature) : Scripted_NoMovementAI(creature)
+ {
+ _instance = creature->GetInstanceScript();
+ }
- void Reset()
- {
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->SetInCombatWithZone();
- DoCast(SPELL_LEGION_FLAME_EFFECT);
- }
+ void Reset()
+ {
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->SetInCombatWithZone();
+ DoCast(SPELL_LEGION_FLAME_EFFECT);
+ }
+
+ void UpdateAI(const uint32 /*diff*/)
+ {
+ UpdateVictim();
+ if (_instance && _instance->GetBossState(BOSS_JARAXXUS) != IN_PROGRESS)
+ me->DespawnOrUnsummon();
+ }
+ private:
+ InstanceScript* _instance;
+ };
- void UpdateAI(const uint32 /*uiDiff*/)
+ CreatureAI* GetAI(Creature* creature) const
{
- UpdateVictim();
+ return new mob_legion_flameAI(creature);
}
- };
-
};
class mob_infernal_volcano : public CreatureScript
{
-public:
- mob_infernal_volcano() : CreatureScript("mob_infernal_volcano") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_infernal_volcanoAI(creature);
- }
+ public:
+ mob_infernal_volcano() : CreatureScript("mob_infernal_volcano") { }
- struct mob_infernal_volcanoAI : public Scripted_NoMovementAI
- {
- mob_infernal_volcanoAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me)
+ struct mob_infernal_volcanoAI : public Scripted_NoMovementAI
{
- instance = creature->GetInstanceScript();
- Reset();
- }
+ mob_infernal_volcanoAI(Creature* creature) : Scripted_NoMovementAI(creature), _summons(me)
+ {
+ }
- InstanceScript* instance;
+ void Reset()
+ {
+ me->SetReactState(REACT_PASSIVE);
- SummonList Summons;
+ if (!IsHeroic())
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
+ else
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
- void Reset()
- {
- me->SetReactState(REACT_PASSIVE);
+ _summons.DespawnAll();
+ }
- if (!IsHeroic())
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
- else
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
+ void IsSummonedBy(Unit* /*summoner*/)
+ {
+ DoCast(SPELL_INFERNAL_ERUPTION_EFFECT);
+ }
- Summons.DespawnAll();
- }
+ void JustSummoned(Creature* summoned)
+ {
+ _summons.Summon(summoned);
+ // makes immediate corpse despawn of summoned Felflame Infernals
+ summoned->SetCorpseDelay(0);
+ }
- void IsSummonedBy(Unit* /*summoner*/)
- {
- DoCast(SPELL_INFERNAL_ERUPTION_EFFECT);
- }
+ void JustDied(Unit* /*killer*/)
+ {
+ // used to despawn corpse immediately
+ me->DespawnOrUnsummon();
+ }
- void JustSummoned(Creature* summoned)
- {
- Summons.Summon(summoned);
- // makes immediate corpse despawn of summoned Felflame Infernals
- summoned->SetCorpseDelay(0);
- }
+ void UpdateAI(uint32 const /*diff*/) {}
+
+ private:
+ SummonList _summons;
+ };
- void JustDied(Unit* /*killer*/)
+ CreatureAI* GetAI(Creature* creature) const
{
- // used to despawn corpse immediately
- me->DespawnOrUnsummon();
+ return new mob_infernal_volcanoAI(creature);
}
-
- void UpdateAI(uint32 const /*diff*/) {}
- };
-
};
class mob_fel_infernal : public CreatureScript
{
-public:
- mob_fel_infernal() : CreatureScript("mob_fel_infernal") { }
+ public:
+ mob_fel_infernal() : CreatureScript("mob_fel_infernal") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_fel_infernalAI(creature);
- }
-
- struct mob_fel_infernalAI : public ScriptedAI
- {
- mob_fel_infernalAI(Creature* creature) : ScriptedAI(creature)
+ struct mob_fel_infernalAI : public ScriptedAI
{
- instance = creature->GetInstanceScript();
- Reset();
- }
-
- InstanceScript* instance;
- uint32 m_uiFelStreakTimer;
+ mob_fel_infernalAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = creature->GetInstanceScript();
+ }
- void Reset()
- {
- m_uiFelStreakTimer = 30*IN_MILLISECONDS;
- me->SetInCombatWithZone();
- }
+ void Reset()
+ {
+ _felStreakTimer = 30*IN_MILLISECONDS;
+ me->SetInCombatWithZone();
+ }
- /*void SpellHitTarget(Unit* target, const SpellInfo* pSpell)
- {
- if (pSpell->Id == SPELL_FEL_STREAK)
- DoCastAOE(SPELL_FEL_INFERNO); //66517
- }*/
+ void UpdateAI(const uint32 diff)
+ {
+ if (_instance && _instance->GetBossState(BOSS_JARAXXUS) != IN_PROGRESS)
+ {
+ me->DespawnOrUnsummon();
+ return;
+ }
- void UpdateAI(const uint32 uiDiff)
- {
- if (!UpdateVictim())
- return;
+ if (!UpdateVictim())
+ return;
- if (instance && instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
- me->DespawnOrUnsummon();
+ if (_felStreakTimer <= diff)
+ {
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ DoCast(target, SPELL_FEL_STREAK);
+ _felStreakTimer = 30*IN_MILLISECONDS;
+ }
+ else
+ _felStreakTimer -= diff;
- if (m_uiFelStreakTimer <= uiDiff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_FEL_STREAK);
- m_uiFelStreakTimer = 30*IN_MILLISECONDS;
- } else m_uiFelStreakTimer -= uiDiff;
+ DoMeleeAttackIfReady();
+ }
+ private:
+ uint32 _felStreakTimer;
+ InstanceScript* _instance;
+ };
- DoMeleeAttackIfReady();
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_fel_infernalAI(creature);
}
- };
-
};
class mob_nether_portal : public CreatureScript
{
-public:
- mob_nether_portal() : CreatureScript("mob_nether_portal") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_nether_portalAI(creature);
- }
+ public:
+ mob_nether_portal() : CreatureScript("mob_nether_portal") { }
- struct mob_nether_portalAI : public ScriptedAI
- {
- mob_nether_portalAI(Creature* creature) : ScriptedAI(creature), Summons(me)
+ struct mob_nether_portalAI : public ScriptedAI
{
- instance = creature->GetInstanceScript();
- Reset();
- }
+ mob_nether_portalAI(Creature* creature) : ScriptedAI(creature), _summons(me)
+ {
+ }
- InstanceScript* instance;
+ void Reset()
+ {
+ me->SetReactState(REACT_PASSIVE);
- SummonList Summons;
+ if (!IsHeroic())
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
+ else
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
- void Reset()
- {
- me->SetReactState(REACT_PASSIVE);
+ _summons.DespawnAll();
+ }
- if (!IsHeroic())
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
- else
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
+ void IsSummonedBy(Unit* /*summoner*/)
+ {
+ DoCast(SPELL_NETHER_PORTAL_EFFECT);
+ }
- Summons.DespawnAll();
- }
+ void JustSummoned(Creature* summoned)
+ {
+ _summons.Summon(summoned);
+ // makes immediate corpse despawn of summoned Mistress of Pain
+ summoned->SetCorpseDelay(0);
+ }
- void IsSummonedBy(Unit* /*summoner*/)
- {
- DoCast(SPELL_NETHER_PORTAL_EFFECT);
- }
+ void JustDied(Unit* /*killer*/)
+ {
+ // used to despawn corpse immediately
+ me->DespawnOrUnsummon();
+ }
- void JustSummoned(Creature* summoned)
- {
- Summons.Summon(summoned);
- // makes immediate corpse despawn of summoned Mistress of Pain
- summoned->SetCorpseDelay(0);
- }
+ void UpdateAI(uint32 const /*diff*/) {}
+
+ private:
+ SummonList _summons;
+ };
- void JustDied(Unit* /*killer*/)
+ CreatureAI* GetAI(Creature* creature) const
{
- // used to despawn corpse immediately
- me->DespawnOrUnsummon();
+ return new mob_nether_portalAI(creature);
}
-
- void UpdateAI(uint32 const /*diff*/) {}
- };
-
};
class mob_mistress_of_pain : public CreatureScript
{
-public:
- mob_mistress_of_pain() : CreatureScript("mob_mistress_of_pain") { }
+ public:
+ mob_mistress_of_pain() : CreatureScript("mob_mistress_of_pain") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_mistress_of_painAI(creature);
- }
+ struct mob_mistress_of_painAI : public ScriptedAI
+ {
+ mob_mistress_of_painAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = creature->GetInstanceScript();
+ if (_instance)
+ _instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE);
+ }
+
+ void Reset()
+ {
+ _events.ScheduleEvent(EVENT_SHIVAN_SLASH, 30*IN_MILLISECONDS);
+ _events.ScheduleEvent(EVENT_SPINNING_STRIKE, 30*IN_MILLISECONDS);
+ if (IsHeroic())
+ _events.ScheduleEvent(EVENT_MISTRESS_KISS, 15*IN_MILLISECONDS);
+ me->SetInCombatWithZone();
+ }
- struct mob_mistress_of_painAI : public ScriptedAI
- {
- mob_mistress_of_painAI(Creature* creature) : ScriptedAI(creature)
+ void JustDied(Unit* /*killer*/)
+ {
+ if (_instance)
+ _instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE);
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (_instance && _instance->GetBossState(BOSS_JARAXXUS) != IN_PROGRESS)
+ {
+ me->DespawnOrUnsummon();
+ return;
+ }
+
+ if (!UpdateVictim())
+ return;
+
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SHIVAN_SLASH:
+ DoCastVictim(SPELL_SHIVAN_SLASH);
+ _events.ScheduleEvent(EVENT_SHIVAN_SLASH, 30*IN_MILLISECONDS);
+ return;
+ case EVENT_SPINNING_STRIKE:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ DoCast(target, SPELL_SPINNING_STRIKE);
+ _events.ScheduleEvent(EVENT_SPINNING_STRIKE, 30*IN_MILLISECONDS);
+ return;
+ case EVENT_MISTRESS_KISS:
+ DoCast(me, SPELL_MISTRESS_KISS);
+ _events.ScheduleEvent(EVENT_MISTRESS_KISS, 30*IN_MILLISECONDS);
+ return;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ private:
+ InstanceScript* _instance;
+ EventMap _events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
{
- instance = creature->GetInstanceScript();
- if (instance)
- instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE);
- Reset();
+ return new mob_mistress_of_painAI(creature);
}
+};
- InstanceScript* instance;
- uint32 m_uiShivanSlashTimer;
- uint32 m_uiSpinningStrikeTimer;
- uint32 m_uiMistressKissTimer;
+class spell_mistress_kiss : public SpellScriptLoader
+{
+ public:
+ spell_mistress_kiss() : SpellScriptLoader("spell_mistress_kiss") { }
- void Reset()
+ class spell_mistress_kiss_AuraScript : public AuraScript
{
- m_uiShivanSlashTimer = 30*IN_MILLISECONDS;
- m_uiSpinningStrikeTimer = 30*IN_MILLISECONDS;
- m_uiMistressKissTimer = 15*IN_MILLISECONDS;
- me->SetInCombatWithZone();
- }
+ PrepareAuraScript(spell_mistress_kiss_AuraScript);
- void JustDied(Unit* /*killer*/)
+ bool Load()
+ {
+ if (GetCaster())
+ if (sSpellMgr->GetSpellIdForDifficulty(SPELL_MISTRESS_KISS_DAMAGE_SILENCE, GetCaster()))
+ return true;
+ return false;
+ }
+
+ void HandleDummyTick(AuraEffect const* /*aurEff*/)
+ {
+ Unit* caster = GetCaster();
+ Unit* target = GetTarget();
+ if (caster && target)
+ {
+ if (target->HasUnitState(UNIT_STATE_CASTING))
+ {
+ caster->CastSpell(target, SPELL_MISTRESS_KISS_DAMAGE_SILENCE, true);
+ target->RemoveAurasDueToSpell(GetSpellInfo()->Id);
+ }
+ }
+ }
+
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_mistress_kiss_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
{
- if (instance)
- instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE);
+ return new spell_mistress_kiss_AuraScript();
}
+};
- void UpdateAI(const uint32 uiDiff)
+class spell_mistress_kiss_area : public SpellScriptLoader
+{
+ public:
+ spell_mistress_kiss_area() : SpellScriptLoader("spell_mistress_kiss_area") {}
+
+ class spell_mistress_kiss_area_SpellScript : public SpellScript
{
- if (instance && instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
+ PrepareSpellScript(spell_mistress_kiss_area_SpellScript)
+
+ bool Load()
{
- me->DespawnOrUnsummon();
- return;
+ if (GetCaster())
+ if (sSpellMgr->GetSpellIdForDifficulty(SPELL_MISTRESS_KISS_DEBUFF, GetCaster()))
+ return true;
+ return false;
}
- if (!UpdateVictim())
- return;
-
- if (m_uiShivanSlashTimer <= uiDiff)
+ void HandleScript(SpellEffIndex /*effIndex*/)
{
- DoCastVictim(SPELL_SHIVAN_SLASH);
- m_uiShivanSlashTimer = 30*IN_MILLISECONDS;
- } else m_uiShivanSlashTimer -= uiDiff;
+ Unit* caster = GetCaster();
+ Unit* target = GetHitUnit();
+ if (caster && target)
+ caster->CastSpell(target, SPELL_MISTRESS_KISS_DEBUFF, true);
+ }
- if (m_uiSpinningStrikeTimer <= uiDiff)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
- DoCast(target, SPELL_SPINNING_STRIKE);
- m_uiSpinningStrikeTimer = 30*IN_MILLISECONDS;
- } else m_uiSpinningStrikeTimer -= uiDiff;
+ // get a list of players with mana
+ std::list<WorldObject*> _targets;
+ for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)
+ if ((*itr)->ToUnit()->getPowerType() == POWER_MANA)
+ _targets.push_back(*itr);
+
+ // pick a random target and kiss him
+ if (WorldObject* _target = Trinity::Containers::SelectRandomContainerElement(_targets))
+ {
+ // correctly fill "targets" for the visual effect
+ targets.clear();
+ targets.push_back(_target);
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(_target->ToUnit(), SPELL_MISTRESS_KISS_DEBUFF, true);
+ }
+ }
- if (IsHeroic() && m_uiMistressKissTimer <= uiDiff)
+ void Register()
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
- DoCast(target, SPELL_MISTRESS_KISS);
- m_uiMistressKissTimer = 30*IN_MILLISECONDS;
- } else m_uiMistressKissTimer -= uiDiff;
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_mistress_kiss_area_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
+ }
+ };
- DoMeleeAttackIfReady();
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_mistress_kiss_area_SpellScript();
}
- };
-
};
void AddSC_boss_jaraxxus()
@@ -530,4 +597,7 @@ void AddSC_boss_jaraxxus()
new mob_fel_infernal();
new mob_nether_portal();
new mob_mistress_of_pain();
+
+ new spell_mistress_kiss();
+ new spell_mistress_kiss_area();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 506467be8a5..2d09feef089 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -15,23 +15,16 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: northrend_beasts
-SD%Complete: 90%
-SDComment: based on /dev/rsa
-SDCategory:
-EndScriptData */
// Known bugs:
-// Gormok - Not implemented as a vehicle
-// - Snobold Firebomb
-// - Snobolled (creature at back)
-// Snakes - miss the 1-hitkill from emerging
-// - visual changes between mobile and stationary models seems not to work sometimes
+// Gormok - Snobolled (creature at back)
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "trial_of_the_crusader.h"
+#include "Vehicle.h"
+#include "Player.h"
+#include "SpellScript.h"
enum Yells
{
@@ -44,7 +37,7 @@ enum Yells
// Icehowl
EMOTE_TRAMPLE_START = 0,
EMOTE_TRAMPLE_CRASH = 1,
- EMOTE_TRAMPLE_FAIL = 2,
+ EMOTE_TRAMPLE_FAIL = 2
};
enum Equipment
@@ -52,7 +45,7 @@ enum Equipment
EQUIP_MAIN = 50760,
EQUIP_OFFHAND = 48040,
EQUIP_RANGED = 47267,
- EQUIP_DONE = EQUIP_NO_CHANGE,
+ EQUIP_DONE = EQUIP_NO_CHANGE
};
enum Model
@@ -60,13 +53,15 @@ enum Model
MODEL_ACIDMAW_STATIONARY = 29815,
MODEL_ACIDMAW_MOBILE = 29816,
MODEL_DREADSCALE_STATIONARY = 26935,
- MODEL_DREADSCALE_MOBILE = 24564,
+ MODEL_DREADSCALE_MOBILE = 24564
};
-enum Summons
+enum BeastSummons
{
NPC_SNOBOLD_VASSAL = 34800,
+ NPC_FIRE_BOMB = 34854,
NPC_SLIME_POOL = 35176,
+ MAX_SNOBOLDS = 4
};
enum BossSpells
@@ -107,332 +102,446 @@ enum BossSpells
SPELL_ARCTIC_BREATH = 66689,
SPELL_TRAMPLE = 66734,
SPELL_FROTHING_RAGE = 66759,
- SPELL_STAGGERED_DAZE = 66758,
+ SPELL_STAGGERED_DAZE = 66758
};
-class boss_gormok : public CreatureScript
+enum MyActions
{
-public:
- boss_gormok() : CreatureScript("boss_gormok") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_gormokAI(creature);
- }
+ ACTION_ENABLE_FIRE_BOMB = 1,
+ ACTION_DISABLE_FIRE_BOMB = 2
+};
- struct boss_gormokAI : public ScriptedAI
- {
- boss_gormokAI(Creature* creature) : ScriptedAI(creature), Summons(me)
- {
- instance = creature->GetInstanceScript();
- }
+enum Events
+{
+ // Gormok
+ EVENT_IMPALE = 1,
+ EVENT_STAGGERING_STOMP = 2,
+ EVENT_THROW = 3,
- InstanceScript* instance;
+ // Snobold
+ EVENT_FIRE_BOMB = 4,
+ EVENT_BATTER = 5,
+ EVENT_HEAD_CRACK = 6,
- uint32 m_uiImpaleTimer;
- uint32 m_uiStaggeringStompTimer;
- SummonList Summons;
- uint32 m_uiSummonTimer;
- uint32 m_uiSummonCount;
+ // Acidmaw & Dreadscale
+ EVENT_BITE = 7,
+ EVENT_SPEW = 8,
+ EVENT_SLIME_POOL = 9,
+ EVENT_SPIT = 10,
+ EVENT_SPRAY = 11,
+ EVENT_SWEEP = 12,
+ EVENT_SUBMERGE = 13,
+ EVENT_EMERGE = 14,
+ EVENT_SUMMON_ACIDMAW = 15,
- void Reset()
- {
- m_uiImpaleTimer = urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- m_uiStaggeringStompTimer = 15*IN_MILLISECONDS;
- m_uiSummonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);;
+ // Icehowl
+ EVENT_FEROCIOUS_BUTT = 16,
+ EVENT_MASSIVE_CRASH = 17,
+ EVENT_WHIRL = 18,
+ EVENT_ARCTIC_BREATH = 19,
+ EVENT_TRAMPLE = 20
+};
- if (GetDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL ||
- GetDifficulty() == RAID_DIFFICULTY_25MAN_HEROIC)
- m_uiSummonCount = 5;
- else
- m_uiSummonCount = 4;
+enum Phases
+{
+ PHASE_MOBILE = 1,
+ PHASE_STATIONARY = 2,
+ PHASE_SUBMERGED = 3,
- Summons.DespawnAll();
- }
+ PHASE_MASK_MOBILE = 1 << PHASE_MOBILE,
+ PHASE_MASK_STATIONARY = 1 << PHASE_STATIONARY
+};
- void EnterEvadeMode()
- {
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- ScriptedAI::EnterEvadeMode();
- }
+class boss_gormok : public CreatureScript
+{
+ public:
+ boss_gormok() : CreatureScript("boss_gormok") { }
- void MovementInform(uint32 type, uint32 pointId)
+ struct boss_gormokAI : public BossAI
{
- if (type != POINT_MOTION_TYPE)
- return;
-
- switch (pointId)
+ boss_gormokAI(Creature* creature) : BossAI(creature, BOSS_BEASTS)
{
- case 0:
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
- break;
}
- }
- void JustDied(Unit* /*killer*/)
- {
- if (instance)
- instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE);
- }
+ void Reset()
+ {
+ events.ScheduleEvent(EVENT_IMPALE, urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_STAGGERING_STOMP, 15*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_THROW, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
- void JustReachedHome()
- {
- if (instance)
+ summons.DespawnAll();
+ }
+
+ void EnterEvadeMode()
{
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
+ ScriptedAI::EnterEvadeMode();
}
- me->DespawnOrUnsummon();
- }
- void EnterCombat(Unit* /*who*/)
- {
- me->SetInCombatWithZone();
- instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
- }
-
- void JustSummoned(Creature* summon)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
+ void MovementInform(uint32 type, uint32 pointId)
{
- if (summon->GetEntry() == NPC_SNOBOLD_VASSAL)
+ if (type != POINT_MOTION_TYPE)
+ return;
+
+ switch (pointId)
{
- summon->GetMotionMaster()->MoveJump(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 10.0f, 20.0f);
- DoCast(me, SPELL_RISING_ANGER);
- --m_uiSummonCount;
+ case 0:
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->SetReactState(REACT_AGGRESSIVE);
+ me->SetInCombatWithZone();
+ break;
+ default:
+ break;
}
- summon->AI()->AttackStart(target);
}
- Summons.Summon(summon);
- }
- void SummonedCreatureDespawn(Creature* summon)
- {
- if (summon->GetEntry() == NPC_SNOBOLD_VASSAL)
- if (summon->isAlive())
- ++m_uiSummonCount;
- Summons.Despawn(summon);
- }
+ void JustDied(Unit* /*killer*/)
+ {
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE);
+ }
- void UpdateAI(uint32 const diff)
- {
- if (!UpdateVictim())
- return;
+ void JustReachedHome()
+ {
+ if (instance)
+ {
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
+ }
+ me->DespawnOrUnsummon();
+ }
- if (m_uiImpaleTimer <= diff)
+ void EnterCombat(Unit* /*who*/)
{
- DoCastVictim(SPELL_IMPALE);
- m_uiImpaleTimer = urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS);
- } else m_uiImpaleTimer -= diff;
+ _EnterCombat();
+ me->SetInCombatWithZone();
+ instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
- if (m_uiStaggeringStompTimer <= diff)
+ for (uint8 i = 0; i < MAX_SNOBOLDS; i++)
+ {
+ if (Creature* pSnobold = DoSpawnCreature(NPC_SNOBOLD_VASSAL, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0))
+ {
+ pSnobold->EnterVehicle(me, i);
+ pSnobold->SetInCombatWithZone();
+ pSnobold->AI()->DoAction(ACTION_ENABLE_FIRE_BOMB);
+ }
+ }
+ }
+
+ void DamageTaken(Unit* /*who*/, uint32& damage)
{
- DoCastVictim(SPELL_STAGGERING_STOMP);
- m_uiStaggeringStompTimer = urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS);
- } else m_uiStaggeringStompTimer -= diff;
+ // despawn the remaining passengers on death
+ if (damage >= me->GetHealth())
+ for (uint8 i = 0; i < MAX_SNOBOLDS; ++i)
+ if (Unit* pSnobold = me->GetVehicleKit()->GetPassenger(i))
+ pSnobold->ToCreature()->DespawnOrUnsummon();
+ }
- if (m_uiSummonTimer <= diff)
+ void UpdateAI(uint32 const diff)
{
- if (m_uiSummonCount > 0)
+ if (!UpdateVictim())
+ return;
+
+ events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
{
- me->SummonCreature(NPC_SNOBOLD_VASSAL, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_DESPAWN);
- Talk(EMOTE_SNOBOLLED);
+ switch (eventId)
+ {
+ case EVENT_IMPALE:
+ DoCastVictim(SPELL_IMPALE);
+ events.ScheduleEvent(EVENT_IMPALE, urand(8*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ return;
+ case EVENT_STAGGERING_STOMP:
+ DoCastVictim(SPELL_STAGGERING_STOMP);
+ events.ScheduleEvent(EVENT_STAGGERING_STOMP, 15*IN_MILLISECONDS);
+ return;
+ case EVENT_THROW:
+ for (uint8 i = 0; i < MAX_SNOBOLDS; ++i)
+ {
+ if (Unit* pSnobold = me->GetVehicleKit()->GetPassenger(i))
+ {
+ pSnobold->ExitVehicle();
+ pSnobold->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ pSnobold->ToCreature()->SetReactState(REACT_AGGRESSIVE);
+ pSnobold->ToCreature()->AI()->DoAction(ACTION_DISABLE_FIRE_BOMB);
+ pSnobold->CastSpell(me, SPELL_RISING_ANGER, true);
+ Talk(EMOTE_SNOBOLLED);
+ break;
+ }
+ }
+ events.ScheduleEvent(EVENT_THROW, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ default:
+ return;
+ }
}
- m_uiSummonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiSummonTimer -= diff;
- DoMeleeAttackIfReady();
- }
- };
+ DoMeleeAttackIfReady();
+ }
+ };
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_gormokAI(creature);
+ }
};
class mob_snobold_vassal : public CreatureScript
{
-public:
- mob_snobold_vassal() : CreatureScript("mob_snobold_vassal") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_snobold_vassalAI(creature);
- }
+ public:
+ mob_snobold_vassal() : CreatureScript("mob_snobold_vassal") { }
- struct mob_snobold_vassalAI : public ScriptedAI
- {
- mob_snobold_vassalAI(Creature* creature) : ScriptedAI(creature)
+ struct mob_snobold_vassalAI : public ScriptedAI
{
- instance = creature->GetInstanceScript();
- if (instance)
- instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
- }
+ mob_snobold_vassalAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = creature->GetInstanceScript();
+ if (_instance)
+ _instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
+ }
- InstanceScript* instance;
- uint32 m_uiFireBombTimer;
- uint32 m_uiBatterTimer;
- uint32 m_uiHeadCrackTimer;
- uint64 m_uiBossGUID;
- uint64 m_uiTargetGUID;
- bool m_bTargetDied;
+ void Reset()
+ {
+ _events.ScheduleEvent(EVENT_BATTER, 5*IN_MILLISECONDS);
+ _events.ScheduleEvent(EVENT_HEAD_CRACK, 25*IN_MILLISECONDS);
- void Reset()
- {
- m_uiFireBombTimer = 15000;
- m_uiBatterTimer = 5000;
- m_uiHeadCrackTimer = 25000;
+ _targetGUID = 0;
+ _targetDied = false;
- m_uiTargetGUID = 0;
- m_bTargetDied = false;
- if (instance)
- m_uiBossGUID = instance->GetData64(NPC_GORMOK);
- //Workaround for Snobold
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- }
-
- void EnterEvadeMode()
- {
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- ScriptedAI::EnterEvadeMode();
- }
+ if (_instance)
+ _bossGUID = _instance->GetData64(NPC_GORMOK);
+ //Workaround for Snobold
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ }
- void EnterCombat(Unit* who)
- {
- m_uiTargetGUID = who->GetGUID();
- me->TauntApply(who);
- DoCast(who, SPELL_SNOBOLLED);
- }
+ void EnterEvadeMode()
+ {
+ ScriptedAI::EnterEvadeMode();
+ }
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
- {
- if (pDoneBy->GetGUID()==m_uiTargetGUID)
- uiDamage = 0;
- }
+ void EnterCombat(Unit* who)
+ {
+ _targetGUID = who->GetGUID();
+ me->TauntApply(who);
+ DoCast(who, SPELL_SNOBOLLED);
+ }
- void MovementInform(uint32 type, uint32 pointId)
- {
- if (type != POINT_MOTION_TYPE)
- return;
+ void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ {
+ if (pDoneBy->GetGUID() == _targetGUID)
+ uiDamage = 0;
+ }
- switch (pointId)
+ void MovementInform(uint32 type, uint32 pointId)
{
- case 0:
- if (m_bTargetDied)
- me->DespawnOrUnsummon();
- break;
+ if (type != POINT_MOTION_TYPE)
+ return;
+
+ switch (pointId)
+ {
+ case 0:
+ if (_targetDied)
+ me->DespawnOrUnsummon();
+ break;
+ default:
+ break;
+ }
}
- }
- void JustDied(Unit* /*killer*/)
- {
- if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
- if (target->isAlive())
- target->RemoveAurasDueToSpell(SPELL_SNOBOLLED);
- if (instance)
- instance->SetData(DATA_SNOBOLD_COUNT, DECREASE);
- }
+ void JustDied(Unit* /*killer*/)
+ {
+ if (Unit* target = Unit::GetPlayer(*me, _targetGUID))
+ if (target->isAlive())
+ target->RemoveAurasDueToSpell(SPELL_SNOBOLLED);
+ if (_instance)
+ _instance->SetData(DATA_SNOBOLD_COUNT, DECREASE);
+ }
- void UpdateAI(uint32 const diff)
- {
- if (m_bTargetDied || !UpdateVictim())
- return;
+ void DoAction(int32 const action)
+ {
+ switch (action)
+ {
+ case ACTION_ENABLE_FIRE_BOMB:
+ _events.ScheduleEvent(EVENT_FIRE_BOMB, urand(5*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ break;
+ case ACTION_DISABLE_FIRE_BOMB:
+ _events.CancelEvent(EVENT_FIRE_BOMB);
+ break;
+ default:
+ break;
+ }
+ }
- if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
+ void UpdateAI(uint32 const diff)
{
- if (!target->isAlive())
+ if (!UpdateVictim() || _targetDied)
+ return;
+
+ if (Unit* target = Unit::GetPlayer(*me, _targetGUID))
{
- if (instance)
+ if (!target->isAlive())
{
- Unit* gormok = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GORMOK));
- if (gormok && gormok->isAlive())
+ if (_instance)
{
- SetCombatMovement(false);
- m_bTargetDied = true;
- me->GetMotionMaster()->MoveJump(gormok->GetPositionX(), gormok->GetPositionY(), gormok->GetPositionZ(), 15.0f, 15.0f);
- }
- else if (Unit* target2 = SelectTarget(SELECT_TARGET_RANDOM, 0))
- {
- m_uiTargetGUID = target2->GetGUID();
- me->GetMotionMaster()->MoveJump(target2->GetPositionX(), target2->GetPositionY(), target2->GetPositionZ(), 15.0f, 15.0f);
+ Unit* gormok = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_GORMOK));
+ if (gormok && gormok->isAlive())
+ {
+ SetCombatMovement(false);
+ _targetDied = true;
+
+ // looping through Gormoks seats
+ for (uint8 i = 0; i < MAX_SNOBOLDS; i++)
+ {
+ if (!gormok->GetVehicleKit()->GetPassenger(i))
+ {
+ me->EnterVehicle(gormok, i);
+ DoAction(ACTION_ENABLE_FIRE_BOMB);
+ break;
+ }
+ }
+ }
+ else if (Unit* target2 = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ {
+ _targetGUID = target2->GetGUID();
+ me->GetMotionMaster()->MoveJump(target2->GetPositionX(), target2->GetPositionY(), target2->GetPositionZ(), 15.0f, 15.0f);
+ }
}
}
}
+
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FIRE_BOMB:
+ if (me->GetVehicleBase())
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, -me->GetVehicleBase()->GetCombatReach(), true))
+ me->CastSpell(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), SPELL_FIRE_BOMB, true);
+ _events.ScheduleEvent(EVENT_FIRE_BOMB, 20*IN_MILLISECONDS);
+ return;
+ case EVENT_HEAD_CRACK:
+ // commented out while SPELL_SNOBOLLED gets fixed
+ //if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
+ DoCastVictim(SPELL_HEAD_CRACK);
+ _events.ScheduleEvent(EVENT_HEAD_CRACK, 30*IN_MILLISECONDS);
+ return;
+ case EVENT_BATTER:
+ // commented out while SPELL_SNOBOLLED gets fixed
+ //if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
+ DoCastVictim(SPELL_BATTER);
+ _events.ScheduleEvent(EVENT_BATTER, 10*IN_MILLISECONDS);
+ return;
+ default:
+ return;
+ }
+ }
+
+ // do melee attack only when not on Gormoks back
+ if (!me->GetVehicleBase())
+ DoMeleeAttackIfReady();
}
+ private:
+ EventMap _events;
+ InstanceScript* _instance;
+ uint64 _bossGUID;
+ uint64 _targetGUID;
+ bool _targetDied;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_snobold_vassalAI(creature);
+ }
+};
+
+class npc_firebomb : public CreatureScript
+{
+ public:
+ npc_firebomb() : CreatureScript("npc_firebomb") { }
- if (m_uiFireBombTimer < diff)
+ struct npc_firebombAI : public ScriptedAI
+ {
+ npc_firebombAI(Creature* creature) : ScriptedAI(creature)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_FIRE_BOMB);
- m_uiFireBombTimer = 20000;
+ _instance = creature->GetInstanceScript();
}
- else m_uiFireBombTimer -= diff;
- if (m_uiBatterTimer < diff)
+ void Reset()
{
- if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
- DoCast(target, SPELL_BATTER);
- m_uiBatterTimer = 10000;
+ DoCast(me, SPELL_FIRE_BOMB_DOT, true);
+ SetCombatMovement(false);
+ me->SetReactState(REACT_PASSIVE);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
- else m_uiBatterTimer -= diff;
- if (m_uiHeadCrackTimer < diff)
+ void UpdateAI(uint32 const /*diff*/)
{
- if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
- DoCast(target, SPELL_HEAD_CRACK);
- m_uiHeadCrackTimer = 35000;
+ if (_instance->GetData(TYPE_NORTHREND_BEASTS) != GORMOK_IN_PROGRESS)
+ me->DespawnOrUnsummon();
}
- else m_uiHeadCrackTimer -= diff;
- DoMeleeAttackIfReady();
- }
- };
+ private:
+ InstanceScript* _instance;
+ };
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_firebombAI(creature);
+ }
};
-struct boss_jormungarAI : public ScriptedAI
+struct boss_jormungarAI : public BossAI
{
- boss_jormungarAI(Creature* creature) : ScriptedAI(creature)
+ boss_jormungarAI(Creature* creature) : BossAI(creature, BOSS_BEASTS)
{
- instanceScript = creature->GetInstanceScript();
}
void Reset()
{
- enraged = false;
- biteTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- spewTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- slimePoolTimer = 15*IN_MILLISECONDS;
- spitTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- sprayTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- sweepTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
+ Enraged = false;
+
+ events.ScheduleEvent(EVENT_SPIT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_SPRAY, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_SWEEP, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_BITE, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_SPEW, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_SLIME_POOL, 15*IN_MILLISECONDS, 0, PHASE_MOBILE);
}
void JustDied(Unit* /*killer*/)
{
- if (instanceScript)
+ if (instance)
{
- if (Creature* otherWorm = Unit::GetCreature(*me, instanceScript->GetData64(otherWormEntry)))
+ if (Creature* otherWorm = Unit::GetCreature(*me, instance->GetData64(OtherWormEntry)))
{
if (!otherWorm->isAlive())
{
- instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_DONE);
+ instance->SetData(TYPE_NORTHREND_BEASTS, SNAKES_DONE);
me->DespawnOrUnsummon();
otherWorm->DespawnOrUnsummon();
}
else
- instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_SPECIAL);
+ instance->SetData(TYPE_NORTHREND_BEASTS, SNAKES_SPECIAL);
}
}
}
void JustReachedHome()
{
- if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) != FAIL)
- {
- instanceScript->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- }
+ // prevent losing 2 attempts at once on heroics
+ if (instance && instance->GetData(TYPE_NORTHREND_BEASTS) != FAIL)
+ instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
me->DespawnOrUnsummon();
}
@@ -440,17 +549,16 @@ struct boss_jormungarAI : public ScriptedAI
void KilledUnit(Unit* who)
{
if (who->GetTypeId() == TYPEID_PLAYER)
- {
- if (instanceScript)
- instanceScript->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
- }
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
void EnterCombat(Unit* /*who*/)
{
+ _EnterCombat();
me->SetInCombatWithZone();
- if (instanceScript)
- instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_IN_PROGRESS);
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, SNAKES_IN_PROGRESS);
}
void UpdateAI(uint32 const diff)
@@ -458,563 +566,597 @@ struct boss_jormungarAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) == SNAKES_SPECIAL && !enraged)
+ if (!Enraged && instance && instance->GetData(TYPE_NORTHREND_BEASTS) == SNAKES_SPECIAL)
{
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
DoCast(SPELL_ENRAGE);
- enraged = true;
+ Enraged = true;
Talk(EMOTE_ENRAGE);
- switch (stage)
- {
- case 0:
- break;
- case 4:
- stage = 5;
- submergeTimer = 5*IN_MILLISECONDS;
- break;
- default:
- stage = 7;
- }
}
- switch (stage)
- {
- case 0: // Mobile
- if (biteTimer <= diff)
- {
- DoCastVictim(biteSpell);
- biteTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else biteTimer -= diff;
+ events.Update(diff);
- if (spewTimer <= diff)
- {
- DoCastAOE(spewSpell);
- spewTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else spewTimer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (slimePoolTimer <= diff)
- {
- /* Spell summon has only 30s duration */
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_EMERGE:
+ Emerge();
+ return;
+ case EVENT_SUBMERGE:
+ Submerge();
+ return;
+ case EVENT_BITE:
+ DoCastVictim(BiteSpell);
+ events.ScheduleEvent(EVENT_BITE, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_MOBILE);
+ return;
+ case EVENT_SPEW:
+ DoCastAOE(SpewSpell);
+ events.ScheduleEvent(EVENT_SPEW, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_MOBILE);
+ return;
+ case EVENT_SLIME_POOL:
DoCast(me, SUMMON_SLIME_POOL);
- slimePoolTimer = 30*IN_MILLISECONDS;
- } else slimePoolTimer -= diff;
-
- if (submergeTimer <= diff && !enraged)
- {
- stage = 1;
- submergeTimer = 5*IN_MILLISECONDS;
- } else submergeTimer -= diff;
-
- DoMeleeAttackIfReady();
- break;
- case 1: // Submerge
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- DoCast(me, SPELL_SUBMERGE_0);
- me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX()+ frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ());
- stage = 2;
- case 2: // Wait til emerge
- if (submergeTimer <= diff)
- {
- stage = 3;
- submergeTimer = 50*IN_MILLISECONDS;
- } else submergeTimer -= diff;
- break;
- case 3: // Emerge
- me->SetDisplayId(modelStationary);
- me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
- DoCast(me, SPELL_EMERGE_0);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
- SetCombatMovement(false);
- me->GetMotionMaster()->MoveIdle();
- stage = 4;
- break;
- case 4: // Stationary
- if (sprayTimer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, spraySpell);
- sprayTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else sprayTimer -= diff;
-
- if (sweepTimer <= diff)
- {
+ events.ScheduleEvent(EVENT_SLIME_POOL, 30*IN_MILLISECONDS, 0, PHASE_MOBILE);
+ return;
+ case EVENT_SUMMON_ACIDMAW:
+ if (Creature* acidmaw = me->SummonCreature(NPC_ACIDMAW, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ(), 5, TEMPSUMMON_MANUAL_DESPAWN))
+ {
+ acidmaw->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ acidmaw->SetReactState(REACT_AGGRESSIVE);
+ acidmaw->SetInCombatWithZone();
+ acidmaw->CastSpell(acidmaw, SPELL_EMERGE_0);
+ }
+ return;
+ case EVENT_SPRAY:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ DoCast(target, SpraySpell);
+ events.ScheduleEvent(EVENT_SPRAY, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ return;
+ case EVENT_SWEEP:
DoCastAOE(SPELL_SWEEP_0);
- sweepTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else sweepTimer -= diff;
-
- if (submergeTimer <= diff)
- {
- stage = 5;
- submergeTimer = 10*IN_MILLISECONDS;
- } else submergeTimer -= diff;
-
- DoSpellAttackIfReady(spitSpell);
- break;
- case 5: // Submerge
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- DoCast(me, SPELL_SUBMERGE_0);
- me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ());
- stage = 6;
- case 6: // Wait til emerge
- if (submergeTimer <= diff)
- {
- stage = 7;
- submergeTimer = 45*IN_MILLISECONDS;
- } else submergeTimer -= diff;
- break;
- case 7: // Emerge
- me->SetDisplayId(modelMobile);
- me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
- DoCast(me, SPELL_EMERGE_0);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
- SetCombatMovement(true);
- me->GetMotionMaster()->MoveChase(me->getVictim());
- stage = 0;
- break;
+ events.ScheduleEvent(EVENT_SWEEP, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ return;
+ default:
+ return;
+ }
}
+ if (events.GetPhaseMask() & PHASE_MASK_MOBILE)
+ DoMeleeAttackIfReady();
+ if (events.GetPhaseMask() & PHASE_MASK_STATIONARY)
+ DoSpellAttackIfReady(SpitSpell);
}
- InstanceScript* instanceScript;
+ void Submerge()
+ {
+ DoCast(me, SPELL_SUBMERGE_0);
+ me->RemoveAurasDueToSpell(SPELL_EMERGE_0);
+ me->SetInCombatWithZone();
+ events.SetPhase(PHASE_SUBMERGED);
+ events.ScheduleEvent(EVENT_EMERGE, 5*IN_MILLISECONDS, 0, PHASE_SUBMERGED);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX()+ frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ());
+ WasMobile = !WasMobile;
+ }
- uint32 otherWormEntry;
+ void Emerge()
+ {
+ DoCast(me, SPELL_EMERGE_0);
+ me->SetDisplayId(ModelMobile);
+ me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->GetMotionMaster()->Clear();
+
+ // if the worm was mobile before submerging, make him stationary now
+ if (WasMobile)
+ {
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
+ SetCombatMovement(false);
+ me->SetDisplayId(ModelStationary);
+ events.SetPhase(PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_SUBMERGE, 45*IN_MILLISECONDS, 0, PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_SPIT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_SPRAY, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ events.ScheduleEvent(EVENT_SWEEP, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_STATIONARY);
+ }
+ else
+ {
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
+ SetCombatMovement(true);
+ me->GetMotionMaster()->MoveChase(me->getVictim());
+ me->SetDisplayId(ModelMobile);
+ events.SetPhase(PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_SUBMERGE, 45*IN_MILLISECONDS, 0, PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_BITE, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_SPEW, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS), 0, PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_SLIME_POOL, 15*IN_MILLISECONDS, 0, PHASE_MOBILE);
+ }
+ }
- uint32 modelStationary;
- uint32 modelMobile;
+ protected:
+ uint32 OtherWormEntry;
+ uint32 ModelStationary;
+ uint32 ModelMobile;
- uint32 biteSpell;
- uint32 spewSpell;
- uint32 spitSpell;
- uint32 spraySpell;
+ uint32 BiteSpell;
+ uint32 SpewSpell;
+ uint32 SpitSpell;
+ uint32 SpraySpell;
- uint32 biteTimer;
- uint32 spewTimer;
- uint32 slimePoolTimer;
- uint32 spitTimer;
- uint32 sprayTimer;
- uint32 sweepTimer;
- uint32 submergeTimer;
- uint8 stage;
- bool enraged;
+ Phases Phase;
+ bool Enraged;
+ bool WasMobile;
};
class boss_acidmaw : public CreatureScript
{
public:
- boss_acidmaw() : CreatureScript("boss_acidmaw") { }
+ boss_acidmaw() : CreatureScript("boss_acidmaw") { }
- struct boss_acidmawAI : public boss_jormungarAI
- {
- boss_acidmawAI(Creature* creature) : boss_jormungarAI(creature) { }
+ struct boss_acidmawAI : public boss_jormungarAI
+ {
+ boss_acidmawAI(Creature* creature) : boss_jormungarAI(creature) { }
- void Reset()
+ void Reset()
+ {
+ boss_jormungarAI::Reset();
+ BiteSpell = SPELL_PARALYTIC_BITE;
+ SpewSpell = SPELL_ACID_SPEW;
+ SpitSpell = SPELL_ACID_SPIT;
+ SpraySpell = SPELL_PARALYTIC_SPRAY;
+ ModelStationary = MODEL_ACIDMAW_STATIONARY;
+ ModelMobile = MODEL_ACIDMAW_MOBILE;
+ OtherWormEntry = NPC_DREADSCALE;
+
+ WasMobile = true;
+ Emerge();
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
{
- boss_jormungarAI::Reset();
- biteSpell = SPELL_PARALYTIC_BITE;
- spewSpell = SPELL_ACID_SPEW;
- spitSpell = SPELL_ACID_SPIT;
- spraySpell = SPELL_PARALYTIC_SPRAY;
- modelStationary = MODEL_ACIDMAW_STATIONARY;
- modelMobile = MODEL_ACIDMAW_MOBILE;
- otherWormEntry = NPC_DREADSCALE;
-
- submergeTimer = 500;
- DoCast(me, SPELL_SUBMERGE_0);
- stage = 2;
+ return new boss_acidmawAI(creature);
}
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_acidmawAI(creature);
- }
};
class boss_dreadscale : public CreatureScript
{
-public:
- boss_dreadscale() : CreatureScript("boss_dreadscale") { }
+ public:
+ boss_dreadscale() : CreatureScript("boss_dreadscale") { }
- struct boss_dreadscaleAI : public boss_jormungarAI
- {
- boss_dreadscaleAI(Creature* creature) : boss_jormungarAI(creature)
+ struct boss_dreadscaleAI : public boss_jormungarAI
{
- instanceScript = creature->GetInstanceScript();
- }
+ boss_dreadscaleAI(Creature* creature) : boss_jormungarAI(creature)
+ {
+ }
- InstanceScript* instanceScript;
+ void Reset()
+ {
+ boss_jormungarAI::Reset();
+ BiteSpell = SPELL_BURNING_BITE;
+ SpewSpell = SPELL_MOLTEN_SPEW;
+ SpitSpell = SPELL_FIRE_SPIT;
+ SpraySpell = SPELL_BURNING_SPRAY;
+ ModelStationary = MODEL_DREADSCALE_STATIONARY;
+ ModelMobile = MODEL_DREADSCALE_MOBILE;
+ OtherWormEntry = NPC_ACIDMAW;
+
+ events.SetPhase(PHASE_MOBILE);
+ events.ScheduleEvent(EVENT_SUMMON_ACIDMAW, 3*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_SUBMERGE, 45*IN_MILLISECONDS, 0, PHASE_MOBILE);
+ WasMobile = false;
+ }
- void Reset()
- {
- boss_jormungarAI::Reset();
- biteSpell = SPELL_BURNING_BITE;
- spewSpell = SPELL_MOLTEN_SPEW;
- spitSpell = SPELL_FIRE_SPIT;
- spraySpell = SPELL_BURNING_SPRAY;
- modelStationary = MODEL_DREADSCALE_STATIONARY;
- modelMobile = MODEL_DREADSCALE_MOBILE;
- otherWormEntry = NPC_ACIDMAW;
-
- submergeTimer = 45 * IN_MILLISECONDS;
- stage = 0;
- }
+ void MovementInform(uint32 type, uint32 pointId)
+ {
+ if (type != POINT_MOTION_TYPE)
+ return;
- void MovementInform(uint32 type, uint32 pointId)
- {
- if (type != POINT_MOTION_TYPE)
- return;
+ switch (pointId)
+ {
+ case 0:
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->SetReactState(REACT_AGGRESSIVE);
+ me->SetInCombatWithZone();
+ break;
+ default:
+ break;
+ }
+ }
- switch (pointId)
+ void EnterEvadeMode()
{
- case 0:
- instanceScript->DoUseDoorOrButton(instanceScript->GetData64(GO_MAIN_GATE_DOOR));
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
- if (Creature* otherWorm = Unit::GetCreature(*me, instanceScript->GetData64(otherWormEntry)))
- {
- otherWorm->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- otherWorm->SetReactState(REACT_AGGRESSIVE);
- otherWorm->SetVisible(true);
- otherWorm->SetInCombatWithZone();
- }
- break;
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ boss_jormungarAI::EnterEvadeMode();
}
- }
- void EnterEvadeMode()
- {
- instanceScript->DoUseDoorOrButton(instanceScript->GetData64(GO_MAIN_GATE_DOOR));
- boss_jormungarAI::EnterEvadeMode();
- }
+ void JustReachedHome()
+ {
+ if (instance)
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- void JustReachedHome()
- {
- if (instanceScript)
- instanceScript->DoUseDoorOrButton(instanceScript->GetData64(GO_MAIN_GATE_DOOR));
+ boss_jormungarAI::JustReachedHome();
+ }
+ };
- boss_jormungarAI::JustReachedHome();
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_dreadscaleAI(creature);
}
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_dreadscaleAI(creature);
- }
};
class mob_slime_pool : public CreatureScript
{
-public:
- mob_slime_pool() : CreatureScript("mob_slime_pool") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_slime_poolAI(creature);
- }
-
- struct mob_slime_poolAI : public ScriptedAI
- {
- mob_slime_poolAI(Creature* creature) : ScriptedAI(creature)
- {
- }
+ public:
+ mob_slime_pool() : CreatureScript("mob_slime_pool") { }
- bool casted;
- void Reset()
+ struct mob_slime_poolAI : public ScriptedAI
{
- casted = false;
- me->SetReactState(REACT_PASSIVE);
- }
+ mob_slime_poolAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _instance = creature->GetInstanceScript();
+ }
- void UpdateAI(uint32 const /*diff*/)
- {
- if (!casted)
+ void Reset()
{
- casted = true;
- DoCast(me, SPELL_SLIME_POOL_EFFECT);
+ _cast = false;
+ me->SetReactState(REACT_PASSIVE);
}
- }
- };
-};
+ void UpdateAI(uint32 const /*diff*/)
+ {
+ if (!_cast)
+ {
+ _cast = true;
+ DoCast(me, SPELL_SLIME_POOL_EFFECT);
+ }
-class boss_icehowl : public CreatureScript
-{
-public:
- boss_icehowl() : CreatureScript("boss_icehowl") { }
+ if (_instance->GetData(TYPE_NORTHREND_BEASTS) != SNAKES_IN_PROGRESS && _instance->GetData(TYPE_NORTHREND_BEASTS) != SNAKES_SPECIAL)
+ me->DespawnOrUnsummon();
+ }
+ private:
+ InstanceScript* _instance;
+ bool _cast;
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_icehowlAI(creature);
- }
+ };
- struct boss_icehowlAI : public ScriptedAI
- {
- boss_icehowlAI(Creature* creature) : ScriptedAI(creature)
+ CreatureAI* GetAI(Creature* creature) const
{
- instance = creature->GetInstanceScript();
+ return new mob_slime_poolAI(creature);
}
+};
- InstanceScript* instance;
-
- uint32 m_uiFerociousButtTimer;
- uint32 m_uiArticBreathTimer;
- uint32 m_uiWhirlTimer;
- uint32 m_uiMassiveCrashTimer;
- uint32 m_uiTrampleTimer;
- float m_fTrampleTargetX, m_fTrampleTargetY, m_fTrampleTargetZ;
- uint64 m_uiTrampleTargetGUID;
- bool m_bMovementStarted;
- bool m_bMovementFinish;
- bool m_bTrampleCasted;
- uint8 m_uiStage;
- Unit* target;
-
- void Reset()
+class spell_gormok_fire_bomb : public SpellScriptLoader
+{
+ public:
+ spell_gormok_fire_bomb() : SpellScriptLoader("spell_gormok_fire_bomb") {}
+
+ class spell_gormok_fire_bomb_SpellScript : public SpellScript
{
- m_uiFerociousButtTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- m_uiArticBreathTimer = urand(25*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- m_uiWhirlTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- m_uiMassiveCrashTimer = 30*IN_MILLISECONDS;
- m_uiTrampleTimer = IN_MILLISECONDS;
- m_bMovementStarted = false;
- m_bMovementFinish = false;
- m_bTrampleCasted = false;
- m_uiTrampleTargetGUID = 0;
- m_fTrampleTargetX = 0;
- m_fTrampleTargetY = 0;
- m_fTrampleTargetZ = 0;
- m_uiStage = 0;
- }
+ PrepareSpellScript(spell_gormok_fire_bomb_SpellScript);
+
+ void TriggerFireBomb(SpellEffIndex /*effIndex*/)
+ {
+ if (const WorldLocation* pos = GetExplTargetDest())
+ {
+ if (Unit* caster = GetCaster())
+ caster->SummonCreature(NPC_FIRE_BOMB, pos->GetPositionX(), pos->GetPositionY(), pos->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30*IN_MILLISECONDS);
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHit += SpellEffectFn(spell_gormok_fire_bomb_SpellScript::TriggerFireBomb, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
+ }
+ };
- void JustDied(Unit* /*killer*/)
+ SpellScript* GetSpellScript() const
{
- if (instance)
- instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
+ return new spell_gormok_fire_bomb_SpellScript();
}
+};
+
+class boss_icehowl : public CreatureScript
+{
+ public:
+ boss_icehowl() : CreatureScript("boss_icehowl") { }
- void MovementInform(uint32 type, uint32 pointId)
+ struct boss_icehowlAI : public BossAI
{
- if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
- return;
+ boss_icehowlAI(Creature* creature) : BossAI(creature, BOSS_BEASTS)
+ {
+ }
- switch (pointId)
+ void Reset()
{
- case 0:
- if (me->GetDistance2d(ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY()) < 6.0f)
- {
- // Middle of the room
- m_uiStage = 1;
- }
- else
- {
- // Landed from Hop backwards (start trample)
- if (Unit::GetPlayer(*me, m_uiTrampleTargetGUID))
+ events.ScheduleEvent(EVENT_FEROCIOUS_BUTT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_WHIRL, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ events.ScheduleEvent(EVENT_MASSIVE_CRASH, 30*IN_MILLISECONDS);
+ _movementStarted = false;
+ _movementFinish = false;
+ _trampleCasted = false;
+ _trampleTargetGUID = 0;
+ _trampleTargetX = 0;
+ _trampleTargetY = 0;
+ _trampleTargetZ = 0;
+ _stage = 0;
+ }
+
+ void JustDied(Unit* /*killer*/)
+ {
+ _JustDied();
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
+ }
+
+ void MovementInform(uint32 type, uint32 pointId)
+ {
+ if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
+ return;
+
+ switch (pointId)
+ {
+ case 0:
+ if (_stage != 0)
{
- m_uiStage = 4;
+ if (me->GetDistance2d(ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY()) < 6.0f)
+ // Middle of the room
+ _stage = 1;
+ else
+ {
+ // Landed from Hop backwards (start trample)
+ if (Unit::GetPlayer(*me, _trampleTargetGUID))
+ _stage = 4;
+ else
+ _stage = 6;
+ }
}
- else
- m_uiStage = 6;
- }
- break;
- case 1: // Finish trample
- m_bMovementFinish = true;
- break;
- case 2:
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- me->SetReactState(REACT_AGGRESSIVE);
- me->SetInCombatWithZone();
- break;
+ break;
+ case 1: // Finish trample
+ _movementFinish = true;
+ break;
+ case 2:
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+ me->SetReactState(REACT_AGGRESSIVE);
+ me->SetInCombatWithZone();
+ break;
+ default:
+ break;
+ }
}
- }
- void EnterEvadeMode()
- {
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- ScriptedAI::EnterEvadeMode();
- }
-
- void JustReachedHome()
- {
- if (instance)
+ void EnterEvadeMode()
{
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
+ ScriptedAI::EnterEvadeMode();
}
- me->DespawnOrUnsummon();
- }
- void KilledUnit(Unit* who)
- {
- if (who->GetTypeId() == TYPEID_PLAYER)
+ void JustReachedHome()
{
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ {
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
+ }
+ me->DespawnOrUnsummon();
}
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- if (instance)
- instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
- me->SetInCombatWithZone();
- }
- void SpellHitTarget(Unit* target, SpellInfo const* spell)
- {
- if (spell->Id == SPELL_TRAMPLE && target->GetTypeId() == TYPEID_PLAYER)
+ void KilledUnit(Unit* who)
{
- if (!m_bTrampleCasted)
+ if (who->GetTypeId() == TYPEID_PLAYER)
{
- DoCast(me, SPELL_FROTHING_RAGE, true);
- m_bTrampleCasted = true;
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
- }
- void UpdateAI(uint32 const diff)
- {
- if (!UpdateVictim())
- return;
+ void EnterCombat(Unit* /*who*/)
+ {
+ _EnterCombat();
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
+ }
- switch (m_uiStage)
+ void SpellHitTarget(Unit* target, SpellInfo const* spell)
{
- case 0:
- if (m_uiFerociousButtTimer <= diff)
+ if (spell->Id == SPELL_TRAMPLE && target->GetTypeId() == TYPEID_PLAYER)
+ {
+ if (!_trampleCasted)
{
- DoCastVictim(SPELL_FEROCIOUS_BUTT);
- m_uiFerociousButtTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiFerociousButtTimer -= diff;
+ DoCast(me, SPELL_FROTHING_RAGE, true);
+ _trampleCasted = true;
+ }
+ }
+ }
- if (m_uiArticBreathTimer <= diff)
- {
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_ARCTIC_BREATH);
- m_uiArticBreathTimer = urand(25*IN_MILLISECONDS, 40*IN_MILLISECONDS);
- } else m_uiArticBreathTimer -= diff;
+ void UpdateAI(uint32 const diff)
+ {
+ if (!UpdateVictim())
+ return;
- if (m_uiWhirlTimer <= diff)
- {
- DoCastAOE(SPELL_WHIRL);
- m_uiWhirlTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
- } else m_uiWhirlTimer -= diff;
+ events.Update(diff);
- if (m_uiMassiveCrashTimer <= diff)
- {
- me->GetMotionMaster()->MoveJump(ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 10.0f, 20.0f); // 1: Middle of the room
- SetCombatMovement(false);
- me->AttackStop();
- m_uiStage = 7; //Invalid (Do nothing more than move)
- m_uiMassiveCrashTimer = 30*IN_MILLISECONDS;
- } else m_uiMassiveCrashTimer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- DoMeleeAttackIfReady();
- break;
- case 1:
- DoCastAOE(SPELL_MASSIVE_CRASH);
- me->StopMoving();
- me->AttackStop();
- m_uiStage = 2;
- break;
- case 2:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
+ switch (_stage)
+ {
+ case 0:
{
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_FEROCIOUS_BUTT:
+ DoCastVictim(SPELL_FEROCIOUS_BUTT);
+ events.ScheduleEvent(EVENT_FEROCIOUS_BUTT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_ARCTIC_BREATH:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ DoCast(target, SPELL_ARCTIC_BREATH);
+ return;
+ case EVENT_WHIRL:
+ DoCastAOE(SPELL_WHIRL);
+ events.ScheduleEvent(EVENT_WHIRL, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS));
+ return;
+ case EVENT_MASSIVE_CRASH:
+ me->GetMotionMaster()->MoveJump(ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 20.0f, 20.0f); // 1: Middle of the room
+ SetCombatMovement(false);
+ me->AttackStop();
+ _stage = 7; //Invalid (Do nothing more than move)
+ return;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ break;
+ }
+ case 1:
+ DoCastAOE(SPELL_MASSIVE_CRASH);
me->StopMoving();
me->AttackStop();
- m_uiTrampleTargetGUID = target->GetGUID();
- me->SetTarget(m_uiTrampleTargetGUID);
- m_bTrampleCasted = false;
- //SetCombatMovement(false);
- //me->GetMotionMaster()->MoveIdle();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- m_uiTrampleTimer = 4*IN_MILLISECONDS;
- m_uiStage = 3;
- } else m_uiStage = 6;
- break;
- case 3:
- me->StopMoving();
- me->AttackStop();
- if (m_uiTrampleTimer <= diff)
- {
- if (Unit* target = Unit::GetPlayer(*me, m_uiTrampleTargetGUID))
+ _stage = 2;
+ break;
+ case 2:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
- m_bTrampleCasted = false;
- m_bMovementStarted = true;
- m_fTrampleTargetX = target->GetPositionX();
- m_fTrampleTargetY = target->GetPositionY();
- m_fTrampleTargetZ = target->GetPositionZ();
- me->GetMotionMaster()->MoveJump(2*me->GetPositionX()-m_fTrampleTargetX,
- 2*me->GetPositionY()-m_fTrampleTargetY,
- me->GetPositionZ(),
- 20.0f, 30.0f); // 2: Hop Backwards
- m_uiStage = 7; //Invalid (Do nothing more than move)
- } else m_uiStage = 6;
- } else m_uiTrampleTimer -= diff;
- break;
- case 4:
- me->StopMoving();
- me->AttackStop();
- Talk(EMOTE_TRAMPLE_START, m_uiTrampleTargetGUID);
- me->GetMotionMaster()->MoveCharge(m_fTrampleTargetX, m_fTrampleTargetY, m_fTrampleTargetZ+2, 42, 1);
- me->SetTarget(0);
- m_uiStage = 5;
- break;
- case 5:
- if (m_bMovementFinish)
- {
- if (m_uiTrampleTimer <= diff) DoCastAOE(SPELL_TRAMPLE);
- m_bMovementFinish = false;
- m_uiStage = 6;
- return;
- }
- if (m_uiTrampleTimer <= diff)
- {
- Map::PlayerList const &lPlayers = me->GetMap()->GetPlayers();
- for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
+ me->StopMoving();
+ me->AttackStop();
+ _trampleTargetGUID = target->GetGUID();
+ me->SetTarget(_trampleTargetGUID);
+ _trampleCasted = false;
+ SetCombatMovement(false);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
+ me->GetMotionMaster()->Clear();
+ me->GetMotionMaster()->MoveIdle();
+ events.ScheduleEvent(EVENT_TRAMPLE, 4*IN_MILLISECONDS);
+ _stage = 3;
+ }
+ else
+ _stage = 6;
+ break;
+ case 3:
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (Unit* player = itr->getSource())
- if (player->isAlive() && player->IsWithinDistInMap(me, 6.0f))
+ switch (eventId)
+ {
+ case EVENT_TRAMPLE:
{
- DoCastAOE(SPELL_TRAMPLE);
- m_uiTrampleTimer = IN_MILLISECONDS;
+ if (Unit* target = Unit::GetPlayer(*me, _trampleTargetGUID))
+ {
+ me->StopMoving();
+ me->AttackStop();
+ _trampleCasted = false;
+ _movementStarted = true;
+ _trampleTargetX = target->GetPositionX();
+ _trampleTargetY = target->GetPositionY();
+ _trampleTargetZ = target->GetPositionZ();
+ // 2: Hop Backwards
+ me->GetMotionMaster()->MoveJump(2*me->GetPositionX() - _trampleTargetX, 2*me->GetPositionY() - _trampleTargetY, me->GetPositionZ(), 30.0f, 20.0f);
+ _stage = 7; //Invalid (Do nothing more than move)
+ }
+ else
+ _stage = 6;
break;
}
+ default:
+ break;
+ }
}
- } else m_uiTrampleTimer -= diff;
- break;
- case 6:
- if (!m_bTrampleCasted)
- {
- DoCast(me, SPELL_STAGGERED_DAZE);
- Talk(EMOTE_TRAMPLE_CRASH);
- }
- else
- {
- DoCast(me, SPELL_FROTHING_RAGE, true);
- Talk(EMOTE_TRAMPLE_FAIL);
- }
- m_bMovementStarted = false;
- me->GetMotionMaster()->MovementExpired();
- me->GetMotionMaster()->MoveChase(me->getVictim());
- SetCombatMovement(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- m_uiStage = 0;
- break;
+ break;
+ case 4:
+ me->StopMoving();
+ me->AttackStop();
+ Talk(EMOTE_TRAMPLE_START, _trampleTargetGUID);
+ me->GetMotionMaster()->MoveCharge(_trampleTargetX, _trampleTargetY, _trampleTargetZ, 42, 1);
+ me->SetTarget(0);
+ _stage = 5;
+ break;
+ case 5:
+ if (_movementFinish)
+ {
+ DoCastAOE(SPELL_TRAMPLE);
+ _movementFinish = false;
+ _stage = 6;
+ return;
+ }
+ if (events.ExecuteEvent() == EVENT_TRAMPLE)
+ {
+ Map::PlayerList const &lPlayers = me->GetMap()->GetPlayers();
+ for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
+ {
+ if (Unit* player = itr->getSource())
+ {
+ if (player->isAlive() && player->IsWithinDistInMap(me, 6.0f))
+ {
+ DoCastAOE(SPELL_TRAMPLE);
+ events.ScheduleEvent(EVENT_TRAMPLE, 4*IN_MILLISECONDS);
+ break;
+ }
+ }
+ }
+ }
+ break;
+ case 6:
+ if (!_trampleCasted)
+ {
+ DoCast(me, SPELL_STAGGERED_DAZE);
+ Talk(EMOTE_TRAMPLE_CRASH);
+ }
+ else
+ {
+ DoCast(me, SPELL_FROTHING_RAGE, true);
+ Talk(EMOTE_TRAMPLE_FAIL);
+ }
+ _movementStarted = false;
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
+ SetCombatMovement(true);
+ me->GetMotionMaster()->MovementExpired();
+ me->GetMotionMaster()->Clear();
+ me->GetMotionMaster()->MoveChase(me->getVictim());
+ AttackStart(me->getVictim());
+ events.ScheduleEvent(EVENT_MASSIVE_CRASH, 40*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));
+ _stage = 0;
+ break;
+ default:
+ break;
+ }
}
- }
- };
+ private:
+ float _trampleTargetX, _trampleTargetY, _trampleTargetZ;
+ uint64 _trampleTargetGUID;
+ bool _movementStarted;
+ bool _movementFinish;
+ bool _trampleCasted;
+ uint8 _stage;
+ Unit* _target;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_icehowlAI(creature);
+ }
};
void AddSC_boss_northrend_beasts()
{
new boss_gormok();
new mob_snobold_vassal();
+ new npc_firebomb();
+ new spell_gormok_fire_bomb();
+
new boss_acidmaw();
new boss_dreadscale();
new mob_slime_pool();
+
new boss_icehowl();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index a65eaebbc0c..01d3bcbfe90 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -16,13 +16,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: trial_of_the_crusader
-SD%Complete: ??%
-SDComment: based on /dev/rsa
-SDCategory: Crusader Coliseum
-EndScriptData */
-
// Known bugs:
// - They should be floating but they aren't respecting the floor =(
// - Hardcoded bullets spawner
@@ -48,13 +41,13 @@ enum Yells
SAY_TWINK_PACT = 5,
SAY_KILL_PLAYER = 6,
SAY_BERSERK = 7,
- SAY_DEATH = 8,
+ SAY_DEATH = 8
};
enum Equipment
{
EQUIP_MAIN_1 = 9423,
- EQUIP_MAIN_2 = 37377,
+ EQUIP_MAIN_2 = 37377
};
enum Summons
@@ -62,7 +55,7 @@ enum Summons
NPC_BULLET_CONTROLLER = 34743,
NPC_BULLET_DARK = 34628,
- NPC_BULLET_LIGHT = 34630,
+ NPC_BULLET_LIGHT = 34630
};
enum BossSpells
@@ -72,6 +65,7 @@ enum BossSpells
SPELL_LIGHT_SHIELD = 65858,
SPELL_LIGHT_TWIN_PACT = 65876,
SPELL_LIGHT_VORTEX = 66046,
+ SPELL_LIGHT_VORTEX_DAMAGE = 66048,
SPELL_LIGHT_TOUCH = 67297,
SPELL_LIGHT_ESSENCE = 65686,
SPELL_EMPOWERED_LIGHT = 65748,
@@ -83,17 +77,18 @@ enum BossSpells
SPELL_DARK_SHIELD = 65874,
SPELL_DARK_TWIN_PACT = 65875,
SPELL_DARK_VORTEX = 66058,
+ SPELL_DARK_VORTEX_DAMAGE = 66059,
SPELL_DARK_TOUCH = 67282,
SPELL_DARK_ESSENCE = 65684,
SPELL_EMPOWERED_DARK = 65724,
SPELL_TWIN_EMPATHY_DARK = 66132,
SPELL_UNLEASHED_DARK = 65808,
- SPELL_CONTROLLER_PERIODIC = 66149,
+ SPELL_CONTROLLER_PERIODIC = 66149,
SPELL_POWER_TWINS = 65879,
SPELL_BERSERK = 64238,
SPELL_POWERING_UP = 67590,
- SPELL_SURGE_OF_SPEED = 65828,
+ SPELL_SURGE_OF_SPEED = 65828
};
#define SPELL_DARK_ESSENCE_HELPER RAID_MODE<uint32>(65684, 67176, 67177, 67178)
@@ -106,13 +101,12 @@ enum BossSpells
enum Actions
{
- ACTION_VORTEX,
- ACTION_PACT
+ ACTION_VORTEX = 0,
+ ACTION_PACT = 1
};
-/*######
-## boss_twin_base
-######*/
+#define ESSENCE_REMOVE 0
+#define ESSENCE_APPLY 1
class OrbsDespawner : public BasicEvent
{
@@ -145,61 +139,36 @@ class OrbsDespawner : public BasicEvent
Creature* _creature;
};
-struct boss_twin_baseAI : public ScriptedAI
+struct boss_twin_baseAI : public BossAI
{
- boss_twin_baseAI(Creature* creature) : ScriptedAI(creature), Summons(me)
+ boss_twin_baseAI(Creature* creature) : BossAI(creature, BOSS_VALKIRIES)
{
- instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
- SummonList Summons;
-
- AuraStateType m_uiAuraState;
-
- uint8 m_uiStage;
- bool m_bIsBerserk;
- uint32 m_uiWeapon;
- uint32 m_uiSpecialAbilityTimer;
- uint32 m_uiSpikeTimer;
- uint32 m_uiTouchTimer;
- uint32 m_uiBerserkTimer;
-
- int32 m_uiVortexEmote;
- uint32 m_uiSisterNpcId;
- uint32 m_uiMyEmphatySpellId;
- uint32 m_uiOtherEssenceSpellId;
- uint32 m_uiSurgeSpellId;
- uint32 m_uiVortexSpellId;
- uint32 m_uiShieldSpellId;
- uint32 m_uiTwinPactSpellId;
- uint32 m_uiSpikeSpellId;
- uint32 m_uiTouchSpellId;
-
void Reset()
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
- me->ModifyAuraState(m_uiAuraState, true);
- /* Uncomment this once that they are flying above the ground
+ me->ModifyAuraState(AuraState, true);
+ /* Uncomment this once that they are floating above the ground
me->SetLevitate(true);
me->SetFlying(true); */
- m_bIsBerserk = false;
+ IsBerserk = false;
- m_uiSpecialAbilityTimer = MINUTE*IN_MILLISECONDS;
- m_uiSpikeTimer = 20*IN_MILLISECONDS;
- m_uiTouchTimer = urand(10, 15)*IN_MILLISECONDS;
- m_uiBerserkTimer = IsHeroic() ? 6*MINUTE*IN_MILLISECONDS : 10*MINUTE*IN_MILLISECONDS;
+ SpecialAbilityTimer = 1*MINUTE*IN_MILLISECONDS;
+ SpikeTimer = 20*IN_MILLISECONDS;
+ TouchTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
+ BerserkTimer = IsHeroic() ? 6*MINUTE*IN_MILLISECONDS : 10*MINUTE*IN_MILLISECONDS;
- Summons.DespawnAll();
+ summons.DespawnAll();
}
void JustReachedHome()
{
if (instance)
- instance->SetData(TYPE_VALKIRIES, FAIL);
+ instance->SetBossState(BOSS_VALKIRIES, FAIL);
- Summons.DespawnAll();
+ summons.DespawnAll();
me->DespawnOrUnsummon();
}
@@ -211,10 +180,11 @@ struct boss_twin_baseAI : public ScriptedAI
switch (uiId)
{
case 1:
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_AGGRESSIVE);
break;
+ default:
+ break;
}
}
@@ -224,13 +194,13 @@ struct boss_twin_baseAI : public ScriptedAI
{
Talk(SAY_KILL_PLAYER);
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
void JustSummoned(Creature* summoned)
{
- Summons.Summon(summoned);
+ summons.Summon(summoned);
}
void SummonedCreatureDespawn(Creature* summoned)
@@ -248,8 +218,10 @@ struct boss_twin_baseAI : public ScriptedAI
case NPC_BULLET_CONTROLLER:
me->m_Events.AddEvent(new OrbsDespawner(me), me->m_Events.CalculateTime(100));
break;
+ default:
+ break;
}
- Summons.Despawn(summoned);
+ summons.Despawn(summoned);
}
void JustDied(Unit* /*killer*/)
@@ -263,24 +235,22 @@ struct boss_twin_baseAI : public ScriptedAI
{
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
-
- instance->SetData(TYPE_VALKIRIES, DONE);
- Summons.DespawnAll();
+ _JustDied();
}
else
{
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- instance->SetData(TYPE_VALKIRIES, SPECIAL);
+ instance->SetBossState(BOSS_VALKIRIES, SPECIAL);
}
}
}
- Summons.DespawnAll();
+ summons.DespawnAll();
}
// Called when sister pointer needed
Creature* GetSister()
{
- return Unit::GetCreature((*me), instance->GetData64(m_uiSisterNpcId));
+ return Unit::GetCreature((*me), instance->GetData64(SisterNpcId));
}
void EnterCombat(Unit* /*who*/)
@@ -290,14 +260,14 @@ struct boss_twin_baseAI : public ScriptedAI
{
if (Creature* pSister = GetSister())
{
- me->AddAura(m_uiMyEmphatySpellId, pSister);
+ me->AddAura(MyEmphatySpellId, pSister);
pSister->SetInCombatWithZone();
}
- instance->SetData(TYPE_VALKIRIES, IN_PROGRESS);
+ instance->SetBossState(BOSS_VALKIRIES, IN_PROGRESS);
}
Talk(SAY_AGGRO);
- DoCast(me, m_uiSurgeSpellId);
+ DoCast(me, SurgeSpellId);
}
void DoAction(const int32 action)
@@ -305,45 +275,50 @@ struct boss_twin_baseAI : public ScriptedAI
switch (action)
{
case ACTION_VORTEX:
- m_uiStage = me->GetEntry() == NPC_LIGHTBANE ? 2 : 1;
+ Stage = me->GetEntry() == NPC_LIGHTBANE ? 2 : 1;
break;
case ACTION_PACT:
- m_uiStage = me->GetEntry() == NPC_LIGHTBANE ? 1 : 2;
+ Stage = me->GetEntry() == NPC_LIGHTBANE ? 1 : 2;
+ break;
+ default:
break;
}
}
void EnableDualWield(bool mode = true)
{
- SetEquipmentSlots(false, m_uiWeapon, mode ? m_uiWeapon : int32(EQUIP_UNEQUIP), EQUIP_UNEQUIP);
+ SetEquipmentSlots(false, Weapon, mode ? Weapon : int32(EQUIP_UNEQUIP), EQUIP_UNEQUIP);
me->SetCanDualWield(mode);
me->UpdateDamagePhysical(mode ? OFF_ATTACK : BASE_ATTACK);
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 diff)
{
if (!instance || !UpdateVictim())
return;
- switch (m_uiStage)
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ switch (Stage)
{
case 0:
break;
case 1: // Vortex
- if (m_uiSpecialAbilityTimer <= uiDiff)
+ if (SpecialAbilityTimer <= diff)
{
if (Creature* pSister = GetSister())
pSister->AI()->DoAction(ACTION_VORTEX);
- Talk(m_uiVortexEmote);
- DoCastAOE(m_uiVortexSpellId);
- m_uiStage = 0;
- m_uiSpecialAbilityTimer = MINUTE*IN_MILLISECONDS;
+ Talk(VortexEmote);
+ DoCastAOE(VortexSpellId);
+ Stage = 0;
+ SpecialAbilityTimer = 1*MINUTE*IN_MILLISECONDS;
}
else
- m_uiSpecialAbilityTimer -= uiDiff;
+ SpecialAbilityTimer -= diff;
break;
- case 2: // Shield+Pact
- if (m_uiSpecialAbilityTimer <= uiDiff)
+ case 2: // Shield + Pact
+ if (SpecialAbilityTimer <= diff)
{
Talk(EMOTE_TWINK_PACT);
Talk(SAY_TWINK_PACT);
@@ -352,164 +327,169 @@ struct boss_twin_baseAI : public ScriptedAI
pSister->AI()->DoAction(ACTION_PACT);
pSister->CastSpell(pSister, SPELL_POWER_TWINS, false);
}
- DoCast(me, m_uiShieldSpellId);
- DoCast(me, m_uiTwinPactSpellId);
- m_uiStage = 0;
- m_uiSpecialAbilityTimer = MINUTE*IN_MILLISECONDS;
+ DoCast(me, ShieldSpellId);
+ DoCast(me, TwinPactSpellId);
+ Stage = 0;
+ SpecialAbilityTimer = 1*MINUTE*IN_MILLISECONDS;
}
else
- m_uiSpecialAbilityTimer -= uiDiff;
+ SpecialAbilityTimer -= diff;
break;
default:
break;
}
- if (m_uiSpikeTimer <= uiDiff)
+ if (SpikeTimer <= diff)
{
- DoCastVictim(m_uiSpikeSpellId);
- m_uiSpikeTimer = 20*IN_MILLISECONDS;
+ DoCastVictim(SpikeSpellId);
+ SpikeTimer = 20*IN_MILLISECONDS;
}
else
- m_uiSpikeTimer -= uiDiff;
+ SpikeTimer -= diff;
- if (IsHeroic() && m_uiTouchTimer <= uiDiff)
+ if (IsHeroic() && TouchTimer <= diff)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 200, true, m_uiOtherEssenceSpellId))
- me->CastCustomSpell(m_uiTouchSpellId, SPELLVALUE_MAX_TARGETS, 1, target, false);
- m_uiTouchTimer = urand(10, 15)*IN_MILLISECONDS;
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 200.0f, true, OtherEssenceSpellId))
+ me->CastCustomSpell(TouchSpellId, SPELLVALUE_MAX_TARGETS, 1, target, false);
+ TouchTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
}
else
- m_uiTouchTimer -= uiDiff;
+ TouchTimer -= diff;
- if (!m_bIsBerserk && m_uiBerserkTimer <= uiDiff)
+ if (!IsBerserk && BerserkTimer <= diff)
{
DoCast(me, SPELL_BERSERK);
Talk(SAY_BERSERK);
- m_bIsBerserk = true;
+ IsBerserk = true;
}
else
- m_uiBerserkTimer -= uiDiff;
+ BerserkTimer -= diff;
DoMeleeAttackIfReady();
}
-};
-/*######
-## boss_fjola
-######*/
+ protected:
+ AuraStateType AuraState;
+
+ uint8 Stage;
+ bool IsBerserk;
+
+ uint32 Weapon;
+ uint32 SpecialAbilityTimer;
+ uint32 SpikeTimer;
+ uint32 TouchTimer;
+ uint32 BerserkTimer;
+
+ int32 VortexEmote;
+ uint32 SisterNpcId;
+ uint32 MyEmphatySpellId;
+ uint32 OtherEssenceSpellId;
+ uint32 SurgeSpellId;
+ uint32 VortexSpellId;
+ uint32 ShieldSpellId;
+ uint32 TwinPactSpellId;
+ uint32 SpikeSpellId;
+ uint32 TouchSpellId;
+};
class boss_fjola : public CreatureScript
{
-public:
- boss_fjola() : CreatureScript("boss_fjola") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_fjolaAI(creature);
- }
+ public:
+ boss_fjola() : CreatureScript("boss_fjola") { }
- struct boss_fjolaAI : public boss_twin_baseAI
- {
- boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature)
+ struct boss_fjolaAI : public boss_twin_baseAI
{
- instance = creature->GetInstanceScript();
- }
+ boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature)
+ {
+ }
- InstanceScript* instance;
-
- void Reset() {
- boss_twin_baseAI::Reset();
- SetEquipmentSlots(false, EQUIP_MAIN_1, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
- m_uiStage = 0;
- m_uiWeapon = EQUIP_MAIN_1;
- m_uiAuraState = AURA_STATE_UNKNOWN22;
- m_uiVortexEmote = EMOTE_VORTEX;
- m_uiSisterNpcId = NPC_DARKBANE;
- m_uiMyEmphatySpellId = SPELL_TWIN_EMPATHY_DARK;
- m_uiOtherEssenceSpellId = SPELL_DARK_ESSENCE_HELPER;
- m_uiSurgeSpellId = SPELL_LIGHT_SURGE;
- m_uiVortexSpellId = SPELL_LIGHT_VORTEX;
- m_uiShieldSpellId = SPELL_LIGHT_SHIELD;
- m_uiTwinPactSpellId = SPELL_LIGHT_TWIN_PACT;
- m_uiTouchSpellId = SPELL_LIGHT_TOUCH;
- m_uiSpikeSpellId = SPELL_LIGHT_TWIN_SPIKE;
+ void Reset()
+ {
+ SetEquipmentSlots(false, EQUIP_MAIN_1, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
+ Stage = 0;
+ Weapon = EQUIP_MAIN_1;
+ AuraState = AURA_STATE_UNKNOWN22;
+ VortexEmote = EMOTE_VORTEX;
+ SisterNpcId = NPC_DARKBANE;
+ MyEmphatySpellId = SPELL_TWIN_EMPATHY_DARK;
+ OtherEssenceSpellId = SPELL_DARK_ESSENCE_HELPER;
+ SurgeSpellId = SPELL_LIGHT_SURGE;
+ VortexSpellId = SPELL_LIGHT_VORTEX;
+ ShieldSpellId = SPELL_LIGHT_SHIELD;
+ TwinPactSpellId = SPELL_LIGHT_TWIN_PACT;
+ TouchSpellId = SPELL_LIGHT_TOUCH;
+ SpikeSpellId = SPELL_LIGHT_TWIN_SPIKE;
+
+ if (instance)
+ instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
+ boss_twin_baseAI::Reset();
+ }
- if (instance)
+ void EnterCombat(Unit* who)
{
- instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
+ if (instance)
+ instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
+
+ me->SummonCreature(NPC_BULLET_CONTROLLER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 0.0f, TEMPSUMMON_MANUAL_DESPAWN);
+ boss_twin_baseAI::EnterCombat(who);
}
- }
- void EnterCombat(Unit* who)
- {
- if (instance)
+ void EnterEvadeMode()
{
- instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ boss_twin_baseAI::EnterEvadeMode();
}
- me->SummonCreature(NPC_BULLET_CONTROLLER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 0.0f, TEMPSUMMON_MANUAL_DESPAWN);
- boss_twin_baseAI::EnterCombat(who);
- }
+ void JustReachedHome()
+ {
+ if (instance)
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- void EnterEvadeMode()
- {
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- boss_twin_baseAI::EnterEvadeMode();
- }
+ boss_twin_baseAI::JustReachedHome();
+ }
+ };
- void JustReachedHome()
+ CreatureAI* GetAI(Creature* creature) const
{
- if (instance)
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
-
- boss_twin_baseAI::JustReachedHome();
+ return new boss_fjolaAI(creature);
}
- };
-
};
-/*######
-## boss_eydis
-######*/
-
class boss_eydis : public CreatureScript
{
-public:
- boss_eydis() : CreatureScript("boss_eydis") { }
+ public:
+ boss_eydis() : CreatureScript("boss_eydis") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new boss_eydisAI(creature);
- }
+ struct boss_eydisAI : public boss_twin_baseAI
+ {
+ boss_eydisAI(Creature* creature) : boss_twin_baseAI(creature) {}
- struct boss_eydisAI : public boss_twin_baseAI
- {
- boss_eydisAI(Creature* creature) : boss_twin_baseAI(creature) {}
-
- void Reset() {
- boss_twin_baseAI::Reset();
- SetEquipmentSlots(false, EQUIP_MAIN_2, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
- m_uiStage = 1;
- m_uiWeapon = EQUIP_MAIN_2;
- m_uiAuraState = AURA_STATE_UNKNOWN19;
- m_uiVortexEmote = EMOTE_VORTEX;
- m_uiSisterNpcId = NPC_LIGHTBANE;
- m_uiMyEmphatySpellId = SPELL_TWIN_EMPATHY_LIGHT;
- m_uiOtherEssenceSpellId = SPELL_LIGHT_ESSENCE_HELPER;
- m_uiSurgeSpellId = SPELL_DARK_SURGE;
- m_uiVortexSpellId = SPELL_DARK_VORTEX;
- m_uiShieldSpellId = SPELL_DARK_SHIELD;
- m_uiTwinPactSpellId = SPELL_DARK_TWIN_PACT;
- m_uiTouchSpellId = SPELL_DARK_TOUCH;
- m_uiSpikeSpellId = SPELL_DARK_TWIN_SPIKE;
- }
- };
+ void Reset()
+ {
+ SetEquipmentSlots(false, EQUIP_MAIN_2, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
+ Stage = 1;
+ Weapon = EQUIP_MAIN_2;
+ AuraState = AURA_STATE_UNKNOWN19;
+ VortexEmote = EMOTE_VORTEX;
+ SisterNpcId = NPC_LIGHTBANE;
+ MyEmphatySpellId = SPELL_TWIN_EMPATHY_LIGHT;
+ OtherEssenceSpellId = SPELL_LIGHT_ESSENCE_HELPER;
+ SurgeSpellId = SPELL_DARK_SURGE;
+ VortexSpellId = SPELL_DARK_VORTEX;
+ ShieldSpellId = SPELL_DARK_SHIELD;
+ TwinPactSpellId = SPELL_DARK_TWIN_PACT;
+ TouchSpellId = SPELL_DARK_TOUCH;
+ SpikeSpellId = SPELL_DARK_TWIN_SPIKE;
+ boss_twin_baseAI::Reset();
+ }
+ };
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_eydisAI(creature);
+ }
};
-#define ESSENCE_REMOVE 0
-#define ESSENCE_APPLY 1
-
class mob_essence_of_twin : public CreatureScript
{
public:
@@ -519,16 +499,16 @@ class mob_essence_of_twin : public CreatureScript
{
mob_essence_of_twinAI(Creature* creature) : ScriptedAI(creature) { }
- uint32 GetData(uint32 data)
+ uint32 GetData(uint32 data) const
{
uint32 spellReturned = 0;
switch (me->GetEntry())
{
case NPC_LIGHT_ESSENCE:
- spellReturned = data == ESSENCE_REMOVE? SPELL_DARK_ESSENCE_HELPER : SPELL_LIGHT_ESSENCE_HELPER;
+ spellReturned = (data == ESSENCE_REMOVE) ? SPELL_DARK_ESSENCE_HELPER : SPELL_LIGHT_ESSENCE_HELPER;
break;
case NPC_DARK_ESSENCE:
- spellReturned = data == ESSENCE_REMOVE? SPELL_LIGHT_ESSENCE_HELPER : SPELL_DARK_ESSENCE_HELPER;
+ spellReturned = (data == ESSENCE_REMOVE) ? SPELL_LIGHT_ESSENCE_HELPER : SPELL_DARK_ESSENCE_HELPER;
break;
default:
break;
@@ -556,12 +536,8 @@ struct mob_unleashed_ballAI : public ScriptedAI
{
mob_unleashed_ballAI(Creature* creature) : ScriptedAI(creature)
{
- instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
- uint32 m_uiRangeCheckTimer;
-
void MoveToNextPoint()
{
float x0 = ToCCommonLoc[1].GetPositionX(), y0 = ToCCommonLoc[1].GetPositionY(), r = 47.0f;
@@ -578,13 +554,13 @@ struct mob_unleashed_ballAI : public ScriptedAI
void Reset()
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
me->SetDisableGravity(true);
me->SetCanFly(true);
SetCombatMovement(false);
MoveToNextPoint();
- m_uiRangeCheckTimer = IN_MILLISECONDS;
+ RangeCheckTimer = 0.5*IN_MILLISECONDS;
}
void MovementInform(uint32 uiType, uint32 uiId)
@@ -600,160 +576,112 @@ struct mob_unleashed_ballAI : public ScriptedAI
else
me->DisappearAndDie();
break;
+ default:
+ break;
}
}
+
+ protected:
+ uint32 RangeCheckTimer;
};
class mob_unleashed_dark : public CreatureScript
{
-public:
- mob_unleashed_dark() : CreatureScript("mob_unleashed_dark") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_unleashed_darkAI(creature);
- }
-
- struct mob_unleashed_darkAI : public mob_unleashed_ballAI
- {
- mob_unleashed_darkAI(Creature* creature) : mob_unleashed_ballAI(creature) {}
+ public:
+ mob_unleashed_dark() : CreatureScript("mob_unleashed_dark") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_unleashed_darkAI : public mob_unleashed_ballAI
{
- if (m_uiRangeCheckTimer < uiDiff)
+ mob_unleashed_darkAI(Creature* creature) : mob_unleashed_ballAI(creature) {}
+
+ void UpdateAI(const uint32 diff)
{
- if (me->SelectNearestPlayer(2.0f))
+ if (RangeCheckTimer < diff)
+ {
+ if (me->SelectNearestPlayer(3.0f))
{
- DoCastAOE(SPELL_UNLEASHED_DARK);
+ DoCastAOE(SPELL_UNLEASHED_DARK_HELPER);
me->GetMotionMaster()->MoveIdle();
- me->DespawnOrUnsummon(500);
+ me->DespawnOrUnsummon(1*IN_MILLISECONDS);
}
- m_uiRangeCheckTimer = IN_MILLISECONDS;
+ RangeCheckTimer = 0.5*IN_MILLISECONDS;
+ }
+ else
+ RangeCheckTimer -= diff;
}
- else m_uiRangeCheckTimer -= uiDiff;
- }
+ };
- void SpellHitTarget(Unit* who, SpellInfo const* spell)
+ CreatureAI* GetAI(Creature* creature) const
{
- if (spell->Id == SPELL_UNLEASHED_DARK_HELPER)
- {
- if (who->HasAura(SPELL_DARK_ESSENCE_HELPER))
- who->CastSpell(who, SPELL_POWERING_UP, true);
- }
+ return new mob_unleashed_darkAI(creature);
}
- };
-
};
class mob_unleashed_light : public CreatureScript
{
-public:
- mob_unleashed_light() : CreatureScript("mob_unleashed_light") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_unleashed_lightAI(creature);
- }
-
- struct mob_unleashed_lightAI : public mob_unleashed_ballAI
- {
- mob_unleashed_lightAI(Creature* creature) : mob_unleashed_ballAI(creature) {}
+ public:
+ mob_unleashed_light() : CreatureScript("mob_unleashed_light") { }
- void UpdateAI(const uint32 uiDiff)
+ struct mob_unleashed_lightAI : public mob_unleashed_ballAI
{
- if (m_uiRangeCheckTimer < uiDiff)
+ mob_unleashed_lightAI(Creature* creature) : mob_unleashed_ballAI(creature) {}
+
+ void UpdateAI(const uint32 diff)
{
- if (me->SelectNearestPlayer(2.0f))
+ if (RangeCheckTimer < diff)
+ {
+ if (me->SelectNearestPlayer(3.0f))
{
- DoCastAOE(SPELL_UNLEASHED_LIGHT);
+ DoCastAOE(SPELL_UNLEASHED_LIGHT_HELPER);
me->GetMotionMaster()->MoveIdle();
- me->DespawnOrUnsummon(500);
+ me->DespawnOrUnsummon(1*IN_MILLISECONDS);
}
- m_uiRangeCheckTimer = IN_MILLISECONDS;
+ RangeCheckTimer = 0.5*IN_MILLISECONDS;
+ }
+ else
+ RangeCheckTimer -= diff;
}
- else m_uiRangeCheckTimer -= uiDiff;
- }
+ };
- void SpellHitTarget(Unit* who, SpellInfo const* spell)
+ CreatureAI* GetAI(Creature* creature) const
{
- if (spell->Id == SPELL_UNLEASHED_LIGHT_HELPER)
- {
- if (who->HasAura(SPELL_LIGHT_ESSENCE_HELPER))
- who->CastSpell(who, SPELL_POWERING_UP, true);
- }
+ return new mob_unleashed_lightAI(creature);
}
- };
-
};
class mob_bullet_controller : public CreatureScript
{
-public:
- mob_bullet_controller() : CreatureScript("mob_bullet_controller") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_bullet_controllerAI(creature);
- }
-
- struct mob_bullet_controllerAI : public Scripted_NoMovementAI
- {
- mob_bullet_controllerAI(Creature* creature) : Scripted_NoMovementAI(creature)
- {
- Reset();
- }
-
- void Reset()
- {
- DoCastAOE(SPELL_CONTROLLER_PERIODIC);
- }
-
- void UpdateAI(const uint32 /*uiDiff*/)
- {
- UpdateVictim();
- }
- };
-};
-
-class spell_powering_up : public SpellScriptLoader
-{
public:
- spell_powering_up() : SpellScriptLoader("spell_powering_up") { }
+ mob_bullet_controller() : CreatureScript("mob_bullet_controller") { }
- class spell_powering_up_AuraScript : public AuraScript
+ struct mob_bullet_controllerAI : public Scripted_NoMovementAI
{
- PrepareAuraScript(spell_powering_up_AuraScript);
-
- void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ mob_bullet_controllerAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
- if (Unit* target = GetTarget())
- {
- if (Aura* pAura = target->GetAura(GetId()))
- {
- if (pAura->GetStackAmount() == 100)
- {
- if (target->GetDummyAuraEffect(SPELLFAMILY_GENERIC, 2206, EFFECT_1))
- target->CastSpell(target, SPELL_EMPOWERED_DARK, true);
-
- if (target->GetDummyAuraEffect(SPELLFAMILY_GENERIC, 2845, EFFECT_1))
- target->CastSpell(target, SPELL_EMPOWERED_LIGHT, true);
+ Reset();
+ }
- target->RemoveAurasDueToSpell(GetId());
- }
- }
- }
+ void Reset()
+ {
+ DoCastAOE(SPELL_CONTROLLER_PERIODIC);
}
- void Register()
+ void UpdateAI(const uint32 /*diff*/)
{
- OnEffectApply += AuraEffectApplyFn(spell_powering_up_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ UpdateVictim();
}
};
- AuraScript* GetAuraScript() const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new spell_powering_up_AuraScript();
+ return new mob_bullet_controllerAI(creature);
}
+};
+
+class spell_powering_up : public SpellScriptLoader
+{
+ public:
+ spell_powering_up() : SpellScriptLoader("spell_powering_up") { }
class spell_powering_up_SpellScript : public SpellScript
{
@@ -761,20 +689,39 @@ class spell_powering_up : public SpellScriptLoader
PrepareSpellScript(spell_powering_up_SpellScript)
uint32 spellId;
+ uint32 poweringUp;
bool Load()
{
spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_SURGE_OF_SPEED, GetCaster());
if (!sSpellMgr->GetSpellInfo(spellId))
return false;
+
+ poweringUp = sSpellMgr->GetSpellIdForDifficulty(SPELL_POWERING_UP, GetCaster());
+ if (!sSpellMgr->GetSpellInfo(poweringUp))
+ return false;
+
return true;
}
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
- if (Unit* target = GetExplTargetUnit())
- if (urand(0, 99) < 15)
- target->CastSpell(target, spellId, true);
+ if (Unit* target = GetHitUnit())
+ {
+ if (Aura* pAura = target->GetAura(poweringUp))
+ {
+ if (pAura->GetStackAmount() >= 100)
+ {
+ if (target->GetDummyAuraEffect(SPELLFAMILY_GENERIC, 2206, EFFECT_1))
+ target->CastSpell(target, SPELL_EMPOWERED_DARK, true);
+
+ if (target->GetDummyAuraEffect(SPELLFAMILY_GENERIC, 2845, EFFECT_1))
+ target->CastSpell(target, SPELL_EMPOWERED_LIGHT, true);
+
+ target->RemoveAurasDueToSpell(poweringUp);
+ }
+ }
+ }
}
void Register()
@@ -808,10 +755,68 @@ class spell_valkyr_essences : public SpellScriptLoader
return true;
}
- void Absorb(AuraEffect* /*aurEff*/, DamageInfo & /*dmgInfo*/, uint32 & /*absorbAmount*/)
+ void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & /*absorbAmount*/)
{
- if (urand(0, 99) < 5)
- GetTarget()->CastSpell(GetTarget(), spellId, true);
+ if (Unit* owner = GetUnitOwner())
+ {
+ if (dmgInfo.GetSpellInfo())
+ {
+ if (uint32 poweringUp = sSpellMgr->GetSpellIdForDifficulty(SPELL_POWERING_UP, owner))
+ {
+ if (urand(0, 99) < 5)
+ GetTarget()->CastSpell(GetTarget(), spellId, true);
+
+ // Twin Vortex part
+ uint32 lightVortex = sSpellMgr->GetSpellIdForDifficulty(SPELL_LIGHT_VORTEX_DAMAGE, owner);
+ uint32 darkVortex = sSpellMgr->GetSpellIdForDifficulty(SPELL_DARK_VORTEX_DAMAGE, owner);
+ int32 stacksCount = int32(dmgInfo.GetSpellInfo()->Effects[EFFECT_0].CalcValue()) * 0.001 - 1;
+
+ if (lightVortex && darkVortex && stacksCount)
+ {
+ if (dmgInfo.GetSpellInfo()->Id == darkVortex || dmgInfo.GetSpellInfo()->Id == lightVortex)
+ {
+ Aura* pAura = owner->GetAura(poweringUp);
+ if (pAura)
+ {
+ pAura->ModStackAmount(stacksCount);
+ owner->CastSpell(owner, poweringUp, true);
+ }
+ else
+ {
+ owner->CastSpell(owner, poweringUp, true);
+ if (Aura* pTemp = owner->GetAura(poweringUp))
+ pTemp->ModStackAmount(stacksCount);
+ }
+ }
+ }
+
+ // Picking floating balls
+ uint32 unleashedDark = sSpellMgr->GetSpellIdForDifficulty(SPELL_UNLEASHED_DARK, owner);
+ uint32 unleashedLight = sSpellMgr->GetSpellIdForDifficulty(SPELL_UNLEASHED_LIGHT, owner);
+
+ if (unleashedDark && unleashedLight)
+ {
+ if (dmgInfo.GetSpellInfo()->Id == unleashedDark || dmgInfo.GetSpellInfo()->Id == unleashedLight)
+ {
+ // need to do the things in this order, else players might have 100 charges of Powering Up without anything happening
+ Aura* pAura = owner->GetAura(poweringUp);
+ if (pAura)
+ {
+ // 2 lines together add the correct amount of buff stacks
+ pAura->ModStackAmount(stacksCount);
+ owner->CastSpell(owner, poweringUp, true);
+ }
+ else
+ {
+ owner->CastSpell(owner, poweringUp, true);
+ if (Aura* pTemp = owner->GetAura(poweringUp))
+ pTemp->ModStackAmount(stacksCount);
+ }
+ }
+ }
+ }
+ }
+ }
}
void Register()
@@ -880,6 +885,7 @@ void AddSC_boss_twin_valkyr()
new mob_unleashed_dark();
new mob_essence_of_twin();
new mob_bullet_controller();
+
new spell_powering_up();
new spell_valkyr_essences();
new spell_power_of_the_twins();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
index af6104008ff..fb084ec1e3c 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
@@ -16,16 +16,11 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: instance_trial_of_the_crusader
-SD%Complete: 80%
-SDComment: by /dev/rsa
-SDCategory: Trial of the Crusader
-EndScriptData */
-
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "trial_of_the_crusader.h"
+#include "Player.h"
+#include "TemporarySummon.h"
class instance_trial_of_the_crusader : public InstanceMapScript
{
@@ -36,82 +31,54 @@ class instance_trial_of_the_crusader : public InstanceMapScript
{
instance_trial_of_the_crusader_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 EncounterStatus[MAX_ENCOUNTERS];
- uint32 TrialCounter;
- uint32 EventStage;
- uint32 EventTimer;
- uint32 EventNPCId;
- uint32 NorthrendBeasts;
- std::string SaveDataBuffer;
- bool NeedSave;
-
- uint64 BarrentGUID;
- uint64 TirionGUID;
- uint64 TirionFordringGUID;
- uint64 FizzlebangGUID;
- uint64 GarroshGUID;
- uint64 VarianGUID;
-
- uint64 GormokGUID;
- uint64 AcidmawGUID;
- uint64 DreadscaleGUID;
- uint64 IcehowlGUID;
- uint64 JaraxxusGUID;
- uint64 ChampionsControllerGUID;
- uint64 DarkbaneGUID;
- uint64 LightbaneGUID;
- uint64 AnubarakGUID;
-
- uint64 CrusadersCacheGUID;
- uint64 FloorGUID;
-
- uint64 TributeChestGUID;
-
- uint64 MainGateDoorGUID;
- uint64 EastPortcullisGUID;
- uint64 WebDoorGUID;
-
- // Achievement stuff
- uint32 NotOneButTwoJormungarsTimer;
- uint32 ResilienceWillFixItTimer;
- uint8 SnoboldCount;
- uint8 MistressOfPainCount;
- bool TributeToImmortalityElegible;
-
void Initialize()
{
- for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
- EncounterStatus[i] = NOT_STARTED;
-
+ SetBossNumber(MAX_ENCOUNTERS);
TrialCounter = 50;
EventStage = 0;
-
- TirionFordringGUID = 0;
-
- TributeChestGUID = 0;
-
- MainGateDoorGUID = 0;
- EastPortcullisGUID = 0;
- WebDoorGUID = 0;
-
NorthrendBeasts = NOT_STARTED;
-
EventTimer = 1000;
-
NotOneButTwoJormungarsTimer = 0;
ResilienceWillFixItTimer = 0;
SnoboldCount = 0;
MistressOfPainCount = 0;
- TributeToImmortalityElegible = true;
-
+ TributeToImmortalityEligible = true;
NeedSave = false;
+
+ TirionFordringGUID = 0;
+ BarrentGUID = 0;
+ TirionGUID = 0;
+ FizzlebangGUID = 0;
+ GarroshGUID = 0;
+ VarianGUID = 0;
+ GormokGUID = 0;
+ AcidmawGUID = 0;
+ DreadscaleGUID = 0;
+ IcehowlGUID = 0;
+ JaraxxusGUID = 0;
+ ChampionsControllerGUID = 0;
+ DarkbaneGUID = 0;
+ LightbaneGUID = 0;
+ AnubarakGUID = 0;
+
+ TributeChestGUID = 0;
+ MainGateDoorGUID = 0;
+ EastPortcullisGUID = 0;
+ WebDoorGUID = 0;
+ CrusadersCacheGUID = 0;
+ FloorGUID = 0;
}
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
- if (EncounterStatus[i] == IN_PROGRESS)
+ if (GetBossState(i) == IN_PROGRESS)
return true;
+
+ // Special state is set at Faction Champions after first champ dead, encounter is still in combat
+ if (GetBossState(BOSS_CRUSADERS) == SPECIAL)
+ return true;
+
return false;
}
@@ -122,12 +89,26 @@ class instance_trial_of_the_crusader : public InstanceMapScript
player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 1);
player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, GetData(TYPE_COUNTER));
}
+ else
+ player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 0);
+
+ // make sure Anub'arak isnt missing and floor is destroyed after a crash
+ if (GetBossState(BOSS_LICH_KING) == DONE && TrialCounter && GetBossState(BOSS_ANUBARAK) != DONE)
+ {
+ Creature* anubArak = Unit::GetCreature(*player, GetData64(NPC_ANUBARAK));
+ if (!anubArak)
+ anubArak = player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
+
+ if (GameObject* floor = GameObject::GetGameObject(*player, GetData64(GO_ARGENT_COLISEUM_FLOOR)))
+ floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
+ }
}
void OpenDoor(uint64 guid)
{
if (!guid)
return;
+
if (GameObject* go = instance->GetGameObject(guid))
go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
}
@@ -136,6 +117,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
{
if (!guid)
return;
+
if (GameObject* go = instance->GetGameObject(guid))
go->SetGoState(GO_STATE_READY);
}
@@ -146,6 +128,8 @@ class instance_trial_of_the_crusader : public InstanceMapScript
{
case NPC_BARRENT:
BarrentGUID = creature->GetGUID();
+ if (!TrialCounter)
+ creature->DespawnOrUnsummon();
break;
case NPC_TIRION:
TirionGUID = creature->GetGUID();
@@ -190,6 +174,8 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case NPC_ANUBARAK:
AnubarakGUID = creature->GetGUID();
break;
+ default:
+ break;
}
}
@@ -236,34 +222,41 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case GO_TRIBUTE_CHEST_25H_99:
TributeChestGUID = go->GetGUID();
break;
+ default:
+ break;
}
}
- void SetData(uint32 type, uint32 data)
+ bool SetBossState(uint32 type, EncounterState state)
{
+ if (!InstanceScript::SetBossState(type, state))
+ return false;
+
switch (type)
{
- case TYPE_JARAXXUS:
+ case BOSS_BEASTS:
+ break;
+ case BOSS_JARAXXUS:
// Cleanup Icehowl
if (Creature* icehowl = instance->GetCreature(IcehowlGUID))
icehowl->DespawnOrUnsummon();
- if (data == DONE)
+ if (state == DONE)
EventStage = 2000;
break;
- case TYPE_CRUSADERS:
+ case BOSS_CRUSADERS:
// Cleanup Jaraxxus
if (Creature* jaraxxus = instance->GetCreature(JaraxxusGUID))
jaraxxus->DespawnOrUnsummon();
if (Creature* fizzlebang = instance->GetCreature(FizzlebangGUID))
fizzlebang->DespawnOrUnsummon();
- switch (data)
+ switch (state)
{
case IN_PROGRESS:
ResilienceWillFixItTimer = 0;
break;
case SPECIAL: //Means the first blood
ResilienceWillFixItTimer = 60*IN_MILLISECONDS;
- data = IN_PROGRESS;
+ state = IN_PROGRESS;
break;
case DONE:
DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_DEFEAT_FACTION_CHAMPIONS);
@@ -272,21 +265,23 @@ class instance_trial_of_the_crusader : public InstanceMapScript
DoRespawnGameObject(CrusadersCacheGUID, 7*DAY);
EventStage = 3100;
break;
+ default:
+ break;
}
break;
- case TYPE_VALKIRIES:
+ case BOSS_VALKIRIES:
// Cleanup chest
if (GameObject* cache = instance->GetGameObject(CrusadersCacheGUID))
cache->Delete();
- switch (data)
+ switch (state)
{
case FAIL:
- if (EncounterStatus[TYPE_VALKIRIES] == NOT_STARTED)
- data = NOT_STARTED;
+ if (GetBossState(BOSS_VALKIRIES) == NOT_STARTED)
+ state = NOT_STARTED;
break;
case SPECIAL:
- if (EncounterStatus[TYPE_VALKIRIES] == SPECIAL)
- data = DONE;
+ if (GetBossState(BOSS_VALKIRIES) == SPECIAL)
+ state = DONE;
break;
case DONE:
if (instance->GetPlayers().getFirst()->getSource()->GetTeam() == ALLIANCE)
@@ -294,50 +289,122 @@ class instance_trial_of_the_crusader : public InstanceMapScript
else
EventStage = 4030;
break;
+ default:
+ break;
}
break;
- case TYPE_ANUBARAK:
- switch (data)
+ case BOSS_LICH_KING:
+ break;
+ case BOSS_ANUBARAK:
+ switch (state)
{
case DONE:
+ {
EventStage = 6000;
- break;
- case SPECIAL:
uint32 tributeChest = 0;
if (instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)
{
if (TrialCounter >= 50)
tributeChest = GO_TRIBUTE_CHEST_10H_99;
else
+ {
if (TrialCounter >= 45)
tributeChest = GO_TRIBUTE_CHEST_10H_50;
else
+ {
if (TrialCounter >= 25)
tributeChest = GO_TRIBUTE_CHEST_10H_45;
else
tributeChest = GO_TRIBUTE_CHEST_10H_25;
+ }
+ }
}
else if (instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
{
if (TrialCounter >= 50)
tributeChest = GO_TRIBUTE_CHEST_25H_99;
else
+ {
if (TrialCounter >= 45)
tributeChest = GO_TRIBUTE_CHEST_25H_50;
else
+ {
if (TrialCounter >= 25)
tributeChest = GO_TRIBUTE_CHEST_25H_45;
else
tributeChest = GO_TRIBUTE_CHEST_25H_25;
+ }
+ }
}
+
if (tributeChest)
if (Creature* tirion = instance->GetCreature(TirionGUID))
- // need proper location.this one is guessed based on videos
- if (GameObject* chest = tirion->SummonGameObject(tributeChest, 643.814f, 136.027f, 141.295f, 0, 0, 0, 0, 0, 90000000))
+ if (GameObject* chest = tirion->SummonGameObject(tributeChest, 805.62f, 134.87f, 142.16f, 3.27f, 0, 0, 0, 0, WEEK))
chest->SetRespawnTime(chest->GetRespawnDelay());
break;
+ }
+ default:
+ break;
}
break;
+ default:
+ break;
+ }
+
+ if (IsEncounterInProgress())
+ {
+ CloseDoor(GetData64(GO_EAST_PORTCULLIS));
+ CloseDoor(GetData64(GO_WEB_DOOR));
+ }
+ else
+ {
+ OpenDoor(GetData64(GO_EAST_PORTCULLIS));
+ OpenDoor(GetData64(GO_WEB_DOOR));
+ }
+
+ if (type < MAX_ENCOUNTERS)
+ {
+ sLog->outInfo(LOG_FILTER_TSCR, "[ToCr] BossState(type %u) %u = state %u;", type, GetBossState(type), state);
+ if (state == FAIL)
+ {
+ if (instance->IsHeroic())
+ {
+ --TrialCounter;
+ // decrease attempt counter at wipe
+ Map::PlayerList const &PlayerList = instance->GetPlayers();
+ for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
+ if (Player* player = itr->getSource())
+ player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, TrialCounter);
+
+ // if theres no more attemps allowed
+ if (!TrialCounter)
+ {
+ if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT)))
+ announcer->ToCreature()->DespawnOrUnsummon();
+
+ if (Creature* anubArak = instance->GetCreature(GetData64(NPC_ANUBARAK)))
+ anubArak->DespawnOrUnsummon();
+ }
+ }
+ NeedSave = true;
+ EventStage = (type == BOSS_BEASTS ? 666 : 0);
+ state = NOT_STARTED;
+ }
+
+ if (state == DONE || NeedSave)
+ {
+ if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT)))
+ announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ Save();
+ }
+ }
+ return true;
+ }
+
+ void SetData(uint32 type, uint32 data)
+ {
+ switch (type)
+ {
case TYPE_COUNTER:
TrialCounter = data;
data = DONE;
@@ -357,7 +424,6 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case GORMOK_DONE:
EventStage = 200;
SetData(TYPE_NORTHREND_BEASTS, IN_PROGRESS);
- SetData(TYPE_BEASTS, IN_PROGRESS);
break;
case SNAKES_IN_PROGRESS:
NotOneButTwoJormungarsTimer = 0;
@@ -370,15 +436,16 @@ class instance_trial_of_the_crusader : public InstanceMapScript
DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_WORMS_KILLED_IN_10_SECONDS);
EventStage = 300;
SetData(TYPE_NORTHREND_BEASTS, IN_PROGRESS);
- SetData(TYPE_BEASTS, IN_PROGRESS);
break;
case ICEHOWL_DONE:
EventStage = 400;
SetData(TYPE_NORTHREND_BEASTS, DONE);
- SetData(TYPE_BEASTS, DONE);
+ SetBossState(BOSS_BEASTS, DONE);
break;
case FAIL:
- SetData(TYPE_BEASTS, FAIL);
+ SetBossState(BOSS_BEASTS, FAIL);
+ break;
+ default:
break;
}
break;
@@ -395,44 +462,15 @@ class instance_trial_of_the_crusader : public InstanceMapScript
else if (data == DECREASE)
--MistressOfPainCount;
break;
- case DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE:
- TributeToImmortalityElegible = false;
+ case DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE:
+ TributeToImmortalityEligible = false;
+ break;
+ default:
break;
- }
- if (IsEncounterInProgress())
- {
- CloseDoor(GetData64(GO_EAST_PORTCULLIS));
- CloseDoor(GetData64(GO_WEB_DOOR));
- }
- else
- {
- OpenDoor(GetData64(GO_EAST_PORTCULLIS));
- OpenDoor(GetData64(GO_WEB_DOOR));
- }
-
- if (type < MAX_ENCOUNTERS)
- {
- sLog->outInfo(LOG_FILTER_TSCR, "[ToCr] EncounterStatus[type %u] %u = data %u;", type, EncounterStatus[type], data);
- if (data == FAIL)
- {
- --TrialCounter;
- NeedSave = true;
- EventStage = (type == TYPE_BEASTS ? 666 : 0);
- data = NOT_STARTED;
- }
-
- EncounterStatus[type] = data;
-
- if (data == DONE || NeedSave == true)
- {
- if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT)))
- announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- Save();
- }
}
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
@@ -483,22 +521,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript
return 0;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
- case TYPE_BEASTS:
- return EncounterStatus[TYPE_BEASTS];
- case TYPE_JARAXXUS:
- return EncounterStatus[TYPE_JARAXXUS];
- case TYPE_CRUSADERS:
- return EncounterStatus[TYPE_CRUSADERS];
- case TYPE_VALKIRIES:
- return EncounterStatus[TYPE_VALKIRIES];
- case TYPE_LICH_KING:
- return EncounterStatus[TYPE_LICH_KING];
- case TYPE_ANUBARAK:
- return EncounterStatus[TYPE_ANUBARAK];
case TYPE_COUNTER:
return TrialCounter;
case TYPE_EVENT:
@@ -549,7 +575,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case 6000:
case 6005:
case 6010:
- EventNPCId = NPC_TIRION;
+ return NPC_TIRION;
break;
case 5010:
case 5030:
@@ -558,7 +584,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case 5060:
case 5070:
case 5080:
- EventNPCId = NPC_LICH_KING_1;
+ return NPC_LICH_KING_1;
break;
case 120:
case 122:
@@ -567,7 +593,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case 3051:
case 3071:
case 4020:
- EventNPCId = NPC_VARIAN;
+ return NPC_VARIAN;
break;
case 130:
case 132:
@@ -576,7 +602,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case 3070:
case 3081:
case 4030:
- EventNPCId = NPC_GARROSH;
+ return NPC_GARROSH;
break;
case 1110:
case 1120:
@@ -588,13 +614,12 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case 1142:
case 1144:
case 1150:
- EventNPCId = NPC_FIZZLEBANG;
+ return NPC_FIZZLEBANG;
break;
default:
- EventNPCId = NPC_TIRION;
+ return NPC_TIRION;
break;
};
- return EventNPCId;
default:
break;
}
@@ -612,7 +637,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
NotOneButTwoJormungarsTimer -= diff;
}
- if (GetData(TYPE_CRUSADERS) == IN_PROGRESS && ResilienceWillFixItTimer)
+ if (GetBossState(BOSS_CRUSADERS) == SPECIAL && ResilienceWillFixItTimer)
{
if (ResilienceWillFixItTimer <= diff)
ResilienceWillFixItTimer = 0;
@@ -628,7 +653,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
std::ostringstream saveStream;
for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
- saveStream << EncounterStatus[i] << ' ';
+ saveStream << GetBossState(i) << ' ';
saveStream << TrialCounter;
SaveDataBuffer = saveStream.str();
@@ -657,10 +682,11 @@ class instance_trial_of_the_crusader : public InstanceMapScript
for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
{
- loadStream >> EncounterStatus[i];
-
- if (EncounterStatus[i] == IN_PROGRESS)
- EncounterStatus[i] = NOT_STARTED;
+ uint32 tmpState;
+ loadStream >> tmpState;
+ if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
+ tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
}
loadStream >> TrialCounter;
@@ -696,13 +722,54 @@ class instance_trial_of_the_crusader : public InstanceMapScript
return TrialCounter == 50;
case A_TRIBUTE_TO_IMMORTALITY_HORDE:
case A_TRIBUTE_TO_IMMORTALITY_ALLIANCE:
- return TrialCounter == 50 && TributeToImmortalityElegible;
+ return TrialCounter == 50 && TributeToImmortalityEligible;
case A_TRIBUTE_TO_DEDICATED_INSANITY:
return false/*uiGrandCrusaderAttemptsLeft == 50 && !bHasAtAnyStagePlayerEquippedTooGoodItem*/;
+ default:
+ break;
}
return false;
}
+
+ protected:
+ uint32 TrialCounter;
+ uint32 EventStage;
+ uint32 EventTimer;
+ uint32 NorthrendBeasts;
+ bool NeedSave;
+ std::string SaveDataBuffer;
+
+ uint64 BarrentGUID;
+ uint64 TirionGUID;
+ uint64 TirionFordringGUID;
+ uint64 FizzlebangGUID;
+ uint64 GarroshGUID;
+ uint64 VarianGUID;
+
+ uint64 GormokGUID;
+ uint64 AcidmawGUID;
+ uint64 DreadscaleGUID;
+ uint64 IcehowlGUID;
+ uint64 JaraxxusGUID;
+ uint64 ChampionsControllerGUID;
+ uint64 DarkbaneGUID;
+ uint64 LightbaneGUID;
+ uint64 AnubarakGUID;
+
+ uint64 CrusadersCacheGUID;
+ uint64 FloorGUID;
+ uint64 TributeChestGUID;
+ uint64 MainGateDoorGUID;
+ uint64 EastPortcullisGUID;
+ uint64 WebDoorGUID;
+
+ // Achievement stuff
+ uint32 NotOneButTwoJormungarsTimer;
+ uint32 ResilienceWillFixItTimer;
+ uint8 SnoboldCount;
+ uint8 MistressOfPainCount;
+ bool TributeToImmortalityEligible;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index 0476b2cbacb..b4d35afa8fb 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -16,13 +16,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: Trial Of the crusader
-SD%Complete: ??%
-SDComment: event script based on /dev/rsa
-SDCategory: trial_of_the_crusader
-EndScriptData */
-
//Known Bugs:
// - Need better implementation of Gossip and correct gossip text and option
@@ -30,6 +23,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "trial_of_the_crusader.h"
+#include "Player.h"
enum eYells
{
@@ -84,7 +78,7 @@ enum eYells
// Highlord Tirion Fordring - 36095
SAY_STAGE_4_06 = 0,
- SAY_STAGE_4_07 = 1,
+ SAY_STAGE_4_07 = 1
};
struct _Messages
@@ -97,23 +91,22 @@ struct _Messages
static _Messages _GossipMessage[]=
{
- {MSG_BEASTS, GOSSIP_ACTION_INFO_DEF+1, false, TYPE_BEASTS},
- {MSG_JARAXXUS, GOSSIP_ACTION_INFO_DEF+2, false, TYPE_JARAXXUS},
- {MSG_CRUSADERS, GOSSIP_ACTION_INFO_DEF+3, false, TYPE_CRUSADERS},
- {MSG_VALKIRIES, GOSSIP_ACTION_INFO_DEF+4, false, TYPE_VALKIRIES},
- {MSG_LICH_KING, GOSSIP_ACTION_INFO_DEF+5, false, TYPE_ANUBARAK},
- {MSG_ANUBARAK, GOSSIP_ACTION_INFO_DEF+6, true, TYPE_ANUBARAK}
+ {MSG_BEASTS, GOSSIP_ACTION_INFO_DEF + 1, false, BOSS_BEASTS},
+ {MSG_JARAXXUS, GOSSIP_ACTION_INFO_DEF + 2, false, BOSS_JARAXXUS},
+ {MSG_CRUSADERS, GOSSIP_ACTION_INFO_DEF + 3, false, BOSS_CRUSADERS},
+ {MSG_VALKIRIES, GOSSIP_ACTION_INFO_DEF + 4, false, BOSS_VALKIRIES},
+ {MSG_LICH_KING, GOSSIP_ACTION_INFO_DEF + 5, false, BOSS_ANUBARAK},
+ {MSG_ANUBARAK, GOSSIP_ACTION_INFO_DEF + 6, true, BOSS_ANUBARAK}
};
enum
{
- NUM_MESSAGES = 6,
+ NUM_MESSAGES = 6
};
class npc_announcer_toc10 : public CreatureScript
{
public:
-
npc_announcer_toc10() : CreatureScript("npc_announcer_toc10") { }
struct npc_announcer_toc10AI : public ScriptedAI
@@ -136,20 +129,20 @@ class npc_announcer_toc10 : public CreatureScript
bool OnGossipHello(Player* player, Creature* creature)
{
- InstanceScript* instanceScript = creature->GetInstanceScript();
- if (!instanceScript)
+ InstanceScript* instance = creature->GetInstanceScript();
+ if (!instance)
return true;
char const* _message = "We are ready!";
- if (player->isInCombat() || instanceScript->IsEncounterInProgress() || instanceScript->GetData(TYPE_EVENT))
+ if (player->isInCombat() || instance->IsEncounterInProgress() || instance->GetData(TYPE_EVENT))
return true;
uint8 i = 0;
for (; i < NUM_MESSAGES; ++i)
{
- if ((!_GossipMessage[i].state && instanceScript->GetData(_GossipMessage[i].encounter) != DONE)
- || (_GossipMessage[i].state && instanceScript->GetData(_GossipMessage[i].encounter) == DONE))
+ if ((!_GossipMessage[i].state && instance->GetBossState(_GossipMessage[i].encounter) != DONE)
+ || (_GossipMessage[i].state && instance->GetBossState(_GossipMessage[i].encounter) == DONE))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, _message, GOSSIP_SENDER_MAIN, _GossipMessage[i].id);
break;
@@ -160,75 +153,65 @@ class npc_announcer_toc10 : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
{
player->PlayerTalkClass->ClearMenus();
player->CLOSE_GOSSIP_MENU();
- InstanceScript* instanceScript = creature->GetInstanceScript();
- if (!instanceScript)
+ InstanceScript* instance = creature->GetInstanceScript();
+ if (!instance)
return true;
- switch (action)
+ if (instance->GetBossState(BOSS_BEASTS) != DONE)
{
- case GOSSIP_ACTION_INFO_DEF+1:
- if (instanceScript->GetData(TYPE_BEASTS) != DONE)
- {
- instanceScript->SetData(TYPE_EVENT, 110);
- instanceScript->SetData(TYPE_NORTHREND_BEASTS, NOT_STARTED);
- instanceScript->SetData(TYPE_BEASTS, NOT_STARTED);
- }
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- if (Creature* jaraxxus = Unit::GetCreature(*player, instanceScript->GetData64(NPC_JARAXXUS)))
- {
- jaraxxus->RemoveAurasDueToSpell(SPELL_JARAXXUS_CHAINS);
- jaraxxus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- jaraxxus->SetReactState(REACT_AGGRESSIVE);
- jaraxxus->SetInCombatWithZone();
- }
- else if (instanceScript->GetData(TYPE_JARAXXUS) != DONE)
- {
- instanceScript->SetData(TYPE_EVENT, 1010);
- instanceScript->SetData(TYPE_JARAXXUS, NOT_STARTED);
- }
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- if (instanceScript->GetData(TYPE_CRUSADERS) != DONE)
- {
- if (player->GetTeam() == ALLIANCE)
- instanceScript->SetData(TYPE_EVENT, 3000);
- else
- instanceScript->SetData(TYPE_EVENT, 3001);
- instanceScript->SetData(TYPE_CRUSADERS, NOT_STARTED);
- }
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- if (instanceScript->GetData(TYPE_VALKIRIES) != DONE)
- {
- instanceScript->SetData(TYPE_EVENT, 4000);
- instanceScript->SetData(TYPE_VALKIRIES, NOT_STARTED);
- }
- break;
- case GOSSIP_ACTION_INFO_DEF+5:
+ instance->SetData(TYPE_EVENT, 110);
+ instance->SetData(TYPE_NORTHREND_BEASTS, NOT_STARTED);
+ instance->SetBossState(BOSS_BEASTS, NOT_STARTED);
+ }
+ else if (instance->GetBossState(BOSS_JARAXXUS) != DONE)
+ {
+ // if Jaraxxus is spawned, but the raid wiped
+ if (Creature* jaraxxus = Unit::GetCreature(*player, instance->GetData64(NPC_JARAXXUS)))
{
- if (instanceScript->GetData(TYPE_LICH_KING) != DONE && !player->isGameMaster())
- return true;
-
- if (GameObject* floor = GameObject::GetGameObject(*player, instanceScript->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
- floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
+ jaraxxus->RemoveAurasDueToSpell(SPELL_JARAXXUS_CHAINS);
+ jaraxxus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ jaraxxus->SetReactState(REACT_DEFENSIVE);
+ jaraxxus->SetInCombatWithZone();
+ }
+ else
+ {
+ instance->SetData(TYPE_EVENT, 1010);
+ instance->SetBossState(BOSS_JARAXXUS, NOT_STARTED);
+ }
+ }
+ else if (instance->GetBossState(BOSS_CRUSADERS) != DONE)
+ {
+ if (player->GetTeam() == ALLIANCE)
+ instance->SetData(TYPE_EVENT, 3000);
+ else
+ instance->SetData(TYPE_EVENT, 3001);
+ instance->SetBossState(BOSS_CRUSADERS, NOT_STARTED);
+ }
+ else if (instance->GetBossState(BOSS_VALKIRIES) != DONE)
+ {
+ instance->SetData(TYPE_EVENT, 4000);
+ instance->SetBossState(BOSS_VALKIRIES, NOT_STARTED);
+ }
+ else if (instance->GetBossState(BOSS_LICH_KING) != DONE)
+ {
+ if (GameObject* floor = GameObject::GetGameObject(*player, instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
+ floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
- creature->CastSpell(creature, 69016, false);
+ creature->CastSpell(creature, SPELL_CORPSE_TELEPORT, false);
+ creature->CastSpell(creature, SPELL_DESTROY_FLOOR_KNOCKUP, false);
- Creature* anubArak = Unit::GetCreature(*creature, instanceScript->GetData64(NPC_ANUBARAK));
- if (!anubArak || !anubArak->isAlive())
- anubArak = creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
+ Creature* anubArak = Unit::GetCreature(*creature, instance->GetData64(NPC_ANUBARAK));
+ if (!anubArak || !anubArak->isAlive())
+ anubArak = creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
- instanceScript->SetData(TYPE_ANUBARAK, NOT_STARTED);
+ instance->SetBossState(BOSS_ANUBARAK, NOT_STARTED);
- if (creature->IsVisible())
- creature->SetVisible(false);
- break;
- }
+ if (creature->IsVisible())
+ creature->SetVisible(false);
}
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
return true;
@@ -243,112 +226,130 @@ class npc_announcer_toc10 : public CreatureScript
class boss_lich_king_toc : public CreatureScript
{
public:
-
boss_lich_king_toc() : CreatureScript("boss_lich_king_toc") { }
struct boss_lich_king_tocAI : public ScriptedAI
{
boss_lich_king_tocAI(Creature* creature) : ScriptedAI(creature)
{
- instance = creature->GetInstanceScript();
+ _instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
- uint32 m_uiUpdateTimer;
-
void Reset()
{
- m_uiUpdateTimer = 0;
+ _updateTimer = 0;
me->SetReactState(REACT_PASSIVE);
- if (Creature* summoned = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[2].GetPositionX(), ToCCommonLoc[2].GetPositionY(), ToCCommonLoc[2].GetPositionZ(), 5, TEMPSUMMON_TIMED_DESPAWN, 60000))
+ if (Creature* summoned = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[2].GetPositionX(), ToCCommonLoc[2].GetPositionY(), ToCCommonLoc[2].GetPositionZ(), 5, TEMPSUMMON_TIMED_DESPAWN, 1*MINUTE*IN_MILLISECONDS))
{
summoned->CastSpell(summoned, 51807, false);
- summoned->SetDisplayId(11686);
+ summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid2);
}
- if (instance) instance->SetData(TYPE_LICH_KING, IN_PROGRESS);
+ if (_instance)
+ _instance->SetBossState(BOSS_LICH_KING, IN_PROGRESS);
me->SetWalk(true);
}
void MovementInform(uint32 uiType, uint32 uiId)
{
- if (uiType != POINT_MOTION_TYPE || !instance)
+ if (uiType != POINT_MOTION_TYPE || !_instance)
return;
+
switch (uiId)
{
case 0:
- instance->SetData(TYPE_EVENT, 5030);
+ _instance->SetData(TYPE_EVENT, 5030);
break;
case 1:
- instance->SetData(TYPE_EVENT, 5050);
+ _instance->SetData(TYPE_EVENT, 5050);
+ break;
+ default:
break;
}
}
void UpdateAI(const uint32 uiDiff)
{
- if (!instance)
+ if (!_instance)
return;
- if (instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING_1)
+ if (_instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING_1)
return;
- m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
- if (m_uiUpdateTimer <= uiDiff)
+ _updateTimer = _instance->GetData(TYPE_EVENT_TIMER);
+ if (_updateTimer <= uiDiff)
{
- switch (instance->GetData(TYPE_EVENT))
+ switch (_instance->GetData(TYPE_EVENT))
{
case 5010:
Talk(SAY_STAGE_4_02);
- m_uiUpdateTimer = 3000;
+ _updateTimer = 3*IN_MILLISECONDS;
me->GetMotionMaster()->MovePoint(0, LichKingLoc[0]);
- instance->SetData(TYPE_EVENT, 5020);
+ _instance->SetData(TYPE_EVENT, 5020);
break;
case 5030:
Talk(SAY_STAGE_4_04);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
- m_uiUpdateTimer = 10000;
- instance->SetData(TYPE_EVENT, 5040);
+ _updateTimer = 10*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5040);
break;
case 5040:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
me->GetMotionMaster()->MovePoint(1, LichKingLoc[1]);
- m_uiUpdateTimer = 1000;
- instance->SetData(TYPE_EVENT, 0);
+ _updateTimer = 1*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 5050:
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 5060);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5060);
break;
case 5060:
Talk(SAY_STAGE_4_05);
me->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
- m_uiUpdateTimer = 2500;
- instance->SetData(TYPE_EVENT, 5070);
+ _updateTimer = 2.5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5070);
break;
case 5070:
me->CastSpell(me, 68198, false);
- m_uiUpdateTimer = 1500;
- instance->SetData(TYPE_EVENT, 5080);
+ _updateTimer = 1.5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5080);
break;
case 5080:
- if (GameObject* go = instance->instance->GetGameObject(instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
- go->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
- me->CastSpell(me, 69016, false);
- instance->SetData(TYPE_LICH_KING, DONE);
- Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_ANUBARAK));
- if (!temp || !temp->isAlive())
- temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
-
- instance->SetData(TYPE_EVENT, 0);
+ if (GameObject* go = _instance->instance->GetGameObject(_instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
+ {
+ go->SetDisplayId(DISPLAYID_DESTROYED_FLOOR);
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_NODESPAWN);
+ go->SetGoState(GO_STATE_ACTIVE);
+ }
+
+ me->CastSpell(me, SPELL_CORPSE_TELEPORT, false);
+ me->CastSpell(me, SPELL_DESTROY_FLOOR_KNOCKUP, false);
+
+ if (_instance)
+ {
+ _instance->SetBossState(BOSS_LICH_KING, DONE);
+ Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK));
+ if (!temp || !temp->isAlive())
+ temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
+
+ _instance->SetData(TYPE_EVENT, 0);
+ }
me->DespawnOrUnsummon();
- m_uiUpdateTimer = 20000;
+ _updateTimer = 20*IN_MILLISECONDS;
+ break;
+ default:
break;
}
- } else m_uiUpdateTimer -= uiDiff;
+ }
+ else
+ _updateTimer -= uiDiff;
- instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ _instance->SetData(TYPE_EVENT_TIMER, _updateTimer);
}
+
+ private:
+ InstanceScript* _instance;
+ uint32 _updateTimer;
};
CreatureAI* GetAI(Creature* creature) const
@@ -360,27 +361,20 @@ class boss_lich_king_toc : public CreatureScript
class npc_fizzlebang_toc : public CreatureScript
{
public:
-
npc_fizzlebang_toc() : CreatureScript("npc_fizzlebang_toc") { }
struct npc_fizzlebang_tocAI : public ScriptedAI
{
- npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), Summons(me)
+ npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), _summons(me)
{
- instance = me->GetInstanceScript();
+ _instance = me->GetInstanceScript();
}
- InstanceScript* instance;
- SummonList Summons;
- uint32 m_uiUpdateTimer;
- uint64 m_uiPortalGUID;
- uint64 m_uiTriggerGUID;
-
void JustDied(Unit* killer)
{
Talk(SAY_STAGE_1_06, killer->GetGUID());
- instance->SetData(TYPE_EVENT, 1180);
- if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
+ _instance->SetData(TYPE_EVENT, 1180);
+ if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))
{
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
temp->SetReactState(REACT_AGGRESSIVE);
@@ -391,7 +385,7 @@ class npc_fizzlebang_toc : public CreatureScript
void Reset()
{
me->SetWalk(true);
- m_uiPortalGUID = 0;
+ _portalGUID = 0;
me->GetMotionMaster()->MovePoint(1, ToCCommonLoc[10].GetPositionX(), ToCCommonLoc[10].GetPositionY()-60, ToCCommonLoc[10].GetPositionZ());
}
@@ -404,42 +398,44 @@ class npc_fizzlebang_toc : public CreatureScript
{
case 1:
me->SetWalk(false);
- if (instance)
+ if (_instance)
{
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- instance->SetData(TYPE_EVENT, 1120);
- instance->SetData(TYPE_EVENT_TIMER, 1000);
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
+ _instance->SetData(TYPE_EVENT, 1120);
+ _instance->SetData(TYPE_EVENT_TIMER, 1*IN_MILLISECONDS);
}
break;
+ default:
+ break;
}
}
void JustSummoned(Creature* summoned)
{
- Summons.Summon(summoned);
+ _summons.Summon(summoned);
}
void UpdateAI(const uint32 uiDiff)
{
- if (!instance)
+ if (!_instance)
return;
- if (instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG)
+ if (_instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG)
return;
- m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
- if (m_uiUpdateTimer <= uiDiff)
+ _updateTimer = _instance->GetData(TYPE_EVENT_TIMER);
+ if (_updateTimer <= uiDiff)
{
- switch (instance->GetData(TYPE_EVENT))
+ switch (_instance->GetData(TYPE_EVENT))
{
case 1110:
- instance->SetData(TYPE_EVENT, 1120);
- m_uiUpdateTimer = 4000;
+ _instance->SetData(TYPE_EVENT, 1120);
+ _updateTimer = 4*IN_MILLISECONDS;
break;
case 1120:
Talk(SAY_STAGE_1_02);
- instance->SetData(TYPE_EVENT, 1130);
- m_uiUpdateTimer = 12000;
+ _instance->SetData(TYPE_EVENT, 1130);
+ _updateTimer = 12*IN_MILLISECONDS;
break;
case 1130:
me->GetMotionMaster()->MovementExpired();
@@ -447,18 +443,18 @@ class npc_fizzlebang_toc : public CreatureScript
me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI);
if (Unit* pTrigger = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 4.69494f, TEMPSUMMON_MANUAL_DESPAWN))
{
- m_uiTriggerGUID = pTrigger->GetGUID();
+ _triggerGUID = pTrigger->GetGUID();
pTrigger->SetObjectScale(2.0f);
- pTrigger->SetDisplayId(22862);
+ pTrigger->SetDisplayId(pTrigger->ToCreature()->GetCreatureTemplate()->Modelid1);
pTrigger->CastSpell(pTrigger, SPELL_WILFRED_PORTAL, false);
}
- instance->SetData(TYPE_EVENT, 1132);
- m_uiUpdateTimer = 4000;
+ _instance->SetData(TYPE_EVENT, 1132);
+ _updateTimer = 4*IN_MILLISECONDS;
break;
case 1132:
me->GetMotionMaster()->MovementExpired();
- instance->SetData(TYPE_EVENT, 1134);
- m_uiUpdateTimer = 4000;
+ _instance->SetData(TYPE_EVENT, 1134);
+ _updateTimer = 4*IN_MILLISECONDS;
break;
case 1134:
me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI);
@@ -467,14 +463,14 @@ class npc_fizzlebang_toc : public CreatureScript
pPortal->SetReactState(REACT_PASSIVE);
pPortal->SetObjectScale(2.0f);
pPortal->CastSpell(pPortal, SPELL_WILFRED_PORTAL, false);
- m_uiPortalGUID = pPortal->GetGUID();
+ _portalGUID = pPortal->GetGUID();
}
- m_uiUpdateTimer = 4000;
- instance->SetData(TYPE_EVENT, 1135);
+ _updateTimer = 4*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 1135);
break;
case 1135:
- instance->SetData(TYPE_EVENT, 1140);
- m_uiUpdateTimer = 3000;
+ _instance->SetData(TYPE_EVENT, 1140);
+ _updateTimer = 3*IN_MILLISECONDS;
break;
case 1140:
Talk(SAY_STAGE_1_04);
@@ -484,27 +480,27 @@ class npc_fizzlebang_toc : public CreatureScript
temp->SetReactState(REACT_PASSIVE);
temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY()-10, ToCCommonLoc[1].GetPositionZ());
}
- instance->SetData(TYPE_EVENT, 1142);
- m_uiUpdateTimer = 5000;
+ _instance->SetData(TYPE_EVENT, 1142);
+ _updateTimer = 5*IN_MILLISECONDS;
break;
case 1142:
- if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
+ if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))
temp->SetTarget(me->GetGUID());
- if (Creature* pTrigger = Unit::GetCreature(*me, m_uiTriggerGUID))
+ if (Creature* pTrigger = Unit::GetCreature(*me, _triggerGUID))
pTrigger->DespawnOrUnsummon();
- if (Creature* pPortal = Unit::GetCreature(*me, m_uiPortalGUID))
+ if (Creature* pPortal = Unit::GetCreature(*me, _portalGUID))
pPortal->DespawnOrUnsummon();
- instance->SetData(TYPE_EVENT, 1144);
- m_uiUpdateTimer = 10000;
+ _instance->SetData(TYPE_EVENT, 1144);
+ _updateTimer = 10*IN_MILLISECONDS;
break;
case 1144:
- if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
+ if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))
temp->AI()->Talk(SAY_STAGE_1_05);
- instance->SetData(TYPE_EVENT, 1150);
- m_uiUpdateTimer = 5000;
+ _instance->SetData(TYPE_EVENT, 1150);
+ _updateTimer = 5*IN_MILLISECONDS;
break;
case 1150:
- if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
+ if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))
{
//1-shot Fizzlebang
temp->CastSpell(me, 67888, false);
@@ -512,13 +508,22 @@ class npc_fizzlebang_toc : public CreatureScript
temp->AddThreat(me, 1000.0f);
temp->AI()->AttackStart(me);
}
- instance->SetData(TYPE_EVENT, 1160);
- m_uiUpdateTimer = 3000;
+ _instance->SetData(TYPE_EVENT, 1160);
+ _updateTimer = 3*IN_MILLISECONDS;
break;
}
- } else m_uiUpdateTimer -= uiDiff;
- instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ }
+ else
+ _updateTimer -= uiDiff;
+ _instance->SetData(TYPE_EVENT_TIMER, _updateTimer);
}
+
+ private:
+ InstanceScript* _instance;
+ SummonList _summons;
+ uint32 _updateTimer;
+ uint64 _portalGUID;
+ uint64 _triggerGUID;
};
CreatureAI* GetAI(Creature* creature) const
@@ -530,53 +535,49 @@ class npc_fizzlebang_toc : public CreatureScript
class npc_tirion_toc : public CreatureScript
{
public:
-
npc_tirion_toc() : CreatureScript("npc_tirion_toc") { }
struct npc_tirion_tocAI : public ScriptedAI
{
npc_tirion_tocAI(Creature* creature) : ScriptedAI(creature)
{
- instance = me->GetInstanceScript();
+ _instance = me->GetInstanceScript();
}
- InstanceScript* instance;
- uint32 m_uiUpdateTimer;
-
void Reset() {}
void AttackStart(Unit* /*who*/) {}
void UpdateAI(const uint32 uiDiff)
{
- if (!instance)
+ if (!_instance)
return;
- if (instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION)
+ if (_instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION)
return;
- m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
- if (m_uiUpdateTimer <= uiDiff)
+ _updateTimer = _instance->GetData(TYPE_EVENT_TIMER);
+ if (_updateTimer <= uiDiff)
{
- switch (instance->GetData(TYPE_EVENT))
+ switch (_instance->GetData(TYPE_EVENT))
{
case 110:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
Talk(SAY_STAGE_0_01);
- m_uiUpdateTimer = 22000;
- instance->SetData(TYPE_EVENT, 120);
+ _updateTimer = 22*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 120);
break;
case 140:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
Talk(SAY_STAGE_0_02);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 150);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 150);
break;
case 150:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
- if (instance->GetData(TYPE_BEASTS) != DONE)
+ if (_instance->GetBossState(BOSS_BEASTS) != DONE)
{
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = me->SummonCreature(NPC_GORMOK, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30*IN_MILLISECONDS))
{
@@ -585,154 +586,133 @@ class npc_tirion_toc : public CreatureScript
temp->SetReactState(REACT_PASSIVE);
}
}
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 155);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 155);
break;
case 155:
- instance->SetData(TYPE_BEASTS, IN_PROGRESS);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 160);
+ // keep the raid in combat for the whole encounter, pauses included
+ me->SetInCombatWithZone();
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 160);
break;
case 200:
Talk(SAY_STAGE_0_04);
- m_uiUpdateTimer = 8000;
- instance->SetData(TYPE_EVENT, 205);
- break;
- case 205:
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 210);
- break;
- case 210:
- if (instance->GetData(TYPE_BEASTS) != DONE)
+ if (_instance->GetBossState(BOSS_BEASTS) != DONE)
{
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = me->SummonCreature(NPC_DREADSCALE, ToCSpawnLoc[1].GetPositionX(), ToCSpawnLoc[1].GetPositionY(), ToCSpawnLoc[1].GetPositionZ(), 5, TEMPSUMMON_MANUAL_DESPAWN))
{
- temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ());
- temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- temp->SetReactState(REACT_PASSIVE);
- }
- if (Creature* temp = me->SummonCreature(NPC_ACIDMAW, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ(), 5, TEMPSUMMON_MANUAL_DESPAWN))
- {
- temp->SetVisible(true);
+ temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[5].GetPositionX(), ToCCommonLoc[5].GetPositionY(), ToCCommonLoc[5].GetPositionZ());
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
temp->SetReactState(REACT_PASSIVE);
}
}
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 220);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 220);
break;
case 220:
- instance->SetData(TYPE_EVENT, 230);
+ _instance->SetData(TYPE_EVENT, 230);
break;
case 300:
Talk(SAY_STAGE_0_05);
- m_uiUpdateTimer = 8000;
- instance->SetData(TYPE_EVENT, 305);
- break;
- case 305:
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 310);
- break;
- case 310:
- if (instance->GetData(TYPE_BEASTS) != DONE)
+ if (_instance->GetBossState(BOSS_BEASTS) != DONE)
{
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = me->SummonCreature(NPC_ICEHOWL, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_DEAD_DESPAWN))
{
temp->GetMotionMaster()->MovePoint(2, ToCCommonLoc[5].GetPositionX(), ToCCommonLoc[5].GetPositionY(), ToCCommonLoc[5].GetPositionZ());
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
-
}
}
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 315);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 315);
break;
case 315:
- instance->SetData(TYPE_EVENT, 320);
+ _instance->SetData(TYPE_EVENT, 320);
break;
case 400:
Talk(SAY_STAGE_0_06);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 0);
+ me->getThreatManager().clearReferences();
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 666:
Talk(SAY_STAGE_0_WIPE);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 0);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 1010:
Talk(SAY_STAGE_1_01);
- m_uiUpdateTimer = 7000;
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ _updateTimer = 7*IN_MILLISECONDS;
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
me->SummonCreature(NPC_FIZZLEBANG, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 2, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
- instance->SetData(TYPE_EVENT, 0);
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 1180:
Talk(SAY_STAGE_1_07);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 0);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 2000:
Talk(SAY_STAGE_1_08);
- m_uiUpdateTimer = 18000;
- instance->SetData(TYPE_EVENT, 2010);
+ _updateTimer = 18*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 2010);
break;
case 2030:
Talk(SAY_STAGE_1_11);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 0);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 3000:
Talk(SAY_STAGE_2_01);
- m_uiUpdateTimer = 12000;
- instance->SetData(TYPE_EVENT, 3050);
+ _updateTimer = 12*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3050);
break;
case 3001:
Talk(SAY_STAGE_2_01);
- m_uiUpdateTimer = 12000;
- instance->SetData(TYPE_EVENT, 3051);
+ _updateTimer = 10*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3051);
break;
case 3060:
Talk(SAY_STAGE_2_03);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 3070);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3070);
break;
case 3061:
Talk(SAY_STAGE_2_03);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 3071);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3071);
break;
//Summoning crusaders
case 3091:
if (Creature* pChampionController = me->SummonCreature(NPC_CHAMPIONS_CONTROLLER, ToCCommonLoc[1]))
pChampionController->AI()->SetData(0, HORDE);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 3092);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3092);
break;
//Summoning crusaders
case 3090:
if (Creature* pChampionController = me->SummonCreature(NPC_CHAMPIONS_CONTROLLER, ToCCommonLoc[1]))
pChampionController->AI()->SetData(0, ALLIANCE);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 3092);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3092);
break;
case 3092:
- if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
+ if (Creature* pChampionController = Unit::GetCreature((*me), _instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(1, NOT_STARTED);
- instance->SetData(TYPE_EVENT, 3095);
+ _instance->SetData(TYPE_EVENT, 3095);
break;
//Crusaders battle end
case 3100:
Talk(SAY_STAGE_2_06);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 0);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 4000:
Talk(SAY_STAGE_3_01);
- m_uiUpdateTimer = 13000;
- instance->SetData(TYPE_EVENT, 4010);
+ _updateTimer = 13*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 4010);
break;
case 4010:
Talk(SAY_STAGE_3_02);
@@ -750,78 +730,88 @@ class npc_tirion_toc : public CreatureScript
temp->SummonCreature(NPC_DARK_ESSENCE, TwinValkyrsLoc[2].GetPositionX(), TwinValkyrsLoc[2].GetPositionY(), TwinValkyrsLoc[2].GetPositionZ());
temp->SummonCreature(NPC_DARK_ESSENCE, TwinValkyrsLoc[3].GetPositionX(), TwinValkyrsLoc[3].GetPositionY(), TwinValkyrsLoc[3].GetPositionZ());
}
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 4015);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 4015);
break;
case 4015:
- instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
- if (Creature* temp = Unit::GetCreature((*me), instance->GetData64(NPC_LIGHTBANE)))
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
+ if (Creature* temp = Unit::GetCreature((*me), _instance->GetData64(NPC_LIGHTBANE)))
{
temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ());
temp->SetVisible(true);
}
- if (Creature* temp = Unit::GetCreature((*me), instance->GetData64(NPC_DARKBANE)))
+ if (Creature* temp = Unit::GetCreature((*me), _instance->GetData64(NPC_DARKBANE)))
{
temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ());
temp->SetVisible(true);
}
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 4016);
+ _updateTimer = 10*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 4016);
break;
case 4016:
- instance->SetData(TYPE_EVENT, 4017);
+ _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR));
+ _instance->SetData(TYPE_EVENT, 4017);
break;
case 4040:
- m_uiUpdateTimer = 60000;
- instance->SetData(TYPE_EVENT, 5000);
+ _updateTimer = 1*MINUTE*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5000);
break;
case 5000:
Talk(SAY_STAGE_4_01);
- m_uiUpdateTimer = 10000;
- instance->SetData(TYPE_EVENT, 5005);
+ _updateTimer = 10*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5005);
break;
case 5005:
- m_uiUpdateTimer = 8000;
- instance->SetData(TYPE_EVENT, 5010);
+ _updateTimer = 8*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 5010);
me->SummonCreature(NPC_LICH_KING_1, ToCCommonLoc[2].GetPositionX(), ToCCommonLoc[2].GetPositionY(), ToCCommonLoc[2].GetPositionZ(), 5);
break;
case 5020:
Talk(SAY_STAGE_4_03);
- m_uiUpdateTimer = 1000;
- instance->SetData(TYPE_EVENT, 0);
+ _updateTimer = 1*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 0);
break;
case 6000:
me->SummonCreature(NPC_TIRION_FORDRING, EndSpawnLoc[0].GetPositionX(), EndSpawnLoc[0].GetPositionY(), EndSpawnLoc[0].GetPositionZ());
me->SummonCreature(NPC_ARGENT_MAGE, EndSpawnLoc[1].GetPositionX(), EndSpawnLoc[1].GetPositionY(), EndSpawnLoc[1].GetPositionZ());
me->SummonGameObject(GO_PORTAL_TO_DALARAN, EndSpawnLoc[2].GetPositionX(), EndSpawnLoc[2].GetPositionY(), EndSpawnLoc[2].GetPositionZ(), 5, 0, 0, 0, 0, 0);
- m_uiUpdateTimer = 20000;
- instance->SetData(TYPE_EVENT, 6005);
+ _updateTimer = 20*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 6005);
break;
case 6005:
- if (Creature* tirionFordring = Unit::GetCreature((*me), instance->GetData64(NPC_TIRION_FORDRING)))
+ if (Creature* tirionFordring = Unit::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING)))
tirionFordring->AI()->Talk(SAY_STAGE_4_06);
- m_uiUpdateTimer = 20000;
- instance->SetData(TYPE_EVENT, 6010);
+ _updateTimer = 20*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 6010);
break;
case 6010:
if (IsHeroic())
{
- if (Creature* tirionFordring = Unit::GetCreature((*me), instance->GetData64(NPC_TIRION_FORDRING)))
+ if (Creature* tirionFordring = Unit::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING)))
tirionFordring->AI()->Talk(SAY_STAGE_4_07);
- m_uiUpdateTimer = 60000;
- instance->SetData(TYPE_ANUBARAK, SPECIAL);
- instance->SetData(TYPE_EVENT, 6020);
- } else instance->SetData(TYPE_EVENT, 6030);
+ _updateTimer = 1*MINUTE*IN_MILLISECONDS;
+ _instance->SetBossState(BOSS_ANUBARAK, SPECIAL);
+ _instance->SetData(TYPE_EVENT, 6020);
+ }
+ else
+ _instance->SetData(TYPE_EVENT, 6030);
break;
case 6020:
me->DespawnOrUnsummon();
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 6030);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 6030);
+ break;
+ default:
break;
}
- } else m_uiUpdateTimer -= uiDiff;
- instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ }
+ else
+ _updateTimer -= uiDiff;
+ _instance->SetData(TYPE_EVENT_TIMER, _updateTimer);
}
+ private:
+ InstanceScript* _instance;
+ uint32 _updateTimer;
};
CreatureAI* GetAI(Creature* creature) const
@@ -833,76 +823,79 @@ class npc_tirion_toc : public CreatureScript
class npc_garrosh_toc : public CreatureScript
{
public:
-
npc_garrosh_toc() : CreatureScript("npc_garrosh_toc") { }
struct npc_garrosh_tocAI : public ScriptedAI
{
npc_garrosh_tocAI(Creature* creature) : ScriptedAI(creature)
{
- instance = me->GetInstanceScript();
+ _instance = me->GetInstanceScript();
}
- InstanceScript* instance;
- uint32 m_uiUpdateTimer;
-
void Reset() {}
void AttackStart(Unit* /*who*/) {}
void UpdateAI(const uint32 uiDiff)
{
- if (!instance)
+ if (!_instance)
return;
- if (instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH)
+ if (_instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH)
return;
- m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
- if (m_uiUpdateTimer <= uiDiff)
+ _updateTimer = _instance->GetData(TYPE_EVENT_TIMER);
+ if (_updateTimer <= uiDiff)
{
- switch (instance->GetData(TYPE_EVENT))
+ switch (_instance->GetData(TYPE_EVENT))
{
case 130:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
Talk(SAY_STAGE_0_03h);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 132);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 132);
break;
case 132:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 140);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 140);
break;
case 2010:
Talk(SAY_STAGE_1_09);
- m_uiUpdateTimer = 9000;
- instance->SetData(TYPE_EVENT, 2020);
+ _updateTimer = 9*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 2020);
break;
case 3050:
Talk(SAY_STAGE_2_02h);
- m_uiUpdateTimer = 15000;
- instance->SetData(TYPE_EVENT, 3060);
+ _updateTimer = 15*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3060);
break;
case 3070:
Talk(SAY_STAGE_2_04h);
- m_uiUpdateTimer = 6000;
- instance->SetData(TYPE_EVENT, 3080);
+ _updateTimer = 6*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3080);
break;
case 3081:
Talk(SAY_STAGE_2_05h);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 3091);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3091);
break;
case 4030:
Talk(SAY_STAGE_3_03h);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 4040);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 4040);
+ break;
+ default:
break;
}
- } else m_uiUpdateTimer -= uiDiff;
- instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ }
+ else
+ _updateTimer -= uiDiff;
+ _instance->SetData(TYPE_EVENT_TIMER, _updateTimer);
}
+ private:
+ InstanceScript* _instance;
+ uint32 _updateTimer;
};
CreatureAI* GetAI(Creature* creature) const
@@ -914,76 +907,79 @@ class npc_garrosh_toc : public CreatureScript
class npc_varian_toc : public CreatureScript
{
public:
-
npc_varian_toc() : CreatureScript("npc_varian_toc") { }
struct npc_varian_tocAI : public ScriptedAI
{
npc_varian_tocAI(Creature* creature) : ScriptedAI(creature)
{
- instance = me->GetInstanceScript();
+ _instance = me->GetInstanceScript();
}
- InstanceScript* instance;
- uint32 m_uiUpdateTimer;
-
void Reset() {}
void AttackStart(Unit* /*who*/) {}
void UpdateAI(const uint32 uiDiff)
{
- if (!instance)
+ if (!_instance)
return;
- if (instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN)
+ if (_instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN)
return;
- m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
- if (m_uiUpdateTimer <= uiDiff)
+ _updateTimer = _instance->GetData(TYPE_EVENT_TIMER);
+ if (_updateTimer <= uiDiff)
{
- switch (instance->GetData(TYPE_EVENT))
+ switch (_instance->GetData(TYPE_EVENT))
{
case 120:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
Talk(SAY_STAGE_0_03a);
- m_uiUpdateTimer = 2000;
- instance->SetData(TYPE_EVENT, 122);
+ _updateTimer = 2*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 122);
break;
case 122:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 130);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 130);
break;
case 2020:
Talk(SAY_STAGE_1_10);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 2030);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 2030);
break;
case 3051:
Talk(SAY_STAGE_2_02a);
- m_uiUpdateTimer = 10000;
- instance->SetData(TYPE_EVENT, 3061);
+ _updateTimer = 17*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3061);
break;
case 3071:
Talk(SAY_STAGE_2_04a);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 3081);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3081);
break;
case 3080:
Talk(SAY_STAGE_2_05a);
- m_uiUpdateTimer = 3000;
- instance->SetData(TYPE_EVENT, 3090);
+ _updateTimer = 3*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 3090);
break;
case 4020:
Talk(SAY_STAGE_3_03a);
- m_uiUpdateTimer = 5000;
- instance->SetData(TYPE_EVENT, 4040);
+ _updateTimer = 5*IN_MILLISECONDS;
+ _instance->SetData(TYPE_EVENT, 4040);
+ break;
+ default:
break;
}
- } else m_uiUpdateTimer -= uiDiff;
- instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ }
+ else
+ _updateTimer -= uiDiff;
+ _instance->SetData(TYPE_EVENT_TIMER, _updateTimer);
}
+ private:
+ InstanceScript* _instance;
+ uint32 _updateTimer;
};
CreatureAI* GetAI(Creature* creature) const
@@ -994,8 +990,8 @@ class npc_varian_toc : public CreatureScript
void AddSC_trial_of_the_crusader()
{
- new npc_announcer_toc10();
new boss_lich_king_toc();
+ new npc_announcer_toc10();
new npc_fizzlebang_toc();
new npc_tirion_toc();
new npc_garrosh_toc();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
index 58cbd727963..70fe03c5e0f 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
@@ -7,12 +7,12 @@
enum
{
- TYPE_BEASTS = 0,
- TYPE_JARAXXUS = 1,
- TYPE_CRUSADERS = 2,
- TYPE_VALKIRIES = 3,
- TYPE_LICH_KING = 4,
- TYPE_ANUBARAK = 5,
+ BOSS_BEASTS = 0,
+ BOSS_JARAXXUS = 1,
+ BOSS_CRUSADERS = 2,
+ BOSS_VALKIRIES = 3,
+ BOSS_LICH_KING = 4, // not really a boss but oh well
+ BOSS_ANUBARAK = 5,
MAX_ENCOUNTERS = 6,
TYPE_COUNTER = 8,
@@ -24,22 +24,26 @@ enum
DATA_SNOBOLD_COUNT = 301,
DATA_MISTRESS_OF_PAIN_COUNT = 302,
- DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE = 303,
+ DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE = 303,
INCREASE = 501,
DECREASE = 502,
SPELL_WILFRED_PORTAL = 68424,
SPELL_JARAXXUS_CHAINS = 67924,
+ SPELL_CORPSE_TELEPORT = 69016,
+ SPELL_DESTROY_FLOOR_KNOCKUP = 68193,
DESPAWN_TIME = 300000,
+
+ DISPLAYID_DESTROYED_FLOOR = 9060
};
const Position ToCSpawnLoc[]=
{
{563.912f, 261.625f, 394.73f, 4.70437f}, // 0 Center
{575.451f, 261.496f, 394.73f, 4.6541f}, // 1 Left
- {549.951f, 261.55f, 394.73f, 4.74835f}, // 2 Right
+ {549.951f, 261.55f, 394.73f, 4.74835f} // 2 Right
};
const Position ToCCommonLoc[]=
@@ -68,7 +72,7 @@ const Position ToCCommonLoc[]=
{558.811610f, 195.985779f, 394.671661f, 0}, // 13
{567.641724f, 195.351501f, 394.659943f, 0}, // 14
{560.633972f, 195.391708f, 395.137543f, 0}, // 15
- {565.816956f, 195.477921f, 395.136810f, 0}, // 16
+ {565.816956f, 195.477921f, 395.136810f, 0} // 16
};
const Position JaraxxusLoc[]=
@@ -76,7 +80,7 @@ const Position JaraxxusLoc[]=
{508.104767f, 138.247345f, 395.128052f, 0}, // 0 - Fizzlebang start location
{548.610596f, 139.807800f, 394.321838f, 0}, // 1 - fizzlebang end
{581.854187f, 138.0f, 394.319f, 0}, // 2 - Portal Right
- {550.558838f, 138.0f, 394.319f, 0}, // 3 - Portal Left
+ {550.558838f, 138.0f, 394.319f, 0} // 3 - Portal Left
};
const Position FactionChampionLoc[]=
@@ -102,21 +106,21 @@ const Position FactionChampionLoc[]=
{528.958f, 131.47f, 394.73f, 0}, // 16 - Horde Final Pos 6
{526.309f, 116.667f, 394.833f, 0}, // 17 - Horde Final Pos 7
{524.238f, 122.411f, 394.819f, 0}, // 18 - Horde Final Pos 8
- {521.901f, 128.488f, 394.832f, 0}, // 19 - Horde Final Pos 9
+ {521.901f, 128.488f, 394.832f, 0} // 19 - Horde Final Pos 9
};
const Position TwinValkyrsLoc[]=
{
- {586.060242f, 117.514809f, 394.314026f, 0}, // 0 - Dark essence 1
- {541.602112f, 161.879837f, 394.587952f, 0}, // 1 - Dark essence 2
- {541.021118f, 117.262932f, 395.314819f, 0}, // 2 - Light essence 1
- {586.200562f, 162.145523f, 394.626129f, 0}, // 3 - Light essence 2
+ {586.060242f, 117.514809f, 394.41f, 0}, // 0 - Dark essence 1
+ {541.602112f, 161.879837f, 394.41f, 0}, // 1 - Dark essence 2
+ {541.021118f, 117.262932f, 394.41f, 0}, // 2 - Light essence 1
+ {586.200562f, 162.145523f, 394.41f, 0} // 3 - Light essence 2
};
const Position LichKingLoc[]=
{
{563.549f, 152.474f, 394.393f, 0}, // 0 - Lich king start
- {563.547f, 141.613f, 393.908f, 0}, // 1 - Lich king end
+ {563.547f, 141.613f, 393.908f, 0} // 1 - Lich king end
};
const Position AnubarakLoc[]=
@@ -126,20 +130,20 @@ const Position AnubarakLoc[]=
{694.886353f, 102.484665f, 142.119614f, 0}, // 3 - Nerub Spawn
{694.500671f, 185.363968f, 142.117905f, 0}, // 5 - Nerub Spawn
{731.987244f, 83.3824690f, 142.119614f, 0}, // 2 - Nerub Spawn
- {740.184509f, 193.443390f, 142.117584f, 0}, // 4 - Nerub Spawn
+ {740.184509f, 193.443390f, 142.117584f, 0} // 4 - Nerub Spawn
};
const Position EndSpawnLoc[]=
{
{648.9167f, 131.0208f, 141.6161f, 0}, // 0 - Highlord Tirion Fordring
{649.1614f, 142.0399f, 141.3057f ,0}, // 1 - Argent Mage
- {644.6250f, 149.2743f, 140.6015f ,0}, // 2 - Portal to Dalaran
+ {644.6250f, 149.2743f, 140.6015f ,0} // 2 - Portal to Dalaran
};
enum euiWorldStates
{
UPDATE_STATE_UI_SHOW = 4390,
- UPDATE_STATE_UI_COUNT = 4389,
+ UPDATE_STATE_UI_COUNT = 4389
};
enum eNorthrendBeasts
@@ -152,7 +156,7 @@ enum eNorthrendBeasts
SNAKES_SPECIAL = 2003,
SNAKES_DONE = 2004,
ICEHOWL_IN_PROGRESS = 3000,
- ICEHOWL_DONE = 3001,
+ ICEHOWL_DONE = 3001
};
enum eAnnouncerMessages
@@ -162,7 +166,7 @@ enum eAnnouncerMessages
MSG_CRUSADERS = 724003,
MSG_VALKIRIES = 724004,
MSG_LICH_KING = 724005,
- MSG_ANUBARAK = 724006,
+ MSG_ANUBARAK = 724006
};
enum eCreature
@@ -227,7 +231,7 @@ enum eCreature
NPC_DARK_ESSENCE = 34567,
NPC_LIGHT_ESSENCE = 34568,
- NPC_ANUBARAK = 34564,
+ NPC_ANUBARAK = 34564
};
enum eGameObject
@@ -253,7 +257,7 @@ enum eGameObject
GO_MAIN_GATE_DOOR = 195647,
GO_EAST_PORTCULLIS = 195648,
GO_WEB_DOOR = 195485,
- GO_PORTAL_TO_DALARAN = 195682,
+ GO_PORTAL_TO_DALARAN = 195682
};
enum eAchievementData
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
index 8b39fc51766..759f8df7153 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
@@ -154,7 +154,7 @@ class boss_dred : public CreatureScript
++raptorsKilled;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_KING_DRED)
return raptorsKilled;
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
index 5d9acf4fca7..6ce56958d60 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
@@ -208,7 +208,7 @@ public:
ohNovos = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_OH_NOVOS)
return ohNovos ? 1 : 0;
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
index 969ccf4a059..79739280055 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "drak_tharon_keep.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
index 31b7787623c..d8c720b6f95 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
@@ -168,7 +168,7 @@ public:
instance->SetData(DATA_TROLLGORE_EVENT, DONE);
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_CONSUMPTION_JUNCTION)
return consumptionJunction ? 1 : 0;
diff --git a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
index 99401c1d944..552798e96eb 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
@@ -129,7 +129,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -174,7 +174,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
index 4fdcf96192b..714e5df6444 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
@@ -18,6 +18,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "forge_of_souls.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*
* TODO:
@@ -245,7 +247,7 @@ class boss_devourer_of_souls : public CreatureScript
threeFaced = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_THREE_FACED)
return threeFaced;
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
index c23479eea22..2f89d3bd503 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "forge_of_souls.h"
+#include "Player.h"
enum Events
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
index 618b2b6a9a6..3afc248ab9d 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "forge_of_souls.h"
+#include "Player.h"
#define MAX_ENCOUNTER 2
@@ -72,7 +73,7 @@ class instance_forge_of_souls : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -85,7 +86,7 @@ class instance_forge_of_souls : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
index 26ec9e53213..4f80fd746ee 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "halls_of_reflection.h"
+#include "Player.h"
enum Yells
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index e3604890e39..2e0c3364bbd 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "halls_of_reflection.h"
+#include "Player.h"
#define MAX_ENCOUNTER 3
@@ -244,7 +245,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -258,7 +259,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
index a12bd96f6df..cdc21eb25ec 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
@@ -186,7 +186,7 @@ class boss_garfrost : public CreatureScript
}
}
- uint32 GetData(uint32 /*type*/)
+ uint32 GetData(uint32 /*type*/) const
{
return _permafrostStack;
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 0d6e779c006..41cfc300958 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -21,6 +21,7 @@
#include "SpellAuraEffects.h"
#include "pit_of_saron.h"
#include "Vehicle.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index ef4d9182f82..44d9230a8d2 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -21,6 +21,7 @@
#include "SpellAuraEffects.h"
#include "pit_of_saron.h"
#include "Vehicle.h"
+#include "Player.h"
enum Yells
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
index a6537c45d6f..df0829b3376 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "pit_of_saron.h"
+#include "Player.h"
// positions for Martin Victus (37591) and Gorkun Ironskull (37592)
Position const SlaveLeaderPos = {689.7158f, -104.8736f, 513.7360f, 0.0f};
@@ -223,7 +224,7 @@ class instance_pit_of_saron : public InstanceMapScript
return true;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -236,7 +237,7 @@ class instance_pit_of_saron : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
index fd1aba79e83..3724aaf69e2 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
@@ -22,6 +22,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "gundrak.h"
+#include "SpellInfo.h"
enum Spells
{
@@ -190,7 +191,7 @@ class boss_drakkari_colossus : public CreatureScript
}
}
- uint32 GetData(uint32 data)
+ uint32 GetData(uint32 data) const
{
if (data == DATA_COLOSSUS_PHASE)
return phase;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
index 0d89c402054..595331d99d7 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
@@ -258,7 +258,7 @@ public:
impaledList.push_back(guid);
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_SHARE_THE_LOVE)
return shareTheLove;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
index c1301dbd2d0..45c55f7ec9b 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
@@ -144,7 +144,7 @@ public:
DoMeleeAttackIfReady();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_LESS_RABI)
return bPhase ? 0 : 1;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
index 251c9ec2b83..f35228d44d9 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellAuras.h"
#include "gundrak.h"
+#include "Player.h"
//Spells
enum Spells
@@ -324,4 +325,4 @@ void AddSC_boss_slad_ran()
new mob_slad_ran_constrictor();
new mob_slad_ran_viper();
new achievement_snakes_whyd_it_have_to_be_snakes();
-} \ No newline at end of file
+}
diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
index 15315c721d7..b8b9c2e9053 100644
--- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
+++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
@@ -18,6 +18,8 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "gundrak.h"
+#include "Player.h"
+#include "TemporarySummon.h"
#define MAX_ENCOUNTER 5
@@ -317,7 +319,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -338,7 +340,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 1b12f17ce64..f28b94c858e 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -20,6 +20,7 @@
#include "ScriptedCreature.h"
#include "SpellAuraEffects.h"
#include "icecrown_citadel.h"
+#include "Player.h"
enum Texts
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 5d3a6814eb2..9ee4bcea4d9 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -21,6 +21,7 @@
#include "ScriptedGossip.h"
#include "SpellAuras.h"
#include "icecrown_citadel.h"
+#include "Player.h"
enum ScriptTexts
{
@@ -496,7 +497,7 @@ class boss_deathbringer_saurfang : public CreatureScript
DoMeleeAttackIfReady();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_MADE_A_MESS)
if (_fallenChampionCastCount < RAID_MODE<uint32>(3, 5, 3, 5))
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
index 58856f9fb44..9c0f2139b1b 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
@@ -244,7 +244,7 @@ class boss_festergut : public CreatureScript
_maxInoculatedStack = data;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_INOCULATED_STACK)
return uint32(_maxInoculatedStack);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index e2f9faf6a97..8e7f891663e 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -22,6 +22,7 @@
#include "Group.h"
#include "icecrown_citadel.h"
#include "SpellInfo.h"
+#include "Player.h"
enum ScriptTexts
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 0c5cb0aba52..263d70c6a50 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -21,6 +21,7 @@
#include "SpellAuras.h"
#include "MapManager.h"
#include "icecrown_citadel.h"
+#include "Player.h"
enum ScriptTexts
{
@@ -246,7 +247,7 @@ class boss_lord_marrowgar : public CreatureScript
return &_coldflameLastPos;
}
- uint64 GetGUID(int32 type/* = 0 */)
+ uint64 GetGUID(int32 type/* = 0 */) const
{
if (type == DATA_COLDFLAME_GUID)
return _coldflameTarget;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index 64f49c6e0e7..4727504a4bd 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -536,21 +536,15 @@ class boss_professor_putricide : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
case DATA_EXPERIMENT_STAGE:
- {
- // ALSO MODIFIES!
- uint32 ret = uint32(_experimentState);
- _experimentState ^= true;
- return ret;
- }
+ return _experimentState;
case DATA_PHASE:
return _phase;
case DATA_ABOMINATION:
- summons.RemoveNotExisting();
return uint32(summons.HasEntry(NPC_MUTATED_ABOMINATION_10) || summons.HasEntry(NPC_MUTATED_ABOMINATION_25));
default:
break;
@@ -559,6 +553,12 @@ class boss_professor_putricide : public CreatureScript
return 0;
}
+ void SetData(uint32 id, uint32 data)
+ {
+ if (id == DATA_EXPERIMENT_STAGE)
+ _experimentState = bool(data);
+ }
+
void UpdateAI(uint32 const diff)
{
if ((!(events.GetPhaseMask() & PHASE_MASK_NOT_SELF) && !UpdateVictim()) || !CheckInRoom())
@@ -1010,7 +1010,11 @@ class spell_putricide_unstable_experiment : public SpellScriptLoader
if (GetCaster()->GetTypeId() != TYPEID_UNIT)
return;
- uint32 stage = GetCaster()->ToCreature()->AI()->GetData(DATA_EXPERIMENT_STAGE);
+ Creature* creature = GetCaster()->ToCreature();
+
+ uint32 stage = creature->AI()->GetData(DATA_EXPERIMENT_STAGE);
+ creature->AI()->SetData(DATA_EXPERIMENT_STAGE, stage ^ true);
+
Creature* target = NULL;
std::list<Creature*> creList;
GetCreatureListWithEntryInGrid(creList, GetCaster(), NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 200.0f);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index e3c0f2260df..a12a38b2f62 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -290,7 +290,7 @@ class boss_sindragosa : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_MYSTIC_BUFFET_STACK)
return _mysticBuffetStack;
@@ -978,7 +978,7 @@ class npc_sindragosa_trash : public CreatureScript
_isTaunted = data != 0;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_FROSTWYRM_OWNER)
return _frostwyrmId;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index ba1a0614cdf..ec5172aeb83 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -636,7 +636,7 @@ class boss_the_lich_king : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index 826c62a4390..cc40a076300 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -460,7 +460,7 @@ class boss_valithria_dreamwalker : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == MISSED_PORTALS)
return _missedPortals;
@@ -1019,7 +1019,7 @@ class npc_dream_portal : public CreatureScript
me->DespawnOrUnsummon();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
return (type == MISSED_PORTALS && _used) ? 0 : 1;
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index 31639a698ef..4e117d9f3e3 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -21,6 +21,7 @@
#include "SpellScript.h"
#include "Map.h"
#include "Creature.h"
+#include "SpellMgr.h"
#define ICCScriptName "instance_icecrown_citadel"
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
index af8aba57a6d..7ff995d4bcf 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
@@ -20,6 +20,7 @@
#include "InstanceScript.h"
#include "icecrown_citadel.h"
#include "Spell.h"
+#include "Player.h"
#define GOSSIP_SENDER_ICC_PORT 631
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 650f426d29c..89d7b0f764d 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -23,6 +23,9 @@
#include "PoolMgr.h"
#include "AccountMgr.h"
#include "icecrown_citadel.h"
+#include "Player.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
enum EventIds
{
@@ -589,7 +592,7 @@ class instance_icecrown_citadel : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -614,7 +617,7 @@ class instance_icecrown_citadel : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
index 636f2318712..a75f87e91af 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "naxxramas.h"
+#include "SpellInfo.h"
enum Yells
{
@@ -117,7 +118,7 @@ class boss_faerlina : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_FRENZY_DISPELS)
return _frenzyDispels;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
index 5a55a4f1c4b..7ed9e950b53 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "naxxramas.h"
+#include "SpellInfo.h"
#define SPELL_BOMBARD_SLIME 28280
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
index 93eab5df237..e7126ba7e33 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "naxxramas.h"
+#include "Player.h"
#define SAY_AGGRO RAND(-1533109, -1533110, -1533111)
#define SAY_SLAY -1533112
@@ -80,7 +81,7 @@ public:
safetyDance = data ? true : false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_SAFETY_DANCE)
return safetyDance ? 1 : 0;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index c88377da3f3..9167db45d20 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "naxxramas.h"
+#include "Player.h"
enum Yells
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
index 71623cb1959..183d56a48c0 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
@@ -85,7 +85,7 @@ class boss_loatheb : public CreatureScript
_sporeLoserData = false;
}
- uint32 GetData(uint32 id)
+ uint32 GetData(uint32 id) const
{
if (id != DATA_ACHIEVEMENT_SPORE_LOSER)
return 0;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
index a2acf8a64da..5a8f004788d 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
@@ -18,6 +18,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "naxxramas.h"
+#include "Player.h"
+#include "SpellInfo.h"
#define EMOTE_BREATH -1533082
#define EMOTE_ENRAGE -1533083
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
index e45700ebd72..482f8a1200d 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
@@ -18,7 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
-
+#include "Player.h"
#include "naxxramas.h"
//Stalagg
@@ -215,7 +215,7 @@ public:
polaritySwitch = data ? true : false;
}
- uint32 GetData(uint32 id)
+ uint32 GetData(uint32 id) const
{
if (id != DATA_POLARITY_SWITCH)
return 0;
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index e806b60c848..b68d8d4a33c 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -316,7 +316,7 @@ public:
}
}
- uint32 GetData(uint32 id)
+ uint32 GetData(uint32 id) const
{
switch (id)
{
@@ -329,7 +329,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 id)
+ uint64 GetData64(uint32 id) const
{
switch (id)
{
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 28f73ed14b0..5e7104fd83a 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -34,6 +34,7 @@ Script Data End */
#include "PassiveAI.h"
#include "eye_of_eternity.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
enum Achievements
{
@@ -250,7 +251,7 @@ public:
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
- uint32 GetData(uint32 data)
+ uint32 GetData(uint32 data) const
{
if (data == DATA_SUMMON_DEATHS)
return _summonDeaths;
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
index f6a12eee519..4ca28943be3 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "eye_of_eternity.h"
+#include "Player.h"
class instance_eye_of_eternity : public InstanceMapScript
{
@@ -225,7 +226,7 @@ public:
}
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
index af0ca6b3a3f..80a5336a30c 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
@@ -110,7 +110,7 @@ class boss_anomalus : public CreatureScript
instance->SetData(DATA_ANOMALUS_EVENT, DONE);
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_CHAOS_THEORY)
return chaosTheory ? 1 : 0;
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
index 9e6930118f7..bbd86ec6a9f 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
@@ -21,6 +21,7 @@
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "nexus.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
index 9602d1bc876..317a9845e87 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
@@ -155,7 +155,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_SPLIT_PERSONALITY)
return splitPersonality;
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
index eb0b3692f01..11b1bce9ab7 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
@@ -19,96 +19,86 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "nexus.h"
+#include "SpellScript.h"
enum Spells
{
- SPELL_CRYSTAL_SPIKES = 47958, //Don't work, using walkaround
- H_SPELL_CRYSTAL_SPIKES = 57082, //Don't work, using walkaround
- SPELL_CRYSTALL_SPIKE_DAMAGE = 47944,
- H_SPELL_CRYSTALL_SPIKE_DAMAGE = 57067,
- SPELL_CRYSTAL_SPIKE_PREVISUAL = 50442,
- MOB_CRYSTAL_SPIKE = 27099,
- SPELL_SPELL_REFLECTION = 47981,
- SPELL_TRAMPLE = 48016,
- H_SPELL_TRAMPLE = 57066,
- SPELL_FRENZY = 48017,
- SPELL_SUMMON_CRYSTALLINE_TANGLER = 61564, //summons npc 32665
- SPELL_ROOTS = 28858 //proper spell id is unknown
+ SPELL_SPELL_REFLECTION = 47981,
+ SPELL_TRAMPLE = 48016,
+ SPELL_FRENZY = 48017,
+ SPELL_SUMMON_CRYSTALLINE_TANGLER = 61564,
+ SPELL_CRYSTAL_SPIKES = 47958,
};
enum Yells
{
- SAY_AGGRO = -1576020,
- SAY_DEATH = -1576021,
- SAY_REFLECT = -1576022,
- SAY_CRYSTAL_SPIKES = -1576023,
- SAY_KILL = -1576024
+ SAY_AGGRO = 1,
+ SAY_DEATH = 2,
+ SAY_REFLECT = 3,
+ SAY_CRYSTAL_SPIKES = 4,
+ SAY_KILL = 5,
};
-enum Creatures
+
+enum Events
{
- MOB_CRYSTALLINE_TANGLER = 32665
+ EVENT_CRYSTAL_SPIKES = 1,
+ EVENT_TRAMPLE = 2,
+ EVENT_SPELL_REFLECTION = 3,
+ EVENT_CRYSTALLINE_TANGLER = 4,
};
-#define SPIKE_DISTANCE 5.0f
+class OrmorokTanglerPredicate
+{
+ public:
+ OrmorokTanglerPredicate(Unit* unit) : me(unit) {}
+
+ bool operator() (WorldObject* object) const
+ {
+ return object->GetDistance2d(me) >= 5.0f;
+ }
+
+ private:
+ Unit* me;
+};
class boss_ormorok : public CreatureScript
{
public:
boss_ormorok() : CreatureScript("boss_ormorok") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct boss_ormorokAI : public BossAI
{
- return new boss_ormorokAI (creature);
- }
+ boss_ormorokAI(Creature* creature) : BossAI(creature, DATA_ORMOROK_EVENT) {}
- struct boss_ormorokAI : public ScriptedAI
- {
- boss_ormorokAI(Creature* creature) : ScriptedAI(creature)
+ void EnterCombat(Unit* /*who*/)
{
- instance = creature->GetInstanceScript();
- }
+ _EnterCombat();
- InstanceScript* instance;
-
- bool bFrenzy;
- bool bCrystalSpikes;
- uint8 uiCrystalSpikesCount;
- float fBaseX;
- float fBaseY;
- float fBaseZ;
- float fBaseO;
- float fSpikeXY[4][2];
-
- uint32 uiCrystalSpikesTimer;
- uint32 uiCrystalSpikesTimer2;
- uint32 uiTrampleTimer;
- uint32 uiFrenzyTimer;
- uint32 uiSpellReflectionTimer;
- uint32 uiSummonCrystallineTanglerTimer;
-
- void Reset()
- {
- uiCrystalSpikesTimer = 12*IN_MILLISECONDS;
- uiTrampleTimer = 10*IN_MILLISECONDS;
- uiSpellReflectionTimer = 30*IN_MILLISECONDS;
- uiSummonCrystallineTanglerTimer = 17*IN_MILLISECONDS;
- bFrenzy = false;
- bCrystalSpikes = false;
+ events.ScheduleEvent(EVENT_CRYSTAL_SPIKES, 12000);
+ events.ScheduleEvent(EVENT_TRAMPLE, 10000);
+ events.ScheduleEvent(EVENT_SPELL_REFLECTION, 30000);
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_CRYSTALLINE_TANGLER, 17000);
+
+ Talk(SAY_AGGRO);
if (instance)
- instance->SetData(DATA_ORMOROK_EVENT, NOT_STARTED);
+ instance->SetData(DATA_ORMOROK_EVENT, IN_PROGRESS);
}
- void EnterCombat(Unit* /*who*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
{
- DoScriptText(SAY_AGGRO, me);
-
- if (instance)
- instance->SetData(DATA_ORMOROK_EVENT, IN_PROGRESS);
+ if (!frenzy && HealthBelowPct(25))
+ {
+ DoCast(me, SPELL_FRENZY);
+ frenzy = true;
+ }
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ _JustDied();
+
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_ORMOROK_EVENT, DONE);
@@ -116,195 +106,181 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(SAY_KILL, me);
+ Talk(SAY_KILL);
}
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
- {
return;
- }
- if (bCrystalSpikes)
- {
- if (uiCrystalSpikesTimer2 <= diff)
- {
- fSpikeXY[0][0] = fBaseX+(SPIKE_DISTANCE*uiCrystalSpikesCount* std::cos(fBaseO));
- fSpikeXY[0][1] = fBaseY+(SPIKE_DISTANCE*uiCrystalSpikesCount* std::sin(fBaseO));
- fSpikeXY[1][0] = fBaseX-(SPIKE_DISTANCE*uiCrystalSpikesCount* std::cos(fBaseO));
- fSpikeXY[1][1] = fBaseY-(SPIKE_DISTANCE*uiCrystalSpikesCount* std::sin(fBaseO));
- fSpikeXY[2][0] = fBaseX+(SPIKE_DISTANCE*uiCrystalSpikesCount* std::cos(fBaseO-(M_PI/2)));
- fSpikeXY[2][1] = fBaseY+(SPIKE_DISTANCE*uiCrystalSpikesCount* std::sin(fBaseO-(M_PI/2)));
- fSpikeXY[3][0] = fBaseX-(SPIKE_DISTANCE*uiCrystalSpikesCount* std::cos(fBaseO-(M_PI/2)));
- fSpikeXY[3][1] = fBaseY-(SPIKE_DISTANCE*uiCrystalSpikesCount* std::sin(fBaseO-(M_PI/2)));
- for (uint8 i = 0; i < 4; ++i)
- me->SummonCreature(MOB_CRYSTAL_SPIKE, fSpikeXY[i][0], fSpikeXY[i][1], fBaseZ, 0, TEMPSUMMON_TIMED_DESPAWN, 7*IN_MILLISECONDS);
- if (++uiCrystalSpikesCount >= 13)
- bCrystalSpikes = false;
- uiCrystalSpikesTimer2 = 200;
- } else uiCrystalSpikesTimer2 -= diff;
- }
- if (!bFrenzy && HealthBelowPct(25))
- {
- DoCast(me, SPELL_FRENZY);
- bFrenzy = true;
- }
+ events.Update(diff);
- if (uiTrampleTimer <= diff)
- {
- DoCast(me, SPELL_TRAMPLE);
- uiTrampleTimer = 10*IN_MILLISECONDS;
- } else uiTrampleTimer -= diff;
-
- if (uiSpellReflectionTimer <= diff)
- {
- DoScriptText(SAY_REFLECT, me);
- DoCast(me, SPELL_SPELL_REFLECTION);
- uiSpellReflectionTimer = 30*IN_MILLISECONDS;
- } else uiSpellReflectionTimer -= diff;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (uiCrystalSpikesTimer <= diff)
- {
- DoScriptText(SAY_CRYSTAL_SPIKES, me);
- bCrystalSpikes = true;
- uiCrystalSpikesCount = 1;
- uiCrystalSpikesTimer2 = 0;
- fBaseX = me->GetPositionX();
- fBaseY = me->GetPositionY();
- fBaseZ = me->GetPositionZ();
- fBaseO = me->GetOrientation();
- uiCrystalSpikesTimer = 20*IN_MILLISECONDS;
- } else uiCrystalSpikesTimer -= diff;
-
- if (IsHeroic() && (uiSummonCrystallineTanglerTimer <= diff))
+ while (uint32 eventId = events.ExecuteEvent())
{
- Creature* Crystalline_Tangler = me->SummonCreature(MOB_CRYSTALLINE_TANGLER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000);
- if (Crystalline_Tangler)
+ switch (eventId)
{
- Unit* target = NULL;
- uint8 Healer = 0;
- for (uint8 j = 1; j <= 4; j++)
- {
- switch (j)
- {
- case 1: Healer = CLASS_PRIEST; break;
- case 2: Healer = CLASS_PALADIN; break;
- case 3: Healer = CLASS_DRUID; break;
- case 4: Healer = CLASS_SHAMAN; break;
- }
- std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
- for (; i != me->getThreatManager().getThreatList().end(); ++i)
- {
- Unit* temp = Unit::GetUnit(*me, (*i)->getUnitGuid());
- if (temp && temp->GetTypeId() == TYPEID_PLAYER && temp->getClass() == Healer)
- {
- target = temp;
- break;
- }
- }
- if (target)
- break;
- }
- if (!target)
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target)
- {
- Crystalline_Tangler->AI()->AttackStart(target);
- Crystalline_Tangler->getThreatManager().addThreat(target, 1000000000.0f);
- }
+ case EVENT_TRAMPLE:
+ DoCast(me, SPELL_TRAMPLE);
+ events.ScheduleEvent(EVENT_TRAMPLE, 10000);
+ break;
+ case EVENT_SPELL_REFLECTION:
+ Talk(SAY_REFLECT);
+ DoCast(me, SPELL_SPELL_REFLECTION);
+ events.ScheduleEvent(EVENT_SPELL_REFLECTION, 30000);
+ break;
+ case EVENT_CRYSTAL_SPIKES:
+ Talk(SAY_CRYSTAL_SPIKES);
+ DoCast(SPELL_CRYSTAL_SPIKES);
+ events.ScheduleEvent(EVENT_CRYSTAL_SPIKES, 12000);
+ break;
+ case EVENT_CRYSTALLINE_TANGLER:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, OrmorokTanglerPredicate(me)))
+ DoCast(target, SPELL_SUMMON_CRYSTALLINE_TANGLER);
+ events.ScheduleEvent(EVENT_CRYSTALLINE_TANGLER, 17000);
+ break;
+ default:
+ break;
}
- uiSummonCrystallineTanglerTimer = 17*IN_MILLISECONDS;
- } else uiSummonCrystallineTanglerTimer -= diff;
+ }
DoMeleeAttackIfReady();
}
+
+ private:
+ bool frenzy;
+
};
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new boss_ormorokAI (creature);
+ }
+};
+
+enum CrystalSpikes
+{
+ NPC_CRYSTAL_SPIKE_INITIAL = 27101,
+ NPC_CRYSTAL_SPIKE_TRIGGER = 27079,
+
+ DATA_COUNT = 1,
+ MAX_COUNT = 5,
+
+ SPELL_CRYSTAL_SPIKE_DAMAGE = 47944,
+
+ GO_CRYSTAL_SPIKE_TRAP = 188537,
+};
+
+uint32 const crystalSpikeSummon[3] =
+{
+ 47936,
+ 47942,
+ 47943
};
-class mob_crystal_spike : public CreatureScript
+class npc_crystal_spike_trigger : public CreatureScript
{
public:
- mob_crystal_spike() : CreatureScript("mob_crystal_spike") { }
+ npc_crystal_spike_trigger() : CreatureScript("npc_crystal_spike_trigger") { }
- CreatureAI* GetAI(Creature* creature) const
+ struct npc_crystal_spike_triggerAI : public ScriptedAI
{
- return new mob_crystal_spikeAI (creature);
- }
+ npc_crystal_spike_triggerAI(Creature* creature) : ScriptedAI(creature) {}
- struct mob_crystal_spikeAI : public Scripted_NoMovementAI
- {
- mob_crystal_spikeAI(Creature* creature) : Scripted_NoMovementAI(creature)
+ void IsSummonedBy(Unit* owner)
{
- }
+ switch (me->GetEntry())
+ {
+ case NPC_CRYSTAL_SPIKE_INITIAL:
+ _count = 0;
+ me->SetFacingToObject(owner);
+ break;
+ case NPC_CRYSTAL_SPIKE_TRIGGER:
+ if (Creature* trigger = owner->ToCreature())
+ _count = trigger->AI()->GetData(DATA_COUNT) + 1;
+ break;
+ default:
+ _count = MAX_COUNT;
+ break;
+ }
- uint32 SpellCrystalSpikeDamageTimer;
- uint32 SpellCrystalSpikePrevisualTimer;
+ if (me->GetEntry() == NPC_CRYSTAL_SPIKE_TRIGGER)
+ if (GameObject* trap = me->FindNearestGameObject(GO_CRYSTAL_SPIKE_TRAP, 1.0f))
+ trap->Use(me);
- void Reset()
+ _despawntimer = 2000;
+ }
+
+ uint32 GetData(uint32 type) const
{
- SpellCrystalSpikeDamageTimer = 3700;
- SpellCrystalSpikePrevisualTimer = 1*IN_MILLISECONDS;
+ return type == DATA_COUNT ? _count : 0;
}
void UpdateAI(const uint32 diff)
{
- if (SpellCrystalSpikePrevisualTimer <= diff)
+ if (_despawntimer <= diff)
{
- DoCast(me, SPELL_CRYSTAL_SPIKE_PREVISUAL);
- SpellCrystalSpikePrevisualTimer = 10*IN_MILLISECONDS;
- } else SpellCrystalSpikePrevisualTimer -= diff;
+ if (me->GetEntry() == NPC_CRYSTAL_SPIKE_TRIGGER)
+ if (GameObject* trap = me->FindNearestGameObject(GO_CRYSTAL_SPIKE_TRAP, 1.0f))
+ trap->Delete();
- if (SpellCrystalSpikeDamageTimer <= diff)
- {
- DoCast(me, SPELL_CRYSTALL_SPIKE_DAMAGE);
- SpellCrystalSpikeDamageTimer = 10*IN_MILLISECONDS;
- } else SpellCrystalSpikeDamageTimer -= diff;
+ me->DespawnOrUnsummon();
+ }
+ else
+ _despawntimer -= diff;
}
- };
-};
+ private:
+ uint32 _count;
+ uint32 _despawntimer;
-class mob_crystalline_tangler : public CreatureScript
-{
-public:
- mob_crystalline_tangler() : CreatureScript("mob_crystalline_tangler") { }
+ };
CreatureAI* GetAI(Creature* creature) const
{
- return new mob_crystalline_tanglerAI (creature);
+ return new npc_crystal_spike_triggerAI(creature);
}
+};
- struct mob_crystalline_tanglerAI : public ScriptedAI
- {
- mob_crystalline_tanglerAI(Creature* creature) : ScriptedAI(creature) {}
-
- uint32 uiRootsTimer;
+class spell_crystal_spike : public SpellScriptLoader
+{
+ public:
+ spell_crystal_spike() : SpellScriptLoader("spell_crystal_spike") { }
- void Reset()
+ class spell_crystal_spike_AuraScript : public AuraScript
{
- uiRootsTimer = 1*IN_MILLISECONDS;
- }
+ PrepareAuraScript(spell_crystal_spike_AuraScript);
- void UpdateAI(const uint32 diff)
- {
- if (uiRootsTimer <= diff)
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
{
- if (me->IsWithinDist(me->getVictim(), 5.0f, false))
- {
- DoCast(me->getVictim(), SPELL_ROOTS);
- uiRootsTimer = 15*IN_MILLISECONDS;
- }
- } else uiRootsTimer -= diff;
- }
- };
+ Unit* target = GetTarget();
+ if (target->GetEntry() == NPC_CRYSTAL_SPIKE_INITIAL || target->GetEntry() == NPC_CRYSTAL_SPIKE_TRIGGER)
+ if (Creature* trigger = target->ToCreature())
+ {
+ uint32 spell = target->GetEntry() == NPC_CRYSTAL_SPIKE_INITIAL ? crystalSpikeSummon[0] : crystalSpikeSummon[urand(0, 2)];
+ if (trigger->AI()->GetData(DATA_COUNT) < MAX_COUNT)
+ trigger->CastSpell(trigger, spell, true);
+ }
+ }
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_crystal_spike_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_crystal_spike_AuraScript();
+ }
};
void AddSC_boss_ormorok()
{
new boss_ormorok();
- new mob_crystal_spike();
- new mob_crystalline_tangler();
+ new npc_crystal_spike_trigger();
+ new spell_crystal_spike();
}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp
index 5d430ae048d..f06800cd201 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp
@@ -19,6 +19,7 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "nexus.h"
+#include "Player.h"
#define NUMBER_OF_ENCOUNTERS 4
@@ -153,7 +154,7 @@ public:
}
}
- uint32 GetData(uint32 identifier)
+ uint32 GetData(uint32 identifier) const
{
switch (identifier)
{
@@ -220,7 +221,7 @@ public:
}
}
- uint64 GetData64(uint32 uiIdentifier)
+ uint64 GetData64(uint32 uiIdentifier) const
{
switch (uiIdentifier)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
index c691db4230c..4bbb4c1a5ed 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
@@ -117,7 +117,7 @@ public:
_amberVoid = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
index 179dedb290b..51e476785ff 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "oculus.h"
+#include "SpellInfo.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index a0b5aded315..7035e0534aa 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "oculus.h"
+#include "Player.h"
#define MAX_ENCOUNTER 4
@@ -231,7 +232,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -243,7 +244,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index f00369fd9e2..0e73e929aef 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -23,6 +23,7 @@
#include "Vehicle.h"
#include "CombatAI.h"
#include "oculus.h"
+#include "Player.h"
#define GOSSIP_ITEM_DRAKES "So where do we go from here?"
#define GOSSIP_ITEM_BELGARISTRASZ1 "I want to fly on the wings of the Red Flight"
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index d964f619a6e..6f54ce50a94 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -23,6 +23,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "halls_of_lightning.h"
+#include "SpellInfo.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index fe41e7a12dc..33e6e2846e4 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -26,6 +26,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "halls_of_lightning.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum eEnums
{
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp
index 93b246e9ddc..e399c5548e3 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp
@@ -174,7 +174,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 uiType)
+ uint32 GetData(uint32 uiType) const
{
switch (uiType)
{
@@ -190,7 +190,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 uiData)
+ uint64 GetData64(uint32 uiData) const
{
switch (uiData)
{
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
index 28052a57576..c3e815f57dd 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
@@ -236,7 +236,7 @@ public:
++abuseTheOoze;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_ABUSE_THE_OOZE)
return abuseTheOoze;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
index a90c346e470..3c03508a14c 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -20,6 +20,7 @@
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "halls_of_stone.h"
+#include "Player.h"
enum Texts
{
@@ -429,7 +430,7 @@ public:
brannSparklinNews = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_BRANN_SPARKLIN_NEWS)
return brannSparklinNews ? 1 : 0;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp
index 869cf46e74d..7a2b579dca9 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp
@@ -186,7 +186,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -199,7 +199,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 7967a86039e..010b4f43d4d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -24,6 +24,7 @@
#include "MapManager.h"
#include "MoveSplineInit.h"
#include "ulduar.h"
+#include "Player.h"
enum Texts
{
@@ -373,11 +374,11 @@ class boss_algalon_the_observer : public CreatureScript
case ACTION_INIT_ALGALON:
_firstPull = false;
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
- break;;
+ break;
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
return type == DATA_HAS_FED_ON_TEARS ? _fedOnTears : 1;
}
@@ -727,7 +728,7 @@ class npc_living_constellation : public CreatureScript
_isActive = false;
}
- uint32 GetData(uint32 /*type*/)
+ uint32 GetData(uint32 /*type*/) const
{
return _isActive ? 1 : 0;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index ec3125f7c0a..bfe158051b1 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -178,7 +178,7 @@ class boss_auriaya : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index 9d5adf39817..a26f5763472 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -349,7 +349,7 @@ class boss_flame_leviathan : public CreatureScript
++Shutdown;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index a3c9cb847e5..f60922c426c 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -381,7 +381,7 @@ class boss_freya : public CreatureScript
events.ScheduleEvent(EVENT_SUNBEAM, urand(5000, 15000));
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
index 8090b9e8a3e..1232c1b9051 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -20,6 +20,7 @@
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "ulduar.h"
+#include "Player.h"
enum VezaxYells
{
@@ -234,7 +235,7 @@ class boss_general_vezax : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index 540876f421b..c0fb4e3ecc8 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -154,7 +154,7 @@ class boss_ignis : public CreatureScript
DoScriptText(SAY_DEATH, me);
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_SHATTERED)
return _shattered ? 1 : 0;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index 24a9171e29f..9c77bb298a5 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -21,6 +21,7 @@
#include "SpellAuraEffects.h"
#include "ulduar.h"
#include "Vehicle.h"
+#include "Player.h"
/* ScriptData
SDName: boss_kologarn
@@ -488,7 +489,7 @@ class spell_ulduar_squeezed_lifeless : public SpellScriptLoader
pos.m_positionX = 1756.25f + irand(-3, 3);
pos.m_positionY = -8.3f + irand(-3, 3);
pos.m_positionZ = 448.8f;
- pos.m_orientation = M_PI;
+ pos.SetOrientation(M_PI);
GetHitPlayer()->DestroyForNearbyPlayers();
GetHitPlayer()->ExitVehicle(&pos);
GetHitPlayer()->UpdateObjectVisibility(false);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index 6038b7ed9d6..5ea2678adfe 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -23,6 +23,7 @@
#include "SpellScript.h"
#include "ulduar.h"
#include "SpellInfo.h"
+#include "Player.h"
enum Says
{
@@ -377,7 +378,7 @@ class boss_razorscale : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_QUICK_SHAVE)
if (FlyCount <= 2)
@@ -895,7 +896,7 @@ class npc_darkrune_guardian : public CreatureScript
killedByBreath = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
return type == DATA_IRON_DWARF_MEDIUM_RARE ? killedByBreath : 0;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index 7ada42144a8..30f60da178a 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -29,6 +29,9 @@
#include "SpellAuraEffects.h"
#include "ulduar.h"
#include "Vehicle.h"
+#include "Player.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
enum Spells
{
@@ -326,7 +329,7 @@ class boss_xt002 : public CreatureScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index 2f37fb06f24..7d3b943f7b0 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -19,6 +19,8 @@
#include "ScriptedCreature.h"
#include "InstanceScript.h"
#include "ulduar.h"
+#include "Player.h"
+#include "WorldPacket.h"
static DoorData const doorData[] =
{
@@ -654,7 +656,7 @@ class instance_ulduar : public InstanceMapScript
{
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
@@ -740,7 +742,7 @@ class instance_ulduar : public InstanceMapScript
return 0;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
index 29eb5ad3367..ab2f778ba9d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
@@ -20,6 +20,7 @@
#include "ScriptedGossip.h"
#include "ulduar.h"
#include "InstanceScript.h"
+#include "Player.h"
/*
The teleporter appears to be active and stable.
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index e718942d091..9a50e1cbfa3 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -185,7 +185,7 @@ public:
onTheRocks = value;
}
- uint32 GetData(uint32 data)
+ uint32 GetData(uint32 data) const
{
if (data == DATA_ON_THE_ROCKS)
return onTheRocks;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
index 1e79cc1c5bf..c236b36312d 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "utgarde_keep.h"
+#include "Player.h"
#define MAX_ENCOUNTER 3
@@ -165,7 +166,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -246,7 +247,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index c694aa88338..e587a864fd6 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -143,17 +143,10 @@ public:
}
}
}
-
- switch (near_f)
- {
- case 1: return 1;
- case 2: return 2;
- case 3: return 3;
- default: return 0;
- }
+ return near_f > 0 && near_f < 4 ? near_f : 0;
}
- void UpdateAI(const uint32 /*diff*/)
+ void UpdateAI(uint32 const /* diff */)
{
if (fm_Type == 0)
fm_Type = GetForgeMasterType();
@@ -239,9 +232,115 @@ class spell_fixate : public SpellScriptLoader
return new spell_fixate_SpellScript();
}
};
+
+enum EnslavedProtoDrake
+{
+ TYPE_PROTODRAKE_AT = 28,
+ DATA_PROTODRAKE_MOVE = 6,
+
+ PATH_PROTODRAKE = 125946,
+
+ EVENT_REND = 1,
+ EVENT_FLAME_BREATH = 2,
+ EVENT_KNOCKAWAY = 3,
+
+ SPELL_REND = 43931,
+ SPELL_FLAME_BREATH = 50653,
+ SPELL_KNOCK_AWAY = 49722,
+
+ POINT_LAST = 5,
+};
+
+const Position protodrakeCheckPos = {206.24f, -190.28f, 200.11f, 0.f};
+
+class npc_enslaved_proto_drake : public CreatureScript
+{
+public:
+ npc_enslaved_proto_drake() : CreatureScript("npc_enslaved_proto_drake") { }
+
+ struct npc_enslaved_proto_drakeAI : public ScriptedAI
+ {
+ npc_enslaved_proto_drakeAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _setData = false;
+ }
+
+ void Reset()
+ {
+ _events.Reset();
+ _events.ScheduleEvent(EVENT_REND, urand(2000, 3000));
+ _events.ScheduleEvent(EVENT_FLAME_BREATH, urand(5500, 7000));
+ _events.ScheduleEvent(EVENT_KNOCKAWAY, urand(3500, 6000));
+ }
+
+ void MovementInform(uint32 type, uint32 id)
+ {
+ if (type == WAYPOINT_MOTION_TYPE && id == POINT_LAST)
+ {
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
+ }
+ }
+
+ void SetData(uint32 type, uint32 data)
+ {
+ if (type == TYPE_PROTODRAKE_AT && data == DATA_PROTODRAKE_MOVE && !_setData && me->GetDistance(protodrakeCheckPos) < 5.0f)
+ {
+ _setData = true;
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
+ me->GetMotionMaster()->MovePath(PATH_PROTODRAKE, false);
+ }
+ }
+
+ void UpdateAI(uint32 const diff)
+ {
+ if (!UpdateVictim())
+ return;
+
+ _events.Update(diff);
+
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventid = _events.ExecuteEvent())
+ {
+ switch (eventid)
+ {
+ case EVENT_REND:
+ DoCast(SPELL_REND);
+ _events.ScheduleEvent(EVENT_REND, urand(15000, 20000));
+ break;
+ case EVENT_FLAME_BREATH:
+ DoCast(SPELL_FLAME_BREATH);
+ _events.ScheduleEvent(EVENT_FLAME_BREATH, urand(11000, 12000));
+ break;
+ case EVENT_KNOCKAWAY:
+ DoCast(SPELL_KNOCK_AWAY);
+ _events.ScheduleEvent(EVENT_KNOCKAWAY, urand(7000, 8500));
+ break;
+ default:
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool _setData;
+ EventMap _events;
+
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_enslaved_proto_drakeAI(creature);
+ }
+};
+
void AddSC_utgarde_keep()
{
new npc_dragonflayer_forge_master();
+ new npc_enslaved_proto_drake();
new spell_ticking_time_bomb();
new spell_fixate();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index a6ad7befc38..63898e57c08 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -28,6 +28,8 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "utgarde_pinnacle.h"
+#include "Player.h"
+#include "SpellInfo.h"
//Yell
enum eYells
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index f2f03ff602b..fc82ad1b526 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -588,7 +588,7 @@ class npc_scourge_hulk : public CreatureScript
killedByRitualStrike = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
return type == DATA_INCREDIBLE_HULK ? killedByRitualStrike : 0;
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
index 39fd01a9269..0278125deb3 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
@@ -26,6 +26,7 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "utgarde_pinnacle.h"
+#include "SpellInfo.h"
enum Spells
{
@@ -201,7 +202,7 @@ public:
kingsBane = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_KINGS_BANE)
return kingsBane ? 1 : 0;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
index c5d50d4e7fd..a76c5a61109 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
@@ -180,7 +180,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -192,7 +192,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp
index d1209b40a19..de557e10e7f 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp
@@ -62,7 +62,7 @@ class instance_archavon : public InstanceMapScript
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index f6d918e0493..cea00417233 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -197,7 +197,7 @@ public:
me->GetMotionMaster()->MoveChase(me->getVictim());
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_DEHYDRATION)
return dehydration ? 1 : 0;
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index a01b41bfbcf..58d7b59c7dd 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
@@ -18,6 +18,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "violet_hold.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index d1c65259738..408a7083383 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -158,7 +158,7 @@ public:
voidDance = false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_VOID_DANCE)
return voidDance ? 1 : 0;
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index 4b6fed181e4..5e3bbc01025 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -18,6 +18,8 @@
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "violet_hold.h"
+#include "Player.h"
+#include "TemporarySummon.h"
#define MAX_ENCOUNTER 3
@@ -417,7 +419,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -438,7 +440,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 870ea893b78..c73cb97f2d1 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -20,6 +20,7 @@
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "violet_hold.h"
+#include "Player.h"
#define GOSSIP_START_EVENT "Get your people to safety, we'll keep the Blue Dragonflight's forces at bay."
#define GOSSIP_ITEM_1 "Activate the crystals when we get in trouble, right"
diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp
index 224d06e9d3c..6eed82991b8 100644
--- a/src/server/scripts/Northrend/borean_tundra.cpp
+++ b/src/server/scripts/Northrend/borean_tundra.cpp
@@ -42,6 +42,9 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
+#include "WorldSession.h"
/*######
## npc_sinkhole_kill_credit
diff --git a/src/server/scripts/Northrend/crystalsong_forest.cpp b/src/server/scripts/Northrend/crystalsong_forest.cpp
index 7b8eb331702..09df0acc467 100644
--- a/src/server/scripts/Northrend/crystalsong_forest.cpp
+++ b/src/server/scripts/Northrend/crystalsong_forest.cpp
@@ -25,6 +25,7 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
/*******************************************************
* npc_warmage_violetstand
@@ -108,4 +109,4 @@ public:
void AddSC_crystalsong_forest()
{
new npc_warmage_violetstand;
-} \ No newline at end of file
+}
diff --git a/src/server/scripts/Northrend/dalaran.cpp b/src/server/scripts/Northrend/dalaran.cpp
index c19effbab1b..b662442ef93 100644
--- a/src/server/scripts/Northrend/dalaran.cpp
+++ b/src/server/scripts/Northrend/dalaran.cpp
@@ -26,6 +26,8 @@ Script Data End */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "WorldSession.h"
/*******************************************************
* npc_mageguard_dalaran
diff --git a/src/server/scripts/Northrend/dragonblight.cpp b/src/server/scripts/Northrend/dragonblight.cpp
index a26ee4e9270..13a8370690e 100644
--- a/src/server/scripts/Northrend/dragonblight.cpp
+++ b/src/server/scripts/Northrend/dragonblight.cpp
@@ -33,6 +33,7 @@ EndContentData */
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
enum eEnums
{
diff --git a/src/server/scripts/Northrend/grizzly_hills.cpp b/src/server/scripts/Northrend/grizzly_hills.cpp
index 4ca12bc82a1..0363e0c892d 100644
--- a/src/server/scripts/Northrend/grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/grizzly_hills.cpp
@@ -19,6 +19,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## Quest 12027: Mr. Floppy's Perilous Adventure
diff --git a/src/server/scripts/Northrend/howling_fjord.cpp b/src/server/scripts/Northrend/howling_fjord.cpp
index ffe38d6aade..e04531954ea 100644
--- a/src/server/scripts/Northrend/howling_fjord.cpp
+++ b/src/server/scripts/Northrend/howling_fjord.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_apothecary_hanes
diff --git a/src/server/scripts/Northrend/icecrown.cpp b/src/server/scripts/Northrend/icecrown.cpp
index 5989b5bad2e..030df23028c 100644
--- a/src/server/scripts/Northrend/icecrown.cpp
+++ b/src/server/scripts/Northrend/icecrown.cpp
@@ -31,6 +31,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellAuras.h"
+#include "Player.h"
/*######
## npc_arete
diff --git a/src/server/scripts/Northrend/isle_of_conquest.cpp b/src/server/scripts/Northrend/isle_of_conquest.cpp
index 1cf8f54b4fe..88d262a1579 100644
--- a/src/server/scripts/Northrend/isle_of_conquest.cpp
+++ b/src/server/scripts/Northrend/isle_of_conquest.cpp
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "PassiveAI.h"
#include "BattlegroundIC.h"
+#include "Player.h"
// TO-DO: This should be done with SmartAI, but yet it does not correctly support vehicles's AIs.
// Even adding ReactState Passive we still have issues using SmartAI.
diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp
index 63960f13bb7..8404413ad9d 100644
--- a/src/server/scripts/Northrend/sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/sholazar_basin.cpp
@@ -34,6 +34,7 @@ EndContentData */
#include "ScriptedEscortAI.h"
#include "SpellScript.h"
#include "SpellAuras.h"
+#include "Player.h"
/*######
## npc_injured_rainspeaker_oracle
diff --git a/src/server/scripts/Northrend/storm_peaks.cpp b/src/server/scripts/Northrend/storm_peaks.cpp
index 1733af17580..b3a379d903d 100644
--- a/src/server/scripts/Northrend/storm_peaks.cpp
+++ b/src/server/scripts/Northrend/storm_peaks.cpp
@@ -23,6 +23,8 @@
#include "SpellAuraEffects.h"
#include "Vehicle.h"
#include "CombatAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npc_agnetta_tyrsdottar
diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp
index d4a3f83ab70..8935c77b30e 100644
--- a/src/server/scripts/Northrend/wintergrasp.cpp
+++ b/src/server/scripts/Northrend/wintergrasp.cpp
@@ -25,6 +25,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellScript.h"
+#include "Player.h"
#define GOSSIP_HELLO_DEMO1 "Build catapult."
#define GOSSIP_HELLO_DEMO2 "Build demolisher."
@@ -560,7 +561,7 @@ public:
if (Battlefield* wg = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG))
if (Player* target = GetExplTargetUnit()->ToPlayer())
// check if we are in Wintergrasp at all, SotA uses same teleport spells
- if ((target->GetZoneId() == 4197) && target->GetTeamId() != wg->GetDefenderTeam() || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER))
+ if ((target->GetZoneId() == 4197 && target->GetTeamId() != wg->GetDefenderTeam()) || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER))
return SPELL_FAILED_BAD_TARGETS;
return SPELL_CAST_OK;
}
diff --git a/src/server/scripts/Northrend/zuldrak.cpp b/src/server/scripts/Northrend/zuldrak.cpp
index 6af96f3fdfd..e5763e5baf6 100644
--- a/src/server/scripts/Northrend/zuldrak.cpp
+++ b/src/server/scripts/Northrend/zuldrak.cpp
@@ -19,6 +19,8 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*####
## npc_drakuru_shackles
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
index c70e4168826..9411bd8a363 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
@@ -23,6 +23,7 @@
#include "MapManager.h"
#include "ObjectMgr.h"
#include "OutdoorPvPMgr.h"
+#include "ReputationMgr.h"
#include "Language.h"
#include "World.h"
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
index f678cf9c198..d6465bfe006 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
#define SPELL_INHIBITMAGIC 32264
#define SPELL_ATTRACTMAGIC 32265
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
index a1780d1d4a8..303a30bea8f 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "shadow_labyrinth.h"
+#include "Player.h"
#define SAY_INTRO -1555028
#define SAY_AGGRO1 -1555029
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
index 0f3bcce6493..1503c9f7234 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "shadow_labyrinth.h"
+#include "SpellInfo.h"
#define EMOTE_SONIC_BOOM -1555036
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
index 9facb42107b..9fa90be9765 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
@@ -179,7 +179,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -191,7 +191,7 @@ public:
return false;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
if (identifier == DATA_GRANDMASTERVORPIL)
return m_uiGrandmasterVorpil;
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
index 5fe5b8aab0c..a100f5848af 100644
--- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
@@ -29,8 +29,9 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
- #include "ScriptedGossip.h"
+#include "ScriptedGossip.h"
#include "black_temple.h"
+#include "Player.h"
/*###
# npc_spirit_of_olum
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index f812b1b35cd..1029648561f 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -28,6 +28,8 @@ EndScriptData */
#include "ScriptedGossip.h"
#include "PassiveAI.h"
#include "black_temple.h"
+#include "Player.h"
+#include "SpellInfo.h"
#define GETGO(obj, guid) GameObject* obj = instance->instance->GetGameObject(guid)
#define GETUNIT(unit, guid) Unit* unit = Unit::GetUnit(*me, guid)
diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
index 2757a862c93..6e770249cf0 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "black_temple.h"
+#include "Player.h"
#define SAY_DEATH -1564013
#define SAY_LOW_HEALTH -1564014
diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
index e8bee95865f..9924bf1ffab 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
@@ -26,6 +26,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "black_temple.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum eEnums
{
diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
index 98d90aa1818..8a2e25b176a 100644
--- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "black_temple.h"
+#include "Player.h"
#define MAX_ENCOUNTER 9
@@ -237,7 +238,7 @@ public:
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -347,7 +348,7 @@ public:
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
index 3b94feda02b..a934d03349c 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
@@ -27,6 +27,8 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "serpent_shrine.h"
#include "Spell.h"
+#include "Player.h"
+#include "WorldSession.h"
#define SAY_INTRO -1548042
#define SAY_AGGRO1 -1548043
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 9b739a1a6ac..1221e59b96e 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "serpent_shrine.h"
+#include "Player.h"
// --- Spells used by Leotheras The Blind
#define SPELL_WHIRLWIND 37640
@@ -103,7 +104,7 @@ public:
victimGUID = guid;
}
- uint64 GetGUID(int32 id/* = 0 */)
+ uint64 GetGUID(int32 id/* = 0 */) const
{
if (id == INNER_DEMON_VICTIM)
return victimGUID;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
index b9e530996af..5bc2344fd70 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "serpent_shrine.h"
#include "Spell.h"
+#include "Player.h"
#define SPELL_SPOUT 37433
#define SPELL_SPOUT_ANIM 42835
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
index 87053d1de1c..4af38888758 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
@@ -26,6 +26,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "serpent_shrine.h"
+#include "Player.h"
+#include "TemporarySummon.h"
#define MAX_ENCOUNTER 6
#define SPELL_SCALDINGWATER 37284
@@ -242,7 +244,7 @@ class instance_serpent_shrine : public InstanceMapScript
LeotherasEventStarter = data;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -340,7 +342,7 @@ class instance_serpent_shrine : public InstanceMapScript
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
index d81a021c4bc..ac730292545 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "steam_vault.h"
+#include "SpellInfo.h"
#define SAY_INTRO -1545016
#define SAY_REGEN -1545017
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp
index dd0b5ea9160..e8a096a83a1 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp
@@ -167,7 +167,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -183,7 +183,7 @@ public:
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
index fa67659ca66..120e550bd4e 100644
--- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
+++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
@@ -117,7 +117,7 @@ public:
MaulgarEvent_Tank = data;
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -156,7 +156,7 @@ public:
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
index 233a8d82497..11e75f054ad 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
@@ -175,7 +175,7 @@ class instance_blood_furnace : public InstanceMapScript
BroggokLeverGUID = go->GetGUID(); //Broggok lever
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
@@ -231,7 +231,7 @@ class instance_blood_furnace : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
index 714ea275471..56365216be5 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
enum eSays
{
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
index 3bb0858d2be..f0c4330c9a3 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "SpellInfo.h"
enum eSpells
{
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index bbf03e39f9b..94272e4a50f 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -26,6 +26,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "magtheridons_lair.h"
+#include "Player.h"
+#include "SpellInfo.h"
struct Yell
{
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
index 640e4439593..0bb949d3b90 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
@@ -123,7 +123,7 @@ class instance_magtheridons_lair : public InstanceMapScript
}
}
- uint64 GetData64(uint32 type)
+ uint64 GetData64(uint32 type) const
{
switch (type)
{
@@ -211,7 +211,7 @@ class instance_magtheridons_lair : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
if (type == DATA_MAGTHERIDON_EVENT)
return m_auiEncounter[0];
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp
index 4105a7d5821..c7c1cbba880 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp
@@ -87,7 +87,7 @@ class instance_shattered_halls : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -99,7 +99,7 @@ class instance_shattered_halls : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
index 3770ac3ba09..a8be934c710 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
@@ -26,6 +26,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "the_eye.h"
+#include "SpellInfo.h"
enum eSpells
{
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index 29c87e57c83..2dbfb7b46c5 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "the_eye.h"
#include "WorldPacket.h"
+#include "Opcodes.h"
enum eEnums
{
@@ -926,8 +927,7 @@ class boss_kaelthas : public CreatureScript
unit->CastSpell(unit, SPELL_GRAVITY_LAPSE_AURA, true, 0, 0, me->GetGUID());
//Using packet workaround
- WorldPacket data(12);
- data.SetOpcode(SMSG_MOVE_SET_CAN_FLY);
+ WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12);
data.append(unit->GetPackGUID());
data << uint32(0);
unit->SendMessageToSet(&data, true);
@@ -953,8 +953,7 @@ class boss_kaelthas : public CreatureScript
if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
{
//Using packet workaround
- WorldPacket data(12);
- data.SetOpcode(SMSG_MOVE_UNSET_CAN_FLY);
+ WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12);
data.append(unit->GetPackGUID());
data << uint32(0);
unit->SendMessageToSet(&data, true);
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
index 1230b7e88cf..e9ee5a62bb8 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
@@ -113,7 +113,7 @@ class instance_the_eye : public InstanceMapScript
}
}
- uint64 GetData64(uint32 identifier)
+ uint64 GetData64(uint32 identifier) const
{
switch (identifier)
{
@@ -151,7 +151,7 @@ class instance_the_eye : public InstanceMapScript
SaveToDB();
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
index d2b0475fa77..697d2c9f9f9 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
@@ -20,6 +20,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
+#include "Player.h"
enum Spells
{
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
index a96666705d1..37e314b6576 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
@@ -57,7 +57,7 @@ class instance_mechanar : public InstanceMapScript
return false;
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -67,7 +67,7 @@ class instance_mechanar : public InstanceMapScript
return false;
}
- uint64 GetData64(uint32 /*identifier*/)
+ uint64 GetData64(uint32 /*identifier*/) const
{
return 0;
}
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
index d5b61b87fc2..e956ea0ed85 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
@@ -230,7 +230,7 @@ class instance_arcatraz : public InstanceMapScript
}
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
switch (type)
{
@@ -244,7 +244,7 @@ class instance_arcatraz : public InstanceMapScript
return 0;
}
- uint64 GetData64(uint32 data)
+ uint64 GetData64(uint32 data) const
{
switch (data)
{
diff --git a/src/server/scripts/Outland/hellfire_peninsula.cpp b/src/server/scripts/Outland/hellfire_peninsula.cpp
index 4c44d4e828e..4da98281eb2 100644
--- a/src/server/scripts/Outland/hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/hellfire_peninsula.cpp
@@ -37,6 +37,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npc_aeranas
diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp
index 977ec57e2df..0c9a60603f5 100644
--- a/src/server/scripts/Outland/nagrand.cpp
+++ b/src/server/scripts/Outland/nagrand.cpp
@@ -32,6 +32,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
/*######
## npc_greatmother_geyah
diff --git a/src/server/scripts/Outland/netherstorm.cpp b/src/server/scripts/Outland/netherstorm.cpp
index 8533491c15f..eaea4960712 100644
--- a/src/server/scripts/Outland/netherstorm.cpp
+++ b/src/server/scripts/Outland/netherstorm.cpp
@@ -36,6 +36,7 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
/*######
## npc_manaforge_control_console
diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp
index c84df2ee3d4..dc91fb2c14f 100644
--- a/src/server/scripts/Outland/shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/shadowmoon_valley.cpp
@@ -46,6 +46,8 @@ EndContentData */
#include "ScriptedEscortAI.h"
#include "Group.h"
#include "SpellScript.h"
+#include "Player.h"
+#include "WorldSession.h"
/*#####
# mob_mature_netherwing_drake
diff --git a/src/server/scripts/Outland/shattrath_city.cpp b/src/server/scripts/Outland/shattrath_city.cpp
index 8ad2c311fc5..76cffa9e1fe 100644
--- a/src/server/scripts/Outland/shattrath_city.cpp
+++ b/src/server/scripts/Outland/shattrath_city.cpp
@@ -38,6 +38,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npc_raliq_the_drunk
diff --git a/src/server/scripts/Outland/terokkar_forest.cpp b/src/server/scripts/Outland/terokkar_forest.cpp
index 707cabfcf0c..2298f676692 100644
--- a/src/server/scripts/Outland/terokkar_forest.cpp
+++ b/src/server/scripts/Outland/terokkar_forest.cpp
@@ -38,6 +38,8 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "Group.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## mob_unkor_the_ruthless
diff --git a/src/server/scripts/Outland/zangarmarsh.cpp b/src/server/scripts/Outland/zangarmarsh.cpp
index a48866a2f83..03e40b8d7dc 100644
--- a/src/server/scripts/Outland/zangarmarsh.cpp
+++ b/src/server/scripts/Outland/zangarmarsh.cpp
@@ -36,6 +36,8 @@ EndContentData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## npcs_ashyen_and_keleth
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index b46d2083ecd..224e909ca57 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_dk_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 6119c9050fa..0fe6c367a9a 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_dru_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 519d79add6d..026a0c7b280 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -23,16 +23,19 @@
*/
#include "ScriptMgr.h"
-#include "SpellScript.h"
-#include "SpellAuraEffects.h"
-#include "SkillDiscovery.h"
+#include "Battleground.h"
#include "Cell.h"
#include "CellImpl.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#include "InstanceScript.h"
#include "Group.h"
+#include "InstanceScript.h"
#include "LFGMgr.h"
+#include "Pet.h"
+#include "ReputationMgr.h"
+#include "SkillDiscovery.h"
+#include "SpellScript.h"
+#include "SpellAuraEffects.h"
class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader
{
diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp
index a1ecac6256a..5b1cbe0c36a 100644
--- a/src/server/scripts/Spells/spell_holiday.cpp
+++ b/src/server/scripts/Spells/spell_holiday.cpp
@@ -20,6 +20,7 @@
* Scriptnames in this file should be prefixed with "spell_#holidayname_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index 9d0e084cfb8..a73af6892ca 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_hun_".
*/
+#include "Pet.h"
#include "ScriptMgr.h"
#include "Cell.h"
#include "CellImpl.h"
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index ef810b50b6f..e0c88ad6846 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -21,11 +21,13 @@
* Scriptnames of files in this file should be prefixed with "spell_item_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "SkillDiscovery.h"
+#include "Battleground.h"
// Generic script for handling item dummy effects which trigger another spell.
class spell_item_trigger_spell : public SpellScriptLoader
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index f4bbccc8587..cd096ebed5e 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -21,11 +21,11 @@
* Scriptnames of files in this file should be prefixed with "spell_mage_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
-
enum MageSpells
{
SPELL_MAGE_COLD_SNAP = 11958,
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index 41bda3c163d..58f94edb387 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -21,12 +21,12 @@
* Scriptnames of files in this file should be prefixed with "spell_pal_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "Group.h"
-
enum PaladinSpells
{
PALADIN_SPELL_DIVINE_PLEA = 54428,
diff --git a/src/server/scripts/Spells/spell_pet.cpp b/src/server/scripts/Spells/spell_pet.cpp
index df6c311ca67..876d7c80a44 100644
--- a/src/server/scripts/Spells/spell_pet.cpp
+++ b/src/server/scripts/Spells/spell_pet.cpp
@@ -1706,7 +1706,7 @@ public:
if (pet->isGuardian())
((Guardian*)pet)->SetBonusDamage(owner->GetTotalAttackPowerValue(BASE_ATTACK));
- amount += owner->CalculateDamage(BASE_ATTACK, true, true);;
+ amount += owner->CalculateDamage(BASE_ATTACK, true, true);
}
}
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index aee3889e93b..a15eb7ddc2c 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_pri_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 06d3602d8e8..da80ec8f1da 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_q#questID_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index 68cc50a3022..0294533bdcd 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_rog_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index e107ea954e4..1ba962982e4 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_sha_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "GridNotifiers.h"
#include "Unit.h"
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index aa56f8300bc..f83056aa8b6 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_warl_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index cc8dbe35703..613bf0fef5d 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -21,6 +21,7 @@
* Scriptnames of files in this file should be prefixed with "spell_warr_".
*/
+#include "Player.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp
index a6f4f7f64f9..178df2078f8 100755
--- a/src/server/scripts/World/achievement_scripts.cpp
+++ b/src/server/scripts/World/achievement_scripts.cpp
@@ -23,6 +23,8 @@
#include "BattlegroundSA.h"
#include "BattlegroundAV.h"
#include "Vehicle.h"
+#include "Player.h"
+#include "Creature.h"
class achievement_resilient_victory : public AchievementCriteriaScript
{
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index 67aeda314bf..db3c6dd2274 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -37,6 +37,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "Player.h"
/*######
## at_coilfang_waterfall
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp
index abb20130ef8..a8f65b0bc9b 100644
--- a/src/server/scripts/World/boss_emerald_dragons.cpp
+++ b/src/server/scripts/World/boss_emerald_dragons.cpp
@@ -22,6 +22,7 @@
#include "SpellScript.h"
#include "Spell.h"
#include "SpellAuraEffects.h"
+#include "PassiveAI.h"
//
// Emerald Dragon NPCs and IDs (kept here for reference)
@@ -91,14 +92,12 @@ struct emerald_dragonAI : public WorldBossAI
{
emerald_dragonAI(Creature* creature) : WorldBossAI(creature)
{
-// me->m_CombatDistance = 12.0f;
-// me->m_SightDistance = 60.0f;
}
void Reset()
{
- _Reset();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE);
+ WorldBossAI::Reset();
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
DoCast(me, SPELL_MARK_OF_NATURE_AURA, true);
events.ScheduleEvent(EVENT_TAIL_SWEEP, 4000);
@@ -109,7 +108,8 @@ struct emerald_dragonAI : public WorldBossAI
// Target killed during encounter, mark them as suspectible for Aura Of Nature
void KilledUnit(Unit* who)
{
- who->CastSpell(who, SPELL_MARK_OF_NATURE, true);
+ if (who->GetTypeId() == TYPEID_PLAYER)
+ who->CastSpell(who, SPELL_MARK_OF_NATURE, true);
}
// Execute and reschedule base events shared between all Emerald Dragons
@@ -216,109 +216,6 @@ class npc_dream_fog : public CreatureScript
};
/*
- * --- Spell: Dream Fog
- */
-
-class DreamFogTargetSelector
-{
- public:
- DreamFogTargetSelector() { }
-
- bool operator()(WorldObject* object) const
- {
- return object->ToUnit() && object->ToUnit()->HasAura(SPELL_SLEEP);
- }
-};
-
-class spell_dream_fog_sleep : public SpellScriptLoader
-{
- public:
- spell_dream_fog_sleep() : SpellScriptLoader("spell_dream_fog_sleep") { }
-
- class spell_dream_fog_sleep_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_dream_fog_sleep_SpellScript);
-
- void FilterTargets(std::list<WorldObject*>& unitList)
- {
- unitList.remove_if(DreamFogTargetSelector());
- }
-
- void Register()
- {
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dream_fog_sleep_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_dream_fog_sleep_SpellScript();
- }
-};
-
-/*
- * --- Spell: Mark of Nature
- */
-
-class MarkOfNatureTargetSelector
-{
- public:
- MarkOfNatureTargetSelector() { }
-
- bool operator()(WorldObject* object) const
- {
- if (Unit* unit = object->ToUnit())
- // return anyone that isn't tagged or already under the influence of Aura of Nature
- return !(unit->HasAura(SPELL_MARK_OF_NATURE) && !unit->HasAura(SPELL_AURA_OF_NATURE));
- return true;
- }
-};
-
-class spell_mark_of_nature : public SpellScriptLoader
-{
- public:
- spell_mark_of_nature() : SpellScriptLoader("spell_mark_of_nature") { }
-
- class spell_mark_of_nature_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_mark_of_nature_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_NATURE))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_AURA_OF_NATURE))
- return false;
- return true;
- }
-
- void FilterTargets(std::list<WorldObject*>& targets)
- {
- targets.remove_if(MarkOfNatureTargetSelector());
- }
-
- void HandleEffect(SpellEffIndex effIndex)
- {
- PreventHitDefaultEffect(effIndex);
-
- if (GetHitUnit())
- GetHitUnit()->CastSpell(GetHitUnit(), SPELL_AURA_OF_NATURE, true);
- }
-
- void Register()
- {
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_mark_of_nature_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
- OnEffectHitTarget += SpellEffectFn(spell_mark_of_nature_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_mark_of_nature_SpellScript();
- }
-};
-
-/*
* ---
* --- Dragonspecific scripts and handling: YSONDRE
* ---
@@ -355,7 +252,6 @@ class boss_ysondre : public CreatureScript
void Reset()
{
_stage = 1;
- _Reset();
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_LIGHTNING_WAVE, 12000);
}
@@ -394,7 +290,7 @@ class boss_ysondre : public CreatureScript
}
private:
- uint8 _stage;
+ uint8 _stage;
};
CreatureAI* GetAI(Creature* creature) const
@@ -409,8 +305,6 @@ class boss_ysondre : public CreatureScript
* ---
*
* TODO:
- * - NPC helper for spirit shades(?)
- * - Spirit shade NPC moves towards Lethon and heals him if close enough (each shade heals for 15000 HP)
* - Spell: Shadow bolt whirl casts needs custom handling (spellscript)
*/
@@ -424,7 +318,12 @@ enum LethonSpells
{
SPELL_DRAW_SPIRIT = 24811,
SPELL_SHADOW_BOLT_WHIRL = 24834,
- SPELL_SPIRIT_SHADE_VISUAL = 24908,
+ SPELL_DARK_OFFERING = 24804,
+};
+
+enum LethonCreatures
+{
+ NPC_SPIRIT_SHADE = 15261,
};
class boss_lethon : public CreatureScript
@@ -441,7 +340,6 @@ class boss_lethon : public CreatureScript
void Reset()
{
_stage = 1;
- _Reset();
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_SHADOW_BOLT_WHIRL, 10000);
}
@@ -462,12 +360,22 @@ class boss_lethon : public CreatureScript
}
}
+ void SpellHitTarget(Unit* target, SpellInfo const* spell)
+ {
+ if (spell->Id == SPELL_DRAW_SPIRIT && target->GetTypeId() == TYPEID_PLAYER)
+ {
+ Position targetPos;
+ target->GetPosition(&targetPos);
+ me->SummonCreature(NPC_SPIRIT_SHADE, targetPos, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 50000);
+ }
+ }
+
void ExecuteEvent(uint32 const eventId)
{
switch (eventId)
{
case EVENT_SHADOW_BOLT_WHIRL:
- DoCast(me, SPELL_SHADOW_BOLT_WHIRL, true);
+ me->CastSpell((Unit*)NULL, SPELL_SHADOW_BOLT_WHIRL, false);
events.ScheduleEvent(EVENT_SHADOW_BOLT_WHIRL, urand(15000, 30000));
break;
default:
@@ -477,7 +385,7 @@ class boss_lethon : public CreatureScript
}
private:
- uint8 _stage;
+ uint8 _stage;
};
CreatureAI* GetAI(Creature* creature) const
@@ -486,6 +394,42 @@ class boss_lethon : public CreatureScript
}
};
+class npc_spirit_shade : public CreatureScript
+{
+ public:
+ npc_spirit_shade() : CreatureScript("npc_spirit_shade") { }
+
+ struct npc_spirit_shadeAI : public PassiveAI
+ {
+ npc_spirit_shadeAI(Creature* creature) : PassiveAI(creature), _summonerGuid(0)
+ {
+ }
+
+ void IsSummonedBy(Unit* summoner)
+ {
+ _summonerGuid = summoner->GetGUID();
+ me->GetMotionMaster()->MoveFollow(summoner, 0.0f, 0.0f);
+ }
+
+ void MovementInform(uint32 moveType, uint32 data)
+ {
+ if (moveType == FOLLOW_MOTION_TYPE && data == _summonerGuid)
+ {
+ me->CastSpell((Unit*)NULL, SPELL_DARK_OFFERING, false);
+ me->DespawnOrUnsummon(1000);
+ }
+ }
+
+ private:
+ uint64 _summonerGuid;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_spirit_shadeAI(creature);
+ }
+};
+
/*
* ---
* --- Dragonspecific scripts and handling: EMERISS
@@ -519,7 +463,6 @@ class boss_emeriss : public CreatureScript
void Reset()
{
_stage = 1;
- _Reset();
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_VOLATILE_INFECTION, 12000);
}
@@ -562,7 +505,7 @@ class boss_emeriss : public CreatureScript
}
private:
- uint8 _stage;
+ uint8 _stage;
};
CreatureAI* GetAI(Creature* creature) const
@@ -607,10 +550,6 @@ class boss_taerar : public CreatureScript
{
boss_taerarAI(Creature* creature) : emerald_dragonAI(creature)
{
- _stage = 1;
- _shades = 0;
- _banished = false;
- _banishedTimer = 0;
}
void Reset()
@@ -622,7 +561,6 @@ class boss_taerar : public CreatureScript
_banished = false;
_banishedTimer = 0;
- _Reset();
emerald_dragonAI::Reset();
events.ScheduleEvent(EVENT_ARCANE_BLAST, 12000);
events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000);
@@ -655,11 +593,11 @@ class boss_taerar : public CreatureScript
uint32 count = sizeof(TaerarShadeSpells) / sizeof(uint32);
for (uint32 i = 0; i < count; ++i)
- DoCastVictim(TaerarShadeSpells[i], true);
+ DoCast(me->getVictim(), TaerarShadeSpells[i], true);
_shades += count;
DoCast(SPELL_SHADE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE);
++_stage;
@@ -696,7 +634,7 @@ class boss_taerar : public CreatureScript
{
_banished = false;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
me->RemoveAurasDueToSpell(SPELL_SHADE);
me->SetReactState(REACT_AGGRESSIVE);
}
@@ -714,10 +652,10 @@ class boss_taerar : public CreatureScript
}
private:
- bool _banished; // used for shades activation testing
- uint32 _banishedTimer; // counter for banishment timeout
- uint8 _shades; // keep track of how many shades are dead
- uint8 _stage; // check which "shade phase" we're at (75-50-25 percentage counters)
+ bool _banished; // used for shades activation testing
+ uint32 _banishedTimer; // counter for banishment timeout
+ uint8 _shades; // keep track of how many shades are dead
+ uint8 _stage; // check which "shade phase" we're at (75-50-25 percentage counters)
};
CreatureAI* GetAI(Creature* creature) const
@@ -726,18 +664,122 @@ class boss_taerar : public CreatureScript
}
};
+/*
+ * --- Spell: Dream Fog
+ */
+
+class DreamFogTargetSelector
+{
+ public:
+ DreamFogTargetSelector() { }
+
+ bool operator()(WorldObject* object)
+ {
+ if (Unit* unit = object->ToUnit())
+ return unit->HasAura(SPELL_SLEEP);
+ return true;
+ }
+};
+
+class spell_dream_fog_sleep : public SpellScriptLoader
+{
+ public:
+ spell_dream_fog_sleep() : SpellScriptLoader("spell_dream_fog_sleep") { }
+
+ class spell_dream_fog_sleep_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_dream_fog_sleep_SpellScript);
+
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ targets.remove_if(DreamFogTargetSelector());
+ }
+
+ void Register()
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dream_fog_sleep_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_dream_fog_sleep_SpellScript();
+ }
+};
+
+/*
+ * --- Spell: Mark of Nature
+ */
+
+class MarkOfNatureTargetSelector
+{
+ public:
+ MarkOfNatureTargetSelector() { }
+
+ bool operator()(WorldObject* object)
+ {
+ // return those not tagged or already under the influence of Aura of Nature
+ if (Unit* unit = object->ToUnit())
+ return !(unit->HasAura(SPELL_MARK_OF_NATURE) && !unit->HasAura(SPELL_AURA_OF_NATURE));
+ return true;
+ }
+};
+
+class spell_mark_of_nature : public SpellScriptLoader
+{
+ public:
+ spell_mark_of_nature() : SpellScriptLoader("spell_mark_of_nature") { }
+
+ class spell_mark_of_nature_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_mark_of_nature_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_NATURE))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_AURA_OF_NATURE))
+ return false;
+ return true;
+ }
+
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ targets.remove_if(MarkOfNatureTargetSelector());
+ }
+
+ void HandleEffect(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+ GetHitUnit()->CastSpell(GetHitUnit(), SPELL_AURA_OF_NATURE, true);
+ }
+
+ void Register()
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_mark_of_nature_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
+ OnEffectHitTarget += SpellEffectFn(spell_mark_of_nature_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_mark_of_nature_SpellScript();
+ }
+};
+
void AddSC_emerald_dragons()
{
// helper NPC scripts
new npc_dream_fog();
-
- // dragon spellscripts
- new spell_dream_fog_sleep();
- new spell_mark_of_nature();
+ new npc_spirit_shade();
// dragons
new boss_ysondre();
new boss_taerar();
new boss_emeriss();
new boss_lethon();
+
+ // dragon spellscripts
+ new spell_dream_fog_sleep();
+ new spell_mark_of_nature();
};
diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp
index ddb0044a888..dac67b566e3 100644
--- a/src/server/scripts/World/go_scripts.cpp
+++ b/src/server/scripts/World/go_scripts.cpp
@@ -55,6 +55,8 @@ EndContentData */
#include "ScriptedGossip.h"
#include "GameObjectAI.h"
#include "Spell.h"
+#include "Player.h"
+#include "WorldSession.h"
/*######
## go_cat_figurine
diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp
index 4b0433fe0c7..951c0ed9688 100644
--- a/src/server/scripts/World/guards.cpp
+++ b/src/server/scripts/World/guards.cpp
@@ -32,6 +32,8 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "GuardAI.h"
+#include "Player.h"
+#include "SpellInfo.h"
enum GuardGeneric
{
diff --git a/src/server/scripts/World/item_scripts.cpp b/src/server/scripts/World/item_scripts.cpp
index d888e6cb56b..535bebd9415 100644
--- a/src/server/scripts/World/item_scripts.cpp
+++ b/src/server/scripts/World/item_scripts.cpp
@@ -33,6 +33,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "Spell.h"
+#include "Player.h"
/*#####
# item_only_for_flight
diff --git a/src/server/scripts/World/npc_innkeeper.cpp b/src/server/scripts/World/npc_innkeeper.cpp
index f57af517db2..502ecb1acb2 100644
--- a/src/server/scripts/World/npc_innkeeper.cpp
+++ b/src/server/scripts/World/npc_innkeeper.cpp
@@ -27,6 +27,8 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "GameEventMgr.h"
+#include "Player.h"
+#include "WorldSession.h"
#define HALLOWEEN_EVENTID 12
#define SPELL_TRICK_OR_TREATED 24755
diff --git a/src/server/scripts/World/npc_professions.cpp b/src/server/scripts/World/npc_professions.cpp
index 175cfb190d7..4e0818c7c82 100644
--- a/src/server/scripts/World/npc_professions.cpp
+++ b/src/server/scripts/World/npc_professions.cpp
@@ -26,6 +26,9 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "SpellInfo.h"
+#include "WorldSession.h"
/*
A few notes for future developement:
diff --git a/src/server/scripts/World/npc_taxi.cpp b/src/server/scripts/World/npc_taxi.cpp
index efdd4da73d6..4ed5b0d9276 100644
--- a/src/server/scripts/World/npc_taxi.cpp
+++ b/src/server/scripts/World/npc_taxi.cpp
@@ -27,6 +27,8 @@ EndScriptData
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "Player.h"
+#include "WorldSession.h"
#define GOSSIP_SUSURRUS "I am ready."
#define GOSSIP_NETHER_DRAKE "I'm ready to fly! Take me up, dragon!"
@@ -51,8 +53,6 @@ EndScriptData
#define GOSSIP_TARIOLSTRASZ2 "Can you spare a drake to travel to Lord Of Afrasastrasz, in the middle of the temple?"
#define GOSSIP_TORASTRASZA1 "I would like to see Lord Of Afrasastrasz, in the middle of the temple."
#define GOSSIP_TORASTRASZA2 "Yes, Please. I would like to return to the ground floor of the temple."
-#define GOSSIP_CAMILLE1 "I need to fly to the Windrunner Official business!"
-#define GOSSIP_CAMILLE2 "<The riding bat for the special task is necessary to me.>"
#define GOSSIP_CRIMSONWING "<Ride the gryphons to Survey Alcaz Island>"
#define GOSSIP_THRICESTAR1 "Do you think I could take a ride on one of those flying machines?"
#define GOSSIP_THRICESTAR2 "Kara, I need to be flown out the Dens of Dying to find Bixie."
@@ -159,12 +159,6 @@ public:
// top -> ground
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
break;
- case 23816: // Howling Fjord - Bat Handler Camille
- if (!player->GetQuestRewardStatus(11229))
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CAMILLE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23);
- if (player->GetQuestStatus(11170) == QUEST_STATUS_INCOMPLETE)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CAMILLE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 24);
- break;
case 23704: // Dustwallow Marsh - Cassa Crimsonwing
if (player->GetQuestStatus(11142) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 4f0687ef11d..b38530b2a4a 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -58,6 +58,7 @@ EndContentData */
#include "Cell.h"
#include "CellImpl.h"
#include "SpellAuras.h"
+#include "Pet.h"
/*########
# npc_air_force_bots
@@ -2284,7 +2285,7 @@ class npc_wormhole : public CreatureScript
_showUnderground = urand(0, 100) == 0; // Guessed value, it is really rare though
}
- uint32 GetData(uint32 type)
+ uint32 GetData(uint32 type) const
{
return (type == DATA_SHOW_UNDERGROUND && _showUnderground) ? 1 : 0;
}
diff --git a/src/server/shared/AutoPtr.h b/src/server/shared/AutoPtr.h
index f4199880abd..9afa05325c9 100644
--- a/src/server/shared/AutoPtr.h
+++ b/src/server/shared/AutoPtr.h
@@ -22,32 +22,32 @@
namespace Trinity
{
- template <class Pointer, class Lock>
- class AutoPtr : public ACE_Strong_Bound_Ptr<Pointer, Lock>
+
+template <class Pointer, class Lock>
+class AutoPtr : public ACE_Strong_Bound_Ptr<Pointer, Lock>
+{
+ typedef ACE_Strong_Bound_Ptr<Pointer, Lock> Base;
+
+public:
+ AutoPtr()
+ : Base()
+ { }
+
+ AutoPtr(Pointer* x)
+ : Base(x)
+ { }
+
+ operator bool() const
+ {
+ return !Base::null();
+ }
+
+ bool operator !() const
{
- public:
- AutoPtr() : ACE_Strong_Bound_Ptr<Pointer, Lock>() {}
-
- AutoPtr(Pointer* x)
- {
- ACE_Strong_Bound_Ptr<Pointer, Lock>::reset(x);
- }
-
- operator bool() const
- {
- return ACE_Strong_Bound_Ptr<Pointer, Lock>::get() != NULL;
- }
-
- bool operator !() const
- {
- return ACE_Strong_Bound_Ptr<Pointer, Lock>::get() == NULL;
- }
-
- bool operator !=(Pointer* x) const
- {
- return ACE_Strong_Bound_Ptr<Pointer, Lock>::get() != x;
- }
- };
-}
+ return Base::null();
+ }
+};
+
+} // namespace Trinity
#endif
diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt
index e016ad249b3..7143c8bcd47 100644
--- a/src/server/shared/CMakeLists.txt
+++ b/src/server/shared/CMakeLists.txt
@@ -28,11 +28,9 @@ file(GLOB sources_localdir *.cpp *.h)
# Build shared sourcelist
#
-if( USE_COREPCH AND MSVC )
- set(shared_STAT_SRCS
- PrecompiledHeaders/sharedPCH.cpp
- PrecompiledHeaders/sharedPCH.h
- )
+if (USE_COREPCH)
+ set(shared_STAT_PCH_HDR PrecompiledHeaders/sharedPCH.h)
+ set(shared_STAT_PCH_SRC PrecompiledHeaders/sharedPCH.cpp)
endif()
set(shared_STAT_SRCS
@@ -74,18 +72,16 @@ include_directories(
${OPENSSL_INCLUDE_DIR}
)
-add_library(shared STATIC ${shared_STAT_SRCS})
+add_library(shared STATIC
+ ${shared_STAT_SRCS}
+ ${shared_STAT_PCH_SRC}
+)
target_link_libraries(shared
${ACE_LIBRARY}
)
# Generate precompiled header
-if( USE_COREPCH )
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_precompiled_header(shared ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/sharedPCH.h)
- elseif(MSVC)
- add_native_precompiled_header(shared ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/sharedPCH)
- endif()
-endif()
-
+if (USE_COREPCH)
+ add_cxx_pch(shared ${shared_STAT_PCH_HDR} ${shared_STAT_PCH_SRC})
+endif ()
diff --git a/src/server/shared/Cryptography/BigNumber.cpp b/src/server/shared/Cryptography/BigNumber.cpp
index 8e424e9bcdb..def0a7fd02e 100755
--- a/src/server/shared/Cryptography/BigNumber.cpp
+++ b/src/server/shared/Cryptography/BigNumber.cpp
@@ -192,12 +192,12 @@ uint8 *BigNumber::AsByteArray(int minSize, bool reverse)
return _array;
}
-const char *BigNumber::AsHexStr()
+char * BigNumber::AsHexStr() const
{
return BN_bn2hex(_bn);
}
-const char *BigNumber::AsDecStr()
+char * BigNumber::AsDecStr() const
{
return BN_bn2dec(_bn);
}
diff --git a/src/server/shared/Cryptography/BigNumber.h b/src/server/shared/Cryptography/BigNumber.h
index a27d74fb5c7..36a618056a5 100755
--- a/src/server/shared/Cryptography/BigNumber.h
+++ b/src/server/shared/Cryptography/BigNumber.h
@@ -84,8 +84,8 @@ class BigNumber
uint32 AsDword();
uint8* AsByteArray(int minSize = 0, bool reverse = true);
- const char *AsHexStr();
- const char *AsDecStr();
+ char * AsHexStr() const;
+ char * AsDecStr() const;
private:
struct bignum_st *_bn;
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index db9a5646a69..5210ee6f39d 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -535,4 +535,10 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PREPARE_STATEMENT(CHAR_INS_CHAR_TALENT, "INSERT INTO character_talent (guid, spell, spec) VALUES (?, ?, ?)", CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_ACTION_EXCEPT_SPEC, "DELETE FROM character_action WHERE spec<>? AND guid = ?", CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_CHAR_PET_BY_ENTRY_AND_SLOT, "SELECT id, entry, owner, modelid, level, exp, Reactstate, slot, name, renamed, curhealth, curmana, curhappiness, abdata, savetime, CreatedBySpell, PetType FROM character_pet WHERE owner = ? AND slot = ?", CONNECTION_SYNCH);
+
+ // Calendar
+ PREPARE_STATEMENT(CHAR_REP_CALENDAR_EVENT, "REPLACE INTO calendar_events (id, creator, title, description, type, dungeon, eventtime, flags, time2) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
+ PREPARE_STATEMENT(CHAR_DEL_CALENDAR_EVENT, "DELETE FROM calendar_events WHERE id = ?", CONNECTION_ASYNC);
+ PREPARE_STATEMENT(CHAR_REP_CALENDAR_INVITE, "REPLACE INTO calendar_invites (id, event, invitee, sender, status, statustime, rank, text) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
+ PREPARE_STATEMENT(CHAR_DEL_CALENDAR_INVITE, "DELETE FROM calendar_invites WHERE id = ?", CONNECTION_ASYNC);
}
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h
index e421a7917ca..7e4fe6a0b0e 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.h
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.h
@@ -496,6 +496,11 @@ enum CharacterDatabaseStatements
CHAR_DEL_CHAR_ACTION_EXCEPT_SPEC,
CHAR_SEL_CHAR_PET_BY_ENTRY_AND_SLOT,
+ CHAR_REP_CALENDAR_EVENT,
+ CHAR_DEL_CALENDAR_EVENT,
+ CHAR_REP_CALENDAR_INVITE,
+ CHAR_DEL_CALENDAR_INVITE,
+
MAX_CHARACTERDATABASE_STATEMENTS
};
diff --git a/src/server/shared/Database/PreparedStatement.h b/src/server/shared/Database/PreparedStatement.h
index 11ece3e3032..90ea435d1f9 100755
--- a/src/server/shared/Database/PreparedStatement.h
+++ b/src/server/shared/Database/PreparedStatement.h
@@ -21,6 +21,10 @@
#include "SQLOperation.h"
#include <ace/Future.h>
+#ifdef __APPLE__
+#undef TYPE_BOOL
+#endif
+
//- Union for data buffer (upper-level bind -> queue -> lower-level bind)
union PreparedStatementDataUnion
{
@@ -157,4 +161,4 @@ class PreparedStatementTask : public SQLOperation
bool m_has_result;
PreparedQueryResultFuture m_result;
};
-#endif \ No newline at end of file
+#endif
diff --git a/src/server/shared/Database/QueryResult.h b/src/server/shared/Database/QueryResult.h
index e32b16555bc..be7fa7b649c 100755
--- a/src/server/shared/Database/QueryResult.h
+++ b/src/server/shared/Database/QueryResult.h
@@ -23,7 +23,6 @@
#include <ace/Thread_Mutex.h>
#include "Field.h"
-#include "Log.h"
#ifdef _WIN32
#include <winsock2.h>
diff --git a/src/server/shared/Dynamic/LinkedReference/Reference.h b/src/server/shared/Dynamic/LinkedReference/Reference.h
index 6c9710381b9..22921b075fe 100755
--- a/src/server/shared/Dynamic/LinkedReference/Reference.h
+++ b/src/server/shared/Dynamic/LinkedReference/Reference.h
@@ -20,6 +20,7 @@
#define _REFERENCE_H
#include "Dynamic/LinkedList.h"
+#include <assert.h>
//=====================================================
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index 1fa3148504a..e79544e7315 100755
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -372,7 +372,7 @@ class ByteBuffer
lt.tm_mon = (packedDate >> 20) & 0xF;
lt.tm_year = ((packedDate >> 24) & 0x1F) + 100;
- return mktime(&lt) + timezone;
+ return uint32(mktime(&lt) + timezone);
}
ByteBuffer& ReadPackedTime(uint32& time)
diff --git a/src/server/shared/Threading/DelayExecutor.cpp b/src/server/shared/Threading/DelayExecutor.cpp
index cfc4987387f..685e86e2a2f 100644
--- a/src/server/shared/Threading/DelayExecutor.cpp
+++ b/src/server/shared/Threading/DelayExecutor.cpp
@@ -59,7 +59,7 @@ int DelayExecutor::svc()
return 0;
}
-int DelayExecutor::activate(int num_threads, ACE_Method_Request* pre_svc_hook, ACE_Method_Request* post_svc_hook)
+int DelayExecutor::start(int num_threads, ACE_Method_Request* pre_svc_hook, ACE_Method_Request* post_svc_hook)
{
if (activated())
return -1;
diff --git a/src/server/shared/Threading/DelayExecutor.h b/src/server/shared/Threading/DelayExecutor.h
index 664d8ca78a2..5eaaacdb98b 100644
--- a/src/server/shared/Threading/DelayExecutor.h
+++ b/src/server/shared/Threading/DelayExecutor.h
@@ -16,7 +16,7 @@ class DelayExecutor : protected ACE_Task_Base
int execute(ACE_Method_Request* new_req);
- int activate(int num_threads = 1, ACE_Method_Request* pre_svc_hook = NULL, ACE_Method_Request* post_svc_hook = NULL);
+ int start(int num_threads = 1, ACE_Method_Request* pre_svc_hook = NULL, ACE_Method_Request* post_svc_hook = NULL);
int deactivate();
diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt
index 45442123258..13679cce866 100644
--- a/src/server/worldserver/CMakeLists.txt
+++ b/src/server/worldserver/CMakeLists.txt
@@ -14,15 +14,9 @@ file(GLOB_RECURSE sources_TCSoap TCSoap/*.cpp TCSoap/*.h)
file(GLOB_RECURSE sources_WorldThread WorldThread/*.cpp WorldThread/*.h)
file(GLOB sources_localdir *.cpp *.h)
-if( USE_COREPCH )
- include_directories(${CMAKE_CURRENT_BINARY_DIR})
-endif()
-
-if ( USE_COREPCH AND MSVC )
- set(worldserver_SRCS
- PrecompiledHeaders/worldPCH.cpp
- PrecompiledHeaders/worldPCH.h
- )
+if (USE_COREPCH)
+ set(worldserver_PCH_HDR PrecompiledHeaders/worldPCH.h)
+ set(worldserver_PCH_SRC PrecompiledHeaders/worldPCH.cpp)
endif()
set(worldserver_SRCS
@@ -144,17 +138,21 @@ include_directories(
${OPENSSL_INCLUDE_DIR}
)
-set(worldserver_LINK_FLAGS "")
-
-add_executable(worldserver ${worldserver_SRCS})
+add_executable(worldserver
+ ${worldserver_SRCS}
+ ${worldserver_PCH_SRC}
+)
if( NOT WIN32 )
- add_definitions(-D_TRINITY_CORE_CONFIG='"${CONF_DIR}/worldserver.conf"')
+ set_target_properties(worldserver PROPERTIES
+ COMPILE_DEFINITIONS _TRINITY_CORE_CONFIG="${CONF_DIR}/worldserver.conf"
+ )
endif()
add_dependencies(worldserver revision.h)
-if( UNIX )
+
+if( UNIX AND NOT NOJEM )
set(worldserver_LINK_FLAGS "-pthread -lncurses ${worldserver_LINK_FLAGS}")
endif()
@@ -174,9 +172,7 @@ target_link_libraries(worldserver
${ACE_LIBRARY}
${MYSQL_LIBRARY}
${OPENSSL_LIBRARIES}
- ${OPENSSL_EXTRA_LIBRARIES}
${ZLIB_LIBRARIES}
- ${OSX_LIBS}
)
if( WIN32 )
@@ -196,9 +192,5 @@ endif()
# Generate precompiled header
if( USE_COREPCH )
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_precompiled_header(worldserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/worldPCH.h)
- elseif(MSVC)
- add_native_precompiled_header(worldserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/worldPCH)
- endif()
+ add_cxx_pch(worldserver ${worldserver_PCH_HDR} ${worldserver_PCH_SRC})
endif()