aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorkaelima <kaelima@live.se>2012-05-30 08:01:02 +0200
committerkaelima <kaelima@live.se>2012-05-30 08:01:02 +0200
commit3d14384c32971096b49f88ff785d92879480af76 (patch)
treec1ade41c9d04583a717a705132ca09dde7a8ad56 /src/server/scripts
parentbdf6cf5146b884591e3a033a31ca5b729fdff0ff (diff)
Merge git://github.com/TrinityCore/TrinityCore into 4.x
Conflicts: dep/PackageList.txt sql/base/auth_database.sql src/server/authserver/Server/AuthSocket.cpp src/server/game/Battlegrounds/BattlegroundMgr.cpp src/server/game/Chat/Commands/Level1.cpp src/server/game/Chat/Commands/Level3.cpp src/server/game/DataStores/DBCEnums.h src/server/game/DataStores/DBCStores.cpp src/server/game/DataStores/DBCStores.h src/server/game/DataStores/DBCStructure.h src/server/game/DataStores/DBCfmt.h src/server/game/Entities/Corpse/Corpse.cpp src/server/game/Entities/Creature/Creature.cpp src/server/game/Entities/DynamicObject/DynamicObject.cpp src/server/game/Entities/GameObject/GameObject.cpp src/server/game/Entities/Item/Item.cpp src/server/game/Entities/Object/Object.cpp src/server/game/Entities/Object/Updates/UpdateData.h src/server/game/Entities/Pet/Pet.cpp src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Player/Player.h src/server/game/Entities/Transport/Transport.cpp src/server/game/Entities/Unit/Unit.cpp src/server/game/Globals/ObjectMgr.cpp src/server/game/Globals/ObjectMgr.h src/server/game/Guilds/Guild.cpp src/server/game/Handlers/CharacterHandler.cpp src/server/game/Handlers/MiscHandler.cpp src/server/game/Handlers/MovementHandler.cpp src/server/game/Handlers/QuestHandler.cpp src/server/game/Loot/LootMgr.cpp src/server/game/Miscellaneous/SharedDefines.h src/server/game/Quests/QuestDef.cpp src/server/game/Server/Protocol/Opcodes.cpp src/server/game/Server/Protocol/Opcodes.h src/server/game/Server/WorldSession.cpp src/server/game/Server/WorldSocket.cpp src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/Spells/Spell.cpp src/server/game/Spells/Spell.h src/server/game/Spells/SpellEffects.cpp src/server/game/Tickets/TicketMgr.cpp src/server/scripts/Commands/cs_gps.cpp src/server/scripts/Commands/cs_modify.cpp src/server/shared/Database/Implementation/CharacterDatabase.cpp src/server/shared/Logging/Log.h src/tools/map_extractor/CMakeLists.txt src/tools/map_extractor/System.cpp src/tools/map_extractor/mpq_libmpq04.h src/tools/vmap4_extractor/CMakeLists.txt
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/CMakeLists.txt3
-rw-r--r--src/server/scripts/Commands/CMakeLists.txt3
-rw-r--r--src/server/scripts/Commands/cs_account.cpp37
-rw-r--r--src/server/scripts/Commands/cs_achievement.cpp2
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp57
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp6
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp16
-rw-r--r--src/server/scripts/Commands/cs_gps.cpp144
-rw-r--r--src/server/scripts/Commands/cs_learn.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp90
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp54
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp87
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp196
-rw-r--r--src/server/scripts/Commands/cs_tele.cpp9
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp137
-rw-r--r--src/server/scripts/Custom/CMakeLists.txt2
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp531
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp84
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h39
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp41
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp77
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp36
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/CMakeLists.txt3
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/deadmines.h1
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp42
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp26
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp40
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp132
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h40
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/MoltenCore/molten_core.cpp86
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp79
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp106
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp80
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp45
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp19
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp52
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp26
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp51
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp17
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp32
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp37
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp35
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp31
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp26
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp26
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp92
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/arathi_highlands.cpp56
-rw-r--r--src/server/scripts/EasternKingdoms/blasted_lands.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/boss_kruul.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/burning_steppes.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/duskwood.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/eversong_woods.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/ghostlands.cpp108
-rw-r--r--src/server/scripts/EasternKingdoms/hinterlands.cpp15
-rw-r--r--src/server/scripts/EasternKingdoms/ironforge.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/loch_modan.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/redridge_mountains.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/silvermoon_city.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/silverpine_forest.cpp57
-rw-r--r--src/server/scripts/EasternKingdoms/stormwind_city.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp32
-rw-r--r--src/server/scripts/EasternKingdoms/tirisfal_glades.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/undercity.cpp112
-rw-r--r--src/server/scripts/EasternKingdoms/western_plaguelands.cpp31
-rw-r--r--src/server/scripts/EasternKingdoms/westfall.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/wetlands.cpp7
-rw-r--r--src/server/scripts/Examples/CMakeLists.txt2
-rw-r--r--src/server/scripts/Examples/example_creature.cpp6
-rw-r--r--src/server/scripts/Examples/example_escort.cpp10
-rw-r--r--src/server/scripts/Examples/example_gossip_codebox.cpp10
-rw-r--r--src/server/scripts/Examples/example_spell.cpp4
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CMakeLists.txt2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp23
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp43
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp25
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp17
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp17
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp30
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp204
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.h2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp30
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp16
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp24
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp8
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp38
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp2
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp42
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp13
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp87
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp20
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp29
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp6
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp10
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp4
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp24
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp8
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp43
-rw-r--r--src/server/scripts/Kalimdor/ashenvale.cpp248
-rw-r--r--src/server/scripts/Kalimdor/azshara.cpp238
-rw-r--r--src/server/scripts/Kalimdor/azuremyst_isle.cpp222
-rw-r--r--src/server/scripts/Kalimdor/bloodmyst_isle.cpp30
-rw-r--r--src/server/scripts/Kalimdor/boss_azuregos.cpp125
-rw-r--r--src/server/scripts/Kalimdor/darkshore.cpp142
-rw-r--r--src/server/scripts/Kalimdor/desolace.cpp37
-rw-r--r--src/server/scripts/Kalimdor/durotar.cpp127
-rw-r--r--src/server/scripts/Kalimdor/dustwallow_marsh.cpp157
-rw-r--r--src/server/scripts/Kalimdor/felwood.cpp34
-rw-r--r--src/server/scripts/Kalimdor/feralas.cpp20
-rw-r--r--src/server/scripts/Kalimdor/moonglade.cpp230
-rw-r--r--src/server/scripts/Kalimdor/mulgore.cpp179
-rw-r--r--src/server/scripts/Kalimdor/orgrimmar.cpp61
-rw-r--r--src/server/scripts/Kalimdor/silithus.cpp129
-rw-r--r--src/server/scripts/Kalimdor/stonetalon_mountains.cpp39
-rw-r--r--src/server/scripts/Kalimdor/tanaris.cpp298
-rw-r--r--src/server/scripts/Kalimdor/teldrassil.cpp17
-rw-r--r--src/server/scripts/Kalimdor/the_barrens.cpp197
-rw-r--r--src/server/scripts/Kalimdor/thousand_needles.cpp108
-rw-r--r--src/server/scripts/Kalimdor/thunder_bluff.cpp73
-rw-r--r--src/server/scripts/Kalimdor/ungoro_crater.cpp121
-rw-r--r--src/server/scripts/Kalimdor/winterspring.cpp20
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp8
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp10
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp24
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp82
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp66
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp9
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp18
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp3
-rw-r--r--src/server/scripts/Northrend/CMakeLists.txt4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp8
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp14
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp12
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp8
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp61
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp98
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp52
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp71
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp80
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp301
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp6
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp12
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp4
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp4
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp3
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp587
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp20
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp33
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp6
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp30
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp81
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h2
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_eck.cpp10
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp4
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp8
-rw-r--r--src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp17
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp89
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp73
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp148
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp206
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp248
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp46
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp25
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp34
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h4
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp16
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp20
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp8
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp46
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_noth.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp10
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp12
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp1
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp27
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp14
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp4
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/commander_kolurg.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/commander_stoutbeard.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp6
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp66
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp19
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp60
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp50
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp16
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon.cpp376
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp1374
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp37
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp32
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp18
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp9
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp20
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp31
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp271
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h226
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp11
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp28
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp3
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp100
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp35
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp56
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp95
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp6
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp3
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp4
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp6
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp8
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp8
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp80
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp239
-rw-r--r--src/server/scripts/Northrend/dalaran.cpp6
-rw-r--r--src/server/scripts/Northrend/dragonblight.cpp4
-rw-r--r--src/server/scripts/Northrend/grizzly_hills.cpp42
-rw-r--r--src/server/scripts/Northrend/howling_fjord.cpp20
-rw-r--r--src/server/scripts/Northrend/icecrown.cpp8
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp95
-rw-r--r--src/server/scripts/Northrend/storm_peaks.cpp124
-rw-r--r--src/server/scripts/Northrend/zuldrak.cpp37
-rw-r--r--src/server/scripts/OutdoorPvP/CMakeLists.txt2
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp1
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPEP.h1
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp1
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPZM.h2
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp8
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp4
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp8
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp4
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp12
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp8
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp30
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp6
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp10
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp6
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp3
-rw-r--r--src/server/scripts/Outland/BlackTemple/black_temple.cpp4
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp8
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp95
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp8
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp23
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp59
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_supremus.cpp24
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp27
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp10
-rw-r--r--src/server/scripts/Outland/BlackTemple/illidari_council.cpp44
-rw-r--r--src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp142
-rw-r--r--src/server/scripts/Outland/CMakeLists.txt2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp38
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp69
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp625
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp47
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp139
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp8
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp8
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp12
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp10
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp4
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_gruul.cpp15
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp40
-rw-r--r--src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp19
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp18
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp8
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp30
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp8
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp24
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp12
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp16
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp24
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp14
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp117
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp6
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp3
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp47
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp6
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp10
-rw-r--r--src/server/scripts/Outland/blades_edge_mountains.cpp71
-rw-r--r--src/server/scripts/Outland/boss_doomlord_kazzak.cpp41
-rw-r--r--src/server/scripts/Outland/boss_doomwalker.cpp4
-rw-r--r--src/server/scripts/Outland/hellfire_peninsula.cpp79
-rw-r--r--src/server/scripts/Outland/nagrand.cpp52
-rw-r--r--src/server/scripts/Outland/netherstorm.cpp66
-rw-r--r--src/server/scripts/Outland/shadowmoon_valley.cpp376
-rw-r--r--src/server/scripts/Outland/shattrath_city.cpp140
-rw-r--r--src/server/scripts/Outland/terokkar_forest.cpp143
-rw-r--r--src/server/scripts/Outland/zangarmarsh.cpp32
-rw-r--r--src/server/scripts/Spells/CMakeLists.txt2
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp39
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp6
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp215
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp67
-rw-r--r--src/server/scripts/Spells/spell_item.cpp94
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp26
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp20
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp64
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp86
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp131
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp134
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp80
-rw-r--r--src/server/scripts/World/CMakeLists.txt2
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp80
-rw-r--r--src/server/scripts/World/boss_emerald_dragons.cpp4
-rw-r--r--src/server/scripts/World/go_scripts.cpp300
-rw-r--r--src/server/scripts/World/guards.cpp25
-rw-r--r--src/server/scripts/World/item_scripts.cpp49
-rw-r--r--src/server/scripts/World/mob_generic_creature.cpp8
-rw-r--r--src/server/scripts/World/npc_innkeeper.cpp6
-rw-r--r--src/server/scripts/World/npc_professions.cpp246
-rw-r--r--src/server/scripts/World/npc_taxi.cpp11
-rw-r--r--src/server/scripts/World/npcs_special.cpp592
472 files changed, 10881 insertions, 8799 deletions
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt
index 62336e95ff6..792fdeb3e7b 100644
--- a/src/server/scripts/CMakeLists.txt
+++ b/src/server/scripts/CMakeLists.txt
@@ -34,7 +34,6 @@ set(scripts_STAT_SRCS
../game/AI/ScriptedAI/ScriptedEscortAI.cpp
../game/AI/ScriptedAI/ScriptedCreature.cpp
../game/AI/ScriptedAI/ScriptedFollowerAI.cpp
- ../game/AI/ScriptedAI/ScriptedSimpleAI.cpp
)
if(SCRIPTS)
@@ -54,7 +53,6 @@ include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/dep/g3dlite/include
${CMAKE_SOURCE_DIR}/dep/SFMT
- ${CMAKE_SOURCE_DIR}/dep/mersennetwister
${CMAKE_SOURCE_DIR}/dep/zlib
${CMAKE_SOURCE_DIR}/src/server/shared
${CMAKE_SOURCE_DIR}/src/server/shared/Configuration
@@ -121,6 +119,7 @@ include_directories(
${CMAKE_SOURCE_DIR}/src/server/game/Maps
${CMAKE_SOURCE_DIR}/src/server/game/Movement
${CMAKE_SOURCE_DIR}/src/server/game/Movement/MovementGenerators
+ ${CMAKE_SOURCE_DIR}/src/server/game/Movement/Spline
${CMAKE_SOURCE_DIR}/src/server/game/Movement/Waypoints
${CMAKE_SOURCE_DIR}/src/server/game/Opcodes
${CMAKE_SOURCE_DIR}/src/server/game/OutdoorPvP
diff --git a/src/server/scripts/Commands/CMakeLists.txt b/src/server/scripts/Commands/CMakeLists.txt
index b17350c265d..86fe984e197 100644
--- a/src/server/scripts/Commands/CMakeLists.txt
+++ b/src/server/scripts/Commands/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
@@ -17,7 +17,6 @@ set(scripts_STAT_SRCS
Commands/cs_gm.cpp
Commands/cs_go.cpp
Commands/cs_gobject.cpp
- Commands/cs_gps.cpp
Commands/cs_honor.cpp
Commands/cs_learn.cpp
Commands/cs_misc.cpp
diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp
index 7372c92c4dd..b52102479b5 100644
--- a/src/server/scripts/Commands/cs_account.cpp
+++ b/src/server/scripts/Commands/cs_account.cpp
@@ -194,8 +194,11 @@ public:
static bool HandleAccountOnlineListCommand(ChatHandler* handler, char const* /*args*/)
{
///- Get the list of accounts ID logged to the realm
- QueryResult resultDB = CharacterDatabase.Query("SELECT name, account, map, zone FROM characters WHERE online > 0");
- if (!resultDB)
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_ONLINE);
+
+ PreparedQueryResult result = CharacterDatabase.Query(stmt);
+
+ if (!result)
{
handler->SendSysMessage(LANG_ACCOUNT_LIST_EMPTY);
return true;
@@ -209,31 +212,28 @@ public:
///- Cycle through accounts
do
{
- Field* fieldsDB = resultDB->Fetch();
+ Field* fieldsDB = result->Fetch();
std::string name = fieldsDB[0].GetString();
uint32 account = fieldsDB[1].GetUInt32();
///- Get the username, last IP and GM level of each account
// No SQL injection. account is uint32.
- QueryResult resultLogin =
- LoginDatabase.PQuery("SELECT a.username, a.last_ip, aa.gmlevel, a.expansion "
- "FROM account a "
- "LEFT JOIN account_access aa "
- "ON (a.id = aa.id) "
- "WHERE a.id = '%u'", account);
+ stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_INFO);
+ stmt->setUInt32(0, account);
+ PreparedQueryResult resultLogin = LoginDatabase.Query(stmt);
if (resultLogin)
{
Field* fieldsLogin = resultLogin->Fetch();
handler->PSendSysMessage(LANG_ACCOUNT_LIST_LINE,
fieldsLogin[0].GetCString(), name.c_str(), fieldsLogin[1].GetCString(),
- fieldsDB[2].GetUInt16(), fieldsDB[3].GetUInt16(), fieldsLogin[3].GetUInt32(),
- fieldsLogin[2].GetUInt32());
+ fieldsDB[2].GetUInt16(), fieldsDB[3].GetUInt16(), fieldsLogin[3].GetUInt8(),
+ fieldsLogin[2].GetUInt8());
}
else
handler->PSendSysMessage(LANG_ACCOUNT_LIST_ERROR, name.c_str());
- } while (resultDB->NextRow());
+ } while (result->NextRow());
handler->SendSysMessage(LANG_ACCOUNT_LIST_BAR);
return true;
@@ -382,7 +382,7 @@ public:
// Let set addon state only for lesser (strong) security level
// or to self account
- if (handler->GetSession() && handler->GetSession()->GetAccountId () != accountId &&
+ if (handler->GetSession() && handler->GetSession()->GetAccountId() != accountId &&
handler->HasLowerSecurityAccount(NULL, accountId, true))
return false;
@@ -469,7 +469,13 @@ public:
// Check and abort if the target gm has a higher rank on one of the realms and the new realm is -1
if (gmRealmID == -1 && !AccountMgr::IsConsoleAccount(playerSecurity))
{
- QueryResult result = LoginDatabase.PQuery("SELECT * FROM account_access WHERE id = '%u' AND gmlevel > '%d'", targetAccountId, gm);
+ PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_ACCESS_GMLEVEL_TEST);
+
+ stmt->setUInt32(0, targetAccountId);
+ stmt->setUInt8(1, uint8(gm));
+
+ PreparedQueryResult result = LoginDatabase.Query(stmt);
+
if (result)
{
handler->SendSysMessage(LANG_YOURS_SECURITY_IS_LOW);
@@ -502,11 +508,12 @@ public:
stmt->setUInt32(0, targetAccountId);
stmt->setUInt32(1, realmID);
}
+
LoginDatabase.Execute(stmt);
if (gm != 0)
{
- PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_ACCESS);
+ stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT_ACCESS);
stmt->setUInt32(0, targetAccountId);
stmt->setUInt8(1, uint8(gm));
diff --git a/src/server/scripts/Commands/cs_achievement.cpp b/src/server/scripts/Commands/cs_achievement.cpp
index f136cba46ab..7667e79ece7 100644
--- a/src/server/scripts/Commands/cs_achievement.cpp
+++ b/src/server/scripts/Commands/cs_achievement.cpp
@@ -67,7 +67,7 @@ public:
return false;
}
- if (AchievementEntry const* achievementEntry = GetAchievementStore()->LookupEntry(achievementId))
+ if (AchievementEntry const* achievementEntry = sAchievementStore.LookupEntry(achievementId))
target->CompletedAchievement(achievementEntry);
return true;
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 4c4869c1c5b..6accc96260b 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -46,7 +46,7 @@ public:
{ "cinematic", SEC_MODERATOR, false, &HandleDebugPlayCinematicCommand, "", NULL },
{ "movie", SEC_MODERATOR, false, &HandleDebugPlayMovieCommand, "", NULL },
{ "sound", SEC_MODERATOR, false, &HandleDebugPlaySoundCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand debugSendCommandTable[] =
{
@@ -61,7 +61,7 @@ public:
{ "sellerror", SEC_ADMINISTRATOR, false, &HandleDebugSendSellErrorCommand, "", NULL },
{ "setphaseshift", SEC_ADMINISTRATOR, false, &HandleDebugSendSetPhaseShiftCommand, "", NULL },
{ "spellfail", SEC_ADMINISTRATOR, false, &HandleDebugSendSpellFailCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand debugCommandTable[] =
{
@@ -89,12 +89,14 @@ public:
{ "itemexpire", SEC_ADMINISTRATOR, false, &HandleDebugItemExpireCommand, "", NULL },
{ "areatriggers", SEC_ADMINISTRATOR, false, &HandleDebugAreaTriggersCommand, "", NULL },
{ "los", SEC_MODERATOR, false, &HandleDebugLoSCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
+ { "moveflags", SEC_ADMINISTRATOR, false, &HandleDebugMoveflagsCommand, "", NULL },
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
{ "debug", SEC_MODERATOR, true, NULL, "", debugCommandTable },
- { NULL, 0, false, NULL, "", NULL }
+ { "wpgps", SEC_ADMINISTRATOR, false, &HandleWPGPSCommand, "", NULL },
+ { NULL, SEC_PLAYER, false, NULL, "", NULL }
};
return commandTable;
}
@@ -1197,7 +1199,7 @@ public:
int currentValue = (int)handler->GetSession()->GetPlayer()->GetUInt32Value(opcode);
currentValue += value;
- handler->GetSession()->GetPlayer()->SetUInt32Value(opcode , (uint32)currentValue);
+ handler->GetSession()->GetPlayer()->SetUInt32Value(opcode, (uint32)currentValue);
handler->PSendSysMessage(LANG_CHANGE_32BIT_FIELD, opcode, currentValue);
@@ -1283,6 +1285,51 @@ public:
handler->PSendSysMessage(LANG_SET_32BIT_FIELD, opcode, value);
return true;
}
+
+ static bool HandleDebugMoveflagsCommand(ChatHandler* handler, char const* args)
+ {
+ Unit* target = handler->getSelectedUnit();
+ if (!target)
+ target = handler->GetSession()->GetPlayer();
+
+ if (!*args)
+ {
+ //! Display case
+ handler->PSendSysMessage(LANG_MOVEFLAGS_GET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags());
+ }
+ else
+ {
+ char* mask1 = strtok((char*)args, " ");
+ if (!mask1)
+ return false;
+
+ char* mask2 = strtok(NULL, " \n");
+
+ uint32 moveFlags = (uint32)atoi(mask1);
+ target->SetUnitMovementFlags(moveFlags);
+
+ if (mask2)
+ {
+ uint32 moveFlagsExtra = uint32(atoi(mask2));
+ target->SetExtraUnitMovementFlags(moveFlagsExtra);
+ }
+
+ target->SendMovementFlagUpdate();
+ handler->PSendSysMessage(LANG_MOVEFLAGS_SET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags());
+ }
+
+ return true;
+ }
+
+ static bool HandleWPGPSCommand(ChatHandler* handler, char const* /*args*/)
+ {
+ Player* player = handler->GetSession()->GetPlayer();
+
+ sLog->outSQLDev("(@PATH, XX, %.3f, %.3f, %.5f, 0,0, 0,100, 0),", player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
+
+ handler->PSendSysMessage("Waypoint SQL written to SQL Developer log");
+ return true;
+ }
};
void AddSC_debug_commandscript()
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp
index 0dcb6995cb1..ba5a7f10d7d 100644
--- a/src/server/scripts/Commands/cs_gm.cpp
+++ b/src/server/scripts/Commands/cs_gm.cpp
@@ -153,7 +153,11 @@ public:
static bool HandleGMListFullCommand(ChatHandler* handler, char const* /*args*/)
{
///- Get the accounts with GM Level >0
- QueryResult result = LoginDatabase.PQuery("SELECT a.username, aa.gmlevel FROM account a, account_access aa WHERE a.id=aa.id AND aa.gmlevel >= %u AND (aa.realmid = -1 OR aa.realmid = %u)", SEC_MODERATOR, realmID);
+ PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_GM_ACCOUNTS);
+ stmt->setUInt8(0, uint8(SEC_MODERATOR));
+ stmt->setInt32(1, int32(realmID));
+ PreparedQueryResult result = LoginDatabase.Query(stmt);
+
if (result)
{
handler->SendSysMessage(LANG_GMLIST);
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp
index 74b8272201b..232aad9f21c 100644
--- a/src/server/scripts/Commands/cs_gobject.cpp
+++ b/src/server/scripts/Commands/cs_gobject.cpp
@@ -535,11 +535,17 @@ public:
uint32 count = 0;
Player* player = handler->GetSession()->GetPlayer();
- QueryResult result = WorldDatabase.PQuery("SELECT guid, id, position_x, position_y, position_z, map, "
- "(POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) AS order_ "
- "FROM gameobject WHERE map='%u' AND (POW(position_x - '%f', 2) + POW(position_y - '%f', 2) + POW(position_z - '%f', 2)) <= '%f' ORDER BY order_",
- player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(),
- player->GetMapId(), player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), distance * distance);
+
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_GAMEOBJECT_NEAREST);
+ stmt->setFloat(0, player->GetPositionX());
+ stmt->setFloat(1, player->GetPositionY());
+ stmt->setFloat(2, player->GetPositionZ());
+ stmt->setUInt32(3, player->GetMapId());
+ stmt->setFloat(4, player->GetPositionX());
+ stmt->setFloat(5, player->GetPositionY());
+ stmt->setFloat(6, player->GetPositionZ());
+ stmt->setFloat(7, distance * distance);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
{
diff --git a/src/server/scripts/Commands/cs_gps.cpp b/src/server/scripts/Commands/cs_gps.cpp
deleted file mode 100644
index 12a5efddf47..00000000000
--- a/src/server/scripts/Commands/cs_gps.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
- *
- * 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/>.
- */
-
-/* ScriptData
-Name: gps_commandscript
-%Complete: 100
-Comment: GPS/WPGPS commands
-Category: commandscripts
-EndScriptData */
-
-#include "ObjectAccessor.h"
-#include "ScriptMgr.h"
-#include "Chat.h"
-#include "CellImpl.h"
-
-class gps_commandscript : public CommandScript
-{
-public:
- gps_commandscript() : CommandScript("gps_commandscript") { }
-
- ChatCommand* GetCommands() const
- {
- static ChatCommand commandTable[] =
- {
- { "gps", SEC_ADMINISTRATOR, false, &HandleGPSCommand, "", NULL },
- { "wpgps", SEC_ADMINISTRATOR, false, &HandleWPGPSCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
- };
- return commandTable;
- }
-
- static bool HandleGPSCommand(ChatHandler* handler, char const* args)
- {
- WorldObject* object = NULL;
- if (*args)
- {
- uint64 guid = handler->extractGuidFromLink((char*)args);
- if (guid)
- object = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
-
- if (!object)
- {
- handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
- handler->SetSentErrorMessage(true);
- return false;
- }
- }
- else
- {
- object = handler->getSelectedUnit();
-
- if (!object)
- {
- handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
- handler->SetSentErrorMessage(true);
- return false;
- }
- }
-
- CellCoord cellCoord = Trinity::ComputeCellCoord(object->GetPositionX(), object->GetPositionY());
- Cell cell(cellCoord);
-
- uint32 zoneId, areaId;
- object->GetZoneAndAreaId(zoneId, areaId);
-
- MapEntry const* mapEntry = sMapStore.LookupEntry(object->GetMapId());
- AreaTableEntry const* zoneEntry = GetAreaEntryByAreaID(zoneId);
- AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(areaId);
-
- float zoneX = object->GetPositionX();
- float zoneY = object->GetPositionY();
-
- Map2ZoneCoordinates(zoneX, zoneY, zoneId);
-
- Map const* map = object->GetMap();
- float groundZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), MAX_HEIGHT);
- float floorZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ());
-
- GridCoord gridCoord = Trinity::ComputeGridCoord(object->GetPositionX(), object->GetPositionY());
-
- // 63? WHY?
- int gridX = 63 - gridCoord.x_coord;
- int gridY = 63 - gridCoord.y_coord;
-
- uint32 haveMap = Map::ExistMap(object->GetMapId(), gridX, gridY) ? 1 : 0;
- uint32 haveVMap = Map::ExistVMap(object->GetMapId(), gridX, gridY) ? 1 : 0;
-
- if (haveVMap)
- {
- if (map->IsOutdoors(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ()))
- handler->PSendSysMessage("You are outdoors");
- else
- handler->PSendSysMessage("You are indoors");
- }
- else
- handler->PSendSysMessage("no VMAP available for area info");
-
- handler->PSendSysMessage(LANG_MAP_POSITION,
- object->GetMapId(), (mapEntry ? mapEntry->name : "<unknown>"),
- zoneId, (zoneEntry ? zoneEntry->area_name : "<unknown>"),
- areaId, (areaEntry ? areaEntry->area_name : "<unknown>"),
- object->GetPhaseMask(),
- object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(),
- cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(),
- zoneX, zoneY, groundZ, floorZ, haveMap, haveVMap);
-
- LiquidData liquidStatus;
- ZLiquidStatus status = map->getLiquidStatus(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), MAP_ALL_LIQUIDS, &liquidStatus);
-
- if (status)
- handler->PSendSysMessage(LANG_LIQUID_STATUS, liquidStatus.level, liquidStatus.depth_level, liquidStatus.type, status);
-
- return true;
- }
-
- static bool HandleWPGPSCommand(ChatHandler* handler, char const* /*args*/)
- {
- Player* player = handler->GetSession()->GetPlayer();
-
- sLog->outSQLDev("(@PATH, XX, %.3f, %.3f, %.5f, 0,0, 0,100, 0),", player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
-
- handler->PSendSysMessage("Waypoint SQL written to SQL Developer log");
- return true;
- }
-};
-
-void AddSC_gps_commandscript()
-{
- new gps_commandscript();
-}
diff --git a/src/server/scripts/Commands/cs_learn.cpp b/src/server/scripts/Commands/cs_learn.cpp
index fcabaaa7e5b..ae573577d7e 100644
--- a/src/server/scripts/Commands/cs_learn.cpp
+++ b/src/server/scripts/Commands/cs_learn.cpp
@@ -248,7 +248,7 @@ public:
return false;
}
- CreatureTemplate const* creatureInfo = pet->GetCreatureInfo();
+ CreatureTemplate const* creatureInfo = pet->GetCreatureTemplate();
if (!creatureInfo)
{
handler->SendSysMessage(LANG_WRONG_PET_TYPE);
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 5f0434e5c55..7c431566f52 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -17,6 +17,9 @@
#include "ScriptPCH.h"
#include "Chat.h"
+#include "ObjectAccessor.h"
+#include "ScriptMgr.h"
+#include "CellImpl.h"
class misc_commandscript : public CommandScript
{
@@ -27,7 +30,8 @@ public:
{
static ChatCommand commandTable[] =
{
- { "dev", SEC_ADMINISTRATOR, false, &HandleDevCommand, "", NULL },
+ { "dev", SEC_ADMINISTRATOR, false, &HandleDevCommand, "", NULL },
+ { "gps", SEC_ADMINISTRATOR, false, &HandleGPSCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
@@ -64,6 +68,90 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
+
+ static bool HandleGPSCommand(ChatHandler* handler, char const* args)
+ {
+ WorldObject* object = NULL;
+ if (*args)
+ {
+ uint64 guid = handler->extractGuidFromLink((char*)args);
+ if (guid)
+ object = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
+
+ if (!object)
+ {
+ handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+ }
+ else
+ {
+ object = handler->getSelectedUnit();
+
+ if (!object)
+ {
+ handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+ }
+
+ CellCoord cellCoord = Trinity::ComputeCellCoord(object->GetPositionX(), object->GetPositionY());
+ Cell cell(cellCoord);
+
+ uint32 zoneId, areaId;
+ object->GetZoneAndAreaId(zoneId, areaId);
+
+ MapEntry const* mapEntry = sMapStore.LookupEntry(object->GetMapId());
+ AreaTableEntry const* zoneEntry = GetAreaEntryByAreaID(zoneId);
+ AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(areaId);
+
+ float zoneX = object->GetPositionX();
+ float zoneY = object->GetPositionY();
+
+ Map2ZoneCoordinates(zoneX, zoneY, zoneId);
+
+ Map const* map = object->GetMap();
+ float groundZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), MAX_HEIGHT);
+ float floorZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ());
+
+ GridCoord gridCoord = Trinity::ComputeGridCoord(object->GetPositionX(), object->GetPositionY());
+
+ // 63? WHY?
+ int gridX = 63 - gridCoord.x_coord;
+ int gridY = 63 - gridCoord.y_coord;
+
+ uint32 haveMap = Map::ExistMap(object->GetMapId(), gridX, gridY) ? 1 : 0;
+ uint32 haveVMap = Map::ExistVMap(object->GetMapId(), gridX, gridY) ? 1 : 0;
+
+ if (haveVMap)
+ {
+ if (map->IsOutdoors(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ()))
+ handler->PSendSysMessage("You are outdoors");
+ else
+ handler->PSendSysMessage("You are indoors");
+ }
+ else
+ handler->PSendSysMessage("no VMAP available for area info");
+
+ handler->PSendSysMessage(LANG_MAP_POSITION,
+ object->GetMapId(), (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : "<unknown>"),
+ zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"),
+ areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"),
+ object->GetPhaseMask(),
+ object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(),
+ cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(),
+ zoneX, zoneY, groundZ, floorZ, haveMap, haveVMap);
+
+ LiquidData liquidStatus;
+ ZLiquidStatus status = map->getLiquidStatus(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), MAP_ALL_LIQUIDS, &liquidStatus);
+
+ if (status)
+ handler->PSendSysMessage(LANG_LIQUID_STATUS, liquidStatus.level, liquidStatus.depth_level, liquidStatus.entry, liquidStatus.type_flags, status);
+
+ return true;
+ }
};
void AddSC_misc_commandscript()
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp
index 93aa188c071..0de3637586c 100644
--- a/src/server/scripts/Commands/cs_modify.cpp
+++ b/src/server/scripts/Commands/cs_modify.cpp
@@ -33,6 +33,16 @@ public:
ChatCommand* GetCommands() const
{
+ static ChatCommand modifyspeedCommandTable[] =
+ {
+ { "fly", SEC_MODERATOR, false, &HandleModifyFlyCommand, "", NULL },
+ { "all", SEC_MODERATOR, false, &HandleModifyASpeedCommand, "", NULL },
+ { "walk", SEC_MODERATOR, false, &HandleModifySpeedCommand, "", NULL },
+ { "backwalk", SEC_MODERATOR, false, &HandleModifyBWalkCommand, "", NULL },
+ { "swim", SEC_MODERATOR, false, &HandleModifySwimCommand, "", NULL },
+ { "", SEC_MODERATOR, false, &HandleModifyASpeedCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
+ };
static ChatCommand modifyCommandTable[] =
{
{ "hp", SEC_MODERATOR, false, &HandleModifyHPCommand, "", NULL },
@@ -41,31 +51,28 @@ public:
{ "runicpower", SEC_MODERATOR, false, &HandleModifyRunicPowerCommand, "", NULL },
{ "energy", SEC_MODERATOR, false, &HandleModifyEnergyCommand, "", NULL },
{ "money", SEC_MODERATOR, false, &HandleModifyMoneyCommand, "", NULL },
- { "speed", SEC_MODERATOR, false, &HandleModifySpeedCommand, "", NULL },
- { "swim", SEC_MODERATOR, false, &HandleModifySwimCommand, "", NULL },
{ "scale", SEC_MODERATOR, false, &HandleModifyScaleCommand, "", NULL },
{ "bit", SEC_MODERATOR, false, &HandleModifyBitCommand, "", NULL },
- { "bwalk", SEC_MODERATOR, false, &HandleModifyBWalkCommand, "", NULL },
- { "fly", SEC_MODERATOR, false, &HandleModifyFlyCommand, "", NULL },
- { "aspeed", SEC_MODERATOR, false, &HandleModifyASpeedCommand, "", NULL },
{ "faction", SEC_MODERATOR, false, &HandleModifyFactionCommand, "", NULL },
{ "spell", SEC_MODERATOR, false, &HandleModifySpellCommand, "", NULL },
- { "tp", SEC_MODERATOR, false, &HandleModifyTalentCommand, "", NULL },
+ { "talentpoints", SEC_MODERATOR, false, &HandleModifyTalentCommand, "", NULL },
{ "mount", SEC_MODERATOR, false, &HandleModifyMountCommand, "", NULL },
{ "honor", SEC_MODERATOR, false, &HandleModifyHonorCommand, "", NULL },
- { "rep", SEC_GAMEMASTER, false, &HandleModifyRepCommand, "", NULL },
- { "arena", SEC_MODERATOR, false, &HandleModifyArenaCommand, "", NULL },
+ { "reputation", SEC_GAMEMASTER, false, &HandleModifyRepCommand, "", NULL },
+ { "arenapoints", SEC_MODERATOR, false, &HandleModifyArenaCommand, "", NULL },
{ "drunk", SEC_MODERATOR, false, &HandleModifyDrunkCommand, "", NULL },
{ "standstate", SEC_GAMEMASTER, false, &HandleModifyStandStateCommand, "", NULL },
- { "morph", SEC_GAMEMASTER, false, &HandleModifyMorphCommand, "", NULL },
{ "phase", SEC_ADMINISTRATOR, false, &HandleModifyPhaseCommand, "", NULL },
{ "gender", SEC_GAMEMASTER, false, &HandleModifyGenderCommand, "", NULL },
{ "collision", SEC_GAMEMASTER, false, &HandleModifyCollisionCommand, "", NULL },
+ { "speed", SEC_MODERATOR, false, NULL, "", modifyspeedCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
{
- { "modify", SEC_MODERATOR, false, NULL, "", modifyCommandTable },
+ { "morph", SEC_GAMEMASTER, false, &HandleModifyMorphCommand, "", NULL },
+ { "demorph", SEC_GAMEMASTER, false, &HandleDeMorphCommand, "", NULL },
+ { "modify", SEC_MODERATOR, false, NULL, "", modifyCommandTable },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
@@ -361,7 +368,9 @@ public:
//Edit Player Spell
static bool HandleModifySpellCommand(ChatHandler* handler, const char* args)
{
- if (!*args) return false;
+ if (!*args)
+ return false;
+
char* pspellflatid = strtok((char*)args, " ");
if (!pspellflatid)
return false;
@@ -710,7 +719,7 @@ public:
(ChatHandler(player)).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, handler->GetNameLink().c_str(), Scale);
}
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, Scale);
+ target->SetObjectScale(Scale);
return true;
}
@@ -1142,10 +1151,10 @@ public:
static bool HandleModifyRepCommand(ChatHandler* handler, const char* args)
{
- if (!*args) return false;
+ if (!*args)
+ return false;
Player* target = handler->getSelectedPlayer();
-
if (!target)
{
handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
@@ -1233,7 +1242,7 @@ public:
return false;
}
- target->GetReputationMgr().SetReputation(factionEntry, amount);
+ target->GetReputationMgr().SetOneFactionReputation(factionEntry, amount, false);
handler->PSendSysMessage(LANG_COMMAND_MODIFY_REP, factionEntry->name, factionId,
handler->GetNameLink(target).c_str(), target->GetReputationMgr().GetReputation(factionEntry));
return true;
@@ -1375,6 +1384,21 @@ public:
return true;
}
+//demorph player or unit
+ static bool HandleDeMorphCommand(ChatHandler* handler, const char* /*args*/)
+ {
+ Unit* target = handler->getSelectedUnit();
+ if (!target)
+ target = handler->GetSession()->GetPlayer();
+
+ // check online security
+ else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer(), 0))
+ return false;
+
+ target->DeMorph();
+
+ return true;
+ }
static bool HandleModifyCollisionCommand(ChatHandler* handler, const char* args)
{
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 57932ef56c6..832f7958fc8 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -28,6 +28,7 @@ EndScriptData */
#include "Transport.h"
#include "CreatureGroups.h"
#include "TargetedMovementGenerator.h" // for HandleNpcUnFollowCommand
+#include "CreatureAI.h"
class npc_commandscript : public CommandScript
{
@@ -73,6 +74,7 @@ public:
{ "phase", SEC_GAMEMASTER, false, &HandleNpcSetPhaseCommand, "", NULL },
{ "spawndist", SEC_GAMEMASTER, false, &HandleNpcSetSpawnDistCommand, "", NULL },
{ "spawntime", SEC_GAMEMASTER, false, &HandleNpcSetSpawnTimeCommand, "", NULL },
+ { "data", SEC_ADMINISTRATOR, false, &HandleNpcSetDataCommand, "", NULL },
//{ TODO: fix or remove these commands
{ "name", SEC_GAMEMASTER, false, &HandleNpcSetNameCommand, "", NULL },
{ "subname", SEC_GAMEMASTER, false, &HandleNpcSetSubNameCommand, "", NULL },
@@ -108,6 +110,7 @@ public:
{
if (!*args)
return false;
+
char* charID = handler->extractKeyFromLink((char*)args, "Hcreature_entry");
if (!charID)
return false;
@@ -130,12 +133,24 @@ public:
{
uint32 tguid = chr->GetTransport()->AddNPCPassenger(0, id, chr->GetTransOffsetX(), chr->GetTransOffsetY(), chr->GetTransOffsetZ(), chr->GetTransOffsetO());
if (tguid > 0)
- WorldDatabase.PExecute("INSERT INTO creature_transport (guid, npc_entry, transport_entry, TransOffsetX, TransOffsetY, TransOffsetZ, TransOffsetO) values (%u, %u, %f, %f, %f, %f, %u)", tguid, id, chr->GetTransport()->GetEntry(), chr->GetTransOffsetX(), chr->GetTransOffsetY(), chr->GetTransOffsetZ(), chr->GetTransOffsetO());
+ {
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_CREATURE_TRANSPORT);
+
+ stmt->setInt32(0, int32(tguid));
+ stmt->setInt32(1, int32(id));
+ stmt->setInt32(2, int32(chr->GetTransport()->GetEntry()));
+ stmt->setFloat(3, chr->GetTransOffsetX());
+ stmt->setFloat(4, chr->GetTransOffsetY());
+ stmt->setFloat(5, chr->GetTransOffsetZ());
+ stmt->setFloat(6, chr->GetTransOffsetO());
+
+ WorldDatabase.Execute(stmt);
+ }
return true;
}
- Creature* creature = new Creature;
+ Creature* creature = new Creature();
if (!creature->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_UNIT), map, chr->GetPhaseMaskForSpawn(), id, 0, (uint32)teamval, x, y, z, o))
{
delete creature;
@@ -462,7 +477,7 @@ public:
// Faction is set in creature_template - not inside creature
// Update in memory..
- if (CreatureTemplate const* cinfo = creature->GetCreatureInfo())
+ if (CreatureTemplate const* cinfo = creature->GetCreatureTemplate())
{
const_cast<CreatureTemplate*>(cinfo)->faction_A = factionId;
const_cast<CreatureTemplate*>(cinfo)->faction_H = factionId;
@@ -511,6 +526,39 @@ public:
return true;
}
+ //set data of creature for testing scripting
+ static bool HandleNpcSetDataCommand(ChatHandler* handler, const char* args)
+ {
+ if (!*args)
+ return false;
+
+ char* arg1 = strtok((char*)args, " ");
+ char* arg2 = strtok((char*)NULL, "");
+
+ if (!arg1 || !arg2)
+ return false;
+
+ uint32 data_1 = (uint32)atoi(arg1);
+ uint32 data_2 = (uint32)atoi(arg2);
+
+ if (!data_1 || !data_2)
+ return false;
+
+ Creature* creature = handler->getSelectedCreature();
+
+ if (!creature)
+ {
+ handler->SendSysMessage(LANG_SELECT_CREATURE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ creature->AI()->SetData(data_1, data_2);
+ std::string AIorScript = creature->GetAIName() != "" ? "AI type: " + creature->GetAIName() : (creature->GetScriptName() != "" ? "Script Name: " + creature->GetScriptName() : "No AI or Script Name Set");
+ handler->PSendSysMessage(LANG_NPC_SETDATA, creature->GetGUID(), creature->GetEntry(), creature->GetName(), data_1, data_2, AIorScript.c_str());
+ return true;
+ }
+
//npc follow handling
static bool HandleNpcFollowCommand(ChatHandler* handler, const char* /*args*/)
{
@@ -547,7 +595,7 @@ public:
uint32 displayid = target->GetDisplayId();
uint32 nativeid = target->GetNativeDisplayId();
uint32 Entry = target->GetEntry();
- CreatureTemplate const* cInfo = target->GetCreatureInfo();
+ CreatureTemplate const* cInfo = target->GetCreatureTemplate();
int64 curRespawnDelay = target->GetRespawnTimeEx()-time(NULL);
if (curRespawnDelay < 0)
@@ -677,9 +725,16 @@ public:
return false;
}
- if (target->GetTransport())
- if (target->GetGUIDTransport())
- WorldDatabase.PExecute("UPDATE creature_transport SET emote=%u WHERE transport_entry=%u AND guid=%u", emote, target->GetTransport()->GetEntry(), target->GetGUIDTransport());
+ if (target->GetTransport() && target->GetGUIDTransport())
+ {
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_TRANSPORT_EMOTE);
+
+ stmt->setInt32(0, int32(emote));
+ stmt->setInt32(1, target->GetTransport()->GetEntry());
+ stmt->setInt32(2, target->GetGUIDTransport());
+
+ WorldDatabase.Execute(stmt);
+ }
target->SetUInt32Value(UNIT_NPC_EMOTESTATE, emote);
@@ -1036,7 +1091,7 @@ public:
}
if (/*creature->GetMotionMaster()->empty() ||*/
- creature->GetMotionMaster()->GetCurrentMovementGeneratorType () != FOLLOW_MOTION_TYPE)
+ creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != FOLLOW_MOTION_TYPE)
{
handler->PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU, creature->GetName());
handler->SetSentErrorMessage(true);
@@ -1131,24 +1186,24 @@ public:
//npc tame handling
static bool HandleNpcTameCommand(ChatHandler* handler, const char* /*args*/)
{
- Creature* creatureTarget = handler->getSelectedCreature ();
- if (!creatureTarget || creatureTarget->isPet ())
+ Creature* creatureTarget = handler->getSelectedCreature();
+ if (!creatureTarget || creatureTarget->isPet())
{
handler->PSendSysMessage (LANG_SELECT_CREATURE);
handler->SetSentErrorMessage (true);
return false;
}
- Player* player = handler->GetSession()->GetPlayer ();
+ Player* player = handler->GetSession()->GetPlayer();
- if (player->GetPetGUID ())
+ if (player->GetPetGUID())
{
handler->SendSysMessage (LANG_YOU_ALREADY_HAVE_PET);
handler->SetSentErrorMessage (true);
return false;
}
- CreatureTemplate const* cInfo = creatureTarget->GetCreatureInfo();
+ CreatureTemplate const* cInfo = creatureTarget->GetCreatureTemplate();
if (!cInfo->isTameable (player->CanTameExoticPets()))
{
@@ -1168,8 +1223,8 @@ public:
// place pet before player
float x, y, z;
- player->GetClosePoint (x, y, z, creatureTarget->GetObjectSize (), CONTACT_DISTANCE);
- pet->Relocate (x, y, z, M_PI-player->GetOrientation ());
+ player->GetClosePoint (x, y, z, creatureTarget->GetObjectSize(), CONTACT_DISTANCE);
+ pet->Relocate(x, y, z, M_PI-player->GetOrientation());
// set pet to defensive mode by default (some classes can't control controlled pets in fact).
pet->SetReactState(REACT_DEFENSIVE);
@@ -1229,7 +1284,7 @@ public:
group_member->leaderGUID = leaderGUID;
group_member->groupAI = 0;
- CreatureGroupMap[lowguid] = group_member;
+ sFormationMgr->CreatureGroupMap[lowguid] = group_member;
creature->SearchFormation();
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_CREATURE_FORMATION);
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 17c819f2f22..1c119fdef4c 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -37,6 +37,7 @@ EndScriptData */
#include "SkillExtraItems.h"
#include "Chat.h"
#include "WaypointManager.h"
+#include "WardenCheckMgr.h"
class reload_commandscript : public CommandScript
{
@@ -105,6 +106,7 @@ public:
{ "lfg_dungeon_rewards", SEC_ADMINISTRATOR, true, &HandleReloadLfgRewardsCommand, "", NULL },
{ "locales_achievement_reward", SEC_ADMINISTRATOR, true, &HandleReloadLocalesAchievementRewardCommand, "", NULL },
{ "locales_creature", SEC_ADMINISTRATOR, true, &HandleReloadLocalesCreatureCommand, "", NULL },
+ { "locales_creature_text", SEC_ADMINISTRATOR, true, &HandleReloadLocalesCreatureTextCommand, "", NULL },
{ "locales_gameobject", SEC_ADMINISTRATOR, true, &HandleReloadLocalesGameobjectCommand, "", NULL },
{ "locales_gossip_menu_option", SEC_ADMINISTRATOR, true, &HandleReloadLocalesGossipMenuOptionCommand, "", NULL },
{ "locales_item", SEC_ADMINISTRATOR, true, &HandleReloadLocalesItemCommand, "", NULL },
@@ -151,6 +153,7 @@ public:
{ "spell_threats", SEC_ADMINISTRATOR, true, &HandleReloadSpellThreatsCommand, "", NULL },
{ "spell_group_stack_rules", SEC_ADMINISTRATOR, true, &HandleReloadSpellGroupStackRulesCommand, "", NULL },
{ "trinity_string", SEC_ADMINISTRATOR, true, &HandleReloadTrinityStringCommand, "", NULL },
+ { "warden_action", SEC_ADMINISTRATOR, true, &HandleReloadWardenactionCommand, "", NULL },
{ "waypoint_scripts", SEC_ADMINISTRATOR, true, &HandleReloadWpScriptsCommand, "", NULL },
{ "waypoint_data", SEC_ADMINISTRATOR, true, &HandleReloadWpCommand, "", NULL },
{ "vehicle_accessory", SEC_ADMINISTRATOR, true, &HandleReloadVehicleAccessoryCommand, "", NULL },
@@ -317,6 +320,7 @@ public:
{
HandleReloadLocalesAchievementRewardCommand(handler, "a");
HandleReloadLocalesCreatureCommand(handler, "a");
+ HandleReloadLocalesCreatureTextCommand(handler, "a");
HandleReloadLocalesGameobjectCommand(handler, "a");
HandleReloadLocalesGossipMenuOptionCommand(handler, "a");
HandleReloadLocalesItemCommand(handler, "a");
@@ -409,14 +413,18 @@ public:
for (Tokens::const_iterator itr = entries.begin(); itr != entries.end(); ++itr)
{
uint32 entry = uint32(atoi(*itr));
- QueryResult result = WorldDatabase.PQuery("SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, equipment_id, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = %u", entry);
+
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_TEMPLATE);
+ stmt->setUInt32(0, entry);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
+
if (!result)
{
handler->PSendSysMessage(LANG_COMMAND_CREATURETEMPLATE_NOTFOUND, entry);
continue;
}
- CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(entry);
+ CreatureTemplate* cInfo = const_cast<CreatureTemplate*>(sObjectMgr->GetCreatureTemplate(entry));
if (!cInfo)
{
handler->PSendSysMessage(LANG_COMMAND_CREATURESTORAGE_NOTFOUND, entry);
@@ -427,89 +435,88 @@ public:
Field* fields = result->Fetch();
- const_cast<CreatureTemplate*>(cInfo)->DifficultyEntry[0] = fields[0].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->DifficultyEntry[1] = fields[1].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->DifficultyEntry[2] = fields[2].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->KillCredit[0] = fields[3].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->KillCredit[1] = fields[4].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->Modelid1 = fields[5].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->Modelid2 = fields[6].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->Modelid3 = fields[7].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->Modelid4 = fields[8].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->Name = fields[9].GetString();
- const_cast<CreatureTemplate*>(cInfo)->SubName = fields[10].GetString();
- const_cast<CreatureTemplate*>(cInfo)->IconName = fields[11].GetString();
- const_cast<CreatureTemplate*>(cInfo)->GossipMenuId = fields[12].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->minlevel = fields[13].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->maxlevel = fields[14].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->expansion = fields[15].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->faction_A = fields[16].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->faction_H = fields[17].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->npcflag = fields[18].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->speed_walk = fields[19].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->speed_run = fields[20].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->scale = fields[21].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->rank = fields[22].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->mindmg = fields[23].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->maxdmg = fields[24].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->dmgschool = fields[25].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->attackpower = fields[26].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->dmg_multiplier = fields[27].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->baseattacktime = fields[28].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->rangeattacktime = fields[29].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->unit_class = fields[30].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->unit_flags = fields[31].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->dynamicflags = fields[32].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->family = fields[33].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->trainer_type = fields[34].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->trainer_spell = fields[35].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->trainer_class = fields[36].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->trainer_race = fields[37].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->minrangedmg = fields[38].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->maxrangedmg = fields[39].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->rangedattackpower = fields[40].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->type = fields[41].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->type_flags = fields[42].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->lootid = fields[43].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->pickpocketLootId = fields[44].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->SkinLootId = fields[45].GetUInt32();
+ cInfo->DifficultyEntry[0] = fields[0].GetUInt32();
+ cInfo->DifficultyEntry[1] = fields[1].GetUInt32();
+ cInfo->DifficultyEntry[2] = fields[2].GetUInt32();
+ cInfo->KillCredit[0] = fields[3].GetUInt32();
+ cInfo->KillCredit[1] = fields[4].GetUInt32();
+ cInfo->Modelid1 = fields[5].GetUInt32();
+ cInfo->Modelid2 = fields[6].GetUInt32();
+ cInfo->Modelid3 = fields[7].GetUInt32();
+ cInfo->Modelid4 = fields[8].GetUInt32();
+ cInfo->Name = fields[9].GetString();
+ cInfo->SubName = fields[10].GetString();
+ cInfo->IconName = fields[11].GetString();
+ cInfo->GossipMenuId = fields[12].GetUInt32();
+ cInfo->minlevel = fields[13].GetUInt8();
+ cInfo->maxlevel = fields[14].GetUInt8();
+ cInfo->expansion = fields[15].GetUInt16();
+ cInfo->faction_A = fields[16].GetUInt16();
+ cInfo->faction_H = fields[17].GetUInt16();
+ cInfo->npcflag = fields[18].GetUInt32();
+ cInfo->speed_walk = fields[19].GetFloat();
+ cInfo->speed_run = fields[20].GetFloat();
+ cInfo->scale = fields[21].GetFloat();
+ cInfo->rank = fields[22].GetUInt8();
+ cInfo->mindmg = fields[23].GetFloat();
+ cInfo->maxdmg = fields[24].GetFloat();
+ cInfo->dmgschool = fields[25].GetUInt8();
+ cInfo->attackpower = fields[26].GetUInt32();
+ cInfo->dmg_multiplier = fields[27].GetFloat();
+ cInfo->baseattacktime = fields[28].GetUInt32();
+ cInfo->rangeattacktime = fields[29].GetUInt32();
+ cInfo->unit_class = fields[30].GetUInt8();
+ cInfo->unit_flags = fields[31].GetUInt32();
+ cInfo->dynamicflags = fields[32].GetUInt32();
+ cInfo->family = fields[33].GetUInt8();
+ cInfo->trainer_type = fields[34].GetUInt8();
+ cInfo->trainer_spell = fields[35].GetUInt32();
+ cInfo->trainer_class = fields[36].GetUInt8();
+ cInfo->trainer_race = fields[37].GetUInt8();
+ cInfo->minrangedmg = fields[38].GetFloat();
+ cInfo->maxrangedmg = fields[39].GetFloat();
+ cInfo->rangedattackpower = fields[40].GetUInt16();
+ cInfo->type = fields[41].GetUInt8();
+ cInfo->type_flags = fields[42].GetUInt32();
+ cInfo->lootid = fields[43].GetUInt32();
+ cInfo->pickpocketLootId = fields[44].GetUInt32();
+ cInfo->SkinLootId = fields[45].GetUInt32();
for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
- {
- const_cast<CreatureTemplate*>(cInfo)->resistance[i] = fields[46 + i -1].GetUInt32();
- }
-
- const_cast<CreatureTemplate*>(cInfo)->spells[0] = fields[52].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[1] = fields[53].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[2] = fields[54].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[3] = fields[55].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[4] = fields[56].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[5] = fields[57].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[6] = fields[58].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->spells[7] = fields[59].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->PetSpellDataId = fields[60].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->VehicleId = fields[61].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->mingold = fields[62].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->maxgold = fields[63].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->AIName = fields[64].GetString();
- const_cast<CreatureTemplate*>(cInfo)->MovementType = fields[65].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->InhabitType = fields[66].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->ModHealth = fields[67].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->ModMana = fields[68].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->ModArmor = fields[69].GetFloat();
- const_cast<CreatureTemplate*>(cInfo)->RacialLeader = fields[70].GetBool();
- const_cast<CreatureTemplate*>(cInfo)->questItems[0] = fields[71].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->questItems[1] = fields[72].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->questItems[2] = fields[73].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->questItems[3] = fields[74].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->questItems[4] = fields[75].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->questItems[5] = fields[76].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->movementId = fields[77].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->RegenHealth = fields[78].GetBool();
- const_cast<CreatureTemplate*>(cInfo)->equipmentId = fields[79].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->MechanicImmuneMask = fields[80].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->flags_extra = fields[81].GetUInt32();
- const_cast<CreatureTemplate*>(cInfo)->ScriptID = sObjectMgr->GetScriptId(fields[82].GetCString());
+ cInfo->resistance[i] = fields[46 + i -1].GetUInt16();
+
+ cInfo->spells[0] = fields[52].GetUInt32();
+ cInfo->spells[1] = fields[53].GetUInt32();
+ cInfo->spells[2] = fields[54].GetUInt32();
+ cInfo->spells[3] = fields[55].GetUInt32();
+ cInfo->spells[4] = fields[56].GetUInt32();
+ cInfo->spells[5] = fields[57].GetUInt32();
+ cInfo->spells[6] = fields[58].GetUInt32();
+ cInfo->spells[7] = fields[59].GetUInt32();
+ cInfo->PetSpellDataId = fields[60].GetUInt32();
+ cInfo->VehicleId = fields[61].GetUInt32();
+ cInfo->mingold = fields[62].GetUInt32();
+ cInfo->maxgold = fields[63].GetUInt32();
+ cInfo->AIName = fields[64].GetString();
+ cInfo->MovementType = fields[65].GetUInt8();
+ cInfo->InhabitType = fields[66].GetUInt8();
+ cInfo->HoverHeight = fields[67].GetFloat();
+ cInfo->ModHealth = fields[68].GetFloat();
+ cInfo->ModMana = fields[69].GetFloat();
+ cInfo->ModArmor = fields[70].GetFloat();
+ cInfo->RacialLeader = fields[71].GetBool();
+ cInfo->questItems[0] = fields[72].GetUInt32();
+ cInfo->questItems[1] = fields[73].GetUInt32();
+ cInfo->questItems[2] = fields[74].GetUInt32();
+ cInfo->questItems[3] = fields[75].GetUInt32();
+ cInfo->questItems[4] = fields[76].GetUInt32();
+ cInfo->questItems[5] = fields[77].GetUInt32();
+ cInfo->movementId = fields[78].GetUInt32();
+ cInfo->RegenHealth = fields[79].GetBool();
+ cInfo->equipmentId = fields[80].GetUInt32();
+ cInfo->MechanicImmuneMask = fields[81].GetUInt32();
+ cInfo->flags_extra = fields[82].GetUInt32();
+ cInfo->ScriptID = sObjectMgr->GetScriptId(fields[83].GetCString());
sObjectMgr->CheckCreatureTemplate(cInfo);
}
@@ -724,6 +731,21 @@ public:
return true;
}
+ static bool HandleReloadWardenactionCommand(ChatHandler* handler, const char* /*args*/)
+ {
+ if (!sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED))
+ {
+ handler->SendSysMessage("Warden system disabled by config - reloading warden_action skipped.");
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ sLog->outString("Re-Loading warden_action Table!");
+ sWardenCheckMgr->LoadWardenOverrides();
+ handler->SendGlobalGMSysMessage("DB table `warden_action` reloaded.");
+ return true;
+ }
+
static bool HandleReloadNpcTrainerCommand(ChatHandler* handler, const char* /*args*/)
{
sLog->outString("Re-Loading `npc_trainer` Table!");
@@ -1154,6 +1176,14 @@ public:
return true;
}
+ static bool HandleReloadLocalesCreatureTextCommand(ChatHandler* handler, const char* /*args*/)
+ {
+ sLog->outString("Re-Loading Locales Creature Texts...");
+ sCreatureTextMgr->LoadCreatureTextLocales();
+ handler->SendGlobalGMSysMessage("DB table `locales_creature_text` reloaded.");
+ return true;
+ }
+
static bool HandleReloadLocalesGameobjectCommand(ChatHandler* handler, const char* /*args*/)
{
sLog->outString("Re-Loading Locales Gameobject ... ");
diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp
index 5054bd83f32..ca7c3af7fde 100644
--- a/src/server/scripts/Commands/cs_tele.cpp
+++ b/src/server/scripts/Commands/cs_tele.cpp
@@ -131,12 +131,15 @@ public:
target->TeleportTo(target->m_homebindMapId, target->m_homebindX, target->m_homebindY, target->m_homebindZ, target->GetOrientation());
else
{
- QueryResult resultDB = CharacterDatabase.PQuery("SELECT mapId, zoneId, posX, posY, posZ FROM character_homebind WHERE guid = %u", target_guid);
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_HOMEBIND);
+ stmt->setUInt32(0, target_guid);
+ PreparedQueryResult resultDB = CharacterDatabase.Query(stmt);
+
if (resultDB)
{
Field* fieldsDB = resultDB->Fetch();
- uint32 mapId = fieldsDB[0].GetUInt32();
- uint32 zoneId = fieldsDB[1].GetUInt32();
+ uint32 mapId = fieldsDB[0].GetUInt16();
+ uint32 zoneId = fieldsDB[1].GetUInt16();
float posX = fieldsDB[2].GetFloat();
float posY = fieldsDB[3].GetFloat();
float posZ = fieldsDB[4].GetFloat();
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index 8f5e862555c..99ec263b8f9 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -91,7 +91,10 @@ public:
pathid = target->GetWaypointPath();
else
{
- QueryResult result = WorldDatabase.Query("SELECT MAX(id) FROM waypoint_data");
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_MAX_ID);
+
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
+
uint32 maxpathid = result->Fetch()->GetInt32();
pathid = maxpathid+1;
handler->PSendSysMessage("%s%s|r", "|cff00ff00", "New path started.");
@@ -109,7 +112,9 @@ public:
return true;
}
- QueryResult result = WorldDatabase.PQuery("SELECT MAX(point) FROM waypoint_data WHERE id = '%u'", pathid);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_MAX_POINT);
+ stmt->setUInt32(0, pathid);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
point = (*result)[0].GetUInt32();
@@ -117,7 +122,7 @@ public:
Player* player = handler->GetSession()->GetPlayer();
//Map* map = player->GetMap();
- PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_DATA);
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_DATA);
stmt->setUInt32(0, pathid);
stmt->setUInt32(1, point + 1);
@@ -173,9 +178,12 @@ public:
}
guidLow = target->GetDBTableGUIDLow();
- QueryResult result = WorldDatabase.PQuery("SELECT guid FROM creature_addon WHERE guid = '%u'", guidLow);
- PreparedStatement* stmt;
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_ADDON_BY_GUID);
+
+ stmt->setUInt32(0, guidLow);
+
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
{
@@ -223,6 +231,7 @@ public:
sWaypointMgr->ReloadPath(id);
return true;
}
+
static bool HandleWpUnLoadCommand(ChatHandler* handler, const char* /*args*/)
{
@@ -276,7 +285,8 @@ public:
std::string show = show_str;
// Check
- if ((show != "add") && (show != "mod") && (show != "del") && (show != "listid")) return false;
+ if ((show != "add") && (show != "mod") && (show != "del") && (show != "listid"))
+ return false;
char* arg_id = strtok(NULL, " ");
uint32 id = 0;
@@ -288,7 +298,9 @@ public:
if (id)
{
- QueryResult result = WorldDatabase.PQuery("SELECT id FROM waypoint_scripts WHERE guid = %u", id);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
+ stmt->setUInt32(0, id);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -305,10 +317,13 @@ public:
}
else
{
- QueryResult result = WorldDatabase.Query("SELECT MAX(guid) FROM waypoint_scripts");
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPTS_MAX_ID);
+
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
+
id = result->Fetch()->GetUInt32();
- PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_SCRIPT);
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_SCRIPT);
stmt->setUInt32(0, id + 1);
@@ -334,7 +349,9 @@ public:
float a8, a9, a10, a11;
char const* a7;
- QueryResult result = WorldDatabase.PQuery("SELECT guid, delay, command, datalong, datalong2, dataint, x, y, z, o FROM waypoint_scripts WHERE id = %u", id);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_BY_ID);
+ stmt->setUInt32(0, id);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -367,7 +384,11 @@ public:
{
id = atoi(arg_id);
- QueryResult result = WorldDatabase.PQuery("SELECT guid FROM waypoint_scripts WHERE guid = %u", id);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
+
+ stmt->setUInt32(0, id);
+
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (result)
{
@@ -445,7 +466,9 @@ public:
}
else
{
- QueryResult result = WorldDatabase.PQuery("SELECT id FROM waypoint_scripts WHERE guid='%u'", id);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
+ stmt->setUInt32(0, id);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -565,7 +588,9 @@ public:
// User did select a visual waypoint?
// Check the creature
- QueryResult result = WorldDatabase.PQuery("SELECT id, point FROM waypoint_data WHERE wpguid = %u", wpGuid);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_BY_WPGUID);
+ stmt->setUInt32(0, wpGuid);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -576,9 +601,17 @@ public:
// Here we search for all waypoints that only differ in one from 1 thousand
// (0.001) - There is no other way to compare C++ floats with mySQL floats
// See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html
- const char* maxDIFF = "0.01";
- result = WorldDatabase.PQuery("SELECT id, point FROM waypoint_data WHERE (abs(position_x - %f) <= %s) and (abs(position_y - %f) <= %s) and (abs(position_z - %f) <= %s)",
- target->GetPositionX(), maxDIFF, target->GetPositionY(), maxDIFF, target->GetPositionZ(), maxDIFF);
+ std::string maxDiff = "0.01";
+
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_BY_POS);
+ stmt->setFloat(0, target->GetPositionX());
+ stmt->setString(1, maxDiff);
+ stmt->setFloat(2, target->GetPositionY());
+ stmt->setString(3, maxDiff);
+ stmt->setFloat(4, target->GetPositionZ());
+ stmt->setString(5, maxDiff);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
+
if (!result)
{
handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM, wpGuid);
@@ -605,7 +638,7 @@ public:
return false;
}
- if (show == "del" && target)
+ if (show == "del")
{
handler->PSendSysMessage("|cff00ff00DEBUG: wp modify del, PathID: |r|cff00ffff%u|r", pathid);
@@ -615,9 +648,12 @@ public:
if (wpGuid != 0)
{
wpCreature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT));
- wpCreature->CombatStop();
- wpCreature->DeleteFromDB();
- wpCreature->AddObjectToRemoveList();
+ if (wpCreature)
+ {
+ wpCreature->CombatStop();
+ wpCreature->DeleteFromDB();
+ wpCreature->AddObjectToRemoveList();
+ }
}
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_WAYPOINT_DATA);
@@ -638,7 +674,7 @@ public:
return true;
} // del
- if (show == "move" && target)
+ if (show == "move")
{
handler->PSendSysMessage("|cff00ff00DEBUG: wp move, PathID: |r|cff00ffff%u|r", pathid);
@@ -652,16 +688,20 @@ public:
// Respawn the owner of the waypoints
if (wpGuid != 0)
{
- wpCreature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT));
- wpCreature->CombatStop();
- wpCreature->DeleteFromDB();
- wpCreature->AddObjectToRemoveList();
+ wpCreature = map->GetCreature(MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT));
+ if (wpCreature)
+ {
+ wpCreature->CombatStop();
+ wpCreature->DeleteFromDB();
+ wpCreature->AddObjectToRemoveList();
+ }
// re-create
Creature* wpCreature2 = new Creature;
if (!wpCreature2->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_UNIT), map, chr->GetPhaseMaskForSpawn(), VISUAL_WAYPOINT, 0, 0, chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), chr->GetOrientation()))
{
handler->PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, VISUAL_WAYPOINT);
delete wpCreature2;
+ wpCreature2 = NULL;
return false;
}
@@ -672,6 +712,7 @@ public:
{
handler->PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, VISUAL_WAYPOINT);
delete wpCreature2;
+ wpCreature2 = NULL;
return false;
}
//sMapMgr->GetMap(npcCreature->GetMapId())->Add(wpCreature2);
@@ -755,7 +796,6 @@ public:
}
std::string show = show_str;
- uint32 Maxpoint;
//handler->PSendSysMessage("wpshow - show: %s", show);
@@ -770,7 +810,11 @@ public:
return false;
}
- QueryResult result = WorldDatabase.PQuery("SELECT id, point, delay, move_flag, action, action_chance FROM waypoint_data WHERE wpguid = %u", target->GetGUIDLow());
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_ALL_BY_WPGUID);
+
+ stmt->setUInt32(0, target->GetGUIDLow());
+
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -802,7 +846,11 @@ public:
if (show == "on")
{
- QueryResult result = WorldDatabase.PQuery("SELECT point, position_x, position_y, position_z FROM waypoint_data WHERE id = '%u'", pathid);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_POS_BY_ID);
+
+ stmt->setUInt32(0, pathid);
+
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
@@ -814,7 +862,11 @@ public:
handler->PSendSysMessage("|cff00ff00DEBUG: wp on, PathID: |cff00ffff%u|r", pathid);
// Delete all visuals for this NPC
- QueryResult result2 = WorldDatabase.PQuery("SELECT wpguid FROM waypoint_data WHERE id = '%u' and wpguid <> 0", pathid);
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_WPGUID_BY_ID);
+
+ stmt->setUInt32(0, pathid);
+
+ PreparedQueryResult result2 = WorldDatabase.Query(stmt);
if (result2)
{
@@ -897,7 +949,7 @@ public:
if (target)
{
wpCreature->SetDisplayId(target->GetDisplayId());
- wpCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5f);
+ wpCreature->SetObjectScale(0.5f);
wpCreature->SetLevel(point > STRONG_MAX_LEVEL ? STRONG_MAX_LEVEL : point);
}
}
@@ -911,7 +963,10 @@ public:
{
handler->PSendSysMessage("|cff00ff00DEBUG: wp first, GUID: %u|r", pathid);
- QueryResult result = WorldDatabase.PQuery("SELECT position_x, position_y, position_z FROM waypoint_data WHERE point='1' AND id = '%u'", pathid);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_POS_FIRST_BY_ID);
+ stmt->setUInt32(0, pathid);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
+
if (!result)
{
handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUND, pathid);
@@ -948,7 +1003,7 @@ public:
if (target)
{
creature->SetDisplayId(target->GetDisplayId());
- creature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5f);
+ creature->SetObjectScale(0.5f);
}
return true;
@@ -958,13 +1013,10 @@ public:
{
handler->PSendSysMessage("|cff00ff00DEBUG: wp last, PathID: |r|cff00ffff%u|r", pathid);
- QueryResult result = WorldDatabase.PQuery("SELECT MAX(point) FROM waypoint_data WHERE id = '%u'", pathid);
- if (result)
- Maxpoint = (*result)[0].GetUInt32();
- else
- Maxpoint = 0;
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_DATA_POS_LAST_BY_ID);
+ stmt->setUInt32(0, pathid);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
- result = WorldDatabase.PQuery("SELECT position_x, position_y, position_z, orientation FROM waypoint_data WHERE point ='%u' AND id = '%u'", Maxpoint, pathid);
if (!result)
{
handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUNDLAST, pathid);
@@ -1000,7 +1052,7 @@ public:
if (target)
{
creature->SetDisplayId(target->GetDisplayId());
- creature->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.5f);
+ creature->SetObjectScale(0.5f);
}
return true;
@@ -1008,7 +1060,10 @@ public:
if (show == "off")
{
- QueryResult result = WorldDatabase.PQuery("SELECT guid FROM creature WHERE id = '%u'", 1);
+ PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_BY_ID);
+ stmt->setUInt32(0, 1);
+ PreparedQueryResult result = WorldDatabase.Query(stmt);
+
if (!result)
{
handler->SendSysMessage(LANG_WAYPOINT_VP_NOTFOUND);
@@ -1041,7 +1096,7 @@ public:
}
while (result->NextRow());
// set "wpguid" column to "empty" - no visual waypoint spawned
- PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_ALL_WAYPOINT_DATA_WPGUID);
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_DATA_ALL_WPGUID);
WorldDatabase.Execute(stmt);
//WorldDatabase.PExecute("UPDATE creature_movement SET wpguid = '0' WHERE wpguid <> '0'");
diff --git a/src/server/scripts/Custom/CMakeLists.txt b/src/server/scripts/Custom/CMakeLists.txt
index 1570ca17312..62abde25905 100644
--- a/src/server/scripts/Custom/CMakeLists.txt
+++ b/src/server/scripts/Custom/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
index 1292cdaee17..93de16fc80b 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
@@ -139,7 +139,7 @@ public:
summons.Summon(summoned);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
summons.DespawnAll();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
index 7ef11e5256a..9375cc33f27 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
@@ -126,11 +126,11 @@ public:
InstanceScript* instance;
- uint8 EventPhase;
+ uint8 EventPhase;
uint32 Event_Timer;
- uint8 MobSpawnId;
- uint8 MobCount;
+ uint8 MobSpawnId;
+ uint8 MobCount;
uint32 MobDeath_Timer;
uint64 RingMobGUID[4];
@@ -142,16 +142,16 @@ public:
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- EventPhase = 0;
- Event_Timer = 1000;
+ EventPhase = 0;
+ Event_Timer = 1000;
- MobCount = 0;
- MobDeath_Timer = 0;
+ MobCount = 0;
+ MobDeath_Timer = 0;
for (uint8 i = 0; i < MAX_MOB_AMOUNT; ++i)
RingMobGUID[i] = 0;
- RingBossGUID = 0;
+ RingBossGUID = 0;
CanWalk = false;
}
@@ -177,39 +177,39 @@ public:
MobDeath_Timer = 2500;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
- case 0:
- DoScriptText(SCRIPT_TEXT1, me);//2
- CanWalk = false;
- Event_Timer = 5000;
- break;
- case 1:
- DoScriptText(SCRIPT_TEXT2, me);//4
- CanWalk = false;
- Event_Timer = 5000;
- break;
- case 2:
- CanWalk = false;
- break;
- case 3:
- DoScriptText(SCRIPT_TEXT3, me);//5
- break;
- case 4:
- DoScriptText(SCRIPT_TEXT4, me);//6
- CanWalk = false;
- Event_Timer = 5000;
- break;
- case 5:
- if (instance)
- {
- instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, NPC_GRIMSTONE, me);
- instance->SetData(TYPE_RING_OF_LAW, DONE);
- sLog->outDebug(LOG_FILTER_TSCR, "TSCR: npc_grimstone: event reached end and set complete.");
- }
- break;
+ case 0:
+ DoScriptText(SCRIPT_TEXT1, me);//2
+ CanWalk = false;
+ Event_Timer = 5000;
+ break;
+ case 1:
+ DoScriptText(SCRIPT_TEXT2, me);//4
+ CanWalk = false;
+ Event_Timer = 5000;
+ break;
+ case 2:
+ CanWalk = false;
+ break;
+ case 3:
+ DoScriptText(SCRIPT_TEXT3, me);//5
+ break;
+ case 4:
+ DoScriptText(SCRIPT_TEXT4, me);//6
+ CanWalk = false;
+ Event_Timer = 5000;
+ break;
+ case 5:
+ if (instance)
+ {
+ instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, NPC_GRIMSTONE, me);
+ instance->SetData(TYPE_RING_OF_LAW, DONE);
+ sLog->outDebug(LOG_FILTER_TSCR, "TSCR: npc_grimstone: event reached end and set complete.");
+ }
+ break;
}
}
@@ -227,16 +227,16 @@ public:
{
if (MobDeath_Timer <= diff)
{
- MobDeath_Timer = 2500;
+ MobDeath_Timer = 2500;
if (RingBossGUID)
{
Creature* boss = Unit::GetCreature(*me, RingBossGUID);
if (boss && !boss->isAlive() && boss->isDead())
{
- RingBossGUID = 0;
- Event_Timer = 5000;
- MobDeath_Timer = 0;
+ RingBossGUID = 0;
+ Event_Timer = 5000;
+ MobDeath_Timer = 0;
return;
}
return;
@@ -247,7 +247,7 @@ public:
Creature* mob = Unit::GetCreature(*me, RingMobGUID[i]);
if (mob && !mob->isAlive() && mob->isDead())
{
- RingMobGUID[i] = 0;
+ RingMobGUID[i] = 0;
--MobCount;
//seems all are gone, so set timer to continue and discontinue this
@@ -355,7 +355,7 @@ public:
struct mob_phalanxAI : public ScriptedAI
{
- mob_phalanxAI(Creature* c) : ScriptedAI(c) {}
+ mob_phalanxAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ThunderClap_Timer;
uint32 FireballVolley_Timer;
@@ -363,9 +363,9 @@ public:
void Reset()
{
- ThunderClap_Timer = 12000;
- FireballVolley_Timer = 0;
- MightyBlow_Timer = 15000;
+ ThunderClap_Timer = 12000;
+ FireballVolley_Timer = 0;
+ MightyBlow_Timer = 15000;
}
void UpdateAI(const uint32 diff)
@@ -426,7 +426,7 @@ class npc_kharan_mighthammer : public CreatureScript
public:
npc_kharan_mighthammer() : CreatureScript("npc_kharan_mighthammer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -520,7 +520,7 @@ class npc_lokhtos_darkbargainer : public CreatureScript
public:
npc_lokhtos_darkbargainer() : CreatureScript("npc_lokhtos_darkbargainer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -564,7 +564,6 @@ enum DughalQuests
QUEST_JAIL_BREAK = 4322
};
-// DELETE THIS IF IT IS NOT NEEDED!
#define SAY_DUGHAL_FREE "Thank you, $N! I'm free!!!"
#define GOSSIP_DUGHAL "You're free, Dughal! Get out of here!"
@@ -585,7 +584,7 @@ public:
return dughal_stormwingAI;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 Sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -610,20 +609,24 @@ public:
struct npc_dughal_stormwingAI : public npc_escortAI
{
- npc_dughal_stormwingAI(Creature* c) : npc_escortAI(c) {}
+ npc_dughal_stormwingAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
- case 0:me->Say(SAY_DUGHAL_FREE, LANG_UNIVERSAL, PlayerGUID); break;
- case 1:instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_OBJECTIVE_COMPLETED);break;
- case 2:
- me->SetVisibility(VISIBILITY_OFF);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
- break;
+ case 0:
+ me->Say(SAY_DUGHAL_FREE, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 1:
+ instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_OBJECTIVE_COMPLETED);
+ break;
+ case 2:
+ me->SetVisible(false);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
+ break;
}
}
@@ -634,7 +637,7 @@ public:
{
if (IsBeingEscorted && killer == me)
{
- me->SetVisibility(VISIBILITY_OFF);
+ me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
@@ -646,13 +649,13 @@ public:
if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED) return;
if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_ENDED)
{
- me->SetVisibility(VISIBILITY_OFF);
+ me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
else
{
- me->SetVisibility(VISIBILITY_ON);
+ me->SetVisible(true);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
@@ -713,78 +716,85 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == 4322)
- {PlayerStart = player;
+ {
+ PlayerStart = player;
if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
{
- CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
- instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_IN_PROGRESS);
- creature->setFaction(11);
- }
+ CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
+ instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_IN_PROGRESS);
+ creature->setFaction(11);
}
+ }
return false;
}
struct npc_marshal_windsorAI : public npc_escortAI
{
- npc_marshal_windsorAI(Creature* c) : npc_escortAI(c)
+ npc_marshal_windsorAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
- case 1:
- me->Say(SAY_WINDSOR_1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 7:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_WINDSOR_4_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 10:
- me->setFaction(534);
- break;
- case 12:
- me->Say(SAY_WINDSOR_6, LANG_UNIVERSAL, PlayerGUID);
- instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_IN_PROGRESS);
- break;
- case 13:
- me->HandleEmoteCommand(EMOTE_STATE_USESTANDING);//EMOTE_STATE_WORK
- break;
- case 14:
- instance->SetData(DATA_GATE_SR, 0);
- me->setFaction(11);
- break;
- case 16:
- me->Say(SAY_WINDSOR_9, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 17:
- me->HandleEmoteCommand(EMOTE_STATE_USESTANDING);//EMOTE_STATE_WORK
- break;
- case 18:
- instance->SetData(DATA_GATE_SC, 0);
- break;
- case 19:
- me->SetVisibility(VISIBILITY_OFF);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SummonCreature(MOB_ENTRY_REGINALD_WINDSOR, 403.61f, -51.71f, -63.92f, 3.600434f, TEMPSUMMON_DEAD_DESPAWN, 0);
- instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_ENDED);
- break;
+ case 1:
+ me->Say(SAY_WINDSOR_1, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 7:
+ me->HandleEmoteCommand(EMOTE_STATE_POINT);
+ me->Say(SAY_WINDSOR_4_1, LANG_UNIVERSAL, PlayerGUID);
+ IsOnHold = true;
+ break;
+ case 10:
+ me->setFaction(534);
+ break;
+ case 12:
+ me->Say(SAY_WINDSOR_6, LANG_UNIVERSAL, PlayerGUID);
+ instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_IN_PROGRESS);
+ break;
+ case 13:
+ me->HandleEmoteCommand(EMOTE_STATE_USESTANDING);//EMOTE_STATE_WORK
+ break;
+ case 14:
+ instance->SetData(DATA_GATE_SR, 0);
+ me->setFaction(11);
+ break;
+ case 16:
+ me->Say(SAY_WINDSOR_9, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 17:
+ me->HandleEmoteCommand(EMOTE_STATE_USESTANDING);//EMOTE_STATE_WORK
+ break;
+ case 18:
+ instance->SetData(DATA_GATE_SC, 0);
+ break;
+ case 19:
+ me->SetVisible(false);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SummonCreature(MOB_ENTRY_REGINALD_WINDSOR, 403.61f, -51.71f, -63.92f, 3.600434f, TEMPSUMMON_DEAD_DESPAWN, 0);
+ instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_ENDED);
+ break;
}
}
void EnterCombat(Unit* who)
- {
+ {
switch (urand(0, 2))
{
- case 0: me->Say(SAY_WINDSOR_AGGRO1, LANG_UNIVERSAL, PlayerGUID); break;
- case 1: me->Say(SAY_WINDSOR_AGGRO2, LANG_UNIVERSAL, PlayerGUID); break;
- case 2: me->Say(SAY_WINDSOR_AGGRO3, LANG_UNIVERSAL, PlayerGUID); break;
- }
+ case 0:
+ me->Say(SAY_WINDSOR_AGGRO1, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 1:
+ me->Say(SAY_WINDSOR_AGGRO2, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 2:
+ me->Say(SAY_WINDSOR_AGGRO3, LANG_UNIVERSAL, PlayerGUID);
+ break;
}
+ }
void Reset() {}
@@ -795,28 +805,31 @@ public:
void UpdateAI(const uint32 diff)
{
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED) return;
+ if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
+ return;
+
if (instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_OBJECTIVE_COMPLETED)
SetEscortPaused(false);
+
if (!instance->GetData(DATA_GATE_D) && instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_NOT_STARTED)
- {
+ {
me->Say(SAY_WINDSOR_4_2, LANG_UNIVERSAL, PlayerGUID);
instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_BEFORE_START);
- }
+ }
if (instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_OBJECTIVE_COMPLETED)
- {
+ {
me->Say(SAY_WINDSOR_4_3, LANG_UNIVERSAL, PlayerGUID);
instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
- }
+ }
if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_SUPPLY_ROOM) == ENCOUNTER_STATE_ENDED)
{
- me->SetVisibility(VISIBILITY_OFF);
+ me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
else
{
- me->SetVisibility(VISIBILITY_ON);
+ me->SetVisible(true);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
@@ -897,65 +910,65 @@ public:
struct npc_marshal_reginald_windsorAI : public npc_escortAI
{
- npc_marshal_reginald_windsorAI(Creature* c) : npc_escortAI(c)
+ npc_marshal_reginald_windsorAI(Creature* creature) : npc_escortAI(creature)
{
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- wp=i;
- switch (i)
+ wp = waypointId;
+ switch (waypointId)
{
- case 0:
- me->setFaction(11);
- me->Say(SAY_REGINALD_WINDSOR_0_1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 1:
- me->Say(SAY_REGINALD_WINDSOR_0_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 7:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_5_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 8:
- me->Say(SAY_REGINALD_WINDSOR_5_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 11:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_7_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 12:
- me->Say(SAY_REGINALD_WINDSOR_7_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 13:
- me->Say(SAY_REGINALD_WINDSOR_7_3, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 20:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_13_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 21:
- me->Say(SAY_REGINALD_WINDSOR_13_3, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 23:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_14_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 24:
- me->Say(SAY_REGINALD_WINDSOR_14_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 31:
- me->Say(SAY_REGINALD_WINDSOR_20_1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 32:
- me->Say(SAY_REGINALD_WINDSOR_20_2, LANG_UNIVERSAL, PlayerGUID);
- PlayerStart->GroupEventHappens(QUEST_JAIL_BREAK, me);
- instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
- break;
+ case 0:
+ me->setFaction(11);
+ me->Say(SAY_REGINALD_WINDSOR_0_1, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 1:
+ me->Say(SAY_REGINALD_WINDSOR_0_2, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 7:
+ me->HandleEmoteCommand(EMOTE_STATE_POINT);
+ me->Say(SAY_REGINALD_WINDSOR_5_1, LANG_UNIVERSAL, PlayerGUID);
+ IsOnHold=true;
+ break;
+ case 8:
+ me->Say(SAY_REGINALD_WINDSOR_5_2, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 11:
+ me->HandleEmoteCommand(EMOTE_STATE_POINT);
+ me->Say(SAY_REGINALD_WINDSOR_7_1, LANG_UNIVERSAL, PlayerGUID);
+ IsOnHold=true;
+ break;
+ case 12:
+ me->Say(SAY_REGINALD_WINDSOR_7_2, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 13:
+ me->Say(SAY_REGINALD_WINDSOR_7_3, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 20:
+ me->HandleEmoteCommand(EMOTE_STATE_POINT);
+ me->Say(SAY_REGINALD_WINDSOR_13_1, LANG_UNIVERSAL, PlayerGUID);
+ IsOnHold=true;
+ break;
+ case 21:
+ me->Say(SAY_REGINALD_WINDSOR_13_3, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 23:
+ me->HandleEmoteCommand(EMOTE_STATE_POINT);
+ me->Say(SAY_REGINALD_WINDSOR_14_1, LANG_UNIVERSAL, PlayerGUID);
+ IsOnHold=true;
+ break;
+ case 24:
+ me->Say(SAY_REGINALD_WINDSOR_14_2, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 31:
+ me->Say(SAY_REGINALD_WINDSOR_20_1, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 32:
+ me->Say(SAY_REGINALD_WINDSOR_20_2, LANG_UNIVERSAL, PlayerGUID);
+ PlayerStart->GroupEventHappens(QUEST_JAIL_BREAK, me);
+ instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
+ break;
}
}
@@ -979,14 +992,20 @@ public:
}
void EnterCombat(Unit* who)
- {
+ {
switch (urand(0, 2))
{
- case 0: me->Say(SAY_WINDSOR_AGGRO1, LANG_UNIVERSAL, PlayerGUID); break;
- case 1: me->Say(SAY_WINDSOR_AGGRO2, LANG_UNIVERSAL, PlayerGUID); break;
- case 2: me->Say(SAY_WINDSOR_AGGRO3, LANG_UNIVERSAL, PlayerGUID); break;
- }
+ case 0:
+ me->Say(SAY_WINDSOR_AGGRO1, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 1:
+ me->Say(SAY_WINDSOR_AGGRO2, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 2:
+ me->Say(SAY_WINDSOR_AGGRO3, LANG_UNIVERSAL, PlayerGUID);
+ break;
}
+ }
void Reset() {}
void JustDied(Unit* slayer)
@@ -996,47 +1015,49 @@ public:
void UpdateAI(const uint32 diff)
{
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED) return;
+ if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
+ return;
+
if (wp == 7)
- {
+ {
if (!instance->GetData(DATA_GATE_J) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_NOT_STARTED)
- {
- instance->SetData(DATA_CREATURE_JAZ, 1);
- instance->SetData(DATA_JAZ, ENCOUNTER_STATE_IN_PROGRESS);
- }
+ {
+ instance->SetData(DATA_CREATURE_JAZ, 1);
+ instance->SetData(DATA_JAZ, ENCOUNTER_STATE_IN_PROGRESS);
+ }
if (instance->GetData(DATA_CREATURE_JAZ) && instance->GetData(DATA_CREATURE_OGRABISI) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- SetEscortPaused(false);
- instance->SetData(DATA_JAZ, ENCOUNTER_STATE_ENDED);
- }
+ {
+ SetEscortPaused(false);
+ instance->SetData(DATA_JAZ, ENCOUNTER_STATE_ENDED);
}
+ }
else if (wp == 11)
- {
+ {
if (!instance->GetData(DATA_GATE_S) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_NOT_STARTED)
- {
- instance->SetData(DATA_CREATURE_SHILL, 1);
- instance->SetData(DATA_SHILL, ENCOUNTER_STATE_IN_PROGRESS);
- }
+ {
+ instance->SetData(DATA_CREATURE_SHILL, 1);
+ instance->SetData(DATA_SHILL, ENCOUNTER_STATE_IN_PROGRESS);
+ }
if (instance->GetData(DATA_CREATURE_SHILL) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
- SetEscortPaused(false);
- }
+ {
+ instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
+ SetEscortPaused(false);
}
+ }
else if (wp == 20)
- {
+ {
if (!instance->GetData(DATA_GATE_C) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_NOT_STARTED)
- {
- instance->SetData(DATA_CREATURE_CREST, 1);
- me->Say(SAY_REGINALD_WINDSOR_13_2, LANG_UNIVERSAL, PlayerGUID);
- instance->SetData(DATA_CREST, ENCOUNTER_STATE_IN_PROGRESS);
- }
+ {
+ instance->SetData(DATA_CREATURE_CREST, 1);
+ me->Say(SAY_REGINALD_WINDSOR_13_2, LANG_UNIVERSAL, PlayerGUID);
+ instance->SetData(DATA_CREST, ENCOUNTER_STATE_IN_PROGRESS);
+ }
if (instance->GetData(DATA_CREATURE_CREST) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- SetEscortPaused(false);
- instance->SetData(DATA_CREST, ENCOUNTER_STATE_ENDED);
- }
+ {
+ SetEscortPaused(false);
+ instance->SetData(DATA_CREST, ENCOUNTER_STATE_ENDED);
}
+ }
if (instance->GetData(DATA_TOBIAS) == ENCOUNTER_STATE_OBJECTIVE_COMPLETED) SetEscortPaused(false);
npc_escortAI::UpdateAI(diff);
}
@@ -1046,6 +1067,7 @@ public:
// npc_tobias_seecher
#define SAY_TOBIAS_FREE "Thank you! I will run for safety immediately!"
+
/*
class npc_tobias_seecher : public CreatureScript
{
@@ -1065,7 +1087,7 @@ public:
return tobias_seecherAI;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 Sender, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF + 1)
@@ -1090,7 +1112,7 @@ public:
struct npc_tobias_seecherAI : public npc_escortAI
{
- npc_tobias_seecherAI(Creature* c) :npc_escortAI(c) {}
+ npc_tobias_seecherAI(Creature* creature) : npc_escortAI(creature) {}
void EnterCombat(Unit* who) {}
void Reset() {}
@@ -1099,41 +1121,46 @@ public:
{
if (IsBeingEscorted && killer == me)
{
- me->SetVisibility(VISIBILITY_OFF);
+ me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_ENDED);
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
- case 0:me->Say(SAY_TOBIAS_FREE, LANG_UNIVERSAL, PlayerGUID); break;
- case 2:
- instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_OBJECTIVE_COMPLETED);break;
- case 4:
- me->SetVisibility(VISIBILITY_OFF);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_ENDED);
- break;
+ case 0:
+ me->Say(SAY_TOBIAS_FREE, LANG_UNIVERSAL, PlayerGUID);
+ break;
+ case 2:
+ instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_OBJECTIVE_COMPLETED);
+ break;
+ case 4:
+ me->SetVisible(false);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_ENDED);
+ break;
}
}
void UpdateAI(const uint32 diff)
{
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED) return;
+ if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
+ return;
+
if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_TOBIAS) == ENCOUNTER_STATE_ENDED)
{
- me->SetVisibility(VISIBILITY_OFF);
+ me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
else
{
- me->SetVisibility(VISIBILITY_ON);
+ me->SetVisible(true);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
@@ -1217,8 +1244,8 @@ public:
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
- BreakKeg_Timer = 0;
- BreakDoor_Timer = 0;
+ BreakKeg_Timer = 0;
+ BreakDoor_Timer = 0;
}
void DoGo(uint32 id, uint32 state)
@@ -1227,29 +1254,29 @@ public:
go->SetGoState((GOState)state);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
if (!instance)
return;
- switch (i)
+ switch (waypointId)
{
- case 1:
- me->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
- break;
- case 2:
- me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK_UNARMED);
- break;
- case 3:
- me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK_UNARMED);
- break;
- case 4:
- me->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
- break;
- case 5:
- me->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
- BreakKeg_Timer = 2000;
- break;
+ case 1:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
+ break;
+ case 2:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK_UNARMED);
+ break;
+ case 3:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK_UNARMED);
+ break;
+ case 4:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
+ break;
+ case 5:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_KICK);
+ BreakKeg_Timer = 2000;
+ break;
}
}
@@ -1263,8 +1290,8 @@ public:
if (BreakKeg_Timer <= diff)
{
DoGo(DATA_GO_BAR_KEG, 0);
- BreakKeg_Timer = 0;
- BreakDoor_Timer = 1000;
+ BreakKeg_Timer = 0;
+ BreakDoor_Timer = 1000;
} else BreakKeg_Timer -= diff;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp
index 2e8dc029d44..ff0f1a4cedd 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp
@@ -42,8 +42,8 @@ public:
void Reset()
{
- FireBlast_Timer = 2000;
- Spirit_Timer = 24000;
+ FireBlast_Timer = 2000;
+ Spirit_Timer = 24000;
}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp
index b4a4c416693..2585796e28e 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp
@@ -49,11 +49,11 @@ public:
void Reset()
{
- ShadowBolt_Timer = 7000;
- CurseOfTongues_Timer = 24000;
- CurseOfWeakness_Timer = 12000;
- DemonArmor_Timer = 3000;
- EnvelopingWeb_Timer = 16000;
+ ShadowBolt_Timer = 7000;
+ CurseOfTongues_Timer = 24000;
+ CurseOfWeakness_Timer = 12000;
+ DemonArmor_Timer = 3000;
+ EnvelopingWeb_Timer = 16000;
}
void EnterCombat(Unit* /*who*/) {}
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 e894fd35bd1..073c4fde82a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
@@ -55,9 +55,9 @@ public:
void Reset()
{
- HandOfThaurissan_Timer = 4000;
- AvatarOfFlame_Timer = 25000;
- //Counter = 0;
+ HandOfThaurissan_Timer = 4000;
+ AvatarOfFlame_Timer = 25000;
+ //Counter= 0;
}
void EnterCombat(Unit* /*who*/)
@@ -71,7 +71,7 @@ public:
DoScriptText(SAY_SLAY, me);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Moira = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_MOIRA) : 0))
{
@@ -100,7 +100,7 @@ public:
//else
//{
HandOfThaurissan_Timer = 5000;
- //Counter = 0;
+ //Counter = 0;
//}
} else HandOfThaurissan_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp
index 69808386423..703f684cc9f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp
@@ -47,11 +47,11 @@ public:
void Reset()
{
- MightyBlow_Timer = 8000;
- HamString_Timer = 12000;
- Cleave_Timer = 16000;
- Adds_Timer = 0;
- Medics = false;
+ MightyBlow_Timer = 8000;
+ HamString_Timer = 12000;
+ Cleave_Timer = 16000;
+ Adds_Timer = 0;
+ Medics = false;
}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp
index 883c601709e..b2c93d949c2 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp
@@ -43,8 +43,8 @@ public:
void Reset()
{
- WhirlWind_Timer = 12000;
- MortalStrike_Timer = 22000;
+ WhirlWind_Timer = 12000;
+ MortalStrike_Timer = 22000;
}
void EnterCombat(Unit* /*who*/)
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
index 7686ece3c2e..63d945ade90 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
@@ -43,8 +43,8 @@ public:
void Reset()
{
- GroundTremor_Timer = 12000;
- Frenzy_Timer = 0;
+ GroundTremor_Timer = 12000;
+ Frenzy_Timer =0;
}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
index 26e2bc80eb2..f4f245be4be 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
@@ -47,10 +47,10 @@ public:
void Reset()
{
- ShadowWordPain_Timer = 4000;
- ManaBurn_Timer = 14000;
- PsychicScream_Timer = 32000;
- ShadowShield_Timer = 8000;
+ ShadowWordPain_Timer = 4000;
+ ManaBurn_Timer = 14000;
+ PsychicScream_Timer = 32000;
+ ShadowShield_Timer = 8000;
}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp
index 141b8307b7b..3d2cc627145 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_magmus.cpp
@@ -48,8 +48,8 @@ public:
void Reset()
{
- FieryBurst_Timer = 5000;
- WarStomp_Timer = 0;
+ FieryBurst_Timer = 5000;
+ WarStomp_Timer =0;
}
void EnterCombat(Unit* /*who*/) {}
@@ -80,9 +80,9 @@ public:
DoMeleeAttackIfReady();
}
// When he die open door to last chamber
- void JustDied(Unit* who)
+ void JustDied(Unit* killer)
{
- if (InstanceScript* instance = who->GetInstanceScript())
+ if (InstanceScript* instance = killer->GetInstanceScript())
instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true);
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp
index 72a60daea2d..e6f65ab4252 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp
@@ -49,10 +49,10 @@ public:
void Reset()
{
- Heal_Timer = 12000; // These times are probably wrong
- MindBlast_Timer = 16000;
- ShadowWordPain_Timer = 2000;
- Smite_Timer = 8000;
+ Heal_Timer = 12000; //These times are probably wrong
+ MindBlast_Timer = 16000;
+ ShadowWordPain_Timer = 2000;
+ Smite_Timer = 8000;
}
void EnterCombat(Unit* /*who*/) {}
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 3c8d5fc4fa8..211930e4f1a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
@@ -45,7 +45,7 @@ class boss_gloomrel : public CreatureScript
public:
boss_gloomrel() : CreatureScript("boss_gloomrel") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -104,7 +104,7 @@ class boss_doomrel : public CreatureScript
public:
boss_doomrel() : CreatureScript("boss_doomrel") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -156,11 +156,11 @@ public:
void Reset()
{
- ShadowVolley_Timer = 10000;
- Immolate_Timer = 18000;
- CurseOfWeakness_Timer = 5000;
- DemonArmor_Timer = 16000;
- Voidwalkers = false;
+ ShadowVolley_Timer = 10000;
+ Immolate_Timer = 18000;
+ CurseOfWeakness_Timer = 5000;
+ DemonArmor_Timer = 16000;
+ Voidwalkers = false;
me->setFaction(FACTION_FRIEND);
@@ -193,7 +193,7 @@ public:
instance->SetData64(DATA_EVENSTARTER, 0);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_GHOSTKILL, 1);
diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
index 2ef3ef48ecb..03cb077936b 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
@@ -115,57 +115,57 @@ public:
{
memset(&encounter, 0, sizeof(encounter));
- EmperorGUID = 0;
- PhalanxGUID = 0;
- MagmusGUID = 0;
- MoiraGUID = 0;
-
- GoArena1GUID = 0;
- GoArena2GUID = 0;
- GoArena3GUID = 0;
- GoArena4GUID = 0;
- GoShadowLockGUID = 0;
- GoShadowMechGUID = 0;
- GoShadowGiantGUID = 0;
- GoShadowDummyGUID = 0;
- GoBarKegGUID = 0;
- GoBarKegTrapGUID = 0;
- GoBarDoorGUID = 0;
- GoTombEnterGUID = 0;
- GoTombExitGUID = 0;
- GoLyceumGUID = 0;
- GoSFSGUID = 0;
- GoSFNGUID = 0;
- GoGolemNGUID = 0;
- GoGolemSGUID = 0;
- GoThroneGUID = 0;
- GoChestGUID = 0;
- GoSpectralChaliceGUID = 0;
-
- BarAleCount = 0;
- GhostKillCount = 0;
- TombEventStarterGUID = 0;
+ EmperorGUID = 0;
+ PhalanxGUID = 0;
+ MagmusGUID = 0;
+ MoiraGUID = 0;
+
+ GoArena1GUID = 0;
+ GoArena2GUID = 0;
+ GoArena3GUID = 0;
+ GoArena4GUID = 0;
+ GoShadowLockGUID = 0;
+ GoShadowMechGUID = 0;
+ GoShadowGiantGUID = 0;
+ GoShadowDummyGUID = 0;
+ GoBarKegGUID = 0;
+ GoBarKegTrapGUID = 0;
+ GoBarDoorGUID = 0;
+ GoTombEnterGUID = 0;
+ GoTombExitGUID = 0;
+ GoLyceumGUID = 0;
+ GoSFSGUID = 0;
+ GoSFNGUID = 0;
+ GoGolemNGUID = 0;
+ GoGolemSGUID = 0;
+ GoThroneGUID = 0;
+ GoChestGUID = 0;
+ GoSpectralChaliceGUID = 0;
+
+ BarAleCount = 0;
+ GhostKillCount = 0;
+ TombEventStarterGUID = 0;
TombTimer = TIMER_TOMBOFTHESEVEN;
- TombEventCounter = 0;
+ TombEventCounter = 0;
for (uint8 i = 0; i < 7; ++i)
- TombBossGUIDs[i] = 0;
+ TombBossGUIDs[i] = 0;
}
void OnCreatureCreate(Creature* creature)
{
switch (creature->GetEntry())
{
- case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
- case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
- case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break;
- case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;
- case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;
- case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break;
- case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break;
- case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break;
- case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break;
- case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;
+ case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
+ case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
+ case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break;
+ case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;
+ case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;
+ case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break;
+ case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break;
+ case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break;
+ case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break;
+ case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;
case NPC_MAGMUS:
MagmusGUID = creature->GetGUID();
if (!creature->isAlive())
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
index e51c6b9130d..0af2af948d3 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
@@ -33,7 +33,8 @@ enum Data
DATA_WARCHIEF_REND_BLACKHAND,
DATA_GYTH,
DATA_THE_BEAST,
- DATA_GENERAL_DRAKKISATH
+ DATA_GENERAL_DRAKKISATH,
+ DATA_DRAGONSPIRE_ROOM,
};
enum Npc
{
@@ -51,17 +52,51 @@ enum Npc
NPC_GYTH = 10339,
NPC_THE_BEAST = 10430,
NPC_GENERAL_DRAKKISATH = 10363,
+ NPC_BLACKHAND_DREADWEAVER = 9817,
+ NPC_BLACKHAND_SUMMONER = 9818,
+ NPC_BLACKHAND_VETERAN = 9819,
};
enum AdditionalData
{
SPELL_SUMMON_ROOKERY_WHELP = 15745,
MAX_ENCOUNTER = 14,
+ MAX_DRAGONSPIRE_HALL_RUNES = 7,
+ EVENT_PYROGUARD_EMBERSEER = 4884,
+ AREATRIGGER_ENTER_UBRS = 2046,
+ AREATRIGGER_STADIUM = 2026,
};
enum GameObjects
{
- GO_WHELP_SPAWNER = 175622, //trap spawned by go id 175124
+ GO_WHELP_SPAWNER = 175622, // trap spawned by go id 175124
+
+ // Doors
+ GO_EMBERSEER_IN = 175244, // First door to Pyroguard Emberseer
+ GO_DOORS = 175705, // Second door to Pyroguard Emberseer
+ GO_EMBERSEER_OUT = 175153, // Door after Pyroguard Emberseer event
+ GO_GYTH_ENTRY_DOOR = 164726,
+ GO_GYTH_COMBAT_DOOR = 175185,
+ GO_GYTH_EXIT_DOOR = 175186,
+ GO_DRAKKISATH_DOOR_1 = 175946,
+ GO_DRAKKISATH_DOOR_2 = 175947,
+
+ // Runes
+ GO_ROOM_1_RUNE = 175197,
+ GO_ROOM_2_RUNE = 175199,
+ GO_ROOM_3_RUNE = 175195,
+ GO_ROOM_4_RUNE = 175200,
+ GO_ROOM_5_RUNE = 175198,
+ GO_ROOM_6_RUNE = 175196,
+ GO_ROOM_7_RUNE = 175194,
+
+ GO_EMBERSEER_RUNE_1 = 175266,
+ GO_EMBERSEER_RUNE_2 = 175267,
+ GO_EMBERSEER_RUNE_3 = 175268,
+ GO_EMBERSEER_RUNE_4 = 175269,
+ GO_EMBERSEER_RUNE_5 = 175270,
+ GO_EMBERSEER_RUNE_6 = 175271,
+ GO_EMBERSEER_RUNE_7 = 175272,
};
#endif
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp
index ff17e989cd9..ff40094debd 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp
@@ -64,7 +64,7 @@ public:
events.ScheduleEvent(EVENT_THUNDERCLAP, 17 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
index 0d8cabcf89c..214ce4e02f3 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
@@ -79,7 +79,7 @@ public:
events.ScheduleEvent(EVENT_AGGRO, 60 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
@@ -117,7 +117,7 @@ public:
// Interrupt any spell casting
me->InterruptNonMeleeSpells(false);
// Gyth model
- me->SetDisplayId(me->GetCreatureInfo()->Modelid1);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
me->SummonCreature(NPC_WARCHIEF_REND_BLACKHAND, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_FREEZE, 11 * IN_MILLISECONDS);
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp
index a944ee6daf8..c5d566c51cb 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_halycon.cpp
@@ -63,7 +63,7 @@ public:
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 14 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
index bc9de52d91d..027952dc74a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
@@ -73,7 +73,7 @@ public:
events.ScheduleEvent(EVENT_SLOW, 24 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp
index 973ffe7e53b..c455b1d404d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp
@@ -59,7 +59,7 @@ public:
events.ScheduleEvent(EVENT_MOTHERS_MILK, 10 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp
index b7492998d56..0c23f55bd39 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp
@@ -77,7 +77,7 @@ public:
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
index d76d0d7f47c..0279f3e2834 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
@@ -20,11 +20,24 @@
#include "ScriptedCreature.h"
#include "blackrock_spire.h"
+enum Text
+{
+ EMOTE_ONE_STACK = 0,
+ EMOTE_TEN_STACK = 1,
+ EMOTE_FREE_OF_BONDS = 2,
+ YELL_FREE_OF_BONDS = 3,
+};
+
enum Spells
{
- SPELL_FIRENOVA = 23462,
- SPELL_FLAMEBUFFET = 23341,
- SPELL_PYROBLAST = 17274,
+ SPELL_ENCAGED_EMBERSEER = 15282, // Self on spawn
+ SPELL_FIRE_SHIELD_TRIGGER = 13377, // Self on spawn missing from 335 dbc
+ SPELL_FREEZE_ANIM = 16245, // Self on event start
+ SPELL_EMBERSEER_GROWING = 16048, // Self on event start
+ SPELL_EMBERSEER_FULL_STRENGTH = 16047, // Emberseer Full Strength
+ SPELL_FIRENOVA = 23462, // Combat
+ SPELL_FLAMEBUFFET = 23341, // Combat
+ SPELL_PYROBLAST = 17274, // Combat
};
enum Events
@@ -51,6 +64,12 @@ public:
void Reset()
{
+ if(instance->GetBossState(DATA_PYROGAURD_EMBERSEER) == IN_PROGRESS)
+ OpenDoors(false);
+ instance->SetBossState(DATA_PYROGAURD_EMBERSEER,NOT_STARTED);
+ // respawn any dead Blackhand Incarcerators
+ DoCast(me, SPELL_ENCAGED_EMBERSEER);
+ //DoCast(me, SPELL_FIRE_SHIELD_TRIGGER);
_Reset();
}
@@ -62,14 +81,28 @@ public:
events.ScheduleEvent(EVENT_PYROBLAST, 14 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
+ instance->SetBossState(DATA_PYROGAURD_EMBERSEER,DONE);
+ OpenDoors(true);
_JustDied();
}
+ void OpenDoors(bool Boss_Killed)
+ {
+ if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN)))
+ door1->SetGoState(GO_STATE_ACTIVE);
+ if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS)))
+ door2->SetGoState(GO_STATE_ACTIVE);
+ if (Boss_Killed)
+ if (GameObject* door3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_OUT)))
+ door3->SetGoState(GO_STATE_ACTIVE);
+ }
+
void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
+
return;
events.Update(diff);
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp
index 4fb7e513f5d..d1eb60fbb71 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp
@@ -60,7 +60,7 @@ public:
events.ScheduleEvent(EVENT_STUN_BOMB, 16 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
index ce19a03571a..1f7e3697a6d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
@@ -61,7 +61,7 @@ public:
events.ScheduleEvent(EVENT_THUNDERCLAP, 9 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
index f93466cbece..99e87dc617b 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
@@ -62,7 +62,7 @@ public:
events.ScheduleEvent(EVENT_CLEAVE, 14 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp
index 88a09d57138..843679b460d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_the_beast.cpp
@@ -61,7 +61,7 @@ public:
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp
index 2dc05799e51..a3891ef8590 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp
@@ -70,7 +70,7 @@ public:
events.ScheduleEvent(EVENT_THROW_AXE, 1 * IN_MILLISECONDS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
index ff97984fa09..fdb73fe1196 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
@@ -49,6 +49,12 @@ public:
uint64 Gyth;
uint64 TheBeast;
uint64 GeneralDrakkisath;
+ uint64 go_emberseerin;
+ uint64 go_doors;
+ uint64 go_emberseerout;
+ uint64 go_roomrunes[MAX_DRAGONSPIRE_HALL_RUNES];
+ uint8 Runemaxprotectors[MAX_DRAGONSPIRE_HALL_RUNES];
+ uint8 Runeprotectorsdead[MAX_DRAGONSPIRE_HALL_RUNES];
void Initialize()
{
@@ -67,6 +73,9 @@ public:
Gyth = 0;
TheBeast = 0;
GeneralDrakkisath = 0;
+ go_emberseerin = 0;
+ go_doors = 0;
+ go_emberseerout = 0;
}
bool IsEncounterInProgress() const
@@ -125,7 +134,11 @@ public:
case NPC_GENERAL_DRAKKISATH:
GeneralDrakkisath = creature->GetGUID();
break;
- }
+ case NPC_BLACKHAND_DREADWEAVER:
+ case NPC_BLACKHAND_SUMMONER:
+ case NPC_BLACKHAND_VETERAN:
+ break;
+ }
}
void OnGameObjectCreate(GameObject* go)
@@ -135,6 +148,36 @@ public:
case GO_WHELP_SPAWNER:
go->CastSpell(NULL, SPELL_SUMMON_ROOKERY_WHELP);
break;
+ case GO_EMBERSEER_IN:
+ go_emberseerin = go->GetGUID();
+ break;
+ case GO_DOORS:
+ go_doors = go->GetGUID();
+ break;
+ case GO_EMBERSEER_OUT:
+ go_emberseerout = go->GetGUID();
+ break;
+ case GO_ROOM_1_RUNE:
+ go_roomrunes[0] = go->GetGUID();
+ break;
+ case GO_ROOM_2_RUNE:
+ go_roomrunes[1] = go->GetGUID();
+ break;
+ case GO_ROOM_3_RUNE:
+ go_roomrunes[2] = go->GetGUID();
+ break;
+ case GO_ROOM_4_RUNE:
+ go_roomrunes[3] = go->GetGUID();
+ break;
+ case GO_ROOM_5_RUNE:
+ go_roomrunes[4] = go->GetGUID();
+ break;
+ case GO_ROOM_6_RUNE:
+ go_roomrunes[5] = go->GetGUID();
+ break;
+ case GO_ROOM_7_RUNE:
+ go_roomrunes[6] = go->GetGUID();
+ break;
}
}
@@ -167,6 +210,18 @@ public:
return true;
}
+ void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId)
+ {
+ switch (eventId)
+ {
+ case EVENT_PYROGUARD_EMBERSEER:
+ SetBossState(DATA_PYROGAURD_EMBERSEER,IN_PROGRESS);
+ break;
+ default:
+ break;
+ }
+ }
+
uint64 GetData64(uint32 type)
{
switch (type)
@@ -199,6 +254,26 @@ public:
return TheBeast;
case DATA_GENERAL_DRAKKISATH:
return GeneralDrakkisath;
+ case GO_EMBERSEER_IN:
+ return go_emberseerin;
+ case GO_DOORS:
+ return go_doors;
+ case GO_EMBERSEER_OUT:
+ return go_emberseerout;
+ case GO_ROOM_1_RUNE:
+ return go_roomrunes[0];
+ case GO_ROOM_2_RUNE:
+ return go_roomrunes[1];
+ case GO_ROOM_3_RUNE:
+ return go_roomrunes[2];
+ case GO_ROOM_4_RUNE:
+ return go_roomrunes[3];
+ case GO_ROOM_5_RUNE:
+ return go_roomrunes[4];
+ case GO_ROOM_6_RUNE:
+ return go_roomrunes[5];
+ case GO_ROOM_7_RUNE:
+ return go_roomrunes[6];
}
return 0;
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
index 7a4ba5777d1..af0dfd38ae8 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
@@ -59,10 +59,10 @@ public:
void Reset()
{
- Cleave_Timer = 8000; // These times are probably wrong
- BlastWave_Timer = 12000;
- MortalStrike_Timer = 20000;
- KnockBack_Timer = 30000;
+ Cleave_Timer = 8000; // These times are probably wrong
+ BlastWave_Timer = 12000;
+ MortalStrike_Timer = 20000;
+ KnockBack_Timer = 30000;
}
void EnterCombat(Unit* /*who*/)
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
index 818dcace078..a3eb0cea5ad 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
@@ -245,7 +245,7 @@ public:
Unit* unit;
if ((*i) && (*i)->getSource())
{
- unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit)
{
//Cast affliction
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
index c4e0d6ea715..5d4cc442a49 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
@@ -92,15 +92,15 @@ public:
void Reset()
{
- ShadowFlame_Timer = 12000; // These times are probably wrong
- BellowingRoar_Timer = 30000;
- VeilOfShadow_Timer = 15000;
- Cleave_Timer = 7000;
- TailLash_Timer = 10000;
- ClassCall_Timer = 35000; // 35-40 seconds
+ ShadowFlame_Timer = 12000; // These times are probably wrong
+ BellowingRoar_Timer = 30000;
+ VeilOfShadow_Timer = 15000;
+ Cleave_Timer = 7000;
+ TailLash_Timer = 10000;
+ ClassCall_Timer = 35000; // 35-40 seconds
Phase3 = false;
- DespawnTimer = 5000;
+ DespawnTimer = 5000;
}
void KilledUnit(Unit* Victim)
@@ -111,7 +111,7 @@ public:
DoScriptText(SAY_SLAY, me, Victim);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
index a4fb4ad22a3..24fc74cc7cb 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_razorgore.cpp
@@ -75,7 +75,7 @@ public:
DoZoneInCombat();
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
index 4a72bd0ca38..eaa8c118f19 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
@@ -51,20 +51,20 @@ class boss_vaelastrasz : public CreatureScript
public:
boss_vaelastrasz() : CreatureScript("boss_vaelastrasz") { }
- void SendDefaultMenu(Player* player, Creature* creature, uint32 Action)
+ void SendDefaultMenu(Player* player, Creature* creature, uint32 action)
{
- if (Action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
+ if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
{
player->CLOSE_GOSSIP_MENU();
CAST_AI(boss_vaelastrasz::boss_vaelAI, creature->AI())->BeginSpeech(player);
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 Sender, uint32 Action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (Sender == GOSSIP_SENDER_MAIN)
- SendDefaultMenu(player, creature, Action);
+ if (sender == GOSSIP_SENDER_MAIN)
+ SendDefaultMenu(player, creature, action);
return true;
}
@@ -108,17 +108,17 @@ public:
void Reset()
{
- PlayerGUID = 0;
- SpeechTimer = 0;
- SpeechNum = 0;
- Cleave_Timer = 8000; //These times are probably wrong
- FlameBreath_Timer = 11000;
- BurningAdrenalineCaster_Timer = 15000;
- BurningAdrenalineTank_Timer = 45000;
- FireNova_Timer = 5000;
- TailSwipe_Timer = 20000;
- HasYelled = false;
- DoingSpeech = false;
+ PlayerGUID = 0;
+ SpeechTimer = 0;
+ SpeechNum = 0;
+ Cleave_Timer = 8000; // These times are probably wrong
+ FlameBreath_Timer = 11000;
+ BurningAdrenalineCaster_Timer = 15000;
+ BurningAdrenalineTank_Timer = 45000;
+ FireNova_Timer = 5000;
+ TailSwipe_Timer = 20000;
+ HasYelled = false;
+ DoingSpeech = false;
}
void BeginSpeech(Unit* target)
@@ -176,9 +176,9 @@ public:
break;
case 2:
me->setFaction(103);
- if (PlayerGUID && Unit::GetUnit((*me), PlayerGUID))
+ if (PlayerGUID && Unit::GetUnit(*me, PlayerGUID))
{
- AttackStart(Unit::GetUnit((*me), PlayerGUID));
+ AttackStart(Unit::GetUnit(*me, PlayerGUID));
DoCast(me, SPELL_ESSENCEOFTHERED);
}
SpeechTimer = 0;
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
index 2c7cd73c604..668b84d38dd 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
@@ -83,10 +83,10 @@ class boss_victor_nefarius : public CreatureScript
public:
boss_victor_nefarius() : CreatureScript("boss_victor_nefarius") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 Action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (Action)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -220,13 +220,13 @@ public:
void Reset()
{
- SpawnedAdds = 0;
- AddSpawnTimer = 10000;
- ShadowBoltTimer = 5000;
- FearTimer = 8000;
- ResetTimer = 900000; //On official it takes him 15 minutes(900 seconds) to reset. We are only doing 1 minute to make testing easier
- NefarianGUID = 0;
- NefCheckTime = 2000;
+ SpawnedAdds = 0;
+ AddSpawnTimer = 10000;
+ ShadowBoltTimer = 5000;
+ FearTimer = 8000;
+ ResetTimer = 900000; // On official it takes him 15 minutes(900 seconds) to reset. We are only doing 1 minute to make testing easier
+ NefarianGUID = 0;
+ NefCheckTime = 2000;
me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
me->setFaction(35);
diff --git a/src/server/scripts/EasternKingdoms/CMakeLists.txt b/src/server/scripts/EasternKingdoms/CMakeLists.txt
index 5af9dd2f23e..5dc3b52dec1 100644
--- a/src/server/scripts/EasternKingdoms/CMakeLists.txt
+++ b/src/server/scripts/EasternKingdoms/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
@@ -84,7 +84,6 @@ set(scripts_STAT_SRCS
EasternKingdoms/MoltenCore/instance_molten_core.cpp
EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
EasternKingdoms/MoltenCore/boss_magmadar.cpp
- EasternKingdoms/MoltenCore/molten_core.cpp
EasternKingdoms/MoltenCore/boss_shazzrah.cpp
EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
EasternKingdoms/Stratholme/boss_nerubenkan.cpp
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
index 9830563ac87..4885d8620b0 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
@@ -127,7 +127,7 @@ public:
DoCastAOE(SPELL_SMITE_STOMP, false);
SetCombatMovement(false);
if (instance)
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_SMITE_CHEST)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_SMITE_CHEST)))
{
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MovePoint(1, go->GetPositionX() - 3.0f, go->GetPositionY(), go->GetPositionZ());
@@ -158,7 +158,6 @@ public:
me->GetMotionMaster()->MoveChase(me->getVictim(), me->m_CombatDistance);
uiPhase = 0;
break;
-
}
} else uiTimer -= uiDiff;
}
@@ -174,9 +173,7 @@ public:
uiTimer = 1500;
uiPhase = 1;
}
-
};
-
};
void AddSC_boss_mr_smite()
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
index fffd8d41264..6c6b0647c5f 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
@@ -45,17 +45,16 @@ public:
player->GetSession()->SendNotification("Instance script not initialized");
return true;
}
- if (instance->GetData(EVENT_STATE)!= CANNON_NOT_USED)
+
+ if (instance->GetData(EVENT_STATE) != CANNON_NOT_USED)
return false;
+
if (targets.GetGOTarget() && targets.GetGOTarget()->GetEntry() == GO_DEFIAS_CANNON)
- {
instance->SetData(EVENT_STATE, CANNON_GUNPOWDER_USED);
- }
player->DestroyItemCount(item->GetEntry(), 1, true);
return true;
}
-
};
void AddSC_deadmines()
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h
index 55726fb2a8e..419af40ee36 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h
+++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h
@@ -47,4 +47,3 @@ enum GameObjects
GO_MR_SMITE_CHEST = 144111
};
#endif
-
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
index 1b037be8afa..46e84481fee 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
@@ -156,7 +156,7 @@ class instance_deadmines : public InstanceMapScript
void MoveCreatureInside(Creature* creature)
{
- creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ creature->SetWalk(false);
creature->GetMotionMaster()->MovePoint(0, -102.7f, -655.9f, creature->GetPositionZ());
}
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
index cd5566007ee..b5a7984d945 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
@@ -95,10 +95,10 @@ public:
return new npc_blastmaster_emi_shortfuseAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
if (npc_escortAI* pEscortAI = CAST_AI(npc_blastmaster_emi_shortfuse::npc_blastmaster_emi_shortfuseAI, creature->AI()))
pEscortAI->Start(true, false, player->GetGUID());
@@ -189,11 +189,11 @@ public:
if (bBool)
{
if (instance)
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
instance->HandleGameObject(0, false, go);
}else
if (instance)
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
instance->HandleGameObject(0, false, go);
}
@@ -204,10 +204,10 @@ public:
if (bBool)
{
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
me->SetFacingToObject(go);
}else
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
me->SetFacingToObject(go);
}
@@ -216,10 +216,10 @@ public:
if (!instance)
return;
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
instance->HandleGameObject(0, false, go);
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
instance->HandleGameObject(0, false, go);
if (!GoSummonList.empty())
@@ -266,14 +266,14 @@ public:
}
}
- void WaypointReached(uint32 uiPoint)
+ void WaypointReached(uint32 waypointId)
{
//just in case
if (GetPlayerForEscort())
if (me->getFaction() != GetPlayerForEscort()->getFaction())
me->setFaction(GetPlayerForEscort()->getFaction());
- switch (uiPoint)
+ switch (waypointId)
{
case 3:
SetEscortPaused(true);
@@ -445,7 +445,7 @@ public:
DoScriptText(SAY_BLASTMASTER_5, me);
Summon(1);
if (instance)
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT)))
instance->HandleGameObject(0, true, go);
NextStep(3000, true);
break;
@@ -491,7 +491,7 @@ public:
DoScriptText(SAY_BLASTMASTER_23, me);
SetInFace(false);
if (instance)
- if (GameObject* go = GameObject::GetGameObject((*me), instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT)))
instance->HandleGameObject(0, true, go);
NextStep(2000, true);
break;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
index b1fa4d54eb6..96bda019f6a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
@@ -55,7 +55,7 @@ public:
struct boss_curatorAI : public ScriptedAI
{
- boss_curatorAI(Creature* c) : ScriptedAI(c) {}
+ boss_curatorAI(Creature* creature) : ScriptedAI(creature) {}
uint32 AddTimer;
uint32 HatefulBoltTimer;
@@ -80,7 +80,7 @@ public:
DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
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 66de84abbc2..e19efc7c4e5 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
@@ -51,7 +51,7 @@ public:
struct boss_maiden_of_virtueAI : public ScriptedAI
{
- boss_maiden_of_virtueAI(Creature* c) : ScriptedAI(c) {}
+ boss_maiden_of_virtueAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Repentance_Timer;
uint32 Holyfire_Timer;
@@ -78,7 +78,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index 65b758b55e7..2bba875ad1f 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -58,7 +58,7 @@ public:
struct boss_attumenAI : public ScriptedAI
{
- boss_attumenAI(Creature* c) : ScriptedAI(c)
+ boss_attumenAI(Creature* creature) : ScriptedAI(creature)
{
Phase = 1;
@@ -89,7 +89,7 @@ public:
DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
if (Unit* pMidnight = Unit::GetUnit(*me, Midnight))
@@ -119,7 +119,7 @@ public:
struct boss_midnightAI : public ScriptedAI
{
- boss_midnightAI(Creature* c) : ScriptedAI(c) {}
+ boss_midnightAI(Creature* creature) : ScriptedAI(creature) {}
uint64 Attumen;
uint8 Phase;
@@ -185,7 +185,7 @@ public:
pAttumen->GetMotionMaster()->MoveChase(pAttumen->getVictim());
pAttumen->SetTarget(pAttumen->getVictim()->GetGUID());
}
- pAttumen->SetFloatValue(OBJECT_FIELD_SCALE_X, 1);
+ pAttumen->SetObjectScale(1);
}
} else Mount_Timer -= diff;
}
@@ -203,16 +203,16 @@ public:
pAttumen->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
float angle = me->GetAngle(pAttumen);
float distance = me->GetDistance2d(pAttumen);
- float newX = me->GetPositionX() + cos(angle)*(distance/2) ;
- float newY = me->GetPositionY() + sin(angle)*(distance/2) ;
+ float newX = me->GetPositionX() + cos(angle)*(distance/2);
+ float newY = me->GetPositionY() + sin(angle)*(distance/2);
float newZ = 50;
//me->Relocate(newX, newY, newZ, angle);
//me->SendMonsterMove(newX, newY, newZ, 0, true, 1000);
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MovePoint(0, newX, newY, newZ);
distance += 10;
- newX = me->GetPositionX() + cos(angle)*(distance/2) ;
- newY = me->GetPositionY() + sin(angle)*(distance/2) ;
+ newX = me->GetPositionX() + cos(angle)*(distance/2);
+ newY = me->GetPositionY() + sin(angle)*(distance/2);
pAttumen->GetMotionMaster()->Clear();
pAttumen->GetMotionMaster()->MovePoint(0, newX, newY, newZ);
//pAttumen->Relocate(newX, newY, newZ, -angle);
@@ -244,8 +244,8 @@ void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff)
Midnight = 0;
me->SetVisible(false);
me->Kill(me);
- }
- } else ResetTimer -= diff;
+ } else ResetTimer -= diff;
+ }
//Return since we have no target
if (!UpdateVictim())
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
index 484515be0f8..f69cecdb4c3 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
@@ -72,13 +72,12 @@ public:
struct boss_moroesAI : public ScriptedAI
{
- boss_moroesAI(Creature* c) : ScriptedAI(c)
+ boss_moroesAI(Creature* creature) : ScriptedAI(creature)
{
for (uint8 i = 0; i < 4; ++i)
- {
AddId[i] = 0;
- }
- instance = c->GetInstanceScript();
+
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -136,7 +135,7 @@ public:
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2, SAY_KILL_3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -202,7 +201,7 @@ public:
void DeSpawnAdds()
{
- for (uint8 i = 0; i < 4 ; ++i)
+ for (uint8 i = 0; i < 4; ++i)
{
Creature* Temp = NULL;
if (AddGUID[i])
@@ -322,12 +321,12 @@ struct boss_moroes_guestAI : public ScriptedAI
uint64 GuestGUID[4];
- boss_moroes_guestAI(Creature* c) : ScriptedAI(c)
+ boss_moroes_guestAI(Creature* creature) : ScriptedAI(creature)
{
for (uint8 i = 0; i < 4; ++i)
GuestGUID[i] = 0;
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
void Reset()
@@ -359,7 +358,7 @@ struct boss_moroes_guestAI : public ScriptedAI
uint64 TempGUID = GuestGUID[rand()%4];
if (TempGUID)
{
- Unit* unit = Unit::GetUnit((*me), TempGUID);
+ Unit* unit = Unit::GetUnit(*me, TempGUID);
if (unit && unit->isAlive())
return unit;
}
@@ -417,7 +416,7 @@ public:
struct boss_baroness_dorothea_millstipeAI : public boss_moroes_guestAI
{
//Shadow Priest
- boss_baroness_dorothea_millstipeAI(Creature* c) : boss_moroes_guestAI(c) {}
+ boss_baroness_dorothea_millstipeAI(Creature* creature) : boss_moroes_guestAI(creature) {}
uint32 ManaBurn_Timer;
uint32 MindFlay_Timer;
@@ -481,7 +480,7 @@ public:
struct boss_baron_rafe_dreugerAI : public boss_moroes_guestAI
{
//Retr Pally
- boss_baron_rafe_dreugerAI(Creature* c) : boss_moroes_guestAI(c){}
+ boss_baron_rafe_dreugerAI(Creature* creature) : boss_moroes_guestAI(creature){}
uint32 HammerOfJustice_Timer;
uint32 SealOfCommand_Timer;
@@ -539,7 +538,7 @@ public:
struct boss_lady_catriona_von_indiAI : public boss_moroes_guestAI
{
//Holy Priest
- boss_lady_catriona_von_indiAI(Creature* c) : boss_moroes_guestAI(c) {}
+ boss_lady_catriona_von_indiAI(Creature* creature) : boss_moroes_guestAI(creature) {}
uint32 DispelMagic_Timer;
uint32 GreaterHeal_Timer;
@@ -610,7 +609,7 @@ public:
struct boss_lady_keira_berrybuckAI : public boss_moroes_guestAI
{
//Holy Pally
- boss_lady_keira_berrybuckAI(Creature* c) : boss_moroes_guestAI(c) {}
+ boss_lady_keira_berrybuckAI(Creature* creature) : boss_moroes_guestAI(creature) {}
uint32 Cleanse_Timer;
uint32 GreaterBless_Timer;
@@ -685,7 +684,7 @@ public:
struct boss_lord_robin_darisAI : public boss_moroes_guestAI
{
//Arms Warr
- boss_lord_robin_darisAI(Creature* c) : boss_moroes_guestAI(c) {}
+ boss_lord_robin_darisAI(Creature* creature) : boss_moroes_guestAI(creature) {}
uint32 Hamstring_Timer;
uint32 MortalStrike_Timer;
@@ -742,7 +741,7 @@ public:
struct boss_lord_crispin_ferenceAI : public boss_moroes_guestAI
{
//Arms Warr
- boss_lord_crispin_ferenceAI(Creature* c) : boss_moroes_guestAI(c) {}
+ boss_lord_crispin_ferenceAI(Creature* creature) : boss_moroes_guestAI(creature) {}
uint32 Disarm_Timer;
uint32 HeroicStrike_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index c1fe9c9c56c..f89abca76cf 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -70,9 +70,9 @@ public:
struct boss_netherspiteAI : public ScriptedAI
{
- boss_netherspiteAI(Creature* c) : ScriptedAI(c)
+ boss_netherspiteAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
for (int i=0; i<3; ++i)
{
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index 728446aa833..ded5e6903a5 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -70,9 +70,9 @@ public:
struct boss_nightbaneAI : public ScriptedAI
{
- boss_nightbaneAI(Creature* c) : ScriptedAI(c)
+ boss_nightbaneAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Intro = true;
}
@@ -121,8 +121,8 @@ public:
MovePhase = 0;
me->SetSpeed(MOVE_RUN, 2.0f);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetDisableGravity(true);
+ me->SetWalk(false);
me->setActive(true);
if (instance)
@@ -240,7 +240,7 @@ public:
me->InterruptSpell(CURRENT_GENERIC_SPELL);
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
(*me).GetMotionMaster()->Clear(false);
(*me).GetMotionMaster()->MovePoint(0, IntroWay[2][0], IntroWay[2][1], IntroWay[2][2]);
@@ -263,7 +263,7 @@ public:
{
if (MovePhase >= 7)
{
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetLevitate(false);
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
me->GetMotionMaster()->MovePoint(8, IntroWay[7][0], IntroWay[7][1], IntroWay[7][2]);
}
@@ -277,7 +277,7 @@ public:
{
if (MovePhase >= 7)
{
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetLevitate(false);
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
me->GetMotionMaster()->MovePoint(8, IntroWay[7][0], IntroWay[7][1], IntroWay[7][2]);
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index 14add92fd16..4700ad71fab 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -108,7 +108,7 @@ public:
struct netherspite_infernalAI : public ScriptedAI
{
- netherspite_infernalAI(Creature* c) : ScriptedAI(c),
+ netherspite_infernalAI(Creature* creature) : ScriptedAI(creature),
HellfireTimer(0), CleanupTimer(0), malchezaar(0), point(NULL) {}
uint32 HellfireTimer;
@@ -183,9 +183,9 @@ public:
struct boss_malchezaarAI : public ScriptedAI
{
- boss_malchezaarAI(Creature* c) : ScriptedAI(c)
+ boss_malchezaarAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -243,7 +243,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -297,7 +297,7 @@ public:
SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
//damage
- const CreatureTemplate* cinfo = me->GetCreatureInfo();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, cinfo->mindmg);
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, cinfo->maxdmg);
me->UpdateDamagePhysical(BASE_ATTACK);
@@ -420,7 +420,7 @@ public:
SetEquipmentSlots(false, EQUIP_ID_AXE, EQUIP_ID_AXE, EQUIP_NO_CHANGE);
//damage
- const CreatureTemplate* cinfo = me->GetCreatureInfo();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, 2*cinfo->mindmg);
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, 2*cinfo->maxdmg);
me->UpdateDamagePhysical(BASE_ATTACK);
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 119cb7d9de6..d95b4aa3ae1 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -24,7 +24,6 @@ SDCategory: Karazhan
EndScriptData */
#include "ScriptPCH.h"
-#include "ScriptedSimpleAI.h"
#include "karazhan.h"
#include "GameObject.h"
@@ -93,9 +92,9 @@ public:
struct boss_aranAI : public ScriptedAI
{
- boss_aranAI(Creature* c) : ScriptedAI(c)
+ boss_aranAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -162,7 +161,7 @@ public:
DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -523,7 +522,7 @@ public:
struct water_elementalAI : public ScriptedAI
{
- water_elementalAI(Creature* c) : ScriptedAI(c) {}
+ water_elementalAI(Creature* creature) : ScriptedAI(creature) {}
uint32 CastTimer;
@@ -549,33 +548,8 @@ public:
};
-// CONVERT TO ACID
-class mob_shadow_of_aran : public CreatureScript
-{
-public:
- mob_shadow_of_aran() : CreatureScript("mob_shadow_of_aran") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- sLog->outString("TSCR: Convert simpleAI script for Creature Entry %u to ACID", creature->GetEntry());
- SimpleAI* ai = new SimpleAI (creature);
-
- ai->Spell[0].Enabled = true;
- ai->Spell[0].Spell_Id = SPELL_SHADOW_PYRO;
- ai->Spell[0].Cooldown = 5000;
- ai->Spell[0].First_Cast = 1000;
- ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- ai->EnterEvadeMode();
-
- return ai;
- }
-
-};
-
void AddSC_boss_shade_of_aran()
{
new boss_shade_of_aran();
- new mob_shadow_of_aran();
new mob_aran_elemental();
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index 15750c5b9c5..2f19d2c7fc1 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -68,9 +68,9 @@ public:
struct mob_kilrekAI : public ScriptedAI
{
- mob_kilrekAI(Creature* c) : ScriptedAI(c)
+ mob_kilrekAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -94,14 +94,14 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
uint64 TerestianGUID = instance->GetData64(DATA_TERESTIAN);
if (TerestianGUID)
{
- Unit* Terestian = Unit::GetUnit((*me), TerestianGUID);
+ Unit* Terestian = Unit::GetUnit(*me, TerestianGUID);
if (Terestian && Terestian->isAlive())
DoCast(Terestian, SPELL_BROKEN_PACT, true);
}
@@ -140,7 +140,7 @@ public:
struct mob_demon_chainAI : public ScriptedAI
{
- mob_demon_chainAI(Creature* c) : ScriptedAI(c) {}
+ mob_demon_chainAI(Creature* creature) : ScriptedAI(creature) {}
uint64 SacrificeGUID;
@@ -157,7 +157,7 @@ public:
{
if (SacrificeGUID)
{
- Unit* Sacrifice = Unit::GetUnit((*me), SacrificeGUID);
+ Unit* Sacrifice = Unit::GetUnit(*me, SacrificeGUID);
if (Sacrifice)
Sacrifice->RemoveAurasDueToSpell(SPELL_SACRIFICE);
}
@@ -178,7 +178,7 @@ public:
struct mob_fiendish_portalAI : public PassiveAI
{
- mob_fiendish_portalAI(Creature* c) : PassiveAI(c), summons(me){}
+ mob_fiendish_portalAI(Creature* creature) : PassiveAI(creature), summons(me){}
SummonList summons;
@@ -215,7 +215,7 @@ public:
struct mob_fiendish_impAI : public ScriptedAI
{
- mob_fiendish_impAI(Creature* c) : ScriptedAI(c) {}
+ mob_fiendish_impAI(Creature* creature) : ScriptedAI(creature) {}
uint32 FireboltTimer;
@@ -258,11 +258,11 @@ public:
struct boss_terestianAI : public ScriptedAI
{
- boss_terestianAI(Creature* c) : ScriptedAI(c)
+ boss_terestianAI(Creature* creature) : ScriptedAI(creature)
{
for (uint8 i = 0; i < 2; ++i)
PortalGUID[i] = 0;
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index b15cb7d3da1..6f8121ef5b6 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -114,9 +114,9 @@ public:
struct boss_dorotheeAI : public ScriptedAI
{
- boss_dorotheeAI(Creature* c) : ScriptedAI(c)
+ boss_dorotheeAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -229,7 +229,7 @@ public:
struct mob_titoAI : public ScriptedAI
{
- mob_titoAI(Creature* c) : ScriptedAI(c) {}
+ mob_titoAI(Creature* creature) : ScriptedAI(creature) {}
uint64 DorotheeGUID;
uint32 YipTimer;
@@ -296,9 +296,9 @@ public:
struct boss_strawmanAI : public ScriptedAI
{
- boss_strawmanAI(Creature* c) : ScriptedAI(c)
+ boss_strawmanAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -411,9 +411,9 @@ public:
struct boss_tinheadAI : public ScriptedAI
{
- boss_tinheadAI(Creature* c) : ScriptedAI(c)
+ boss_tinheadAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -521,9 +521,9 @@ public:
struct boss_roarAI : public ScriptedAI
{
- boss_roarAI(Creature* c) : ScriptedAI(c)
+ boss_roarAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -630,9 +630,9 @@ public:
struct boss_croneAI : public ScriptedAI
{
- boss_croneAI(Creature* c) : ScriptedAI(c)
+ boss_croneAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -712,7 +712,7 @@ public:
struct mob_cycloneAI : public ScriptedAI
{
- mob_cycloneAI(Creature* c) : ScriptedAI(c) {}
+ mob_cycloneAI(Creature* creature) : ScriptedAI(creature) {}
uint32 MoveTimer;
@@ -769,10 +769,10 @@ class npc_grandmother : public CreatureScript
public:
npc_grandmother() : CreatureScript("npc_grandmother") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
if (Creature* pBigBadWolf = creature->SummonCreature(CREATURE_BIG_BAD_WOLF, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
pBigBadWolf->AI()->AttackStart(player);
@@ -805,9 +805,9 @@ public:
struct boss_bigbadwolfAI : public ScriptedAI
{
- boss_bigbadwolfAI(Creature* c) : ScriptedAI(c)
+ boss_bigbadwolfAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -886,7 +886,7 @@ public:
{
IsChasing = false;
- if (Unit* target = Unit::GetUnit((*me), HoodGUID))
+ if (Unit* target = Unit::GetUnit(*me, HoodGUID))
{
HoodGUID = 0;
if (DoGetThreat(target))
@@ -1004,9 +1004,9 @@ public:
struct boss_julianneAI : public ScriptedAI
{
- boss_julianneAI(Creature* c) : ScriptedAI(c)
+ boss_julianneAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
EntryYellTimer = 1000;
AggroYellTimer = 10000;
IsFakingDeath = false;
@@ -1127,9 +1127,9 @@ public:
struct boss_romuloAI : public ScriptedAI
{
- boss_romuloAI(Creature* c) : ScriptedAI(c)
+ boss_romuloAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
EntryYellTimer = 8000;
AggroYellTimer = 15000;
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index 056a2e95448..b37f6913b8d 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -109,11 +109,11 @@ public:
struct npc_barnesAI : public npc_escortAI
{
- npc_barnesAI(Creature* c) : npc_escortAI(c)
+ npc_barnesAI(Creature* creature) : npc_escortAI(creature)
{
RaidWiped = false;
m_uiEventId = 0;
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -158,12 +158,12 @@ public:
void EnterCombat(Unit* /*who*/) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
if (!instance)
return;
- switch (i)
+ switch (waypointId)
{
case 0:
DoCast(me, SPELL_TUXEDO, false);
@@ -324,12 +324,12 @@ public:
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
npc_barnesAI* pBarnesAI = CAST_AI(npc_barnes::npc_barnesAI, creature->AI());
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -414,10 +414,10 @@ class npc_berthold : public CreatureScript
public:
npc_berthold() : CreatureScript("npc_berthold") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
player->CastSpell(player, SPELL_TELEPORT, true);
player->CLOSE_GOSSIP_MENU();
@@ -474,9 +474,9 @@ public:
struct npc_image_of_medivhAI : public ScriptedAI
{
- npc_image_of_medivhAI(Creature* c) : ScriptedAI(c)
+ npc_image_of_medivhAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -527,7 +527,7 @@ public:
if (!Arcanagos)
return;
ArcanagosGUID = Arcanagos->GetGUID();
- Arcanagos->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ Arcanagos->SetDisableGravity(true);
(*Arcanagos).GetMotionMaster()->MovePoint(0, ArcanagosPos[0], ArcanagosPos[1], ArcanagosPos[2]);
Arcanagos->SetOrientation(ArcanagosPos[3]);
me->SetOrientation(MedivPos[3]);
@@ -536,7 +536,7 @@ public:
uint32 NextStep(uint32 Step)
{
- Unit* arca = Unit::GetUnit((*me), ArcanagosGUID);
+ Unit* arca = Unit::GetUnit(*me, ArcanagosGUID);
Map* map = me->GetMap();
switch (Step)
{
@@ -625,7 +625,7 @@ public:
if (Step >= 7 && Step <= 12)
{
- Unit* arca = Unit::GetUnit((*me), ArcanagosGUID);
+ Unit* arca = Unit::GetUnit(*me, ArcanagosGUID);
if (FireArcanagosTimer <= diff)
{
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index dd37f659eec..c53793b6e30 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -89,9 +89,9 @@ public:
struct boss_felblood_kaelthasAI : public ScriptedAI
{
- boss_felblood_kaelthasAI(Creature* c) : ScriptedAI(c)
+ boss_felblood_kaelthasAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -154,14 +154,18 @@ public:
if (!instance)
return;
- instance->HandleGameObject(instance->GetData64(DATA_KAEL_DOOR), true);
// Open the encounter door
+ instance->HandleGameObject(instance->GetData64(DATA_KAEL_DOOR), true);
+
+ // Enable the Translocation Orb Exit
+ if (GameObject* escapeOrb = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ESCAPE_ORB)))
+ escapeOrb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
void DamageTaken(Unit* /*done_by*/, uint32 &damage)
{
if (damage > me->GetHealth())
- RemoveGravityLapse(); // Remove Gravity Lapse so that players fall to ground if they kill him when in air.
+ RemoveGravityLapse(); // Remove Gravity Lapse so that players fall to ground if they kill him when in air.
}
void EnterCombat(Unit* /*who*/)
@@ -169,8 +173,8 @@ public:
if (!instance)
return;
+ //Close the encounter door, open it in JustDied/Reset
instance->HandleGameObject(instance->GetData64(DATA_KAEL_DOOR), false);
- //Close the encounter door, open it in JustDied/Reset
}
void MoveInLineOfSight(Unit* who)
@@ -193,7 +197,7 @@ public:
std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && unit->isAlive())
{
float threat = me->getThreatManager().getThreat(unit);
@@ -211,7 +215,7 @@ public:
std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
unit->CastSpell(unit, SPELL_TELEPORT_CENTER, true);
}
@@ -223,7 +227,7 @@ public:
std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
// Knockback into the air
unit->CastSpell(unit, SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, me->GetGUID());
@@ -235,7 +239,7 @@ public:
std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
{
// Also needs an exception in spell system.
@@ -254,7 +258,7 @@ public:
std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
{
unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY);
@@ -439,7 +443,7 @@ public:
struct mob_felkael_flamestrikeAI : public ScriptedAI
{
- mob_felkael_flamestrikeAI(Creature* c) : ScriptedAI(c)
+ mob_felkael_flamestrikeAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -481,9 +485,9 @@ public:
struct mob_felkael_phoenixAI : public ScriptedAI
{
- mob_felkael_phoenixAI(Creature* c) : ScriptedAI(c)
+ mob_felkael_phoenixAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -495,7 +499,7 @@ public:
void Reset()
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
DoCast(me, SPELL_PHOENIX_BURN, true);
BurnTimer = 2000;
Death_Timer = 3000;
@@ -542,7 +546,7 @@ public:
}
- void JustDied(Unit* /*slayer*/)
+ void JustDied(Unit* /*killer*/)
{
me->SummonCreature(CREATURE_PHOENIX_EGG, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);
}
@@ -601,7 +605,7 @@ public:
struct mob_felkael_phoenix_eggAI : public ScriptedAI
{
- mob_felkael_phoenix_eggAI(Creature* c) : ScriptedAI(c) {}
+ mob_felkael_phoenix_eggAI(Creature* creature) : ScriptedAI(creature) {}
uint32 HatchTimer;
@@ -638,7 +642,7 @@ public:
struct mob_arcane_sphereAI : public ScriptedAI
{
- mob_arcane_sphereAI(Creature* c) : ScriptedAI(c) { Reset(); }
+ mob_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
uint32 DespawnTimer;
uint32 ChangeTargetTimer;
@@ -649,7 +653,7 @@ public:
ChangeTargetTimer = urand(6000, 12000);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->setFaction(14);
DoCast(me, SPELL_ARCANE_SPHERE_PASSIVE, true);
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
index b9d4f600329..883932fdb9b 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
@@ -99,9 +99,9 @@ public:
struct boss_priestess_delrissaAI : public ScriptedAI
{
- boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c)
+ boss_priestess_delrissaAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
memset(&m_auiLackeyGUID, 0, sizeof(m_auiLackeyGUID));
LackeyEntryList.clear();
}
@@ -341,9 +341,9 @@ enum eHealingPotion
//all 8 possible lackey use this common
struct boss_priestess_lackey_commonAI : public ScriptedAI
{
- boss_priestess_lackey_commonAI(Creature* c) : ScriptedAI(c)
+ boss_priestess_lackey_commonAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
memset(&m_auiLackeyGUIDs, 0, sizeof(m_auiLackeyGUIDs));
AcquireGUIDs();
}
@@ -495,7 +495,7 @@ public:
struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI
{
//Rogue
- boss_kagani_nightstrikeAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_kagani_nightstrikeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
uint32 Gouge_Timer;
uint32 Kick_Timer;
@@ -600,7 +600,7 @@ public:
struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI
{
//Warlock
- boss_ellris_duskhallowAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_ellris_duskhallowAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
uint32 Immolate_Timer;
uint32 Shadow_Bolt_Timer;
@@ -692,7 +692,7 @@ public:
struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI
{
//Monk
- boss_eramas_brightblazeAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_eramas_brightblazeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
uint32 Knockdown_Timer;
uint32 Snap_Kick_Timer;
@@ -754,7 +754,7 @@ public:
struct boss_yazzaiAI : public boss_priestess_lackey_commonAI
{
//Mage
- boss_yazzaiAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_yazzaiAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
bool HasIceBlocked;
@@ -885,7 +885,7 @@ public:
struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI
{
//Warrior
- boss_warlord_salarisAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_warlord_salarisAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
uint32 Intercept_Stun_Timer;
uint32 Disarm_Timer;
@@ -1006,7 +1006,10 @@ public:
struct boss_garaxxasAI : public boss_priestess_lackey_commonAI
{
//Hunter
- boss_garaxxasAI(Creature* c) : boss_priestess_lackey_commonAI(c) { m_uiPetGUID = 0; }
+ boss_garaxxasAI(Creature* creature) : boss_priestess_lackey_commonAI(creature)
+ {
+ m_uiPetGUID = 0;
+ }
uint64 m_uiPetGUID;
@@ -1126,7 +1129,7 @@ public:
struct boss_apokoAI : public boss_priestess_lackey_commonAI
{
//Shaman
- boss_apokoAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_apokoAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
uint32 Totem_Timer;
uint8 Totem_Amount;
@@ -1225,7 +1228,7 @@ public:
struct boss_zelfanAI : public boss_priestess_lackey_commonAI
{
//Engineer
- boss_zelfanAI(Creature* c) : boss_priestess_lackey_commonAI(c) {}
+ boss_zelfanAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) {}
uint32 Goblin_Dragon_Gun_Timer;
uint32 Rocket_Launch_Timer;
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
index fa97e4eefc0..af7deda4545 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
@@ -63,9 +63,9 @@ public:
struct boss_selin_fireheartAI : public ScriptedAI
{
- boss_selin_fireheartAI(Creature* c) : ScriptedAI(c)
+ boss_selin_fireheartAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Crystals.clear();
//GUIDs per instance is static, so we only need to load them once.
@@ -171,7 +171,7 @@ public:
float x, y, z; // coords that we move to, close to the crystal.
CrystalChosen->GetClosePoint(x, y, z, me->GetObjectSize(), CONTACT_DISTANCE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->GetMotionMaster()->MovePoint(1, x, y, z);
DrainingCrystal = true;
}
@@ -333,7 +333,7 @@ public:
struct mob_fel_crystalAI : public ScriptedAI
{
- mob_fel_crystalAI(Creature* c) : ScriptedAI(c) {}
+ mob_fel_crystalAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
index 5f3716d9dea..327c611b2d6 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
@@ -71,9 +71,9 @@ public:
struct boss_vexallusAI : public ScriptedAI
{
- boss_vexallusAI(Creature* c) : ScriptedAI(c)
+ boss_vexallusAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -101,7 +101,7 @@ public:
DoScriptText(SAY_KILL, me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_VEXALLUS_EVENT, DONE);
@@ -206,7 +206,7 @@ public:
struct mob_pure_energyAI : public ScriptedAI
{
- mob_pure_energyAI(Creature* c) : ScriptedAI(c) {}
+ mob_pure_energyAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
index 642f7955b2e..aa43cb3702f 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
@@ -35,6 +35,25 @@ EndScriptData */
3 - Kael'thas Sunstrider
*/
+enum Creatures
+{
+ NPC_SELIN = 24723,
+ NPC_DELRISSA = 24560,
+ NPC_FELCRYSTALS = 24722
+};
+
+enum GameObjects
+{
+ GO_VEXALLUS_DOOR = 187896,
+ GO_SELIN_DOOR = 187979,
+ GO_SELIN_ENCOUNTER_DOOR = 188065,
+ GO_DELRISSA_DOOR = 187770,
+ GO_KAEL_DOOR = 188064,
+ GO_KAEL_STATUE_1 = 188165,
+ GO_KAEL_STATUE_2 = 188166,
+ GO_ESCAPE_ORB = 188173
+};
+
class instance_magisters_terrace : public InstanceMapScript
{
public:
@@ -49,7 +68,7 @@ public:
{
instance_magisters_terrace_InstanceMapScript(Map* map) : InstanceScript(map) {}
- uint32 m_auiEncounter[MAX_ENCOUNTER];
+ uint32 Encounter[MAX_ENCOUNTER];
uint32 DelrissaDeathCount;
std::list<uint64> FelCrystals;
@@ -63,12 +82,13 @@ public:
uint64 DelrissaDoorGUID;
uint64 KaelDoorGUID;
uint64 KaelStatue[2];
+ uint64 EscapeOrbGUID;
bool InitializedItr;
void Initialize()
{
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
+ memset(&Encounter, 0, sizeof(Encounter));
FelCrystals.clear();
@@ -83,6 +103,7 @@ public:
KaelDoorGUID = 0;
KaelStatue[0] = 0;
KaelStatue[1] = 0;
+ EscapeOrbGUID = 0;
InitializedItr = false;
}
@@ -90,7 +111,7 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS)
+ if (Encounter[i] == IN_PROGRESS)
return true;
return false;
}
@@ -99,12 +120,18 @@ public:
{
switch (identifier)
{
- case DATA_SELIN_EVENT: return m_auiEncounter[0];
- case DATA_VEXALLUS_EVENT: return m_auiEncounter[1];
- case DATA_DELRISSA_EVENT: return m_auiEncounter[2];
- case DATA_KAELTHAS_EVENT: return m_auiEncounter[3];
- case DATA_DELRISSA_DEATH_COUNT: return DelrissaDeathCount;
- case DATA_FEL_CRYSTAL_SIZE: return FelCrystals.size();
+ case DATA_SELIN_EVENT:
+ return Encounter[0];
+ case DATA_VEXALLUS_EVENT:
+ return Encounter[1];
+ case DATA_DELRISSA_EVENT:
+ return Encounter[2];
+ case DATA_KAELTHAS_EVENT:
+ return Encounter[3];
+ case DATA_DELRISSA_DEATH_COUNT:
+ return DelrissaDeathCount;
+ case DATA_FEL_CRYSTAL_SIZE:
+ return FelCrystals.size();
}
return 0;
}
@@ -113,21 +140,24 @@ public:
{
switch (identifier)
{
- case DATA_SELIN_EVENT: m_auiEncounter[0] = data; break;
+ case DATA_SELIN_EVENT:
+ Encounter[0] = data;
+ break;
case DATA_VEXALLUS_EVENT:
if (data == DONE)
DoUseDoorOrButton(VexallusDoorGUID);
- m_auiEncounter[1] = data;
+ Encounter[1] = data;
break;
case DATA_DELRISSA_EVENT:
if (data == DONE)
DoUseDoorOrButton(DelrissaDoorGUID);
if (data == IN_PROGRESS)
DelrissaDeathCount = 0;
- m_auiEncounter[2] = data;
+ Encounter[2] = data;
+ break;
+ case DATA_KAELTHAS_EVENT:
+ Encounter[3] = data;
break;
- case DATA_KAELTHAS_EVENT: m_auiEncounter[3] = data; break;
-
case DATA_DELRISSA_DEATH_COUNT:
if (data == SPECIAL)
++DelrissaDeathCount;
@@ -141,9 +171,15 @@ public:
{
switch (creature->GetEntry())
{
- case 24723: SelinGUID = creature->GetGUID(); break;
- case 24560: DelrissaGUID = creature->GetGUID(); break;
- case 24722: FelCrystals.push_back(creature->GetGUID()); break;
+ case NPC_SELIN:
+ SelinGUID = creature->GetGUID();
+ break;
+ case NPC_DELRISSA:
+ DelrissaGUID = creature->GetGUID();
+ break;
+ case NPC_FELCRYSTALS:
+ FelCrystals.push_back(creature->GetGUID());
+ break;
}
}
@@ -151,15 +187,30 @@ public:
{
switch (go->GetEntry())
{
- case 187896: VexallusDoorGUID = go->GetGUID(); break;
- //SunwellRaid Gate 02
- case 187979: SelinDoorGUID = go->GetGUID(); break;
- //Assembly Chamber Door
- case 188065: SelinEncounterDoorGUID = go->GetGUID(); break;
- case 187770: DelrissaDoorGUID = go->GetGUID(); break;
- case 188064: KaelDoorGUID = go->GetGUID(); break;
- case 188165: KaelStatue[0] = go->GetGUID(); break;
- case 188166: KaelStatue[1] = go->GetGUID(); break;
+ case GO_VEXALLUS_DOOR:
+ VexallusDoorGUID = go->GetGUID();
+ break;
+ case GO_SELIN_DOOR:
+ SelinDoorGUID = go->GetGUID();
+ break;
+ case GO_SELIN_ENCOUNTER_DOOR:
+ SelinEncounterDoorGUID = go->GetGUID();
+ break;
+ case GO_DELRISSA_DOOR:
+ DelrissaDoorGUID = go->GetGUID();
+ break;
+ case GO_KAEL_DOOR:
+ KaelDoorGUID = go->GetGUID();
+ break;
+ case GO_KAEL_STATUE_1:
+ KaelStatue[0] = go->GetGUID();
+ break;
+ case GO_KAEL_STATUE_2:
+ KaelStatue[1] = go->GetGUID();
+ break;
+ case GO_ESCAPE_ORB:
+ EscapeOrbGUID = go->GetGUID();
+ break;
}
}
@@ -167,15 +218,26 @@ public:
{
switch (identifier)
{
- case DATA_SELIN: return SelinGUID;
- case DATA_DELRISSA: 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: return KaelDoorGUID;
- case DATA_KAEL_STATUE_LEFT: return KaelStatue[0];
- case DATA_KAEL_STATUE_RIGHT: return KaelStatue[1];
+ case DATA_SELIN:
+ return SelinGUID;
+ case DATA_DELRISSA:
+ 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:
+ return KaelDoorGUID;
+ case DATA_KAEL_STATUE_LEFT:
+ return KaelStatue[0];
+ case DATA_KAEL_STATUE_RIGHT:
+ return KaelStatue[1];
+ case DATA_ESCAPE_ORB:
+ return EscapeOrbGUID;
case DATA_FEL_CRYSTAL:
{
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
index 679db023b63..ccaaa0ec68d 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp
@@ -56,10 +56,10 @@ class npc_kalecgos : public CreatureScript
public:
npc_kalecgos() : CreatureScript("npc_kalecgos") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
index dcea4424bf5..78aa14b9102 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
@@ -19,27 +19,31 @@
#ifndef DEF_MAGISTERS_TERRACE_H
#define DEF_MAGISTERS_TERRACE_H
-#define DATA_SELIN_EVENT 1
-#define DATA_VEXALLUS_EVENT 2
-#define DATA_DELRISSA_EVENT 3
-#define DATA_KAELTHAS_EVENT 4
+#define ERROR_INST_DATA "TSCR Error: Instance Data not set properly for Magister's Terrace instance (map 585). Encounters will be buggy."
+#endif
-#define DATA_SELIN 5
-#define DATA_FEL_CRYSTAL 6
-#define DATA_FEL_CRYSTAL_SIZE 7
+enum Data
+{
+ DATA_SELIN_EVENT = 0,
+ DATA_VEXALLUS_EVENT = 1,
+ DATA_DELRISSA_EVENT = 2,
+ DATA_KAELTHAS_EVENT = 3,
-#define DATA_VEXALLUS_DOOR 8
-#define DATA_SELIN_DOOR 9
-#define DATA_DELRISSA 10
-#define DATA_DELRISSA_DOOR 11
-#define DATA_SELIN_ENCOUNTER_DOOR 12
+ DATA_SELIN = 4,
+ DATA_FEL_CRYSTAL = 5,
+ DATA_FEL_CRYSTAL_SIZE = 6,
-#define DATA_KAEL_DOOR 13
-#define DATA_KAEL_STATUE_LEFT 14
-#define DATA_KAEL_STATUE_RIGHT 15
+ DATA_VEXALLUS_DOOR = 7,
+ DATA_SELIN_DOOR = 8,
+ DATA_DELRISSA = 9,
+ DATA_DELRISSA_DOOR = 10,
+ DATA_SELIN_ENCOUNTER_DOOR = 11,
-#define DATA_DELRISSA_DEATH_COUNT 16
+ DATA_KAEL_DOOR = 12,
+ DATA_KAEL_STATUE_LEFT = 13,
+ DATA_KAEL_STATUE_RIGHT = 14,
-#define ERROR_INST_DATA "TSCR Error: Instance Data not set properly for Magister's Terrace instance (map 585). Encounters will be buggy."
-#endif
+ DATA_DELRISSA_DEATH_COUNT = 15,
+ DATA_ESCAPE_ORB = 16
+};
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
index 862a980394a..f085e15fcb7 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
@@ -200,7 +200,7 @@ class boss_majordomo : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 /*uiAction*/)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 /*action*/)
{
player->CLOSE_GOSSIP_MENU();
creature->AI()->DoAction(ACTION_START_RAGNAROS);
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
index 47d50925d56..0160f35f143 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp
@@ -316,12 +316,12 @@ class mob_son_of_flame : public CreatureScript
struct mob_son_of_flameAI : public ScriptedAI //didnt work correctly in EAI for me...
{
- mob_son_of_flameAI(Creature* c) : ScriptedAI(c)
+ mob_son_of_flameAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_RAGNAROS_ADDS, 1);
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
index 9f511c1394a..343298d29fe 100644
--- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
+++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
@@ -103,7 +103,7 @@ class boss_sulfuron : public CreatureScript
{
std::list<Creature*> healers = DoFindFriendlyMissingBuff(45.0f, SPELL_INSPIRE);
if (!healers.empty())
- DoCast(SelectRandomContainerElement(healers), SPELL_INSPIRE);
+ DoCast(Trinity::Containers::SelectRandomContainerElement(healers), SPELL_INSPIRE);
DoCast(me, SPELL_INSPIRE);
events.ScheduleEvent(EVENT_INSPIRE, urand(20000, 26000));
diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/molten_core.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/molten_core.cpp
deleted file mode 100644
index 801a11fbfc8..00000000000
--- a/src/server/scripts/EasternKingdoms/MoltenCore/molten_core.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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
- * 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/>.
- */
-
-/* ScriptData
-SDName: Molten_Core
-SD%Complete: 100
-SDComment:
-SDCategory: Molten Core
-EndScriptData */
-
-/* ContentData
-mob_ancient_core_hound
-EndContentData */
-
-#include "ScriptPCH.h"
-#include "ScriptedSimpleAI.h"
-
-enum Spells
-{
- SPELL_CONE_OF_FIRE = 19630,
- SPELL_BITE = 19771,
-
- //Random Debuff (each hound has only one of these)
- SPELL_GROUND_STOMP = 19364,
- SPELL_ANCIENT_DREAD = 19365,
- SPELL_CAUTERIZING_FLAMES = 19366,
- SPELL_WITHERING_HEAT = 19367,
- SPELL_ANCIENT_DESPAIR = 19369,
- SPELL_ANCIENT_HYSTERIA = 19372
-};
-
-class mob_ancient_core_hound : public CreatureScript
-{
-public:
- mob_ancient_core_hound() : CreatureScript("mob_ancient_core_hound") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- SimpleAI* ai = new SimpleAI(creature);
-
- ai->Spell[0].Enabled = true;
- ai->Spell[0].Spell_Id = SPELL_CONE_OF_FIRE;
- ai->Spell[0].Cooldown = 7000;
- ai->Spell[0].First_Cast = 10000;
- ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- uint32 RandDebuff = RAND(SPELL_GROUND_STOMP, SPELL_ANCIENT_DREAD, SPELL_CAUTERIZING_FLAMES,
- SPELL_WITHERING_HEAT, SPELL_ANCIENT_DESPAIR, SPELL_ANCIENT_HYSTERIA);
-
- ai->Spell[1].Enabled = true;
- ai->Spell[1].Spell_Id = RandDebuff;
- ai->Spell[1].Cooldown = 24000;
- ai->Spell[1].First_Cast = 15000;
- ai->Spell[1].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- ai->Spell[2].Enabled = true;
- ai->Spell[2].Spell_Id = SPELL_BITE;
- ai->Spell[2].Cooldown = 6000;
- ai->Spell[2].First_Cast = 4000;
- ai->Spell[2].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- ai->EnterEvadeMode();
-
- return ai;
- }
-};
-
-void AddSC_molten_core()
-{
- new mob_ancient_core_hound();
-}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index a2c8a890feb..bf887bec164 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -102,13 +102,13 @@ public:
struct npc_unworthy_initiateAI : public ScriptedAI
{
- npc_unworthy_initiateAI(Creature* c) : ScriptedAI(c)
+ npc_unworthy_initiateAI(Creature* creature) : ScriptedAI(creature)
{
me->SetReactState(REACT_PASSIVE);
if (!me->GetEquipmentId())
if (const CreatureTemplate* info = sObjectMgr->GetCreatureTemplate(28406))
if (info->equipmentId)
- const_cast<CreatureTemplate*>(me->GetCreatureInfo())->equipmentId = info->equipmentId;
+ const_cast<CreatureTemplate*>(me->GetCreatureTemplate())->equipmentId = info->equipmentId;
}
uint64 playerGUID;
@@ -293,7 +293,7 @@ public:
struct npc_unworthy_initiate_anchorAI : public PassiveAI
{
- npc_unworthy_initiate_anchorAI(Creature* c) : PassiveAI(c), prisonerGUID(0) {}
+ npc_unworthy_initiate_anchorAI(Creature* creature) : PassiveAI(creature), prisonerGUID(0) {}
uint64 prisonerGUID;
@@ -303,9 +303,11 @@ public:
prisonerGUID = guid;
}
- uint64 GetGUID(int32 /*id*/) { return prisonerGUID; }
+ uint64 GetGUID(int32 /*id*/)
+ {
+ return prisonerGUID;
+ }
};
-
};
class go_acherus_soul_prison : public GameObjectScript
@@ -362,10 +364,10 @@ class npc_death_knight_initiate : public CreatureScript
public:
npc_death_knight_initiate() : CreatureScript("npc_death_knight_initiate") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
@@ -531,7 +533,7 @@ public:
struct npc_dark_rider_of_acherusAI : public ScriptedAI
{
- npc_dark_rider_of_acherusAI(Creature* c) : ScriptedAI(c) {}
+ npc_dark_rider_of_acherusAI(Creature* creature) : ScriptedAI(creature) {}
uint32 PhaseTimer;
uint32 Phase;
@@ -587,7 +589,7 @@ public:
return;
TargetGUID = who->GetGUID();
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->SetSpeed(MOVE_RUN, 0.4f);
me->GetMotionMaster()->MoveChase(who);
me->SetTarget(TargetGUID);
@@ -623,7 +625,7 @@ public:
struct npc_salanar_the_horsemanAI : public ScriptedAI
{
- npc_salanar_the_horsemanAI(Creature* c) : ScriptedAI(c) {}
+ npc_salanar_the_horsemanAI(Creature* creature) : ScriptedAI(creature) {}
void SpellHit(Unit* caster, const SpellInfo* spell)
{
@@ -662,7 +664,7 @@ public:
{
CAST_PLR(charmer)->GroupEventHappens(12687, me);
charmer->RemoveAurasDueToSpell(SPELL_EFFECT_OVERTAKE);
- CAST_CRE(who)->ForcedDespawn();
+ CAST_CRE(who)->DespawnOrUnsummon();
//CAST_CRE(who)->Respawn(true);
}
@@ -692,7 +694,7 @@ public:
struct npc_ros_dark_riderAI : public ScriptedAI
{
- npc_ros_dark_riderAI(Creature* c) : ScriptedAI(c) {}
+ npc_ros_dark_riderAI(Creature* creature) : ScriptedAI(creature) {}
void EnterCombat(Unit* /*who*/)
{
@@ -702,7 +704,9 @@ public:
void Reset()
{
Creature* deathcharger = me->FindNearestCreature(28782, 30);
- if (!deathcharger) return;
+ if (!deathcharger)
+ return;
+
deathcharger->RestoreFaction();
deathcharger->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
deathcharger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -713,7 +717,9 @@ public:
void JustDied(Unit* killer)
{
Creature* deathcharger = me->FindNearestCreature(28782, 30);
- if (!deathcharger) return;
+ if (!deathcharger)
+ return;
+
if (killer->GetTypeId() == TYPEID_PLAYER && deathcharger->GetTypeId() == TYPEID_UNIT && deathcharger->IsVehicle())
{
deathcharger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
@@ -743,7 +749,7 @@ public:
struct npc_dkc1_gothikAI : public ScriptedAI
{
- npc_dkc1_gothikAI(Creature* c) : ScriptedAI(c) {}
+ npc_dkc1_gothikAI(Creature* creature) : ScriptedAI(creature) {}
void MoveInLineOfSight(Unit* who)
{
@@ -761,7 +767,7 @@ public:
//Todo: Creatures must not be removed, but, must instead
// stand next to Gothik and be commanded into the pit
// and dig into the ground.
- CAST_CRE(who)->ForcedDespawn();
+ CAST_CRE(who)->DespawnOrUnsummon();
if (CAST_PLR(owner)->GetQuestStatus(12698) == QUEST_STATUS_COMPLETE)
owner->RemoveAllMinionsByEntry(GHOULS);
@@ -785,7 +791,7 @@ public:
struct npc_scarlet_ghoulAI : public ScriptedAI
{
- npc_scarlet_ghoulAI(Creature* c) : ScriptedAI(c)
+ npc_scarlet_ghoulAI(Creature* creature) : ScriptedAI(creature)
{
// Ghouls should display their Birth Animation
// Crawling out of the ground
@@ -803,11 +809,11 @@ public:
{
for (std::list<Creature*>::const_iterator itr = MinionList.begin(); itr != MinionList.end(); ++itr)
{
- if (CAST_CRE(*itr)->GetOwner()->GetGUID() == me->GetOwner()->GetGUID())
+ if ((*itr)->GetOwner()->GetGUID() == me->GetOwner()->GetGUID())
{
- if (CAST_CRE(*itr)->isInCombat() && CAST_CRE(*itr)->getAttackerForHelper())
+ if ((*itr)->isInCombat() && (*itr)->getAttackerForHelper())
{
- AttackStart(CAST_CRE(*itr)->getAttackerForHelper());
+ AttackStart((*itr)->getAttackerForHelper());
}
}
}
@@ -820,16 +826,13 @@ public:
{
if (Unit* owner = me->GetOwner())
{
- if (owner->GetTypeId() == TYPEID_PLAYER && CAST_PLR(owner)->isInCombat())
+ Player* plrOwner = owner->ToPlayer();
+ if (plrOwner && plrOwner->isInCombat())
{
- if (CAST_PLR(owner)->getAttackerForHelper() && CAST_PLR(owner)->getAttackerForHelper()->GetEntry() == GHOSTS)
- {
- AttackStart(CAST_PLR(owner)->getAttackerForHelper());
- }
+ if (plrOwner->getAttackerForHelper() && plrOwner->getAttackerForHelper()->GetEntry() == GHOSTS)
+ AttackStart(plrOwner->getAttackerForHelper());
else
- {
FindMinions(owner);
- }
}
}
}
@@ -868,17 +871,17 @@ class npc_scarlet_miner_cart : public CreatureScript
public:
npc_scarlet_miner_cart() : CreatureScript("npc_scarlet_miner_cart") { }
- CreatureAI* GetAI(Creature* _Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new npc_scarlet_miner_cartAI(_Creature);
+ return new npc_scarlet_miner_cartAI(creature);
}
struct npc_scarlet_miner_cartAI : public PassiveAI
{
- npc_scarlet_miner_cartAI(Creature* c) : PassiveAI(c), minerGUID(0)
+ npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature), minerGUID(0)
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
- me->SetDisplayId(me->GetCreatureInfo()->Modelid1); // Modelid2 is a horse.
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse.
}
uint64 minerGUID;
@@ -892,7 +895,7 @@ public:
{
if (Creature* miner = Unit::GetCreature(*me, minerGUID))
{
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
//Not 100% correct, but movement is smooth. Sometimes miner walks faster
//than normal, this speed is fast enough to keep up at those times.
@@ -924,14 +927,14 @@ class npc_scarlet_miner : public CreatureScript
public:
npc_scarlet_miner() : CreatureScript("npc_scarlet_miner") { }
- CreatureAI* GetAI(Creature* _Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new npc_scarlet_minerAI(_Creature);
+ return new npc_scarlet_minerAI(creature);
}
struct npc_scarlet_minerAI : public npc_escortAI
{
- npc_scarlet_minerAI(Creature* c) : npc_escortAI(c)
+ npc_scarlet_minerAI(Creature* creature) : npc_escortAI(creature)
{
me->SetReactState(REACT_PASSIVE);
}
@@ -988,9 +991,9 @@ public:
SetDespawnAtFar(false);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
case 1:
if (Unit* car = Unit::GetCreature(*me, carGUID))
@@ -1057,7 +1060,7 @@ class go_inconspicuous_mine_car : public GameObjectScript
public:
go_inconspicuous_mine_car() : GameObjectScript("go_inconspicuous_mine_car") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->GetQuestStatus(12701) == QUEST_STATUS_INCOMPLETE)
{
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index 4583a33a196..1c17e6afa9b 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -111,12 +111,33 @@ public:
switch (uiSpeech_counter)
{
- case 1: DoScriptText(SAY_PERSUADED1, me); uiSpeech_timer = 8000; break;
- case 2: DoScriptText(SAY_PERSUADED2, me); uiSpeech_timer = 8000; break;
- case 3: DoScriptText(SAY_PERSUADED3, me); uiSpeech_timer = 8000; break;
- case 4: DoScriptText(SAY_PERSUADED4, me); uiSpeech_timer = 8000; break;
- case 5: DoScriptText(SAY_PERSUADED5, player); uiSpeech_timer = 8000; break;
- case 6: DoScriptText(SAY_PERSUADED6, me);
+ case 1:
+ DoScriptText(SAY_PERSUADED1, me);
+ uiSpeech_timer = 8000;
+ break;
+
+ case 2:
+ DoScriptText(SAY_PERSUADED2, me);
+ uiSpeech_timer = 8000;
+ break;
+
+ case 3:
+ DoScriptText(SAY_PERSUADED3, me);
+ uiSpeech_timer = 8000;
+ break;
+
+ case 4:
+ DoScriptText(SAY_PERSUADED4, me);
+ uiSpeech_timer = 8000;
+ break;
+
+ case 5:
+ DoScriptText(SAY_PERSUADED5, player);
+ uiSpeech_timer = 8000;
+ break;
+
+ case 6:
+ DoScriptText(SAY_PERSUADED6, me);
player->Kill(me);
//me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
//me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -218,9 +239,9 @@ public:
}
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 0:
DoScriptText(SAY_BREAKOUT1, me);
@@ -256,9 +277,7 @@ public:
void JustSummoned(Creature* summoned)
{
if (Player* player = GetPlayerForEscort())
- {
summoned->AI()->AttackStart(player);
- }
if (summoned->GetEntry() == NPC_HIGH_INQUISITOR_VALROTH)
m_uiValrothGUID = summoned->GetGUID();
@@ -400,7 +419,7 @@ public:
switch (uiStage)
{
case 1:
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f))
{
DoScriptText(SAY_TREE1, me);
@@ -608,48 +627,48 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- bool MeetQuestCondition(Unit* player)
+ bool MeetQuestCondition(Player* player)
{
switch (me->GetEntry())
{
case 29061: // Ellen Stanbridge
- if (CAST_PLR(player)->GetQuestStatus(12742) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12742) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29072: // Kug Ironjaw
- if (CAST_PLR(player)->GetQuestStatus(12748) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12748) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29067: // Donovan Pulfrost
- if (CAST_PLR(player)->GetQuestStatus(12744) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12744) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29065: // Yazmina Oakenthorn
- if (CAST_PLR(player)->GetQuestStatus(12743) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12743) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29071: // Antoine Brack
- if (CAST_PLR(player)->GetQuestStatus(12750) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12750) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29032: // Malar Bravehorn
- if (CAST_PLR(player)->GetQuestStatus(12739) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12739) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29068: // Goby Blastenheimer
- if (CAST_PLR(player)->GetQuestStatus(12745) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12745) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29073: // Iggy Darktusk
- if (CAST_PLR(player)->GetQuestStatus(12749) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12749) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29074: // Lady Eonys
- if (CAST_PLR(player)->GetQuestStatus(12747) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12747) == QUEST_STATUS_INCOMPLETE)
return true;
break;
case 29070: // Valok the Righteous
- if (CAST_PLR(player)->GetQuestStatus(12746) == QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(12746) == QUEST_STATUS_INCOMPLETE)
return true;
break;
}
@@ -662,7 +681,7 @@ public:
if (PlayerGUID || who->GetTypeId() != TYPEID_PLAYER || !who->IsWithinDist(me, INTERACTION_DISTANCE))
return;
- if (MeetQuestCondition(who))
+ if (MeetQuestCondition(who->ToPlayer()))
PlayerGUID = who->GetGUID();
}
@@ -704,7 +723,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -732,7 +753,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -760,7 +783,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -788,7 +813,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -816,7 +843,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -844,7 +873,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -872,7 +903,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -900,7 +933,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -928,7 +963,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -956,7 +993,9 @@ public:
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); break;
+ case 10:
+ DoScriptText(SAY_EXEC_WAITING, me, player);
+ break;
case 11:
DoScriptText(EMOTE_DIES, me);
me->setDeathState(JUST_DIED);
@@ -978,7 +1017,6 @@ public:
}
}
};
-
};
void AddSC_the_scarlet_enclave_c2()
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index 81c4b1261ef..8cee23fab1c 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -287,10 +287,10 @@ class npc_highlord_darion_mograine : public CreatureScript
public:
npc_highlord_darion_mograine() : CreatureScript("npc_highlord_darion_mograine") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -497,17 +497,16 @@ public:
SetEscortPaused(bOnHold);
}
- void WaypointReached(uint32 wpId)
+ void WaypointReached(uint32 waypointId)
{
- switch (wpId)
+ switch (waypointId)
{
case 0:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
SetHoldState(true);
break;
case 1:
SetHoldState(true);
-
SpawnNPC();
if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID))
DoScriptText(SAY_LIGHT_OF_DAWN07, temp);
@@ -537,7 +536,7 @@ public:
bIsBattle = true;
break;
case 2:
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
DoCast(me, SPELL_THE_LIGHT_OF_DAWN);
break;
case 3:
@@ -551,34 +550,35 @@ public:
{
if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0))
temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);
- temp->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(true);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[19].x, LightofDawnLoc[19].y, LightofDawnLoc[19].z);
}
if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID))
{
if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0))
temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);
- temp->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(true);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[21].x, LightofDawnLoc[21].y, LightofDawnLoc[21].z);
}
if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID))
{
- temp->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(true);
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[10].x, LightofDawnLoc[10].y, LightofDawnLoc[10].z);
}
if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID))
{
- temp->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(true);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[13].x, LightofDawnLoc[13].y, LightofDawnLoc[13].z);
}
if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID))
{
- temp->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(true);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[16].x, LightofDawnLoc[16].y, LightofDawnLoc[16].z);
}
JumpToNextStep(10000);
- } break;
+ }
+ break;
case 4:
DoScriptText(SAY_LIGHT_OF_DAWN27, me);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
@@ -664,7 +664,7 @@ public:
if (uiSummon_counter < ENCOUNTER_GHOUL_NUMBER)
{
Unit* temp = me->SummonCreature(NPC_ACHERUS_GHOUL, (me->GetPositionX()-20)+rand()%40, (me->GetPositionY()-20)+rand()%40, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->setFaction(2084);
uiGhoulGUID[uiSummon_counter] = temp->GetGUID();
++uiSummon_counter;
@@ -682,7 +682,7 @@ public:
if (uiSummon_counter < ENCOUNTER_ABOMINATION_NUMBER)
{
Unit* temp = me->SummonCreature(NPC_RAMPAGING_ABOMINATION, (me->GetPositionX()-20)+rand()%40, (me->GetPositionY()-20)+rand()%40, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->setFaction(2084);
uiAbominationGUID[uiSummon_counter] = temp->GetGUID();
++uiSummon_counter;
@@ -700,7 +700,7 @@ public:
if (uiSummon_counter < ENCOUNTER_WARRIOR_NUMBER)
{
Unit* temp = me->SummonCreature(NPC_WARRIOR_OF_THE_FROZEN_WASTES, (me->GetPositionX()-20)+rand()%40, (me->GetPositionY()-20)+rand()%40, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->setFaction(2084);
uiWarriorGUID[uiSummon_counter] = temp->GetGUID();
++uiSummon_counter;
@@ -718,7 +718,7 @@ public:
if (uiSummon_counter < ENCOUNTER_BEHEMOTH_NUMBER)
{
Unit* temp = me->SummonCreature(NPC_FLESH_BEHEMOTH, (me->GetPositionX()-20)+rand()%40, (me->GetPositionY()-20)+rand()%40, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->setFaction(2084);
uiBehemothGUID[uiSummon_counter] = temp->GetGUID();
++uiSummon_counter;
@@ -739,17 +739,17 @@ public:
SetHoldState(false);
if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID))
{
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);
}
if (Creature* temp = Unit::GetCreature(*me, uiOrbazGUID))
{
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);
}
if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID))
{
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);
}
for (uint8 i = 0; i < ENCOUNTER_ABOMINATION_NUMBER; ++i)
@@ -824,7 +824,7 @@ public:
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))
{
DoScriptText(SAY_LIGHT_OF_DAWN35, temp);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
uiDarionGUID = temp->GetGUID();
}
JumpToNextStep(4000);
@@ -938,9 +938,9 @@ public:
case 33: // Darion supports to jump to lich king here
if (Unit::GetCreature(*me, uiLichKingGUID))
DoCast(me, SPELL_MOGRAINE_CHARGE); // jumping charge
- // doesn't make it looks well, so workarounds, Darion charges, looks better
+ // doesn't make it looks well, so workarounds, Darion charges, looks better
me->SetSpeed(MOVE_RUN, 3.0f);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
SetHoldState(false);
JumpToNextStep(0);
break;
@@ -1010,10 +1010,9 @@ public:
if (fLichPositionX && fLichPositionY)
{
- Unit* temp;
- temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].x+rand()%10, LightofDawnLoc[0].y+rand()%10, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ Unit* temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].x+rand()%10, LightofDawnLoc[0].y+rand()%10, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
temp->setFaction(me->getFaction());
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
@@ -1021,7 +1020,7 @@ public:
temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].x+rand()%10, LightofDawnLoc[0].y+rand()%10, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
temp->setFaction(me->getFaction());
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
@@ -1030,7 +1029,7 @@ public:
if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID))
{
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
DoScriptText(SAY_LIGHT_OF_DAWN50, temp);
@@ -1038,7 +1037,7 @@ public:
if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID))
{
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
temp->HandleEmoteCommand(EMOTE_STATE_ATTACK_UNARMED);
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
@@ -1046,7 +1045,7 @@ public:
if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID))
{
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->SetSpeed(MOVE_RUN, 2.0f);
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
}
@@ -1111,7 +1110,7 @@ public:
case 46: // Darion stand up, "not today"
me->SetSpeed(MOVE_RUN, 1.0f);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(SAY_LIGHT_OF_DAWN53, me);
SetHoldState(false); // Darion throws sword
@@ -1171,7 +1170,7 @@ public:
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
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2].x, LightofDawnLoc[2].y, LightofDawnLoc[2].z);
if (Creature* lktemp = Unit::GetCreature(*me, uiLichKingGUID))
lktemp->Relocate(LightofDawnLoc[28].x, LightofDawnLoc[28].y, LightofDawnLoc[28].z); // workarounds, he should kick back by Tirion, but here we relocate him
@@ -1189,7 +1188,7 @@ public:
if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID))
{
temp->SetSpeed(MOVE_RUN, 1.0f);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[29].x, LightofDawnLoc[29].y, LightofDawnLoc[29].z); // 26
}
JumpToNextStep(4000);
@@ -1249,7 +1248,7 @@ public:
case 62:
if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID))
{
- temp->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(true);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[7].x, LightofDawnLoc[7].y, LightofDawnLoc[7].z);
}
JumpToNextStep(5500);
@@ -1309,7 +1308,6 @@ public:
case 71:
//if (GameObject* go = me->GetMap()->GetGameObject(uiDawnofLightGUID)) // Turn off dawn of light
// go->SetPhaseMask(0, true);
-
{
Map* map = me->GetMap(); // search players with in 50 yards for quest credit
Map::PlayerList const &PlayerList = map->GetPlayers();
@@ -1438,7 +1436,7 @@ public:
me->DeleteThreatList();
me->CombatStop(true);
me->InterruptNonMeleeSpells(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
for (uint8 i = 0; i < ENCOUNTER_DEFENDER_NUMBER; ++i)
DespawnNPC(uiDefenderGUID[i]);
@@ -1460,7 +1458,7 @@ public:
temp->CombatStop(true);
temp->AttackStop();
temp->setFaction(me->getFaction());
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[9].x, LightofDawnLoc[9].y, LightofDawnLoc[9].z);
}
@@ -1471,7 +1469,7 @@ public:
temp->CombatStop(true);
temp->AttackStop();
temp->setFaction(me->getFaction());
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[12].x, LightofDawnLoc[12].y, LightofDawnLoc[12].z);
}
@@ -1482,7 +1480,7 @@ public:
temp->CombatStop(true);
temp->AttackStop();
temp->setFaction(me->getFaction());
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[15].x, LightofDawnLoc[15].y, LightofDawnLoc[15].z);
}
DespawnNPC(uiRayneGUID);
@@ -1494,7 +1492,7 @@ public:
temp->CombatStop(true);
temp->AttackStop();
temp->setFaction(me->getFaction());
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[18].x, LightofDawnLoc[18].y, LightofDawnLoc[18].z);
temp->CastSpell(temp, SPELL_THE_LIGHT_OF_DAWN, false);
}
@@ -1509,7 +1507,7 @@ public:
temp->CombatStop(true);
temp->AttackStop();
temp->setFaction(me->getFaction());
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[20].x, LightofDawnLoc[20].y, LightofDawnLoc[20].z);
temp->CastSpell(temp, SPELL_THE_LIGHT_OF_DAWN, false);
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp
index 9512d66b6eb..0ef2dddda8d 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave.cpp
@@ -35,7 +35,7 @@ public:
struct npc_valkyr_battle_maidenAI : public PassiveAI
{
- npc_valkyr_battle_maidenAI(Creature* c) : PassiveAI(c) {}
+ npc_valkyr_battle_maidenAI(Creature* creature) : PassiveAI(creature) {}
uint32 FlyBackTimer;
float x, y, z;
@@ -46,7 +46,7 @@ public:
me->setActive(true);
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetFlying(true);
+ me->SetCanFly(true);
FlyBackTimer = 500;
phase = 0;
@@ -74,7 +74,7 @@ public:
switch (phase)
{
case 0:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->HandleEmoteCommand(EMOTE_STATE_FLYGRABCLOSED);
FlyBackTimer = 500;
break;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 77099f2e2d7..813c43288d0 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -296,8 +296,11 @@ public:
if (spell->Id == SPELL_FLYING_HEAD)
{
- if (Phase < 3) ++Phase;
- else Phase = 3;
+ if (Phase < 3)
+ ++Phase;
+ else
+ Phase = 3;
+
withbody = false;
if (!bodyGUID)
bodyGUID = caster->GetGUID();
@@ -319,7 +322,8 @@ public:
if (wait <= diff)
{
wait = 1000;
- if (!me->getVictim()) return;
+ if (!me->getVictim())
+ return;
me->GetMotionMaster()->Clear(false);
me->GetMotionMaster()->MoveFleeing(me->getVictim());
}
@@ -344,7 +348,7 @@ public:
if (wait <= diff)
{
die = false;
- if (Unit* body = Unit::GetUnit((*me), bodyGUID))
+ if (Unit* body = Unit::GetUnit(*me, bodyGUID))
body->Kill(body);
me->Kill(me);
}
@@ -429,7 +433,7 @@ public:
{
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_LEVITATING);
+ me->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
me->SetSpeed(MOVE_WALK, 5.0f, true);
wp_reached = false;
count = 0;
@@ -462,7 +466,7 @@ public:
instance->SetData(GAMEOBJECT_PUMPKIN_SHRINE, 0); //hide gameobject
break;
case 19:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_LEVITATING);
+ me->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
break;
case 20:
{
@@ -471,7 +475,7 @@ public:
wp_reached = false;
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
SaySound(SAY_ENTRANCE);
- if (Unit* player = Unit::GetUnit((*me), PlayerGUID))
+ if (Unit* player = Unit::GetUnit(*me, PlayerGUID))
DoStartMovement(player);
break;
}
@@ -485,12 +489,18 @@ public:
instance->SetData(DATA_HORSEMAN_EVENT, IN_PROGRESS);
DoZoneInCombat();
}
- void AttackStart(Unit* who) {ScriptedAI::AttackStart(who);}
+
+ void AttackStart(Unit* who)
+ {
+ ScriptedAI::AttackStart(who);
+ }
+
void MoveInLineOfSight(Unit* who)
{
if (withhead && Phase != 0)
ScriptedAI::MoveInLineOfSight(who);
}
+
void KilledUnit(Unit* player)
{
if (player->GetTypeId() == TYPEID_PLAYER)
@@ -576,7 +586,7 @@ public:
std::list<HostileReference*>::const_iterator itr;
for (itr = caster->getThreatManager().getThreatList().begin(); itr != caster->getThreatManager().getThreatList().end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive() && unit != caster)
me->AddThreat(unit, caster->getThreatManager().getThreat(unit));
}
@@ -595,7 +605,8 @@ public:
if (!headGUID)
headGUID = DoSpawnCreature(HEAD, float(rand()%6), float(rand()%6), 0, 0, TEMPSUMMON_DEAD_DESPAWN, 0)->GetGUID();
- Unit* Head = Unit::GetUnit((*me), headGUID);
+
+ Unit* Head = Unit::GetUnit(*me, headGUID);
if (Head && Head->isAlive())
{
Head->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -803,14 +814,22 @@ public:
void Despawn()
{
- if (!debuffGUID) return;
- Unit* debuff = Unit::GetUnit((*me), debuffGUID);
+ if (!debuffGUID)
+ return;
+
+ Unit* debuff = Unit::GetUnit(*me, debuffGUID);
if (debuff)
+ {
debuff->SetVisible(false);
debuffGUID = 0;
+ }
}
- void JustDied(Unit* /*killer*/) { if (!sprouted) Despawn(); }
+ void JustDied(Unit* /*killer*/)
+ {
+ if (!sprouted)
+ Despawn();
+ }
void MoveInLineOfSight(Unit* who)
{
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
index 16b90f89bb5..58c21d86a2f 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
@@ -152,7 +152,12 @@ public:
uint32 Start_Timer;
void Reset() {}
- void WaypointReached(uint32 /*point*/) {}
+
+ void WaypointReached(uint32 /*waypointId*/)
+ {
+
+ }
+
void EnterCombat(Unit* /*who*/) {}
void UpdateAI(const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
index a64636a4223..1989c318c84 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
@@ -66,9 +66,15 @@ public:
Sleep_Timer = 30000;
Dispel_Timer = 20000;
PowerWordShield = false;
+ me->SetStandState(UNIT_STAND_STATE_DEAD);
+ me->SetUInt32Value(UNIT_FIELD_BYTES_1, 7);
}
- void EnterCombat(Unit* /*who*/) {}
+ void EnterCombat(Unit* /*who*/)
+ {
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ }
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 058c688641f..fd978136339 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
@@ -78,12 +78,12 @@ public:
DoScriptText(SAY_KILL, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (!instance)
return;
- //Any other actions to do with vorrel? setStandState?
+ //Any other Actions to do with vorrel? setStandState?
if (Unit* vorrel = Unit::GetUnit(*me, instance->GetData64(DATA_VORREL)))
DoScriptText(SAY_TRIGGER_VORREL, vorrel);
}
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 ec6ac34b0bb..8d813bfe502 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
@@ -132,7 +132,7 @@ public:
return;
//On first death, fake death and open door, as well as initiate whitemane if exist
- if (Unit* Whitemane = Unit::GetUnit((*me), instance->GetData64(DATA_WHITEMANE)))
+ if (Unit* Whitemane = Unit::GetUnit(*me, instance->GetData64(DATA_WHITEMANE)))
{
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, IN_PROGRESS);
@@ -181,7 +181,7 @@ public:
if (_bHasDied && !_bHeal && instance && instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == SPECIAL)
{
//On ressurection, stop fake death and heal whitemane and resume fight
- if (Unit* Whitemane = Unit::GetUnit((*me), instance->GetData64(DATA_WHITEMANE)))
+ if (Unit* Whitemane = Unit::GetUnit(*me, instance->GetData64(DATA_WHITEMANE)))
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -292,7 +292,7 @@ public:
//When casting resuruction make sure to delay so on rez when reinstate battle deepsleep runs out
if (instance && Wait_Timer <= diff)
{
- if (Unit* Mograine = Unit::GetUnit((*me), instance->GetData64(DATA_MOGRAINE)))
+ if (Unit* Mograine = Unit::GetUnit(*me, instance->GetData64(DATA_MOGRAINE)))
{
DoCast(Mograine, SPELL_SCARLETRESURRECTION);
DoScriptText(SAY_WH_RESSURECT, me);
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
index 4ddc240a03c..2bc0320b81d 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
@@ -62,7 +62,7 @@ public:
struct boss_darkmaster_gandlingAI : public ScriptedAI
{
- boss_darkmaster_gandlingAI(Creature* c) : ScriptedAI(c)
+ boss_darkmaster_gandlingAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
index 693cad06bd5..967f771fe7a 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
@@ -37,7 +37,7 @@ public:
struct boss_death_knight_darkreaverAI : public ScriptedAI
{
- boss_death_knight_darkreaverAI(Creature* c) : ScriptedAI(c) {}
+ boss_death_knight_darkreaverAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
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 05d662c4fe3..82f4dc85060 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
@@ -45,7 +45,7 @@ public:
struct boss_theolenkrastinovAI : public ScriptedAI
{
- boss_theolenkrastinovAI(Creature* c) : ScriptedAI(c) {}
+ boss_theolenkrastinovAI(Creature* creature) : ScriptedAI(creature) {}
uint32 m_uiRend_Timer;
uint32 m_uiBackhand_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
index 92f0fcd25c4..e438ae56a2b 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
@@ -43,7 +43,7 @@ public:
struct boss_illuciabarovAI : public ScriptedAI
{
- boss_illuciabarovAI(Creature* c) : ScriptedAI(c) {}
+ boss_illuciabarovAI(Creature* creature) : ScriptedAI(creature) {}
uint32 CurseOfAgony_Timer;
uint32 ShadowShock_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
index 295d9440d2e..498e6596b06 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
@@ -44,7 +44,7 @@ public:
struct boss_instructormaliciaAI : public ScriptedAI
{
- boss_instructormaliciaAI(Creature* c) : ScriptedAI(c) {}
+ boss_instructormaliciaAI(Creature* creature) : ScriptedAI(creature) {}
uint32 CallOfGraves_Timer;
uint32 Corruption_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
index 48bf000745c..064faa5643d 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
@@ -43,7 +43,7 @@ public:
struct boss_jandicebarovAI : public ScriptedAI
{
- boss_jandicebarovAI(Creature* c) : ScriptedAI(c) {}
+ boss_jandicebarovAI(Creature* creature) : ScriptedAI(creature) {}
uint32 CurseOfBlood_Timer;
uint32 Illusion_Timer;
@@ -165,7 +165,7 @@ public:
struct mob_illusionofjandicebarovAI : public ScriptedAI
{
- mob_illusionofjandicebarovAI(Creature* c) : ScriptedAI(c) {}
+ mob_illusionofjandicebarovAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Cleave_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
index 7c279e726a6..5fd5a96d605 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
@@ -40,7 +40,7 @@ public:
struct boss_kormokAI : public ScriptedAI
{
- boss_kormokAI(Creature* c) : ScriptedAI(c) {}
+ boss_kormokAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ShadowVolley_Timer;
uint32 BoneShield_Timer;
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 5109e6e1468..327c1df921d 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
@@ -41,7 +41,7 @@ public:
struct boss_lordalexeibarovAI : public ScriptedAI
{
- boss_lordalexeibarovAI(Creature* c) : ScriptedAI(c) {}
+ boss_lordalexeibarovAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Immolate_Timer;
uint32 VeilofShadow_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
index 754640bff9e..1919a1ba099 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
@@ -43,7 +43,7 @@ public:
struct boss_lorekeeperpolkeltAI : public ScriptedAI
{
- boss_lorekeeperpolkeltAI(Creature* c) : ScriptedAI(c) {}
+ boss_lorekeeperpolkeltAI(Creature* creature) : ScriptedAI(creature) {}
uint32 VolatileInfection_Timer;
uint32 Darkplague_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
index 902838da152..fd10c6374a6 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
@@ -44,7 +44,7 @@ public:
struct boss_rasfrostAI : public ScriptedAI
{
- boss_rasfrostAI(Creature* c) : ScriptedAI(c) {}
+ boss_rasfrostAI(Creature* creature) : ScriptedAI(creature) {}
uint32 IceArmor_Timer;
uint32 Frostbolt_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
index 13fa450f5ee..a28cecf3772 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
@@ -43,7 +43,7 @@ public:
struct boss_theravenianAI : public ScriptedAI
{
- boss_theravenianAI(Creature* c) : ScriptedAI(c) {}
+ boss_theravenianAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Trample_Timer;
uint32 Cleave_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
index 657b458e148..f5f453c30bd 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
@@ -45,7 +45,7 @@ public:
struct boss_vectusAI : public ScriptedAI
{
- boss_vectusAI(Creature* c) : ScriptedAI(c) {}
+ boss_vectusAI(Creature* creature) : ScriptedAI(creature) {}
uint32 m_uiFireShield_Timer;
uint32 m_uiBlastWave_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
index dded75e193c..63e753a18ba 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
@@ -63,10 +63,10 @@ public:
return new npc_shadowfang_prisonerAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
@@ -90,18 +90,18 @@ public:
struct npc_shadowfang_prisonerAI : public npc_escortAI
{
- npc_shadowfang_prisonerAI(Creature* c) : npc_escortAI(c)
+ npc_shadowfang_prisonerAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
- uiNpcEntry = c->GetEntry();
+ instance = creature->GetInstanceScript();
+ uiNpcEntry = creature->GetEntry();
}
InstanceScript* instance;
uint32 uiNpcEntry;
- void WaypointReached(uint32 uiPoint)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPoint)
+ switch (waypointId)
{
case 0:
if (uiNpcEntry == NPC_ASH)
@@ -175,10 +175,7 @@ public:
if (uiDarkOffering <= uiDiff)
{
if (Creature* pFriend = me->FindNearestCreature(me->GetEntry(), 25.0f, true))
- {
- if (pFriend)
- DoCast(pFriend, SPELL_DARK_OFFERING);
- }
+ DoCast(pFriend, SPELL_DARK_OFFERING);
else
DoCast(me, SPELL_DARK_OFFERING);
uiDarkOffering = urand(4400, 12500);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
index 0c659117f5d..85faa14900b 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
@@ -89,7 +89,7 @@ public:
struct boss_baron_rivendareAI : public ScriptedAI
{
- boss_baron_rivendareAI(Creature* c) : ScriptedAI(c)
+ boss_baron_rivendareAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -126,7 +126,7 @@ public:
summoned->AI()->AttackStart(target);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(TYPE_BARON, DONE);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
index a01846cb862..106719d654f 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
@@ -43,7 +43,7 @@ public:
struct boss_baroness_anastariAI : public ScriptedAI
{
- boss_baroness_anastariAI(Creature* c) : ScriptedAI(c)
+ boss_baroness_anastariAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -67,7 +67,7 @@ public:
{
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(TYPE_BARONESS, IN_PROGRESS);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
index d84bd489dab..01299ae06b6 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
@@ -88,7 +88,7 @@ public:
struct boss_cannon_master_willeyAI : public ScriptedAI
{
- boss_cannon_master_willeyAI(Creature* c) : ScriptedAI(c) {}
+ boss_cannon_master_willeyAI(Creature* creature) : ScriptedAI(creature) {}
uint32 KnockAway_Timer;
uint32 Pummel_Timer;
@@ -103,7 +103,7 @@ public:
SummonRifleman_Timer = 15000;
}
- void JustDied(Unit* /*Victim*/)
+ void JustDied(Unit* /*killer*/)
{
me->SummonCreature(11054, ADD_1X, ADD_1Y, ADD_1Z, ADD_1O, TEMPSUMMON_TIMED_DESPAWN, 240000);
me->SummonCreature(11054, ADD_2X, ADD_2Y, ADD_2Z, ADD_2O, TEMPSUMMON_TIMED_DESPAWN, 240000);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
index 8a14f1e2401..21e3e19d890 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
@@ -77,7 +77,7 @@ public:
struct boss_dathrohan_balnazzarAI : public ScriptedAI
{
- boss_dathrohan_balnazzarAI(Creature* c) : ScriptedAI(c) {}
+ boss_dathrohan_balnazzarAI(Creature* creature) : ScriptedAI(creature) {}
uint32 m_uiCrusadersHammer_Timer;
uint32 m_uiCrusaderStrike_Timer;
@@ -105,7 +105,7 @@ public:
me->UpdateEntry(NPC_DATHROHAN);
}
- void JustDied(Unit* /*Victim*/)
+ void JustDied(Unit* /*killer*/)
{
static uint32 uiCount = sizeof(m_aSummonPoint)/sizeof(SummonDef);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
index 48b1fc2acc7..37e0bd5757f 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
@@ -46,7 +46,7 @@ public:
struct boss_magistrate_barthilasAI : public ScriptedAI
{
- boss_magistrate_barthilasAI(Creature* c) : ScriptedAI(c) {}
+ boss_magistrate_barthilasAI(Creature* creature) : ScriptedAI(creature) {}
uint32 DrainingBlow_Timer;
uint32 CrowdPummel_Timer;
@@ -75,7 +75,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
me->SetDisplayId(MODEL_HUMAN);
}
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
index 1dc22a20d08..f8a10f06155 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
@@ -43,7 +43,7 @@ public:
struct boss_maleki_the_pallidAI : public ScriptedAI
{
- boss_maleki_the_pallidAI(Creature* c) : ScriptedAI(c)
+ boss_maleki_the_pallidAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -65,7 +65,7 @@ public:
{
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(TYPE_PALLID, IN_PROGRESS);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
index a7c91c3636d..c9a43edb66d 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
@@ -43,7 +43,7 @@ public:
struct boss_nerubenkanAI : public ScriptedAI
{
- boss_nerubenkanAI(Creature* c) : ScriptedAI(c)
+ boss_nerubenkanAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -67,7 +67,7 @@ public:
{
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(TYPE_NERUB, IN_PROGRESS);
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 3393b9e5797..ebeda248331 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
@@ -54,9 +54,9 @@ public:
struct boss_silver_hand_bossesAI : public ScriptedAI
{
- boss_silver_hand_bossesAI(Creature* c) : ScriptedAI(c)
+ boss_silver_hand_bossesAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -96,30 +96,34 @@ public:
{
}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
- if (instance)
+ if (!instance)
+ return;
+
+ switch (me->GetEntry())
{
- switch (me->GetEntry())
- {
- case SH_AELMAR:
- instance->SetData(TYPE_SH_AELMAR, 2);
- break;
- case SH_CATHELA:
- instance->SetData(TYPE_SH_CATHELA, 2);
- break;
- case SH_GREGOR:
- instance->SetData(TYPE_SH_GREGOR, 2);
- break;
- case SH_NEMAS:
- instance->SetData(TYPE_SH_NEMAS, 2);
- break;
- case SH_VICAR:
- instance->SetData(TYPE_SH_VICAR, 2);
- break;
- }
- if (instance->GetData(TYPE_SH_QUEST) && Killer->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(Killer)->KilledMonsterCredit(SH_QUEST_CREDIT, 0);
+ case SH_AELMAR:
+ instance->SetData(TYPE_SH_AELMAR, 2);
+ break;
+ case SH_CATHELA:
+ instance->SetData(TYPE_SH_CATHELA, 2);
+ break;
+ case SH_GREGOR:
+ instance->SetData(TYPE_SH_GREGOR, 2);
+ break;
+ case SH_NEMAS:
+ instance->SetData(TYPE_SH_NEMAS, 2);
+ break;
+ case SH_VICAR:
+ instance->SetData(TYPE_SH_VICAR, 2);
+ break;
+ }
+
+ if (instance->GetData(TYPE_SH_QUEST))
+ {
+ if (Player* player = killer->ToPlayer())
+ player->KilledMonsterCredit(SH_QUEST_CREDIT, 0);
}
}
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
index 869a82011ad..cf8b10a2ee5 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
@@ -48,7 +48,7 @@ public:
struct boss_postmaster_malownAI : public ScriptedAI
{
- boss_postmaster_malownAI(Creature* c) : ScriptedAI(c) {}
+ boss_postmaster_malownAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WailingDead_Timer;
uint32 Backhand_Timer;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
index f35bcc05ec2..3bb1ce7959d 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
@@ -43,7 +43,7 @@ public:
struct boss_ramstein_the_gorgerAI : public ScriptedAI
{
- boss_ramstein_the_gorgerAI(Creature* c) : ScriptedAI(c)
+ boss_ramstein_the_gorgerAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -63,7 +63,7 @@ public:
{
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
for (uint8 i = 0; i < 30; ++i)
{
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
index 405527ab383..a281c1b59c6 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
@@ -41,7 +41,7 @@ public:
struct boss_timmy_the_cruelAI : public ScriptedAI
{
- boss_timmy_the_cruelAI(Creature* c) : ScriptedAI(c) {}
+ boss_timmy_the_cruelAI(Creature* creature) : ScriptedAI(creature) {}
uint32 RavenousClaw_Timer;
bool HasYelled;
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
index 5b2b2fd46c1..7e167093e07 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
@@ -99,7 +99,7 @@ public:
struct mob_freed_soulAI : public ScriptedAI
{
- mob_freed_soulAI(Creature* c) : ScriptedAI(c) {}
+ mob_freed_soulAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
@@ -133,7 +133,7 @@ public:
struct mob_restless_soulAI : public ScriptedAI
{
- mob_restless_soulAI(Creature* c) : ScriptedAI(c) {}
+ mob_restless_soulAI(Creature* creature) : ScriptedAI(creature) {}
uint64 Tagger;
uint32 Die_Timer;
@@ -165,7 +165,7 @@ public:
summoned->CastSpell(summoned, SPELL_SOUL_FREED, false);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (Tagged)
me->SummonCreature(ENTRY_FREED, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 300000);
@@ -211,7 +211,7 @@ public:
struct mobs_spectral_ghostly_citizenAI : public ScriptedAI
{
- mobs_spectral_ghostly_citizenAI(Creature* c) : ScriptedAI(c) {}
+ mobs_spectral_ghostly_citizenAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Die_Timer;
bool Tagged;
@@ -230,7 +230,7 @@ public:
Tagged = true;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (Tagged)
{
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index 1404fd14e91..43c94f8a57d 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -78,9 +78,9 @@ public:
struct boss_brutallusAI : public ScriptedAI
{
- boss_brutallusAI(Creature* c) : ScriptedAI(c)
+ boss_brutallusAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Intro = true;
}
@@ -132,7 +132,7 @@ public:
DoScriptText(RAND(YELL_KILL1, YELL_KILL2, YELL_KILL3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(YELL_DEATH, me);
@@ -216,7 +216,7 @@ public:
break;
case 3:
DoCast(me, SPELL_INTRO_FROST_BLAST);
- Madrigosa->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ Madrigosa->SetDisableGravity(true);
me->AttackStop();
Madrigosa->AttackStop();
IntroFrostBoltTimer = 3000;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 56d7909336c..03486a644a2 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -97,9 +97,9 @@ public:
struct boss_sacrolashAI : public ScriptedAI
{
- boss_sacrolashAI(Creature* c) : ScriptedAI(c)
+ boss_sacrolashAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -120,7 +120,7 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit((*me), instance->GetData64(DATA_ALYTHESS));
+ Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
if (Temp)
{
if (Temp->isDead())
@@ -152,7 +152,7 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit((*me), instance->GetData64(DATA_ALYTHESS));
+ Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
if (Temp && Temp->isAlive() && !(Temp->getVictim()))
CAST_CRE(Temp)->AI()->AttackStart(who);
}
@@ -167,7 +167,7 @@ public:
DoScriptText(RAND(YELL_SAC_KILL_1, YELL_SAC_KILL_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
// only if ALY death
if (SisterDeath)
@@ -231,7 +231,7 @@ public:
if (instance)
{
Unit* Temp = NULL;
- Temp = Unit::GetUnit((*me), instance->GetData64(DATA_ALYTHESS));
+ Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
if (Temp && Temp->isDead())
{
DoScriptText(YELL_SISTER_ALYTHESS_DEAD, me);
@@ -355,9 +355,9 @@ public:
struct boss_alythessAI : public Scripted_NoMovementAI
{
- boss_alythessAI(Creature* c) : Scripted_NoMovementAI(c)
+ boss_alythessAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
IntroStepCounter = 10;
}
@@ -382,7 +382,7 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit((*me), instance->GetData64(DATA_SACROLASH));
+ Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
if (Temp)
{
if (Temp->isDead())
@@ -415,7 +415,7 @@ public:
if (instance)
{
- Unit* Temp = Unit::GetUnit((*me), instance->GetData64(DATA_SACROLASH));
+ Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
if (Temp && Temp->isAlive() && !(Temp->getVictim()))
CAST_CRE(Temp)->AI()->AttackStart(who);
}
@@ -462,7 +462,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (SisterDeath)
{
@@ -567,7 +567,7 @@ public:
if (instance)
{
Unit* Temp = NULL;
- Temp = Unit::GetUnit((*me), instance->GetData64(DATA_SACROLASH));
+ Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
if (Temp && Temp->isDead())
{
DoScriptText(YELL_SISTER_SACROLASH_DEAD, me);
@@ -684,7 +684,7 @@ public:
struct mob_shadow_imageAI : public ScriptedAI
{
- mob_shadow_imageAI(Creature* c) : ScriptedAI(c) {}
+ mob_shadow_imageAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ShadowfuryTimer;
uint32 KillTimer;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index c65ce2c8f98..72ad1100752 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -115,9 +115,9 @@ public:
struct boss_felmystAI : public ScriptedAI
{
- boss_felmystAI(Creature* c) : ScriptedAI(c)
+ boss_felmystAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -137,7 +137,7 @@ public:
uiFlightCount = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
@@ -184,7 +184,7 @@ public:
DoScriptText(YELL_BIRTH, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(YELL_DEATH, me);
@@ -254,7 +254,7 @@ public:
events.ScheduleEvent(EVENT_FLIGHT, 60000);
break;
case PHASE_FLIGHT:
- me->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1000);
uiFlightCount = 0;
uiBreathCount = 0;
@@ -391,7 +391,7 @@ public:
}
break;
case 10:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
EnterPhase(PHASE_GROUND);
AttackStart(SelectTarget(SELECT_TARGET_TOPAGGRO));
@@ -522,7 +522,7 @@ public:
struct mob_felmyst_vaporAI : public ScriptedAI
{
- mob_felmyst_vaporAI(Creature* c) : ScriptedAI(c)
+ mob_felmyst_vaporAI(Creature* creature) : ScriptedAI(creature)
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetSpeed(MOVE_RUN, 0.8f);
@@ -555,7 +555,7 @@ public:
struct mob_felmyst_trailAI : public ScriptedAI
{
- mob_felmyst_trailAI(Creature* c) : ScriptedAI(c)
+ mob_felmyst_trailAI(Creature* creature) : ScriptedAI(creature)
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_TRAIL_TRIGGER, true);
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index d7c90732a80..f783fcc1eb5 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -115,9 +115,9 @@ public:
struct boss_kalecgosAI : public ScriptedAI
{
- boss_kalecgosAI(Creature* c) : ScriptedAI(c)
+ boss_kalecgosAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
SathGUID = 0;
DoorGUID = 0;
bJustReset = false;
@@ -159,7 +159,7 @@ public:
if (!bJustReset) //first reset at create
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->SetVisible(true);
me->SetStandState(UNIT_STAND_STATE_SLEEP);
}
@@ -231,7 +231,7 @@ public:
if (ResetTimer <= diff)
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->SetVisible(true);
me->SetStandState(UNIT_STAND_STATE_SLEEP);
ResetTimer = 10000;
@@ -400,7 +400,7 @@ public:
TalkTimer = 10000;
break;
case 3:
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(0, FLY_X, FLY_Y, FLY_Z);
TalkTimer = 600000;
break;
@@ -418,7 +418,7 @@ public:
TalkTimer = 3000;
break;
case 2:
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(0, FLY_X, FLY_Y, FLY_Z);
TalkTimer = 15000;
break;
@@ -456,9 +456,9 @@ public:
bool isEnraged; // if demon is enraged
- boss_kalecAI(Creature* c) : ScriptedAI(c)
+ boss_kalecAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
void Reset()
@@ -575,9 +575,9 @@ public:
struct boss_sathrovarrAI : public ScriptedAI
{
- boss_sathrovarrAI(Creature* c) : ScriptedAI(c)
+ boss_sathrovarrAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
KalecGUID = 0;
KalecgosGUID = 0;
}
@@ -676,7 +676,9 @@ public:
void TeleportAllPlayersBack()
{
Map* map = me->GetMap();
- if (!map->IsDungeon()) return;
+ if (!map->IsDungeon())
+ return;
+
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 337eea13438..8a64d45abcb 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -251,9 +251,9 @@ public:
struct boss_kalecgos_kjAI : public ScriptedAI
{
- boss_kalecgos_kjAI(Creature* c) : ScriptedAI(c)
+ boss_kalecgos_kjAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -264,7 +264,7 @@ public:
{
OrbsEmpowered = 0;
EmpowerCount = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_LEVITATING);
+ me->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->setActive(true);
@@ -406,9 +406,9 @@ public:
struct mob_kiljaeden_controllerAI : public Scripted_NoMovementAI
{
- mob_kiljaeden_controllerAI(Creature* c) : Scripted_NoMovementAI(c), summons(me)
+ mob_kiljaeden_controllerAI(Creature* creature) : Scripted_NoMovementAI(creature), summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -434,8 +434,9 @@ public:
{
phase = PHASE_DECEIVERS;
- if (Creature* pKalecKJ = Unit::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ)))
- CAST_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs();
+ if (instance)
+ if (Creature* pKalecKJ = Unit::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ)))
+ CAST_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs();
deceiverDeathCount = 0;
bSummonedDeceivers = false;
bKiljaedenDeath = false;
@@ -451,7 +452,7 @@ public:
summoned->CastSpell(summoned, SPELL_SHADOW_CHANNELING, false);
break;
case CREATURE_ANVEENA:
- summoned->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_LEVITATING);
+ summoned->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_DISABLE_GRAVITY);
summoned->CastSpell(summoned, SPELL_ANVEENA_PRISON, true);
summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
break;
@@ -506,9 +507,9 @@ public:
struct boss_kiljaedenAI : public Scripted_NoMovementAI
{
- boss_kiljaedenAI(Creature* c) : Scripted_NoMovementAI(c), summons(me)
+ boss_kiljaedenAI(Creature* creature) : Scripted_NoMovementAI(creature), summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -660,17 +661,9 @@ public:
DoScriptText(RAND(SAY_KJ_REFLECTION1, SAY_KJ_REFLECTION2), me);
for (uint8 i = 0; i < 4; ++i)
{
- float x, y, z;
- Unit* target = NULL;
- for (uint8 i = 0; i < 6; ++i)
- {
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
- if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0))
- break;
- }
-
- if (target)
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true, -SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT))
{
+ float x, y, z;
target->GetPosition(x, y, z);
if (Creature* pSinisterReflection = me->SummonCreature(CREATURE_SINISTER_REFLECTION, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0))
{
@@ -922,9 +915,9 @@ public:
struct mob_hand_of_the_deceiverAI : public ScriptedAI
{
- mob_hand_of_the_deceiverAI(Creature* c) : ScriptedAI(c)
+ mob_hand_of_the_deceiverAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -1023,7 +1016,7 @@ public:
struct mob_felfire_portalAI : public Scripted_NoMovementAI
{
- mob_felfire_portalAI(Creature* c) : Scripted_NoMovementAI(c) {}
+ mob_felfire_portalAI(Creature* creature) : Scripted_NoMovementAI(creature) {}
uint32 uiSpawnFiendTimer;
@@ -1068,7 +1061,7 @@ public:
struct mob_volatile_felfire_fiendAI : public ScriptedAI
{
- mob_volatile_felfire_fiendAI(Creature* c) : ScriptedAI(c) {}
+ mob_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiExplodeTimer;
@@ -1126,7 +1119,7 @@ public:
struct mob_armageddonAI : public Scripted_NoMovementAI
{
- mob_armageddonAI(Creature* c) : Scripted_NoMovementAI(c) {}
+ mob_armageddonAI(Creature* creature) : Scripted_NoMovementAI(creature) {}
uint8 spell;
uint32 uiTimer;
@@ -1181,9 +1174,9 @@ public:
struct mob_shield_orbAI : public ScriptedAI
{
- mob_shield_orbAI(Creature* c) : ScriptedAI(c)
+ mob_shield_orbAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -1196,7 +1189,7 @@ public:
void Reset()
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
bPointReached = true;
uiTimer = urand(500, 1000);
uiCheckTimer = 1000;
@@ -1269,7 +1262,7 @@ public:
struct mob_sinster_reflectionAI : public ScriptedAI
{
- mob_sinster_reflectionAI(Creature* c) : ScriptedAI(c) {}
+ mob_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature) {}
uint8 victimClass;
uint32 uiTimer[3];
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index 9b5d941589b..66030a1c78c 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -113,9 +113,9 @@ public:
struct boss_entropiusAI : public ScriptedAI
{
- boss_entropiusAI(Creature* c) : ScriptedAI(c), Summons(me)
+ boss_entropiusAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -213,9 +213,9 @@ public:
struct boss_muruAI : public Scripted_NoMovementAI
{
- boss_muruAI(Creature* c) : Scripted_NoMovementAI(c), Summons(me)
+ boss_muruAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -378,9 +378,9 @@ public:
struct npc_muru_portalAI : public Scripted_NoMovementAI
{
- npc_muru_portalAI(Creature* c) : Scripted_NoMovementAI(c), Summons(me)
+ npc_muru_portalAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -462,7 +462,7 @@ public:
struct npc_dark_fiendAI : public ScriptedAI
{
- npc_dark_fiendAI(Creature* c) : ScriptedAI(c) {}
+ npc_dark_fiendAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WaitTimer;
bool InAction;
@@ -525,7 +525,7 @@ public:
struct npc_void_sentinelAI : public ScriptedAI
{
- npc_void_sentinelAI(Creature* c) : ScriptedAI(c){}
+ npc_void_sentinelAI(Creature* creature) : ScriptedAI(creature){}
uint32 PulseTimer;
uint32 VoidBlastTimer;
@@ -581,9 +581,9 @@ public:
struct npc_blackholeAI : public ScriptedAI
{
- npc_blackholeAI(Creature* c) : ScriptedAI(c)
+ npc_blackholeAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index 0872ac9adca..7a946e9d5bf 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -153,7 +153,7 @@ class boss_archaedas : public CreatureScript
// wake a wall minion
if (uiWallMinionTimer <= uiDiff)
{
- instance->SetData (DATA_MINIONS, IN_PROGRESS);
+ instance->SetData(DATA_MINIONS, IN_PROGRESS);
uiWallMinionTimer = 10000;
} else uiWallMinionTimer -= uiDiff;
@@ -232,7 +232,7 @@ class mob_archaedas_minions : public CreatureScript
struct mob_archaedas_minionsAI : public ScriptedAI
{
- mob_archaedas_minionsAI(Creature* c) : ScriptedAI(c)
+ mob_archaedas_minionsAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
@@ -394,7 +394,7 @@ class go_altar_of_archaedas : public GameObjectScript
{
}
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
InstanceScript* instance = player->GetInstanceScript();
if (!instance)
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
index 60d17a7e5d2..fea64c55377 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
@@ -184,8 +184,8 @@ class instance_uldaman : public InstanceMapScript
return; // only want the first one we find
}
// if we get this far than all four are dead so open the door
- SetData (DATA_ALTAR_DOORS, DONE);
- SetDoor (uiArchaedasTempleDoor, true); //open next the door too
+ SetData(DATA_ALTAR_DOORS, DONE);
+ SetDoor(uiArchaedasTempleDoor, true); //open next the door too
}
void ActivateWallMinions()
@@ -320,7 +320,7 @@ class instance_uldaman : public InstanceMapScript
uiIronayaSealDoorTimer -= diff;
}
- void SetData (uint32 type, uint32 data)
+ void SetData(uint32 type, uint32 data)
{
switch (type)
{
@@ -386,7 +386,7 @@ class instance_uldaman : public InstanceMapScript
}
}
- void SetData64 (uint32 type, uint64 data)
+ void SetData64(uint32 type, uint64 data)
{
// Archaedas
if (type == 0)
@@ -425,7 +425,8 @@ class instance_uldaman : public InstanceMapScript
void OnCreatureCreate(Creature* creature)
{
- switch (creature->GetEntry()) {
+ switch (creature->GetEntry())
+ {
case 4857: // Stone Keeper
SetFrozenState (creature);
vStoneKeeper.push_back(creature->GetGUID());
@@ -458,10 +459,10 @@ class instance_uldaman : public InstanceMapScript
uiArchaedasGUID = creature->GetGUID();
break;
- } // end switch
- } // end OnCreatureCreate
+ }
+ }
- uint64 GetData64 (uint32 identifier)
+ uint64 GetData64(uint32 identifier)
{
if (identifier == 0) return uiWhoWokeuiArchaedasGUID;
if (identifier == 1) return vVaultWalker[0]; // VaultWalker1
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
index eee6b08d834..a715dbfce9d 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
@@ -72,9 +72,9 @@ class boss_akilzon : public CreatureScript
struct boss_akilzonAI : public ScriptedAI
{
- boss_akilzonAI(Creature* c) : ScriptedAI(c)
+ boss_akilzonAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -131,7 +131,7 @@ class boss_akilzon : public CreatureScript
instance->SetData(DATA_AKILZONEVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
me->MonsterYell(SAY_ONDEATH, LANG_UNIVERSAL, 0);
DoPlaySoundToSet(me, SOUND_ONDEATH);
@@ -209,9 +209,7 @@ class boss_akilzon : public CreatureScript
for (std::list<Unit*>::const_iterator i = tempUnitMap.begin(); i != tempUnitMap.end(); ++i)
{
if (!Cloud->IsWithinDist(*i, 6, false))
- {
Cloud->CastCustomSpell(*i, 43137, &bp0, NULL, NULL, true, 0, 0, me->GetGUID());
- }
}
// visual
float x, y, z;
@@ -311,7 +309,8 @@ class boss_akilzon : public CreatureScript
isRaining = true;
}
- if (ElectricalStorm_Timer <= diff) {
+ if (ElectricalStorm_Timer <= diff)
+ {
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true);
if (!target)
{
@@ -324,16 +323,16 @@ class boss_akilzon : public CreatureScript
target->GetPosition(x, y, z);
if (target)
{
- target->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ target->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
target->MonsterMoveWithSpeed(x, y, me->GetPositionZ()+15, 0);
}
Unit* Cloud = me->SummonTrigger(x, y, me->GetPositionZ()+16, 0, 15000);
if (Cloud)
{
CloudGUID = Cloud->GetGUID();
- Cloud->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ Cloud->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
Cloud->StopMoving();
- Cloud->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.0f);
+ Cloud->SetObjectScale(1.0f);
Cloud->setFaction(35);
Cloud->SetMaxHealth(9999999);
Cloud->SetHealth(9999999);
@@ -390,15 +389,11 @@ class boss_akilzon : public CreatureScript
class mob_akilzon_eagle : public CreatureScript
{
public:
-
- mob_akilzon_eagle()
- : CreatureScript("mob_akilzon_eagle")
- {
- }
+ mob_akilzon_eagle() : CreatureScript("mob_akilzon_eagle") { }
struct mob_akilzon_eagleAI : public ScriptedAI
{
- mob_akilzon_eagleAI(Creature* c) : ScriptedAI(c) {}
+ mob_akilzon_eagleAI(Creature* creature) : ScriptedAI(creature) { }
uint32 EagleSwoop_Timer;
bool arrived;
@@ -409,10 +404,13 @@ class mob_akilzon_eagle : public CreatureScript
EagleSwoop_Timer = urand(5000, 10000);
arrived = true;
TargetGUID = 0;
- me->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
}
- void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
+ void EnterCombat(Unit* /*who*/)
+ {
+ DoZoneInCombat();
+ }
void MoveInLineOfSight(Unit* /*who*/) {}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
index db0e201298c..3baa6ebdf62 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
@@ -83,9 +83,9 @@ class boss_halazzi : public CreatureScript
struct boss_halazziAI : public ScriptedAI
{
- boss_halazziAI(Creature* c) : ScriptedAI(c)
+ boss_halazziAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -324,7 +324,7 @@ class boss_halazzi : public CreatureScript
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_HALAZZIEVENT, DONE);
@@ -352,7 +352,7 @@ class mob_halazzi_lynx : public CreatureScript
struct mob_halazzi_lynxAI : public ScriptedAI
{
- mob_halazzi_lynxAI(Creature* c) : ScriptedAI(c) {}
+ mob_halazzi_lynxAI(Creature* creature) : ScriptedAI(creature) {}
uint32 FrenzyTimer;
uint32 shredder_timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
index 5efd4af55ea..b5698d851f8 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
@@ -179,14 +179,17 @@ struct boss_hexlord_addAI : public ScriptedAI
{
InstanceScript* instance;
- boss_hexlord_addAI(Creature* c) : ScriptedAI(c)
+ boss_hexlord_addAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
void Reset() {}
- void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
+ void EnterCombat(Unit* /*who*/)
+ {
+ DoZoneInCombat();
+ }
void UpdateAI(const uint32 /*diff*/)
{
@@ -211,9 +214,9 @@ class boss_hexlord_malacrass : public CreatureScript
struct boss_hex_lord_malacrassAI : public ScriptedAI
{
- boss_hex_lord_malacrassAI(Creature* c) : ScriptedAI(c)
+ boss_hex_lord_malacrassAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
SelectAddEntry();
for (uint8 i = 0; i < 4; ++i)
AddGUID[i] = 0;
@@ -264,7 +267,7 @@ class boss_hexlord_malacrass : public CreatureScript
for (uint8 i = 0; i < 4; ++i)
{
- Unit* Temp = Unit::GetUnit((*me), AddGUID[i]);
+ Unit* Temp = Unit::GetUnit(*me, AddGUID[i]);
if (Temp && Temp->isAlive())
CAST_CRE(Temp)->AI()->AttackStart(me->getVictim());
else
@@ -290,7 +293,7 @@ class boss_hexlord_malacrass : public CreatureScript
}
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_HEXLORDEVENT, DONE);
@@ -298,9 +301,9 @@ class boss_hexlord_malacrass : public CreatureScript
me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, 0);
DoPlaySoundToSet(me, SOUND_YELL_DEATH);
- for (uint8 i = 0; i < 4 ; ++i)
+ for (uint8 i = 0; i < 4; ++i)
{
- Unit* Temp = Unit::GetUnit((*me), AddGUID[i]);
+ Unit* Temp = Unit::GetUnit(*me, AddGUID[i]);
if (Temp && Temp->isAlive())
Temp->DealDamage(Temp, Temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
@@ -488,7 +491,7 @@ class boss_thurg : public CreatureScript
struct boss_thurgAI : public boss_hexlord_addAI
{
- boss_thurgAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_thurgAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 bloodlust_timer;
uint32 cleave_timer;
@@ -548,7 +551,7 @@ class boss_alyson_antille : public CreatureScript
struct boss_alyson_antilleAI : public boss_hexlord_addAI
{
//Holy Priest
- boss_alyson_antilleAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_alyson_antilleAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 flashheal_timer;
uint32 dispelmagic_timer;
@@ -637,7 +640,7 @@ class boss_alyson_antille : public CreatureScript
struct boss_gazakrothAI : public boss_hexlord_addAI
{
- boss_gazakrothAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_gazakrothAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 firebolt_timer;
@@ -691,7 +694,7 @@ class boss_lord_raadan : public CreatureScript
struct boss_lord_raadanAI : public boss_hexlord_addAI
{
- boss_lord_raadanAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_lord_raadanAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 flamebreath_timer;
uint32 thunderclap_timer;
@@ -744,7 +747,7 @@ class boss_darkheart : public CreatureScript
struct boss_darkheartAI : public boss_hexlord_addAI
{
- boss_darkheartAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_darkheartAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 psychicwail_timer;
@@ -787,7 +790,7 @@ class boss_slither : public CreatureScript
struct boss_slitherAI : public boss_hexlord_addAI
{
- boss_slitherAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_slitherAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 venomspit_timer;
@@ -847,7 +850,7 @@ class boss_fenstalker : public CreatureScript
struct boss_fenstalkerAI : public boss_hexlord_addAI
{
- boss_fenstalkerAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_fenstalkerAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 volatileinf_timer;
@@ -894,7 +897,7 @@ class boss_koragg : public CreatureScript
struct boss_koraggAI : public boss_hexlord_addAI
{
- boss_koraggAI(Creature* c) : boss_hexlord_addAI(c) {}
+ boss_koraggAI(Creature* creature) : boss_hexlord_addAI(creature) {}
uint32 coldstare_timer;
uint32 mightyblow_timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
index 21245209e45..a2125c45689 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
@@ -113,9 +113,9 @@ class boss_janalai : public CreatureScript
struct boss_janalaiAI : public ScriptedAI
{
- boss_janalaiAI(Creature* c) : ScriptedAI(c)
+ boss_janalaiAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -159,7 +159,7 @@ class boss_janalai : public CreatureScript
HatchAllEggs(1);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -221,12 +221,13 @@ class boss_janalai : public CreatureScript
dy = float(irand(-area_dy/2, area_dy/2));
Creature* bomb = DoSpawnCreature(MOB_FIRE_BOMB, dx, dy, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000);
- if (bomb) FireBombGUIDs[i] = bomb->GetGUID();
+ if (bomb)
+ FireBombGUIDs[i] = bomb->GetGUID();
}
BombCount = 0;
}
- bool HatchAllEggs(uint32 uiAction) //1: reset, 2: isHatching all
+ bool HatchAllEggs(uint32 action) //1: reset, 2: isHatching all
{
std::list<Creature*> templist;
float x, y, z;
@@ -251,9 +252,9 @@ class boss_janalai : public CreatureScript
for (std::list<Creature*>::const_iterator i = templist.begin(); i != templist.end(); ++i)
{
- if (uiAction == 1)
+ if (action == 1)
(*i)->SetDisplayId(10056);
- else if (uiAction == 2 &&(*i)->GetDisplayId() != 11686)
+ else if (action == 2 &&(*i)->GetDisplayId() != 11686)
(*i)->CastSpell(*i, SPELL_HATCH_EGG, false);
}
return true;
@@ -288,7 +289,7 @@ class boss_janalai : public CreatureScript
{
if (BombCount < 40)
{
- if (Unit* FireBomb = Unit::GetUnit((*me), FireBombGUIDs[BombCount]))
+ if (Unit* FireBomb = Unit::GetUnit(*me, FireBombGUIDs[BombCount]))
{
FireBomb->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoCast(FireBomb, SPELL_FIRE_BOMB_THROW, true);
@@ -374,7 +375,9 @@ class boss_janalai : public CreatureScript
//Teleport every Player into the middle
Map* map = me->GetMap();
- if (!map->IsDungeon()) return;
+ if (!map->IsDungeon())
+ return;
+
Map::PlayerList const &PlayerList = map->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
if (Player* i_pl = i->getSource())
@@ -448,7 +451,7 @@ class mob_janalai_firebomb : public CreatureScript
struct mob_janalai_firebombAI : public ScriptedAI
{
- mob_janalai_firebombAI(Creature* c) : ScriptedAI(c){}
+ mob_janalai_firebombAI(Creature* creature) : ScriptedAI(creature){}
void Reset() {}
@@ -484,9 +487,9 @@ class mob_janalai_hatcher : public CreatureScript
struct mob_janalai_hatcherAI : public ScriptedAI
{
- mob_janalai_hatcherAI(Creature* c) : ScriptedAI(c)
+ mob_janalai_hatcherAI(Creature* creature) : ScriptedAI(creature)
{
- instance =c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -501,7 +504,7 @@ class mob_janalai_hatcher : public CreatureScript
void Reset()
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
side =(me->GetPositionY() < 1150);
waypoint = 0;
isHatching = false;
@@ -616,9 +619,9 @@ class mob_janalai_hatchling : public CreatureScript
struct mob_janalai_hatchlingAI : public ScriptedAI
{
- mob_janalai_hatchlingAI(Creature* c) : ScriptedAI(c)
+ mob_janalai_hatchlingAI(Creature* creature) : ScriptedAI(creature)
{
- instance =c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -632,7 +635,7 @@ class mob_janalai_hatchling : public CreatureScript
else
me->GetMotionMaster()->MovePoint(0, hatcherway[1][3][0]+rand()%4-2, 1150.0f+rand()%4-2, hatcherway[1][3][2]);
- me->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
}
void EnterCombat(Unit* /*who*/) {/*DoZoneInCombat();*/}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
index 954f232f786..48a406f22a4 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
@@ -101,11 +101,11 @@ class boss_nalorakk : public CreatureScript
struct boss_nalorakkAI : public ScriptedAI
{
- boss_nalorakkAI(Creature* c) : ScriptedAI(c)
+ boss_nalorakkAI(Creature* creature) : ScriptedAI(creature)
{
MoveEvent = true;
MovePhase = 0;
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -136,7 +136,7 @@ class boss_nalorakk : public CreatureScript
inMove = false;
waitTimer = 0;
me->SetSpeed(MOVE_RUN, 2);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
}else
{
(*me).GetMotionMaster()->MovePoint(0, NalorakkWay[7][0], NalorakkWay[7][1], NalorakkWay[7][2]);
@@ -276,7 +276,7 @@ class boss_nalorakk : public CreatureScript
DoZoneInCombat();
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_NALORAKKEVENT, DONE);
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
index b5130630d05..2df202af088 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
@@ -151,9 +151,9 @@ class boss_zuljin : public CreatureScript
struct boss_zuljinAI : public ScriptedAI
{
- boss_zuljinAI(Creature* c) : ScriptedAI(c), Summons(me)
+ boss_zuljinAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -252,7 +252,7 @@ class boss_zuljin : public CreatureScript
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_ZULJINEVENT, DONE);
@@ -604,7 +604,7 @@ class mob_zuljin_vortex : public CreatureScript
struct mob_zuljin_vortexAI : public ScriptedAI
{
- mob_zuljin_vortexAI(Creature* c) : ScriptedAI(c) {}
+ mob_zuljin_vortexAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
index ac1554bd00e..884fe109785 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
@@ -109,7 +109,8 @@ class instance_zulaman : public InstanceMapScript
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -188,7 +189,9 @@ class instance_zulaman : public InstanceMapScript
void Load(const char* load)
{
- if (!load) return;
+ if (!load)
+ return;
+
std::istringstream ss(load);
//sLog->outError("TSCR: Zul'aman loaded, %s.", ss.str().c_str());
char dataHead; // S
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
index bf951dd186c..bfb22483b09 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
@@ -49,9 +49,9 @@ class npc_forest_frog : public CreatureScript
struct npc_forest_frogAI : public ScriptedAI
{
- npc_forest_frogAI(Creature* c) : ScriptedAI(c)
+ npc_forest_frogAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -120,24 +120,29 @@ static uint32 ChestEntry[] = {186648, 187021, 186672, 186667};
class npc_zulaman_hostage : public CreatureScript
{
public:
-
- npc_zulaman_hostage()
- : CreatureScript("npc_zulaman_hostage")
- {
- }
+ npc_zulaman_hostage() : CreatureScript("npc_zulaman_hostage") { }
struct npc_zulaman_hostageAI : public ScriptedAI
{
- npc_zulaman_hostageAI(Creature* c) : ScriptedAI(c) {IsLoot = false;}
+ npc_zulaman_hostageAI(Creature* creature) : ScriptedAI(creature)
+ {
+ IsLoot = false;
+ }
+
bool IsLoot;
uint64 PlayerGUID;
+
void Reset() {}
+
void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* /*who*/)
+
+ void JustDied(Unit* /*killer*/)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
- if (player) player->SendLoot(me->GetGUID(), LOOT_CORPSE);
+ if (player)
+ player->SendLoot(me->GetGUID(), LOOT_CORPSE);
}
+
void UpdateAI(const uint32 /*diff*/)
{
if (IsLoot)
@@ -157,14 +162,16 @@ class npc_zulaman_hostage : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
player->CLOSE_GOSSIP_MENU();
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
return true;
+
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
InstanceScript* instance = creature->GetInstanceScript();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
index 27ddc215543..4ba0c187973 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
@@ -61,10 +61,10 @@ class boss_arlokk : public CreatureScript
{
boss_arlokkAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiShadowWordPain_Timer;
uint32 m_uiGouge_Timer;
@@ -110,8 +110,8 @@ class boss_arlokk : public CreatureScript
void JustReachedHome()
{
- if (m_instance)
- m_instance->SetData(DATA_ARLOKK, NOT_STARTED);
+ if (instance)
+ instance->SetData(DATA_ARLOKK, NOT_STARTED);
//we should be summoned, so despawn
me->DespawnOrUnsummon();
@@ -124,8 +124,8 @@ class boss_arlokk : public CreatureScript
me->SetDisplayId(MODEL_ID_NORMAL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- if (m_instance)
- m_instance->SetData(DATA_ARLOKK, DONE);
+ if (instance)
+ instance->SetData(DATA_ARLOKK, DONE);
}
void DoSummonPhanters()
@@ -237,7 +237,7 @@ class boss_arlokk : public CreatureScript
me->SetDisplayId(MODEL_ID_PANTHER);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- const CreatureTemplate* cinfo = me->GetCreatureInfo();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
me->UpdateDamagePhysical(BASE_ATTACK);
@@ -271,12 +271,12 @@ class go_gong_of_bethekk : public GameObjectScript
bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- if (InstanceScript* m_instance = go->GetInstanceScript())
+ if (InstanceScript* instance = go->GetInstanceScript())
{
- if (m_instance->GetData(DATA_ARLOKK) == DONE || m_instance->GetData(DATA_ARLOKK) == IN_PROGRESS)
+ if (instance->GetData(DATA_ARLOKK) == DONE || instance->GetData(DATA_ARLOKK) == IN_PROGRESS)
return true;
- m_instance->SetData(DATA_ARLOKK, IN_PROGRESS);
+ instance->SetData(DATA_ARLOKK, IN_PROGRESS);
return true;
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
index a944a857f74..ce2fd0848f9 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
@@ -32,15 +32,11 @@ EndScriptData */
class boss_gahzranka : public CreatureScript
{
public:
-
- boss_gahzranka()
- : CreatureScript("boss_gahzranka")
- {
- }
+ boss_gahzranka() : CreatureScript("boss_gahzranka") { }
struct boss_gahzrankaAI : public ScriptedAI
{
- boss_gahzrankaAI(Creature* c) : ScriptedAI(c) {}
+ boss_gahzrankaAI(Creature* creature) : ScriptedAI(creature) { }
uint32 Frostbreath_Timer;
uint32 MassiveGeyser_Timer;
uint32 Slam_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
index 68ae6dbbf0c..cdd45a3fa0d 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
@@ -32,15 +32,11 @@ EndScriptData */
class boss_grilek : public CreatureScript
{
public:
-
- boss_grilek()
- : CreatureScript("boss_grilek")
- {
- }
+ boss_grilek() : CreatureScript("boss_grilek") { }
struct boss_grilekAI : public ScriptedAI
{
- boss_grilekAI(Creature* c) : ScriptedAI(c) {}
+ boss_grilekAI(Creature* creature) : ScriptedAI(creature) { }
uint32 Avartar_Timer;
uint32 GroundTremor_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
index 6a1309983c3..9edd82c39b0 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
@@ -55,12 +55,12 @@ class boss_hakkar : public CreatureScript
struct boss_hakkarAI : public ScriptedAI
{
- boss_hakkarAI(Creature* c) : ScriptedAI(c)
+ boss_hakkarAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 BloodSiphon_Timer;
uint32 CorruptedBlood_Timer;
@@ -156,9 +156,9 @@ class boss_hakkar : public CreatureScript
//Checking if Jeklik is dead. If not we cast her Aspect
if (CheckJeklik_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_JEKLIK) != DONE)
+ if (instance->GetData(DATA_JEKLIK) != DONE)
{
if (AspectOfJeklik_Timer <= diff)
{
@@ -173,9 +173,9 @@ class boss_hakkar : public CreatureScript
//Checking if Venoxis is dead. If not we cast his Aspect
if (CheckVenoxis_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_VENOXIS) != DONE)
+ if (instance->GetData(DATA_VENOXIS) != DONE)
{
if (AspectOfVenoxis_Timer <= diff)
{
@@ -190,9 +190,9 @@ class boss_hakkar : public CreatureScript
//Checking if Marli is dead. If not we cast her Aspect
if (CheckMarli_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_MARLI) != DONE)
+ if (instance->GetData(DATA_MARLI) != DONE)
{
if (AspectOfMarli_Timer <= diff)
{
@@ -208,9 +208,9 @@ class boss_hakkar : public CreatureScript
//Checking if Thekal is dead. If not we cast his Aspect
if (CheckThekal_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_THEKAL) != DONE)
+ if (instance->GetData(DATA_THEKAL) != DONE)
{
if (AspectOfThekal_Timer <= diff)
{
@@ -225,9 +225,9 @@ class boss_hakkar : public CreatureScript
//Checking if Arlokk is dead. If yes we cast her Aspect
if (CheckArlokk_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_ARLOKK) != DONE)
+ if (instance->GetData(DATA_ARLOKK) != DONE)
{
if (AspectOfArlokk_Timer <= diff)
{
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
index 69a4f5dbab5..27c46b8e0f2 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
@@ -40,7 +40,7 @@ class boss_hazzarah : public CreatureScript
struct boss_hazzarahAI : public ScriptedAI
{
- boss_hazzarahAI(Creature* c) : ScriptedAI(c) {}
+ boss_hazzarahAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ManaBurn_Timer;
uint32 Sleep_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
index d2ac4f3bceb..7d2215f8311 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
@@ -54,12 +54,12 @@ class boss_jeklik : public CreatureScript
struct boss_jeklikAI : public ScriptedAI
{
- boss_jeklikAI(Creature* c) : ScriptedAI(c)
+ boss_jeklikAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 Charge_Timer;
uint32 SonicBurst_Timer;
@@ -94,12 +94,12 @@ class boss_jeklik : public CreatureScript
DoCast(me, SPELL_BAT_FORM);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
- if (m_instance)
- m_instance->SetData(DATA_JEKLIK, DONE);
+ if (instance)
+ instance->SetData(DATA_JEKLIK, DONE);
}
void UpdateAI(const uint32 diff)
@@ -236,12 +236,12 @@ class mob_batrider : public CreatureScript
struct mob_batriderAI : public ScriptedAI
{
- mob_batriderAI(Creature* c) : ScriptedAI(c)
+ mob_batriderAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 Bomb_Timer;
uint32 Check_Timer;
@@ -274,9 +274,9 @@ class mob_batrider : public CreatureScript
//Check_Timer
if (Check_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_JEKLIK) == DONE)
+ if (instance->GetData(DATA_JEKLIK) == DONE)
{
me->setDeathState(JUST_DIED);
me->RemoveCorpse();
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
index 132812c932a..f4a17da56fb 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
@@ -52,7 +52,7 @@ class boss_jindo : public CreatureScript
struct boss_jindoAI : public ScriptedAI
{
- boss_jindoAI(Creature* c) : ScriptedAI(c) {}
+ boss_jindoAI(Creature* creature) : ScriptedAI(creature) {}
uint32 BrainWashTotem_Timer;
uint32 HealingWard_Timer;
@@ -187,9 +187,9 @@ class mob_healing_ward : public CreatureScript
struct mob_healing_wardAI : public ScriptedAI
{
- mob_healing_wardAI(Creature* c) : ScriptedAI(c)
+ mob_healing_wardAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 Heal_Timer;
@@ -212,7 +212,7 @@ class mob_healing_ward : public CreatureScript
{
if (instance)
{
- Unit* pJindo = Unit::GetUnit((*me), instance->GetData64(DATA_JINDO));
+ Unit* pJindo = Unit::GetUnit(*me, instance->GetData64(DATA_JINDO));
if (pJindo)
DoCast(pJindo, SPELL_HEAL);
}
@@ -241,7 +241,7 @@ class mob_shade_of_jindo : public CreatureScript
struct mob_shade_of_jindoAI : public ScriptedAI
{
- mob_shade_of_jindoAI(Creature* c) : ScriptedAI(c) {}
+ mob_shade_of_jindoAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ShadowShock_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
index 10708cd7f95..cbe1178e6c4 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
@@ -55,9 +55,9 @@ class boss_mandokir : public CreatureScript
struct boss_mandokirAI : public ScriptedAI
{
- boss_mandokirAI(Creature* c) : ScriptedAI(c)
+ boss_mandokirAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 KillCount;
@@ -72,7 +72,7 @@ class boss_mandokir : public CreatureScript
float targetY;
float targetZ;
- InstanceScript* m_instance;
+ InstanceScript* instance;
bool endWatch;
bool someWatched;
@@ -116,9 +116,9 @@ class boss_mandokir : public CreatureScript
{
DoScriptText(SAY_DING_KILL, me);
- if (m_instance)
+ if (instance)
{
- uint64 JindoGUID = m_instance->GetData64(DATA_JINDO);
+ uint64 JindoGUID = instance->GetData64(DATA_JINDO);
if (JindoGUID)
{
if (Unit* jTemp = Unit::GetUnit(*me, JindoGUID))
@@ -256,9 +256,9 @@ class boss_mandokir : public CreatureScript
//Checking if Ohgan is dead. If yes Mandokir will enrage.
if (Check_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_OHGAN) == DONE)
+ if (instance->GetData(DATA_OHGAN) == DONE)
{
if (!RaptorDead)
{
@@ -294,13 +294,13 @@ class mob_ohgan : public CreatureScript
struct mob_ohganAI : public ScriptedAI
{
- mob_ohganAI(Creature* c) : ScriptedAI(c)
+ mob_ohganAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 SunderArmor_Timer;
- InstanceScript* m_instance;
+ InstanceScript* instance;
void Reset()
{
@@ -309,10 +309,10 @@ class mob_ohgan : public CreatureScript
void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
- if (m_instance)
- m_instance->SetData(DATA_OHGAN, DONE);
+ if (instance)
+ instance->SetData(DATA_OHGAN, DONE);
}
void UpdateAI (const uint32 diff)
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
index 38d9be78f2a..44ab5d851f5 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
@@ -51,12 +51,12 @@ class boss_marli : public CreatureScript
struct boss_marliAI : public ScriptedAI
{
- boss_marliAI(Creature* c) : ScriptedAI(c)
+ boss_marliAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 SpawnStartSpiders_Timer;
uint32 PoisonVolley_Timer;
@@ -88,11 +88,11 @@ class boss_marli : public CreatureScript
DoScriptText(SAY_AGGRO, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
- if (m_instance)
- m_instance->SetData(DATA_MARLI, DONE);
+ if (instance)
+ instance->SetData(DATA_MARLI, DONE);
}
void UpdateAI(const uint32 diff)
@@ -156,7 +156,7 @@ class boss_marli : public CreatureScript
{
DoScriptText(SAY_TRANSFORM, me);
DoCast(me, SPELL_SPIDER_FORM);
- const CreatureTemplate* cinfo = me->GetCreatureInfo();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
me->UpdateDamagePhysical(BASE_ATTACK);
@@ -196,7 +196,7 @@ class boss_marli : public CreatureScript
if (TransformBack_Timer <= diff)
{
me->SetDisplayId(15220);
- const CreatureTemplate* cinfo = me->GetCreatureInfo();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 1)));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 1)));
me->UpdateDamagePhysical(BASE_ATTACK);
@@ -230,7 +230,7 @@ class mob_spawn_of_marli : public CreatureScript
struct mob_spawn_of_marliAI : public ScriptedAI
{
- mob_spawn_of_marliAI(Creature* c) : ScriptedAI(c) {}
+ mob_spawn_of_marliAI(Creature* creature) : ScriptedAI(creature) {}
uint32 LevelUp_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
index f988d0df77a..81260c28d73 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
@@ -42,7 +42,7 @@ class boss_renataki : public CreatureScript
struct boss_renatakiAI : public ScriptedAI
{
- boss_renatakiAI(Creature* c) : ScriptedAI(c) {}
+ boss_renatakiAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Invisible_Timer;
uint32 Ambush_Timer;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
index 4185ba2f3e7..3da74d16dc3 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
@@ -66,9 +66,9 @@ class boss_thekal : public CreatureScript
struct boss_thekalAI : public ScriptedAI
{
- boss_thekalAI(Creature* c) : ScriptedAI(c)
+ boss_thekalAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 MortalCleave_Timer;
@@ -81,7 +81,7 @@ class boss_thekal : public CreatureScript
uint32 Check_Timer;
uint32 Resurrect_Timer;
- InstanceScript* m_instance;
+ InstanceScript* instance;
bool Enraged;
bool PhaseTwo;
bool WasDead;
@@ -108,17 +108,17 @@ class boss_thekal : public CreatureScript
DoScriptText(SAY_AGGRO, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
- if (m_instance)
- m_instance->SetData(DATA_THEKAL, DONE);
+ if (instance)
+ instance->SetData(DATA_THEKAL, DONE);
}
void JustReachedHome()
{
- if (m_instance)
- m_instance->SetData(DATA_THEKAL, NOT_STARTED);
+ if (instance)
+ instance->SetData(DATA_THEKAL, NOT_STARTED);
}
void UpdateAI(const uint32 diff)
@@ -129,26 +129,26 @@ class boss_thekal : public CreatureScript
//Check_Timer for the death of LorKhan and Zath.
if (!WasDead && Check_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_LORKHAN) == SPECIAL)
+ if (instance->GetData(DATA_LORKHAN) == SPECIAL)
{
//Resurrect LorKhan
- if (Unit* pLorKhan = Unit::GetUnit((*me), m_instance->GetData64(DATA_LORKHAN)))
+ if (Unit* pLorKhan = Unit::GetUnit(*me, instance->GetData64(DATA_LORKHAN)))
{
pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pLorKhan->setFaction(14);
pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
pLorKhan->SetFullHealth();
- m_instance->SetData(DATA_LORKHAN, DONE);
+ instance->SetData(DATA_LORKHAN, DONE);
}
}
- if (m_instance->GetData(DATA_ZATH) == SPECIAL)
+ if (instance->GetData(DATA_ZATH) == SPECIAL)
{
//Resurrect Zath
- Unit* pZath = Unit::GetUnit((*me), m_instance->GetData64(DATA_ZATH));
+ Unit* pZath = Unit::GetUnit(*me, instance->GetData64(DATA_ZATH));
if (pZath)
{
pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
@@ -156,7 +156,7 @@ class boss_thekal : public CreatureScript
pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
pZath->SetFullHealth();
- m_instance->SetData(DATA_ZATH, DONE);
+ instance->SetData(DATA_ZATH, DONE);
}
}
}
@@ -185,8 +185,8 @@ class boss_thekal : public CreatureScript
me->SetStandState(UNIT_STAND_STATE_SLEEP);
me->AttackStop();
- if (m_instance)
- m_instance->SetData(DATA_THEKAL, SPECIAL);
+ if (instance)
+ instance->SetData(DATA_THEKAL, SPECIAL);
WasDead=true;
}
@@ -197,11 +197,11 @@ class boss_thekal : public CreatureScript
if (Resurrect_Timer <= diff)
{
DoCast(me, SPELL_TIGER_FORM);
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, 2.00f);
+ me->SetObjectScale(2.00f);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFullHealth();
- const CreatureTemplate* cinfo = me->GetCreatureInfo();
+ const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 40)));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 40)));
me->UpdateDamagePhysical(BASE_ATTACK);
@@ -277,9 +277,9 @@ class mob_zealot_lorkhan : public CreatureScript
struct mob_zealot_lorkhanAI : public ScriptedAI
{
- mob_zealot_lorkhanAI(Creature* c) : ScriptedAI(c)
+ mob_zealot_lorkhanAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 Shield_Timer;
@@ -290,7 +290,7 @@ class mob_zealot_lorkhan : public CreatureScript
bool FakeDeath;
- InstanceScript* m_instance;
+ InstanceScript* instance;
void Reset()
{
@@ -302,8 +302,8 @@ class mob_zealot_lorkhan : public CreatureScript
FakeDeath = false;
- if (m_instance)
- m_instance->SetData(DATA_LORKHAN, NOT_STARTED);
+ if (instance)
+ instance->SetData(DATA_LORKHAN, NOT_STARTED);
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -335,10 +335,10 @@ class mob_zealot_lorkhan : public CreatureScript
//Casting Greaterheal to Thekal or Zath if they are in meele range.
if (GreaterHeal_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- Unit* pThekal = Unit::GetUnit((*me), m_instance->GetData64(DATA_THEKAL));
- Unit* pZath = Unit::GetUnit((*me), m_instance->GetData64(DATA_ZATH));
+ Unit* pThekal = Unit::GetUnit(*me, instance->GetData64(DATA_THEKAL));
+ Unit* pZath = Unit::GetUnit(*me, instance->GetData64(DATA_ZATH));
if (!pThekal || !pZath)
return;
@@ -369,12 +369,12 @@ class mob_zealot_lorkhan : public CreatureScript
//Check_Timer for the death of LorKhan and Zath.
if (!FakeDeath && Check_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_THEKAL) == SPECIAL)
+ if (instance->GetData(DATA_THEKAL) == SPECIAL)
{
//Resurrect Thekal
- if (Unit* pThekal = Unit::GetUnit((*me), m_instance->GetData64(DATA_THEKAL)))
+ if (Unit* pThekal = Unit::GetUnit(*me, instance->GetData64(DATA_THEKAL)))
{
pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -383,10 +383,10 @@ class mob_zealot_lorkhan : public CreatureScript
}
}
- if (m_instance->GetData(DATA_ZATH) == SPECIAL)
+ if (instance->GetData(DATA_ZATH) == SPECIAL)
{
//Resurrect Zath
- if (Unit* pZath = Unit::GetUnit((*me), m_instance->GetData64(DATA_ZATH)))
+ if (Unit* pZath = Unit::GetUnit(*me, instance->GetData64(DATA_ZATH)))
{
pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -409,8 +409,8 @@ class mob_zealot_lorkhan : public CreatureScript
me->setFaction(35);
me->AttackStop();
- if (m_instance)
- m_instance->SetData(DATA_LORKHAN, SPECIAL);
+ if (instance)
+ instance->SetData(DATA_LORKHAN, SPECIAL);
FakeDeath = true;
}
@@ -437,9 +437,9 @@ class mob_zealot_zath : public CreatureScript
struct mob_zealot_zathAI : public ScriptedAI
{
- mob_zealot_zathAI(Creature* c) : ScriptedAI(c)
+ mob_zealot_zathAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 SweepingStrikes_Timer;
@@ -451,7 +451,7 @@ class mob_zealot_zath : public CreatureScript
bool FakeDeath;
- InstanceScript* m_instance;
+ InstanceScript* instance;
void Reset()
{
@@ -464,8 +464,8 @@ class mob_zealot_zath : public CreatureScript
FakeDeath = false;
- if (m_instance)
- m_instance->SetData(DATA_ZATH, NOT_STARTED);
+ if (instance)
+ instance->SetData(DATA_ZATH, NOT_STARTED);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -522,12 +522,12 @@ class mob_zealot_zath : public CreatureScript
//Check_Timer for the death of LorKhan and Zath.
if (!FakeDeath && Check_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(DATA_LORKHAN) == SPECIAL)
+ if (instance->GetData(DATA_LORKHAN) == SPECIAL)
{
//Resurrect LorKhan
- if (Unit* pLorKhan = Unit::GetUnit((*me), m_instance->GetData64(DATA_LORKHAN)))
+ if (Unit* pLorKhan = Unit::GetUnit(*me, instance->GetData64(DATA_LORKHAN)))
{
pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -536,10 +536,10 @@ class mob_zealot_zath : public CreatureScript
}
}
- if (m_instance->GetData(DATA_THEKAL) == SPECIAL)
+ if (instance->GetData(DATA_THEKAL) == SPECIAL)
{
//Resurrect Thekal
- if (Unit* pThekal = Unit::GetUnit((*me), m_instance->GetData64(DATA_THEKAL)))
+ if (Unit* pThekal = Unit::GetUnit(*me, instance->GetData64(DATA_THEKAL)))
{
pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -562,8 +562,8 @@ class mob_zealot_zath : public CreatureScript
me->setFaction(35);
me->AttackStop();
- if (m_instance)
- m_instance->SetData(DATA_ZATH, SPECIAL);
+ if (instance)
+ instance->SetData(DATA_ZATH, SPECIAL);
FakeDeath = true;
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
index bd6f6ec4748..06448032dff 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
@@ -186,7 +186,7 @@ class boss_venoxis : public CreatureScript
events.ScheduleEvent(EVENT_THRASH, urand(10000, 20000));
break;
- // troll form spells and actions (first part)
+ // troll form spells and Actions (first part)
case EVENT_DISPEL_MAGIC:
DoCast(me, SPELL_DISPEL_MAGIC);
events.ScheduleEvent(EVENT_DISPEL_MAGIC, urand(15000, 20000), 0, PHASE_ONE);
@@ -198,7 +198,7 @@ class boss_venoxis : public CreatureScript
case EVENT_HOLY_NOVA:
_inMeleeRange = 0;
- for (uint8 i = 0; i < 10 ; ++i)
+ for (uint8 i = 0; i < 10; ++i)
{
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, i))
// check if target is within melee-distance
@@ -224,7 +224,7 @@ class boss_venoxis : public CreatureScript
break;
//
- // snake form spells and actions
+ // snake form spells and Actions
//
case EVENT_VENOM_SPIT:
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
index 702a69207ba..b22630f51bb 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
@@ -40,7 +40,7 @@ class boss_wushoolay : public CreatureScript
struct boss_wushoolayAI : public ScriptedAI
{
- boss_wushoolayAI(Creature* c) : ScriptedAI(c) {}
+ boss_wushoolayAI(Creature* creature) : ScriptedAI(creature) {}
uint32 LightningCloud_Timer;
uint32 LightningWave_Timer;
diff --git a/src/server/scripts/EasternKingdoms/arathi_highlands.cpp b/src/server/scripts/EasternKingdoms/arathi_highlands.cpp
index 82b09b9dc18..d4d35b107b2 100644
--- a/src/server/scripts/EasternKingdoms/arathi_highlands.cpp
+++ b/src/server/scripts/EasternKingdoms/arathi_highlands.cpp
@@ -62,38 +62,44 @@ class npc_professor_phizzlethorpe : public CreatureScript
struct npc_professor_phizzlethorpeAI : public npc_escortAI
{
- npc_professor_phizzlethorpeAI(Creature* c) : npc_escortAI(c) {}
+ npc_professor_phizzlethorpeAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (uiPointId)
+ switch (waypointId)
{
- case 4:Talk(SAY_PROGRESS_2, player->GetGUID());break;
- case 5:Talk(SAY_PROGRESS_3, player->GetGUID());break;
- case 8:Talk(EMOTE_PROGRESS_4);break;
- case 9:
- {
- me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
- me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
- break;
- }
- case 10:Talk(SAY_PROGRESS_5, player->GetGUID());break;
- case 11:
- Talk(SAY_PROGRESS_6, player->GetGUID());
- SetRun();
- break;
- case 19:Talk(SAY_PROGRESS_7, player->GetGUID()); break;
- case 20:
- Talk(EMOTE_PROGRESS_8);
- Talk(SAY_PROGRESS_9, player->GetGUID());
- if (player)
- CAST_PLR(player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, me);
- break;
+ case 4:
+ Talk(SAY_PROGRESS_2, player->GetGUID());
+ break;
+ case 5:
+ Talk(SAY_PROGRESS_3, player->GetGUID());
+ break;
+ case 8:
+ Talk(EMOTE_PROGRESS_4);
+ break;
+ case 9:
+ me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ break;
+ case 10:
+ Talk(SAY_PROGRESS_5, player->GetGUID());
+ break;
+ case 11:
+ Talk(SAY_PROGRESS_6, player->GetGUID());
+ SetRun();
+ break;
+ case 19:
+ Talk(SAY_PROGRESS_7, player->GetGUID());
+ break;
+ case 20:
+ Talk(EMOTE_PROGRESS_8);
+ Talk(SAY_PROGRESS_9, player->GetGUID());
+ player->GroupEventHappens(QUEST_SUNKEN_TREASURE, me);
+ break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/blasted_lands.cpp b/src/server/scripts/EasternKingdoms/blasted_lands.cpp
index 2ad03f8b504..2042e5313c3 100644
--- a/src/server/scripts/EasternKingdoms/blasted_lands.cpp
+++ b/src/server/scripts/EasternKingdoms/blasted_lands.cpp
@@ -44,10 +44,10 @@ class npc_deathly_usher : public CreatureScript
public:
npc_deathly_usher() : CreatureScript("npc_deathly_usher") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
@@ -65,7 +65,6 @@ public:
return true;
}
-
};
void AddSC_blasted_lands()
diff --git a/src/server/scripts/EasternKingdoms/boss_kruul.cpp b/src/server/scripts/EasternKingdoms/boss_kruul.cpp
index 126f55838b9..8749c943a6f 100644
--- a/src/server/scripts/EasternKingdoms/boss_kruul.cpp
+++ b/src/server/scripts/EasternKingdoms/boss_kruul.cpp
@@ -45,7 +45,7 @@ public:
struct boss_kruulAI : public ScriptedAI
{
- boss_kruulAI(Creature* c) : ScriptedAI(c) {}
+ boss_kruulAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ShadowVolley_Timer;
uint32 Cleave_Timer;
@@ -151,7 +151,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_kruul()
diff --git a/src/server/scripts/EasternKingdoms/burning_steppes.cpp b/src/server/scripts/EasternKingdoms/burning_steppes.cpp
index 1d2725b10ee..b526246f670 100644
--- a/src/server/scripts/EasternKingdoms/burning_steppes.cpp
+++ b/src/server/scripts/EasternKingdoms/burning_steppes.cpp
@@ -51,10 +51,10 @@ class npc_ragged_john : public CreatureScript
public:
npc_ragged_john() : CreatureScript("npc_ragged_john") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -127,7 +127,7 @@ public:
struct npc_ragged_johnAI : public ScriptedAI
{
- npc_ragged_johnAI(Creature* c) : ScriptedAI(c) {}
+ npc_ragged_johnAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
@@ -147,7 +147,6 @@ public:
void EnterCombat(Unit* /*who*/) {}
};
-
};
void AddSC_burning_steppes()
diff --git a/src/server/scripts/EasternKingdoms/duskwood.cpp b/src/server/scripts/EasternKingdoms/duskwood.cpp
index 5d04489bbca..10cb5987ce5 100644
--- a/src/server/scripts/EasternKingdoms/duskwood.cpp
+++ b/src/server/scripts/EasternKingdoms/duskwood.cpp
@@ -60,7 +60,6 @@ public:
}
return false;
};
-
};
/*######
@@ -83,7 +82,7 @@ public:
struct boss_twilight_corrupterAI : public ScriptedAI
{
- boss_twilight_corrupterAI(Creature* c) : ScriptedAI(c) {}
+ boss_twilight_corrupterAI(Creature* creature) : ScriptedAI(creature) {}
uint32 SoulCorruption_Timer;
uint32 CreatureOfNightmare_Timer;
@@ -133,7 +132,6 @@ public:
DoMeleeAttackIfReady();
};
};
-
};
void AddSC_duskwood()
diff --git a/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp b/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp
index 2b4bb61c603..0519ce94b32 100644
--- a/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/eastern_plaguelands.cpp
@@ -32,35 +32,30 @@ EndContentData */
#include "ScriptPCH.h"
-//id8530 - cannibal ghoul
-//id8531 - gibbering ghoul
-//id8532 - diseased flayer
-
class mobs_ghoul_flayer : public CreatureScript
{
public:
mobs_ghoul_flayer() : CreatureScript("mobs_ghoul_flayer") { }
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mobs_ghoul_flayerAI (creature);
- }
-
struct mobs_ghoul_flayerAI : public ScriptedAI
{
- mobs_ghoul_flayerAI(Creature* c) : ScriptedAI(c) {}
+ mobs_ghoul_flayerAI(Creature* creature) : ScriptedAI(creature) { }
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
- if (Killer->GetTypeId() == TYPEID_PLAYER)
+ if (killer->GetTypeId() == TYPEID_PLAYER)
me->SummonCreature(11064, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 60000);
}
};
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mobs_ghoul_flayerAI (creature);
+ }
};
/*######
@@ -72,10 +67,10 @@ class npc_augustus_the_touched : public CreatureScript
public:
npc_augustus_the_touched() : CreatureScript("npc_augustus_the_touched") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
}
@@ -91,7 +86,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -120,7 +114,7 @@ public:
struct npc_darrowshire_spiritAI : public ScriptedAI
{
- npc_darrowshire_spiritAI(Creature* c) : ScriptedAI(c) {}
+ npc_darrowshire_spiritAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
@@ -129,9 +123,7 @@ public:
}
void EnterCombat(Unit* /*who*/) {}
-
};
-
};
/*######
@@ -148,10 +140,10 @@ class npc_tirion_fordring : public CreatureScript
public:
npc_tirion_fordring() : CreatureScript("npc_tirion_fordring") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -185,7 +177,6 @@ public:
return true;
}
-
};
void AddSC_eastern_plaguelands()
diff --git a/src/server/scripts/EasternKingdoms/eversong_woods.cpp b/src/server/scripts/EasternKingdoms/eversong_woods.cpp
index 4797774ef49..8ae72e142c8 100644
--- a/src/server/scripts/EasternKingdoms/eversong_woods.cpp
+++ b/src/server/scripts/EasternKingdoms/eversong_woods.cpp
@@ -124,7 +124,6 @@ public:
void Reset()
{
-
timer = 2000;
questPhase = 0;
summonerGuid = 0;
@@ -248,7 +247,7 @@ public:
CAST_PLR(Killed)->FailQuest(QUEST_SECOND_TRIAL);
}
- void JustDied(Unit* Killer);
+ void JustDied(Unit* killer);
};
};
@@ -294,7 +293,7 @@ public:
struct master_kelerun_bloodmournAI : public ScriptedAI
{
- master_kelerun_bloodmournAI(Creature* c) : ScriptedAI(c) {}
+ master_kelerun_bloodmournAI(Creature* creature) : ScriptedAI(creature) {}
uint8 questPhase;
uint8 paladinPhase;
@@ -366,10 +365,8 @@ public:
void StartEvent()
{
-
if (questPhase == 1)
{ // no player check, quest can be finished as group, so no complex PlayerGUID/group search code
-
for (uint8 i = 0; i < 4; ++i)
if (Creature* summoned = DoSpawnCreature(PaladinEntry[i], SpawnPosition[i].x, SpawnPosition[i].y, SpawnPosition[i].z, SpawnPosition[i].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 180000))
paladinGuid[i] = summoned->GetGUID();
@@ -420,15 +417,14 @@ class go_second_trial : public GameObjectScript
public:
go_second_trial() : GameObjectScript("go_second_trial") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
// find spawn :: master_kelerun_bloodmourn
- if (Creature* creature = pGO->FindNearestCreature(MASTER_KELERUN_BLOODMOURN, 30.0f))
+ if (Creature* creature = go->FindNearestCreature(MASTER_KELERUN_BLOODMOURN, 30.0f))
CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->StartEvent();
return true;
}
-
};
/*######
@@ -461,7 +457,7 @@ public:
struct npc_apprentice_mirvedaAI : public ScriptedAI
{
- npc_apprentice_mirvedaAI(Creature* c) : ScriptedAI(c), Summons(me) {}
+ npc_apprentice_mirvedaAI(Creature* creature) : ScriptedAI(creature), Summons(me) {}
uint32 KillCount;
uint64 PlayerGUID;
@@ -494,14 +490,14 @@ public:
{
if (PlayerGUID)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
- CAST_PLR(player)->FailQuest(QUEST_UNEXPECTED_RESULT);
+ player->FailQuest(QUEST_UNEXPECTED_RESULT);
}
void UpdateAI(const uint32 /*diff*/)
{
if (KillCount >= 3 && PlayerGUID)
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
- CAST_PLR(player)->CompleteQuest(QUEST_UNEXPECTED_RESULT);
+ player->CompleteQuest(QUEST_UNEXPECTED_RESULT);
if (Summon)
{
@@ -512,7 +508,6 @@ public:
}
}
};
-
};
/*######
@@ -552,7 +547,7 @@ public:
struct npc_infused_crystalAI : public Scripted_NoMovementAI
{
- npc_infused_crystalAI(Creature* c) : Scripted_NoMovementAI(c) {}
+ npc_infused_crystalAI(Creature* creature) : Scripted_NoMovementAI(creature) {}
uint32 EndTimer;
uint32 WaveTimer;
@@ -621,7 +616,6 @@ public:
} else WaveTimer -= diff;
}
};
-
};
void AddSC_eversong_woods()
diff --git a/src/server/scripts/EasternKingdoms/ghostlands.cpp b/src/server/scripts/EasternKingdoms/ghostlands.cpp
index 412613572f1..e40a2f785e6 100644
--- a/src/server/scripts/EasternKingdoms/ghostlands.cpp
+++ b/src/server/scripts/EasternKingdoms/ghostlands.cpp
@@ -44,10 +44,10 @@ class npc_budd_nedreck : public CreatureScript
public:
npc_budd_nedreck() : CreatureScript("npc_budd_nedreck") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, 42540, false);
@@ -66,7 +66,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -78,10 +77,10 @@ class npc_rathis_tomber : public CreatureScript
public:
npc_rathis_tomber() : CreatureScript("npc_rathis_tomber") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
}
@@ -100,7 +99,6 @@ public:
return true;
}
-
};
/*######
@@ -130,61 +128,63 @@ public:
struct npc_ranger_lilathaAI : public npc_escortAI
{
- npc_ranger_lilathaAI(Creature* c) : npc_escortAI(c) {}
+ npc_ranger_lilathaAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 0:
- {
- 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);
- break;
- }
- case 5:
- DoScriptText(SAY_PROGRESS1, me, player);
- case 11:
- DoScriptText(SAY_PROGRESS2, me, player);
- me->SetOrientation(4.762841f);
- break;
- case 18:
- {
- DoScriptText(SAY_PROGRESS3, me, player);
- 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)
- {
- Summ1->Attack(me, true);
- Summ2->Attack(player, true);
- }
- me->AI()->AttackStart(Summ1);
- break;
- }
- case 19: me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); break;
- case 25: me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING); break;
- case 30:
- if (player && player->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS, me);
- break;
- case 32:
- me->SetOrientation(2.978281f);
- DoScriptText(SAY_END1, me, player);
- break;
- case 33:
- me->SetOrientation(5.858011f);
- DoScriptText(SAY_END2, me, player);
- Unit* CaptainHelios = me->FindNearestCreature(NPC_CAPTAIN_HELIOS, 50);
- if (CaptainHelios)
- DoScriptText(SAY_CAPTAIN_ANSWER, CaptainHelios, player);
- break;
+ case 0:
+ 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);
+ break;
+ case 5:
+ DoScriptText(SAY_PROGRESS1, me, player);
+ break;
+ case 11:
+ DoScriptText(SAY_PROGRESS2, me, player);
+ me->SetOrientation(4.762841f);
+ break;
+ case 18:
+ {
+ DoScriptText(SAY_PROGRESS3, me, player);
+ 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)
+ {
+ Summ1->Attack(me, true);
+ Summ2->Attack(player, true);
+ }
+ me->AI()->AttackStart(Summ1);
+ }
+ break;
+ case 19:
+ me->SetWalk(false);
+ break;
+ case 25:
+ me->SetWalk(true);
+ break;
+ case 30:
+ if (player->GetTypeId() == TYPEID_PLAYER)
+ CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS, me);
+ break;
+ case 32:
+ me->SetOrientation(2.978281f);
+ DoScriptText(SAY_END1, me, player);
+ break;
+ case 33:
+ me->SetOrientation(5.858011f);
+ DoScriptText(SAY_END2, me, player);
+ Unit* CaptainHelios = me->FindNearestCreature(NPC_CAPTAIN_HELIOS, 50);
+ if (CaptainHelios)
+ DoScriptText(SAY_CAPTAIN_ANSWER, CaptainHelios, player);
+ break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/hinterlands.cpp b/src/server/scripts/EasternKingdoms/hinterlands.cpp
index 7021deeae75..8de895cb51f 100644
--- a/src/server/scripts/EasternKingdoms/hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/hinterlands.cpp
@@ -87,9 +87,9 @@ public:
void Reset() { }
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 26:
DoScriptText(SAY_OOX_AMBUSH, me);
@@ -146,7 +146,6 @@ public:
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
}
};
-
};
/*######
@@ -273,18 +272,17 @@ public:
void JustSummoned(Creature* summoned)
{
- summoned->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ summoned->SetWalk(false);
summoned->GetMotionMaster()->MovePoint(0, m_afAmbushMoveTo[m_iSpawnId].m_fX, m_afAmbushMoveTo[m_iSpawnId].m_fY, m_afAmbushMoveTo[m_iSpawnId].m_fZ);
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (uiPointId)
+ switch (waypointId)
{
case 1:
DoScriptText(SAY_RIN_FREE, me, player);
@@ -315,7 +313,7 @@ public:
{
m_uiPostEventTimer = 3000;
- if (Unit* player = GetPlayerForEscort())
+ if (Player* player = GetPlayerForEscort())
{
switch (m_uiPostEventCount)
{
@@ -345,7 +343,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_hinterlands()
diff --git a/src/server/scripts/EasternKingdoms/ironforge.cpp b/src/server/scripts/EasternKingdoms/ironforge.cpp
index 5a0ee3c5630..93a8d7423c9 100644
--- a/src/server/scripts/EasternKingdoms/ironforge.cpp
+++ b/src/server/scripts/EasternKingdoms/ironforge.cpp
@@ -44,10 +44,10 @@ class npc_royal_historian_archesonus : public CreatureScript
public:
npc_royal_historian_archesonus() : CreatureScript("npc_royal_historian_archesonus") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ROYAL_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -88,7 +88,6 @@ public:
return true;
}
-
};
void AddSC_ironforge()
diff --git a/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp
index f2095de49c3..27d8ea3e51c 100644
--- a/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp
+++ b/src/server/scripts/EasternKingdoms/isle_of_queldanas.cpp
@@ -51,7 +51,7 @@ public:
struct npc_converted_sentryAI : public ScriptedAI
{
- npc_converted_sentryAI(Creature* c) : ScriptedAI(c) {}
+ npc_converted_sentryAI(Creature* creature) : ScriptedAI(creature) {}
bool Credit;
uint32 Timer;
@@ -85,7 +85,6 @@ public:
}
}
};
-
};
/*######
@@ -109,7 +108,7 @@ public:
struct npc_greengill_slaveAI : public ScriptedAI
{
- npc_greengill_slaveAI(Creature* c) : ScriptedAI(c) {}
+ npc_greengill_slaveAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
@@ -130,8 +129,8 @@ public:
PlayerGUID = caster->GetGUID();
if (PlayerGUID)
{
- Unit* player = Unit::GetUnit((*me), PlayerGUID);
- if (player && CAST_PLR(player)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE)
+ Player* player = Unit::GetPlayer(*me, PlayerGUID);
+ if (player && player->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE)
DoCast(player, 45110, true);
}
DoCast(me, ENRAGE);
@@ -149,7 +148,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_isle_of_queldanas()
diff --git a/src/server/scripts/EasternKingdoms/loch_modan.cpp b/src/server/scripts/EasternKingdoms/loch_modan.cpp
index 9ce9de4381a..7ea8a62a5bd 100644
--- a/src/server/scripts/EasternKingdoms/loch_modan.cpp
+++ b/src/server/scripts/EasternKingdoms/loch_modan.cpp
@@ -47,10 +47,10 @@ class npc_mountaineer_pebblebitty : public CreatureScript
public:
npc_mountaineer_pebblebitty() : CreatureScript("npc_mountaineer_pebblebitty") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_MP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -95,7 +95,6 @@ public:
return true;
}
-
};
void AddSC_loch_modan()
diff --git a/src/server/scripts/EasternKingdoms/redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/redridge_mountains.cpp
index d7b00af33e8..3ade1da4a19 100644
--- a/src/server/scripts/EasternKingdoms/redridge_mountains.cpp
+++ b/src/server/scripts/EasternKingdoms/redridge_mountains.cpp
@@ -76,17 +76,16 @@ public:
uiShieldBashTimer = 8000;
}
- void WaypointReached(uint32 uiI)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- if (uiI >= 65 && me->GetUnitMovementFlags() == MOVEMENTFLAG_WALKING)
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ if (waypointId >= 65 && me->GetUnitMovementFlags() == MOVEMENTFLAG_WALKING)
+ me->SetWalk(false);
- switch (uiI)
+ switch (waypointId)
{
case 39:
SetEscortPaused(true);
@@ -94,7 +93,7 @@ public:
uiPhase = 1;
break;
case 65:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
break;
case 115:
player->AreaExploredOrEventHappens(QUEST_MISSING_IN_ACTION);
@@ -164,7 +163,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_redridge_mountains()
diff --git a/src/server/scripts/EasternKingdoms/silvermoon_city.cpp b/src/server/scripts/EasternKingdoms/silvermoon_city.cpp
index 8d04e92b9b8..e6595a83b66 100644
--- a/src/server/scripts/EasternKingdoms/silvermoon_city.cpp
+++ b/src/server/scripts/EasternKingdoms/silvermoon_city.cpp
@@ -53,7 +53,7 @@ public:
struct npc_blood_knight_stillbladeAI : public ScriptedAI
{
- npc_blood_knight_stillbladeAI(Creature* c) : ScriptedAI(c) {}
+ npc_blood_knight_stillbladeAI(Creature* creature) : ScriptedAI(creature) {}
uint32 lifeTimer;
bool spellHit;
@@ -100,7 +100,6 @@ public:
}
}
};
-
};
void AddSC_silvermoon_city()
diff --git a/src/server/scripts/EasternKingdoms/silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/silverpine_forest.cpp
index 4d897c4f3b8..bc3110878de 100644
--- a/src/server/scripts/EasternKingdoms/silverpine_forest.cpp
+++ b/src/server/scripts/EasternKingdoms/silverpine_forest.cpp
@@ -64,37 +64,46 @@ public:
struct npc_deathstalker_erlandAI : public npc_escortAI
{
- npc_deathstalker_erlandAI(Creature* c) : npc_escortAI(c) {}
+ npc_deathstalker_erlandAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 1: DoScriptText(SAY_START, me, player);break;
- case 13:
- DoScriptText(SAY_LAST, me, player);
- player->GroupEventHappens(QUEST_ESCORTING, me); break;
- case 14: DoScriptText(SAY_THANKS, me, player); break;
- case 15: {
- Unit* Rane = me->FindNearestCreature(NPC_RANE, 20);
- if (Rane)
+ case 1:
+ DoScriptText(SAY_START, me, player);
+ break;
+ case 13:
+ DoScriptText(SAY_LAST, me, player);
+ player->GroupEventHappens(QUEST_ESCORTING, me);
+ break;
+ case 14:
+ DoScriptText(SAY_THANKS, me, player);
+ break;
+ case 15:
+ if (Unit* Rane = me->FindNearestCreature(NPC_RANE, 20))
DoScriptText(SAY_RANE, Rane);
- break;}
- case 16: DoScriptText(SAY_ANSWER, me); break;
- case 17: DoScriptText(SAY_MOVE_QUINN, me); break;
- case 24: DoScriptText(SAY_GREETINGS, me); break;
- case 25: {
- Unit* Quinn = me->FindNearestCreature(NPC_QUINN, 20);
- if (Quinn)
+ break;
+ case 16:
+ DoScriptText(SAY_ANSWER, me);
+ break;
+ case 17:
+ DoScriptText(SAY_MOVE_QUINN, me);
+ break;
+ case 24:
+ DoScriptText(SAY_GREETINGS, me);
+ break;
+ case 25:
+ if (Unit* Quinn = me->FindNearestCreature(NPC_QUINN, 20))
DoScriptText(SAY_QUINN, Quinn);
- break;}
- case 26: DoScriptText(SAY_ON_BYE, me, NULL); break;
-
+ break;
+ case 26:
+ DoScriptText(SAY_ON_BYE, me, NULL);
+ break;
}
}
@@ -123,7 +132,6 @@ public:
{
return new npc_deathstalker_erlandAI(creature);
}
-
};
/*######
@@ -177,7 +185,7 @@ public:
struct pyrewood_ambushAI : public ScriptedAI
{
- pyrewood_ambushAI(Creature* c) : ScriptedAI(c), Summons(me)
+ pyrewood_ambushAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
QuestInProgress = false;
}
@@ -309,7 +317,6 @@ public:
++Phase; //prepare next phase
}
};
-
};
/*######
diff --git a/src/server/scripts/EasternKingdoms/stormwind_city.cpp b/src/server/scripts/EasternKingdoms/stormwind_city.cpp
index a4eca1950f8..96ad1da725d 100644
--- a/src/server/scripts/EasternKingdoms/stormwind_city.cpp
+++ b/src/server/scripts/EasternKingdoms/stormwind_city.cpp
@@ -47,10 +47,10 @@ class npc_archmage_malin : public CreatureScript
public:
npc_archmage_malin() : CreatureScript("npc_archmage_malin") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, 42711, true);
@@ -71,7 +71,6 @@ public:
return true;
}
-
};
/*######
@@ -106,9 +105,9 @@ public:
struct npc_bartlebyAI : public ScriptedAI
{
- npc_bartlebyAI(Creature* c) : ScriptedAI(c)
+ npc_bartlebyAI(Creature* creature) : ScriptedAI(creature)
{
- m_uiNormalFaction = c->getFaction();
+ m_uiNormalFaction = creature->getFaction();
}
uint32 m_uiNormalFaction;
@@ -143,7 +142,6 @@ public:
}
}
};
-
};
/*######
@@ -160,10 +158,10 @@ class npc_lady_katrana_prestor : public CreatureScript
public:
npc_lady_katrana_prestor() : CreatureScript("npc_lady_katrana_prestor") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAT_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -197,7 +195,6 @@ public:
return true;
}
-
};
/*######
@@ -271,9 +268,9 @@ public:
}
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 14:
SetEscortPaused(true);
@@ -370,7 +367,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -391,7 +387,7 @@ public:
{
npc_marzon_silent_bladeAI(Creature* creature) : ScriptedAI(creature)
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
}
void Reset()
@@ -407,7 +403,7 @@ public:
{
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
{
- if (summoner && summoner->GetTypeId() == TYPEID_UNIT && summoner->isAlive() && !summoner->isInCombat())
+ if (summoner->GetTypeId() == TYPEID_UNIT && summoner->isAlive() && !summoner->isInCombat())
summoner->ToCreature()->AI()->AttackStart(who);
}
}
@@ -421,7 +417,7 @@ public:
{
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
{
- if (summoner && summoner->GetTypeId() == TYPEID_UNIT && summoner->isAlive())
+ if (summoner->GetTypeId() == TYPEID_UNIT && summoner->isAlive())
summoner->ToCreature()->DisappearAndDie();
}
}
@@ -457,7 +453,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -502,9 +497,9 @@ public:
uiPhase = 0;
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 1:
SetEscortPaused(true);
@@ -606,7 +601,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -636,7 +630,6 @@ public:
}
return false;
}
-
};
void AddSC_stormwind_city()
diff --git a/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp b/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp
index a6effe29ff7..03f92ce6d61 100644
--- a/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp
+++ b/src/server/scripts/EasternKingdoms/stranglethorn_vale.cpp
@@ -45,7 +45,7 @@ public:
struct mob_yennikuAI : public ScriptedAI
{
- mob_yennikuAI(Creature* c) : ScriptedAI(c)
+ mob_yennikuAI(Creature* creature) : ScriptedAI(creature)
{
bReset = false;
}
@@ -114,7 +114,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
diff --git a/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp b/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp
index ef6fccd8bde..6507ec911c0 100644
--- a/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp
+++ b/src/server/scripts/EasternKingdoms/swamp_of_sorrows.cpp
@@ -106,24 +106,24 @@ public:
}
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
- case 0:
- if (GameObject* pCage = me->GetMap()->GetGameObject(m_uiGalensCageGUID))
- pCage->ResetDoorOrButton();
- break;
- case 20:
- if (Player* player = GetPlayerForEscort())
- {
- me->SetFacingToObject(player);
- DoScriptText(SAY_QUEST_COMPLETE, me, player);
- DoScriptText(EMOTE_WHISPER, me, player);
- player->GroupEventHappens(QUEST_GALENS_ESCAPE, me);
- }
- SetRun(true);
- break;
+ case 0:
+ if (GameObject* pCage = me->GetMap()->GetGameObject(m_uiGalensCageGUID))
+ pCage->ResetDoorOrButton();
+ break;
+ case 20:
+ if (Player* player = GetPlayerForEscort())
+ {
+ me->SetFacingToObject(player);
+ DoScriptText(SAY_QUEST_COMPLETE, me, player);
+ DoScriptText(EMOTE_WHISPER, me, player);
+ player->GroupEventHappens(QUEST_GALENS_ESCAPE, me);
+ }
+ SetRun(true);
+ break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
index 0d72ab6fb2f..4687fa3630f 100644
--- a/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
+++ b/src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
@@ -150,7 +150,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -185,7 +184,6 @@ public:
return false;
}
-
};
class go_mausoleum_trigger : public GameObjectScript
@@ -207,7 +205,6 @@ public:
return false;
}
-
};
void AddSC_tirisfal_glades()
diff --git a/src/server/scripts/EasternKingdoms/undercity.cpp b/src/server/scripts/EasternKingdoms/undercity.cpp
index fe9c40e6dbd..a9b627ded34 100644
--- a/src/server/scripts/EasternKingdoms/undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/undercity.cpp
@@ -47,7 +47,15 @@ enum Sylvanas
SPELL_HIGHBORNE_AURA = 37090,
SPELL_SYLVANAS_CAST = 36568,
- SPELL_RIBBON_OF_SOULS = 34432, //the real one to use might be 37099
+ SPELL_RIBBON_OF_SOULS = 34432, // the real one to use might be 37099
+
+ // Combat spells
+ SPELL_BLACK_ARROW = 59712,
+ SPELL_FADE = 20672,
+ SPELL_FADE_BLINK = 29211,
+ SPELL_MULTI_SHOT = 59713,
+ SPELL_SHOT = 59710,
+ SPELL_SUMMON_SKELETON = 59711
};
float HighborneLoc[4][3]=
@@ -88,17 +96,29 @@ public:
struct npc_lady_sylvanas_windrunnerAI : public ScriptedAI
{
- npc_lady_sylvanas_windrunnerAI(Creature* c) : ScriptedAI(c) {}
+ npc_lady_sylvanas_windrunnerAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 LamentEvent_Timer;
+ uint32 LamentEventTimer;
bool LamentEvent;
uint64 targetGUID;
+ uint32 FadeTimer;
+ uint32 SummonSkeletonTimer;
+ uint32 BlackArrowTimer;
+ uint32 ShotTimer;
+ uint32 MultiShotTimer;
+
void Reset()
{
- LamentEvent_Timer = 5000;
+ LamentEventTimer = 5000;
LamentEvent = false;
targetGUID = 0;
+
+ FadeTimer = 30000;
+ SummonSkeletonTimer = 20000;
+ BlackArrowTimer = 15000;
+ ShotTimer = 8000;
+ MultiShotTimer = 10000;
}
void EnterCombat(Unit* /*who*/) {}
@@ -114,7 +134,7 @@ public:
summoned->CastSpell(target, SPELL_RIBBON_OF_SOULS, false);
}
- summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ summoned->SetDisableGravity(true);
targetGUID = summoned->GetGUID();
}
}
@@ -123,27 +143,73 @@ public:
{
if (LamentEvent)
{
- if (LamentEvent_Timer <= diff)
+ if (LamentEventTimer <= diff)
{
DoSummon(ENTRY_HIGHBORNE_BUNNY, me, 10.0f, 3000, TEMPSUMMON_TIMED_DESPAWN);
- LamentEvent_Timer = 2000;
+ LamentEventTimer = 2000;
if (!me->HasAura(SPELL_SYLVANAS_CAST))
{
DoScriptText(SAY_LAMENT_END, me);
DoScriptText(EMOTE_LAMENT_END, me);
LamentEvent = false;
}
- } else LamentEvent_Timer -= diff;
+ } else LamentEventTimer -= diff;
}
if (!UpdateVictim())
return;
+ // Combat spells
+
+ if (FadeTimer <= diff)
+ {
+ DoCast(me, SPELL_FADE);
+ // add a blink to simulate a stealthed movement and reappearing elsewhere
+ DoCast(me, SPELL_FADE_BLINK);
+ FadeTimer = 30000 + rand()%5000;
+ // if the victim is out of melee range she cast multi shot
+ if (Unit* victim = me->getVictim())
+ if (me->GetDistance(victim) > 10.0f)
+ DoCast(victim, SPELL_MULTI_SHOT);
+ } else FadeTimer -= diff;
+
+ if (SummonSkeletonTimer <= diff)
+ {
+ DoCast(me, SPELL_SUMMON_SKELETON);
+ SummonSkeletonTimer = 20000 + rand()%10000;
+ } else SummonSkeletonTimer -= diff;
+
+ if (BlackArrowTimer <= diff)
+ {
+ if (Unit* victim = me->getVictim())
+ {
+ DoCast(victim, SPELL_BLACK_ARROW);
+ BlackArrowTimer = 15000 + rand()%5000;
+ }
+ } else BlackArrowTimer -= diff;
+
+ if (ShotTimer <= diff)
+ {
+ if (Unit* victim = me->getVictim())
+ {
+ DoCast(victim, SPELL_SHOT);
+ ShotTimer = 8000 + rand()%2000;
+ }
+ } else ShotTimer -= diff;
+
+ if (MultiShotTimer <= diff)
+ {
+ if (Unit* victim = me->getVictim())
+ {
+ DoCast(victim, SPELL_MULTI_SHOT);
+ MultiShotTimer = 10000 + rand()%3000;
+ }
+ } else MultiShotTimer -= diff;
+
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -162,17 +228,17 @@ public:
struct npc_highborne_lamenterAI : public ScriptedAI
{
- npc_highborne_lamenterAI(Creature* c) : ScriptedAI(c) {}
+ npc_highborne_lamenterAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 EventMove_Timer;
- uint32 EventCast_Timer;
+ uint32 EventMoveTimer;
+ uint32 EventCastTimer;
bool EventMove;
bool EventCast;
void Reset()
{
- EventMove_Timer = 10000;
- EventCast_Timer = 17500;
+ EventMoveTimer = 10000;
+ EventCastTimer = 17500;
EventMove = true;
EventCast = true;
}
@@ -183,25 +249,24 @@ public:
{
if (EventMove)
{
- if (EventMove_Timer <= diff)
+ if (EventMoveTimer <= diff)
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), HIGHBORNE_LOC_Y_NEW, me->GetDistance(me->GetPositionX(), me->GetPositionY(), HIGHBORNE_LOC_Y_NEW) / (5000 * 0.001f));
me->SetPosition(me->GetPositionX(), me->GetPositionY(), HIGHBORNE_LOC_Y_NEW, me->GetOrientation());
EventMove = false;
- } else EventMove_Timer -= diff;
+ } else EventMoveTimer -= diff;
}
if (EventCast)
{
- if (EventCast_Timer <= diff)
+ if (EventCastTimer <= diff)
{
DoCast(me, SPELL_HIGHBORNE_AURA);
EventCast = false;
- } else EventCast_Timer -= diff;
+ } else EventCastTimer -= diff;
}
}
};
-
};
/*######
@@ -219,15 +284,15 @@ class npc_parqual_fintallas : public CreatureScript
public:
npc_parqual_fintallas() : CreatureScript("npc_parqual_fintallas") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_MARK_OF_SHAME, false);
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
player->AreaExploredOrEventHappens(6628);
@@ -252,7 +317,6 @@ public:
return true;
}
-
};
/*######
diff --git a/src/server/scripts/EasternKingdoms/western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/western_plaguelands.cpp
index a04a94f73b1..0057c01b882 100644
--- a/src/server/scripts/EasternKingdoms/western_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/western_plaguelands.cpp
@@ -49,10 +49,10 @@ class npcs_dithers_and_arbington : public CreatureScript
public:
npcs_dithers_and_arbington() : CreatureScript("npcs_dithers_and_arbington") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE:
player->GetSession()->SendListInventory(creature->GetGUID());
@@ -85,6 +85,7 @@ public:
{
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
+
if (creature->isVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
@@ -95,12 +96,12 @@ public:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HDA3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HDA4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
player->SEND_GOSSIP_MENU(3985, creature->GetGUID());
- }else
+ }
+ else
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -121,10 +122,10 @@ class npc_myranda_the_hag : public CreatureScript
public:
npc_myranda_the_hag() : CreatureScript("npc_myranda_the_hag") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CLOSE_GOSSIP_MENU();
player->CastSpell(player, SPELL_SCARLET_ILLUSION, false);
@@ -149,7 +150,6 @@ public:
return true;
}
-
};
/*######
@@ -168,7 +168,7 @@ public:
struct npc_the_scourge_cauldronAI : public ScriptedAI
{
- npc_the_scourge_cauldronAI(Creature* c) : ScriptedAI(c) {}
+ npc_the_scourge_cauldronAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
@@ -229,7 +229,6 @@ public:
}
}
};
-
};
/*######
@@ -253,7 +252,7 @@ public:
struct npc_andorhal_towerAI : public Scripted_NoMovementAI
{
- npc_andorhal_towerAI(Creature* c) : Scripted_NoMovementAI(c) {}
+ npc_andorhal_towerAI(Creature* creature) : Scripted_NoMovementAI(creature) {}
void MoveInLineOfSight(Unit* who)
{
@@ -264,7 +263,6 @@ public:
CAST_PLR(who)->KilledMonsterCredit(me->GetEntry(), me->GetGUID());
}
};
-
};
/*######
@@ -330,10 +328,11 @@ public:
summoned->AI()->AttackStart(me);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
- switch (i)
+
+ switch (waypointId)
{
case 8:
DoScriptText(SAY_WP_0, me);
@@ -359,7 +358,7 @@ public:
break;
case 23:
Ughost = me->SummonCreature(NPC_GHOST_UTHER, 971.86f, -1825.42f, 81.99f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- Ughost->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ Ughost->SetDisableGravity(true);
DoScriptText(SAY_WP_4, Ughost, me);
m_uiChatTimer = 4000;
break;
@@ -382,8 +381,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- Player* player = GetPlayerForEscort();
- if (player)
+ if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_TOMB_LIGHTBRINGER);
}
@@ -395,7 +393,6 @@ public:
m_uiChatTimer = 6000;
}
};
-
};
/*######
diff --git a/src/server/scripts/EasternKingdoms/westfall.cpp b/src/server/scripts/EasternKingdoms/westfall.cpp
index 271e1d99d63..46f1526c5bf 100644
--- a/src/server/scripts/EasternKingdoms/westfall.cpp
+++ b/src/server/scripts/EasternKingdoms/westfall.cpp
@@ -85,9 +85,15 @@ public:
{
switch (uiWPHolder)
{
- case 7: DoScriptText(SAY_DS_DOWN_1, me); break;
- case 8: DoScriptText(SAY_DS_DOWN_2, me); break;
- case 9: DoScriptText(SAY_DS_DOWN_3, me); break;
+ case 7:
+ DoScriptText(SAY_DS_DOWN_1, me);
+ break;
+ case 8:
+ DoScriptText(SAY_DS_DOWN_2, me);
+ break;
+ case 9:
+ DoScriptText(SAY_DS_DOWN_3, me);
+ break;
}
}
else
@@ -96,16 +102,15 @@ public:
uiShootTimer = 0;
}
- void WaypointReached(uint32 uiPoint)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- uiWPHolder = uiPoint;
+ uiWPHolder = waypointId;
- switch (uiPoint)
+ switch (waypointId)
{
case 4:
SetEquipmentSlots(false, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE, EQUIP_ID_RIFLE);
@@ -185,7 +190,6 @@ public:
} else uiShootTimer -= diff;
}
};
-
};
/*######
@@ -225,16 +229,15 @@ public:
struct npc_defias_traitorAI : public npc_escortAI
{
- npc_defias_traitorAI(Creature* c) : npc_escortAI(c) { Reset(); }
+ npc_defias_traitorAI(Creature* creature) : npc_escortAI(creature) { Reset(); }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 35:
SetRun(false);
@@ -244,13 +247,11 @@ public:
break;
case 44:
DoScriptText(SAY_END, me, player);
- {
- if (player)
- player->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD, me);
- }
+ player->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD, me);
break;
}
}
+
void EnterCombat(Unit* who)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2), me, who);
@@ -258,7 +259,6 @@ public:
void Reset() {}
};
-
};
void AddSC_westfall()
diff --git a/src/server/scripts/EasternKingdoms/wetlands.cpp b/src/server/scripts/EasternKingdoms/wetlands.cpp
index 3b196720242..bf28d9838a4 100644
--- a/src/server/scripts/EasternKingdoms/wetlands.cpp
+++ b/src/server/scripts/EasternKingdoms/wetlands.cpp
@@ -67,14 +67,13 @@ public:
m_bFriendSummoned = false;
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 2:
if (me->HasStealthAura())
me->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
-
SetRun();
me->setFaction(FACTION_ENEMY);
break;
@@ -132,7 +131,6 @@ public:
}
}
};
-
};
/*######
@@ -161,7 +159,6 @@ public:
}
return false;
}
-
};
/*######
diff --git a/src/server/scripts/Examples/CMakeLists.txt b/src/server/scripts/Examples/CMakeLists.txt
index 14002100713..dde6fe2c37c 100644
--- a/src/server/scripts/Examples/CMakeLists.txt
+++ b/src/server/scripts/Examples/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/Examples/example_creature.cpp b/src/server/scripts/Examples/example_creature.cpp
index f1b336f07f9..7f75a0fb481 100644
--- a/src/server/scripts/Examples/example_creature.cpp
+++ b/src/server/scripts/Examples/example_creature.cpp
@@ -90,7 +90,7 @@ class example_creature : public CreatureScript
{
// *** HANDLED FUNCTION ***
//This is the constructor, called only once when the Creature is first created
- example_creatureAI(Creature* c) : ScriptedAI(c) {}
+ example_creatureAI(Creature* creature) : ScriptedAI(creature) {}
// *** CUSTOM VARIABLES ****
//These variables are for use only by this individual script.
@@ -271,10 +271,10 @@ class example_creature : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
//Set our faction to hostile towards all
diff --git a/src/server/scripts/Examples/example_escort.cpp b/src/server/scripts/Examples/example_escort.cpp
index cae09266b49..851a32538e9 100644
--- a/src/server/scripts/Examples/example_escort.cpp
+++ b/src/server/scripts/Examples/example_escort.cpp
@@ -75,9 +75,9 @@ class example_escort : public CreatureScript
}
// Pure Virtual Functions (Have to be implemented)
- void WaypointReached(uint32 uiWP)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiWP)
+ switch (waypointId)
{
case 1:
DoScriptText(SAY_WP_1, me);
@@ -123,9 +123,7 @@ class example_escort : public CreatureScript
{
// not a likely case, code here for the sake of example
if (killer == me)
- {
DoScriptText(SAY_DEATH_1, me, player);
- }
else
DoScriptText(SAY_DEATH_2, me, player);
}
@@ -197,12 +195,12 @@ class example_escort : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
npc_escortAI* pEscortAI = CAST_AI(example_escort::example_escortAI, creature->AI());
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
diff --git a/src/server/scripts/Examples/example_gossip_codebox.cpp b/src/server/scripts/Examples/example_gossip_codebox.cpp
index c288123f117..6d57f1ac798 100644
--- a/src/server/scripts/Examples/example_gossip_codebox.cpp
+++ b/src/server/scripts/Examples/example_gossip_codebox.cpp
@@ -58,10 +58,10 @@ class example_gossip_codebox : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+2)
{
DoScriptText(SAY_NOT_INTERESTED, creature);
player->CLOSE_GOSSIP_MENU();
@@ -70,12 +70,12 @@ class example_gossip_codebox : public CreatureScript
return true;
}
- bool OnGossipSelectCode(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction, const char* code)
+ bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, const char* code)
{
player->PlayerTalkClass->ClearMenus();
- if (uiSender == GOSSIP_SENDER_MAIN)
+ if (sender == GOSSIP_SENDER_MAIN)
{
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
if (std::strcmp(code, player->GetName()) != 0)
diff --git a/src/server/scripts/Examples/example_spell.cpp b/src/server/scripts/Examples/example_spell.cpp
index 71dbd7f4fb0..70d7f43135c 100644
--- a/src/server/scripts/Examples/example_spell.cpp
+++ b/src/server/scripts/Examples/example_spell.cpp
@@ -92,7 +92,7 @@ class spell_ex_5581 : public SpellScriptLoader
void HandleAfterCast()
{
- sLog->outString("All immediate actions for the spell are finished now");
+ sLog->outString("All immediate Actions for the spell are finished now");
// this is a safe for triggering additional effects for a spell without interfering
// with visuals or with other effects of the spell
//GetCaster()->CastSpell(target, SPELL_TRIGGERED, true);
@@ -102,7 +102,7 @@ class spell_ex_5581 : public SpellScriptLoader
{
// in this hook you can add additional requirements for spell caster (and throw a client error if reqs're not passed)
// in this case we're disallowing to select non-player as a target of the spell
- //if (!GetTargetUnit() || GetTargetUnit()->ToPlayer())
+ //if (!GetExplTargetUnit() || GetExplTargetUnit()->ToPlayer())
//return SPELL_FAILED_BAD_TARGETS;
return SPELL_CAST_OK;
}
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index 3bfaa448b85..a86b2b8b17a 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -201,7 +201,7 @@ class npc_morridune : public CreatureScript
public:
npc_morridune() : CreatureScript("npc_morridune") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*Sender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (action)
@@ -236,9 +236,9 @@ public:
Start(false, false, 0);
}
- void WaypointReached(uint32 uiPoint)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPoint)
+ switch (waypointId)
{
case 4:
SetEscortPaused(true);
diff --git a/src/server/scripts/Kalimdor/CMakeLists.txt b/src/server/scripts/Kalimdor/CMakeLists.txt
index 9c68451122f..7f63c521594 100644
--- a/src/server/scripts/Kalimdor/CMakeLists.txt
+++ b/src/server/scripts/Kalimdor/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index 6bc179bba40..85f82c62079 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
@@ -64,11 +64,10 @@ public:
struct boss_anetheronAI : public hyjal_trashAI
{
- boss_anetheronAI(Creature* c) : hyjal_trashAI(c)
+ boss_anetheronAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
}
uint32 SwarmTimer;
@@ -76,7 +75,6 @@ public:
uint32 AuraTimer;
uint32 InfernoTimer;
bool go;
- uint32 pos;
void Reset()
{
@@ -117,20 +115,19 @@ public:
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance)
+ if (waypointId == 7 && instance)
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* victim)
+ void JustDied(Unit* killer)
{
- hyjal_trashAI::JustDied(victim);
+ hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
instance->SetData(DATA_ANETHERONEVENT, DONE);
DoPlaySoundToSet(me, SOUND_ONDEATH);
@@ -248,9 +245,9 @@ public:
struct mob_towering_infernalAI : public ScriptedAI
{
- mob_towering_infernalAI(Creature* c) : ScriptedAI(c)
+ mob_towering_infernalAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (instance)
AnetheronGUID = instance->GetData64(DATA_ANETHERON);
}
@@ -275,7 +272,7 @@ public:
{
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
index a5239e5a649..f07aaaa1f2a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -86,9 +86,9 @@ public:
struct mob_ancient_wispAI : public ScriptedAI
{
- mob_ancient_wispAI(Creature* c) : ScriptedAI(c)
+ mob_ancient_wispAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
ArchimondeGUID = 0;
}
@@ -108,13 +108,16 @@ public:
void EnterCombat(Unit* /*who*/) {}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage) { damage = 0; }
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ {
+ damage = 0;
+ }
void UpdateAI(const uint32 diff)
{
if (CheckTimer <= diff)
{
- if (Unit* Archimonde = Unit::GetUnit((*me), ArchimondeGUID))
+ if (Unit* Archimonde = Unit::GetUnit(*me, ArchimondeGUID))
{
if (Archimonde->HealthBelowPct(2) || !Archimonde->isAlive())
DoCast(me, SPELL_DENOUEMENT_WISP);
@@ -142,15 +145,18 @@ public:
struct mob_doomfireAI : public ScriptedAI
{
- mob_doomfireAI(Creature* c) : ScriptedAI(c) {}
+ mob_doomfireAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() { }
void MoveInLineOfSight(Unit* /*who*/) {}
void EnterCombat(Unit* /*who*/) {}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage) { damage = 0; }
- };
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ {
+ damage = 0;
+ }
+ };
};
/* This is the script for the Doomfire Spirit Mob. This mob simply follow players or
@@ -167,7 +173,7 @@ public:
struct mob_doomfire_targettingAI : public ScriptedAI
{
- mob_doomfire_targettingAI(Creature* c) : ScriptedAI(c) {}
+ mob_doomfire_targettingAI(Creature* creature) : ScriptedAI(creature) {}
uint64 TargetGUID;
uint32 ChangeTargetTimer;
@@ -188,7 +194,10 @@ public:
void EnterCombat(Unit* /*who*/) {}
- void DamageTaken(Unit* /*done_by*/, uint32 &damage) { damage = 0; }
+ void DamageTaken(Unit* /*done_by*/, uint32 &damage)
+ {
+ damage = 0;
+ }
void UpdateAI(const uint32 diff)
{
@@ -233,9 +242,9 @@ public:
struct boss_archimondeAI : public hyjal_trashAI
{
- boss_archimondeAI(Creature* c) : hyjal_trashAI(c)
+ boss_archimondeAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -334,9 +343,9 @@ public:
++SoulChargeCount;
}
- void JustDied(Unit* victim)
+ void JustDied(Unit* killer)
{
- hyjal_trashAI::JustDied(victim);
+ hyjal_trashAI::JustDied(killer);
DoScriptText(SAY_DEATH, me);
if (instance)
@@ -358,7 +367,7 @@ public:
std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
for (; itr != m_threatlist.end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive())
targets.push_back(unit);
}
@@ -635,7 +644,11 @@ public:
DoMeleeAttackIfReady();
}
- void WaypointReached(uint32 /*i*/){}
+
+ void WaypointReached(uint32 /*waypointId*/)
+ {
+
+ }
};
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
index 2885276f2b6..a9e0c866ab9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
@@ -55,11 +55,10 @@ public:
struct boss_azgalorAI : public hyjal_trashAI
{
- boss_azgalorAI(Creature* c) : hyjal_trashAI(c)
+ boss_azgalorAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
}
uint32 RainTimer;
@@ -70,7 +69,6 @@ public:
bool enraged;
bool go;
- uint32 pos;
void Reset()
{
@@ -113,20 +111,19 @@ public:
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance)
+ if (waypointId == 7 && instance)
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* victim)
+ void JustDied(Unit* killer)
{
- hyjal_trashAI::JustDied(victim);
+ hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
instance->SetData(DATA_AZGALOREVENT, DONE);
DoPlaySoundToSet(me, SOUND_ONDEATH);
@@ -215,9 +212,9 @@ public:
struct mob_lesser_doomguardAI : public hyjal_trashAI
{
- mob_lesser_doomguardAI(Creature* c) : hyjal_trashAI(c)
+ mob_lesser_doomguardAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (instance)
AzgalorGUID = instance->GetData64(DATA_AZGALOR);
}
@@ -244,7 +241,7 @@ public:
{
}
- void WaypointReached(uint32 /*i*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
}
@@ -254,7 +251,7 @@ public:
AttackStart(who);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
index 7d1b292fd12..407faa19eaa 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
@@ -52,11 +52,10 @@ public:
struct boss_kazrogalAI : public hyjal_trashAI
{
- boss_kazrogalAI(Creature* c) : hyjal_trashAI(c)
+ boss_kazrogalAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
}
uint32 CleaveTimer;
@@ -64,7 +63,6 @@ public:
uint32 MarkTimer;
uint32 MarkTimerBase;
bool go;
- uint32 pos;
void Reset()
{
@@ -105,20 +103,19 @@ public:
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance)
+ if (waypointId == 7 && instance)
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* victim)
+ void JustDied(Unit* killer)
{
- hyjal_trashAI::JustDied(victim);
+ hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
instance->SetData(DATA_KAZROGALEVENT, DONE);
DoPlaySoundToSet(me, SOUND_ONDEATH);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
index 3f39b61192a..5d7ee1fe194 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
@@ -58,11 +58,10 @@ public:
struct boss_rage_winterchillAI : public hyjal_trashAI
{
- boss_rage_winterchillAI(Creature* c) : hyjal_trashAI(c)
+ boss_rage_winterchillAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
}
uint32 FrostArmorTimer;
@@ -70,7 +69,6 @@ public:
uint32 NovaTimer;
uint32 IceboltTimer;
bool go;
- uint32 pos;
void Reset()
{
@@ -107,20 +105,19 @@ public:
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance)
+ if (waypointId == 7 && instance)
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
}
- void JustDied(Unit* victim)
+ void JustDied(Unit* killer)
{
- hyjal_trashAI::JustDied(victim);
+ hyjal_trashAI::JustDied(killer);
if (instance && IsEvent)
instance->SetData(DATA_RAGEWINTERCHILLEVENT, DONE);
DoPlaySoundToSet(me, SOUND_ONDEATH);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
index 12485293650..22307468f14 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
@@ -50,11 +50,11 @@ class npc_jaina_proudmoore : public CreatureScript
public:
npc_jaina_proudmoore() : CreatureScript("npc_jaina_proudmoore") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
ai->StartEvent(player);
@@ -126,12 +126,12 @@ class npc_thrall : public CreatureScript
public:
npc_thrall() : CreatureScript("npc_thrall") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());
ai->DeSpawnVeins();//despawn the alliance veins
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
ai->StartEvent(player);
@@ -212,10 +212,10 @@ public:
return ai;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_TEAR_OF_GODDESS, 1);
@@ -226,7 +226,6 @@ public:
player->SendNewItem(item, 1, true, false, true);
}
player->SEND_GOSSIP_MENU(907, creature->GetGUID());
- CAST_AI(hyjalAI, creature->AI());
}
return true;
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index 107c9e8f2f9..2f6bbb7edb5 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -310,9 +310,9 @@ float HordeFirePos[65][8]=//spawn points for the fire visuals (GO) in the horde
{5545.43f, -2647.82f, 1483.05f, 5.38848f, 0, 0, 0.432578f, -0.901596f}
};
-hyjalAI::hyjalAI(Creature* c) : npc_escortAI(c), Summons(me)
+hyjalAI::hyjalAI(Creature* creature) : npc_escortAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
VeinsSpawned[0] = false;
VeinsSpawned[1] = false;
for (uint8 i=0; i<14; ++i)
@@ -492,7 +492,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3])
// Increment Enemy Count to be used in World States and instance script
++EnemyCount;
- creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ creature->SetWalk(false);
creature->setActive(true);
switch (entry)
{
@@ -855,7 +855,7 @@ void hyjalAI::UpdateAI(const uint32 diff)
{
if (BossGUID[i])
{
- Unit* unit = Unit::GetUnit((*me), BossGUID[i]);
+ Unit* unit = Unit::GetUnit(*me, BossGUID[i]);
if (unit && (!unit->isAlive()))
{
if (BossGUID[i] == BossGUID[0])
@@ -896,9 +896,17 @@ void hyjalAI::UpdateAI(const uint32 diff)
switch (Spells[i].TargetType)
{
- case TARGETTYPE_SELF: target = me; break;
- case TARGETTYPE_RANDOM: target = SelectTarget(SELECT_TARGET_RANDOM, 0); break;
- case TARGETTYPE_VICTIM: target = me->getVictim(); break;
+ case TARGETTYPE_SELF:
+ target = me;
+ break;
+
+ case TARGETTYPE_RANDOM:
+ target = SelectTarget(SELECT_TARGET_RANDOM, 0);
+ break;
+
+ case TARGETTYPE_VICTIM:
+ target = me->getVictim();
+ break;
}
if (target && target->isAlive())
@@ -972,9 +980,9 @@ void hyjalAI::RespawnNearPos(float x, float y)
cell.Visit(p, obj_worker, *me->GetMap(), *me, me->GetGridActivationRange());
}
-void hyjalAI::WaypointReached(uint32 i)
+void hyjalAI::WaypointReached(uint32 waypointId)
{
- if (i == 1 || (i == 0 && me->GetEntry() == THRALL))
+ if (waypointId == 1 || (waypointId == 0 && me->GetEntry() == THRALL))
{
me->MonsterYell(YELL_HURRY, 0, 0);
WaitForTeleport = true;
@@ -983,7 +991,7 @@ void hyjalAI::WaypointReached(uint32 i)
DoCast(me, SPELL_MASS_TELEPORT, false);
if (me->GetEntry() == THRALL && DummyGuid)
{
- Unit* Dummy = Unit::GetUnit((*me), DummyGuid);
+ Unit* Dummy = Unit::GetUnit(*me, DummyGuid);
if (Dummy)
{
CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->DoMassTeleport = true;
@@ -1014,7 +1022,7 @@ void hyjalAI::WaypointReached(uint32 i)
if ((*itr) && (*itr)->isAlive() && (*itr) != me && (*itr)->GetEntry() != JAINA)
{
if (!(*itr)->IsWithinDist(me, 60))
- (*itr)->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ (*itr)->SetWalk(false);
float x, y, z;
(*itr)->SetDefaultMovementType(IDLE_MOTION_TYPE);
(*itr)->GetMotionMaster()->Initialize();
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
index d91c2ead123..b32288ca43a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
@@ -171,7 +171,7 @@ const Yells ThrallQuotes[]=
struct hyjalAI : public npc_escortAI
{
- hyjalAI(Creature* c);
+ hyjalAI(Creature* creature);
void Reset(); // Generically used to reset our variables. Do *not* call in EnterEvadeMode as this may make problems if the raid is still in combat
@@ -196,7 +196,7 @@ struct hyjalAI : public npc_escortAI
void SummonedCreatureDespawn(Creature* summoned);
void HideNearPos(float x, float y);
void RespawnNearPos(float x, float y);
- void WaypointReached(uint32 i);
+ void WaypointReached(uint32 waypointId);
void DoOverrun(uint32 faction, const uint32 diff);
void MoveInLineOfSight(Unit* who);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index c94cb874bfa..840aa5de081 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -155,9 +155,9 @@ float HordeOverrunWP[21][3]=//waypoints in the horde base used in the end in the
{5429.91f, -2718.44f, 1493.42f}//20 end 2
};
-hyjal_trashAI::hyjal_trashAI(Creature* c) : npc_escortAI(c)
+hyjal_trashAI::hyjal_trashAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
IsEvent = false;
Delay = 0;
LastOverronPos = 0;
@@ -377,10 +377,11 @@ void hyjal_trashAI::UpdateAI(const uint32 /*diff*/)
}
}
-void hyjal_trashAI::JustDied(Unit* /*victim*/)
+void hyjal_trashAI::JustDied(Unit* /*killer*/)
{
if (!instance)
return;
+
if (IsEvent && !me->isWorldBoss())
instance->SetData(DATA_TRASH, 0);//signal trash is dead
@@ -395,9 +396,9 @@ public:
struct mob_giant_infernalAI : public hyjal_trashAI
{
- mob_giant_infernalAI(Creature* c) : hyjal_trashAI(c)
+ mob_giant_infernalAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
meteor = false;//call once!
CanMove = false;
Delay = rand()%30000;
@@ -405,7 +406,6 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetDisplayId(MODEL_INVIS);
go = false;
- pos = 0;
Reset();
}
@@ -413,7 +413,6 @@ public:
bool CanMove;
bool WpEnabled;
bool go;
- uint32 pos;
uint32 spawnTimer;
uint32 FlameBuffetTimer;
bool imol;
@@ -427,14 +426,13 @@ public:
void EnterCombat(Unit* /*who*/) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 0 && instance && !IsOverrun)
+ if (waypointId == 0 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
@@ -459,7 +457,7 @@ public:
{
trigger->SetVisible(false);
trigger->setFaction(me->getFaction());
- trigger->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ trigger->SetDisableGravity(true);
trigger->CastSpell(me, SPELL_METEOR, true);
}
me->GetMotionMaster()->Clear();
@@ -475,7 +473,7 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
} else if (instance->GetData(DATA_ALLIANCE_RETREAT) && instance->GetData(DATA_HORDE_RETREAT)){
@@ -539,39 +537,38 @@ public:
struct mob_abominationAI : public hyjal_trashAI
{
- mob_abominationAI(Creature* c) : hyjal_trashAI(c)
+ mob_abominationAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
bool go;
uint32 KnockDownTimer;
- uint32 pos;
void Reset()
{
KnockDownTimer = 10000;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance && !IsOverrun)
+ if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
- }else{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ }
+ else
+ {
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
}
- if (i == LastOverronPos && IsOverrun)
+ if (waypointId == LastOverronPos && IsOverrun)
{
if ((faction == 0 && LastOverronPos == 17) || (faction == 1 && LastOverronPos == 21))
{
@@ -640,17 +637,15 @@ public:
struct mob_ghoulAI : public hyjal_trashAI
{
- mob_ghoulAI(Creature* c) : hyjal_trashAI(c)
+ mob_ghoulAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
bool go;
uint32 FrenzyTimer;
- uint32 pos;
uint32 MoveTimer;
bool RandomMove;
void Reset()
@@ -660,23 +655,24 @@ public:
RandomMove = false;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance && !IsOverrun)
+ if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
- }else{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ }
+ else
+ {
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
}
- if (i == LastOverronPos && IsOverrun)
+ if (waypointId == LastOverronPos && IsOverrun)
{
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK_UNARMED);
if ((faction == 0 && LastOverronPos == 17) || (faction == 1 && LastOverronPos == 21))
@@ -684,7 +680,6 @@ public:
me->setDeathState(DEAD);
me->RemoveCorpse();
}
-
}
}
@@ -749,17 +744,17 @@ public:
struct mob_necromancerAI : public hyjal_trashAI
{
- mob_necromancerAI(Creature* c) : hyjal_trashAI(c), summons(me)
+ mob_necromancerAI(Creature* creature) : hyjal_trashAI(creature), summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
+
SummonList summons;
bool go;
uint32 ShadowBoltTimer;
- uint32 pos;
+
void Reset()
{
ShadowBoltTimer = 1000+rand()%5000;
@@ -773,19 +768,25 @@ public:
summon->Attack(target, false);
summons.Summon(summon);
}
- void SummonedCreatureDespawn(Creature* summon) {summons.Despawn(summon);}
- void WaypointReached(uint32 i)
+
+ void SummonedCreatureDespawn(Creature* summon)
{
- pos = i;
- if (i == 7 && instance && !IsOverrun)
+ summons.Despawn(summon);
+ }
+
+ void WaypointReached(uint32 waypointId)
+ {
+ if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
- }else{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ }
+ else
+ {
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
@@ -815,8 +816,10 @@ public:
void UpdateAI(const uint32 diff)
{
hyjal_trashAI::UpdateAI(diff);
+
if (IsEvent || IsOverrun)
npc_escortAI::UpdateAI(diff);
+
if (IsEvent)
{
if (!go)
@@ -840,8 +843,10 @@ public:
}
}
}
+
if (!UpdateVictim())
return;
+
if (ShadowBoltTimer <= diff)
{
DoCast(me->getVictim(), SPELL_SHADOW_BOLT);
@@ -870,11 +875,10 @@ public:
struct mob_bansheeAI : public hyjal_trashAI
{
- mob_bansheeAI(Creature* c) : hyjal_trashAI(c)
+ mob_bansheeAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
@@ -882,7 +886,7 @@ public:
uint32 CourseTimer;
uint32 WailTimer;
uint32 ShellTimer;
- uint32 pos;
+
void Reset()
{
CourseTimer = 20000+rand()%5000;
@@ -890,18 +894,19 @@ public:
ShellTimer = 50000+rand()%10000;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance && !IsOverrun)
+ if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
- }else{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ }
+ else
+ {
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
@@ -975,34 +980,34 @@ public:
struct mob_crypt_fiendAI : public hyjal_trashAI
{
- mob_crypt_fiendAI(Creature* c) : hyjal_trashAI(c)
+ mob_crypt_fiendAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
bool go;
uint32 WebTimer;
- uint32 pos;
+
void Reset()
{
WebTimer = 20000+rand()%5000;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance && !IsOverrun)
+ if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
- }else{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ }
+ else
+ {
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
@@ -1067,34 +1072,34 @@ public:
struct mob_fel_stalkerAI : public hyjal_trashAI
{
- mob_fel_stalkerAI(Creature* c) : hyjal_trashAI(c)
+ mob_fel_stalkerAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
bool go;
uint32 ManaBurnTimer;
- uint32 pos;
+
void Reset()
{
ManaBurnTimer = 9000+rand()%5000;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 7 && instance && !IsOverrun)
+ if (waypointId == 7 && instance && !IsOverrun)
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
- }else{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
+ }
+ else
+ {
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
if (target && target->isAlive())
me->AddThreat(target, 0.0f);
}
@@ -1159,32 +1164,29 @@ public:
struct mob_frost_wyrmAI : public hyjal_trashAI
{
- mob_frost_wyrmAI(Creature* c) : hyjal_trashAI(c)
+ mob_frost_wyrmAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
Reset();
}
bool go;
uint32 FrostBreathTimer;
- uint32 pos;
uint32 MoveTimer;
void Reset()
{
FrostBreathTimer = 5000;
MoveTimer = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 2 && instance && !IsOverrun)
+ if (waypointId == 2 && instance && !IsOverrun)
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
{
me->AddThreat(target, 0.0f);
@@ -1193,7 +1195,7 @@ public:
}
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance && IsEvent)
instance->SetData(DATA_TRASH, 0);//signal trash is dead
@@ -1276,18 +1278,16 @@ public:
struct mob_gargoyleAI : public hyjal_trashAI
{
- mob_gargoyleAI(Creature* c) : hyjal_trashAI(c)
+ mob_gargoyleAI(Creature* creature) : hyjal_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
go = false;
- pos = 0;
DummyTarget[0] = 0;DummyTarget[1] = 0;DummyTarget[2] = 0;
Reset();
}
bool go;
uint32 StrikeTimer;
- uint32 pos;
uint32 MoveTimer;
float Zpos;
bool forcemove;
@@ -1298,15 +1298,14 @@ public:
Zpos = 10.0f;
StrikeTimer = 2000+rand()%5000;
MoveTimer = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- pos = i;
- if (i == 2 && instance && !IsOverrun)
+ if (waypointId == 2 && instance && !IsOverrun)
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_THRALL));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL));
if (target && target->isAlive())
{
me->AddThreat(target, 0.0f);
@@ -1315,14 +1314,14 @@ public:
}
}
- void JustDied(Unit* victim)
+ void JustDied(Unit* killer)
{
float x, y, z;
me->GetPosition(x, y, z);
z = me->GetMap()->GetHeight(me->GetPhaseMask(), x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z);
me->SetPosition(x, y, z, 0);
- hyjal_trashAI::JustDied(victim);
+ hyjal_trashAI::JustDied(killer);
}
void UpdateAI(const uint32 diff)
@@ -1382,8 +1381,9 @@ public:
float x, y, z;
me->getVictim()->GetPosition(x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z+Zpos);
- Zpos-=1.0f;
- if (Zpos <= 0)Zpos=0;
+ Zpos -= 1.0f;
+ if (Zpos <= 0)
+ Zpos = 0;
MoveTimer = 2000;
} else MoveTimer-=diff;
}
@@ -1416,14 +1416,14 @@ public:
struct alliance_riflemanAI : public Scripted_NoMovementAI
{
- alliance_riflemanAI(Creature* c) : Scripted_NoMovementAI(c)
+ alliance_riflemanAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
Reset();
}
uint32 ExplodeTimer;
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.h
index 047c0dc308e..cb994167641 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.h
@@ -25,7 +25,7 @@
struct hyjal_trashAI : public npc_escortAI
{
- hyjal_trashAI(Creature* c);
+ hyjal_trashAI(Creature* creature);
void UpdateAI(const uint32 diff);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
index b87379d599f..ad8ebdb370a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
@@ -110,7 +110,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -175,17 +176,23 @@ public:
{
switch (type)
{
- case DATA_RAGEWINTERCHILLEVENT: m_auiEncounter[0] = data; break;
+ case DATA_RAGEWINTERCHILLEVENT:
+ m_auiEncounter[0] = data;
+ break;
case DATA_ANETHERONEVENT:
m_auiEncounter[1] = data;
break;
- case DATA_KAZROGALEVENT: m_auiEncounter[2] = data; break;
+ case DATA_KAZROGALEVENT:
+ m_auiEncounter[2] = data;
+ break;
case DATA_AZGALOREVENT:
{
m_auiEncounter[3] = data;
if (data == DONE)
{
- if (ArchiYell)break;
+ if (ArchiYell)
+ break;
+
ArchiYell = true;
Creature* creature = instance->GetCreature(Azgalor);
@@ -219,12 +226,17 @@ public:
}
}
break;
- case DATA_ARCHIMONDEEVENT: m_auiEncounter[4] = data; break;
- case DATA_RESET_TRASH_COUNT: Trash = 0; break;
-
+ case DATA_ARCHIMONDEEVENT:
+ m_auiEncounter[4] = data;
+ break;
+ case DATA_RESET_TRASH_COUNT:
+ Trash = 0;
+ break;
case DATA_TRASH:
- if (data) Trash = data;
- else Trash--;
+ if (data)
+ Trash = data;
+ else
+ Trash--;
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, Trash);
break;
case TYPE_RETREAT:
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp
index 35c1848456b..b2853f25a33 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp
@@ -60,9 +60,9 @@ public:
struct boss_epochAI : public ScriptedAI
{
- boss_epochAI(Creature* c) : ScriptedAI(c)
+ boss_epochAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint8 uiStep;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp
index 7947c9be48d..ccf60f9bd0b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp
@@ -43,9 +43,9 @@ public:
struct boss_infinite_corruptorAI : public ScriptedAI
{
- boss_infinite_corruptorAI(Creature* c) : ScriptedAI(c)
+ boss_infinite_corruptorAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
index b61838a253a..a038a06f815 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
@@ -77,9 +77,9 @@ public:
struct boss_mal_ganisAI : public ScriptedAI
{
- boss_mal_ganisAI(Creature* c) : ScriptedAI(c)
+ boss_mal_ganisAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiCarrionSwarmTimer;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
index c36b98ed510..d5dd597960f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
@@ -57,9 +57,9 @@ public:
struct boss_meathookAI : public ScriptedAI
{
- boss_meathookAI(Creature* c) : ScriptedAI(c)
+ boss_meathookAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (instance)
DoScriptText(SAY_SPAWN, me);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp
index 7a5e0d06158..7828d172e1e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp
@@ -66,9 +66,9 @@ public:
struct boss_salrammAI : public ScriptedAI
{
- boss_salrammAI(Creature* c) : ScriptedAI(c)
+ boss_salrammAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (instance)
DoScriptText(SAY_SPAWN, me);
}
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 9518abd1635..6454083e424 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -446,9 +446,9 @@ public:
++uiStep;
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 0:
case 1:
@@ -591,11 +591,11 @@ public:
}
//After waypoint 0
case 1:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
if (Unit* pUther = me->SummonCreature(NPC_UTHER, 1794.357f, 1272.183f, 140.558f, 1.37f, TEMPSUMMON_DEAD_DESPAWN, 180000))
{
uiUtherGUID = pUther->GetGUID();
- pUther->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pUther->SetWalk(false);
pUther->GetMotionMaster()->MovePoint(0, 1897.018f, 1287.487f, 143.481f);
pUther->SetTarget(me->GetGUID());
me->SetTarget(uiUtherGUID);
@@ -680,7 +680,7 @@ public:
case 17:
if (Creature* pUther = Unit::GetCreature(*me, uiUtherGUID))
{
- pUther->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pUther->SetWalk(true);
pUther->GetMotionMaster()->MovePoint(0, 1794.357f, 1272.183f, 140.558f);
}
JumpToNextStep(1000);
@@ -689,7 +689,7 @@ public:
if (Creature* pJaina = Unit::GetCreature(*me, uiJainaGUID))
{
me->SetTarget(uiJainaGUID);
- pJaina->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pJaina->SetWalk(true);
pJaina->GetMotionMaster()->MovePoint(0, 1794.357f, 1272.183f, 140.558f);
}
JumpToNextStep(1000);
@@ -755,7 +755,7 @@ public:
if (Creature* pCityman = Unit::GetCreature(*me, uiCitymenGUID[0]))
{
pCityman->SetTarget(me->GetGUID());
- pCityman->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pCityman->SetWalk(true);
pCityman->GetMotionMaster()->MovePoint(0, 2088.625f, 1279.191f, 140.743f);
}
JumpToNextStep(2000);
@@ -929,7 +929,7 @@ public:
if (Unit* pBoss = me->SummonCreature(uiBossID, 2232.19f, 1331.933f, 126.662f, 3.15f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900000))
{
uiBossGUID = pBoss->GetGUID();
- pBoss->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pBoss->SetWalk(true);
pBoss->GetMotionMaster()->MovePoint(0, 2194.110f, 1332.00f, 130.00f);
}
}
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 9a91e1e232b..b232cae4657 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
@@ -16,6 +16,7 @@
*/
#include "ScriptPCH.h"
+#include "CreatureTextMgr.h"
#include "culling_of_stratholme.h"
#define MAX_ENCOUNTER 5
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp
index b895b56379c..5b47c2ee07d 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_aeonus.cpp
@@ -55,9 +55,9 @@ public:
struct boss_aeonusAI : public ScriptedAI
{
- boss_aeonusAI(Creature* c) : ScriptedAI(c)
+ boss_aeonusAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -93,7 +93,7 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
index 99e43495c96..a4e805b3b75 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_chrono_lord_deja.cpp
@@ -55,9 +55,9 @@ public:
struct boss_chrono_lord_dejaAI : public ScriptedAI
{
- boss_chrono_lord_dejaAI(Creature* c) : ScriptedAI(c)
+ boss_chrono_lord_dejaAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -100,7 +100,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
index 9b272491717..f59c9f0ef4c 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/boss_temporus.cpp
@@ -54,9 +54,9 @@ public:
struct boss_temporusAI : public ScriptedAI
{
- boss_temporusAI(Creature* c) : ScriptedAI(c)
+ boss_temporusAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -84,7 +84,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
index 4ff34fc3349..c2a41cb29d1 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
@@ -68,9 +68,9 @@ public:
struct npc_medivh_bmAI : public ScriptedAI
{
- npc_medivh_bmAI(Creature* c) : ScriptedAI(c)
+ npc_medivh_bmAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -111,7 +111,7 @@ public:
instance->SetData(TYPE_MEDIVH, IN_PROGRESS);
DoCast(me, SPELL_CHANNEL, false);
Check_Timer = 5000;
- }
+ }
else if (who->GetTypeId() == TYPEID_UNIT && me->IsWithinDistInMap(who, 15.0f))
{
if (instance->GetData(TYPE_MEDIVH) != IN_PROGRESS)
@@ -153,9 +153,9 @@ public:
SpellCorrupt_Timer = 3000;
}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
- if (Killer->GetEntry() == me->GetEntry())
+ if (killer->GetEntry() == me->GetEntry())
return;
DoScriptText(SAY_DEATH, me);
@@ -170,7 +170,7 @@ public:
{
if (SpellCorrupt_Timer <= diff)
{
- instance->SetData(TYPE_MEDIVH, SPECIAL);
+ instance->SetData(TYPE_MEDIVH, SPECIAL);
if (me->HasAura(SPELL_CORRUPT_AEONUS))
SpellCorrupt_Timer = 1000;
@@ -261,9 +261,9 @@ public:
struct npc_time_riftAI : public ScriptedAI
{
- npc_time_riftAI(Creature* c) : ScriptedAI(c)
+ npc_time_riftAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -318,11 +318,11 @@ public:
void DoSelectSummon()
{
- uint32 entry = 0;
-
if ((mRiftWaveCount > 2 && mWaveId < 1) || mRiftWaveCount > 3)
mRiftWaveCount = 0;
+ uint32 entry = 0;
+
entry = PortalWaves[mWaveId].PortalMob[mRiftWaveCount];
sLog->outDebug(LOG_FILTER_TSCR, "TSCR: npc_time_rift: summoning wave Creature (Wave %u, Entry %u).", mRiftWaveCount, entry);
@@ -370,10 +370,10 @@ class npc_saat : public CreatureScript
public:
npc_saat() : CreatureScript("npc_saat") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_CHRONO_BEACON, false);
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 dabf3db13cb..2c8cd096644 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp
@@ -116,9 +116,9 @@ public:
DoUpdateWorldState(WORLD_STATE_BM_RIFT, 0);
}
- bool IsEncounterInProgress()
+ bool IsEncounterInProgress() const
{
- if (GetData(TYPE_MEDIVH) == IN_PROGRESS)
+ if (const_cast<instance_dark_portal_InstanceMapScript*>(this)->GetData(TYPE_MEDIVH) == IN_PROGRESS)
return true;
return false;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
index 89877f2cc7b..c27507cdcec 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
@@ -52,9 +52,9 @@ public:
struct boss_captain_skarlocAI : public ScriptedAI
{
- boss_captain_skarlocAI(Creature* c) : ScriptedAI(c)
+ boss_captain_skarlocAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -88,7 +88,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
index 8307eb44013..82bd0a9e9be 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
@@ -54,9 +54,9 @@ public:
struct boss_epoch_hunterAI : public ScriptedAI
{
- boss_epoch_hunterAI(Creature* c) : ScriptedAI(c)
+ boss_epoch_hunterAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -84,7 +84,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
index 1f0ba93645f..45825a81eb2 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
@@ -36,9 +36,9 @@ class go_barrel_old_hillsbrad : public GameObjectScript
public:
go_barrel_old_hillsbrad() : GameObjectScript("go_barrel_old_hillsbrad") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- if (InstanceScript* instance = pGO->GetInstanceScript())
+ if (InstanceScript* instance = go->GetInstanceScript())
{
if (instance->GetData(TYPE_BARREL_DIVERSION) == DONE)
return false;
@@ -111,7 +111,7 @@ public:
struct boss_lieutenant_drakeAI : public ScriptedAI
{
- boss_lieutenant_drakeAI(Creature* c) : ScriptedAI(c) {}
+ boss_lieutenant_drakeAI(Creature* creature) : ScriptedAI(creature) {}
bool CanPatrol;
uint32 wpId;
@@ -142,7 +142,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index aa57b3d9499..7d9da6771dc 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -51,10 +51,10 @@ class npc_erozion : public CreatureScript
public:
npc_erozion() : CreatureScript("npc_erozion") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_ENTRY_BOMBS, 1);
@@ -64,7 +64,7 @@ public:
}
player->SEND_GOSSIP_MENU(9515, creature->GetGUID());
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
}
@@ -198,11 +198,11 @@ public:
return new npc_thrall_old_hillsbradAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -282,9 +282,9 @@ public:
struct npc_thrall_old_hillsbradAI : public npc_escortAI
{
- npc_thrall_old_hillsbradAI(Creature* c) : npc_escortAI(c)
+ npc_thrall_old_hillsbradAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
HadMount = false;
me->setActive(true);
}
@@ -296,12 +296,12 @@ public:
bool LowHp;
bool HadMount;
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
if (!instance)
return;
- switch (i)
+ switch (waypointId)
{
case 8:
SetRun(false);
@@ -401,7 +401,7 @@ public:
SetRun();
break;
case 91:
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
SetRun(false);
break;
case 93:
@@ -413,7 +413,7 @@ public:
case 94:
if (uint64 TarethaGUID = instance->GetData64(DATA_TARETHA))
{
- if (Unit* Taretha = Unit::GetUnit((*me), TarethaGUID))
+ if (Unit* Taretha = Unit::GetUnit(*me, TarethaGUID))
DoScriptText(SAY_TA_ESCAPED, Taretha, me);
}
break;
@@ -433,7 +433,6 @@ public:
//trigger epoch Yell("Thrall! Come outside and face your fate! ....")
//from here, thrall should not never be allowed to move to point 106 which he currently does.
break;
-
case 106:
{
//trigger taretha to run down outside
@@ -581,16 +580,16 @@ public:
return new npc_tarethaAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_EPOCH2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
player->SEND_GOSSIP_MENU(GOSSIP_ID_EPOCH2, creature->GetGUID());
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
@@ -624,16 +623,16 @@ public:
struct npc_tarethaAI : public npc_escortAI
{
- npc_tarethaAI(Creature* c) : npc_escortAI(c)
+ npc_tarethaAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
case 6:
DoScriptText(SAY_TA_FREE, me);
@@ -643,6 +642,7 @@ public:
break;
}
}
+
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
index 38d9ce31563..d7043965271 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
@@ -59,7 +59,7 @@ public:
void EnterCombat(Unit* /*who*/) { }
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
me->SummonCreature(13716, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 600000);
}
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index 3b42fc3ed7b..6e6e089ba02 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -114,11 +114,11 @@ public:
{
boss_onyxiaAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Reset();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
uint32 m_uiPhase;
@@ -169,11 +169,11 @@ public:
m_uiSummonWhelpCount = 0;
m_bIsMoving = false;
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(DATA_ONYXIA, NOT_STARTED);
- m_instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
- m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
+ instance->SetData(DATA_ONYXIA, NOT_STARTED);
+ instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
+ instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
@@ -182,17 +182,17 @@ public:
DoScriptText(SAY_AGGRO, me);
me->SetInCombatWithZone();
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(DATA_ONYXIA, IN_PROGRESS);
- m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
+ instance->SetData(DATA_ONYXIA, IN_PROGRESS);
+ instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
void JustDied(Unit* /*killer*/)
{
- if (m_instance)
- m_instance->SetData(DATA_ONYXIA, DONE);
+ if (instance)
+ instance->SetData(DATA_ONYXIA, DONE);
Summons.DespawnAll();
}
@@ -261,12 +261,12 @@ public:
m_uiBellowingRoarTimer = 1000;
break;
case 10:
- me->SetFlying(true);
+ me->SetCanFly(true);
me->GetMotionMaster()->MovePoint(11, Phase2Location.GetPositionX(), Phase2Location.GetPositionY(), Phase2Location.GetPositionZ()+25);
me->SetSpeed(MOVE_FLIGHT, 1.0f);
DoScriptText(SAY_PHASE_2_TRANS, me);
- if (m_instance)
- m_instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
+ if (instance)
+ instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
m_uiWhelpTimer = 5000;
m_uiLairGuardTimer = 15000;
break;
@@ -301,9 +301,9 @@ public:
(pSpell->Id >= 22267 && pSpell->Id <= 22268)) &&
(target->GetTypeId() == TYPEID_PLAYER))
{
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL);
+ instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL);
}
}
}
@@ -362,8 +362,8 @@ public:
Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15);
Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, pFloor, check);
me->VisitNearbyGridObject(30, searcher);
- if (m_instance && pFloor)
- m_instance->SetData64(DATA_FLOOR_ERUPTION_GUID, pFloor->GetGUID());
+ if (instance && pFloor)
+ instance->SetData64(DATA_FLOOR_ERUPTION_GUID, pFloor->GetGUID());
m_uiBellowingRoarTimer = 30000;
}
else
@@ -409,12 +409,12 @@ public:
if (HealthBelowPct(40))
{
m_uiPhase = PHASE_END;
- if (m_instance)
- m_instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
+ if (instance)
+ instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
DoScriptText(SAY_PHASE_3_TRANS, me);
SetCombatMovement(true);
- me->SetFlying(false);
+ me->SetCanFly(false);
m_bIsMoving = false;
me->GetMotionMaster()->MovePoint(9, me->GetHomePosition());
return;
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
index d0da864809c..bda5267713d 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
@@ -48,7 +48,7 @@ public:
struct boss_amnennar_the_coldbringerAI : public ScriptedAI
{
- boss_amnennar_the_coldbringerAI(Creature* c) : ScriptedAI(c) {}
+ boss_amnennar_the_coldbringerAI(Creature* creature) : ScriptedAI(creature) {}
uint32 AmnenarsWrath_Timer;
uint32 FrostBolt_Timer;
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index ac9bf524e7a..b84ecea4de3 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -52,16 +52,16 @@ class npc_henry_stern : public CreatureScript
public:
npc_henry_stern() : CreatureScript("npc_henry_stern") { }
- bool OnGossipSelect (Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CastSpell(player, SPELL_TEACHING_GOLDTHORN_TEA, true);
player->SEND_GOSSIP_MENU(GOSSIP_TEXT_TEA_ANSWER, creature->GetGUID());
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 2)
+ if (action == GOSSIP_ACTION_INFO_DEF + 2)
{
player->CastSpell(player, SPELL_TEACHING_MIGHTY_TROLLS_BLOOD_POTION, true);
player->SEND_GOSSIP_MENU(GOSSIP_TEXT_POTION_ANSWER, creature->GetGUID());
@@ -70,7 +70,7 @@ public:
return true;
}
- bool OnGossipHello (Player* player, Creature* creature)
+ bool OnGossipHello(Player* player, Creature* creature)
{
if (player->GetBaseSkillValue(SKILL_COOKING) >= 175 && !player->HasSpell(SPELL_GOLDTHORN_TEA))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -81,7 +81,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -93,10 +92,10 @@ class go_gong : public GameObjectScript
public:
go_gong() : GameObjectScript("go_gong") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
//basic support, not blizzlike data is missing...
- InstanceScript* instance = pGO->GetInstanceScript();
+ InstanceScript* instance = go->GetInstanceScript();
if (instance)
{
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index 1bc0a3b7a19..43e3fe6efdd 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -70,57 +70,56 @@ public:
struct npc_willixAI : public npc_escortAI
{
- npc_willixAI(Creature* c) : npc_escortAI(c) {}
+ npc_willixAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 3:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- DoScriptText(SAY_POINT, me, player);
- break;
- case 4:
- me->SummonCreature(ENTRY_BOAR, 2137.66f, 1843.98f, 48.08f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- break;
- case 8:
- DoScriptText(SAY_BLUELEAF, me, player);
- break;
- case 9:
- DoScriptText(SAY_DANGER, me, player);
- break;
- case 13:
- DoScriptText(SAY_BAD, me, player);
- break;
- case 14:
- me->SummonCreature(ENTRY_BOAR, 2078.91f, 1704.54f, 56.77f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- break;
- case 25:
- DoScriptText(SAY_THINK, me, player);
- break;
- case 31:
- DoScriptText(SAY_SOON, me, player);
- break;
- case 42:
- DoScriptText(SAY_FINALY, me, player);
- break;
- case 43:
- me->SummonCreature(ENTRY_BOAR, 1956.43f, 1596.97f, 81.75f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- break;
- case 45:
- DoScriptText(SAY_WIN, me, player);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- if (player && player->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER, me);
- break;
- case 46:
- DoScriptText(SAY_END, me, player);
- break;
+ case 3:
+ me->HandleEmoteCommand(EMOTE_STATE_POINT);
+ DoScriptText(SAY_POINT, me, player);
+ break;
+ case 4:
+ me->SummonCreature(ENTRY_BOAR, 2137.66f, 1843.98f, 48.08f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ break;
+ case 8:
+ DoScriptText(SAY_BLUELEAF, me, player);
+ break;
+ case 9:
+ DoScriptText(SAY_DANGER, me, player);
+ break;
+ case 13:
+ DoScriptText(SAY_BAD, me, player);
+ break;
+ case 14:
+ me->SummonCreature(ENTRY_BOAR, 2078.91f, 1704.54f, 56.77f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ break;
+ case 25:
+ DoScriptText(SAY_THINK, me, player);
+ break;
+ case 31:
+ DoScriptText(SAY_SOON, me, player);
+ break;
+ case 42:
+ DoScriptText(SAY_FINALY, me, player);
+ break;
+ case 43:
+ me->SummonCreature(ENTRY_BOAR, 1956.43f, 1596.97f, 81.75f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ break;
+ case 45:
+ DoScriptText(SAY_WIN, me, player);
+ me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ if (player->GetTypeId() == TYPEID_PLAYER)
+ CAST_PLR(player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER, me);
+ break;
+ case 46:
+ DoScriptText(SAY_END, me, player);
+ break;
}
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
index a290b07e60f..18a77519ba2 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -147,7 +147,7 @@ class boss_moam : public CreatureScript
targetList.push_back((*itr)->getTarget());
}
- Trinity::RandomResizeList(targetList, 5);
+ Trinity::Containers::RandomResizeList(targetList, 5);
for (std::list<Unit*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
DoCast(*itr, SPELL_DRAIN_MANA);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index eaeec50ef7b..36b1871c96e 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -49,9 +49,9 @@ public:
struct boss_kriAI : public ScriptedAI
{
- boss_kriAI(Creature* c) : ScriptedAI(c)
+ boss_kriAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -146,9 +146,9 @@ public:
struct boss_vemAI : public ScriptedAI
{
- boss_vemAI(Creature* c) : ScriptedAI(c)
+ boss_vemAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -168,7 +168,7 @@ public:
Enraged = false;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -239,9 +239,9 @@ public:
struct boss_yaujAI : public ScriptedAI
{
- boss_yaujAI(Creature* c) : ScriptedAI(c)
+ boss_yaujAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -261,7 +261,7 @@ public:
VemDead = false;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -303,8 +303,8 @@ public:
{
if (instance)
{
- Unit* pKri = Unit::GetUnit((*me), instance->GetData64(DATA_KRI));
- Unit* pVem = Unit::GetUnit((*me), instance->GetData64(DATA_VEM));
+ Unit* pKri = Unit::GetUnit(*me, instance->GetData64(DATA_KRI));
+ Unit* pVem = Unit::GetUnit(*me, instance->GetData64(DATA_VEM));
switch (urand(0, 2))
{
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index a6409ca056f..11efccd14b7 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -176,9 +176,9 @@ public:
struct eye_of_cthunAI : public Scripted_NoMovementAI
{
- eye_of_cthunAI(Creature* c) : Scripted_NoMovementAI(c)
+ eye_of_cthunAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (!instance)
sLog->outError("TSCR: No Instance eye_of_cthunAI");
}
@@ -480,11 +480,11 @@ public:
struct cthunAI : public Scripted_NoMovementAI
{
- cthunAI(Creature* c) : Scripted_NoMovementAI(c)
+ cthunAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
SetCombatMovement(false);
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (!instance)
sLog->outError("TSCR: No Instance eye_of_cthunAI");
}
@@ -607,7 +607,8 @@ public:
if (WisperTimer <= diff)
{
Map* map = me->GetMap();
- if (!map->IsDungeon()) return;
+ if (!map->IsDungeon())
+ return;
//Play random sound to the zone
Map::PlayerList const &PlayerList = map->GetPlayers();
@@ -935,7 +936,7 @@ public:
struct eye_tentacleAI : public Scripted_NoMovementAI
{
- eye_tentacleAI(Creature* c) : Scripted_NoMovementAI(c)
+ eye_tentacleAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
if (Creature* pPortal = me->SummonCreature(MOB_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
{
@@ -948,7 +949,7 @@ public:
uint32 KillSelfTimer;
uint64 Portal;
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
@@ -1008,7 +1009,7 @@ public:
struct claw_tentacleAI : public Scripted_NoMovementAI
{
- claw_tentacleAI(Creature* c) : Scripted_NoMovementAI(c)
+ claw_tentacleAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
SetCombatMovement(false);
@@ -1024,7 +1025,7 @@ public:
uint32 EvadeTimer;
uint64 Portal;
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
@@ -1118,7 +1119,7 @@ public:
struct giant_claw_tentacleAI : public Scripted_NoMovementAI
{
- giant_claw_tentacleAI(Creature* c) : Scripted_NoMovementAI(c)
+ giant_claw_tentacleAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
SetCombatMovement(false);
@@ -1135,7 +1136,7 @@ public:
uint32 EvadeTimer;
uint64 Portal;
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
@@ -1237,7 +1238,7 @@ public:
struct giant_eye_tentacleAI : public Scripted_NoMovementAI
{
- giant_eye_tentacleAI(Creature* c) : Scripted_NoMovementAI(c)
+ giant_eye_tentacleAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
SetCombatMovement(false);
@@ -1251,7 +1252,7 @@ public:
uint32 BeamTimer;
uint64 Portal;
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Unit* p = Unit::GetUnit(*me, Portal))
p->Kill(p);
@@ -1301,7 +1302,7 @@ public:
struct flesh_tentacleAI : public Scripted_NoMovementAI
{
- flesh_tentacleAI(Creature* c) : Scripted_NoMovementAI(c)
+ flesh_tentacleAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
SetCombatMovement(false);
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
index 9ccff0bff48..613bc91182b 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
@@ -49,7 +49,7 @@ public:
struct boss_fankrissAI : public ScriptedAI
{
- boss_fankrissAI(Creature* c) : ScriptedAI(c) {}
+ boss_fankrissAI(Creature* creature) : ScriptedAI(creature) {}
uint32 MortalWound_Timer;
uint32 SpawnHatchlings_Timer;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
index c0ccd55f219..53fac3ee3ec 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
@@ -47,7 +47,7 @@ public:
struct boss_huhuranAI : public ScriptedAI
{
- boss_huhuranAI(Creature* c) : ScriptedAI(c) {}
+ boss_huhuranAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Frenzy_Timer;
uint32 Wyvern_Timer;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
index b0e5112aa6b..81205780e7d 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
@@ -45,7 +45,7 @@ public:
struct boss_ouroAI : public ScriptedAI
{
- boss_ouroAI(Creature* c) : ScriptedAI(c) {}
+ boss_ouroAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Sweep_Timer;
uint32 SandBlast_Timer;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
index 4d5aff16770..8c6c0fa0ad0 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -49,7 +49,7 @@ public:
struct boss_sarturaAI : public ScriptedAI
{
- boss_sarturaAI(Creature* c) : ScriptedAI(c) {}
+ boss_sarturaAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WhirlWind_Timer;
uint32 WhirlWindRandom_Timer;
@@ -84,7 +84,7 @@ public:
DoScriptText(SAY_AGGRO, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
@@ -192,7 +192,7 @@ public:
struct mob_sartura_royal_guardAI : public ScriptedAI
{
- mob_sartura_royal_guardAI(Creature* c) : ScriptedAI(c) {}
+ mob_sartura_royal_guardAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WhirlWind_Timer;
uint32 WhirlWindRandom_Timer;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 7f3c19ac69c..4df4bf73330 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -63,7 +63,7 @@ public:
struct boss_skeramAI : public ScriptedAI
{
- boss_skeramAI(Creature* c) : ScriptedAI(c)
+ boss_skeramAI(Creature* creature) : ScriptedAI(creature)
{
IsImage = false;
}
@@ -105,7 +105,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (!IsImage)
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index b03d2dc3a4a..abaab9d830e 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -61,9 +61,9 @@ EndScriptData */
struct boss_twinemperorsAI : public ScriptedAI
{
- boss_twinemperorsAI(Creature* c): ScriptedAI(c)
+ boss_twinemperorsAI(Creature* creature): ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -120,7 +120,7 @@ struct boss_twinemperorsAI : public ScriptedAI
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
Creature* pOtherBoss = GetOtherBoss();
if (pOtherBoss)
@@ -393,7 +393,7 @@ public:
struct boss_veknilashAI : public boss_twinemperorsAI
{
bool IAmVeklor() {return false;}
- boss_veknilashAI(Creature* c) : boss_twinemperorsAI(c) {}
+ boss_veknilashAI(Creature* creature) : boss_twinemperorsAI(creature) {}
uint32 UpperCut_Timer;
uint32 UnbalancingStrike_Timer;
@@ -479,7 +479,7 @@ public:
struct boss_veklorAI : public boss_twinemperorsAI
{
bool IAmVeklor() {return true;}
- boss_veklorAI(Creature* c) : boss_twinemperorsAI(c) {}
+ boss_veklorAI(Creature* creature) : boss_twinemperorsAI(creature) {}
uint32 ShadowBolt_Timer;
uint32 Blizzard_Timer;
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 38ea8e8748b..f1cc0b401c3 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
@@ -117,7 +117,7 @@ public:
return 0;
}
- uint64 GetData64 (uint32 identifier)
+ uint64 GetData64(uint32 identifier)
{
switch (identifier)
{
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
index 45e9797328e..556247d85af 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
@@ -86,7 +86,7 @@ public:
}
}
- aqsentinelAI(Creature* c) : ScriptedAI(c)
+ aqsentinelAI(Creature* creature) : ScriptedAI(creature)
{
ClearBuddyList();
abselected = 0; // just initialization of variable
@@ -242,7 +242,7 @@ public:
DoZoneInCombat();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
for (int ni=0; ni<3; ++ni)
{
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index 8eb3d20d528..7e93cc7e4c7 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -85,11 +85,11 @@ public:
return new npc_disciple_of_naralexAI(creature);
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CLOSE_GOSSIP_MENU();
if (instance)
@@ -136,9 +136,9 @@ public:
struct npc_disciple_of_naralexAI : public npc_escortAI
{
- npc_disciple_of_naralexAI(Creature* c) : npc_escortAI(c)
+ npc_disciple_of_naralexAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
eventTimer = 0;
currentEvent = 0;
eventProgress = 0;
@@ -151,35 +151,35 @@ public:
uint32 eventProgress;
InstanceScript* instance;
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
if (!instance)
return;
- switch (i)
+ switch (waypointId)
{
case 4:
eventProgress = 1;
currentEvent = TYPE_NARALEX_PART1;
instance->SetData(TYPE_NARALEX_PART1, IN_PROGRESS);
- break;
+ break;
case 5:
DoScriptText(SAY_MUST_CONTINUE, me);
instance->SetData(TYPE_NARALEX_PART1, DONE);
- break;
+ break;
case 11:
eventProgress = 1;
currentEvent = TYPE_NARALEX_PART2;
instance->SetData(TYPE_NARALEX_PART2, IN_PROGRESS);
- break;
+ break;
case 19:
DoScriptText(SAY_BEYOND_THIS_CORRIDOR, me);
- break;
+ break;
case 24:
eventProgress = 1;
currentEvent = TYPE_NARALEX_PART3;
instance->SetData(TYPE_NARALEX_PART3, IN_PROGRESS);
- break;
+ break;
}
}
@@ -315,7 +315,7 @@ public:
eventTimer = 3000;
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
{
- AchievementEntry const* AchievWC = GetAchievementStore()->LookupEntry(ACHIEVEMENT_WAILING_CAVERNS);
+ AchievementEntry const* AchievWC = sAchievementStore.LookupEntry(ACHIEVEMENT_WAILING_CAVERNS);
if (AchievWC)
{
Map* map = me->GetMap();
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
index 33a2ce73e21..b6c69584358 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -301,14 +301,15 @@ public:
{
if (npc->isAlive())
{
- npc->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ npc->SetWalk(true);
npc->GetMotionMaster()->MovePoint(1, x, y, z);
npc->SetHomePosition(x, y, z, o);
}
}
}
- void SpawnPyramidWave(uint32 wave){
+ void SpawnPyramidWave(uint32 wave)
+ {
for (int i = 0; i < pyramidSpawnTotal; i++)
{
if (pyramidSpawns[i][0] == (float)wave)
@@ -321,7 +322,8 @@ public:
}
}
- bool IsWaveAllDead(){
+ bool IsWaveAllDead()
+ {
for (std::list<uint64>::iterator itr = addsAtBase.begin(); itr != addsAtBase.end(); ++itr)
{
if (Creature* add = instance->GetCreature((*itr)))
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index 61fe526407c..9e3d9240321 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -61,10 +61,10 @@ class npc_sergeant_bly : public CreatureScript
public:
npc_sergeant_bly() : CreatureScript("npc_sergeant_bly") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
CAST_AI(npc_sergeant_bly::npc_sergeant_blyAI, creature->AI())->PlayerGUID = player->GetGUID();
@@ -199,18 +199,6 @@ public:
+## go_troll_cage
+######*/
-void initBlyCrewMember(InstanceScript* instance, uint32 entry, float x, float y, float z)
-{
- if (Creature* crew = instance->instance->GetCreature(instance->GetData64(entry)))
- {
- crew->SetReactState(REACT_AGGRESSIVE);
- crew->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
- crew->SetHomePosition(x, y, z, 0);
- crew->GetMotionMaster()->MovePoint(1, x, y, z);
- crew->setFaction(FACTION_FREED);
- }
-}
-
class go_troll_cage : public GameObjectScript
{
public:
@@ -231,6 +219,18 @@ public:
return false;
}
+private:
+ void initBlyCrewMember(InstanceScript* instance, uint32 entry, float x, float y, float z)
+ {
+ if (Creature* crew = instance->instance->GetCreature(instance->GetData64(entry)))
+ {
+ crew->SetReactState(REACT_AGGRESSIVE);
+ crew->SetWalk(true);
+ crew->SetHomePosition(x, y, z, 0);
+ crew->GetMotionMaster()->MovePoint(1, x, y, z);
+ crew->setFaction(FACTION_FREED);
+ }
+ }
};
/*######
@@ -258,10 +258,10 @@ class npc_weegli_blastfuse : public CreatureScript
public:
npc_weegli_blastfuse() : CreatureScript("npc_weegli_blastfuse") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
//here we make him run to door, set the charge and run away off to nowhere
@@ -322,7 +322,7 @@ public:
AttackStartCaster(victim, 10);//keep back & toss bombs/shoot
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
/*if (instance)
instance->SetData(0, DONE);*/
@@ -399,9 +399,9 @@ public:
enum
{
- ZOMBIE = 7286,
- DEAD_HERO = 7276,
- ZOMBIE_CHANCE = 65,
+ ZOMBIE = 7286,
+ DEAD_HERO = 7276,
+ ZOMBIE_CHANCE = 65,
DEAD_HERO_CHANCE = 10
};
@@ -419,13 +419,12 @@ public:
if (randomchance < ZOMBIE_CHANCE)
go->SummonCreature(ZOMBIE, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
else
- if ((randomchance-ZOMBIE_CHANCE) < DEAD_HERO_CHANCE)
+ if ((randomchance - ZOMBIE_CHANCE) < DEAD_HERO_CHANCE)
go->SummonCreature(DEAD_HERO, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
}
go->AddUse();
return false;
}
-
};
/*######
diff --git a/src/server/scripts/Kalimdor/ashenvale.cpp b/src/server/scripts/Kalimdor/ashenvale.cpp
index 5d26653a1a8..e28665c038e 100644
--- a/src/server/scripts/Kalimdor/ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/ashenvale.cpp
@@ -28,7 +28,8 @@ npc_torek
npc_ruul_snowhoof
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
/*####
@@ -76,36 +77,33 @@ class npc_torek : public CreatureScript
uint32 Thunderclap_Timer;
bool Completed;
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- if (!player)
- return;
-
- switch (i)
+ if (Player* player = GetPlayerForEscort())
{
- case 1:
- Talk(SAY_MOVE, player->GetGUID());
- break;
- case 8:
- Talk(SAY_PREPARE, player->GetGUID());
- break;
- case 19:
- //TODO: verify location and creatures amount.
- me->SummonCreature(ENTRY_DURIEL, 1776.73f, -2049.06f, 109.83f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(ENTRY_SILVERWING_SENTINEL, 1774.64f, -2049.41f, 109.83f, 1.40f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(ENTRY_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- break;
- case 20:
- DoScriptText(SAY_WIN, me, player);
- Completed = true;
- if (player)
- player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
- break;
- case 21:
- Talk(SAY_END, player->GetGUID());
- break;
+ switch (waypointId)
+ {
+ case 1:
+ Talk(SAY_MOVE, player->GetGUID());
+ break;
+ case 8:
+ Talk(SAY_PREPARE, player->GetGUID());
+ break;
+ case 19:
+ //TODO: verify location and creatures amount.
+ me->SummonCreature(ENTRY_DURIEL, 1776.73f, -2049.06f, 109.83f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(ENTRY_SILVERWING_SENTINEL, 1774.64f, -2049.41f, 109.83f, 1.40f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(ENTRY_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ break;
+ case 20:
+ DoScriptText(SAY_WIN, me, player);
+ Completed = true;
+ player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
+ break;
+ case 21:
+ Talk(SAY_END, player->GetGUID());
+ break;
+ }
}
}
@@ -171,53 +169,62 @@ class npc_torek : public CreatureScript
# npc_ruul_snowhoof
####*/
-#define QUEST_FREEDOM_TO_RUUL 6482
-#define GO_CAGE 178147
+enum RuulSnowhoof
+{
+ NPC_THISTLEFUR_URSA = 3921,
+ NPC_THISTLEFUR_TOTEMIC = 3922,
+ NPC_THISTLEFUR_PATHFINDER = 3926,
+
+ QUEST_FREEDOM_TO_RUUL = 6482,
+
+ GO_CAGE = 178147
+};
+
+Position const RuulSnowhoofSummonsCoord[6] =
+{
+ {3449.218018f, -587.825073f, 174.978867f, 4.714445f},
+ {3446.384521f, -587.830872f, 175.186279f, 4.714445f},
+ {3444.218994f, -587.835327f, 175.380600f, 4.714445f},
+ {3508.344482f, -492.024261f, 186.929031f, 4.145029f},
+ {3506.265625f, -490.531006f, 186.740128f, 4.239277f},
+ {3503.682373f, -489.393799f, 186.629684f, 4.349232f}
+};
class npc_ruul_snowhoof : public CreatureScript
{
public:
-
- npc_ruul_snowhoof()
- : CreatureScript("npc_ruul_snowhoof")
- {
- }
+ npc_ruul_snowhoof() : CreatureScript("npc_ruul_snowhoof") { }
struct npc_ruul_snowhoofAI : public npc_escortAI
{
- npc_ruul_snowhoofAI(Creature* c) : npc_escortAI(c) {}
+ npc_ruul_snowhoofAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 0: {
+ case 0:
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20);
- if (Cage)
+ if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_ACTIVE);
- break;}
- case 13:
- me->SummonCreature(3922, 3449.218018f, -587.825073f, 174.978867f, 4.714445f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3921, 3446.384521f, -587.830872f, 175.186279f, 4.714445f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3926, 3444.218994f, -587.835327f, 175.380600f, 4.714445f, TEMPSUMMON_DEAD_DESPAWN, 60000);
break;
- case 19:
- me->SummonCreature(3922, 3508.344482f, -492.024261f, 186.929031f, 4.145029f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3921, 3506.265625f, -490.531006f, 186.740128f, 4.239277f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3926, 3503.682373f, -489.393799f, 186.629684f, 4.349232f, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ case 13:
+ me->SummonCreature(NPC_THISTLEFUR_TOTEMIC, RuulSnowhoofSummonsCoord[0], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_URSA, RuulSnowhoofSummonsCoord[1], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_PATHFINDER, RuulSnowhoofSummonsCoord[2], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ break;
+ case 19:
+ me->SummonCreature(NPC_THISTLEFUR_TOTEMIC, RuulSnowhoofSummonsCoord[3], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_URSA, RuulSnowhoofSummonsCoord[4], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_PATHFINDER, RuulSnowhoofSummonsCoord[5], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ break;
+ case 21:
+ player->GroupEventHappens(QUEST_FREEDOM_TO_RUUL, me);
break;
-
- case 21:{
- if (player)
- player->GroupEventHappens(QUEST_FREEDOM_TO_RUUL, me);
-
- break; }
}
}
@@ -225,8 +232,7 @@ class npc_ruul_snowhoof : public CreatureScript
void Reset()
{
- GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20);
- if (Cage)
+ if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_READY);
}
@@ -260,7 +266,7 @@ class npc_ruul_snowhoof : public CreatureScript
}
};
-enum eEnums
+enum Muglash
{
SAY_MUG_START1 = -1800054,
SAY_MUG_START2 = -1800055,
@@ -289,21 +295,21 @@ enum eEnums
NPC_MUGLASH = 12717
};
-static float m_afFirstNagaCoord[3][3]=
+Position const FirstNagaCoord[3] =
{
- {3603.504150f, 1122.631104f, 1.635f}, // rider
- {3589.293945f, 1148.664063f, 5.565f}, // sorceress
- {3609.925537f, 1168.759521f, -1.168f} // razortail
+ {3603.504150f, 1122.631104f, 1.635f, 0.0f}, // rider
+ {3589.293945f, 1148.664063f, 5.565f, 0.0f}, // sorceress
+ {3609.925537f, 1168.759521f, -1.168f, 0.0f} // razortail
};
-static float m_afSecondNagaCoord[3][3]=
+Position const SecondNagaCoord[3] =
{
- {3609.925537f, 1168.759521f, -1.168f}, // witch
- {3645.652100f, 1139.425415f, 1.322f}, // priest
- {3583.602051f, 1128.405762f, 2.347f} // myrmidon
+ {3609.925537f, 1168.759521f, -1.168f, 0.0f}, // witch
+ {3645.652100f, 1139.425415f, 1.322f, 0.0f}, // priest
+ {3583.602051f, 1128.405762f, 2.347f, 0.0f} // myrmidon
};
-static float m_fVorshaCoord[]={3633.056885f, 1172.924072f, -5.388f};
+Position const VorshaCoord = {3633.056885f, 1172.924072f, -5.388f, 0.0f};
class npc_muglash : public CreatureScript
{
@@ -314,47 +320,44 @@ class npc_muglash : public CreatureScript
{
npc_muglashAI(Creature* creature) : npc_escortAI(creature) { }
- uint32 m_uiWaveId;
- uint32 m_uiEventTimer;
- bool m_bIsBrazierExtinguished;
+ uint8 WaveId;
+ uint32 EventTimer;
+ bool IsBrazierExtinguished;
void JustSummoned(Creature* summoned)
{
summoned->AI()->AttackStart(me);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- switch (i)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- if (player)
+ switch (waypointId)
+ {
+ case 0:
DoScriptText(SAY_MUG_START2, me, player);
- break;
- case 24:
- if (player)
+ break;
+ case 24:
DoScriptText(SAY_MUG_BRAZIER, me, player);
- if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
- {
- go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- SetEscortPaused(true);
- }
- break;
- case 25:
- DoScriptText(SAY_MUG_GRATITUDE, me);
-
- if (player)
+ if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
+ {
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ SetEscortPaused(true);
+ }
+ break;
+ case 25:
+ DoScriptText(SAY_MUG_GRATITUDE, me);
player->GroupEventHappens(QUEST_VORSHA, me);
- break;
- case 26:
- DoScriptText(SAY_MUG_PATROL, me);
- break;
- case 27:
- DoScriptText(SAY_MUG_RETURN, me);
- break;
+ break;
+ case 26:
+ DoScriptText(SAY_MUG_PATROL, me);
+ break;
+ case 27:
+ DoScriptText(SAY_MUG_RETURN, me);
+ break;
+ }
}
}
@@ -371,39 +374,34 @@ class npc_muglash : public CreatureScript
void Reset()
{
- m_uiEventTimer = 10000;
- m_uiWaveId = 0;
- m_bIsBrazierExtinguished = false;
+ EventTimer = 10000;
+ WaveId = 0;
+ IsBrazierExtinguished = false;
}
void JustDied(Unit* /*killer*/)
{
- Player* player = GetPlayerForEscort();
if (HasEscortState(STATE_ESCORT_ESCORTING))
- {
- if (player)
- {
+ if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_VORSHA);
- }
- }
}
void DoWaveSummon()
{
- switch (m_uiWaveId)
+ switch (WaveId)
{
case 1:
- me->SummonCreature(NPC_WRATH_RIDER, m_afFirstNagaCoord[0][0], m_afFirstNagaCoord[0][1], m_afFirstNagaCoord[0][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_SORCERESS, m_afFirstNagaCoord[1][0], m_afFirstNagaCoord[1][1], m_afFirstNagaCoord[1][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_RAZORTAIL, m_afFirstNagaCoord[2][0], m_afFirstNagaCoord[2][1], m_afFirstNagaCoord[2][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_RIDER, FirstNagaCoord[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_SORCERESS, FirstNagaCoord[1], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_RAZORTAIL, FirstNagaCoord[2], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
break;
case 2:
- me->SummonCreature(NPC_WRATH_PRIESTESS, m_afSecondNagaCoord[0][0], m_afSecondNagaCoord[0][1], m_afSecondNagaCoord[0][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_MYRMIDON, m_afSecondNagaCoord[1][0], m_afSecondNagaCoord[1][1], m_afSecondNagaCoord[1][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_SEAWITCH, m_afSecondNagaCoord[2][0], m_afSecondNagaCoord[2][1], m_afSecondNagaCoord[2][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_PRIESTESS, SecondNagaCoord[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_MYRMIDON, SecondNagaCoord[1], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_SEAWITCH, SecondNagaCoord[2], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
break;
case 3:
- me->SummonCreature(NPC_VORSHA, m_fVorshaCoord[0], m_fVorshaCoord[1], m_fVorshaCoord[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_VORSHA, VorshaCoord, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
break;
case 4:
SetEscortPaused(false);
@@ -418,16 +416,16 @@ class npc_muglash : public CreatureScript
if (!me->getVictim())
{
- if (HasEscortState(STATE_ESCORT_PAUSED) && m_bIsBrazierExtinguished)
+ if (HasEscortState(STATE_ESCORT_PAUSED) && IsBrazierExtinguished)
{
- if (m_uiEventTimer < uiDiff)
+ if (EventTimer < uiDiff)
{
- ++m_uiWaveId;
+ ++WaveId;
DoWaveSummon();
- m_uiEventTimer = 10000;
+ EventTimer = 10000;
}
else
- m_uiEventTimer -= uiDiff;
+ EventTimer -= uiDiff;
}
return;
}
@@ -459,11 +457,7 @@ class npc_muglash : public CreatureScript
class go_naga_brazier : public GameObjectScript
{
public:
-
- go_naga_brazier()
- : GameObjectScript("go_naga_brazier")
- {
- }
+ go_naga_brazier() : GameObjectScript("go_naga_brazier") { }
bool OnGossipHello(Player* /*player*/, GameObject* go)
{
@@ -473,7 +467,7 @@ class go_naga_brazier : public GameObjectScript
{
DoScriptText(SAY_MUG_BRAZIER_WAIT, creature);
- pEscortAI->m_bIsBrazierExtinguished = true;
+ pEscortAI->IsBrazierExtinguished = true;
return false;
}
}
diff --git a/src/server/scripts/Kalimdor/azshara.cpp b/src/server/scripts/Kalimdor/azshara.cpp
index 2e621c4a3ba..eae5baa8db2 100644
--- a/src/server/scripts/Kalimdor/azshara.cpp
+++ b/src/server/scripts/Kalimdor/azshara.cpp
@@ -30,9 +30,9 @@ mob_rizzle_sprysprocket
mob_depth_charge
EndContentData */
-#include "ScriptPCH.h"
-#include "World.h"
-#include "WorldPacket.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## mobs_spitelashes
@@ -50,7 +50,7 @@ public:
struct mobs_spitelashesAI : public ScriptedAI
{
- mobs_spitelashesAI(Creature* c) : ScriptedAI(c) {}
+ mobs_spitelashesAI(Creature* creature) : ScriptedAI(creature) {}
uint32 morphtimer;
bool spellhit;
@@ -120,10 +120,10 @@ class npc_loramus_thalipedes : public CreatureScript
public:
npc_loramus_thalipedes() : CreatureScript("npc_loramus_thalipedes") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -179,9 +179,12 @@ public:
# mob_rizzle_sprysprocket
####*/
-enum eRizzleSprysprocketData
+enum RizzleSprysprocketData
{
+ QUEST_CHASING_THE_MOONSTONE = 10994,
+
MOB_DEPTH_CHARGE = 23025,
+
SPELL_RIZZLE_BLACKJACK = 39865,
SPELL_RIZZLE_ESCAPE = 39871,
SPELL_RIZZLE_FROST_GRENADE = 40525,
@@ -199,67 +202,66 @@ enum eRizzleSprysprocketData
#define GOSSIP_GET_MOONSTONE "Hand over the Southfury moonstone and I'll let you go."
-float WPs[58][4] =
+Position const WPs[58] =
{
-//pos_x pos_y pos_z orien
-{3691.97f, -3962.41f, 35.9118f, 3.67f},
-{3675.02f, -3960.49f, 35.9118f, 3.67f},
-{3653.19f, -3958.33f, 33.9118f, 3.59f},
-{3621.12f, -3958.51f, 29.9118f, 3.48f},
-{3604.86f, -3963, 29.9118f, 3.48f},
-{3569.94f, -3970.25f, 29.9118f, 3.44f},
-{3541.03f, -3975.64f, 29.9118f, 3.41f},
-{3510.84f, -3978.71f, 29.9118f, 3.41f},
-{3472.7f, -3997.07f, 29.9118f, 3.35f},
-{3439.15f, -4014.55f, 29.9118f, 3.29f},
-{3412.8f, -4025.87f, 29.9118f, 3.25f},
-{3384.95f, -4038.04f, 29.9118f, 3.24f},
-{3346.77f, -4052.93f, 29.9118f, 3.22f},
-{3299.56f, -4071.59f, 29.9118f, 3.20f},
-{3261.22f, -4080.38f, 30.9118f, 3.19f},
-{3220.68f, -4083.09f, 31.9118f, 3.18f},
-{3187.11f, -4070.45f, 33.9118f, 3.16f},
-{3162.78f, -4062.75f, 33.9118f, 3.15f},
-{3136.09f, -4050.32f, 33.9118f, 3.07f},
-{3119.47f, -4044.51f, 36.0363f, 3.07f},
-{3098.95f, -4019.8f, 33.9118f, 3.07f},
-{3073.07f, -4011.42f, 33.9118f, 3.07f},
-{3051.71f, -3993.37f, 33.9118f, 3.02f},
-{3027.52f, -3978.6f, 33.9118f, 3.00f},
-{3003.78f, -3960.14f, 33.9118f, 2.98f},
-{2977.99f, -3941.98f, 31.9118f, 2.96f},
-{2964.57f, -3932.07f, 30.9118f, 2.96f},
-{2947.9f, -3921.31f, 29.9118f, 2.96f},
-{2924.91f, -3910.8f, 29.9118f, 2.94f},
-{2903.04f, -3896.42f, 29.9118f, 2.93f},
-{2884.75f, -3874.03f, 29.9118f, 2.90f},
-{2868.19f, -3851.48f, 29.9118f, 2.82f},
-{2854.62f, -3819.72f, 29.9118f, 2.80f},
-{2825.53f, -3790.4f, 29.9118f, 2.744f},
-{2804.31f, -3773.05f, 29.9118f, 2.71f},
-{2769.78f, -3763.57f, 29.9118f, 2.70f},
-{2727.23f, -3745.92f, 30.9118f, 2.69f},
-{2680.12f, -3737.49f, 30.9118f, 2.67f},
-{2647.62f, -3739.94f, 30.9118f, 2.66f},
-{2616.6f, -3745.75f, 30.9118f, 2.64f},
-{2589.38f, -3731.97f, 30.9118f, 2.61f},
-{2562.94f, -3722.35f, 31.9118f, 2.56f},
-{2521.05f, -3716.6f, 31.9118f, 2.55f},
-{2485.26f, -3706.67f, 31.9118f, 2.51f},
-{2458.93f, -3696.67f, 31.9118f, 2.51f},
-{2432, -3692.03f, 31.9118f, 2.46f},
-{2399.59f, -3681.97f, 31.9118f, 2.45f},
-{2357.75f, -3666.6f, 31.9118f, 2.44f},
-{2311.99f, -3656.88f, 31.9118f, 2.94f},
-{2263.41f, -3649.55f, 31.9118f, 3.02f},
-{2209.05f, -3641.76f, 31.9118f, 2.99f},
-{2164.83f, -3637.64f, 31.9118f, 3.15f},
-{2122.42f, -3639, 31.9118f, 3.21f},
-{2075.73f, -3643.59f, 31.9118f, 3.22f},
-{2033.59f, -3649.52f, 31.9118f, 3.42f},
-{1985.22f, -3662.99f, 31.9118f, 3.42f},
-{1927.09f, -3679.56f, 33.9118f, 3.42f},
-{1873.57f, -3695.32f, 33.9118f, 3.44f}
+ {3691.97f, -3962.41f, 35.9118f, 3.67f},
+ {3675.02f, -3960.49f, 35.9118f, 3.67f},
+ {3653.19f, -3958.33f, 33.9118f, 3.59f},
+ {3621.12f, -3958.51f, 29.9118f, 3.48f},
+ {3604.86f, -3963, 29.9118f, 3.48f},
+ {3569.94f, -3970.25f, 29.9118f, 3.44f},
+ {3541.03f, -3975.64f, 29.9118f, 3.41f},
+ {3510.84f, -3978.71f, 29.9118f, 3.41f},
+ {3472.7f, -3997.07f, 29.9118f, 3.35f},
+ {3439.15f, -4014.55f, 29.9118f, 3.29f},
+ {3412.8f, -4025.87f, 29.9118f, 3.25f},
+ {3384.95f, -4038.04f, 29.9118f, 3.24f},
+ {3346.77f, -4052.93f, 29.9118f, 3.22f},
+ {3299.56f, -4071.59f, 29.9118f, 3.20f},
+ {3261.22f, -4080.38f, 30.9118f, 3.19f},
+ {3220.68f, -4083.09f, 31.9118f, 3.18f},
+ {3187.11f, -4070.45f, 33.9118f, 3.16f},
+ {3162.78f, -4062.75f, 33.9118f, 3.15f},
+ {3136.09f, -4050.32f, 33.9118f, 3.07f},
+ {3119.47f, -4044.51f, 36.0363f, 3.07f},
+ {3098.95f, -4019.8f, 33.9118f, 3.07f},
+ {3073.07f, -4011.42f, 33.9118f, 3.07f},
+ {3051.71f, -3993.37f, 33.9118f, 3.02f},
+ {3027.52f, -3978.6f, 33.9118f, 3.00f},
+ {3003.78f, -3960.14f, 33.9118f, 2.98f},
+ {2977.99f, -3941.98f, 31.9118f, 2.96f},
+ {2964.57f, -3932.07f, 30.9118f, 2.96f},
+ {2947.9f, -3921.31f, 29.9118f, 2.96f},
+ {2924.91f, -3910.8f, 29.9118f, 2.94f},
+ {2903.04f, -3896.42f, 29.9118f, 2.93f},
+ {2884.75f, -3874.03f, 29.9118f, 2.90f},
+ {2868.19f, -3851.48f, 29.9118f, 2.82f},
+ {2854.62f, -3819.72f, 29.9118f, 2.80f},
+ {2825.53f, -3790.4f, 29.9118f, 2.744f},
+ {2804.31f, -3773.05f, 29.9118f, 2.71f},
+ {2769.78f, -3763.57f, 29.9118f, 2.70f},
+ {2727.23f, -3745.92f, 30.9118f, 2.69f},
+ {2680.12f, -3737.49f, 30.9118f, 2.67f},
+ {2647.62f, -3739.94f, 30.9118f, 2.66f},
+ {2616.6f, -3745.75f, 30.9118f, 2.64f},
+ {2589.38f, -3731.97f, 30.9118f, 2.61f},
+ {2562.94f, -3722.35f, 31.9118f, 2.56f},
+ {2521.05f, -3716.6f, 31.9118f, 2.55f},
+ {2485.26f, -3706.67f, 31.9118f, 2.51f},
+ {2458.93f, -3696.67f, 31.9118f, 2.51f},
+ {2432, -3692.03f, 31.9118f, 2.46f},
+ {2399.59f, -3681.97f, 31.9118f, 2.45f},
+ {2357.75f, -3666.6f, 31.9118f, 2.44f},
+ {2311.99f, -3656.88f, 31.9118f, 2.94f},
+ {2263.41f, -3649.55f, 31.9118f, 3.02f},
+ {2209.05f, -3641.76f, 31.9118f, 2.99f},
+ {2164.83f, -3637.64f, 31.9118f, 3.15f},
+ {2122.42f, -3639, 31.9118f, 3.21f},
+ {2075.73f, -3643.59f, 31.9118f, 3.22f},
+ {2033.59f, -3649.52f, 31.9118f, 3.42f},
+ {1985.22f, -3662.99f, 31.9118f, 3.42f},
+ {1927.09f, -3679.56f, 33.9118f, 3.42f},
+ {1873.57f, -3695.32f, 33.9118f, 3.44f}
};
class mob_rizzle_sprysprocket : public CreatureScript
@@ -267,22 +269,22 @@ class mob_rizzle_sprysprocket : public CreatureScript
public:
mob_rizzle_sprysprocket() : CreatureScript("mob_rizzle_sprysprocket") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1 && player->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1 && player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) == QUEST_STATUS_INCOMPLETE)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true);
- CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->Must_Die_Timer = 3000;
- CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->Must_Die = true;
+ CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->MustDieTimer = 3000;
+ CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->MustDie = true;
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature)
{
- if (player->GetQuestStatus(10994) != QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) != QUEST_STATUS_INCOMPLETE)
return true;
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(10811, creature->GetGUID());
@@ -296,34 +298,34 @@ public:
struct mob_rizzle_sprysprocketAI : public ScriptedAI
{
- mob_rizzle_sprysprocketAI(Creature* c) : ScriptedAI(c) {}
+ mob_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 spellEscape_Timer;
- uint32 Teleport_Timer;
- uint32 Check_Timer;
- uint32 Grenade_Timer;
- uint32 Must_Die_Timer;
+ uint32 SpellEscapeTimer;
+ uint32 TeleportTimer;
+ uint32 CheckTimer;
+ uint32 GrenadeTimer;
+ uint32 MustDieTimer;
uint32 CurrWP;
uint64 PlayerGUID;
- bool Must_Die;
+ bool MustDie;
bool Escape;
bool ContinueWP;
bool Reached;
void Reset()
{
- spellEscape_Timer = 1300;
- Teleport_Timer = 3500;
- Check_Timer = 10000;
- Grenade_Timer = 30000;
- Must_Die_Timer = 3000;
+ SpellEscapeTimer = 1300;
+ TeleportTimer = 3500;
+ CheckTimer = 10000;
+ GrenadeTimer = 30000;
+ MustDieTimer = 3000;
CurrWP = 0;
PlayerGUID = 0;
- Must_Die = false;
+ MustDie = false;
Escape = false;
ContinueWP = false;
Reached = false;
@@ -331,13 +333,13 @@ public:
void UpdateAI(const uint32 diff)
{
- if (Must_Die)
+ if (MustDie)
{
- if (Must_Die_Timer <= diff)
+ if (MustDieTimer <= diff)
{
me->DespawnOrUnsummon();
return;
- } else Must_Die_Timer -= diff;
+ } else MustDieTimer -= diff;
}
if (!Escape)
@@ -345,17 +347,16 @@ public:
if (!PlayerGUID)
return;
- if (spellEscape_Timer <= diff)
+ if (SpellEscapeTimer <= diff)
{
DoCast(me, SPELL_RIZZLE_ESCAPE, false);
- spellEscape_Timer = 10000;
- } else spellEscape_Timer -= diff;
+ SpellEscapeTimer = 10000;
+ } else SpellEscapeTimer -= diff;
- if (Teleport_Timer <= diff)
+ if (TeleportTimer <= diff)
{
//temp solution - unit can't be teleported by core using spelleffect 5, only players
- Map* map = me->GetMap();
- if (map)
+ if (me->GetMap())
{
me->SetPosition(3706.39f, -3969.15f, 35.9118f, 0);
me->AI_SendMoveToPacket(3706.39f, -3969.15f, 35.9118f, 0, 0, 0);
@@ -367,20 +368,20 @@ public:
me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
me->SetSpeed(MOVE_RUN, 0.85f, true);
me->GetMotionMaster()->MovementExpired();
- me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP][0], WPs[CurrWP][1], WPs[CurrWP][2]);
+ me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP]);
Escape = true;
- } else Teleport_Timer -= diff;
+ } else TeleportTimer -= diff;
return;
}
if (ContinueWP)
{
- me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP][0], WPs[CurrWP][1], WPs[CurrWP][2]);
+ me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP]);
ContinueWP = false;
}
- if (Grenade_Timer <= diff)
+ if (GrenadeTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (player)
@@ -388,10 +389,10 @@ public:
DoScriptText(SAY_RIZZLE_GRENADE, me, player);
DoCast(player, SPELL_RIZZLE_FROST_GRENADE, true);
}
- Grenade_Timer = 30000;
- } else Grenade_Timer -= diff;
+ GrenadeTimer = 30000;
+ } else GrenadeTimer -= diff;
- if (Check_Timer <= diff)
+ if (CheckTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (!player)
@@ -410,8 +411,8 @@ public:
Reached = true;
}
- Check_Timer = 1000;
- } else Check_Timer -= diff;
+ CheckTimer = 1000;
+ } else CheckTimer -= diff;
}
@@ -427,7 +428,7 @@ public:
if (!who || PlayerGUID)
return;
- if (who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE)
+ if (who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) == QUEST_STATUS_INCOMPLETE)
{
PlayerGUID = who->GetGUID();
DoScriptText(SAY_RIZZLE_START, me);
@@ -470,27 +471,27 @@ public:
struct mob_depth_chargeAI : public ScriptedAI
{
- mob_depth_chargeAI(Creature* c) : ScriptedAI(c) {}
+ mob_depth_chargeAI(Creature* creature) : ScriptedAI(creature) {}
- bool we_must_die;
- uint32 must_die_timer;
+ bool WeMustDie;
+ uint32 WeMustDieTimer;
void Reset()
{
me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- we_must_die = false;
- must_die_timer = 1000;
+ WeMustDie = false;
+ WeMustDieTimer = 1000;
}
void UpdateAI(const uint32 diff)
{
- if (we_must_die)
+ if (WeMustDie)
{
- if (must_die_timer <= diff)
- {
+ if (WeMustDieTimer <= diff)
me->DespawnOrUnsummon();
- } else must_die_timer -= diff;
+ else
+ WeMustDieTimer -= diff;
}
return;
}
@@ -503,20 +504,15 @@ public:
if (who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 5))
{
DoCast(who, SPELL_DEPTH_CHARGE_TRAP);
- we_must_die = true;
+ WeMustDie = true;
return;
}
}
- void AttackStart(Unit* /*who*/)
- {
- }
+ void AttackStart(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/)
- {
- }
+ void EnterCombat(Unit* /*who*/) {}
};
-
};
void AddSC_azshara()
diff --git a/src/server/scripts/Kalimdor/azuremyst_isle.cpp b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
index 09f4b9415a9..608117ca9af 100644
--- a/src/server/scripts/Kalimdor/azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
@@ -33,15 +33,19 @@ go_ravager_cage
npc_death_ravager
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
-#include <cmath>
+#include "ScriptedGossip.h"
+#include "Cell.h"
+#include "CellImpl.h"
+#include "GridNotifiers.h"
/*######
## npc_draenei_survivor
######*/
-enum eEnums
+enum draeneiSurvivor
{
SAY_HEAL1 = -1000176,
SAY_HEAL2 = -1000177,
@@ -69,7 +73,7 @@ public:
struct npc_draenei_survivorAI : public ScriptedAI
{
- npc_draenei_survivorAI(Creature* c) : ScriptedAI(c) {}
+ npc_draenei_survivorAI(Creature* creature) : ScriptedAI(creature) {}
uint64 pCaster;
@@ -175,7 +179,7 @@ public:
## npc_engineer_spark_overgrind
######*/
-enum eOvergrind
+enum Overgrind
{
SAY_TEXT = -1000184,
SAY_EMOTE = -1000185,
@@ -195,10 +199,10 @@ class npc_engineer_spark_overgrind : public CreatureScript
public:
npc_engineer_spark_overgrind() : CreatureScript("npc_engineer_spark_overgrind") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
creature->setFaction(FACTION_HOSTILE);
@@ -223,27 +227,27 @@ public:
struct npc_engineer_spark_overgrindAI : public ScriptedAI
{
- npc_engineer_spark_overgrindAI(Creature* c) : ScriptedAI(c)
+ npc_engineer_spark_overgrindAI(Creature* creature) : ScriptedAI(creature)
{
- NormFaction = c->getFaction();
- NpcFlags = c->GetUInt32Value(UNIT_NPC_FLAGS);
+ NormFaction = creature->getFaction();
+ NpcFlags = creature->GetUInt32Value(UNIT_NPC_FLAGS);
- if (c->GetAreaId() == AREA_COVE || c->GetAreaId() == AREA_ISLE)
+ if (creature->GetAreaId() == AREA_COVE || creature->GetAreaId() == AREA_ISLE)
IsTreeEvent = true;
}
uint32 NormFaction;
uint32 NpcFlags;
- uint32 Dynamite_Timer;
- uint32 Emote_Timer;
+ uint32 DynamiteTimer;
+ uint32 EmoteTimer;
bool IsTreeEvent;
void Reset()
{
- Dynamite_Timer = 8000;
- Emote_Timer = urand(120000, 150000);
+ DynamiteTimer = 8000;
+ EmoteTimer = urand(120000, 150000);
me->setFaction(NormFaction);
me->SetUInt32Value(UNIT_NPC_FLAGS, NpcFlags);
@@ -260,12 +264,12 @@ public:
{
if (!me->isInCombat() && !IsTreeEvent)
{
- if (Emote_Timer <= diff)
+ if (EmoteTimer <= diff)
{
DoScriptText(SAY_TEXT, me);
DoScriptText(SAY_EMOTE, me);
- Emote_Timer = urand(120000, 150000);
- } else Emote_Timer -= diff;
+ EmoteTimer = urand(120000, 150000);
+ } else EmoteTimer -= diff;
}
else if (IsTreeEvent)
return;
@@ -273,11 +277,11 @@ public:
if (!UpdateVictim())
return;
- if (Dynamite_Timer <= diff)
+ if (DynamiteTimer <= diff)
{
DoCast(me->getVictim(), SPELL_DYNAMITE);
- Dynamite_Timer = 8000;
- } else Dynamite_Timer -= diff;
+ DynamiteTimer = 8000;
+ } else DynamiteTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -301,29 +305,29 @@ public:
struct npc_injured_draeneiAI : public ScriptedAI
{
- npc_injured_draeneiAI(Creature* c) : ScriptedAI(c) {}
+ npc_injured_draeneiAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
me->SetHealth(me->CountPctFromMaxHealth(15));
- switch (rand()%2)
+ switch (urand(0, 1))
{
- case 0: me->SetStandState(UNIT_STAND_STATE_SIT); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_SLEEP); break;
+ case 0:
+ me->SetStandState(UNIT_STAND_STATE_SIT);
+ break;
+
+ case 1:
+ me->SetStandState(UNIT_STAND_STATE_SLEEP);
+ break;
}
}
void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/)
- {
- }
-
- void UpdateAI(const uint32 /*diff*/)
- {
- }
+ void MoveInLineOfSight(Unit* /*who*/) {}
+ void UpdateAI(const uint32 /*diff*/) {}
};
};
@@ -332,7 +336,7 @@ public:
## npc_magwin
######*/
-enum eMagwin
+enum Magwin
{
SAY_START = -1000111,
SAY_AGGRO = -1000112,
@@ -367,31 +371,29 @@ public:
struct npc_magwinAI : public npc_escortAI
{
- npc_magwinAI(Creature* c) : npc_escortAI(c) {}
+ npc_magwinAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- if (!player)
- return;
-
- switch (i)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- DoScriptText(SAY_START, me, player);
- break;
- case 17:
- DoScriptText(SAY_PROGRESS, me, player);
- break;
- case 28:
- DoScriptText(SAY_END1, me, player);
- break;
- case 29:
- DoScriptText(EMOTE_HUG, me, player);
- DoScriptText(SAY_END2, me, player);
- player->GroupEventHappens(QUEST_A_CRY_FOR_SAY_HELP, me);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ DoScriptText(SAY_START, me, player);
+ break;
+ case 17:
+ DoScriptText(SAY_PROGRESS, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_END1, me, player);
+ break;
+ case 29:
+ DoScriptText(EMOTE_HUG, me, player);
+ DoScriptText(SAY_END2, me, player);
+ player->GroupEventHappens(QUEST_A_CRY_FOR_SAY_HELP, me);
+ break;
+ }
}
}
@@ -400,7 +402,7 @@ public:
DoScriptText(SAY_AGGRO, me, who);
}
- void Reset() { }
+ void Reset() {}
};
};
@@ -409,7 +411,7 @@ public:
## npc_geezle
######*/
-enum eGeezle
+enum Geezle
{
QUEST_TREES_COMPANY = 9531,
@@ -429,7 +431,7 @@ enum eGeezle
GO_NAGA_FLAG = 181694
};
-static float SparkPos[3] = {-5029.91f, -11291.79f, 8.096f};
+Position const SparkPos = {-5029.91f, -11291.79f, 8.096f, 0.0f};
class npc_geezle : public CreatureScript
{
@@ -443,11 +445,11 @@ public:
struct npc_geezleAI : public ScriptedAI
{
- npc_geezleAI(Creature* c) : ScriptedAI(c) {}
+ npc_geezleAI(Creature* creature) : ScriptedAI(creature) {}
uint64 SparkGUID;
- uint32 Step;
+ uint8 Step;
uint32 SayTimer;
bool EventStarted;
@@ -465,8 +467,7 @@ public:
{
Step = 0;
EventStarted = true;
- Creature* Spark = me->SummonCreature(MOB_SPARK, SparkPos[0], SparkPos[1], SparkPos[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1000);
- if (Spark)
+ if (Creature* Spark = me->SummonCreature(MOB_SPARK, SparkPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1000))
{
SparkGUID = Spark->GetGUID();
Spark->setActive(true);
@@ -475,47 +476,47 @@ public:
SayTimer = 8000;
}
- uint32 NextStep(uint32 Step)
+ uint32 NextStep(uint8 Step)
{
Creature* Spark = Unit::GetCreature(*me, SparkGUID);
switch (Step)
{
- case 0:
- if (Spark)
- Spark->GetMotionMaster()->MovePoint(0, -5080.70f, -11253.61f, 0.56f);
- me->GetMotionMaster()->MovePoint(0, -5092.26f, -11252, 0.71f);
- return 9000; // NPCs are walking up to fire
- case 1:
- DespawnNagaFlag(true);
- DoScriptText(EMOTE_SPARK, Spark);
- return 1000;
- case 2:
- DoScriptText(GEEZLE_SAY_1, me, Spark);
- if (Spark)
- {
- Spark->SetInFront(me);
- me->SetInFront(Spark);
- }
- return 5000;
- case 3: DoScriptText(SPARK_SAY_2, Spark); return 7000;
- case 4: DoScriptText(SPARK_SAY_3, Spark); return 8000;
- case 5: DoScriptText(GEEZLE_SAY_4, me, Spark); return 8000;
- case 6: DoScriptText(SPARK_SAY_5, Spark); return 9000;
- case 7: DoScriptText(SPARK_SAY_6, Spark); return 8000;
- case 8: DoScriptText(GEEZLE_SAY_7, me, Spark); return 2000;
- case 9:
- me->GetMotionMaster()->MoveTargetedHome();
- if (Spark)
- Spark->GetMotionMaster()->MovePoint(0, SparkPos[0], SparkPos[1], SparkPos[2]);
- CompleteQuest();
- return 9000;
- case 10:
- if (Spark)
- Spark->DisappearAndDie();
- DespawnNagaFlag(false);
- me->DisappearAndDie();
- default: return 99999999;
+ case 0:
+ if (Spark)
+ Spark->GetMotionMaster()->MovePoint(0, -5080.70f, -11253.61f, 0.56f);
+ me->GetMotionMaster()->MovePoint(0, -5092.26f, -11252, 0.71f);
+ return 9000; // NPCs are walking up to fire
+ case 1:
+ DespawnNagaFlag(true);
+ DoScriptText(EMOTE_SPARK, Spark);
+ return 1000;
+ case 2:
+ DoScriptText(GEEZLE_SAY_1, me, Spark);
+ if (Spark)
+ {
+ Spark->SetInFront(me);
+ me->SetInFront(Spark);
+ }
+ return 5000;
+ case 3: DoScriptText(SPARK_SAY_2, Spark); return 7000;
+ case 4: DoScriptText(SPARK_SAY_3, Spark); return 8000;
+ case 5: DoScriptText(GEEZLE_SAY_4, me, Spark); return 8000;
+ case 6: DoScriptText(SPARK_SAY_5, Spark); return 9000;
+ case 7: DoScriptText(SPARK_SAY_6, Spark); return 8000;
+ case 8: DoScriptText(GEEZLE_SAY_7, me, Spark); return 2000;
+ case 9:
+ me->GetMotionMaster()->MoveTargetedHome();
+ if (Spark)
+ Spark->GetMotionMaster()->MovePoint(0, SparkPos);
+ CompleteQuest();
+ return 9000;
+ case 10:
+ if (Spark)
+ Spark->DisappearAndDie();
+ DespawnNagaFlag(false);
+ me->DisappearAndDie();
+ default: return 99999999;
}
}
@@ -529,13 +530,8 @@ public:
me->VisitNearbyWorldObject(radius, searcher);
for (std::list<Player*>::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- {
- if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE
- &&(*itr)->HasAura(SPELL_TREE_DISGUISE))
- {
+ if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE && (*itr)->HasAura(SPELL_TREE_DISGUISE))
(*itr)->KilledMonsterCredit(MOB_SPARK, 0);
- }
- }
}
void DespawnNagaFlag(bool despawn)
@@ -548,13 +544,13 @@ public:
for (std::list<GameObject*>::const_iterator itr = FlagList.begin(); itr != FlagList.end(); ++itr)
{
if (despawn)
- {
(*itr)->SetLootState(GO_JUST_DEACTIVATED);
- }
else
(*itr)->Respawn();
}
- } else sLog->outError("SD2 ERROR: FlagList is empty!");
+ }
+ else
+ sLog->outError("SD2 ERROR: FlagList is empty!");
}
void UpdateAI(const uint32 diff)
@@ -562,16 +558,16 @@ public:
if (SayTimer <= diff)
{
if (EventStarted)
- {
SayTimer = NextStep(Step++);
- }
- } else SayTimer -= diff;
+ }
+ else
+ SayTimer -= diff;
}
};
};
-enum eRavegerCage
+enum RavegerCage
{
NPC_DEATH_RAVAGER = 17556,
@@ -597,7 +593,7 @@ public:
ravager->AI()->AttackStart(player);
}
}
- return true ;
+ return true;
}
};
@@ -613,7 +609,7 @@ public:
struct npc_death_ravagerAI : public ScriptedAI
{
- npc_death_ravagerAI(Creature* c) : ScriptedAI(c){}
+ npc_death_ravagerAI(Creature* creature) : ScriptedAI(creature){}
uint32 RendTimer;
uint32 EnragingBiteTimer;
diff --git a/src/server/scripts/Kalimdor/bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
index c114c02b16d..3883b740d02 100644
--- a/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
@@ -28,14 +28,16 @@ mob_webbed_creature
npc_captured_sunhawk_agent
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## mob_webbed_creature
######*/
//possible creatures to be spawned
-const uint32 possibleSpawns[32] = {17322, 17661, 17496, 17522, 17340, 17352, 17333, 17524, 17654, 17348, 17339, 17345, 17359, 17353, 17336, 17550, 17330, 17701, 17321, 17680, 17325, 17320, 17683, 17342, 17715, 17334, 17341, 17338, 17337, 17346, 17344, 17327};
+uint32 const possibleSpawns[32] = {17322, 17661, 17496, 17522, 17340, 17352, 17333, 17524, 17654, 17348, 17339, 17345, 17359, 17353, 17336, 17550, 17330, 17701, 17321, 17680, 17325, 17320, 17683, 17342, 17715, 17334, 17341, 17338, 17337, 17346, 17344, 17327};
class mob_webbed_creature : public CreatureScript
{
@@ -49,17 +51,13 @@ public:
struct mob_webbed_creatureAI : public ScriptedAI
{
- mob_webbed_creatureAI(Creature* c) : ScriptedAI(c) {}
+ mob_webbed_creatureAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
- {
- }
+ void Reset() {}
- void EnterCombat(Unit* /*who*/)
- {
- }
+ void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
uint32 spawnCreatureID = 0;
@@ -67,8 +65,8 @@ public:
{
case 0:
spawnCreatureID = 17681;
- if (Killer->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(Killer)->KilledMonsterCredit(spawnCreatureID, 0);
+ if (Player* player = killer->ToPlayer())
+ player->KilledMonsterCredit(spawnCreatureID, 0);
break;
case 1:
case 2:
@@ -101,10 +99,10 @@ class npc_captured_sunhawk_agent : public CreatureScript
public:
npc_captured_sunhawk_agent() : CreatureScript("npc_captured_sunhawk_agent") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_CSA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -153,7 +151,7 @@ public:
## Quest 9667: Saving Princess Stillpine
######*/
-enum eStillpine
+enum Stillpine
{
QUEST_SAVING_PRINCESS_STILLPINE = 9667,
NPC_PRINCESS_STILLPINE = 17682,
@@ -193,7 +191,7 @@ public:
if (type == POINT_MOTION_TYPE && id == 1)
{
DoScriptText(SAY_DIRECTION, me);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
};
diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp
index 4c415014eef..ec098951c03 100644
--- a/src/server/scripts/Kalimdor/boss_azuregos.cpp
+++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp
@@ -23,17 +23,24 @@ SDComment: Teleport not included, spell reflect not effecting dots (Core problem
SDCategory: Azshara
EndScriptData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
-#define SAY_TELEPORT -1000100
+enum Say
+{
+ SAY_TELEPORT = -1000100
+};
-#define SPELL_MARKOFFROST 23182
-#define SPELL_MANASTORM 21097
-#define SPELL_CHILL 21098
-#define SPELL_FROSTBREATH 21099
-#define SPELL_REFLECT 22067
-#define SPELL_CLEAVE 8255 //Perhaps not right ID
-#define SPELL_ENRAGE 23537
+enum Spells
+{
+ SPELL_MARKOFFROST = 23182,
+ SPELL_MANASTORM = 21097,
+ SPELL_CHILL = 21098,
+ SPELL_FROSTBREATH = 21099,
+ SPELL_REFLECT = 22067,
+ SPELL_CLEAVE = 8255, //Perhaps not right ID
+ SPELL_ENRAGE = 23537
+};
class boss_azuregos : public CreatureScript
{
@@ -47,28 +54,28 @@ public:
struct boss_azuregosAI : public ScriptedAI
{
- boss_azuregosAI(Creature* c) : ScriptedAI(c) {}
-
- uint32 MarkOfFrost_Timer;
- uint32 ManaStorm_Timer;
- uint32 Chill_Timer;
- uint32 Breath_Timer;
- uint32 Teleport_Timer;
- uint32 Reflect_Timer;
- uint32 Cleave_Timer;
- uint32 Enrage_Timer;
+ boss_azuregosAI(Creature* creature) : ScriptedAI(creature) {}
+
+ uint32 MarkOfFrostTimer;
+ uint32 ManaStormTimer;
+ uint32 ChillTimer;
+ uint32 BreathTimer;
+ uint32 TeleportTimer;
+ uint32 ReflectTimer;
+ uint32 CleaveTimer;
+ uint32 EnrageTimer;
bool Enraged;
void Reset()
{
- MarkOfFrost_Timer = 35000;
- ManaStorm_Timer = urand(5000, 17000);
- Chill_Timer = urand(10000, 30000);
- Breath_Timer = urand(2000, 8000);
- Teleport_Timer = 30000;
- Reflect_Timer = urand(15000, 30000);
- Cleave_Timer = 7000;
- Enrage_Timer = 0;
+ MarkOfFrostTimer = 35000;
+ ManaStormTimer = urand(5000, 17000);
+ ChillTimer = urand(10000, 30000);
+ BreathTimer = urand(2000, 8000);
+ TeleportTimer = 30000;
+ ReflectTimer = urand(15000, 30000);
+ CleaveTimer = 7000;
+ EnrageTimer = 0;
Enraged = false;
}
@@ -80,14 +87,14 @@ public:
if (!UpdateVictim())
return;
- if (Teleport_Timer <= diff)
+ if (TeleportTimer <= diff)
{
DoScriptText(SAY_TELEPORT, me);
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
- for (i = m_threatlist.begin(); i!= m_threatlist.end(); ++i)
+ std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList();
+ std::list<HostileReference*>::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i!= threatlist.end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
{
DoTeleportPlayer(unit, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+3, unit->GetOrientation());
@@ -95,53 +102,53 @@ public:
}
DoResetThreat();
- Teleport_Timer = 30000;
- } else Teleport_Timer -= diff;
+ TeleportTimer = 30000;
+ } else TeleportTimer -= diff;
- // //MarkOfFrost_Timer
- // if (MarkOfFrost_Timer <= diff)
+ // //MarkOfFrostTimer
+ // if (MarkOfFrostTimer <= diff)
// {
// DoCast(me->getVictim(), SPELL_MARKOFFROST);
- // MarkOfFrost_Timer = 25000;
- // } else MarkOfFrost_Timer -= diff;
+ // MarkOfFrostTimer = 25000;
+ // } else MarkOfFrostTimer -= diff;
- //Chill_Timer
- if (Chill_Timer <= diff)
+ //ChillTimer
+ if (ChillTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CHILL);
- Chill_Timer = urand(13000, 25000);
- } else Chill_Timer -= diff;
+ ChillTimer = urand(13000, 25000);
+ } else ChillTimer -= diff;
- //Breath_Timer
- if (Breath_Timer <= diff)
+ //BreathTimer
+ if (BreathTimer <= diff)
{
DoCast(me->getVictim(), SPELL_FROSTBREATH);
- Breath_Timer = urand(10000, 15000);
- } else Breath_Timer -= diff;
+ BreathTimer = urand(10000, 15000);
+ } else BreathTimer -= diff;
- //ManaStorm_Timer
- if (ManaStorm_Timer <= diff)
+ //ManaStormTimer
+ if (ManaStormTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, SPELL_MANASTORM);
- ManaStorm_Timer = urand(7500, 12500);
- } else ManaStorm_Timer -= diff;
+ ManaStormTimer = urand(7500, 12500);
+ } else ManaStormTimer -= diff;
- //Reflect_Timer
- if (Reflect_Timer <= diff)
+ //ReflectTimer
+ if (ReflectTimer <= diff)
{
DoCast(me, SPELL_REFLECT);
- Reflect_Timer = urand(20000, 35000);
- } else Reflect_Timer -= diff;
+ ReflectTimer = urand(20000, 35000);
+ } else ReflectTimer -= diff;
- //Cleave_Timer
- if (Cleave_Timer <= diff)
+ //CleaveTimer
+ if (CleaveTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = 7000;
- } else Cleave_Timer -= diff;
+ CleaveTimer = 7000;
+ } else CleaveTimer -= diff;
- //Enrage_Timer
+ //EnrageTimer
if (HealthBelowPct(26) && !Enraged)
{
DoCast(me, SPELL_ENRAGE);
diff --git a/src/server/scripts/Kalimdor/darkshore.cpp b/src/server/scripts/Kalimdor/darkshore.cpp
index a2c10b94ff9..0e02a77169e 100644
--- a/src/server/scripts/Kalimdor/darkshore.cpp
+++ b/src/server/scripts/Kalimdor/darkshore.cpp
@@ -29,7 +29,9 @@ npc_prospector_remtravel
npc_threshwackonator
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
@@ -37,7 +39,7 @@ EndContentData */
# npc_kerlonian
####*/
-enum eKerlonian
+enum Kerlonian
{
SAY_KER_START = -1000434,
@@ -94,11 +96,11 @@ public:
{
npc_kerlonianAI(Creature* creature) : FollowerAI(creature) { }
- uint32 m_uiFallAsleepTimer;
+ uint32 FallAsleepTimer;
void Reset()
{
- m_uiFallAsleepTimer = urand(10000, 45000);
+ FallAsleepTimer = urand(10000, 45000);
}
void MoveInLineOfSight(Unit* who)
@@ -150,7 +152,7 @@ public:
SetFollowPaused(false);
}
- void UpdateFollowerAI(const uint32 uiDiff)
+ void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
{
@@ -159,13 +161,13 @@ public:
if (!HasFollowState(STATE_FOLLOW_PAUSED))
{
- if (m_uiFallAsleepTimer <= uiDiff)
+ if (FallAsleepTimer <= Diff)
{
SetSleeping();
- m_uiFallAsleepTimer = urand(25000, 90000);
+ FallAsleepTimer = urand(25000, 90000);
}
else
- m_uiFallAsleepTimer -= uiDiff;
+ FallAsleepTimer -= Diff;
}
return;
@@ -181,7 +183,7 @@ public:
# npc_prospector_remtravel
####*/
-enum eRemtravel
+enum Remtravel
{
SAY_REM_START = -1000327,
SAY_REM_AGGRO = -1000328,
@@ -231,66 +233,64 @@ public:
{
npc_prospector_remtravelAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- if (!player)
- return;
-
- switch (i)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- DoScriptText(SAY_REM_START, me, player);
- break;
- case 5:
- DoScriptText(SAY_REM_RAMP1_1, me, player);
- break;
- case 6:
- DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 9:
- DoScriptText(SAY_REM_RAMP1_2, me, player);
- break;
- case 14:
- //depend quest rewarded?
- DoScriptText(SAY_REM_BOOK, me, player);
- break;
- case 15:
- DoScriptText(SAY_REM_TENT1_1, me, player);
- break;
- case 16:
- DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 17:
- DoScriptText(SAY_REM_TENT1_2, me, player);
- break;
- case 26:
- DoScriptText(SAY_REM_MOSS, me, player);
- break;
- case 27:
- DoScriptText(EMOTE_REM_MOSS, me, player);
- break;
- case 28:
- DoScriptText(SAY_REM_MOSS_PROGRESS, me, player);
- break;
- case 29:
- DoSpawnCreature(NPC_GRAVEL_SCOUT, -15.0f, 3.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_BONE, -15.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_GEO, -15.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 31:
- DoScriptText(SAY_REM_PROGRESS, me, player);
- break;
- case 41:
- DoScriptText(SAY_REM_REMEMBER, me, player);
- break;
- case 42:
- DoScriptText(EMOTE_REM_END, me, player);
- player->GroupEventHappens(QUEST_ABSENT_MINDED_PT2, me);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ DoScriptText(SAY_REM_START, me, player);
+ break;
+ case 5:
+ DoScriptText(SAY_REM_RAMP1_1, me, player);
+ break;
+ case 6:
+ DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 9:
+ DoScriptText(SAY_REM_RAMP1_2, me, player);
+ break;
+ case 14:
+ //depend quest rewarded?
+ DoScriptText(SAY_REM_BOOK, me, player);
+ break;
+ case 15:
+ DoScriptText(SAY_REM_TENT1_1, me, player);
+ break;
+ case 16:
+ DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 17:
+ DoScriptText(SAY_REM_TENT1_2, me, player);
+ break;
+ case 26:
+ DoScriptText(SAY_REM_MOSS, me, player);
+ break;
+ case 27:
+ DoScriptText(EMOTE_REM_MOSS, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_REM_MOSS_PROGRESS, me, player);
+ break;
+ case 29:
+ DoSpawnCreature(NPC_GRAVEL_SCOUT, -15.0f, 3.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_BONE, -15.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_GEO, -15.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 31:
+ DoScriptText(SAY_REM_PROGRESS, me, player);
+ break;
+ case 41:
+ DoScriptText(SAY_REM_REMEMBER, me, player);
+ break;
+ case 42:
+ DoScriptText(EMOTE_REM_END, me, player);
+ player->GroupEventHappens(QUEST_ABSENT_MINDED_PT2, me);
+ break;
+ }
}
}
@@ -298,7 +298,7 @@ public:
void EnterCombat(Unit* who)
{
- if (rand()%2)
+ if (urand(0, 1))
DoScriptText(SAY_REM_AGGRO, me, who);
}
@@ -315,7 +315,7 @@ public:
# npc_threshwackonator
####*/
-enum eThreshwackonator
+enum Threshwackonator
{
EMOTE_START = -1000325, //signed for 4966
SAY_AT_CLOSE = -1000326, //signed for 4966
@@ -331,10 +331,10 @@ class npc_threshwackonator : public CreatureScript
public:
npc_threshwackonator() : CreatureScript("npc_threshwackonator") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
diff --git a/src/server/scripts/Kalimdor/desolace.cpp b/src/server/scripts/Kalimdor/desolace.cpp
index 49a9be21a98..e196c71f681 100644
--- a/src/server/scripts/Kalimdor/desolace.cpp
+++ b/src/server/scripts/Kalimdor/desolace.cpp
@@ -30,10 +30,12 @@ npc_dalinda_malem
go_demon_portal
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
-enum eDyingKodo
+enum DyingKodo
{
// signed for 9999
SAY_SMEED_HOME_1 = -1000348,
@@ -114,11 +116,11 @@ public:
{
npc_aged_dying_ancient_kodoAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
- uint32 m_uiDespawnTimer;
+ uint32 DespawnTimer;
void Reset()
{
- m_uiDespawnTimer = 0;
+ DespawnTimer = 0;
}
void MoveInLineOfSight(Unit* who)
@@ -143,14 +145,14 @@ public:
if (pSpell->Id == SPELL_KODO_KOMBO_GOSSIP)
{
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- m_uiDespawnTimer = 60000;
+ DespawnTimer = 60000;
}
}
void UpdateAI(const uint32 diff)
{
//timer should always be == 0 unless we already updated entry of creature. Then not expect this updated to ever be in combat.
- if (m_uiDespawnTimer && m_uiDespawnTimer <= diff)
+ if (DespawnTimer && DespawnTimer <= diff)
{
if (!me->getVictim() && me->isAlive())
{
@@ -159,7 +161,7 @@ public:
me->Respawn();
return;
}
- } else m_uiDespawnTimer -= diff;
+ } else DespawnTimer -= diff;
if (!UpdateVictim())
return;
@@ -175,7 +177,7 @@ public:
## Hand of Iruxos
######*/
-enum
+enum Iruxos
{
QUEST_HAND_IRUXOS = 5381,
NPC_DEMON_SPIRIT = 11876,
@@ -199,7 +201,10 @@ class go_iruxos : public GameObjectScript
## npc_dalinda_malem. Quest 1440
######*/
-#define QUEST_RETURN_TO_VAHLARRIEL 1440
+enum Dalinda
+{
+ QUEST_RETURN_TO_VAHLARRIEL = 1440
+};
class npc_dalinda : public CreatureScript
{
@@ -228,17 +233,18 @@ public:
{
npc_dalindaAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
- switch (i)
+
+ switch (waypointId)
{
case 1:
me->IsStandState();
break;
case 15:
if (player)
- player->GroupEventHappens(QUEST_RETURN_TO_VAHLARRIEL, me);
+ player->GroupEventHappens(QUEST_RETURN_TO_VAHLARRIEL, me);
break;
}
}
@@ -249,15 +255,14 @@ public:
void JustDied(Unit* /*killer*/)
{
- Player* player = GetPlayerForEscort();
- if (player)
+ if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_RETURN_TO_VAHLARRIEL);
return;
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
- npc_escortAI::UpdateAI(uiDiff);
+ npc_escortAI::UpdateAI(Diff);
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
diff --git a/src/server/scripts/Kalimdor/durotar.cpp b/src/server/scripts/Kalimdor/durotar.cpp
index 6c91c64f981..ec06a542b6f 100644
--- a/src/server/scripts/Kalimdor/durotar.cpp
+++ b/src/server/scripts/Kalimdor/durotar.cpp
@@ -15,8 +15,10 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "Vehicle.h"
+#include "SpellScript.h"
/*######
##Quest 5441: Lazy Peons
@@ -48,17 +50,17 @@ public:
struct npc_lazy_peonAI : public ScriptedAI
{
- npc_lazy_peonAI(Creature* c) : ScriptedAI(c) {}
+ npc_lazy_peonAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 uiPlayerGUID;
+ uint64 PlayerGUID;
- uint32 m_uiRebuffTimer;
+ uint32 RebuffTimer;
bool work;
- void Reset ()
+ void Reset()
{
- uiPlayerGUID = 0;
- m_uiRebuffTimer = 0;
+ PlayerGUID = 0;
+ RebuffTimer = 0;
work = false;
}
@@ -81,17 +83,17 @@ public:
}
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
if (work == true)
me->HandleEmoteCommand(EMOTE_ONESHOT_WORK_CHOPWOOD);
- if (m_uiRebuffTimer <= uiDiff)
+ if (RebuffTimer <= Diff)
{
DoCast(me, SPELL_BUFF_SLEEP);
- m_uiRebuffTimer = 300000; //Rebuff agian in 5 minutes
+ RebuffTimer = 300000; //Rebuff agian in 5 minutes
}
else
- m_uiRebuffTimer -= uiDiff;
+ RebuffTimer -= Diff;
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
@@ -170,7 +172,7 @@ enum Points
class npc_tiger_matriarch_credit : public CreatureScript
{
public:
- npc_tiger_matriarch_credit() : CreatureScript("npc_tiger_matriarch_credit"){}
+ npc_tiger_matriarch_credit() : CreatureScript("npc_tiger_matriarch_credit") { }
struct npc_tiger_matriarch_creditAI : public Scripted_NoMovementAI
{
@@ -179,7 +181,7 @@ class npc_tiger_matriarch_credit : public CreatureScript
events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 2000);
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
events.Update(diff);
@@ -223,27 +225,32 @@ class npc_tiger_matriarch_credit : public CreatureScript
class npc_tiger_matriarch : public CreatureScript
{
public:
- npc_tiger_matriarch() : CreatureScript("npc_tiger_matriarch"){}
+ npc_tiger_matriarch() : CreatureScript("npc_tiger_matriarch") {}
struct npc_tiger_matriarchAI : public ScriptedAI
{
npc_tiger_matriarchAI(Creature* creature) : ScriptedAI(creature),
- _tiger(NULL)
+ _tigerGuid(0)
{
}
+ void EnterCombat(Unit* /*target*/)
+ {
+ _events.Reset();
+ _events.ScheduleEvent(EVENT_POUNCE, 100);
+ _events.ScheduleEvent(EVENT_NOSUMMON, 50000);
+ }
+
void IsSummonedBy(Unit* summoner)
{
- if (summoner->GetTypeId() != TYPEID_PLAYER)
+ if (summoner->GetTypeId() != TYPEID_PLAYER || !summoner->GetVehicle())
return;
- _tiger = summoner->GetVehicle()->GetBase();
- if (_tiger)
+ _tigerGuid = summoner->GetVehicle()->GetBase()->GetGUID();
+ if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid))
{
- me->AddThreat(_tiger, 500000.0f);
+ me->AddThreat(tiger, 500000.0f);
DoCast(me, SPELL_FURIOUS_BITE);
- events.ScheduleEvent(EVENT_POUNCE, 100);
- events.ScheduleEvent(EVENT_NOSUMMON, 50000);
}
}
@@ -259,7 +266,7 @@ class npc_tiger_matriarch : public CreatureScript
vehSummoner->RemoveAurasDueToSpell(SPELL_SPIRIT_OF_THE_TIGER_RIDER);
vehSummoner->RemoveAurasDueToSpell(SPELL_SUMMON_ZENTABRA_TRIGGER);
}
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void DamageTaken(Unit* attacker, uint32& damage)
@@ -282,7 +289,7 @@ class npc_tiger_matriarch : public CreatureScript
vehSummoner->RemoveAurasDueToSpell(SPELL_SUMMON_ZENTABRA_TRIGGER);
}
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
@@ -291,24 +298,27 @@ class npc_tiger_matriarch : public CreatureScript
if (!UpdateVictim())
return;
- if (!_tiger)
+ if (!_tigerGuid)
return;
- events.Update(diff);
+ _events.Update(diff);
- while (uint32 eventId = events.ExecuteEvent())
+ while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_POUNCE:
DoCastVictim(SPELL_POUNCE);
- events.ScheduleEvent(EVENT_POUNCE, 30000);
+ _events.ScheduleEvent(EVENT_POUNCE, 30000);
break;
case EVENT_NOSUMMON: // Reapply SPELL_NO_SUMMON_AURA
- if (_tiger && _tiger->isSummon())
- if (Unit* vehSummoner = _tiger->ToTempSummon()->GetSummoner())
- me->AddAura(SPELL_NO_SUMMON_AURA, vehSummoner);
- events.ScheduleEvent(EVENT_NOSUMMON, 50000);
+ if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid))
+ {
+ if (tiger->isSummon())
+ if (Unit* vehSummoner = tiger->ToTempSummon()->GetSummoner())
+ me->AddAura(SPELL_NO_SUMMON_AURA, vehSummoner);
+ }
+ _events.ScheduleEvent(EVENT_NOSUMMON, 50000);
break;
default:
break;
@@ -319,8 +329,8 @@ class npc_tiger_matriarch : public CreatureScript
}
private:
- EventMap events;
- Unit* _tiger;
+ EventMap _events;
+ uint64 _tigerGuid;
};
CreatureAI* GetAI(Creature* creature) const
@@ -345,26 +355,32 @@ class npc_troll_volunteer : public CreatureScript
{
npc_troll_volunteerAI(Creature* creature) : ScriptedAI(creature)
{
+ }
+
+ void InitializeAI()
+ {
+ if (me->isDead() || !me->GetOwner())
+ return;
+
Reset();
- Player* player = me->GetOwner()->ToPlayer();
- switch (urand(1, 4))
+ switch (urand(0, 3))
{
- case 1:
+ case 0:
_mountModel = 6471;
break;
- case 2:
+ case 1:
_mountModel = 6473;
break;
- case 3:
+ case 2:
_mountModel = 6469;
break;
- case 4:
+ default:
_mountModel = 6472;
break;
}
me->SetDisplayId(trollmodel[urand(0, 39)]);
- if (player)
+ if (Player* player = me->GetOwner()->ToPlayer())
me->GetMotionMaster()->MoveFollow(player, 5.0f, float(rand_norm() + 1.0f) * M_PI / 3.0f * 4.0f);
}
@@ -417,6 +433,8 @@ class npc_troll_volunteer : public CreatureScript
}
};
+typedef npc_troll_volunteer::npc_troll_volunteerAI VolunteerAI;
+
class spell_mount_check : public SpellScriptLoader
{
public:
@@ -442,9 +460,8 @@ class spell_mount_check : public SpellScriptLoader
if (owner->IsMounted() && !target->IsMounted())
{
- if (Creature* volunteer = target->ToCreature())
- if (uint32 mountid = CAST_AI(npc_troll_volunteer::npc_troll_volunteerAI, volunteer->AI())->GetMountId())
- target->Mount(mountid);
+ if (VolunteerAI* volunteerAI = CAST_AI(VolunteerAI, target->GetAI()))
+ target->Mount(volunteerAI->GetMountId());
}
else if (!owner->IsMounted() && target->IsMounted())
target->Dismount();
@@ -493,7 +510,7 @@ class spell_voljin_war_drums : public SpellScriptLoader
else if (target->GetEntry() == NPC_CITIZEN_2)
motivate = SPELL_MOTIVATE_2;
if (motivate)
- caster->CastSpell(target, motivate, true, NULL, NULL, caster->GetGUID());
+ caster->CastSpell(target, motivate, false);
}
}
@@ -511,13 +528,13 @@ class spell_voljin_war_drums : public SpellScriptLoader
enum VoodooSpells
{
- SPELL_BREW = 16712, // Special Brew
- SPELL_GHOSTLY = 16713, // Ghostly
- SPELL_HEX1 = 16707, // Hex
- SPELL_HEX2 = 16708, // Hex
- SPELL_HEX3 = 16709, // Hex
- SPELL_GROW = 16711, // Grow
- SPELL_LAUNCH = 16716, // Launch (Whee!)
+ SPELL_BREW = 16712, // Special Brew
+ SPELL_GHOSTLY = 16713, // Ghostly
+ SPELL_HEX1 = 16707, // Hex
+ SPELL_HEX2 = 16708, // Hex
+ SPELL_HEX3 = 16709, // Hex
+ SPELL_GROW = 16711, // Grow
+ SPELL_LAUNCH = 16716, // Launch (Whee!)
};
// 17009
@@ -542,13 +559,9 @@ class spell_voodoo : public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- Unit* caster = GetCaster();
+ uint32 spellid = RAND(SPELL_BREW, SPELL_GHOSTLY, RAND(SPELL_HEX1, SPELL_HEX2, SPELL_HEX3), SPELL_GROW, SPELL_LAUNCH);
if (Unit* target = GetHitUnit())
- {
- caster->CastSpell(target, RAND(SPELL_BREW, SPELL_GHOSTLY,
- RAND(SPELL_HEX1, SPELL_HEX2, SPELL_HEX3),
- SPELL_GROW, SPELL_LAUNCH), false);
- }
+ GetCaster()->CastSpell(target, spellid, false);
}
void Register()
diff --git a/src/server/scripts/Kalimdor/dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
index eede1aa069a..45e1c1808c1 100644
--- a/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
@@ -32,8 +32,11 @@ npc_private_hendel
npc_cassa_crimsonwing - handled by npc_taxi
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
+#include "SpellScript.h"
/*######
## mobs_risen_husk_spirit
@@ -132,7 +135,7 @@ class mobs_risen_husk_spirit : public CreatureScript
## npc_deserter_agitator
######*/
-enum eDeserter
+enum Deserter
{
QUEST_TRAITORS_AMONG_US = 11126,
NPC_THERAMORE_DESERTER = 23602,
@@ -157,11 +160,11 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_SENDER_INFO)
+ if (action == GOSSIP_SENDER_INFO)
{
player->CLOSE_GOSSIP_MENU();
switch (urand(0, 1))
@@ -203,12 +206,12 @@ public:
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 Type, uint32 Id)
{
- if (uiType != POINT_MOTION_TYPE)
+ if (Type != POINT_MOTION_TYPE)
return;
- if (uiId == 1)
+ if (Id == 1)
me->DisappearAndDie();
}
};
@@ -218,7 +221,7 @@ public:
## npc_deserter_agitator
######*/
-enum eTheramoreGuard
+enum TheramoreGuard
{
SAY_QUEST1 = -1000641,
SAY_QUEST2 = -1000642,
@@ -255,18 +258,18 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_SENDER_INFO)
+ if (action == GOSSIP_SENDER_INFO)
{
player->CLOSE_GOSSIP_MENU();
player->KilledMonsterCredit(NPC_THERAMORE_GUARD, 0);
DoScriptText(SAY_QUEST1, creature);
creature->CastSpell(creature, SPELL_DOCTORED_LEAFLET, false);
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->uiYellTimer = 4000;
+ CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->YellTimer = 4000;
CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->bYellTimer = true;
}
@@ -282,40 +285,40 @@ public:
{
npc_theramore_guardAI(Creature* creature) : ScriptedAI(creature) { }
- uint32 uiYellTimer;
- uint32 uiStep;
+ uint32 YellTimer;
+ uint32 Step;
bool bYellTimer;
void Reset()
{
bYellTimer = false;
- uiStep = 0;
+ Step = 0;
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
if (!me->HasAura(SPELL_PROPAGANDIZED))
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- if (bYellTimer && uiYellTimer <= uiDiff)
+ if (bYellTimer && YellTimer <= Diff)
{
- switch (uiStep)
+ switch (Step)
{
case 0:
DoScriptText(RAND(SAY_QUEST2, SAY_QUEST3, SAY_QUEST4, SAY_QUEST5, SAY_QUEST6), me);
- uiYellTimer = 3000;
- ++uiStep;
+ YellTimer = 3000;
+ ++Step;
break;
case 1:
DoScriptText(RAND(SAY_QUEST7, SAY_QUEST8, SAY_QUEST9), me);
me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
- uiStep = 0;
+ Step = 0;
bYellTimer = false;
break;
}
}
else
- uiYellTimer -= uiDiff;
+ YellTimer -= Diff;
}
};
};
@@ -324,7 +327,7 @@ public:
## npc_lady_jaina_proudmoore
######*/
-enum eLadyJaina
+enum LadyJaina
{
QUEST_JAINAS_AUTOGRAPH = 558,
SPELL_JAINAS_AUTOGRAPH = 23122
@@ -337,10 +340,10 @@ class npc_lady_jaina_proudmoore : public CreatureScript
public:
npc_lady_jaina_proudmoore() : CreatureScript("npc_lady_jaina_proudmoore") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_SENDER_INFO)
+ if (action == GOSSIP_SENDER_INFO)
{
player->SEND_GOSSIP_MENU(7012, creature->GetGUID());
player->CastSpell(player, SPELL_JAINAS_AUTOGRAPH, false);
@@ -367,7 +370,7 @@ public:
## npc_nat_pagle
######*/
-enum eNatPagle
+enum NatPagle
{
QUEST_NATS_MEASURING_TAPE = 8227
};
@@ -377,10 +380,10 @@ class npc_nat_pagle : public CreatureScript
public:
npc_nat_pagle() : CreatureScript("npc_nat_pagle") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -408,7 +411,7 @@ public:
## npc_private_hendel
######*/
-enum eHendel
+enum Hendel
{
// looks like all this text ids are wrong.
SAY_PROGRESS_1_TER = -1000411, // signed for 3568
@@ -464,11 +467,11 @@ public:
AttackStart(pAttacker);
}
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32 &Damage)
{
- if (uiDamage > me->GetHealth() || me->HealthBelowPctDamaged(20, uiDamage))
+ if (Damage > me->GetHealth() || me->HealthBelowPctDamaged(20, Damage))
{
- uiDamage = 0;
+ Damage = 0;
if (Player* player = pDoneBy->GetCharmerOrOwnerPlayerOrPlayerItself())
player->GroupEventHappens(QUEST_MISSING_DIPLO_PT16, me);
@@ -485,9 +488,9 @@ public:
## npc_zelfrax
######*/
-const Position MovePosition = {-2967.030f, -3872.1799f, 35.620f, 0.0f};
+Position const MovePosition = {-2967.030f, -3872.1799f, 35.620f, 0.0f};
-enum eZelfrax
+enum Zelfrax
{
SAY_ZELFRAX = -1000472,
SAY_ZELFRAX_2 = -1000473
@@ -525,9 +528,9 @@ public:
}
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 Type, uint32 /*Id*/)
{
- if (uiType != POINT_MOTION_TYPE)
+ if (Type != POINT_MOTION_TYPE)
return;
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
@@ -547,7 +550,7 @@ public:
DoScriptText(SAY_ZELFRAX_2, me);
}
- void UpdateAI(uint32 const /*uiDiff*/)
+ void UpdateAI(uint32 const /*Diff*/)
{
if (!UpdateVictim())
return;
@@ -562,7 +565,7 @@ public:
## npc_stinky
######*/
-enum eStinky
+enum Stinky
{
QUEST_STINKYS_ESCAPE_H = 1270,
QUEST_STINKYS_ESCAPE_A = 1222,
@@ -607,49 +610,48 @@ public:
{
npc_stinkyAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 7:
- DoScriptText(SAY_STAY_1, me, player);
- break;
- case 11:
- DoScriptText(SAY_STAY_2, me, player);
- break;
- case 25:
- DoScriptText(SAY_STAY_3, me, player);
- break;
- case 26:
- DoScriptText(SAY_STAY_4, me, player);
- break;
- case 27:
- DoScriptText(SAY_STAY_5, me, player);
- break;
- case 28:
- DoScriptText(SAY_STAY_6, me, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- break;
- case 29:
- me->SetStandState(UNIT_STAND_STATE_STAND);
- break;
- case 37:
- DoScriptText(SAY_QUEST_COMPLETE, me, player);
- me->SetSpeed(MOVE_RUN, 1.2f, true);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
- if (player && player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H))
- player->GroupEventHappens(QUEST_STINKYS_ESCAPE_H, me);
- if (player && player->GetQuestStatus(QUEST_STINKYS_ESCAPE_A))
- player->GroupEventHappens(QUEST_STINKYS_ESCAPE_A, me);
- break;
- case 39:
- DoScriptText(EMOTE_DISAPPEAR, me);
- break;
-
+ case 7:
+ DoScriptText(SAY_STAY_1, me, player);
+ break;
+ case 11:
+ DoScriptText(SAY_STAY_2, me, player);
+ break;
+ case 25:
+ DoScriptText(SAY_STAY_3, me, player);
+ break;
+ case 26:
+ DoScriptText(SAY_STAY_4, me, player);
+ break;
+ case 27:
+ DoScriptText(SAY_STAY_5, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_STAY_6, me, player);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
+ break;
+ case 29:
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ break;
+ case 37:
+ DoScriptText(SAY_QUEST_COMPLETE, me, player);
+ me->SetSpeed(MOVE_RUN, 1.2f, true);
+ me->SetWalk(false);
+ if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H))
+ player->GroupEventHappens(QUEST_STINKYS_ESCAPE_H, me);
+ if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_A))
+ player->GroupEventHappens(QUEST_STINKYS_ESCAPE_A, me);
+ break;
+ case 39:
+ DoScriptText(EMOTE_DISAPPEAR, me);
+ break;
}
}
@@ -663,10 +665,11 @@ public:
void JustDied(Unit* /*killer*/)
{
Player* player = GetPlayerForEscort();
- if (HasEscortState(STATE_ESCORT_ESCORTING) && player)
+ if (player && HasEscortState(STATE_ESCORT_ESCORTING))
{
if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H))
player->FailQuest(QUEST_STINKYS_ESCAPE_H);
+
if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_A))
player->FailQuest(QUEST_STINKYS_ESCAPE_A);
}
@@ -713,7 +716,7 @@ class spell_ooze_zap : public SpellScriptLoader
if (!GetCaster()->HasAura(GetSpellInfo()->Effects[EFFECT_1].CalcValue()))
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; // This is actually correct
- if (!GetTargetUnit())
+ if (!GetExplTargetUnit())
return SPELL_FAILED_BAD_TARGETS;
return SPELL_CAST_OK;
@@ -847,7 +850,7 @@ public:
player->KilledMonsterCredit(NPC_THERAMORE_PRISONER, 0);
prisoner->AI()->Talk(SAY_FREE); // We also emote cry here (handled in creature_text.emote)
- prisoner->ForcedDespawn(6000);
+ prisoner->DespawnOrUnsummon(6000);
}
return true;
}
diff --git a/src/server/scripts/Kalimdor/felwood.cpp b/src/server/scripts/Kalimdor/felwood.cpp
index 91d8a875f17..9243ea0017e 100644
--- a/src/server/scripts/Kalimdor/felwood.cpp
+++ b/src/server/scripts/Kalimdor/felwood.cpp
@@ -27,7 +27,9 @@ EndScriptData */
npcs_riverbreeze_and_silversky
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## npcs_riverbreeze_and_silversky
@@ -35,32 +37,43 @@ EndContentData */
#define GOSSIP_ITEM_BEACON "Please make me a Cenarion Beacon"
+enum RiverbreezeAndSilversky
+{
+ SPELL_CENARION_BEACON = 15120,
+
+ NPC_ARATHANDRIS_SILVERSKY = 9528,
+ NPC_MAYBESS_RIVERBREEZE = 9529,
+
+ QUEST_CLEASING_FELWOOD_A = 4101,
+ QUEST_CLEASING_FELWOOD_H = 4102
+};
+
class npcs_riverbreeze_and_silversky : public CreatureScript
{
public:
npcs_riverbreeze_and_silversky() : CreatureScript("npcs_riverbreeze_and_silversky") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
- creature->CastSpell(player, 15120, false);
+ creature->CastSpell(player, SPELL_CENARION_BEACON, false);
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature)
{
- uint32 eCreature = creature->GetEntry();
-
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
- if (eCreature == 9528)
+ uint32 creatureId = creature->GetEntry();
+
+ if (creatureId == NPC_ARATHANDRIS_SILVERSKY)
{
- if (player->GetQuestRewardStatus(4101))
+ if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_A))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2848, creature->GetGUID());
@@ -70,9 +83,9 @@ public:
player->SEND_GOSSIP_MENU(2844, creature->GetGUID());
}
- if (eCreature == 9529)
+ if (creatureId == NPC_MAYBESS_RIVERBREEZE)
{
- if (player->GetQuestRewardStatus(4102))
+ if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_H))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2849, creature->GetGUID());
@@ -84,7 +97,6 @@ public:
return true;
}
-
};
void AddSC_felwood()
diff --git a/src/server/scripts/Kalimdor/feralas.cpp b/src/server/scripts/Kalimdor/feralas.cpp
index 37a0e4e8f88..4fcd20951c9 100644
--- a/src/server/scripts/Kalimdor/feralas.cpp
+++ b/src/server/scripts/Kalimdor/feralas.cpp
@@ -23,8 +23,10 @@ SDComment: Quest support: 3520, 2767, Special vendor Gregan Brewspewer
SDCategory: Feralas
EndScriptData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
/*######
## npc_gregan_brewspewer
@@ -37,15 +39,15 @@ class npc_gregan_brewspewer : public CreatureScript
public:
npc_gregan_brewspewer() : CreatureScript("npc_gregan_brewspewer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
player->SEND_GOSSIP_MENU(2434, creature->GetGUID());
}
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
}
@@ -68,7 +70,7 @@ public:
## npc_oox22fe
######*/
-enum eOOX
+enum OOX
{
//signed for 7806
SAY_OOX_START = -1000287,
@@ -124,9 +126,9 @@ public:
{
npc_oox22feAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
// First Ambush(3 Yetis)
case 11:
@@ -154,9 +156,7 @@ public:
DoScriptText(SAY_OOX_END, me);
// Award quest credit
if (Player* player = GetPlayerForEscort())
- {
- player->GroupEventHappens(QUEST_RESCUE_OOX22FE, me);
- }
+ player->GroupEventHappens(QUEST_RESCUE_OOX22FE, me);
break;
}
}
diff --git a/src/server/scripts/Kalimdor/moonglade.cpp b/src/server/scripts/Kalimdor/moonglade.cpp
index 2d6e34ab9ee..9df208d2578 100644
--- a/src/server/scripts/Kalimdor/moonglade.cpp
+++ b/src/server/scripts/Kalimdor/moonglade.cpp
@@ -31,14 +31,16 @@ npc_clintar_spirit
npc_clintar_dreamwalker
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
/*######
## npc_bunthen_plainswind
######*/
-enum eBunthen
+enum Bunthen
{
QUEST_SEA_LION_HORDE = 30,
QUEST_SEA_LION_ALLY = 272,
@@ -54,10 +56,10 @@ class npc_bunthen_plainswind : public CreatureScript
public:
npc_bunthen_plainswind() : CreatureScript("npc_bunthen_plainswind") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
player->CLOSE_GOSSIP_MENU();
@@ -113,10 +115,10 @@ class npc_great_bear_spirit : public CreatureScript
public:
npc_great_bear_spirit() : CreatureScript("npc_great_bear_spirit") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -169,10 +171,10 @@ class npc_silva_filnaveth : public CreatureScript
public:
npc_silva_filnaveth() : CreatureScript("npc_silva_filnaveth") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
player->CLOSE_GOSSIP_MENU();
@@ -218,70 +220,68 @@ public:
## npc_clintar_spirit
######*/
-float Clintar_spirit_WP[41][5] =
+float const Clintar_spirit_WP[41][5] =
{
- //pos_x pos_y pos_z orien waitTime
-{7465.28f, -3115.46f, 439.327f, 0.83f, 4000},
-{7476.49f, -3101, 443.457f, 0.89f, 0},
-{7486.57f, -3085.59f, 439.478f, 1.07f, 0},
-{7472.19f, -3085.06f, 443.142f, 3.07f, 0},
-{7456.92f, -3085.91f, 438.862f, 3.24f, 0},
-{7446.68f, -3083.43f, 438.245f, 2.40f, 0},
-{7446.17f, -3080.21f, 439.826f, 1.10f, 6000},
-{7452.41f, -3085.8f, 438.984f, 5.78f, 0},
-{7469.11f, -3084.94f, 443.048f, 6.25f, 0},
-{7483.79f, -3085.44f, 439.607f, 6.25f, 0},
-{7491.14f, -3090.96f, 439.983f, 5.44f, 0},
-{7497.62f, -3098.22f, 436.854f, 5.44f, 0},
-{7498.72f, -3113.41f, 434.596f, 4.84f, 0},
-{7500.06f, -3122.51f, 434.749f, 5.17f, 0},
-{7504.96f, -3131.53f, 434.475f, 4.74f, 0},
-{7504.31f, -3133.53f, 435.693f, 3.84f, 6000},
-{7504.55f, -3133.27f, 435.476f, 0.68f, 15000},
-{7501.99f, -3126.01f, 434.93f, 1.83f, 0},
-{7490.76f, -3114.97f, 434.431f, 2.51f, 0},
-{7479.64f, -3105.51f, 431.123f, 1.83f, 0},
-{7474.63f, -3086.59f, 428.994f, 1.83f, 2000},
-{7472.96f, -3074.18f, 427.566f, 1.57f, 0},
-{7472.25f, -3063, 428.268f, 1.55f, 0},
-{7473.46f, -3054.22f, 427.588f, 0.36f, 0},
-{7475.08f, -3053.6f, 428.653f, 0.36f, 6000},
-{7474.66f, -3053.56f, 428.433f, 3.19f, 4000},
-{7471.81f, -3058.84f, 427.073f, 4.29f, 0},
-{7472.16f, -3064.91f, 427.772f, 4.95f, 0},
-{7471.56f, -3085.36f, 428.924f, 4.72f, 0},
-{7473.56f, -3093.48f, 429.294f, 5.04f, 0},
-{7478.94f, -3104.29f, 430.638f, 5.23f, 0},
-{7484.46f, -3109.61f, 432.769f, 5.79f, 0},
-{7490.23f, -3111.08f, 434.431f, 0.02f, 0},
-{7496.29f, -3108, 434.783f, 1.15f, 0},
-{7497.46f, -3100.66f, 436.191f, 1.50f, 0},
-{7495.64f, -3093.39f, 438.349f, 2.10f, 0},
-{7492.44f, -3086.01f, 440.267f, 1.38f, 0},
-{7498.26f, -3076.44f, 440.808f, 0.71f, 0},
-{7506.4f, -3067.35f, 443.64f, 0.77f, 0},
-{7518.37f, -3057.42f, 445.584f, 0.74f, 0},
-{7517.51f, -3056.3f, 444.568f, 2.49f, 4500}
+ //pos_x pos_y pos_z orien waitTime
+ {7465.28f, -3115.46f, 439.327f, 0.83f, 4000},
+ {7476.49f, -3101, 443.457f, 0.89f, 0},
+ {7486.57f, -3085.59f, 439.478f, 1.07f, 0},
+ {7472.19f, -3085.06f, 443.142f, 3.07f, 0},
+ {7456.92f, -3085.91f, 438.862f, 3.24f, 0},
+ {7446.68f, -3083.43f, 438.245f, 2.40f, 0},
+ {7446.17f, -3080.21f, 439.826f, 1.10f, 6000},
+ {7452.41f, -3085.8f, 438.984f, 5.78f, 0},
+ {7469.11f, -3084.94f, 443.048f, 6.25f, 0},
+ {7483.79f, -3085.44f, 439.607f, 6.25f, 0},
+ {7491.14f, -3090.96f, 439.983f, 5.44f, 0},
+ {7497.62f, -3098.22f, 436.854f, 5.44f, 0},
+ {7498.72f, -3113.41f, 434.596f, 4.84f, 0},
+ {7500.06f, -3122.51f, 434.749f, 5.17f, 0},
+ {7504.96f, -3131.53f, 434.475f, 4.74f, 0},
+ {7504.31f, -3133.53f, 435.693f, 3.84f, 6000},
+ {7504.55f, -3133.27f, 435.476f, 0.68f, 15000},
+ {7501.99f, -3126.01f, 434.93f, 1.83f, 0},
+ {7490.76f, -3114.97f, 434.431f, 2.51f, 0},
+ {7479.64f, -3105.51f, 431.123f, 1.83f, 0},
+ {7474.63f, -3086.59f, 428.994f, 1.83f, 2000},
+ {7472.96f, -3074.18f, 427.566f, 1.57f, 0},
+ {7472.25f, -3063, 428.268f, 1.55f, 0},
+ {7473.46f, -3054.22f, 427.588f, 0.36f, 0},
+ {7475.08f, -3053.6f, 428.653f, 0.36f, 6000},
+ {7474.66f, -3053.56f, 428.433f, 3.19f, 4000},
+ {7471.81f, -3058.84f, 427.073f, 4.29f, 0},
+ {7472.16f, -3064.91f, 427.772f, 4.95f, 0},
+ {7471.56f, -3085.36f, 428.924f, 4.72f, 0},
+ {7473.56f, -3093.48f, 429.294f, 5.04f, 0},
+ {7478.94f, -3104.29f, 430.638f, 5.23f, 0},
+ {7484.46f, -3109.61f, 432.769f, 5.79f, 0},
+ {7490.23f, -3111.08f, 434.431f, 0.02f, 0},
+ {7496.29f, -3108, 434.783f, 1.15f, 0},
+ {7497.46f, -3100.66f, 436.191f, 1.50f, 0},
+ {7495.64f, -3093.39f, 438.349f, 2.10f, 0},
+ {7492.44f, -3086.01f, 440.267f, 1.38f, 0},
+ {7498.26f, -3076.44f, 440.808f, 0.71f, 0},
+ {7506.4f, -3067.35f, 443.64f, 0.77f, 0},
+ {7518.37f, -3057.42f, 445.584f, 0.74f, 0},
+ {7517.51f, -3056.3f, 444.568f, 2.49f, 4500}
};
-#define ASPECT_RAVEN 22915
-
-#define ASPECT_RAVEN_SUMMON_X 7472.96f
-#define ASPECT_RAVEN_SUMMON_Y -3074.18f
-#define ASPECT_RAVEN_SUMMON_Z 427.566f
-#define CLINTAR_SPIRIT_SUMMON_X 7459.2275f
-#define CLINTAR_SPIRIT_SUMMON_Y -3122.5632f
-#define CLINTAR_SPIRIT_SUMMON_Z 438.9842f
-#define CLINTAR_SPIRIT_SUMMON_O 0.8594f
-
-//from -1000292 to -1000287 are signed for 7806. but all this texts ids wrong.
-#define CLINTAR_SPIRIT_SAY_START -1000286
-#define CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1 -1000287
-#define CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2 -1000288
-#define CLINTAR_SPIRIT_SAY_GET_ONE -1000289
-#define CLINTAR_SPIRIT_SAY_GET_TWO -1000290
-#define CLINTAR_SPIRIT_SAY_GET_THREE -1000291
-#define CLINTAR_SPIRIT_SAY_GET_FINAL -1000292
+Position const AspectRavenSummon = {7472.96f, -3074.18f, 427.566f, 0.0f};
+Position const ClintarSpiritSummon = {7459.2275f, -3122.5632f, 438.9842f, 0.8594f};
+
+enum ClintarSpirit
+{
+ ASPECT_RAVEN = 22915,
+
+ //from -1000292 to -1000287 are signed for 7806. but all this texts ids wrong.
+ CLINTAR_SPIRIT_SAY_START = -1000286,
+ CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1 = -1000287,
+ CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2 = -1000288,
+ CLINTAR_SPIRIT_SAY_GET_ONE = -1000289,
+ CLINTAR_SPIRIT_SAY_GET_TWO = -1000290,
+ CLINTAR_SPIRIT_SAY_GET_THREE = -1000291,
+ CLINTAR_SPIRIT_SAY_GET_FINAL = -1000292
+};
class npc_clintar_spirit : public CreatureScript
{
@@ -296,16 +296,16 @@ public:
struct npc_clintar_spiritAI : public npc_escortAI
{
public:
- npc_clintar_spiritAI(Creature* c) : npc_escortAI(c) {}
+ npc_clintar_spiritAI(Creature* creature) : npc_escortAI(creature) {}
- uint32 Step;
+ uint8 Step;
uint32 CurrWP;
- uint32 Event_Timer;
- uint32 checkPlayer_Timer;
+ uint32 EventTimer;
+ uint32 checkPlayerTimer;
uint64 PlayerGUID;
- bool Event_onWait;
+ bool EventOnWait;
void Reset()
{
@@ -313,10 +313,10 @@ public:
{
Step = 0;
CurrWP = 0;
- Event_Timer = 0;
+ EventTimer = 0;
PlayerGUID = 0;
- checkPlayer_Timer = 1000;
- Event_onWait = false;
+ checkPlayerTimer = 1000;
+ EventOnWait = false;
}
}
@@ -347,8 +347,7 @@ public:
void EnterCombat(Unit* who)
{
- uint32 rnd = rand()%2;
- switch (rnd)
+ switch (urand(0, 1))
{
case 0: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1, me, who); break;
case 1: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2, me, who); break;
@@ -357,9 +356,7 @@ public:
void StartEvent(Player* player)
{
- if (!player)
- return;
- if (player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
+ if (player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
{
for (uint8 i = 0; i < 41; ++i)
{
@@ -381,18 +378,18 @@ public:
return;
}
- if (!me->isInCombat() && !Event_onWait)
+ if (!me->isInCombat() && !EventOnWait)
{
- if (checkPlayer_Timer <= diff)
+ if (checkPlayerTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (player && player->isInCombat() && player->getAttackerForHelper())
AttackStart(player->getAttackerForHelper());
- checkPlayer_Timer = 1000;
- } else checkPlayer_Timer -= diff;
+ checkPlayerTimer = 1000;
+ } else checkPlayerTimer -= diff;
}
- if (Event_onWait && Event_Timer <= diff)
+ if (EventOnWait && EventTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
@@ -409,11 +406,11 @@ public:
{
case 0:
me->Say(CLINTAR_SPIRIT_SAY_START, 0, PlayerGUID);
- Event_Timer = 8000;
+ EventTimer = 8000;
Step = 1;
break;
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -422,13 +419,13 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
- Event_Timer = 5000;
+ EventTimer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_ONE, me, player);
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -437,12 +434,12 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
- Event_Timer = 5000;
+ EventTimer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -451,11 +448,11 @@ public:
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_TWO, me, player);
- Event_Timer = 15000;
+ EventTimer = 15000;
Step = 1;
break;
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -463,19 +460,16 @@ public:
switch (Step)
{
case 0:
- {
- Creature* mob = me->SummonCreature(ASPECT_RAVEN, ASPECT_RAVEN_SUMMON_X, ASPECT_RAVEN_SUMMON_Y, ASPECT_RAVEN_SUMMON_Z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000);
- if (mob)
+ if (Creature* mob = me->SummonCreature(ASPECT_RAVEN, AspectRavenSummon, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000))
{
mob->AddThreat(me, 10000.0f);
mob->AI()->AttackStart(me);
}
- Event_Timer = 2000;
+ EventTimer = 2000;
Step = 1;
break;
- }
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -484,12 +478,12 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
- Event_Timer = 5000;
+ EventTimer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -498,11 +492,11 @@ public:
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_THREE, me, player);
- Event_Timer = 4000;
+ EventTimer = 4000;
Step = 1;
break;
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -513,12 +507,12 @@ public:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_FINAL, me, player);
player->CompleteQuest(10965);
- Event_Timer = 1500;
+ EventTimer = 1500;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- Event_Timer = 3000;
+ EventTimer = 3000;
Step = 2;
break;
case 2:
@@ -530,19 +524,19 @@ public:
}
break;
default:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
- } else if (Event_onWait) Event_Timer -= diff;
+ } else if (EventOnWait) EventTimer -= diff;
}
- void WaypointReached(uint32 id)
+ void WaypointReached(uint32 waypointId)
{
- CurrWP = id;
- Event_Timer = 0;
+ CurrWP = waypointId;
+ EventTimer = 0;
Step = 0;
- Event_onWait = true;
+ EventOnWait = true;
}
};
@@ -552,7 +546,10 @@ public:
# npc_clintar_dreamwalker
####*/
-#define CLINTAR_SPIRIT 22916
+enum Clintar
+{
+ CLINTAR_SPIRIT = 22916
+};
class npc_clintar_dreamwalker : public CreatureScript
{
@@ -562,11 +559,8 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == 10965)
- {
- Creature* clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000);
- if (clintar_spirit)
+ if (Creature* clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, ClintarSpiritSummon, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000))
CAST_AI(npc_clintar_spirit::npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(player);
- }
return true;
}
diff --git a/src/server/scripts/Kalimdor/mulgore.cpp b/src/server/scripts/Kalimdor/mulgore.cpp
index c689d6954a4..5b35688c2b8 100644
--- a/src/server/scripts/Kalimdor/mulgore.cpp
+++ b/src/server/scripts/Kalimdor/mulgore.cpp
@@ -29,8 +29,9 @@ npc_kyle_frenzied
npc_plains_vision
EndContentData */
-#include "ScriptPCH.h"
-#include "ScriptedEscortAI.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
# npc_skorn_whitecloud
@@ -43,10 +44,10 @@ class npc_skorn_whitecloud : public CreatureScript
public:
npc_skorn_whitecloud() : CreatureScript("npc_skorn_whitecloud") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
player->SEND_GOSSIP_MENU(523, creature->GetGUID());
return true;
@@ -71,7 +72,7 @@ public:
# npc_kyle_frenzied
######*/
-enum eKyleFrenzied
+enum KyleFrenzied
{
//emote signed for 7780 but propably thats wrong id.
EMOTE_SEE_LUNCH = -1000340,
@@ -96,32 +97,32 @@ public:
struct npc_kyle_frenziedAI : public ScriptedAI
{
- npc_kyle_frenziedAI(Creature* c) : ScriptedAI(c) {}
+ npc_kyle_frenziedAI(Creature* creature) : ScriptedAI(creature) {}
- bool bEvent;
- bool m_bIsMovingToLunch;
- uint64 uiPlayerGUID;
- uint32 uiEventTimer;
- uint8 uiEventPhase;
+ bool EventActive;
+ bool IsMovingToLunch;
+ uint64 PlayerGUID;
+ uint32 EventTimer;
+ uint8 EventPhase;
void Reset()
{
- bEvent = false;
- m_bIsMovingToLunch = false;
- uiPlayerGUID = 0;
- uiEventTimer = 5000;
- uiEventPhase = 0;
+ EventActive = false;
+ IsMovingToLunch = false;
+ PlayerGUID = 0;
+ EventTimer = 5000;
+ EventPhase = 0;
if (me->GetEntry() == NPC_KYLE_FRIENDLY)
me->UpdateEntry(NPC_KYLE_FRENZIED);
}
- void SpellHit(Unit* pCaster, SpellInfo const* pSpell)
+ void SpellHit(Unit* Caster, SpellInfo const* Spell)
{
- if (!me->getVictim() && !bEvent && pSpell->Id == SPELL_LUNCH)
+ if (!me->getVictim() && !EventActive && Spell->Id == SPELL_LUNCH)
{
- if (pCaster->GetTypeId() == TYPEID_PLAYER)
- uiPlayerGUID = pCaster->GetGUID();
+ if (Caster->GetTypeId() == TYPEID_PLAYER)
+ PlayerGUID = Caster->GetGUID();
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
{
@@ -130,41 +131,41 @@ public:
me->StopMoving();
}
- bEvent = true;
+ EventActive = true;
DoScriptText(EMOTE_SEE_LUNCH, me);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CREATURE_SPECIAL);
}
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 Type, uint32 PointId)
{
- if (uiType != POINT_MOTION_TYPE || !bEvent)
+ if (Type != POINT_MOTION_TYPE || !EventActive)
return;
- if (uiPointId == POINT_ID)
- m_bIsMovingToLunch = false;
+ if (PointId == POINT_ID)
+ IsMovingToLunch = false;
}
void UpdateAI(const uint32 diff)
{
- if (bEvent)
+ if (EventActive)
{
- if (m_bIsMovingToLunch)
+ if (IsMovingToLunch)
return;
- if (uiEventTimer <= diff)
+ if (EventTimer <= diff)
{
- uiEventTimer = 5000;
- ++uiEventPhase;
+ EventTimer = 5000;
+ ++EventPhase;
- switch (uiEventPhase)
+ switch (EventPhase)
{
case 1:
- if (Unit* unit = Unit::GetUnit(*me, uiPlayerGUID))
+ if (Unit* unit = Unit::GetUnit(*me, PlayerGUID))
{
if (GameObject* go = unit->GetGameObject(SPELL_LUNCH))
{
- m_bIsMovingToLunch = true;
+ IsMovingToLunch = true;
me->GetMotionMaster()->MovePoint(POINT_ID, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ());
}
}
@@ -174,13 +175,13 @@ public:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
break;
case 3:
- if (Player* unit = Unit::GetPlayer(*me, uiPlayerGUID))
+ if (Player* unit = Unit::GetPlayer(*me, PlayerGUID))
unit->TalkedToCreature(me->GetEntry(), me->GetGUID());
me->UpdateEntry(NPC_KYLE_FRIENDLY);
break;
case 4:
- uiEventTimer = 30000;
+ EventTimer = 30000;
DoScriptText(EMOTE_DANCE, me);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCESPECIAL);
break;
@@ -192,7 +193,7 @@ public:
}
}
else
- uiEventTimer -= diff;
+ EventTimer -= diff;
}
}
};
@@ -203,58 +204,58 @@ public:
# npc_plains_vision
######*/
-float wp_plain_vision[50][3] =
+Position const wpPlainVision[50] =
{
- {-2226.32f, -408.095f, -9.36235f},
- {-2203.04f, -437.212f, -5.72498f},
- {-2163.91f, -457.851f, -7.09049f},
- {-2123.87f, -448.137f, -9.29591f},
- {-2104.66f, -427.166f, -6.49513f},
- {-2101.48f, -422.826f, -5.3567f},
- {-2097.56f, -417.083f, -7.16716f},
- {-2084.87f, -398.626f, -9.88973f},
- {-2072.71f, -382.324f, -10.2488f},
- {-2054.05f, -356.728f, -6.22468f},
- {-2051.8f, -353.645f, -5.35791f},
- {-2049.08f, -349.912f, -6.15723f},
- {-2030.6f, -310.724f, -9.59302f},
- {-2002.15f, -249.308f, -10.8124f},
- {-1972.85f, -195.811f, -10.6316f},
- {-1940.93f, -147.652f, -11.7055f},
- {-1888.06f, -81.943f, -11.4404f},
- {-1837.05f, -34.0109f, -12.258f},
- {-1796.12f, -14.6462f, -10.3581f},
- {-1732.61f, -4.27746f, -10.0213f},
- {-1688.94f, -0.829945f, -11.7103f},
- {-1681.32f, 13.0313f, -9.48056f},
- {-1677.04f, 36.8349f, -7.10318f},
- {-1675.2f, 68.559f, -8.95384f},
- {-1676.57f, 89.023f, -9.65104f},
- {-1678.16f, 110.939f, -10.1782f},
- {-1677.86f, 128.681f, -5.73869f},
- {-1675.27f, 144.324f, -3.47916f},
- {-1671.7f, 163.169f, -1.23098f},
- {-1666.61f, 181.584f, 5.26145f},
- {-1661.51f, 196.154f, 8.95252f},
- {-1655.47f, 210.811f, 8.38727f},
- {-1647.07f, 226.947f, 5.27755f},
- {-1621.65f, 232.91f, 2.69579f},
- {-1600.23f, 237.641f, 2.98539f},
- {-1576.07f, 242.546f, 4.66541f},
- {-1554.57f, 248.494f, 6.60377f},
- {-1547.53f, 259.302f, 10.6741f},
- {-1541.7f, 269.847f, 16.4418f},
- {-1539.83f, 278.989f, 21.0597f},
- {-1540.16f, 290.219f, 27.8247f},
- {-1538.99f, 298.983f, 34.0032f},
- {-1540.38f, 307.337f, 41.3557f},
- {-1536.61f, 314.884f, 48.0179f},
- {-1532.42f, 323.277f, 55.6667f},
- {-1528.77f, 329.774f, 61.1525f},
- {-1525.65f, 333.18f, 63.2161f},
- {-1517.01f, 350.713f, 62.4286f},
- {-1511.39f, 362.537f, 62.4539f},
- {-1508.68f, 366.822f, 62.733f}
+ {-2226.32f, -408.095f, -9.36235f, 0.0f},
+ {-2203.04f, -437.212f, -5.72498f, 0.0f},
+ {-2163.91f, -457.851f, -7.09049f, 0.0f},
+ {-2123.87f, -448.137f, -9.29591f, 0.0f},
+ {-2104.66f, -427.166f, -6.49513f, 0.0f},
+ {-2101.48f, -422.826f, -5.3567f, 0.0f},
+ {-2097.56f, -417.083f, -7.16716f, 0.0f},
+ {-2084.87f, -398.626f, -9.88973f, 0.0f},
+ {-2072.71f, -382.324f, -10.2488f, 0.0f},
+ {-2054.05f, -356.728f, -6.22468f, 0.0f},
+ {-2051.8f, -353.645f, -5.35791f, 0.0f},
+ {-2049.08f, -349.912f, -6.15723f, 0.0f},
+ {-2030.6f, -310.724f, -9.59302f, 0.0f},
+ {-2002.15f, -249.308f, -10.8124f, 0.0f},
+ {-1972.85f, -195.811f, -10.6316f, 0.0f},
+ {-1940.93f, -147.652f, -11.7055f, 0.0f},
+ {-1888.06f, -81.943f, -11.4404f, 0.0f},
+ {-1837.05f, -34.0109f, -12.258f, 0.0f},
+ {-1796.12f, -14.6462f, -10.3581f, 0.0f},
+ {-1732.61f, -4.27746f, -10.0213f, 0.0f},
+ {-1688.94f, -0.829945f, -11.7103f, 0.0f},
+ {-1681.32f, 13.0313f, -9.48056f, 0.0f},
+ {-1677.04f, 36.8349f, -7.10318f, 0.0f},
+ {-1675.2f, 68.559f, -8.95384f, 0.0f},
+ {-1676.57f, 89.023f, -9.65104f, 0.0f},
+ {-1678.16f, 110.939f, -10.1782f, 0.0f},
+ {-1677.86f, 128.681f, -5.73869f, 0.0f},
+ {-1675.27f, 144.324f, -3.47916f, 0.0f},
+ {-1671.7f, 163.169f, -1.23098f, 0.0f},
+ {-1666.61f, 181.584f, 5.26145f, 0.0f},
+ {-1661.51f, 196.154f, 8.95252f, 0.0f},
+ {-1655.47f, 210.811f, 8.38727f, 0.0f},
+ {-1647.07f, 226.947f, 5.27755f, 0.0f},
+ {-1621.65f, 232.91f, 2.69579f, 0.0f},
+ {-1600.23f, 237.641f, 2.98539f, 0.0f},
+ {-1576.07f, 242.546f, 4.66541f, 0.0f},
+ {-1554.57f, 248.494f, 6.60377f, 0.0f},
+ {-1547.53f, 259.302f, 10.6741f, 0.0f},
+ {-1541.7f, 269.847f, 16.4418f, 0.0f},
+ {-1539.83f, 278.989f, 21.0597f, 0.0f},
+ {-1540.16f, 290.219f, 27.8247f, 0.0f},
+ {-1538.99f, 298.983f, 34.0032f, 0.0f},
+ {-1540.38f, 307.337f, 41.3557f, 0.0f},
+ {-1536.61f, 314.884f, 48.0179f, 0.0f},
+ {-1532.42f, 323.277f, 55.6667f, 0.0f},
+ {-1528.77f, 329.774f, 61.1525f, 0.0f},
+ {-1525.65f, 333.18f, 63.2161f, 0.0f},
+ {-1517.01f, 350.713f, 62.4286f, 0.0f},
+ {-1511.39f, 362.537f, 62.4539f, 0.0f},
+ {-1508.68f, 366.822f, 62.733f, 0.0f}
};
class npc_plains_vision : public CreatureScript
@@ -269,7 +270,7 @@ public:
struct npc_plains_visionAI : public ScriptedAI
{
- npc_plains_visionAI(Creature* c) : ScriptedAI(c) {}
+ npc_plains_visionAI(Creature* creature) : ScriptedAI(creature) {}
bool newWaypoint;
uint8 WayPointId;
@@ -305,7 +306,7 @@ public:
{
if (newWaypoint)
{
- me->GetMotionMaster()->MovePoint(WayPointId, wp_plain_vision[WayPointId][0], wp_plain_vision[WayPointId][1], wp_plain_vision[WayPointId][2]);
+ me->GetMotionMaster()->MovePoint(WayPointId, wpPlainVision[WayPointId]);
newWaypoint = false;
}
}
diff --git a/src/server/scripts/Kalimdor/orgrimmar.cpp b/src/server/scripts/Kalimdor/orgrimmar.cpp
index 629abb84fc1..fca8d0f5fc5 100644
--- a/src/server/scripts/Kalimdor/orgrimmar.cpp
+++ b/src/server/scripts/Kalimdor/orgrimmar.cpp
@@ -28,13 +28,15 @@ npc_shenthul
npc_thrall_warchief
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## npc_shenthul
######*/
-enum eShenthul
+enum Shenthul
{
QUEST_SHATTERED_SALUTE = 2460
};
@@ -61,20 +63,20 @@ public:
struct npc_shenthulAI : public ScriptedAI
{
- npc_shenthulAI(Creature* c) : ScriptedAI(c) {}
+ npc_shenthulAI(Creature* creature) : ScriptedAI(creature) {}
bool CanTalk;
bool CanEmote;
- uint32 Salute_Timer;
- uint32 Reset_Timer;
+ uint32 SaluteTimer;
+ uint32 ResetTimer;
uint64 PlayerGUID;
void Reset()
{
CanTalk = false;
CanEmote = false;
- Salute_Timer = 6000;
- Reset_Timer = 0;
+ SaluteTimer = 6000;
+ ResetTimer = 0;
PlayerGUID = 0;
}
@@ -84,7 +86,7 @@ public:
{
if (CanEmote)
{
- if (Reset_Timer <= diff)
+ if (ResetTimer <= diff)
{
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
{
@@ -92,17 +94,17 @@ public:
player->FailQuest(QUEST_SHATTERED_SALUTE);
}
Reset();
- } else Reset_Timer -= diff;
+ } else ResetTimer -= diff;
}
if (CanTalk && !CanEmote)
{
- if (Salute_Timer <= diff)
+ if (SaluteTimer <= diff)
{
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
CanEmote = true;
- Reset_Timer = 60000;
- } else Salute_Timer -= diff;
+ ResetTimer = 60000;
+ } else SaluteTimer -= diff;
}
if (!UpdateVictim())
@@ -130,10 +132,13 @@ public:
## npc_thrall_warchief
######*/
-#define QUEST_6566 6566
+enum ThrallWarchief
+{
+ QUEST_6566 = 6566,
-#define SPELL_CHAIN_LIGHTNING 16033
-#define SPELL_SHOCK 16034
+ SPELL_CHAIN_LIGHTNING = 16033,
+ SPELL_SHOCK = 16034
+};
#define GOSSIP_HTW "Please share your wisdom with me, Warchief."
#define GOSSIP_STW1 "What discoveries?"
@@ -149,10 +154,10 @@ class npc_thrall_warchief : public CreatureScript
public:
npc_thrall_warchief() : CreatureScript("npc_thrall_warchief") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_STW1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -205,15 +210,15 @@ public:
struct npc_thrall_warchiefAI : public ScriptedAI
{
- npc_thrall_warchiefAI(Creature* c) : ScriptedAI(c) {}
+ npc_thrall_warchiefAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 ChainLightning_Timer;
- uint32 Shock_Timer;
+ uint32 ChainLightningTimer;
+ uint32 ShockTimer;
void Reset()
{
- ChainLightning_Timer = 2000;
- Shock_Timer = 8000;
+ ChainLightningTimer = 2000;
+ ShockTimer = 8000;
}
void EnterCombat(Unit* /*who*/) {}
@@ -223,17 +228,17 @@ public:
if (!UpdateVictim())
return;
- if (ChainLightning_Timer <= diff)
+ if (ChainLightningTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
- ChainLightning_Timer = 9000;
- } else ChainLightning_Timer -= diff;
+ ChainLightningTimer = 9000;
+ } else ChainLightningTimer -= diff;
- if (Shock_Timer <= diff)
+ if (ShockTimer <= diff)
{
DoCast(me->getVictim(), SPELL_SHOCK);
- Shock_Timer = 15000;
- } else Shock_Timer -= diff;
+ ShockTimer = 15000;
+ } else ShockTimer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Kalimdor/silithus.cpp b/src/server/scripts/Kalimdor/silithus.cpp
index fac56021c3a..639de3dc3b2 100644
--- a/src/server/scripts/Kalimdor/silithus.cpp
+++ b/src/server/scripts/Kalimdor/silithus.cpp
@@ -29,7 +29,9 @@ npcs_rutgar_and_frankal
quest_a_pawn_on_the_eternal_pawn
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "Group.h"
/*###
@@ -49,10 +51,10 @@ class npc_highlord_demitrian : public CreatureScript
public:
npc_highlord_demitrian() : CreatureScript("npc_highlord_demitrian") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -125,19 +127,21 @@ public:
#define GOSSIP_ITEM14 "I should ask the monkey about this"
#define GOSSIP_ITEM15 "Then what..."
-//trigger creatures to kill
-#define TRIGGER_RUTGAR 15222
-#define TRIGGER_FRANKAL 15221
+enum RutgarAndFrankal //trigger creatures to kill
+{
+ TRIGGER_FRANKAL = 15221,
+ TRIGGER_RUTGAR = 15222
+};
class npcs_rutgar_and_frankal : public CreatureScript
{
public:
npcs_rutgar_and_frankal() : CreatureScript("npcs_rutgar_and_frankal") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -223,7 +227,7 @@ public:
/*####
# quest_a_pawn_on_the_eternal_board (Defines)
####*/
-enum eEternalBoard
+enum EternalBoard
{
QUEST_A_PAWN_ON_THE_ETERNAL_BOARD = 8519,
@@ -290,7 +294,6 @@ TO DO: get correct spell IDs and timings for spells cast upon dragon transformat
TO DO: Dragons should use the HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF) after transformation, but for some unknown reason it doesnt work.
EndContentData */
-#define QUEST_A_PAWN_ON_THE_ETERNAL_BOARD 8519
#define EVENT_AREA_RADIUS 65 //65yds
#define EVENT_COOLDOWN 500000 //in ms. appear after event completed or failed (should be = Adds despawn time)
@@ -374,7 +377,7 @@ static QuestCinematic EventAnim[]=
};
//Cordinates for Spawns
-static const Position SpawnLocation[]=
+Position const SpawnLocation[] =
{
{-8085.0f, 1528.0f, 2.61f, 3.141592f}, //Kaldorei Infantry
{-8080.0f, 1526.0f, 2.61f, 3.141592f}, //Kaldorei Infantry
@@ -455,7 +458,7 @@ struct WaveData
int32 WaveTextId;
};
-static WaveData WavesInfo[] =
+static WaveData WavesInfo[5] =
{
{30, 0, 15423, 0, 0, 24000, 0}, // Kaldorei Soldier
{ 3, 35, 15424, 0, 0, 24000, 0}, // Anubisath Conqueror
@@ -470,7 +473,7 @@ struct SpawnSpells
uint32 Timer1, Timer2, SpellId;
};
-static SpawnSpells SpawnCast[]=//
+static SpawnSpells SpawnCast[4] =
{
{100000, 2000, 33652}, // Stop Time
{38500, 300000, 28528}, // Poison Cloud
@@ -485,14 +488,14 @@ class npc_anachronos_the_ancient : public CreatureScript
public:
npc_anachronos_the_ancient() : CreatureScript("npc_anachronos_the_ancient") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new npc_anachronos_the_ancientAI(c);
+ return new npc_anachronos_the_ancientAI(creature);
}
struct npc_anachronos_the_ancientAI : public ScriptedAI
{
- npc_anachronos_the_ancientAI(Creature* c) : ScriptedAI(c) {}
+ npc_anachronos_the_ancientAI(Creature* creature) : ScriptedAI(creature) {}
uint32 AnimationTimer;
uint8 AnimationCount;
@@ -576,7 +579,7 @@ public:
break;
case 10:
Merithra->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- Merithra->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ Merithra->SetDisableGravity(true);
Merithra->GetMotionMaster()->MoveCharge(-8065, 1530, 6.61f, 3);
break;
case 11:
@@ -603,7 +606,7 @@ public:
break;
case 18:
Arygos->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- Arygos->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ Arygos->SetDisableGravity(true);
Arygos->GetMotionMaster()->MoveCharge(-8065, 1530, 6.61f, 42);
break;
case 19:
@@ -630,7 +633,7 @@ public:
break;
case 26:
Caelestrasz->HandleEmoteCommand(254);
- Caelestrasz->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ Caelestrasz->SetDisableGravity(true);
Caelestrasz->GetMotionMaster()->MoveCharge(-8065, 1530, 7.61f, 4);
break;
case 27:
@@ -769,7 +772,7 @@ public:
break;
case 63:
me->HandleEmoteCommand(254);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
break;
case 64:
me->GetMotionMaster()->MoveCharge(-8000, 1400, 150, 9);
@@ -813,14 +816,14 @@ class mob_qiraj_war_spawn : public CreatureScript
public:
mob_qiraj_war_spawn() : CreatureScript("mob_qiraj_war_spawn") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_qiraj_war_spawnAI(c);
+ return new mob_qiraj_war_spawnAI(creature);
}
struct mob_qiraj_war_spawnAI : public ScriptedAI
{
- mob_qiraj_war_spawnAI(Creature* c) : ScriptedAI(c) {}
+ mob_qiraj_war_spawnAI(Creature* creature) : ScriptedAI(creature) {}
uint64 MobGUID;
uint64 PlayerGUID;
@@ -928,14 +931,14 @@ class npc_anachronos_quest_trigger : public CreatureScript
public:
npc_anachronos_quest_trigger() : CreatureScript("npc_anachronos_quest_trigger") { }
- CreatureAI* GetAI(Creature* c) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new npc_anachronos_quest_triggerAI(c);
+ return new npc_anachronos_quest_triggerAI(creature);
}
struct npc_anachronos_quest_triggerAI : public ScriptedAI
{
- npc_anachronos_quest_triggerAI(Creature* c) : ScriptedAI(c) {}
+ npc_anachronos_quest_triggerAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
@@ -967,16 +970,15 @@ public:
void SummonNextWave()
{
- //uint8 count = WavesInfo[WaveCount].SpawnCount;
uint8 locIndex = WavesInfo[WaveCount].UsedSpawnPoint;
- //uint8 KaldoreiSoldierCount = 0;
- //uint8 AnubisathConquerorCount = 0;
- //uint8 QirajiWaspCount = 0;
- for (uint8 i = 0; i < 67; ++i)
+ uint8 count = locIndex + WavesInfo[WaveCount].SpawnCount;
+
+ for (uint8 i = locIndex; i <= count; ++i)
{
- if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[locIndex + i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, WavesInfo[WaveCount].DespTimer))
+ uint32 desptimer = WavesInfo[WaveCount].DespTimer;
+
+ if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer))
{
- spawn->LoadCreaturesAddon();
if (spawn->GetEntry() == 15423)
spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15427+rand()%4);
if (i >= 30) WaveCount = 1;
@@ -986,12 +988,15 @@ public:
if (WaveCount < 5) //1-4 Wave
{
- mob_qiraj_war_spawn::mob_qiraj_war_spawnAI* spawnAI = CAST_AI(mob_qiraj_war_spawn::mob_qiraj_war_spawnAI, spawn->AI());
- spawnAI->MobGUID = me->GetGUID();
- spawnAI->PlayerGUID = PlayerGUID;
+ if (mob_qiraj_war_spawn::mob_qiraj_war_spawnAI* spawnAI = CAST_AI(mob_qiraj_war_spawn::mob_qiraj_war_spawnAI, spawn->AI()))
+ {
+ spawnAI->MobGUID = me->GetGUID();
+ spawnAI->PlayerGUID = PlayerGUID;
+ }
}
}
}
+
WaveTimer = WavesInfo[WaveCount].SpawnTimer;
AnnounceTimer = WavesInfo[WaveCount].YellTimer;
}
@@ -1005,27 +1010,27 @@ public:
if (Group* EventGroup = player->GetGroup())
{
- Player* GroupMember;
+ Player* groupMember;
uint8 GroupMemberCount = 0;
uint8 DeadMemberCount = 0;
uint8 FailedMemberCount = 0;
- const Group::MemberSlotList members = EventGroup->GetMemberSlots();
+ Group::MemberSlotList const members = EventGroup->GetMemberSlots();
for (Group::member_citerator itr = members.begin(); itr!= members.end(); ++itr)
{
- GroupMember = (Unit::GetPlayer(*me, itr->guid));
- if (!GroupMember)
+ groupMember = (Unit::GetPlayer(*me, itr->guid));
+ if (!groupMember)
continue;
- if (!GroupMember->IsWithinDistInMap(me, EVENT_AREA_RADIUS) && GroupMember->GetQuestStatus(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD) == QUEST_STATUS_INCOMPLETE)
+ if (!groupMember->IsWithinDistInMap(me, EVENT_AREA_RADIUS) && groupMember->GetQuestStatus(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD) == QUEST_STATUS_INCOMPLETE)
{
- GroupMember->FailQuest(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD);
+ groupMember->FailQuest(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD);
++FailedMemberCount;
}
++GroupMemberCount;
- if (GroupMember->isDead())
+ if (groupMember->isDead())
++DeadMemberCount;
}
@@ -1069,8 +1074,13 @@ public:
void mob_qiraj_war_spawn::mob_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)
{
me->RemoveCorpse();
- if (Creature* Mob = (Unit::GetCreature(*me, MobGUID)))
- CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, Mob->AI())->LiveCounter();
+
+ if (!MobGUID)
+ return;
+
+ if (Creature* mob = Unit::GetCreature(*me, MobGUID))
+ if (npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI* triggerAI = CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, mob->AI()))
+ triggerAI->LiveCounter();
};
@@ -1087,15 +1097,13 @@ public:
{
if (quest->GetQuestId() == QUEST_A_PAWN_ON_THE_ETERNAL_BOARD)
{
-
- if (Unit* Anachronos_Quest_Trigger = go->FindNearestCreature(15454, 100, player))
+ if (Creature* trigger = go->FindNearestCreature(15454, 100, player))
{
-
- Unit* Merithra = Anachronos_Quest_Trigger->SummonCreature(15378, -8034.535f, 1535.14f, 2.61f, 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
- Unit* Caelestrasz = Anachronos_Quest_Trigger->SummonCreature(15379, -8032.767f, 1533.148f, 2.61f, 1.5f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
- Unit* Arygos = Anachronos_Quest_Trigger->SummonCreature(15380, -8034.52f, 1537.843f, 2.61f, 5.7f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
- /* Unit* Fandral = */ Anachronos_Quest_Trigger->SummonCreature(15382, -8028.462f, 1535.843f, 2.61f, 3.141592f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
- Creature* Anachronos = Anachronos_Quest_Trigger->SummonCreature(15381, -8028.75f, 1538.795f, 2.61f, 4, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
+ Unit* Merithra = trigger->SummonCreature(15378, -8034.535f, 1535.14f, 2.61f, 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
+ Unit* Caelestrasz = trigger->SummonCreature(15379, -8032.767f, 1533.148f, 2.61f, 1.5f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
+ Unit* Arygos = trigger->SummonCreature(15380, -8034.52f, 1537.843f, 2.61f, 5.7f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
+ /* Unit* Fandral = */ trigger->SummonCreature(15382, -8028.462f, 1535.843f, 2.61f, 3.141592f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
+ Creature* Anachronos = trigger->SummonCreature(15381, -8028.75f, 1538.795f, 2.61f, 4, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
if (Merithra)
{
@@ -1123,11 +1131,16 @@ public:
if (Anachronos)
{
- CAST_AI(npc_anachronos_the_ancient::npc_anachronos_the_ancientAI, Anachronos->AI())->PlayerGUID = player->GetGUID();
- CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->Failed=false;
- CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->PlayerGUID = player->GetGUID();
- CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->EventStarted=true;
- CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->Announced=true;
+ if (npc_anachronos_the_ancient::npc_anachronos_the_ancientAI* anachronosAI = CAST_AI(npc_anachronos_the_ancient::npc_anachronos_the_ancientAI, Anachronos->AI()))
+ anachronosAI->PlayerGUID = player->GetGUID();
+
+ if (npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI* triggerAI = CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, trigger->AI()))
+ {
+ triggerAI->Failed = false;
+ triggerAI->PlayerGUID = player->GetGUID();
+ triggerAI->EventStarted = true;
+ triggerAI->Announced = true;
+ }
}
}
}
diff --git a/src/server/scripts/Kalimdor/stonetalon_mountains.cpp b/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
index c31a7731865..d38395c7b37 100644
--- a/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
+++ b/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
@@ -28,7 +28,9 @@ npc_braug_dimspirit
npc_kaya_flathoof
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
/*######
@@ -46,16 +48,16 @@ class npc_braug_dimspirit : public CreatureScript
public:
npc_braug_dimspirit() : CreatureScript("npc_braug_dimspirit") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, 6766, false);
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
player->AreaExploredOrEventHappens(6627);
@@ -90,7 +92,7 @@ public:
## npc_kaya_flathoof
######*/
-enum eKaya
+enum Kaya
{
FACTION_ESCORTEE_H = 775,
@@ -112,28 +114,27 @@ public:
struct npc_kaya_flathoofAI : public npc_escortAI
{
- npc_kaya_flathoofAI(Creature* c) : npc_escortAI(c) {}
+ npc_kaya_flathoofAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 16:
- DoScriptText(SAY_AMBUSH, me);
- me->SummonCreature(NPC_GRIMTOTEM_BRUTE, -48.53f, -503.34f, -46.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- me->SummonCreature(NPC_GRIMTOTEM_RUFFIAN, -38.85f, -503.77f, -45.90f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- me->SummonCreature(NPC_GRIMTOTEM_SORCERER, -36.37f, -496.23f, -45.71f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 18: me->SetInFront(player);
- DoScriptText(SAY_END, me, player);
- if (player)
+ case 16:
+ DoScriptText(SAY_AMBUSH, me);
+ me->SummonCreature(NPC_GRIMTOTEM_BRUTE, -48.53f, -503.34f, -46.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_GRIMTOTEM_RUFFIAN, -38.85f, -503.77f, -45.90f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ me->SummonCreature(NPC_GRIMTOTEM_SORCERER, -36.37f, -496.23f, -45.71f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 18:
+ me->SetInFront(player);
+ DoScriptText(SAY_END, me, player);
player->GroupEventHappens(QUEST_PROTECT_KAYA, me);
- break;
+ break;
}
}
diff --git a/src/server/scripts/Kalimdor/tanaris.cpp b/src/server/scripts/Kalimdor/tanaris.cpp
index ff6cdccb66a..9b742b495bb 100644
--- a/src/server/scripts/Kalimdor/tanaris.cpp
+++ b/src/server/scripts/Kalimdor/tanaris.cpp
@@ -33,7 +33,9 @@ npc_OOX17
npc_tooga
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
@@ -41,10 +43,13 @@ EndContentData */
## mob_aquementas
######*/
-#define AGGRO_YELL_AQUE -1000350
+enum Aquementas
+{
+ AGGRO_YELL_AQUE = -1000350,
-#define SPELL_AQUA_JET 13586
-#define SPELL_FROST_SHOCK 15089
+ SPELL_AQUA_JET = 13586,
+ SPELL_FROST_SHOCK = 15089
+};
class mob_aquementas : public CreatureScript
{
@@ -58,24 +63,24 @@ public:
struct mob_aquementasAI : public ScriptedAI
{
- mob_aquementasAI(Creature* c) : ScriptedAI(c) {}
+ mob_aquementasAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 SendItem_Timer;
- uint32 SwitchFaction_Timer;
+ uint32 SendItemTimer;
+ uint32 SwitchFactionTimer;
bool isFriendly;
- uint32 FrostShock_Timer;
- uint32 AquaJet_Timer;
+ uint32 FrostShockTimer;
+ uint32 AquaJetTimer;
void Reset()
{
- SendItem_Timer = 0;
- SwitchFaction_Timer = 10000;
+ SendItemTimer = 0;
+ SwitchFactionTimer = 10000;
me->setFaction(35);
isFriendly = true;
- AquaJet_Timer = 5000;
- FrostShock_Timer = 1000;
+ AquaJetTimer = 5000;
+ FrostShockTimer = 1000;
}
void SendItem(Unit* receiver)
@@ -101,11 +106,11 @@ public:
{
if (isFriendly)
{
- if (SwitchFaction_Timer <= diff)
+ if (SwitchFactionTimer <= diff)
{
me->setFaction(91);
isFriendly = false;
- } else SwitchFaction_Timer -= diff;
+ } else SwitchFactionTimer -= diff;
}
if (!UpdateVictim())
@@ -113,25 +118,25 @@ public:
if (!isFriendly)
{
- if (SendItem_Timer <= diff)
+ if (SendItemTimer <= diff)
{
if (me->getVictim()->GetTypeId() == TYPEID_PLAYER)
SendItem(me->getVictim());
- SendItem_Timer = 5000;
- } else SendItem_Timer -= diff;
+ SendItemTimer = 5000;
+ } else SendItemTimer -= diff;
}
- if (FrostShock_Timer <= diff)
+ if (FrostShockTimer <= diff)
{
DoCast(me->getVictim(), SPELL_FROST_SHOCK);
- FrostShock_Timer = 15000;
- } else FrostShock_Timer -= diff;
+ FrostShockTimer = 15000;
+ } else FrostShockTimer -= diff;
- if (AquaJet_Timer <= diff)
+ if (AquaJetTimer <= diff)
{
DoCast(me, SPELL_AQUA_JET);
- AquaJet_Timer = 15000;
- } else AquaJet_Timer -= diff;
+ AquaJetTimer = 15000;
+ } else AquaJetTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -143,20 +148,23 @@ public:
## npc_custodian_of_time
######*/
-#define WHISPER_CUSTODIAN_1 -1000217
-#define WHISPER_CUSTODIAN_2 -1000218
-#define WHISPER_CUSTODIAN_3 -1000219
-#define WHISPER_CUSTODIAN_4 -1000220
-#define WHISPER_CUSTODIAN_5 -1000221
-#define WHISPER_CUSTODIAN_6 -1000222
-#define WHISPER_CUSTODIAN_7 -1000223
-#define WHISPER_CUSTODIAN_8 -1000224
-#define WHISPER_CUSTODIAN_9 -1000225
-#define WHISPER_CUSTODIAN_10 -1000226
-#define WHISPER_CUSTODIAN_11 -1000227
-#define WHISPER_CUSTODIAN_12 -1000228
-#define WHISPER_CUSTODIAN_13 -1000229
-#define WHISPER_CUSTODIAN_14 -1000230
+enum CustodianOfTime
+{
+ WHISPER_CUSTODIAN_1 = -1000217,
+ WHISPER_CUSTODIAN_2 = -1000218,
+ WHISPER_CUSTODIAN_3 = -1000219,
+ WHISPER_CUSTODIAN_4 = -1000220,
+ WHISPER_CUSTODIAN_5 = -1000221,
+ WHISPER_CUSTODIAN_6 = -1000222,
+ WHISPER_CUSTODIAN_7 = -1000223,
+ WHISPER_CUSTODIAN_8 = -1000224,
+ WHISPER_CUSTODIAN_9 = -1000225,
+ WHISPER_CUSTODIAN_10 = -1000226,
+ WHISPER_CUSTODIAN_11 = -1000227,
+ WHISPER_CUSTODIAN_12 = -1000228,
+ WHISPER_CUSTODIAN_13 = -1000229,
+ WHISPER_CUSTODIAN_14 = -1000230
+};
class npc_custodian_of_time : public CreatureScript
{
@@ -170,39 +178,72 @@ public:
struct npc_custodian_of_timeAI : public npc_escortAI
{
- npc_custodian_of_timeAI(Creature* c) : npc_escortAI(c) {}
+ npc_custodian_of_timeAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (i)
+ if (Player* player = GetPlayerForEscort())
{
- case 0: DoScriptText(WHISPER_CUSTODIAN_1, me, player); break;
- case 1: DoScriptText(WHISPER_CUSTODIAN_2, me, player); break;
- case 2: DoScriptText(WHISPER_CUSTODIAN_3, me, player); break;
- case 3: DoScriptText(WHISPER_CUSTODIAN_4, me, player); break;
- case 5: DoScriptText(WHISPER_CUSTODIAN_5, me, player); break;
- case 6: DoScriptText(WHISPER_CUSTODIAN_6, me, player); break;
- case 7: DoScriptText(WHISPER_CUSTODIAN_7, me, player); break;
- case 8: DoScriptText(WHISPER_CUSTODIAN_8, me, player); break;
- case 9: DoScriptText(WHISPER_CUSTODIAN_9, me, player); break;
- case 10: DoScriptText(WHISPER_CUSTODIAN_4, me, player); break;
- case 13: DoScriptText(WHISPER_CUSTODIAN_10, me, player); break;
- case 14: DoScriptText(WHISPER_CUSTODIAN_4, me, player); break;
- case 16: DoScriptText(WHISPER_CUSTODIAN_11, me, player); break;
- case 17: DoScriptText(WHISPER_CUSTODIAN_12, me, player); break;
- case 18: DoScriptText(WHISPER_CUSTODIAN_4, me, player); break;
- case 22: DoScriptText(WHISPER_CUSTODIAN_13, me, player); break;
- case 23: DoScriptText(WHISPER_CUSTODIAN_4, me, player); break;
- case 24:
- DoScriptText(WHISPER_CUSTODIAN_14, me, player);
- DoCast(player, 34883);
- // below here is temporary workaround, to be removed when spell works properly
- player->AreaExploredOrEventHappens(10277);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ DoScriptText(WHISPER_CUSTODIAN_1, me, player);
+ break;
+ case 1:
+ DoScriptText(WHISPER_CUSTODIAN_2, me, player);
+ break;
+ case 2:
+ DoScriptText(WHISPER_CUSTODIAN_3, me, player);
+ break;
+ case 3:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 5:
+ DoScriptText(WHISPER_CUSTODIAN_5, me, player);
+ break;
+ case 6:
+ DoScriptText(WHISPER_CUSTODIAN_6, me, player);
+ break;
+ case 7:
+ DoScriptText(WHISPER_CUSTODIAN_7, me, player);
+ break;
+ case 8:
+ DoScriptText(WHISPER_CUSTODIAN_8, me, player);
+ break;
+ case 9:
+ DoScriptText(WHISPER_CUSTODIAN_9, me, player);
+ break;
+ case 10:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 13:
+ DoScriptText(WHISPER_CUSTODIAN_10, me, player);
+ break;
+ case 14:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 16:
+ DoScriptText(WHISPER_CUSTODIAN_11, me, player);
+ break;
+ case 17:
+ DoScriptText(WHISPER_CUSTODIAN_12, me, player);
+ break;
+ case 18:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 22:
+ DoScriptText(WHISPER_CUSTODIAN_13, me, player);
+ break;
+ case 23:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 24:
+ DoScriptText(WHISPER_CUSTODIAN_14, me, player);
+ DoCast(player, 34883);
+ // below here is temporary workaround, to be removed when spell works properly
+ player->AreaExploredOrEventHappens(10277);
+ break;
+ }
}
}
@@ -225,7 +266,7 @@ public:
}
void EnterCombat(Unit* /*who*/) {}
- void Reset() { }
+ void Reset() {}
void UpdateAI(const uint32 diff)
{
@@ -244,10 +285,10 @@ class npc_marin_noggenfogger : public CreatureScript
public:
npc_marin_noggenfogger() : CreatureScript("npc_marin_noggenfogger") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -287,10 +328,10 @@ public:
return false;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
player->CastSpell(player, 34891, true); //(Flight through Caverns)
return true;
@@ -330,10 +371,10 @@ class npc_stone_watcher_of_norgannon : public CreatureScript
public:
npc_stone_watcher_of_norgannon() : CreatureScript("npc_stone_watcher_of_norgannon") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_NORGANNON_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -382,7 +423,7 @@ public:
## npc_OOX17
######*/
-enum e00X17
+enum Npc00X17
{
//texts are signed for 7806
SAY_OOX_START = -1000287,
@@ -426,39 +467,33 @@ public:
struct npc_OOX17AI : public npc_escortAI
{
- npc_OOX17AI(Creature* c) : npc_escortAI(c) {}
+ npc_OOX17AI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- if (!player)
- return;
-
- switch (i) {
- case 23:
- me->SummonCreature(SPAWN_FIRST, -8350.96f, -4445.79f, 10.10f, 6.20f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_FIRST, -8355.96f, -4447.79f, 10.10f, 6.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_FIRST, -8353.96f, -4442.79f, 10.10f, 6.08f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_OOX_AMBUSH, me);
- break;
-
- case 56:
- me->SummonCreature(SPAWN_SECOND_1, -7510.07f, -4795.50f, 9.35f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_SECOND_2, -7515.07f, -4797.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_SECOND_2, -7518.07f, -4792.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_OOX_AMBUSH, me);
- if (Unit* scoff = me->FindNearestCreature(SPAWN_SECOND_2, 30))
- DoScriptText(SAY_OOX17_AMBUSH_REPLY, scoff);
- break;
-
- case 86:
- if (player)
- {
+ if (Player* player = GetPlayerForEscort())
+ {
+ switch (waypointId)
+ {
+ case 23:
+ me->SummonCreature(SPAWN_FIRST, -8350.96f, -4445.79f, 10.10f, 6.20f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_FIRST, -8355.96f, -4447.79f, 10.10f, 6.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_FIRST, -8353.96f, -4442.79f, 10.10f, 6.08f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_OOX_AMBUSH, me);
+ break;
+ case 56:
+ me->SummonCreature(SPAWN_SECOND_1, -7510.07f, -4795.50f, 9.35f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_SECOND_2, -7515.07f, -4797.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_SECOND_2, -7518.07f, -4792.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_OOX_AMBUSH, me);
+ if (Unit* scoff = me->FindNearestCreature(SPAWN_SECOND_2, 30))
+ DoScriptText(SAY_OOX17_AMBUSH_REPLY, scoff);
+ break;
+ case 86:
DoScriptText(SAY_OOX_END, me);
player->GroupEventHappens(Q_OOX17, me);
- }
- break;
+ break;
+ }
}
}
@@ -474,14 +509,13 @@ public:
summoned->AI()->AttackStart(me);
}
};
-
};
/*####
# npc_tooga
####*/
-enum eTooga
+enum Tooga
{
SAY_TOOG_THIRST = -1000391,
SAY_TOOG_WORRIED = -1000392,
@@ -499,7 +533,7 @@ enum eTooga
FACTION_TOOG_ESCORTEE = 113
};
-const float m_afToWaterLoc[] = {-7032.664551f, -4906.199219f, -1.606446f};
+Position const ToWaterLoc = {-7032.664551f, -4906.199219f, -1.606446f, 0.0f};
class npc_tooga : public CreatureScript
{
@@ -526,17 +560,17 @@ public:
{
npc_toogaAI(Creature* creature) : FollowerAI(creature) { }
- uint32 m_uiCheckSpeechTimer;
- uint32 m_uiPostEventTimer;
- uint32 m_uiPhasePostEvent;
+ uint32 CheckSpeechTimer;
+ uint32 PostEventTimer;
+ uint32 PhasePostEvent;
uint64 TortaGUID;
void Reset()
{
- m_uiCheckSpeechTimer = 2500;
- m_uiPostEventTimer = 1000;
- m_uiPhasePostEvent = 0;
+ CheckSpeechTimer = 2500;
+ PostEventTimer = 1000;
+ PhasePostEvent = 0;
TortaGUID = 0;
}
@@ -549,11 +583,9 @@ public:
{
if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE))
{
- if (Player* player = GetLeaderForFollower())
- {
- if (player->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE)
- player->GroupEventHappens(QUEST_TOOGA, me);
- }
+ Player* player = GetLeaderForFollower();
+ if (player && player->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE)
+ player->GroupEventHappens(QUEST_TOOGA, me);
TortaGUID = who->GetGUID();
SetFollowComplete(true);
@@ -561,27 +593,27 @@ public:
}
}
- void MovementInform(uint32 uiMotionType, uint32 uiPointId)
+ void MovementInform(uint32 MotionType, uint32 PointId)
{
- FollowerAI::MovementInform(uiMotionType, uiPointId);
+ FollowerAI::MovementInform(MotionType, PointId);
- if (uiMotionType != POINT_MOTION_TYPE)
+ if (MotionType != POINT_MOTION_TYPE)
return;
- if (uiPointId == POINT_ID_TO_WATER)
+ if (PointId == POINT_ID_TO_WATER)
SetFollowComplete();
}
- void UpdateFollowerAI(const uint32 uiDiff)
+ void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
{
//we are doing the post-event, or...
if (HasFollowState(STATE_FOLLOW_POSTEVENT))
{
- if (m_uiPostEventTimer <= uiDiff)
+ if (PostEventTimer <= Diff)
{
- m_uiPostEventTimer = 5000;
+ PostEventTimer = 5000;
Unit* pTorta = Unit::GetUnit(*me, TortaGUID);
if (!pTorta || !pTorta->isAlive())
@@ -591,7 +623,7 @@ public:
return;
}
- switch (m_uiPhasePostEvent)
+ switch (PhasePostEvent)
{
case 1:
DoScriptText(SAY_TOOG_POST_1, me);
@@ -610,27 +642,27 @@ public:
break;
case 6:
DoScriptText(SAY_TORT_POST_6, pTorta);
- me->GetMotionMaster()->MovePoint(POINT_ID_TO_WATER, m_afToWaterLoc[0], m_afToWaterLoc[1], m_afToWaterLoc[2]);
+ me->GetMotionMaster()->MovePoint(POINT_ID_TO_WATER, ToWaterLoc);
break;
}
- ++m_uiPhasePostEvent;
+ ++PhasePostEvent;
}
else
- m_uiPostEventTimer -= uiDiff;
+ PostEventTimer -= Diff;
}
//...we are doing regular speech check
else if (HasFollowState(STATE_FOLLOW_INPROGRESS))
{
- if (m_uiCheckSpeechTimer <= uiDiff)
+ if (CheckSpeechTimer <= Diff)
{
- m_uiCheckSpeechTimer = 5000;
+ CheckSpeechTimer = 5000;
if (urand(0, 9) > 8)
DoScriptText(RAND(SAY_TOOG_THIRST, SAY_TOOG_WORRIED), me);
}
else
- m_uiCheckSpeechTimer -= uiDiff;
+ CheckSpeechTimer -= Diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/teldrassil.cpp b/src/server/scripts/Kalimdor/teldrassil.cpp
index d7cac99c374..7f2b2fc7f05 100644
--- a/src/server/scripts/Kalimdor/teldrassil.cpp
+++ b/src/server/scripts/Kalimdor/teldrassil.cpp
@@ -27,14 +27,15 @@ EndScriptData */
npc_mist
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedFollowerAI.h"
/*####
# npc_mist
####*/
-enum eMist
+enum Mist
{
SAY_AT_HOME = -1000323,
EMOTE_AT_HOME = -1000324,
@@ -51,10 +52,8 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == QUEST_MIST)
- {
if (npc_mistAI* pMistAI = CAST_AI(npc_mist::npc_mistAI, creature->AI()))
pMistAI->StartFollow(player, FACTION_DARNASSUS, quest);
- }
return true;
}
@@ -88,18 +87,16 @@ public:
{
DoScriptText(EMOTE_AT_HOME, me);
- if (Player* player = GetLeaderForFollower())
- {
- if (player->GetQuestStatus(QUEST_MIST) == QUEST_STATUS_INCOMPLETE)
- player->GroupEventHappens(QUEST_MIST, me);
- }
+ Player* player = GetLeaderForFollower();
+ if (player && player->GetQuestStatus(QUEST_MIST) == QUEST_STATUS_INCOMPLETE)
+ player->GroupEventHappens(QUEST_MIST, me);
//The follow is over (and for later development, run off to the woods before really end)
SetFollowComplete();
}
//call not needed here, no known abilities
- /*void UpdateFollowerAI(const uint32 uiDiff)
+ /*void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/the_barrens.cpp b/src/server/scripts/Kalimdor/the_barrens.cpp
index e12897c1def..f4983558b67 100644
--- a/src/server/scripts/Kalimdor/the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/the_barrens.cpp
@@ -32,7 +32,9 @@ npc_twiggy_flathead
npc_wizzlecrank_shredder
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
/*######
@@ -41,7 +43,7 @@ EndContentData */
#define GOSSIP_CORPSE "Examine corpse in detail..."
-enum eQuests
+enum BeatenCorpse
{
QUEST_LOST_IN_BATTLE = 4921
};
@@ -51,10 +53,10 @@ class npc_beaten_corpse : public CreatureScript
public:
npc_beaten_corpse() : CreatureScript("npc_beaten_corpse") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF +1)
+ if (action == GOSSIP_ACTION_INFO_DEF +1)
{
player->SEND_GOSSIP_MENU(3558, creature->GetGUID());
player->TalkedToCreature(creature->GetEntry(), creature->GetGUID());
@@ -77,7 +79,7 @@ public:
# npc_gilthares
######*/
-enum eGilthares
+enum Gilthares
{
SAY_GIL_START = -1000370,
SAY_GIL_AT_LAST = -1000371,
@@ -127,14 +129,13 @@ public:
void Reset() { }
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (uiPointId)
+ switch (waypointId)
{
case 16:
DoScriptText(SAY_GIL_AT_LAST, me, player);
@@ -186,10 +187,10 @@ class npc_sputtervalve : public CreatureScript
public:
npc_sputtervalve() : CreatureScript("npc_sputtervalve") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->SEND_GOSSIP_MENU(2013, creature->GetGUID());
player->AreaExploredOrEventHappens(6981);
@@ -215,7 +216,7 @@ public:
## npc_taskmaster_fizzule
######*/
-enum eEnums
+enum TaskmasterFizzule
{
FACTION_FRIENDLY_F = 35,
SPELL_FLARE = 10113,
@@ -234,20 +235,20 @@ public:
struct npc_taskmaster_fizzuleAI : public ScriptedAI
{
- npc_taskmaster_fizzuleAI(Creature* c) : ScriptedAI(c)
+ npc_taskmaster_fizzuleAI(Creature* creature) : ScriptedAI(creature)
{
- factionNorm = c->getFaction();
+ factionNorm = creature->getFaction();
}
uint32 factionNorm;
bool IsFriend;
- uint32 Reset_Timer;
+ uint32 ResetTimer;
uint8 FlareCount;
void Reset()
{
IsFriend = false;
- Reset_Timer = 120000;
+ ResetTimer = 120000;
FlareCount = 0;
me->setFaction(factionNorm);
}
@@ -282,11 +283,11 @@ public:
{
if (IsFriend)
{
- if (Reset_Timer <= diff)
+ if (ResetTimer <= diff)
{
EnterEvadeMode();
return;
- } else Reset_Timer -= diff;
+ } else ResetTimer -= diff;
}
if (!UpdateVictim())
@@ -316,7 +317,7 @@ public:
## npc_twiggy_flathead
#####*/
-enum eTwiggyFlathead
+enum TwiggyFlathead
{
NPC_BIG_WILL = 6238,
NPC_AFFRAY_CHALLENGER = 6240,
@@ -328,7 +329,7 @@ enum eTwiggyFlathead
SAY_TWIGGY_FLATHEAD_OVER = -1000127,
};
-float AffrayChallengerLoc[6][4]=
+Position const AffrayChallengerLoc[6] =
{
{-1683.0f, -4326.0f, 2.79f, 0.0f},
{-1682.0f, -4329.0f, 2.79f, 0.0f},
@@ -350,15 +351,15 @@ public:
struct npc_twiggy_flatheadAI : public ScriptedAI
{
- npc_twiggy_flatheadAI(Creature* c) : ScriptedAI(c) {}
+ npc_twiggy_flatheadAI(Creature* creature) : ScriptedAI(creature) {}
bool EventInProgress;
bool EventGrate;
bool EventBigWill;
- bool Challenger_down[6];
- uint32 Wave;
- uint32 Wave_Timer;
- uint32 Challenger_checker;
+ bool ChallengerDown[6];
+ uint8 Wave;
+ uint32 WaveTimer;
+ uint32 ChallengerChecker;
uint64 PlayerGUID;
uint64 AffrayChallenger[6];
uint64 BigWill;
@@ -368,15 +369,15 @@ public:
EventInProgress = false;
EventGrate = false;
EventBigWill = false;
- Wave_Timer = 600000;
- Challenger_checker = 0;
+ WaveTimer = 600000;
+ ChallengerChecker = 0;
Wave = 0;
PlayerGUID = 0;
for (uint8 i = 0; i < 6; ++i)
{
AffrayChallenger[i] = 0;
- Challenger_down[i] = false;
+ ChallengerDown[i] = false;
}
BigWill = 0;
}
@@ -385,7 +386,8 @@ public:
void MoveInLineOfSight(Unit* who)
{
- if (!who || (!who->isAlive())) return;
+ if (!who || (!who->isAlive()))
+ return;
if (me->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && CAST_PLR(who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress)
{
@@ -408,40 +410,26 @@ public:
return;
if (!pWarrior->isAlive() && pWarrior->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE) {
- EventInProgress = false;
DoScriptText(SAY_TWIGGY_FLATHEAD_DOWN, me);
pWarrior->FailQuest(1719);
- for (uint8 i = 0; i < 6; ++i)
+ for (uint8 i = 0; i < 6; ++i) // unsummon challengers
{
if (AffrayChallenger[i])
{
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
- if (creature) {
- if (creature->isAlive())
- {
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- creature->setDeathState(JUST_DIED);
- }
- }
+ if (creature && creature->isAlive())
+ creature->DisappearAndDie();
}
- AffrayChallenger[i] = 0;
- Challenger_down[i] = false;
}
- if (BigWill)
+ if (BigWill) // unsummon bigWill
{
Creature* creature = Unit::GetCreature((*me), BigWill);
- if (creature) {
- if (creature->isAlive()) {
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- creature->setDeathState(JUST_DIED);
- }
- }
+ if (creature && creature->isAlive())
+ creature->DisappearAndDie();
}
- BigWill = 0;
+ Reset();
}
if (!EventGrate && EventInProgress)
@@ -451,11 +439,11 @@ public:
if (x >= -1684 && x <= -1674 && y >= -4334 && y <= -4324) {
pWarrior->AreaExploredOrEventHappens(1719);
- DoScriptText(SAY_TWIGGY_FLATHEAD_BEGIN, me);
+ DoScriptText(SAY_TWIGGY_FLATHEAD_BEGIN, me, pWarrior);
for (uint8 i = 0; i < 6; ++i)
{
- Creature* creature = me->SummonCreature(NPC_AFFRAY_CHALLENGER, AffrayChallengerLoc[i][0], AffrayChallengerLoc[i][1], AffrayChallengerLoc[i][2], AffrayChallengerLoc[i][3], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000);
+ Creature* creature = me->SummonCreature(NPC_AFFRAY_CHALLENGER, AffrayChallengerLoc[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000);
if (!creature)
continue;
creature->setFaction(35);
@@ -464,31 +452,31 @@ public:
creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
AffrayChallenger[i] = creature->GetGUID();
}
- Wave_Timer = 5000;
- Challenger_checker = 1000;
+ WaveTimer = 5000;
+ ChallengerChecker = 1000;
EventGrate = true;
}
}
else if (EventInProgress)
{
- if (Challenger_checker <= diff)
+ if (ChallengerChecker <= diff)
{
for (uint8 i = 0; i < 6; ++i)
{
if (AffrayChallenger[i])
{
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
- if ((!creature || (!creature->isAlive())) && !Challenger_down[i])
+ if ((!creature || (!creature->isAlive())) && !ChallengerDown[i])
{
DoScriptText(SAY_TWIGGY_FLATHEAD_DOWN, me);
- Challenger_down[i] = true;
+ ChallengerDown[i] = true;
}
}
}
- Challenger_checker = 1000;
- } else Challenger_checker -= diff;
+ ChallengerChecker = 1000;
+ } else ChallengerChecker -= diff;
- if (Wave_Timer <= diff)
+ if (WaveTimer <= diff)
{
if (Wave < 6 && AffrayChallenger[Wave] && !EventBigWill)
{
@@ -502,7 +490,7 @@ public:
creature->setFaction(14);
creature->AI()->AttackStart(pWarrior);
++Wave;
- Wave_Timer = 20000;
+ WaveTimer = 20000;
}
}
else if (Wave >= 6 && !EventBigWill) {
@@ -514,7 +502,7 @@ public:
creature->GetMotionMaster()->MovePoint(2, -1682, -4329, 2.79f);
creature->HandleEmoteCommand(EMOTE_STATE_READY_UNARMED);
EventBigWill = true;
- Wave_Timer = 1000;
+ WaveTimer = 1000;
}
}
else if (Wave >= 6 && EventBigWill && BigWill)
@@ -523,14 +511,10 @@ public:
if (!creature || !creature->isAlive())
{
DoScriptText(SAY_TWIGGY_FLATHEAD_OVER, me);
- EventInProgress = false;
- EventBigWill = false;
- EventGrate = false;
- PlayerGUID = 0;
- Wave = 0;
+ Reset();
}
}
- } else Wave_Timer -= diff;
+ } else WaveTimer -= diff;
}
}
}
@@ -542,7 +526,7 @@ public:
## npc_wizzlecrank_shredder
#####*/
-enum eEnums_Wizzlecrank
+enum Wizzlecrank
{
SAY_START = -1000298,
SAY_STARTUP1 = -1000299,
@@ -568,14 +552,14 @@ public:
{
npc_wizzlecrank_shredderAI(Creature* creature) : npc_escortAI(creature)
{
- m_bIsPostEvent = false;
- m_uiPostEventTimer = 1000;
- m_uiPostEventCount = 0;
+ IsPostEvent = false;
+ PostEventTimer = 1000;
+ PostEventCount = 0;
}
- bool m_bIsPostEvent;
- uint32 m_uiPostEventTimer;
- uint32 m_uiPostEventCount;
+ bool IsPostEvent;
+ uint32 PostEventTimer;
+ uint32 PostEventCount;
void Reset()
{
@@ -584,48 +568,43 @@ public:
if (me->getStandState() == UNIT_STAND_STATE_DEAD)
me->SetStandState(UNIT_STAND_STATE_STAND);
- m_bIsPostEvent = false;
- m_uiPostEventTimer = 1000;
- m_uiPostEventCount = 0;
+ IsPostEvent = false;
+ PostEventTimer = 1000;
+ PostEventCount = 0;
}
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- if (!player)
- return;
-
- switch (uiPointId)
+ switch (waypointId)
{
- case 0:
- DoScriptText(SAY_STARTUP1, me);
- break;
- case 9:
- SetRun(false);
- break;
- case 17:
- if (Creature* temp = me->SummonCreature(NPC_MERCENARY, 1128.489f, -3037.611f, 92.701f, 1.472f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
- {
- DoScriptText(SAY_MERCENARY, temp);
- me->SummonCreature(NPC_MERCENARY, 1160.172f, -2980.168f, 97.313f, 3.690f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000);
- }
- break;
- case 24:
- m_bIsPostEvent = true;
- break;
+ case 0:
+ DoScriptText(SAY_STARTUP1, me);
+ break;
+ case 9:
+ SetRun(false);
+ break;
+ case 17:
+ if (Creature* temp = me->SummonCreature(NPC_MERCENARY, 1128.489f, -3037.611f, 92.701f, 1.472f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
+ {
+ DoScriptText(SAY_MERCENARY, temp);
+ me->SummonCreature(NPC_MERCENARY, 1160.172f, -2980.168f, 97.313f, 3.690f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000);
+ }
+ break;
+ case 24:
+ IsPostEvent = true;
+ break;
}
}
- void WaypointStart(uint32 uiPointId)
+ void WaypointStart(uint32 PointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (uiPointId)
+ switch (PointId)
{
case 9:
DoScriptText(SAY_STARTUP2, me, player);
@@ -646,15 +625,15 @@ public:
summoned->AI()->AttackStart(me);
}
- void UpdateEscortAI(const uint32 uiDiff)
+ void UpdateEscortAI(const uint32 Diff)
{
if (!UpdateVictim())
{
- if (m_bIsPostEvent)
+ if (IsPostEvent)
{
- if (m_uiPostEventTimer <= uiDiff)
+ if (PostEventTimer <= Diff)
{
- switch (m_uiPostEventCount)
+ switch (PostEventCount)
{
case 0:
DoScriptText(SAY_PROGRESS_2, me);
@@ -674,11 +653,11 @@ public:
break;
}
- ++m_uiPostEventCount;
- m_uiPostEventTimer = 5000;
+ ++PostEventCount;
+ PostEventTimer = 5000;
}
else
- m_uiPostEventTimer -= uiDiff;
+ PostEventTimer -= Diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/thousand_needles.cpp b/src/server/scripts/Kalimdor/thousand_needles.cpp
index 2349b4493ce..b9ae356ddf1 100644
--- a/src/server/scripts/Kalimdor/thousand_needles.cpp
+++ b/src/server/scripts/Kalimdor/thousand_needles.cpp
@@ -32,14 +32,16 @@ npc_enraged_panther
go_panther_cage
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
/*#####
# npc_kanati
######*/
-enum eKanati
+enum Kanati
{
SAY_KAN_START = -1000410,
@@ -47,7 +49,7 @@ enum eKanati
NPC_GALAK_ASS = 10720
};
-const float m_afGalakLoc[]= {-4867.387695f, -1357.353760f, -48.226f };
+Position const GalakLoc = {-4867.387695f, -1357.353760f, -48.226f, 0.0f};
class npc_kanati : public CreatureScript
{
@@ -57,10 +59,9 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
{
if (quest->GetQuestId() == QUEST_PROTECT_KANATI)
- {
if (npc_kanatiAI* pEscortAI = CAST_AI(npc_kanati::npc_kanatiAI, creature->AI()))
pEscortAI->Start(false, false, player->GetGUID(), quest, true);
- }
+
return true;
}
@@ -73,11 +74,11 @@ public:
{
npc_kanatiAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() {}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 0:
DoScriptText(SAY_KAN_START, me);
@@ -93,9 +94,7 @@ public:
void DoSpawnGalak()
{
for (int i = 0; i < 3; ++i)
- me->SummonCreature(NPC_GALAK_ASS,
- m_afGalakLoc[0], m_afGalakLoc[1], m_afGalakLoc[2], 0.0f,
- TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(NPC_GALAK_ASS, GalakLoc, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
}
void JustSummoned(Creature* summoned)
@@ -110,7 +109,7 @@ public:
# npc_lakota_windsong
######*/
-enum eLakota
+enum Lakota
{
SAY_LAKO_START = -1000365,
SAY_LAKO_LOOK_OUT = -1000366,
@@ -127,14 +126,14 @@ enum eLakota
ID_AMBUSH_3 = 4
};
-float m_afBanditLoc[6][6]=
+Position const BanditLoc[6] =
{
- {-4905.479492f, -2062.732666f, 84.352f},
- {-4915.201172f, -2073.528320f, 84.733f},
- {-4878.883301f, -1986.947876f, 91.966f},
- {-4877.503906f, -1966.113403f, 91.859f},
- {-4767.985352f, -1873.169189f, 90.192f},
- {-4788.861328f, -1888.007813f, 89.888f}
+ {-4905.479492f, -2062.732666f, 84.352f, 0.0f},
+ {-4915.201172f, -2073.528320f, 84.733f, 0.0f},
+ {-4878.883301f, -1986.947876f, 91.966f, 0.0f},
+ {-4877.503906f, -1966.113403f, 91.859f, 0.0f},
+ {-4767.985352f, -1873.169189f, 90.192f, 0.0f},
+ {-4788.861328f, -1888.007813f, 89.888f, 0.0f}
};
class npc_lakota_windsong : public CreatureScript
@@ -164,11 +163,11 @@ public:
{
npc_lakota_windsongAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() {}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 8:
DoScriptText(SAY_LAKO_LOOK_OUT, me);
@@ -189,12 +188,10 @@ public:
}
}
- void DoSpawnBandits(int uiAmbushId)
+ void DoSpawnBandits(int AmbushId)
{
for (int i = 0; i < 2; ++i)
- me->SummonCreature(NPC_GRIM_BANDIT,
- m_afBanditLoc[i+uiAmbushId][0], m_afBanditLoc[i+uiAmbushId][1], m_afBanditLoc[i+uiAmbushId][2], 0.0f,
- TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_GRIM_BANDIT, BanditLoc[i+AmbushId], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
}
};
@@ -204,7 +201,7 @@ public:
# npc_paoka_swiftmountain
######*/
-enum ePacka
+enum Packa
{
SAY_START = -1000362,
SAY_WYVERN = -1000363,
@@ -215,11 +212,11 @@ enum ePacka
FACTION_ESCORTEE = 232 //guessed
};
-float m_afWyvernLoc[3][3]=
+Position const WyvernLoc[3] =
{
- {-4990.606f, -906.057f, -5.343f},
- {-4970.241f, -927.378f, -4.951f},
- {-4985.364f, -952.528f, -5.199f}
+ {-4990.606f, -906.057f, -5.343f, 0.0f},
+ {-4970.241f, -927.378f, -4.951f, 0.0f},
+ {-4985.364f, -952.528f, -5.199f, 0.0f}
};
class npc_paoka_swiftmountain : public CreatureScript
@@ -249,11 +246,11 @@ public:
{
npc_paoka_swiftmountainAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() {}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 15:
DoScriptText(SAY_WYVERN, me);
@@ -272,12 +269,9 @@ public:
void DoSpawnWyvern()
{
for (int i = 0; i < 3; ++i)
- me->SummonCreature(NPC_WYVERN,
- m_afWyvernLoc[i][0], m_afWyvernLoc[i][1], m_afWyvernLoc[i][2], 0.0f,
- TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_WYVERN, WyvernLoc[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
}
};
-
};
/*#####
@@ -286,7 +280,7 @@ public:
#define GOSSIP_P "Please tell me the Phrase.."
-enum ePlucky
+enum Plucky
{
FACTION_FRIENDLY = 35,
QUEST_SCOOP = 1950,
@@ -299,10 +293,10 @@ class npc_plucky : public CreatureScript
public:
npc_plucky() : CreatureScript("npc_plucky") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -316,6 +310,7 @@ public:
{
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_P, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+
player->SEND_GOSSIP_MENU(738, creature->GetGUID());
return true;
@@ -328,17 +323,17 @@ public:
struct npc_pluckyAI : public ScriptedAI
{
- npc_pluckyAI(Creature* c) : ScriptedAI(c) { m_uiNormFaction = c->getFaction(); }
+ npc_pluckyAI(Creature* creature) : ScriptedAI(creature) { NormFaction = creature->getFaction(); }
- uint32 m_uiNormFaction;
- uint32 m_uiResetTimer;
+ uint32 NormFaction;
+ uint32 ResetTimer;
void Reset()
{
- m_uiResetTimer = 120000;
+ ResetTimer = 120000;
- if (me->getFaction() != m_uiNormFaction)
- me->setFaction(m_uiNormFaction);
+ if (me->getFaction() != NormFaction)
+ me->setFaction(NormFaction);
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
@@ -346,11 +341,11 @@ public:
DoCast(me, SPELL_PLUCKY_CHICKEN, false);
}
- void ReceiveEmote(Player* player, uint32 uiTextEmote)
+ void ReceiveEmote(Player* player, uint32 TextEmote)
{
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
{
- if (uiTextEmote == TEXT_EMOTE_BECKON)
+ if (TextEmote == TEXT_EMOTE_BECKON)
{
me->setFaction(FACTION_FRIENDLY);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
@@ -358,7 +353,7 @@ public:
}
}
- if (uiTextEmote == TEXT_EMOTE_CHICKEN)
+ if (TextEmote == TEXT_EMOTE_CHICKEN)
{
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
return;
@@ -372,11 +367,11 @@ public:
}
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
{
- if (m_uiResetTimer <= uiDiff)
+ if (ResetTimer <= Diff)
{
if (!me->getVictim())
EnterEvadeMode();
@@ -386,7 +381,7 @@ public:
return;
}
else
- m_uiResetTimer -= uiDiff;
+ ResetTimer -= Diff;
}
if (!UpdateVictim())
@@ -398,7 +393,7 @@ public:
};
-enum ePantherCage
+enum PantherCage
{
ENRAGED_PANTHER = 10992
};
@@ -410,7 +405,6 @@ public:
bool OnGossipHello(Player* player, GameObject* go)
{
-
if (player->GetQuestStatus(5151) == QUEST_STATUS_INCOMPLETE)
{
if (Creature* panther = go->FindNearestCreature(ENRAGED_PANTHER, 5, true))
@@ -421,7 +415,7 @@ public:
}
}
- return true ;
+ return true;
}
};
@@ -437,7 +431,7 @@ public:
struct npc_enraged_pantherAI : public ScriptedAI
{
- npc_enraged_pantherAI(Creature* c) : ScriptedAI(c) {}
+ npc_enraged_pantherAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
diff --git a/src/server/scripts/Kalimdor/thunder_bluff.cpp b/src/server/scripts/Kalimdor/thunder_bluff.cpp
index 67a876c40b2..b8b05b9692f 100644
--- a/src/server/scripts/Kalimdor/thunder_bluff.cpp
+++ b/src/server/scripts/Kalimdor/thunder_bluff.cpp
@@ -23,17 +23,22 @@ SDComment: Quest support: 925
SDCategory: Thunder Bluff
EndScriptData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*#####
# npc_cairne_bloodhoof
######*/
-#define SPELL_BERSERKER_CHARGE 16636
-#define SPELL_CLEAVE 16044
-#define SPELL_MORTAL_STRIKE 16856
-#define SPELL_THUNDERCLAP 23931
-#define SPELL_UPPERCUT 22916
+enum CairneBloodhoof
+{
+ SPELL_BERSERKER_CHARGE = 16636,
+ SPELL_CLEAVE = 16044,
+ SPELL_MORTAL_STRIKE = 16856,
+ SPELL_THUNDERCLAP = 23931,
+ SPELL_UPPERCUT = 22916
+};
#define GOSSIP_HCB "I know this is rather silly but a young ward who is a bit shy would like your hoofprint."
//TODO: verify abilities/timers
@@ -42,10 +47,10 @@ class npc_cairne_bloodhoof : public CreatureScript
public:
npc_cairne_bloodhoof() : CreatureScript("npc_cairne_bloodhoof") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_SENDER_INFO)
+ if (action == GOSSIP_SENDER_INFO)
{
player->CastSpell(player, 23123, false);
player->SEND_GOSSIP_MENU(7014, creature->GetGUID());
@@ -73,21 +78,21 @@ public:
struct npc_cairne_bloodhoofAI : public ScriptedAI
{
- npc_cairne_bloodhoofAI(Creature* c) : ScriptedAI(c) {}
+ npc_cairne_bloodhoofAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 BerserkerCharge_Timer;
- uint32 Cleave_Timer;
- uint32 MortalStrike_Timer;
- uint32 Thunderclap_Timer;
- uint32 Uppercut_Timer;
+ uint32 BerserkerChargeTimer;
+ uint32 CleaveTimer;
+ uint32 MortalStrikeTimer;
+ uint32 ThunderclapTimer;
+ uint32 UppercutTimer;
void Reset()
{
- BerserkerCharge_Timer = 30000;
- Cleave_Timer = 5000;
- MortalStrike_Timer = 10000;
- Thunderclap_Timer = 15000;
- Uppercut_Timer = 10000;
+ BerserkerChargeTimer = 30000;
+ CleaveTimer = 5000;
+ MortalStrikeTimer = 10000;
+ ThunderclapTimer = 15000;
+ UppercutTimer = 10000;
}
void EnterCombat(Unit* /*who*/) {}
@@ -97,37 +102,37 @@ public:
if (!UpdateVictim())
return;
- if (BerserkerCharge_Timer <= diff)
+ if (BerserkerChargeTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (target)
DoCast(target, SPELL_BERSERKER_CHARGE);
- BerserkerCharge_Timer = 25000;
- } else BerserkerCharge_Timer -= diff;
+ BerserkerChargeTimer = 25000;
+ } else BerserkerChargeTimer -= diff;
- if (Uppercut_Timer <= diff)
+ if (UppercutTimer <= diff)
{
DoCast(me->getVictim(), SPELL_UPPERCUT);
- Uppercut_Timer = 20000;
- } else Uppercut_Timer -= diff;
+ UppercutTimer = 20000;
+ } else UppercutTimer -= diff;
- if (Thunderclap_Timer <= diff)
+ if (ThunderclapTimer <= diff)
{
DoCast(me->getVictim(), SPELL_THUNDERCLAP);
- Thunderclap_Timer = 15000;
- } else Thunderclap_Timer -= diff;
+ ThunderclapTimer = 15000;
+ } else ThunderclapTimer -= diff;
- if (MortalStrike_Timer <= diff)
+ if (MortalStrikeTimer <= diff)
{
DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
- MortalStrike_Timer = 15000;
- } else MortalStrike_Timer -= diff;
+ MortalStrikeTimer = 15000;
+ } else MortalStrikeTimer -= diff;
- if (Cleave_Timer <= diff)
+ if (CleaveTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = 7000;
- } else Cleave_Timer -= diff;
+ CleaveTimer = 7000;
+ } else CleaveTimer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Kalimdor/ungoro_crater.cpp b/src/server/scripts/Kalimdor/ungoro_crater.cpp
index 0e2a1b2c4d9..786d2fc0cd3 100644
--- a/src/server/scripts/Kalimdor/ungoro_crater.cpp
+++ b/src/server/scripts/Kalimdor/ungoro_crater.cpp
@@ -28,11 +28,12 @@ npc_a-me
npc_ringo
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
-enum eAMeData
+enum AmeData
{
SAY_READY = -1000517,
SAY_AGGRO1 = -1000518,
@@ -74,45 +75,42 @@ public:
struct npc_ameAI : public npc_escortAI
{
- npc_ameAI(Creature* c) : npc_escortAI(c) {}
+ npc_ameAI(Creature* creature) : npc_escortAI(creature) {}
- uint32 DEMORALIZINGSHOUT_Timer;
+ uint32 DemoralizingShoutTimer;
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- if (!player)
- return;
-
- switch (i)
+ if (Player* player = GetPlayerForEscort())
{
- case 19:
- me->SummonCreature(ENTRY_STOMPER, -6391.69f, -1730.49f, -272.83f, 4.96f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_AGGRO1, me, player);
- break;
- case 28:
- DoScriptText(SAY_SEARCH, me, player);
- break;
- case 38:
- me->SummonCreature(ENTRY_TARLORD, -6370.75f, -1382.84f, -270.51f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_AGGRO2, me, player);
- break;
- case 49:
- me->SummonCreature(ENTRY_TARLORD1, -6324.44f, -1181.05f, -270.17f, 4.34f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_AGGRO3, me, player);
- break;
- case 55:
- DoScriptText(SAY_FINISH, me, player);
- if (player)
+ switch (waypointId)
+ {
+ case 19:
+ me->SummonCreature(ENTRY_STOMPER, -6391.69f, -1730.49f, -272.83f, 4.96f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_AGGRO1, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_SEARCH, me, player);
+ break;
+ case 38:
+ me->SummonCreature(ENTRY_TARLORD, -6370.75f, -1382.84f, -270.51f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_AGGRO2, me, player);
+ break;
+ case 49:
+ me->SummonCreature(ENTRY_TARLORD1, -6324.44f, -1181.05f, -270.17f, 4.34f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_AGGRO3, me, player);
+ break;
+ case 55:
+ DoScriptText(SAY_FINISH, me, player);
player->GroupEventHappens(QUEST_CHASING_AME, me);
- break;
+ break;
+ }
}
}
void Reset()
{
- DEMORALIZINGSHOUT_Timer = 5000;
+ DemoralizingShoutTimer = 5000;
}
void JustSummoned(Creature* summoned)
@@ -132,11 +130,11 @@ public:
if (!UpdateVictim())
return;
- if (DEMORALIZINGSHOUT_Timer <= diff)
+ if (DemoralizingShoutTimer <= diff)
{
DoCast(me->getVictim(), SPELL_DEMORALIZINGSHOUT);
- DEMORALIZINGSHOUT_Timer = 70000;
- } else DEMORALIZINGSHOUT_Timer -= diff;
+ DemoralizingShoutTimer = 70000;
+ } else DemoralizingShoutTimer -= diff;
}
};
};
@@ -145,7 +143,7 @@ public:
# npc_ringo
####*/
-enum eRingo
+enum Ringo
{
SAY_RIN_START_1 = -1000416,
SAY_RIN_START_2 = -1000417,
@@ -203,17 +201,17 @@ public:
{
npc_ringoAI(Creature* creature) : FollowerAI(creature) { }
- uint32 m_uiFaintTimer;
- uint32 m_uiEndEventProgress;
- uint32 m_uiEndEventTimer;
+ uint32 FaintTimer;
+ uint32 EndEventProgress;
+ uint32 EndEventTimer;
uint64 SpraggleGUID;
void Reset()
{
- m_uiFaintTimer = urand(30000, 60000);
- m_uiEndEventProgress = 0;
- m_uiEndEventTimer = 1000;
+ FaintTimer = urand(30000, 60000);
+ EndEventProgress = 0;
+ EndEventTimer = 1000;
SpraggleGUID = 0;
}
@@ -268,13 +266,13 @@ public:
SetFollowPaused(false);
}
- void UpdateFollowerAI(const uint32 uiDiff)
+ void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
{
if (HasFollowState(STATE_FOLLOW_POSTEVENT))
{
- if (m_uiEndEventTimer <= uiDiff)
+ if (EndEventTimer <= Diff)
{
Unit* pSpraggle = Unit::GetUnit(*me, SpraggleGUID);
if (!pSpraggle || !pSpraggle->isAlive())
@@ -283,64 +281,61 @@ public:
return;
}
- switch (m_uiEndEventProgress)
+ switch (EndEventProgress)
{
case 1:
DoScriptText(SAY_RIN_END_1, me);
- m_uiEndEventTimer = 3000;
+ EndEventTimer = 3000;
break;
case 2:
DoScriptText(SAY_SPR_END_2, pSpraggle);
- m_uiEndEventTimer = 5000;
+ EndEventTimer = 5000;
break;
case 3:
DoScriptText(SAY_RIN_END_3, me);
- m_uiEndEventTimer = 1000;
+ EndEventTimer = 1000;
break;
case 4:
DoScriptText(EMOTE_RIN_END_4, me);
SetFaint();
- m_uiEndEventTimer = 9000;
+ EndEventTimer = 9000;
break;
case 5:
DoScriptText(EMOTE_RIN_END_5, me);
ClearFaint();
- m_uiEndEventTimer = 1000;
+ EndEventTimer = 1000;
break;
case 6:
DoScriptText(SAY_RIN_END_6, me);
- m_uiEndEventTimer = 3000;
+ EndEventTimer = 3000;
break;
case 7:
DoScriptText(SAY_SPR_END_7, pSpraggle);
- m_uiEndEventTimer = 10000;
+ EndEventTimer = 10000;
break;
case 8:
DoScriptText(EMOTE_RIN_END_8, me);
- m_uiEndEventTimer = 5000;
+ EndEventTimer = 5000;
break;
case 9:
SetFollowComplete();
break;
}
- ++m_uiEndEventProgress;
+ ++EndEventProgress;
}
else
- m_uiEndEventTimer -= uiDiff;
+ EndEventTimer -= Diff;
}
- else if (HasFollowState(STATE_FOLLOW_INPROGRESS))
+ else if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !HasFollowState(STATE_FOLLOW_PAUSED))
{
- if (!HasFollowState(STATE_FOLLOW_PAUSED))
+ if (FaintTimer <= Diff)
{
- if (m_uiFaintTimer <= uiDiff)
- {
- SetFaint();
- m_uiFaintTimer = urand(60000, 120000);
- }
- else
- m_uiFaintTimer -= uiDiff;
+ SetFaint();
+ FaintTimer = urand(60000, 120000);
}
+ else
+ FaintTimer -= Diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/winterspring.cpp b/src/server/scripts/Kalimdor/winterspring.cpp
index 00bb250d64d..a02156ee110 100644
--- a/src/server/scripts/Kalimdor/winterspring.cpp
+++ b/src/server/scripts/Kalimdor/winterspring.cpp
@@ -29,7 +29,9 @@ npc_rivern_frostwind
npc_witch_doctor_mauari
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## npc_lorax
@@ -48,10 +50,10 @@ class npc_lorax : public CreatureScript
public:
npc_lorax() : CreatureScript("npc_lorax") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SL1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -105,10 +107,10 @@ class npc_rivern_frostwind : public CreatureScript
public:
npc_rivern_frostwind() : CreatureScript("npc_rivern_frostwind") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -140,10 +142,10 @@ class npc_witch_doctor_mauari : public CreatureScript
public:
npc_witch_doctor_mauari() : CreatureScript("npc_witch_doctor_mauari") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, 16351, false);
@@ -161,12 +163,12 @@ public:
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HWDM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(3377, creature->GetGUID());
- }else
+ }
+ else
player->SEND_GOSSIP_MENU(3375, creature->GetGUID());
return true;
}
-
};
void AddSC_winterspring()
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
index b16ad9934d8..8f34fa56525 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
@@ -48,9 +48,9 @@ public:
struct boss_amanitarAI : public ScriptedAI
{
- boss_amanitarAI(Creature* c) : ScriptedAI(c)
+ boss_amanitarAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
bFirstTime = true;
}
@@ -83,7 +83,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -167,7 +167,7 @@ public:
struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI
{
- mob_amanitar_mushroomsAI(Creature* c) : Scripted_NoMovementAI(c) {}
+ mob_amanitar_mushroomsAI(Creature* creature) : Scripted_NoMovementAI(creature) {}
uint32 uiAuraTimer;
uint32 uiDeathTimer;
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 85abaa46a5d..ea757e86f4d 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
@@ -105,7 +105,7 @@ class boss_elder_nadox : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_SLAY_3, me); //SAY_SLAY_3 on death?
@@ -229,7 +229,7 @@ class mob_ahnkahar_nerubian : public CreatureScript
uiSprintTimer = 10000;
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (me->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY)
if (Creature* Nadox = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ELDER_NADOX)))
@@ -278,10 +278,10 @@ public:
struct mob_nadox_eggsAI : public Scripted_NoMovementAI
{
- mob_nadox_eggsAI(Creature* c) : Scripted_NoMovementAI(c)
+ mob_nadox_eggsAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
- c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
- c->UpdateAllStats();
+ creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
+ creature->UpdateAllStats();
}
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
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 2789bc48a4c..d6e50097765 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -73,9 +73,9 @@ public:
struct boss_jedoga_shadowseekerAI : public ScriptedAI
{
- boss_jedoga_shadowseekerAI(Creature* c) : ScriptedAI(c)
+ boss_jedoga_shadowseekerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
bFirstTime = true;
bPreDone = false;
}
@@ -149,7 +149,7 @@ public:
DoScriptText(RAND(TEXT_SLAY_1, TEXT_SLAY_2, TEXT_SLAY_3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(TEXT_DEATH, me);
if (instance)
@@ -355,9 +355,9 @@ public:
struct mob_jedoga_initiandAI : public ScriptedAI
{
- mob_jedoga_initiandAI(Creature* c) : ScriptedAI(c)
+ mob_jedoga_initiandAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -390,9 +390,9 @@ public:
}
}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
- if (!Killer || !instance)
+ if (!killer || !instance)
return;
if (bWalking)
@@ -402,7 +402,7 @@ public:
if (!CAST_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok)
CAST_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true;
- if (Killer->GetTypeId() == TYPEID_PLAYER)
+ if (killer->GetTypeId() == TYPEID_PLAYER)
boss->AI()->DoAction(ACTION_INITIAND_KILLED);
}
@@ -410,8 +410,8 @@ public:
bWalking = false;
}
- if (Killer->GetTypeId() == TYPEID_PLAYER)
- instance->SetData64(DATA_PL_JEDOGA_TARGET, Killer->GetGUID());
+ if (killer->GetTypeId() == TYPEID_PLAYER)
+ instance->SetData64(DATA_PL_JEDOGA_TARGET, killer->GetGUID());
}
void EnterCombat(Unit* who)
@@ -531,9 +531,9 @@ public:
struct npc_jedogas_aufseher_triggerAI : public Scripted_NoMovementAI
{
- npc_jedogas_aufseher_triggerAI(Creature* c) : Scripted_NoMovementAI(c)
+ npc_jedogas_aufseher_triggerAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
bRemoved = false;
bRemoved2 = false;
bCasted = false;
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index 0f4b046f7d5..cf3c4274e48 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -36,7 +36,8 @@ enum Spells
SPELL_VANISH = 55964,
CREATURE_FLAME_SPHERE = 30106,
H_CREATURE_FLAME_SPHERE_1 = 31686,
- H_CREATURE_FLAME_SPHERE_2 = 31687
+ H_CREATURE_FLAME_SPHERE_2 = 31687,
+ SPELL_HOVER_FALL = 60425
};
enum Misc
{
@@ -45,18 +46,17 @@ enum Misc
DATA_SPHERE_DISTANCE = 15
};
#define DATA_SPHERE_ANGLE_OFFSET 0.7f
-#define DATA_GROUND_POSITION_Z 11.4f
+#define DATA_GROUND_POSITION_Z 11.30809f
enum Yells
{
- SAY_AGGRO = -1619021,
- SAY_SLAY_1 = -1619022,
- SAY_SLAY_2 = -1619023,
- SAY_DEATH = -1619024,
- SAY_FEED_1 = -1619025,
- SAY_FEED_2 = -1619026,
- SAY_VANISH_1 = -1619027,
- SAY_VANISH_2 = -1619028
+ SAY_1 = 0,
+ SAY_WARNING = 1,
+ SAY_AGGRO = 2,
+ SAY_SLAY = 3,
+ SAY_DEATH = 4,
+ SAY_FEED = 5,
+ SAY_VANISH = 6,
};
enum CombatPhase
{
@@ -79,11 +79,10 @@ public:
struct boss_taldaramAI : public ScriptedAI
{
- boss_taldaramAI(Creature* c) : ScriptedAI(c)
+ boss_taldaramAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ instance = creature->GetInstanceScript();
+ me->SetDisableGravity(true);
}
uint32 uiBloodthirstTimer;
@@ -118,7 +117,7 @@ public:
{
if (instance)
instance->SetData(DATA_PRINCE_TALDARAM_EVENT, IN_PROGRESS);
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
@@ -180,7 +179,8 @@ public:
break;
case VANISHED:
if (Unit* pEmbraceTarget = GetEmbraceTarget())
- DoCast(pEmbraceTarget, SPELL_EMBRACE_OF_THE_VAMPYR);
+ DoCast(pEmbraceTarget, DUNGEON_MODE(SPELL_EMBRACE_OF_THE_VAMPYR, H_SPELL_EMBRACE_OF_THE_VAMPYR));
+ Talk(SAY_FEED);
me->GetMotionMaster()->Clear();
me->SetSpeed(MOVE_WALK, 1.0f, true);
me->GetMotionMaster()->MoveChase(me->getVictim());
@@ -201,7 +201,8 @@ public:
if (uiFlamesphereTimer <= diff)
{
- DoCast(me, SPELL_CONJURE_FLAME_SPHERE);
+ // because TARGET_UNIT_TARGET_ENEMY we need a target selected to cast
+ DoCastVictim(SPELL_CONJURE_FLAME_SPHERE);
Phase = CASTING_FLAME_SPHERES;
uiPhaseTimer = 3*IN_MILLISECONDS + diff;
uiFlamesphereTimer = 15*IN_MILLISECONDS;
@@ -224,7 +225,7 @@ public:
//He only vanishes if there are 3 or more alive players
if (target_list.size() > 2)
{
- DoScriptText(RAND(SAY_VANISH_1, SAY_VANISH_2), me);
+ Talk(SAY_VANISH);
DoCast(me, SPELL_VANISH);
Phase = JUST_VANISHED;
uiPhaseTimer = 500;
@@ -260,7 +261,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_PRINCE_TALDARAM_EVENT, DONE);
@@ -278,7 +279,7 @@ public:
uiPhaseTimer = 0;
uiEmbraceTarget = 0;
}
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
+ Talk(SAY_SLAY);
}
bool CheckSpheres()
@@ -314,12 +315,13 @@ public:
{
if (!instance)
return;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveAurasDueToSpell(SPELL_BEAM_VISUAL);
- me->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), DATA_GROUND_POSITION_Z, me->GetOrientation());
+ DoCast(SPELL_HOVER_FALL);
+ me->SetDisableGravity(false);
+ me->GetMotionMaster()->MovePoint(0, me->GetHomePosition());
+ Talk(SAY_WARNING);
uint64 prison_GUID = instance->GetData64(DATA_PRINCE_TALDARAM_PLATFORM);
instance->HandleGameObject(prison_GUID, true);
}
@@ -338,9 +340,9 @@ public:
struct mob_taldaram_flamesphereAI : public ScriptedAI
{
- mob_taldaram_flamesphereAI(Creature* c) : ScriptedAI(c)
+ mob_taldaram_flamesphereAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiDespawnTimer;
@@ -349,9 +351,10 @@ public:
void Reset()
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
me->AddUnitMovementFlag(MOVEMENTFLAG_FLYING);
me->setFaction(16);
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.0f);
+ me->SetObjectScale(1.0f);
DoCast(me, SPELL_FLAME_SPHERE_VISUAL);
DoCast(me, SPELL_FLAME_SPHERE_SPAWN_EFFECT);
DoCast(me, SPELL_FLAME_SPHERE_PERIODIC);
@@ -361,7 +364,7 @@ public:
void EnterCombat(Unit* /*who*/) {}
void MoveInLineOfSight(Unit* /*who*/) {}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoCast(me, SPELL_FLAME_SPHERE_DEATH_EFFECT);
}
@@ -386,21 +389,30 @@ class prince_taldaram_sphere : public GameObjectScript
public:
prince_taldaram_sphere() : GameObjectScript("prince_taldaram_sphere") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- InstanceScript* instance = pGO->GetInstanceScript();
+ InstanceScript* instance = go->GetInstanceScript();
+ if (!instance)
+ return true;
- Creature* pPrinceTaldaram = Unit::GetCreature(*pGO, instance ? instance->GetData64(DATA_PRINCE_TALDARAM) : 0);
+ Creature* pPrinceTaldaram = Unit::GetCreature(*go, instance->GetData64(DATA_PRINCE_TALDARAM));
if (pPrinceTaldaram && pPrinceTaldaram->isAlive())
{
// maybe these are hacks :(
- pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- pGO->SetGoState(GO_STATE_ACTIVE);
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ go->SetGoState(GO_STATE_ACTIVE);
- switch (pGO->GetEntry())
+ switch (go->GetEntry())
{
- case GO_SPHERE1: instance->SetData(DATA_SPHERE1_EVENT, IN_PROGRESS); break;
- case GO_SPHERE2: instance->SetData(DATA_SPHERE2_EVENT, IN_PROGRESS); break;
+ case GO_SPHERE1:
+ instance->SetData(DATA_SPHERE1_EVENT, IN_PROGRESS);
+ pPrinceTaldaram->AI()->Talk(SAY_1);
+ break;
+
+ case GO_SPHERE2:
+ instance->SetData(DATA_SPHERE2_EVENT, IN_PROGRESS);
+ pPrinceTaldaram->AI()->Talk(SAY_1);
+ break;
}
CAST_AI(boss_taldaram::boss_taldaramAI, pPrinceTaldaram->AI())->CheckSpheres();
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
index 3ae78d4053b..74643e58e30 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp
@@ -87,7 +87,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -109,26 +110,37 @@ public:
{
switch (go->GetEntry())
{
- case 193564: Prince_TaldaramPlatform = go->GetGUID();
- if (m_auiEncounter[1] == DONE) HandleGameObject(0, true, go); break;
- case 193093: Prince_TaldaramSpheres[0] = go->GetGUID();
+ case 193564:
+ Prince_TaldaramPlatform = go->GetGUID();
+ if (m_auiEncounter[1] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 193093:
+ Prince_TaldaramSpheres[0] = go->GetGUID();
if (spheres[0] == IN_PROGRESS)
{
go->SetGoState(GO_STATE_ACTIVE);
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
- else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ else
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
- case 193094: Prince_TaldaramSpheres[1] = go->GetGUID();
+ case 193094:
+ Prince_TaldaramSpheres[1] = go->GetGUID();
if (spheres[1] == IN_PROGRESS)
{
go->SetGoState(GO_STATE_ACTIVE);
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
}
- else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ else
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ break;
+ case 192236:
+ Prince_TaldaramGate = go->GetGUID(); // Web gate past Prince Taldaram
+ if (m_auiEncounter[1] == DONE)
+ HandleGameObject(0, true, go);
break;
- case 192236: Prince_TaldaramGate = go->GetGUID(); // Web gate past Prince Taldaram
- if (m_auiEncounter[1] == DONE)HandleGameObject(0, true, go);break;
}
}
@@ -136,8 +148,13 @@ public:
{
switch (idx)
{
- case DATA_ADD_JEDOGA_OPFER: JedogaSacrifices = guid; break;
- case DATA_PL_JEDOGA_TARGET: JedogaTarget = guid; break;
+ case DATA_ADD_JEDOGA_OPFER:
+ JedogaSacrifices = guid;
+ break;
+
+ case DATA_PL_JEDOGA_TARGET:
+ JedogaTarget = guid;
+ break;
}
}
@@ -178,7 +195,9 @@ public:
{
switch (type)
{
- case DATA_ELDER_NADOX_EVENT: m_auiEncounter[0] = data; break;
+ case DATA_ELDER_NADOX_EVENT:
+ m_auiEncounter[0] = data;
+ break;
case DATA_PRINCE_TALDARAM_EVENT:
if (data == DONE)
HandleGameObject(Prince_TaldaramGate, true);
@@ -200,11 +219,21 @@ public:
}
}
break;
- case DATA_HERALD_VOLAZJ_EVENT: m_auiEncounter[3] = data; break;
- case DATA_AMANITAR_EVENT: m_auiEncounter[4] = data; break;
- case DATA_SPHERE1_EVENT: spheres[0] = data; break;
- case DATA_SPHERE2_EVENT: spheres[1] = data; break;
- case DATA_JEDOGA_TRIGGER_SWITCH: switchtrigger = data; break;
+ case DATA_HERALD_VOLAZJ_EVENT:
+ m_auiEncounter[3] = data;
+ break;
+ case DATA_AMANITAR_EVENT:
+ m_auiEncounter[4] = data;
+ break;
+ case DATA_SPHERE1_EVENT:
+ spheres[0] = data;
+ break;
+ case DATA_SPHERE2_EVENT:
+ spheres[1] = data;
+ break;
+ case DATA_JEDOGA_TRIGGER_SWITCH:
+ switchtrigger = data;
+ break;
case DATA_JEDOGA_RESET_INITIANDS:
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
@@ -236,7 +265,8 @@ public:
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
Creature* cr = instance->GetCreature(*itr);
- if (!cr || (cr && cr->isAlive())) return 0;
+ if (!cr || (cr && cr->isAlive()))
+ return 0;
}
return 1;
case DATA_JEDOGA_TRIGGER_SWITCH: return switchtrigger;
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
index 79a102c803f..ca71d8c313e 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
@@ -267,7 +267,7 @@ public:
}
} else DatterTimer -= diff;
- if(me->HasAura(SPELL_LEECHING_SWARM))
+ if (me->HasAura(SPELL_LEECHING_SWARM))
me->RemoveAurasDueToSpell(SPELL_LEECHING_SWARM);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index da629fd45e9..6587631f249 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -51,9 +51,9 @@ public:
struct boss_hadronoxAI : public ScriptedAI
{
- boss_hadronoxAI(Creature* c) : ScriptedAI(c)
+ boss_hadronoxAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
fMaxDistance = 50.0f;
bFirstTime = true;
}
@@ -99,7 +99,7 @@ public:
me->ModifyHealth(int32(me->CountPctFromMaxHealth(10)));
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_HADRONOX_EVENT, DONE);
@@ -136,7 +136,8 @@ public:
void UpdateAI(const uint32 diff)
{
//Return since we have no target
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
// Without he comes up through the air to players on the bridge after krikthir if players crossing this bridge!
CheckDistance(fMaxDistance, diff);
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
index 878e1f7555f..4d83be53c93 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
@@ -94,9 +94,9 @@ public:
struct boss_krik_thirAI : public ScriptedAI
{
- boss_krik_thirAI(Creature* c) : ScriptedAI(c)
+ boss_krik_thirAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -212,7 +212,7 @@ public:
struct npc_skittering_infectorAI : public ScriptedAI
{
- npc_skittering_infectorAI(Creature* c) : ScriptedAI(c) {}
+ npc_skittering_infectorAI(Creature* creature) : ScriptedAI(creature) {}
void JustDied(Unit* /*killer*/)
{
@@ -234,7 +234,7 @@ public:
struct npc_anub_ar_skirmisherAI : public ScriptedAI
{
- npc_anub_ar_skirmisherAI(Creature* c) : ScriptedAI(c) {}
+ npc_anub_ar_skirmisherAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiChargeTimer;
uint32 uiBackstabTimer;
@@ -285,7 +285,7 @@ public:
struct npc_anub_ar_shadowcasterAI : public ScriptedAI
{
- npc_anub_ar_shadowcasterAI(Creature* c) : ScriptedAI(c) {}
+ npc_anub_ar_shadowcasterAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiShadowBoltTimer;
uint32 uiShadowNovaTimer;
@@ -331,7 +331,7 @@ public:
struct npc_anub_ar_warriorAI : public ScriptedAI
{
- npc_anub_ar_warriorAI(Creature* c) : ScriptedAI(c){}
+ npc_anub_ar_warriorAI(Creature* creature) : ScriptedAI(creature){}
uint32 uiCleaveTimer;
uint32 uiStrikeTimer;
@@ -376,7 +376,7 @@ public:
struct npc_watcher_gashraAI : public ScriptedAI
{
- npc_watcher_gashraAI(Creature* c) : ScriptedAI(c) {}
+ npc_watcher_gashraAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiWebWrapTimer;
uint32 uiInfectedBiteTimer;
@@ -427,7 +427,7 @@ public:
struct npc_watcher_narjilAI : public ScriptedAI
{
- npc_watcher_narjilAI(Creature* c) : ScriptedAI(c) {}
+ npc_watcher_narjilAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiWebWrapTimer;
uint32 uiInfectedBiteTimer;
@@ -481,7 +481,7 @@ public:
struct npc_watcher_silthikAI : public ScriptedAI
{
- npc_watcher_silthikAI(Creature* c) : ScriptedAI(c) {}
+ npc_watcher_silthikAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiWebWrapTimer;
uint32 uiInfectedBiteTimer;
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 e00db5d6494..12622174e29 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
@@ -64,7 +64,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (auiEncounter[i] == IN_PROGRESS) return true;
+ if (auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
diff --git a/src/server/scripts/Northrend/CMakeLists.txt b/src/server/scripts/Northrend/CMakeLists.txt
index 53b47884e57..3502e7fb104 100644
--- a/src/server/scripts/Northrend/CMakeLists.txt
+++ b/src/server/scripts/Northrend/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
@@ -22,7 +22,7 @@ set(scripts_STAT_SRCS
Northrend/Ulduar/Ulduar/ulduar_teleporter.cpp
Northrend/Ulduar/Ulduar/boss_thorim.cpp
Northrend/Ulduar/Ulduar/boss_ignis.cpp
- Northrend/Ulduar/Ulduar/boss_algalon.cpp
+ Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
Northrend/Ulduar/Ulduar/instance_ulduar.cpp
Northrend/Ulduar/Ulduar/boss_auriaya.cpp
Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
index 3e9d8144c19..b115a4ee827 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
@@ -480,7 +480,7 @@ public:
if (temp->isAlive() && !temp->getVictim())
{
if (temp->HasUnitMovementFlag(MOVEMENTFLAG_WALKING))
- temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ temp->SetWalk(false);
if (temp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -926,9 +926,7 @@ struct dummy_dragonAI : public ScriptedAI
if (instance && instance->GetData(TYPE_SARTHARION_EVENT) != IN_PROGRESS)
instance->SetData(TYPE_SHADRON_PREKILLED, 1);
if (Creature* pAcolyte = me->FindNearestCreature(NPC_ACOLYTE_OF_SHADRON, 100.0f))
- {
pAcolyte->Kill(pAcolyte);
- }
break;
case NPC_VESPERON:
iTextId = SAY_VESPERON_DEATH;
@@ -936,9 +934,7 @@ struct dummy_dragonAI : public ScriptedAI
if (instance && instance->GetData(TYPE_SARTHARION_EVENT) != IN_PROGRESS)
instance->SetData(TYPE_VESPERON_PREKILLED, 1);
if (Creature* pAcolyte = me->FindNearestCreature(NPC_ACOLYTE_OF_VESPERON, 100.0f))
- {
pAcolyte->Kill(pAcolyte);
- }
break;
}
@@ -955,7 +951,7 @@ struct dummy_dragonAI : public ScriptedAI
return;
// Twilight Revenge to main boss
- if (Unit* pSartharion = Unit::GetUnit((*me), instance->GetData64(DATA_SARTHARION)))
+ if (Unit* pSartharion = Unit::GetUnit(*me, instance->GetData64(DATA_SARTHARION)))
if (pSartharion->isAlive())
{
pSartharion->RemoveAurasDueToSpell(uiSpellId);
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
index f41522f844d..b2cf755c7af 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
@@ -227,9 +227,9 @@ class npc_onyx_flamecaller : public CreatureScript
zarithrian->AI()->JustSummoned(me);
}
- void WaypointReached(uint32 pointId)
+ void WaypointReached(uint32 waypointId)
{
- if (pointId == MAX_PATH_FLAMECALLER_WAYPOINTS || pointId == MAX_PATH_FLAMECALLER_WAYPOINTS*2)
+ if (waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS || waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS*2)
{
DoZoneInCombat();
SetEscortPaused(true);
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
index 78810e27b05..4e5e01cc745 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
@@ -105,8 +105,8 @@ class boss_saviana_ragefire : public CreatureScript
Talk(SAY_CONFLAGRATION);
break;
case POINT_LAND:
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
me->SetReactState(REACT_AGGRESSIVE);
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
me->GetMotionMaster()->MovementExpired();
@@ -120,8 +120,8 @@ class boss_saviana_ragefire : public CreatureScript
void JustReachedHome()
{
_JustReachedHome();
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
}
void KilledUnit(Unit* victim)
@@ -146,8 +146,8 @@ class boss_saviana_ragefire : public CreatureScript
{
case EVENT_FLIGHT:
{
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(true);
+ me->SetDisableGravity(true);
me->SetReactState(REACT_PASSIVE);
me->GetMotionMaster()->MovePoint(POINT_FLIGHT, SavianaRagefireFlyPos);
events.ScheduleEvent(EVENT_FLIGHT, 50000);
@@ -206,7 +206,7 @@ class spell_saviana_conflagration_init : public SpellScriptLoader
unitList.remove_if (ConflagrationTargetSelector());
uint8 maxSize = uint8(GetCaster()->GetMap()->GetSpawnMode() & 1 ? 6 : 3);
if (unitList.size() > maxSize)
- Trinity::RandomResizeList(unitList, maxSize);
+ Trinity::Containers::RandomResizeList(unitList, maxSize);
}
void HandleDummy(SpellEffIndex effIndex)
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
index cfbbb79c5f6..19ae66b6a60 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
@@ -71,7 +71,7 @@ class npc_xerestrasza : public CreatureScript
_isIntro = false;
Talk(SAY_XERESTRASZA_EVENT);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(0, xerestraszaMovePos);
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_1, 16000);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
index 19ed96e8885..305266ee628 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
@@ -414,8 +414,8 @@ public:
void JustDied(Unit* /*killer*/)
{
- if (me->isSummon())
- if (Unit* summoner = me->ToTempSummon()->GetSummoner())
+ if (TempSummon* summ = me->ToTempSummon())
+ if (Unit* summoner = summ->GetSummoner())
if (summoner->isAlive())
summoner->GetAI()->SetData(1, 0);
}
@@ -447,9 +447,9 @@ public:
uint8 uiWaypoint;
- void WaypointReached(uint32 uiPoint)
+ void WaypointReached(uint32 waypointId)
{
- if (uiPoint == 0)
+ if (waypointId == 0)
{
switch (uiWaypoint)
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
index 0848d1e9524..9768b50b214 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
@@ -356,7 +356,7 @@ public:
Start(false, true, 0, NULL);
}
- void WaypointReached(uint32 /*i*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
}
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 9fcfcfa47e5..18c972b966c 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
@@ -203,17 +203,19 @@ public:
Start(false, true, 0, NULL);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ if (!instance)
+ return;
+
+ switch (waypointId)
{
case 2:
- if ((instance && uiWaypointPath == 3) || uiWaypointPath == 2)
+ if (uiWaypointPath == 3 || uiWaypointPath == 2)
instance->SetData(DATA_MOVEMENT_DONE, instance->GetData(DATA_MOVEMENT_DONE)+1);
break;
case 3:
- if (instance)
- instance->SetData(DATA_MOVEMENT_DONE, instance->GetData(DATA_MOVEMENT_DONE)+1);
+ instance->SetData(DATA_MOVEMENT_DONE, instance->GetData(DATA_MOVEMENT_DONE)+1);
break;
}
}
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 c17ea7411a0..c8236ace88c 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
@@ -125,8 +125,8 @@ public:
break;
case DATA_IN_POSITION: //movement done.
me->GetMotionMaster()->MovePoint(1, 735.81f, 661.92f, 412.39f);
- if (GameObject* pGO = GameObject::GetGameObject(*me, instance->GetData64(DATA_MAIN_GATE)))
- instance->HandleGameObject(pGO->GetGUID(), false);
+ if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_MAIN_GATE)))
+ instance->HandleGameObject(go->GetGUID(), false);
NextStep(10000, false, 3);
break;
case DATA_LESSER_CHAMPIONS_DEFEATED:
@@ -488,10 +488,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
CAST_AI(npc_announcer_toc5::npc_announcer_toc5AI, creature->AI())->StartEncounter();
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 a9e41d90899..e4dcf978574 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -104,7 +104,7 @@ enum BossSpells
SPELL_SPIKE_TELE = 66170,
};
-#define SPELL_PERMAFROST_HELPER RAID_MODE<uint32>(66193, 67856, 67855, 67857)
+#define SPELL_PERMAFROST_HELPER RAID_MODE<uint32>(66193, 67855, 67856, 67857)
enum SummonActions
{
@@ -141,10 +141,10 @@ public:
{
boss_anubarak_trialAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
std::list<uint64> m_vBurrowGUID;
@@ -195,8 +195,8 @@ public:
if (who->GetTypeId() == TYPEID_PLAYER)
{
DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me);
- if (m_instance)
- m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
}
@@ -211,8 +211,8 @@ public:
void JustReachedHome()
{
- if (m_instance)
- m_instance->SetData(TYPE_ANUBARAK, FAIL);
+ 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()))
@@ -223,8 +223,8 @@ public:
{
Summons.DespawnAll();
DoScriptText(SAY_DEATH, me);
- if (m_instance)
- m_instance->SetData(TYPE_ANUBARAK, DONE);
+ if (instance)
+ instance->SetData(TYPE_ANUBARAK, DONE);
}
void JustSummoned(Creature* summoned)
@@ -260,10 +260,11 @@ public:
DoScriptText(SAY_AGGRO, me);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetInCombatWithZone();
- if (m_instance)
- m_instance->SetData(TYPE_ANUBARAK, IN_PROGRESS);
+ if (instance)
+ instance->SetData(TYPE_ANUBARAK, IN_PROGRESS);
//Despawn Scarab Swarms neutral
- Summons.DoAction(NPC_SCARAB, ACTION_SCARAB_SUBMERGE);
+ 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]);
@@ -278,6 +279,9 @@ public:
if (!UpdateVictim())
return;
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
switch (m_uiStage)
{
case 0:
@@ -301,7 +305,8 @@ public:
if (IsHeroic() && m_uiNerubianShadowStrikeTimer <= uiDiff)
{
- Summons.DoAction(NPC_BURROWER, ACTION_SHADOW_STRIKE);
+ EntryCheckPredicate pred(NPC_BURROWER);
+ Summons.DoAction(ACTION_SHADOW_STRIKE, pred);
m_uiNerubianShadowStrikeTimer = 30*IN_MILLISECONDS;
} else m_uiNerubianShadowStrikeTimer -= uiDiff;
@@ -426,10 +431,10 @@ public:
{
mob_swarm_scarabAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiDeterminationTimer;
@@ -493,10 +498,10 @@ public:
{
mob_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiSpiderFrenzyTimer;
uint32 m_uiSubmergeTimer;
@@ -571,8 +576,11 @@ class mob_frost_sphere : public CreatureScript
{
_isFalling = false;
me->SetReactState(REACT_PASSIVE);
- me->SetFlying(true);
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ //! Confirmed sniff 3.3.5.a
+ me->SetDisableGravity(true);
+ me->SetByteValue(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
+ //! end
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
me->SetSpeed(MOVE_RUN, 0.5f, false);
me->GetMotionMaster()->MoveRandom(20.0f);
DoCast(SPELL_FROST_SPHERE);
@@ -604,10 +612,10 @@ class mob_frost_sphere : public CreatureScript
{
case POINT_FALL_GROUND:
me->RemoveAurasDueToSpell(SPELL_FROST_SPHERE);
- me->SetDisplayId(me->GetCreatureInfo()->Modelid1);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
DoCast(SPELL_PERMAFROST_VISUAL);
DoCast(SPELL_PERMAFROST);
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, 2.0f);
+ me->SetObjectScale(2.0f);
break;
}
}
@@ -636,10 +644,10 @@ public:
{
mob_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiIncreaseSpeedTimer;
uint8 m_uiSpeed;
uint64 m_uiTargetGUID;
@@ -651,6 +659,11 @@ public:
m_uiTargetGUID = 0;
}
+ bool CanAIAttack(Unit const* victim) const
+ {
+ return victim->GetTypeId() == TYPEID_PLAYER;
+ }
+
void EnterCombat(Unit* who)
{
m_uiTargetGUID = who->GetGUID();
@@ -671,7 +684,7 @@ public:
Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID);
if (!target || !target->isAlive() || !target->HasAura(SPELL_MARK))
{
- if (Creature* pAnubarak = Unit::GetCreature((*me), m_instance->GetData64(NPC_ANUBARAK)))
+ if (Creature* pAnubarak = Unit::GetCreature((*me), instance->GetData64(NPC_ANUBARAK)))
pAnubarak->CastSpell(pAnubarak, SPELL_SPIKE_TELE, false);
me->DisappearAndDie();
return;
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 2fe0bd3f397..79bbb470edf 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -64,10 +64,10 @@ public:
{
boss_toc_champion_controllerAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = (InstanceScript*) creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
uint32 m_uiChampionsNotStarted;
uint32 m_uiChampionsFailed;
@@ -101,7 +101,7 @@ public:
vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARRIOR : NPC_ALLIANCE_WARRIOR);
uint8 healersSubtracted = 2;
- if (m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL || m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
+ if (instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL || instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
healersSubtracted = 1;
for (uint8 i = 0; i < healersSubtracted; ++i)
{
@@ -136,7 +136,7 @@ public:
vHealersEntries.erase(vHealersEntries.begin()+pos);
}
- if (m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_NORMAL || m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)
+ 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));
@@ -214,7 +214,7 @@ public:
m_uiChampionsFailed++;
if (m_uiChampionsFailed + m_uiChampionsKilled >= Summons.size())
{
- m_instance->SetData(TYPE_CRUSADERS, FAIL);
+ instance->SetData(TYPE_CRUSADERS, FAIL);
Summons.DespawnAll();
me->DespawnOrUnsummon();
}
@@ -227,16 +227,16 @@ public:
m_uiChampionsKilled = 0;
m_bInProgress = true;
Summons.DoZoneInCombat();
- m_instance->SetData(TYPE_CRUSADERS, IN_PROGRESS);
+ instance->SetData(TYPE_CRUSADERS, IN_PROGRESS);
}
break;
case DONE:
m_uiChampionsKilled++;
if (m_uiChampionsKilled == 1)
- m_instance->SetData(TYPE_CRUSADERS, SPECIAL);
+ instance->SetData(TYPE_CRUSADERS, SPECIAL);
else if (m_uiChampionsKilled >= Summons.size())
{
- m_instance->SetData(TYPE_CRUSADERS, DONE);
+ instance->SetData(TYPE_CRUSADERS, DONE);
Summons.DespawnAll();
me->DespawnOrUnsummon();
}
@@ -253,11 +253,11 @@ struct boss_faction_championsAI : public ScriptedAI
{
boss_faction_championsAI(Creature* creature, uint32 aitype) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*) creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
mAIType = aitype;
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint64 championControllerGUID;
uint32 mAIType;
@@ -273,8 +273,8 @@ struct boss_faction_championsAI : public ScriptedAI
void JustReachedHome()
{
- if (m_instance)
- if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
+ if (instance)
+ if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, FAIL);
me->DespawnOrUnsummon();
}
@@ -292,7 +292,7 @@ struct boss_faction_championsAI : public ScriptedAI
std::list<HostileReference*> const& tList = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator itr = tList.begin(); itr != tList.end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && me->getThreatManager().getThreat(unit))
{
if (unit->GetTypeId()==TYPEID_PLAYER)
@@ -326,8 +326,8 @@ struct boss_faction_championsAI : public ScriptedAI
void JustDied(Unit* /*killer*/)
{
if (mAIType != AI_PET)
- if (m_instance)
- if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
+ if (instance)
+ if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, DONE);
}
@@ -335,8 +335,8 @@ struct boss_faction_championsAI : public ScriptedAI
{
DoCast(me, SPELL_ANTI_AOE, true);
me->SetInCombatWithZone();
- if (m_instance)
- if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
+ if (instance)
+ if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, IN_PROGRESS);
}
@@ -351,18 +351,18 @@ struct boss_faction_championsAI : public ScriptedAI
if (Player* player = players.begin()->getSource())
TeamInInstance = player->GetTeam();
- if (m_instance)
+ if (instance)
{
if (TeamInInstance == ALLIANCE)
{
- if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_VARIAN)))
+ if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_VARIAN)))
DoScriptText(SAY_VARIAN_KILL_HORDE_PLAYER4+urand(0, 3), temp); // + cause we are on negative
}
else
if (Creature* temp = me->FindNearestCreature(NPC_GARROSH, 300.f))
DoScriptText(SAY_GARROSH_KILL_ALLIANCE_PLAYER4+urand(0, 3), temp); // + cause we are on negative
- m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
}
}
@@ -384,7 +384,7 @@ struct boss_faction_championsAI : public ScriptedAI
Unit* target;
for (iter = tList.begin(); iter!=tList.end(); ++iter)
{
- target = Unit::GetUnit((*me), (*iter)->getUnitGuid());
+ target = Unit::GetUnit(*me, (*iter)->getUnitGuid());
if (target && target->getPowerType() == POWER_MANA)
return target;
}
@@ -399,7 +399,7 @@ struct boss_faction_championsAI : public ScriptedAI
Unit* target;
for (iter = tList.begin(); iter!=tList.end(); ++iter)
{
- target = Unit::GetUnit((*me), (*iter)->getUnitGuid());
+ target = Unit::GetUnit(*me, (*iter)->getUnitGuid());
if (target && me->GetDistance2d(target) < distance)
++count;
}
@@ -408,7 +408,8 @@ struct boss_faction_championsAI : public ScriptedAI
void AttackStart(Unit* who)
{
- if (!who) return;
+ if (!who)
+ return;
if (me->Attack(who, true))
{
@@ -494,7 +495,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiNatureGraspTimer <= uiDiff)
{
@@ -588,7 +590,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiHeroismOrBloodlustTimer <= uiDiff)
{
@@ -687,7 +690,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiBubbleTimer <= uiDiff)
{
@@ -786,7 +790,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiPsychicScreamTimer <= uiDiff)
{
@@ -879,7 +884,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiPsychicScreamTimer <= uiDiff)
{
@@ -990,7 +996,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiFearTimer <= uiDiff)
{
@@ -1093,7 +1100,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiCounterspellTimer <= uiDiff)
{
@@ -1204,7 +1212,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiDisengageTimer <= uiDiff)
{
@@ -1312,7 +1321,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiBarkskinTimer <= uiDiff)
{
@@ -1424,7 +1434,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiBladestormTimer <= uiDiff)
{
@@ -1534,7 +1545,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiIceboundFortitudeTimer <= uiDiff)
{
@@ -1636,7 +1648,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiFanOfKnivesTimer <= uiDiff)
{
@@ -1773,7 +1786,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiHeroismOrBloodlustTimer <= uiDiff)
{
@@ -1873,7 +1887,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiRepeteanceTimer <= uiDiff)
{
@@ -1951,7 +1966,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiDevourMagicTimer <= uiDiff)
{
@@ -2000,7 +2016,8 @@ public:
void UpdateAI(const uint32 uiDiff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (m_uiClawTimer <= uiDiff)
{
@@ -2011,11 +2028,8 @@ public:
boss_faction_championsAI::UpdateAI(uiDiff);
}
};
-
};
-/*========================================================*/
-
void AddSC_boss_faction_champions()
{
new boss_toc_champion_controller();
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 6cd049967c1..a7328b43826 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -106,11 +106,11 @@ public:
{
boss_jaraxxusAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Reset();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
@@ -124,8 +124,8 @@ public:
void Reset()
{
- if (m_instance)
- m_instance->SetData(TYPE_JARAXXUS, NOT_STARTED);
+ 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);
@@ -139,8 +139,8 @@ public:
void JustReachedHome()
{
- if (m_instance)
- m_instance->SetData(TYPE_JARAXXUS, FAIL);
+ 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);
@@ -150,8 +150,8 @@ public:
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
- if (m_instance)
- m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
}
@@ -159,8 +159,8 @@ public:
{
Summons.DespawnAll();
DoScriptText(SAY_DEATH, me);
- if (m_instance)
- m_instance->SetData(TYPE_JARAXXUS, DONE);
+ if (instance)
+ instance->SetData(TYPE_JARAXXUS, DONE);
}
void JustSummoned(Creature* summoned)
@@ -171,8 +171,8 @@ public:
void EnterCombat(Unit* /*who*/)
{
me->SetInCombatWithZone();
- if (m_instance)
- m_instance->SetData(TYPE_JARAXXUS, IN_PROGRESS);
+ if (instance)
+ instance->SetData(TYPE_JARAXXUS, IN_PROGRESS);
DoScriptText(SAY_AGGRO, me);
}
@@ -289,11 +289,11 @@ public:
{
mob_infernal_volcanoAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Reset();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
@@ -344,11 +344,11 @@ public:
{
mob_fel_infernalAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Reset();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiFelStreakTimer;
void Reset()
@@ -368,7 +368,7 @@ public:
if (!UpdateVictim())
return;
- if (m_instance && m_instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
+ if (instance && instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
me->DespawnOrUnsummon();
if (m_uiFelStreakTimer <= uiDiff)
@@ -398,11 +398,11 @@ public:
{
mob_nether_portalAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Reset();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
@@ -453,13 +453,13 @@ public:
{
mob_mistress_of_painAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
- if (m_instance)
- m_instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE);
+ instance = creature->GetInstanceScript();
+ if (instance)
+ instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE);
Reset();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiShivanSlashTimer;
uint32 m_uiSpinningStrikeTimer;
uint32 m_uiMistressKissTimer;
@@ -474,13 +474,13 @@ public:
void JustDied(Unit* /*killer*/)
{
- if (m_instance)
- m_instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE);
+ if (instance)
+ instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE);
}
void UpdateAI(const uint32 uiDiff)
{
- if (m_instance && m_instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
+ if (instance && instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
{
me->DespawnOrUnsummon();
return;
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 1eca7edb590..5bda32941c2 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -123,10 +123,10 @@ public:
{
boss_gormokAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiImpaleTimer;
uint32 m_uiStaggeringStompTimer;
@@ -151,7 +151,7 @@ public:
void EnterEvadeMode()
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode();
}
@@ -163,7 +163,7 @@ public:
switch (pointId)
{
case 0:
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ 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();
@@ -173,16 +173,16 @@ public:
void JustDied(Unit* /*killer*/)
{
- if (m_instance)
- m_instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE);
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE);
}
void JustReachedHome()
{
- if (m_instance)
+ if (instance)
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
- m_instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
}
me->DespawnOrUnsummon();
}
@@ -190,7 +190,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
me->SetInCombatWithZone();
- m_instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
+ instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
}
void JustSummoned(Creature* summon)
@@ -263,12 +263,12 @@ public:
{
mob_snobold_vassalAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
- if (m_instance)
- m_instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
+ instance = creature->GetInstanceScript();
+ if (instance)
+ instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiFireBombTimer;
uint32 m_uiBatterTimer;
uint32 m_uiHeadCrackTimer;
@@ -284,15 +284,15 @@ public:
m_uiTargetGUID = 0;
m_bTargetDied = false;
- if (m_instance)
- m_uiBossGUID = m_instance->GetData64(NPC_GORMOK);
+ 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()
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode();
}
@@ -328,8 +328,8 @@ public:
if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
if (target->isAlive())
target->RemoveAurasDueToSpell(SPELL_SNOBOLLED);
- if (m_instance)
- m_instance->SetData(DATA_SNOBOLD_COUNT, DECREASE);
+ if (instance)
+ instance->SetData(DATA_SNOBOLD_COUNT, DECREASE);
}
void UpdateAI(uint32 const diff)
@@ -341,9 +341,9 @@ public:
{
if (!target->isAlive())
{
- if (m_instance)
+ if (instance)
{
- Unit* gormok = ObjectAccessor::GetCreature(*me, m_instance->GetData64(NPC_GORMOK));
+ Unit* gormok = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GORMOK));
if (gormok && gormok->isAlive())
{
SetCombatMovement(false);
@@ -454,7 +454,8 @@ struct boss_jormungarAI : public ScriptedAI
void UpdateAI(uint32 const diff)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) == SNAKES_SPECIAL && !enraged)
{
@@ -757,10 +758,10 @@ public:
{
boss_icehowlAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiFerociousButtTimer;
uint32 m_uiArticBreathTimer;
@@ -794,8 +795,8 @@ public:
void JustDied(Unit* /*killer*/)
{
- if (m_instance)
- m_instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
}
void MovementInform(uint32 type, uint32 pointId)
@@ -826,7 +827,7 @@ public:
m_bMovementFinish = true;
break;
case 2:
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ 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();
@@ -836,16 +837,16 @@ public:
void EnterEvadeMode()
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode();
}
void JustReachedHome()
{
- if (m_instance)
+ if (instance)
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
- m_instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
}
me->DespawnOrUnsummon();
}
@@ -854,15 +855,15 @@ public:
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
- if (m_instance)
- m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
}
void EnterCombat(Unit* /*who*/)
{
- if (m_instance)
- m_instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
+ if (instance)
+ instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
me->SetInCombatWithZone();
}
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 242b2f2f0ea..cf84abb482f 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -143,10 +143,10 @@ struct boss_twin_baseAI : public ScriptedAI
{
boss_twin_baseAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
AuraStateType m_uiAuraState;
@@ -176,7 +176,7 @@ struct boss_twin_baseAI : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
me->ModifyAuraState(m_uiAuraState, true);
/* Uncomment this once that they are flying above the ground
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetLevitate(true);
me->SetFlying(true); */
m_bIsBerserk = false;
@@ -190,8 +190,8 @@ struct boss_twin_baseAI : public ScriptedAI
void JustReachedHome()
{
- if (m_instance)
- m_instance->SetData(TYPE_VALKIRIES, FAIL);
+ if (instance)
+ instance->SetData(TYPE_VALKIRIES, FAIL);
Summons.DespawnAll();
me->DespawnOrUnsummon();
@@ -199,12 +199,13 @@ struct boss_twin_baseAI : public ScriptedAI
void MovementInform(uint32 uiType, uint32 uiId)
{
- if (uiType != POINT_MOTION_TYPE) return;
+ if (uiType != POINT_MOTION_TYPE)
+ return;
switch (uiId)
{
case 1:
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ 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;
@@ -216,8 +217,8 @@ struct boss_twin_baseAI : public ScriptedAI
if (who->GetTypeId() == TYPEID_PLAYER)
{
DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me);
- if (m_instance)
- m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ if (instance)
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
}
@@ -231,12 +232,12 @@ struct boss_twin_baseAI : public ScriptedAI
switch (summoned->GetEntry())
{
case NPC_LIGHT_ESSENCE:
- m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_LIGHT_ESSENCE_HELPER);
- m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_LIGHT_ESSENCE_HELPER);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER);
break;
case NPC_DARK_ESSENCE:
- m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DARK_ESSENCE_HELPER);
- m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DARK_ESSENCE_HELPER);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER);
break;
case NPC_BULLET_CONTROLLER:
me->m_Events.AddEvent(new OrbsDespawner(me), me->m_Events.CalculateTime(100));
@@ -248,7 +249,7 @@ struct boss_twin_baseAI : public ScriptedAI
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
- if (m_instance)
+ if (instance)
{
if (Creature* pSister = GetSister())
{
@@ -257,13 +258,13 @@ struct boss_twin_baseAI : public ScriptedAI
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- m_instance->SetData(TYPE_VALKIRIES, DONE);
+ instance->SetData(TYPE_VALKIRIES, DONE);
Summons.DespawnAll();
}
else
{
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- m_instance->SetData(TYPE_VALKIRIES, SPECIAL);
+ instance->SetData(TYPE_VALKIRIES, SPECIAL);
}
}
}
@@ -273,20 +274,20 @@ struct boss_twin_baseAI : public ScriptedAI
// Called when sister pointer needed
Creature* GetSister()
{
- return Unit::GetCreature((*me), m_instance->GetData64(m_uiSisterNpcId));
+ return Unit::GetCreature((*me), instance->GetData64(m_uiSisterNpcId));
}
void EnterCombat(Unit* /*who*/)
{
me->SetInCombatWithZone();
- if (m_instance)
+ if (instance)
{
if (Creature* pSister = GetSister())
{
me->AddAura(m_uiMyEmphatySpellId, pSister);
pSister->SetInCombatWithZone();
}
- m_instance->SetData(TYPE_VALKIRIES, IN_PROGRESS);
+ instance->SetData(TYPE_VALKIRIES, IN_PROGRESS);
}
DoScriptText(SAY_AGGRO, me);
@@ -315,7 +316,7 @@ struct boss_twin_baseAI : public ScriptedAI
void UpdateAI(const uint32 uiDiff)
{
- if (!m_instance || !UpdateVictim())
+ if (!instance || !UpdateVictim())
return;
switch (m_uiStage)
@@ -406,10 +407,10 @@ public:
{
boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
void Reset() {
boss_twin_baseAI::Reset();
@@ -429,17 +430,17 @@ public:
m_uiTouchSpellId = SPELL_LIGHT_TOUCH;
m_uiSpikeSpellId = SPELL_LIGHT_TWIN_SPIKE;
- if (m_instance)
+ if (instance)
{
- m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
+ instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
}
}
void EnterCombat(Unit* who)
{
- if (m_instance)
+ if (instance)
{
- m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
+ 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);
@@ -448,14 +449,14 @@ public:
void EnterEvadeMode()
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
boss_twin_baseAI::EnterEvadeMode();
}
void JustReachedHome()
{
- if (m_instance)
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ if (instance)
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
boss_twin_baseAI::JustReachedHome();
}
@@ -552,10 +553,10 @@ struct mob_unleashed_ballAI : public ScriptedAI
{
mob_unleashed_ballAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiRangeCheckTimer;
void MoveToNextPoint()
@@ -576,8 +577,8 @@ struct mob_unleashed_ballAI : public ScriptedAI
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetFlying(true);
+ me->SetDisableGravity(true);
+ me->SetCanFly(true);
SetCombatMovement(false);
MoveToNextPoint();
m_uiRangeCheckTimer = IN_MILLISECONDS;
@@ -585,7 +586,8 @@ struct mob_unleashed_ballAI : public ScriptedAI
void MovementInform(uint32 uiType, uint32 uiId)
{
- if (uiType != POINT_MOTION_TYPE) return;
+ if (uiType != POINT_MOTION_TYPE)
+ return;
switch (uiId)
{
@@ -617,8 +619,7 @@ public:
{
if (m_uiRangeCheckTimer < uiDiff)
{
- if (Unit* target = me->SelectNearestTarget(2.0f))
- if (target->GetTypeId() == TYPEID_PLAYER && target->isAlive())
+ if (me->SelectNearestPlayer(2.0f))
{
DoCastAOE(SPELL_UNLEASHED_DARK);
me->GetMotionMaster()->MoveIdle();
@@ -659,8 +660,7 @@ public:
{
if (m_uiRangeCheckTimer < uiDiff)
{
- if (Unit* target = me->SelectNearestTarget(2.0f))
- if (target->GetTypeId() == TYPEID_PLAYER && target->isAlive())
+ if (me->SelectNearestPlayer(2.0f))
{
DoCastAOE(SPELL_UNLEASHED_LIGHT);
me->GetMotionMaster()->MoveIdle();
@@ -759,7 +759,7 @@ class spell_powering_up : public SpellScriptLoader
uint32 spellId;
- bool Validate(SpellEntry const* /*spellEntry*/)
+ bool Load()
{
spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_SURGE_OF_SPEED, GetCaster());
if (!sSpellMgr->GetSpellInfo(spellId))
@@ -769,7 +769,7 @@ class spell_powering_up : public SpellScriptLoader
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
- if (Unit* target = GetTargetUnit())
+ if (Unit* target = GetExplTargetUnit())
if (urand(0, 99) < 15)
target->CastSpell(target, spellId, true);
}
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 03de3d374ef..1966e26b128 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
@@ -105,7 +105,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
bool IsEncounterInProgress() const
{
- for (uint8 i = 0; i < MAX_ENCOUNTERS ; ++i)
+ for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
if (EncounterStatus[i] == IN_PROGRESS)
return true;
return false;
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 3831e4824ad..2643b8d60c7 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
@@ -106,10 +106,10 @@ class npc_announcer_toc10 : public CreatureScript
{
npc_announcer_toc10AI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
void Reset()
{
@@ -239,10 +239,10 @@ class boss_lich_king_toc : public CreatureScript
{
boss_lich_king_tocAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiUpdateTimer;
void Reset()
@@ -254,8 +254,8 @@ class boss_lich_king_toc : public CreatureScript
summoned->CastSpell(summoned, 51807, false);
summoned->SetDisplayId(11686);
}
- if (m_instance) m_instance->SetData(TYPE_LICH_KING, IN_PROGRESS);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ if (instance) instance->SetData(TYPE_LICH_KING, IN_PROGRESS);
+ me->SetWalk(true);
}
void MovementInform(uint32 uiType, uint32 uiId)
@@ -265,77 +265,80 @@ class boss_lich_king_toc : public CreatureScript
switch (uiId)
{
case 0:
- m_instance->SetData(TYPE_EVENT, 5030);
+ instance->SetData(TYPE_EVENT, 5030);
break;
case 1:
- m_instance->SetData(TYPE_EVENT, 5050);
+ instance->SetData(TYPE_EVENT, 5050);
break;
}
}
void UpdateAI(const uint32 uiDiff)
{
- if (!m_instance) return;
- if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING_1) return;
+ if (!instance)
+ return;
+
+ if (instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING_1)
+ return;
- m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER);
+ m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff)
{
- switch (m_instance->GetData(TYPE_EVENT))
+ switch (instance->GetData(TYPE_EVENT))
{
case 5010:
DoScriptText(SAY_STAGE_4_02, me);
m_uiUpdateTimer = 3000;
me->GetMotionMaster()->MovePoint(0, LichKingLoc[0]);
- m_instance->SetData(TYPE_EVENT, 5020);
+ instance->SetData(TYPE_EVENT, 5020);
break;
case 5030:
DoScriptText(SAY_STAGE_4_04, me);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
m_uiUpdateTimer = 10000;
- m_instance->SetData(TYPE_EVENT, 5040);
+ 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;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 5050:
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 5060);
+ instance->SetData(TYPE_EVENT, 5060);
break;
case 5060:
DoScriptText(SAY_STAGE_4_05, me);
me->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
m_uiUpdateTimer = 2500;
- m_instance->SetData(TYPE_EVENT, 5070);
+ instance->SetData(TYPE_EVENT, 5070);
break;
case 5070:
me->CastSpell(me, 68198, false);
m_uiUpdateTimer = 1500;
- m_instance->SetData(TYPE_EVENT, 5080);
+ instance->SetData(TYPE_EVENT, 5080);
break;
case 5080:
- if (GameObject* pGoFloor = m_instance->instance->GetGameObject(m_instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
- pGoFloor->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
+ if (GameObject* go = instance->instance->GetGameObject(instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
+ go->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
me->CastSpell(me, 69016, false);
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(TYPE_LICH_KING, DONE);
- Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_ANUBARAK));
+ 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);
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
}
me->DespawnOrUnsummon();
m_uiUpdateTimer = 20000;
break;
}
} else m_uiUpdateTimer -= uiDiff;
- m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
}
};
@@ -355,10 +358,10 @@ class npc_fizzlebang_toc : public CreatureScript
{
npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = (InstanceScript*)me->GetInstanceScript();
+ instance = me->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
uint32 m_uiUpdateTimer;
uint64 m_uiPortalGUID;
@@ -367,8 +370,8 @@ class npc_fizzlebang_toc : public CreatureScript
void JustDied(Unit* killer)
{
DoScriptText(SAY_STAGE_1_06, me, killer);
- m_instance->SetData(TYPE_EVENT, 1180);
- if (Creature* temp = Unit::GetCreature(*me, m_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);
@@ -378,24 +381,25 @@ class npc_fizzlebang_toc : public CreatureScript
void Reset()
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
m_uiPortalGUID = 0;
me->GetMotionMaster()->MovePoint(1, ToCCommonLoc[10].GetPositionX(), ToCCommonLoc[10].GetPositionY()-60, ToCCommonLoc[10].GetPositionZ());
}
void MovementInform(uint32 uiType, uint32 uiId)
{
- if (uiType != POINT_MOTION_TYPE) return;
+ if (uiType != POINT_MOTION_TYPE)
+ return;
switch (uiId)
{
case 1:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
- if (m_instance)
+ me->SetWalk(false);
+ if (instance)
{
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
- m_instance->SetData(TYPE_EVENT, 1120);
- m_instance->SetData(TYPE_EVENT_TIMER, 1000);
+ instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
+ instance->SetData(TYPE_EVENT, 1120);
+ instance->SetData(TYPE_EVENT_TIMER, 1000);
}
break;
}
@@ -408,22 +412,24 @@ class npc_fizzlebang_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff)
{
- if (!m_instance) return;
+ if (!instance)
+ return;
- if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG) return;
+ if (instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG)
+ return;
- m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER);
+ m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff)
{
- switch (m_instance->GetData(TYPE_EVENT))
+ switch (instance->GetData(TYPE_EVENT))
{
case 1110:
- m_instance->SetData(TYPE_EVENT, 1120);
+ instance->SetData(TYPE_EVENT, 1120);
m_uiUpdateTimer = 4000;
break;
case 1120:
DoScriptText(SAY_STAGE_1_02, me);
- m_instance->SetData(TYPE_EVENT, 1130);
+ instance->SetData(TYPE_EVENT, 1130);
m_uiUpdateTimer = 12000;
break;
case 1130:
@@ -433,16 +439,16 @@ class npc_fizzlebang_toc : public CreatureScript
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();
- pTrigger->SetFloatValue(OBJECT_FIELD_SCALE_X, 2.0f);
+ pTrigger->SetObjectScale(2.0f);
pTrigger->SetDisplayId(22862);
pTrigger->CastSpell(pTrigger, SPELL_WILFRED_PORTAL, false);
}
- m_instance->SetData(TYPE_EVENT, 1132);
+ instance->SetData(TYPE_EVENT, 1132);
m_uiUpdateTimer = 4000;
break;
case 1132:
me->GetMotionMaster()->MovementExpired();
- m_instance->SetData(TYPE_EVENT, 1134);
+ instance->SetData(TYPE_EVENT, 1134);
m_uiUpdateTimer = 4000;
break;
case 1134:
@@ -450,15 +456,15 @@ class npc_fizzlebang_toc : public CreatureScript
if (Creature* pPortal = me->SummonCreature(NPC_WILFRED_PORTAL, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 4.71239f, TEMPSUMMON_MANUAL_DESPAWN))
{
pPortal->SetReactState(REACT_PASSIVE);
- pPortal->SetFloatValue(OBJECT_FIELD_SCALE_X, 2.0f);
+ pPortal->SetObjectScale(2.0f);
pPortal->CastSpell(pPortal, SPELL_WILFRED_PORTAL, false);
m_uiPortalGUID = pPortal->GetGUID();
}
m_uiUpdateTimer = 4000;
- m_instance->SetData(TYPE_EVENT, 1135);
+ instance->SetData(TYPE_EVENT, 1135);
break;
case 1135:
- m_instance->SetData(TYPE_EVENT, 1140);
+ instance->SetData(TYPE_EVENT, 1140);
m_uiUpdateTimer = 3000;
break;
case 1140:
@@ -469,27 +475,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());
}
- m_instance->SetData(TYPE_EVENT, 1142);
+ instance->SetData(TYPE_EVENT, 1142);
m_uiUpdateTimer = 5000;
break;
case 1142:
- if (Creature* temp = Unit::GetCreature(*me, m_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))
pTrigger->DespawnOrUnsummon();
if (Creature* pPortal = Unit::GetCreature(*me, m_uiPortalGUID))
pPortal->DespawnOrUnsummon();
- m_instance->SetData(TYPE_EVENT, 1144);
+ instance->SetData(TYPE_EVENT, 1144);
m_uiUpdateTimer = 10000;
break;
case 1144:
- if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_JARAXXUS)))
+ if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
DoScriptText(SAY_STAGE_1_05, temp);
- m_instance->SetData(TYPE_EVENT, 1150);
+ instance->SetData(TYPE_EVENT, 1150);
m_uiUpdateTimer = 5000;
break;
case 1150:
- if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_JARAXXUS)))
+ if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
{
//1-shot Fizzlebang
temp->CastSpell(me, 67888, false);
@@ -497,12 +503,12 @@ class npc_fizzlebang_toc : public CreatureScript
temp->AddThreat(me, 1000.0f);
temp->AI()->AttackStart(me);
}
- m_instance->SetData(TYPE_EVENT, 1160);
+ instance->SetData(TYPE_EVENT, 1160);
m_uiUpdateTimer = 3000;
break;
}
} else m_uiUpdateTimer -= uiDiff;
- m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
}
};
@@ -522,10 +528,10 @@ class npc_tirion_toc : public CreatureScript
{
npc_tirion_tocAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)me->GetInstanceScript();
+ instance = me->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiUpdateTimer;
void Reset() {}
@@ -534,31 +540,34 @@ class npc_tirion_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff)
{
- if (!m_instance) return;
- if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION) return;
+ if (!instance)
+ return;
- m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER);
+ if (instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION)
+ return;
+
+ m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff)
{
- switch (m_instance->GetData(TYPE_EVENT))
+ switch (instance->GetData(TYPE_EVENT))
{
case 110:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_01, me);
m_uiUpdateTimer = 22000;
- m_instance->SetData(TYPE_EVENT, 120);
+ instance->SetData(TYPE_EVENT, 120);
break;
case 140:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_02, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 150);
+ instance->SetData(TYPE_EVENT, 150);
break;
case 150:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
- if (m_instance->GetData(TYPE_BEASTS) != DONE)
+ if (instance->GetData(TYPE_BEASTS) != DONE)
{
- m_instance->DoUseDoorOrButton(m_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))
{
@@ -568,26 +577,26 @@ class npc_tirion_toc : public CreatureScript
}
}
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 155);
+ instance->SetData(TYPE_EVENT, 155);
break;
case 155:
- m_instance->SetData(TYPE_BEASTS, IN_PROGRESS);
+ instance->SetData(TYPE_BEASTS, IN_PROGRESS);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 160);
+ instance->SetData(TYPE_EVENT, 160);
break;
case 200:
DoScriptText(SAY_STAGE_0_04, me);
m_uiUpdateTimer = 8000;
- m_instance->SetData(TYPE_EVENT, 205);
+ instance->SetData(TYPE_EVENT, 205);
break;
case 205:
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 210);
+ instance->SetData(TYPE_EVENT, 210);
break;
case 210:
- if (m_instance->GetData(TYPE_BEASTS) != DONE)
+ if (instance->GetData(TYPE_BEASTS) != DONE)
{
- m_instance->DoUseDoorOrButton(m_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());
@@ -602,24 +611,24 @@ class npc_tirion_toc : public CreatureScript
}
}
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 220);
+ instance->SetData(TYPE_EVENT, 220);
break;
case 220:
- m_instance->SetData(TYPE_EVENT, 230);
+ instance->SetData(TYPE_EVENT, 230);
break;
case 300:
DoScriptText(SAY_STAGE_0_05, me);
m_uiUpdateTimer = 8000;
- m_instance->SetData(TYPE_EVENT, 305);
+ instance->SetData(TYPE_EVENT, 305);
break;
case 305:
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 310);
+ instance->SetData(TYPE_EVENT, 310);
break;
case 310:
- if (m_instance->GetData(TYPE_BEASTS) != DONE)
+ if (instance->GetData(TYPE_BEASTS) != DONE)
{
- m_instance->DoUseDoorOrButton(m_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());
@@ -629,92 +638,92 @@ class npc_tirion_toc : public CreatureScript
}
}
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 315);
+ instance->SetData(TYPE_EVENT, 315);
break;
case 315:
- m_instance->SetData(TYPE_EVENT, 320);
+ instance->SetData(TYPE_EVENT, 320);
break;
case 400:
DoScriptText(SAY_STAGE_0_06, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 666:
DoScriptText(SAY_STAGE_0_WIPE, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 1010:
DoScriptText(SAY_STAGE_1_01, me);
m_uiUpdateTimer = 7000;
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
+ 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);
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 1180:
DoScriptText(SAY_STAGE_1_07, me);
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 2000:
DoScriptText(SAY_STAGE_1_08, me);
m_uiUpdateTimer = 18000;
- m_instance->SetData(TYPE_EVENT, 2010);
+ instance->SetData(TYPE_EVENT, 2010);
break;
case 2030:
DoScriptText(SAY_STAGE_1_11, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 3000:
DoScriptText(SAY_STAGE_2_01, me);
m_uiUpdateTimer = 12000;
- m_instance->SetData(TYPE_EVENT, 3050);
+ instance->SetData(TYPE_EVENT, 3050);
break;
case 3001:
DoScriptText(SAY_STAGE_2_01, me);
m_uiUpdateTimer = 12000;
- m_instance->SetData(TYPE_EVENT, 3051);
+ instance->SetData(TYPE_EVENT, 3051);
break;
case 3060:
DoScriptText(SAY_STAGE_2_03, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 3070);
+ instance->SetData(TYPE_EVENT, 3070);
break;
case 3061:
DoScriptText(SAY_STAGE_2_03, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 3071);
+ 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;
- m_instance->SetData(TYPE_EVENT, 3092);
+ 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;
- m_instance->SetData(TYPE_EVENT, 3092);
+ instance->SetData(TYPE_EVENT, 3092);
break;
case 3092:
- if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
+ if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(1, NOT_STARTED);
- m_instance->SetData(TYPE_EVENT, 3095);
+ instance->SetData(TYPE_EVENT, 3095);
break;
//Crusaders battle end
case 3100:
DoScriptText(SAY_STAGE_2_06, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 4000:
DoScriptText(SAY_STAGE_3_01, me);
m_uiUpdateTimer = 13000;
- m_instance->SetData(TYPE_EVENT, 4010);
+ instance->SetData(TYPE_EVENT, 4010);
break;
case 4010:
DoScriptText(SAY_STAGE_3_02, me);
@@ -733,72 +742,72 @@ class npc_tirion_toc : public CreatureScript
temp->SummonCreature(NPC_DARK_ESSENCE, TwinValkyrsLoc[3].GetPositionX(), TwinValkyrsLoc[3].GetPositionY(), TwinValkyrsLoc[3].GetPositionZ());
}
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 4015);
+ instance->SetData(TYPE_EVENT, 4015);
break;
case 4015:
- m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR));
- if (Creature* temp = Unit::GetCreature((*me), m_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), m_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;
- m_instance->SetData(TYPE_EVENT, 4016);
+ instance->SetData(TYPE_EVENT, 4016);
break;
case 4016:
- m_instance->SetData(TYPE_EVENT, 4017);
+ instance->SetData(TYPE_EVENT, 4017);
break;
case 4040:
m_uiUpdateTimer = 60000;
- m_instance->SetData(TYPE_EVENT, 5000);
+ instance->SetData(TYPE_EVENT, 5000);
break;
case 5000:
DoScriptText(SAY_STAGE_4_01, me);
m_uiUpdateTimer = 10000;
- m_instance->SetData(TYPE_EVENT, 5005);
+ instance->SetData(TYPE_EVENT, 5005);
break;
case 5005:
m_uiUpdateTimer = 8000;
- m_instance->SetData(TYPE_EVENT, 5010);
+ instance->SetData(TYPE_EVENT, 5010);
me->SummonCreature(NPC_LICH_KING_1, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5);
break;
case 5020:
DoScriptText(SAY_STAGE_4_03, me);
m_uiUpdateTimer = 1000;
- m_instance->SetData(TYPE_EVENT, 0);
+ instance->SetData(TYPE_EVENT, 0);
break;
case 6000:
me->NearTeleportTo(AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 4.0f);
m_uiUpdateTimer = 20000;
- m_instance->SetData(TYPE_EVENT, 6005);
+ instance->SetData(TYPE_EVENT, 6005);
break;
case 6005:
DoScriptText(SAY_STAGE_4_06, me);
m_uiUpdateTimer = 20000;
- m_instance->SetData(TYPE_EVENT, 6010);
+ instance->SetData(TYPE_EVENT, 6010);
break;
case 6010:
if (IsHeroic())
{
DoScriptText(SAY_STAGE_4_07, me);
m_uiUpdateTimer = 60000;
- m_instance->SetData(TYPE_ANUBARAK, SPECIAL);
- m_instance->SetData(TYPE_EVENT, 6020);
- } else m_instance->SetData(TYPE_EVENT, 6030);
+ instance->SetData(TYPE_ANUBARAK, SPECIAL);
+ instance->SetData(TYPE_EVENT, 6020);
+ } else instance->SetData(TYPE_EVENT, 6030);
break;
case 6020:
me->DespawnOrUnsummon();
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 6030);
+ instance->SetData(TYPE_EVENT, 6030);
break;
}
} else m_uiUpdateTimer -= uiDiff;
- m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
}
};
@@ -818,10 +827,10 @@ class npc_garrosh_toc : public CreatureScript
{
npc_garrosh_tocAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)me->GetInstanceScript();
+ instance = me->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiUpdateTimer;
void Reset() {}
@@ -830,53 +839,56 @@ class npc_garrosh_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff)
{
- if (!m_instance) return;
- if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH) return;
+ if (!instance)
+ return;
+
+ if (instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH)
+ return;
- m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER);
+ m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff)
{
- switch (m_instance->GetData(TYPE_EVENT))
+ switch (instance->GetData(TYPE_EVENT))
{
case 130:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_03h, me);
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 132);
+ instance->SetData(TYPE_EVENT, 132);
break;
case 132:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 140);
+ instance->SetData(TYPE_EVENT, 140);
break;
case 2010:
DoScriptText(SAY_STAGE_1_09, me);
m_uiUpdateTimer = 9000;
- m_instance->SetData(TYPE_EVENT, 2020);
+ instance->SetData(TYPE_EVENT, 2020);
break;
case 3050:
DoScriptText(SAY_STAGE_2_02h, me);
m_uiUpdateTimer = 15000;
- m_instance->SetData(TYPE_EVENT, 3060);
+ instance->SetData(TYPE_EVENT, 3060);
break;
case 3070:
DoScriptText(SAY_STAGE_2_04h, me);
m_uiUpdateTimer = 6000;
- m_instance->SetData(TYPE_EVENT, 3080);
+ instance->SetData(TYPE_EVENT, 3080);
break;
case 3081:
DoScriptText(SAY_STAGE_2_05h, me);
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 3091);
+ instance->SetData(TYPE_EVENT, 3091);
break;
case 4030:
DoScriptText(SAY_STAGE_3_03h, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 4040);
+ instance->SetData(TYPE_EVENT, 4040);
break;
}
} else m_uiUpdateTimer -= uiDiff;
- m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
}
};
@@ -896,10 +908,10 @@ class npc_varian_toc : public CreatureScript
{
npc_varian_tocAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = (InstanceScript*)me->GetInstanceScript();
+ instance = me->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiUpdateTimer;
void Reset() {}
@@ -908,53 +920,56 @@ class npc_varian_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff)
{
- if (!m_instance) return;
- if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN) return;
+ if (!instance)
+ return;
+
+ if (instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN)
+ return;
- m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER);
+ m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff)
{
- switch (m_instance->GetData(TYPE_EVENT))
+ switch (instance->GetData(TYPE_EVENT))
{
case 120:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_03a, me);
m_uiUpdateTimer = 2000;
- m_instance->SetData(TYPE_EVENT, 122);
+ instance->SetData(TYPE_EVENT, 122);
break;
case 122:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 130);
+ instance->SetData(TYPE_EVENT, 130);
break;
case 2020:
DoScriptText(SAY_STAGE_1_10, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 2030);
+ instance->SetData(TYPE_EVENT, 2030);
break;
case 3051:
DoScriptText(SAY_STAGE_2_02a, me);
m_uiUpdateTimer = 10000;
- m_instance->SetData(TYPE_EVENT, 3061);
+ instance->SetData(TYPE_EVENT, 3061);
break;
case 3071:
DoScriptText(SAY_STAGE_2_04a, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 3081);
+ instance->SetData(TYPE_EVENT, 3081);
break;
case 3080:
DoScriptText(SAY_STAGE_2_05a, me);
m_uiUpdateTimer = 3000;
- m_instance->SetData(TYPE_EVENT, 3090);
+ instance->SetData(TYPE_EVENT, 3090);
break;
case 4020:
DoScriptText(SAY_STAGE_3_03a, me);
m_uiUpdateTimer = 5000;
- m_instance->SetData(TYPE_EVENT, 4040);
+ instance->SetData(TYPE_EVENT, 4040);
break;
}
} else m_uiUpdateTimer -= uiDiff;
- m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
+ instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
}
};
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
index e96ef4ff366..95acc79231d 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp
@@ -161,7 +161,7 @@ class boss_dred : public CreatureScript
return 0;
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_DRED_EVENT, DONE);
@@ -211,7 +211,7 @@ class npc_drakkari_gutripper : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRED)))
Dred->AI()->DoAction(ACTION_RAPTOR_KILLED);
@@ -261,7 +261,7 @@ class npc_drakkari_scytheclaw : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Dred = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRED)))
Dred->AI()->DoAction(ACTION_RAPTOR_KILLED);
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
index 5418cf8c4d0..9ff8ee9c9ed 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
@@ -72,9 +72,9 @@ public:
struct boss_novosAI : public Scripted_NoMovementAI
{
- boss_novosAI(Creature* c) : Scripted_NoMovementAI(c), lSummons(me)
+ boss_novosAI(Creature* creature) : Scripted_NoMovementAI(creature), lSummons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiTimer;
@@ -260,9 +260,9 @@ public:
struct mob_crystal_handlerAI : public ScriptedAI
{
- mob_crystal_handlerAI(Creature* c) : ScriptedAI(c)
+ mob_crystal_handlerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiFlashOfDarknessTimer;
@@ -317,9 +317,9 @@ public:
struct mob_novos_minionAI : public ScriptedAI
{
- mob_novos_minionAI(Creature* c) : ScriptedAI(c)
+ mob_novos_minionAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
index 97f2ee4e9a1..b1d588a0d0d 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
@@ -71,9 +71,9 @@ public:
struct boss_tharon_jaAI : public ScriptedAI
{
- boss_tharon_jaAI(Creature* c) : ScriptedAI(c)
+ boss_tharon_jaAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiPhaseTimer;
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
index 9fc964000e3..26e4e9db99e 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
@@ -61,9 +61,9 @@ public:
struct boss_trollgoreAI : public ScriptedAI
{
- boss_trollgoreAI(Creature* c) : ScriptedAI(c), lSummons(me)
+ boss_trollgoreAI(Creature* creature) : ScriptedAI(creature), lSummons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiConsumeTimer;
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 8e5e7c3e185..aff3f1b8e36 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
@@ -83,7 +83,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
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 c8f18dba1d0..1469e26fd20 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
@@ -18,53 +18,6 @@
#include "ScriptPCH.h"
#include "forge_of_souls.h"
-enum Spells
-{
- //Spiteful Apparition
- SPELL_SPITE = 68895,
- H_SPELL_SPITE = 70212,
-
- //Spectral Warden
- SPELL_VEIL_OF_SHADOWS = 69633,
- SPELL_WAIL_OF_SOULS = 69148,
- H_SPELL_WAIL_OF_SOULS = 70210,
-
- //Soulguard Watchman
- SPELL_SHROUD_OF_RUNES = 69056,
- SPELL_UNHOLY_RAGE = 69053,
-
- //Soulguard Reaper
- SPELL_FROST_NOVA = 69060,
- H_SPELL_FROST_NOVA = 70209,
- SPELL_SHADOW_LANCE = 69058,
-
- //Soulguard Bonecaster
- SPELL_BONE_VOLLEY = 69080,
- H_SPELL_BONE_VOLLEY = 70206,
- SPELL_RAISE_DEAD = 69562,
- SPELL_SHIELD_OF_BONES = 69069,
- H_SPELL_SHIELD_OF_BONES = 70207,
-
- //Soulguard Animator
- // Raise dead 69562
- SPELL_SHADOW_BOLT = 69068,
- H_SPELL_SHADOW_BOLT = 70208,
- SPELL_SOUL_SICKNESS = 69131,
- SPELL_SOUL_SIPHON = 69128,
-
- //Soulguard Adept
- //Raise dead 69562
- //Shadow Bolt 69068/70208
- SPELL_DRAIN_LIFE = 69066,
- H_SPELL_DRAIN_LIFE = 70213,
- SPELL_SHADOW_MEND = 69564,
- H_SPELL_SHADOW_MEND = 70205,
-
- //Soul Horror
- SPELL_SOUL_STRIKE = 69088,
- H_SPELL_SOUL_STRIKE = 70211,
-};
-
enum Events
{
EVENT_NONE,
@@ -78,38 +31,6 @@ enum Events
EVENT_INTRO_6,
EVENT_INTRO_7,
EVENT_INTRO_8,
-
- //Spiteful Apparition
- EVENT_SPITE,
-
- //Spectral Warden
- EVENT_VEIL_OF_SHADOWS,
- EVENT_WAIL_OF_SOULS,
-
- //Soulguard Watchman
- EVENT_SHROUD_OF_RUNES,
- EVENT_UNHOLY_RAGE,
-
- //Soulguard Reaper
- EVENT_FROST_NOVA,
- EVENT_SHADOW_LANCE,
-
- //Soulguard Bonecaster
- EVENT_BONE_VOLLEY,
- EVENT_RAISE_DEAD,
- EVENT_SHIELD_OF_BONES,
-
- //Soulguard Animator
- EVENT_SHADOW_BOLT,
- EVENT_SOUL_SICKNESS,
- EVENT_SOUL_SIPHON,
-
- //Soulguard Adept
- EVENT_DRAIN_LIFE,
- EVENT_SHADOW_MEND,
-
- //Soul Horror
- EVENT_SOUL_STRIKE,
};
/****************************************SYLVANAS************************************/
@@ -251,10 +172,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -388,10 +309,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -410,508 +331,8 @@ public:
}
};
-class mob_spiteful_apparition : public CreatureScript
-{
-public:
- mob_spiteful_apparition() : CreatureScript("mob_spiteful_apparition") { }
-
- struct mob_spiteful_apparitionAI: public ScriptedAI
- {
- mob_spiteful_apparitionAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_SPITE, 8000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_SPITE:
- DoCastVictim(SPELL_SPITE);
- events.RescheduleEvent(EVENT_SPITE, 8000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_spiteful_apparitionAI(creature);
- }
-};
-
-class mob_spectral_warden : public CreatureScript
-{
-public:
- mob_spectral_warden() : CreatureScript("mob_spectral_warden") { }
-
- struct mob_spectral_wardenAI: public ScriptedAI
- {
- mob_spectral_wardenAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_VEIL_OF_SHADOWS, 5000);
- events.ScheduleEvent(EVENT_WAIL_OF_SOULS, 10000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_VEIL_OF_SHADOWS:
- DoCastVictim(SPELL_VEIL_OF_SHADOWS);
- events.RescheduleEvent(EVENT_VEIL_OF_SHADOWS, 10000);
- return;
- case EVENT_WAIL_OF_SOULS:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_WAIL_OF_SOULS);
- events.RescheduleEvent(EVENT_WAIL_OF_SOULS, 5000);
- return;
- }
- }
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_spectral_wardenAI(creature);
- }
-};
-
-class mob_soulguard_watchman : public CreatureScript
-{
-public:
- mob_soulguard_watchman() : CreatureScript("mob_soulguard_watchman") { }
-
- struct mob_soulguard_watchmanAI: public ScriptedAI
- {
- mob_soulguard_watchmanAI(Creature* creature) : ScriptedAI(creature) { }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_SHROUD_OF_RUNES, 1000);
- events.ScheduleEvent(EVENT_UNHOLY_RAGE, 1000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_SHROUD_OF_RUNES:
- DoCast(me, SPELL_SHROUD_OF_RUNES);
- events.RescheduleEvent(EVENT_SHROUD_OF_RUNES, 5000);
- return;
- case EVENT_UNHOLY_RAGE:
- DoCast(me, SPELL_UNHOLY_RAGE);
- events.RescheduleEvent(EVENT_UNHOLY_RAGE, 99999);
- return;
- }
- }
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_soulguard_watchmanAI(creature);
- }
-};
-
-class mob_soulguard_reaper : public CreatureScript
-{
-public:
- mob_soulguard_reaper() : CreatureScript("mob_soulguard_reaper") { }
-
- struct mob_soulguard_reaperAI: public ScriptedAI
- {
- mob_soulguard_reaperAI(Creature* creature) : ScriptedAI(creature) { }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_FROST_NOVA, 8000);
- events.ScheduleEvent(EVENT_SHADOW_LANCE, 5000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_FROST_NOVA:
- DoCast(me, SPELL_FROST_NOVA);
- events.RescheduleEvent(EVENT_FROST_NOVA, 9600);
- return;
- case EVENT_SHADOW_LANCE:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SHADOW_LANCE);
- events.RescheduleEvent(EVENT_SHADOW_LANCE, 8000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_soulguard_reaperAI(creature);
- }
-};
-
-class mob_soulguard_bonecaster : public CreatureScript
-{
-public:
- mob_soulguard_bonecaster() : CreatureScript("mob_soulguard_bonecaster") { }
-
- struct mob_soulguard_bonecasterAI: public ScriptedAI
- {
- mob_soulguard_bonecasterAI(Creature* creature) : ScriptedAI(creature) { }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_BONE_VOLLEY, 6000);
- events.ScheduleEvent(EVENT_RAISE_DEAD, 25000);
- events.ScheduleEvent(EVENT_SHIELD_OF_BONES, 6000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_BONE_VOLLEY:
- DoCastAOE(SPELL_BONE_VOLLEY);
- events.RescheduleEvent(EVENT_BONE_VOLLEY, 7000);
- return;
- case EVENT_RAISE_DEAD:
- DoCast(me, SPELL_RAISE_DEAD);
- events.RescheduleEvent(EVENT_RAISE_DEAD, 25000);
- return;
- case EVENT_SHIELD_OF_BONES:
- DoCast(me, SPELL_SHIELD_OF_BONES);
- events.RescheduleEvent(EVENT_SHIELD_OF_BONES, 8000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_soulguard_bonecasterAI(creature);
- }
-};
-
-class mob_soulguard_animator : public CreatureScript
-{
-public:
- mob_soulguard_animator() : CreatureScript("mob_soulguard_animator") { }
-
- struct mob_soulguard_animatorAI : public ScriptedAI
- {
- mob_soulguard_animatorAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_RAISE_DEAD, 25000);
- events.ScheduleEvent(EVENT_SHADOW_BOLT, 5000);
- events.ScheduleEvent(EVENT_SOUL_SICKNESS, 8000);
- events.ScheduleEvent(EVENT_SOUL_SIPHON, 10000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_RAISE_DEAD:
- DoCast(me, SPELL_RAISE_DEAD);
- events.RescheduleEvent(EVENT_RAISE_DEAD, 25000);
- return;
- case EVENT_SHADOW_BOLT:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SHADOW_BOLT);
- events.RescheduleEvent(EVENT_SHADOW_BOLT, 5000);
- return;
- case EVENT_SOUL_SICKNESS:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SOUL_SICKNESS);
- events.RescheduleEvent(EVENT_SOUL_SICKNESS, 10000);
- return;
- case EVENT_SOUL_SIPHON:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SOUL_SIPHON);
- events.RescheduleEvent(EVENT_SOUL_SIPHON, 8000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_soulguard_animatorAI(creature);
- }
-};
-
-class mob_soulguard_adept : public CreatureScript
-{
-public:
- mob_soulguard_adept() : CreatureScript("mob_soulguard_adept") { }
-
- struct mob_soulguard_adeptAI: public ScriptedAI
- {
- mob_soulguard_adeptAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_RAISE_DEAD, 25000);
- events.ScheduleEvent(EVENT_SHADOW_BOLT, 8000);
- events.ScheduleEvent(EVENT_DRAIN_LIFE, 7000);
- events.ScheduleEvent(EVENT_SHADOW_MEND, 35000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_RAISE_DEAD:
- DoCast(me, SPELL_RAISE_DEAD);
- events.RescheduleEvent(EVENT_RAISE_DEAD, 25000);
- return;
- case EVENT_SHADOW_BOLT:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_SHADOW_BOLT);
- events.RescheduleEvent(EVENT_SHADOW_BOLT, 4000);
- return;
- case EVENT_DRAIN_LIFE:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- DoCast(target, SPELL_DRAIN_LIFE);
- events.RescheduleEvent(EVENT_DRAIN_LIFE, 9000);
- return;
- case EVENT_SHADOW_MEND:
- DoCast(me, SPELL_SHADOW_MEND);
- events.RescheduleEvent(EVENT_SHADOW_MEND, 20000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_soulguard_adeptAI(creature);
- }
-};
-
-class mob_soul_horror : public CreatureScript
-{
-public:
- mob_soul_horror() : CreatureScript("mob_soul_horror") { }
-
- struct mob_soul_horrorAI : public ScriptedAI
- {
- mob_soul_horrorAI(Creature* creature) : ScriptedAI(creature) { }
-
- EventMap events;
-
- void Reset()
- {
- events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- events.ScheduleEvent(EVENT_SOUL_STRIKE, 6000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_SOUL_STRIKE:
- DoCast(me->getVictim(), SPELL_SOUL_STRIKE);
- events.RescheduleEvent(EVENT_SOUL_STRIKE, 8000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_soul_horrorAI(creature);
- }
-};
-
void AddSC_forge_of_souls()
{
new npc_sylvanas_fos();
new npc_jaina_fos();
- new mob_spiteful_apparition();
- new mob_spectral_warden();
- new mob_soulguard_watchman();
- new mob_soulguard_reaper();
- new mob_soulguard_bonecaster();
- new mob_soulguard_animator();
- new mob_soulguard_adept();
- new mob_soul_horror();
}
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 1583bdbdcd4..2abb60d5de2 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -157,10 +157,10 @@ private:
public:
npc_jaina_or_sylvanas_hor(bool isSylvana, const char* name) : CreatureScript(name), m_isSylvana(isSylvana) { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -248,7 +248,7 @@ public:
{
case EVENT_START_INTRO:
me->GetMotionMaster()->MovePoint(0, MoveThronePos);
- // Begining of intro is differents between factions as the speech sequence and timers are differents.
+ // Begining of intro is differents between fActions as the speech sequence and timers are differents.
if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
events.ScheduleEvent(EVENT_INTRO_A2_1, 0);
else
@@ -633,7 +633,7 @@ public:
struct npc_ghostly_priestAI: public ScriptedAI
{
- npc_ghostly_priestAI(Creature* c) : ScriptedAI(c)
+ npc_ghostly_priestAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -715,7 +715,7 @@ public:
struct npc_phantom_mageAI: public ScriptedAI
{
- npc_phantom_mageAI(Creature* c) : ScriptedAI(c)
+ npc_phantom_mageAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -792,11 +792,11 @@ public:
struct npc_phantom_hallucinationAI : public npc_phantom_mage::npc_phantom_mageAI
{
- npc_phantom_hallucinationAI(Creature* c) : npc_phantom_mage::npc_phantom_mageAI(c)
+ npc_phantom_hallucinationAI(Creature* creature) : npc_phantom_mage::npc_phantom_mageAI(creature)
{
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoCast(SPELL_HALLUCINATION_2);
}
@@ -816,7 +816,7 @@ public:
struct npc_shadowy_mercenaryAI: public ScriptedAI
{
- npc_shadowy_mercenaryAI(Creature* c) : ScriptedAI(c)
+ npc_shadowy_mercenaryAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -887,7 +887,7 @@ public:
struct npc_spectral_footmanAI: public ScriptedAI
{
- npc_spectral_footmanAI(Creature* c) : ScriptedAI(c)
+ npc_spectral_footmanAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -952,7 +952,7 @@ public:
struct npc_tortured_riflemanAI : public ScriptedAI
{
- npc_tortured_riflemanAI(Creature* c) : ScriptedAI(c)
+ npc_tortured_riflemanAI(Creature* creature) : ScriptedAI(creature)
{
}
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 64609efd7ff..a3b8c5df4e7 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
@@ -20,14 +20,15 @@
enum Yells
{
- SAY_AGGRO = -1658001,
- SAY_SLAY_1 = -1658002,
- SAY_SLAY_2 = -1658003,
- SAY_DEATH = -1658004,
- SAY_PHASE2 = -1658005,
- SAY_PHASE3 = -1658006,
-
- SAY_TYRANNUS_DEATH = -1658007,
+ SAY_AGGRO = 0,
+ SAY_PHASE2 = 1,
+ SAY_PHASE3 = 2,
+ SAY_DEATH = 3,
+ SAY_SLAY = 4,
+ SAY_THROW_SARONITE = 5,
+ SAY_CAST_DEEP_FREEZE = 6,
+
+ SAY_TYRANNUS_DEATH = -1658007, // todo
};
enum Spells
@@ -107,8 +108,9 @@ class boss_garfrost : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
DoCast(me, SPELL_PERMAFROST);
+ me->CallForHelp(70.0f);
events.ScheduleEvent(EVENT_THROW_SARONITE, 7000);
instance->SetBossState(DATA_GARFROST, IN_PROGRESS);
@@ -117,12 +119,13 @@ class boss_garfrost : public CreatureScript
void KilledUnit(Unit* victim)
{
if (victim->GetTypeId() == TYPEID_PLAYER)
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
+ Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
+
if (Creature* tyrannus = me->GetCreature(*me, instance->GetData64(DATA_TYRANNUS)))
DoScriptText(SAY_TYRANNUS_DEATH, tyrannus);
@@ -134,6 +137,7 @@ class boss_garfrost : public CreatureScript
if (events.GetPhaseMask() & PHASE_ONE_MASK && !HealthAbovePct(66))
{
events.SetPhase(PHASE_TWO);
+ Talk(SAY_PHASE2);
events.DelayEvents(8000);
DoCast(me, SPELL_THUNDERING_STOMP);
events.ScheduleEvent(EVENT_JUMP, 1500);
@@ -143,6 +147,7 @@ class boss_garfrost : public CreatureScript
if (events.GetPhaseMask() & PHASE_TWO_MASK && !HealthAbovePct(33))
{
events.SetPhase(PHASE_THREE);
+ Talk(SAY_PHASE3);
events.DelayEvents(8000);
DoCast(me, SPELL_THUNDERING_STOMP);
events.ScheduleEvent(EVENT_JUMP, 1500);
@@ -199,7 +204,10 @@ class boss_garfrost : public CreatureScript
{
case EVENT_THROW_SARONITE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ Talk(SAY_THROW_SARONITE);
DoCast(target, SPELL_THROW_SARONITE);
+ }
events.ScheduleEvent(EVENT_THROW_SARONITE, urand(12500, 20000));
break;
case EVENT_CHILLING_WAVE:
@@ -208,7 +216,10 @@ class boss_garfrost : public CreatureScript
break;
case EVENT_DEEP_FREEZE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ {
+ Talk(SAY_CAST_DEEP_FREEZE);
DoCast(target, SPELL_DEEP_FREEZE);
+ }
events.ScheduleEvent(EVENT_DEEP_FREEZE, 35000, 0, PHASE_THREE);
break;
case EVENT_JUMP:
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 8e211cbd2cb..fa260cb298d 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -347,7 +347,7 @@ class boss_krick : public CreatureScript
else
tyrannusPtr = me->SummonCreature(NPC_TYRANNUS_EVENTS, outroPos[1], TEMPSUMMON_MANUAL_DESPAWN);
- tyrannusPtr->SetFlying(true);
+ tyrannusPtr->SetCanFly(true);
me->GetMotionMaster()->MovePoint(POINT_KRICK_INTRO, outroPos[0].GetPositionX(), outroPos[0].GetPositionY(), outroPos[0].GetPositionZ());
tyrannusPtr->SetFacingToObject(me);
}
@@ -439,6 +439,7 @@ class boss_krick : public CreatureScript
_events.ScheduleEvent(EVENT_OUTRO_8, 5000);
break;
case EVENT_OUTRO_8:
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
me->AddUnitMovementFlag(MOVEMENTFLAG_FLYING);
me->GetMotionMaster()->MovePoint(0, outroPos[5]);
DoCast(me, SPELL_STRANGULATING);
@@ -453,8 +454,9 @@ class boss_krick : public CreatureScript
_events.ScheduleEvent(EVENT_OUTRO_10, 1000);
break;
case EVENT_OUTRO_10:
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
me->RemoveUnitMovementFlag(MOVEMENTFLAG_FLYING);
- me->AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ me->AddUnitMovementFlag(MOVEMENTFLAG_FALLING_FAR);
me->GetMotionMaster()->MovePoint(0, outroPos[6]);
_events.ScheduleEvent(EVENT_OUTRO_11, 2000);
break;
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 d6b2c2e3a97..8d015adf4a4 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -295,7 +295,7 @@ class boss_rimefang : public CreatureScript
_events.SetPhase(PHASE_NONE);
_currentWaypoint = 0;
_hoarfrostTargetGUID = 0;
- me->SetFlying(true);
+ me->SetCanFly(true);
me->SetReactState(REACT_PASSIVE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
@@ -387,8 +387,7 @@ class player_overlord_brandAI : public PlayerAI
void SetGUID(uint64 guid, int32 /*type*/)
{
tyrannus = ObjectAccessor::GetCreature(*me, guid);
- if (!tyrannus)
- me->IsAIEnabled = false;
+ me->IsAIEnabled = tyrannus != NULL;
}
void DamageDealt(Unit* /*victim*/, uint32& damage, DamageEffectType /*damageType*/)
@@ -423,10 +422,9 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader
return;
oldAI = GetTarget()->GetAI();
+ oldAIState = GetTarget()->IsAIEnabled;
GetTarget()->SetAI(new player_overlord_brandAI(GetTarget()->ToPlayer()));
GetTarget()->GetAI()->SetGUID(GetCasterGUID());
- oldAIState = GetTarget()->IsAIEnabled;
- GetTarget()->IsAIEnabled = true;
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
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 24529801564..1301acf4c99 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
@@ -23,6 +23,13 @@ Position const SlaveLeaderPos = {689.7158f, -104.8736f, 513.7360f, 0.0f};
// position for Jaina and Sylvanas
Position const EventLeaderPos2 = {1054.368f, 107.14620f, 628.4467f, 0.0f};
+DoorData const Doors[] =
+{
+ {GO_ICE_WALL, DATA_GARFROST, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
+ {GO_ICE_WALL, DATA_ICK, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
+ {GO_HALLS_OF_REFLECTION_PORTCULLIS, DATA_TYRANNUS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
+};
+
class instance_pit_of_saron : public InstanceMapScript
{
public:
@@ -33,6 +40,7 @@ class instance_pit_of_saron : public InstanceMapScript
instance_pit_of_saron_InstanceScript(Map* map) : InstanceScript(map)
{
SetBossNumber(MAX_ENCOUNTER);
+ LoadDoorData(Doors);
_garfrostGUID = 0;
_krickGUID = 0;
_ickGUID = 0;
@@ -154,6 +162,28 @@ class instance_pit_of_saron : public InstanceMapScript
}
}
+ void OnGameObjectCreate(GameObject* go)
+ {
+ switch (go->GetEntry())
+ {
+ case GO_ICE_WALL:
+ case GO_HALLS_OF_REFLECTION_PORTCULLIS:
+ AddDoor(go, true);
+ break;
+ }
+ }
+
+ void OnGameObjectRemove(GameObject* go)
+ {
+ switch (go->GetEntry())
+ {
+ case GO_ICE_WALL:
+ case GO_HALLS_OF_REFLECTION_PORTCULLIS:
+ AddDoor(go, false);
+ break;
+ }
+ }
+
bool SetBossState(uint32 type, EncounterState state)
{
if (!InstanceScript::SetBossState(type, state))
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
index a91951ca25e..b6c821ef66a 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
@@ -25,9 +25,6 @@ enum eSpells
SPELL_HELLFIRE = 69586,
SPELL_TACTICAL_BLINK = 69584,
SPELL_FROST_BREATH = 69527, //Iceborn Proto-Drake
- SPELL_BLINDING_DIRT = 70302, //Wrathbone Laborer
- SPELL_PUNCTURE_WOUND = 70278,
- SPELL_SHOVELLED = 69572,
SPELL_LEAPING_FACE_MAUL = 69504, // Geist Ambusher
};
@@ -36,11 +33,6 @@ enum eEvents
// Ymirjar Flamebearer
EVENT_FIREBALL = 1,
EVENT_TACTICAL_BLINK = 2,
-
- //Wrathbone Laborer
- EVENT_BLINDING_DIRT = 3,
- EVENT_PUNCTURE_WOUND = 4,
- EVENT_SHOVELLED = 5,
};
class mob_ymirjar_flamebearer : public CreatureScript
@@ -157,73 +149,6 @@ class mob_iceborn_protodrake : public CreatureScript
}
};
-class mob_wrathbone_laborer : public CreatureScript
-{
- public:
- mob_wrathbone_laborer() : CreatureScript("mob_wrathbone_laborer") { }
-
- struct mob_wrathbone_laborerAI: public ScriptedAI
- {
- mob_wrathbone_laborerAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- void Reset()
- {
- _events.Reset();
- }
-
- void EnterCombat(Unit* /*who*/)
- {
- _events.ScheduleEvent(EVENT_BLINDING_DIRT, 8000);
- _events.ScheduleEvent(EVENT_PUNCTURE_WOUND, 9000);
- _events.ScheduleEvent(EVENT_SHOVELLED, 5000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- _events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = _events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_BLINDING_DIRT:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 10.0f, true))
- DoCast(target, SPELL_BLINDING_DIRT);
- _events.RescheduleEvent(EVENT_BLINDING_DIRT, 10000);
- return;
- case EVENT_PUNCTURE_WOUND:
- DoCastVictim(SPELL_PUNCTURE_WOUND);
- _events.RescheduleEvent(EVENT_PUNCTURE_WOUND, 9000);
- return;
- case EVENT_SHOVELLED:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, -5.0f))
- DoCast(target, SPELL_SHOVELLED);
- _events.RescheduleEvent(EVENT_SHOVELLED, 7000);
- return;
- }
- }
-
- DoMeleeAttackIfReady();
- }
-
- private:
- EventMap _events;
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_wrathbone_laborerAI(creature);
- }
-};
-
class mob_geist_ambusher : public CreatureScript
{
public:
@@ -240,12 +165,13 @@ class mob_geist_ambusher : public CreatureScript
_leapingFaceMaulCooldown = 9000;
}
- void MoveInLineOfSight(Unit* who)
+ void EnterCombat(Unit* who)
{
if (who->GetTypeId() != TYPEID_PLAYER)
return;
- if (me->IsWithinDistInMap(who, 30.0f))
+ // the max range is determined by aggro range
+ if (me->GetDistance(who) > 5.0f)
DoCast(who, SPELL_LEAPING_FACE_MAUL);
}
@@ -309,7 +235,6 @@ class spell_trash_mob_glacial_strike : public SpellScriptLoader
void AddSC_pit_of_saron()
{
new mob_ymirjar_flamebearer();
- new mob_wrathbone_laborer();
new mob_iceborn_protodrake();
new mob_geist_ambusher();
new spell_trash_mob_glacial_strike();
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h
index 728e0ccd955..768c3ba40ec 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h
@@ -90,6 +90,8 @@ enum CreatureIds
enum GameObjectIds
{
GO_SARONITE_ROCK = 196485,
+ GO_ICE_WALL = 201885,
+ GO_HALLS_OF_REFLECTION_PORTCULLIS = 201848,
};
#endif
diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
index c665d3cdf5a..3e803c24d61 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp
@@ -41,9 +41,9 @@ public:
struct boss_eckAI : public ScriptedAI
{
- boss_eckAI(Creature* c) : ScriptedAI(c)
+ boss_eckAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiBerserkTimer;
@@ -145,14 +145,14 @@ public:
struct npc_ruins_dwellerAI : public ScriptedAI
{
- npc_ruins_dwellerAI(Creature* c) : ScriptedAI(c)
+ npc_ruins_dwellerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
index daa5ee86483..be9b09a1263 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
@@ -75,9 +75,9 @@ public:
struct boss_gal_darahAI : public ScriptedAI
{
- boss_gal_darahAI(Creature* c) : ScriptedAI(c)
+ boss_gal_darahAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiStampedeTimer;
diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
index 5071802f897..b827f43dc99 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
@@ -80,9 +80,9 @@ public:
struct boss_slad_ranAI : public ScriptedAI
{
- boss_slad_ranAI(Creature* c) : ScriptedAI(c), lSummons(me)
+ boss_slad_ranAI(Creature* creature) : ScriptedAI(creature), lSummons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiPoisonNovaTimer;
@@ -219,7 +219,7 @@ public:
struct mob_slad_ran_constrictorAI : public ScriptedAI
{
- mob_slad_ran_constrictorAI(Creature* c) : ScriptedAI(c) {}
+ mob_slad_ran_constrictorAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiGripOfSladRanTimer;
@@ -272,7 +272,7 @@ public:
struct mob_slad_ran_viperAI : public ScriptedAI
{
- mob_slad_ran_viperAI(Creature* c) : ScriptedAI(c) {}
+ mob_slad_ran_viperAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiVenomousBiteTimer;
diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
index c0fc722385b..c22a0e17cd5 100644
--- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
+++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp
@@ -131,7 +131,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -519,17 +520,17 @@ class go_gundrak_altar : public GameObjectScript
public:
go_gundrak_altar() : GameObjectScript("go_gundrak_altar") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- InstanceScript* instance = pGO->GetInstanceScript();
+ InstanceScript* instance = go->GetInstanceScript();
uint64 uiStatue = 0;
- pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- pGO->SetGoState(GO_STATE_ACTIVE);
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ go->SetGoState(GO_STATE_ACTIVE);
if (instance)
{
- switch (pGO->GetEntry())
+ switch (go->GetEntry())
{
case 192518:
uiStatue = instance->GetData64(DATA_SLAD_RAN_STATUE);
@@ -545,8 +546,8 @@ public:
if (!instance->GetData64(DATA_STATUE_ACTIVATE))
{
instance->SetData64(DATA_STATUE_ACTIVATE, uiStatue);
- pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- pGO->SetGoState(GO_STATE_ACTIVE);
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ go->SetGoState(GO_STATE_ACTIVE);
}
return true;
}
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 70b07c61e79..d091a87dbfe 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -103,6 +103,7 @@ enum Spells
SPELL_UNSTABLE = 72059,
SPELL_KINETIC_BOMB_VISUAL = 72054,
SPELL_KINETIC_BOMB_EXPLOSION = 72052,
+ SPELL_KINETIC_BOMB_KNOCKBACK = 72087,
// Shock Vortex
SPELL_SHOCK_VORTEX_PERIODIC = 71945,
@@ -210,19 +211,19 @@ class boss_blood_council_controller : public CreatureScript
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
{
- instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, keleseth);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, keleseth);
DoZoneInCombat(keleseth);
}
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
{
- instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, taldaram);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, taldaram);
DoZoneInCombat(taldaram);
}
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
{
- instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, valanar);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, valanar);
DoZoneInCombat(valanar);
}
@@ -412,12 +413,12 @@ class boss_prince_keleseth_icc : public CreatureScript
summons.DespawnAll();
Talk(SAY_KELESETH_DEATH);
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustReachedHome()
{
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->SetHealth(_spawnHealth);
_isEmpowered = false;
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
@@ -443,20 +444,12 @@ class boss_prince_keleseth_icc : public CreatureScript
{
summons.Summon(summon);
Position pos;
- pos.Relocate(summon);
+ me->GetPosition(&pos);
float maxRange = me->GetDistance2d(summon);
float angle = me->GetAngle(summon);
- // prevent spawning outside of room
- while (!me->IsWithinLOS(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ()))
- {
- maxRange -= 5.0f;
- if (maxRange < 5.0f)
- break;
-
- summon->MovePosition(pos, float(rand_norm() * maxRange), angle);
- }
-
+ me->MovePositionToFirstCollision(pos, maxRange, angle);
summon->NearTeleportTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation());
+ summon->ToTempSummon()->SetTempSummonType(TEMPSUMMON_CORPSE_DESPAWN);
}
void DamageDealt(Unit* /*target*/, uint32& damage, DamageEffectType damageType)
@@ -636,12 +629,12 @@ class boss_prince_taldaram_icc : public CreatureScript
summons.DespawnAll();
Talk(EMOTE_TALDARAM_DEATH);
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustReachedHome()
{
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->SetHealth(_spawnHealth);
_isEmpowered = false;
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
@@ -859,12 +852,12 @@ class boss_prince_valanar_icc : public CreatureScript
summons.DespawnAll();
Talk(SAY_VALANAR_DEATH);
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustReachedHome()
{
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->SetHealth(me->GetMaxHealth());
_isEmpowered = false;
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
@@ -894,6 +887,7 @@ class boss_prince_valanar_icc : public CreatureScript
summon->GetPosition(x, y, z);
float ground_Z = summon->GetMap()->GetHeight(summon->GetPhaseMask(), x, y, z, true, 500.0f);
summon->GetMotionMaster()->MovePoint(POINT_KINETIC_BOMB_IMPACT, x, y, ground_Z);
+ summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
break;
}
case NPC_SHOCK_VORTEX:
@@ -1058,7 +1052,7 @@ class npc_blood_queen_lana_thel : public CreatureScript
void Reset()
{
_events.Reset();
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
if (_instance->GetBossState(DATA_BLOOD_PRINCE_COUNCIL) == DONE)
{
me->SetVisible(false);
@@ -1073,7 +1067,7 @@ class npc_blood_queen_lana_thel : public CreatureScript
if (_introDone)
return;
- if (!me->IsWithinDistInMap(who, 35.0f))
+ if (!me->IsWithinDistInMap(who, 35.0f, false))
return;
_introDone = true;
@@ -1232,12 +1226,12 @@ class npc_kinetic_bomb : public CreatureScript
void Reset()
{
_events.Reset();
- me->SetDisplayId(DISPLAY_KINETIC_BOMB);
+ me->SetWalk(true);
me->CastSpell(me, SPELL_UNSTABLE, true);
me->CastSpell(me, SPELL_KINETIC_BOMB_VISUAL, true);
me->SetReactState(REACT_PASSIVE);
- me->SetSpeed(MOVE_FLIGHT, IsHeroic() ? 0.3f : 0.15f, true);
me->GetPosition(_x, _y, _groundZ);
+ me->DespawnOrUnsummon(60000);
_groundZ = me->GetMap()->GetHeight(me->GetPhaseMask(), _x, _y, _groundZ, true, 500.0f);
}
@@ -1247,9 +1241,9 @@ class npc_kinetic_bomb : public CreatureScript
_events.ScheduleEvent(EVENT_BOMB_DESPAWN, 1000);
else if (action == ACTION_KINETIC_BOMB_JUMP)
{
- me->GetMotionMaster()->Clear();
- me->GetMotionMaster()->MoveJump(_x, _y, me->GetPositionZ() + 7.0f, 1.0f, 7.0f);
- _events.ScheduleEvent(EVENT_CONTINUE_FALLING, 700);
+ if (!me->HasAura(SPELL_KINETIC_BOMB_KNOCKBACK))
+ me->GetMotionMaster()->MoveCharge(_x, _y, me->GetPositionZ() + 100.0f, me->GetSpeed(MOVE_RUN), 0);
+ _events.RescheduleEvent(EVENT_CONTINUE_FALLING, 3000);
}
}
@@ -1263,10 +1257,10 @@ class npc_kinetic_bomb : public CreatureScript
{
case EVENT_BOMB_DESPAWN:
me->SetVisible(false);
+ me->DespawnOrUnsummon(5000);
break;
case EVENT_CONTINUE_FALLING:
- me->GetMotionMaster()->Clear();
- me->GetMotionMaster()->MovePoint(POINT_KINETIC_BOMB_IMPACT, _x, _y, _groundZ);
+ me->GetMotionMaster()->MoveCharge(_x, _y, _groundZ, me->GetSpeed(MOVE_WALK), POINT_KINETIC_BOMB_IMPACT);
break;
default:
break;
@@ -1329,17 +1323,16 @@ class npc_dark_nucleus : public CreatureScript
void DamageTaken(Unit* attacker, uint32& /*damage*/)
{
- if (attacker == me)
+ if (attacker == me || attacker == me->getVictim())
return;
- if (!_lockedTarget)
- if (me->getVictim() == attacker)
- _lockedTarget = true;
+ me->DeleteThreatList();
+ me->AddThreat(attacker, 500000000.0f);
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(uint32 const diff)
{
- if (!me->isInCombat())
+ if (!UpdateVictim())
return;
if (_targetAuraCheck <= diff)
@@ -1355,23 +1348,6 @@ class npc_dark_nucleus : public CreatureScript
}
else
_targetAuraCheck -= diff;
-
- if (!_lockedTarget)
- {
- if (Unit* victim = me->SelectVictim())
- {
- if (me->getVictim() && me->getVictim() != victim)
- {
- me->getVictim()->RemoveAurasDueToSpell(SPELL_SHADOW_RESONANCE_RESIST, me->GetGUID());
- _lockedTarget = true;
- }
-
- _lockedTarget = true;
- AttackStart(victim);
- DoCast(victim, SPELL_SHADOW_RESONANCE_RESIST);
- me->ClearUnitState(UNIT_STATE_CASTING);
- }
- }
}
private:
@@ -1521,10 +1497,11 @@ class spell_valanar_kinetic_bomb : public SpellScriptLoader
void ChangeSummonPos(SpellEffIndex /*effIndex*/)
{
- WorldLocation summonPos = *GetTargetDest();
+ WorldLocation summonPos = *GetExplTargetDest();
Position offset = {0.0f, 0.0f, 20.0f, 0.0f};
summonPos.RelocateOffset(offset);
- SetTargetDest(summonPos);
+ SetExplTargetDest(summonPos);
+ GetHitDest()->RelocateOffset(offset);
}
void Register()
@@ -1586,7 +1563,7 @@ class spell_valanar_kinetic_bomb_knockback : public SpellScriptLoader
void Register()
{
- AfterHit += SpellHitFn(spell_valanar_kinetic_bomb_knockback_SpellScript::KnockIntoAir);
+ BeforeHit += SpellHitFn(spell_valanar_kinetic_bomb_knockback_SpellScript::KnockIntoAir);
}
};
@@ -1663,7 +1640,7 @@ class spell_blood_council_shadow_prison_damage : public SpellScriptLoader
void AddExtraDamage()
{
if (Aura* aur = GetHitUnit()->GetAura(GetSpellInfo()->Id))
- if (AuraEffect const* eff = aur->GetEffect(1))
+ if (AuraEffect const* eff = aur->GetEffect(EFFECT_1))
SetHitDamage(GetHitDamage() + eff->GetAmount());
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 79a577f6591..ee966256e2b 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -149,7 +149,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
events.ScheduleEvent(EVENT_SWARMING_SHADOWS, 30500, EVENT_GROUP_NORMAL);
events.ScheduleEvent(EVENT_TWILIGHT_BLOODBOLT, urand(20000, 25000), EVENT_GROUP_NORMAL);
events.ScheduleEvent(EVENT_AIR_PHASE, 124000 + uint32(Is25ManRaid() ? 3000 : 0));
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
+ CleanAuras();
me->SetSpeed(MOVE_FLIGHT, 0.642857f, true);
_offtank = NULL;
_vampires.clear();
@@ -170,6 +170,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
DoZoneInCombat();
Talk(SAY_AGGRO);
instance->SetBossState(DATA_BLOOD_QUEEN_LANA_THEL, IN_PROGRESS);
+ CleanAuras();
DoCast(me, SPELL_SHROUD_OF_SORROW, true);
DoCast(me, SPELL_FRENZIED_BLOODTHIRST_VISUAL, true);
@@ -180,15 +181,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
{
_JustDied();
Talk(SAY_DEATH);
- instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN);
- instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR);
- instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST);
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DAMAGE);
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_VISUAL);
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DUMMY);
- instance->DoRemoveAurasDueToSpellOnPlayers(DELIRIOUS_SLASH);
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PACT_OF_THE_DARKFALLEN);
+ CleanAuras();
// Blah, credit the quest
if (_creditBloodQuickening)
{
@@ -198,8 +191,8 @@ class boss_blood_queen_lana_thel : public CreatureScript
if (Creature* minchar = me->FindNearestCreature(NPC_INFILTRATOR_MINCHAR_BQ, 200.0f))
{
minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- minchar->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
- minchar->SetFlying(false);
+ minchar->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
+ minchar->SetCanFly(false);
minchar->SendMovementFlagUpdate();
minchar->RemoveAllAuras();
minchar->GetMotionMaster()->MoveCharge(4629.3711f, 2782.6089f, 401.5301f, SPEED_CHARGE/3.0f);
@@ -207,6 +200,19 @@ class boss_blood_queen_lana_thel : public CreatureScript
}
}
+ void CleanAuras()
+ {
+ instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN);
+ instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR);
+ instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DAMAGE);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_VISUAL);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DUMMY);
+ instance->DoRemoveAurasDueToSpellOnPlayers(DELIRIOUS_SLASH);
+ instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PACT_OF_THE_DARKFALLEN);
+ }
+
void DoAction(int32 const action)
{
if (action != ACTION_KILL_MINCHAR)
@@ -216,9 +222,9 @@ class boss_blood_queen_lana_thel : public CreatureScript
_killMinchar = true;
else
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
- me->SetFlying(true);
+ me->SetDisableGravity(true);
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
+ me->SetCanFly(true);
me->SendMovementFlagUpdate();
me->GetMotionMaster()->MovePoint(POINT_MINCHAR, mincharPos);
}
@@ -227,12 +233,13 @@ class boss_blood_queen_lana_thel : public CreatureScript
void EnterEvadeMode()
{
_EnterEvadeMode();
+ CleanAuras();
if (_killMinchar)
{
_killMinchar = false;
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
- me->SetFlying(true);
+ me->SetDisableGravity(true);
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
+ me->SetCanFly(true);
me->GetMotionMaster()->MovePoint(POINT_MINCHAR, mincharPos);
}
else
@@ -244,9 +251,9 @@ class boss_blood_queen_lana_thel : public CreatureScript
void JustReachedHome()
{
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
- me->SetFlying(false);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
+ me->SetCanFly(false);
me->SetReactState(REACT_AGGRESSIVE);
_JustReachedHome();
Talk(SAY_WIPE);
@@ -295,9 +302,9 @@ class boss_blood_queen_lana_thel : public CreatureScript
events.ScheduleEvent(EVENT_AIR_FLY_DOWN, 10000);
break;
case POINT_GROUND:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
- me->SetFlying(false);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
+ me->SetCanFly(false);
me->SendMovementFlagUpdate();
me->SetReactState(REACT_AGGRESSIVE);
if (Unit* victim = me->SelectVictim())
@@ -372,7 +379,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
break;
}
case EVENT_DELIRIOUS_SLASH:
- if (_offtank && !me->HasByteFlag(UNIT_FIELD_BYTES_1, 3, 0x03))
+ if (_offtank && !me->HasByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER))
DoCast(_offtank, SPELL_DELIRIOUS_SLASH);
events.ScheduleEvent(EVENT_DELIRIOUS_SLASH, urand(20000, 24000), EVENT_GROUP_NORMAL);
break;
@@ -386,7 +393,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
++targetCount;
if (Is25ManRaid())
++targetCount;
- Trinity::RandomResizeList<Player*>(targets, targetCount);
+ Trinity::Containers::RandomResizeList<Player*>(targets, targetCount);
if (targets.size() > 1)
{
Talk(SAY_PACT_OF_THE_DARKFALLEN);
@@ -409,7 +416,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
{
std::list<Player*> targets;
SelectRandomTarget(false, &targets);
- Trinity::RandomResizeList<Player*>(targets, uint32(Is25ManRaid() ? 4 : 2));
+ Trinity::Containers::RandomResizeList<Player*>(targets, uint32(Is25ManRaid() ? 4 : 2));
for (std::list<Player*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)
DoCast(*itr, SPELL_TWILIGHT_BLOODBOLT);
DoCast(me, SPELL_TWILIGHT_BLOODBOLT_TARGET);
@@ -424,9 +431,9 @@ class boss_blood_queen_lana_thel : public CreatureScript
me->GetMotionMaster()->MovePoint(POINT_CENTER, centerPos);
break;
case EVENT_AIR_START_FLYING:
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
- me->SetFlying(true);
+ me->SetDisableGravity(true);
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND);
+ me->SetCanFly(true);
me->SendMovementFlagUpdate();
me->GetMotionMaster()->MovePoint(POINT_AIR, airPos);
break;
@@ -481,7 +488,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
return tempTargets.front();
}
- return SelectRandomContainerElement(tempTargets);
+ return Trinity::Containers::SelectRandomContainerElement(tempTargets);
}
std::set<uint64> _vampires;
@@ -522,7 +529,7 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader
SpellCastResult CheckTarget()
{
- if (IsVampire(GetTargetUnit()))
+ if (IsVampire(GetExplTargetUnit()))
{
SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_CANT_TARGET_VAMPIRES);
return SPELL_FAILED_CUSTOM_ERROR;
@@ -658,7 +665,7 @@ class spell_blood_queen_bloodbolt : public SpellScriptLoader
{
uint32 targetCount = (targets.size() + 2) / 3;
targets.remove_if (BloodboltHitCheck(static_cast<LanaThelAI*>(GetCaster()->GetAI())));
- Trinity::RandomResizeList(targets, targetCount);
+ Trinity::Containers::RandomResizeList(targets, targetCount);
// mark targets now, effect hook has missile travel time delay (might cast next in that time)
for (std::list<Unit*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr)
GetCaster()->GetAI()->SetGUID((*itr)->GetGUID(), GUID_BLOODBOLT);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 3c795187f43..494be259baa 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -39,6 +39,7 @@ enum ScriptTexts
SAY_FRENZY = 11,
SAY_BERSERK = 12,
SAY_DEATH = 13,
+ EMOTE_SCENT_OF_BLOOD = 14,
// High Overlord Saurfang
SAY_INTRO_HORDE_1 = 0,
@@ -111,6 +112,8 @@ enum Spells
SPELL_RIDE_VEHICLE = 70640, // Outro
SPELL_ACHIEVEMENT = 72928,
+ SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION = 72257,
+ SPELL_PERMANENT_FEIGN_DEATH = 70628,
};
// Helper to get id of the aura on different modes (HasAura(baseId) wont work)
@@ -143,6 +146,7 @@ enum EventTypes
EVENT_BOILING_BLOOD = 20,
EVENT_BLOOD_NOVA = 21,
EVENT_RUNE_OF_BLOOD = 22,
+ EVENT_SCENT_OF_BLOOD = 52,
EVENT_OUTRO_ALLIANCE_1 = 23,
EVENT_OUTRO_ALLIANCE_2 = 24,
@@ -254,6 +258,7 @@ class boss_deathbringer_saurfang : public CreatureScript
me->SetReactState(REACT_DEFENSIVE);
events.SetPhase(PHASE_COMBAT);
_frenzied = false;
+ _dead = false;
me->SetPower(POWER_ENERGY, 0);
DoCast(me, SPELL_ZERO_POWER, true);
DoCast(me, SPELL_BLOOD_LINK, true);
@@ -266,6 +271,9 @@ class boss_deathbringer_saurfang : public CreatureScript
void EnterCombat(Unit* who)
{
+ if (_dead)
+ return;
+
if (!instance->CheckRequiredBosses(DATA_DEATHBRINGER_SAURFANG, who->ToPlayer()))
{
EnterEvadeMode();
@@ -291,7 +299,7 @@ class boss_deathbringer_saurfang : public CreatureScript
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SUMMON_BLOOD_BEAST, 30000, 0, PHASE_COMBAT);
- events.ScheduleEvent(EVENT_BERSERK, 480000, 0, PHASE_COMBAT);
+ events.ScheduleEvent(EVENT_BERSERK, IsHeroic() ? 360000 : 480000, 0, PHASE_COMBAT);
events.ScheduleEvent(EVENT_BOILING_BLOOD, 15500, 0, PHASE_COMBAT);
events.ScheduleEvent(EVENT_BLOOD_NOVA, 17000, 0, PHASE_COMBAT);
events.ScheduleEvent(EVENT_RUNE_OF_BLOOD, 20000, 0, PHASE_COMBAT);
@@ -303,13 +311,6 @@ class boss_deathbringer_saurfang : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- _JustDied();
- DoCast(me, SPELL_ACHIEVEMENT, true);
- Talk(SAY_DEATH);
-
- instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MARK_OF_THE_FALLEN_CHAMPION);
- if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SAURFANG_EVENT_NPC)))
- creature->AI()->DoAction(ACTION_START_OUTRO);
}
void AttackStart(Unit* victim)
@@ -340,14 +341,34 @@ class boss_deathbringer_saurfang : public CreatureScript
Talk(SAY_KILL);
}
- void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
+ void DamageTaken(Unit* /*attacker*/, uint32& damage)
{
+ if (damage >= me->GetHealth())
+ damage = me->GetHealth() - 1;
+
if (!_frenzied && HealthBelowPct(31)) // AT 30%, not below
{
_frenzied = true;
DoCast(me, SPELL_FRENZY);
Talk(SAY_FRENZY);
}
+
+ if (!_dead && me->GetHealth() < FightWonValue)
+ {
+ _dead = true;
+ _JustDied();
+ _EnterEvadeMode();
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+
+ DoCastAOE(SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION);
+ DoCast(me, SPELL_ACHIEVEMENT, true);
+ Talk(SAY_DEATH);
+
+ //instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MARK_OF_THE_FALLEN_CHAMPION);
+ DoCast(me, SPELL_PERMANENT_FEIGN_DEATH);
+ if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SAURFANG_EVENT_NPC)))
+ creature->AI()->DoAction(ACTION_START_OUTRO);
+ }
}
void JustSummoned(Creature* summon)
@@ -355,16 +376,13 @@ class boss_deathbringer_saurfang : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
summon->AI()->AttackStart(target);
- if (IsHeroic())
- DoCast(summon, SPELL_SCENT_OF_BLOOD);
-
- summon->AI()->DoCast(summon, SPELL_BLOOD_LINK_BEAST, true);
- summon->AI()->DoCast(summon, SPELL_RESISTANT_SKIN, true);
+ summon->CastSpell(summon, SPELL_BLOOD_LINK_BEAST, true);
+ summon->CastSpell(summon, SPELL_RESISTANT_SKIN, true);
summons.Summon(summon);
DoZoneInCombat(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/)
{
summons.Despawn(summon);
}
@@ -444,18 +462,13 @@ class boss_deathbringer_saurfang : public CreatureScript
DoCast(me, SPELL_SUMMON_BLOOD_BEAST_25_MAN+i25);
Talk(SAY_BLOOD_BEASTS);
events.ScheduleEvent(EVENT_SUMMON_BLOOD_BEAST, 40000, 0, PHASE_COMBAT);
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_SCENT_OF_BLOOD, 10000, 0, PHASE_COMBAT);
break;
case EVENT_BLOOD_NOVA:
- {
- // select at range only
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, -10.0f, true);
- if (!target)
- target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true); // noone? select melee
- if (target)
- DoCast(target, SPELL_BLOOD_NOVA_TRIGGER);
+ DoCastAOE(SPELL_BLOOD_NOVA_TRIGGER);
events.ScheduleEvent(EVENT_BLOOD_NOVA, urand(20000, 25000), 0, PHASE_COMBAT);
break;
- }
case EVENT_RUNE_OF_BLOOD:
DoCastVictim(SPELL_RUNE_OF_BLOOD);
events.ScheduleEvent(EVENT_RUNE_OF_BLOOD, urand(20000, 25000), 0, PHASE_COMBAT);
@@ -468,6 +481,13 @@ class boss_deathbringer_saurfang : public CreatureScript
DoCast(me, SPELL_BERSERK);
Talk(SAY_BERSERK);
break;
+ case EVENT_SCENT_OF_BLOOD:
+ if (!summons.empty())
+ {
+ Talk(EMOTE_SCENT_OF_BLOOD);
+ DoCastAOE(SPELL_SCENT_OF_BLOOD);
+ }
+ break;
default:
break;
}
@@ -542,10 +562,13 @@ class boss_deathbringer_saurfang : public CreatureScript
}
}
+ static uint32 const FightWonValue;
+
private:
uint32 _fallenChampionCastCount;
bool _introDone;
bool _frenzied; // faster than iterating all auras to find Frenzy
+ bool _dead;
};
CreatureAI* GetAI(Creature* creature) const
@@ -554,6 +577,8 @@ class boss_deathbringer_saurfang : public CreatureScript
}
};
+uint32 const boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::FightWonValue = 100000;
+
class npc_high_overlord_saurfang_icc : public CreatureScript
{
public:
@@ -605,10 +630,8 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
_events.ScheduleEvent(EVENT_OUTRO_HORDE_3, 18000); // say
_events.ScheduleEvent(EVENT_OUTRO_HORDE_4, 24000); // cast
_events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 30000); // move
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SendMovementFlagUpdate();
- me->Relocate(me->GetPositionX(), me->GetPositionY(), 539.2917f);
- me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 539.2917f, 0.0f);
+ me->SetDisableGravity(false);
+ me->GetMotionMaster()->MoveFall();
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
(*itr)->AI()->DoAction(ACTION_DESPAWN);
break;
@@ -629,7 +652,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
{
if (spell->Id == SPELL_GRIP_OF_AGONY)
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(POINT_CHOKE, chokePos[0]);
}
}
@@ -641,7 +664,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
switch (id)
{
case POINT_FIRST_STEP:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
Talk(SAY_INTRO_HORDE_3);
_events.ScheduleEvent(EVENT_INTRO_HORDE_5, 15500, 0, PHASE_INTRO_H);
_events.ScheduleEvent(EVENT_INTRO_HORDE_6, 29500, 0, PHASE_INTRO_H);
@@ -655,7 +678,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
{
deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true); // for the packet logs.
deathbringer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- deathbringer->setDeathState(ALIVE);
+ deathbringer->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED);
}
_events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 1000); // move
_events.ScheduleEvent(EVENT_OUTRO_HORDE_6, 4000); // say
@@ -687,7 +710,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
switch (eventId)
{
case EVENT_INTRO_HORDE_3:
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_FIRST_STEP, firstStepPos.GetPositionX(), firstStepPos.GetPositionY(), firstStepPos.GetPositionZ());
break;
case EVENT_INTRO_HORDE_5:
@@ -718,7 +741,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
{
float x, y, z;
deathbringer->GetClosePoint(x, y, z, deathbringer->GetObjectSize());
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_CORPSE, x, y, z);
}
break;
@@ -812,12 +835,14 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
{
me->RemoveAurasDueToSpell(SPELL_GRIP_OF_AGONY);
Talk(SAY_OUTRO_ALLIANCE_1);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SendMovementFlagUpdate();
- me->Relocate(me->GetPositionX(), me->GetPositionY(), 539.2917f);
- me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 539.2917f, 0.0f);
+ me->SetDisableGravity(false);
+ me->GetMotionMaster()->MoveFall();
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
(*itr)->AI()->DoAction(ACTION_DESPAWN);
+
+ // temp until outro fully done - to put deathbringer on respawn timer (until next reset)
+ if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
+ deathbringer->DespawnOrUnsummon(5000);
break;
}
case ACTION_INTERRUPT_INTRO:
@@ -832,7 +857,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
{
if (spell->Id == SPELL_GRIP_OF_AGONY)
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(POINT_CHOKE, chokePos[0]);
}
}
@@ -841,7 +866,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
{
if (type == POINT_MOTION_TYPE && id == POINT_FIRST_STEP)
{
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
Talk(SAY_INTRO_ALLIANCE_4);
_events.ScheduleEvent(EVENT_INTRO_ALLIANCE_5, 5000, 0, PHASE_INTRO_A);
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
@@ -865,7 +890,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
switch (eventId)
{
case EVENT_INTRO_ALLIANCE_4:
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_FIRST_STEP, firstStepPos.GetPositionX(), firstStepPos.GetPositionY(), firstStepPos.GetPositionZ());
break;
case EVENT_INTRO_ALLIANCE_5:
@@ -934,7 +959,7 @@ class npc_saurfang_event : public CreatureScript
{
if (spell->Id == SPELL_GRIP_OF_AGONY)
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(POINT_CHOKE, chokePos[_index]);
}
}
@@ -1175,6 +1200,9 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
void FilterTargetsInitial(std::list<Unit*>& unitList)
{
+ if (unitList.empty())
+ return;
+
// select one random target, with preference of ranged targets
uint32 targetsAtRange = 0;
uint32 const minTargets = uint32(GetCaster()->GetMap()->GetSpawnMode() & 1 ? 10 : 4);
@@ -1189,7 +1217,9 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
if (targetsAtRange < minTargets)
targetsAtRange = std::min<uint32>(unitList.size() - 1, minTargets);
- target = SelectRandomContainerElement(unitList);
+ std::list<Unit*>::const_iterator itr = unitList.begin();
+ std::advance(itr, urand(0, targetsAtRange));
+ target = *itr;
unitList.clear();
unitList.push_back(target);
}
@@ -1204,10 +1234,16 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
unitList.push_back(target);
}
+ void HandleForceCast(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), TRIGGERED_FULL_MASK);
+ }
+
void Register()
{
OnUnitTargetSelect += SpellUnitTargetFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnUnitTargetSelect += SpellUnitTargetFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsSubsequent, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
+ OnEffectHitTarget += SpellEffectFn(spell_deathbringer_blood_nova_targeting_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
Unit* target;
@@ -1239,7 +1275,7 @@ class spell_deathbringer_boiling_blood : public SpellScriptLoader
if (unitList.empty())
return;
- Unit* target = SelectRandomContainerElement(unitList);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
@@ -1256,6 +1292,33 @@ class spell_deathbringer_boiling_blood : public SpellScriptLoader
}
};
+class spell_deathbringer_remove_marks : public SpellScriptLoader
+{
+ public:
+ spell_deathbringer_remove_marks() : SpellScriptLoader("spell_deathbringer_remove_marks") { }
+
+ class spell_deathbringer_remove_marks_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_deathbringer_remove_marks_SpellScript);
+
+ void HandleScript(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+ GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_deathbringer_remove_marks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_deathbringer_remove_marks_SpellScript();
+ }
+};
+
class achievement_ive_gone_and_made_a_mess : public AchievementCriteriaScript
{
public:
@@ -1285,5 +1348,6 @@ void AddSC_boss_deathbringer_saurfang()
new spell_deathbringer_blood_nova();
new spell_deathbringer_blood_nova_targeting();
new spell_deathbringer_boiling_blood();
+ new spell_deathbringer_remove_marks();
new achievement_ive_gone_and_made_a_mess();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
index a97c6f7d138..58856f9fb44 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
@@ -328,7 +328,7 @@ class npc_stinky_icc : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* festergut = me->GetCreature(*me, _instance->GetData64(DATA_FESTERGUT)))
if (festergut->isAlive())
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 6edf3fe300b..0515ba83480 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -605,7 +605,7 @@ class boss_lady_deathwhisper : public CreatureScript
return;
// select random cultist
- Creature* cultist = SelectRandomContainerElement(temp);
+ Creature* cultist = Trinity::Containers::SelectRandomContainerElement(temp);
DoCast(cultist, cultist->GetEntry() == NPC_CULT_FANATIC ? SPELL_DARK_TRANSFORMATION_T : SPELL_DARK_EMPOWERMENT_T, true);
Talk(uint8(cultist->GetEntry() == NPC_CULT_FANATIC ? SAY_DARK_TRANSFORMATION : SAY_DARK_EMPOWERMENT));
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index 8623fcfde81..a0fca522f61 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -64,6 +64,9 @@ enum Spells
SPELL_MALLEABLE_GOO = 70852,
SPELL_UNSTABLE_EXPERIMENT = 70351,
SPELL_TEAR_GAS = 71617, // phase transition
+ SPELL_TEAR_GAS_CREATURE = 71618,
+ SPELL_TEAR_GAS_CANCEL = 71620,
+ SPELL_TEAR_GAS_PERIODIC_TRIGGER = 73170,
SPELL_CREATE_CONCOCTION = 71621,
SPELL_GUZZLE_POTIONS = 71893,
SPELL_OOZE_TANK_PROTECTION = 71770, // protects the tank
@@ -86,6 +89,7 @@ enum Spells
SPELL_GASEOUS_BLOAT_PROC = 70215,
SPELL_GASEOUS_BLOAT = 70672,
SPELL_GASEOUS_BLOAT_PROTECTION = 70812,
+ SPELL_EXPUNGED_GAS = 70701,
// Volatile Ooze
SPELL_OOZE_ERUPTION = 70492,
@@ -167,6 +171,33 @@ enum PutricideData
#define EXPERIMENT_STATE_OOZE false
#define EXPERIMENT_STATE_GAS true
+class AbominationDespawner
+{
+ public:
+ explicit AbominationDespawner(Unit* owner) : _owner(owner) { }
+
+ bool operator()(uint64 guid)
+ {
+ if (Unit* summon = ObjectAccessor::GetUnit(*_owner, guid))
+ {
+ if (summon->GetEntry() == NPC_MUTATED_ABOMINATION_10 || summon->GetEntry() == NPC_MUTATED_ABOMINATION_25)
+ {
+ if (Vehicle* veh = summon->GetVehicleKit())
+ veh->RemoveAllPassengers(); // also despawns the vehicle
+
+ return true;
+ }
+
+ return false;
+ }
+
+ return true;
+ }
+
+ private:
+ Unit* _owner;
+};
+
class boss_professor_putricide : public CreatureScript
{
public:
@@ -191,7 +222,7 @@ class boss_professor_putricide : public CreatureScript
SetPhase(PHASE_COMBAT_1);
_experimentState = EXPERIMENT_STATE_OOZE;
me->SetReactState(REACT_DEFENSIVE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
me->GetMotionMaster()->MovementExpired();
@@ -230,7 +261,7 @@ class boss_professor_putricide : public CreatureScript
void JustReachedHome()
{
_JustReachedHome();
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
if (events.GetPhaseMask() & PHASE_MASK_COMBAT)
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, FAIL);
}
@@ -477,8 +508,7 @@ class boss_professor_putricide : public CreatureScript
SetPhase(PHASE_COMBAT_3);
events.ScheduleEvent(EVENT_MUTATED_PLAGUE, 25000);
events.CancelEvent(EVENT_UNSTABLE_EXPERIMENT);
- summons.DespawnEntry(NPC_MUTATED_ABOMINATION_10);
- summons.DespawnEntry(NPC_MUTATED_ABOMINATION_25);
+ summons.remove_if(AbominationDespawner(me));
break;
default:
break;
@@ -514,7 +544,7 @@ class boss_professor_putricide : public CreatureScript
void UpdateAI(uint32 const diff)
{
- if ((!UpdateVictim() && !(events.GetPhaseMask() & PHASE_MASK_NOT_SELF)) || !CheckInRoom())
+ if ((!(events.GetPhaseMask() & PHASE_MASK_NOT_SELF) && !UpdateVictim()) || !CheckInRoom())
return;
events.Update(diff);
@@ -569,13 +599,15 @@ class boss_professor_putricide : public CreatureScript
break;
case EVENT_TEAR_GAS:
me->GetMotionMaster()->MovePoint(POINT_TABLE, tablePos);
+ DoCast(me, SPELL_TEAR_GAS_PERIODIC_TRIGGER, true);
break;
case EVENT_RESUME_ATTACK:
me->SetReactState(REACT_DEFENSIVE);
AttackStart(me->getVictim());
// remove Tear Gas
+ me->RemoveAurasDueToSpell(SPELL_TEAR_GAS_PERIODIC_TRIGGER);
instance->DoRemoveAurasDueToSpellOnPlayers(71615);
- instance->DoRemoveAurasDueToSpellOnPlayers(71618);
+ DoCastAOE(SPELL_TEAR_GAS_CANCEL);
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_GAS_VARIABLE);
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_OOZE_VARIABLE);
break;
@@ -673,27 +705,36 @@ class npc_volatile_ooze : public CreatureScript
public:
npc_volatile_ooze() : CreatureScript("npc_volatile_ooze") { }
- struct npc_volatile_oozeAI : public ScriptedAI
+ struct npc_putricide_oozeAI : public ScriptedAI
{
- npc_volatile_oozeAI(Creature* creature) : ScriptedAI(creature)
+ npc_putricide_oozeAI(Creature* creature) : ScriptedAI(creature)
{
_newTargetSelectTimer = 0;
}
void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
{
- if (!_newTargetSelectTimer && sSpellMgr->GetSpellDifficultyId(spell->Id) == sSpellMgr->GetSpellDifficultyId(SPELL_OOZE_ERUPTION))
+ if (!_newTargetSelectTimer && spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_OOZE_ERUPTION, me))
+ _newTargetSelectTimer = 1000;
+ }
+
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ {
+ if (spell->Id == SPELL_TEAR_GAS_CREATURE)
_newTargetSelectTimer = 1000;
}
void UpdateAI(uint32 const diff)
{
- if (!UpdateVictim())
+ if (!UpdateVictim() && !_newTargetSelectTimer)
return;
if (!_newTargetSelectTimer)
return;
+ if (me->HasAura(SPELL_TEAR_GAS_CREATURE))
+ return;
+
if (_newTargetSelectTimer <= diff)
{
_newTargetSelectTimer = 0;
@@ -704,13 +745,68 @@ class npc_volatile_ooze : public CreatureScript
}
private:
- // no need to use EventMap for just one event
uint32 _newTargetSelectTimer;
};
CreatureAI* GetAI(Creature* creature) const
{
- return GetIcecrownCitadelAI<npc_volatile_oozeAI>(creature);
+ return GetIcecrownCitadelAI<npc_putricide_oozeAI>(creature);
+ }
+};
+
+class npc_gas_cloud : public CreatureScript
+{
+ public:
+ npc_gas_cloud() : CreatureScript("npc_gas_cloud") { }
+
+ struct npc_gas_cloudAI : public ScriptedAI
+ {
+ npc_gas_cloudAI(Creature* creature) : ScriptedAI(creature)
+ {
+ _newTargetSelectTimer = 0;
+ }
+
+ void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell)
+ {
+ if (!_newTargetSelectTimer && spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_EXPUNGED_GAS, me))
+ _newTargetSelectTimer = 1000;
+ }
+
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell)
+ {
+ if (spell->Id == SPELL_TEAR_GAS_CREATURE)
+ _newTargetSelectTimer = 1000;
+ }
+
+ void UpdateAI(uint32 const diff)
+ {
+ if (!UpdateVictim() && !_newTargetSelectTimer)
+ return;
+
+ DoMeleeAttackIfReady();
+
+ if (!_newTargetSelectTimer)
+ return;
+
+ if (me->HasAura(SPELL_TEAR_GAS_CREATURE))
+ return;
+
+ if (_newTargetSelectTimer <= diff)
+ {
+ _newTargetSelectTimer = 0;
+ me->CastCustomSpell(SPELL_GASEOUS_BLOAT, SPELLVALUE_AURA_STACK, 10, me, false);
+ }
+ else
+ _newTargetSelectTimer -= diff;
+ }
+
+ private:
+ uint32 _newTargetSelectTimer;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return GetIcecrownCitadelAI<npc_gas_cloudAI>(creature);
}
};
@@ -729,8 +825,8 @@ class spell_putricide_gaseous_bloat : public SpellScriptLoader
if (Unit* caster = GetCaster())
{
target->RemoveAuraFromStack(GetSpellInfo()->Id, GetCasterGUID());
- if (!target->HasAura(GetId())&& caster->GetTypeId() == TYPEID_UNIT)
- caster->ToCreature()->DespawnOrUnsummon();
+ if (!target->HasAura(GetId()))
+ caster->CastCustomSpell(SPELL_GASEOUS_BLOAT, SPELLVALUE_AURA_STACK, 10, caster, false);
}
}
@@ -781,7 +877,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
return;
}
- Unit* target = SelectRandomContainerElement(targetList);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(targetList);
targetList.clear();
targetList.push_back(target);
_target = target;
@@ -797,7 +893,19 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
void StartAttack()
{
GetCaster()->ClearUnitState(UNIT_STATE_CASTING);
+ GetCaster()->DeleteThreatList();
GetCaster()->ToCreature()->AI()->AttackStart(GetHitUnit());
+ GetCaster()->AddThreat(GetHitUnit(), 500000000.0f); // value seen in sniff
+ }
+
+ // temporary, until SelectTarget are not called on empty lists
+ void CheckTarget()
+ {
+ if (_target)
+ return;
+
+ FinishCast(SPELL_FAILED_NO_VALID_TARGETS);
+ GetCaster()->ToCreature()->DespawnOrUnsummon(1); // despawn next update
}
void Register()
@@ -806,6 +914,7 @@ class spell_putricide_ooze_channel : public SpellScriptLoader
OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
AfterHit += SpellHitFn(spell_putricide_ooze_channel_SpellScript::StartAttack);
+ OnCast += SpellCastFn(spell_putricide_ooze_channel_SpellScript::CheckTarget);
}
Unit* _target;
@@ -905,13 +1014,13 @@ class spell_putricide_unstable_experiment : public SpellScriptLoader
uint32 stage = GetCaster()->ToCreature()->AI()->GetData(DATA_EXPERIMENT_STAGE);
Creature* target = NULL;
std::list<Creature*> creList;
- GetCreatureListWithEntryInGrid(creList, GetCaster(), NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 100.0f);
+ GetCreatureListWithEntryInGrid(creList, GetCaster(), NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 200.0f);
// 2 of them are spawned at green place - weird trick blizz
for (std::list<Creature*>::iterator itr = creList.begin(); itr != creList.end(); ++itr)
{
target = *itr;
std::list<Creature*> tmp;
- GetCreatureListWithEntryInGrid(tmp, target, NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 1.0f);
+ GetCreatureListWithEntryInGrid(tmp, target, NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER, 10.0f);
if ((!stage && tmp.size() > 1) || (stage && tmp.size() == 1))
break;
}
@@ -931,42 +1040,6 @@ class spell_putricide_unstable_experiment : public SpellScriptLoader
}
};
-class spell_putricide_ooze_summon : public SpellScriptLoader
-{
- public:
- spell_putricide_ooze_summon() : SpellScriptLoader("spell_putricide_ooze_summon") { }
-
- class spell_putricide_ooze_summon_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_putricide_ooze_summon_AuraScript);
-
- void HandleTriggerSpell(AuraEffect const* aurEff)
- {
- PreventDefaultAction();
- if (Unit* caster = GetCaster())
- {
- uint32 triggerSpellId = GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell;
- float x, y, z;
- GetTarget()->GetPosition(x, y, z);
- z = GetTarget()->GetMap()->GetHeight(GetTarget()->GetPhaseMask(), x, y, z, true, 25.0f);
- x += 10.0f * cosf(caster->GetOrientation());
- y += 10.0f * sinf(caster->GetOrientation());
- caster->CastSpell(x, y, z, triggerSpellId, true, NULL, NULL, GetCasterGUID());
- }
- }
-
- void Register()
- {
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_ooze_summon_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_putricide_ooze_summon_AuraScript();
- }
-};
-
class spell_putricide_ooze_eruption_searcher : public SpellScriptLoader
{
public:
@@ -1207,11 +1280,11 @@ class spell_putricide_mutation_init : public SpellScriptLoader
SpellCastResult CheckRequirementInternal(SpellCustomErrors& extendedError)
{
- InstanceScript* instance = GetTargetUnit()->GetInstanceScript();
+ InstanceScript* instance = GetExplTargetUnit()->GetInstanceScript();
if (!instance)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
- Creature* professor = ObjectAccessor::GetCreature(*GetTargetUnit(), instance->GetData64(DATA_PROFESSOR_PUTRICIDE));
+ Creature* professor = ObjectAccessor::GetCreature(*GetExplTargetUnit(), instance->GetData64(DATA_PROFESSOR_PUTRICIDE));
if (!professor)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
@@ -1232,17 +1305,17 @@ class spell_putricide_mutation_init : public SpellScriptLoader
SpellCastResult CheckRequirement()
{
- if (!GetTargetUnit())
+ if (!GetExplTargetUnit())
return SPELL_FAILED_BAD_TARGETS;
- if (GetTargetUnit()->GetTypeId() != TYPEID_PLAYER)
+ if (GetExplTargetUnit()->GetTypeId() != TYPEID_PLAYER)
return SPELL_FAILED_TARGET_NOT_PLAYER;
SpellCustomErrors extension = SPELL_CUSTOM_ERROR_NONE;
SpellCastResult result = CheckRequirementInternal(extension);
if (result != SPELL_CAST_OK)
{
- Spell::SendCastResult(GetTargetUnit()->ToPlayer(), GetSpellInfo(), 0, result, extension);
+ Spell::SendCastResult(GetExplTargetUnit()->ToPlayer(), GetSpellInfo(), 0, result, extension);
return result;
}
@@ -1429,14 +1502,15 @@ class spell_putricide_regurgitated_ooze : public SpellScriptLoader
}
};
-class spell_putricide_clear_mutated_plague : public SpellScriptLoader
+// Removes aura with id stored in effect value
+class spell_putricide_clear_aura_effect_value : public SpellScriptLoader
{
public:
- spell_putricide_clear_mutated_plague() : SpellScriptLoader("spell_putricide_clear_mutated_plague") { }
+ spell_putricide_clear_aura_effect_value() : SpellScriptLoader("spell_putricide_clear_aura_effect_value") { }
- class spell_putricide_clear_mutated_plague_SpellScript : public SpellScript
+ class spell_putricide_clear_aura_effect_value_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_putricide_clear_mutated_plague_SpellScript);
+ PrepareSpellScript(spell_putricide_clear_aura_effect_value_SpellScript);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1447,13 +1521,13 @@ class spell_putricide_clear_mutated_plague : public SpellScriptLoader
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_mutated_plague_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_aura_effect_value_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_putricide_clear_mutated_plague_SpellScript();
+ return new spell_putricide_clear_aura_effect_value_SpellScript();
}
};
@@ -1492,12 +1566,12 @@ void AddSC_boss_professor_putricide()
{
new boss_professor_putricide();
new npc_volatile_ooze();
+ new npc_gas_cloud();
new spell_putricide_gaseous_bloat();
new spell_putricide_ooze_channel();
new spell_putricide_slime_puddle();
new spell_putricide_slime_puddle_aura();
new spell_putricide_unstable_experiment();
- new spell_putricide_ooze_summon();
new spell_putricide_ooze_eruption_searcher();
new spell_putricide_choking_gas_bomb();
new spell_putricide_unbound_plague();
@@ -1508,6 +1582,6 @@ void AddSC_boss_professor_putricide()
new spell_putricide_mutated_transformation();
new spell_putricide_mutated_transformation_dmg();
new spell_putricide_regurgitated_ooze();
- new spell_putricide_clear_mutated_plague();
+ new spell_putricide_clear_aura_effect_value();
new spell_stinky_precious_decimate();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 9649b6c8ef8..a4ab13f6ada 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -441,6 +441,10 @@ class spell_rotface_ooze_flood : public SpellScriptLoader
std::list<Creature*> triggers;
GetHitUnit()->GetCreatureListWithEntryInGrid(triggers, GetHitUnit()->GetEntry(), 12.5f);
+
+ if (triggers.empty())
+ return;
+
triggers.sort(Trinity::ObjectDistanceOrderPred(GetHitUnit()));
GetHitUnit()->CastSpell(triggers.back(), uint32(GetEffectValue()), false, NULL, NULL, GetOriginalCaster() ? GetOriginalCaster()->GetGUID() : 0);
}
@@ -494,7 +498,7 @@ class spell_rotface_mutated_infection : public SpellScriptLoader
if (targets.empty())
return;
- Unit* target = SelectRandomContainerElement(targets);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(targets);
targets.clear();
targets.push_back(target);
_target = target;
@@ -712,13 +716,13 @@ class spell_rotface_unstable_ooze_explosion : public SpellScriptLoader
void CheckTarget(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(EFFECT_0);
- if (!GetTargetDest())
+ if (!GetExplTargetDest())
return;
uint32 triggered_spell_id = GetSpellInfo()->Effects[effIndex].TriggerSpell;
float x, y, z;
- GetTargetDest()->GetPosition(x, y, z);
+ GetExplTargetDest()->GetPosition(x, y, z);
// let Rotface handle the cast - caster dies before this executes
if (InstanceScript* script = GetCaster()->GetInstanceScript())
if (Creature* rotface = script->instance->GetCreature(script->GetData64(DATA_ROTFACE)))
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 1d9c3c14897..6039ace44ab 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -61,6 +61,7 @@ enum Spells
SPELL_ASPHYXIATION = 71665,
SPELL_FROST_BOMB_TRIGGER = 69846,
SPELL_FROST_BOMB_VISUAL = 70022,
+ SPELL_BIRTH_NO_VISUAL = 40031,
SPELL_FROST_BOMB = 69845,
SPELL_MYSTIC_BUFFET = 70128,
@@ -98,6 +99,8 @@ enum Events
EVENT_LAND = 12,
EVENT_AIR_MOVEMENT = 21,
EVENT_THIRD_PHASE_CHECK = 22,
+ EVENT_AIR_MOVEMENT_FAR = 23,
+ EVENT_LAND_GROUND = 24,
// Spinestalker
EVENT_BELLOWING_ROAR = 13,
@@ -133,6 +136,8 @@ enum MovementPoints
POINT_AIR_PHASE = 3,
POINT_TAKEOFF = 4,
POINT_LAND = 5,
+ POINT_AIR_PHASE_FAR = 6,
+ POINT_LAND_GROUND = 7,
};
enum Shadowmourne
@@ -152,6 +157,8 @@ Position const SindragosaSpawnPos = {4818.700f, 2483.710f, 287.0650f, 3.089233f
Position const SindragosaFlyPos = {4475.190f, 2484.570f, 234.8510f, 3.141593f};
Position const SindragosaLandPos = {4419.190f, 2484.570f, 203.3848f, 3.141593f};
Position const SindragosaAirPos = {4475.990f, 2484.430f, 247.9340f, 3.141593f};
+Position const SindragosaAirPosFar = {4525.600f, 2485.150f, 245.0820f, 3.141593f};
+Position const SindragosaFlyInPos = {4419.190f, 2484.360f, 232.5150f, 3.141593f};
class FrostwyrmLandEvent : public BasicEvent
{
@@ -169,6 +176,23 @@ class FrostwyrmLandEvent : public BasicEvent
Position const& _dest;
};
+class FrostBombExplosion : public BasicEvent
+{
+ public:
+ FrostBombExplosion(Creature* owner, uint64 sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { }
+
+ bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/)
+ {
+ _owner->CastSpell((Unit*)NULL, SPELL_FROST_BOMB, true, NULL, NULL, _sindragosaGUID);
+ _owner->RemoveAurasDueToSpell(SPELL_FROST_BOMB_VISUAL);
+ return true;
+ }
+
+ private:
+ Creature* _owner;
+ uint64 _sindragosaGUID;
+};
+
class boss_sindragosa : public CreatureScript
{
public:
@@ -198,8 +222,8 @@ class boss_sindragosa : public CreatureScript
if (instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) != 255)
{
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(true);
+ me->SetDisableGravity(true);
}
}
@@ -228,8 +252,8 @@ class boss_sindragosa : public CreatureScript
{
BossAI::JustReachedHome();
instance->SetBossState(DATA_SINDRAGOSA, FAIL);
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
}
void KilledUnit(Unit* victim)
@@ -250,6 +274,9 @@ class boss_sindragosa : public CreatureScript
return;
me->setActive(true);
+ me->SetCanFly(true);
+ me->SetDisableGravity(true);
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetSpeed(MOVE_FLIGHT, 4.0f);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
float moveTime = me->GetExactDist(&SindragosaFlyPos) / (me->GetSpeed(MOVE_FLIGHT) * 0.001f);
@@ -275,11 +302,12 @@ class boss_sindragosa : public CreatureScript
{
case POINT_FROSTWYRM_LAND:
me->setActive(false);
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetHomePosition(SindragosaLandPos);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetSpeed(MOVE_FLIGHT, 2.0f);
+ me->SetSpeed(MOVE_FLIGHT, 2.5f);
// Sindragosa enters combat as soon as she lands
DoZoneInCombat();
@@ -289,19 +317,31 @@ class boss_sindragosa : public CreatureScript
break;
case POINT_AIR_PHASE:
me->CastCustomSpell(SPELL_ICE_TOMB_TARGET, SPELLVALUE_MAX_TARGETS, RAID_MODE<int32>(2, 5, 2, 6), NULL);
- events.ScheduleEvent(EVENT_FROST_BOMB, 8000);
+ me->SetFacingTo(float(M_PI));
+ events.ScheduleEvent(EVENT_AIR_MOVEMENT_FAR, 1);
+ events.ScheduleEvent(EVENT_FROST_BOMB, 9000);
+ break;
+ case POINT_AIR_PHASE_FAR:
+ me->SetFacingTo(float(M_PI));
+ events.ScheduleEvent(EVENT_LAND, 30000);
break;
case POINT_LAND:
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ events.ScheduleEvent(EVENT_LAND_GROUND, 1);
+ break;
+ case POINT_LAND_GROUND:
+ {
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetReactState(REACT_DEFENSIVE);
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
me->GetMotionMaster()->MovementExpired();
- DoStartMovement(me->getVictim());
_isInAirPhase = false;
// trigger Asphyxiation
- summons.DoAction(NPC_ICE_TOMB, ACTION_TRIGGER_ASPHYXIATION);
+ EntryCheckPredicate pred(NPC_ICE_TOMB);
+ summons.DoAction(ACTION_TRIGGER_ASPHYXIATION, pred);
break;
+ }
default:
break;
}
@@ -320,6 +360,12 @@ class boss_sindragosa : public CreatureScript
void JustSummoned(Creature* summon)
{
summons.Summon(summon);
+ if (summon->GetEntry() == NPC_FROST_BOMB)
+ {
+ summon->CastSpell(summon, SPELL_FROST_BOMB_VISUAL, true);
+ summon->CastSpell(summon, SPELL_BIRTH_NO_VISUAL, true);
+ summon->m_Events.AddEvent(new FrostBombExplosion(summon, me->GetGUID()), summon->m_Events.CalculateTime(5500));
+ }
}
void SummonedCreatureDespawn(Creature* summon)
@@ -332,18 +378,25 @@ class boss_sindragosa : public CreatureScript
void SpellHitTarget(Unit* target, SpellInfo const* spell)
{
if (uint32 spellId = sSpellMgr->GetSpellIdForDifficulty(70127, me))
+ {
if (spellId == spell->Id)
+ {
if (Aura const* mysticBuffet = target->GetAura(spell->Id))
_mysticBuffetStack = std::max<uint8>(_mysticBuffetStack, mysticBuffet->GetStackAmount());
+ return;
+ }
+ }
+
// Frost Infusion
if (Player* player = target->ToPlayer())
{
if (uint32 spellId = sSpellMgr->GetSpellIdForDifficulty(_isThirdPhase ? SPELL_FROST_BREATH_P2 : SPELL_FROST_BREATH_P1, me))
{
- if (player->GetQuestStatus(QUEST_FROST_INFUSION) == QUEST_STATUS_INCOMPLETE && spellId == spell->Id)
+ if (spellId == spell->Id)
{
- if (Item* shadowsEdge = player->GetWeaponForAttack(BASE_ATTACK, true))
+ Item* shadowsEdge = player->GetWeaponForAttack(BASE_ATTACK, true);
+ if (player->GetQuestStatus(QUEST_FROST_INFUSION) == QUEST_STATUS_INCOMPLETE && shadowsEdge)
{
if (!player->HasAura(SPELL_FROST_IMBUED_BLADE) && shadowsEdge->GetEntry() == ITEM_SHADOW_S_EDGE)
{
@@ -361,15 +414,11 @@ class boss_sindragosa : public CreatureScript
player->CastSpell(player, SPELL_FROST_INFUSION, true);
}
}
+
+ return;
}
}
}
-
- if (spell->Id == SPELL_FROST_BOMB_TRIGGER)
- {
- target->CastSpell(target, SPELL_FROST_BOMB, true);
- target->RemoveAurasDueToSpell(SPELL_FROST_BOMB_VISUAL);
- }
}
void UpdateAI(uint32 const diff)
@@ -410,7 +459,6 @@ class boss_sindragosa : public CreatureScript
break;
case EVENT_ICY_GRIP:
DoCast(me, SPELL_ICY_GRIP);
- events.ScheduleEvent(EVENT_ICY_GRIP, urand(70000, 75000), EVENT_GROUP_LAND_PHASE);
events.ScheduleEvent(EVENT_BLISTERING_COLD, 1000, EVENT_GROUP_LAND_PHASE);
break;
case EVENT_BLISTERING_COLD:
@@ -425,22 +473,25 @@ class boss_sindragosa : public CreatureScript
{
_isInAirPhase = true;
Talk(SAY_AIR_PHASE);
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(true);
+ me->SetDisableGravity(true);
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetReactState(REACT_PASSIVE);
+ me->AttackStop();
Position pos;
pos.Relocate(me);
pos.m_positionZ += 17.0f;
me->GetMotionMaster()->MoveTakeoff(POINT_TAKEOFF, pos, 8.30078125f);
- events.DelayEvents(45000, EVENT_GROUP_LAND_PHASE);
+ events.CancelEventGroup(EVENT_GROUP_LAND_PHASE);
events.ScheduleEvent(EVENT_AIR_PHASE, 110000);
- events.RescheduleEvent(EVENT_UNCHAINED_MAGIC, urand(55000, 60000), EVENT_GROUP_LAND_PHASE);
- events.ScheduleEvent(EVENT_LAND, 45000);
break;
}
case EVENT_AIR_MOVEMENT:
me->GetMotionMaster()->MovePoint(POINT_AIR_PHASE, SindragosaAirPos);
break;
+ case EVENT_AIR_MOVEMENT_FAR:
+ me->GetMotionMaster()->MovePoint(POINT_AIR_PHASE_FAR, SindragosaAirPosFar);
+ break;
case EVENT_ICE_TOMB:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_ICE_TOMB_UNTARGETABLE))
{
@@ -452,30 +503,28 @@ class boss_sindragosa : public CreatureScript
case EVENT_FROST_BOMB:
{
float destX, destY, destZ;
- destX = float(rand_norm()) * 117.25f + 4339.25f;
- if (destX > 4371.5f && destX < 4432.0f)
- destY = float(rand_norm()) * 111.0f + 2429.0f;
- else
- destY = float(rand_norm()) * 31.23f + 2454.64f;
+ destX = float(rand_norm()) * 75.0f + 4350.0f;
+ destY = float(rand_norm()) * 75.0f + 2450.0f;
destZ = 205.0f; // random number close to ground, get exact in next call
me->UpdateGroundPositionZ(destX, destY, destZ);
- Position pos;
- pos.Relocate(destX, destY, destZ, 0.0f);
- if (TempSummon* summ = me->SummonCreature(NPC_FROST_BOMB, pos, TEMPSUMMON_TIMED_DESPAWN, 40000))
- {
- summ->CastSpell(summ, SPELL_FROST_BOMB_VISUAL, true);
- DoCast(summ, SPELL_FROST_BOMB_TRIGGER);
- //me->CastSpell(destX, destY, destZ, SPELL_FROST_BOMB_TRIGGER, false);
- }
- events.ScheduleEvent(EVENT_FROST_BOMB, urand(5000, 10000));
+ me->CastSpell(destX, destY, destZ, SPELL_FROST_BOMB_TRIGGER, false);
+ events.ScheduleEvent(EVENT_FROST_BOMB, urand(6000, 8000));
break;
}
case EVENT_LAND:
{
events.CancelEvent(EVENT_FROST_BOMB);
- me->GetMotionMaster()->MovePoint(POINT_LAND, SindragosaLandPos);
+ me->GetMotionMaster()->MovePoint(POINT_LAND, SindragosaFlyInPos);
break;
}
+ case EVENT_LAND_GROUND:
+ events.ScheduleEvent(EVENT_CLEAVE, urand(13000, 15000), EVENT_GROUP_LAND_PHASE);
+ events.ScheduleEvent(EVENT_TAIL_SMASH, urand(19000, 23000), EVENT_GROUP_LAND_PHASE);
+ events.ScheduleEvent(EVENT_FROST_BREATH, urand(10000, 15000), EVENT_GROUP_LAND_PHASE);
+ events.ScheduleEvent(EVENT_UNCHAINED_MAGIC, urand(12000, 17000), EVENT_GROUP_LAND_PHASE);
+ events.ScheduleEvent(EVENT_ICY_GRIP, urand(35000, 40000), EVENT_GROUP_LAND_PHASE);
+ me->GetMotionMaster()->MoveLand(POINT_LAND_GROUND, SindragosaLandPos, 0.0f);
+ break;
case EVENT_THIRD_PHASE_CHECK:
{
if (!_isInAirPhase)
@@ -617,8 +666,8 @@ class npc_spinestalker : public CreatureScript
if (_instance->GetData(DATA_SPINESTALKER) != 255)
{
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(true);
+ me->SetDisableGravity(true);
}
}
@@ -660,9 +709,11 @@ class npc_spinestalker : public CreatureScript
return;
me->setActive(false);
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetHomePosition(SpinestalkerLandPos);
+ me->SetFacingTo(SpinestalkerLandPos.GetOrientation());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
@@ -742,8 +793,8 @@ class npc_rimefang : public CreatureScript
if (_instance->GetData(DATA_RIMEFANG) != 255)
{
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(true);
+ me->SetDisableGravity(true);
}
}
@@ -785,9 +836,11 @@ class npc_rimefang : public CreatureScript
return;
me->setActive(false);
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetCanFly(false);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetHomePosition(RimefangLandPos);
+ me->SetFacingTo(RimefangLandPos.GetOrientation());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
@@ -819,7 +872,7 @@ class npc_rimefang : public CreatureScript
_icyBlastCounter = RAID_MODE<uint8>(5, 7, 6, 8);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetFlying(true);
+ me->SetCanFly(true);
me->GetMotionMaster()->MovePoint(POINT_FROSTWYRM_FLY_IN, RimefangFlyPos);
float moveTime = me->GetExactDist(&RimefangFlyPos)/(me->GetSpeed(MOVE_FLIGHT)*0.001f);
_events.ScheduleEvent(EVENT_ICY_BLAST, uint64(moveTime) + urand(60000, 70000));
@@ -840,7 +893,7 @@ class npc_rimefang : public CreatureScript
{
me->SetReactState(REACT_DEFENSIVE);
AttackStart(victim);
- me->SetFlying(false);
+ me->SetCanFly(false);
}
break;
default:
@@ -1046,10 +1099,10 @@ class spell_sindragosa_unchained_magic : public SpellScriptLoader
void FilterTargets(std::list<Unit*>& unitList)
{
- unitList.remove_if (UnchainedMagicTargetSelector());
- uint32 maxSize = uint32(GetCaster()->GetMap()->GetSpawnMode() & 1 ? 5 : 2);
+ unitList.remove_if(UnchainedMagicTargetSelector());
+ uint32 maxSize = uint32(GetCaster()->GetMap()->GetSpawnMode() & 1 ? 6 : 2);
if (unitList.size() > maxSize)
- Trinity::RandomResizeList(unitList, maxSize);
+ Trinity::Containers::RandomResizeList(unitList, maxSize);
}
void Register()
@@ -1198,94 +1251,77 @@ class spell_sindragosa_ice_tomb : public SpellScriptLoader
}
};
-class FrostBombTargetSelector
-{
- public:
- FrostBombTargetSelector(Unit* caster, std::list<Creature*> const& collisionList) : _caster(caster), _collisionList(collisionList) { }
-
- bool operator()(Unit* unit)
- {
- if (unit->HasAura(SPELL_ICE_TOMB_DAMAGE))
- return true;
-
- for (std::list<Creature*>::const_iterator itr = _collisionList.begin(); itr != _collisionList.end(); ++itr)
- if ((*itr)->IsInBetween(_caster, unit))
- return true;
-
- return false;
- }
-
- private:
- Unit* _caster;
- std::list<Creature*> const& _collisionList;
-};
-
-class spell_sindragosa_collision_filter : public SpellScriptLoader
+class spell_sindragosa_icy_grip : public SpellScriptLoader
{
public:
- spell_sindragosa_collision_filter() : SpellScriptLoader("spell_sindragosa_collision_filter") { }
+ spell_sindragosa_icy_grip() : SpellScriptLoader("spell_sindragosa_icy_grip") { }
- class spell_sindragosa_collision_filter_SpellScript : public SpellScript
+ class spell_sindragosa_icy_grip_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_sindragosa_collision_filter_SpellScript);
+ PrepareSpellScript(spell_sindragosa_icy_grip_SpellScript);
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_ICE_TOMB_DAMAGE))
+ if (!sSpellMgr->GetSpellInfo(SPELL_ICY_GRIP_JUMP))
return false;
return true;
}
- void FilterTargets(std::list<Unit*>& unitList)
+ void HandleScript(SpellEffIndex effIndex)
{
- std::list<Creature*> tombs;
- GetCreatureListWithEntryInGrid(tombs, GetCaster(), NPC_ICE_TOMB, 200.0f);
- unitList.remove_if (FrostBombTargetSelector(GetCaster(), tombs));
+ PreventHitDefaultEffect(effIndex);
+ GetHitUnit()->CastSpell(GetCaster(), SPELL_ICY_GRIP_JUMP, true);
}
void Register()
{
- OnUnitTargetSelect += SpellUnitTargetFn(spell_sindragosa_collision_filter_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
+ OnEffectHitTarget += SpellEffectFn(spell_sindragosa_icy_grip_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_sindragosa_collision_filter_SpellScript();
+ return new spell_sindragosa_icy_grip_SpellScript();
}
};
-class spell_sindragosa_icy_grip : public SpellScriptLoader
+class MysticBuffetTargetFilter
{
public:
- spell_sindragosa_icy_grip() : SpellScriptLoader("spell_sindragosa_icy_grip") { }
+ explicit MysticBuffetTargetFilter(Unit* caster) : _caster(caster) { }
- class spell_sindragosa_icy_grip_SpellScript : public SpellScript
+ bool operator()(Unit* unit)
{
- PrepareSpellScript(spell_sindragosa_icy_grip_SpellScript);
+ return !unit->IsWithinLOSInMap(_caster);
+ }
- bool Validate(SpellInfo const* /*spell*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_ICY_GRIP_JUMP))
- return false;
- return true;
- }
+ private:
+ Unit* _caster;
+};
- void HandleScript(SpellEffIndex effIndex)
+class spell_sindragosa_mystic_buffet : public SpellScriptLoader
+{
+ public:
+ spell_sindragosa_mystic_buffet() : SpellScriptLoader("spell_sindragosa_mystic_buffet") { }
+
+ class spell_sindragosa_mystic_buffet_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_sindragosa_mystic_buffet_SpellScript);
+
+ void FilterTargets(std::list<Unit*>& unitList)
{
- PreventHitDefaultEffect(effIndex);
- GetHitUnit()->CastSpell(GetCaster(), SPELL_ICY_GRIP_JUMP, true);
+ unitList.remove_if(MysticBuffetTargetFilter(GetCaster()));
}
void Register()
{
- OnEffectHitTarget += SpellEffectFn(spell_sindragosa_icy_grip_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnUnitTargetSelect += SpellUnitTargetFn(spell_sindragosa_mystic_buffet_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const
{
- return new spell_sindragosa_icy_grip_SpellScript();
+ return new spell_sindragosa_mystic_buffet_SpellScript();
}
};
@@ -1308,7 +1344,7 @@ class spell_rimefang_icy_blast : public SpellScriptLoader
void HandleTriggerMissile(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
- if (Position const* pos = GetTargetDest())
+ if (Position const* pos = GetExplTargetDest())
if (TempSummon* summon = GetCaster()->SummonCreature(NPC_ICY_BLAST, *pos, TEMPSUMMON_TIMED_DESPAWN, 40000))
summon->CastSpell(summon, SPELL_ICY_BLAST_AREA, true);
}
@@ -1370,7 +1406,7 @@ class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
if (unitList.empty())
return;
- Unit* target = SelectRandomContainerElement(unitList);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
@@ -1387,7 +1423,7 @@ class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
if (unitList.empty())
return;
- SelectRandomContainerElement(unitList)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
+ Trinity::Containers::SelectRandomContainerElement(unitList)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
}
void Register()
@@ -1513,8 +1549,8 @@ void AddSC_boss_sindragosa()
new spell_sindragosa_instability();
new spell_sindragosa_frost_beacon();
new spell_sindragosa_ice_tomb();
- new spell_sindragosa_collision_filter();
new spell_sindragosa_icy_grip();
+ new spell_sindragosa_mystic_buffet();
new spell_rimefang_icy_blast();
new spell_frostwarden_handler_order_whelp();
new spell_frostwarden_handler_focus_fire();
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 fbed870eb19..4dab215d1da 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -26,6 +26,7 @@
#include "CellImpl.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
+#include "CreatureTextMgr.h"
#include "icecrown_citadel.h"
enum Texts
@@ -499,8 +500,8 @@ class boss_the_lich_king : public CreatureScript
{
_JustDied();
DoCastAOE(SPELL_PLAY_MOVIE, false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x03);
+ me->SetDisableGravity(false);
+ me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->GetMotionMaster()->MoveFall();
}
@@ -553,7 +554,8 @@ class boss_the_lich_king : public CreatureScript
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING)))
tirion->AI()->EnterEvadeMode();
DoCastAOE(SPELL_KILL_FROSTMOURNE_PLAYERS);
- summons.DoAction(NPC_STRANGULATE_VEHICLE, ACTION_TELEPORT_BACK);
+ EntryCheckPredicate pred(NPC_STRANGULATE_VEHICLE);
+ summons.DoAction(ACTION_TELEPORT_BACK, pred);
}
void KilledUnit(Unit* victim)
@@ -584,8 +586,8 @@ class boss_the_lich_king : public CreatureScript
SendLightOverride(0, 5000);
break;
case ACTION_BREAK_FROSTMOURNE:
- DoCastAOE(SPELL_SUMMON_BROKEN_FROSTMOURNE);
- DoCastAOE(SPELL_SUMMON_BROKEN_FROSTMOURNE_2);
+ me->CastSpell((Unit*)NULL, SPELL_SUMMON_BROKEN_FROSTMOURNE, TRIGGERED_IGNORE_CAST_IN_PROGRESS);
+ me->CastSpell((Unit*)NULL, SPELL_SUMMON_BROKEN_FROSTMOURNE_2, TRIGGERED_IGNORE_CAST_IN_PROGRESS);
SetEquipmentSlots(false, EQUIP_BROKEN_FROSTMOURNE);
events.ScheduleEvent(EVENT_OUTRO_TALK_6, 2500, 0, PHASE_OUTRO);
break;
@@ -594,12 +596,15 @@ class boss_the_lich_king : public CreatureScript
events.ScheduleEvent(EVENT_OUTRO_TALK_8, 17000, 0, PHASE_OUTRO);
break;
case ACTION_TELEPORT_BACK:
- summons.DoAction(NPC_STRANGULATE_VEHICLE, ACTION_TELEPORT_BACK);
+ {
+ EntryCheckPredicate pred(NPC_STRANGULATE_VEHICLE);
+ summons.DoAction(ACTION_TELEPORT_BACK, pred);
if (!IsHeroic())
Talk(SAY_LK_FROSTMOURNE_ESCAPE);
else
DoCastAOE(SPELL_TRIGGER_VILE_SPIRIT_HEROIC);
break;
+ }
default:
break;
}
@@ -660,7 +665,7 @@ class boss_the_lich_king : public CreatureScript
summons.DespawnAll();
SendMusicToPlayers(MUSIC_FURY_OF_FROSTMOURNE);
DoCastAOE(SPELL_FURY_OF_FROSTMOURNE);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
events.ScheduleEvent(EVENT_OUTRO_TALK_1, 2600, 0, PHASE_OUTRO);
events.ScheduleEvent(EVENT_OUTRO_EMOTE_TALK, 6600, 0, PHASE_OUTRO);
events.ScheduleEvent(EVENT_OUTRO_EMOTE_TALK, 17600, 0, PHASE_OUTRO);
@@ -864,7 +869,7 @@ class boss_the_lich_king : public CreatureScript
case EVENT_INTRO_MOVE_1:
me->SetSheath(SHEATH_STATE_MELEE);
me->RemoveAurasDueToSpell(SPELL_EMOTE_SIT_NO_SHEATH);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_LK_INTRO_1, LichKingIntro[0]);
break;
case EVENT_INTRO_MOVE_2:
@@ -894,7 +899,7 @@ class boss_the_lich_king : public CreatureScript
events.ScheduleEvent(EVENT_FINISH_INTRO, 1000, 0, PHASE_INTRO);
break;
case EVENT_FINISH_INTRO:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
me->SetReactState(REACT_AGGRESSIVE);
events.SetPhase(PHASE_ONE);
@@ -1064,16 +1069,15 @@ class boss_the_lich_king : public CreatureScript
Talk(SAY_LK_OUTRO_6);
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING)))
tirion->SetFacingToObject(me);
- me->ClearUnitState(UNIT_STATE_CASTING);
- DoCastAOE(SPELL_SUMMON_BROKEN_FROSTMOURNE_3);
+ me->CastSpell((Unit*)NULL, SPELL_SUMMON_BROKEN_FROSTMOURNE_3, TRIGGERED_IGNORE_CAST_IN_PROGRESS);
SetEquipmentSlots(false, EQUIP_UNEQUIP);
break;
case EVENT_OUTRO_SOUL_BARRAGE:
- DoCastAOE(SPELL_SOUL_BARRAGE);
+ me->CastSpell((Unit*)NULL, SPELL_SOUL_BARRAGE, TRIGGERED_IGNORE_CAST_IN_PROGRESS);
sCreatureTextMgr->SendSound(me, SOUND_PAIN, CHAT_MSG_MONSTER_YELL, 0, TEXT_RANGE_NORMAL, TEAM_OTHER, false);
// set flight
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, 0x03);
+ me->SetDisableGravity(true);
+ me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->GetMotionMaster()->MovePoint(POINT_LK_OUTRO_2, OutroFlying);
break;
case EVENT_OUTRO_TALK_7:
@@ -1222,11 +1226,11 @@ class npc_tirion_fordring_tft : public CreatureScript
void sGossipSelect(Player* /*player*/, uint32 sender, uint32 action)
{
- if (me->GetCreatureInfo()->GossipMenuId == sender && !action)
+ if (me->GetCreatureTemplate()->GossipMenuId == sender && !action)
{
_events.SetPhase(PHASE_INTRO);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_TIRION_INTRO, TirionIntro);
}
}
@@ -1264,7 +1268,7 @@ class npc_tirion_fordring_tft : public CreatureScript
me->HandleEmoteCommand(EMOTE_ONESHOT_POINT_NO_SHEATHE);
break;
case EVENT_INTRO_CHARGE:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->GetMotionMaster()->MovePoint(POINT_TIRION_CHARGE, TirionCharge);
break;
case EVENT_OUTRO_TALK_1:
@@ -2466,7 +2470,7 @@ class spell_the_lich_king_summon_into_air : public SpellScriptLoader
void ModDestHeight(SpellEffIndex effIndex)
{
static Position const offset = {0.0f, 0.0f, 15.0f, 0.0f};
- WorldLocation* dest = const_cast<WorldLocation*>(GetTargetDest());
+ WorldLocation* dest = const_cast<WorldLocation*>(GetExplTargetDest());
dest->RelocateOffset(offset);
// spirit bombs get higher
if (GetSpellInfo()->Effects[effIndex].MiscValue == NPC_SPIRIT_BOMB)
@@ -2550,7 +2554,7 @@ class spell_the_lich_king_valkyr_target_search : public SpellScriptLoader
if (unitList.empty())
return;
- _target = SelectRandomContainerElement(unitList);
+ _target = Trinity::Containers::SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(_target);
GetCaster()->GetAI()->SetGUID(_target->GetGUID());
@@ -2723,7 +2727,7 @@ class spell_the_lich_king_vile_spirits_visual : public SpellScriptLoader
void ModDestHeight(SpellEffIndex /*effIndex*/)
{
Position offset = {0.0f, 0.0f, 15.0f, 0.0f};
- const_cast<WorldLocation*>(GetTargetDest())->RelocateOffset(offset);
+ const_cast<WorldLocation*>(GetExplTargetDest())->RelocateOffset(offset);
}
void Register()
@@ -2758,7 +2762,7 @@ class spell_the_lich_king_vile_spirit_move_target_search : public SpellScriptLoa
if (targets.empty())
return;
- _target = SelectRandomContainerElement(targets);
+ _target = Trinity::Containers::SelectRandomContainerElement(targets);
}
void HandleScript(SpellEffIndex effIndex)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index e0993178890..c40a521c794 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -232,7 +232,7 @@ class ValithriaDespawner : public BasicEvent
{
case NPC_VALITHRIA_DREAMWALKER:
if (InstanceScript* instance = creature->GetInstanceScript())
- instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, creature);
+ instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, creature);
break;
case NPC_BLAZING_SKELETON:
case NPC_SUPPRESSER:
@@ -262,7 +262,7 @@ class ValithriaDespawner : public BasicEvent
if (CreatureData const* data = creature->GetCreatureData())
creature->SetPosition(data->posX, data->posY, data->posZ, data->orientation);
- creature->ForcedDespawn();
+ creature->DespawnOrUnsummon();
creature->SetCorpseDelay(corpseDelay);
creature->SetRespawnDelay(respawnDelay);
@@ -304,7 +304,7 @@ class boss_valithria_dreamwalker : public CreatureScript
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true);
// Glyph of Dispel Magic - not a percent heal by effect, its cast with custom basepoints
me->ApplySpellImmune(0, IMMUNITY_ID, 56131, true);
- _instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ _instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
_missedPortals = 0;
_under25PercentTalkDone = false;
_over75PercentTalkDone = false;
@@ -322,21 +322,26 @@ class boss_valithria_dreamwalker : public CreatureScript
return;
DoCast(me, SPELL_COPY_DAMAGE);
- _instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, me);
+ _instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
_events.ScheduleEvent(EVENT_INTRO_TALK, 15000);
_events.ScheduleEvent(EVENT_DREAM_PORTAL, urand(45000, 48000));
if (IsHeroic())
_events.ScheduleEvent(EVENT_BERSERK, 420000);
}
- void HealReceived(Unit* /*healer*/, uint32& heal)
+ void HealReceived(Unit* healer, uint32& heal)
{
+ if (!me->hasLootRecipient())
+ me->SetLootRecipient(healer);
+
+ me->LowerPlayerDamageReq(heal);
+
// encounter complete
if (me->HealthAbovePctHealed(100, heal) && !_done)
{
_done = true;
Talk(SAY_VALITHRIA_SUCCESS);
- _instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ _instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->RemoveAurasDueToSpell(SPELL_CORRUPTION_VALITHRIA);
DoCast(me, SPELL_ACHIEVEMENT_CHECK);
DoCastAOE(SPELL_DREAMWALKERS_RAGE);
@@ -371,7 +376,7 @@ class boss_valithria_dreamwalker : public CreatureScript
{
_justDied = true;
Talk(SAY_VALITHRIA_DEATH);
- _instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
+ _instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER)))
trigger->AI()->DoAction(ACTION_DEATH);
}
@@ -1082,7 +1087,7 @@ class npc_dream_cloud : public CreatureScript
me->GetMotionMaster()->MoveIdle();
// must use originalCaster the same for all clouds to allow stacking
me->CastSpell(me, EMERALD_VIGOR, false, NULL, NULL, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER));
- me->ForcedDespawn(100);
+ me->DespawnOrUnsummon(100);
break;
default:
break;
@@ -1191,7 +1196,7 @@ class spell_dreamwalker_summoner : public SpellScriptLoader
if (targets.empty())
return;
- Unit* target = SelectRandomContainerElement(targets);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(targets);
targets.clear();
targets.push_back(target);
}
@@ -1237,7 +1242,7 @@ class spell_dreamwalker_summon_suppresser : public SpellScriptLoader
std::list<Creature*> summoners;
GetCreatureListWithEntryInGrid(summoners, caster, NPC_WORLD_TRIGGER, 100.0f);
summoners.remove_if (Trinity::UnitAuraCheck(true, SPELL_RECENTLY_SPAWNED));
- Trinity::RandomResizeList(summoners, 2);
+ Trinity::Containers::RandomResizeList(summoners, 2);
if (summoners.empty())
return;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index 60e85165cd5..fab9a5f0740 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -346,7 +346,7 @@ class FrostwingGauntletRespawner
if (CreatureData const* data = creature->GetCreatureData())
creature->SetPosition(data->posX, data->posY, data->posZ, data->orientation);
- creature->ForcedDespawn();
+ creature->DespawnOrUnsummon();
creature->SetCorpseDelay(corpseDelay);
creature->SetRespawnDelay(respawnDelay);
@@ -796,7 +796,8 @@ class boss_sister_svalna : public CreatureScript
{
_JustReachedHome();
me->SetReactState(REACT_PASSIVE);
- me->SetFlying(false);
+ me->SetDisableGravity(false);
+ me->SetHover(false);
}
void DoAction(int32 const action)
@@ -838,13 +839,14 @@ class boss_sister_svalna : public CreatureScript
void MovementInform(uint32 type, uint32 id)
{
- if (type != POINT_MOTION_TYPE || id != POINT_LAND)
+ if (type != EFFECT_MOTION_TYPE || id != POINT_LAND)
return;
_isEventInProgress = false;
me->setActive(false);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
- me->SetFlying(false);
+ me->SetDisableGravity(false);
+ me->SetHover(false);
}
void SpellHitTarget(Unit* target, SpellInfo const* spell)
@@ -1204,7 +1206,7 @@ class npc_crok_scourgebane : public CreatureScript
struct npc_argent_captainAI : public ScriptedAI
{
public:
- npc_argent_captainAI(Creature* creature) : ScriptedAI(creature), Instance(creature->GetInstanceScript()), _firstDeath(true)
+ npc_argent_captainAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()), _firstDeath(true)
{
FollowAngle = PET_FOLLOW_ANGLE;
FollowDist = PET_FOLLOW_DIST;
@@ -1232,7 +1234,7 @@ struct npc_argent_captainAI : public ScriptedAI
{
if (action == ACTION_START_GAUNTLET)
{
- if (Creature* crok = ObjectAccessor::GetCreature(*me, Instance->GetData64(DATA_CROK_SCOURGEBANE)))
+ if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE)))
{
me->SetReactState(REACT_DEFENSIVE);
FollowAngle = me->GetAngle(crok) + me->GetOrientation();
@@ -1276,7 +1278,7 @@ struct npc_argent_captainAI : public ScriptedAI
if (!me->GetVehicle())
{
me->GetMotionMaster()->Clear(false);
- if (Creature* crok = ObjectAccessor::GetCreature(*me, Instance->GetData64(DATA_CROK_SCOURGEBANE)))
+ if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE)))
me->GetMotionMaster()->MoveFollow(crok, FollowDist, FollowAngle, MOTION_SLOT_IDLE);
}
@@ -1288,7 +1290,7 @@ struct npc_argent_captainAI : public ScriptedAI
if (spell->Id == SPELL_REVIVE_CHAMPION && !IsUndead)
{
IsUndead = true;
- me->setDeathState(JUST_ALIVED);
+ me->setDeathState(JUST_RESPAWNED);
uint32 newEntry = 0;
switch (me->GetEntry())
{
@@ -1309,14 +1311,14 @@ struct npc_argent_captainAI : public ScriptedAI
}
Talk(SAY_CAPTAIN_RESURRECTED);
- me->UpdateEntry(newEntry, Instance->GetData(DATA_TEAM_IN_INSTANCE), me->GetCreatureData());
+ me->UpdateEntry(newEntry, instance->GetData(DATA_TEAM_IN_INSTANCE), me->GetCreatureData());
DoCast(me, SPELL_UNDEATH, true);
}
}
protected:
EventMap Events;
- InstanceScript* Instance;
+ InstanceScript* instance;
float FollowAngle;
float FollowDist;
bool IsUndead;
@@ -1368,7 +1370,7 @@ class npc_captain_arnath : public CreatureScript
case EVENT_ARNATH_PW_SHIELD:
{
std::list<Creature*> targets = DoFindFriendlyMissingBuff(40.0f, SPELL_POWER_WORD_SHIELD);
- DoCast(SelectRandomContainerElement(targets), SPELL_POWER_WORD_SHIELD);
+ DoCast(Trinity::Containers::SelectRandomContainerElement(targets), SPELL_POWER_WORD_SHIELD);
Events.ScheduleEvent(EVENT_ARNATH_PW_SHIELD, urand(15000, 20000));
break;
}
@@ -1822,7 +1824,7 @@ class spell_frost_giant_death_plague : public SpellScriptLoader
unitList.remove_if (DeathPlagueTargetSelector(GetCaster()));
if (!unitList.empty())
{
- Unit* target = SelectRandomContainerElement(unitList);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(unitList);
unitList.clear();
unitList.push_back(target);
}
@@ -1909,7 +1911,7 @@ class spell_svalna_revive_champion : public SpellScriptLoader
void RemoveAliveTarget(std::list<Unit*>& unitList)
{
unitList.remove_if(AliveCheck());
- Trinity::RandomResizeList(unitList, 2);
+ Trinity::Containers::RandomResizeList(unitList, 2);
}
void Land(SpellEffIndex /*effIndex*/)
@@ -1921,10 +1923,10 @@ class spell_svalna_revive_champion : public SpellScriptLoader
Position pos;
caster->GetPosition(&pos);
caster->GetNearPosition(pos, 5.0f, 0.0f);
- pos.m_positionZ = caster->GetBaseMap()->GetHeight(caster->GetPhaseMask(), pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, 20.0f);
- pos.m_positionZ += 0.05f;
+ //pos.m_positionZ = caster->GetBaseMap()->GetHeight(caster->GetPhaseMask(), pos.GetPositionX(), pos.GetPositionY(), caster->GetPositionZ(), true, 50.0f);
+ //pos.m_positionZ += 0.05f;
caster->SetHomePosition(pos);
- caster->GetMotionMaster()->MovePoint(POINT_LAND, pos);
+ caster->GetMotionMaster()->MoveLand(POINT_LAND, pos, caster->GetSpeed(MOVE_FLIGHT));
}
void Register()
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index 085aea139a3..224777c3db7 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -331,6 +331,10 @@ enum GameObjectsIds
GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02 = 201381,
GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03 = 201382,
GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04 = 201383,
+ GO_CACHE_OF_THE_DREAMWALKER_10N = 201959,
+ GO_CACHE_OF_THE_DREAMWALKER_25N = 202339,
+ GO_CACHE_OF_THE_DREAMWALKER_10H = 202338,
+ GO_CACHE_OF_THE_DREAMWALKER_25H = 202340,
// Sindragosa
GO_SINDRAGOSA_ENTRANCE_DOOR = 201373,
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 98f5c04ba42..cb83efc748f 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -452,6 +452,14 @@ class instance_icecrown_citadel : public InstanceMapScript
case GO_DRINK_ME:
PutricideTableGUID = go->GetGUID();
break;
+ case GO_CACHE_OF_THE_DREAMWALKER_10N:
+ case GO_CACHE_OF_THE_DREAMWALKER_25N:
+ case GO_CACHE_OF_THE_DREAMWALKER_10H:
+ case GO_CACHE_OF_THE_DREAMWALKER_25H:
+ if (Creature* valithria = instance->GetCreature(ValithriaDreamwalkerGUID))
+ go->SetLootRecipient(valithria->GetLootRecipient());
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
+ break;
case GO_ARTHAS_PLATFORM:
// this enables movement at The Frozen Throne, when printed this value is 0.000000f
// however, when represented as integer client will accept only this value
@@ -638,7 +646,13 @@ class instance_icecrown_citadel : public InstanceMapScript
switch (state)
{
case DONE:
- DoRespawnGameObject(DeathbringersCacheGUID, 7*DAY);
+ if (GameObject* loot = instance->GetGameObject(DeathbringersCacheGUID))
+ {
+ if (Creature* deathbringer = instance->GetCreature(DeathbringerSaurfangGUID))
+ loot->SetLootRecipient(deathbringer->GetLootRecipient());
+ loot->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
+ }
+ // no break
case NOT_STARTED:
if (GameObject* teleporter = instance->GetGameObject(SaurfangTeleportGUID))
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
index 942cfd7c5a8..1671eab0b32 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
@@ -63,7 +63,7 @@ public:
struct boss_anubrekhanAI : public BossAI
{
- boss_anubrekhanAI(Creature* c) : BossAI(c, BOSS_ANUBREKHAN) {}
+ boss_anubrekhanAI(Creature* creature) : BossAI(creature, BOSS_ANUBREKHAN) {}
bool hasTaunted;
@@ -99,7 +99,7 @@ public:
DoScriptText(SAY_SLAY, me);
}
- void JustDied(Unit*)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
index 47151ef6d80..17ed6a79c76 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
@@ -89,7 +89,7 @@ public:
struct boss_four_horsemenAI : public BossAI
{
- boss_four_horsemenAI(Creature* c) : BossAI(c, BOSS_HORSEMEN)
+ boss_four_horsemenAI(Creature* creature) : BossAI(creature, BOSS_HORSEMEN)
{
id = Horsemen(0);
for (uint8 i = 0; i < 4; ++i)
@@ -113,7 +113,7 @@ public:
void Reset()
{
if (!encounterActionReset)
- DoEncounterAction(NULL, false, true, false);
+ DoEncounteraction(NULL, false, true, false);
if (instance)
instance->SetData(DATA_HORSEMEN0 + id, NOT_STARTED);
@@ -131,15 +131,15 @@ public:
_Reset();
}
- bool DoEncounterAction(Unit* who, bool attack, bool reset, bool checkAllDead)
+ bool DoEncounteraction(Unit* who, bool attack, bool reset, bool checkAllDead)
{
if (!instance)
return false;
- Creature* Thane = CAST_CRE(Unit::GetUnit(*me, instance->GetData64(DATA_THANE)));
- Creature* Lady = CAST_CRE(Unit::GetUnit(*me, instance->GetData64(DATA_LADY)));
- Creature* Baron = CAST_CRE(Unit::GetUnit(*me, instance->GetData64(DATA_BARON)));
- Creature* Sir = CAST_CRE(Unit::GetUnit(*me, instance->GetData64(DATA_SIR)));
+ Creature* Thane = Unit::GetCreature(*me, instance->GetData64(DATA_THANE));
+ Creature* Lady = Unit::GetCreature(*me, instance->GetData64(DATA_LADY));
+ Creature* Baron = Unit::GetCreature(*me, instance->GetData64(DATA_BARON));
+ Creature* Sir = Unit::GetCreature(*me, instance->GetData64(DATA_SIR));
if (Thane && Lady && Baron && Sir)
{
@@ -194,7 +194,7 @@ public:
{
movementStarted = true;
me->SetReactState(REACT_PASSIVE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->SetSpeed(MOVE_RUN, me->GetSpeedRate(MOVE_RUN), true);
switch (id)
@@ -272,7 +272,7 @@ public:
BeginFourHorsemenMovement();
if (!encounterActionAttack)
- DoEncounterAction(who, true, false, false);
+ DoEncounteraction(who, true, false, false);
}
else if (movementCompleted && movementStarted)
{
@@ -302,7 +302,7 @@ public:
if (instance)
instance->SetData(DATA_HORSEMEN0 + id, DONE);
- if (instance && DoEncounterAction(NULL, false, false, true))
+ if (instance && DoEncounteraction(NULL, false, false, true))
{
instance->SetBossState(BOSS_HORSEMEN, DONE);
instance->SaveToDB();
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
index 0ef4e3d74c2..47dfaa7f772 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
@@ -57,7 +57,7 @@ public:
struct boss_gluthAI : public BossAI
{
- boss_gluthAI(Creature* c) : BossAI(c, BOSS_GLUTH)
+ boss_gluthAI(Creature* creature) : BossAI(creature, BOSS_GLUTH)
{
// Do not let Gluth be affected by zombies' debuff
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_INFECTED_WOUND, true);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
index 8c6afba18fd..8d23de5427c 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
@@ -234,7 +234,7 @@ class boss_gothik : public CreatureScript
DoScriptText(SAY_KILL, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
LiveTriggerGUID.clear();
DeadTriggerGUID.clear();
@@ -424,7 +424,8 @@ class boss_gothik : public CreatureScript
{
if (instance)
instance->SetData(DATA_GOTHIK_GATE, GO_STATE_ACTIVE);
- summons.DoAction(0, 0);
+ DummyEntryCheckPredicate pred;
+ summons.DoAction(0, pred); //! Magic numbers fail
summons.DoZoneInCombat();
mergedSides = true;
}
@@ -447,7 +448,8 @@ class boss_gothik : public CreatureScript
DoScriptText(SAY_TELEPORT, me);
DoTeleportTo(PosGroundLiveSide);
me->SetReactState(REACT_AGGRESSIVE);
- summons.DoAction(0, 0);
+ DummyEntryCheckPredicate pred;
+ summons.DoAction(0, pred); //! Magic numbers fail
summons.DoZoneInCombat();
events.ScheduleEvent(EVENT_BOLT, 1000);
events.ScheduleEvent(EVENT_HARVEST, urand(3000, 15000));
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
index e353a71b0b9..039b9b1e007 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
@@ -45,7 +45,7 @@ public:
struct boss_grobbulusAI : public BossAI
{
- boss_grobbulusAI(Creature* c) : BossAI(c, BOSS_GROBBULUS)
+ boss_grobbulusAI(Creature* creature) : BossAI(creature, BOSS_GROBBULUS)
{
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_POISON_CLOUD_ADD, true);
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
index 7a2d3ec55ab..d84cfb8949e 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
@@ -57,7 +57,7 @@ public:
struct boss_heiganAI : public BossAI
{
- boss_heiganAI(Creature* c) : BossAI(c, BOSS_HEIGAN) {}
+ boss_heiganAI(Creature* creature) : BossAI(creature, BOSS_HEIGAN) {}
uint32 eruptSection;
bool eruptDirection;
@@ -86,7 +86,7 @@ public:
return 0;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 161c9160293..0a4fdec7222 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -266,7 +266,7 @@ public:
struct boss_kelthuzadAI : public BossAI
{
- boss_kelthuzadAI(Creature* c) : BossAI(c, BOSS_KELTHUZAD), spawns(c)
+ boss_kelthuzadAI(Creature* creature) : BossAI(creature, BOSS_KELTHUZAD), spawns(creature)
{
uiFaction = me->getFaction();
}
@@ -299,7 +299,7 @@ public:
for (itr = chained.begin(); itr != chained.end(); ++itr)
{
if (Player* charmed = Unit::GetPlayer(*me, (*itr).first))
- charmed->SetFloatValue(OBJECT_FIELD_SCALE_X, (*itr).second);
+ charmed->SetObjectScale((*itr).second);
}
chained.clear();
@@ -338,7 +338,7 @@ public:
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
@@ -347,7 +347,7 @@ public:
for (itr = chained.begin(); itr != chained.end(); ++itr)
{
if (Player* player = Unit::GetPlayer(*me, (*itr).first))
- player->SetFloatValue(OBJECT_FIELD_SCALE_X, (*itr).second);
+ player->SetObjectScale((*itr).second);
}
chained.clear();
}
@@ -457,7 +457,7 @@ public:
{
if (HealthBelowPct(45))
{
- Phase = 3 ;
+ Phase = 3;
DoScriptText(SAY_REQUEST_AID, me);
//here Lich King should respond to KelThuzad but I don't know which Creature to make talk
//so for now just make Kelthuzad says it.
@@ -512,7 +512,7 @@ public:
DoCast(target, SPELL_CHAINS_OF_KELTHUZAD);
float scale = target->GetFloatValue(OBJECT_FIELD_SCALE_X);
chained.insert(std::make_pair(target->GetGUID(), scale));
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, scale * 2);
+ target->SetObjectScale(scale * 2);
events.ScheduleEvent(EVENT_CHAINED_SPELL, 2000); //core has 2000ms to set unit flag charm
}
}
@@ -530,7 +530,7 @@ public:
{
if (!player->isCharmed())
{
- player->SetFloatValue(OBJECT_FIELD_SCALE_X, (*itr).second);
+ player->SetObjectScale((*itr).second);
std::map<uint64, float>::iterator next = itr;
++next;
chained.erase(itr);
@@ -667,7 +667,7 @@ public:
if (!instance || instance->IsEncounterInProgress() || instance->GetBossState(BOSS_KELTHUZAD) == DONE)
return false;
- Creature* pKelthuzad = CAST_CRE(Unit::GetUnit(*player, instance->GetData64(DATA_KELTHUZAD)));
+ Creature* pKelthuzad = Unit::GetCreature(*player, instance->GetData64(DATA_KELTHUZAD));
if (!pKelthuzad)
return false;
@@ -714,7 +714,6 @@ public:
return true;
}
-
};
class npc_kelthuzad_abomination : public CreatureScript
@@ -726,16 +725,13 @@ class npc_kelthuzad_abomination : public CreatureScript
{
npc_kelthuzad_abominationAI(Creature* creature) : ScriptedAI(creature)
{
- instance = me->GetInstanceScript();
+ _instance = creature->GetInstanceScript();
}
- InstanceScript* instance;
- EventMap events;
-
void Reset()
{
- events.Reset();
- events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(2000, 5000));
+ _events.Reset();
+ _events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(2000, 5000));
DoCast(me, SPELL_FRENZY, true);
}
@@ -744,15 +740,15 @@ class npc_kelthuzad_abomination : public CreatureScript
if (!UpdateVictim())
return;
- events.Update(diff);
+ _events.Update(diff);
- while (uint32 eventId = events.ExecuteEvent())
+ while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_MORTAL_WOUND:
DoCastVictim(SPELL_MORTAL_WOUND, true);
- events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(10000, 15000));
+ _events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(10000, 15000));
break;
default:
break;
@@ -760,11 +756,15 @@ class npc_kelthuzad_abomination : public CreatureScript
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
- if (instance)
- instance->SetData(DATA_ABOMINATION_KILLED, instance->GetData(DATA_ABOMINATION_KILLED) + 1);
+ if (_instance)
+ _instance->SetData(DATA_ABOMINATION_KILLED, _instance->GetData(DATA_ABOMINATION_KILLED) + 1);
}
+
+ private:
+ InstanceScript* _instance;
+ EventMap _events;
};
CreatureAI* GetAI(Creature* creature) const
@@ -776,9 +776,7 @@ class npc_kelthuzad_abomination : public CreatureScript
class achievement_just_cant_get_enough : public AchievementCriteriaScript
{
public:
- achievement_just_cant_get_enough() : AchievementCriteriaScript("achievement_just_cant_get_enough")
- {
- }
+ achievement_just_cant_get_enough() : AchievementCriteriaScript("achievement_just_cant_get_enough") { }
bool OnCheck(Player* /*player*/, Unit* target)
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
index 0163101b8ed..3c258f08030 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
@@ -68,7 +68,7 @@ public:
struct boss_maexxnaAI : public BossAI
{
- boss_maexxnaAI(Creature* c) : BossAI(c, BOSS_MAEXXNA) {}
+ boss_maexxnaAI(Creature* creature) : BossAI(creature, BOSS_MAEXXNA) {}
bool enraged;
@@ -159,7 +159,7 @@ public:
struct mob_webwrapAI : public NullCreatureAI
{
- mob_webwrapAI(Creature* c) : NullCreatureAI(c), victimGUID(0) {}
+ mob_webwrapAI(Creature* creature) : NullCreatureAI(creature), victimGUID(0) {}
uint64 victimGUID;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
index 7143b940916..75be596fd77 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
@@ -75,7 +75,7 @@ public:
struct boss_nothAI : public BossAI
{
- boss_nothAI(Creature* c) : BossAI(c, BOSS_NOTH) {}
+ boss_nothAI(Creature* creature) : BossAI(creature, BOSS_NOTH) {}
uint32 waveCount, balconyCount;
@@ -124,7 +124,7 @@ public:
summon->AI()->DoZoneInCombat();
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
index a9ed499c5e5..b826a530719 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
@@ -62,7 +62,7 @@ public:
struct boss_patchwerkAI : public BossAI
{
- boss_patchwerkAI(Creature* c) : BossAI(c, BOSS_PATCHWERK) {}
+ boss_patchwerkAI(Creature* creature) : BossAI(creature, BOSS_PATCHWERK) {}
bool Enraged;
@@ -80,7 +80,7 @@ public:
DoScriptText(SAY_SLAY, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
index b27ab3730da..e06aa6b03c5 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
@@ -64,7 +64,7 @@ public:
struct boss_razuviousAI : public BossAI
{
- boss_razuviousAI(Creature* c) : BossAI(c, BOSS_RAZUVIOUS) {}
+ boss_razuviousAI(Creature* creature) : BossAI(creature, BOSS_RAZUVIOUS) {}
void KilledUnit(Unit* /*victim*/)
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
index 16b1e7ac996..37fb5f3f4a9 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
@@ -81,7 +81,7 @@ public:
struct boss_sapphironAI : public BossAI
{
- boss_sapphironAI(Creature* c) : BossAI(c, BOSS_SAPPHIRON)
+ boss_sapphironAI(Creature* creature) : BossAI(creature, BOSS_SAPPHIRON)
, phase(PHASE_NULL)
{
map = me->GetMap();
@@ -145,7 +145,7 @@ public:
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
me->CastSpell(me, SPELL_DIES, true);
@@ -153,7 +153,7 @@ public:
CheckPlayersFrostResist();
if (CanTheHundredClub)
{
- AchievementEntry const* AchievTheHundredClub = GetAchievementStore()->LookupEntry(ACHIEVEMENT_THE_HUNDRED_CLUB);
+ AchievementEntry const* AchievTheHundredClub = sAchievementStore.LookupEntry(ACHIEVEMENT_THE_HUNDRED_CLUB);
if (AchievTheHundredClub)
{
if (map && map->IsDungeon())
@@ -296,7 +296,7 @@ public:
{
case EVENT_LIFTOFF:
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
events.ScheduleEvent(EVENT_ICEBOLT, 1500);
iceboltCount = RAID_MODE(2, 3);
@@ -340,7 +340,7 @@ public:
return;
case EVENT_LAND:
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->SendMovementFlagUpdate();
events.ScheduleEvent(EVENT_GROUND, 1500);
return;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
index e64099da3ac..ccc8e9a5663 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
@@ -120,7 +120,7 @@ public:
struct boss_thaddiusAI : public BossAI
{
- boss_thaddiusAI(Creature* c) : BossAI(c, BOSS_THADDIUS)
+ boss_thaddiusAI(Creature* creature) : BossAI(creature, BOSS_THADDIUS)
{
// init is a bit tricky because thaddius shall track the life of both adds, but not if there was a wipe
// and, in particular, if there was a crash after both adds were killed (should not respawn)
@@ -158,7 +158,7 @@ public:
DoScriptText(SAY_SLAY, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
@@ -295,9 +295,9 @@ public:
struct mob_stalaggAI : public ScriptedAI
{
- mob_stalaggAI(Creature* c) : ScriptedAI(c)
+ mob_stalaggAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -381,9 +381,9 @@ public:
struct mob_feugenAI : public ScriptedAI
{
- mob_feugenAI(Creature* c) : ScriptedAI(c)
+ mob_feugenAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index c05d9a21850..50eb52cc4c2 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -465,7 +465,6 @@ public:
playerDied = buff2;
}
};
-
};
void AddSC_instance_naxxramas()
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 437d9980af3..ac5520b025a 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -240,8 +240,8 @@ public:
_cannotMove = true;
- me->SetFlying(true);
-
+ me->SetCanFly(true);
+
if (instance)
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
@@ -271,7 +271,7 @@ public:
{
me->SetHomePosition(_homePosition);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
BossAI::EnterEvadeMode();
@@ -354,15 +354,15 @@ public:
{
_EnterCombat();
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetFlying(false);
+ me->SetDisableGravity(false);
+ me->SetCanFly(false);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Talk(SAY_AGGRO_P_ONE);
DoCast(SPELL_BERSEKER); // periodic aura, first tick in 10 minutes
-
+
if (instance)
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
@@ -412,8 +412,8 @@ public:
void PrepareForVortex()
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetFlying(true);
+ me->SetDisableGravity(true);
+ me->SetCanFly(true);
me->GetMotionMaster()->MovementExpired();
me->GetMotionMaster()->MovePoint(MOVE_VORTEX, MalygosPositions[1].GetPositionX(), MalygosPositions[1].GetPositionY(), MalygosPositions[1].GetPositionZ());
@@ -461,8 +461,8 @@ public:
{
SetPhase(PHASE_TWO, true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetFlying(true);
+ me->SetDisableGravity(true);
+ me->SetCanFly(true);
me->GetMotionMaster()->MoveIdle();
me->GetMotionMaster()->MovePoint(MOVE_DEEP_BREATH_ROTATION, MalygosPhaseTwoWaypoints[0]);
@@ -704,8 +704,8 @@ class spell_malygos_vortex_visual : public SpellScriptLoader
// Anyway even with this issue, the boss does not enter in evade mode - this prevents iterate an empty list in the next vortex execution.
malygos->SetInCombatWithZone();
- malygos->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- malygos->SetFlying(false);
+ malygos->SetDisableGravity(false);
+ malygos->SetCanFly(false);
malygos->GetMotionMaster()->MoveChase(caster->getVictim());
malygos->RemoveAura(SPELL_VORTEX_1);
@@ -963,8 +963,9 @@ public:
// we dont do melee damage!
}
- void WaypointReached(uint32 /*i*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
+
}
private:
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
index 5e87ffb8973..7552ba4f389 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
@@ -101,7 +101,7 @@ class boss_anomalus : public CreatureScript
instance->SetData(DATA_ANOMALUS_EVENT, IN_PROGRESS);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
index 44c6c25fa3e..5c1dee1d4e4 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
@@ -61,9 +61,9 @@ public:
struct boss_keristraszaAI : public ScriptedAI
{
- boss_keristraszaAI(Creature* c) : ScriptedAI(c)
+ boss_keristraszaAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -208,16 +208,16 @@ class containment_sphere : public GameObjectScript
public:
containment_sphere() : GameObjectScript("containment_sphere") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- InstanceScript* instance = pGO->GetInstanceScript();
+ InstanceScript* instance = go->GetInstanceScript();
- Creature* pKeristrasza = Unit::GetCreature(*pGO, instance ? instance->GetData64(DATA_KERISTRASZA) : 0);
+ Creature* pKeristrasza = Unit::GetCreature(*go, instance ? instance->GetData64(DATA_KERISTRASZA) : 0);
if (pKeristrasza && pKeristrasza->isAlive())
{
// maybe these are hacks :(
- pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- pGO->SetGoState(GO_STATE_ACTIVE);
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ go->SetGoState(GO_STATE_ACTIVE);
CAST_AI(boss_keristrasza::boss_keristraszaAI, pKeristrasza->AI())->CheckContainmentSpheres(true);
}
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 03f467ce180..ad188738c12 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
@@ -67,9 +67,9 @@ public:
struct boss_magus_telestraAI : public ScriptedAI
{
- boss_magus_telestraAI(Creature* c) : ScriptedAI(c)
+ boss_magus_telestraAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
index 4453ec94494..c70db7d4ebc 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
@@ -61,9 +61,9 @@ public:
struct boss_ormorokAI : public ScriptedAI
{
- boss_ormorokAI(Creature* c) : ScriptedAI(c)
+ boss_ormorokAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -195,7 +195,7 @@ public:
std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();
for (; i != me->getThreatManager().getThreatList().end(); ++i)
{
- Unit* temp = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* temp = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (temp && temp->GetTypeId() == TYPEID_PLAYER && temp->getClass() == Healer)
{
target = temp;
@@ -234,7 +234,7 @@ public:
struct mob_crystal_spikeAI : public Scripted_NoMovementAI
{
- mob_crystal_spikeAI(Creature* c) : Scripted_NoMovementAI(c)
+ mob_crystal_spikeAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
}
@@ -277,7 +277,7 @@ public:
struct mob_crystalline_tanglerAI : public ScriptedAI
{
- mob_crystalline_tanglerAI(Creature* c) : ScriptedAI(c) {}
+ mob_crystalline_tanglerAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiRootsTimer;
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/commander_kolurg.cpp b/src/server/scripts/Northrend/Nexus/Nexus/commander_kolurg.cpp
index 6d07ac960b5..5ea3eb32c1d 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/commander_kolurg.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/commander_kolurg.cpp
@@ -49,7 +49,7 @@ public:
struct boss_commander_kolurgAI : public ScriptedAI
{
- boss_commander_kolurgAI(Creature* c) : ScriptedAI(c) {}
+ boss_commander_kolurgAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/commander_stoutbeard.cpp b/src/server/scripts/Northrend/Nexus/Nexus/commander_stoutbeard.cpp
index 71a153c802a..da4b49740c1 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/commander_stoutbeard.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/commander_stoutbeard.cpp
@@ -49,7 +49,7 @@ public:
struct boss_commander_stoutbeardAI : public ScriptedAI
{
- boss_commander_stoutbeardAI(Creature* c) : ScriptedAI(c) {}
+ boss_commander_stoutbeardAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
void EnterCombat(Unit* /*who*/)
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
index 9671d59bcec..b96d7c4aa84 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
@@ -203,7 +203,7 @@ public:
if (!instance || instance->GetData(DATA_UROM_PLATAFORM) > 2)
return;
- for (uint8 i = 0; i < 4 ; i++)
+ for (uint8 i = 0; i < 4; i++)
{
SetPosition(i);
me->SummonCreature(Group[group[instance->GetData(DATA_UROM_PLATAFORM)]].entry[i], x, y, me->GetPositionZ(), me->GetOrientation());
@@ -316,7 +316,9 @@ public:
LeaveCombat();
break;
case SPELL_TELEPORT:
- me->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); // with out it the npc will fall down while is casting
+ //! Unconfirmed, previous below
+ me->SetDisableGravity(true);
+ //me->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); // with out it the npc will fall down while is casting
canCast = true;
break;
default:
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
index 8852338c362..19a84fdae84 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
@@ -169,7 +169,9 @@ class npc_azure_ring_captain : public CreatureScript
{
targetGUID = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING | MOVEMENTFLAG_FLYING);
+ me->SetWalk(true);
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
+ me->AddUnitMovementFlag(MOVEMENTFLAG_FLYING);
me->SetReactState(REACT_AGGRESSIVE);
}
@@ -214,7 +216,7 @@ class npc_azure_ring_captain : public CreatureScript
if (Unit* victim = varos->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0))
{
me->SetReactState(REACT_PASSIVE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->GetMotionMaster()->MovePoint(ACTION_CALL_DRAGON_EVENT, victim->GetPositionX(), victim->GetPositionY(), victim->GetPositionZ() + 20.0f);
targetGUID = victim->GetGUID();
}
@@ -306,7 +308,7 @@ class spell_varos_energize_core_area_enemy : public SpellScriptLoader
float orientation = CAST_AI(boss_varos::boss_varosAI, varos->AI())->GetCoreEnergizeOrientation();
- for (std::list<Unit*>::iterator itr = targetList.begin() ; itr != targetList.end();)
+ for (std::list<Unit*>::iterator itr = targetList.begin(); itr != targetList.end();)
{
Position pos;
(*itr)->GetPosition(&pos);
@@ -353,7 +355,7 @@ class spell_varos_energize_core_area_entry : public SpellScriptLoader
float orientation = CAST_AI(boss_varos::boss_varosAI, varos->AI())->GetCoreEnergizeOrientation();
- for (std::list<Unit*>::iterator itr = targetList.begin() ; itr != targetList.end();)
+ for (std::list<Unit*>::iterator itr = targetList.begin(); itr != targetList.end();)
{
Position pos;
(*itr)->GetPosition(&pos);
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index 11433bfde37..23f55a3033b 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -61,13 +61,13 @@ class npc_oculus_drake : public CreatureScript
public:
npc_oculus_drake() : CreatureScript("npc_oculus_drake") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (creature->GetEntry())
{
case NPC_VERDISA: //Verdisa
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
if (!HAS_ESSENCE(player))
@@ -97,7 +97,7 @@ public:
}
break;
case NPC_BELGARISTRASZ: //Belgaristrasz
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
if (!HAS_ESSENCE(player))
@@ -127,7 +127,7 @@ public:
}
break;
case NPC_ETERNOS: //Eternos
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
if (!HAS_ESSENCE(player))
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
index c6f72890d1f..9f39cecbb23 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
@@ -29,17 +29,15 @@ EndScriptData */
enum eEnums
{
//Yell
- SAY_AGGRO = -1602000,
- SAY_SLAY_1 = -1602001,
- SAY_SLAY_2 = -1602002,
- SAY_SLAY_3 = -1602003,
- SAY_DEATH = -1602004,
- SAY_BATTLE_STANCE = -1602005,
- EMOTE_BATTLE_STANCE = -1602006,
- SAY_BERSEKER_STANCE = -1602007,
- EMOTE_BERSEKER_STANCE = -1602008,
- SAY_DEFENSIVE_STANCE = -1602009,
- EMOTE_DEFENSIVE_STANCE = -1602010,
+ SAY_AGGRO = 0,
+ SAY_DEFENSIVE_STANCE = 1,
+ SAY_BATTLE_STANCE = 2,
+ SAY_BERSEKER_STANCE = 3,
+ SAY_SLAY = 4,
+ SAY_DEATH = 5,
+ EMOTE_DEFENSIVE_STANCE = 6,
+ EMOTE_BATTLE_STANCE = 7,
+ EMOTE_BERSEKER_STANCE = 8,
SPELL_DEFENSIVE_STANCE = 53790,
//SPELL_DEFENSIVE_AURA = 41105,
@@ -95,13 +93,13 @@ public:
{
boss_bjarngrimAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
m_uiStance = STANCE_DEFENSIVE;
memset(&m_auiStormforgedLieutenantGUID, 0, sizeof(m_auiStormforgedLieutenantGUID));
canBuff = true;
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
bool m_bIsChangingStance;
bool canBuff;
@@ -169,8 +167,8 @@ public:
SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_SHIELD, EQUIP_NO_CHANGE);
- if (m_instance)
- m_instance->SetData(TYPE_BJARNGRIM, NOT_STARTED);
+ if (instance)
+ instance->SetData(TYPE_BJARNGRIM, NOT_STARTED);
}
void EnterEvadeMode()
@@ -185,26 +183,26 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
//must get both lieutenants here and make sure they are with him
me->CallForHelp(30.0f);
- if (m_instance)
- m_instance->SetData(TYPE_BJARNGRIM, IN_PROGRESS);
+ if (instance)
+ instance->SetData(TYPE_BJARNGRIM, IN_PROGRESS);
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
+ Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
- if (m_instance)
- m_instance->SetData(TYPE_BJARNGRIM, DONE);
+ if (instance)
+ instance->SetData(TYPE_BJARNGRIM, DONE);
}
//TODO: remove when removal is done by the core
@@ -249,20 +247,20 @@ public:
switch (m_uiStance)
{
case STANCE_DEFENSIVE:
- DoScriptText(SAY_DEFENSIVE_STANCE, me);
- DoScriptText(EMOTE_DEFENSIVE_STANCE, me);
+ Talk(SAY_DEFENSIVE_STANCE);
+ Talk(EMOTE_DEFENSIVE_STANCE);
DoCast(me, SPELL_DEFENSIVE_STANCE);
SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_SHIELD, EQUIP_NO_CHANGE);
break;
case STANCE_BERSERKER:
- DoScriptText(SAY_BERSEKER_STANCE, me);
- DoScriptText(EMOTE_BERSEKER_STANCE, me);
+ Talk(SAY_BERSEKER_STANCE);
+ Talk(EMOTE_BERSEKER_STANCE);
DoCast(me, SPELL_BERSEKER_STANCE);
SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_SWORD, EQUIP_NO_CHANGE);
break;
case STANCE_BATTLE:
- DoScriptText(SAY_BATTLE_STANCE, me);
- DoScriptText(EMOTE_BATTLE_STANCE, me);
+ Talk(SAY_BATTLE_STANCE);
+ Talk(EMOTE_BATTLE_STANCE);
DoCast(me, SPELL_BATTLE_STANCE);
SetEquipmentSlots(false, EQUIP_MACE, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
break;
@@ -387,10 +385,10 @@ public:
{
mob_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 m_uiArcWeld_Timer;
uint32 m_uiRenewSteel_Timer;
@@ -403,9 +401,9 @@ public:
void EnterCombat(Unit* who)
{
- if (m_instance)
+ if (instance)
{
- if (Creature* pBjarngrim = m_instance->instance->GetCreature(m_instance->GetData64(DATA_BJARNGRIM)))
+ if (Creature* pBjarngrim = instance->instance->GetCreature(instance->GetData64(DATA_BJARNGRIM)))
{
if (pBjarngrim->isAlive() && !pBjarngrim->getVictim())
pBjarngrim->AI()->AttackStart(who);
@@ -429,9 +427,9 @@ public:
if (m_uiRenewSteel_Timer <= uiDiff)
{
- if (m_instance)
+ if (instance)
{
- if (Creature* pBjarngrim = m_instance->instance->GetCreature(m_instance->GetData64(DATA_BJARNGRIM)))
+ if (Creature* pBjarngrim = instance->instance->GetCreature(instance->GetData64(DATA_BJARNGRIM)))
{
if (pBjarngrim->isAlive())
DoCast(pBjarngrim, SPELL_RENEW_STEEL_N);
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index 016c4d27cfa..abdf5ecb1e1 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -41,13 +41,10 @@ enum Spells
enum Yells
{
- SAY_AGGRO = -1602011,
- SAY_SLAY_1 = -1602012,
- SAY_SLAY_2 = -1602013,
- SAY_SLAY_3 = -1602014,
- SAY_DEATH = -1602015,
- SAY_SPLIT_1 = -1602016,
- SAY_SPLIT_2 = -1602017
+ SAY_AGGRO = 0,
+ SAY_SPLIT = 1,
+ SAY_SLAY = 2,
+ SAY_DEATH = 3
};
enum Creatures
@@ -122,7 +119,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
if (instance)
instance->SetData(TYPE_IONAR, IN_PROGRESS);
@@ -130,7 +127,7 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
lSparkList.DespawnAll();
@@ -140,7 +137,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
+ Talk(SAY_SLAY);
}
void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
@@ -278,7 +275,7 @@ public:
{
bHasDispersed = true;
- DoScriptText(RAND(SAY_SPLIT_1, SAY_SPLIT_2), me);
+ Talk(SAY_SPLIT);
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
index 171215c605a..2e2744baa3c 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
@@ -30,20 +30,16 @@ enum eEnums
{
ACHIEV_TIMELY_DEATH_START_EVENT = 20384,
- SAY_AGGRO = -1602018,
- SAY_INTRO_1 = -1602019,
- SAY_INTRO_2 = -1602020,
- SAY_SLAY_1 = -1602021,
- SAY_SLAY_2 = -1602022,
- SAY_SLAY_3 = -1602023,
- SAY_DEATH = -1602024,
- SAY_NOVA_1 = -1602025,
- SAY_NOVA_2 = -1602026,
- SAY_NOVA_3 = -1602027,
- SAY_75HEALTH = -1602028,
- SAY_50HEALTH = -1602029,
- SAY_25HEALTH = -1602030,
- EMOTE_NOVA = -1602031,
+ SAY_INTRO_1 = 0,
+ SAY_INTRO_2 = 1,
+ SAY_AGGRO = 2,
+ SAY_NOVA = 3,
+ SAY_SLAY = 4,
+ SAY_75HEALTH = 5,
+ SAY_50HEALTH = 6,
+ SAY_25HEALTH = 7,
+ SAY_DEATH = 8,
+ EMOTE_NOVA = 9,
SPELL_ARC_LIGHTNING = 52921,
SPELL_LIGHTNING_NOVA_N = 52960,
@@ -72,10 +68,10 @@ public:
{
boss_lokenAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
bool m_bIsAura;
@@ -97,35 +93,35 @@ public:
m_uiHealthAmountModifier = 1;
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(TYPE_LOKEN, NOT_STARTED);
- m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT);
+ instance->SetData(TYPE_LOKEN, NOT_STARTED);
+ instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT);
}
}
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(TYPE_LOKEN, IN_PROGRESS);
- m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT);
+ instance->SetData(TYPE_LOKEN, IN_PROGRESS);
+ instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT);
}
}
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
- if (m_instance)
- m_instance->SetData(TYPE_LOKEN, DONE);
+ if (instance)
+ instance->SetData(TYPE_LOKEN, DONE);
}
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
+ Talk(SAY_SLAY);
}
void UpdateAI(const uint32 uiDiff)
@@ -190,8 +186,8 @@ public:
if (m_uiLightningNova_Timer <= uiDiff)
{
- DoScriptText(RAND(SAY_NOVA_1, SAY_NOVA_2, SAY_NOVA_3), me);
- DoScriptText(EMOTE_NOVA, me);
+ Talk(SAY_NOVA);
+ Talk(EMOTE_NOVA);
DoCast(me, SPELL_LIGHTNING_NOVA_N);
m_bIsAura = false;
@@ -206,9 +202,9 @@ public:
{
switch (m_uiHealthAmountModifier)
{
- case 1: DoScriptText(SAY_75HEALTH, me); break;
- case 2: DoScriptText(SAY_50HEALTH, me); break;
- case 3: DoScriptText(SAY_25HEALTH, me); break;
+ case 1: Talk(SAY_75HEALTH); break;
+ case 2: Talk(SAY_50HEALTH); break;
+ case 3: Talk(SAY_25HEALTH); break;
}
++m_uiHealthAmountModifier;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 1fc724c8b6c..5c7bf0d1c1e 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -28,17 +28,13 @@ EndScriptData */
enum eEnums
{
- SAY_AGGRO = -1602032,
- SAY_SLAY_1 = -1602033,
- SAY_SLAY_2 = -1602034,
- SAY_SLAY_3 = -1602035,
- SAY_DEATH = -1602036,
- SAY_STOMP_1 = -1602037,
- SAY_STOMP_2 = -1602038,
- SAY_FORGE_1 = -1602039,
- SAY_FORGE_2 = -1602040,
- EMOTE_TO_ANVIL = -1602041,
- EMOTE_SHATTER = -1602042,
+ SAY_AGGRO = 0,
+ SAY_FORGE = 1,
+ SAY_STOMP = 2,
+ SAY_SLAY = 3,
+ SAY_DEATH = 4,
+ EMOTE_TO_ANVIL = 5,
+ EMOTE_SHATTER = 6,
SPELL_HEAT_N = 52387,
SPELL_HEAT_H = 59528,
@@ -83,10 +79,10 @@ public:
{
boss_volkhanAI(Creature* creature) : ScriptedAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
std::list<uint64> m_lGolemGUIDList;
@@ -121,16 +117,16 @@ public:
DespawnGolem();
m_lGolemGUIDList.clear();
- if (m_instance)
- m_instance->SetData(TYPE_VOLKHAN, NOT_STARTED);
+ if (instance)
+ instance->SetData(TYPE_VOLKHAN, NOT_STARTED);
}
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
- if (m_instance)
- m_instance->SetData(TYPE_VOLKHAN, IN_PROGRESS);
+ if (instance)
+ instance->SetData(TYPE_VOLKHAN, IN_PROGRESS);
}
void AttackStart(Unit* who)
@@ -148,15 +144,15 @@ public:
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
DespawnGolem();
- if (m_instance)
- m_instance->SetData(TYPE_VOLKHAN, DONE);
+ if (instance)
+ instance->SetData(TYPE_VOLKHAN, DONE);
if (IsHeroic() && GolemsShattered < 5)
{
- AchievementEntry const* AchievShatterResistant = GetAchievementStore()->LookupEntry(ACHIEVEMENT_SHATTER_RESISTANT);
+ AchievementEntry const* AchievShatterResistant = sAchievementStore.LookupEntry(ACHIEVEMENT_SHATTER_RESISTANT);
if (AchievShatterResistant)
{
Map* map = me->GetMap();
@@ -172,7 +168,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
+ Talk(SAY_SLAY);
}
void DespawnGolem()
@@ -263,11 +259,11 @@ public:
if (m_uiShatteringStomp_Timer <= uiDiff)
{
// Should he stomp even if he has no brittle golem to shatter?
- DoScriptText(RAND(SAY_STOMP_1, SAY_STOMP_2), me);
+ Talk(SAY_STOMP);
DoCast(me, SPELL_SHATTERING_STOMP_N);
- DoScriptText(EMOTE_SHATTER, me);
+ Talk(EMOTE_SHATTER);
m_uiShatteringStomp_Timer = 30000;
m_bCanShatterGolem = true;
@@ -297,7 +293,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
- DoScriptText(RAND(SAY_FORGE_1, SAY_FORGE_2), me);
+ Talk(SAY_FORGE);
m_bHasTemper = true;
@@ -308,7 +304,7 @@ public:
{
case 1:
// 1 - Start run to Anvil
- DoScriptText(EMOTE_TO_ANVIL, me);
+ Talk(EMOTE_TO_ANVIL);
me->GetMotionMaster()->MoveTargetedHome();
m_uiSummonPhase = 2; // Set Next Phase
break;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
index d1aba800094..bc57ce21a4d 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
@@ -61,9 +61,9 @@ public:
struct boss_krystallusAI : public ScriptedAI
{
- boss_krystallusAI(Creature* c) : ScriptedAI(c)
+ boss_krystallusAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiBoulderTossTimer;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
index cd4d7ae94a1..65711643827 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
@@ -65,7 +65,7 @@ public:
struct boss_maiden_of_griefAI : public ScriptedAI
{
- boss_maiden_of_griefAI(Creature* c) : ScriptedAI(c)
+ boss_maiden_of_griefAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
index 2c7026207e5..c2a8e905950 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
@@ -90,9 +90,9 @@ public:
struct boss_sjonnirAI : public ScriptedAI
{
- boss_sjonnirAI(Creature* c) : ScriptedAI(c), lSummons(me)
+ boss_sjonnirAI(Creature* creature) : ScriptedAI(creature), lSummons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
bool bIsFrenzy;
@@ -258,7 +258,7 @@ public:
struct mob_malformed_oozeAI : public ScriptedAI
{
- mob_malformed_oozeAI(Creature* c) : ScriptedAI(c) {}
+ mob_malformed_oozeAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiMergeTimer;
@@ -301,9 +301,9 @@ public:
struct mob_iron_sludgeAI : public ScriptedAI
{
- mob_iron_sludgeAI(Creature* c) : ScriptedAI(c)
+ mob_iron_sludgeAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
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 1c8d9380a2b..a608de5fcf3 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -142,9 +142,9 @@ public:
struct mob_tribuna_controllerAI : public ScriptedAI
{
- mob_tribuna_controllerAI(Creature* c) : ScriptedAI(c)
+ mob_tribuna_controllerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
SetCombatMovement(false);
}
@@ -268,10 +268,10 @@ class npc_brann_hos : public CreatureScript
public:
npc_brann_hos() : CreatureScript("npc_brann_hos") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1 || uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+1 || action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
CAST_AI(npc_brann_hos::npc_brann_hosAI, creature->AI())->StartWP();
@@ -298,9 +298,9 @@ public:
struct npc_brann_hosAI : public npc_escortAI
{
- npc_brann_hosAI(Creature* c) : npc_escortAI(c)
+ npc_brann_hosAI(Creature* creature) : npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiStep;
@@ -346,9 +346,9 @@ public:
lDwarfGUIDList.clear();
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 7:
if (Creature* creature = GetClosestCreatureWithEntry(me, CREATURE_TRIBUNAL_OF_THE_AGES, 100.0f))
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon.cpp
deleted file mode 100644
index e54d8a898de..00000000000
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon.cpp
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
- *
- * 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 "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ulduar.h"
-
-#define GAMEOBJECT_GIVE_OF_THE_OBSERVER 194821
-
-enum Spells
-{
- SPELL_ASCEND = 64487,
- SPELL_BERSERK = 47008,
- SPELL_BIG_BANG = 64443,
- H_SPELL_BIG_BANG = 64584,
- SPELL_COSMIC_SMASH = 62301,
- H_SPELL_COSMIC_SMASH = 64598,
- SPELL_PHASE_PUNCH = 64412,
- SPELL_QUANTUM_STRIKE = 64395,
- H_SPELL_QUANTUM_STRIKE = 64592,
- SPELL_BLACK_HOLE_EXPLOSION = 64122,
- SPELL_ARCANE_BARAGE = 64599,
- H_SPELL_ARCANE_BARAGE = 64607
-};
-
-enum Creatures
-{
- CREATURE_COLLAPSING_STAR = 32955,
- CREATURE_BLACK_HOLE = 32953,
- CREATURE_LIVING_CONSTELLATION = 33052,
- CREATURE_DARK_MATTER = 33089
-};
-
-enum Yells
-{
- SAY_AGGRO = -1603000,
- SAY_SLAY_1 = -1603001,
- SAY_SLAY_2 = -1603002,
- SAY_ENGADED_FOR_FIRTS_TIME = -1603003,
- SAY_PHASE_2 = -1603004,
- SAY_SUMMON_COLLAPSING_STAR = -1603005,
- SAY_DEATH_1 = -1603006,
- SAY_DEATH_2 = -1603007,
- SAY_DEATH_3 = -1603008,
- SAY_DEATH_4 = -1603009,
- SAY_DEATH_5 = -1603010,
- SAY_BERSERK = -1603011,
- SAY_BIG_BANG_1 = -1603012,
- SAY_BIG_BANG_2 = -1603013,
- SAY_TIMER_1 = -1603014,
- SAY_TIMER_2 = -1603015,
- SAY_TIMER_3 = -1603016,
- SAY_SUMMON_1 = -1603017,
- SAY_SUMMON_2 = -1603018,
- SAY_SUMMON_3 = -1603019,
-};
-
-class boss_algalon : public CreatureScript
-{
-public:
- boss_algalon() : CreatureScript("boss_algalon") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return GetUlduarAI<boss_algalonAI>(creature);
- }
-
- struct boss_algalonAI : public ScriptedAI
- {
- boss_algalonAI(Creature* c) : ScriptedAI(c)
- {
- instance = c->GetInstanceScript();
- Summon = false; // not in reset. intro speech done only once.
- }
-
- InstanceScript* instance;
-
- std::list<uint64> m_lCollapsingStarGUIDList;
-
- uint32 Phase;
- uint32 Ascend_Timer;
- uint32 Berserk_Timer;
- uint32 BigBang_Timer;
- uint32 CosmicSmash_Timer;
- uint32 PhasePunch_Timer;
- uint32 QuantumStrike_Timer;
- uint32 CollapsingStar_Timer;
- uint32 uiPhase_timer;
- uint32 uiStep;
-
- uint64 BlackHoleGUID;
-
- bool Enrage;
- bool Summon;
-
- void EnterCombat(Unit* who)
- {
- if (Summon)
- {
- DoScriptText(SAY_AGGRO, me);
- me->InterruptSpell(CURRENT_CHANNELED_SPELL);
- DoZoneInCombat(who->ToCreature());
- }
- else
- {
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetReactState(REACT_PASSIVE);
- uiStep = 1;
- }
-
- if (instance)
- instance->SetData(BOSS_ALGALON, IN_PROGRESS);
- }
-
- void KilledUnit(Unit* /*victim*/)
- {
- DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
- }
-
- void Reset()
- {
- Phase = 1;
-
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- if (instance)
- instance->SetData(BOSS_ALGALON, NOT_STARTED);
-
- BlackHoleGUID = 0;
-
- uiPhase_timer = 0;
- Ascend_Timer = 480000; //8 minutes
- QuantumStrike_Timer = urand(4000, 14000);
- Berserk_Timer = 360000; //6 minutes
- CollapsingStar_Timer = urand(15000, 20000); //Spawns between 15 to 20 seconds
- BigBang_Timer = 90000;
- PhasePunch_Timer = 8000;
- CosmicSmash_Timer = urand(30000, 60000);
- Enrage = false;
- }
-
- void JumpToNextStep(uint32 uiTimer)
- {
- uiPhase_timer = uiTimer;
- ++uiStep;
- }
-
- void DespawnCollapsingStar()
- {
- if (m_lCollapsingStarGUIDList.empty())
- return;
-
- for (std::list<uint64>::const_iterator itr = m_lCollapsingStarGUIDList.begin(); itr != m_lCollapsingStarGUIDList.end(); ++itr)
- {
- if (Creature* temp = Unit::GetCreature(*me, *itr))
- {
- if (temp->isAlive())
- temp->DespawnOrUnsummon();
- }
- }
- m_lCollapsingStarGUIDList.clear();
- }
-
- void JustSummoned(Creature* summoned)
- {
- if (summoned->GetEntry() == CREATURE_COLLAPSING_STAR)
- {
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (me->getVictim())
- summoned->AI()->AttackStart(target ? target : me->getVictim());
- m_lCollapsingStarGUIDList.push_back(summoned->GetGUID());
- }
- }
-
- void SummonCollapsingStar(Unit* target)
- {
- DoScriptText(SAY_SUMMON_COLLAPSING_STAR, me);
- me->SummonCreature(CREATURE_COLLAPSING_STAR, target->GetPositionX()+15.0f, target->GetPositionY()+15.0f, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 100000);
- me->SummonCreature(CREATURE_BLACK_HOLE, target->GetPositionX()+15.0f, target->GetPositionY()+15.0f, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 27000);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!UpdateVictim())
- return;
-
- if (Phase == 1 && HealthBelowPct(20))
- {
- Phase = 2;
- DoScriptText(SAY_PHASE_2, me);
- }
-
- if (HealthBelowPct(2))
- {
- me->SummonGameObject(GAMEOBJECT_GIVE_OF_THE_OBSERVER, 1634.258667f, -295.101166f, 417.321381f, 0, 0, 0, 0, 0, 0);
-
- // All of them. or random?
- DoScriptText(SAY_DEATH_1, me);
- DoScriptText(SAY_DEATH_2, me);
- DoScriptText(SAY_DEATH_3, me);
- DoScriptText(SAY_DEATH_4, me);
- DoScriptText(SAY_DEATH_5, me);
-
- me->DisappearAndDie();
-
- if (instance)
- instance->SetData(BOSS_ALGALON, DONE);
-
- return;
- }
-
- if (Phase == 1)
- {
- if (!Summon)
- {
- if (uiPhase_timer <= diff)
- {
- switch (uiStep)
- {
- case 1:
- DoScriptText(SAY_SUMMON_1, me);
- JumpToNextStep(3000);
- break;
- case 2:
- DoScriptText(SAY_SUMMON_2, me);
- JumpToNextStep(3000);
- break;
- case 3:
- DoScriptText(SAY_SUMMON_3, me);
- JumpToNextStep(3000);
- break;
- case 4:
- DoScriptText(SAY_ENGADED_FOR_FIRTS_TIME, me);
- JumpToNextStep(3000);
- break;
- case 5:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetReactState(REACT_AGGRESSIVE);
- Summon = true;
- break;
- }
- } else uiPhase_timer -= diff;
-
- return;
- }
-
- if (QuantumStrike_Timer <= diff)
- {
- DoCast(me->getVictim(), RAID_MODE(SPELL_QUANTUM_STRIKE, H_SPELL_QUANTUM_STRIKE), true);
-
- QuantumStrike_Timer = urand(4000, 14000);
- } else QuantumStrike_Timer -= diff;
-
- if (BigBang_Timer <= diff)
- {
- DoScriptText(RAND(SAY_BIG_BANG_1, SAY_BIG_BANG_2), me);
- DoCast(me->getVictim(), RAID_MODE(SPELL_BIG_BANG, H_SPELL_BIG_BANG), true);
-
- BigBang_Timer = 90000;
- } else BigBang_Timer -= diff;
-
- if (Ascend_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_ASCEND, true);
-
- Ascend_Timer = 480000;
- } else Ascend_Timer -= diff;
-
- if (PhasePunch_Timer <= diff)
- {
- DoCast(me->getVictim(), SPELL_PHASE_PUNCH, true);
-
- PhasePunch_Timer = 8000;
- } else PhasePunch_Timer -= diff;
-
- if (CosmicSmash_Timer <= diff)
- {
- DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), RAID_MODE(SPELL_COSMIC_SMASH, H_SPELL_COSMIC_SMASH), true);
-
- CosmicSmash_Timer = urand(30000, 60000);
- } else CosmicSmash_Timer -= diff;
-
- if (Berserk_Timer <= diff)
- {
- DoScriptText(SAY_BERSERK, me);
- DoCast(me->getVictim(), SPELL_BERSERK, true);
-
- Berserk_Timer = 360000;
- } else Berserk_Timer -= diff;
-
- DoMeleeAttackIfReady();
-
- EnterEvadeIfOutOfCombatArea(diff);
- }
-
- if (Phase == 2)
- {
- if (Enrage)
- {
- if (Ascend_Timer <= diff)
- {
- DoCast(me, SPELL_ASCEND);
- DoScriptText(SAY_BERSERK, me);
- Ascend_Timer = urand(360000, 365000);
- Enrage = false;
- } else Ascend_Timer -= diff;
- }
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
-};
-
-//Collapsing Star
-class mob_collapsing_star : public CreatureScript
-{
-public:
- mob_collapsing_star() : CreatureScript("mob_collapsing_star") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_collapsing_starAI(creature);
- }
-
- struct mob_collapsing_starAI : public ScriptedAI
- {
- mob_collapsing_starAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- InstanceScript* instance;
-
- uint32 BlackHoleExplosion_Timer;
-
- void Reset()
- {
- BlackHoleExplosion_Timer = 0;
- }
-
- void UpdateAI(const uint32 diff)
- {
- if (!UpdateVictim())
- return;
-
- if (BlackHoleExplosion_Timer <= diff)
- {
- me->CastSpell(me, SPELL_BLACK_HOLE_EXPLOSION, false);
- BlackHoleExplosion_Timer = 0;
- } else BlackHoleExplosion_Timer -= diff;
- }
- };
-
-};
-
-void AddSC_boss_Algalon()
-{
- new boss_algalon();
- new mob_collapsing_star();
-}
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
new file mode 100644
index 00000000000..2af73389ecb
--- /dev/null
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -0,0 +1,1374 @@
+/*
+ * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ *
+ * 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 "ObjectMgr.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "SpellScript.h"
+#include "PassiveAI.h"
+#include "GameObjectAI.h"
+#include "MapManager.h"
+#include "MoveSplineInit.h"
+#include "ulduar.h"
+
+enum Texts
+{
+ SAY_BRANN_ALGALON_INTRO_1 = 0,
+ SAY_BRANN_ALGALON_INTRO_2 = 1,
+ SAY_BRANN_ALGALON_OUTRO = 2,
+
+ SAY_ALGALON_INTRO_1 = 0,
+ SAY_ALGALON_INTRO_2 = 1,
+ SAY_ALGALON_INTRO_3 = 2,
+ SAY_ALGALON_START_TIMER = 3,
+ SAY_ALGALON_AGGRO = 4,
+ SAY_ALGALON_COLLAPSING_STAR = 5,
+ EMOTE_ALGALON_COLLAPSING_STAR = 6,
+ SAY_ALGALON_BIG_BANG = 7,
+ EMOTE_ALGALON_BIG_BANG = 8,
+ SAY_ALGALON_ASCEND = 9,
+ EMOTE_ALGALON_COSMIC_SMASH = 10,
+ SAY_ALGALON_PHASE_TWO = 11,
+ SAY_ALGALON_OUTRO_1 = 12,
+ SAY_ALGALON_OUTRO_2 = 13,
+ SAY_ALGALON_OUTRO_3 = 14,
+ SAY_ALGALON_OUTRO_4 = 15,
+ SAY_ALGALON_OUTRO_5 = 16,
+ SAY_ALGALON_DESPAWN_1 = 17,
+ SAY_ALGALON_DESPAWN_2 = 18,
+ SAY_ALGALON_DESPAWN_3 = 19,
+ SAY_ALGALON_KILL = 20,
+};
+
+enum Spells
+{
+ // Algalon the Observer
+ SPELL_ARRIVAL = 64997,
+ SPELL_RIDE_THE_LIGHTNING = 64986,
+ SPELL_SUMMON_AZEROTH = 64994,
+ SPELL_REORIGINATION = 64996,
+ SPELL_SUPERMASSIVE_FAIL = 65311,
+ SPELL_QUANTUM_STRIKE = 64395,
+ SPELL_PHASE_PUNCH = 64412,
+ SPELL_BIG_BANG = 64443,
+ SPELL_ASCEND_TO_THE_HEAVENS = 64487,
+ SPELL_COSMIC_SMASH = 62301,
+ SPELL_COSMIC_SMASH_TRIGGERED = 62304,
+ SPELL_COSMIC_SMASH_VISUAL_STATE = 62300,
+ SPELL_SELF_STUN = 65256,
+ SPELL_KILL_CREDIT = 65184,
+ SPELL_TELEPORT = 62940,
+
+ // Algalon Stalker
+ SPELL_TRIGGER_3_ADDS = 62266, // Triggers Living Constellation
+
+ // Living Constellation
+ SPELL_ARCANE_BARRAGE = 64599,
+
+ // Collapsing Star
+ SPELL_COLLAPSE = 62018,
+ SPELL_BLACK_HOLE_SPAWN_VISUAL = 62003,
+ SPELL_SUMMON_BLACK_HOLE = 62189,
+
+ // Black Hole
+ SPELL_BLACK_HOLE_TRIGGER = 62185,
+ SPELL_CONSTELLATION_PHASE_TRIGGER = 65508,
+ SPELL_CONSTELLATION_PHASE_EFFECT = 65509,
+ SPELL_BLACK_HOLE_EXPLOSION = 64122,
+ SPELL_SUMMON_VOID_ZONE_VISUAL = 64470,
+ SPELL_VOID_ZONE_VISUAL = 64469,
+ SPELL_BLACK_HOLE_CREDIT = 65312,
+
+ // Worm Hole
+ SPELL_WORM_HOLE_TRIGGER = 65251,
+ SPELL_SUMMON_UNLEASHED_DARK_MATTER = 64450,
+};
+
+uint32 const PhasePunchAlphaId[5] = {64435, 64434, 64428, 64421, 64417};
+
+enum Events
+{
+ // Celestial Planetarium Access
+ EVENT_DESPAWN_CONSOLE = 1,
+
+ // Brann Bronzebeard
+ EVENT_BRANN_MOVE_INTRO = 2,
+ EVENT_SUMMON_ALGALON = 3,
+ EVENT_BRANN_OUTRO_1 = 4,
+ EVENT_BRANN_OUTRO_2 = 5,
+
+ // Algalon the Observer
+ EVENT_INTRO_1 = 6,
+ EVENT_INTRO_2 = 7,
+ EVENT_INTRO_3 = 8,
+ EVENT_INTRO_FINISH = 9,
+ EVENT_START_COMBAT = 10,
+ EVENT_INTRO_TIMER_DONE = 11,
+ EVENT_QUANTUM_STRIKE = 12,
+ EVENT_PHASE_PUNCH = 13,
+ EVENT_SUMMON_COLLAPSING_STAR = 14,
+ EVENT_BIG_BANG = 15,
+ EVENT_RESUME_UPDATING = 16,
+ EVENT_ASCEND_TO_THE_HEAVENS = 17,
+ EVENT_EVADE = 18,
+ EVENT_COSMIC_SMASH = 19,
+ EVENT_UNLOCK_YELL = 20,
+ EVENT_OUTRO_START = 21,
+ EVENT_OUTRO_1 = 22,
+ EVENT_OUTRO_2 = 23,
+ EVENT_OUTRO_3 = 24,
+ EVENT_OUTRO_4 = 25,
+ EVENT_OUTRO_5 = 26,
+ EVENT_OUTRO_6 = 27,
+ EVENT_OUTRO_7 = 28,
+ EVENT_OUTRO_8 = 29,
+ EVENT_OUTRO_9 = 30,
+ EVENT_OUTRO_10 = 31,
+ EVENT_OUTRO_11 = 32,
+ EVENT_OUTRO_12 = 33,
+ EVENT_OUTRO_13 = 34,
+ EVENT_OUTRO_14 = 35,
+ EVENT_DESPAWN_ALGALON_1 = 36,
+ EVENT_DESPAWN_ALGALON_2 = 37,
+ EVENT_DESPAWN_ALGALON_3 = 38,
+
+ // Living Constellation
+ EVENT_ARCANE_BARRAGE = 39,
+};
+
+enum Actions
+{
+ ACTION_START_INTRO = 0,
+ ACTION_FINISH_INTRO = 1,
+ ACTION_ACTIVATE_STAR = 2,
+ ACTION_BIG_BANG = 3,
+ ACTION_ASCEND = 4,
+ ACTION_OUTRO = 5,
+};
+
+enum Points
+{
+ POINT_BRANN_INTRO = 0,
+ MAX_BRANN_WAYPOINTS_INTRO = 10,
+ POINT_BRANN_OUTRO = 10,
+ POINT_BRANN_OUTRO_END = 11,
+
+ POINT_ALGALON_LAND = 1,
+ POINT_ALGALON_OUTRO = 2,
+};
+
+enum EncounterPhases
+{
+ PHASE_NORMAL = 0,
+ PHASE_ROLE_PLAY = 1,
+ PHASE_BIG_BANG = 2,
+
+ PHASE_MASK_NO_UPDATE = (1 << PHASE_ROLE_PLAY) | (1 << PHASE_BIG_BANG),
+ PHASE_MASK_NO_CAST_CHECK = 1 << PHASE_ROLE_PLAY,
+};
+
+enum AchievmentInfo
+{
+ EVENT_ID_SUPERMASSIVE_START = 21697,
+ DATA_HAS_FED_ON_TEARS = 30043005,
+};
+
+
+Position const BrannIntroSpawnPos = {1676.277f, -162.5308f, 427.3326f, 3.235537f};
+Position const BrannIntroWaypoint[MAX_BRANN_WAYPOINTS_INTRO] =
+{
+ {1642.482f, -164.0812f, 427.2602f, 0.0f},
+ {1635.000f, -169.5145f, 427.2523f, 0.0f},
+ {1632.814f, -173.9334f, 427.2621f, 0.0f},
+ {1632.676f, -190.5927f, 425.8831f, 0.0f},
+ {1631.497f, -214.2221f, 418.1152f, 0.0f},
+ {1624.717f, -224.6876f, 418.1152f, 0.0f},
+ {1631.497f, -214.2221f, 418.1152f, 0.0f},
+ {1632.676f, -190.5927f, 425.8831f, 0.0f},
+ {1632.814f, -173.9334f, 427.2621f, 0.0f},
+ {1635.000f, -169.5145f, 427.2523f, 0.0f},
+};
+Position const AlgalonSummonPos = {1632.531f, -304.8516f, 450.1123f, 1.530165f};
+Position const AlgalonLandPos = {1632.668f, -302.7656f, 417.3211f, 1.530165f};
+
+#define LIVING_CONSTELLATION_COUNT 11
+Position const ConstellationPos[LIVING_CONSTELLATION_COUNT] =
+{
+ {1625.208f, -267.2771f, 446.4296f, 5.044002f},
+ {1658.279f, -262.5490f, 441.9073f, 4.188790f},
+ {1678.677f, -276.3280f, 427.7531f, 3.979351f},
+ {1593.389f, -299.4325f, 432.4636f, 6.073746f},
+ {1685.613f, -300.1219f, 443.2366f, 3.385939f},
+ {1591.706f, -263.8201f, 441.4153f, 5.253441f},
+ {1668.317f, -324.7676f, 457.9394f, 3.211406f},
+ {1592.242f, -325.5323f, 446.9508f, 0.226893f},
+ {1635.821f, -363.3442f, 424.3459f, 1.466077f},
+ {1672.188f, -357.2484f, 436.7337f, 2.338741f},
+ {1615.800f, -348.0065f, 442.9586f, 1.134464f},
+};
+
+#define COLLAPSING_STAR_COUNT 4
+Position const CollapsingStarPos[COLLAPSING_STAR_COUNT] =
+{
+ {1649.438f, -319.8127f, 418.3941f, 1.082104f},
+ {1647.005f, -288.6790f, 417.3955f, 3.490659f},
+ {1622.451f, -321.1563f, 417.6188f, 4.677482f},
+ {1615.060f, -291.6816f, 417.7796f, 3.490659f},
+};
+Position const AlgalonOutroPos = {1633.64f, -317.78f, 417.3211f, 0.0f};
+Position const BrannOutroPos[3] =
+{
+ {1632.023f, -243.7434f, 417.9118f, 0.0f},
+ {1631.986f, -297.7831f, 417.3210f, 0.0f},
+ {1633.832f, -216.2948f, 417.0463f, 0.0f},
+};
+
+class ActivateLivingConstellation : public BasicEvent
+{
+ public:
+ ActivateLivingConstellation(Unit* owner) : _owner(owner), _instance(owner->GetInstanceScript())
+ {
+ }
+
+ bool Execute(uint64 execTime, uint32 /*diff*/)
+ {
+ if (!_instance || _instance->GetBossState(BOSS_ALGALON) != IN_PROGRESS)
+ return true; // delete event
+
+ _owner->CastSpell((Unit*)NULL, SPELL_TRIGGER_3_ADDS, TRIGGERED_FULL_MASK);
+ _owner->m_Events.AddEvent(this, execTime + urand(45000, 50000));
+ return false;
+ }
+
+ private:
+ Unit* _owner;
+ InstanceScript* _instance;
+};
+
+class CosmicSmashDamageEvent : public BasicEvent
+{
+ public:
+ CosmicSmashDamageEvent(Unit* caster) : _caster(caster)
+ {
+ }
+
+ bool Execute(uint64 /*execTime*/, uint32 /*diff*/)
+ {
+ _caster->CastSpell((Unit*)NULL, SPELL_COSMIC_SMASH_TRIGGERED, TRIGGERED_FULL_MASK);
+ return true;
+ }
+
+ private:
+ Unit* _caster;
+};
+
+class SummonUnleashedDarkMatter : public BasicEvent
+{
+ public:
+ SummonUnleashedDarkMatter(Unit* caster) : _caster(caster)
+ {
+ }
+
+ bool Execute(uint64 execTime, uint32 /*diff*/)
+ {
+ _caster->CastSpell((Unit*)NULL, SPELL_SUMMON_UNLEASHED_DARK_MATTER, TRIGGERED_FULL_MASK);
+ _caster->m_Events.AddEvent(this, execTime + 30000);
+ return false;
+ }
+
+ private:
+ Unit* _caster;
+};
+
+class boss_algalon_the_observer : public CreatureScript
+{
+ public:
+ boss_algalon_the_observer() : CreatureScript("boss_algalon_the_observer") {}
+
+ struct boss_algalon_the_observerAI : public BossAI
+ {
+ boss_algalon_the_observerAI(Creature* creature) : BossAI(creature, BOSS_ALGALON)
+ {
+ _firstPull = true;
+ _fedOnTears = false;
+ }
+
+ void Reset()
+ {
+ _Reset();
+ me->SetReactState(REACT_PASSIVE);
+ _phaseTwo = false;
+ _fightWon = false;
+ _hasYelled = false;
+ }
+
+ void KilledUnit(Unit* victim)
+ {
+ if (victim->GetTypeId() == TYPEID_UNIT)
+ {
+ _fedOnTears = true;
+ if (!_hasYelled)
+ {
+ _hasYelled = true;
+ events.ScheduleEvent(EVENT_UNLOCK_YELL, 1000);
+ Talk(SAY_ALGALON_KILL);
+ }
+ }
+ }
+
+ void DoAction(int32 const action)
+ {
+ switch (action)
+ {
+ case ACTION_START_INTRO:
+ {
+ me->SetFlag(UNIT_FIELD_FLAGS_2, 0x20);
+ me->SetDisableGravity(true);
+ DoCast(me, SPELL_ARRIVAL, true);
+ DoCast(me, SPELL_RIDE_THE_LIGHTNING, true);
+ me->GetMotionMaster()->MovePoint(POINT_ALGALON_LAND, AlgalonLandPos);
+ me->SetHomePosition(AlgalonLandPos);
+ Movement::MoveSplineInit init(*me);
+ init.MoveTo(AlgalonLandPos.GetPositionX(), AlgalonLandPos.GetPositionY(), AlgalonLandPos.GetPositionZ());
+ init.SetOrientationFixed(true);
+ init.Launch();
+ events.Reset();
+ events.SetPhase(PHASE_ROLE_PLAY);
+ events.ScheduleEvent(EVENT_INTRO_1, 5000, 0, PHASE_ROLE_PLAY);
+ events.ScheduleEvent(EVENT_INTRO_2, 15000, 0, PHASE_ROLE_PLAY);
+ events.ScheduleEvent(EVENT_INTRO_3, 23000, 0, PHASE_ROLE_PLAY);
+ events.ScheduleEvent(EVENT_INTRO_FINISH, 36000, 0, PHASE_ROLE_PLAY);
+ break;
+ }
+ case ACTION_ASCEND:
+ events.SetPhase(PHASE_BIG_BANG);
+ events.CancelEvent(EVENT_RESUME_UPDATING);
+ events.ScheduleEvent(EVENT_ASCEND_TO_THE_HEAVENS, 1500);
+ break;
+ case EVENT_DESPAWN_ALGALON:
+ events.Reset();
+ events.SetPhase(PHASE_ROLE_PLAY);
+ if (me->isInCombat())
+ events.ScheduleEvent(EVENT_ASCEND_TO_THE_HEAVENS, 1);
+ events.ScheduleEvent(EVENT_DESPAWN_ALGALON_1, 5000);
+ events.ScheduleEvent(EVENT_DESPAWN_ALGALON_2, 17000);
+ events.ScheduleEvent(EVENT_DESPAWN_ALGALON_3, 26000);
+ me->DespawnOrUnsummon(34000);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
+ break;
+ case ACTION_INIT_ALGALON:
+ _firstPull = false;
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ break;;
+ }
+ }
+
+ uint32 GetData(uint32 type)
+ {
+ return type == DATA_HAS_FED_ON_TEARS ? _fedOnTears : 1;
+ }
+
+ void EnterCombat(Unit* /*target*/)
+ {
+ uint32 introDelay = 0;
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
+ events.Reset();
+ events.SetPhase(PHASE_ROLE_PLAY);
+
+ if (!_firstPull)
+ {
+ Talk(SAY_ALGALON_AGGRO);
+ _EnterCombat();
+ introDelay = 8000;
+ }
+ else
+ {
+ _firstPull = false;
+ Talk(SAY_ALGALON_START_TIMER);
+ if (Creature* brann = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BRANN_BRONZEBEARD_ALG)))
+ brann->AI()->DoAction(ACTION_FINISH_INTRO);
+
+ me->setActive(true);
+ DoZoneInCombat();
+ introDelay = 26000;
+ summons.DespawnEntry(NPC_AZEROTH);
+ instance->SetData(EVENT_DESPAWN_ALGALON, 0);
+ events.ScheduleEvent(EVENT_START_COMBAT, 18000);
+ }
+
+ events.ScheduleEvent(EVENT_INTRO_TIMER_DONE, introDelay);
+ events.ScheduleEvent(EVENT_QUANTUM_STRIKE, 3500 + introDelay);
+ events.ScheduleEvent(EVENT_PHASE_PUNCH, 15500 + introDelay);
+ events.ScheduleEvent(EVENT_SUMMON_COLLAPSING_STAR, 18000 + introDelay);
+ events.ScheduleEvent(EVENT_BIG_BANG, 90000 + introDelay);
+ events.ScheduleEvent(EVENT_ASCEND_TO_THE_HEAVENS, 360000 + introDelay);
+ events.ScheduleEvent(EVENT_COSMIC_SMASH, 25000 + introDelay);
+
+ std::list<Creature*> stalkers;
+ me->GetCreatureListWithEntryInGrid(stalkers, NPC_ALGALON_STALKER, 200.0f);
+ for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
+ (*itr)->m_Events.KillAllEvents(true);
+ }
+
+ void MovementInform(uint32 movementType, uint32 pointId)
+ {
+ if (movementType != POINT_MOTION_TYPE)
+ return;
+
+ if (pointId == POINT_ALGALON_LAND)
+ me->SetDisableGravity(false);
+ else if (pointId == POINT_ALGALON_OUTRO)
+ {
+ me->SetFacingTo(1.605703f);
+ events.ScheduleEvent(EVENT_OUTRO_3, 1200);
+ events.ScheduleEvent(EVENT_OUTRO_4, 2400);
+ events.ScheduleEvent(EVENT_OUTRO_5, 8500);
+ events.ScheduleEvent(EVENT_OUTRO_6, 15500);
+ events.ScheduleEvent(EVENT_OUTRO_7, 55500);
+ events.ScheduleEvent(EVENT_OUTRO_8, 73500);
+ events.ScheduleEvent(EVENT_OUTRO_9, 85500);
+ events.ScheduleEvent(EVENT_OUTRO_10, 108500);
+ events.ScheduleEvent(EVENT_OUTRO_11, 123500);
+ }
+ }
+
+ void JustSummoned(Creature* summon)
+ {
+ summons.Summon(summon);
+ switch (summon->GetEntry())
+ {
+ case NPC_AZEROTH:
+ DoCastAOE(SPELL_REORIGINATION, true);
+ break;
+ case NPC_COLLAPSING_STAR:
+ summon->SetReactState(REACT_PASSIVE);
+ summon->GetMotionMaster()->MoveRandom(20.0f);
+ summon->CastSpell(summon, SPELL_COLLAPSE, TRIGGERED_FULL_MASK);
+ break;
+ case NPC_BLACK_HOLE:
+ summon->SetReactState(REACT_PASSIVE);
+ summon->CastSpell((Unit*)NULL, SPELL_BLACK_HOLE_TRIGGER, TRIGGERED_FULL_MASK);
+ summon->CastSpell(summon, SPELL_CONSTELLATION_PHASE_TRIGGER, TRIGGERED_FULL_MASK);
+ summon->CastSpell((Unit*)NULL, SPELL_BLACK_HOLE_EXPLOSION);
+ summon->CastSpell(summon, SPELL_SUMMON_VOID_ZONE_VISUAL, TRIGGERED_FULL_MASK);
+ break;
+ case NPC_ALGALON_VOID_ZONE_VISUAL_STALKER:
+ summon->CastSpell(summon, SPELL_VOID_ZONE_VISUAL, TRIGGERED_FULL_MASK);
+ break;
+ case NPC_ALGALON_STALKER_ASTEROID_TARGET_01:
+ summon->CastSpell(summon, SPELL_COSMIC_SMASH_VISUAL_STATE, TRIGGERED_FULL_MASK);
+ break;
+ case NPC_ALGALON_STALKER_ASTEROID_TARGET_02:
+ summon->m_Events.AddEvent(new CosmicSmashDamageEvent(summon), summon->m_Events.CalculateTime(3250));
+ break;
+ case NPC_WORM_HOLE:
+ summon->SetReactState(REACT_PASSIVE);
+ summon->CastSpell(summon, SPELL_WORM_HOLE_TRIGGER, TRIGGERED_FULL_MASK);
+ summon->CastSpell(summon, SPELL_SUMMON_VOID_ZONE_VISUAL, TRIGGERED_FULL_MASK);
+ break;
+ case NPC_UNLEASHED_DARK_MATTER:
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
+ if (summon->Attack(target, true))
+ summon->GetMotionMaster()->MoveChase(target);
+ break;
+ }
+ }
+
+ void EnterEvadeMode()
+ {
+ instance->SetBossState(BOSS_ALGALON, FAIL);
+ BossAI::EnterEvadeMode();
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ me->SetSheath(SHEATH_STATE_UNARMED);
+ }
+
+ void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ {
+ if (_fightWon)
+ {
+ damage = 0;
+ return;
+ }
+
+ if (!_phaseTwo && me->HealthBelowPctDamaged(20, damage))
+ {
+ _phaseTwo = true;
+ Talk(SAY_ALGALON_PHASE_TWO);
+ summons.DespawnEntry(NPC_LIVING_CONSTELLATION);
+ summons.DespawnEntry(NPC_COLLAPSING_STAR);
+ summons.DespawnEntry(NPC_BLACK_HOLE);
+ summons.DespawnEntry(NPC_ALGALON_VOID_ZONE_VISUAL_STALKER);
+ events.CancelEvent(EVENT_SUMMON_COLLAPSING_STAR);
+ std::list<Creature*> stalkers;
+ me->GetCreatureListWithEntryInGrid(stalkers, NPC_ALGALON_STALKER, 200.0f);
+ for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
+ (*itr)->m_Events.KillAllEvents(true);
+ for (uint32 i = 0; i < COLLAPSING_STAR_COUNT; ++i)
+ if (Creature* wormHole = DoSummon(NPC_WORM_HOLE, CollapsingStarPos[i], TEMPSUMMON_MANUAL_DESPAWN))
+ wormHole->m_Events.AddEvent(new SummonUnleashedDarkMatter(wormHole), wormHole->m_Events.CalculateTime(i >= 2 ? 8000 : 6000));
+ }
+ else if ((int32(me->GetHealth()) - int32(damage)) < CalculatePctF<int32>(int32(me->GetMaxHealth()), 2.5f) && !_fightWon)
+ {
+ _fightWon = true;
+ damage = 0;
+ me->SetReactState(REACT_PASSIVE);
+ me->AttackStop();
+ me->setFaction(35);
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ DoCast(me, SPELL_SELF_STUN);
+ events.Reset();
+ summons.DespawnAll();
+ events.SetPhase(PHASE_ROLE_PLAY);
+ events.ScheduleEvent(EVENT_OUTRO_START, 1500);
+ events.ScheduleEvent(EVENT_OUTRO_1, 7200);
+ events.ScheduleEvent(EVENT_OUTRO_2, 8700);
+ }
+ }
+
+ void UpdateAI(uint32 const diff)
+ {
+ if ((!(events.GetPhaseMask() & PHASE_MASK_NO_UPDATE) && !UpdateVictim()) || !CheckInRoom())
+ return;
+
+ events.Update(diff);
+
+ if (!(events.GetPhaseMask() & PHASE_MASK_NO_CAST_CHECK))
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_INTRO_1:
+ me->RemoveAurasDueToSpell(SPELL_RIDE_THE_LIGHTNING);
+ Talk(SAY_ALGALON_INTRO_1);
+ break;
+ case EVENT_INTRO_2:
+ DoCastAOE(SPELL_SUMMON_AZEROTH, true);
+ Talk(SAY_ALGALON_INTRO_2);
+ break;
+ case EVENT_INTRO_3:
+ Talk(SAY_ALGALON_INTRO_3);
+ break;
+ case EVENT_INTRO_FINISH:
+ events.Reset();
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ break;
+ case EVENT_START_COMBAT:
+ instance->SetBossState(BOSS_ALGALON, IN_PROGRESS);
+ break;
+ case EVENT_INTRO_TIMER_DONE:
+ {
+ events.SetPhase(PHASE_NORMAL);
+ me->SetSheath(SHEATH_STATE_MELEE);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
+ me->SetReactState(REACT_DEFENSIVE);
+ DoCastAOE(SPELL_SUPERMASSIVE_FAIL, true);
+ //! Workaround for Creature::_IsTargetAcceptable returning false
+ //! for creatures that start combat in REACT_PASSIVE and UNIT_FLAG_NOT_SELECTABLE
+ //! causing them to immediately evade
+ if (!me->getThreatManager().isThreatListEmpty())
+ AttackStart(me->getThreatManager().getHostilTarget());
+ for (uint32 i = 0; i < LIVING_CONSTELLATION_COUNT; ++i)
+ if (Creature* summon = DoSummon(NPC_LIVING_CONSTELLATION, ConstellationPos[i], 0, TEMPSUMMON_DEAD_DESPAWN))
+ summon->SetReactState(REACT_PASSIVE);
+
+ std::list<Creature*> stalkers;
+ me->GetCreatureListWithEntryInGrid(stalkers, NPC_ALGALON_STALKER, 200.0f);
+ if (!stalkers.empty())
+ {
+ Unit* stalker = Trinity::Containers::SelectRandomContainerElement(stalkers);
+ stalker->m_Events.AddEvent(new ActivateLivingConstellation(stalker), stalker->m_Events.CalculateTime(urand(45000, 50000)));
+ }
+ break;
+ }
+ case EVENT_QUANTUM_STRIKE:
+ DoCastVictim(SPELL_QUANTUM_STRIKE);
+ events.ScheduleEvent(EVENT_QUANTUM_STRIKE, urand(3000, 5000));
+ break;
+ case EVENT_PHASE_PUNCH:
+ DoCastVictim(SPELL_PHASE_PUNCH);
+ events.ScheduleEvent(EVENT_PHASE_PUNCH, 15500);
+ break;
+ case EVENT_SUMMON_COLLAPSING_STAR:
+ Talk(SAY_ALGALON_COLLAPSING_STAR);
+ Talk(EMOTE_ALGALON_COLLAPSING_STAR);
+ for (uint32 i = 0; i < COLLAPSING_STAR_COUNT; ++i)
+ me->SummonCreature(NPC_COLLAPSING_STAR, CollapsingStarPos[i], TEMPSUMMON_CORPSE_DESPAWN);
+ events.ScheduleEvent(EVENT_SUMMON_COLLAPSING_STAR, 60000);
+ break;
+ case EVENT_BIG_BANG:
+ {
+ Talk(SAY_ALGALON_BIG_BANG);
+ Talk(EMOTE_ALGALON_BIG_BANG);
+ events.SetPhase(PHASE_BIG_BANG);
+ std::list<Creature*> constellations;
+ me->GetCreatureListWithEntryInGrid(constellations, NPC_LIVING_CONSTELLATION, 200.0f);
+ for (std::list<Creature*>::iterator itr = constellations.begin(); itr != constellations.end(); ++itr)
+ (*itr)->AI()->DoAction(ACTION_BIG_BANG);
+ DoCastAOE(SPELL_BIG_BANG);
+ events.ScheduleEvent(EVENT_BIG_BANG, 90500);
+ events.ScheduleEvent(EVENT_RESUME_UPDATING, 9500);
+ break;
+ }
+ case EVENT_RESUME_UPDATING:
+ events.SetPhase(0);
+ break;
+ case EVENT_ASCEND_TO_THE_HEAVENS:
+ Talk(SAY_ALGALON_ASCEND);
+ DoCastAOE(SPELL_ASCEND_TO_THE_HEAVENS);
+ events.ScheduleEvent(EVENT_EVADE, 2500);
+ break;
+ case EVENT_EVADE:
+ EnterEvadeMode();
+ break;
+ case EVENT_COSMIC_SMASH:
+ Talk(EMOTE_ALGALON_COSMIC_SMASH);
+ DoCastAOE(SPELL_COSMIC_SMASH);
+ events.ScheduleEvent(EVENT_COSMIC_SMASH, 25500);
+ break;
+ case EVENT_UNLOCK_YELL:
+ _hasYelled = false;
+ break;
+ case EVENT_OUTRO_START:
+ instance->SetBossState(BOSS_ALGALON, DONE);
+ break;
+ case EVENT_OUTRO_1:
+ me->RemoveAllAuras();
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME);
+ break;
+ case EVENT_OUTRO_2:
+ _EnterEvadeMode();
+ me->AddUnitState(UNIT_STATE_EVADE);
+ me->GetMotionMaster()->MovePoint(POINT_ALGALON_OUTRO, AlgalonOutroPos);
+ break;
+ case EVENT_OUTRO_3:
+ DoCastAOE(SPELL_KILL_CREDIT);
+ break;
+ case EVENT_OUTRO_4:
+ DoCastAOE(SPELL_SUPERMASSIVE_FAIL);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ break;
+ case EVENT_OUTRO_5:
+ if (Creature* brann = DoSummon(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos[0], 131500, TEMPSUMMON_TIMED_DESPAWN))
+ brann->AI()->DoAction(ACTION_OUTRO);
+ break;
+ case EVENT_OUTRO_6:
+ Talk(SAY_ALGALON_OUTRO_1);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
+ break;
+ case EVENT_OUTRO_7:
+ Talk(SAY_ALGALON_OUTRO_2);
+ break;
+ case EVENT_OUTRO_8:
+ Talk(SAY_ALGALON_OUTRO_3);
+ break;
+ case EVENT_OUTRO_9:
+ Talk(SAY_ALGALON_OUTRO_4);
+ break;
+ case EVENT_OUTRO_10:
+ Talk(SAY_ALGALON_OUTRO_5);
+ break;
+ case EVENT_OUTRO_11:
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ DoCast(me, SPELL_TELEPORT);
+ me->DespawnOrUnsummon(1500);
+ break;
+ }
+ }
+
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ bool _firstPull;
+ bool _fedOnTears;
+ bool _phaseTwo;
+ bool _fightWon;
+ bool _hasYelled;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return GetUlduarAI<boss_algalon_the_observerAI>(creature);
+ }
+};
+
+class npc_living_constellation : public CreatureScript
+{
+ public:
+ npc_living_constellation() : CreatureScript("npc_living_constellation") { }
+
+ struct npc_living_constellationAI : public CreatureAI
+ {
+ npc_living_constellationAI(Creature* creature) : CreatureAI(creature)
+ {
+ }
+
+ void Reset()
+ {
+ _events.Reset();
+ _events.ScheduleEvent(EVENT_ARCANE_BARRAGE, 2500);
+ _isActive = false;
+ }
+
+ uint32 GetData(uint32 /*type*/)
+ {
+ return _isActive ? 1 : 0;
+ }
+
+ void DoAction(int32 const action)
+ {
+ switch (action)
+ {
+ case ACTION_ACTIVATE_STAR:
+ if (Creature* algalon = me->FindNearestCreature(NPC_ALGALON, 200.0f))
+ {
+ if (Unit* target = algalon->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(algalon)))
+ {
+ me->SetReactState(REACT_AGGRESSIVE);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ AttackStart(target);
+ DoZoneInCombat();
+ _isActive = true;
+ }
+ }
+ break;
+ case ACTION_BIG_BANG:
+ _events.SetPhase(PHASE_BIG_BANG);
+ _events.DelayEvents(9500);
+ _events.ScheduleEvent(EVENT_RESUME_UPDATING, 9500);
+ break;
+ }
+ }
+
+ void SpellHit(Unit* caster, SpellInfo const* spell)
+ {
+ if (spell->Id != SPELL_CONSTELLATION_PHASE_EFFECT || caster->GetTypeId() != TYPEID_UNIT)
+ return;
+
+ me->DespawnOrUnsummon(1);
+ if (InstanceScript* instance = me->GetInstanceScript())
+ instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_ID_SUPERMASSIVE_START);
+ caster->CastSpell((Unit*)NULL, SPELL_BLACK_HOLE_CREDIT, TRIGGERED_FULL_MASK);
+ caster->ToCreature()->DespawnOrUnsummon(1);
+ }
+
+ void UpdateAI(uint32 const diff)
+ {
+ if (!(_events.GetPhaseMask() & PHASE_MASK_NO_UPDATE) && !UpdateVictim())
+ return;
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_ARCANE_BARRAGE:
+ DoCastAOE(SPELL_ARCANE_BARRAGE);
+ _events.ScheduleEvent(EVENT_ARCANE_BARRAGE, 2500);
+ break;
+ case EVENT_RESUME_UPDATING:
+ _events.SetPhase(0);
+ break;
+ }
+ }
+ }
+
+ private:
+ EventMap _events;
+ bool _isActive;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return GetUlduarAI<npc_living_constellationAI>(creature);
+ }
+};
+
+class npc_collapsing_star : public CreatureScript
+{
+ public:
+ npc_collapsing_star() : CreatureScript("npc_collapsing_star") { }
+
+ struct npc_collapsing_starAI : public PassiveAI
+ {
+ npc_collapsing_starAI(Creature* creature) : PassiveAI(creature)
+ {
+ _dying = false;
+ }
+
+ void JustSummoned(Creature* summon)
+ {
+ if (summon->GetEntry() != NPC_BLACK_HOLE)
+ return;
+
+ if (TempSummon* summ = me->ToTempSummon())
+ if (Creature* algalon = ObjectAccessor::GetCreature(*me, summ->GetSummonerGUID()))
+ algalon->AI()->JustSummoned(summon);
+
+ me->DespawnOrUnsummon(1);
+ }
+
+ void DamageTaken(Unit* /*attacker*/, uint32& damage)
+ {
+ if (_dying)
+ {
+ damage = 0;
+ return;
+ }
+
+ if (damage >= me->GetHealth())
+ {
+ _dying = true;
+ damage = 0;
+ DoCast(me, SPELL_BLACK_HOLE_SPAWN_VISUAL, true);
+ DoCast(me, SPELL_SUMMON_BLACK_HOLE, true);
+ }
+ }
+
+ bool _dying;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return GetUlduarAI<npc_collapsing_starAI>(creature);
+ }
+};
+
+class npc_brann_bronzebeard_algalon : public CreatureScript
+{
+ public:
+ npc_brann_bronzebeard_algalon() : CreatureScript("npc_brann_bronzebeard_algalon") { }
+
+ struct npc_brann_bronzebeard_algalonAI : public CreatureAI
+ {
+ npc_brann_bronzebeard_algalonAI(Creature* creature) : CreatureAI(creature)
+ {
+ }
+
+ void DoAction(int32 const action)
+ {
+ switch (action)
+ {
+ case ACTION_START_INTRO:
+ _currentPoint = 0;
+ _events.Reset();
+ me->SetWalk(false);
+ _events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, 1);
+ break;
+ case ACTION_FINISH_INTRO:
+ Talk(SAY_BRANN_ALGALON_INTRO_2);
+ _events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, 1);
+ break;
+ case ACTION_OUTRO:
+ me->GetMotionMaster()->MovePoint(POINT_BRANN_OUTRO, BrannOutroPos[1]);
+ _events.ScheduleEvent(EVENT_BRANN_OUTRO_1, 89500);
+ _events.ScheduleEvent(EVENT_BRANN_OUTRO_2, 116500);
+ break;
+ }
+ }
+
+ void MovementInform(uint32 movementType, uint32 pointId)
+ {
+ if (movementType != POINT_MOTION_TYPE)
+ return;
+
+ uint32 delay = 1;
+ _currentPoint = pointId + 1;
+ switch (pointId)
+ {
+ case 2:
+ delay = 8000;
+ me->SetWalk(true);
+ break;
+ case 5:
+ me->SetWalk(false);
+ Talk(SAY_BRANN_ALGALON_INTRO_1);
+ _events.ScheduleEvent(EVENT_SUMMON_ALGALON, 7500);
+ return;
+ case 9:
+ me->DespawnOrUnsummon(1);
+ return;
+ case POINT_BRANN_OUTRO:
+ case POINT_BRANN_OUTRO_END:
+ return;
+ }
+
+ _events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, delay);
+ }
+
+ void UpdateAI(uint32 const diff)
+ {
+ UpdateVictim();
+
+ if (_events.Empty())
+ return;
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_BRANN_MOVE_INTRO:
+ if (_currentPoint < MAX_BRANN_WAYPOINTS_INTRO)
+ me->GetMotionMaster()->MovePoint(_currentPoint, BrannIntroWaypoint[_currentPoint]);
+ break;
+ case EVENT_SUMMON_ALGALON:
+ if (Creature* algalon = me->GetMap()->SummonCreature(NPC_ALGALON, AlgalonSummonPos))
+ algalon->AI()->DoAction(ACTION_START_INTRO);
+ break;
+ case EVENT_BRANN_OUTRO_1:
+ Talk(SAY_BRANN_ALGALON_OUTRO);
+ break;
+ case EVENT_BRANN_OUTRO_2:
+ me->GetMotionMaster()->MovePoint(POINT_BRANN_OUTRO_END, BrannOutroPos[2]);
+ break;
+ }
+ }
+ }
+
+ private:
+ EventMap _events;
+ uint32 _currentPoint;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return GetUlduarAI<npc_brann_bronzebeard_algalonAI>(creature);
+ }
+};
+
+class go_celestial_planetarium_access : public GameObjectScript
+{
+ public:
+ go_celestial_planetarium_access() : GameObjectScript("go_celestial_planetarium_access") {}
+
+ struct go_celestial_planetarium_accessAI : public GameObjectAI
+ {
+ go_celestial_planetarium_accessAI(GameObject* go) : GameObjectAI(go)
+ {
+ }
+
+ bool GossipHello(Player* player)
+ {
+ bool hasKey = true;
+ if (LockEntry const* lock = sLockStore.LookupEntry(go->GetGOInfo()->goober.lockId))
+ {
+ hasKey = false;
+ for (uint32 i = 0; i < MAX_LOCK_CASE; ++i)
+ {
+ if (!lock->Index[i])
+ continue;
+
+ if (player->HasItemCount(lock->Index[i], 1))
+ {
+ hasKey = true;
+ break;
+ }
+ }
+ }
+
+ if (!hasKey)
+ return false;
+
+ // Start Algalon event
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
+ _events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5000);
+ if (Creature* brann = go->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannIntroSpawnPos))
+ brann->AI()->DoAction(ACTION_START_INTRO);
+
+ if (InstanceScript* instance = go->GetInstanceScript())
+ {
+ instance->SetData(DATA_ALGALON_SUMMON_STATE, 1);
+ if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetData64(DATA_SIGILDOOR_01)))
+ sigil->SetGoState(GO_STATE_ACTIVE);
+
+ if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetData64(DATA_SIGILDOOR_02)))
+ sigil->SetGoState(GO_STATE_ACTIVE);
+ }
+
+ return false;
+ }
+
+ void UpdateAI(uint32 diff)
+ {
+ if (_events.Empty())
+ return;
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DESPAWN_CONSOLE:
+ go->Delete();
+ break;
+ }
+ }
+ }
+
+ EventMap _events;
+ };
+
+ GameObjectAI* GetAI(GameObject* go) const
+ {
+ return GetUlduarAI<go_celestial_planetarium_accessAI>(go);
+ }
+};
+
+class spell_algalon_phase_punch : public SpellScriptLoader
+{
+ public:
+ spell_algalon_phase_punch() : SpellScriptLoader("spell_algalon_phase_punch") { }
+
+ class spell_algalon_phase_punch_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_algalon_phase_punch_AuraScript);
+
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
+ {
+ PreventDefaultAction();
+ if (GetStackAmount() != 1)
+ GetTarget()->RemoveAurasDueToSpell(PhasePunchAlphaId[GetStackAmount() - 2]);
+ GetTarget()->CastSpell(GetTarget(), PhasePunchAlphaId[GetStackAmount() - 1], TRIGGERED_FULL_MASK);
+ if (GetStackAmount() == 5)
+ Remove(AURA_REMOVE_BY_DEFAULT);
+ }
+
+ void OnRemove(AuraEffect const*, AuraEffectHandleModes)
+ {
+ if (GetStackAmount() != 5)
+ GetTarget()->RemoveAurasDueToSpell(PhasePunchAlphaId[GetStackAmount() - 1]);
+ }
+
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_algalon_phase_punch_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnEffectRemove += AuraEffectRemoveFn(spell_algalon_phase_punch_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_algalon_phase_punch_AuraScript();
+ }
+};
+
+class NotVictimFilter
+{
+ public:
+ NotVictimFilter(Unit* caster) : _victim(caster->getVictim())
+ {
+ }
+
+ bool operator()(Unit* target)
+ {
+ return target != _victim;
+ }
+
+ private:
+ Unit* _victim;
+};
+
+class spell_algalon_arcane_barrage : public SpellScriptLoader
+{
+ public:
+ spell_algalon_arcane_barrage() : SpellScriptLoader("spell_algalon_arcane_barrage") { }
+
+ class spell_algalon_arcane_barrage_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_algalon_arcane_barrage_SpellScript);
+
+ void SelectTarget(std::list<Unit*>& targets)
+ {
+ targets.remove_if(NotVictimFilter(GetCaster()));
+ }
+
+ void Register()
+ {
+ OnUnitTargetSelect += SpellUnitTargetFn(spell_algalon_arcane_barrage_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_algalon_arcane_barrage_SpellScript();
+ }
+};
+
+class ActiveConstellationFilter
+{
+ public:
+ bool operator()(Unit* target) const
+ {
+ return target->GetAI()->GetData(0);
+ }
+};
+
+class spell_algalon_trigger_3_adds : public SpellScriptLoader
+{
+ public:
+ spell_algalon_trigger_3_adds() : SpellScriptLoader("spell_algalon_trigger_3_adds") { }
+
+ class spell_algalon_trigger_3_adds_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_algalon_trigger_3_adds_SpellScript);
+
+ void SelectTarget(std::list<Unit*>& targets)
+ {
+ targets.remove_if(ActiveConstellationFilter());
+ }
+
+ void HandleDummy(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+ Creature* target = GetHitCreature();
+ if (!target)
+ return;
+
+ target->AI()->DoAction(ACTION_ACTIVATE_STAR);
+ }
+
+ void Register()
+ {
+ OnUnitTargetSelect += SpellUnitTargetFn(spell_algalon_trigger_3_adds_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_algalon_trigger_3_adds_SpellScript();
+ }
+};
+
+class spell_algalon_collapse : public SpellScriptLoader
+{
+ public:
+ spell_algalon_collapse() : SpellScriptLoader("spell_algalon_collapse") { }
+
+ class spell_algalon_collapse_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_algalon_collapse_AuraScript);
+
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->DealDamage(GetTarget(), GetTarget()->CountPctFromMaxHealth(1), NULL, NODAMAGE);
+ }
+
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_algalon_collapse_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_algalon_collapse_AuraScript();
+ }
+};
+
+class spell_algalon_big_bang : public SpellScriptLoader
+{
+ public:
+ spell_algalon_big_bang() : SpellScriptLoader("spell_algalon_big_bang") { }
+
+ class spell_algalon_big_bang_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_algalon_big_bang_SpellScript);
+
+ bool Load()
+ {
+ _targetCount = 0;
+ return true;
+ }
+
+ void CountTargets(std::list<Unit*>& targets)
+ {
+ _targetCount = targets.size();
+ }
+
+ void CheckTargets()
+ {
+ if (!_targetCount)
+ GetCaster()->GetAI()->DoAction(ACTION_ASCEND);
+ }
+
+ void Register()
+ {
+ OnUnitTargetSelect += SpellUnitTargetFn(spell_algalon_big_bang_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
+ AfterCast += SpellCastFn(spell_algalon_big_bang_SpellScript::CheckTargets);
+ }
+
+ uint32 _targetCount;
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_algalon_big_bang_SpellScript();
+ }
+};
+
+class spell_algalon_remove_phase : public SpellScriptLoader
+{
+ public:
+ spell_algalon_remove_phase() : SpellScriptLoader("spell_algalon_remove_phase") { }
+
+ class spell_algalon_remove_phase_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_algalon_remove_phase_AuraScript);
+
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->RemoveAurasByType(SPELL_AURA_PHASE);
+ }
+
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_algalon_remove_phase_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_algalon_remove_phase_AuraScript();
+ }
+};
+
+class spell_algalon_cosmic_smash : public SpellScriptLoader
+{
+ public:
+ spell_algalon_cosmic_smash() : SpellScriptLoader("spell_algalon_cosmic_smash") { }
+
+ class spell_algalon_cosmic_smash_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_algalon_cosmic_smash_SpellScript);
+
+ void ModDestHeight(SpellEffIndex /*effIndex*/)
+ {
+ Position offset = {0.0f, 0.0f, 65.0f, 0.0f};
+ const_cast<WorldLocation*>(GetExplTargetDest())->RelocateOffset(offset);
+ GetHitDest()->RelocateOffset(offset);
+ }
+
+ void Register()
+ {
+ OnEffectLaunch += SpellEffectFn(spell_algalon_cosmic_smash_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_algalon_cosmic_smash_SpellScript();
+ }
+};
+
+class spell_algalon_cosmic_smash_damage : public SpellScriptLoader
+{
+ public:
+ spell_algalon_cosmic_smash_damage() : SpellScriptLoader("spell_algalon_cosmic_smash_damage") { }
+
+ class spell_algalon_cosmic_smash_damage_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_algalon_cosmic_smash_damage_SpellScript);
+
+ void RecalculateDamage()
+ {
+ if (!GetExplTargetDest() || !GetHitUnit())
+ return;
+
+ float distance = GetHitUnit()->GetDistance2d(GetExplTargetDest()->GetPositionX(), GetExplTargetDest()->GetPositionY());
+ if (distance > 6.0f)
+ SetHitDamage(int32(float(GetHitDamage()) / distance) * 2);
+ }
+
+ void Register()
+ {
+ OnHit += SpellHitFn(spell_algalon_cosmic_smash_damage_SpellScript::RecalculateDamage);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_algalon_cosmic_smash_damage_SpellScript();
+ }
+};
+
+class spell_algalon_supermassive_fail : public SpellScriptLoader
+{
+ public:
+ spell_algalon_supermassive_fail() : SpellScriptLoader("spell_algalon_supermassive_fail") { }
+
+ class spell_algalon_supermassive_fail_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_algalon_supermassive_fail_SpellScript);
+
+ void RecalculateDamage()
+ {
+ if (!GetHitPlayer())
+ return;
+
+ GetHitPlayer()->GetAchievementMgr().ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_CRITERIA_CONDITION_NO_SPELL_HIT, GetSpellInfo()->Id, true);
+ }
+
+ void Register()
+ {
+ OnHit += SpellHitFn(spell_algalon_supermassive_fail_SpellScript::RecalculateDamage);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_algalon_supermassive_fail_SpellScript();
+ }
+};
+
+class achievement_he_feeds_on_your_tears : public AchievementCriteriaScript
+{
+ public:
+ achievement_he_feeds_on_your_tears() : AchievementCriteriaScript("achievement_he_feeds_on_your_tears") { }
+
+ bool OnCheck(Player* /*source*/, Unit* target)
+ {
+ return !target->GetAI()->GetData(DATA_HAS_FED_ON_TEARS);
+ }
+};
+
+void AddSC_boss_algalon_the_observer()
+{
+ new boss_algalon_the_observer();
+ new npc_living_constellation();
+ new npc_collapsing_star();
+ new npc_brann_bronzebeard_algalon();
+ new go_celestial_planetarium_access();
+ new spell_algalon_phase_punch();
+ new spell_algalon_arcane_barrage();
+ new spell_algalon_trigger_3_adds();
+ new spell_algalon_collapse();
+ new spell_algalon_big_bang();
+ new spell_algalon_remove_phase();
+ new spell_algalon_cosmic_smash();
+ new spell_algalon_cosmic_smash_damage();
+ new spell_algalon_supermassive_fail();
+ new achievement_he_feeds_on_your_tears();
+}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
index eadc524348b..0967c38c2e7 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
@@ -251,7 +251,7 @@ class boss_steelbreaker : public CreatureScript
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(RAND(SAY_STEELBREAKER_DEATH_1, SAY_STEELBREAKER_DEATH_2), me);
if (IsEncounterComplete(instance, me))
@@ -375,7 +375,7 @@ class boss_runemaster_molgeim : public CreatureScript
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(RAND(SAY_MOLGEIM_DEATH_1, SAY_MOLGEIM_DEATH_2), me);
if (IsEncounterComplete(instance, me))
@@ -575,7 +575,7 @@ class boss_stormcaller_brundir : public CreatureScript
_Reset();
phase = 0;
me->RemoveAllAuras();
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, false); // Should be interruptable unless overridden by spell (Overload)
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, false); // Reset immumity, Brundir should be stunnable by default
RespawnEncounter(instance, me);
@@ -616,7 +616,7 @@ class boss_stormcaller_brundir : public CreatureScript
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(RAND(SAY_BRUNDIR_DEATH_1, SAY_BRUNDIR_DEATH_2), me);
if (IsEncounterComplete(instance, me))
@@ -681,7 +681,7 @@ class boss_stormcaller_brundir : public CreatureScript
DoCast(RAID_MODE(SPELL_LIGHTNING_TENDRILS_10M, SPELL_LIGHTNING_TENDRILS_25M));
DoCast(SPELL_LIGHTNING_TENDRILS_VISUAL);
me->AttackStop();
- //me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ //me->SetLevitate(true);
me->GetMotionMaster()->Initialize();
me->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), FINAL_FLIGHT_Z);
events.DelayEvents(35000);
@@ -708,7 +708,7 @@ class boss_stormcaller_brundir : public CreatureScript
events.ScheduleEvent(EVENT_GROUND, 2500);
break;
case EVENT_GROUND:
- //me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ //me->SetLevitate(false);
me->RemoveAurasDueToSpell(RAID_MODE(SPELL_LIGHTNING_TENDRILS_10M, SPELL_LIGHTNING_TENDRILS_25M));
me->RemoveAurasDueToSpell(SPELL_LIGHTNING_TENDRILS_VISUAL);
DoStartMovement(me->getVictim());
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 1c478cd83e9..472ff153d73 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -204,7 +204,7 @@ class boss_auriaya : public CreatureScript
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
_JustDied();
@@ -298,14 +298,14 @@ class npc_auriaya_seeping_trigger : public CreatureScript
void Reset()
{
- me->ForcedDespawn(600000);
+ me->DespawnOrUnsummon(600000);
DoCast(me, SPELL_SEEPING_ESSENCE);
}
void UpdateAI(uint32 const /*diff*/)
{
if (instance->GetBossState(BOSS_AURIAYA) != IN_PROGRESS)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
private:
@@ -376,7 +376,7 @@ class npc_sanctum_sentry : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_AURIAYA)))
Auriaya->AI()->DoAction(ACTION_CRAZY_CAT_LADY);
@@ -451,7 +451,7 @@ class npc_feral_defender : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
DoCast(me, SPELL_SUMMON_ESSENCE);
if (Creature* Auriaya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_AURIAYA)))
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 c4f973726bc..0e453eceaa1 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -26,6 +26,10 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
+#include "Cell.h"
+#include "CellImpl.h"
+#include "GridNotifiers.h"
+#include "GridNotifiersImpl.h"
#include "CombatAI.h"
#include "PassiveAI.h"
#include "ObjectMgr.h"
@@ -167,7 +171,7 @@ enum Yells
enum MiscellanousData
{
- // Other actions are in Ulduar.h
+ // Other Actions are in Ulduar.h
ACTION_START_HARD_MODE = 5,
ACTION_SPAWN_VEHICLES = 6,
// Amount of seats depending on Raid mode
@@ -324,7 +328,7 @@ class boss_flame_leviathan : public CreatureScript
DoScriptText(SAY_AGGRO, me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
// Set Field Flags 67108928 = 64 | 67108864 = UNIT_FLAG_UNK_6 | UNIT_FLAG_SKINNABLE
@@ -573,7 +577,7 @@ class boss_flame_leviathan_seat : public CreatureScript
{
ASSERT(vehicle);
me->SetReactState(REACT_PASSIVE);
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
instance = creature->GetInstanceScript();
}
@@ -639,7 +643,7 @@ class boss_flame_leviathan_defense_cannon : public CreatureScript
uint32 NapalmTimer;
- void Reset ()
+ void Reset()
{
NapalmTimer = 5*IN_MILLISECONDS;
DoCast(me, AURA_STEALTH_DETECTION);
@@ -883,7 +887,7 @@ class npc_colossus : public CreatureScript
InstanceScript* instance;
- void JustDied(Unit* /*Who*/)
+ void JustDied(Unit* /*killer*/)
{
if (me->GetHomePosition().IsInDist(Center, 50.f))
instance->SetData(DATA_COLOSSUS, instance->GetData(DATA_COLOSSUS)+1);
@@ -960,8 +964,9 @@ public:
me->SetReactState(REACT_PASSIVE);
}
- void WaypointReached(uint32 /*i*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
+
}
void Reset()
@@ -1151,7 +1156,7 @@ class npc_lorekeeper : public CreatureScript
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
InstanceScript* instance = creature->GetInstanceScript();
@@ -1224,10 +1229,10 @@ class npc_brann_bronzebeard : public CreatureScript
public:
npc_brann_bronzebeard() : CreatureScript("npc_brann_bronzebeard") { }
- //bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
+ //bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
//{
// player->PlayerTalkClass->ClearMenus();
- // switch(uiAction)
+ // switch(action)
// {
// case GOSSIP_ACTION_INFO_DEF+1:
// if (player)
@@ -1268,7 +1273,7 @@ class go_ulduar_tower : public GameObjectScript
public:
go_ulduar_tower() : GameObjectScript("go_ulduar_tower") { }
- void OnDestroyed(GameObject* go, Player* /*player*/, uint32 /*value*/)
+ void OnDestroyed(GameObject* go, Player* /*player*/)
{
InstanceScript* instance = go->GetInstanceScript();
if (!instance)
@@ -1673,7 +1678,7 @@ class spell_pursue : public SpellScriptLoader
else
{
//! In the end, only one target should be selected
- _target = SelectRandomContainerElement(targets);
+ _target = Trinity::Containers::SelectRandomContainerElement(targets);
FilterTargetsSubsequently(targets);
}
}
@@ -1681,7 +1686,7 @@ class spell_pursue : public SpellScriptLoader
void FilterTargetsSubsequently(std::list<Unit*>& targets)
{
targets.clear();
- if(_target)
+ if (_target)
targets.push_back(_target);
}
@@ -1738,7 +1743,7 @@ class spell_vehicle_throw_passenger : public SpellScriptLoader
{
// use 99 because it is 3d search
std::list<WorldObject*> targetList;
- Trinity::WorldObjectSpellAreaTargetCheck check(99, GetTargetDest(), GetCaster(), GetCaster(), GetSpellInfo(), TARGET_CHECK_DEFAULT, NULL);
+ Trinity::WorldObjectSpellAreaTargetCheck check(99, GetExplTargetDest(), GetCaster(), GetCaster(), GetSpellInfo(), TARGET_CHECK_DEFAULT, NULL);
Trinity::WorldObjectListSearcher<Trinity::WorldObjectSpellAreaTargetCheck> searcher(GetCaster(), targetList, check);
GetCaster()->GetMap()->VisitAll(GetCaster()->m_positionX, GetCaster()->m_positionY, 99, searcher);
float minDist = 99 * 99;
@@ -1752,7 +1757,7 @@ class spell_vehicle_throw_passenger : public SpellScriptLoader
if (Unit* device = seat->GetPassenger(2))
if (!device->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
{
- float dist = unit->GetExactDistSq(targets.GetDst());
+ float dist = unit->GetExactDistSq(targets.GetDstPos());
if (dist < minDist)
{
minDist = dist;
@@ -1760,13 +1765,13 @@ class spell_vehicle_throw_passenger : public SpellScriptLoader
}
}
}
- if (target && target->IsWithinDist2d(targets.GetDst(), GetSpellInfo()->Effects[effIndex].CalcRadius() * 2)) // now we use *2 because the location of the seat is not correct
+ if (target && target->IsWithinDist2d(targets.GetDstPos(), GetSpellInfo()->Effects[effIndex].CalcRadius() * 2)) // now we use *2 because the location of the seat is not correct
passenger->EnterVehicle(target, 0);
else
{
passenger->ExitVehicle();
float x, y, z;
- targets.GetDst()->GetPosition(x, y, z);
+ targets.GetDstPos()->GetPosition(x, y, z);
passenger->GetMotionMaster()->MoveJump(x, y, z, targets.GetSpeedXY(), targets.GetSpeedZ());
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index 159e2a9702b..a3c9cb847e5 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -245,7 +245,7 @@ class npc_iron_roots : public CreatureScript
me->SetInCombatWith(summoner);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Player* target = ObjectAccessor::GetPlayer(*me, summonerGUID))
{
@@ -507,7 +507,7 @@ class boss_freya : public CreatureScript
for (uint8 n = 0; n < 3; ++n)
{
summons.remove(Elemental[n][i]->GetGUID());
- Elemental[n][i]->ForcedDespawn(5000);
+ Elemental[n][i]->DespawnOrUnsummon(5000);
trioDefeated[i] = true;
Elemental[n][i]->CastSpell(me, SPELL_REMOVE_10STACK, true);
}
@@ -590,7 +590,7 @@ class boss_freya : public CreatureScript
waveCount++;
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
//! Freya's chest is dynamically spawned on death by different spells.
const uint32 summonSpell[2][4] =
@@ -664,12 +664,12 @@ class boss_freya : public CreatureScript
case NPC_DETONATING_LASHER:
summoned->CastSpell(me, SPELL_REMOVE_2STACK, true);
summoned->CastSpell(who, SPELL_DETONATE, true);
- summoned->ForcedDespawn(5000);
+ summoned->DespawnOrUnsummon(5000);
summons.remove(summoned->GetGUID());
break;
case NPC_ANCIENT_CONSERVATOR:
summoned->CastSpell(me, SPELL_REMOVE_25STACK, true);
- summoned->ForcedDespawn(5000);
+ summoned->DespawnOrUnsummon(5000);
summons.remove(summoned->GetGUID());
break;
}
@@ -710,12 +710,12 @@ class boss_elder_brightleaf : public CreatureScript
DoScriptText(RAND(SAY_BRIGHTLEAF_SLAY_1, SAY_BRIGHTLEAF_SLAY_2), me);
}
- void JustDied(Unit* who)
+ void JustDied(Unit* killer)
{
_JustDied();
DoScriptText(SAY_BRIGHTLEAF_DEATH, me);
- if (who && who->GetTypeId() == TYPEID_PLAYER)
+ if (killer && killer->GetTypeId() == TYPEID_PLAYER)
{
if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_IRONBRANCH)))
Ironbranch->AI()->DoAction(ACTION_ELDER_DEATH);
@@ -830,12 +830,12 @@ class boss_elder_stonebark : public CreatureScript
DoScriptText(RAND(SAY_STONEBARK_SLAY_1, SAY_STONEBARK_SLAY_2), me);
}
- void JustDied(Unit* who)
+ void JustDied(Unit* killer)
{
_JustDied();
DoScriptText(SAY_STONEBARK_DEATH, me);
- if (who && who->GetTypeId() == TYPEID_PLAYER)
+ if (killer && killer->GetTypeId() == TYPEID_PLAYER)
{
if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_IRONBRANCH)))
Ironbranch->AI()->DoAction(ACTION_ELDER_DEATH);
@@ -956,12 +956,12 @@ class boss_elder_ironbranch : public CreatureScript
DoScriptText(RAND(SAY_IRONBRANCH_SLAY_1, SAY_IRONBRANCH_SLAY_2), me);
}
- void JustDied(Unit* who)
+ void JustDied(Unit* killer)
{
_JustDied();
DoScriptText(SAY_IRONBRANCH_DEATH, me);
- if (who && who->GetTypeId() == TYPEID_PLAYER)
+ if (killer && killer->GetTypeId() == TYPEID_PLAYER)
{
if (Creature* Brightleaf = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF)))
Brightleaf->AI()->DoAction(ACTION_ELDER_DEATH);
@@ -1138,7 +1138,7 @@ class npc_ancient_water_spirit : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA)))
{
@@ -1204,7 +1204,7 @@ class npc_storm_lasher : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA)))
{
@@ -1251,7 +1251,7 @@ class npc_snaplasher : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Freya = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_FREYA)))
{
@@ -1385,7 +1385,7 @@ class npc_healthy_spore : public CreatureScript
if (lifeTimer <= diff)
{
me->RemoveAurasDueToSpell(SPELL_GROW);
- me->ForcedDespawn(2200);
+ me->DespawnOrUnsummon(2200);
lifeTimer = urand(22000, 30000);
}
else
@@ -1423,7 +1423,7 @@ class npc_eonars_gift : public CreatureScript
{
me->RemoveAurasDueToSpell(SPELL_GROW);
DoCast(SPELL_LIFEBINDERS_GIFT);
- me->ForcedDespawn(2500);
+ me->DespawnOrUnsummon(2500);
lifeBindersGiftTimer = 12000;
}
else
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 c7918f85245..3556bf188de 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -211,7 +211,7 @@ class boss_general_vezax : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
@@ -290,7 +290,7 @@ class boss_general_vezax : public CreatureScript
if (size < playersMin)
return NULL;
- return SelectRandomContainerElement(PlayerList);
+ return Trinity::Containers::SelectRandomContainerElement(PlayerList);
}
return NULL;
@@ -323,7 +323,7 @@ class boss_saronite_animus : public CreatureScript
events.ScheduleEvent(EVENT_PROFOUND_OF_DARKNESS, 3000);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Vezax = me->GetCreature(*me, instance->GetData64(BOSS_VEZAX)))
Vezax->AI()->DoAction(ACTION_ANIMUS_DIE);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
index 33f50d0b3de..c9fe1c5b707 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
@@ -179,7 +179,7 @@ class npc_flash_freeze : public CreatureScript
npc_flash_freezeAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
}
@@ -246,7 +246,7 @@ class npc_ice_block : public CreatureScript
npc_ice_blockAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
targetGUID = 0;
}
@@ -512,7 +512,7 @@ class npc_icicle : public CreatureScript
{
npc_icicleAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetDisplayId(me->GetCreatureInfo()->Modelid1);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
}
@@ -560,7 +560,7 @@ class npc_snowpacked_icicle : public CreatureScript
{
npc_snowpacked_icicleAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
me->SetReactState(REACT_PASSIVE);
}
@@ -651,7 +651,7 @@ class npc_hodir_priest : public CreatureScript
DoSpellAttackIfReady(SPELL_SMITE);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -713,7 +713,7 @@ class npc_hodir_shaman : public CreatureScript
DoSpellAttackIfReady(SPELL_LAVA_BURST);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -774,7 +774,7 @@ class npc_hodir_druid : public CreatureScript
DoSpellAttackIfReady(SPELL_WRATH);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -854,7 +854,7 @@ class npc_hodir_mage : public CreatureScript
DoSpellAttackIfReady(SPELL_FIREBALL);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(BOSS_HODIR) : 0))
Hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
@@ -881,7 +881,7 @@ class npc_toasty_fire : public CreatureScript
{
npc_toasty_fireAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
void Reset()
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index d8a3ef0b8df..540876f421b 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -148,7 +148,7 @@ class boss_ignis : public CreatureScript
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEVEMENT_IGNIS_START_EVENT);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
@@ -371,15 +371,15 @@ class npc_scorch_ground : public CreatureScript
creature->SetDisplayId(16925); //model 2 in db cannot overwrite wdb fields
}
- void MoveInLineOfSight(Unit* unit)
+ void MoveInLineOfSight(Unit* who)
{
if (!_heat)
{
- if (unit->GetEntry() == NPC_IRON_CONSTRUCT)
+ if (who->GetEntry() == NPC_IRON_CONSTRUCT)
{
- if (!unit->HasAura(SPELL_HEAT) || !unit->HasAura(SPELL_MOLTEN))
+ if (!who->HasAura(SPELL_HEAT) || !who->HasAura(SPELL_MOLTEN))
{
- _constructGUID = unit->GetGUID();
+ _constructGUID = who->GetGUID();
_heat = true;
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index d5034e4827e..d89d640b083 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -135,7 +135,7 @@ class boss_kologarn : public CreatureScript
eyebeamTarget = 0;
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
DoCast(SPELL_KOLOGARN_PACIFY);
@@ -184,11 +184,8 @@ class boss_kologarn : public CreatureScript
if (Creature* rubbleStalker = who->FindNearestCreature(NPC_RUBBLE_STALKER, 70.0f))
{
- if (rubbleStalker)
- {
- rubbleStalker->CastSpell(rubbleStalker, SPELL_FALLING_RUBBLE, true);
- rubbleStalker->CastSpell(rubbleStalker, SPELL_SUMMON_RUBBLE, true);
- }
+ rubbleStalker->CastSpell(rubbleStalker, SPELL_FALLING_RUBBLE, true);
+ rubbleStalker->CastSpell(rubbleStalker, SPELL_SUMMON_RUBBLE, true);
}
if (!right && !left)
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index 45f9a1fa012..e8e938dc06b 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -177,7 +177,7 @@ class boss_razorscale_controller : public CreatureScript
{
boss_razorscale_controllerAI(Creature* creature) : BossAI(creature, DATA_RAZORSCALE_CONTROL)
{
- me->SetDisplayId(me->GetCreatureInfo()->Modelid2);
+ me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
}
void Reset()
@@ -211,7 +211,7 @@ class boss_razorscale_controller : public CreatureScript
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
}
@@ -330,7 +330,7 @@ class boss_razorscale : public CreatureScript
void Reset()
{
_Reset();
- me->SetFlying(true);
+ me->SetCanFly(true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
PermaGround = false;
@@ -354,7 +354,7 @@ class boss_razorscale : public CreatureScript
events.ScheduleEvent(EVENT_FLIGHT, 0, 0, PHASE_GROUND);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
_JustDied();
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_RAZORSCALE_CONTROL) : 0))
@@ -419,7 +419,7 @@ class boss_razorscale : public CreatureScript
case EVENT_FLIGHT:
phase = PHASE_FLIGHT;
events.SetPhase(PHASE_FLIGHT);
- me->SetFlying(true);
+ me->SetCanFly(true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
@@ -430,7 +430,7 @@ class boss_razorscale : public CreatureScript
++FlyCount;
return;
case EVENT_LAND:
- me->SetFlying(false);
+ me->SetCanFly(false);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
if (Creature* commander = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_EXPEDITION_COMMANDER) : 0))
@@ -524,7 +524,7 @@ class boss_razorscale : public CreatureScript
me->MonsterTextEmote(EMOTE_PERMA, 0, true);
phase = PHASE_PERMAGROUND;
events.SetPhase(PHASE_PERMAGROUND);
- me->SetFlying(false);
+ me->SetCanFly(false);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveAurasDueToSpell(SPELL_HARPOON_TRIGGER);
@@ -647,7 +647,7 @@ class npc_expedition_commander : public CreatureScript
for (uint8 n = 0; n < RAID_MODE(2, 4); n++)
{
Engineer[n] = me->SummonCreature(NPC_ENGINEER, PosEngSpawn, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3000);
- Engineer[n]->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ Engineer[n]->SetWalk(false);
Engineer[n]->SetSpeed(MOVE_RUN, 0.5f);
Engineer[n]->SetHomePosition(PosEngRepair[n]);
Engineer[n]->GetMotionMaster()->MoveTargetedHome();
@@ -660,7 +660,7 @@ class npc_expedition_commander : public CreatureScript
for (uint8 n = 0; n < 4; n++)
{
Defender[n] = me->SummonCreature(NPC_DEFENDER, PosDefSpawn[n], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3000);
- Defender[n]->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ Defender[n]->SetWalk(false);
Defender[n]->SetHomePosition(PosDefCombat[n]);
Defender[n]->GetMotionMaster()->MoveTargetedHome();
}
@@ -1006,7 +1006,7 @@ class spell_razorscale_devouring_flame : public SpellScriptLoader
PreventHitDefaultEffect(effIndex);
Unit* caster = GetCaster();
uint32 entry = uint32(GetSpellInfo()->Effects[effIndex].MiscValue);
- WorldLocation const* summonLocation = GetTargetDest();
+ WorldLocation const* summonLocation = GetExplTargetDest();
if (!caster || !summonLocation)
return;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 72741ee0679..084cd3e0f86 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -73,7 +73,7 @@ public:
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
_JustDied();
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index 724eb45d586..c7091b42c5a 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -244,7 +244,7 @@ class boss_xt002 : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
_JustDied();
@@ -947,13 +947,19 @@ class spell_xt002_tympanic_tantrum : public SpellScriptLoader
void FilterTargets(std::list<Unit*>& unitList)
{
- unitList.remove_if (PlayerOrPetCheck());
+ unitList.remove_if(PlayerOrPetCheck());
+ }
+
+ void RecalculateDamage()
+ {
+ SetHitDamage(GetHitUnit()->CountPctFromMaxHealth(GetHitDamage()));
}
void Register()
{
OnUnitTargetSelect += SpellUnitTargetFn(spell_xt002_tympanic_tantrum_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnUnitTargetSelect += SpellUnitTargetFn(spell_xt002_tympanic_tantrum_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
+ OnHit += SpellHitFn(spell_xt002_tympanic_tantrum_SpellScript::RecalculateDamage);
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
index 3f01f21b189..58ba125b994 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
@@ -18,18 +18,27 @@
#include "ScriptMgr.h"
#include "ulduar.h"
-enum Sara_Yells
+enum Sara
{
- SAY_SARA_PREFIGHT_1 = -1603310,
- SAY_SARA_PREFIGHT_2 = -1603311,
- SAY_SARA_AGGRO_1 = -1603312,
- SAY_SARA_AGGRO_2 = -1603313,
- SAY_SARA_AGGRO_3 = -1603314,
- SAY_SARA_SLAY_1 = -1603315,
- SAY_SARA_SLAY_2 = -1603316,
- WHISP_SARA_INSANITY = -1603317,
- SAY_SARA_PHASE2_1 = -1603318,
- SAY_SARA_PHASE2_2 = -1603319,
+ // text
+ YELL_SARA_PREFIGHT = 0,
+ YELL_COMBAT_PHASE_1 = 1,
+ YELL_COMBAT_PHASE_2 = 2,
+ YELL_SLAY = 3,
+
+ // Phase 1 spells
+ SPELL_SARAS_ANGER_1 = 63147, // Target Entry 33136
+ SPELL_SARAS_ANGER_2 = 63744, // Target Entry 33136
+ SPELL_SARAS_FEVOR_1 = 63138, // Target Player
+ SPELL_SARAS_FEVOR_2 = 63747, // Target Player
+ SPELL_SARAS_BLESSING_1 = 63134, // Target Player
+ SPELL_SARAS_BLESSING_2 = 63745, // Target Self
+
+ // Phase 2 spells
+ SPELL_PHYCHOSIS = 63795, // Target Self
+ SPELL_MALADY_OF_THE_MIND = 63830, // Target Self
+ SPELL_DEATH_RAY = 63891, // Target Self
+ SPELL_BRAIN_LINK = 63802, // Target Self
};
enum YoggSaron_Yells
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index e12393f047f..654d763ddbc 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -22,9 +22,14 @@
static DoorData const doorData[] =
{
- { GO_LEVIATHAN_DOOR, BOSS_LEVIATHAN, DOOR_TYPE_ROOM, BOUNDARY_S },
- { GO_XT_002_DOOR, BOSS_XT002, DOOR_TYPE_ROOM, BOUNDARY_S },
- { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE },
+ {GO_LEVIATHAN_DOOR, BOSS_LEVIATHAN, DOOR_TYPE_ROOM, BOUNDARY_S },
+ {GO_XT_002_DOOR, BOSS_XT002, DOOR_TYPE_ROOM, BOUNDARY_S },
+ {GO_DOODAD_UL_SIGILDOOR_03, BOSS_ALGALON, DOOR_TYPE_ROOM, BOUNDARY_W },
+ {GO_DOODAD_UL_UNIVERSEFLOOR_01, BOSS_ALGALON, DOOR_TYPE_ROOM, BOUNDARY_NONE },
+ {GO_DOODAD_UL_UNIVERSEFLOOR_02, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
+ {GO_DOODAD_UL_UNIVERSEGLOBE01, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
+ {GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
+ {0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE },
};
class instance_ulduar : public InstanceMapScript
@@ -36,7 +41,6 @@ class instance_ulduar : public InstanceMapScript
{
instance_ulduar_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { }
- uint32 Encounter[MAX_ENCOUNTER];
std::string m_strInstData;
// Creatures
@@ -72,6 +76,12 @@ class instance_ulduar : public InstanceMapScript
uint64 HodirDoorGUID;
uint64 HodirIceDoorGUID;
uint64 ArchivumDoorGUID;
+ uint64 AlgalonSigilDoorGUID[3];
+ uint64 AlgalonFloorGUID[2];
+ uint64 AlgalonUniverseGUID;
+ uint64 AlgalonTrapdoorGUID;
+ uint64 BrannBronzebeardAlgGUID;
+ uint64 GiftOfTheObserverGUID;
// Miscellaneous
uint32 TeamInInstance;
@@ -111,35 +121,49 @@ class instance_ulduar : public InstanceMapScript
HodirDoorGUID = 0;
HodirIceDoorGUID = 0;
ArchivumDoorGUID = 0;
+ AlgalonUniverseGUID = 0;
+ AlgalonTrapdoorGUID = 0;
+ BrannBronzebeardAlgGUID = 0;
+ GiftOfTheObserverGUID = 0;
+ _algalonTimer = 61;
+ _maxArmorItemLevel = 0;
+ _maxWeaponItemLevel = 0;
TeamInInstance = 0;
HodirRareCacheData = 0;
ColossusData = 0;
elderCount = 0;
conSpeedAtory = false;
Unbroken = true;
+ _summonAlgalon = false;
- memset(Encounter, 0, sizeof(Encounter));
+ memset(AlgalonSigilDoorGUID, 0, sizeof(AlgalonSigilDoorGUID));
+ memset(AlgalonFloorGUID, 0, sizeof(AlgalonFloorGUID));
memset(XTToyPileGUIDs, 0, sizeof(XTToyPileGUIDs));
memset(AssemblyGUIDs, 0, sizeof(AssemblyGUIDs));
memset(RazorHarpoonGUIDs, 0, sizeof(RazorHarpoonGUIDs));
memset(KeeperGUIDs, 0, sizeof(KeeperGUIDs));
}
- bool IsEncounterInProgress() const
+ void FillInitialWorldStates(WorldPacket& packet)
{
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- {
- if (Encounter[i] == IN_PROGRESS)
- return true;
- }
-
- return false;
+ packet << uint32(WORLD_STATE_ALGALON_TIMER_ENABLED) << uint32(_algalonTimer && _algalonTimer <= 60);
+ packet << uint32(WORLD_STATE_ALGALON_DESPAWN_TIMER) << uint32(std::min<uint32>(_algalonTimer, 60));
}
void OnPlayerEnter(Player* player)
{
if (!TeamInInstance)
TeamInInstance = player->GetTeam();
+
+ if (_summonAlgalon)
+ {
+ _summonAlgalon = false;
+ TempSummon* algalon = instance->SummonCreature(NPC_ALGALON, AlgalonLandPos);
+ if (_algalonTimer && _algalonTimer <= 60)
+ algalon->AI()->DoAction(ACTION_INIT_ALGALON);
+ else
+ algalon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ }
}
void OnCreatureCreate(Creature* creature)
@@ -234,7 +258,6 @@ class instance_ulduar : public InstanceMapScript
case NPC_ALGALON:
AlgalonGUID = creature->GetGUID();
break;
-
// Hodir's Helper NPCs
case NPC_EIVI_NIGHTFEATHER:
if (TeamInInstance == HORDE)
@@ -268,9 +291,32 @@ class instance_ulduar : public InstanceMapScript
if (TeamInInstance == HORDE)
creature->UpdateEntry(NPC_BATTLE_PRIEST_GINA, HORDE);
break;
+ case NPC_BRANN_BRONZBEARD_ALG:
+ BrannBronzebeardAlgGUID = creature->GetGUID();
+ break;
+ //! These creatures are summoned by something else than Algalon
+ //! but need to be controlled/despawned by him - so they need to be
+ //! registered in his summon list
+ case NPC_ALGALON_VOID_ZONE_VISUAL_STALKER:
+ case NPC_ALGALON_STALKER_ASTEROID_TARGET_01:
+ case NPC_ALGALON_STALKER_ASTEROID_TARGET_02:
+ case NPC_UNLEASHED_DARK_MATTER:
+ if (Creature* algalon = instance->GetCreature(AlgalonGUID))
+ algalon->AI()->JustSummoned(creature);
+ break;
}
+ }
- }
+ void OnCreatureRemove(Creature* creature)
+ {
+ switch (creature->GetEntry())
+ {
+ case NPC_BRANN_BRONZBEARD_ALG:
+ if (BrannBronzebeardAlgGUID == creature->GetGUID())
+ BrannBronzebeardAlgGUID = 0;
+ break;
+ }
+ }
void OnGameObjectCreate(GameObject* gameObject)
{
@@ -341,6 +387,45 @@ class instance_ulduar : public InstanceMapScript
if (GetBossState(BOSS_ASSEMBLY_OF_IRON) != DONE)
HandleGameObject(ArchivumDoorGUID, false);
break;
+ case GO_CELESTIAL_PLANETARIUM_ACCESS_10:
+ case GO_CELESTIAL_PLANETARIUM_ACCESS_25:
+ if (_algalonSummoned)
+ gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
+ break;
+ case GO_DOODAD_UL_SIGILDOOR_01:
+ AlgalonSigilDoorGUID[0] = gameObject->GetGUID();
+ if (_algalonSummoned)
+ gameObject->SetGoState(GO_STATE_ACTIVE);
+ break;
+ case GO_DOODAD_UL_SIGILDOOR_02:
+ AlgalonSigilDoorGUID[1] = gameObject->GetGUID();
+ if (_algalonSummoned)
+ gameObject->SetGoState(GO_STATE_ACTIVE);
+ break;
+ case GO_DOODAD_UL_SIGILDOOR_03:
+ AlgalonSigilDoorGUID[2] = gameObject->GetGUID();
+ AddDoor(gameObject, true);
+ break;
+ case GO_DOODAD_UL_UNIVERSEFLOOR_01:
+ AlgalonFloorGUID[0] = gameObject->GetGUID();
+ AddDoor(gameObject, true);
+ break;
+ case GO_DOODAD_UL_UNIVERSEFLOOR_02:
+ AlgalonFloorGUID[1] = gameObject->GetGUID();
+ AddDoor(gameObject, true);
+ break;
+ case GO_DOODAD_UL_UNIVERSEGLOBE01:
+ AlgalonUniverseGUID = gameObject->GetGUID();
+ AddDoor(gameObject, true);
+ break;
+ case GO_DOODAD_UL_ULDUAR_TRAPDOOR_03:
+ AlgalonTrapdoorGUID = gameObject->GetGUID();
+ AddDoor(gameObject, true);
+ break;
+ case GO_GIFT_OF_THE_OBSERVER_10:
+ case GO_GIFT_OF_THE_OBSERVER_25:
+ GiftOfTheObserverGUID = gameObject->GetGUID();
+ break;
}
}
@@ -349,10 +434,14 @@ class instance_ulduar : public InstanceMapScript
switch (gameObject->GetEntry())
{
case GO_LEVIATHAN_DOOR:
- AddDoor(gameObject, false);
- break;
case GO_XT_002_DOOR:
+ case GO_DOODAD_UL_SIGILDOOR_03:
+ case GO_DOODAD_UL_UNIVERSEFLOOR_01:
+ case GO_DOODAD_UL_UNIVERSEFLOOR_02:
+ case GO_DOODAD_UL_UNIVERSEGLOBE01:
+ case GO_DOODAD_UL_ULDUAR_TRAPDOOR_03:
AddDoor(gameObject, false);
+ break;
default:
break;
}
@@ -390,6 +479,7 @@ class instance_ulduar : public InstanceMapScript
// Flame Leviathan's Tower Event triggers
Creature* FlameLeviathan = instance->GetCreature(LeviathanGUID);
if (FlameLeviathan && FlameLeviathan->isAlive()) // No leviathan, no event triggering ;)
+ {
switch (eventId)
{
case EVENT_TOWER_OF_STORM_DESTROYED:
@@ -405,6 +495,7 @@ class instance_ulduar : public InstanceMapScript
FlameLeviathan->AI()->DoAction(ACTION_TOWER_OF_LIFE_DESTROYED);
break;
}
+ }
}
@@ -465,6 +556,52 @@ class instance_ulduar : public InstanceMapScript
if (GameObject* gameObject = instance->GetGameObject(ThorimChestGUID))
gameObject->SetRespawnTime(gameObject->GetRespawnDelay());
break;
+ case BOSS_ALGALON:
+ if (state == DONE)
+ {
+ _events.CancelEvent(EVENT_UPDATE_ALGALON_TIMER);
+ _events.CancelEvent(EVENT_DESPAWN_ALGALON);
+ DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 0);
+ _algalonTimer = 61;
+ if (GameObject* gameObject = instance->GetGameObject(GiftOfTheObserverGUID))
+ gameObject->SetRespawnTime(gameObject->GetRespawnDelay());
+ // get item level (recheck weapons)
+ Map::PlayerList const& players = instance->GetPlayers();
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ if (Player* player = itr->getSource())
+ for (uint8 slot = EQUIPMENT_SLOT_MAINHAND; slot <= EQUIPMENT_SLOT_RANGED; ++slot)
+ if (Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
+ if (item->GetTemplate()->ItemLevel > _maxWeaponItemLevel)
+ _maxWeaponItemLevel = item->GetTemplate()->ItemLevel;
+ }
+ else if (state == IN_PROGRESS)
+ {
+ // get item level (armor cannot be swapped in combat)
+ Map::PlayerList const& players = instance->GetPlayers();
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ {
+ if (Player* player = itr->getSource())
+ {
+ for (uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot)
+ {
+ if (slot == EQUIPMENT_SLOT_TABARD || slot == EQUIPMENT_SLOT_BODY)
+ continue;
+
+ if (Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
+ {
+ if (slot >= EQUIPMENT_SLOT_MAINHAND && slot <= EQUIPMENT_SLOT_RANGED)
+ {
+ if (item->GetTemplate()->ItemLevel > _maxWeaponItemLevel)
+ _maxWeaponItemLevel = item->GetTemplate()->ItemLevel;
+ }
+ else if (item->GetTemplate()->ItemLevel > _maxArmorItemLevel)
+ _maxArmorItemLevel = item->GetTemplate()->ItemLevel;
+ }
+ }
+ }
+ }
+ }
+ break;
}
return true;
@@ -497,6 +634,16 @@ class instance_ulduar : public InstanceMapScript
case DATA_UNBROKEN:
Unbroken = bool(data);
break;
+ case EVENT_DESPAWN_ALGALON:
+ DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
+ DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, 60);
+ _algalonTimer = 60;
+ _events.ScheduleEvent(EVENT_DESPAWN_ALGALON, 3600000);
+ _events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000);
+ break;
+ case DATA_ALGALON_SUMMON_STATE:
+ _algalonSummoned = true;
+ break;
default:
break;
}
@@ -571,6 +718,22 @@ class instance_ulduar : public InstanceMapScript
return KeeperGUIDs[1];
case BOSS_STONEBARK:
return KeeperGUIDs[2];
+ case DATA_SIGILDOOR_01:
+ return AlgalonSigilDoorGUID[0];
+ case DATA_SIGILDOOR_02:
+ return AlgalonSigilDoorGUID[1];
+ case DATA_SIGILDOOR_03:
+ return AlgalonSigilDoorGUID[2];
+ case DATA_UNIVERSE_FLOOR_01:
+ return AlgalonFloorGUID[0];
+ case DATA_UNIVERSE_FLOOR_02:
+ return AlgalonFloorGUID[1];
+ case DATA_UNIVERSE_GLOBE:
+ return AlgalonUniverseGUID;
+ case DATA_ALGALON_TRAPDOOR:
+ return AlgalonTrapdoorGUID;
+ case DATA_BRANN_BRONZEBEARD_ALG:
+ return BrannBronzebeardAlgGUID;
}
return 0;
@@ -593,12 +756,23 @@ class instance_ulduar : public InstanceMapScript
return 0;
}
+ bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* , Unit const* /* = NULL */, uint32 /* = 0 */)
+ {
+ switch (criteriaId)
+ {
+ case CRITERIA_HERALD_OF_TITANS:
+ return _maxArmorItemLevel <= MAX_HERALD_ARMOR_ITEMLEVEL && _maxWeaponItemLevel <= MAX_HERALD_WEAPON_ITEMLEVEL;
+ }
+
+ return false;
+ }
+
std::string GetSaveData()
{
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
- saveStream << "U U " << GetBossSaveData() << GetData(DATA_COLOSSUS);
+ saveStream << "U U " << GetBossSaveData() << GetData(DATA_COLOSSUS) << ' ' << _algalonTimer << ' ' << (_algalonSummoned ? 1 : 0);
OUT_SAVE_INST_DATA_COMPLETE;
return saveStream.str();
@@ -628,15 +802,68 @@ class instance_ulduar : public InstanceMapScript
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
tmpState = NOT_STARTED;
- if (i == DATA_COLOSSUS)
- SetData(i, tmpState);
- else
- SetBossState(i, EncounterState(tmpState));
+ SetBossState(i, EncounterState(tmpState));
+ }
+
+ uint32 tempState;
+ loadStream >> tempState;
+ if (tempState == IN_PROGRESS || tempState > SPECIAL)
+ tempState = NOT_STARTED;
+ SetData(DATA_COLOSSUS, tempState);
+
+ loadStream >> _algalonTimer;
+ loadStream >> tempState;
+ _algalonSummoned = tempState != 0;
+ if (_algalonSummoned && GetBossState(BOSS_ALGALON) != DONE)
+ {
+ _summonAlgalon = true;
+ if (_algalonTimer && _algalonTimer <= 60)
+ {
+ _events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000);
+ DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
+ DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, _algalonTimer);
+ }
}
}
OUT_LOAD_INST_DATA_COMPLETE;
}
+
+ void Update(uint32 diff)
+ {
+ if (_events.Empty())
+ return;
+
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_UPDATE_ALGALON_TIMER:
+ SaveToDB();
+ DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, --_algalonTimer);
+ if (_algalonTimer)
+ _events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000);
+ else
+ {
+ DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 0);
+ _events.CancelEvent(EVENT_UPDATE_ALGALON_TIMER);
+ if (Creature* algalon = instance->GetCreature(AlgalonGUID))
+ algalon->AI()->DoAction(EVENT_DESPAWN_ALGALON);
+ }
+ break;
+ }
+ }
+ }
+
+ private:
+ EventMap _events;
+ uint32 _algalonTimer;
+ bool _summonAlgalon;
+ bool _algalonSummoned;
+ uint32 _maxArmorItemLevel;
+ uint32 _maxWeaponItemLevel;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
index a31954b8a16..d35f0559080 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
@@ -21,6 +21,8 @@
#include "ObjectMgr.h"
#define UlduarScriptName "instance_ulduar"
+extern Position const AlgalonLandPos;
+
enum UlduarBosses
{
MAX_ENCOUNTER = 20,
@@ -50,98 +52,124 @@ enum UlduarBosses
enum UlduarNPCs
{
// General
- NPC_LEVIATHAN = 33113,
- NPC_SALVAGED_DEMOLISHER = 33109,
- NPC_SALVAGED_SIEGE_ENGINE = 33060,
- NPC_IGNIS = 33118,
- NPC_RAZORSCALE = 33186,
- NPC_RAZORSCALE_CONTROLLER = 33233,
- NPC_STEELFORGED_DEFFENDER = 33236,
- NPC_EXPEDITION_COMMANDER = 33210,
- NPC_XT002 = 33293,
- NPC_XT_TOY_PILE = 33337,
- NPC_STEELBREAKER = 32867,
- NPC_MOLGEIM = 32927,
- NPC_BRUNDIR = 32857,
- NPC_KOLOGARN = 32930,
- NPC_FOCUSED_EYEBEAM = 33632,
- NPC_FOCUSED_EYEBEAM_RIGHT = 33802,
- NPC_LEFT_ARM = 32933,
- NPC_RIGHT_ARM = 32934,
- NPC_RUBBLE = 33768,
- NPC_AURIAYA = 33515,
- NPC_MIMIRON = 33350,
- NPC_HODIR = 32845,
- NPC_THORIM = 32865,
- NPC_FREYA = 32906,
- NPC_VEZAX = 33271,
- NPC_YOGGSARON = 33288,
- NPC_ALGALON = 32871,
+ NPC_LEVIATHAN = 33113,
+ NPC_SALVAGED_DEMOLISHER = 33109,
+ NPC_SALVAGED_SIEGE_ENGINE = 33060,
+ NPC_IGNIS = 33118,
+ NPC_RAZORSCALE = 33186,
+ NPC_RAZORSCALE_CONTROLLER = 33233,
+ NPC_STEELFORGED_DEFFENDER = 33236,
+ NPC_EXPEDITION_COMMANDER = 33210,
+ NPC_XT002 = 33293,
+ NPC_XT_TOY_PILE = 33337,
+ NPC_STEELBREAKER = 32867,
+ NPC_MOLGEIM = 32927,
+ NPC_BRUNDIR = 32857,
+ NPC_KOLOGARN = 32930,
+ NPC_FOCUSED_EYEBEAM = 33632,
+ NPC_FOCUSED_EYEBEAM_RIGHT = 33802,
+ NPC_LEFT_ARM = 32933,
+ NPC_RIGHT_ARM = 32934,
+ NPC_RUBBLE = 33768,
+ NPC_AURIAYA = 33515,
+ NPC_MIMIRON = 33350,
+ NPC_HODIR = 32845,
+ NPC_THORIM = 32865,
+ NPC_FREYA = 32906,
+ NPC_VEZAX = 33271,
+ NPC_YOGGSARON = 33288,
+ NPC_ALGALON = 32871,
// Mimiron
- NPC_LEVIATHAN_MKII = 33432,
- NPC_VX_001 = 33651,
- NPC_AERIAL_COMMAND_UNIT = 33670,
+ NPC_LEVIATHAN_MKII = 33432,
+ NPC_VX_001 = 33651,
+ NPC_AERIAL_COMMAND_UNIT = 33670,
// Freya's Keepers
- NPC_IRONBRANCH = 32913,
- NPC_BRIGHTLEAF = 32915,
- NPC_STONEBARK = 32914,
+ NPC_IRONBRANCH = 32913,
+ NPC_BRIGHTLEAF = 32915,
+ NPC_STONEBARK = 32914,
// Hodir's Helper NPCs
- NPC_TOR_GREYCLOUD = 32941,
- NPC_KAR_GREYCLOUD = 33333,
- NPC_EIVI_NIGHTFEATHER = 33325,
- NPC_ELLIE_NIGHTFEATHER = 32901,
- NPC_SPIRITWALKER_TARA = 33332,
- NPC_SPIRITWALKER_YONA = 32950,
- NPC_ELEMENTALIST_MAHFUUN = 33328,
- NPC_ELEMENTALIST_AVUUN = 32900,
- NPC_AMIRA_BLAZEWEAVER = 33331,
- NPC_VEESHA_BLAZEWEAVER = 32946,
- NPC_MISSY_FLAMECUFFS = 32893,
- NPC_SISSY_FLAMECUFFS = 33327,
- NPC_BATTLE_PRIEST_ELIZA = 32948,
- NPC_BATTLE_PRIEST_GINA = 33330,
- NPC_FIELD_MEDIC_PENNY = 32897,
- NPC_FIELD_MEDIC_JESSI = 33326,
+ NPC_TOR_GREYCLOUD = 32941,
+ NPC_KAR_GREYCLOUD = 33333,
+ NPC_EIVI_NIGHTFEATHER = 33325,
+ NPC_ELLIE_NIGHTFEATHER = 32901,
+ NPC_SPIRITWALKER_TARA = 33332,
+ NPC_SPIRITWALKER_YONA = 32950,
+ NPC_ELEMENTALIST_MAHFUUN = 33328,
+ NPC_ELEMENTALIST_AVUUN = 32900,
+ NPC_AMIRA_BLAZEWEAVER = 33331,
+ NPC_VEESHA_BLAZEWEAVER = 32946,
+ NPC_MISSY_FLAMECUFFS = 32893,
+ NPC_SISSY_FLAMECUFFS = 33327,
+ NPC_BATTLE_PRIEST_ELIZA = 32948,
+ NPC_BATTLE_PRIEST_GINA = 33330,
+ NPC_FIELD_MEDIC_PENNY = 32897,
+ NPC_FIELD_MEDIC_JESSI = 33326,
// Freya's trash NPCs
- NPC_CORRUPTED_SERVITOR = 33354,
- NPC_MISGUIDED_NYMPH = 33355,
- NPC_GUARDIAN_LASHER = 33430,
- NPC_FOREST_SWARMER = 33431,
- NPC_MANGROVE_ENT = 33525,
- NPC_IRONROOT_LASHER = 33526,
- NPC_NATURES_BLADE = 33527,
- NPC_GUARDIAN_OF_LIFE = 33528,
+ NPC_CORRUPTED_SERVITOR = 33354,
+ NPC_MISGUIDED_NYMPH = 33355,
+ NPC_GUARDIAN_LASHER = 33430,
+ NPC_FOREST_SWARMER = 33431,
+ NPC_MANGROVE_ENT = 33525,
+ NPC_IRONROOT_LASHER = 33526,
+ NPC_NATURES_BLADE = 33527,
+ NPC_GUARDIAN_OF_LIFE = 33528,
+
+ // Algalon the Observer
+ NPC_BRANN_BRONZBEARD_ALG = 34064,
+ NPC_AZEROTH = 34246,
+ NPC_LIVING_CONSTELLATION = 33052,
+ NPC_ALGALON_STALKER = 33086,
+ NPC_COLLAPSING_STAR = 32955,
+ NPC_BLACK_HOLE = 32953,
+ NPC_WORM_HOLE = 34099,
+ NPC_ALGALON_VOID_ZONE_VISUAL_STALKER = 34100,
+ NPC_ALGALON_STALKER_ASTEROID_TARGET_01 = 33104,
+ NPC_ALGALON_STALKER_ASTEROID_TARGET_02 = 33105,
+ NPC_UNLEASHED_DARK_MATTER = 34097,
};
enum UlduarGameObjects
{
- GO_KOLOGARN_CHEST_HERO = 195047,
- GO_KOLOGARN_CHEST = 195046,
- GO_KOLOGARN_BRIDGE = 194232,
- GO_KOLOGARN_DOOR = 194553,
- GO_THORIM_CHEST_HERO = 194315,
- GO_THORIM_CHEST = 194314,
- GO_HODIR_RARE_CACHE_OF_WINTER = 194200,
- GO_HODIR_RARE_CACHE_OF_WINTER_HERO = 194201,
- GO_HODIR_CHEST_HERO = 194308,
- GO_HODIR_CHEST = 194307,
- GO_LEVIATHAN_DOOR = 194905,
- GO_LEVIATHAN_GATE = 194630,
- GO_XT_002_DOOR = 194631,
- GO_VEZAX_DOOR = 194750,
- GO_MOLE_MACHINE = 194316,
- GO_RAZOR_HARPOON_1 = 194542,
- GO_RAZOR_HARPOON_2 = 194541,
- GO_RAZOR_HARPOON_3 = 194543,
- GO_RAZOR_HARPOON_4 = 194519,
- GO_RAZOR_BROKEN_HARPOON = 194565,
- GO_HODIR_DOOR = 194634,
- GO_HODIR_ICE_DOOR = 194441,
- GO_ARCHIVUM_DOOR = 194556,
+ GO_KOLOGARN_CHEST_HERO = 195047,
+ GO_KOLOGARN_CHEST = 195046,
+ GO_KOLOGARN_BRIDGE = 194232,
+ GO_KOLOGARN_DOOR = 194553,
+ GO_THORIM_CHEST_HERO = 194315,
+ GO_THORIM_CHEST = 194314,
+ GO_HODIR_RARE_CACHE_OF_WINTER = 194200,
+ GO_HODIR_RARE_CACHE_OF_WINTER_HERO = 194201,
+ GO_HODIR_CHEST_HERO = 194308,
+ GO_HODIR_CHEST = 194307,
+ GO_LEVIATHAN_DOOR = 194905,
+ GO_LEVIATHAN_GATE = 194630,
+ GO_XT_002_DOOR = 194631,
+ GO_VEZAX_DOOR = 194750,
+ GO_MOLE_MACHINE = 194316,
+ GO_RAZOR_HARPOON_1 = 194542,
+ GO_RAZOR_HARPOON_2 = 194541,
+ GO_RAZOR_HARPOON_3 = 194543,
+ GO_RAZOR_HARPOON_4 = 194519,
+ GO_RAZOR_BROKEN_HARPOON = 194565,
+ GO_HODIR_DOOR = 194634,
+ GO_HODIR_ICE_DOOR = 194441,
+ GO_ARCHIVUM_DOOR = 194556,
+
+ // Algalon the Observer
+ GO_CELESTIAL_PLANETARIUM_ACCESS_10 = 194628,
+ GO_CELESTIAL_PLANETARIUM_ACCESS_25 = 194752,
+ GO_DOODAD_UL_SIGILDOOR_01 = 194767,
+ GO_DOODAD_UL_SIGILDOOR_02 = 194911,
+ GO_DOODAD_UL_SIGILDOOR_03 = 194910,
+ GO_DOODAD_UL_UNIVERSEFLOOR_01 = 194715,
+ GO_DOODAD_UL_UNIVERSEFLOOR_02 = 194716,
+ GO_DOODAD_UL_UNIVERSEGLOBE01 = 194148,
+ GO_DOODAD_UL_ULDUAR_TRAPDOOR_03 = 194253,
+ GO_GIFT_OF_THE_OBSERVER_10 = 194821,
+ GO_GIFT_OF_THE_OBSERVER_25 = 194822,
};
enum LeviathanData
@@ -161,6 +189,7 @@ enum UlduarAchievementCriteriaIds
{
CRITERIA_CON_SPEED_ATORY = 21597,
CRITERIA_DISARMED = 21687,
+ CRITERIA_HERALD_OF_TITANS = 10678,
};
enum UlduarData
@@ -180,12 +209,38 @@ enum UlduarData
// Hodir
DATA_HODIR_RARE_CACHE,
+
+ // Algalon the Observer
+ DATA_ALGALON_SUMMON_STATE,
+ DATA_SIGILDOOR_01,
+ DATA_SIGILDOOR_02,
+ DATA_SIGILDOOR_03,
+ DATA_UNIVERSE_FLOOR_01,
+ DATA_UNIVERSE_FLOOR_02,
+ DATA_UNIVERSE_GLOBE,
+ DATA_ALGALON_TRAPDOOR,
+ DATA_BRANN_BRONZEBEARD_ALG,
+};
+
+enum UlduarWorldStates
+{
+ WORLD_STATE_ALGALON_DESPAWN_TIMER = 4131,
+ WORLD_STATE_ALGALON_TIMER_ENABLED = 4132,
};
enum UlduarAchievementData
{
// FL Achievement boolean
DATA_UNBROKEN = 29052906, // 2905, 2906 are achievement IDs,
+ MAX_HERALD_ARMOR_ITEMLEVEL = 226,
+ MAX_HERALD_WEAPON_ITEMLEVEL = 232,
+};
+
+enum UlduarEvents
+{
+ EVENT_DESPAWN_ALGALON = 1,
+ EVENT_UPDATE_ALGALON_TIMER = 2,
+ ACTION_INIT_ALGALON = 6,
};
template<class AI>
@@ -199,6 +254,17 @@ CreatureAI* GetUlduarAI(Creature* creature)
return NULL;
}
+template<class AI>
+GameObjectAI* GetUlduarAI(GameObject* go)
+{
+ if (InstanceMap* instance = go->GetMap()->ToInstanceMap())
+ if (instance->GetInstanceScript())
+ if (instance->GetScriptId() == sObjectMgr->GetScriptId(UlduarScriptName))
+ return new AI(go);
+
+ return NULL;
+}
+
class PlayerOrPetCheck
{
public:
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
index a11f88fc6af..a7853a07e22 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
@@ -309,9 +309,9 @@ public:
struct mob_annhylde_the_callerAI : public ScriptedAI
{
- mob_annhylde_the_callerAI(Creature* c) : ScriptedAI(c)
+ mob_annhylde_the_callerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
float x, y, z;
@@ -321,6 +321,7 @@ public:
void Reset()
{
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
me->AddUnitMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_HOVER);
me->SetSpeed(MOVE_SWIM, 1.0f);
me->SetSpeed(MOVE_RUN, 1.0f);
@@ -343,7 +344,7 @@ public:
{
if (type != POINT_MOTION_TYPE)
return;
- Unit* ingvar = Unit::GetUnit((*me), instance ? instance->GetData64(DATA_INGVAR) : 0);
+ Unit* ingvar = Unit::GetUnit(*me, instance ? instance->GetData64(DATA_INGVAR) : 0);
if (ingvar)
{
switch (id)
@@ -423,7 +424,7 @@ public:
struct mob_ingvar_throw_dummyAI : public ScriptedAI
{
- mob_ingvar_throw_dummyAI(Creature* c) : ScriptedAI(c)
+ mob_ingvar_throw_dummyAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -444,6 +445,7 @@ public:
void AttackStart(Unit* /*who*/) {}
void MoveInLineOfSight(Unit* /*who*/) {}
void EnterCombat(Unit* /*who*/) {}
+
void UpdateAI(const uint32 diff)
{
if (uiDespawnTimer <= diff)
@@ -454,7 +456,6 @@ public:
} else uiDespawnTimer -= diff;
}
};
-
};
void AddSC_boss_ingvar_the_plunderer()
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
index 333278daa10..915d1c71bb2 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
@@ -69,9 +69,9 @@ public:
struct boss_skarvald_the_constructorAI : public ScriptedAI
{
- boss_skarvald_the_constructorAI(Creature* c) : ScriptedAI(c)
+ boss_skarvald_the_constructorAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -93,7 +93,7 @@ public:
ghost = (me->GetEntry() == MOB_SKARVALD_GHOST);
if (!ghost && instance)
{
- Unit* dalronn = Unit::GetUnit((*me), instance->GetData64(DATA_DALRONN));
+ Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN));
if (dalronn && dalronn->isDead())
CAST_CRE(dalronn)->Respawn();
@@ -107,7 +107,7 @@ public:
{
DoScriptText(YELL_SKARVALD_AGGRO, me);
- Unit* dalronn = Unit::GetUnit((*me), instance->GetData64(DATA_DALRONN));
+ Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN));
if (dalronn && dalronn->isAlive() && !dalronn->getVictim())
dalronn->getThreatManager().addThreat(who, 0.0f);
@@ -115,11 +115,11 @@ public:
}
}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
if (!ghost && instance)
{
- Unit* dalronn = Unit::GetUnit((*me), instance->GetData64(DATA_DALRONN));
+ Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN));
if (dalronn)
{
if (dalronn->isDead())
@@ -138,7 +138,7 @@ public:
if (temp)
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- temp->AI()->AttackStart(Killer);
+ temp->AI()->AttackStart(killer);
}
}
}
@@ -221,9 +221,9 @@ public:
struct boss_dalronn_the_controllerAI : public ScriptedAI
{
- boss_dalronn_the_controllerAI(Creature* c) : ScriptedAI(c)
+ boss_dalronn_the_controllerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -250,7 +250,7 @@ public:
ghost = me->GetEntry() == MOB_DALRONN_GHOST;
if (!ghost && instance)
{
- Unit* skarvald = Unit::GetUnit((*me), instance->GetData64(DATA_SKARVALD));
+ Unit* skarvald = Unit::GetUnit(*me, instance->GetData64(DATA_SKARVALD));
if (skarvald && skarvald->isDead())
CAST_CRE(skarvald)->Respawn();
@@ -262,7 +262,7 @@ public:
{
if (!ghost && instance)
{
- Unit* skarvald = Unit::GetUnit((*me), instance->GetData64(DATA_SKARVALD));
+ Unit* skarvald = Unit::GetUnit(*me, instance->GetData64(DATA_SKARVALD));
if (skarvald && skarvald->isAlive() && !skarvald->getVictim())
skarvald->getThreatManager().addThreat(who, 0.0f);
@@ -273,11 +273,11 @@ public:
}
}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
if (!ghost && instance)
{
- Unit* skarvald = Unit::GetUnit((*me), instance->GetData64(DATA_SKARVALD));
+ Unit* skarvald = Unit::GetUnit(*me, instance->GetData64(DATA_SKARVALD));
if (skarvald)
{
if (skarvald->isDead())
@@ -297,7 +297,7 @@ public:
if (temp)
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- temp->AI()->AttackStart(Killer);
+ temp->AI()->AttackStart(killer);
}
}
}
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 6ecc1883afc..fda4767e16b 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp
@@ -100,7 +100,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index d660b1516b3..95d2cb1709e 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -37,9 +37,9 @@ public:
struct npc_dragonflayer_forge_masterAI : public ScriptedAI
{
- npc_dragonflayer_forge_masterAI(Creature* c) : ScriptedAI(c)
+ npc_dragonflayer_forge_masterAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
fm_Type = 0;
}
@@ -48,65 +48,77 @@ public:
void Reset()
{
- if (fm_Type == 0) fm_Type = GetForgeMasterType();
+ if (fm_Type == 0)
+ fm_Type = GetForgeMasterType();
+
CheckForge();
}
void CheckForge()
{
- if (instance)
+ if (instance)
{
switch (fm_Type)
{
- case 1:
- instance->SetData(EVENT_FORGE_1, me->isAlive() ? NOT_STARTED : DONE);
- break;
- case 2:
- instance->SetData(EVENT_FORGE_2, me->isAlive() ? NOT_STARTED : DONE);
- break;
- case 3:
- instance->SetData(EVENT_FORGE_3, me->isAlive() ? NOT_STARTED : DONE);
- break;
+ case 1:
+ instance->SetData(EVENT_FORGE_1, me->isAlive() ? NOT_STARTED : DONE);
+ break;
+
+ case 2:
+ instance->SetData(EVENT_FORGE_2, me->isAlive() ? NOT_STARTED : DONE);
+ break;
+
+ case 3:
+ instance->SetData(EVENT_FORGE_3, me->isAlive() ? NOT_STARTED : DONE);
+ break;
}
}
}
void JustDied(Unit* /*killer*/)
{
- if (fm_Type == 0) fm_Type = GetForgeMasterType();
+ if (fm_Type == 0)
+ fm_Type = GetForgeMasterType();
+
if (instance)
{
switch (fm_Type)
{
- case 1:
- instance->SetData(EVENT_FORGE_1, DONE);
- break;
- case 2:
- instance->SetData(EVENT_FORGE_2, DONE);
- break;
- case 3:
- instance->SetData(EVENT_FORGE_3, DONE);
- break;
+ case 1:
+ instance->SetData(EVENT_FORGE_1, DONE);
+ break;
+
+ case 2:
+ instance->SetData(EVENT_FORGE_2, DONE);
+ break;
+
+ case 3:
+ instance->SetData(EVENT_FORGE_3, DONE);
+ break;
}
}
}
void EnterCombat(Unit* /*who*/)
{
- if (fm_Type == 0) fm_Type = GetForgeMasterType();
+ if (fm_Type == 0)
+ fm_Type = GetForgeMasterType();
+
if (instance)
{
switch (fm_Type)
{
- case 1:
- instance->SetData(EVENT_FORGE_1, IN_PROGRESS);
- break;
- case 2:
- instance->SetData(EVENT_FORGE_2, IN_PROGRESS);
- break;
- case 3:
- instance->SetData(EVENT_FORGE_3, IN_PROGRESS);
- break;
+ case 1:
+ instance->SetData(EVENT_FORGE_1, IN_PROGRESS);
+ break;
+
+ case 2:
+ instance->SetData(EVENT_FORGE_2, IN_PROGRESS);
+ break;
+
+ case 3:
+ instance->SetData(EVENT_FORGE_3, IN_PROGRESS);
+ break;
}
}
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
@@ -115,29 +127,26 @@ public:
uint8 GetForgeMasterType()
{
float diff = 30.0f;
- int near_f = 0;
+ uint8 near_f = 0;
- for (uint8 i = 0; i < 3 ; ++i)
+ for (uint8 i = 0; i < 3; ++i)
{
- GameObject* temp;
- temp = me->FindNearestGameObject(entry_search[i], 30);
- if (temp)
+ if (GameObject* go = me->FindNearestGameObject(entry_search[i], 30))
{
- if (me->IsWithinDist(temp, diff, false))
+ if (me->IsWithinDist(go, diff, false))
{
near_f = i + 1;
- diff = me->GetDistance2d(temp);
-
+ diff = me->GetDistance2d(go);
}
}
}
switch (near_f)
{
- case 1: return 1;
- case 2: return 2;
- case 3: return 3;
- default: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ case 3: return 3;
+ default: return 0;
}
}
@@ -152,7 +161,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_utgarde_keep()
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
index 656b2931abb..e2943f491f6 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
@@ -94,9 +94,9 @@ public:
struct boss_palehoofAI : public ScriptedAI
{
- boss_palehoofAI(Creature* c) : ScriptedAI(c)
+ boss_palehoofAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiArcingSmashTimer;
@@ -297,9 +297,9 @@ public:
struct mob_ravenous_furbolgAI : public ScriptedAI
{
- mob_ravenous_furbolgAI(Creature* c) : ScriptedAI(c)
+ mob_ravenous_furbolgAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiChainLightingTimer;
@@ -410,9 +410,9 @@ public:
struct mob_frenzied_worgenAI : public ScriptedAI
{
- mob_frenzied_worgenAI(Creature* c) : ScriptedAI(c)
+ mob_frenzied_worgenAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiMortalWoundTimer;
@@ -526,9 +526,9 @@ public:
struct mob_ferocious_rhinoAI : public ScriptedAI
{
- mob_ferocious_rhinoAI(Creature* c) : ScriptedAI(c)
+ mob_ferocious_rhinoAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiStompTimer;
@@ -646,9 +646,9 @@ public:
struct mob_massive_jormungarAI : public ScriptedAI
{
- mob_massive_jormungarAI(Creature* c) : ScriptedAI(c)
+ mob_massive_jormungarAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiAcidSpitTimer;
@@ -752,9 +752,9 @@ public:
struct mob_palehoof_orbAI : public ScriptedAI
{
- mob_palehoof_orbAI(Creature* c) : ScriptedAI(c)
+ mob_palehoof_orbAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -765,6 +765,7 @@ public:
{
currentPhase = PHASE_NONE;
SummonTimer = 5000;
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
me->AddUnitMovementFlag(MOVEMENTFLAG_FLYING);
me->RemoveAurasDueToSpell(SPELL_ORB_VISUAL);
me->SetSpeed(MOVE_FLIGHT, 0.5f);
@@ -834,15 +835,15 @@ class go_palehoof_sphere : public GameObjectScript
public:
go_palehoof_sphere() : GameObjectScript("go_palehoof_sphere") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- InstanceScript* instance = pGO->GetInstanceScript();
+ InstanceScript* instance = go->GetInstanceScript();
- Creature* pPalehoof = Unit::GetCreature(*pGO, instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
+ Creature* pPalehoof = Unit::GetCreature(*go, instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
if (pPalehoof && pPalehoof->isAlive())
{
- pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- pGO->SetGoState(GO_STATE_ACTIVE);
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ go->SetGoState(GO_STATE_ACTIVE);
CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index d5cd79b25f1..5132dd0f046 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -168,12 +168,12 @@ public:
struct boss_skadiAI : public ScriptedAI
{
- boss_skadiAI(Creature* c) : ScriptedAI(c), Summons(me)
+ boss_skadiAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- m_instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
SummonList Summons;
uint64 m_uiGraufGUID;
std::vector<uint64> triggersGUID;
@@ -208,16 +208,16 @@ public:
me->SetSpeed(MOVE_FLIGHT, 3.0f);
if ((Unit::GetCreature((*me), m_uiGraufGUID) == NULL) && !me->IsMounted())
me->SummonCreature(CREATURE_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, NOT_STARTED);
- m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
+ instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, NOT_STARTED);
+ instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
void JustReachedHome()
{
- me->SetFlying(false);
+ me->SetCanFly(false);
me->Dismount();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
if (Unit::GetCreature((*me), m_uiGraufGUID) == NULL)
@@ -235,12 +235,12 @@ public:
m_uiMovementTimer = 1000;
m_uiSummonTimer = 10000;
me->SetInCombatWithZone();
- if (m_instance)
+ if (instance)
{
- m_instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, IN_PROGRESS);
- m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
+ instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, IN_PROGRESS);
+ instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
me->GetMotionMaster()->MoveJump(Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 5.0f, 10.0f);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
m_uiMountTimer = 1000;
Summons.DespawnEntry(CREATURE_GRAUF);
}
@@ -284,7 +284,7 @@ public:
if (m_uiSpellHitCount >= 3)
{
Phase = SKADI;
- me->SetFlying(false);
+ me->SetCanFly(false);
me->Dismount();
if (Creature* pGrauf = me->SummonCreature(CREATURE_GRAUF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3*IN_MILLISECONDS))
{
@@ -328,7 +328,7 @@ public:
if (m_uiMountTimer && m_uiMountTimer <= diff)
{
me->Mount(DATA_MOUNT);
- me->SetFlying(true);
+ me->SetCanFly(true);
m_uiMountTimer = 0;
} else m_uiMountTimer -= diff;
@@ -411,8 +411,8 @@ public:
{
DoScriptText(SAY_DEATH, me);
Summons.DespawnAll();
- if (m_instance)
- m_instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE);
+ if (instance)
+ instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE);
}
void KilledUnit(Unit* /*victim*/)
@@ -426,9 +426,17 @@ public:
{
switch (urand(0, 2))
{
- case 0: me->SummonCreature(CREATURE_YMIRJAR_WARRIOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break;
- case 1: me->SummonCreature(CREATURE_YMIRJAR_WITCH_DOCTOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break;
- case 2: me->SummonCreature(CREATURE_YMIRJAR_HARPOONER, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break;
+ case 0:
+ me->SummonCreature(CREATURE_YMIRJAR_WARRIOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+
+ case 1:
+ me->SummonCreature(CREATURE_YMIRJAR_WITCH_DOCTOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+
+ case 2:
+ me->SummonCreature(CREATURE_YMIRJAR_HARPOONER, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
}
}
}
@@ -461,15 +469,15 @@ class go_harpoon_launcher : public GameObjectScript
public:
go_harpoon_launcher() : GameObjectScript("go_harpoon_launcher") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- InstanceScript* m_instance = pGO->GetInstanceScript();
- if (!m_instance) return false;
+ InstanceScript* instance = go->GetInstanceScript();
+ if (!instance)
+ return false;
- if (Creature* pSkadi = Unit::GetCreature((*pGO), m_instance->GetData64(DATA_SKADI_THE_RUTHLESS)))
- {
+ if (Creature* pSkadi = Unit::GetCreature(*go, instance->GetData64(DATA_SKADI_THE_RUTHLESS)))
player->CastSpell(pSkadi, SPELL_RAPID_FIRE, true);
- }
+
return false;
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index 915ead98bb7..29b8f2e7f48 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -94,11 +94,6 @@ enum SvalaPhase
SVALADEAD
};
-enum SvalaPoint
-{
- POINT_FALL_GROUND = 1,
-};
-
#define DATA_INCREDIBLE_HULK 2043
static const float spectatorWP[2][3] =
@@ -158,15 +153,11 @@ public:
summons.DespawnAll();
me->RemoveAllAuras();
- if (Phase > INTRO)
- {
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- }
-
if (Phase > NORMAL)
Phase = NORMAL;
+ me->SetDisableGravity(Phase == NORMAL);
+
introTimer = 1 * IN_MILLISECONDS;
introPhase = 0;
arthasGUID = 0;
@@ -178,17 +169,6 @@ public:
}
}
- void JustReachedHome()
- {
- if (Phase > INTRO)
- {
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SetOrientation(1.58f);
- me->SendMovementFlagUpdate();
- }
- }
-
void EnterCombat(Unit* /*who*/)
{
Talk(SAY_AGGRO);
@@ -240,44 +220,13 @@ public:
Talk(SAY_SLAY);
}
- void DamageTaken(Unit* attacker, uint32 &damage)
- {
- if (Phase == SVALADEAD)
- {
- if (attacker != me)
- damage = 0;
- return;
- }
-
- if (damage >= me->GetHealth())
- {
- if (Phase == SACRIFICING)
- SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
-
- damage = 0;
- Phase = SVALADEAD;
- me->InterruptNonMeleeSpells(true);
- me->RemoveAllAuras();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetHealth(1);
-
- SetCombatMovement(false);
- me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH);
- me->GetMotionMaster()->MoveFall(POINT_FALL_GROUND);
- }
- }
-
- void MovementInform(uint32 motionType, uint32 pointId)
+ void JustDied(Unit* /*killer*/)
{
- if (motionType != EFFECT_MOTION_TYPE)
- return;
+ if (Phase == SACRIFICING)
+ SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- if (pointId == POINT_FALL_GROUND)
- me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- }
+ me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH);
- void JustDied(Unit* /*killer*/)
- {
summons.DespawnAll();
if (instance)
@@ -325,8 +274,6 @@ public:
break;
case 2:
arthas->CastSpell(me, SPELL_TRANSFORMING_CHANNEL, false);
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
pos.Relocate(me);
pos.m_positionZ += 8.0f;
me->GetMotionMaster()->MoveTakeoff(0, pos, 3.30078125f);
@@ -340,7 +287,7 @@ public:
if ((*itr)->isAlive())
{
(*itr)->SetStandState(UNIT_STAND_STATE_STAND);
- (*itr)->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ (*itr)->SetWalk(false);
(*itr)->GetMotionMaster()->MovePoint(1, spectatorWP[0][0], spectatorWP[0][1], spectatorWP[0][2]);
}
}
@@ -382,14 +329,13 @@ public:
introTimer = 13800;
break;
case 8:
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SendMovementFlagUpdate();
pos.Relocate(me);
pos.m_positionX = me->GetHomePosition().GetPositionX();
pos.m_positionY = me->GetHomePosition().GetPositionY();
pos.m_positionZ = 90.6065f;
me->GetMotionMaster()->MoveLand(0, pos, 6.247422f);
+ me->SetDisableGravity(false, true);
+ me->SetHover(true);
++introPhase;
introTimer = 3000;
break;
@@ -403,7 +349,8 @@ public:
break;
}
}
- else introTimer -= diff;
+ else
+ introTimer -= diff;
return;
}
@@ -414,33 +361,29 @@ public:
if (!UpdateVictim())
return;
- if (me->IsWithinMeleeRange(me->getVictim()) && me->HasUnitMovementFlag(MOVEMENTFLAG_LEVITATING))
- {
- me->SetFlying(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->SendMovementFlagUpdate();
- }
-
if (sinsterStrikeTimer <= diff)
{
DoCast(me->getVictim(), SPELL_SINSTER_STRIKE);
sinsterStrikeTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
- } else sinsterStrikeTimer -= diff;
+ }
+ else
+ sinsterStrikeTimer -= diff;
if (callFlamesTimer <= diff)
{
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))
{
DoCast(target, SPELL_CALL_FLAMES);
callFlamesTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
}
- } else callFlamesTimer -= diff;
+ }
+ else callFlamesTimer -= diff;
if (!sacrificed)
{
if (HealthBelowPct(50))
{
- if (Unit* sacrificeTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 80, true))
+ if (Unit* sacrificeTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 80.0f, true))
{
if (instance)
instance->SetData64(DATA_SACRIFICED_PLAYER, sacrificeTarget->GetGUID());
@@ -450,8 +393,6 @@ public:
DoCast(sacrificeTarget, SPELL_RITUAL_PREPARATION);
SetCombatMovement(false);
- me->SetFlying(true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
Phase = SACRIFICING;
sacrePhase = 0;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
index 29d6278124f..f9251c637ba 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
@@ -108,9 +108,9 @@ public:
struct boss_ymironAI : public ScriptedAI
{
- boss_ymironAI(Creature* c) : ScriptedAI(c)
+ boss_ymironAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
for (int i = 0; i < 4; ++i)
m_uiActiveOrder[i] = i;
for (int i = 0; i < 3; ++i)
@@ -218,7 +218,7 @@ public:
m_uiActivedCreatureGUID = temp->GetGUID();
temp->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true);
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- temp->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ temp->SetDisableGravity(true);
switch (m_uiActiveOrder[m_uiActivedNumber])
{
case 0: m_bIsActiveWithBJORN = true; break;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
index cb596f284c5..26fbbf4d717 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp
@@ -97,7 +97,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index 2f4079d4e3c..4980ed36ec3 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -139,7 +139,7 @@ class boss_emalon : public CreatureScript
case EVENT_OVERCHARGE:
if (!summons.empty())
{
- Creature* minion = Unit::GetCreature(*me, SelectRandomContainerElement(summons));
+ Creature* minion = Unit::GetCreature(*me, Trinity::Containers::SelectRandomContainerElement(summons));
if (minion && minion->isAlive())
{
minion->CastSpell(me, SPELL_OVERCHARGED, true);
@@ -189,7 +189,7 @@ class mob_tempest_minion : public CreatureScript
OverchargedTimer = 0;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* emalon = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_EMALON) : 0))
{
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index 162f59fa5b7..100f1fccac8 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -125,7 +125,7 @@ class mob_frost_warder : public CreatureScript
struct mob_frost_warderAI : public ScriptedAI
{
- mob_frost_warderAI(Creature* c) : ScriptedAI(c) {}
+ mob_frost_warderAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
index 74fc2505969..37ef8bf2788 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
@@ -57,9 +57,9 @@ public:
struct boss_cyanigosaAI : public ScriptedAI
{
- boss_cyanigosaAI(Creature* c) : ScriptedAI(c)
+ boss_cyanigosaAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiArcaneVacuumTimer;
@@ -168,7 +168,7 @@ class achievement_defenseless : public AchievementCriteriaScript
bool OnCheck(Player* /*player*/, Unit* target)
{
- if(!target)
+ if (!target)
return false;
InstanceScript* instance = target->GetInstanceScript();
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index 63f0cd39893..31902acfc46 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -55,9 +55,9 @@ public:
struct boss_erekemAI : public ScriptedAI
{
- boss_erekemAI(Creature* c) : ScriptedAI(c)
+ boss_erekemAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiBloodlustTimer;
@@ -270,9 +270,9 @@ public:
struct mob_erekem_guardAI : public ScriptedAI
{
- mob_erekem_guardAI(Creature* c) : ScriptedAI(c)
+ mob_erekem_guardAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiGushingWoundTimer;
diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
index c5b2cb3c327..7a8254ad2b6 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
@@ -41,9 +41,9 @@ public:
struct boss_lavanthorAI : public ScriptedAI
{
- boss_lavanthorAI(Creature* c) : ScriptedAI(c)
+ boss_lavanthorAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiFireboltTimer;
diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
index 84b04579681..1a70846e1b6 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
@@ -37,9 +37,9 @@ public:
struct boss_moraggAI : public ScriptedAI
{
- boss_moraggAI(Creature* c) : ScriptedAI(c)
+ boss_moraggAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiOpticLinkTimer;
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index ff2009c2a17..4569741e459 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -61,9 +61,9 @@ public:
struct boss_zuramatAI : public ScriptedAI
{
- boss_zuramatAI(Creature* c) : ScriptedAI(c)
+ boss_zuramatAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index 5980c534595..37a13388b5f 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -221,7 +221,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -689,7 +690,8 @@ public:
{
AddWave();
bActive = false;
- uiActivationTimer = 5000;
+ // 1 minute waiting time after each boss fight
+ uiActivationTimer = (uiWaveCount == 6 || uiWaveCount == 12) ? 60000 : 5000;
} else uiActivationTimer -= diff;
}
@@ -795,7 +797,7 @@ public:
}
}
- void ProcessEvent(WorldObject* /*pGO*/, uint32 uiEventId)
+ void ProcessEvent(WorldObject* /*go*/, uint32 uiEventId)
{
switch (uiEventId)
{
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 8b77cb250da..e9d2c85e13e 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -253,10 +253,10 @@ class npc_sinclari_vh : public CreatureScript
public:
npc_sinclari_vh() : CreatureScript("npc_sinclari_vh") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CLOSE_GOSSIP_MENU();
@@ -363,7 +363,7 @@ public:
{
if (Creature* pGuard = *itr)
{
- pGuard->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pGuard->SetWalk(false);
pGuard->GetMotionMaster()->MovePoint(0, MovePosition);
}
}
@@ -426,9 +426,9 @@ public:
struct mob_azure_saboteurAI : public npc_escortAI
{
- mob_azure_saboteurAI(Creature* c):npc_escortAI(c)
+ mob_azure_saboteurAI(Creature* creature):npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
bHasGotMovingPoints = false;
uiBoss = 0;
Reset();
@@ -447,32 +447,32 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void WaypointReached(uint32 uiWPointId)
+ void WaypointReached(uint32 waypointId)
{
switch (uiBoss)
{
case 1:
- if (uiWPointId == 2)
+ if (waypointId == 2)
FinishPointReached();
break;
case 2:
- if (uiWPointId == 2)
+ if (waypointId == 2)
FinishPointReached();
break;
case 3:
- if (uiWPointId == 1)
+ if (waypointId == 1)
FinishPointReached();
break;
case 4:
- if (uiWPointId == 0)
+ if (waypointId == 0)
FinishPointReached();
break;
case 5:
- if (uiWPointId == 0)
+ if (waypointId == 0)
FinishPointReached();
break;
case 6:
- if (uiWPointId == 4)
+ if (waypointId == 4)
FinishPointReached();
break;
}
@@ -550,9 +550,9 @@ public:
struct npc_teleportation_portalAI : public ScriptedAI
{
- npc_teleportation_portalAI(Creature* c) : ScriptedAI(c), listOfMobs(me)
+ npc_teleportation_portalAI(Creature* creature) : ScriptedAI(creature), listOfMobs(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
uiTypeOfMobsPortal = urand(0, 1); // 0 - elite mobs 1 - portal guardian or portal keeper with regular mobs
bPortalGuardianOrKeeperOrEliteSpawn = false;
}
@@ -675,9 +675,9 @@ public:
struct violet_hold_trashAI : public npc_escortAI
{
- violet_hold_trashAI(Creature* c):npc_escortAI(c)
+ violet_hold_trashAI(Creature* creature):npc_escortAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
bHasGotMovingPoints = false;
if (instance)
portalLocationID = instance->GetData(DATA_PORTAL_LOCATION);
@@ -690,32 +690,32 @@ struct violet_hold_trashAI : public npc_escortAI
uint32 portalLocationID;
uint32 secondPortalRouteID;
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
switch (portalLocationID)
{
case 0:
- if (uiPointId == 5)
+ if (waypointId == 5)
CreatureStartAttackDoor();
break;
case 1:
- if ((uiPointId == 8 && secondPortalRouteID == 0) || (uiPointId == 7 && secondPortalRouteID == 1))
+ if ((waypointId == 8 && secondPortalRouteID == 0) || (waypointId == 7 && secondPortalRouteID == 1))
CreatureStartAttackDoor();
break;
case 2:
- if (uiPointId == 7)
+ if (waypointId == 7)
CreatureStartAttackDoor();
break;
case 3:
- if (uiPointId == 8)
+ if (waypointId == 8)
CreatureStartAttackDoor();
break;
case 4:
- if (uiPointId == 5)
+ if (waypointId == 5)
CreatureStartAttackDoor();
break;
case 5:
- if (uiPointId == 3)
+ if (waypointId == 3)
CreatureStartAttackDoor();
break;
}
@@ -778,7 +778,7 @@ struct violet_hold_trashAI : public npc_escortAI
}
}
- void JustDied(Unit* /*unit*/)
+ void JustDied(Unit* /*killer*/)
{
if (Creature* portal = Unit::GetCreature((*me), instance->GetData64(DATA_TELEPORTATION_PORTAL)))
CAST_AI(npc_teleportation_portal_vh::npc_teleportation_portalAI, portal->AI())->SummonedMobDied(me);
@@ -808,9 +808,9 @@ public:
struct mob_azure_invaderAI : public violet_hold_trashAI
{
- mob_azure_invaderAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_invaderAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiCleaveTimer;
@@ -886,9 +886,9 @@ public:
struct mob_azure_binderAI : public violet_hold_trashAI
{
- mob_azure_binderAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_binderAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiArcaneExplosionTimer;
@@ -964,9 +964,9 @@ public:
struct mob_azure_mage_slayerAI : public violet_hold_trashAI
{
- mob_azure_mage_slayerAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_mage_slayerAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiArcaneEmpowermentTimer;
@@ -1024,9 +1024,9 @@ public:
struct mob_azure_raiderAI : public violet_hold_trashAI
{
- mob_azure_raiderAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_raiderAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiConcussionBlowTimer;
@@ -1076,9 +1076,9 @@ public:
struct mob_azure_stalkerAI : public violet_hold_trashAI
{
- mob_azure_stalkerAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_stalkerAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiBackstabTimer;
uint32 uiTacticalBlinkTimer;
@@ -1135,9 +1135,9 @@ public:
struct mob_azure_spellbreakerAI : public violet_hold_trashAI
{
- mob_azure_spellbreakerAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_spellbreakerAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiArcaneBlastTimer;
@@ -1219,9 +1219,9 @@ public:
struct mob_azure_captainAI : public violet_hold_trashAI
{
- mob_azure_captainAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_captainAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiMortalStrikeTimer;
@@ -1271,9 +1271,9 @@ public:
struct mob_azure_sorcerorAI : public violet_hold_trashAI
{
- mob_azure_sorcerorAI(Creature* c) : violet_hold_trashAI(c)
+ mob_azure_sorcerorAI(Creature* creature) : violet_hold_trashAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 uiArcaneStreamTimer;
diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp
index 11fb0933b9b..8b51618eedd 100644
--- a/src/server/scripts/Northrend/borean_tundra.cpp
+++ b/src/server/scripts/Northrend/borean_tundra.cpp
@@ -60,7 +60,7 @@ public:
struct npc_sinkhole_kill_creditAI : public ScriptedAI
{
- npc_sinkhole_kill_creditAI(Creature* c) : ScriptedAI(c){}
+ npc_sinkhole_kill_creditAI(Creature* creature) : ScriptedAI(creature){}
uint32 uiPhaseTimer;
uint8 Phase;
@@ -139,7 +139,7 @@ public:
case 7:
DoCast(me, SPELL_EXPLODE_CART, true);
if (Player* caster = Unit::GetPlayer(*me, casterGuid))
- caster->KilledMonster(me->GetCreatureInfo(), me->GetGUID());
+ caster->KilledMonster(me->GetCreatureTemplate(), me->GetGUID());
uiPhaseTimer = 5000;
Phase = 8;
break;
@@ -170,7 +170,7 @@ public:
struct npc_khunok_the_behemothAI : public ScriptedAI
{
- npc_khunok_the_behemothAI(Creature* c) : ScriptedAI(c) {}
+ npc_khunok_the_behemothAI(Creature* creature) : ScriptedAI(creature) {}
void MoveInLineOfSight(Unit* who)
{
@@ -186,7 +186,7 @@ public:
if (owner->GetTypeId() == TYPEID_PLAYER)
{
owner->CastSpell(owner, 46231, true);
- CAST_CRE(who)->ForcedDespawn();
+ CAST_CRE(who)->DespawnOrUnsummon();
}
}
}
@@ -228,10 +228,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CLOSE_GOSSIP_MENU();
player->CastSpell(player, SPELL_TELEPORT_TO_SARAGOSA, true);
@@ -273,10 +273,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
@@ -309,7 +309,6 @@ public:
bool OnGossipHello(Player* player, Creature* creature)
{
-
if (player->GetQuestStatus(QUEST_SPIRITS_WATCH_OVER_US) == QUEST_STATUS_INCOMPLETE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_I, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -317,10 +316,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->CastSpell(player, SPELL_CREATURE_TOTEM_OF_ISSLIRUK, true);
@@ -350,27 +349,28 @@ public:
struct mob_nerubar_victimAI : public ScriptedAI
{
- mob_nerubar_victimAI(Creature* c) : ScriptedAI(c) {}
+ mob_nerubar_victimAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
void MoveInLineOfSight(Unit* /*who*/) {}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
- if (Killer->GetTypeId() == TYPEID_PLAYER)
+ Player* player = killer->ToPlayer();
+ if (!player)
+ return;
+
+ if (player->GetQuestStatus(11611) == QUEST_STATUS_INCOMPLETE)
{
- if (CAST_PLR(Killer)->GetQuestStatus(11611) == QUEST_STATUS_INCOMPLETE)
+ uint8 uiRand = urand(0, 99);
+ if (uiRand < 25)
{
- uint8 uiRand = urand(0, 99);
- if (uiRand < 25)
- {
- Killer->CastSpell(me, 45532, true);
- CAST_PLR(Killer)->KilledMonsterCredit(WARSONG_PEON, 0);
- }
- else if (uiRand < 75)
- Killer->CastSpell(me, nerubarVictims[urand(0, 2)], true);
+ player->CastSpell(me, 45532, true);
+ player->KilledMonsterCredit(WARSONG_PEON, 0);
}
+ else if (uiRand < 75)
+ player->CastSpell(me, nerubarVictims[urand(0, 2)], true);
}
}
};
@@ -403,9 +403,9 @@ public:
{
me->SetReactState(REACT_PASSIVE);
- if (GameObject* pGO = me->FindNearestGameObject(GO_SCOURGE_CAGE, 5.0f))
- if (pGO->GetGoState() == GO_STATE_ACTIVE)
- pGO->SetGoState(GO_STATE_READY);
+ if (GameObject* go = me->FindNearestGameObject(GO_SCOURGE_CAGE, 5.0f))
+ if (go->GetGoState() == GO_STATE_ACTIVE)
+ go->SetGoState(GO_STATE_READY);
}
};
@@ -575,7 +575,7 @@ public:
struct npc_nesingwary_trapperAI : public ScriptedAI
{
- npc_nesingwary_trapperAI(Creature* c) : ScriptedAI(c) { c->SetVisible(false); }
+ npc_nesingwary_trapperAI(Creature* creature) : ScriptedAI(creature) { creature->SetVisible(false); }
uint64 go_caribouGUID;
uint8 Phase;
@@ -588,10 +588,11 @@ public:
Phase = 1;
go_caribouGUID = 0;
}
+
void EnterCombat(Unit* /*who*/) {}
void MoveInLineOfSight(Unit* /*who*/) {}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (GameObject* go_caribou = me->GetMap()->GetGameObject(go_caribouGUID))
go_caribou->SetLootState(GO_JUST_DEACTIVATED);
@@ -617,7 +618,6 @@ public:
uiPhaseTimer = 2000;
Phase = 2;
break;
-
case 2:
if (GameObject* go_fur = me->FindNearestGameObject(GO_HIGH_QUALITY_FUR, 11.0f))
me->GetMotionMaster()->MovePoint(0, go_fur->GetPositionX(), go_fur->GetPositionY(), go_fur->GetPositionZ());
@@ -645,7 +645,6 @@ public:
uiPhaseTimer = 500;
Phase = 7;
break;
-
case 7:
{
GameObject* go_caribou = NULL;
@@ -662,7 +661,7 @@ public:
Phase = 8;
uiPhaseTimer = 1000;
}
- break;
+ break;
case 8:
DoCast(me, SPELL_TRAPPED, true);
Phase = 0;
@@ -718,9 +717,9 @@ public:
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
- switch (i)
+ switch (waypointId)
{
case 0:
IntroPhase = 1;
@@ -849,7 +848,7 @@ public:
struct npc_nexus_drake_hatchlingAI : public FollowerAI //The spell who makes the npc follow the player is missing, also we can use FollowerAI!
{
- npc_nexus_drake_hatchlingAI(Creature* c) : FollowerAI(c) {}
+ npc_nexus_drake_hatchlingAI(Creature* creature) : FollowerAI(creature) {}
uint64 HarpoonerGUID;
bool WithRedDragonBlood;
@@ -1014,14 +1013,13 @@ public:
uiPhaseTimer = 0;
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (uiPointId)
+ switch (waypointId)
{
case 3:
SetEscortPaused(true);
@@ -1030,18 +1028,17 @@ public:
uiArthas = pArthas->GetGUID();
pArthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pArthas->SetReactState(REACT_PASSIVE);
- pArthas->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pArthas->SetWalk(true);
pArthas->GetMotionMaster()->MovePoint(0, 3737.374756f, 3564.841309f, 477.433014f);
}
if (Creature* pTalbot = me->SummonCreature(NPC_COUNSELOR_TALBOT, 3747.23f, 3614.936f, 473.321f, 4.462012f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 120000))
{
uiTalbot = pTalbot->GetGUID();
- pTalbot->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pTalbot->SetWalk(true);
pTalbot->GetMotionMaster()->MovePoint(0, 3738.000977f, 3568.882080f, 477.433014f);
}
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
break;
-
case 4:
SetEscortPaused(true);
uiPhase = 7;
@@ -1118,13 +1115,13 @@ public:
if (Creature* pArlos = me->SummonCreature(NPC_GENERAL_ARLOS, 3745.527100f, 3615.655029f, 473.321533f, 4.447805f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 120000))
{
uiArlos = pArlos->GetGUID();
- pArlos->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pArlos->SetWalk(true);
pArlos->GetMotionMaster()->MovePoint(0, 3735.570068f, 3572.419922f, 477.441010f);
}
if (Creature* pLeryssa = me->SummonCreature(NPC_LERYSSA, 3749.654541f, 3614.959717f, 473.323486f, 4.524959f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 120000))
{
uiLeryssa = pLeryssa->GetGUID();
- pLeryssa->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pLeryssa->SetWalk(false);
pLeryssa->SetReactState(REACT_PASSIVE);
pLeryssa->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pLeryssa->GetMotionMaster()->MovePoint(0, 3741.969971f, 3571.439941f, 477.441010f);
@@ -1256,10 +1253,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
@@ -1446,11 +1443,11 @@ public:
pArlos->Kill(pArlos, false);
pLeryssa->RemoveAura(SPELL_STUN);
pLeryssa->ClearUnitState(UNIT_STATE_STUNNED);
- pLeryssa->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ pLeryssa->SetWalk(false);
pLeryssa->GetMotionMaster()->MovePoint(0, 3722.114502f, 3564.201660f, 477.441437f);
- if (killer->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(killer)->RewardPlayerAndGroupAtEvent(NPC_PRINCE_VALANAR, 0);
+ if (Player* player = killer->ToPlayer())
+ player->RewardPlayerAndGroupAtEvent(NPC_PRINCE_VALANAR, 0);
}
};
@@ -1631,7 +1628,10 @@ public:
StartFollow(pCaster->ToPlayer(), 0, NULL);
me->UpdateEntry(NPC_CAPTURED_BERLY_SORCERER, TEAM_NEUTRAL);
DoCast(me, SPELL_COSMETIC_ENSLAVE_CHAINS_SELF, true);
- CAST_PLR(pCaster)->KilledMonsterCredit(NPC_CAPTURED_BERLY_SORCERER, 0);
+
+ if (Player* player = pCaster->ToPlayer())
+ player->KilledMonsterCredit(NPC_CAPTURED_BERLY_SORCERER, 0);
+
bEnslaved = true;
}
}
@@ -1841,7 +1841,7 @@ public:
struct npc_mootoo_the_youngerAI : public npc_escortAI
{
- npc_mootoo_the_youngerAI(Creature* c) : npc_escortAI(c) {}
+ npc_mootoo_the_youngerAI(Creature* creature) : npc_escortAI(creature) {}
void Reset()
{
@@ -1854,35 +1854,33 @@ public:
player->FailQuest(QUEST_ESCAPING_THE_MIST);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 10:
- me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
- DoScriptText(SAY_2, me);
- break;
- case 12:
- DoScriptText(SAY_3, me);
- me->HandleEmoteCommand(EMOTE_ONESHOT_LOOT);
- break;
- case 16:
- DoScriptText(SAY_4, me);
- me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
- break;
- case 20:
- me->SetPhaseMask(1, true);
- DoScriptText(SAY_5, me);
- me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
- if (player)
+ case 10:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
+ DoScriptText(SAY_2, me);
+ break;
+ case 12:
+ DoScriptText(SAY_3, me);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_LOOT);
+ break;
+ case 16:
+ DoScriptText(SAY_4, me);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
+ break;
+ case 20:
+ me->SetPhaseMask(1, true);
+ DoScriptText(SAY_5, me);
+ me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
player->GroupEventHappens(QUEST_ESCAPING_THE_MIST, me);
- SetRun(true);
- break;
+ SetRun(true);
+ break;
}
}
};
@@ -1926,7 +1924,7 @@ public:
struct npc_bonker_togglevoltAI : public npc_escortAI
{
- npc_bonker_togglevoltAI(Creature* c) : npc_escortAI(c) {}
+ npc_bonker_togglevoltAI(Creature* creature) : npc_escortAI(creature) {}
uint32 Bonker_agro;
void Reset()
@@ -1955,18 +1953,16 @@ public:
else Bonker_agro=0;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 29:
- if (player)
- player->GroupEventHappens(QUEST_GET_ME_OUTA_HERE, me);
+ player->GroupEventHappens(QUEST_GET_ME_OUTA_HERE, me);
break;
}
}
@@ -2026,7 +2022,7 @@ public:
struct npc_trapped_mammoth_calfAI : public ScriptedAI
{
- npc_trapped_mammoth_calfAI(Creature* c) : ScriptedAI(c) {}
+ npc_trapped_mammoth_calfAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiTimer;
bool bStarted;
@@ -2036,7 +2032,7 @@ public:
uiTimer = 1500;
bStarted = false;
- GameObject* pTrap;
+ GameObject* pTrap = NULL;
for (uint8 i = 0; i < MammothTrapsNum; ++i)
{
pTrap = me->FindNearestGameObject(MammothTraps[i], 11.0f);
@@ -2071,11 +2067,12 @@ public:
void MovementInform(uint32 uiType, uint32 /*uiId*/)
{
-
if (uiType != POINT_MOTION_TYPE)
return;
+
me->DisappearAndDie();
- GameObject* pTrap;
+
+ GameObject* pTrap = NULL;
for (uint8 i = 0; i < MammothTrapsNum; ++i)
{
pTrap = me->FindNearestGameObject(MammothTraps[i], 11.0f);
@@ -2114,18 +2111,21 @@ public:
struct npc_magmoth_crusherAI : public ScriptedAI
{
- npc_magmoth_crusherAI(Creature* c) : ScriptedAI(c) {}
+ npc_magmoth_crusherAI(Creature* creature) : ScriptedAI(creature) {}
void JustDied(Unit* killer)
{
- if (killer->GetTypeId() == TYPEID_PLAYER &&
- CAST_PLR(killer)->GetQuestStatus(QUEST_YOU_RE_NOT_SO_BIG_NOW) == QUEST_STATUS_INCOMPLETE &&
+ Player* player = killer->ToPlayer();
+ if (!player)
+ return;
+
+ if (player->GetQuestStatus(QUEST_YOU_RE_NOT_SO_BIG_NOW) == QUEST_STATUS_INCOMPLETE &&
(me->HasAura(SPELL_AURA_NOTSOBIG_1) || me->HasAura(SPELL_AURA_NOTSOBIG_2) ||
me->HasAura(SPELL_AURA_NOTSOBIG_3) || me->HasAura(SPELL_AURA_NOTSOBIG_4)))
{
Quest const* qInfo = sObjectMgr->GetQuestTemplate(QUEST_YOU_RE_NOT_SO_BIG_NOW);
if (qInfo)
- CAST_PLR(killer)->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0], 0);
+ player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0], 0);
}
}
};
@@ -2150,13 +2150,15 @@ public:
struct npc_seaforium_depth_chargeAI : public ScriptedAI
{
- npc_seaforium_depth_chargeAI(Creature* c) : ScriptedAI(c) {}
+ npc_seaforium_depth_chargeAI(Creature* creature) : ScriptedAI(creature) { }
uint32 uiExplosionTimer;
+
void Reset()
{
uiExplosionTimer = urand(5000, 10000);
}
+
void UpdateAI(const uint32 diff)
{
if (uiExplosionTimer < diff)
@@ -2203,7 +2205,7 @@ public:
struct npc_valiance_keep_cannoneerAI : public ScriptedAI
{
- npc_valiance_keep_cannoneerAI(Creature* c) : ScriptedAI(c) {}
+ npc_valiance_keep_cannoneerAI(Creature* creature) : ScriptedAI(creature) {}
uint32 uiTimer;
@@ -2229,7 +2231,6 @@ public:
if (!UpdateVictim())
return;
}
-
};
CreatureAI* GetAI(Creature* creature) const
@@ -2540,18 +2541,18 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->AI()->SetGUID(player->GetGUID());
creature->AI()->DoAction(1);
}
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -2561,31 +2562,31 @@ public:
void AddSC_borean_tundra()
{
- new npc_sinkhole_kill_credit;
- new npc_khunok_the_behemoth;
- new npc_keristrasza;
- new npc_corastrasza;
- new npc_iruk;
- new mob_nerubar_victim;
- new npc_scourge_prisoner;
- new npc_jenny;
- new npc_fezzix_geartwist;
- new npc_nesingwary_trapper;
- new npc_lurgglbr;
- new npc_nexus_drake_hatchling;
- new npc_thassarian;
- new npc_image_lich_king;
- new npc_counselor_talbot;
- new npc_leryssa;
- new npc_general_arlos;
- new npc_beryl_sorcerer;
- new npc_imprisoned_beryl_sorcerer;
- new npc_mootoo_the_younger;
- new npc_bonker_togglevolt;
- new npc_trapped_mammoth_calf;
- new npc_magmoth_crusher;
- new npc_seaforium_depth_charge;
- new npc_valiance_keep_cannoneer;
- new npc_warmage_coldarra;
- new npc_hidden_cultist;
+ new npc_sinkhole_kill_credit();
+ new npc_khunok_the_behemoth();
+ new npc_keristrasza();
+ new npc_corastrasza();
+ new npc_iruk();
+ new mob_nerubar_victim();
+ new npc_scourge_prisoner();
+ new npc_jenny();
+ new npc_fezzix_geartwist();
+ new npc_nesingwary_trapper();
+ new npc_lurgglbr();
+ new npc_nexus_drake_hatchling();
+ new npc_thassarian();
+ new npc_image_lich_king();
+ new npc_counselor_talbot();
+ new npc_leryssa();
+ new npc_general_arlos();
+ new npc_beryl_sorcerer();
+ new npc_imprisoned_beryl_sorcerer();
+ new npc_mootoo_the_younger();
+ new npc_bonker_togglevolt();
+ new npc_trapped_mammoth_calf();
+ new npc_magmoth_crusher();
+ new npc_seaforium_depth_charge();
+ new npc_valiance_keep_cannoneer();
+ new npc_warmage_coldarra();
+ new npc_hidden_cultist();
}
diff --git a/src/server/scripts/Northrend/dalaran.cpp b/src/server/scripts/Northrend/dalaran.cpp
index 258d038ee4b..e7b92732066 100644
--- a/src/server/scripts/Northrend/dalaran.cpp
+++ b/src/server/scripts/Northrend/dalaran.cpp
@@ -153,13 +153,13 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRAIN)
+ if (action == GOSSIP_ACTION_TRAIN)
player->GetSession()->SendTrainerList(creature->GetGUID());
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
diff --git a/src/server/scripts/Northrend/dragonblight.cpp b/src/server/scripts/Northrend/dragonblight.cpp
index 0c1837ec37d..4cbe280a9f2 100644
--- a/src/server/scripts/Northrend/dragonblight.cpp
+++ b/src/server/scripts/Northrend/dragonblight.cpp
@@ -56,10 +56,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
player->SendMovieStart(MOVIE_ID_GATES);
diff --git a/src/server/scripts/Northrend/grizzly_hills.cpp b/src/server/scripts/Northrend/grizzly_hills.cpp
index ccb31c869a4..2da84dd3fdb 100644
--- a/src/server/scripts/Northrend/grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/grizzly_hills.cpp
@@ -74,12 +74,13 @@ public:
summoned->AI()->AttackStart(me->getVictim());
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (i)
+
+ switch (waypointId)
{
case 9:
if (Creature* Mrfloppy = GetClosestCreatureWithEntry(me, NPC_MRFLOPPY, 100.0f))
@@ -162,7 +163,7 @@ public:
player->GroupEventHappens(QUEST_PERILOUS_ADVENTURE, me);
DoScriptText(SAY_QUEST_COMPLETE, me, player);
}
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
break;
case 25:
DoScriptText(SAY_VICTORY4, me);
@@ -194,9 +195,7 @@ public:
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
if (m_uiChatTimer <= uiDiff)
- {
m_uiChatTimer = 12000;
- }
else
m_uiChatTimer -= uiDiff;
}
@@ -209,9 +208,7 @@ public:
{
DoScriptText(SAY_QUEST_ACCEPT, creature);
if (Creature* Mrfloppy = GetClosestCreatureWithEntry(creature, NPC_MRFLOPPY, 180.0f))
- {
Mrfloppy->GetMotionMaster()->MoveFollow(creature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
- }
if (npc_escortAI* pEscortAI = CAST_AI(npc_emily::npc_emilyAI, (creature->AI())))
pEscortAI->Start(true, false, player->GetGUID());
@@ -233,7 +230,7 @@ public:
struct npc_mrfloppyAI : public ScriptedAI
{
- npc_mrfloppyAI(Creature* c) : ScriptedAI(c) {}
+ npc_mrfloppyAI(Creature* creature) : ScriptedAI(creature) {}
uint64 EmilyGUID;
uint64 RWORGGUID;
@@ -318,7 +315,7 @@ public:
void SpellHit(Unit* pCaster, const SpellInfo* pSpell)
{
if (pSpell->Id == SPELL_OUTHOUSE_GROANS)
- {
+ {
++m_counter;
if (m_counter < 5)
DoCast(pCaster, SPELL_CAMERA_SHAKE, true);
@@ -327,8 +324,13 @@ public:
DoCast(me, SPELL_DUST_FIELD, true);
switch (m_gender)
{
- case GENDER_FEMALE: DoPlaySoundToSet(me, SOUND_FEMALE); break;
- case GENDER_MALE: DoPlaySoundToSet(me, SOUND_MALE); break;
+ case GENDER_FEMALE:
+ DoPlaySoundToSet(me, SOUND_FEMALE);
+ break;
+
+ case GENDER_MALE:
+ DoPlaySoundToSet(me, SOUND_MALE);
+ break;
}
}
}
@@ -471,13 +473,13 @@ public:
struct npc_wounded_skirmisherAI : public ScriptedAI
{
- npc_wounded_skirmisherAI(Creature* c) : ScriptedAI(c) {}
+ npc_wounded_skirmisherAI(Creature* creature) : ScriptedAI(creature) {}
uint64 uiPlayerGUID;
uint32 DespawnTimer;
- void Reset ()
+ void Reset()
{
DespawnTimer = 5000;
uiPlayerGUID = 0;
@@ -503,7 +505,6 @@ public:
me->SetStandState(UNIT_STAND_STATE_STAND);
me->DespawnOrUnsummon(DespawnTimer);
}
-
}
}
@@ -511,6 +512,7 @@ public:
{
if (!UpdateVictim())
return;
+
DoMeleeAttackIfReady();
}
};
@@ -695,12 +697,12 @@ public:
void AddSC_grizzly_hills()
{
- new npc_emily;
- new npc_mrfloppy;
- new npc_outhouse_bunny;
- new npc_tallhorn_stag;
- new npc_amberpine_woodsman;
- new npc_wounded_skirmisher;
+ new npc_emily();
+ new npc_mrfloppy();
+ new npc_outhouse_bunny();
+ new npc_tallhorn_stag();
+ new npc_amberpine_woodsman();
+ new npc_wounded_skirmisher();
new npc_lightning_sentry();
new npc_venture_co_straggler();
}
diff --git a/src/server/scripts/Northrend/howling_fjord.cpp b/src/server/scripts/Northrend/howling_fjord.cpp
index 3c44fa0eb44..88cc297868b 100644
--- a/src/server/scripts/Northrend/howling_fjord.cpp
+++ b/src/server/scripts/Northrend/howling_fjord.cpp
@@ -71,7 +71,7 @@ public:
npc_Apothecary_HanesAI(Creature* creature) : npc_escortAI(creature){}
uint32 PotTimer;
- void Reset ()
+ void Reset()
{
SetDespawnAtFar(false);
PotTimer = 10000; //10 sec cooldown on potion
@@ -97,20 +97,20 @@ public:
DoMeleeAttackIfReady();
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (i)
+
+ switch (waypointId)
{
case 1:
me->SetReactState(REACT_AGGRESSIVE);
SetRun(true);
break;
case 23:
- if (player)
- player->GroupEventHappens(QUEST_TRAIL_OF_FIRE, me);
+ player->GroupEventHappens(QUEST_TRAIL_OF_FIRE, me);
me->DespawnOrUnsummon();
break;
case 5:
@@ -254,10 +254,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_RAZAEL2, creature->GetGUID());
@@ -303,10 +303,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MG_II, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -389,7 +389,7 @@ public:
{
if (player->isAlive())
{
- summon->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ summon->SetWalk(false);
summon->GetMotionMaster()->MovePoint(0, afCenter[0], afCenter[1], afCenter[2]);
summon->AI()->AttackStart(player);
return;
diff --git a/src/server/scripts/Northrend/icecrown.cpp b/src/server/scripts/Northrend/icecrown.cpp
index 8da992af8fb..fb2e0f6c389 100644
--- a/src/server/scripts/Northrend/icecrown.cpp
+++ b/src/server/scripts/Northrend/icecrown.cpp
@@ -75,10 +75,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -149,10 +149,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->SummonCreature(NPC_ARGENT_VALIANT, 8575.451f, 952.472f, 547.554f, 0.38f);
diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp
index 36dc6177f64..93d0182ea08 100644
--- a/src/server/scripts/Northrend/sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/sholazar_basin.cpp
@@ -55,7 +55,7 @@ public:
struct npc_injured_rainspeaker_oracleAI : public npc_escortAI
{
- npc_injured_rainspeaker_oracleAI(Creature* c) : npc_escortAI(c) { c_guid = c->GetGUID(); }
+ npc_injured_rainspeaker_oracleAI(Creature* creature) : npc_escortAI(creature) { c_guid = creature->GetGUID(); }
uint64 c_guid;
@@ -70,39 +70,40 @@ public:
}
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 1: SetRun(); break;
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_JUMPING);
- me->SetSpeed(MOVE_SWIM, 0.85f, true);
- me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_LEVITATING);
- break;
- case 19:
- me->SetUnitMovementFlags(MOVEMENTFLAG_JUMPING);
- break;
- case 28:
- player->GroupEventHappens(QUEST_FORTUNATE_MISUNDERSTANDINGS, me);
- // me->RestoreFaction();
- DoScriptText(SAY_END_IRO, me);
- SetRun(false);
- break;
+ case 1:
+ SetRun();
+ break;
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ me->RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
+ me->RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ me->SetSpeed(MOVE_SWIM, 0.85f, true);
+ me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
+ break;
+ case 19:
+ me->SetUnitMovementFlags(MOVEMENTFLAG_FALLING);
+ break;
+ case 28:
+ player->GroupEventHappens(QUEST_FORTUNATE_MISUNDERSTANDINGS, me);
+ // me->RestoreFaction();
+ DoScriptText(SAY_END_IRO, me);
+ SetRun(false);
+ break;
}
}
@@ -113,8 +114,8 @@ public:
if (Player* player = GetPlayerForEscort())
{
- if (player->GetQuestStatus(QUEST_FORTUNATE_MISUNDERSTANDINGS) != QUEST_STATUS_COMPLETE)
- player->FailQuest(QUEST_FORTUNATE_MISUNDERSTANDINGS);
+ if (player->GetQuestStatus(QUEST_FORTUNATE_MISUNDERSTANDINGS) != QUEST_STATUS_COMPLETE)
+ player->FailQuest(QUEST_FORTUNATE_MISUNDERSTANDINGS);
}
}
};
@@ -132,14 +133,14 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
CAST_AI(npc_escortAI, (creature->AI()))->SetMaxPlayerDistance(35.0f);
- creature->SetUnitMovementFlags(MOVEMENTFLAG_JUMPING);
+ creature->SetUnitMovementFlags(MOVEMENTFLAG_FALLING);
DoScriptText(SAY_START_IRO, creature);
switch (player->GetTeam()){
@@ -206,10 +207,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_VEKJIK_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -263,10 +264,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -305,10 +306,9 @@ public:
if (me->isDead())
return;
- if (me->isSummon())
- if (Unit* summoner = me->ToTempSummon()->GetSummoner())
- if (summoner)
- me->GetMotionMaster()->MovePoint(0, summoner->GetPositionX(), summoner->GetPositionY(), summoner->GetPositionZ());
+ if (TempSummon* summ = me->ToTempSummon())
+ if (Unit* summoner = summ->GetSummoner())
+ me->GetMotionMaster()->MovePoint(0, summoner->GetPositionX(), summoner->GetPositionY(), summoner->GetPositionZ());
Reset();
}
@@ -359,10 +359,11 @@ public:
uint32 m_uiChatTimer;
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
- switch (i)
+
+ switch (waypointId)
{
case 0:
DoScriptText(SAY_WP_2, me);
@@ -401,12 +402,12 @@ public:
{
m_uiChatTimer = 4000;
}
+
void JustDied(Unit* /*killer*/)
{
- Player* player = GetPlayerForEscort();
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
- if (player)
+ if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_DISASTER);
}
}
@@ -647,11 +648,11 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
uint32 spellId = 0;
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1: spellId = SPELL_ADD_ORANGE; break;
case GOSSIP_ACTION_INFO_DEF + 2: spellId = SPELL_ADD_BANANAS; break;
diff --git a/src/server/scripts/Northrend/storm_peaks.cpp b/src/server/scripts/Northrend/storm_peaks.cpp
index 7bd59b92b7f..15239e9f836 100644
--- a/src/server/scripts/Northrend/storm_peaks.cpp
+++ b/src/server/scripts/Northrend/storm_peaks.cpp
@@ -61,10 +61,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
DoScriptText(SAY_AGGRO, creature);
player->CLOSE_GOSSIP_MENU();
@@ -106,10 +106,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -166,10 +166,10 @@ public:
return false;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(0, GOSSIP_SN1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -193,43 +193,6 @@ public:
};
/*######
-## npc_goblin_prisoner
-######*/
-
-enum eGoblinPrisoner
-{
- GO_RUSTY_CAGE = 191544
-};
-
-class npc_goblin_prisoner : public CreatureScript
-{
-public:
- npc_goblin_prisoner() : CreatureScript("npc_goblin_prisoner") { }
-
- struct npc_goblin_prisonerAI : public ScriptedAI
- {
- npc_goblin_prisonerAI(Creature* creature) : ScriptedAI (creature){}
-
- void Reset()
- {
- me->SetReactState(REACT_PASSIVE);
-
- if (GameObject* pGO = me->FindNearestGameObject(GO_RUSTY_CAGE, 5.0f))
- {
- if (pGO->GetGoState() == GO_STATE_ACTIVE)
- pGO->SetGoState(GO_STATE_READY);
- }
- }
-
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_goblin_prisonerAI(creature);
- }
-};
-
-/*######
## npc_victorious_challenger
######*/
@@ -307,10 +270,10 @@ public:
return false;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->setFaction(14);
@@ -363,10 +326,10 @@ public:
return false;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOKLIRACRONE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -411,18 +374,20 @@ public:
{
npc_injured_goblinAI(Creature* creature) : npc_escortAI(creature) { }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
- switch (i)
+ if (!player)
+ return;
+
+ switch (waypointId)
{
- case 26:
- DoScriptText(SAY_END_WP_REACHED, me, player);
- break;
- case 27:
- if (player)
+ case 26:
+ DoScriptText(SAY_END_WP_REACHED, me, player);
+ break;
+ case 27:
player->GroupEventHappens(QUEST_BITTER_DEPARTURE, me);
- break;
+ break;
}
}
@@ -474,12 +439,12 @@ public:
return false;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
npc_escortAI* pEscortAI = CAST_AI(npc_injured_goblin::npc_injured_goblinAI, creature->AI());
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
pEscortAI->Start(true, true, player->GetGUID());
creature->setFaction(113);
@@ -585,7 +550,7 @@ public:
// drake unsummoned, passengers dropped
if (!me->IsOnVehicle(drake) && !hasEmptySeats)
- me->ForcedDespawn(3000);
+ me->DespawnOrUnsummon(3000);
if (enter_timer <= 0)
return;
@@ -602,9 +567,9 @@ public:
enter_timer -= diff;
}
- void MoveInLineOfSight(Unit* unit)
+ void MoveInLineOfSight(Unit* who)
{
- if (!unit || !drakeGUID)
+ if (!who || !drakeGUID)
return;
Creature* drake = Unit::GetCreature(*me, drakeGUID);
@@ -616,21 +581,21 @@ public:
if (!me->IsOnVehicle(drake) && !me->HasAura(SPELL_ICE_PRISON))
{
- if (unit->IsVehicle() && me->IsWithinDist(unit, 25.0f, true) && unit->ToCreature() && unit->ToCreature()->GetEntry() == 29709)
+ if (who->IsVehicle() && me->IsWithinDist(who, 25.0f, true) && who->ToCreature() && who->ToCreature()->GetEntry() == 29709)
{
- uint8 seat = unit->GetVehicleKit()->GetNextEmptySeat(0, true);
+ uint8 seat = who->GetVehicleKit()->GetNextEmptySeat(0, true);
if (seat <= 0)
return;
- me->EnterVehicle(unit, seat);
+ me->EnterVehicle(who, seat);
me->SendMovementFlagUpdate();
hasEmptySeats = false;
}
}
- if (unit->ToCreature() && me->IsOnVehicle(drake))
+ if (who->ToCreature() && me->IsOnVehicle(drake))
{
- if (unit->ToCreature()->GetEntry() == NPC_QUEST_GIVER && me->IsWithinDist(unit, 15.0f, false))
+ if (who->ToCreature()->GetEntry() == NPC_QUEST_GIVER && me->IsWithinDist(who, 15.0f, false))
{
Unit* rider = drake->GetVehicleKit()->GetPassenger(0);
if (!rider)
@@ -640,7 +605,7 @@ public:
me->ExitVehicle();
me->CastSpell(me, SPELL_SUMMON_LIBERATED, true);
- me->ForcedDespawn(500);
+ me->DespawnOrUnsummon(500);
// drake is empty now, deliver credit for drake and despawn him
if (drake->GetVehicleKit()->HasEmptySeat(1) &&
@@ -651,7 +616,7 @@ public:
if (rider->ToPlayer())
rider->ToPlayer()->KilledMonsterCredit(29709, 0);
- drake->ToCreature()->ForcedDespawn(0);
+ drake->DespawnOrUnsummon(0);
}
}
}
@@ -706,7 +671,7 @@ public:
}
}
- void WaypointReached(uint32 /*wp*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
}
@@ -746,7 +711,7 @@ class npc_hyldsmeet_protodrake : public CreatureScript
class npc_hyldsmeet_protodrakeAI : public CreatureAI
{
public:
- npc_hyldsmeet_protodrakeAI(Creature* c) : CreatureAI(c), _accessoryRespawnTimer(0), _vehicleKit(c->GetVehicleKit()) {}
+ npc_hyldsmeet_protodrakeAI(Creature* creature) : CreatureAI(creature), _accessoryRespawnTimer(0), _vehicleKit(creature->GetVehicleKit()) {}
void PassengerBoarded(Unit* who, int8 /*seat*/, bool apply)
{
@@ -783,15 +748,14 @@ class npc_hyldsmeet_protodrake : public CreatureScript
void AddSC_storm_peaks()
{
- new npc_agnetta_tyrsdottar;
- new npc_frostborn_scout;
- new npc_thorim;
- new npc_goblin_prisoner;
- new npc_victorious_challenger;
- new npc_loklira_crone;
- new npc_injured_goblin;
- new npc_roxi_ramrocket;
- new npc_brunnhildar_prisoner;
- new npc_icefang;
- new npc_hyldsmeet_protodrake;
+ new npc_agnetta_tyrsdottar();
+ new npc_frostborn_scout();
+ new npc_thorim();
+ new npc_victorious_challenger();
+ new npc_loklira_crone();
+ new npc_injured_goblin();
+ new npc_roxi_ramrocket();
+ new npc_brunnhildar_prisoner();
+ new npc_icefang();
+ new npc_hyldsmeet_protodrake();
}
diff --git a/src/server/scripts/Northrend/zuldrak.cpp b/src/server/scripts/Northrend/zuldrak.cpp
index 0af82345dce..369f47cfb1c 100644
--- a/src/server/scripts/Northrend/zuldrak.cpp
+++ b/src/server/scripts/Northrend/zuldrak.cpp
@@ -52,8 +52,7 @@ public:
float x, y, z;
me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, 0.1f);
- if (Unit* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z,
- 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
+ if (Unit* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
{
RageclawGUID = summon->GetGUID();
LockRageclaw();
@@ -92,7 +91,7 @@ public:
if (Creature* pRageclaw = Unit::GetCreature(*me, RageclawGUID))
{
UnlockRageclaw(pCaster);
- pCaster->ToPlayer()->KilledMonster(pRageclaw->GetCreatureInfo(), RageclawGUID);
+ pCaster->ToPlayer()->KilledMonster(pRageclaw->GetCreatureTemplate(), RageclawGUID);
me->DisappearAndDie();
}
else
@@ -156,7 +155,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_KNEEL);
- me->setFaction(me->GetCreatureInfo()->faction_H);
+ me->setFaction(me->GetCreatureTemplate()->faction_H);
DoCast(me, SPELL_UNSHACKLED, true);
me->MonsterSay(SAY_RAGECLAW, LANG_UNIVERSAL, 0);
@@ -223,10 +222,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
player->CastSpell(player, SPELL_GYMER, true);
@@ -617,9 +616,9 @@ public:
pWhisker->RemoveFromWorld();
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 type, uint32 /*pointId*/)
{
- if (uiType != POINT_MOTION_TYPE)
+ if (type != EFFECT_MOTION_TYPE)
return;
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -741,9 +740,9 @@ public:
bEnrage = false;
}
- void WaypointReached(uint32 uiI)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiI)
+ switch (waypointId)
{
case 6:
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0);
@@ -935,9 +934,9 @@ public:
bThunderClap = false;
}
- void WaypointReached(uint32 uiI)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiI)
+ switch (waypointId)
{
case 7:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -1072,7 +1071,7 @@ public:
SummonList.clear();
- for (uint8 uiI = 0; uiI < 16 ; uiI++)
+ for (uint8 uiI = 0; uiI < 16; uiI++)
{
if (Creature* summon = me->SummonCreature(Boss[uiBossRandom].uiAdd, AddSpawnPosition[uiI]))
{
@@ -1328,7 +1327,7 @@ public:
break;
case 2:
// walk forward
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(0, me->GetPositionX() + (cos(m_heading) * 10), me->GetPositionY() + (sin(m_heading) * 10), me->GetPositionZ());
m_uiTimer = 5000;
m_uiPhase = 3;
@@ -1365,10 +1364,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF +1)
+ if (action == GOSSIP_ACTION_INFO_DEF +1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_QUEST_CREDIT, true);
@@ -1397,14 +1396,14 @@ class go_scourge_enclosure : public GameObjectScript
public:
go_scourge_enclosure() : GameObjectScript("go_scourge_enclosure") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
if (player->GetQuestStatus(QUEST_OUR_ONLY_HOPE) == QUEST_STATUS_INCOMPLETE)
{
- Creature* pGymerDummy = pGO->FindNearestCreature(NPC_GYMER_DUMMY, 20.0f);
+ Creature* pGymerDummy = go->FindNearestCreature(NPC_GYMER_DUMMY, 20.0f);
if (pGymerDummy)
{
- pGO->UseDoorOrButton();
+ go->UseDoorOrButton();
player->KilledMonsterCredit(pGymerDummy->GetEntry(), pGymerDummy->GetGUID());
pGymerDummy->CastSpell(pGymerDummy, 55529, true);
pGymerDummy->DisappearAndDie();
diff --git a/src/server/scripts/OutdoorPvP/CMakeLists.txt b/src/server/scripts/OutdoorPvP/CMakeLists.txt
index 450f0f6cc7d..237b974aa9d 100644
--- a/src/server/scripts/OutdoorPvP/CMakeLists.txt
+++ b/src/server/scripts/OutdoorPvP/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
index 6eb306b52af..1db4fb4dfc9 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
@@ -244,7 +244,6 @@ void OPvPCapturePointEP_NPT::ChangeState()
// complete quest objective
if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
SendObjectiveComplete(EP_NPT_CM, 0);
-
}
void OPvPCapturePointEP_NPT::SendChangePhase()
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h
index e019ba7ed7b..14712e0150d 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h
@@ -329,4 +329,3 @@ class OutdoorPvPEP : public OutdoorPvP
};
#endif
-
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
index 5b3468de203..38fed30f542 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
@@ -176,7 +176,6 @@ OutdoorPvPZM::OutdoorPvPZM()
m_GraveYard = NULL;
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
-
}
bool OutdoorPvPZM::SetupOutdoorPvP()
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
index 2a11139a701..8d2124a3791 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
@@ -219,7 +219,7 @@ class OPvPCapturePointZM_GraveYard : public OPvPCapturePoint
bool HandleDropFlag(Player* player, uint32 spellId);
- bool CanTalkTo(Player* player, Creature* c, GossipMenuItems const& gso);
+ bool CanTalkTo(Player* player, Creature* creature, GossipMenuItems const& gso);
uint32 GetGraveYardState() const;
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
index ef160a3a5c5..ae1a7296de6 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
@@ -53,7 +53,7 @@ public:
struct mob_stolen_soulAI : public ScriptedAI
{
- mob_stolen_soulAI(Creature* c) : ScriptedAI(c) {}
+ mob_stolen_soulAI(Creature* creature) : ScriptedAI(creature) {}
uint8 myClass;
uint32 Class_Timer;
@@ -162,7 +162,7 @@ public:
struct boss_exarch_maladaarAI : public ScriptedAI
{
- boss_exarch_maladaarAI(Creature* c) : ScriptedAI(c)
+ boss_exarch_maladaarAI(Creature* creature) : ScriptedAI(creature)
{
HasTaunted = false;
}
@@ -233,7 +233,7 @@ public:
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
//When Exarch Maladar is defeated D'ore appear.
@@ -319,7 +319,7 @@ public:
struct mob_avatar_of_martyredAI : public ScriptedAI
{
- mob_avatar_of_martyredAI(Creature* c) : ScriptedAI(c) {}
+ mob_avatar_of_martyredAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Mortal_Strike_timer;
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 d359917ab28..5fc912f2a01 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
@@ -52,7 +52,7 @@ public:
struct boss_shirrak_the_dead_watcherAI : public ScriptedAI
{
- boss_shirrak_the_dead_watcherAI(Creature* c) : ScriptedAI(c)
+ boss_shirrak_the_dead_watcherAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -170,7 +170,7 @@ public:
struct mob_focus_fireAI : public ScriptedAI
{
- mob_focus_fireAI(Creature* c) : ScriptedAI(c)
+ mob_focus_fireAI(Creature* creature) : ScriptedAI(creature)
{
}
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
index aa63f1adf18..a4bba5f28fb 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
@@ -67,7 +67,7 @@ public:
struct boss_nexusprince_shaffarAI : public ScriptedAI
{
- boss_nexusprince_shaffarAI(Creature* c) : ScriptedAI(c), summons(me) { HasTaunted = false; }
+ boss_nexusprince_shaffarAI(Creature* creature) : ScriptedAI(creature), summons(me) { HasTaunted = false; }
uint32 Blink_Timer;
uint32 Beacon_Timer;
@@ -145,7 +145,7 @@ public:
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEAD, me);
summons.DespawnAll();
@@ -233,7 +233,7 @@ public:
struct mob_ethereal_beaconAI : public ScriptedAI
{
- mob_ethereal_beaconAI(Creature* c) : ScriptedAI(c)
+ mob_ethereal_beaconAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -325,7 +325,7 @@ public:
struct mob_ethereal_apprenticeAI : public ScriptedAI
{
- mob_ethereal_apprenticeAI(Creature* c) : ScriptedAI(c) {}
+ mob_ethereal_apprenticeAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Cast_Timer;
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp
index d9ba99fcf24..487a1dd41ea 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp
@@ -53,7 +53,7 @@ public:
struct boss_pandemoniusAI : public ScriptedAI
{
- boss_pandemoniusAI(Creature* c) : ScriptedAI(c)
+ boss_pandemoniusAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -68,7 +68,7 @@ public:
VoidBlast_Counter = 0;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
index 2fd7498ea82..37544f9377b 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
@@ -65,7 +65,7 @@ public:
struct boss_darkweaver_sythAI : public ScriptedAI
{
- boss_darkweaver_sythAI(Creature* c) : ScriptedAI(c)
+ boss_darkweaver_sythAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -97,7 +97,7 @@ public:
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
@@ -206,7 +206,7 @@ public:
struct mob_syth_fireAI : public ScriptedAI
{
- mob_syth_fireAI(Creature* c) : ScriptedAI(c)
+ mob_syth_fireAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -265,7 +265,7 @@ public:
struct mob_syth_arcaneAI : public ScriptedAI
{
- mob_syth_arcaneAI(Creature* c) : ScriptedAI(c)
+ mob_syth_arcaneAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -319,7 +319,7 @@ public:
struct mob_syth_frostAI : public ScriptedAI
{
- mob_syth_frostAI(Creature* c) : ScriptedAI(c)
+ mob_syth_frostAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -374,7 +374,7 @@ public:
struct mob_syth_shadowAI : public ScriptedAI
{
- mob_syth_shadowAI(Creature* c) : ScriptedAI(c)
+ mob_syth_shadowAI(Creature* creature) : ScriptedAI(creature)
{
}
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
index c3c53416a9b..768c4bf12d3 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp
@@ -64,9 +64,9 @@ public:
struct boss_talon_king_ikissAI : public ScriptedAI
{
- boss_talon_king_ikissAI(Creature* c) : ScriptedAI(c)
+ boss_talon_king_ikissAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -101,7 +101,7 @@ public:
DoScriptText(SAY_INTRO, me);
}
- if (!me->canFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
+ if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
float attackRadius = me->GetAttackDistance(who);
@@ -118,7 +118,7 @@ public:
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
index d3ea73c5ba0..d92e76685d1 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
@@ -58,10 +58,10 @@ public:
{
boss_ambassador_hellmawAI(Creature* creature) : npc_escortAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 EventCheck_Timer;
uint32 CorrosiveAcid_Timer;
@@ -81,17 +81,17 @@ public:
IsBanished = true;
Enraged = false;
- if (m_instance && me->isAlive())
+ if (instance && me->isAlive())
{
- if (m_instance->GetData(TYPE_OVERSEER) != DONE)
+ if (instance->GetData(TYPE_OVERSEER) != DONE)
DoCast(me, SPELL_BANISH, true);
}
}
void JustReachedHome()
{
- if (m_instance)
- m_instance->SetData(TYPE_HELLMAW, FAIL);
+ if (instance)
+ instance->SetData(TYPE_HELLMAW, FAIL);
}
void MoveInLineOfSight(Unit* who)
@@ -102,7 +102,7 @@ public:
npc_escortAI::MoveInLineOfSight(who);
}
- void WaypointReached(uint32 /*i*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
}
@@ -114,15 +114,15 @@ public:
IsBanished = false;
Intro = true;
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(TYPE_HELLMAW) != FAIL)
+ if (instance->GetData(TYPE_HELLMAW) != FAIL)
{
DoScriptText(SAY_INTRO, me);
Start(true, false, 0, NULL, false, true);
}
- m_instance->SetData(TYPE_HELLMAW, IN_PROGRESS);
+ instance->SetData(TYPE_HELLMAW, IN_PROGRESS);
}
}
@@ -136,12 +136,12 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
- if (m_instance)
- m_instance->SetData(TYPE_HELLMAW, DONE);
+ if (instance)
+ instance->SetData(TYPE_HELLMAW, DONE);
}
void UpdateAI(const uint32 diff)
@@ -150,9 +150,9 @@ public:
{
if (EventCheck_Timer <= diff)
{
- if (m_instance)
+ if (instance)
{
- if (m_instance->GetData(TYPE_OVERSEER) == DONE)
+ if (instance->GetData(TYPE_OVERSEER) == DONE)
{
DoIntro();
return;
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
index f7032d78bb6..6eac36f71c8 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
@@ -66,9 +66,9 @@ public:
struct boss_blackheart_the_inciterAI : public ScriptedAI
{
- boss_blackheart_the_inciterAI(Creature* c) : ScriptedAI(c)
+ boss_blackheart_the_inciterAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -96,7 +96,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
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 81a7750d512..8d971c37559 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
@@ -74,7 +74,7 @@ public:
struct mob_voidtravelerAI : public ScriptedAI
{
- mob_voidtravelerAI(Creature* c) : ScriptedAI(c)
+ mob_voidtravelerAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -147,9 +147,9 @@ public:
struct boss_grandmaster_vorpilAI : public ScriptedAI
{
- boss_grandmaster_vorpilAI(Creature* c) : ScriptedAI(c)
+ boss_grandmaster_vorpilAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Intro = false;
}
@@ -201,7 +201,7 @@ public:
{
for (uint8 i = 0; i < 5; ++i)
{
- Unit* Portal = Unit::GetUnit((*me), PortalsGuid[i]);
+ Unit* Portal = Unit::GetUnit(*me, PortalsGuid[i]);
if (Portal && Portal->isAlive())
Portal->DealDamage(Portal, Portal->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
PortalsGuid[i] = 0;
@@ -232,7 +232,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
destroyPortals();
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
index 5fd908c44e8..99661d8818c 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
@@ -48,7 +48,7 @@ public:
struct boss_murmurAI : public ScriptedAI
{
- boss_murmurAI(Creature* c) : ScriptedAI(c)
+ boss_murmurAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
}
@@ -166,7 +166,7 @@ public:
{
std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
- if (Unit* target = Unit::GetUnit((*me), (*i)->getUnitGuid()))
+ if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
if (target->isAlive() && !me->IsWithinDist(target, 35, false))
DoCast(target, SPELL_THUNDERING_STORM, true);
ThunderingStorm_Timer = 15000;
@@ -189,7 +189,7 @@ public:
{
std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
- if (Unit* target = Unit::GetUnit((*me), (*i)->getUnitGuid()))
+ if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))
if (target->isAlive() && me->IsWithinMeleeRange(target))
{
me->TauntApply(target);
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 1a9155dacb2..846669552ba 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp
@@ -75,7 +75,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
index a934d5587c2..546f9ee1e7d 100644
--- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
@@ -42,10 +42,10 @@ class npc_spirit_of_olum : public CreatureScript
public:
npc_spirit_of_olum() : CreatureScript("npc_spirit_of_olum") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
player->CLOSE_GOSSIP_MENU();
player->InterruptNonMeleeSpells(false);
diff --git a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp
index 3227e685fc4..caac89da765 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp
@@ -67,9 +67,9 @@ public:
struct boss_gurtogg_bloodboilAI : public ScriptedAI
{
- boss_gurtogg_bloodboilAI(Creature* c) : ScriptedAI(c)
+ boss_gurtogg_bloodboilAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -130,7 +130,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_GURTOGGBLOODBOILEVENT, DONE);
@@ -186,7 +186,7 @@ public:
void RevertThreatOnTarget(uint64 guid)
{
Unit* unit = NULL;
- unit = Unit::GetUnit((*me), guid);
+ unit = Unit::GetUnit(*me, guid);
if (unit)
{
if (DoGetThreat(unit))
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 58f0e10c950..1926929c97c 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -379,7 +379,7 @@ public:
struct flame_of_azzinothAI : public ScriptedAI
{
- flame_of_azzinothAI(Creature* c) : ScriptedAI(c) {}
+ flame_of_azzinothAI(Creature* creature) : ScriptedAI(creature) {}
uint32 FlameBlastTimer;
uint32 CheckTimer;
@@ -392,7 +392,10 @@ public:
GlaiveGUID = 0;
}
- void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
+ void EnterCombat(Unit* /*who*/)
+ {
+ DoZoneInCombat();
+ }
void ChargeCheck()
{
@@ -430,7 +433,10 @@ public:
}
}
- void SetGlaiveGUID(uint64 guid){ GlaiveGUID = guid; }
+ void SetGlaiveGUID(uint64 guid)
+ {
+ GlaiveGUID = guid;
+ }
void UpdateAI(const uint32 diff)
{
@@ -471,9 +477,9 @@ public:
struct boss_illidan_stormrageAI : public ScriptedAI
{
- boss_illidan_stormrageAI(Creature* c) : ScriptedAI(c), Summons(me)
+ boss_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
DoCast(me, SPELL_DUAL_WIELD, true);
}
@@ -502,7 +508,7 @@ public:
void SummonedCreatureDespawn(Creature* summon)
{
- if (summon->GetCreatureInfo()->Entry == FLAME_OF_AZZINOTH)
+ if (summon->GetCreatureTemplate()->Entry == FLAME_OF_AZZINOTH)
{
for (uint8 i = 0; i < 2; ++i)
if (summon->GetGUID() == FlameGUID[i])
@@ -566,7 +572,9 @@ public:
void KilledUnit(Unit* victim)
{
- if (victim == me) return;
+ if (victim == me)
+ return;
+
// TODO: Find better way to handle emote
switch (urand(0, 1))
{
@@ -747,10 +755,11 @@ public:
final.y = 2 * final.y - initial.y;
Creature* Trigger = me->SummonCreature(23069, initial.x, initial.y, initial.z, 0, TEMPSUMMON_TIMED_DESPAWN, 13000);
- if (!Trigger) return;
+ if (!Trigger)
+ return;
Trigger->SetSpeed(MOVE_WALK, 3);
- Trigger->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ Trigger->SetWalk(true);
Trigger->GetMotionMaster()->MovePoint(0, final.x, final.y, final.z);
// Trigger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -798,7 +807,7 @@ public:
{
case 1: // lift off
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- me->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
me->StopMoving();
me->MonsterYell(SAY_TAKEOFF, LANG_UNIVERSAL, 0);
DoPlaySoundToSet(me, SOUND_TAKEOFF);
@@ -856,7 +865,7 @@ public:
{
if (GlaiveGUID[i])
{
- Unit* Glaive = Unit::GetUnit((*me), GlaiveGUID[i]);
+ Unit* Glaive = Unit::GetUnit(*me, GlaiveGUID[i]);
if (Glaive)
{
Glaive->CastSpell(me, SPELL_GLAIVE_RETURNS, false); // Make it look like the Glaive flies back up to us
@@ -867,7 +876,7 @@ public:
Timer[EVENT_FLIGHT_SEQUENCE] = 2000;
break;
case 9: // land
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->StopMoving();
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
for (uint8 i = 0; i < 2; ++i)
@@ -1157,7 +1166,7 @@ public:
struct boss_maievAI : public ScriptedAI
{
- boss_maievAI(Creature* c) : ScriptedAI(c) {};
+ boss_maievAI(Creature* creature) : ScriptedAI(creature) {};
uint64 IllidanGUID;
@@ -1181,7 +1190,11 @@ public:
void EnterCombat(Unit* /*who*/) {}
void MoveInLineOfSight(Unit* /*who*/) {}
void EnterEvadeMode() {}
- void GetIllidanGUID(uint64 guid) { IllidanGUID = guid; }
+
+ void GetIllidanGUID(uint64 guid)
+ {
+ IllidanGUID = guid;
+ }
void DamageTaken(Unit* done_by, uint32 &damage)
{
@@ -1372,9 +1385,9 @@ public:
struct npc_akama_illidanAI : public ScriptedAI
{
- npc_akama_illidanAI(Creature* c) : ScriptedAI(c)
+ npc_akama_illidanAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
JustCreated = true;
}
bool JustCreated;
@@ -1479,7 +1492,7 @@ public:
std::vector<Unit*> eliteList;
for (std::list<HostileReference*>::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->GetEntry() == ILLIDARI_ELITE)
eliteList.push_back(unit);
}
@@ -1537,7 +1550,7 @@ public:
void BeginWalk()
{
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->SetSpeed(MOVE_RUN, 1.0f);
me->GetMotionMaster()->MovePoint(0, AkamaWP[WalkCount].x, AkamaWP[WalkCount].y, AkamaWP[WalkCount].z);
}
@@ -1636,9 +1649,9 @@ public:
Unit* Channel = NULL, *Spirit[2] = { NULL, NULL };
if (ChannelCount <= 5)
{
- Channel = Unit::GetUnit((*me), ChannelGUID);
- Spirit[0] = Unit::GetUnit((*me), SpiritGUID[0]);
- Spirit[1] = Unit::GetUnit((*me), SpiritGUID[1]);
+ Channel = Unit::GetUnit(*me, ChannelGUID);
+ Spirit[0] = Unit::GetUnit(*me, SpiritGUID[0]);
+ Spirit[1] = Unit::GetUnit(*me, SpiritGUID[1]);
if (!Channel || !Spirit[0] || !Spirit[1])
return;
}
@@ -1801,10 +1814,10 @@ public:
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF) // Time to begin the Event
+ if (action == GOSSIP_ACTION_INFO_DEF) // Time to begin the Event
{
player->CLOSE_GOSSIP_MENU();
CAST_AI(npc_akama_illidan::npc_akama_illidanAI, creature->AI())->EnterPhase(PHASE_CHANNEL);
@@ -1869,7 +1882,7 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset()
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_UNEQUIP, EQUIP_NO_CHANGE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->setActive(false);
Summons.DespawnAll();
}
@@ -1932,7 +1945,7 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::HandleTalkSequence()
// Equip our warglaives!
SetEquipmentSlots(false, EQUIP_ID_MAIN_HAND, EQUIP_ID_OFF_HAND, EQUIP_NO_CHANGE);
me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
break;
case 9:
if (GETCRE(Akama, AkamaGUID))
@@ -2019,7 +2032,7 @@ public:
struct cage_trap_triggerAI : public ScriptedAI
{
- cage_trap_triggerAI(Creature* c) : ScriptedAI(c) {}
+ cage_trap_triggerAI(Creature* creature) : ScriptedAI(creature) {}
uint64 IllidanGUID;
uint32 DespawnTimer;
@@ -2083,7 +2096,6 @@ public:
// }
}
};
-
};
class gameobject_cage_trap : public GameObjectScript
@@ -2102,7 +2114,6 @@ public:
go->SetGoState(GO_STATE_ACTIVE);
return true;
}
-
};
class mob_shadow_demon : public CreatureScript
@@ -2117,11 +2128,14 @@ public:
struct shadow_demonAI : public ScriptedAI
{
- shadow_demonAI(Creature* c) : ScriptedAI(c) {}
+ shadow_demonAI(Creature* creature) : ScriptedAI(creature) {}
uint64 TargetGUID;
- void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
+ void EnterCombat(Unit* /*who*/)
+ {
+ DoZoneInCombat();
+ }
void Reset()
{
@@ -2131,15 +2145,17 @@ public:
void JustDied(Unit* /*killer*/)
{
- if (Unit* target = Unit::GetUnit((*me), TargetGUID))
+ if (Unit* target = Unit::GetUnit(*me, TargetGUID))
target->RemoveAurasDueToSpell(SPELL_PARALYZE);
}
void UpdateAI(const uint32 /*diff*/)
{
- if (!UpdateVictim()) return;
+ if (!UpdateVictim())
+ return;
- if (me->getVictim()->GetTypeId() != TYPEID_PLAYER) return; // Only cast the below on players.
+ if (me->getVictim()->GetTypeId() != TYPEID_PLAYER)
+ return; // Only cast the below on players.
if (!me->getVictim()->HasAura(SPELL_PARALYZE))
{
@@ -2153,7 +2169,6 @@ public:
DoCast(me->getVictim(), SPELL_CONSUME_SOUL);
}
};
-
};
class mob_blade_of_azzinoth : public CreatureScript
@@ -2168,7 +2183,7 @@ public:
struct blade_of_azzinothAI : public NullCreatureAI
{
- blade_of_azzinothAI(Creature* c) : NullCreatureAI(c) {}
+ blade_of_azzinothAI(Creature* creature) : NullCreatureAI(creature) {}
void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
{
@@ -2192,9 +2207,9 @@ public:
// Shadowfiends interact with Illidan, setting more targets in Illidan's hashmap
struct mob_parasitic_shadowfiendAI : public ScriptedAI
{
- mob_parasitic_shadowfiendAI(Creature* c) : ScriptedAI(c)
+ mob_parasitic_shadowfiendAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -2212,7 +2227,10 @@ public:
DoCast(me, SPELL_SHADOWFIEND_PASSIVE, true);
}
- void EnterCombat(Unit* /*who*/) { DoZoneInCombat(); }
+ void EnterCombat(Unit* /*who*/)
+ {
+ DoZoneInCombat();
+ }
void DoMeleeAttackIfReady()
{
@@ -2258,7 +2276,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_illidan()
diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
index 3c7f0d3b89c..4e4607a7d44 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
@@ -90,9 +90,9 @@ public:
struct boss_shahrazAI : public ScriptedAI
{
- boss_shahrazAI(Creature* c) : ScriptedAI(c)
+ boss_shahrazAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -149,7 +149,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_MOTHERSHAHRAZEVENT, DONE);
@@ -250,7 +250,7 @@ public:
Unit* unit = NULL;
if (TargetGUID[i])
{
- unit = Unit::GetUnit((*me), TargetGUID[i]);
+ unit = Unit::GetUnit(*me, TargetGUID[i]);
if (unit)
unit->CastSpell(unit, SPELL_ATTRACTION, true);
TargetGUID[i] = 0;
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index b0c29afda34..c5e78f2fa7b 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -113,7 +113,7 @@ public:
struct npc_enslaved_soulAI : public ScriptedAI
{
- npc_enslaved_soulAI(Creature* c) : ScriptedAI(c) {}
+ npc_enslaved_soulAI(Creature* creature) : ScriptedAI(creature) {}
uint64 ReliquaryGUID;
@@ -142,9 +142,9 @@ public:
struct boss_reliquary_of_soulsAI : public ScriptedAI
{
- boss_reliquary_of_soulsAI(Creature* c) : ScriptedAI(c)
+ boss_reliquary_of_soulsAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
EssenceGUID = 0;
}
@@ -197,8 +197,11 @@ public:
uint32 random = rand()%6;
float x = Coords[random].x;
float y = Coords[random].y;
+
Creature* Soul = me->SummonCreature(CREATURE_ENSLAVED_SOUL, x, y, me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_CORPSE_DESPAWN, 0);
- if (!Soul) return false;
+ if (!Soul)
+ return false;
+
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
CAST_AI(npc_enslaved_soul::npc_enslaved_soulAI, Soul->AI())->ReliquaryGUID = me->GetGUID();
@@ -216,7 +219,7 @@ public:
std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
for (; itr != m_threatlist.end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit)
{
DoModifyThreatPercent(unit, -100);
@@ -379,7 +382,7 @@ public:
struct boss_essence_of_sufferingAI : public ScriptedAI
{
- boss_essence_of_sufferingAI(Creature* c) : ScriptedAI(c) {}
+ boss_essence_of_sufferingAI(Creature* creature) : ScriptedAI(creature) {}
uint64 StatAuraGUID;
@@ -438,7 +441,7 @@ public:
std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();
for (; itr != m_threatlist.end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players
targets.push_back(unit);
}
@@ -504,7 +507,7 @@ public:
struct boss_essence_of_desireAI : public ScriptedAI
{
- boss_essence_of_desireAI(Creature* c) : ScriptedAI(c) {}
+ boss_essence_of_desireAI(Creature* creature) : ScriptedAI(creature) {}
uint32 RuneShieldTimer;
uint32 DeadenTimer;
@@ -607,7 +610,7 @@ public:
struct boss_essence_of_angerAI : public ScriptedAI
{
- boss_essence_of_angerAI(Creature* c) : ScriptedAI(c) {}
+ boss_essence_of_angerAI(Creature* creature) : ScriptedAI(creature) {}
uint64 AggroTargetGUID;
@@ -640,7 +643,7 @@ public:
DoCast(me, AURA_OF_ANGER, true);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(ANGER_SAY_DEATH, me);
}
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 5ca3189ebca..630e44429fa 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -121,7 +121,10 @@ public:
struct mob_ashtongue_channelerAI : public ScriptedAI
{
- mob_ashtongue_channelerAI(Creature* c) : ScriptedAI(c) {ShadeGUID = 0;}
+ mob_ashtongue_channelerAI(Creature* creature) : ScriptedAI(creature)
+ {
+ ShadeGUID = 0;
+ }
uint64 ShadeGUID;
@@ -147,7 +150,10 @@ public:
struct mob_ashtongue_sorcererAI : public ScriptedAI
{
- mob_ashtongue_sorcererAI(Creature* c) : ScriptedAI(c) {ShadeGUID = 0;}
+ mob_ashtongue_sorcererAI(Creature* creature) : ScriptedAI(creature)
+ {
+ ShadeGUID = 0;
+ }
uint64 ShadeGUID;
uint32 CheckTimer;
@@ -202,9 +208,9 @@ public:
struct boss_shade_of_akamaAI : public ScriptedAI
{
- boss_shade_of_akamaAI(Creature* c) : ScriptedAI(c), summons(me)
+ boss_shade_of_akamaAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
AkamaGUID = instance ? instance->GetData64(DATA_AKAMA_SHADE) : 0;
me->setActive(true);//if view distance is too low
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
@@ -320,7 +326,8 @@ public:
void AttackStart(Unit* who)
{
- if (!who || IsBanished) return;
+ if (!who || IsBanished)
+ return;
if (who->isTargetableForAttack() && who != me)
DoStartMovement(who);
@@ -354,7 +361,7 @@ public:
if (Sorcerer)
{
CAST_AI(mob_ashtongue_sorcerer::mob_ashtongue_sorcererAI, Sorcerer->AI())->ShadeGUID = me->GetGUID();
- Sorcerer->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ Sorcerer->SetWalk(false);
Sorcerer->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
Sorcerer->SetTarget(me->GetGUID());
Sorcerers.push_back(Sorcerer->GetGUID());
@@ -369,7 +376,7 @@ public:
Creature* Spawn = me->SummonCreature(spawnEntries[i], X, Y, Z_SPAWN, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 25000);
if (Spawn)
{
- Spawn->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ Spawn->SetWalk(false);
Spawn->GetMotionMaster()->MovePoint(0, AGGRO_X, AGGRO_Y, AGGRO_Z);
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
Spawn->AI()->AttackStart(target);
@@ -430,7 +437,7 @@ public:
Creature* Defender = me->SummonCreature(CREATURE_DEFENDER, SpawnLocations[ran].x, SpawnLocations[ran].y, Z_SPAWN, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 25000);
if (Defender)
{
- Defender->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ Defender->SetWalk(false);
bool move = true;
if (AkamaGUID)
{
@@ -541,10 +548,10 @@ class npc_akama_shade : public CreatureScript
public:
npc_akama_shade() : CreatureScript("npc_akama_shade") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
+ if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
{
player->CLOSE_GOSSIP_MENU();
CAST_AI(npc_akama_shade::npc_akamaAI, creature->AI())->BeginEvent(player);
@@ -571,11 +578,11 @@ public:
struct npc_akamaAI : public ScriptedAI
{
- npc_akamaAI(Creature* c) : ScriptedAI(c), summons(me)
+ npc_akamaAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
ShadeHasDied = false;
StartCombat = false;
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
if (instance)
ShadeGUID = instance->GetData64(DATA_SHADEOFAKAMA);
else
@@ -662,7 +669,8 @@ public:
me->CombatStart(Shade);
Shade->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
Shade->SetTarget(me->GetGUID());
- if (player) Shade->AddThreat(player, 1.0f);
+ if (player)
+ Shade->AddThreat(player, 1.0f);
DoZoneInCombat(Shade);
EventBegun = true;
}
@@ -675,17 +683,19 @@ public:
switch (id)
{
- case 0: ++WayPointId; break;
+ case 0:
+ ++WayPointId;
+ break;
- case 1:
- if (Creature* Shade = Unit::GetCreature(*me, ShadeGUID))
- {
- me->SetTarget(ShadeGUID);
- DoCast(Shade, SPELL_AKAMA_SOUL_RETRIEVE);
- EndingTalkCount = 0;
- SoulRetrieveTimer = 16000;
- }
- break;
+ case 1:
+ if (Creature* Shade = Unit::GetCreature(*me, ShadeGUID))
+ {
+ me->SetTarget(ShadeGUID);
+ DoCast(Shade, SPELL_AKAMA_SOUL_RETRIEVE);
+ EndingTalkCount = 0;
+ SoulRetrieveTimer = 16000;
+ }
+ break;
}
}
@@ -760,7 +770,7 @@ public:
{
ShadeHasDied = true;
WayPointId = 0;
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->GetMotionMaster()->MovePoint(WayPointId, AkamaWP[0].x, AkamaWP[0].y, AkamaWP[0].z);
}
if (Shade && Shade->isAlive())
@@ -878,7 +888,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_shade_of_akama()
diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
index 5a02ffc891f..ce1732433c8 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
@@ -65,7 +65,7 @@ public:
struct molten_flameAI : public NullCreatureAI
{
- molten_flameAI(Creature* c) : NullCreatureAI(c) {}
+ molten_flameAI(Creature* creature) : NullCreatureAI(creature) {}
void InitializeAI()
{
@@ -91,9 +91,9 @@ public:
struct boss_supremusAI : public ScriptedAI
{
- boss_supremusAI(Creature* c) : ScriptedAI(c), summons(me)
+ boss_supremusAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -134,7 +134,8 @@ public:
if (!phase || phase == PHASE_CHASE)
{
phase = PHASE_STRIKE;
- summons.DoAction(EVENT_VOLCANO, 0);
+ DummyEntryCheckPredicate pred;
+ summons.DoAction(EVENT_VOLCANO, pred);
events.ScheduleEvent(EVENT_HATEFUL_STRIKE, 5000, GCD_CAST, PHASE_STRIKE);
me->SetSpeed(MOVE_RUN, 1.2f);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, false);
@@ -165,8 +166,15 @@ public:
summons.DespawnAll();
}
- void JustSummoned(Creature* summon) {summons.Summon(summon);}
- void SummonedCreatureDespawn(Creature* summon) {summons.Despawn(summon);}
+ void JustSummoned(Creature* summon)
+ {
+ summons.Summon(summon);
+ }
+
+ void SummonedCreatureDespawn(Creature* summon)
+ {
+ summons.Despawn(summon);
+ }
Unit* CalculateHatefulStrikeTarget()
{
@@ -177,7 +185,7 @@ public:
std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
for (i = m_threatlist.begin(); i!= m_threatlist.end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && me->IsWithinMeleeRange(unit))
{
if (unit->GetHealth() > health)
@@ -263,7 +271,7 @@ public:
struct npc_volcanoAI : public Scripted_NoMovementAI
{
- npc_volcanoAI(Creature* c) : Scripted_NoMovementAI(c) {}
+ npc_volcanoAI(Creature* creature) : Scripted_NoMovementAI(creature) {}
void Reset()
{
diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
index 278488eac9e..bc12a6c1c6c 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
@@ -63,7 +63,7 @@ public:
struct mob_doom_blossomAI : public ScriptedAI
{
- mob_doom_blossomAI(Creature* c) : ScriptedAI(c) {}
+ mob_doom_blossomAI(Creature* creature) : ScriptedAI(creature) {}
uint32 CheckTeronTimer;
uint32 ShadowBoltTimer;
@@ -112,9 +112,11 @@ public:
return;
}
- void SetTeronGUID(uint64 guid){ TeronGUID = guid; }
+ void SetTeronGUID(uint64 guid)
+ {
+ TeronGUID = guid;
+ }
};
-
};
class mob_shadowy_construct : public CreatureScript
@@ -129,7 +131,7 @@ public:
struct mob_shadowy_constructAI : public ScriptedAI
{
- mob_shadowy_constructAI(Creature* c) : ScriptedAI(c) {}
+ mob_shadowy_constructAI(Creature* creature) : ScriptedAI(creature) {}
uint64 GhostGUID;
uint64 TeronGUID;
@@ -173,7 +175,7 @@ public:
std::list<Unit*> targets;
for (; itr != m_threatlist.end(); ++itr)
{
- Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());
if (unit && unit->isAlive())
targets.push_back(unit);
}
@@ -219,9 +221,9 @@ public:
struct boss_teron_gorefiendAI : public ScriptedAI
{
- boss_teron_gorefiendAI(Creature* c) : ScriptedAI(c)
+ boss_teron_gorefiendAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -291,7 +293,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_TERONGOREFIENDEVENT, DONE);
@@ -316,13 +318,14 @@ public:
void SetThreatList(Creature* Blossom)
{
- if (!Blossom) return;
+ if (!Blossom)
+ return;
std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && unit->isAlive())
{
float threat = DoGetThreat(unit);
@@ -342,7 +345,7 @@ public:
Unit* Ghost = NULL;
if (GhostGUID)
- Ghost = Unit::GetUnit((*me), GhostGUID);
+ Ghost = Unit::GetUnit(*me, GhostGUID);
if (Ghost && Ghost->isAlive() && Ghost->HasAura(SPELL_SHADOW_OF_DEATH))
{
/*float x, y, z;
@@ -389,7 +392,7 @@ public:
Done = true;
if (AggroTargetGUID)
{
- Unit* unit = Unit::GetUnit((*me), AggroTargetGUID);
+ Unit* unit = Unit::GetUnit(*me, AggroTargetGUID);
if (unit)
AttackStart(unit);
diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
index 47f82447a80..5b2bb8e7bf5 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
@@ -72,9 +72,9 @@ public:
struct boss_najentusAI : public ScriptedAI
{
- boss_najentusAI(Creature* c) : ScriptedAI(c)
+ boss_najentusAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -98,7 +98,7 @@ public:
events.DelayEvents(5000, GCD_YELL);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, DONE);
@@ -130,7 +130,9 @@ public:
bool RemoveImpalingSpine()
{
- if (!SpineTargetGUID) return false;
+ if (!SpineTargetGUID)
+ return false;
+
Unit* target = Unit::GetUnit(*me, SpineTargetGUID);
if (target && target->HasAura(SPELL_IMPALING_SPINE))
target->RemoveAurasDueToSpell(SPELL_IMPALING_SPINE);
diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
index b0c6dcdda41..0742f174ccf 100644
--- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
+++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
@@ -122,7 +122,7 @@ public:
struct mob_blood_elf_council_voice_triggerAI : public ScriptedAI
{
- mob_blood_elf_council_voice_triggerAI(Creature* c) : ScriptedAI(c)
+ mob_blood_elf_council_voice_triggerAI(Creature* creature) : ScriptedAI(creature)
{
for (uint8 i = 0; i < 4; ++i)
Council[i] = 0;
@@ -217,9 +217,9 @@ public:
struct mob_illidari_councilAI : public ScriptedAI
{
- mob_illidari_councilAI(Creature* c) : ScriptedAI(c)
+ mob_illidari_councilAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
for (uint8 i = 0; i < 4; ++i)
Council[i] = 0;
}
@@ -299,7 +299,7 @@ public:
Unit* Member = NULL;
if (Council[i])
{
- Member = Unit::GetUnit((*me), Council[i]);
+ Member = Unit::GetUnit(*me, Council[i]);
if (Member && Member->isAlive())
CAST_CRE(Member)->AI()->AttackStart(target);
}
@@ -313,7 +313,8 @@ public:
void UpdateAI(const uint32 diff)
{
- if (!EventBegun) return;
+ if (!EventBegun)
+ return;
if (EndEventTimer)
{
@@ -378,9 +379,9 @@ public:
struct boss_illidari_councilAI : public ScriptedAI
{
- boss_illidari_councilAI(Creature* c) : ScriptedAI(c)
+ boss_illidari_councilAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
for (uint8 i = 0; i < 4; ++i)
Council[i] = 0;
LoadedGUIDs = false;
@@ -475,7 +476,7 @@ public:
struct boss_gathios_the_shattererAI : public boss_illidari_councilAI
{
- boss_gathios_the_shattererAI(Creature* c) : boss_illidari_councilAI(c) {}
+ boss_gathios_the_shattererAI(Creature* creature) : boss_illidari_councilAI(creature) {}
uint32 ConsecrationTimer;
uint32 HammerOfJusticeTimer;
@@ -497,7 +498,7 @@ public:
DoScriptText(SAY_GATH_SLAY, me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_GATH_DEATH, me);
}
@@ -511,7 +512,7 @@ public:
member = urand(1, 3);
if (member != 2) // No need to create another pointer to us using Unit::GetUnit
- unit = Unit::GetUnit((*me), Council[member]);
+ unit = Unit::GetUnit(*me, Council[member]);
return unit;
}
@@ -525,7 +526,7 @@ public:
}
for (uint8 i = 0; i < 4; ++i)
{
- Unit* unit = Unit::GetUnit((*me), Council[i]);
+ Unit* unit = Unit::GetUnit(*me, Council[i]);
if (unit)
unit->CastSpell(unit, spellid, true, 0, 0, me->GetGUID());
}
@@ -542,8 +543,13 @@ public:
{
switch (urand(0, 1))
{
- case 0: DoCast(unit, SPELL_BLESS_SPELLWARD); break;
- case 1: DoCast(unit, SPELL_BLESS_PROTECTION); break;
+ case 0:
+ DoCast(unit, SPELL_BLESS_SPELLWARD);
+ break;
+
+ case 1:
+ DoCast(unit, SPELL_BLESS_PROTECTION);
+ break;
}
}
BlessingTimer = 60000;
@@ -602,7 +608,7 @@ public:
struct boss_high_nethermancer_zerevorAI : public boss_illidari_councilAI
{
- boss_high_nethermancer_zerevorAI(Creature* c) : boss_illidari_councilAI(c) {}
+ boss_high_nethermancer_zerevorAI(Creature* creature) : boss_illidari_councilAI(creature) {}
uint32 BlizzardTimer;
uint32 FlamestrikeTimer;
@@ -626,7 +632,7 @@ public:
DoScriptText(SAY_ZERE_SLAY, me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_ZERE_DEATH, me);
}
@@ -706,7 +712,7 @@ public:
struct boss_lady_malandeAI : public boss_illidari_councilAI
{
- boss_lady_malandeAI(Creature* c) : boss_illidari_councilAI(c) {}
+ boss_lady_malandeAI(Creature* creature) : boss_illidari_councilAI(creature) {}
uint32 EmpoweredSmiteTimer;
uint32 CircleOfHealingTimer;
@@ -726,7 +732,7 @@ public:
DoScriptText(SAY_MALA_SLAY, me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_MALA_DEATH, me);
}
@@ -784,7 +790,7 @@ public:
struct boss_veras_darkshadowAI : public boss_illidari_councilAI
{
- boss_veras_darkshadowAI(Creature* c) : boss_illidari_councilAI(c) {}
+ boss_veras_darkshadowAI(Creature* creature) : boss_illidari_councilAI(creature) {}
uint64 EnvenomTargetGUID;
@@ -812,7 +818,7 @@ public:
DoScriptText(SAY_VERA_SLAY, me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_VERA_DEATH, me);
}
diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
index d4184a0b145..49bce6d82c0 100644
--- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
@@ -118,7 +118,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -163,28 +164,75 @@ public:
{
switch (go->GetEntry())
{
- case 185483: NajentusGate = go->GetGUID();// Gate past Naj'entus (at the entrance to Supermoose's courtyards)
- if (m_auiEncounter[0] == DONE)HandleGameObject(0, true, go);break;
- case 185882: MainTempleDoors = go->GetGUID();// Main Temple Doors - right past Supermoose (Supremus)
- if (m_auiEncounter[1] == DONE)HandleGameObject(0, true, go);break;
- case 185478: ShadeOfAkamaDoor = go->GetGUID();break;
- case 185480: CommonDoor = go->GetGUID();
- if (m_auiEncounter[3] == DONE)HandleGameObject(0, true, go);break;
- case 186153: TeronDoor = go->GetGUID();
- if (m_auiEncounter[3] == DONE)HandleGameObject(0, true, go);break;
- case 185892: GuurtogDoor = go->GetGUID();
- if (m_auiEncounter[4] == DONE)HandleGameObject(0, true, go);break;
- case 185479: TempleDoor = go->GetGUID();
- if (m_auiEncounter[5] == DONE)HandleGameObject(0, true, go);break;
- case 185482: MotherDoor = go->GetGUID();
- if (m_auiEncounter[6] == DONE)HandleGameObject(0, true, go);break;
- case 185481: CouncilDoor = go->GetGUID();
- if (m_auiEncounter[7] == DONE)HandleGameObject(0, true, go);break;
- case 186152: SimpleDoor = go->GetGUID();
- if (m_auiEncounter[7] == DONE)HandleGameObject(0, true, go);break;
- case 185905: IllidanGate = go->GetGUID(); break; // Gate leading to Temple Summit
- case 186261: IllidanDoor[0] = go->GetGUID(); break; // Right door at Temple Summit
- case 186262: IllidanDoor[1] = go->GetGUID(); break; // Left door at Temple Summit
+ case 185483:
+ NajentusGate = go->GetGUID();// Gate past Naj'entus (at the entrance to Supermoose's courtyards)
+ if (m_auiEncounter[0] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185882:
+ MainTempleDoors = go->GetGUID();// Main Temple Doors - right past Supermoose (Supremus)
+ if (m_auiEncounter[1] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185478:
+ ShadeOfAkamaDoor = go->GetGUID();
+ break;
+
+ case 185480:
+ CommonDoor = go->GetGUID();
+ if (m_auiEncounter[3] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 186153:
+ TeronDoor = go->GetGUID();
+ if (m_auiEncounter[3] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185892:
+ GuurtogDoor = go->GetGUID();
+ if (m_auiEncounter[4] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185479:
+ TempleDoor = go->GetGUID();
+ if (m_auiEncounter[5] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185482:
+ MotherDoor = go->GetGUID();
+ if (m_auiEncounter[6] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185481:
+ CouncilDoor = go->GetGUID();
+ if (m_auiEncounter[7] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 186152:
+ SimpleDoor = go->GetGUID();
+ if (m_auiEncounter[7] == DONE)
+ HandleGameObject(0, true, go);
+ break;
+
+ case 185905:
+ IllidanGate = go->GetGUID(); // Gate leading to Temple Summit
+ break;
+
+ case 186261:
+ IllidanDoor[0] = go->GetGUID(); // Right door at Temple Summit
+ break;
+
+ case 186262:
+ IllidanDoor[1] = go->GetGUID(); // Left door at Temple Summit
+ break;
}
}
@@ -220,63 +268,65 @@ public:
{
case DATA_HIGHWARLORDNAJENTUSEVENT:
if (data == DONE)
- {
HandleGameObject(NajentusGate, true);
- }
- m_auiEncounter[0] = data;break;
+ m_auiEncounter[0] = data;
+ break;
case DATA_SUPREMUSEVENT:
if (data == DONE)
- {
HandleGameObject(NajentusGate, true);
- }
- m_auiEncounter[1] = data; break;
+ m_auiEncounter[1] = data;
+ break;
case DATA_SHADEOFAKAMAEVENT:
if (data == IN_PROGRESS)
- {
HandleGameObject(ShadeOfAkamaDoor, false);
- } else HandleGameObject(ShadeOfAkamaDoor, true);
- m_auiEncounter[2] = data; break;
+ else
+ HandleGameObject(ShadeOfAkamaDoor, true);
+ m_auiEncounter[2] = data;
+ break;
case DATA_TERONGOREFIENDEVENT:
if (data == IN_PROGRESS)
{
HandleGameObject(TeronDoor, false);
HandleGameObject(CommonDoor, false);
- }else
+ }
+ else
{
HandleGameObject(TeronDoor, true);
HandleGameObject(CommonDoor, true);
}
- m_auiEncounter[3] = data; break;
+ m_auiEncounter[3] = data;
+ break;
case DATA_GURTOGGBLOODBOILEVENT:
if (data == DONE)
- {
HandleGameObject(GuurtogDoor, true);
- }
- m_auiEncounter[4] = data; break;
+ m_auiEncounter[4] = data;
+ break;
case DATA_RELIQUARYOFSOULSEVENT:
if (data == DONE)
- {
HandleGameObject(TempleDoor, true);
- }
- m_auiEncounter[5] = data; break;
+ m_auiEncounter[5] = data;
+ break;
case DATA_MOTHERSHAHRAZEVENT:
if (data == DONE)
- {
HandleGameObject(MotherDoor, true);
- }
- m_auiEncounter[6] = data; break;
+ m_auiEncounter[6] = data;
+ break;
case DATA_ILLIDARICOUNCILEVENT:
if (data == IN_PROGRESS)
{
HandleGameObject(CouncilDoor, false);
HandleGameObject(SimpleDoor, false);
- }else
+ }
+ else
{
HandleGameObject(CouncilDoor, true);
HandleGameObject(SimpleDoor, true);
}
- m_auiEncounter[7] = data; break;
- case DATA_ILLIDANSTORMRAGEEVENT: m_auiEncounter[8] = data; break;
+ m_auiEncounter[7] = data;
+ break;
+ case DATA_ILLIDANSTORMRAGEEVENT:
+ m_auiEncounter[8] = data;
+ break;
}
if (data == DONE)
diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt
index 229f7de72ec..6056fa8b143 100644
--- a/src/server/scripts/Outland/CMakeLists.txt
+++ b/src/server/scripts/Outland/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
index 9edc7179d5e..3937b213e7e 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
@@ -107,9 +107,9 @@ public:
struct boss_fathomlord_karathressAI : public ScriptedAI
{
- boss_fathomlord_karathressAI(Creature* c) : ScriptedAI(c)
+ boss_fathomlord_karathressAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Advisors[0] = 0;
Advisors[1] = 0;
Advisors[2] = 0;
@@ -225,7 +225,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
if (target)
{
@@ -317,9 +317,9 @@ public:
struct boss_fathomguard_sharkkisAI : public ScriptedAI
{
- boss_fathomguard_sharkkisAI(Creature* c) : ScriptedAI(c)
+ boss_fathomguard_sharkkisAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -354,7 +354,7 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -381,7 +381,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
if (target)
{
@@ -471,9 +471,9 @@ public:
struct boss_fathomguard_tidalvessAI : public ScriptedAI
{
- boss_fathomguard_tidalvessAI(Creature* c) : ScriptedAI(c)
+ boss_fathomguard_tidalvessAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -494,7 +494,7 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -522,7 +522,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
if (target)
{
@@ -598,9 +598,9 @@ public:
struct boss_fathomguard_caribdisAI : public ScriptedAI
{
- boss_fathomguard_caribdisAI(Creature* c) : ScriptedAI(c)
+ boss_fathomguard_caribdisAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -621,7 +621,7 @@ public:
instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -648,7 +648,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_KARATHRESSEVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER));
if (target)
{
@@ -691,7 +691,7 @@ public:
Creature* Cyclone = me->SummonCreature(CREATURE_CYCLONE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand()%5), TEMPSUMMON_TIMED_DESPAWN, 15000);
if (Cyclone)
{
- CAST_CRE(Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f);
+ CAST_CRE(Cyclone)->SetObjectScale(3.0f);
Cyclone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Cyclone->setFaction(me->getFaction());
Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_CYCLONE, true);
@@ -730,13 +730,13 @@ public:
switch (rand()%4)
{
case 0:
- unit = Unit::GetUnit((*me), instance->GetData64(DATA_KARATHRESS));
+ unit = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESS));
break;
case 1:
- unit = Unit::GetUnit((*me), instance->GetData64(DATA_SHARKKIS));
+ unit = Unit::GetUnit(*me, instance->GetData64(DATA_SHARKKIS));
break;
case 2:
- unit = Unit::GetUnit((*me), instance->GetData64(DATA_TIDALVESS));
+ unit = Unit::GetUnit(*me, instance->GetData64(DATA_TIDALVESS));
break;
case 3:
unit = me;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
index 6f020c16402..7abd2bbc8a8 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
@@ -88,9 +88,9 @@ public:
struct boss_hydross_the_unstableAI : public ScriptedAI
{
- boss_hydross_the_unstableAI(Creature* c) : ScriptedAI(c), Summons(me)
+ boss_hydross_the_unstableAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -177,13 +177,9 @@ public:
void KilledUnit(Unit* /*victim*/)
{
if (CorruptedForm)
- {
DoScriptText(RAND(SAY_CORRUPT_SLAY1, SAY_CORRUPT_SLAY2), me);
- }
else
- {
DoScriptText(RAND(SAY_CLEAN_SLAY1, SAY_CLEAN_SLAY2), me);
- }
}
void JustSummoned(Creature* summoned)
@@ -207,7 +203,7 @@ public:
Summons.Despawn(summon);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (CorruptedForm)
DoScriptText(SAY_CORRUPT_DEATH, me);
@@ -242,12 +238,29 @@ public:
switch (MarkOfCorruption_Count)
{
- case 0: mark_spell = SPELL_MARK_OF_CORRUPTION1; break;
- case 1: mark_spell = SPELL_MARK_OF_CORRUPTION2; break;
- case 2: mark_spell = SPELL_MARK_OF_CORRUPTION3; break;
- case 3: mark_spell = SPELL_MARK_OF_CORRUPTION4; break;
- case 4: mark_spell = SPELL_MARK_OF_CORRUPTION5; break;
- case 5: mark_spell = SPELL_MARK_OF_CORRUPTION6; break;
+ case 0:
+ mark_spell = SPELL_MARK_OF_CORRUPTION1;
+ break;
+
+ case 1:
+ mark_spell = SPELL_MARK_OF_CORRUPTION2;
+ break;
+
+ case 2:
+ mark_spell = SPELL_MARK_OF_CORRUPTION3;
+ break;
+
+ case 3:
+ mark_spell = SPELL_MARK_OF_CORRUPTION4;
+ break;
+
+ case 4:
+ mark_spell = SPELL_MARK_OF_CORRUPTION5;
+ break;
+
+ case 5:
+ mark_spell = SPELL_MARK_OF_CORRUPTION6;
+ break;
}
DoCast(me->getVictim(), mark_spell);
@@ -309,12 +322,29 @@ public:
switch (MarkOfHydross_Count)
{
- case 0: mark_spell = SPELL_MARK_OF_HYDROSS1; break;
- case 1: mark_spell = SPELL_MARK_OF_HYDROSS2; break;
- case 2: mark_spell = SPELL_MARK_OF_HYDROSS3; break;
- case 3: mark_spell = SPELL_MARK_OF_HYDROSS4; break;
- case 4: mark_spell = SPELL_MARK_OF_HYDROSS5; break;
- case 5: mark_spell = SPELL_MARK_OF_HYDROSS6; break;
+ case 0:
+ mark_spell = SPELL_MARK_OF_HYDROSS1;
+ break;
+
+ case 1:
+ mark_spell = SPELL_MARK_OF_HYDROSS2;
+ break;
+
+ case 2:
+ mark_spell = SPELL_MARK_OF_HYDROSS3;
+ break;
+
+ case 3:
+ mark_spell = SPELL_MARK_OF_HYDROSS4;
+ break;
+
+ case 4:
+ mark_spell = SPELL_MARK_OF_HYDROSS5;
+ break;
+
+ case 5:
+ mark_spell = SPELL_MARK_OF_HYDROSS6;
+ break;
}
DoCast(me->getVictim(), mark_spell);
@@ -375,7 +405,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_boss_hydross_the_unstable()
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 33ce04e45e3..18d8b2b5a1e 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
@@ -25,7 +25,6 @@ EndScriptData */
#include "ScriptPCH.h"
#include "serpent_shrine.h"
-#include "ScriptedSimpleAI.h"
#include "Spell.h"
#define SAY_INTRO -1548042
@@ -132,7 +131,6 @@ float ShieldGeneratorChannelPos[4][4] =
{49.3126f, -943.398f, 42.5501f, 2.40174f}
};
-//Lady Vashj AI
class boss_lady_vashj : public CreatureScript
{
public:
@@ -145,12 +143,12 @@ public:
struct boss_lady_vashjAI : public ScriptedAI
{
- boss_lady_vashjAI (Creature* c) : ScriptedAI(c)
+ boss_lady_vashjAI (Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
Intro = false;
JustCreated = true;
- c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); //set it only once on Creature create (no need do intro if wiped)
+ creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped)
}
InstanceScript* instance;
@@ -158,18 +156,18 @@ public:
uint64 ShieldGeneratorChannel[4];
uint32 AggroTimer;
- uint32 ShockBlast_Timer;
- uint32 Entangle_Timer;
- uint32 StaticCharge_Timer;
- uint32 ForkedLightning_Timer;
- uint32 Check_Timer;
- uint32 EnchantedElemental_Timer;
- uint32 TaintedElemental_Timer;
- uint32 CoilfangElite_Timer;
- uint32 CoilfangStrider_Timer;
- uint32 SummonSporebat_Timer;
- uint32 SummonSporebat_StaticTimer;
- uint8 EnchantedElemental_Pos;
+ uint32 ShockBlastTimer;
+ uint32 EntangleTimer;
+ uint32 StaticChargeTimer;
+ uint32 ForkedLightningTimer;
+ uint32 CheckTimer;
+ uint32 EnchantedElementalTimer;
+ uint32 TaintedElementalTimer;
+ uint32 CoilfangEliteTimer;
+ uint32 CoilfangStriderTimer;
+ uint32 SummonSporebatTimer;
+ uint32 SummonSporebatStaticTimer;
+ uint8 EnchantedElementalPos;
uint8 Phase;
bool Entangle;
@@ -180,18 +178,18 @@ public:
void Reset()
{
AggroTimer = 19000;
- ShockBlast_Timer = 1+rand()%60000;
- Entangle_Timer = 30000;
- StaticCharge_Timer = 10000+rand()%15000;
- ForkedLightning_Timer = 2000;
- Check_Timer = 15000;
- EnchantedElemental_Timer = 5000;
- TaintedElemental_Timer = 50000;
- CoilfangElite_Timer = 45000+rand()%5000;
- CoilfangStrider_Timer = 60000+rand()%10000;
- SummonSporebat_Timer = 10000;
- SummonSporebat_StaticTimer = 30000;
- EnchantedElemental_Pos = 0;
+ ShockBlastTimer = 1+rand()%60000;
+ EntangleTimer = 30000;
+ StaticChargeTimer = 10000+rand()%15000;
+ ForkedLightningTimer = 2000;
+ CheckTimer = 15000;
+ EnchantedElementalTimer = 5000;
+ TaintedElementalTimer = 50000;
+ CoilfangEliteTimer = 45000+rand()%5000;
+ CoilfangStriderTimer = 60000+rand()%10000;
+ SummonSporebatTimer = 10000;
+ SummonSporebatStaticTimer = 30000;
+ EnchantedElementalPos = 0;
Phase = 0;
Entangle = false;
@@ -201,13 +199,10 @@ public:
JustCreated = false;
} else CanAttack = true;
- Unit* remo;
+
for (uint8 i = 0; i < 4; ++i)
- {
- remo = Unit::GetUnit(*me, ShieldGeneratorChannel[i]);
- if (remo)
+ if (Unit* remo = Unit::GetUnit(*me, ShieldGeneratorChannel[i]))
remo->setDeathState(JUST_DIED);
- }
if (instance)
instance->SetData(DATA_LADYVASHJEVENT, NOT_STARTED);
@@ -219,19 +214,19 @@ public:
me->SetCorpseDelay(1000*60*60);
}
- //Called when a tainted elemental dies
+ // Called when a tainted elemental dies
void EventTaintedElementalDeath()
{
- //the next will spawn 50 seconds after the previous one's death
- if (TaintedElemental_Timer > 50000)
- TaintedElemental_Timer = 50000;
+ // the next will spawn 50 seconds after the previous one's death
+ if (TaintedElementalTimer > 50000)
+ TaintedElementalTimer = 50000;
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -253,18 +248,14 @@ public:
{
if (instance)
{
- //remove old tainted cores to prevent cheating in phase 2
+ // remove old tainted cores to prevent cheating in phase 2
Map* map = me->GetMap();
Map::PlayerList const &PlayerList = map->GetPlayers();
- for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if (Player* i_pl = i->getSource())
- {
- i_pl->DestroyItemCount(31088, 1, true);
- }
- }
+ for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
+ if (Player* player = itr->getSource())
+ player->DestroyItemCount(31088, 1, true);
}
- StartEvent();//this is EnterCombat(), so were are 100% in combat, start the event
+ StartEvent(); // this is EnterCombat(), so were are 100% in combat, start the event
if (Phase != 2)
AttackStart(who);
@@ -287,10 +278,7 @@ public:
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius) && me->GetDistanceZ(who) <= CREATURE_Z_ATTACK_RANGE && me->IsWithinLOSInMap(who))
{
- //if (who->HasStealthAura())
- // who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
-
- if (!me->isInCombat())//AttackStart() sets UNIT_FLAG_IN_COMBAT, so this msut be before attacking
+ if (!me->isInCombat()) // AttackStart() sets UNIT_FLAG_IN_COMBAT, so this msut be before attacking
StartEvent();
if (Phase != 2)
@@ -304,13 +292,13 @@ public:
switch (urand(0, 1))
{
case 0:
- //Shoot
- //Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits her target for 4097-5543 Physical damage.
+ // Shoot
+ // Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits her target for 4097-5543 Physical damage.
DoCast(me->getVictim(), SPELL_SHOOT);
break;
case 1:
- //Multishot
- //Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits 1 person and 4 people around him for 6475-7525 physical damage.
+ // Multishot
+ // Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits 1 person and 4 people around him for 6475-7525 physical damage.
DoCast(me->getVictim(), SPELL_MULTI_SHOT);
break;
}
@@ -329,231 +317,209 @@ public:
CanAttack = true;
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
AggroTimer=19000;
- }else
+ }
+ else
{
AggroTimer-=diff;
return;
}
}
- //to prevent abuses during phase 2
+ // to prevent abuses during phase 2
if (Phase == 2 && !me->getVictim() && me->isInCombat())
{
EnterEvadeMode();
return;
}
- //Return since we have no target
+ // Return since we have no target
if (!UpdateVictim())
return;
if (Phase == 1 || Phase == 3)
{
- //ShockBlast_Timer
- if (ShockBlast_Timer <= diff)
+ // ShockBlastTimer
+ if (ShockBlastTimer <= diff)
{
- //Shock Burst
- //Randomly used in Phases 1 and 3 on Vashj's target, it's a Shock spell doing 8325-9675 nature damage and stunning the target for 5 seconds, during which she will not attack her target but switch to the next person on the aggro list.
+ // Shock Burst
+ // Randomly used in Phases 1 and 3 on Vashj's target, it's a Shock spell doing 8325-9675 nature damage and stunning the target for 5 seconds, during which she will not attack her target but switch to the next person on the aggro list.
DoCast(me->getVictim(), SPELL_SHOCK_BLAST);
me->TauntApply(me->getVictim());
- ShockBlast_Timer = 1000+rand()%14000; //random cooldown
- } else ShockBlast_Timer -= diff;
+ ShockBlastTimer = 1000+rand()%14000; // random cooldown
+ } else ShockBlastTimer -= diff;
- //StaticCharge_Timer
- if (StaticCharge_Timer <= diff)
+ // StaticChargeTimer
+ if (StaticChargeTimer <= diff)
{
- //Static Charge
- //Used on random people (only 1 person at any given time) in Phases 1 and 3, it's a debuff doing 2775 to 3225 Nature damage to the target and everybody in about 5 yards around it, every 1 seconds for 30 seconds. It can be removed by Cloak of Shadows, Iceblock, Divine Shield, etc, but not by Cleanse or Dispel Magic.
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0, 200, true);
-
- if (target && !target->HasAura(SPELL_STATIC_CHARGE_TRIGGER))
- //cast Static Charge every 2 seconds for 20 seconds
- DoCast(target, SPELL_STATIC_CHARGE_TRIGGER);
+ // Static Charge
+ // Used on random people (only 1 person at any given time) in Phases 1 and 3, it's a debuff doing 2775 to 3225 Nature damage to the target and everybody in about 5 yards around it, every 1 seconds for 30 seconds. It can be removed by Cloak of Shadows, Iceblock, Divine Shield, etc, but not by Cleanse or Dispel Magic.
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 200, true);
+ if (target && !target->HasAura(SPELL_STATIC_CHARGE_TRIGGER))
+ DoCast(target, SPELL_STATIC_CHARGE_TRIGGER); // cast Static Charge every 2 seconds for 20 seconds
- StaticCharge_Timer = 10000+rand()%20000; //blizzlike
- } else StaticCharge_Timer -= diff;
+ StaticChargeTimer = 10000+rand()%20000;
+ } else StaticChargeTimer -= diff;
- //Entangle_Timer
- if (Entangle_Timer <= diff)
+ // EntangleTimer
+ if (EntangleTimer <= diff)
{
if (!Entangle)
{
- //Entangle
- //Used in Phases 1 and 3, it casts Entangling Roots on everybody in a 15 yard radius of Vashj, immobilzing them for 10 seconds and dealing 500 damage every 2 seconds. It's not a magic effect so it cannot be dispelled, but is removed by various buffs such as Cloak of Shadows or Blessing of Freedom.
+ // Entangle
+ // Used in Phases 1 and 3, it casts Entangling Roots on everybody in a 15 yard radius of Vashj, immobilzing them for 10 seconds and dealing 500 damage every 2 seconds. It's not a magic effect so it cannot be dispelled, but is removed by various buffs such as Cloak of Shadows or Blessing of Freedom.
DoCast(me->getVictim(), SPELL_ENTANGLE);
Entangle = true;
- Entangle_Timer = 10000;
+ EntangleTimer = 10000;
}
else
{
CastShootOrMultishot();
Entangle = false;
- Entangle_Timer = 20000+rand()%5000;
+ EntangleTimer = 20000+rand()%5000;
}
- } else Entangle_Timer -= diff;
+ } else EntangleTimer -= diff;
- //Phase 1
+ // Phase 1
if (Phase == 1)
{
- //Start phase 2
+ // Start phase 2
if (HealthBelowPct(70))
{
- //Phase 2 begins when Vashj hits 70%. She will run to the middle of her platform and surround herself in a shield making her invulerable.
+ // Phase 2 begins when Vashj hits 70%. She will run to the middle of her platform and surround herself in a shield making her invulerable.
Phase = 2;
me->GetMotionMaster()->Clear();
DoTeleportTo(MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
- Creature* creature;
for (uint8 i = 0; i < 4; ++i)
- {
- creature = me->SummonCreature(SHIED_GENERATOR_CHANNEL, ShieldGeneratorChannelPos[i][0], ShieldGeneratorChannelPos[i][1], ShieldGeneratorChannelPos[i][2], ShieldGeneratorChannelPos[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0);
- if (creature)
+ if (Creature* creature = me->SummonCreature(SHIED_GENERATOR_CHANNEL, ShieldGeneratorChannelPos[i][0], ShieldGeneratorChannelPos[i][1], ShieldGeneratorChannelPos[i][2], ShieldGeneratorChannelPos[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0))
ShieldGeneratorChannel[i] = creature->GetGUID();
- }
+
DoScriptText(SAY_PHASE2, me);
}
}
- //Phase 3
+ // Phase 3
else
{
- //SummonSporebat_Timer
- if (SummonSporebat_Timer <= diff)
+ // SummonSporebatTimer
+ if (SummonSporebatTimer <= diff)
{
- Creature* Sporebat = NULL;
- Sporebat = me->SummonCreature(TOXIC_SPOREBAT, SPOREBAT_X, SPOREBAT_Y, SPOREBAT_Z, SPOREBAT_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ if (Creature* sporebat = me->SummonCreature(TOXIC_SPOREBAT, SPOREBAT_X, SPOREBAT_Y, SPOREBAT_Z, SPOREBAT_O, TEMPSUMMON_CORPSE_DESPAWN, 0))
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ sporebat->AI()->AttackStart(target);
- if (Sporebat)
- {
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target)
- Sporebat->AI()->AttackStart(target);
- }
+ // summon sporebats faster and faster
+ if (SummonSporebatStaticTimer > 1000)
+ SummonSporebatStaticTimer -= 1000;
- //summon sporebats faster and faster
- if (SummonSporebat_StaticTimer > 1000)
- SummonSporebat_StaticTimer -= 1000;
+ SummonSporebatTimer = SummonSporebatStaticTimer;
- SummonSporebat_Timer = SummonSporebat_StaticTimer;
+ if (SummonSporebatTimer < 5000)
+ SummonSporebatTimer = 5000;
- if (SummonSporebat_Timer < 5000)
- SummonSporebat_Timer = 5000;
-
- } else SummonSporebat_Timer -= diff;
+ } else SummonSporebatTimer -= diff;
}
- //Melee attack
+ // Melee attack
DoMeleeAttackIfReady();
- //Check_Timer - used to check if somebody is in melee range
- if (Check_Timer <= diff)
+ // CheckTimer - used to check if somebody is in melee range
+ if (CheckTimer <= diff)
{
- bool InMeleeRange = false;
- Unit* target;
+ bool inMeleeRange = false;
std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
- target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
- //if in melee range
- if (target && target->IsWithinDistInMap(me, 5))
+ Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());
+ if (target && target->IsWithinDistInMap(me, 5)) // if in melee range
{
- InMeleeRange = true;
+ inMeleeRange = true;
break;
}
}
- //if nobody is in melee range
- if (!InMeleeRange)
+ // if nobody is in melee range
+ if (!inMeleeRange)
CastShootOrMultishot();
- Check_Timer = 5000;
- } else Check_Timer -= diff;
+ CheckTimer = 5000;
+ } else CheckTimer -= diff;
}
- //Phase 2
+ // Phase 2
else
{
- //ForkedLightning_Timer
- if (ForkedLightning_Timer <= diff)
+ // ForkedLightningTimer
+ if (ForkedLightningTimer <= diff)
{
- //Forked Lightning
- //Used constantly in Phase 2, it shoots out completely randomly targeted bolts of lightning which hit everybody in a roughtly 60 degree cone in front of Vashj for 2313-2687 nature damage.
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
+ // Forked Lightning
+ // Used constantly in Phase 2, it shoots out completely randomly targeted bolts of lightning which hit everybody in a roughtly 60 degree cone in front of Vashj for 2313-2687 nature damage.
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (!target)
target = me->getVictim();
DoCast(target, SPELL_FORKED_LIGHTNING);
- ForkedLightning_Timer = 2000+rand()%6000; //blizzlike
- } else ForkedLightning_Timer -= diff;
+ ForkedLightningTimer = 2000+rand()%6000;
+ } else ForkedLightningTimer -= diff;
- //EnchantedElemental_Timer
- if (EnchantedElemental_Timer <= diff)
+ // EnchantedElementalTimer
+ if (EnchantedElementalTimer <= diff)
{
- me->SummonCreature(ENCHANTED_ELEMENTAL, ElementPos[EnchantedElemental_Pos][0], ElementPos[EnchantedElemental_Pos][1], ElementPos[EnchantedElemental_Pos][2], ElementPos[EnchantedElemental_Pos][3], TEMPSUMMON_CORPSE_DESPAWN, 0);
+ me->SummonCreature(ENCHANTED_ELEMENTAL, ElementPos[EnchantedElementalPos][0], ElementPos[EnchantedElementalPos][1], ElementPos[EnchantedElementalPos][2], ElementPos[EnchantedElementalPos][3], TEMPSUMMON_CORPSE_DESPAWN, 0);
- if (EnchantedElemental_Pos == 7)
- EnchantedElemental_Pos = 0;
+ if (EnchantedElementalPos == 7)
+ EnchantedElementalPos = 0;
else
- ++EnchantedElemental_Pos;
+ ++EnchantedElementalPos;
- EnchantedElemental_Timer = 10000+rand()%5000;
- } else EnchantedElemental_Timer -= diff;
+ EnchantedElementalTimer = 10000+rand()%5000;
+ } else EnchantedElementalTimer -= diff;
- //TaintedElemental_Timer
- if (TaintedElemental_Timer <= diff)
+ // TaintedElementalTimer
+ if (TaintedElementalTimer <= diff)
{
uint32 pos = rand()%8;
me->SummonCreature(TAINTED_ELEMENTAL, ElementPos[pos][0], ElementPos[pos][1], ElementPos[pos][2], ElementPos[pos][3], TEMPSUMMON_DEAD_DESPAWN, 0);
- TaintedElemental_Timer = 120000;
- } else TaintedElemental_Timer -= diff;
+ TaintedElementalTimer = 120000;
+ } else TaintedElementalTimer -= diff;
- //CoilfangElite_Timer
- if (CoilfangElite_Timer <= diff)
+ // CoilfangEliteTimer
+ if (CoilfangEliteTimer <= diff)
{
uint32 pos = rand()%3;
- Creature* CoilfangElite = NULL;
- CoilfangElite = me->SummonCreature(COILFANG_ELITE, CoilfangElitePos[pos][0], CoilfangElitePos[pos][1], CoilfangElitePos[pos][2], CoilfangElitePos[pos][3], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- if (CoilfangElite)
+ Creature* coilfangElite = me->SummonCreature(COILFANG_ELITE, CoilfangElitePos[pos][0], CoilfangElitePos[pos][1], CoilfangElitePos[pos][2], CoilfangElitePos[pos][3], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ if (coilfangElite)
{
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target)
- CoilfangElite->AI()->AttackStart(target);
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ coilfangElite->AI()->AttackStart(target);
else if (me->getVictim())
- CoilfangElite->AI()->AttackStart(me->getVictim());
+ coilfangElite->AI()->AttackStart(me->getVictim());
}
- CoilfangElite_Timer = 45000+rand()%5000;
- } else CoilfangElite_Timer -= diff;
+ CoilfangEliteTimer = 45000+rand()%5000;
+ } else CoilfangEliteTimer -= diff;
- //CoilfangStrider_Timer
- if (CoilfangStrider_Timer <= diff)
+ // CoilfangStriderTimer
+ if (CoilfangStriderTimer <= diff)
{
uint32 pos = rand()%3;
- Creature* CoilfangStrider = NULL;
- CoilfangStrider = me->SummonCreature(COILFANG_STRIDER, CoilfangStriderPos[pos][0], CoilfangStriderPos[pos][1], CoilfangStriderPos[pos][2], CoilfangStriderPos[pos][3], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- if (CoilfangStrider)
+ if (Creature* CoilfangStrider = me->SummonCreature(COILFANG_STRIDER, CoilfangStriderPos[pos][0], CoilfangStriderPos[pos][1], CoilfangStriderPos[pos][2], CoilfangStriderPos[pos][3], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
{
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target)
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
CoilfangStrider->AI()->AttackStart(target);
else if (me->getVictim())
CoilfangStrider->AI()->AttackStart(me->getVictim());
}
- CoilfangStrider_Timer = 60000+rand()%10000;
- } else CoilfangStrider_Timer -= diff;
+ CoilfangStriderTimer = 60000+rand()%10000;
+ } else CoilfangStriderTimer -= diff;
- //Check_Timer
- if (Check_Timer <= diff)
+ // CheckTimer
+ if (CheckTimer <= diff)
{
- //Start Phase 3
+ // Start Phase 3
if (instance && instance->GetData(DATA_CANSTARTPHASE3))
{
- //set life 50%
+ // set life 50%
me->SetHealth(me->CountPctFromMaxHealth(50));
me->RemoveAurasDueToSpell(SPELL_MAGIC_BARRIER);
@@ -562,19 +528,19 @@ public:
Phase = 3;
- //return to the tank
+ // return to the tank
me->GetMotionMaster()->MoveChase(me->getVictim());
}
- Check_Timer = 1000;
- } else Check_Timer -= diff;
+ CheckTimer = 1000;
+ } else CheckTimer -= diff;
}
}
};
};
-//Enchanted Elemental
-//If one of them reaches Vashj he will increase her damage done by 5%.
+// Enchanted Elemental
+// If one of them reaches Vashj he will increase her damage done by 5%.
class mob_enchanted_elemental : public CreatureScript
{
public:
@@ -587,45 +553,42 @@ public:
struct mob_enchanted_elementalAI : public ScriptedAI
{
- mob_enchanted_elementalAI(Creature* c) : ScriptedAI(c)
+ mob_enchanted_elementalAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- uint32 move;
- uint32 phase;
- float x, y, z;
+ uint32 Move;
+ uint32 Phase;
+ float X, Y, Z;
uint64 VashjGUID;
void Reset()
{
- me->SetSpeed(MOVE_WALK, 0.6f);//walk
- me->SetSpeed(MOVE_RUN, 0.6f);//run
- move = 0;
- phase = 1;
+ me->SetSpeed(MOVE_WALK, 0.6f); // walk
+ me->SetSpeed(MOVE_RUN, 0.6f); // run
+ Move = 0;
+ Phase = 1;
VashjGUID = 0;
- for (int i = 0; i<8; ++i)//search for nearest waypoint (up on stairs)
+ X = ElementWPPos[0][0];
+ Y = ElementWPPos[0][1];
+ Z = ElementWPPos[0][2];
+
+ //search for nearest waypoint (up on stairs)
+ for (uint32 i = 1; i < 8; ++i)
{
- if (!x || !y || !z)
+ if (me->GetDistance(ElementWPPos[i][0], ElementWPPos[i][1], ElementWPPos[i][2]) < me->GetDistance(X, Y, Z))
{
- x = ElementWPPos[i][0];
- y = ElementWPPos[i][1];
- z = ElementWPPos[i][2];
- }
- else
- {
- if (me->GetDistance(ElementWPPos[i][0], ElementWPPos[i][1], ElementWPPos[i][2]) < me->GetDistance(x, y, z))
- {
- x = ElementWPPos[i][0];
- y = ElementWPPos[i][1];
- z = ElementWPPos[i][2];
- }
+ X = ElementWPPos[i][0];
+ Y = ElementWPPos[i][1];
+ Z = ElementWPPos[i][2];
}
}
+
if (instance)
VashjGUID = instance->GetData64(DATA_LADYVASHJ);
}
@@ -642,41 +605,36 @@ public:
if (!VashjGUID)
return;
- if (move <= diff)
+ if (Move <= diff)
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
- if (phase == 1)
- me->GetMotionMaster()->MovePoint(0, x, y, z);
- if (phase == 1 && me->IsWithinDist3d(x, y, z, 0.1f))
- phase = 2;
- if (phase == 2)
+ me->SetWalk(true);
+ if (Phase == 1)
+ me->GetMotionMaster()->MovePoint(0, X, Y, Z);
+ if (Phase == 1 && me->IsWithinDist3d(X, Y, Z, 0.1f))
+ Phase = 2;
+ if (Phase == 2)
{
me->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
- phase = 3;
+ Phase = 3;
}
- if (phase == 3)
+ if (Phase == 3)
{
me->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
if (me->IsWithinDist3d(MIDDLE_X, MIDDLE_Y, MIDDLE_Z, 3))
DoCast(me, SPELL_SURGE);
}
- if (Creature* Vashj = Unit::GetCreature(*me, VashjGUID))
- {
- if (!Vashj->isInCombat() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->AI())->Phase != 2 || Vashj->isDead())
- {
- //call Unsummon()
+ if (Creature* vashj = Unit::GetCreature(*me, VashjGUID))
+ if (!vashj->isInCombat() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase != 2 || vashj->isDead())
me->Kill(me);
- }
- }
- move = 1000;
- } else move -= diff;
+ Move = 1000;
+ } else Move -= diff;
}
};
};
-//Tainted Elemental
-//This mob has 7, 900 life, doesn't move, and shoots Poison Bolts at one person anywhere in the area, doing 3, 000 nature damage and placing a posion doing 2, 000 damage every 2 seconds. He will switch targets often, or sometimes just hang on a single player, but there is nothing you can do about it except heal the damage and kill the Tainted Elemental
+// Tainted Elemental
+// This mob has 7, 900 life, doesn't move, and shoots Poison Bolts at one person anywhere in the area, doing 3, 000 nature damage and placing a posion doing 2, 000 damage every 2 seconds. He will switch targets often, or sometimes just hang on a single player, but there is nothing you can do about it except heal the damage and kill the Tainted Elemental
class mob_tainted_elemental : public CreatureScript
{
public:
@@ -689,32 +647,27 @@ public:
struct mob_tainted_elementalAI : public ScriptedAI
{
- mob_tainted_elementalAI(Creature* c) : ScriptedAI(c)
+ mob_tainted_elementalAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- uint32 PoisonBolt_Timer;
- uint32 Despawn_Timer;
+ uint32 PoisonBoltTimer;
+ uint32 DespawnTimer;
void Reset()
{
- PoisonBolt_Timer = 5000+rand()%5000;
- Despawn_Timer = 30000;
+ PoisonBoltTimer = 5000+rand()%5000;
+ DespawnTimer = 30000;
}
void JustDied(Unit* /*killer*/)
{
if (instance)
- {
- Creature* Vashj = NULL;
- Vashj = (Unit::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ)));
-
- if (Vashj)
- CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->AI())->EventTaintedElementalDeath();
- }
+ if (Creature* vashj = Unit::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ)))
+ CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->EventTaintedElementalDeath();
}
void EnterCombat(Unit* who)
@@ -724,27 +677,26 @@ public:
void UpdateAI(const uint32 diff)
{
- //PoisonBolt_Timer
- if (PoisonBolt_Timer <= diff)
+ // PoisonBoltTimer
+ if (PoisonBoltTimer <= diff)
{
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (target && target->IsWithinDistInMap(me, 30))
DoCast(target, SPELL_POISON_BOLT);
- PoisonBolt_Timer = 5000+rand()%5000;
- } else PoisonBolt_Timer -= diff;
+ PoisonBoltTimer = 5000+rand()%5000;
+ } else PoisonBoltTimer -= diff;
- //Despawn_Timer
- if (Despawn_Timer <= diff)
+ // DespawnTimer
+ if (DespawnTimer <= diff)
{
- //call Unsummon()
+ // call Unsummon()
me->setDeathState(DEAD);
- //to prevent crashes
- Despawn_Timer = 1000;
- } else Despawn_Timer -= diff;
+ // to prevent crashes
+ DespawnTimer = 1000;
+ } else DespawnTimer -= diff;
}
};
@@ -764,37 +716,31 @@ public:
struct mob_toxic_sporebatAI : public ScriptedAI
{
- mob_toxic_sporebatAI(Creature* c) : ScriptedAI(c)
+ mob_toxic_sporebatAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
EnterEvadeMode();
}
InstanceScript* instance;
- uint32 movement_timer;
- uint32 ToxicSpore_Timer;
- uint32 bolt_timer;
- uint32 Check_Timer;
+ uint32 MovementTimer;
+ uint32 ToxicSporeTimer;
+ uint32 BoltTimer;
+ uint32 CheckTimer;
void Reset()
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->setFaction(14);
- movement_timer = 0;
- ToxicSpore_Timer = 5000;
- bolt_timer = 5500;
- Check_Timer = 1000;
- }
-
- void EnterCombat(Unit* /*who*/)
- {
-
+ MovementTimer = 0;
+ ToxicSporeTimer = 5000;
+ BoltTimer = 5500;
+ CheckTimer = 1000;
}
void MoveInLineOfSight(Unit* /*who*/)
{
-
}
void MovementInform(uint32 type, uint32 id)
@@ -803,113 +749,57 @@ public:
return;
if (id == 1)
- movement_timer = 0;
+ MovementTimer = 0;
}
void UpdateAI (const uint32 diff)
{
- //Random movement
- if (movement_timer <= diff)
+ // Random movement
+ if (MovementTimer <= diff)
{
uint32 rndpos = rand()%8;
me->GetMotionMaster()->MovePoint(1, SporebatWPPos[rndpos][0], SporebatWPPos[rndpos][1], SporebatWPPos[rndpos][2]);
- movement_timer = 6000;
- } else movement_timer -= diff;
+ MovementTimer = 6000;
+ } else MovementTimer -= diff;
- //toxic spores
- if (bolt_timer <= diff)
+ // toxic spores
+ if (BoltTimer <= diff)
{
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- if (target)
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- Creature* trig = me->SummonCreature(TOXIC_SPORES_TRIGGER, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000);
- if (trig)
+ if (Creature* trig = me->SummonCreature(TOXIC_SPORES_TRIGGER, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000))
{
trig->setFaction(14);
trig->CastSpell(trig, SPELL_TOXIC_SPORES, true);
}
}
- bolt_timer = 10000+rand()%5000;
+ BoltTimer = 10000+rand()%5000;
}
- else bolt_timer -= diff;
+ else BoltTimer -= diff;
- //Check_Timer
- if (Check_Timer <= diff)
+ // CheckTimer
+ if (CheckTimer <= diff)
{
if (instance)
{
- //check if vashj is death
- Unit* Vashj = NULL;
- Vashj = Unit::GetUnit((*me), instance->GetData64(DATA_LADYVASHJ));
+ // check if vashj is death
+ Unit* Vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));
if (!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && CAST_AI(boss_lady_vashj::boss_lady_vashjAI, CAST_CRE(Vashj)->AI())->Phase != 3))
{
- //remove
+ // remove
me->setDeathState(DEAD);
me->RemoveCorpse();
me->setFaction(35);
}
}
- Check_Timer = 1000;
- } else Check_Timer -= diff;
+ CheckTimer = 1000;
+ } else CheckTimer -= diff;
}
};
};
-//Coilfang Elite
-//It's an elite Naga mob with 170, 000 HP. It does about 5000 damage on plate, and has a nasty cleave hitting for about 7500 damage
-class mob_coilfang_elite : public CreatureScript
-{
-public:
- mob_coilfang_elite() : CreatureScript("mob_coilfang_elite") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- SimpleAI* ai = new SimpleAI (creature);
-
- ai->Spell[0].Enabled = true;
- ai->Spell[0].Spell_Id = 31345; //Cleave
- ai->Spell[0].Cooldown = 15000;
- ai->Spell[0].CooldownRandomAddition = 5000;
- ai->Spell[0].First_Cast = 5000;
- ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_RANDOM;
-
- ai->EnterEvadeMode();
-
- return ai;
- }
-
-};
-
-//Coilfang Strider
-//It hits plate for about 8000 damage, has a Mind Blast spell doing about 3000 shadow damage, and a Psychic Scream Aura, which fears everybody in a 8 yard range of it every 2-3 seconds, for 5 seconds and increasing their movement speed by 150% during the fear.
-class mob_coilfang_strider : public CreatureScript
-{
-public:
- mob_coilfang_strider() : CreatureScript("mob_coilfang_strider") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- SimpleAI* ai = new SimpleAI (creature);
-
- ai->Spell[0].Enabled = true;
- ai->Spell[0].Spell_Id = 41374; //Mind Blast
- ai->Spell[0].Cooldown = 30000;
- ai->Spell[0].CooldownRandomAddition = 10000;
- ai->Spell[0].First_Cast = 8000;
- ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- //Scream aura not implemented
-
- ai->EnterEvadeMode();
-
- return ai;
- }
-
-};
-
class mob_shield_generator_channel : public CreatureScript
{
public:
@@ -922,25 +812,24 @@ public:
struct mob_shield_generator_channelAI : public ScriptedAI
{
- mob_shield_generator_channelAI(Creature* c) : ScriptedAI(c)
+ mob_shield_generator_channelAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- uint32 Check_Timer;
+ uint32 CheckTimer;
bool Casted;
+
void Reset()
{
- Check_Timer = 0;
+ CheckTimer = 0;
Casted = false;
- me->SetDisplayId(11686); //invisible
+ me->SetDisplayId(11686); // invisible
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
- void EnterCombat(Unit* /*who*/) {}
-
void MoveInLineOfSight(Unit* /*who*/) {}
void UpdateAI (const uint32 diff)
@@ -948,22 +837,21 @@ public:
if (!instance)
return;
- if (Check_Timer <= diff)
+ if (CheckTimer <= diff)
{
- Unit* Vashj = NULL;
- Vashj = Unit::GetUnit((*me), instance->GetData64(DATA_LADYVASHJ));
+ Unit* vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));
- if (Vashj && Vashj->isAlive())
+ if (vashj && vashj->isAlive())
{
- //start visual channel
- if (!Casted || !Vashj->HasAura(SPELL_MAGIC_BARRIER))
+ // start visual channel
+ if (!Casted || !vashj->HasAura(SPELL_MAGIC_BARRIER))
{
- DoCast(Vashj, SPELL_MAGIC_BARRIER, true);
+ DoCast(vashj, SPELL_MAGIC_BARRIER, true);
Casted = true;
}
}
- Check_Timer = 1000;
- } else Check_Timer -= diff;
+ CheckTimer = 1000;
+ } else CheckTimer -= diff;
}
};
@@ -974,41 +862,39 @@ class item_tainted_core : public ItemScript
public:
item_tainted_core() : ItemScript("item_tainted_core") { }
- bool OnUse(Player* player, Item* /*_Item*/, SpellCastTargets const& targets)
+ bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& targets)
{
InstanceScript* instance = player->GetInstanceScript();
-
if (!instance)
{
player->GetSession()->SendNotification(TEXT_NOT_INITIALIZED);
return true;
}
- Creature* Vashj = NULL;
- Vashj = (Unit::GetCreature((*player), instance->GetData64(DATA_LADYVASHJ)));
- if (Vashj && (CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->AI())->Phase == 2))
+ Creature* vashj = Unit::GetCreature((*player), instance->GetData64(DATA_LADYVASHJ));
+ if (vashj && (CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase == 2))
{
if (GameObject* gObj = targets.GetGOTarget())
{
uint32 identifier;
- uint8 channel_identifier;
+ uint8 channelIdentifier;
switch (gObj->GetEntry())
{
case 185052:
identifier = DATA_SHIELDGENERATOR1;
- channel_identifier = 0;
+ channelIdentifier = 0;
break;
case 185053:
identifier = DATA_SHIELDGENERATOR2;
- channel_identifier = 1;
+ channelIdentifier = 1;
break;
case 185051:
identifier = DATA_SHIELDGENERATOR3;
- channel_identifier = 2;
+ channelIdentifier = 2;
break;
case 185054:
identifier = DATA_SHIELDGENERATOR4;
- channel_identifier = 3;
+ channelIdentifier = 3;
break;
default:
return true;
@@ -1020,18 +906,13 @@ public:
return true;
}
- //get and remove channel
- Unit* Channel = NULL;
- Channel = Unit::GetCreature(*Vashj, CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->AI())->ShieldGeneratorChannel[channel_identifier]);
- if (Channel)
- {
- //call Unsummon()
- Channel->setDeathState(JUST_DIED);
- }
+ // get and remove channel
+ if (Unit* channel = Unit::GetCreature(*vashj, CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->ShieldGeneratorChannel[channelIdentifier]))
+ channel->setDeathState(JUST_DIED); // call Unsummon()
instance->SetData(identifier, 1);
- //remove this item
+ // remove this item
player->DestroyItemCount(31088, 1, true);
return true;
}
@@ -1055,8 +936,6 @@ void AddSC_boss_lady_vashj()
new mob_enchanted_elemental();
new mob_tainted_elemental();
new mob_toxic_sporebat();
- new mob_coilfang_elite();
- new mob_coilfang_strider();
new mob_shield_generator_channel();
new item_tainted_core();
}
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 5111a8eaa8e..4876410890c 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
@@ -53,6 +53,7 @@ EndScriptData */
#define MODEL_NIGHTELF 20514
#define DEMON_FORM 21875
#define MOB_SPELLBINDER 21806
+#define INNER_DEMON_VICTIM 1
#define SAY_AGGRO -1548009
#define SAY_SWITCH_TO_DEMON -1548010
@@ -79,7 +80,7 @@ public:
struct mob_inner_demonAI : public ScriptedAI
{
- mob_inner_demonAI(Creature* c) : ScriptedAI(c)
+ mob_inner_demonAI(Creature* creature) : ScriptedAI(creature)
{
victimGUID = 0;
}
@@ -94,9 +95,23 @@ public:
ShadowBolt_Timer = 10000;
Link_Timer = 1000;
}
- void JustDied(Unit* /*victim*/)
+
+ void SetGUID(uint64 guid, int32 id/* = 0 */)
+ {
+ if (id == INNER_DEMON_VICTIM)
+ victimGUID = guid;
+ }
+
+ uint64 GetGUID(int32 id/* = 0 */)
{
- Unit* unit = Unit::GetUnit((*me), victimGUID);
+ if (id == INNER_DEMON_VICTIM)
+ return victimGUID;
+ return 0;
+ }
+
+ void JustDied(Unit* /*killer*/)
+ {
+ Unit* unit = Unit::GetUnit(*me, victimGUID);
if (unit && unit->HasAura(SPELL_INSIDIOUS_WHISPER))
unit->RemoveAurasDueToSpell(SPELL_INSIDIOUS_WHISPER);
}
@@ -112,7 +127,8 @@ public:
void EnterCombat(Unit* /*who*/)
{
- if (!victimGUID) return;
+ if (!victimGUID)
+ return;
}
void UpdateAI(const uint32 diff)
@@ -124,7 +140,7 @@ public:
if (me->getVictim()->GetGUID() != victimGUID)
{
DoModifyThreatPercent(me->getVictim(), -100);
- Unit* owner = Unit::GetUnit((*me), victimGUID);
+ Unit* owner = Unit::GetUnit(*me, victimGUID);
if (owner && owner->isAlive())
{
me->AddThreat(owner, 999999);
@@ -170,10 +186,10 @@ public:
struct boss_leotheras_the_blindAI : public ScriptedAI
{
- boss_leotheras_the_blindAI(Creature* c) : ScriptedAI(c)
+ boss_leotheras_the_blindAI(Creature* creature) : ScriptedAI(creature)
{
- c->GetPosition(x, y, z);
- instance = c->GetInstanceScript();
+ creature->GetPosition(x, y, z);
+ instance = creature->GetInstanceScript();
Demon = 0;
for (uint8 i = 0; i < 3; ++i)//clear guids
@@ -218,6 +234,7 @@ public:
IsFinalForm = false;
NeedThreatReset = false;
EnrageUsed = false;
+ memset(InnderDemon, 0, sizeof(InnderDemon));
InnerDemon_Count = 0;
me->SetSpeed(MOVE_RUN, 2.0f, true);
me->SetDisplayId(MODEL_NIGHTELF);
@@ -356,7 +373,7 @@ public:
Creature* unit = Unit::GetCreature((*me), InnderDemon[i]);
if (unit && unit->isAlive())
{
- Unit* unit_target = Unit::GetUnit(*unit, CAST_AI(mob_inner_demon::mob_inner_demonAI, unit->AI())->victimGUID);
+ Unit* unit_target = Unit::GetUnit(*unit, unit->AI()->GetGUID(INNER_DEMON_VICTIM));
if (unit_target && unit_target->isAlive())
{
unit->CastSpell(unit_target, SPELL_CONSUMING_MADNESS, true);
@@ -382,7 +399,7 @@ public:
}
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -524,7 +541,7 @@ public:
if (demon)
{
demon->AI()->AttackStart((*itr));
- CAST_AI(mob_inner_demon::mob_inner_demonAI, demon->AI())->victimGUID = (*itr)->GetGUID();
+ demon->AI()->SetGUID((*itr)->GetGUID(), INNER_DEMON_VICTIM);
(*itr)->AddAura(SPELL_INSIDIOUS_WHISPER, *itr);
@@ -600,7 +617,7 @@ public:
struct boss_leotheras_the_blind_demonformAI : public ScriptedAI
{
- boss_leotheras_the_blind_demonformAI(Creature* c) : ScriptedAI(c) {}
+ boss_leotheras_the_blind_demonformAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ChaosBlast_Timer;
bool DealDamage;
@@ -624,7 +641,7 @@ public:
DoScriptText(RAND(SAY_DEMON_SLAY1, SAY_DEMON_SLAY2, SAY_DEMON_SLAY3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
//invisibility (blizzlike, at the end of the fight he doesn't die, he disappears)
DoCast(me, 8149, true);
@@ -673,9 +690,9 @@ public:
struct mob_greyheart_spellbinderAI : public ScriptedAI
{
- mob_greyheart_spellbinderAI(Creature* c) : ScriptedAI(c)
+ mob_greyheart_spellbinderAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
leotherasGUID = 0;
AddedBanish = false;
}
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 0ed9d8e7833..00de1802bc9 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -25,7 +25,6 @@ EndScriptData */
#include "ScriptPCH.h"
#include "serpent_shrine.h"
-#include "ScriptedSimpleAI.h"
#include "Spell.h"
#define SPELL_SPOUT 37433
@@ -55,15 +54,16 @@ EndScriptData */
float AddPos[9][3] =
{
- {2.8553810f, -459.823914f, -19.182686f}, //MOVE_AMBUSHER_1 X, Y, Z
- {12.400000f, -466.042267f, -19.182686f}, //MOVE_AMBUSHER_2 X, Y, Z
- {51.366653f, -460.836060f, -19.182686f}, //MOVE_AMBUSHER_3 X, Y, Z
- {62.597980f, -457.433044f, -19.182686f}, //MOVE_AMBUSHER_4 X, Y, Z
- {77.607452f, -384.302765f, -19.182686f}, //MOVE_AMBUSHER_5 X, Y, Z
- {63.897900f, -378.984924f, -19.182686f}, //MOVE_AMBUSHER_6 X, Y, Z
- {34.447250f, -387.333618f, -19.182686f}, //MOVE_GUARDIAN_1 X, Y, Z
- {14.388216f, -423.468018f, -19.625271f}, //MOVE_GUARDIAN_2 X, Y, Z
- {42.471519f, -445.115295f, -19.769423f} //MOVE_GUARDIAN_3 X, Y, Z
+ // MOVE_AMBUSHER_1 X, Y, Z
+ {2.8553810f, -459.823914f, -19.182686f},
+ {12.400000f, -466.042267f, -19.182686f},
+ {51.366653f, -460.836060f, -19.182686f},
+ {62.597980f, -457.433044f, -19.182686f},
+ {77.607452f, -384.302765f, -19.182686f},
+ {63.897900f, -378.984924f, -19.182686f},
+ {34.447250f, -387.333618f, -19.182686f},
+ {14.388216f, -423.468018f, -19.625271f},
+ {42.471519f, -445.115295f, -19.769423f}
};
class boss_the_lurker_below : public CreatureScript
@@ -78,9 +78,9 @@ public:
struct boss_the_lurker_belowAI : public Scripted_NoMovementAI
{
- boss_the_lurker_belowAI(Creature* c) : Scripted_NoMovementAI(c), Summons(me)
+ boss_the_lurker_belowAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -109,19 +109,19 @@ public:
}
void Reset()
{
- me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_LEVITATING);
+ me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
SpoutAnimTimer = 1000;
RotTimer = 0;
- WaterboltTimer = 15000;//give time to get in range when fight starts
+ WaterboltTimer = 15000; // give time to get in range when fight starts
SpoutTimer = 45000;
- WhirlTimer = 18000;//after avery spout
+ WhirlTimer = 18000; // after avery spout
PhaseTimer = 120000;
GeyserTimer = rand()%5000 + 15000;
- CheckTimer = 15000;//give time to get in range when fight starts
- WaitTimer = 60000;//never reached
- WaitTimer2 = 60000;//never reached
+ CheckTimer = 15000; // give time to get in range when fight starts
+ WaitTimer = 60000; // never reached
+ WaitTimer2 = 60000; // never reached
- Submerged = true;//will be false at combat start
+ Submerged = true; // will be false at combat start
Spawned = false;
InRange = false;
CanStartEvent = false;
@@ -133,13 +133,13 @@ public:
instance->SetData(DATA_THELURKERBELOWEVENT, NOT_STARTED);
instance->SetData(DATA_STRANGE_POOL, NOT_STARTED);
}
- DoCast(me, SPELL_SUBMERGE);//submerge anim
- me->SetVisible(false);//we start invis under water, submerged
+ DoCast(me, SPELL_SUBMERGE); // submerge anim
+ me->SetVisible(false); // we start invis under water, submerged
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -159,15 +159,13 @@ public:
void MoveInLineOfSight(Unit* who)
{
- if (!CanStartEvent)//boss is invisible, don't attack
+ if (!CanStartEvent) // boss is invisible, don't attack
return;
if (!me->getVictim() && who->IsValidAttackTarget(me))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius))
- {
AttackStart(who);
- }
}
}
@@ -179,7 +177,7 @@ public:
void UpdateAI(const uint32 diff)
{
- if (!CanStartEvent)//boss is invisible, don't attack
+ if (!CanStartEvent) // boss is invisible, don't attack
{
if (CheckCanStart())
{
@@ -190,21 +188,21 @@ public:
WaitTimer2 = 500;
}
- if (!Submerged && WaitTimer2 <= diff)//wait 500ms before emerge anim
+ if (!Submerged && WaitTimer2 <= diff) // wait 500ms before emerge anim
{
me->RemoveAllAuras();
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
DoCast(me, SPELL_EMERGE, false);
- WaitTimer2 = 60000;//never reached
+ WaitTimer2 = 60000; // never reached
WaitTimer = 3000;
}
else
WaitTimer2 -= diff;
- if (WaitTimer <= diff)//wait 3secs for emerge anim, then attack
+ if (WaitTimer <= diff) // wait 3secs for emerge anim, then attack
{
WaitTimer = 3000;
- CanStartEvent = true;//fresh fished from pool
+ CanStartEvent = true; // fresh fished from pool
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
@@ -214,7 +212,7 @@ public:
return;
}
- if (me->getThreatManager().getThreatList().empty())//check if should evade
+ if (me->getThreatManager().getThreatList().empty()) // check if should evade
{
if (me->isInCombat())
EnterEvadeMode();
@@ -226,7 +224,7 @@ public:
{
me->InterruptNonMeleeSpells(false);
DoCast(me, SPELL_SUBMERGE);
- PhaseTimer = 60000;//60secs submerged
+ PhaseTimer = 60000; // 60secs submerged
Submerged = true;
} else PhaseTimer-=diff;
@@ -236,12 +234,12 @@ public:
me->SetReactState(REACT_PASSIVE);
me->GetMotionMaster()->MoveRotate(20000, urand(0, 1) ? ROTATE_DIRECTION_LEFT : ROTATE_DIRECTION_RIGHT);
SpoutTimer = 45000;
- WhirlTimer = 20000;//whirl directly after spout
+ WhirlTimer = 20000; // whirl directly after spout
RotTimer = 20000;
return;
} else SpoutTimer -= diff;
- //Whirl directly after a Spout and at random times
+ // Whirl directly after a Spout and at random times
if (WhirlTimer <= diff)
{
WhirlTimer = 18000;
@@ -273,7 +271,7 @@ public:
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
if (i->getSource() && i->getSource()->isAlive() && me->HasInArc(float(diff/20000*M_PI*2), i->getSource()) && me->IsWithinDist(i->getSource(), SPOUT_DIST) && !i->getSource()->IsInWater())
- DoCast(i->getSource(), SPELL_SPOUT, true);//only knock back palyers in arc, in 100yards, not in water
+ DoCast(i->getSource(), SPELL_SPOUT, true); // only knock back players in arc, in 100yards, not in water
}
}
@@ -300,7 +298,7 @@ public:
GeyserTimer = rand()%5000 + 15000;
} else GeyserTimer -= diff;
- if (!InRange)//if on players in melee range cast Waterbolt
+ if (!InRange) // if on players in melee range cast Waterbolt
{
if (WaterboltTimer <= diff)
{
@@ -318,12 +316,13 @@ public:
DoMeleeAttackIfReady();
- }else//submerged
+ }
+ else // submerged
{
if (PhaseTimer <= diff)
{
Submerged = false;
- me->InterruptNonMeleeSpells(false);//shouldn't be any
+ me->InterruptNonMeleeSpells(false); // shouldn't be any
me->RemoveAllAuras();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
me->RemoveFlag(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SUBMERGED);
@@ -334,28 +333,22 @@ public:
return;
} else PhaseTimer-=diff;
- if (me->getThreatManager().getThreatList().empty())//check if should evade
+ if (me->getThreatManager().getThreatList().empty()) // check if should evade
{
EnterEvadeMode();
return;
}
+
if (!me->isInCombat())
DoZoneInCombat();
if (!Spawned)
{
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
- //spawn adds
+ // spawn adds
for (uint8 i = 0; i < 9; ++i)
- {
- Creature* Summoned;
- if (i < 6)
- Summoned = me->SummonCreature(MOB_COILFANG_AMBUSHER, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
- else Summoned = me->SummonCreature(MOB_COILFANG_GUARDIAN, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
-
- if (Summoned)
- Summons.Summon(Summoned);
- }
+ if (Creature* summoned = me->SummonCreature(i < 6 ? MOB_COILFANG_AMBUSHER : MOB_COILFANG_GUARDIAN, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN, 0))
+ Summons.Summon(summoned);
Spawned = true;
}
}
@@ -363,32 +356,6 @@ public:
};
};
-class mob_coilfang_guardian : public CreatureScript
-{
-public:
- mob_coilfang_guardian() : CreatureScript("mob_coilfang_guardian") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- SimpleAI* ai = new SimpleAI (creature);
-
- ai->Spell[0].Enabled = true;
- ai->Spell[0].Spell_Id = SPELL_ARCINGSMASH;
- ai->Spell[0].Cooldown = 15000;
- ai->Spell[0].First_Cast = 5000;
- ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- ai->Spell[1].Enabled = true;
- ai->Spell[1].Spell_Id = SPELL_HAMSTRING;
- ai->Spell[1].Cooldown = 10000;
- ai->Spell[1].First_Cast = 2000;
- ai->Spell[1].Cast_Target_Type = CAST_HOSTILE_TARGET;
-
- return ai;
- }
-
-};
-
class mob_coilfang_ambusher : public CreatureScript
{
public:
@@ -401,7 +368,7 @@ public:
struct mob_coilfang_ambusherAI : public Scripted_NoMovementAI
{
- mob_coilfang_ambusherAI(Creature* c) : Scripted_NoMovementAI(c)
+ mob_coilfang_ambusherAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
}
@@ -412,22 +379,15 @@ public:
{
MultiShotTimer = 10000;
ShootBowTimer = 4000;
-
- }
-
- void EnterCombat(Unit* /*who*/)
- {
-
}
void MoveInLineOfSight(Unit* who)
{
- if (!who || me->getVictim()) return;
+ if (!who || me->getVictim())
+ return;
if (who->isInAccessiblePlaceFor(me) && me->IsValidAttackTarget(who) && me->IsWithinDistInMap(who, 45))
- {
AttackStart(who);
- }
}
void UpdateAI(const uint32 diff)
@@ -438,18 +398,16 @@ public:
DoCast(me->getVictim(), SPELL_SPREAD_SHOT, true);
MultiShotTimer = 10000+rand()%10000;
- ShootBowTimer += 1500;//add global cooldown
+ ShootBowTimer += 1500; // add global cooldown
} else MultiShotTimer -= diff;
if (ShootBowTimer <= diff)
{
- Unit* target = NULL;
- target = SelectTarget(SELECT_TARGET_RANDOM, 0);
int bp0 = 1100;
- if (target)
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
me->CastCustomSpell(target, SPELL_SHOOT, &bp0, NULL, NULL, true);
ShootBowTimer = 4000+rand()%5000;
- MultiShotTimer += 1500;//add global cooldown
+ MultiShotTimer += 1500; // add global cooldown
} else ShootBowTimer -= diff;
}
};
@@ -482,7 +440,6 @@ class go_strange_pool : public GameObjectScript
void AddSC_boss_the_lurker_below()
{
new boss_the_lurker_below();
- new mob_coilfang_guardian();
new mob_coilfang_ambusher();
new go_strange_pool();
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
index eeef50e3f9c..865fb143800 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
@@ -89,9 +89,9 @@ public:
struct boss_morogrim_tidewalkerAI : public ScriptedAI
{
- boss_morogrim_tidewalkerAI(Creature* c) : ScriptedAI(c)
+ boss_morogrim_tidewalkerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -140,7 +140,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -296,7 +296,7 @@ public:
struct mob_water_globuleAI : public ScriptedAI
{
- mob_water_globuleAI(Creature* c) : ScriptedAI(c) {}
+ mob_water_globuleAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Check_Timer;
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 6c4019c7989..3ed3d1a82de 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp
@@ -153,7 +153,7 @@ class instance_serpent_shrine : public InstanceMapScript
if (Creature* frenzy = player->SummonCreature(MOB_COILFANG_FRENZY, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 2000))
{
frenzy->Attack(player, false);
- frenzy->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_LEVITATING);
+ frenzy->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
}
DoSpawnFrenzy = false;
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
index c3203621dbb..48c5a360619 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
@@ -58,9 +58,9 @@ public:
struct boss_thespiaAI : public ScriptedAI
{
- boss_thespiaAI(Creature* c) : ScriptedAI(c)
+ boss_thespiaAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -79,7 +79,7 @@ public:
instance->SetData(TYPE_HYDROMANCER_THESPIA, NOT_STARTED);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEAD, me);
@@ -158,7 +158,7 @@ public:
struct mob_coilfang_waterelementalAI : public ScriptedAI
{
- mob_coilfang_waterelementalAI(Creature* c) : ScriptedAI(c) {}
+ mob_coilfang_waterelementalAI(Creature* creature) : ScriptedAI(creature) {}
uint32 WaterBoltVolley_Timer;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
index ce73e467c0c..739168863f4 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
@@ -60,9 +60,9 @@ public:
struct boss_mekgineer_steamriggerAI : public ScriptedAI
{
- boss_mekgineer_steamriggerAI(Creature* c) : ScriptedAI(c)
+ boss_mekgineer_steamriggerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -88,7 +88,7 @@ public:
instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, NOT_STARTED);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -204,9 +204,9 @@ public:
struct mob_steamrigger_mechanicAI : public ScriptedAI
{
- mob_steamrigger_mechanicAI(Creature* c) : ScriptedAI(c)
+ mob_steamrigger_mechanicAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -231,7 +231,7 @@ public:
{
if (instance && instance->GetData64(DATA_MEKGINEERSTEAMRIGGER) && instance->GetData(TYPE_MEKGINEER_STEAMRIGGER) == IN_PROGRESS)
{
- if (Unit* pMekgineer = Unit::GetUnit((*me), instance->GetData64(DATA_MEKGINEERSTEAMRIGGER)))
+ if (Unit* pMekgineer = Unit::GetUnit(*me, instance->GetData64(DATA_MEKGINEERSTEAMRIGGER)))
{
if (me->IsWithinDistInMap(pMekgineer, MAX_REPAIR_RANGE))
{
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 bfbeff81d3e..cae1117805a 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
@@ -54,9 +54,9 @@ public:
struct mob_naga_distillerAI : public ScriptedAI
{
- mob_naga_distillerAI(Creature* c) : ScriptedAI(c)
+ mob_naga_distillerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -112,9 +112,9 @@ public:
struct boss_warlord_kalithreshAI : public ScriptedAI
{
- boss_warlord_kalithreshAI(Creature* c) : ScriptedAI(c)
+ boss_warlord_kalithreshAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -157,7 +157,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_WARLORDS_RAGE_PROC);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
index aebd71bbd47..42d617992ed 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_hungarfen.cpp
@@ -40,7 +40,7 @@ public:
struct boss_hungarfenAI : public ScriptedAI
{
- boss_hungarfenAI(Creature* c) : ScriptedAI(c)
+ boss_hungarfenAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -112,7 +112,7 @@ public:
struct mob_underbog_mushroomAI : public ScriptedAI
{
- mob_underbog_mushroomAI(Creature* c) : ScriptedAI(c) {}
+ mob_underbog_mushroomAI(Creature* creature) : ScriptedAI(creature) {}
bool Stop;
uint32 Grow_Timer;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp
index fb3be660b5e..f7079e5c664 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp
@@ -47,7 +47,7 @@ public:
struct boss_the_black_stalkerAI : public ScriptedAI
{
- boss_the_black_stalkerAI(Creature* c) : ScriptedAI(c)
+ boss_the_black_stalkerAI(Creature* creature) : ScriptedAI(creature)
{
}
@@ -88,7 +88,7 @@ public:
}
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
for (std::list<uint64>::const_iterator i = Striders.begin(); i != Striders.end(); ++i)
if (Creature* strider = Unit::GetCreature(*me, *i))
diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
index b7604c41794..0e654ade995 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
@@ -66,9 +66,9 @@ public:
struct boss_gruulAI : public ScriptedAI
{
- boss_gruulAI(Creature* c) : ScriptedAI(c)
+ boss_gruulAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
InstanceScript* instance;
@@ -109,7 +109,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -130,8 +130,13 @@ public:
{
switch (urand(0, 1))
{
- case 0: target->CastSpell(target, SPELL_MAGNETIC_PULL, true, NULL, NULL, me->GetGUID()); break;
- case 1: target->CastSpell(target, SPELL_KNOCK_BACK, true, NULL, NULL, me->GetGUID()); break;
+ case 0:
+ target->CastSpell(target, SPELL_MAGNETIC_PULL, true, NULL, NULL, me->GetGUID());
+ break;
+
+ case 1:
+ target->CastSpell(target, SPELL_KNOCK_BACK, true, NULL, NULL, me->GetGUID());
+ break;
}
}
}
diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
index 4636334e668..0f42b1b7e53 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
@@ -118,9 +118,9 @@ public:
struct boss_high_king_maulgarAI : public ScriptedAI
{
- boss_high_king_maulgarAI(Creature* c) : ScriptedAI(c)
+ boss_high_king_maulgarAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
for (uint8 i = 0; i < 4; ++i)
Council[i] = 0;
}
@@ -173,7 +173,7 @@ public:
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
@@ -223,7 +223,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_MAULGAREVENT_TANK));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
if (target)
{
@@ -317,9 +317,9 @@ public:
struct boss_olm_the_summonerAI : public ScriptedAI
{
- boss_olm_the_summonerAI(Creature* c) : ScriptedAI(c)
+ boss_olm_the_summonerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 DarkDecay_Timer;
@@ -363,7 +363,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -383,7 +383,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_MAULGAREVENT_TANK));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
if (target)
{
@@ -445,9 +445,9 @@ public:
struct boss_kiggler_the_crazedAI : public ScriptedAI
{
- boss_kiggler_the_crazedAI(Creature* c) : ScriptedAI(c)
+ boss_kiggler_the_crazedAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 GreaterPolymorph_Timer;
@@ -478,7 +478,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -498,7 +498,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_MAULGAREVENT_TANK));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
if (target)
{
@@ -567,9 +567,9 @@ public:
struct boss_blindeye_the_seerAI : public ScriptedAI
{
- boss_blindeye_the_seerAI(Creature* c) : ScriptedAI(c)
+ boss_blindeye_the_seerAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 GreaterPowerWordShield_Timer;
@@ -598,7 +598,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -618,7 +618,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_MAULGAREVENT_TANK));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
if (target)
{
@@ -677,9 +677,9 @@ public:
struct boss_krosh_firehandAI : public ScriptedAI
{
- boss_krosh_firehandAI(Creature* c) : ScriptedAI(c)
+ boss_krosh_firehandAI(Creature* creature) : ScriptedAI(creature)
{
- instance = c->GetInstanceScript();
+ instance = creature->GetInstanceScript();
}
uint32 GreaterFireball_Timer;
@@ -708,7 +708,7 @@ public:
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -728,7 +728,7 @@ public:
//Only if not incombat check if the event is started
if (!me->isInCombat() && instance && instance->GetData(DATA_MAULGAREVENT))
{
- Unit* target = Unit::GetUnit((*me), instance->GetData64(DATA_MAULGAREVENT_TANK));
+ Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_MAULGAREVENT_TANK));
if (target)
{
diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
index bd4f91e8e39..3514732b53a 100644
--- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
+++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
@@ -77,7 +77,8 @@ public:
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -136,12 +137,18 @@ public:
switch (type)
{
case DATA_MAULGAREVENT:
- if (data == DONE) HandleGameObject(MaulgarDoor, true);
- m_auiEncounter[0] = data; break;
+ if (data == DONE)
+ HandleGameObject(MaulgarDoor, true);
+ m_auiEncounter[0] = data;
+ break;
+
case DATA_GRUULEVENT:
- if (data == IN_PROGRESS) HandleGameObject(GruulDoor, false);
- else HandleGameObject(GruulDoor, true);
- m_auiEncounter[1] = data; break;
+ if (data == IN_PROGRESS)
+ HandleGameObject(GruulDoor, false);
+ else
+ HandleGameObject(GruulDoor, true);
+ m_auiEncounter[1] = data;
+ break;
}
if (data == DONE)
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
index 7fa417cacb2..f6b7518661e 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
@@ -121,7 +121,7 @@ class boss_broggok : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -133,9 +133,9 @@ class boss_broggok : public CreatureScript
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_broggokAI (Creature);
+ return new boss_broggokAI(creature);
}
};
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
index b847500fc36..01873afeaa9 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
@@ -158,7 +158,9 @@ class boss_kelidan_the_breaker : public CreatureScript
uint64 GetChanneled(Creature* channeler1)
{
SummonChannelers();
- if (!channeler1) return 0;
+ if (!channeler1)
+ return 0;
+
uint8 i;
for (i=0; i<5; ++i)
{
@@ -183,7 +185,7 @@ class boss_kelidan_the_breaker : public CreatureScript
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
@@ -268,9 +270,9 @@ class boss_kelidan_the_breaker : public CreatureScript
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_kelidan_the_breakerAI (Creature);
+ return new boss_kelidan_the_breakerAI(creature);
}
};
@@ -324,10 +326,10 @@ class mob_shadowmoon_channeler : public CreatureScript
DoStartMovement(who);
}
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
- CAST_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(Killer);
+ CAST_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(killer);
}
void UpdateAI(const uint32 diff)
@@ -371,9 +373,9 @@ class mob_shadowmoon_channeler : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_shadowmoon_channelerAI (Creature);
+ return new mob_shadowmoon_channelerAI(creature);
}
};
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp
index f056ccd40ee..dc9f83b073d 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp
@@ -94,7 +94,7 @@ class boss_the_maker : public CreatureScript
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
@@ -153,9 +153,9 @@ class boss_the_maker : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_the_makerAI (Creature);
+ return new boss_the_makerAI(creature);
}
};
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 a6adb6b952e..2ab2b2b5b2e 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
@@ -113,7 +113,7 @@ class boss_omor_the_unscarred : public CreatureScript
++SummonedCount;
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
}
@@ -143,7 +143,7 @@ class boss_omor_the_unscarred : public CreatureScript
if (Player* temp = Unit::GetPlayer(*me, PlayerGUID))
{
//if unit dosen't have this flag, then no pulling back (script will attempt cast, even if orbital strike was resisted)
- if (temp->HasUnitMovementFlag(MOVEMENTFLAG_FALLING))
+ if (temp->HasUnitMovementFlag(MOVEMENTFLAG_FALLING_FAR))
{
me->InterruptNonMeleeSpells(false);
DoCast(temp, SPELL_SHADOW_WHIP);
@@ -219,9 +219,9 @@ class boss_omor_the_unscarred : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_omor_the_unscarredAI (Creature);
+ return new boss_omor_the_unscarredAI(creature);
}
};
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 ecea5e6abb4..a5cdebea754 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
@@ -145,8 +145,8 @@ class boss_nazan : public CreatureScript
flight = false;
BellowingRoar_Timer = 6000;
ConeOfFire_Timer = 12000;
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetDisableGravity(false);
+ me->SetWalk(true);
me->GetMotionMaster()->Clear();
if (Unit* victim = SelectTarget(SELECT_TARGET_NEAREST, 0))
me->AI()->AttackStart(victim);
@@ -194,9 +194,9 @@ class boss_nazan : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_nazanAI (Creature);
+ return new boss_nazanAI(creature);
}
};
@@ -236,9 +236,9 @@ class boss_vazruden : public CreatureScript
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
}
- void JustDied(Unit* who)
+ void JustDied(Unit* killer)
{
- if (who && who != me)
+ if (killer && killer != me)
DoScriptText(SAY_DIE, me);
}
@@ -272,9 +272,9 @@ class boss_vazruden : public CreatureScript
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_vazrudenAI (Creature);
+ return new boss_vazrudenAI(creature);
}
};
@@ -374,7 +374,7 @@ class boss_vazruden_the_herald : public CreatureScript
if (summoned->GetEntry() == ENTRY_NAZAN)
{
CAST_AI(boss_nazan::boss_nazanAI, summoned->AI())->VazrudenGUID = VazrudenGUID;
- summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ summoned->SetDisableGravity(true);
summoned->SetSpeed(MOVE_FLIGHT, 2.5f);
if (victim)
AttackStartNoMove(victim);
@@ -453,9 +453,9 @@ class boss_vazruden_the_herald : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_vazruden_the_heraldAI (Creature);
+ return new boss_vazruden_the_heraldAI(creature);
}
};
@@ -480,10 +480,10 @@ class mob_hellfire_sentry : public CreatureScript
void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* who)
+ void JustDied(Unit* killer)
{
if (Creature* herald = me->FindNearestCreature(ENTRY_VAZRUDEN_HERALD, 150))
- CAST_AI(boss_vazruden_the_herald::boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(who);
+ CAST_AI(boss_vazruden_the_herald::boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(killer);
}
void UpdateAI(const uint32 diff)
@@ -503,9 +503,9 @@ class mob_hellfire_sentry : public CreatureScript
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_hellfire_sentryAI (Creature);
+ return new mob_hellfire_sentryAI(creature);
}
};
void AddSC_boss_vazruden_the_herald()
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
index b2f8af2c80d..2c00a68321a 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
@@ -87,7 +87,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
{
if (!me->getVictim() && me->canCreatureAttack(who))
{
- if (!me->canFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
+ if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
float attackRadius = me->GetAttackDistance(who);
@@ -109,7 +109,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
}
@@ -163,9 +163,9 @@ class boss_watchkeeper_gargolmar : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_watchkeeper_gargolmarAI (Creature);
+ return new boss_watchkeeper_gargolmarAI(creature);
}
};
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index c355079e0e8..1b29abf1afc 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -198,9 +198,9 @@ class mob_abyssal : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_abyssalAI(Creature);
+ return new mob_abyssalAI(creature);
}
};
@@ -322,7 +322,7 @@ class boss_magtheridon : public CreatureScript
DoScriptText(SAY_PLAYER_KILLED, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_MAGTHERIDON_EVENT, DONE);
@@ -464,9 +464,9 @@ class boss_magtheridon : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_magtheridonAI(Creature);
+ return new boss_magtheridonAI(creature);
}
};
@@ -533,7 +533,7 @@ class mob_hellfire_channeler : public CreatureScript
DoCast(me, SPELL_SOUL_TRANSFER, true);
}
- void JustDied(Unit* /*who*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_CHANNELER_EVENT, DONE);
@@ -583,9 +583,9 @@ class mob_hellfire_channeler : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_hellfire_channelerAI(Creature);
+ return new mob_hellfire_channelerAI(creature);
}
};
@@ -597,16 +597,16 @@ public:
{
}
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- InstanceScript* instance = pGO->GetInstanceScript();
+ InstanceScript* instance = go->GetInstanceScript();
if (!instance)
return true;
if (instance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS)
return true;
- Creature* Magtheridon =Unit::GetCreature(*pGO, instance->GetData64(DATA_MAGTHERIDON));
+ Creature* Magtheridon =Unit::GetCreature(*go, instance->GetData64(DATA_MAGTHERIDON));
if (!Magtheridon || !Magtheridon->isAlive())
return true;
@@ -617,7 +617,7 @@ public:
player->InterruptNonMeleeSpells(false);
player->CastSpell(player, SPELL_SHADOW_GRASP, true);
player->CastSpell(player, SPELL_SHADOW_GRASP_VISUAL, false);
- CAST_AI(boss_magtheridon::boss_magtheridonAI, Magtheridon->AI())->SetClicker(pGO->GetGUID(), player->GetGUID());
+ CAST_AI(boss_magtheridon::boss_magtheridonAI, Magtheridon->AI())->SetClicker(go->GetGUID(), player->GetGUID());
return true;
}
};
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 caaedc4c51b..cb55d627f7d 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
@@ -80,7 +80,9 @@ class instance_magtheridons_lair : public InstanceMapScript
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
+
return false;
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
index 970c089918e..7dfdc40a787 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
@@ -224,7 +224,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
@@ -301,9 +301,9 @@ class boss_grand_warlock_nethekurse : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_grand_warlock_nethekurseAI (Creature);
+ return new boss_grand_warlock_nethekurseAI(creature);
}
};
@@ -356,7 +356,7 @@ class mob_fel_orc_convert : public CreatureScript
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
{
@@ -383,9 +383,9 @@ class mob_fel_orc_convert : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_fel_orc_convertAI (Creature);
+ return new mob_fel_orc_convertAI(creature);
}
};
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
index 5e8ed53fa4b..5371473e21e 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
@@ -143,9 +143,9 @@ class mob_omrogg_heads : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_omrogg_headsAI (Creature);
+ return new mob_omrogg_headsAI(creature);
}
};
@@ -295,7 +295,7 @@ class boss_warbringer_omrogg : public CreatureScript
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID);
Unit* pRightHead = Unit::GetUnit(*me, RightHeadGUID);
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
index 3f07552441b..c1489671292 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
@@ -95,7 +95,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
removeAdds();
me->SetSpeed(MOVE_RUN, 2);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
summoned = 2;
InBlade = false;
@@ -137,7 +137,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
}
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
removeAdds();
@@ -166,7 +166,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
{
for (std::vector<uint64>::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr)
{
- Unit* temp = Unit::GetUnit((*me), *itr);
+ Unit* temp = Unit::GetUnit(*me, *itr);
if (temp && temp->isAlive())
{
(*temp).GetMotionMaster()->Clear(true);
@@ -178,7 +178,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript
for (std::vector<uint64>::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr)
{
- Unit* temp = Unit::GetUnit((*me), *itr);
+ Unit* temp = Unit::GetUnit(*me, *itr);
if (temp && temp->isAlive())
{
(*temp).GetMotionMaster()->Clear(true);
@@ -236,8 +236,8 @@ class boss_warchief_kargath_bladefist : public CreatureScript
float x, y, randx, randy;
randx = 0.0f + rand()%40;
randy = 0.0f + rand()%40;
- x = 210+ randx ;
- y = -60- randy ;
+ x = 210+ randx;
+ y = -60- randy;
me->GetMotionMaster()->MovePoint(1, x, y, me->GetPositionZ());
Wait_Timer = 0;
}
@@ -316,9 +316,9 @@ class boss_warchief_kargath_bladefist : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_warchief_kargath_bladefistAI (Creature);
+ return new boss_warchief_kargath_bladefistAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
index fcfe6c0ea16..25207073708 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
@@ -130,7 +130,7 @@ class boss_alar : public CreatureScript
//me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
//me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
- me->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->setActive(false);
}
@@ -140,12 +140,12 @@ class boss_alar : public CreatureScript
if (instance)
instance->SetData(DATA_ALAREVENT, IN_PROGRESS);
- me->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); // after enterevademode will be set walk movement
+ me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY); // after enterevademode will be set walk movement
DoZoneInCombat();
me->setActive(true);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
if (instance)
instance->SetData(DATA_ALAREVENT, DONE);
@@ -409,7 +409,7 @@ class boss_alar : public CreatureScript
if (Summoned)
{
Summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- Summoned->SetFloatValue(OBJECT_FIELD_SCALE_X, Summoned->GetFloatValue(OBJECT_FIELD_SCALE_X)*2.5f);
+ Summoned->SetObjectScale(Summoned->GetFloatValue(OBJECT_FIELD_SCALE_X)*2.5f);
Summoned->SetDisplayId(11686);
Summoned->setFaction(me->getFaction());
Summoned->SetLevel(me->getLevel());
@@ -450,9 +450,9 @@ class boss_alar : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_alarAI(Creature);
+ return new boss_alarAI(creature);
}
};
@@ -470,7 +470,7 @@ class mob_ember_of_alar : public CreatureScript
mob_ember_of_alarAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
- creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ creature->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
}
@@ -500,7 +500,7 @@ class mob_ember_of_alar : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if (instance && instance->GetData(DATA_ALAREVENT) == 2)
{
- if (Unit* Alar = Unit::GetUnit((*me), instance->GetData64(DATA_ALAR)))
+ if (Unit* Alar = Unit::GetUnit(*me, instance->GetData64(DATA_ALAR)))
{
int32 AlarHealth = int32(Alar->GetHealth()) - int32(Alar->CountPctFromMaxHealth(3));
if (AlarHealth > 0)
@@ -529,9 +529,9 @@ class mob_ember_of_alar : public CreatureScript
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_ember_of_alarAI(Creature);
+ return new mob_ember_of_alarAI(creature);
}
};
@@ -554,9 +554,9 @@ class mob_flame_patch_alar : public CreatureScript
void UpdateAI(const uint32 /*diff*/) {}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_flame_patch_alarAI(Creature);
+ return new mob_flame_patch_alarAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
index 05fad24f35e..d202fdd2f44 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
@@ -140,7 +140,7 @@ class boss_high_astromancer_solarian : public CreatureScript
me->SetArmor(defaultarmor);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetVisible(true);
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, defaultsize);
+ me->SetObjectScale(defaultsize);
me->SetDisplayId(MODEL_HUMAN);
Summons.DespawnAll();
@@ -151,9 +151,9 @@ class boss_high_astromancer_solarian : public CreatureScript
DoScriptText(RAND(SAY_KILL1, SAY_KILL2, SAY_KILL3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, defaultsize);
+ me->SetObjectScale(defaultsize);
me->SetDisplayId(MODEL_HUMAN);
DoScriptText(SAY_DEATH, me);
if (instance)
@@ -397,7 +397,7 @@ class boss_high_astromancer_solarian : public CreatureScript
DoScriptText(SAY_VOIDB, me);
me->SetArmor(WV_ARMOR);
me->SetDisplayId(MODEL_VOIDWALKER);
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, defaultsize*2.5f);
+ me->SetObjectScale(defaultsize*2.5f);
}
DoMeleeAttackIfReady();
}
@@ -454,7 +454,7 @@ class mob_solarium_priest : public CreatureScript
{
case 0:
if (instance)
- target = Unit::GetUnit((*me), instance->GetData64(DATA_ASTROMANCER));
+ target = Unit::GetUnit(*me, instance->GetData64(DATA_ASTROMANCER));
break;
case 1:
target = me;
@@ -490,9 +490,9 @@ class mob_solarium_priest : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_solarium_priestAI (Creature);
+ return new mob_solarium_priestAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index 7a60b1545d0..b66fc5f5e24 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -147,11 +147,11 @@ struct advisorbase_ai : public ScriptedAI
{
advisorbase_ai(Creature* creature) : ScriptedAI(creature)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
m_bDoubled_Health = false;
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
bool FakeDeath;
bool m_bDoubled_Health;
uint32 DelayRes_Timer;
@@ -174,8 +174,8 @@ struct advisorbase_ai : public ScriptedAI
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
//reset encounter
- if (m_instance && (m_instance->GetData(DATA_KAELTHASEVENT) == 1 || m_instance->GetData(DATA_KAELTHASEVENT) == 3))
- if (Creature* Kaelthas = Unit::GetCreature((*me), m_instance->GetData64(DATA_KAELTHAS)))
+ if (instance && (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3))
+ if (Creature* Kaelthas = Unit::GetCreature((*me), instance->GetData64(DATA_KAELTHAS)))
Kaelthas->AI()->EnterEvadeMode();
}
@@ -214,14 +214,14 @@ struct advisorbase_ai : public ScriptedAI
return;
//Prevent glitch if in fake death
- if (FakeDeath && m_instance && m_instance->GetData(DATA_KAELTHASEVENT) != 0)
+ if (FakeDeath && instance && instance->GetData(DATA_KAELTHASEVENT) != 0)
{
damage = 0;
return;
}
//Don't really die in phase 1 & 3, only die after that
- if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) != 0)
+ if (instance && instance->GetData(DATA_KAELTHASEVENT) != 0)
{
//prevent death
damage = 0;
@@ -253,7 +253,7 @@ struct advisorbase_ai : public ScriptedAI
DelayRes_Timer = 0;
FakeDeath = false;
- Unit* Target = Unit::GetUnit((*me), DelayRes_Target);
+ Unit* Target = Unit::GetUnit(*me, DelayRes_Target);
if (!Target)
Target = me->getVictim();
@@ -280,11 +280,11 @@ class boss_kaelthas : public CreatureScript
{
boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
- m_instance = creature->GetInstanceScript();
+ instance = creature->GetInstanceScript();
memset(&m_auiAdvisorGuid, 0, sizeof(m_auiAdvisorGuid));
}
- InstanceScript* m_instance;
+ InstanceScript* instance;
uint32 Fireball_Timer;
uint32 ArcaneDisruption_Timer;
@@ -335,8 +335,8 @@ class boss_kaelthas : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- if (m_instance)
- m_instance->SetData(DATA_KAELTHASEVENT, 0);
+ if (instance)
+ instance->SetData(DATA_KAELTHASEVENT, 0);
}
void PrepareAdvisors()
@@ -355,13 +355,13 @@ class boss_kaelthas : public CreatureScript
void StartEvent()
{
- if (!m_instance)
+ if (!instance)
return;
- m_auiAdvisorGuid[0] = m_instance->GetData64(DATA_THALADREDTHEDARKENER);
- m_auiAdvisorGuid[1] = m_instance->GetData64(DATA_LORDSANGUINAR);
- m_auiAdvisorGuid[2] = m_instance->GetData64(DATA_GRANDASTROMANCERCAPERNIAN);
- m_auiAdvisorGuid[3] = m_instance->GetData64(DATA_MASTERENGINEERTELONICUS);
+ m_auiAdvisorGuid[0] = instance->GetData64(DATA_THALADREDTHEDARKENER);
+ m_auiAdvisorGuid[1] = instance->GetData64(DATA_LORDSANGUINAR);
+ m_auiAdvisorGuid[2] = instance->GetData64(DATA_GRANDASTROMANCERCAPERNIAN);
+ m_auiAdvisorGuid[3] = instance->GetData64(DATA_MASTERENGINEERTELONICUS);
if (!m_auiAdvisorGuid[0] || !m_auiAdvisorGuid[1] || !m_auiAdvisorGuid[2] || !m_auiAdvisorGuid[3])
{
@@ -371,7 +371,7 @@ class boss_kaelthas : public CreatureScript
Phase = 4;
- m_instance->SetData(DATA_KAELTHASEVENT, 4);
+ instance->SetData(DATA_KAELTHASEVENT, 4);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -386,7 +386,7 @@ class boss_kaelthas : public CreatureScript
DoScriptText(SAY_INTRO, me);
- m_instance->SetData(DATA_KAELTHASEVENT, 1);
+ instance->SetData(DATA_KAELTHASEVENT, 1);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
PhaseSubphase = 0;
@@ -399,7 +399,7 @@ class boss_kaelthas : public CreatureScript
{
if (!me->HasUnitState(UNIT_STATE_STUNNED) && me->canCreatureAttack(who))
{
- if (!me->canFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
+ if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
float attackRadius = me->GetAttackDistance(who);
@@ -412,7 +412,7 @@ class boss_kaelthas : public CreatureScript
}
else if (me->GetMap()->IsDungeon())
{
- if (m_instance && !m_instance->GetData(DATA_KAELTHASEVENT) && !Phase)
+ if (instance && !instance->GetData(DATA_KAELTHASEVENT) && !Phase)
StartEvent();
who->SetInCombatWith(me);
@@ -424,7 +424,7 @@ class boss_kaelthas : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
- if (m_instance && !m_instance->GetData(DATA_KAELTHASEVENT) && !Phase)
+ if (instance && !instance->GetData(DATA_KAELTHASEVENT) && !Phase)
StartEvent();
}
@@ -445,9 +445,12 @@ class boss_kaelthas : public CreatureScript
}
}
- void SummonedCreatureDespawn(Creature* summon) {summons.Despawn(summon);}
+ void SummonedCreatureDespawn(Creature* summon)
+ {
+ summons.Despawn(summon);
+ }
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -456,12 +459,12 @@ class boss_kaelthas : public CreatureScript
summons.DespawnAll();
- if (m_instance)
- m_instance->SetData(DATA_KAELTHASEVENT, 0);
+ if (instance)
+ instance->SetData(DATA_KAELTHASEVENT, 0);
for (uint8 i = 0; i < MAX_ADVISORS; ++i)
{
- if (Unit* pAdvisor = Unit::GetUnit((*me), m_auiAdvisorGuid[i]))
+ if (Unit* pAdvisor = Unit::GetUnit(*me, m_auiAdvisorGuid[i]))
pAdvisor->Kill(pAdvisor);
}
}
@@ -621,8 +624,8 @@ class boss_kaelthas : public CreatureScript
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{
Phase = 2;
- if (m_instance)
- m_instance->SetData(DATA_KAELTHASEVENT, 2);
+ if (instance)
+ instance->SetData(DATA_KAELTHASEVENT, 2);
DoScriptText(SAY_PHASE2_WEAPON, me);
@@ -666,8 +669,8 @@ class boss_kaelthas : public CreatureScript
if (Phase_Timer <= diff)
{
DoScriptText(SAY_PHASE3_ADVANCE, me);
- if (m_instance)
- m_instance->SetData(DATA_KAELTHASEVENT, 3);
+ if (instance)
+ instance->SetData(DATA_KAELTHASEVENT, 3);
Phase = 3;
PhaseSubphase = 0;
}
@@ -704,8 +707,8 @@ class boss_kaelthas : public CreatureScript
DoScriptText(SAY_PHASE4_INTRO2, me);
Phase = 4;
- if (m_instance)
- m_instance->SetData(DATA_KAELTHASEVENT, 4);
+ if (instance)
+ instance->SetData(DATA_KAELTHASEVENT, 4);
// Sometimes people can collect Aggro in Phase 1-3. Reset threat before releasing Kael.
DoResetThreat();
@@ -809,8 +812,8 @@ class boss_kaelthas : public CreatureScript
{
if (HealthBelowPct(50))
{
- if (m_instance)
- m_instance->SetData(DATA_KAELTHASEVENT, 4);
+ if (instance)
+ instance->SetData(DATA_KAELTHASEVENT, 4);
Phase = 5;
Phase_Timer = 10000;
@@ -892,7 +895,7 @@ class boss_kaelthas : public CreatureScript
// 1) Kael'thas will portal the whole raid right into his body
for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
{
//Use work around packet to prevent player from being dropped from combat
@@ -913,7 +916,7 @@ class boss_kaelthas : public CreatureScript
// 2) At that point he will put a Gravity Lapse debuff on everyone
for (i = me->getThreatManager().getThreatList().begin(); i != me->getThreatManager().getThreatList().end(); ++i)
{
- if (Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid()))
+ if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
{
DoCast(unit, SPELL_KNOCKBACK, true);
//Gravity lapse - needs an exception in Spell system to work
@@ -945,7 +948,7 @@ class boss_kaelthas : public CreatureScript
//Remove flight
for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i)
{
- if (Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid()))
+ if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))
{
//Using packet workaround
WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12);
@@ -996,9 +999,9 @@ class boss_kaelthas : public CreatureScript
}
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_kaelthasAI(Creature);
+ return new boss_kaelthasAI(creature);
}
};
@@ -1042,7 +1045,7 @@ class boss_thaladred_the_darkener : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3)
+ if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_THALADRED_DEATH, me);
}
@@ -1094,9 +1097,9 @@ class boss_thaladred_the_darkener : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_thaladred_the_darkenerAI(Creature);
+ return new boss_thaladred_the_darkenerAI(creature);
}
};
@@ -1132,9 +1135,9 @@ class boss_lord_sanguinar : public CreatureScript
DoScriptText(SAY_SANGUINAR_AGGRO, me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
- if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3)
+ if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_SANGUINAR_DEATH, me);
}
@@ -1162,9 +1165,9 @@ class boss_lord_sanguinar : public CreatureScript
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_lord_sanguinarAI(Creature);
+ return new boss_lord_sanguinarAI(creature);
}
};
//Grand Astromancer Capernian AI
@@ -1199,7 +1202,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3)
+ if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_CAPERNIAN_DEATH, me);
}
@@ -1284,7 +1287,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i!= m_threatlist.end(); ++i)
{
- Unit* unit = Unit::GetUnit((*me), (*i)->getUnitGuid());
+ Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
//if in melee range
if (unit && unit->IsWithinDistInMap(me, 5))
{
@@ -1306,9 +1309,9 @@ class boss_grand_astromancer_capernian : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_grand_astromancer_capernianAI(Creature);
+ return new boss_grand_astromancer_capernianAI(creature);
}
};
@@ -1338,7 +1341,7 @@ class boss_master_engineer_telonicus : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3)
+ if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_TELONICUS_DEATH, me);
}
@@ -1389,9 +1392,9 @@ class boss_master_engineer_telonicus : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_master_engineer_telonicusAI(Creature);
+ return new boss_master_engineer_telonicusAI(creature);
}
};
@@ -1453,9 +1456,9 @@ class mob_kael_flamestrike : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_kael_flamestrikeAI(Creature);
+ return new mob_kael_flamestrikeAI(creature);
}
};
@@ -1507,9 +1510,9 @@ class mob_phoenix_tk : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_phoenix_tkAI(Creature);
+ return new mob_phoenix_tkAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
index 576d0a8bbf2..275a72e75ac 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
@@ -76,8 +76,8 @@ class boss_void_reaver : public CreatureScript
Enraged = false;
- if (instance && me->isAlive())
- instance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED);
+ if (instance && me->isAlive())
+ instance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED);
}
void KilledUnit(Unit* /*victim*/)
@@ -85,7 +85,7 @@ class boss_void_reaver : public CreatureScript
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
DoZoneInCombat();
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 1ec4a6e55ec..f25b6749055 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp
@@ -78,7 +78,8 @@ class instance_the_eye : public InstanceMapScript
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
index b8b0ffd4d2e..a1287a57402 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
@@ -86,7 +86,7 @@ class boss_gatewatcher_iron_hand : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH_1, me);
//TODO: Add door check/open code
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
index 7e435187be9..59837fdbed1 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
@@ -101,7 +101,7 @@ class boss_nethermancer_sepethrea : public CreatureScript
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
if (instance)
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
index cdc3b799b2c..3a4d449707d 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
@@ -103,7 +103,7 @@ class boss_pathaleon_the_calculator : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
index 9db2b660d2a..ad3c899237f 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp
@@ -66,7 +66,7 @@ class instance_mechanar : public InstanceMapScript
return false;
}
- uint64 GetData64 (uint32 /*identifier*/)
+ uint64 GetData64(uint32 /*identifier*/)
{
return 0;
}
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
index db95f60f556..d675b438968 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
@@ -128,7 +128,7 @@ class npc_millhouse_manastorm : public CreatureScript
Talk(SAY_KILL);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
Talk(SAY_DEATH);
@@ -316,7 +316,7 @@ class npc_warden_mellichar : public CreatureScript
if (!me->getVictim() && me->canCreatureAttack(who))
{
- if (!me->canFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
+ if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
return;
if (who->GetTypeId() != TYPEID_PLAYER)
return;
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
index de86ec8672c..c2eeaf9fe7a 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
@@ -112,7 +112,7 @@ class boss_harbinger_skyriss : public CreatureScript
void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
if (instance)
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
index 6a27d295ebc..ffe96fb7bd1 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
@@ -93,7 +93,8 @@ class instance_arcatraz : public InstanceMapScript
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ return true;
return false;
}
@@ -102,15 +103,41 @@ class instance_arcatraz : public InstanceMapScript
{
switch (go->GetEntry())
{
- case CONTAINMENT_CORE_SECURITY_FIELD_ALPHA: Containment_Core_Security_Field_AlphaGUID = go->GetGUID(); break;
- case CONTAINMENT_CORE_SECURITY_FIELD_BETA: Containment_Core_Security_Field_BetaGUID = go->GetGUID(); break;
- case POD_ALPHA: Pod_AlphaGUID = go->GetGUID(); break;
- case POD_GAMMA: Pod_GammaGUID = go->GetGUID(); break;
- case POD_BETA: Pod_BetaGUID = go->GetGUID(); break;
- case POD_DELTA: Pod_DeltaGUID = go->GetGUID(); break;
- case POD_OMEGA: Pod_OmegaGUID = go->GetGUID(); break;
- case SEAL_SPHERE: GoSphereGUID = go->GetGUID(); break;
- //case WARDENS_SHIELD: Wardens_ShieldGUID = go->GetGUID(); break;
+ case CONTAINMENT_CORE_SECURITY_FIELD_ALPHA:
+ Containment_Core_Security_Field_AlphaGUID = go->GetGUID();
+ break;
+
+ case CONTAINMENT_CORE_SECURITY_FIELD_BETA:
+ Containment_Core_Security_Field_BetaGUID = go->GetGUID();
+ break;
+
+ case POD_ALPHA:
+ Pod_AlphaGUID = go->GetGUID();
+ break;
+
+ case POD_GAMMA:
+ Pod_GammaGUID = go->GetGUID();
+ break;
+
+ case POD_BETA:
+ Pod_BetaGUID = go->GetGUID();
+ break;
+
+ case POD_DELTA:
+ Pod_DeltaGUID = go->GetGUID();
+ break;
+
+ case POD_OMEGA:
+ Pod_OmegaGUID = go->GetGUID();
+ break;
+
+ case SEAL_SPHERE:
+ GoSphereGUID = go->GetGUID();
+ break;
+
+ /*case WARDENS_SHIELD:
+ Wardens_ShieldGUID = go->GetGUID();
+ break;*/
}
}
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
index ccac73c5dc6..ba61a1bfb12 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
@@ -107,7 +107,7 @@ class boss_high_botanist_freywinn : public CreatureScript
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
@@ -195,9 +195,9 @@ class boss_high_botanist_freywinn : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_high_botanist_freywinnAI (Creature);
+ return new boss_high_botanist_freywinnAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
index 488ddba40cf..e8188f892b3 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
@@ -211,9 +211,9 @@ class boss_laj : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_lajAI (Creature);
+ return new boss_lajAI(creature);
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
index 7e9960225bb..3acde2455db 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
@@ -118,9 +118,9 @@ class mob_warp_splinter_treant : public CreatureScript
DoMeleeAttackIfReady();
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new mob_warp_splinter_treantAI (Creature);
+ return new mob_warp_splinter_treantAI(creature);
}
};
@@ -169,7 +169,7 @@ class boss_warp_splinter : public CreatureScript
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
}
@@ -226,9 +226,9 @@ class boss_warp_splinter : public CreatureScript
}
};
- CreatureAI* GetAI(Creature* Creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
- return new boss_warp_splinterAI (Creature);
+ return new boss_warp_splinterAI(creature);
}
};
diff --git a/src/server/scripts/Outland/blades_edge_mountains.cpp b/src/server/scripts/Outland/blades_edge_mountains.cpp
index f99851f013e..4ec1d04b6ad 100644
--- a/src/server/scripts/Outland/blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/blades_edge_mountains.cpp
@@ -61,7 +61,7 @@ public:
struct mobs_bladespire_ogreAI : public ScriptedAI
{
- mobs_bladespire_ogreAI(Creature* c) : ScriptedAI(c) {}
+ mobs_bladespire_ogreAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() { }
@@ -73,7 +73,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -113,7 +112,7 @@ public:
struct mobs_nether_drakeAI : public ScriptedAI
{
- mobs_nether_drakeAI(Creature* c) : ScriptedAI(c) {}
+ mobs_nether_drakeAI(Creature* creature) : ScriptedAI(creature) {}
bool IsNihil;
uint32 NihilSpeech_Timer;
@@ -253,7 +252,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -278,7 +276,7 @@ public:
struct npc_daranelleAI : public ScriptedAI
{
- npc_daranelleAI(Creature* c) : ScriptedAI(c) {}
+ npc_daranelleAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() { }
@@ -299,7 +297,6 @@ public:
ScriptedAI::MoveInLineOfSight(who);
}
};
-
};
/*######
@@ -313,10 +310,10 @@ class npc_overseer_nuaar : public CreatureScript
public:
npc_overseer_nuaar() : CreatureScript("npc_overseer_nuaar") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->SEND_GOSSIP_MENU(10533, creature->GetGUID());
player->AreaExploredOrEventHappens(10682);
@@ -333,7 +330,6 @@ public:
return true;
}
-
};
/*######
@@ -348,10 +344,10 @@ class npc_saikkal_the_elder : public CreatureScript
public:
npc_saikkal_the_elder() : CreatureScript("npc_saikkal_the_elder") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_STE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -374,7 +370,6 @@ public:
return true;
}
-
};
/*######
@@ -423,7 +418,6 @@ public:
return true;
}
-
};
/*######
@@ -469,7 +463,6 @@ public:
void UpdateAI(const uint32 /*uiDiff*/) {}
};
-
};
/*######
@@ -499,7 +492,8 @@ public:
void MoveInLineOfSight(Unit* who)
{
- if (!who || (!who->isAlive())) return;
+ if (!who || (!who->isAlive()))
+ return;
if (me->IsWithinDistInMap(who, 50.0f))
{
@@ -523,7 +517,7 @@ public:
me->GetMotionMaster()->MoveTargetedHome();
Creature* Credit = me->FindNearestCreature(NPC_QUEST_CREDIT, 50, true);
if (player && Credit)
- player->KilledMonster(Credit->GetCreatureInfo(), Credit->GetGUID());
+ player->KilledMonster(Credit->GetCreatureTemplate(), Credit->GetGUID());
}
}
@@ -534,7 +528,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -759,7 +752,7 @@ class npc_simon_bunny : public CreatureScript
// Used for getting involved player guid. Parameter id is used for defining if is a large(Monument) or small(Relic) node
void SetGUID(uint64 guid, int32 id)
{
- me->SetFlying(true);
+ me->SetCanFly(true);
large = (bool)id;
playerGUID = guid;
@@ -781,7 +774,7 @@ class npc_simon_bunny : public CreatureScript
colorSequence.clear();
playableSequence.clear();
playerSequence.clear();
- me->SetFloatValue(OBJECT_FIELD_SCALE_X, large ? 2 : 1);
+ me->SetObjectScale(large ? 2.0f : 1.0f);
std::list<WorldObject*> ClusterList;
Trinity::AllWorldObjectsInRange objects(me, searchDistance);
@@ -797,20 +790,42 @@ class npc_simon_bunny : public CreatureScript
{
switch (go->GetGOInfo()->displayId)
{
- case GO_BLUE_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_BLUE] = go->GetEntry(); break;
- case GO_RED_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_RED] = go->GetEntry(); break;
- case GO_GREEN_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_GREEN] = go->GetEntry(); break;
- case GO_YELLOW_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_YELLOW] = go->GetEntry(); break;
+ case GO_BLUE_CLUSTER_DISPLAY_LARGE:
+ clusterIds[SIMON_BLUE] = go->GetEntry();
+ break;
+
+ case GO_RED_CLUSTER_DISPLAY_LARGE:
+ clusterIds[SIMON_RED] = go->GetEntry();
+ break;
+
+ case GO_GREEN_CLUSTER_DISPLAY_LARGE:
+ clusterIds[SIMON_GREEN] = go->GetEntry();
+ break;
+
+ case GO_YELLOW_CLUSTER_DISPLAY_LARGE:
+ clusterIds[SIMON_YELLOW] = go->GetEntry();
+ break;
}
}
else
{
switch (go->GetGOInfo()->displayId)
{
- case GO_BLUE_CLUSTER_DISPLAY: clusterIds[SIMON_BLUE] = go->GetEntry(); break;
- case GO_RED_CLUSTER_DISPLAY: clusterIds[SIMON_RED] = go->GetEntry(); break;
- case GO_GREEN_CLUSTER_DISPLAY: clusterIds[SIMON_GREEN] = go->GetEntry(); break;
- case GO_YELLOW_CLUSTER_DISPLAY: clusterIds[SIMON_YELLOW] = go->GetEntry(); break;
+ case GO_BLUE_CLUSTER_DISPLAY:
+ clusterIds[SIMON_BLUE] = go->GetEntry();
+ break;
+
+ case GO_RED_CLUSTER_DISPLAY:
+ clusterIds[SIMON_RED] = go->GetEntry();
+ break;
+
+ case GO_GREEN_CLUSTER_DISPLAY:
+ clusterIds[SIMON_GREEN] = go->GetEntry();
+ break;
+
+ case GO_YELLOW_CLUSTER_DISPLAY:
+ clusterIds[SIMON_YELLOW] = go->GetEntry();
+ break;
}
}
}
@@ -840,7 +855,7 @@ class npc_simon_bunny : public CreatureScript
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance))
relic->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- me->ForcedDespawn(1000);
+ me->DespawnOrUnsummon(1000);
}
/*
diff --git a/src/server/scripts/Outland/boss_doomlord_kazzak.cpp b/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
index 2f6e0823da1..a213713ae1a 100644
--- a/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
+++ b/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
@@ -18,7 +18,7 @@
#include "ScriptPCH.h"
-enum Yells
+enum Texts
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
@@ -31,15 +31,15 @@ enum Yells
enum Spells
{
- SPELL_SHADOWVOLLEY = 32963,
+ SPELL_SHADOW_VOLLEY = 32963,
SPELL_CLEAVE = 31779,
SPELL_THUNDERCLAP = 36706,
- SPELL_VOIDBOLT = 39329,
- SPELL_MARKOFKAZZAK = 32960,
- SPELL_MARKOFKAZZAK_DAMAGE = 32961,
+ SPELL_VOID_BOLT = 39329,
+ SPELL_MARK_OF_KAZZAK = 32960,
SPELL_ENRAGE = 32964,
- SPELL_CAPTURESOUL = 32966,
- SPELL_TWISTEDREFLECTION = 21063
+ SPELL_CAPTURE_SOUL = 32966,
+ SPELL_TWISTED_REFLECTION = 21063,
+ SPELL_BERSERK = 32965,
};
enum Events
@@ -47,10 +47,11 @@ enum Events
EVENT_SHADOW_VOLLEY = 1,
EVENT_CLEAVE = 2,
EVENT_THUNDERCLAP = 3,
- EVENT_VOIDBOLT = 4,
+ EVENT_VOID_BOLT = 4,
EVENT_MARK_OF_KAZZAK = 5,
EVENT_ENRAGE = 6,
- EVENT_TWISTED_REFLECTION = 7
+ EVENT_TWISTED_REFLECTION = 7,
+ EVENT_BERSERK = 8
};
class boss_doomlord_kazzak : public CreatureScript
@@ -70,10 +71,11 @@ class boss_doomlord_kazzak : public CreatureScript
_events.ScheduleEvent(EVENT_SHADOW_VOLLEY, urand(6000, 10000));
_events.ScheduleEvent(EVENT_CLEAVE, 7000);
_events.ScheduleEvent(EVENT_THUNDERCLAP, urand(14000, 18000));
- _events.ScheduleEvent(EVENT_VOIDBOLT, 30000);
+ _events.ScheduleEvent(EVENT_VOID_BOLT, 30000);
_events.ScheduleEvent(EVENT_MARK_OF_KAZZAK, 25000);
_events.ScheduleEvent(EVENT_ENRAGE, 60000);
_events.ScheduleEvent(EVENT_TWISTED_REFLECTION, 33000);
+ _events.ScheduleEvent(EVENT_BERSERK, 180000);
}
void JustRespawned()
@@ -92,12 +94,12 @@ class boss_doomlord_kazzak : public CreatureScript
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
- DoCast(me, SPELL_CAPTURESOUL);
+ DoCast(me, SPELL_CAPTURE_SOUL);
Talk(SAY_KILL);
}
- void JustDied(Unit* /*victim*/)
+ void JustDied(Unit* /*killer*/)
{
Talk(SAY_DEATH);
}
@@ -118,7 +120,7 @@ class boss_doomlord_kazzak : public CreatureScript
switch (eventId)
{
case EVENT_SHADOW_VOLLEY:
- DoCastVictim(SPELL_SHADOWVOLLEY);
+ DoCastVictim(SPELL_SHADOW_VOLLEY);
_events.ScheduleEvent(EVENT_SHADOW_VOLLEY, urand(4000, 6000));
break;
case EVENT_CLEAVE:
@@ -129,13 +131,13 @@ class boss_doomlord_kazzak : public CreatureScript
DoCastVictim(SPELL_THUNDERCLAP);
_events.ScheduleEvent(EVENT_THUNDERCLAP, urand(10000, 14000));
break;
- case EVENT_VOIDBOLT:
- DoCastVictim(SPELL_VOIDBOLT);
- _events.ScheduleEvent(EVENT_VOIDBOLT, urand(15000, 18000));
+ case EVENT_VOID_BOLT:
+ DoCastVictim(SPELL_VOID_BOLT);
+ _events.ScheduleEvent(EVENT_VOID_BOLT, urand(15000, 18000));
break;
case EVENT_MARK_OF_KAZZAK:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
- DoCast(target, SPELL_MARKOFKAZZAK);
+ DoCast(target, SPELL_MARK_OF_KAZZAK);
_events.ScheduleEvent(EVENT_MARK_OF_KAZZAK, 20000);
break;
case EVENT_ENRAGE:
@@ -145,9 +147,12 @@ class boss_doomlord_kazzak : public CreatureScript
break;
case EVENT_TWISTED_REFLECTION:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
- DoCast(target, SPELL_TWISTEDREFLECTION);
+ DoCast(target, SPELL_TWISTED_REFLECTION);
_events.ScheduleEvent(EVENT_TWISTED_REFLECTION, 15000);
break;
+ case EVENT_BERSERK:
+ DoCast(me, SPELL_BERSERK);
+ break;
default:
break;
}
diff --git a/src/server/scripts/Outland/boss_doomwalker.cpp b/src/server/scripts/Outland/boss_doomwalker.cpp
index c4bd232cc85..67834601d6f 100644
--- a/src/server/scripts/Outland/boss_doomwalker.cpp
+++ b/src/server/scripts/Outland/boss_doomwalker.cpp
@@ -18,7 +18,7 @@
#include "ScriptPCH.h"
-enum Yells
+enum Texts
{
SAY_AGGRO = 0,
SAY_EARTHQUAKE = 1,
@@ -79,7 +79,7 @@ class boss_doomwalker : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* /*Killer*/)
+ void JustDied(Unit* /*killer*/)
{
Talk(SAY_DEATH);
}
diff --git a/src/server/scripts/Outland/hellfire_peninsula.cpp b/src/server/scripts/Outland/hellfire_peninsula.cpp
index 7d4de409b8b..b0e19f0e322 100644
--- a/src/server/scripts/Outland/hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/hellfire_peninsula.cpp
@@ -66,7 +66,7 @@ public:
struct npc_aeranasAI : public ScriptedAI
{
- npc_aeranasAI(Creature* c) : ScriptedAI(c) {}
+ npc_aeranasAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Faction_Timer;
uint32 EnvelopingWinds_Timer;
@@ -124,7 +124,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -181,9 +180,9 @@ public:
npc_escortAI::MoveInLineOfSight(who);
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 0:
DoScriptText(EMOTE_WOLF_LIFT_HEAD, me);
@@ -198,7 +197,6 @@ public:
}
}
};
-
};
/*######
@@ -215,7 +213,6 @@ public:
go->SummonCreature(C_AERANAS, -1321.79f, 4043.80f, 116.24f, 1.25f, TEMPSUMMON_TIMED_DESPAWN, 180000);
return false;
}
-
};
/*######
@@ -234,10 +231,10 @@ class npc_naladu : public CreatureScript
public:
npc_naladu() : CreatureScript("npc_naladu") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_NALADU1, creature->GetGUID());
return true;
@@ -252,7 +249,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -274,10 +270,10 @@ class npc_tracy_proudwell : public CreatureScript
public:
npc_tracy_proudwell() : CreatureScript("npc_tracy_proudwell") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TRACY_PROUDWELL_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -308,7 +304,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -331,10 +326,10 @@ class npc_trollbane : public CreatureScript
public:
npc_trollbane() : CreatureScript("npc_trollbane") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TROLLBANE_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -361,7 +356,6 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*######
@@ -406,40 +400,39 @@ public:
struct npc_wounded_blood_elfAI : public npc_escortAI
{
- npc_wounded_blood_elfAI(Creature* c) : npc_escortAI(c) {}
+ npc_wounded_blood_elfAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 0:
- DoScriptText(SAY_ELF_START, me, player);
- break;
- case 9:
- DoScriptText(SAY_ELF_SUMMON1, me, player);
- // Spawn two Haal'eshi Talonguard
- DoSpawnCreature(16967, -15, -15, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- DoSpawnCreature(16967, -17, -17, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- break;
- case 13:
- DoScriptText(SAY_ELF_RESTING, me, player);
- break;
- case 14:
- DoScriptText(SAY_ELF_SUMMON2, me, player);
- // Spawn two Haal'eshi Windwalker
- DoSpawnCreature(16966, -15, -15, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- DoSpawnCreature(16966, -17, -17, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- break;
- case 27:
- DoScriptText(SAY_ELF_COMPLETE, me, player);
- // Award quest credit
- player->GroupEventHappens(QUEST_ROAD_TO_FALCON_WATCH, me);
- break;
+ case 0:
+ DoScriptText(SAY_ELF_START, me, player);
+ break;
+ case 9:
+ DoScriptText(SAY_ELF_SUMMON1, me, player);
+ // Spawn two Haal'eshi Talonguard
+ DoSpawnCreature(16967, -15, -15, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ DoSpawnCreature(16967, -17, -17, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ break;
+ case 13:
+ DoScriptText(SAY_ELF_RESTING, me, player);
+ break;
+ case 14:
+ DoScriptText(SAY_ELF_SUMMON2, me, player);
+ // Spawn two Haal'eshi Windwalker
+ DoSpawnCreature(16966, -15, -15, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ DoSpawnCreature(16966, -17, -17, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ break;
+ case 27:
+ DoScriptText(SAY_ELF_COMPLETE, me, player);
+ // Award quest credit
+ player->GroupEventHappens(QUEST_ROAD_TO_FALCON_WATCH, me);
+ break;
}
}
@@ -456,7 +449,6 @@ public:
summoned->AI()->AttackStart(me);
}
};
-
};
/*######
@@ -529,7 +521,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void AddSC_hellfire_peninsula()
diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp
index 668db2efcbb..871a2f200bb 100644
--- a/src/server/scripts/Outland/nagrand.cpp
+++ b/src/server/scripts/Outland/nagrand.cpp
@@ -57,10 +57,10 @@ class npc_greatmother_geyah : public CreatureScript
public:
npc_greatmother_geyah() : CreatureScript("npc_greatmother_geyah") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
@@ -90,7 +90,6 @@ public:
player->AreaExploredOrEventHappens(10044);
player->CLOSE_GOSSIP_MENU();
break;
-
case GOSSIP_ACTION_INFO_DEF + 10:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -135,12 +134,10 @@ public:
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
}
else
-
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
}
-
};
/*#####
@@ -224,9 +221,9 @@ public:
DoCast(me, SPELL_EARTHBIND_TOTEM, false);
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
- switch (uiPointId)
+ switch (waypointId)
{
case 7:
DoScriptText(SAY_MAG_MORE, me);
@@ -235,7 +232,6 @@ public:
DoScriptText(SAY_MAG_MORE_REPLY, temp);
me->SummonCreature(NPC_MURK_PUTRIFIER, m_afAmbushB[0]-2.5f, m_afAmbushB[1]-2.5f, m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
-
me->SummonCreature(NPC_MURK_SCAVENGER, m_afAmbushB[0]+2.5f, m_afAmbushB[1]+2.5f, m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(NPC_MURK_SCAVENGER, m_afAmbushB[0]+2.5f, m_afAmbushB[1]-2.5f, m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
@@ -258,7 +254,7 @@ public:
if (summoned->isTotem())
return;
- summoned->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ summoned->SetWalk(false);
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
summoned->AI()->AttackStart(me);
@@ -311,7 +307,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -330,7 +325,7 @@ public:
struct npc_creditmarker_visit_with_ancestorsAI : public ScriptedAI
{
- npc_creditmarker_visit_with_ancestorsAI(Creature* c) : ScriptedAI(c) {}
+ npc_creditmarker_visit_with_ancestorsAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
@@ -356,7 +351,6 @@ public:
}
}
};
-
};
/*######
@@ -401,6 +395,7 @@ public:
player->KilledMonsterCredit(NPC_CORKI_CREDIT_1, 0);
}
}
+
if (go->GetEntry() == GO_CORKIS_PRISON_2)
{
if (Creature* corki = go->FindNearestCreature(NPC_CORKI_2, 25, true))
@@ -411,6 +406,7 @@ public:
player->KilledMonsterCredit(NPC_CORKI_2, 0);
}
}
+
if (go->GetEntry() == GO_CORKIS_PRISON_3)
{
if (Creature* corki = go->FindNearestCreature(NPC_CORKI_3, 25, true))
@@ -444,18 +440,22 @@ public:
void Reset()
{
+ Say_Timer = 5000;
ReleasedFromCage = false;
}
void UpdateAI(uint32 const diff)
{
- if (Say_Timer <= diff && ReleasedFromCage)
+ if (ReleasedFromCage)
{
- me->ForcedDespawn();
- ReleasedFromCage = false;
+ if (Say_Timer <= diff)
+ {
+ me->DespawnOrUnsummon();
+ ReleasedFromCage = false;
+ }
+ else
+ Say_Timer -= diff;
}
- else
- Say_Timer -= diff;
}
void MovementInform(uint32 type, uint32 id)
@@ -565,9 +565,9 @@ public:
}
}
- void WaypointReached(uint32 PointId)
+ void WaypointReached(uint32 waypointId)
{
- switch(PointId)
+ switch (waypointId)
{
case 3:
{
@@ -603,7 +603,7 @@ public:
if (summoned->isTotem())
return;
- summoned->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ summoned->SetWalk(false);
summoned->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
summoned->AI()->AttackStart(me);
}
@@ -685,15 +685,11 @@ class go_warmaul_prison : public GameObjectScript
if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 5.0f))
{
- if (prisoner)
- {
- go->UseDoorOrButton();
- if (player)
- player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0);
+ go->UseDoorOrButton();
+ player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0);
- prisoner->AI()->Talk(SAY_FREE, player->GetGUID());
- prisoner->ForcedDespawn(6000);
- }
+ prisoner->AI()->Talk(SAY_FREE, player->GetGUID());
+ prisoner->DespawnOrUnsummon(6000);
}
return true;
}
diff --git a/src/server/scripts/Outland/netherstorm.cpp b/src/server/scripts/Outland/netherstorm.cpp
index 79811069402..afc18c71b92 100644
--- a/src/server/scripts/Outland/netherstorm.cpp
+++ b/src/server/scripts/Outland/netherstorm.cpp
@@ -78,7 +78,7 @@ public:
struct npc_manaforge_control_consoleAI : public ScriptedAI
{
- npc_manaforge_control_consoleAI(Creature* c) : ScriptedAI(c) {}
+ npc_manaforge_control_consoleAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Event_Timer;
uint32 Wave_Timer;
@@ -115,7 +115,7 @@ public:
if (someplayer)
{
- Unit* p = Unit::GetUnit((*me), someplayer);
+ Unit* p = Unit::GetUnit(*me, someplayer);
if (p && p->GetTypeId() == TYPEID_PLAYER)
{
switch (me->GetEntry())
@@ -142,7 +142,7 @@ public:
if (goConsole)
{
- if (GameObject* go = GameObject::GetGameObject((*me), goConsole))
+ if (GameObject* go = GameObject::GetGameObject(*me, goConsole))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
}
}
@@ -243,7 +243,7 @@ public:
case 1:
if (someplayer)
{
- Unit* u = Unit::GetUnit((*me), someplayer);
+ Unit* u = Unit::GetUnit(*me, someplayer);
if (u && u->GetTypeId() == TYPEID_PLAYER) DoScriptText(EMOTE_START, me, u);
}
Event_Timer = 60000;
@@ -271,14 +271,14 @@ public:
DoScriptText(EMOTE_COMPLETE, me);
if (someplayer)
{
- Unit* u = Unit::GetUnit((*me), someplayer);
+ Unit* u = Unit::GetUnit(*me, someplayer);
if (u && u->GetTypeId() == TYPEID_PLAYER)
CAST_PLR(u)->KilledMonsterCredit(me->GetEntry(), me->GetGUID());
DoCast(me, SPELL_DISABLE_VISUAL);
}
if (goConsole)
{
- if (GameObject* go = GameObject::GetGameObject((*me), goConsole))
+ if (GameObject* go = GameObject::GetGameObject(*me, goConsole))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
}
++Phase;
@@ -295,7 +295,6 @@ public:
}
}
};
-
};
/*######
@@ -350,7 +349,6 @@ public:
}
return true;
}
-
};
/*######
@@ -396,7 +394,7 @@ public:
struct npc_commander_dawnforgeAI : public ScriptedAI
{
- npc_commander_dawnforgeAI(Creature* c) : ScriptedAI(c) { Reset (); }
+ npc_commander_dawnforgeAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
uint64 PlayerGUID;
uint64 ardonisGUID;
@@ -633,7 +631,6 @@ public:
}
}
};
-
};
class at_commander_dawnforge : public AreaTriggerScript
@@ -650,7 +647,6 @@ public:
if (player->isAlive() && player->GetQuestStatus(QUEST_INFO_GATHERING) == QUEST_STATUS_INCOMPLETE)
{
Creature* Dawnforge = player->FindNearestCreature(CreatureEntry[1], 30.0f);
-
if (!Dawnforge)
return false;
@@ -659,7 +655,6 @@ public:
}
return false;
}
-
};
/*######
@@ -690,10 +685,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
creature->CastSpell(player, SPELL_PHASE_DISTRUPTOR, false);
player->CLOSE_GOSSIP_MENU();
@@ -714,7 +709,6 @@ public:
return true;
}
-
};
/*######
@@ -750,7 +744,7 @@ public:
struct mob_phase_hunterAI : public ScriptedAI
{
- mob_phase_hunterAI(Creature* c) : ScriptedAI(c) {}
+ mob_phase_hunterAI(Creature* creature) : ScriptedAI(creature) {}
bool Weak;
bool Materialize;
@@ -818,7 +812,7 @@ public:
}
if (!UnitsWithMana.empty())
{
- DoCast(SelectRandomContainerElement(UnitsWithMana), SPELL_MANA_BURN);
+ DoCast(Trinity::Containers::SelectRandomContainerElement(UnitsWithMana), SPELL_MANA_BURN);
ManaBurnTimer = 8000 + (rand() % 10 * 1000); // 8-18 sec cd
}
else
@@ -849,7 +843,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -888,8 +881,7 @@ public:
struct npc_bessyAI : public npc_escortAI
{
-
- npc_bessyAI(Creature* c) : npc_escortAI(c) {}
+ npc_bessyAI(Creature* creature) : npc_escortAI(creature) {}
void JustDied(Unit* /*killer*/)
{
@@ -897,34 +889,32 @@ public:
player->FailQuest(Q_ALMABTRIEB);
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 3: //first spawn
me->SummonCreature(SPAWN_FIRST, 2449.67f, 2183.11f, 96.85f, 6.20f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_FIRST, 2449.53f, 2184.43f, 96.36f, 6.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_FIRST, 2449.85f, 2186.34f, 97.57f, 6.08f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
-
case 7:
me->SummonCreature(SPAWN_SECOND, 2309.64f, 2186.24f, 92.25f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_SECOND, 2309.25f, 2183.46f, 91.75f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
-
case 12:
- if (player)
- player->GroupEventHappens(Q_ALMABTRIEB, me);
+ player->GroupEventHappens(Q_ALMABTRIEB, me);
if (me->FindNearestCreature(N_THADELL, 30))
- DoScriptText(SAY_THADELL_1, me); break;
+ DoScriptText(SAY_THADELL_1, me);
+ break;
case 13:
if (me->FindNearestCreature(N_THADELL, 30))
- DoScriptText(SAY_THADELL_2, me, player); break;
+ DoScriptText(SAY_THADELL_2, me, player);
+ break;
}
}
@@ -937,9 +927,7 @@ public:
{
me->RestoreFaction();
}
-
};
-
};
/*######
@@ -975,13 +963,13 @@ public:
uiTakeTimer=3000;
}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 7:
case 17:
@@ -996,16 +984,14 @@ public:
}
break;
case 36: //return and quest_complete
- if (player)
- player->CompleteQuest(QUEST_MARK_V_IS_ALIVE);
+ player->CompleteQuest(QUEST_MARK_V_IS_ALIVE);
break;
}
}
void JustDied(Unit* /*killer*/)
{
- Player* player = GetPlayerForEscort();
- if (player)
+ if (Player* player = GetPlayerForEscort())
player->FailQuest(QUEST_MARK_V_IS_ALIVE);
}
@@ -1018,12 +1004,12 @@ public:
if (uiTakeTimer < uiDiff)
{
me->HandleEmoteCommand(EMOTE_STATE_NONE);
- if (GameObject* pGO = GetClosestGameObjectWithEntry(me, GO_DRAENEI_MACHINE, INTERACTION_DISTANCE))
+ if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_DRAENEI_MACHINE, INTERACTION_DISTANCE))
{
SetEscortPaused(false);
bTake=false;
uiTakeTimer = 3000;
- pGO->Delete();
+ go->Delete();
}
}
else
@@ -1071,7 +1057,7 @@ class go_captain_tyralius_prison : public GameObjectScript
player->KilledMonsterCredit(NPC_CAPTAIN_TYRALIUS, 0);
tyralius->AI()->Talk(SAY_FREE);
- tyralius->ForcedDespawn(8000);
+ tyralius->DespawnOrUnsummon(8000);
}
return true;
}
diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp
index 19c4754c4fd..340049ba4fa 100644
--- a/src/server/scripts/Outland/shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/shadowmoon_valley.cpp
@@ -75,7 +75,7 @@ public:
struct mob_mature_netherwing_drakeAI : public ScriptedAI
{
- mob_mature_netherwing_drakeAI(Creature* c) : ScriptedAI(c) { }
+ mob_mature_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { }
uint64 uiPlayerGUID;
@@ -96,12 +96,12 @@ public:
CastTimer = 5000;
}
- void SpellHit(Unit* pCaster, SpellInfo const* pSpell)
+ void SpellHit(Unit* pCaster, SpellInfo const* spell)
{
if (bCanEat || bIsEating)
return;
- if (pCaster->GetTypeId() == TYPEID_PLAYER && pSpell->Id == SPELL_PLACE_CARCASS && !me->HasAura(SPELL_JUST_EATEN))
+ if (pCaster->GetTypeId() == TYPEID_PLAYER && spell->Id == SPELL_PLACE_CARCASS && !me->HasAura(SPELL_JUST_EATEN))
{
uiPlayerGUID = pCaster->GetGUID();
bCanEat = true;
@@ -179,7 +179,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*###
@@ -207,7 +206,7 @@ public:
struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
{
- mob_enslaved_netherwing_drakeAI(Creature* c) : ScriptedAI(c)
+ mob_enslaved_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature)
{
PlayerGUID = 0;
Tapped = false;
@@ -224,7 +223,7 @@ public:
me->setFaction(FACTION_DEFAULT);
FlyTimer = 10000;
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->SetVisible(true);
}
@@ -242,7 +241,6 @@ public:
DoCast(caster, SPELL_FORCE_OF_NELTHARAKU, true);
Unit* Dragonmaw = me->FindNearestCreature(CREATURE_DRAGONMAW_SUBJUGATOR, 50);
-
if (Dragonmaw)
{
me->AddThreat(Dragonmaw, 100000.0f);
@@ -264,14 +262,14 @@ public:
{
if (PlayerGUID)
{
- Unit* player = Unit::GetUnit((*me), PlayerGUID);
+ Unit* player = Unit::GetUnit(*me, PlayerGUID);
if (player)
DoCast(player, SPELL_FORCE_OF_NELTHARAKU, true);
PlayerGUID = 0;
}
me->SetVisible(false);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(false);
me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
me->RemoveCorpse();
}
@@ -309,7 +307,7 @@ public:
pos.m_positionZ += 25;
}
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(1, pos);
}
}
@@ -321,7 +319,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*#####
@@ -340,7 +337,7 @@ public:
struct mob_dragonmaw_peonAI : public ScriptedAI
{
- mob_dragonmaw_peonAI(Creature* c) : ScriptedAI(c) {}
+ mob_dragonmaw_peonAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
bool Tapped;
@@ -366,7 +363,7 @@ public:
float x, y, z;
caster->GetClosePoint(x, y, z, me->GetObjectSize());
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
me->GetMotionMaster()->MovePoint(1, x, y, z);
}
}
@@ -401,7 +398,6 @@ public:
}
}
};
-
};
/*######
@@ -413,10 +409,10 @@ class npc_drake_dealer_hurlunk : public CreatureScript
public:
npc_drake_dealer_hurlunk() : CreatureScript("npc_drake_dealer_hurlunk") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -431,7 +427,6 @@ public:
return true;
}
-
};
/*######
@@ -446,10 +441,10 @@ class npcs_flanis_swiftwing_and_kagrosh : public CreatureScript
public:
npcs_flanis_swiftwing_and_kagrosh() : CreatureScript("npcs_flanis_swiftwing_and_kagrosh") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 30658, 1, NULL);
@@ -459,7 +454,7 @@ public:
player->PlayerTalkClass->ClearMenus();
}
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ if (action == GOSSIP_ACTION_INFO_DEF+2)
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 30659, 1, NULL);
@@ -483,7 +478,6 @@ public:
return true;
}
-
};
/*######
@@ -504,10 +498,10 @@ class npc_murkblood_overseer : public CreatureScript
public:
npc_murkblood_overseer() : CreatureScript("npc_murkblood_overseer") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -552,7 +546,6 @@ public:
player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
return true;
}
-
};
/*######
@@ -572,10 +565,10 @@ class npc_oronok_tornheart : public CreatureScript
public:
npc_oronok_tornheart() : CreatureScript("npc_oronok_tornheart") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE:
player->GetSession()->SendListInventory(creature->GetGUID());
@@ -628,7 +621,6 @@ public:
return true;
}
-
};
/*####
@@ -721,7 +713,7 @@ public:
struct npc_overlord_morghorAI : public ScriptedAI
{
- npc_overlord_morghorAI(Creature* c) : ScriptedAI(c) {}
+ npc_overlord_morghorAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
uint64 IllidanGUID;
@@ -766,9 +758,8 @@ public:
uint32 NextStep(uint32 Step)
{
- Unit* player = Unit::GetUnit((*me), PlayerGUID);
-
- Unit* Illi = Unit::GetUnit((*me), IllidanGUID);
+ Player* player = Unit::GetPlayer(*me, PlayerGUID);
+ Unit* Illi = Unit::GetUnit(*me, IllidanGUID);
if (!player || !Illi)
{
@@ -778,95 +769,178 @@ public:
switch (Step)
{
- case 0: return 0; break;
- case 1: me->GetMotionMaster()->MovePoint(0, -5104.41f, 595.297f, 85.6838f); return 9000; break;
- case 2: DoScriptText(OVERLORD_YELL_1, me, player); return 4500; break;
- case 3: me->SetInFront(player); return 3200; break;
- case 4: DoScriptText(OVERLORD_SAY_2, me, player); return 2000; break;
- case 5: Illi->SetVisible(true);
- Illi->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); return 350; break;
- case 6:
- Illi->CastSpell(Illi, SPELL_ONE, true);
- Illi->SetTarget(me->GetGUID());
- me->SetTarget(IllidanGUID);
- return 2000; break;
- case 7: DoScriptText(OVERLORD_YELL_2, me); return 4500; break;
- case 8: me->SetUInt32Value(UNIT_FIELD_BYTES_1, 8); return 2500; break;
- case 9: DoScriptText(OVERLORD_SAY_3, me); return 6500; break;
- case 10: DoScriptText(LORD_ILLIDAN_SAY_1, Illi); return 5000; break;
- case 11: DoScriptText(OVERLORD_SAY_4, me, player); return 6000; break;
- case 12: DoScriptText(LORD_ILLIDAN_SAY_2, Illi); return 5500; break;
- case 13: DoScriptText(LORD_ILLIDAN_SAY_3, Illi); return 4000; break;
- case 14: Illi->SetTarget(PlayerGUID); return 1500; break;
- case 15: DoScriptText(LORD_ILLIDAN_SAY_4, Illi); return 1500; break;
- case 16:
- if (player)
- {
- Illi->CastSpell(player, SPELL_TWO, true);
- player->RemoveAurasDueToSpell(SPELL_THREE);
- player->RemoveAurasDueToSpell(SPELL_FOUR);
+ case 0:
+ return 0;
+ break;
+ case 1:
+ me->GetMotionMaster()->MovePoint(0, -5104.41f, 595.297f, 85.6838f);
+ return 9000;
+ break;
+ case 2:
+ DoScriptText(OVERLORD_YELL_1, me, player);
+ return 4500;
+ break;
+ case 3:
+ me->SetInFront(player);
+ return 3200;
+ break;
+ case 4:
+ DoScriptText(OVERLORD_SAY_2, me, player);
+ return 2000;
+ break;
+ case 5:
+ Illi->SetVisible(true);
+ Illi->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ return 350;
+ break;
+ case 6:
+ Illi->CastSpell(Illi, SPELL_ONE, true);
+ Illi->SetTarget(me->GetGUID());
+ me->SetTarget(IllidanGUID);
+ return 2000;
+ break;
+ case 7:
+ DoScriptText(OVERLORD_YELL_2, me);
+ return 4500;
+ break;
+ case 8:
+ me->SetUInt32Value(UNIT_FIELD_BYTES_1, 8);
+ return 2500;
+ break;
+ case 9:
+ DoScriptText(OVERLORD_SAY_3, me);
+ return 6500;
+ break;
+ case 10:
+ DoScriptText(LORD_ILLIDAN_SAY_1, Illi);
return 5000;
- }else{
- CAST_PLR(player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100;
- }
- break;
- case 17: DoScriptText(LORD_ILLIDAN_SAY_5, Illi); return 5000; break;
- case 18: DoScriptText(LORD_ILLIDAN_SAY_6, Illi); return 5000; break;
- case 19: DoScriptText(LORD_ILLIDAN_SAY_7, Illi); return 5000; break;
- case 20:
- Illi->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- Illi->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- return 500; break;
- case 21: DoScriptText(OVERLORD_SAY_5, me); return 500; break;
- case 22:
- Illi->SetVisible(false);
- Illi->setDeathState(JUST_DIED);
- return 1000; break;
- case 23: me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); return 2000; break;
- case 24: me->SetTarget(PlayerGUID); return 5000; break;
- case 25: DoScriptText(OVERLORD_SAY_6, me); return 2000; break;
- case 26:
- if (player)
- CAST_PLR(player)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, me);
- return 6000; break;
- case 27:
- {
- Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
- if (Yarzill)
- Yarzill->SetTarget(PlayerGUID);
- return 500; }
- break;
- case 28:
- player->RemoveAurasDueToSpell(SPELL_TWO);
- player->RemoveAurasDueToSpell(41519);
- player->CastSpell(player, SPELL_THREE, true);
- player->CastSpell(player, SPELL_FOUR, true);
- return 1000; break;
- case 29:
- {
- Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
- if (Yarzill)
- DoScriptText(YARZILL_THE_MERC_SAY, Yarzill, player);
- return 5000; }
- break;
- case 30:
- {
- Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
- if (Yarzill)
- Yarzill->SetTarget(0);
- return 5000; }
- break;
- case 31:
- {
- Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
- if (Yarzill)
- Yarzill->CastSpell(player, 41540, true);
- return 1000;}
- break;
- case 32: me->GetMotionMaster()->MovePoint(0, -5085.77f, 577.231f, 86.6719f); return 5000; break;
- case 33: Reset(); return 100; break;
-
- default : return 0;
+ break;
+ case 11:
+ DoScriptText(OVERLORD_SAY_4, me, player);
+ return 6000;
+ break;
+ case 12:
+ DoScriptText(LORD_ILLIDAN_SAY_2, Illi);
+ return 5500;
+ break;
+ case 13:
+ DoScriptText(LORD_ILLIDAN_SAY_3, Illi);
+ return 4000;
+ break;
+ case 14:
+ Illi->SetTarget(PlayerGUID);
+ return 1500;
+ break;
+ case 15:
+ DoScriptText(LORD_ILLIDAN_SAY_4, Illi);
+ return 1500;
+ break;
+ case 16:
+ if (player)
+ {
+ Illi->CastSpell(player, SPELL_TWO, true);
+ player->RemoveAurasDueToSpell(SPELL_THREE);
+ player->RemoveAurasDueToSpell(SPELL_FOUR);
+ return 5000;
+ }
+ else
+ {
+ player->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
+ Step = 30;
+ return 100;
+ }
+ break;
+ case 17:
+ DoScriptText(LORD_ILLIDAN_SAY_5, Illi);
+ return 5000;
+ break;
+ case 18:
+ DoScriptText(LORD_ILLIDAN_SAY_6, Illi);
+ return 5000;
+ break;
+ case 19:
+ DoScriptText(LORD_ILLIDAN_SAY_7, Illi);
+ return 5000;
+ break;
+ case 20:
+ Illi->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
+ Illi->SetDisableGravity(true);
+ return 500;
+ break;
+ case 21:
+ DoScriptText(OVERLORD_SAY_5, me);
+ return 500;
+ break;
+ case 22:
+ Illi->SetVisible(false);
+ Illi->setDeathState(JUST_DIED);
+ return 1000;
+ break;
+ case 23:
+ me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ return 2000;
+ break;
+ case 24:
+ me->SetTarget(PlayerGUID);
+ return 5000;
+ break;
+ case 25:
+ DoScriptText(OVERLORD_SAY_6, me);
+ return 2000;
+ break;
+ case 26:
+ player->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, me);
+ return 6000;
+ break;
+ case 27:
+ {
+ Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
+ if (Yarzill)
+ Yarzill->SetTarget(PlayerGUID);
+ return 500;
+ }
+ break;
+ case 28:
+ player->RemoveAurasDueToSpell(SPELL_TWO);
+ player->RemoveAurasDueToSpell(41519);
+ player->CastSpell(player, SPELL_THREE, true);
+ player->CastSpell(player, SPELL_FOUR, true);
+ return 1000;
+ break;
+ case 29:
+ {
+ Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
+ if (Yarzill)
+ DoScriptText(YARZILL_THE_MERC_SAY, Yarzill, player);
+ return 5000;
+ }
+ break;
+ case 30:
+ {
+ Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
+ if (Yarzill)
+ Yarzill->SetTarget(0);
+ return 5000;
+ }
+ break;
+ case 31:
+ {
+ Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50);
+ if (Yarzill)
+ Yarzill->CastSpell(player, 41540, true);
+ return 1000;
+ }
+ break;
+ case 32:
+ me->GetMotionMaster()->MovePoint(0, -5085.77f, 577.231f, 86.6719f); return 5000;
+ break;
+ case 33:
+ Reset();
+ return 100;
+ break;
+ default :
+ return 0;
+ break;
}
}
@@ -878,13 +952,10 @@ public:
if (ConversationTimer <= diff)
{
if (Event && IllidanGUID && PlayerGUID)
- {
ConversationTimer = NextStep(++Step);
- }
} else ConversationTimer -= diff;
}
};
-
};
/*####
@@ -948,14 +1019,13 @@ public:
m_uiHealingTimer = 0;
}
- void WaypointReached(uint32 uiPointId)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (uiPointId)
+ switch (waypointId)
{
case 13:
DoScriptText(SAY_WIL_PROGRESS1, me, player);
@@ -1002,7 +1072,6 @@ public:
break;
case 50:
DoScriptText(SAY_WIL_END, me, player);
-
player->GroupEventHappens(QUEST_ESCAPE_COILSCAR, me);
break;
}
@@ -1061,7 +1130,6 @@ public:
}
}
};
-
};
/*#####
@@ -1176,7 +1244,7 @@ public:
struct mob_torloth_the_magnificentAI : public ScriptedAI
{
- mob_torloth_the_magnificentAI(Creature* c) : ScriptedAI(c) {}
+ mob_torloth_the_magnificentAI(Creature* creature) : ScriptedAI(creature) {}
uint32 AnimationTimer, SpellTimer1, SpellTimer2, SpellTimer3;
@@ -1265,7 +1333,6 @@ public:
me->CombatStop();
} else if (!Timers)
{
-
SpellTimer1 = SpawnCast[6].Timer1;
SpellTimer2 = SpawnCast[7].Timer1;
SpellTimer3 = SpawnCast[8].Timer1;
@@ -1296,32 +1363,29 @@ public:
DoMeleeAttackIfReady();
}
- void JustDied(Unit* slayer)
+ void JustDied(Unit* killer)
{
- if (slayer)
- switch (slayer->GetTypeId())
- {
- case TYPEID_UNIT:
- if (Unit* owner = slayer->GetOwner())
- if (owner->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me);
- break;
-
- case TYPEID_PLAYER:
- CAST_PLR(slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me);
- break;
- default:
- break;
- }
+ switch (killer->GetTypeId())
+ {
+ case TYPEID_UNIT:
+ if (Unit* owner = killer->GetOwner())
+ if (owner->GetTypeId() == TYPEID_PLAYER)
+ CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me);
+ break;
+ case TYPEID_PLAYER:
+ CAST_PLR(killer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me);
+ break;
+ default:
+ break;
+ }
if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID)))
{
- DoScriptText(END_TEXT, LordIllidan, slayer);
+ DoScriptText(END_TEXT, LordIllidan, killer);
LordIllidan->AI()->EnterEvadeMode();
}
}
};
-
};
/*#####
@@ -1340,7 +1404,7 @@ public:
struct npc_lord_illidan_stormrageAI : public ScriptedAI
{
- npc_lord_illidan_stormrageAI(Creature* c) : ScriptedAI(c) {}
+ npc_lord_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
@@ -1467,7 +1531,6 @@ public:
EnterEvadeMode();
}
};
-
};
/*######
@@ -1486,7 +1549,7 @@ public:
struct mob_illidari_spawnAI : public ScriptedAI
{
- mob_illidari_spawnAI(Creature* c) : ScriptedAI(c) {}
+ mob_illidari_spawnAI(Creature* creature) : ScriptedAI(creature) {}
uint64 LordIllidanGUID;
uint32 SpellTimer1, SpellTimer2, SpellTimer3;
@@ -1499,7 +1562,8 @@ public:
}
void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* /*slayer*/)
+
+ void JustDied(Unit* /*killer*/)
{
me->RemoveCorpse();
if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID)))
@@ -1586,7 +1650,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
void npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI::SummonNextWave()
@@ -1680,7 +1743,6 @@ public:
}
return true;
}
-
};
/*####
@@ -1739,9 +1801,9 @@ public:
struct npc_enraged_spiritAI : public ScriptedAI
{
- npc_enraged_spiritAI(Creature* c) : ScriptedAI(c) {}
+ npc_enraged_spiritAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset() { }
+ void Reset() { }
void EnterCombat(Unit* /*who*/){}
@@ -1753,7 +1815,8 @@ public:
uint32 entry = 0;
uint32 credit = 0;
- switch (me->GetEntry()) {
+ switch (me->GetEntry())
+ {
case ENTRY_ENRAGED_FIRE_SPIRIT:
entry = ENTRY_FIERY_SOUL;
//credit = SPELL_FIERY_SOUL_CAPTURED_CREDIT;
@@ -1801,7 +1864,6 @@ public:
}
}
};
-
};
/*#####
diff --git a/src/server/scripts/Outland/shattrath_city.cpp b/src/server/scripts/Outland/shattrath_city.cpp
index ed68f55aeb5..79cce47e16c 100644
--- a/src/server/scripts/Outland/shattrath_city.cpp
+++ b/src/server/scripts/Outland/shattrath_city.cpp
@@ -55,10 +55,10 @@ class npc_raliq_the_drunk : public CreatureScript
public:
npc_raliq_the_drunk() : CreatureScript("npc_raliq_the_drunk") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->setFaction(FACTION_HOSTILE_RD);
@@ -83,9 +83,9 @@ public:
struct npc_raliq_the_drunkAI : public ScriptedAI
{
- npc_raliq_the_drunkAI(Creature* c) : ScriptedAI(c)
+ npc_raliq_the_drunkAI(Creature* creature) : ScriptedAI(creature)
{
- m_uiNormFaction = c->getFaction();
+ m_uiNormFaction = creature->getFaction();
}
uint32 m_uiNormFaction;
@@ -111,7 +111,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -152,7 +151,7 @@ public:
struct npc_salsalabimAI : public ScriptedAI
{
- npc_salsalabimAI(Creature* c) : ScriptedAI(c) {}
+ npc_salsalabimAI(Creature* creature) : ScriptedAI(creature) {}
uint32 MagneticPull_Timer;
@@ -187,12 +186,11 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*
##################################################
-Shattrath City Flask Vendors provides flasks to people exalted with 3 factions:
+Shattrath City Flask Vendors provides flasks to people exalted with 3 fActions:
Haldor the Compulsive
Arcanist Xorith
Both sell special flasks for use in Outlands 25man raids only,
@@ -206,10 +204,10 @@ class npc_shattrathflaskvendors : public CreatureScript
public:
npc_shattrathflaskvendors() : CreatureScript("npc_shattrathflaskvendors") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -247,7 +245,6 @@ public:
return true;
}
-
};
/*######
@@ -261,10 +258,10 @@ class npc_zephyr : public CreatureScript
public:
npc_zephyr() : CreatureScript("npc_zephyr") { }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
player->CastSpell(player, 37778, false);
return true;
@@ -279,7 +276,6 @@ public:
return true;
}
-
};
/*######
@@ -321,41 +317,82 @@ public:
struct npc_kservantAI : public npc_escortAI
{
public:
- npc_kservantAI(Creature* c) : npc_escortAI(c) {}
+ npc_kservantAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 0: DoScriptText(SAY1, me, player); break;
- case 4: DoScriptText(WHISP1, me, player); break;
- case 6: DoScriptText(WHISP2, me, player); break;
- case 7: DoScriptText(WHISP3, me, player); break;
- case 8: DoScriptText(WHISP4, me, player); break;
- case 17: DoScriptText(WHISP5, me, player); break;
- case 18: DoScriptText(WHISP6, me, player); break;
- case 19: DoScriptText(WHISP7, me, player); break;
- case 33: DoScriptText(WHISP8, me, player); break;
- case 34: DoScriptText(WHISP9, me, player); break;
- case 35: DoScriptText(WHISP10, me, player); break;
- case 36: DoScriptText(WHISP11, me, player); break;
- case 43: DoScriptText(WHISP12, me, player); break;
- case 44: DoScriptText(WHISP13, me, player); break;
- case 49: DoScriptText(WHISP14, me, player); break;
- case 50: DoScriptText(WHISP15, me, player); break;
- case 51: DoScriptText(WHISP16, me, player); break;
- case 52: DoScriptText(WHISP17, me, player); break;
- case 53: DoScriptText(WHISP18, me, player); break;
- case 54: DoScriptText(WHISP19, me, player); break;
- case 55: DoScriptText(WHISP20, me, player); break;
- case 56: DoScriptText(WHISP21, me, player);
- if (player)
- player->GroupEventHappens(10211, me);
+ case 0:
+ DoScriptText(SAY1, me, player);
+ break;
+ case 4:
+ DoScriptText(WHISP1, me, player);
+ break;
+ case 6:
+ DoScriptText(WHISP2, me, player);
+ break;
+ case 7:
+ DoScriptText(WHISP3, me, player);
+ break;
+ case 8:
+ DoScriptText(WHISP4, me, player);
+ break;
+ case 17:
+ DoScriptText(WHISP5, me, player);
+ break;
+ case 18:
+ DoScriptText(WHISP6, me, player);
+ break;
+ case 19:
+ DoScriptText(WHISP7, me, player);
+ break;
+ case 33:
+ DoScriptText(WHISP8, me, player);
+ break;
+ case 34:
+ DoScriptText(WHISP9, me, player);
+ break;
+ case 35:
+ DoScriptText(WHISP10, me, player);
+ break;
+ case 36:
+ DoScriptText(WHISP11, me, player);
+ break;
+ case 43:
+ DoScriptText(WHISP12, me, player);
+ break;
+ case 44:
+ DoScriptText(WHISP13, me, player);
+ break;
+ case 49:
+ DoScriptText(WHISP14, me, player);
+ break;
+ case 50:
+ DoScriptText(WHISP15, me, player);
+ break;
+ case 51:
+ DoScriptText(WHISP16, me, player);
+ break;
+ case 52:
+ DoScriptText(WHISP17, me, player);
+ break;
+ case 53:
+ DoScriptText(WHISP18, me, player);
+ break;
+ case 54:
+ DoScriptText(WHISP19, me, player);
+ break;
+ case 55:
+ DoScriptText(WHISP20, me, player);
+ break;
+ case 56:
+ DoScriptText(WHISP21, me, player);
+ player->GroupEventHappens(10211, me);
break;
}
}
@@ -406,7 +443,7 @@ public:
struct npc_dirty_larryAI : public ScriptedAI
{
- npc_dirty_larryAI(Creature* c) : ScriptedAI(c) {}
+ npc_dirty_larryAI(Creature* creature) : ScriptedAI(creature) {}
bool Event;
bool Attack;
@@ -543,10 +580,10 @@ public:
}
};
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
CAST_AI(npc_dirty_larry::npc_dirty_larryAI, creature->AI())->Event = true;
CAST_AI(npc_dirty_larry::npc_dirty_larryAI, creature->AI())->PlayerGUID = player->GetGUID();
@@ -572,7 +609,6 @@ public:
{
return new npc_dirty_larryAI (creature);
}
-
};
/*######
@@ -587,12 +623,12 @@ class npc_ishanah : public CreatureScript
public:
npc_ishanah() : CreatureScript("npc_ishanah") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
player->SEND_GOSSIP_MENU(9458, creature->GetGUID());
- else if (uiAction == GOSSIP_ACTION_INFO_DEF+2)
+ else if (action == GOSSIP_ACTION_INFO_DEF+2)
player->SEND_GOSSIP_MENU(9459, creature->GetGUID());
return true;
@@ -610,7 +646,6 @@ public:
return true;
}
-
};
/*######
@@ -629,10 +664,10 @@ class npc_khadgar : public CreatureScript
public:
npc_khadgar() : CreatureScript("npc_khadgar") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, KHADGAR_GOSSIP_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -678,7 +713,6 @@ public:
return true;
}
-
};
void AddSC_shattrath_city()
diff --git a/src/server/scripts/Outland/terokkar_forest.cpp b/src/server/scripts/Outland/terokkar_forest.cpp
index 043b74b6924..6c2214cde37 100644
--- a/src/server/scripts/Outland/terokkar_forest.cpp
+++ b/src/server/scripts/Outland/terokkar_forest.cpp
@@ -62,7 +62,7 @@ public:
struct mob_unkor_the_ruthlessAI : public ScriptedAI
{
- mob_unkor_the_ruthlessAI(Creature* c) : ScriptedAI(c) {}
+ mob_unkor_the_ruthlessAI(Creature* creature) : ScriptedAI(creature) {}
bool CanDoQuest;
uint32 UnkorUnfriendly_Timer;
@@ -99,12 +99,12 @@ public:
{
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
- Player* pGroupie = itr->getSource();
- if (pGroupie &&
- pGroupie->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE &&
- pGroupie->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10)
+ Player* groupie = itr->getSource();
+ if (groupie &&
+ groupie->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE &&
+ groupie->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10)
{
- pGroupie->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE);
+ groupie->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE);
if (!CanDoQuest)
CanDoQuest = true;
}
@@ -150,7 +150,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -169,7 +168,7 @@ public:
struct mob_infested_root_walkerAI : public ScriptedAI
{
- mob_infested_root_walkerAI(Creature* c) : ScriptedAI(c) {}
+ mob_infested_root_walkerAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() { }
void EnterCombat(Unit* /*who*/) { }
@@ -183,7 +182,6 @@ public:
DoCast(me, 39130, true);
}
};
-
};
/*######
@@ -202,15 +200,15 @@ public:
struct npc_skywingAI : public npc_escortAI
{
public:
- npc_skywingAI(Creature* c) : npc_escortAI(c) {}
+ npc_skywingAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 8:
player->AreaExploredOrEventHappens(10898);
@@ -245,7 +243,6 @@ public:
npc_escortAI::UpdateAI(diff);
}
};
-
};
/*######
@@ -264,7 +261,7 @@ public:
struct mob_rotting_forest_ragerAI : public ScriptedAI
{
- mob_rotting_forest_ragerAI(Creature* c) : ScriptedAI(c) {}
+ mob_rotting_forest_ragerAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() { }
void EnterCombat(Unit* /*who*/) { }
@@ -278,7 +275,6 @@ public:
DoCast(me, 39134, true);
}
};
-
};
/*######
@@ -304,34 +300,35 @@ public:
struct mob_netherweb_victimAI : public ScriptedAI
{
- mob_netherweb_victimAI(Creature* c) : ScriptedAI(c) {}
+ mob_netherweb_victimAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() { }
void EnterCombat(Unit* /*who*/) { }
void MoveInLineOfSight(Unit* /*who*/) { }
- void JustDied(Unit* Killer)
+ void JustDied(Unit* killer)
{
- if (Killer->GetTypeId() == TYPEID_PLAYER)
+ Player* player = killer->ToPlayer();
+ if (!player)
+ return;
+
+ if (player->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE)
{
- if (CAST_PLR(Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE)
+ if (rand()%100 < 25)
{
- if (rand()%100 < 25)
- {
- me->SummonCreature(QUEST_TARGET, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- CAST_PLR(Killer)->KilledMonsterCredit(QUEST_TARGET, 0);
- }
- else
- me->SummonCreature(netherwebVictims[rand()%6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(QUEST_TARGET, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ player->KilledMonsterCredit(QUEST_TARGET, 0);
+ }
+ else
+ me->SummonCreature(netherwebVictims[rand()%6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- if (rand()%100 < 75)
- me->SummonCreature(netherwebVictims[rand()%6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ if (rand()%100 < 75)
me->SummonCreature(netherwebVictims[rand()%6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- }
+
+ me->SummonCreature(netherwebVictims[rand()%6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
}
}
};
-
};
/*######
@@ -358,15 +355,15 @@ class npc_floon : public CreatureScript
public:
npc_floon() : CreatureScript("npc_floon") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FLOON2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(9443, creature->GetGUID());
}
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->setFaction(FACTION_HOSTILE_FL);
@@ -392,9 +389,9 @@ public:
struct npc_floonAI : public ScriptedAI
{
- npc_floonAI(Creature* c) : ScriptedAI(c)
+ npc_floonAI(Creature* creature) : ScriptedAI(creature)
{
- m_uiNormFaction = c->getFaction();
+ m_uiNormFaction = creature->getFaction();
}
uint32 m_uiNormFaction;
@@ -439,7 +436,6 @@ public:
DoMeleeAttackIfReady();
}
};
-
};
/*######
@@ -465,39 +461,44 @@ public:
struct npc_isla_starmaneAI : public npc_escortAI
{
- npc_isla_starmaneAI(Creature* c) : npc_escortAI(c) {}
+ npc_isla_starmaneAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
- case 0:
- {
- GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 10);
- if (Cage)
- Cage->SetGoState(GO_STATE_ACTIVE);
- }
- break;
- case 2: DoScriptText(SAY_PROGRESS_1, me, player); break;
- case 5: DoScriptText(SAY_PROGRESS_2, me, player); break;
- case 6: DoScriptText(SAY_PROGRESS_3, me, player); break;
- case 29:DoScriptText(SAY_PROGRESS_4, me, player);
- if (player)
- {
+ case 0:
+ if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 10))
+ Cage->SetGoState(GO_STATE_ACTIVE);
+ break;
+ case 2:
+ DoScriptText(SAY_PROGRESS_1, me, player);
+ break;
+ case 5:
+ DoScriptText(SAY_PROGRESS_2, me, player);
+ break;
+ case 6:
+ DoScriptText(SAY_PROGRESS_3, me, player);
+ break;
+ case 29:
+ DoScriptText(SAY_PROGRESS_4, me, player);
if (player->GetTeam() == ALLIANCE)
player->GroupEventHappens(QUEST_EFTW_A, me);
else if (player->GetTeam() == HORDE)
player->GroupEventHappens(QUEST_EFTW_H, me);
- }
- me->SetInFront(player); break;
- case 30: me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break;
- case 31: DoCast(me, SPELL_CAT);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); break;
+ me->SetInFront(player);
+ break;
+ case 30:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
+ break;
+ case 31:
+ DoCast(me, SPELL_CAT);
+ me->SetWalk(false);
+ break;
}
}
@@ -532,7 +533,6 @@ public:
{
return new npc_isla_starmaneAI(creature);
}
-
};
/*######
@@ -548,12 +548,12 @@ class go_skull_pile : public GameObjectScript
public:
go_skull_pile() : GameObjectScript("go_skull_pile") { }
- bool OnGossipSelect(Player* player, GameObject* go, uint32 uiSender, uint32 uiAction)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiSender)
+ switch (sender)
{
- case GOSSIP_SENDER_MAIN: SendActionMenu(player, go, uiAction); break;
+ case GOSSIP_SENDER_MAIN: SendActionMenu(player, go, action); break;
}
return true;
}
@@ -572,9 +572,9 @@ public:
return true;
}
- void SendActionMenu(Player* player, GameObject* /*go*/, uint32 uiAction)
+ void SendActionMenu(Player* player, GameObject* /*go*/, uint32 action)
{
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
player->CastSpell(player, 40642, false);
@@ -606,10 +606,10 @@ class npc_slim : public CreatureScript
public:
npc_slim() : CreatureScript("npc_slim") { }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
@@ -627,7 +627,6 @@ public:
return true;
}
-
};
/*########
@@ -667,23 +666,22 @@ public:
struct npc_akunoAI : public npc_escortAI
{
- npc_akunoAI(Creature* c) : npc_escortAI(c) {}
+ npc_akunoAI(Creature* creature) : npc_escortAI(creature) {}
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 3:
me->SummonCreature(NPC_CABAL_SKRIMISHER, -2795.99f, 5420.33f, -34.53f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(NPC_CABAL_SKRIMISHER, -2793.55f, 5412.79f, -34.53f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 11:
- if (player && player->GetTypeId() == TYPEID_PLAYER)
+ if (player->GetTypeId() == TYPEID_PLAYER)
player->GroupEventHappens(QUEST_ESCAPING_THE_TOMB, me);
break;
}
@@ -694,7 +692,6 @@ public:
summon->AI()->AttackStart(me);
}
};
-
};
void AddSC_terokkar_forest()
diff --git a/src/server/scripts/Outland/zangarmarsh.cpp b/src/server/scripts/Outland/zangarmarsh.cpp
index fc7a3f4d667..90ce070ecc7 100644
--- a/src/server/scripts/Outland/zangarmarsh.cpp
+++ b/src/server/scripts/Outland/zangarmarsh.cpp
@@ -56,6 +56,7 @@ public:
{
if (creature->GetEntry() == 17900)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_ASH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+
if (creature->GetEntry() == 17901)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_KEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
}
@@ -64,10 +65,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
+ if (action == GOSSIP_ACTION_INFO_DEF+1)
{
creature->setPowerType(POWER_MANA);
creature->SetMaxPower(POWER_MANA, 200); //set a "fake" mana value, we can't depend on database doing it in this case
@@ -149,9 +150,9 @@ public:
struct npc_cooshcooshAI : public ScriptedAI
{
- npc_cooshcooshAI(Creature* c) : ScriptedAI(c)
+ npc_cooshcooshAI(Creature* creature) : ScriptedAI(creature)
{
- m_uiNormFaction = c->getFaction();
+ m_uiNormFaction = creature->getFaction();
}
uint32 m_uiNormFaction;
@@ -195,10 +196,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF)
+ if (action == GOSSIP_ACTION_INFO_DEF)
{
player->CLOSE_GOSSIP_MENU();
creature->setFaction(FACTION_HOSTILE_CO);
@@ -231,10 +232,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -284,10 +285,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_TRADE)
+ if (action == GOSSIP_ACTION_TRADE)
player->GetSession()->SendListInventory(creature->GetGUID());
return true;
}
@@ -317,18 +318,17 @@ public:
struct npc_kayra_longmaneAI : public npc_escortAI
{
- npc_kayra_longmaneAI(Creature* c) : npc_escortAI(c) {}
+ npc_kayra_longmaneAI(Creature* creature) : npc_escortAI(creature) {}
void Reset() { }
- void WaypointReached(uint32 i)
+ void WaypointReached(uint32 waypointId)
{
Player* player = GetPlayerForEscort();
-
if (!player)
return;
- switch (i)
+ switch (waypointId)
{
case 4:
DoScriptText(SAY_AMBUSH1, me, player);
@@ -404,10 +404,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_TIMOTHY_DANIELS1, creature->GetGUID());
diff --git a/src/server/scripts/Spells/CMakeLists.txt b/src/server/scripts/Spells/CMakeLists.txt
index 496324e4de9..04dcee9287c 100644
--- a/src/server/scripts/Spells/CMakeLists.txt
+++ b/src/server/scripts/Spells/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index eb42b377128..36dcb53ad00 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -337,11 +337,11 @@ class spell_dk_death_pact : public SpellScriptLoader
void FilterTargets(std::list<Unit*>& unitList)
{
Unit* unit_to_add = NULL;
- for (std::list<Unit*>::iterator itr = unitList.begin() ; itr != unitList.end(); ++itr)
+ for (std::list<Unit*>::iterator itr = unitList.begin(); itr != unitList.end(); ++itr)
{
if ((*itr)->GetTypeId() == TYPEID_UNIT
&& (*itr)->GetOwnerGUID() == GetCaster()->GetGUID()
- && (*itr)->ToCreature()->GetCreatureInfo()->type == CREATURE_TYPE_UNDEAD)
+ && (*itr)->ToCreature()->GetCreatureTemplate()->type == CREATURE_TYPE_UNDEAD)
{
unit_to_add = (*itr);
break;
@@ -642,9 +642,7 @@ public:
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- Unit* target = GetTarget();
- if (target->HasAura(DK_SPELL_UNHOLY_PRESENCE))
- target->RemoveAura(DK_SPELL_IMPROVED_UNHOLY_PRESENCE_TRIGGERED);
+ GetTarget()->RemoveAura(DK_SPELL_IMPROVED_UNHOLY_PRESENCE_TRIGGERED);
}
void Register()
@@ -713,6 +711,7 @@ enum DeathCoil
{
SPELL_DEATH_COIL_DAMAGE = 47632,
SPELL_DEATH_COIL_HEAL = 47633,
+ SPELL_SIGIL_VENGEFUL_HEART = 64962,
};
class spell_dk_death_coil : public SpellScriptLoader
@@ -743,12 +742,34 @@ class spell_dk_death_coil : public SpellScriptLoader
caster->CastCustomSpell(target, SPELL_DEATH_COIL_HEAL, &bp, NULL, NULL, true);
}
else
+ {
+ if (AuraEffect const* auraEffect = caster->GetAuraEffect(SPELL_SIGIL_VENGEFUL_HEART, EFFECT_1))
+ damage += auraEffect->GetBaseAmount();
caster->CastCustomSpell(target, SPELL_DEATH_COIL_DAMAGE, &damage, NULL, NULL, true);
+ }
}
}
+ SpellCastResult CheckCast()
+ {
+ Unit* caster = GetCaster();
+ if (Unit* target = GetExplTargetUnit())
+ {
+ if (!caster->IsFriendlyTo(target) && !caster->isInFront(target))
+ return SPELL_FAILED_UNIT_NOT_INFRONT;
+
+ if (target->IsFriendlyTo(caster) && target->GetCreatureType() != CREATURE_TYPE_UNDEAD)
+ return SPELL_FAILED_BAD_TARGETS;
+ }
+ else
+ return SPELL_FAILED_BAD_TARGETS;
+
+ return SPELL_CAST_OK;
+ }
+
void Register()
{
+ OnCheckCast += SpellCheckCastFn(spell_dk_death_coil_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_dk_death_coil_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
@@ -769,16 +790,14 @@ class spell_dk_death_grip : public SpellScriptLoader
{
PrepareSpellScript(spell_dk_death_grip_SpellScript);
- void HandleDummy(SpellEffIndex effIndex)
+ void HandleDummy(SpellEffIndex /*effIndex*/)
{
int32 damage = GetEffectValue();
- Position pos;
+ Position const* pos = GetExplTargetDest();
if (Unit* target = GetHitUnit())
{
- GetSummonPosition(effIndex, pos, 0.0f, 0);
-
if (!target->HasAuraType(SPELL_AURA_DEFLECT_SPELLS)) // Deterrence
- target->CastSpell(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), damage, true);
+ target->CastSpell(pos->GetPositionX(), pos->GetPositionY(), pos->GetPositionZ(), damage, true);
}
}
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 4c440f18bd9..898350dbd71 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -237,7 +237,7 @@ class spell_dru_t10_restoration_4p_bonus : public SpellScriptLoader
}
else
{
- unitList.remove(GetTargetUnit());
+ unitList.remove(GetExplTargetUnit());
std::list<Unit*> tempTargets;
for (std::list<Unit*>::const_iterator itr = unitList.begin(); itr != unitList.end(); ++itr)
if ((*itr)->GetTypeId() == TYPEID_PLAYER && GetCaster()->IsInRaidWith(*itr))
@@ -250,7 +250,7 @@ class spell_dru_t10_restoration_4p_bonus : public SpellScriptLoader
return;
}
- Unit* target = SelectRandomContainerElement(tempTargets);
+ Unit* target = Trinity::Containers::SelectRandomContainerElement(tempTargets);
unitList.clear();
unitList.push_back(target);
}
@@ -279,7 +279,7 @@ class spell_dru_starfall_aoe : public SpellScriptLoader
void FilterTargets(std::list<Unit*>& unitList)
{
- unitList.remove(GetTargetUnit());
+ unitList.remove(GetExplTargetUnit());
}
void Register()
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 886384a1c68..0c879cfb029 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -169,7 +169,7 @@ class spell_gen_burn_brutallus : public SpellScriptLoader
}
};
-enum eCannibalizeSpells
+enum CannibalizeSpells
{
SPELL_CANNIBALIZE_TRIGGERED = 20578,
};
@@ -224,7 +224,7 @@ class spell_gen_cannibalize : public SpellScriptLoader
};
// 45472 Parachute
-enum eParachuteSpells
+enum ParachuteSpells
{
SPELL_PARACHUTE = 45472,
SPELL_PARACHUTE_BUFF = 44795,
@@ -365,7 +365,7 @@ class spell_gen_remove_flight_auras : public SpellScriptLoader
};
// 66118 Leeching Swarm
-enum eLeechingSwarmSpells
+enum LeechingSwarmSpells
{
SPELL_LEECHING_SWARM_DMG = 66240,
SPELL_LEECHING_SWARM_HEAL = 66125,
@@ -481,7 +481,7 @@ class spell_gen_elune_candle : public SpellScriptLoader
};
// 24750 Trick
-enum eTrickSpells
+enum TrickSpells
{
SPELL_PIRATE_COSTUME_MALE = 24708,
SPELL_PIRATE_COSTUME_FEMALE = 24709,
@@ -557,7 +557,7 @@ class spell_gen_trick : public SpellScriptLoader
};
// 24751 Trick or Treat
-enum eTrickOrTreatSpells
+enum TrickOrTreatSpells
{
SPELL_TRICK = 24714,
SPELL_TREAT = 24715,
@@ -1234,30 +1234,30 @@ class spell_gen_magic_rooster : public SpellScriptLoader
class spell_gen_allow_cast_from_item_only : public SpellScriptLoader
{
-public:
- spell_gen_allow_cast_from_item_only() : SpellScriptLoader("spell_gen_allow_cast_from_item_only") { }
-
- class spell_gen_allow_cast_from_item_only_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_allow_cast_from_item_only_SpellScript);
+ public:
+ spell_gen_allow_cast_from_item_only() : SpellScriptLoader("spell_gen_allow_cast_from_item_only") { }
- SpellCastResult CheckRequirement()
+ class spell_gen_allow_cast_from_item_only_SpellScript : public SpellScript
{
- if (!GetCastItem())
- return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
- return SPELL_CAST_OK;
- }
+ PrepareSpellScript(spell_gen_allow_cast_from_item_only_SpellScript);
- void Register()
+ SpellCastResult CheckRequirement()
+ {
+ if (!GetCastItem())
+ return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
+ return SPELL_CAST_OK;
+ }
+
+ void Register()
+ {
+ OnCheckCast += SpellCheckCastFn(spell_gen_allow_cast_from_item_only_SpellScript::CheckRequirement);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
{
- OnCheckCast += SpellCheckCastFn(spell_gen_allow_cast_from_item_only_SpellScript::CheckRequirement);
+ return new spell_gen_allow_cast_from_item_only_SpellScript();
}
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_allow_cast_from_item_only_SpellScript();
- }
};
enum Launch
@@ -1282,7 +1282,7 @@ class spell_gen_launch : public SpellScriptLoader
void Launch()
{
- WorldLocation const* const position = GetTargetDest();
+ WorldLocation const* const position = GetExplTargetDest();
if (Player* player = GetHitPlayer())
{
@@ -1312,6 +1312,11 @@ class spell_gen_launch : public SpellScriptLoader
}
};
+enum VehicleScaling
+{
+ SPELL_GEAR_SCALING = 66668,
+};
+
class spell_gen_vehicle_scaling : public SpellScriptLoader
{
public:
@@ -1323,7 +1328,7 @@ class spell_gen_vehicle_scaling : public SpellScriptLoader
bool Load()
{
- return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
}
void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
@@ -1335,7 +1340,7 @@ class spell_gen_vehicle_scaling : public SpellScriptLoader
// TODO: Reserach coeffs for different vehicles
switch (GetId())
{
- case 66668:
+ case SPELL_GEAR_SCALING:
factor = 1.0f;
baseItemLevel = 205;
break;
@@ -1508,7 +1513,7 @@ class spell_gen_luck_of_the_draw : public SpellScriptLoader
if (group->isLFGGroup())
if (uint32 dungeonId = sLFGMgr->GetDungeon(group->GetGUID(), true))
if (LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(dungeonId))
- if (uint32(dungeon->map) == map->GetId() && dungeon->difficulty == map->GetDifficulty())
+ if (uint32(dungeon->map) == map->GetId() && dungeon->difficulty == uint32(map->GetDifficulty()))
if (randomDungeon && randomDungeon->type == LFG_TYPE_RANDOM)
return; // in correct dungeon
@@ -1585,19 +1590,17 @@ class spell_gen_spirit_healer_res : public SpellScriptLoader
bool Load()
{
- return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
+ return GetOriginalCaster() && GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
}
void HandleDummy(SpellEffIndex /* effIndex */)
{
- if (Player* originalCaster = GetOriginalCaster()->ToPlayer())
+ Player* originalCaster = GetOriginalCaster()->ToPlayer();
+ if (Unit* target = GetHitUnit())
{
- if (Unit* target = GetHitUnit())
- {
- WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
- data << uint64(target->GetGUID());
- originalCaster->GetSession()->SendPacket(&data);
- }
+ WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
+ data << uint64(target->GetGUID());
+ originalCaster->GetSession()->SendPacket(&data);
}
}
@@ -2550,6 +2553,141 @@ class spell_gen_chaos_blast : public SpellScriptLoader
};
+class spell_gen_ds_flush_knockback : public SpellScriptLoader
+{
+ public:
+ spell_gen_ds_flush_knockback() : SpellScriptLoader("spell_gen_ds_flush_knockback") {}
+
+ class spell_gen_ds_flush_knockback_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_ds_flush_knockback_SpellScript);
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ // Here the target is the water spout and determines the position where the player is knocked from
+ if (Unit* target = GetHitUnit())
+ {
+ if (Player* player = GetCaster()->ToPlayer())
+ {
+ float horizontalSpeed = 20.0f + (40.0f - GetCaster()->GetDistance(target));
+ float verticalSpeed = 8.0f;
+ // This method relies on the Dalaran Sewer map disposition and Water Spout position
+ // What we do is knock the player from a position exactly behind him and at the end of the pipe
+ player->KnockbackFrom(target->GetPositionX(), player->GetPositionY(), horizontalSpeed, verticalSpeed);
+ }
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_ds_flush_knockback_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_ds_flush_knockback_SpellScript();
+ }
+};
+
+class spell_gen_wg_water : public SpellScriptLoader
+{
+ public:
+ spell_gen_wg_water() : SpellScriptLoader("spell_gen_wg_water") {}
+
+ class spell_gen_wg_water_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_wg_water_SpellScript);
+
+ SpellCastResult CheckCast()
+ {
+ if (!GetSpellInfo()->CheckTargetCreatureType(GetCaster()))
+ return SPELL_FAILED_DONT_REPORT;
+ return SPELL_CAST_OK;
+ }
+
+ void Register()
+ {
+ OnCheckCast += SpellCheckCastFn(spell_gen_wg_water_SpellScript::CheckCast);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_wg_water_SpellScript();
+ }
+};
+
+class spell_gen_count_pct_from_max_hp : public SpellScriptLoader
+{
+ public:
+ spell_gen_count_pct_from_max_hp(char const* name, int32 damagePct = 0) : SpellScriptLoader(name), _damagePct(damagePct) { }
+
+ class spell_gen_count_pct_from_max_hp_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_count_pct_from_max_hp_SpellScript)
+
+ public:
+ spell_gen_count_pct_from_max_hp_SpellScript(int32 damagePct) : SpellScript(), _damagePct(damagePct) { }
+
+ void RecalculateDamage()
+ {
+ if (!_damagePct)
+ _damagePct = GetHitDamage();
+
+ SetHitDamage(GetHitUnit()->CountPctFromMaxHealth(_damagePct));
+ }
+
+ void Register()
+ {
+ OnHit += SpellHitFn(spell_gen_count_pct_from_max_hp_SpellScript::RecalculateDamage);
+ }
+
+ private:
+ int32 _damagePct;
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_count_pct_from_max_hp_SpellScript(_damagePct);
+ }
+
+ private:
+ int32 _damagePct;
+};
+
+class spell_gen_despawn_self : public SpellScriptLoader
+{
+public:
+ spell_gen_despawn_self() : SpellScriptLoader("spell_gen_despawn_self") { }
+
+ class spell_gen_despawn_self_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_despawn_self_SpellScript);
+
+ bool Load()
+ {
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
+ }
+
+ void HandleDummy(SpellEffIndex effIndex)
+ {
+ if (GetSpellInfo()->Effects[effIndex].Effect == SPELL_EFFECT_DUMMY || GetSpellInfo()->Effects[effIndex].Effect == SPELL_EFFECT_SCRIPT_EFFECT)
+ GetCaster()->ToCreature()->DespawnOrUnsummon();
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_despawn_self_SpellScript::HandleDummy, EFFECT_ALL, SPELL_EFFECT_ANY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_despawn_self_SpellScript();
+ }
+};
+
void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
@@ -2599,4 +2737,9 @@ void AddSC_generic_spell_scripts()
new spell_gen_on_tournament_mount();
new spell_gen_tournament_pennant();
new spell_gen_chaos_blast();
+ new spell_gen_ds_flush_knockback();
+ new spell_gen_wg_water();
+ new spell_gen_count_pct_from_max_hp("spell_gen_default_count_pct_from_max_hp");
+ new spell_gen_count_pct_from_max_hp("spell_gen_50pct_count_pct_from_max_hp", 50);
+ new spell_gen_despawn_self();
}
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index 855af75cd83..896ed331bde 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -137,8 +137,9 @@ class spell_hun_chimera_shot : public SpellScriptLoader
{
int32 TickCount = aurEff->GetTotalTicks();
spellId = HUNTER_SPELL_CHIMERA_SHOT_SERPENT;
- basePoint = caster->SpellDamageBonus(unitTarget, aura->GetSpellInfo(), aurEff->GetAmount(), DOT, aura->GetStackAmount());
+ basePoint = caster->SpellDamageBonusDone(unitTarget, aura->GetSpellInfo(), aurEff->GetAmount(), DOT, aura->GetStackAmount());
ApplyPctN(basePoint, TickCount * 40);
+ basePoint = unitTarget->SpellDamageBonusTaken(caster, aura->GetSpellInfo(), basePoint, DOT, aura->GetStackAmount());
}
// Viper Sting - Instantly restores mana to you equal to 60% of the total amount drained by your Viper Sting.
else if (familyFlag[1] & 0x00000080)
@@ -286,8 +287,8 @@ class spell_hun_masters_call : public SpellScriptLoader
target->CastSpell(target, HUNTER_SPELL_MASTERS_CALL_TRIGGERED, castMask);
// there is a possibility that this effect should access effect 0 (dummy) target, but i dubt that
// it's more likely that on on retail it's possible to call target selector based on dbc values
- // anyways, we're using GetTargetUnit() here and it's ok
- if (Unit* ally = GetTargetUnit())
+ // anyways, we're using GetExplTargetUnit() here and it's ok
+ if (Unit* ally = GetExplTargetUnit())
{
target->CastSpell(ally, GetEffectValue(), castMask);
target->CastSpell(ally, GetSpellInfo()->Effects[EFFECT_0].CalcValue(), castMask);
@@ -560,6 +561,64 @@ class spell_hun_pet_carrion_feeder : public SpellScriptLoader
}
};
+// 34477 Misdirection
+class spell_hun_misdirection : public SpellScriptLoader
+{
+ public:
+ spell_hun_misdirection() : SpellScriptLoader("spell_hun_misdirection") { }
+
+ class spell_hun_misdirection_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_hun_misdirection_AuraScript);
+
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (Unit* caster = GetCaster())
+ if (!GetDuration())
+ caster->SetReducedThreatPercent(0, 0);
+ }
+
+ void Register()
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_hun_misdirection_AuraScript::OnRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_hun_misdirection_AuraScript();
+ }
+};
+
+// 35079 Misdirection proc
+class spell_hun_misdirection_proc : public SpellScriptLoader
+{
+ public:
+ spell_hun_misdirection_proc() : SpellScriptLoader("spell_hun_misdirection_proc") { }
+
+ class spell_hun_misdirection_proc_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_hun_misdirection_proc_AuraScript);
+
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (GetCaster())
+ GetCaster()->SetReducedThreatPercent(0, 0);
+ }
+
+ void Register()
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_hun_misdirection_proc_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_hun_misdirection_proc_AuraScript();
+ }
+};
+
+
void AddSC_hunter_spell_scripts()
{
new spell_hun_aspect_of_the_beast();
@@ -572,4 +631,6 @@ void AddSC_hunter_spell_scripts()
new spell_hun_sniper_training();
new spell_hun_pet_heart_of_the_phoenix();
new spell_hun_pet_carrion_feeder();
+ new spell_hun_misdirection();
+ new spell_hun_misdirection_proc();
}
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 416869d98ce..4e2eb633662 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -55,8 +55,8 @@ class spell_item_trigger_spell : public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
- if (Item* pItem = GetCastItem())
- caster->CastSpell(caster, _triggeredSpellId, true, pItem);
+ if (Item* item = GetCastItem())
+ caster->CastSpell(caster, _triggeredSpellId, true, item);
}
void Register()
@@ -1095,7 +1095,7 @@ class spell_item_shimmering_vessel : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
if (Creature* target = GetHitCreature())
- target->setDeathState(JUST_ALIVED);
+ target->setDeathState(JUST_RESPAWNED);
}
void Register()
@@ -1513,7 +1513,7 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
enum ImpaleLeviroth
{
NPC_LEVIROTH = 26452,
- SPELL_LEVIROTH_SELF_IMPALE = 49882
+ SPELL_LEVIROTH_SELF_IMPALE = 49882,
};
class spell_item_impale_leviroth : public SpellScriptLoader
@@ -1534,11 +1534,9 @@ class spell_item_impale_leviroth : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
- Unit* target = GetHitCreature();
- if (!target || target->GetEntry() != NPC_LEVIROTH || !target->HealthBelowPct(95))
- return;
-
- target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
+ if (Unit* target = GetHitCreature())
+ if (target->GetEntry() == NPC_LEVIROTH && !target->HealthBelowPct(95))
+ target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
}
void Register()
@@ -1591,15 +1589,15 @@ class spell_item_brewfest_mount_transformation : public SpellScriptLoader
{
case SPELL_BREWFEST_MOUNT_TRANSFORM:
if (caster->GetSpeedRate(MOVE_RUN) >= 2.0f)
- spell_id = caster->GetTeam() == ALLIANCE ? SPELL_MOUNT_RAM_100 : SPELL_MOUNT_KODO_100 ;
+ spell_id = caster->GetTeam() == ALLIANCE ? SPELL_MOUNT_RAM_100 : SPELL_MOUNT_KODO_100;
else
- spell_id = caster->GetTeam() == ALLIANCE ? SPELL_MOUNT_RAM_60 : SPELL_MOUNT_KODO_60 ;
+ spell_id = caster->GetTeam() == ALLIANCE ? SPELL_MOUNT_RAM_60 : SPELL_MOUNT_KODO_60;
break;
case SPELL_BREWFEST_MOUNT_TRANSFORM_REVERSE:
if (caster->GetSpeedRate(MOVE_RUN) >= 2.0f)
- spell_id = caster->GetTeam() == HORDE ? SPELL_MOUNT_RAM_100 : SPELL_MOUNT_KODO_100 ;
+ spell_id = caster->GetTeam() == HORDE ? SPELL_MOUNT_RAM_100 : SPELL_MOUNT_KODO_100;
else
- spell_id = caster->GetTeam() == HORDE ? SPELL_MOUNT_RAM_60 : SPELL_MOUNT_KODO_60 ;
+ spell_id = caster->GetTeam() == HORDE ? SPELL_MOUNT_RAM_60 : SPELL_MOUNT_KODO_60;
break;
default:
return;
@@ -1746,11 +1744,20 @@ class spell_item_rocket_boots : public SpellScriptLoader
if (Battleground* bg = caster->GetBattleground())
bg->EventPlayerDroppedFlag(caster);
+ caster->RemoveSpellCooldown(SPELL_ROCKET_BOOTS_PROC);
caster->CastSpell(caster, SPELL_ROCKET_BOOTS_PROC, true, NULL);
}
+ SpellCastResult CheckCast()
+ {
+ if (GetCaster()->IsInWater())
+ return SPELL_FAILED_ONLY_ABOVEWATER;
+ return SPELL_CAST_OK;
+ }
+
void Register()
{
+ OnCheckCast += SpellCheckCastFn(spell_item_rocket_boots_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_item_rocket_boots_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
@@ -1994,6 +2001,65 @@ class spell_item_refocus : public SpellScriptLoader
}
};
+class spell_item_muisek_vessel : public SpellScriptLoader
+{
+ public:
+ spell_item_muisek_vessel() : SpellScriptLoader("spell_item_muisek_vessel") { }
+
+ class spell_item_muisek_vessel_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_item_muisek_vessel_SpellScript);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Creature* target = GetHitCreature())
+ if (target->isDead())
+ target->DespawnOrUnsummon();
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_item_muisek_vessel_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_item_muisek_vessel_SpellScript();
+ }
+};
+
+enum GreatmothersSoulcather
+{
+ SPELL_FORCE_CAST_SUMMON_GNOME_SOUL = 46486,
+};
+class spell_item_greatmothers_soulcatcher : public SpellScriptLoader
+{
+public:
+ spell_item_greatmothers_soulcatcher() : SpellScriptLoader("spell_item_greatmothers_soulcatcher") { }
+
+ class spell_item_greatmothers_soulcatcher_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_item_greatmothers_soulcatcher_SpellScript);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (GetHitUnit())
+ GetCaster()->CastSpell(GetCaster(),SPELL_FORCE_CAST_SUMMON_GNOME_SOUL);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_item_greatmothers_soulcatcher_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_item_greatmothers_soulcatcher_SpellScript();
+ }
+};
+
void AddSC_item_spell_scripts()
{
// 23074 Arcanite Dragonling
@@ -2045,4 +2111,6 @@ void AddSC_item_spell_scripts()
new spell_item_unusual_compass();
new spell_item_uded();
new spell_item_chicken_cover();
+ new spell_item_muisek_vessel();
+ new spell_item_greatmothers_soulcatcher();
}
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index ea1af10816b..050741ffaba 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -123,6 +123,12 @@ class spell_mage_cold_snap : public SpellScriptLoader
}
};
+enum SilvermoonPolymorph
+{
+ NPC_AUROSALIA = 18744,
+};
+
+// TODO: move out of here and rename - not a mage spell
class spell_mage_polymorph_cast_visual : public SpellScriptLoader
{
public:
@@ -132,22 +138,22 @@ class spell_mage_polymorph_cast_visual : public SpellScriptLoader
{
PrepareSpellScript(spell_mage_polymorph_cast_visual_SpellScript);
- static const uint32 spell_list[6];
+ static const uint32 PolymorhForms[6];
bool Validate(SpellInfo const* /*spellEntry*/)
{
// check if spell ids exist in dbc
- for (int i = 0; i < 6; i++)
- if (!sSpellMgr->GetSpellInfo(spell_list[i]))
+ for (uint32 i = 0; i < 6; i++)
+ if (!sSpellMgr->GetSpellInfo(PolymorhForms[i]))
return false;
return true;
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* unitTarget = GetHitUnit())
- if (unitTarget->GetTypeId() == TYPEID_UNIT)
- unitTarget->CastSpell(unitTarget, spell_list[urand(0, 5)], true);
+ if (Unit* target = GetCaster()->FindNearestCreature(NPC_AUROSALIA, 30.0f))
+ if (target->GetTypeId() == TYPEID_UNIT)
+ target->CastSpell(target, PolymorhForms[urand(0, 5)], true);
}
void Register()
@@ -163,7 +169,7 @@ class spell_mage_polymorph_cast_visual : public SpellScriptLoader
}
};
-const uint32 spell_mage_polymorph_cast_visual::spell_mage_polymorph_cast_visual_SpellScript::spell_list[6] =
+const uint32 spell_mage_polymorph_cast_visual::spell_mage_polymorph_cast_visual_SpellScript::PolymorhForms[6] =
{
SPELL_MAGE_SQUIRREL_FORM,
SPELL_MAGE_GIRAFFE_FORM,
@@ -244,9 +250,11 @@ class spell_mage_frost_warding_trigger : public SpellScriptLoader
if (roll_chance_i(chance))
{
- absorbAmount = dmgInfo.GetDamage();
- int32 bp = absorbAmount;
+ int32 bp = dmgInfo.GetDamage();
+ dmgInfo.AbsorbDamage(bp);
target->CastCustomSpell(target, SPELL_MAGE_FROST_WARDING_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff);
+ absorbAmount = 0;
+ PreventDefaultAction();
}
}
}
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index d823c629d4b..4baa1eb3735 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -285,9 +285,29 @@ class spell_pal_holy_shock : public SpellScriptLoader
}
}
+ SpellCastResult CheckCast()
+ {
+ Player* caster = GetCaster()->ToPlayer();
+ if (Unit* target = GetExplTargetUnit())
+ {
+ if (!caster->IsFriendlyTo(target))
+ {
+ if (!caster->IsValidAttackTarget(target))
+ return SPELL_FAILED_BAD_TARGETS;
+
+ if (!caster->isInFront(target))
+ return SPELL_FAILED_UNIT_NOT_INFRONT;
+ }
+ }
+ else
+ return SPELL_FAILED_BAD_TARGETS;
+ return SPELL_CAST_OK;
+ }
+
void Register()
{
// add dummy effect spell handler to Holy Shock
+ OnCheckCast += SpellCheckCastFn(spell_pal_holy_shock_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_pal_holy_shock_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index b012fe5f183..8088004c9d1 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -185,6 +185,11 @@ class spell_pri_penance : public SpellScriptLoader
{
PrepareSpellScript(spell_pri_penance_SpellScript);
+ bool Load()
+ {
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
bool Validate(SpellInfo const* spellEntry)
{
if (!sSpellMgr->GetSpellInfo(PRIEST_SPELL_PENANCE_R1))
@@ -207,7 +212,7 @@ class spell_pri_penance : public SpellScriptLoader
Unit* caster = GetCaster();
if (Unit* unitTarget = GetHitUnit())
{
- if(!unitTarget->isAlive())
+ if (!unitTarget->isAlive())
return;
uint8 rank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
@@ -219,10 +224,20 @@ class spell_pri_penance : public SpellScriptLoader
}
}
+ SpellCastResult CheckCast()
+ {
+ Player* caster = GetCaster()->ToPlayer();
+ if (Unit* target = GetExplTargetUnit())
+ if (!caster->IsFriendlyTo(target) && !caster->IsValidAttackTarget(target))
+ return SPELL_FAILED_BAD_TARGETS;
+ return SPELL_CAST_OK;
+ }
+
void Register()
{
// add dummy effect spell handler to Penance
OnEffectHitTarget += SpellEffectFn(spell_pri_penance_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnCheckCast += SpellCheckCastFn(spell_pri_penance_SpellScript::CheckCast);
}
};
@@ -275,12 +290,53 @@ class spell_pri_reflective_shield_trigger : public SpellScriptLoader
}
};
+enum PrayerOfMending
+{
+ SPELL_T9_HEALING_2_PIECE = 67201,
+};
+// Prayer of Mending Heal
+class spell_pri_prayer_of_mending_heal : public SpellScriptLoader
+{
+public:
+ spell_pri_prayer_of_mending_heal() : SpellScriptLoader("spell_pri_prayer_of_mending_heal") { }
+
+ class spell_pri_prayer_of_mending_heal_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_pri_prayer_of_mending_heal_SpellScript);
+
+ void HandleHeal(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* caster = GetOriginalCaster())
+ {
+ if (AuraEffect* aurEff = caster->GetAuraEffect(SPELL_T9_HEALING_2_PIECE,EFFECT_0))
+ {
+ int32 heal = GetHitHeal();
+ AddPctN(heal, aurEff->GetAmount());
+ SetHitHeal(heal);
+ }
+ }
+
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pri_prayer_of_mending_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_pri_prayer_of_mending_heal_SpellScript();
+ }
+};
+
void AddSC_priest_spell_scripts()
{
new spell_pri_guardian_spirit();
- new spell_pri_mana_burn;
- new spell_pri_pain_and_suffering_proc;
- new spell_pri_penance;
+ new spell_pri_mana_burn();
+ new spell_pri_pain_and_suffering_proc();
+ new spell_pri_penance();
new spell_pri_reflective_shield_trigger();
new spell_pri_mind_sear();
+ new spell_pri_prayer_of_mending_heal();
}
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 09c34e3499d..810cc20e04b 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -275,7 +275,7 @@ class spell_q11396_11399_scourging_crystal_controller : public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* target = GetTargetUnit())
+ if (Unit* target = GetExplTargetUnit())
if (target->GetTypeId() == TYPEID_UNIT && target->HasAura(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3))
// Make sure nobody else is channeling the same target
if (!target->HasAura(SPELL_SCOURGING_CRYSTAL_CONTROLLER))
@@ -636,6 +636,10 @@ class spell_q12851_going_bearback : public SpellScriptLoader
if (Unit* caster = GetCaster())
{
Unit* target = GetTarget();
+ // Already in fire
+ if (target->HasAura(SPELL_ABLAZE))
+ return;
+
if (Player* player = caster->GetCharmerOrOwnerPlayerOrPlayerItself())
{
switch (target->GetEntry())
@@ -833,7 +837,7 @@ class spell_q12659_ahunaes_knife : public SpellScriptLoader
Player* caster = GetCaster()->ToPlayer();
if (Creature* target = GetHitCreature())
{
- target->ForcedDespawn();
+ target->DespawnOrUnsummon();
caster->KilledMonsterCredit(NPC_SCALPS_KC_BUNNY, 0);
}
}
@@ -1025,9 +1029,9 @@ class spell_q14112_14145_chum_the_water: public SpellScriptLoader
// http://old01.wowhead.com/quest=9452 - Red Snapper - Very Tasty!
enum RedSnapperVeryTasty
{
- SPELL_CAST_NET = 29866,
- ITEM_RED_SNAPPER = 23614,
- NPC_ANGRY_MURLOC = 17102,
+ SPELL_CAST_NET = 29866,
+ ITEM_RED_SNAPPER = 23614,
+ SPELL_NEW_SUMMON_TEST = 49214,
};
class spell_q9452_cast_net: public SpellScriptLoader
@@ -1047,16 +1051,10 @@ class spell_q9452_cast_net: public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Player* caster = GetCaster()->ToPlayer();
- switch (urand(0, 2))
- {
- case 0: case 1:
- caster->AddItem(ITEM_RED_SNAPPER, 1);
- break;
- case 2:
- if (Creature* murloc = caster->SummonCreature(NPC_ANGRY_MURLOC, caster->GetPositionX()+5, caster->GetPositionY(), caster->GetPositionZ(), 0.0f, TEMPSUMMON_MANUAL_DESPAWN, 120000))
- murloc->AI()->AttackStart(caster);
- break;
- }
+ if (roll_chance_i(66))
+ caster->AddItem(ITEM_RED_SNAPPER, 1);
+ else
+ caster->CastSpell(caster, SPELL_NEW_SUMMON_TEST, true);
}
void Register()
@@ -1107,6 +1105,63 @@ public:
}
};
+enum LeaveNothingToChance
+{
+ NPC_UPPER_MINE_SHAFT = 27436,
+ NPC_LOWER_MINE_SHAFT = 27437,
+
+ SPELL_UPPER_MINE_SHAFT_CREDIT = 48744,
+ SPELL_LOWER_MINE_SHAFT_CREDIT = 48745,
+};
+
+class spell_q12277_wintergarde_mine_explosion : public SpellScriptLoader
+{
+ public:
+ spell_q12277_wintergarde_mine_explosion() : SpellScriptLoader("spell_q12277_wintergarde_mine_explosion") { }
+
+ class spell_q12277_wintergarde_mine_explosion_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q12277_wintergarde_mine_explosion_SpellScript);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Creature* unitTarget = GetHitCreature())
+ {
+ if (Unit* caster = GetCaster())
+ {
+ if (caster->GetTypeId() == TYPEID_UNIT)
+ {
+ if (Unit* owner = caster->GetOwner())
+ {
+ switch (unitTarget->GetEntry())
+ {
+ case NPC_UPPER_MINE_SHAFT:
+ caster->CastSpell(owner, SPELL_UPPER_MINE_SHAFT_CREDIT, true);
+ break;
+ case NPC_LOWER_MINE_SHAFT:
+ caster->CastSpell(owner, SPELL_LOWER_MINE_SHAFT_CREDIT, true);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_q12277_wintergarde_mine_explosion_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_q12277_wintergarde_mine_explosion_SpellScript();
+ }
+};
+
void AddSC_quest_spell_scripts()
{
new spell_q55_sacred_cleansing();
@@ -1133,4 +1188,5 @@ void AddSC_quest_spell_scripts()
new spell_q14112_14145_chum_the_water();
new spell_q9452_cast_net();
new spell_q12987_read_pronouncement();
+ new spell_q12277_wintergarde_mine_explosion();
}
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index 96ee7a18429..c9c036d5329 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -35,6 +35,9 @@ enum ShamanSpells
SHAMAN_SPELL_FIRE_NOVA_TRIGGERED_R1 = 8349,
SHAMAN_SPELL_SATED = 57724,
SHAMAN_SPELL_EXHAUSTION = 57723,
+
+ SHAMAN_SPELL_STORM_EARTH_AND_FIRE = 51483,
+ EARTHBIND_TOTEM_SPELL_EARTHGRAB = 64695,
// For Earthen Power
SHAMAN_TOTEM_SPELL_EARTHBIND_TOTEM = 6474,
@@ -210,20 +213,35 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
return true;
}
- void HandleEffectPeriodic(AuraEffect const* aurEff)
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
- if (Unit* target = GetTarget())
- if (Unit* caster = aurEff->GetBase()->GetCaster())
- if (TempSummon* summon = caster->ToTempSummon())
- if (Unit* owner = summon->GetOwner())
- if (AuraEffect* aur = owner->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, 2289, 0))
- if (roll_chance_i(aur->GetBaseAmount()) && target->HasAuraWithMechanic(1 << MECHANIC_SNARE))
- caster->CastSpell(caster, SHAMAN_TOTEM_SPELL_EARTHEN_POWER, true, NULL, aurEff);
+ if (!GetCaster())
+ return;
+ if (Player* owner = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself())
+ if (AuraEffect* aur = owner->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, 2289, 0))
+ if (roll_chance_i(aur->GetBaseAmount()))
+ GetTarget()->CastSpell((Unit*)NULL, SHAMAN_TOTEM_SPELL_EARTHEN_POWER, true);
+ }
+
+ void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (!GetCaster())
+ return;
+ Player* owner = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself();
+ if (!owner)
+ return;
+ // Storm, Earth and Fire
+ if (AuraEffect* aurEff = owner->GetAuraEffectOfRankedSpell(SHAMAN_SPELL_STORM_EARTH_AND_FIRE, EFFECT_1))
+ {
+ if (roll_chance_i(aurEff->GetAmount()))
+ GetCaster()->CastSpell(GetCaster(), EARTHBIND_TOTEM_SPELL_EARTHGRAB, false);
+ }
}
void Register()
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_earthbind_totem_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ OnEffectApply += AuraEffectApplyFn(spell_sha_earthbind_totem_AuraScript::Apply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
@@ -233,6 +251,46 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
}
};
+class EarthenPowerTargetSelector
+{
+ public:
+ EarthenPowerTargetSelector() { }
+
+ bool operator() (Unit* target)
+ {
+ if (!target->HasAuraWithMechanic(1 << MECHANIC_SNARE))
+ return true;
+
+ return false;
+ }
+};
+
+class spell_sha_earthen_power : public SpellScriptLoader
+{
+ public:
+ spell_sha_earthen_power() : SpellScriptLoader("spell_sha_earthen_power") { }
+
+ class spell_sha_earthen_power_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_sha_earthen_power_SpellScript);
+
+ void FilterTargets(std::list<Unit*>& unitList)
+ {
+ unitList.remove_if(EarthenPowerTargetSelector());
+ }
+
+ void Register()
+ {
+ OnUnitTargetSelect += SpellUnitTargetFn(spell_sha_earthen_power_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_sha_earthen_power_SpellScript();
+ }
+};
+
class spell_sha_bloodlust : public SpellScriptLoader
{
public:
@@ -251,7 +309,7 @@ class spell_sha_bloodlust : public SpellScriptLoader
void RemoveInvalidTargets(std::list<Unit*>& targets)
{
- targets.remove_if (Trinity::UnitAuraCheck(true, SHAMAN_SPELL_SATED));
+ targets.remove_if(Trinity::UnitAuraCheck(true, SHAMAN_SPELL_SATED));
}
void ApplyDebuff()
@@ -430,7 +488,7 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
if (Unit* owner = caster->GetOwner())
{
if (triggeringSpell)
- damage = int32(owner->SpellHealingBonus(target, triggeringSpell, damage, HEAL));
+ damage = int32(owner->SpellHealingBonusDone(target, triggeringSpell, damage, HEAL));
// Restorative Totems
if (AuraEffect* dummy = owner->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, ICON_ID_RESTORATIVE_TOTEMS, 1))
@@ -439,6 +497,8 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
// Glyph of Healing Stream Totem
if (AuraEffect const* aurEff = owner->GetAuraEffect(SPELL_GLYPH_OF_HEALING_STREAM_TOTEM, EFFECT_0))
AddPctN(damage, aurEff->GetAmount());
+
+ damage = int32(target->SpellHealingBonusTaken(owner, triggeringSpell, damage, HEAL));
}
caster->CastCustomSpell(target, SPELL_HEALING_STREAM_TOTEM_HEAL, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
}
@@ -542,6 +602,55 @@ class spell_sha_lava_lash : public SpellScriptLoader
}
};
+// 1064 Chain Heal
+class spell_sha_chain_heal : public SpellScriptLoader
+{
+ public:
+ spell_sha_chain_heal() : SpellScriptLoader("spell_sha_chain_heal") { }
+
+ class spell_sha_chain_heal_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_sha_chain_heal_SpellScript);
+
+ bool Load()
+ {
+ firstHeal = true;
+ riptide = false;
+ return true;
+ }
+
+ void HandleHeal(SpellEffIndex /*effIndex*/)
+ {
+ if (firstHeal)
+ {
+ // Check if the target has Riptide
+ if (AuraEffect* aurEff = GetHitUnit()->GetAuraEffect(SPELL_AURA_PERIODIC_HEAL, SPELLFAMILY_SHAMAN, 0, 0, 0x10, GetCaster()->GetGUID()))
+ {
+ riptide = true;
+ // Consume it
+ GetHitUnit()->RemoveAura(aurEff->GetBase());
+ }
+ firstHeal = false;
+ }
+ // Riptide increases the Chain Heal effect by 25%
+ if (riptide)
+ SetHitHeal(GetHitHeal() * 1.25f);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_sha_chain_heal_SpellScript::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL);
+ }
+
+ bool firstHeal;
+ bool riptide;
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_sha_chain_heal_SpellScript();
+ }
+};
void AddSC_shaman_spell_scripts()
{
@@ -549,6 +658,7 @@ void AddSC_shaman_spell_scripts()
new spell_sha_fire_nova();
new spell_sha_mana_tide_totem();
new spell_sha_earthbind_totem();
+ new spell_sha_earthen_power();
new spell_sha_bloodlust();
new spell_sha_heroism();
new spell_sha_ancestral_awakening_proc();
@@ -556,4 +666,5 @@ void AddSC_shaman_spell_scripts()
new spell_sha_healing_stream_totem();
new spell_sha_mana_spring_totem();
new spell_sha_lava_lash();
+ new spell_sha_chain_heal();
}
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index b1aff706db0..838b9e4f932 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -34,6 +34,9 @@ enum WarlockSpells
WARLOCK_DEMONIC_EMPOWERMENT_IMP = 54444,
WARLOCK_IMPROVED_HEALTHSTONE_R1 = 18692,
WARLOCK_IMPROVED_HEALTHSTONE_R2 = 18693,
+ WARLOCK_DEMONIC_CIRCLE_SUMMON = 48018,
+ WARLOCK_DEMONIC_CIRCLE_TELEPORT = 48020,
+ WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST = 62388,
};
class spell_warl_banish : public SpellScriptLoader
@@ -169,6 +172,19 @@ class spell_warl_create_healthstone : public SpellScriptLoader
return true;
}
+ SpellCastResult CheckCast()
+ {
+ if (Player* caster = GetCaster()->ToPlayer())
+ {
+ uint8 spellRank = sSpellMgr->GetSpellRank(GetSpellInfo()->Id);
+ ItemPosCountVec dest;
+ InventoryResult msg = caster->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, iTypes[spellRank - 1][0], 1, NULL);
+ if (msg != EQUIP_ERR_OK)
+ return SPELL_FAILED_TOO_MANY_OF_ITEM;
+ }
+ return SPELL_CAST_OK;
+ }
+
void HandleScriptEffect(SpellEffIndex effIndex)
{
if (Unit* unitTarget = GetHitUnit())
@@ -195,6 +211,7 @@ class spell_warl_create_healthstone : public SpellScriptLoader
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_warl_create_healthstone_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnCheckCast += SpellCheckCastFn(spell_warl_create_healthstone_SpellScript::CheckCast);
}
};
@@ -284,8 +301,8 @@ class spell_warl_seed_of_corruption : public SpellScriptLoader
void FilterTargets(std::list<Unit*>& unitList)
{
- if (GetTargetUnit())
- unitList.remove(GetTargetUnit());
+ if (GetExplTargetUnit())
+ unitList.remove(GetExplTargetUnit());
}
void Register()
@@ -327,11 +344,7 @@ class spell_warl_soulshatter : public SpellScriptLoader
if (Unit* target = GetHitUnit())
{
if (target->CanHaveThreatList() && target->getThreatManager().getThreat(caster) > 0.0f)
- {
- sLog->outString("THREATREDUCTION");
caster->CastSpell(target, SPELL_SOULSHATTER, true);
- } else
- sLog->outString("can have threat? %u . threat number? %f ",target->CanHaveThreatList(),target->getThreatManager().getThreat(caster));
}
}
@@ -349,9 +362,6 @@ class spell_warl_soulshatter : public SpellScriptLoader
enum LifeTap
{
- SPELL_LIFE_TAP_RANK_6 = 11689,
- SPELL_LIFE_TAP_RANK_7 = 27222,
- SPELL_LIFE_TAP_RANK_8 = 57946,
SPELL_LIFE_TAP_ENERGIZE = 31818,
SPELL_LIFE_TAP_ENERGIZE_2 = 32553,
ICON_ID_IMPROVED_LIFE_TAP = 208,
@@ -374,9 +384,7 @@ class spell_warl_life_tap : public SpellScriptLoader
bool Validate(SpellInfo const* /*spell*/)
{
- if (!sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_RANK_6) || !sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_RANK_7)
- || !sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_RANK_8) || !sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_ENERGIZE)
- || !sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_ENERGIZE_2))
+ if (!sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_ENERGIZE) || !sSpellMgr->GetSpellInfo(SPELL_LIFE_TAP_ENERGIZE_2))
return false;
return true;
}
@@ -386,18 +394,8 @@ class spell_warl_life_tap : public SpellScriptLoader
Player* caster = GetCaster()->ToPlayer();
if (Unit* target = GetHitUnit())
{
- SpellInfo const* spellInfo = GetSpellInfo();
- float spFactor = 0.0f;
- int32 damage = int32(GetEffectValue() + (6.3875 * spellInfo->BaseLevel));
- switch (spellInfo->Id)
- {
- case SPELL_LIFE_TAP_RANK_6: spFactor = 0.2f; break;
- case SPELL_LIFE_TAP_RANK_7:
- case SPELL_LIFE_TAP_RANK_8: spFactor = 0.5f; break;
- default: break;
- }
-
- int32 mana = int32(damage + (caster->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS+SPELL_SCHOOL_SHADOW) * spFactor));
+ int32 damage = GetEffectValue();
+ int32 mana = int32(damage + (caster->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS+SPELL_SCHOOL_SHADOW) * 0.5f));
// Shouldn't Appear in Combat Log
target->ModifyHealth(-damage);
@@ -424,9 +422,7 @@ class spell_warl_life_tap : public SpellScriptLoader
SpellCastResult CheckCast()
{
if ((int32(GetCaster()->GetHealth()) > int32(GetSpellInfo()->Effects[EFFECT_0].CalcValue() + (6.3875 * GetSpellInfo()->BaseLevel))))
- {
return SPELL_CAST_OK;
- }
return SPELL_FAILED_FIZZLE;
}
@@ -443,6 +439,90 @@ class spell_warl_life_tap : public SpellScriptLoader
}
};
+class spell_warl_demonic_circle_summon : public SpellScriptLoader
+{
+ public:
+ spell_warl_demonic_circle_summon() : SpellScriptLoader("spell_warl_demonic_circle_summon") { }
+
+ class spell_warl_demonic_circle_summon_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_warl_demonic_circle_summon_AuraScript);
+
+ void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes mode)
+ {
+ // If effect is removed by expire remove the summoned demonic circle too.
+ if (!(mode & AURA_EFFECT_HANDLE_REAPPLY))
+ GetTarget()->RemoveGameObject(GetId(), true);
+
+ GetTarget()->RemoveAura(WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST);
+ }
+
+ void HandleDummyTick(AuraEffect const* /*aurEff*/)
+ {
+ if (GameObject* circle = GetTarget()->GetGameObject(GetId()))
+ {
+ // Here we check if player is in demonic circle teleport range, if so add
+ // WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST; allowing him to cast the WARLOCK_DEMONIC_CIRCLE_TELEPORT.
+ // If not in range remove the WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST.
+
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(WARLOCK_DEMONIC_CIRCLE_TELEPORT);
+
+ if (GetTarget()->IsWithinDist(circle, spellInfo->GetMaxRange(true)))
+ {
+ if (!GetTarget()->HasAura(WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST))
+ GetTarget()->CastSpell(GetTarget(), WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST, true);
+ }
+ else
+ GetTarget()->RemoveAura(WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST);
+ }
+ }
+
+ void Register()
+ {
+ OnEffectRemove += AuraEffectApplyFn(spell_warl_demonic_circle_summon_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_circle_summon_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_warl_demonic_circle_summon_AuraScript();
+ }
+};
+
+class spell_warl_demonic_circle_teleport : public SpellScriptLoader
+{
+ public:
+ spell_warl_demonic_circle_teleport() : SpellScriptLoader("spell_warl_demonic_circle_teleport") { }
+
+ class spell_warl_demonic_circle_teleport_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_warl_demonic_circle_teleport_AuraScript);
+
+ void HandleTeleport(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (Player* player = GetTarget()->ToPlayer())
+ {
+ if (GameObject* circle = player->GetGameObject(WARLOCK_DEMONIC_CIRCLE_SUMMON))
+ {
+ player->NearTeleportTo(circle->GetPositionX(), circle->GetPositionY(), circle->GetPositionZ(), circle->GetOrientation());
+ player->RemoveMovementImpairingAuras();
+ }
+ }
+ }
+
+ void Register()
+ {
+ OnEffectApply += AuraEffectApplyFn(spell_warl_demonic_circle_teleport_AuraScript::HandleTeleport, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_warl_demonic_circle_teleport_AuraScript();
+ }
+};
+
void AddSC_warlock_spell_scripts()
{
new spell_warl_banish();
@@ -453,4 +533,6 @@ void AddSC_warlock_spell_scripts()
new spell_warl_seed_of_corruption();
new spell_warl_soulshatter();
new spell_warl_life_tap();
+ new spell_warl_demonic_circle_summon();
+ new spell_warl_demonic_circle_teleport();
}
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index 1084398c37d..0ba5c866d63 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -177,24 +177,27 @@ class spell_warr_deep_wounds : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
int32 damage = GetEffectValue();
+ Unit* caster = GetCaster();
if (Unit* target = GetHitUnit())
- if (Unit* caster = GetCaster())
- {
- // apply percent damage mods
- damage = caster->SpellDamageBonus(target, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
+ {
+ // apply percent damage mods
+ damage = caster->SpellDamageBonusDone(target, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
- ApplyPctN(damage, 16 * sSpellMgr->GetSpellRank(GetSpellInfo()->Id));
+ ApplyPctN(damage, 16 * sSpellMgr->GetSpellRank(GetSpellInfo()->Id));
+
+ damage = target->SpellDamageBonusTaken(caster, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
+
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_DEEP_WOUNDS_RANK_PERIODIC);
+ uint32 ticks = spellInfo->GetDuration() / spellInfo->Effects[EFFECT_0].Amplitude;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_DEEP_WOUNDS_RANK_PERIODIC);
- uint32 ticks = spellInfo->GetDuration() / spellInfo->Effects[EFFECT_0].Amplitude;
+ // Add remaining ticks to damage done
+ if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_DEEP_WOUNDS_RANK_PERIODIC, EFFECT_0, caster->GetGUID()))
+ damage += aurEff->GetAmount() * (ticks - aurEff->GetTickNumber());
- // Add remaining ticks to damage done
- if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_DEEP_WOUNDS_RANK_PERIODIC, EFFECT_0, caster->GetGUID()))
- damage += aurEff->GetAmount() * (ticks - aurEff->GetTickNumber());
+ damage = damage / ticks;
- damage = damage / ticks;
- caster->CastCustomSpell(target, SPELL_DEEP_WOUNDS_RANK_PERIODIC, &damage, NULL, NULL, true);
- }
+ caster->CastCustomSpell(target, SPELL_DEEP_WOUNDS_RANK_PERIODIC, &damage, NULL, NULL, true);
+ }
}
void Register()
@@ -365,7 +368,7 @@ class spell_warr_concussion_blow : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
- SetHitDamage(GetHitDamage() + CalculatePctF(GetHitDamage(),GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK)));
+ SetHitDamage(CalculatePctN(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK), GetEffectValue()));
}
void Register()
@@ -397,8 +400,7 @@ class spell_warr_bloodthirst : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
int32 damage = GetEffectValue();
- if (GetHitUnit())
- GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_BLOODTHIRST, &damage, NULL, NULL, true, NULL);
+ GetCaster()->CastCustomSpell(GetCaster(), SPELL_BLOODTHIRST, &damage, NULL, NULL, true, NULL);
}
void Register()
@@ -413,6 +415,51 @@ class spell_warr_bloodthirst : public SpellScriptLoader
}
};
+enum Overpower
+{
+ SPELL_UNRELENTING_ASSAULT_RANK_1 = 46859,
+ SPELL_UNRELENTING_ASSAULT_RANK_2 = 46860,
+ SPELL_UNRELENTING_ASSAULT_TRIGGER_1 = 64849,
+ SPELL_UNRELENTING_ASSAULT_TRIGGER_2 = 64850,
+};
+
+class spell_warr_overpower : public SpellScriptLoader
+{
+public:
+ spell_warr_overpower() : SpellScriptLoader("spell_warr_overpower") { }
+
+ class spell_warr_overpower_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_warr_overpower_SpellScript);
+
+ void HandleEffect(SpellEffIndex /* effIndex */)
+ {
+ uint32 spellId = 0;
+ if (GetCaster()->HasAura(SPELL_UNRELENTING_ASSAULT_RANK_1))
+ spellId = SPELL_UNRELENTING_ASSAULT_TRIGGER_1;
+ else if (GetCaster()->HasAura(SPELL_UNRELENTING_ASSAULT_RANK_2))
+ spellId = SPELL_UNRELENTING_ASSAULT_TRIGGER_2;
+
+ if (!spellId)
+ return;
+
+ if (Player* target = GetHitPlayer())
+ if (target->HasUnitState(UNIT_STATE_CASTING))
+ target->CastSpell(target, spellId, true);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_warr_overpower_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_ANY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_warr_overpower_SpellScript();
+ }
+};
+
void AddSC_warrior_spell_scripts()
{
new spell_warr_last_stand();
@@ -424,4 +471,5 @@ void AddSC_warrior_spell_scripts()
new spell_warr_execute();
new spell_warr_concussion_blow();
new spell_warr_bloodthirst();
+ new spell_warr_overpower();
}
diff --git a/src/server/scripts/World/CMakeLists.txt b/src/server/scripts/World/CMakeLists.txt
index 41ba775efec..f081a5225e4 100644
--- a/src/server/scripts/World/CMakeLists.txt
+++ b/src/server/scripts/World/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
+# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index 8f86f760775..daf0ef213d9 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -32,6 +32,7 @@ at_sholazar_waygate q12548
at_nats_landing q11209
at_bring_your_orphan_to q910 q910 q1800 q1479 q1687 q1558 q10951 q10952
at_brewfest
+at_area_52_entrance
EndContentData */
#include "ScriptPCH.h"
@@ -251,8 +252,13 @@ class AreaTrigger_at_sholazar_waygate : public AreaTriggerScript
{
switch (trigger->id)
{
- case AT_SHOLAZAR: player->CastSpell(player, SPELL_SHOLAZAR_TO_UNGORO_TELEPORT, false); break;
- case AT_UNGORO: player->CastSpell(player, SPELL_UNGORO_TO_SHOLAZAR_TELEPORT, false); break;
+ case AT_SHOLAZAR:
+ player->CastSpell(player, SPELL_SHOLAZAR_TO_UNGORO_TELEPORT, false);
+ break;
+
+ case AT_UNGORO:
+ player->CastSpell(player, SPELL_UNGORO_TO_SHOLAZAR_TELEPORT, false);
+ break;
}
}
@@ -420,6 +426,75 @@ class AreaTrigger_at_brewfest : public AreaTriggerScript
std::map<uint32, time_t> _triggerTimes;
};
+/*######
+## at_area_52_entrance
+######*/
+
+enum Area52Entrance
+{
+ SPELL_A52_NEURALYZER = 34400,
+ NPC_SPOTLIGHT = 19913,
+ SUMMON_COOLDOWN = 5,
+
+ AT_AREA_52_SOUTH = 4472,
+ AT_AREA_52_NORTH = 4466,
+ AT_AREA_52_WEST = 4471,
+ AT_AREA_52_EAST = 4422,
+};
+
+class AreaTrigger_at_area_52_entrance : public AreaTriggerScript
+{
+ public:
+ AreaTrigger_at_area_52_entrance() : AreaTriggerScript("at_area_52_entrance")
+ {
+ _triggerTimes[AT_AREA_52_SOUTH] = _triggerTimes[AT_AREA_52_NORTH] = _triggerTimes[AT_AREA_52_WEST] = _triggerTimes[AT_AREA_52_EAST] = 0;
+ }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger)
+ {
+ float x = 0.0f, y = 0.0f, z = 0.0f;
+
+ if (!player->isAlive())
+ return false;
+
+ uint32 triggerId = trigger->id;
+ if (sWorld->GetGameTime() - _triggerTimes[trigger->id] < SUMMON_COOLDOWN)
+ return false;
+
+ switch (triggerId)
+ {
+ case AT_AREA_52_EAST:
+ x = 3044.176f;
+ y = 3610.692f;
+ z = 143.61f;
+ break;
+ case AT_AREA_52_NORTH:
+ x = 3114.87f;
+ y = 3687.619f;
+ z = 143.62f;
+ break;
+ case AT_AREA_52_WEST:
+ x = 3017.79f;
+ y = 3746.806f;
+ z = 144.27f;
+ break;
+ case AT_AREA_52_SOUTH:
+ x = 2950.63f;
+ y = 3719.905f;
+ z = 143.33f;
+ break;
+ }
+
+ player->SummonCreature(NPC_SPOTLIGHT, x, y, z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5000);
+ player->AddAura(SPELL_A52_NEURALYZER, player);
+ _triggerTimes[trigger->id] = sWorld->GetGameTime();
+ return false;
+ }
+
+ private:
+ std::map<uint32, time_t> _triggerTimes;
+};
+
void AddSC_areatrigger_scripts()
{
new AreaTrigger_at_coilfang_waterfall();
@@ -431,4 +506,5 @@ void AddSC_areatrigger_scripts()
new AreaTrigger_at_nats_landing();
new AreaTrigger_at_bring_your_orphan_to();
new AreaTrigger_at_brewfest();
+ new AreaTrigger_at_area_52_entrance();
}
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp
index 9f652e7a859..045dea9c9a9 100644
--- a/src/server/scripts/World/boss_emerald_dragons.cpp
+++ b/src/server/scripts/World/boss_emerald_dragons.cpp
@@ -198,7 +198,7 @@ class npc_dream_fog : public CreatureScript
me->GetMotionMaster()->MoveRandom(25.0f);
}
// Seeping fog movement is slow enough for a player to be able to walk backwards and still outpace it
- me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(true);
me->SetSpeed(MOVE_WALK, 0.75f);
}
else
@@ -371,7 +371,7 @@ class boss_ysondre : public CreatureScript
{
Talk(SAY_YSONDRE_SUMMON_DRUIDS);
- for (uint8 i = 0 ; i < 10 ; ++i)
+ for (uint8 i = 0; i < 10; ++i)
DoCast(me, SPELL_SUMMON_DRUID_SPIRITS, true);
++_stage;
}
diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp
index 3dfc85d7eb4..790a9d0f814 100644
--- a/src/server/scripts/World/go_scripts.cpp
+++ b/src/server/scripts/World/go_scripts.cpp
@@ -34,7 +34,6 @@ go_tablet_of_madness
go_tablet_of_the_seven
go_tele_to_dalaran_crystal
go_tele_to_violet_stand
-go_rusty_cage
go_scourge_cage
go_jotunheim_cage
go_table_theka
@@ -44,7 +43,6 @@ go_ethereal_teleport_pad
go_soulwell
go_dragonflayer_cage
go_tadpole_cage
-go_black_cage
go_amberpine_outhouse
go_hive_pod
go_gjalerbron_cage
@@ -68,7 +66,7 @@ class go_cat_figurine : public GameObjectScript
public:
go_cat_figurine() : GameObjectScript("go_cat_figurine") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
player->CastSpell(player, SPELL_SUMMON_GHOST_SABER, true);
return false;
@@ -83,12 +81,12 @@ class go_northern_crystal_pylon : public GameObjectScript
public:
go_northern_crystal_pylon() : GameObjectScript("go_northern_crystal_pylon") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
+ if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
{
- player->PrepareQuestMenu(pGO->GetGUID());
- player->SendPreparedQuest(pGO->GetGUID());
+ player->PrepareQuestMenu(go->GetGUID());
+ player->SendPreparedQuest(go->GetGUID());
}
if (player->GetQuestStatus(4285) == QUEST_STATUS_INCOMPLETE)
@@ -103,12 +101,12 @@ class go_eastern_crystal_pylon : public GameObjectScript
public:
go_eastern_crystal_pylon() : GameObjectScript("go_eastern_crystal_pylon") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
+ if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
{
- player->PrepareQuestMenu(pGO->GetGUID());
- player->SendPreparedQuest(pGO->GetGUID());
+ player->PrepareQuestMenu(go->GetGUID());
+ player->SendPreparedQuest(go->GetGUID());
}
if (player->GetQuestStatus(4287) == QUEST_STATUS_INCOMPLETE)
@@ -123,12 +121,12 @@ class go_western_crystal_pylon : public GameObjectScript
public:
go_western_crystal_pylon() : GameObjectScript("go_western_crystal_pylon") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
+ if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER)
{
- player->PrepareQuestMenu(pGO->GetGUID());
- player->SendPreparedQuest(pGO->GetGUID());
+ player->PrepareQuestMenu(go->GetGUID());
+ player->SendPreparedQuest(go->GetGUID());
}
if (player->GetQuestStatus(4288) == QUEST_STATUS_INCOMPLETE)
@@ -147,12 +145,11 @@ class go_barov_journal : public GameObjectScript
public:
go_barov_journal() : GameObjectScript("go_barov_journal") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->HasSkill(SKILL_TAILORING) && player->GetBaseSkillValue(SKILL_TAILORING) >= 280 && !player->HasSpell(26086))
- {
player->CastSpell(player, 26095, false);
- }
+
return true;
}
};
@@ -166,12 +163,11 @@ class go_field_repair_bot_74A : public GameObjectScript
public:
go_field_repair_bot_74A() : GameObjectScript("go_field_repair_bot_74A") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->HasSkill(SKILL_ENGINEERING) && player->GetBaseSkillValue(SKILL_ENGINEERING) >= 300 && !player->HasSpell(22704))
- {
player->CastSpell(player, 22864, false);
- }
+
return true;
}
};
@@ -190,9 +186,9 @@ class go_gilded_brazier : public GameObjectScript
public:
go_gilded_brazier() : GameObjectScript("go_gilded_brazier") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
+ if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
{
if (player->GetQuestStatus(9678) == QUEST_STATUS_INCOMPLETE)
{
@@ -213,7 +209,7 @@ class go_orb_of_command : public GameObjectScript
public:
go_orb_of_command() : GameObjectScript("go_orb_of_command") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->GetQuestRewardStatus(7761))
player->CastSpell(player, 23460, true);
@@ -231,12 +227,11 @@ class go_tablet_of_madness : public GameObjectScript
public:
go_tablet_of_madness() : GameObjectScript("go_tablet_of_madness") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->HasSkill(SKILL_ALCHEMY) && player->GetSkillValue(SKILL_ALCHEMY) >= 300 && !player->HasSpell(24266))
- {
player->CastSpell(player, 24267, false);
- }
+
return true;
}
};
@@ -251,9 +246,9 @@ public:
go_tablet_of_the_seven() : GameObjectScript("go_tablet_of_the_seven") { }
//TODO: use gossip option ("Transcript the Tablet") instead, if Trinity adds support.
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
+ if (go->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
return true;
if (player->GetQuestStatus(4296) == QUEST_STATUS_INCOMPLETE)
@@ -272,10 +267,10 @@ class go_jump_a_tron : public GameObjectScript
public:
go_jump_a_tron() : GameObjectScript("go_jump_a_tron") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->GetQuestStatus(10111) == QUEST_STATUS_INCOMPLETE)
- player->CastSpell(player, 33382, true);
+ player->CastSpell(player, 33382, true);
return true;
}
@@ -306,12 +301,11 @@ class go_ethereum_prison : public GameObjectScript
public:
go_ethereum_prison() : GameObjectScript("go_ethereum_prison") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
int Random = rand() % (sizeof(NpcPrisonEntry) / sizeof(uint32));
- if (Creature* creature = player->SummonCreature(NpcPrisonEntry[Random],
- pGO->GetPositionX(), pGO->GetPositionY(), pGO->GetPositionZ(), pGO->GetAngle(player),
+ if (Creature* creature = player->SummonCreature(NpcPrisonEntry[Random], go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), go->GetAngle(player),
TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
{
if (!creature->IsHostileTo(player))
@@ -356,12 +350,11 @@ class go_ethereum_stasis : public GameObjectScript
public:
go_ethereum_stasis() : GameObjectScript("go_ethereum_stasis") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
int Random = rand() % (sizeof(NpcStasisEntry) / sizeof(uint32));
- player->SummonCreature(NpcStasisEntry[Random],
- pGO->GetPositionX(), pGO->GetPositionY(), pGO->GetPositionZ(), pGO->GetAngle(player),
+ player->SummonCreature(NpcStasisEntry[Random], go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), go->GetAngle(player),
TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
return false;
@@ -382,10 +375,10 @@ class go_resonite_cask : public GameObjectScript
public:
go_resonite_cask() : GameObjectScript("go_resonite_cask") { }
- bool OnGossipHello(Player* /*player*/, GameObject* pGO)
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
- pGO->SummonCreature(NPC_GOGGEROC, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 300000);
+ if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
+ go->SummonCreature(NPC_GOGGEROC, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 300000);
return false;
}
@@ -402,9 +395,9 @@ class go_sacred_fire_of_life : public GameObjectScript
public:
go_sacred_fire_of_life() : GameObjectScript("go_sacred_fire_of_life") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
+ if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
player->SummonCreature(NPC_ARIKARA, -5008.338f, -2118.894f, 83.657f, 0.874f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
return true;
@@ -430,14 +423,14 @@ class go_shrine_of_the_birds : public GameObjectScript
public:
go_shrine_of_the_birds() : GameObjectScript("go_shrine_of_the_birds") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
uint32 BirdEntry = 0;
float fX, fY, fZ;
- pGO->GetClosePoint(fX, fY, fZ, pGO->GetObjectSize(), INTERACTION_DISTANCE);
+ go->GetClosePoint(fX, fY, fZ, go->GetObjectSize(), INTERACTION_DISTANCE);
- switch (pGO->GetEntry())
+ switch (go->GetEntry())
{
case GO_SHRINE_HAWK:
BirdEntry = NPC_HAWK_GUARD;
@@ -451,7 +444,7 @@ public:
}
if (BirdEntry)
- player->SummonCreature(BirdEntry, fX, fY, fZ, pGO->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ player->SummonCreature(BirdEntry, fX, fY, fZ, go->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
return false;
}
@@ -473,7 +466,7 @@ class go_southfury_moonstone : public GameObjectScript
public:
go_southfury_moonstone() : GameObjectScript("go_southfury_moonstone") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
//implicitTarget=48 not implemented as of writing this code, and manual summon may be just ok for our purpose
//player->CastSpell(player, SPELL_SUMMON_RIZZLE, false);
@@ -496,19 +489,18 @@ enum eDalaranCrystal
};
#define GO_TELE_TO_DALARAN_CRYSTAL_FAILED "This teleport crystal cannot be used until the teleport crystal in Dalaran has been used at least once."
+
class go_tele_to_dalaran_crystal : public GameObjectScript
{
public:
go_tele_to_dalaran_crystal() : GameObjectScript("go_tele_to_dalaran_crystal") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->GetQuestRewardStatus(QUEST_TELE_CRYSTAL_FLAG))
- {
return false;
- }
- else
- player->GetSession()->SendNotification(GO_TELE_TO_DALARAN_CRYSTAL_FAILED);
+
+ player->GetSession()->SendNotification(GO_TELE_TO_DALARAN_CRYSTAL_FAILED);
return true;
}
@@ -523,7 +515,7 @@ class go_tele_to_violet_stand : public GameObjectScript
public:
go_tele_to_violet_stand() : GameObjectScript("go_tele_to_violet_stand") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->GetQuestRewardStatus(QUEST_LEARN_LEAVE_RETURN) || player->GetQuestStatus(QUEST_LEARN_LEAVE_RETURN) == QUEST_STATUS_INCOMPLETE)
return false;
@@ -553,38 +545,38 @@ class go_fel_crystalforge : public GameObjectScript
public:
go_fel_crystalforge() : GameObjectScript("go_fel_crystalforge") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
- player->PrepareQuestMenu(pGO->GetGUID()); /* return true*/
+ if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
+ player->PrepareQuestMenu(go->GetGUID()); /* return true*/
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_TEXT, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_TEXT, go->GetGUID());
return true;
}
- bool OnGossipSelect(Player* player, GameObject* pGO, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->CastSpell(player, SPELL_CREATE_1_FLASK_OF_BEAST, false);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 1:
player->CastSpell(player, SPELL_CREATE_5_FLASK_OF_BEAST, false);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
break;
- case GOSSIP_ACTION_INFO_DEF + 2:
+ case GOSSIP_ACTION_INFO_DEF + 2:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_TEXT, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_FEL_CRYSTALFORGE_TEXT, go->GetGUID());
break;
}
return true;
@@ -612,38 +604,38 @@ class go_bashir_crystalforge : public GameObjectScript
public:
go_bashir_crystalforge() : GameObjectScript("go_bashir_crystalforge") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
- player->PrepareQuestMenu(pGO->GetGUID()); /* return true*/
+ if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */
+ player->PrepareQuestMenu(go->GetGUID()); /* return true*/
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_TEXT, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_TEXT, go->GetGUID());
return true;
}
- bool OnGossipSelect(Player* player, GameObject* pGO, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
player->CastSpell(player, SPELL_CREATE_1_FLASK_OF_SORCERER, false);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 1:
player->CastSpell(player, SPELL_CREATE_5_FLASK_OF_SORCERER, false);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, go->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 2:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_TEXT, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_BASHIR_CRYSTALFORGE_TEXT, go->GetGUID());
break;
}
return true;
@@ -676,9 +668,9 @@ class go_matrix_punchograph : public GameObjectScript
public:
go_matrix_punchograph() : GameObjectScript("go_matrix_punchograph") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- switch (pGO->GetEntry())
+ switch (go->GetEntry())
{
case MATRIX_PUNCHOGRAPH_3005_A:
if (player->HasItemCount(ITEM_WHITE_PUNCH_CARD, 1))
@@ -716,33 +708,6 @@ public:
};
/*######
-## go_rusty_cage
-######*/
-
-enum eRustyCage
-{
- NPC_GOBLIN_PRISIONER = 29466
-};
-
-class go_rusty_cage : public GameObjectScript
-{
-public:
- go_rusty_cage() : GameObjectScript("go_rusty_cage") { }
-
- bool OnGossipHello(Player* player, GameObject* pGO)
- {
- if (Creature* pGoblinPrisoner = pGO->FindNearestCreature(NPC_GOBLIN_PRISIONER, 5.0f, true))
- {
- pGO->SetGoState(GO_STATE_ACTIVE);
- player->KilledMonsterCredit(NPC_GOBLIN_PRISIONER, pGoblinPrisoner->GetGUID());
- pGoblinPrisoner->DisappearAndDie();
- }
-
- return true;
- }
-};
-
-/*######
## go_scourge_cage
######*/
@@ -756,11 +721,11 @@ class go_scourge_cage : public GameObjectScript
public:
go_scourge_cage() : GameObjectScript("go_scourge_cage") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (Creature* pNearestPrisoner = pGO->FindNearestCreature(NPC_SCOURGE_PRISONER, 5.0f, true))
+ if (Creature* pNearestPrisoner = go->FindNearestCreature(NPC_SCOURGE_PRISONER, 5.0f, true))
{
- pGO->SetGoState(GO_STATE_ACTIVE);
+ go->SetGoState(GO_STATE_ACTIVE);
player->KilledMonsterCredit(NPC_SCOURGE_PRISONER, pNearestPrisoner->GetGUID());
pNearestPrisoner->DisappearAndDie();
}
@@ -784,15 +749,15 @@ class go_arcane_prison : public GameObjectScript
public:
go_arcane_prison() : GameObjectScript("go_arcane_prison") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
if (player->GetQuestStatus(QUEST_PRISON_BREAK) == QUEST_STATUS_INCOMPLETE)
{
- pGO->SummonCreature(25318, 3485.089844f, 6115.7422188f, 70.966812f, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
+ go->SummonCreature(25318, 3485.089844f, 6115.7422188f, 70.966812f, 0, TEMPSUMMON_TIMED_DESPAWN, 60000);
player->CastSpell(player, SPELL_ARCANE_PRISONER_KILL_CREDIT, true);
return true;
- } else
- return false;
+ }
+ return false;
}
};
@@ -807,9 +772,9 @@ class go_blood_filled_orb : public GameObjectScript
public:
go_blood_filled_orb() : GameObjectScript("go_blood_filled_orb") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- if (pGO->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
+ if (go->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
player->SummonCreature(NPC_ZELEMAR, -369.746f, 166.759f, -21.50f, 5.235f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
return true;
@@ -838,17 +803,17 @@ class go_jotunheim_cage : public GameObjectScript
public:
go_jotunheim_cage() : GameObjectScript("go_jotunheim_cage") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- Creature* pPrisoner = pGO->FindNearestCreature(NPC_EBON_BLADE_PRISONER_HUMAN, 5.0f, true);
+ Creature* pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_HUMAN, 5.0f, true);
if (!pPrisoner)
{
- pPrisoner = pGO->FindNearestCreature(NPC_EBON_BLADE_PRISONER_TROLL, 5.0f, true);
+ pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_TROLL, 5.0f, true);
if (!pPrisoner)
{
- pPrisoner = pGO->FindNearestCreature(NPC_EBON_BLADE_PRISONER_ORC, 5.0f, true);
+ pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_ORC, 5.0f, true);
if (!pPrisoner)
- pPrisoner = pGO->FindNearestCreature(NPC_EBON_BLADE_PRISONER_NE, 5.0f, true);
+ pPrisoner = go->FindNearestCreature(NPC_EBON_BLADE_PRISONER_NE, 5.0f, true);
}
}
if (!pPrisoner || !pPrisoner->isAlive())
@@ -887,12 +852,12 @@ class go_table_theka : public GameObjectScript
public:
go_table_theka() : GameObjectScript("go_table_theka") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
if (player->GetQuestStatus(QUEST_SPIDER_GOLD) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_SPIDER_GOLD);
- player->SEND_GOSSIP_MENU(GOSSIP_TABLE_THEKA, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_TABLE_THEKA, go->GetGUID());
return true;
}
@@ -913,7 +878,7 @@ class go_inconspicuous_landmark : public GameObjectScript
public:
go_inconspicuous_landmark() : GameObjectScript("go_inconspicuous_landmark") { }
- bool OnGossipHello(Player* player, GameObject* /*pGO*/)
+ bool OnGossipHello(Player* player, GameObject* /*go*/)
{
if (player->HasItemCount(ITEM_CUERGOS_KEY, 1))
return false;
@@ -939,12 +904,12 @@ class go_ethereal_teleport_pad : public GameObjectScript
public:
go_ethereal_teleport_pad() : GameObjectScript("go_ethereal_teleport_pad") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
if (!player->HasItemCount(ITEM_TELEPORTER_POWER_PACK, 1))
return false;
- pGO->SummonCreature(NPC_IMAGE_WIND_TRADER, pGO->GetPositionX(), pGO->GetPositionY(), pGO->GetPositionZ(), pGO->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ go->SummonCreature(NPC_IMAGE_WIND_TRADER, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), go->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
return true;
}
@@ -959,9 +924,9 @@ class go_soulwell : public GameObjectScript
public:
go_soulwell() : GameObjectScript("go_soulwell") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- Unit* caster = pGO->GetOwner();
+ Unit* caster = go->GetOwner();
if (!caster || caster->GetTypeId() != TYPEID_PLAYER)
return true;
@@ -972,7 +937,7 @@ public:
// GO scripting with at least On Create and On Update events, the other options are no less
// ugly and hacky.
uint32 newSpell = 0;
- if (pGO->GetEntry() == 193169) // Soulwell for rank 2
+ if (go->GetEntry() == 193169) // Soulwell for rank 2
{
if (caster->HasAura(18693)) // Improved Healthstone rank 2
newSpell = 58898;
@@ -980,7 +945,7 @@ public:
newSpell = 58896;
else newSpell = 58890;
}
- else if (pGO->GetEntry() == 181621) // Soulwell for rank 1
+ else if (go->GetEntry() == 181621) // Soulwell for rank 1
{
if (caster->HasAura(18693)) // Improved Healthstone rank 2
newSpell = 34150;
@@ -989,7 +954,7 @@ public:
else newSpell = 34130;
}
- pGO->AddUse();
+ go->AddUse();
player->CastSpell(player, newSpell, true);
return true;
}
@@ -1014,20 +979,20 @@ class go_dragonflayer_cage : public GameObjectScript
public:
go_dragonflayer_cage() : GameObjectScript("go_dragonflayer_cage") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
if (player->GetQuestStatus(QUEST_PRISONERS_OF_WYRMSKULL) != QUEST_STATUS_INCOMPLETE)
return true;
- Creature* pPrisoner = pGO->FindNearestCreature(NPC_PRISONER_PRIEST, 2.0f);
+ Creature* pPrisoner = go->FindNearestCreature(NPC_PRISONER_PRIEST, 2.0f);
if (!pPrisoner)
{
- pPrisoner = pGO->FindNearestCreature(NPC_PRISONER_MAGE, 2.0f);
+ pPrisoner = go->FindNearestCreature(NPC_PRISONER_MAGE, 2.0f);
if (!pPrisoner)
{
- pPrisoner = pGO->FindNearestCreature(NPC_PRISONER_WARRIOR, 2.0f);
+ pPrisoner = go->FindNearestCreature(NPC_PRISONER_WARRIOR, 2.0f);
if (!pPrisoner)
- pPrisoner = pGO->FindNearestCreature(NPC_PRISONER_PALADIN, 2.0f);
+ pPrisoner = go->FindNearestCreature(NPC_PRISONER_PALADIN, 2.0f);
}
}
@@ -1061,14 +1026,14 @@ class go_tadpole_cage : public GameObjectScript
public:
go_tadpole_cage() : GameObjectScript("go_tadpole_cage") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
if (player->GetQuestStatus(QUEST_OH_NOES_THE_TADPOLES) == QUEST_STATUS_INCOMPLETE)
{
- Creature* pTadpole = pGO->FindNearestCreature(NPC_WINTERFIN_TADPOLE, 1.0f);
+ Creature* pTadpole = go->FindNearestCreature(NPC_WINTERFIN_TADPOLE, 1.0f);
if (pTadpole)
{
- pGO->UseDoorOrButton();
+ go->UseDoorOrButton();
pTadpole->DisappearAndDie();
player->KilledMonsterCredit(NPC_WINTERFIN_TADPOLE, 0);
//FIX: Summon minion tadpole
@@ -1079,43 +1044,6 @@ public:
};
/*######
-## Quest 14096 & 14142: You've Really Done It This Time, Kul
-## go_black_cage
-######*/
-
-enum eReallyDoneItThisTime
-{
- QUEST_ALLIANCE_YOU_VE_REALLY_DONE_IT_THIS_TIME_KUL = 14096,
- QUEST_HORDE_YOU_VE_REALLY_DONE_IT_THIS_TIME_KUL = 14142,
- NPC_CAPTIVE_ASPIRANT = 34716,
- NPC_KUL = 34956
-};
-
-class go_black_cage : public GameObjectScript
-{
-public:
- go_black_cage() : GameObjectScript("go_black_cage") { }
-
- bool OnGossipHello(Player* player, GameObject* pGO)
- {
- if ((player->GetTeamId() == TEAM_ALLIANCE && player->GetQuestStatus(QUEST_ALLIANCE_YOU_VE_REALLY_DONE_IT_THIS_TIME_KUL) == QUEST_STATUS_INCOMPLETE) ||
- (player->GetTeamId() == TEAM_HORDE && player->GetQuestStatus(QUEST_HORDE_YOU_VE_REALLY_DONE_IT_THIS_TIME_KUL) == QUEST_STATUS_INCOMPLETE))
- {
- Creature* pPrisoner = pGO->FindNearestCreature(NPC_CAPTIVE_ASPIRANT, 1.0f);
- if (!pPrisoner)
- pPrisoner = pGO->FindNearestCreature(NPC_KUL, 1.0f);
- if (pPrisoner)
- {
- pGO->UseDoorOrButton();
- pPrisoner->DisappearAndDie();
- player->KilledMonsterCredit(pPrisoner->GetEntry(), 0);
- }
- }
- return true;
- }
-};
-
-/*######
## go_amberpine_outhouse
######*/
@@ -1139,35 +1067,35 @@ class go_amberpine_outhouse : public GameObjectScript
public:
go_amberpine_outhouse() : GameObjectScript("go_amberpine_outhouse") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
QuestStatus status = player->GetQuestStatus(QUEST_DOING_YOUR_DUTY);
if (status == QUEST_STATUS_INCOMPLETE || status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_USE_OUTHOUSE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_VACANT, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_VACANT, go->GetGUID());
return true;
}
else
- player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_INUSE, pGO->GetGUID());
+ player->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_INUSE, go->GetGUID());
return true;
}
- bool OnGossipSelect(Player* player, GameObject* pGO, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, GameObject* go, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF +1)
+ if (action == GOSSIP_ACTION_INFO_DEF +1)
{
player->CLOSE_GOSSIP_MENU();
Creature* target = GetClosestCreatureWithEntry(player, NPC_OUTHOUSE_BUNNY, 3.0f);
if (target)
{
target->AI()->SetData(1, player->getGender());
- pGO->CastSpell(target, SPELL_INDISPOSED_III);
+ go->CastSpell(target, SPELL_INDISPOSED_III);
}
- pGO->CastSpell(player, SPELL_INDISPOSED);
+ go->CastSpell(player, SPELL_INDISPOSED);
if (player->HasItemCount(ITEM_ANDERHOLS_SLIDER_CIDER, 1))
- pGO->CastSpell(player, SPELL_CREATE_AMBERSEEDS);
+ go->CastSpell(player, SPELL_CREATE_AMBERSEEDS);
return true;
}
else
@@ -1195,11 +1123,11 @@ class go_hive_pod : public GameObjectScript
public:
go_hive_pod() : GameObjectScript("go_hive_pod") { }
- bool OnGossipHello(Player* player, GameObject* pGO)
+ bool OnGossipHello(Player* player, GameObject* go)
{
- player->SendLoot(pGO->GetGUID(), LOOT_CORPSE);
- pGO->SummonCreature(NPC_HIVE_AMBUSHER, pGO->GetPositionX()+1, pGO->GetPositionY(), pGO->GetPositionZ(), pGO->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
- pGO->SummonCreature(NPC_HIVE_AMBUSHER, pGO->GetPositionX(), pGO->GetPositionY()+1, pGO->GetPositionZ(), pGO->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ player->SendLoot(go->GetGUID(), LOOT_CORPSE);
+ go->SummonCreature(NPC_HIVE_AMBUSHER, go->GetPositionX()+1, go->GetPositionY(), go->GetPositionZ(), go->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ go->SummonCreature(NPC_HIVE_AMBUSHER, go->GetPositionX(), go->GetPositionY()+1, go->GetPositionZ(), go->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
return true;
}
};
@@ -1246,7 +1174,7 @@ class go_gjalerbron_cage : public GameObjectScript
player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, 0);
prisoner->AI()->Talk(SAY_FREE);
- prisoner->ForcedDespawn(6000);
+ prisoner->DespawnOrUnsummon(6000);
}
}
return true;
@@ -1273,7 +1201,7 @@ class go_large_gjalerbron_cage : public GameObjectScript
{
go->UseDoorOrButton();
player->KilledMonsterCredit(NPC_GJALERBRON_PRISONER, (*itr)->GetGUID());
- (*itr)->ForcedDespawn(6000);
+ (*itr)->DespawnOrUnsummon(6000);
(*itr)->AI()->Talk(SAY_FREE);
}
}
@@ -1307,7 +1235,7 @@ class go_veil_skith_cage : public GameObjectScript
{
go->UseDoorOrButton();
player->KilledMonsterCredit(NPC_CAPTIVE_CHILD, (*itr)->GetGUID());
- (*itr)->ForcedDespawn(5000);
+ (*itr)->DespawnOrUnsummon(5000);
(*itr)->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ());
(*itr)->AI()->Talk(SAY_FREE_0);
(*itr)->GetMotionMaster()->Clear();
@@ -1341,7 +1269,6 @@ void AddSC_go_scripts()
new go_fel_crystalforge;
new go_bashir_crystalforge;
new go_matrix_punchograph;
- new go_rusty_cage;
new go_scourge_cage;
new go_arcane_prison;
new go_blood_filled_orb;
@@ -1352,7 +1279,6 @@ void AddSC_go_scripts()
new go_soulwell;
new go_tadpole_cage;
new go_dragonflayer_cage;
- new go_black_cage;
new go_amberpine_outhouse;
new go_hive_pod;
new go_massive_seaforium_charge;
diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp
index 9bc511931b9..e3100522fbe 100644
--- a/src/server/scripts/World/guards.cpp
+++ b/src/server/scripts/World/guards.cpp
@@ -177,7 +177,6 @@ public:
//Set our global cooldown
globalCooldown = GENERIC_CREATURE_COOLDOWN;
-
} //If no spells available and we arn't moving run to target
else if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != CHASE_MOTION_TYPE)
{
@@ -196,12 +195,26 @@ public:
{
switch (emote)
{
- case TEXT_EMOTE_KISS: me->HandleEmoteCommand(EMOTE_ONESHOT_BOW); break;
- case TEXT_EMOTE_WAVE: me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break;
- case TEXT_EMOTE_SALUTE: me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); break;
- case TEXT_EMOTE_SHY: me->HandleEmoteCommand(EMOTE_ONESHOT_FLEX); break;
+ case TEXT_EMOTE_KISS:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
+ break;
+
+ case TEXT_EMOTE_WAVE:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
+ break;
+
+ case TEXT_EMOTE_SALUTE:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
+ break;
+
+ case TEXT_EMOTE_SHY:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_FLEX);
+ break;
+
case TEXT_EMOTE_RUDE:
- case TEXT_EMOTE_CHICKEN: me->HandleEmoteCommand(EMOTE_ONESHOT_POINT); break;
+ case TEXT_EMOTE_CHICKEN:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
+ break;
}
}
diff --git a/src/server/scripts/World/item_scripts.cpp b/src/server/scripts/World/item_scripts.cpp
index 165ef9f18b1..ae69744ea2b 100644
--- a/src/server/scripts/World/item_scripts.cpp
+++ b/src/server/scripts/World/item_scripts.cpp
@@ -47,9 +47,9 @@ class item_only_for_flight : public ItemScript
public:
item_only_for_flight() : ItemScript("item_only_for_flight") { }
- bool OnUse(Player* player, Item* pItem, SpellCastTargets const& /*targets*/)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/)
{
- uint32 itemId = pItem->GetEntry();
+ uint32 itemId = item->GetEntry();
bool disabled = false;
//for special scripts
@@ -64,8 +64,8 @@ public:
disabled = true;
break;
case 34475:
- if (const SpellInfo* pSpellInfo = sSpellMgr->GetSpellInfo(SPELL_ARCANE_CHARGES))
- Spell::SendCastResult(player, pSpellInfo, 1, SPELL_FAILED_NOT_ON_GROUND);
+ if (const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(SPELL_ARCANE_CHARGES))
+ Spell::SendCastResult(player, spellInfo, 1, SPELL_FAILED_NOT_ON_GROUND);
break;
}
@@ -74,7 +74,7 @@ public:
return false;
// error
- player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, NULL);
return true;
}
};
@@ -94,6 +94,7 @@ public:
{
if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY()+20, player->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 180000))
nether->AI()->AttackStart(player);
+
if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY()-20, player->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 180000))
nether->AI()->AttackStart(player);
}
@@ -110,13 +111,13 @@ class item_gor_dreks_ointment : public ItemScript
public:
item_gor_dreks_ointment() : ItemScript("item_gor_dreks_ointment") { }
- bool OnUse(Player* player, Item* pItem, SpellCastTargets const& targets)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& targets)
{
if (targets.GetUnitTarget() && targets.GetUnitTarget()->GetTypeId() == TYPEID_UNIT &&
targets.GetUnitTarget()->GetEntry() == 20748 && !targets.GetUnitTarget()->HasAura(32578))
return false;
- player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, NULL);
return true;
}
};
@@ -130,13 +131,13 @@ class item_incendiary_explosives : public ItemScript
public:
item_incendiary_explosives() : ItemScript("item_incendiary_explosives") { }
- bool OnUse(Player* player, Item* pItem, SpellCastTargets const & /*targets*/)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const & /*targets*/)
{
if (player->FindNearestCreature(26248, 15) || player->FindNearestCreature(26249, 15))
return false;
else
{
- player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
return true;
}
}
@@ -150,6 +151,7 @@ class item_mysterious_egg : public ItemScript
{
public:
item_mysterious_egg() : ItemScript("item_mysterious_egg") { }
+
bool OnExpire(Player* player, ItemTemplate const* /*pItemProto*/)
{
ItemPosCountVec dest;
@@ -219,7 +221,7 @@ class item_pile_fake_furs : public ItemScript
public:
item_pile_fake_furs() : ItemScript("item_pile_fake_furs") { }
- bool OnUse(Player* player, Item* /*pItem*/, SpellCastTargets const & /*targets*/)
+ bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const & /*targets*/)
{
GameObject* go = NULL;
for (uint8 i = 0; i < CaribouTrapsNum; ++i)
@@ -264,17 +266,17 @@ class item_petrov_cluster_bombs : public ItemScript
public:
item_petrov_cluster_bombs() : ItemScript("item_petrov_cluster_bombs") { }
- bool OnUse(Player* player, Item* pItem, const SpellCastTargets & /*pTargets*/)
+ bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/)
{
if (player->GetZoneId() != ZONE_ID_HOWLING)
return false;
if (!player->GetTransport() || player->GetAreaId() != AREA_ID_SHATTERED_STRAITS)
{
- player->SendEquipError(EQUIP_ERR_NONE, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_NONE, item, NULL);
- if (const SpellInfo* pSpellInfo = sSpellMgr->GetSpellInfo(SPELL_PETROV_BOMB))
- Spell::SendCastResult(player, pSpellInfo, 1, SPELL_FAILED_NOT_HERE);
+ if (const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(SPELL_PETROV_BOMB))
+ Spell::SendCastResult(player, spellInfo, 1, SPELL_FAILED_NOT_HERE);
return true;
}
@@ -330,17 +332,16 @@ class item_dehta_trap_smasher : public ItemScript
public:
item_dehta_trap_smasher() : ItemScript("item_dehta_trap_smasher") { }
- bool OnUse(Player* player, Item* /*pItem*/, const SpellCastTargets & /*pTargets*/)
+ bool OnUse(Player* player, Item* /*item*/, const SpellCastTargets & /*targets*/)
{
if (player->GetQuestStatus(QUEST_CANNOT_HELP_THEMSELVES) != QUEST_STATUS_INCOMPLETE)
return false;
- Creature* pMammoth;
- pMammoth = player->FindNearestCreature(NPC_TRAPPED_MAMMOTH_CALF, 5.0f);
+ Creature* pMammoth = player->FindNearestCreature(NPC_TRAPPED_MAMMOTH_CALF, 5.0f);
if (!pMammoth)
return false;
- GameObject* pTrap;
+ GameObject* pTrap = NULL;
for (uint8 i = 0; i < MammothTrapsNum; ++i)
{
pTrap = player->FindNearestGameObject(MammothTraps[i], 11.0f);
@@ -367,7 +368,7 @@ class item_trident_of_nazjan : public ItemScript
public:
item_trident_of_nazjan() : ItemScript("item_Trident_of_Nazjan") { }
- bool OnUse(Player* player, Item* pItem, const SpellCastTargets & /*pTargets*/)
+ bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/)
{
if (player->GetQuestStatus(QUEST_THE_EMISSARY) == QUEST_STATUS_INCOMPLETE)
{
@@ -376,9 +377,9 @@ public:
pLeviroth->AI()->AttackStart(player);
return false;
} else
- player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
} else
- player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, NULL);
return true;
}
};
@@ -394,17 +395,17 @@ class item_captured_frog : public ItemScript
public:
item_captured_frog() : ItemScript("item_captured_frog") { }
- bool OnUse(Player* player, Item* pItem, SpellCastTargets const& /*targets*/)
+ bool OnUse(Player* player, Item* item, SpellCastTargets const& /*targets*/)
{
if (player->GetQuestStatus(QUEST_THE_PERFECT_SPIES) == QUEST_STATUS_INCOMPLETE)
{
if (player->FindNearestCreature(NPC_VANIRAS_SENTRY_TOTEM, 10.0f))
return false;
else
- player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
}
else
- player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, pItem, NULL);
+ player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, NULL);
return true;
}
};
diff --git a/src/server/scripts/World/mob_generic_creature.cpp b/src/server/scripts/World/mob_generic_creature.cpp
index 3a61b9f9e18..208effee61b 100644
--- a/src/server/scripts/World/mob_generic_creature.cpp
+++ b/src/server/scripts/World/mob_generic_creature.cpp
@@ -34,7 +34,7 @@ public:
struct generic_creatureAI : public ScriptedAI
{
- generic_creatureAI(Creature* c) : ScriptedAI(c) {}
+ generic_creatureAI(Creature* creature) : ScriptedAI(creature) {}
uint32 GlobalCooldown; //This variable acts like the global cooldown that players have (1.5 seconds)
uint32 BuffTimer; //This variable keeps track of buffs
@@ -105,7 +105,7 @@ public:
else info = SelectSpell(me->getVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, 0, 0, SELECT_EFFECT_DONTCARE);
//50% chance if elite or higher, 20% chance if not, to replace our white hit with a spell
- if (info && (rand() % (me->GetCreatureInfo()->rank > 1 ? 2 : 5) == 0) && !GlobalCooldown)
+ if (info && (rand() % (me->GetCreatureTemplate()->rank > 1 ? 2 : 5) == 0) && !GlobalCooldown)
{
//Cast the spell
if (Healing)DoCastSpell(me, info);
@@ -174,7 +174,7 @@ public:
struct trigger_periodicAI : public NullCreatureAI
{
- trigger_periodicAI(Creature* c) : NullCreatureAI(c)
+ trigger_periodicAI(Creature* creature) : NullCreatureAI(creature)
{
spell = me->m_spells[0] ? sSpellMgr->GetSpellInfo(me->m_spells[0]) : NULL;
interval = me->GetAttackTime(BASE_ATTACK);
@@ -210,7 +210,7 @@ public:
struct trigger_deathAI : public NullCreatureAI
{
- trigger_deathAI(Creature* c) : NullCreatureAI(c) {}
+ trigger_deathAI(Creature* creature) : NullCreatureAI(creature) {}
void JustDied(Unit* killer)
{
if (me->m_spells[0])
diff --git a/src/server/scripts/World/npc_innkeeper.cpp b/src/server/scripts/World/npc_innkeeper.cpp
index 334eb48cb05..fb7c0833d22 100644
--- a/src/server/scripts/World/npc_innkeeper.cpp
+++ b/src/server/scripts/World/npc_innkeeper.cpp
@@ -79,10 +79,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICK_OR_TREATED))
+ if (action == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && IsEventActive(HALLOWEEN_EVENTID) && !player->HasAura(SPELL_TRICK_OR_TREATED))
{
player->CastSpell(player, SPELL_TRICK_OR_TREATED, true);
@@ -116,7 +116,7 @@ public:
player->CLOSE_GOSSIP_MENU();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE: player->GetSession()->SendListInventory(creature->GetGUID()); break;
case GOSSIP_ACTION_INN: player->SetBindPoint(creature->GetGUID()); break;
diff --git a/src/server/scripts/World/npc_professions.cpp b/src/server/scripts/World/npc_professions.cpp
index 336e232236d..2afa80dd42c 100644
--- a/src/server/scripts/World/npc_professions.cpp
+++ b/src/server/scripts/World/npc_professions.cpp
@@ -83,11 +83,8 @@ there is no difference here (except that default text is chosen with `gameobject
#define BOX_UNLEARN_WEAPON_SPEC "Do you really want to unlearn your weaponsmith specialty and lose all associated recipes? \n Cost: "
-#define GOSSIP_LEARN_DRAGON "I am absolutely certain that i want to learn dragonscale leatherworking"
#define GOSSIP_UNLEARN_DRAGON "I wish to unlearn Dragonscale Leatherworking"
-#define GOSSIP_LEARN_ELEMENTAL "I am absolutely certain that i want to learn elemental leatherworking"
#define GOSSIP_UNLEARN_ELEMENTAL "I wish to unlearn Elemental Leatherworking"
-#define GOSSIP_LEARN_TRIBAL "I am absolutely certain that i want to learn tribal leatherworking"
#define GOSSIP_UNLEARN_TRIBAL "I wish to unlearn Tribal Leatherworking"
#define BOX_UNLEARN_LEATHER_SPEC "Do you really want to unlearn your leatherworking specialty and lose all associated recipes? \n Cost: "
@@ -101,9 +98,6 @@ there is no difference here (except that default text is chosen with `gameobject
#define BOX_UNLEARN_TAILOR_SPEC "Do you really want to unlearn your tailoring specialty and lose all associated recipes? \n Cost: "
-#define GOSSIP_LEARN_GOBLIN "I am absolutely certain that i want to learn Goblin engineering"
-#define GOSSIP_LEARN_GNOMISH "I am absolutely certain that i want to learn Gnomish engineering"
-
/*###
# spells defines
###*/
@@ -213,7 +207,7 @@ int32 DoLowUnlearnCost(Player* player) //blacksmith
return 100000;
}
-void ProcessCastAction(Player* player, Creature* creature, uint32 spellId, uint32 triggeredSpellId, int32 cost)
+void ProcessCastaction(Player* player, Creature* creature, uint32 spellId, uint32 triggeredSpellId, int32 cost)
{
if (!(spellId && player->HasSpell(spellId)) && player->HasEnoughMoney(cost))
{
@@ -241,14 +235,14 @@ bool EquippedOk(Player* player, uint32 spellId)
if (!reqSpell)
continue;
- Item* pItem;
+ Item* item = NULL;
for (uint8 j = EQUIPMENT_SLOT_START; j < EQUIPMENT_SLOT_END; ++j)
{
- pItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, j);
- if (pItem && pItem->GetTemplate()->RequiredSpell == reqSpell)
+ item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, j);
+ if (item && item->GetTemplate()->RequiredSpell == reqSpell)
{
//player has item equipped that require specialty. Not allow to unlearn, player has to unequip first
- sLog->outDebug(LOG_FILTER_TSCR, "TSCR: player attempt to unlearn spell %u, but item %u is equipped.", reqSpell, pItem->GetEntry());
+ sLog->outDebug(LOG_FILTER_TSCR, "TSCR: player attempt to unlearn spell %u, but item %u is equipped.", reqSpell, item->GetEntry());
return false;
}
}
@@ -387,8 +381,10 @@ public:
{
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
+
if (creature->isVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
+
if (creature->isTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
@@ -424,9 +420,9 @@ public:
return true;
}
- void SendActionMenu(Player* player, Creature* creature, uint32 uiAction)
+ void SendActionMenu(Player* player, Creature* creature, uint32 action)
{
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE:
player->GetSession()->SendListInventory(creature->GetGUID());
@@ -436,45 +432,45 @@ public:
break;
//Learn Alchemy
case GOSSIP_ACTION_INFO_DEF + 1:
- ProcessCastAction(player, creature, S_TRANSMUTE, S_LEARN_TRANSMUTE, DoLearnCost(player));
+ ProcessCastaction(player, creature, S_TRANSMUTE, S_LEARN_TRANSMUTE, DoLearnCost(player));
break;
case GOSSIP_ACTION_INFO_DEF + 2:
- ProcessCastAction(player, creature, S_ELIXIR, S_LEARN_ELIXIR, DoLearnCost(player));
+ ProcessCastaction(player, creature, S_ELIXIR, S_LEARN_ELIXIR, DoLearnCost(player));
break;
case GOSSIP_ACTION_INFO_DEF + 3:
- ProcessCastAction(player, creature, S_POTION, S_LEARN_POTION, DoLearnCost(player));
+ ProcessCastaction(player, creature, S_POTION, S_LEARN_POTION, DoLearnCost(player));
break;
//Unlearn Alchemy
case GOSSIP_ACTION_INFO_DEF + 4:
- ProcessCastAction(player, creature, 0, S_UNLEARN_TRANSMUTE, DoHighUnlearnCost(player));
+ ProcessCastaction(player, creature, 0, S_UNLEARN_TRANSMUTE, DoHighUnlearnCost(player));
break;
case GOSSIP_ACTION_INFO_DEF + 5:
- ProcessCastAction(player, creature, 0, S_UNLEARN_ELIXIR, DoHighUnlearnCost(player));
+ ProcessCastaction(player, creature, 0, S_UNLEARN_ELIXIR, DoHighUnlearnCost(player));
break;
case GOSSIP_ACTION_INFO_DEF + 6:
- ProcessCastAction(player, creature, 0, S_UNLEARN_POTION, DoHighUnlearnCost(player));
+ ProcessCastaction(player, creature, 0, S_UNLEARN_POTION, DoHighUnlearnCost(player));
break;
}
}
- void SendConfirmLearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmLearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
case 22427:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, action);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 19052:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELIXIR, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_ELIXIR, GOSSIP_SENDER_CHECK, action);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 17909:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_POTION, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_POTION, GOSSIP_SENDER_CHECK, action);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -482,24 +478,24 @@ public:
}
}
- void SendConfirmUnlearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmUnlearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
case 22427: //Zarevhi
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_TRANSMUTE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 19052: //Lorokeem
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_ELIXIR, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_ELIXIR, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 17909: //Lauranna Thar'well
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_POTION, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_POTION, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ALCHEMY_SPEC, DoHighUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -507,15 +503,26 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiSender)
+ switch (sender)
{
- case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, uiAction); break;
- case GOSSIP_SENDER_LEARN: SendConfirmLearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, uiAction); break;
+ case GOSSIP_SENDER_MAIN:
+ SendActionMenu(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_LEARN:
+ SendConfirmLearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_UNLEARN:
+ SendConfirmUnlearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_CHECK:
+ SendActionMenu(player, creature, action);
+ break;
}
return true;
}
@@ -539,16 +546,18 @@ public:
{
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
+
if (creature->isVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
+
if (creature->isTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
- uint32 eCreature = creature->GetEntry();
+ uint32 creatureId = creature->GetEntry();
//WEAPONSMITH & ARMORSMITH
if (player->GetBaseSkillValue(SKILL_BLACKSMITHING) >= 225)
{
- switch (eCreature)
+ switch (creatureId)
{
case 11145: //Myolor Sunderfury
case 11176: //Krathok Moltenfist
@@ -572,7 +581,7 @@ public:
//WEAPONSMITH SPEC
if (player->HasSpell(S_WEAPON) && player->getLevel() > 49 && player->GetBaseSkillValue(SKILL_BLACKSMITHING) >= 250)
{
- switch (eCreature)
+ switch (creatureId)
{
case 11191: //Lilith the Lithe
if (!HasWeaponSub(player))
@@ -599,9 +608,9 @@ public:
return true;
}
- void SendActionMenu(Player* player, Creature* creature, uint32 uiAction)
+ void SendActionMenu(Player* player, Creature* creature, uint32 action)
{
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE:
player->GetSession()->SendListInventory(creature->GetGUID());
@@ -665,24 +674,24 @@ public:
}
}
- void SendConfirmLearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmLearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
case 11191:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_HAMMER, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_HAMMER, GOSSIP_SENDER_CHECK, action);
//unknown textID (TALK_HAMMER_LEARN)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 11192:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_AXE, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_AXE, GOSSIP_SENDER_CHECK, action);
//unknown textID (TALK_AXE_LEARN)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 11193:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SWORD, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SWORD, GOSSIP_SENDER_CHECK, action);
//unknown textID (TALK_SWORD_LEARN)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -690,9 +699,9 @@ public:
}
}
- void SendConfirmUnlearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmUnlearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
@@ -700,23 +709,23 @@ public:
case 11178: //Borgosh Corebender
case 5164: //Grumnus Steelshaper
case 11177: //Okothos Ironrager
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SMITH_SPEC, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_ARMORORWEAPON, DoLowUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SMITH_SPEC, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_ARMORORWEAPON, DoLowUnlearnCost(player), false);
//unknown textID (TALK_UNLEARN_AXEORWEAPON)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 11191:
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_HAMMER, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_HAMMER, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
//unknown textID (TALK_HAMMER_UNLEARN)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 11192:
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_AXE, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_AXE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
//unknown textID (TALK_AXE_UNLEARN)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 11193:
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SWORD, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SWORD, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_WEAPON_SPEC, DoMedUnlearnCost(player), false);
//unknown textID (TALK_SWORD_UNLEARN)
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -724,15 +733,26 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiSender)
+ switch (sender)
{
- case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, uiAction); break;
- case GOSSIP_SENDER_LEARN: SendConfirmLearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, uiAction); break;
+ case GOSSIP_SENDER_MAIN:
+ SendActionMenu(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_LEARN:
+ SendConfirmLearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_UNLEARN:
+ SendConfirmUnlearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_CHECK:
+ SendActionMenu(player, creature, action);
+ break;
}
return true;
}
@@ -763,7 +783,6 @@ enum eEngineeringTrinkets
#define GOSSIP_ITEM_ZAP "[PH] Unknown"
#define GOSSIP_ITEM_JHORDY "I must build a beacon for this marvelous device!"
#define GOSSIP_ITEM_KABLAM "[PH] Unknown"
-#define GOSSIP_ITEM_SMILES "[PH] Unknown"
class npc_engineering_tele_trinket : public CreatureScript
{
@@ -824,16 +843,16 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1)
player->CLOSE_GOSSIP_MENU();
- if (uiSender != creature->GetEntry())
+ if (sender != creature->GetEntry())
return true;
- switch (uiSender)
+ switch (sender)
{
case NPC_ZAP:
player->CastSpell(player, SPELL_LEARN_TO_EVERLOOK, false);
@@ -866,8 +885,10 @@ public:
{
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
+
if (creature->isVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
+
if (creature->isTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
@@ -897,9 +918,9 @@ public:
return true;
}
- void SendActionMenu(Player* player, Creature* creature, uint32 uiAction)
+ void SendActionMenu(Player* player, Creature* creature, uint32 action)
{
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE:
player->GetSession()->SendListInventory(creature->GetGUID());
@@ -920,27 +941,27 @@ public:
}
}
- void SendConfirmUnlearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmUnlearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
case 7866: //Peter Galen
case 7867: //Thorkaf Dragoneye
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_DRAGON, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_LEATHER_SPEC, DoMedUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_DRAGON, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_LEATHER_SPEC, DoMedUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 7868: //Sarah Tanner
case 7869: //Brumn Winterhoof
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_ELEMENTAL, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_LEATHER_SPEC, DoMedUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_ELEMENTAL, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_LEATHER_SPEC, DoMedUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 7870: //Caryssia Moonhunter
case 7871: //Se'Jib
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_TRIBAL, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_LEATHER_SPEC, DoMedUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_TRIBAL, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_LEATHER_SPEC, DoMedUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -948,14 +969,22 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiSender)
+ switch (sender)
{
- case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, uiAction); break;
- case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, uiAction); break;
+ case GOSSIP_SENDER_MAIN:
+ SendActionMenu(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_UNLEARN:
+ SendConfirmUnlearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_CHECK:
+ SendActionMenu(player, creature, action);
+ break;
}
return true;
}
@@ -979,8 +1008,10 @@ public:
{
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
+
if (creature->isVendor())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
+
if (creature->isTrainer())
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
@@ -1017,9 +1048,9 @@ public:
return true;
}
- void SendActionMenu(Player* player, Creature* creature, uint32 uiAction)
+ void SendActionMenu(Player* player, Creature* creature, uint32 action)
{
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_TRADE:
player->GetSession()->SendListInventory(creature->GetGUID());
@@ -1029,13 +1060,13 @@ public:
break;
//Learn Tailor
case GOSSIP_ACTION_INFO_DEF + 1:
- ProcessCastAction(player, creature, S_SPELLFIRE, S_LEARN_SPELLFIRE, DoLearnCost(player));
+ ProcessCastaction(player, creature, S_SPELLFIRE, S_LEARN_SPELLFIRE, DoLearnCost(player));
break;
case GOSSIP_ACTION_INFO_DEF + 2:
- ProcessCastAction(player, creature, S_MOONCLOTH, S_LEARN_MOONCLOTH, DoLearnCost(player));
+ ProcessCastaction(player, creature, S_MOONCLOTH, S_LEARN_MOONCLOTH, DoLearnCost(player));
break;
case GOSSIP_ACTION_INFO_DEF + 3:
- ProcessCastAction(player, creature, S_SHADOWEAVE, S_LEARN_SHADOWEAVE, DoLearnCost(player));
+ ProcessCastaction(player, creature, S_SHADOWEAVE, S_LEARN_SHADOWEAVE, DoLearnCost(player));
break;
//Unlearn Tailor
case GOSSIP_ACTION_INFO_DEF + 4:
@@ -1050,24 +1081,24 @@ public:
}
}
- void SendConfirmLearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmLearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
case 22213:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, action);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 22208:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, action);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 22212:
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, uiAction);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, action);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -1075,24 +1106,24 @@ public:
}
}
- void SendConfirmUnlearn(Player* player, Creature* creature, uint32 uiAction)
+ void SendConfirmUnlearn(Player* player, Creature* creature, uint32 action)
{
- if (uiAction)
+ if (action)
{
switch (creature->GetEntry())
{
case 22213: //Gidge Spellweaver
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SPELLFIRE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 22208: //Nasmara Moonsong
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_MOONCLOTH, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
case 22212: //Andrion Darkspinner
- player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, uiAction, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
+ player->ADD_GOSSIP_ITEM_EXTENDED(0, GOSSIP_UNLEARN_SHADOWEAVE, GOSSIP_SENDER_CHECK, action, BOX_UNLEARN_TAILOR_SPEC, DoHighUnlearnCost(player), false);
//unknown textID ()
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
break;
@@ -1100,29 +1131,36 @@ public:
}
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiSender)
+ switch (sender)
{
- case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, uiAction); break;
- case GOSSIP_SENDER_LEARN: SendConfirmLearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, uiAction); break;
- case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, uiAction); break;
+ case GOSSIP_SENDER_MAIN:
+ SendActionMenu(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_LEARN:
+ SendConfirmLearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_UNLEARN:
+ SendConfirmUnlearn(player, creature, action);
+ break;
+
+ case GOSSIP_SENDER_CHECK:
+ SendActionMenu(player, creature, action);
+ break;
}
return true;
}
};
-/*###
-#
-###*/
-
void AddSC_npc_professions()
{
- new npc_prof_alchemy;
- new npc_prof_blacksmith;
- new npc_engineering_tele_trinket;
- new npc_prof_leather;
- new npc_prof_tailor;
+ new npc_prof_alchemy();
+ new npc_prof_blacksmith();
+ new npc_engineering_tele_trinket();
+ new npc_prof_leather();
+ new npc_prof_tailor();
}
diff --git a/src/server/scripts/World/npc_taxi.cpp b/src/server/scripts/World/npc_taxi.cpp
index aff326e152d..ceda8e0f6ac 100644
--- a/src/server/scripts/World/npc_taxi.cpp
+++ b/src/server/scripts/World/npc_taxi.cpp
@@ -38,7 +38,7 @@ EndScriptData
#define GOSSIP_BRACK2 "Fly me to The Abyssal Shelf"
#define GOSSIP_BRACK3 "Fly me to Spinebreaker Post"
#define GOSSIP_IRENA "Fly me to Skettis please"
-#define GOSSIP_CLOUDBREAKER1 "Speaking of uiAction, I've been ordered to undertake an air strike."
+#define GOSSIP_CLOUDBREAKER1 "Speaking of action, I've been ordered to undertake an air strike."
#define GOSSIP_CLOUDBREAKER2 "I need to intercept the Dawnblade reinforcements."
#define GOSSIP_DRAGONHAWK "<Ride the dragonhawk to Sun's Reach>"
#define GOSSIP_VERONIA "Fly me to Manaforge Coruu please"
@@ -186,10 +186,10 @@ public:
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- switch (uiAction)
+ switch (action)
{
case GOSSIP_ACTION_INFO_DEF:
//spellId is correct, however it gives flight a somewhat funny effect //TaxiPath 506.
@@ -201,9 +201,10 @@ public:
player->ActivateTaxiPathTo(627); //TaxiPath 627 (possibly 627+628(152->153->154->155))
break;
case GOSSIP_ACTION_INFO_DEF + 2:
- if (!player->HasItemCount(25853, 1)) {
+ if (!player->HasItemCount(25853, 1))
player->SEND_GOSSIP_MENU(9780, creature->GetGUID());
- } else {
+ else
+ {
player->CLOSE_GOSSIP_MENU();
player->ActivateTaxiPathTo(534); //TaxiPath 534
}
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 1e1e34431a2..ecd1a439a58 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -137,8 +137,8 @@ public:
if (!spawnedTemplate)
{
- SpawnAssoc = NULL;
sLog->outErrorDb("TCSR: Creature template entry %u does not exist in DB, which is required by npc_air_force_bots", SpawnAssoc->spawnedCreatureEntry);
+ SpawnAssoc = NULL;
return;
}
}
@@ -315,7 +315,7 @@ public:
struct npc_chicken_cluckAI : public ScriptedAI
{
- npc_chicken_cluckAI(Creature* c) : ScriptedAI(c) {}
+ npc_chicken_cluckAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ResetFlagTimer;
@@ -407,7 +407,7 @@ public:
struct npc_dancing_flamesAI : public ScriptedAI
{
- npc_dancing_flamesAI(Creature* c) : ScriptedAI(c) {}
+ npc_dancing_flamesAI(Creature* creature) : ScriptedAI(creature) {}
bool Active;
uint32 CanIteract;
@@ -421,7 +421,7 @@ public:
float x, y, z;
me->GetPosition(x, y, z);
me->Relocate(x, y, z + 0.94f);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
+ me->SetDisableGravity(true);
me->HandleEmoteCommand(EMOTE_ONESHOT_DANCE);
WorldPacket data; //send update position to client
me->BuildHeartBeatMsg(&data);
@@ -558,7 +558,7 @@ public:
struct npc_doctorAI : public ScriptedAI
{
- npc_doctorAI(Creature* c) : ScriptedAI(c) {}
+ npc_doctorAI(Creature* creature) : ScriptedAI(creature) {}
uint64 PlayerGUID;
@@ -703,7 +703,7 @@ public:
struct npc_injured_patientAI : public ScriptedAI
{
- npc_injured_patientAI(Creature* c) : ScriptedAI(c) {}
+ npc_injured_patientAI(Creature* creature) : ScriptedAI(creature) {}
uint64 DoctorGUID;
Location* Coord;
@@ -764,7 +764,7 @@ public:
DoScriptText(RAND(SAY_DOC1, SAY_DOC2, SAY_DOC3), me);
uint32 mobId = me->GetEntry();
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
+ me->SetWalk(false);
switch (mobId)
{
@@ -905,7 +905,7 @@ public:
struct npc_garments_of_questsAI : public npc_escortAI
{
- npc_garments_of_questsAI(Creature* c) : npc_escortAI(c) {Reset();}
+ npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature) {Reset();}
uint64 CasterGUID;
@@ -1040,8 +1040,9 @@ public:
}
}
- void WaypointReached(uint32 /*point*/)
+ void WaypointReached(uint32 /*waypointId*/)
{
+
}
void UpdateAI(uint32 const diff)
@@ -1105,7 +1106,7 @@ public:
struct npc_guardianAI : public ScriptedAI
{
- npc_guardianAI(Creature* c) : ScriptedAI(c) {}
+ npc_guardianAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
@@ -1477,7 +1478,7 @@ public:
struct npc_steam_tonkAI : public ScriptedAI
{
- npc_steam_tonkAI(Creature* c) : ScriptedAI(c) {}
+ npc_steam_tonkAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
@@ -1495,7 +1496,6 @@ public:
else
me->SetReactState(REACT_AGGRESSIVE);
}
-
};
CreatureAI* GetAI(Creature* creature) const
@@ -1513,7 +1513,7 @@ public:
struct npc_tonk_mineAI : public ScriptedAI
{
- npc_tonk_mineAI(Creature* c) : ScriptedAI(c)
+ npc_tonk_mineAI(Creature* creature) : ScriptedAI(creature)
{
me->SetReactState(REACT_PASSIVE);
}
@@ -1558,7 +1558,7 @@ public:
struct npc_brewfest_revelerAI : public ScriptedAI
{
- npc_brewfest_revelerAI(Creature* c) : ScriptedAI(c) {}
+ npc_brewfest_revelerAI(Creature* creature) : ScriptedAI(creature) {}
void ReceiveEmote(Player* player, uint32 emote)
{
if (!IsHolidayActive(HOLIDAY_BREWFEST))
@@ -1594,7 +1594,7 @@ class npc_winter_reveler : public CreatureScript
struct npc_winter_revelerAI : public ScriptedAI
{
- npc_winter_revelerAI(Creature* c) : ScriptedAI(c) {}
+ npc_winter_revelerAI(Creature* creature) : ScriptedAI(creature) {}
void ReceiveEmote(Player* player, uint32 emote)
{
@@ -1639,7 +1639,7 @@ public:
struct npc_snake_trap_serpentsAI : public ScriptedAI
{
- npc_snake_trap_serpentsAI(Creature* c) : ScriptedAI(c) {}
+ npc_snake_trap_serpentsAI(Creature* creature) : ScriptedAI(creature) {}
uint32 SpellTimer;
bool IsViper;
@@ -1650,7 +1650,7 @@ public:
{
SpellTimer = 0;
- CreatureTemplate const* Info = me->GetCreatureInfo();
+ CreatureTemplate const* Info = me->GetCreatureTemplate();
IsViper = Info->Entry == C_VIPER ? true : false;
@@ -1753,15 +1753,13 @@ public:
struct mob_mojoAI : public ScriptedAI
{
- mob_mojoAI(Creature* c) : ScriptedAI(c) {Reset();}
-
- uint32 Hearts;
- uint64 VictimGUID;
-
+ mob_mojoAI(Creature* creature) : ScriptedAI(creature) {Reset();}
+ uint32 hearts;
+ uint64 victimGUID;
void Reset()
{
- VictimGUID = 0;
- Hearts = 15000;
+ victimGUID = 0;
+ hearts = 15000;
if (Unit* own = me->GetOwner())
me->GetMotionMaster()->MoveFollow(own, 0, 0);
}
@@ -1772,12 +1770,11 @@ public:
{
if (me->HasAura(20372))
{
- if (Hearts <= diff)
+ if (hearts <= diff)
{
me->RemoveAurasDueToSpell(20372);
- Hearts = 15000;
- }
- Hearts -= diff;
+ hearts = 15000;
+ } hearts -= diff;
}
}
@@ -1821,14 +1818,14 @@ public:
}
me->MonsterWhisper(whisp.c_str(), player->GetGUID());
- if (VictimGUID)
- if (Player* victim = Unit::GetPlayer(*me, VictimGUID))
+ if (victimGUID)
+ if (Player* victim = Unit::GetPlayer(*me, victimGUID))
victim->RemoveAura(43906);//remove polymorph frog thing
me->AddAura(43906, player);//add polymorph frog thing
- VictimGUID = player->GetGUID();
+ victimGUID = player->GetGUID();
DoCast(me, 20372, true);//tag.hearts
me->GetMotionMaster()->MoveFollow(player, 0, 0);
- Hearts = 15000;
+ hearts = 15000;
}
}
};
@@ -1846,7 +1843,7 @@ public:
struct npc_mirror_imageAI : CasterAI
{
- npc_mirror_imageAI(Creature* c) : CasterAI(c) {}
+ npc_mirror_imageAI(Creature* creature) : CasterAI(creature) {}
void InitializeAI()
{
@@ -1892,9 +1889,9 @@ public:
struct npc_ebon_gargoyleAI : CasterAI
{
- npc_ebon_gargoyleAI(Creature* c) : CasterAI(c) {}
+ npc_ebon_gargoyleAI(Creature* creature) : CasterAI(creature) {}
- uint32 DespawnTimer;
+ uint32 despawnTimer;
void InitializeAI()
{
@@ -1903,7 +1900,7 @@ public:
if (!ownerGuid)
return;
// Not needed to be despawned now
- DespawnTimer = 0;
+ despawnTimer = 0;
// Find victim of Summon Gargoyle spell
std::list<Unit*> targets;
Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 30);
@@ -1941,6 +1938,7 @@ public:
me->CastSpell(me, 54661, true);
me->SetReactState(REACT_PASSIVE);
+ //! HACK: Creature's can't have MOVEMENTFLAG_FLYING
// Fly Away
me->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY|MOVEMENTFLAG_ASCENDING|MOVEMENTFLAG_FLYING);
me->SetSpeed(MOVE_FLIGHT, 0.75f, true);
@@ -1952,15 +1950,15 @@ public:
me->GetMotionMaster()->MovePoint(0, x, y, z);
// Despawn as soon as possible
- DespawnTimer = 4 * IN_MILLISECONDS;
+ despawnTimer = 4 * IN_MILLISECONDS;
}
void UpdateAI(const uint32 diff)
{
- if (DespawnTimer > 0)
+ if (despawnTimer > 0)
{
- if (DespawnTimer > diff)
- DespawnTimer -= diff;
+ if (despawnTimer > diff)
+ despawnTimer -= diff;
else
me->DespawnOrUnsummon();
return;
@@ -1977,33 +1975,31 @@ public:
class npc_lightwell : public CreatureScript
{
-public:
- npc_lightwell() : CreatureScript("npc_lightwell") { }
-
- struct npc_lightwellAI : public PassiveAI
- {
- npc_lightwellAI(Creature* c) : PassiveAI(c) {}
+ public:
+ npc_lightwell() : CreatureScript("npc_lightwell") { }
- void Reset()
+ struct npc_lightwellAI : public PassiveAI
{
- DoCast(me, 59907, false); // Spell for Lightwell Charges
- }
+ npc_lightwellAI(Creature* creature) : PassiveAI(creature)
+ {
+ DoCast(me, 59907, false);
+ }
- void EnterEvadeMode()
- {
- if (!me->isAlive())
- return;
+ void EnterEvadeMode()
+ {
+ if (!me->isAlive())
+ return;
- me->DeleteThreatList();
- me->CombatStop(true);
- me->ResetPlayerDamageReq();
- }
- };
+ me->DeleteThreatList();
+ me->CombatStop(true);
+ me->ResetPlayerDamageReq();
+ }
+ };
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_lightwellAI(creature);
- }
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_lightwellAI(creature);
+ }
};
enum eTrainingDummy
@@ -2021,20 +2017,20 @@ public:
{
npc_training_dummyAI(Creature* creature) : Scripted_NoMovementAI(creature)
{
- Entry = creature->GetEntry();
+ entry = creature->GetEntry();
}
- uint32 Entry;
- uint32 ResetTimer;
- uint32 DespawnTimer;
+ uint32 entry;
+ uint32 resetTimer;
+ uint32 despawnTimer;
void Reset()
{
me->SetControlled(true, UNIT_STATE_STUNNED);//disable rotate
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);//imune to knock aways like blast wave
- ResetTimer = 5000;
- DespawnTimer = 15000;
+ resetTimer = 5000;
+ despawnTimer = 15000;
}
void EnterEvadeMode()
@@ -2047,13 +2043,13 @@ public:
void DamageTaken(Unit* /*doneBy*/, uint32& damage)
{
- ResetTimer = 5000;
+ resetTimer = 5000;
damage = 0;
}
void EnterCombat(Unit* /*who*/)
{
- if (Entry != NPC_ADVANCED_TARGET_DUMMY && Entry != NPC_TARGET_DUMMY)
+ if (entry != NPC_ADVANCED_TARGET_DUMMY && entry != NPC_TARGET_DUMMY)
return;
}
@@ -2065,23 +2061,23 @@ public:
if (!me->HasUnitState(UNIT_STATE_STUNNED))
me->SetControlled(true, UNIT_STATE_STUNNED);//disable rotate
- if (Entry != NPC_ADVANCED_TARGET_DUMMY && Entry != NPC_TARGET_DUMMY)
+ if (entry != NPC_ADVANCED_TARGET_DUMMY && entry != NPC_TARGET_DUMMY)
{
- if (ResetTimer <= diff)
+ if (resetTimer <= diff)
{
EnterEvadeMode();
- ResetTimer = 5000;
+ resetTimer = 5000;
}
else
- ResetTimer -= diff;
+ resetTimer -= diff;
return;
}
else
{
- if (DespawnTimer <= diff)
+ if (despawnTimer <= diff)
me->DespawnOrUnsummon();
else
- DespawnTimer -= diff;
+ despawnTimer -= diff;
}
}
void MoveInLineOfSight(Unit* /*who*/){return;}
@@ -2101,34 +2097,26 @@ public:
class npc_shadowfiend : public CreatureScript
{
-public:
- npc_shadowfiend() : CreatureScript("npc_shadowfiend") { }
-
- struct npc_shadowfiendAI : public ScriptedAI
- {
- npc_shadowfiendAI(Creature* creature) : ScriptedAI(creature) {}
+ public:
+ npc_shadowfiend() : CreatureScript("npc_shadowfiend") { }
- void DamageTaken(Unit* /*killer*/, uint32& damage)
+ struct npc_shadowfiendAI : public ScriptedAI
{
- if (me->isSummon())
- if (Unit* owner = me->ToTempSummon()->GetSummoner())
- if (owner->HasAura(GLYPH_OF_SHADOWFIEND) && damage >= me->GetHealth())
- owner->CastSpell(owner, GLYPH_OF_SHADOWFIEND_MANA, true);
- }
+ npc_shadowfiendAI(Creature* creature) : ScriptedAI(creature) {}
- void UpdateAI(uint32 const /*diff*/)
- {
- if (!UpdateVictim())
- return;
+ void DamageTaken(Unit* /*killer*/, uint32& damage)
+ {
+ if (me->isSummon())
+ if (Unit* owner = me->ToTempSummon()->GetSummoner())
+ if (owner->HasAura(GLYPH_OF_SHADOWFIEND) && damage >= me->GetHealth())
+ owner->CastSpell(owner, GLYPH_OF_SHADOWFIEND_MANA, true);
+ }
+ };
- DoMeleeAttackIfReady();
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_shadowfiendAI(creature);
}
- };
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new npc_shadowfiendAI(creature);
- }
};
/*######
@@ -2195,7 +2183,7 @@ public:
}
};
- CreatureAI *GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
return new npc_fire_elementalAI(creature);
}
@@ -2240,7 +2228,7 @@ public:
}
};
- CreatureAI *GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
return new npc_earth_elementalAI(creature);
}
@@ -2250,78 +2238,111 @@ public:
# npc_wormhole
######*/
-#define GOSSIP_ENGINEERING1 "Borean Tundra."
-#define GOSSIP_ENGINEERING2 "Howling Fjord."
-#define GOSSIP_ENGINEERING3 "Sholazar Basin."
-#define GOSSIP_ENGINEERING4 "Icecrown."
-#define GOSSIP_ENGINEERING5 "Storm Peaks."
+#define GOSSIP_ENGINEERING1 "Borean Tundra"
+#define GOSSIP_ENGINEERING2 "Howling Fjord"
+#define GOSSIP_ENGINEERING3 "Sholazar Basin"
+#define GOSSIP_ENGINEERING4 "Icecrown"
+#define GOSSIP_ENGINEERING5 "Storm Peaks"
+#define GOSSIP_ENGINEERING6 "Underground..."
-enum eWormhole
+enum WormholeSpells
{
- SPELL_HOWLING_FJORD = 67838,
+ SPELL_BOREAN_TUNDRA = 67834,
SPELL_SHOLAZAR_BASIN = 67835,
SPELL_ICECROWN = 67836,
SPELL_STORM_PEAKS = 67837,
+ SPELL_HOWLING_FJORD = 67838,
+ SPELL_UNDERGROUND = 68081,
- TEXT_WORMHOLE = 907
+ TEXT_WORMHOLE = 907,
+
+ DATA_SHOW_UNDERGROUND = 1,
};
class npc_wormhole : public CreatureScript
{
-public:
- npc_wormhole() : CreatureScript("npc_wormhole") { }
+ public:
+ npc_wormhole() : CreatureScript("npc_wormhole") {}
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (creature->isSummon())
+ struct npc_wormholeAI : public PassiveAI
{
- if (player == creature->ToTempSummon()->GetSummoner())
+ npc_wormholeAI(Creature* creature) : PassiveAI(creature) {}
+
+ void InitializeAI()
{
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
+ _showUnderground = urand(0, 100) == 0; // Guessed value, it is really rare though
+ }
- player->PlayerTalkClass->SendGossipMenu(TEXT_WORMHOLE, creature->GetGUID());
+ uint32 GetData(uint32 type)
+ {
+ return (type == DATA_SHOW_UNDERGROUND && _showUnderground) ? 1 : 0;
}
+
+ private:
+ bool _showUnderground;
+ };
+
+ bool OnGossipHello(Player* player, Creature* creature)
+ {
+ if (creature->isSummon())
+ {
+ if (player == creature->ToTempSummon()->GetSummoner())
+ {
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
+
+ if (creature->AI()->GetData(DATA_SHOW_UNDERGROUND))
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ENGINEERING6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
+
+ player->PlayerTalkClass->SendGossipMenu(TEXT_WORMHOLE, creature->GetGUID());
+ }
+ }
+
+ return true;
}
- return true;
- }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- bool roll = urand(0, 1);
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+ {
+ player->PlayerTalkClass->ClearMenus();
- switch (action)
+ switch (action)
+ {
+ case GOSSIP_ACTION_INFO_DEF + 1: // Borean Tundra
+ player->CLOSE_GOSSIP_MENU();
+ creature->CastSpell(player, SPELL_BOREAN_TUNDRA, false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 2: // Howling Fjord
+ player->CLOSE_GOSSIP_MENU();
+ creature->CastSpell(player, SPELL_HOWLING_FJORD, false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 3: // Sholazar Basin
+ player->CLOSE_GOSSIP_MENU();
+ creature->CastSpell(player, SPELL_SHOLAZAR_BASIN, false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 4: // Icecrown
+ player->CLOSE_GOSSIP_MENU();
+ creature->CastSpell(player, SPELL_ICECROWN, false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 5: // Storm peaks
+ player->CLOSE_GOSSIP_MENU();
+ creature->CastSpell(player, SPELL_STORM_PEAKS, false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 6: // Underground
+ player->CLOSE_GOSSIP_MENU();
+ creature->CastSpell(player, SPELL_UNDERGROUND, false);
+ break;
+ }
+
+ return true;
+ }
+
+ CreatureAI* GetAI(Creature* creature) const
{
- case GOSSIP_ACTION_INFO_DEF + 1: //Borean Tundra
- player->CLOSE_GOSSIP_MENU();
- if (roll) //At the moment we don't have chance on spell_target_position table so we hack this
- player->TeleportTo(571, 4305.505859f, 5450.839844f, 63.005806f, 0.627286f);
- else
- player->TeleportTo(571, 3201.936279f, 5630.123535f, 133.658798f, 3.855272f);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2: //Howling Fjord
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_HOWLING_FJORD, true);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3: //Sholazar Basin
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_SHOLAZAR_BASIN, true);
- break;
- case GOSSIP_ACTION_INFO_DEF + 4: //Icecrown
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_ICECROWN, true);
- break;
- case GOSSIP_ACTION_INFO_DEF + 5: //Storm peaks
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_STORM_PEAKS, true);
- break;
+ return new npc_wormholeAI(creature);
}
- return true;
- }
};
/*######
@@ -2402,6 +2423,9 @@ enum eLockSmith
QUEST_HOTTER_THAN_HELL_H = 10764,
QUEST_RETURN_TO_KHAGDAR = 9837,
QUEST_CONTAINMENT = 13159,
+ QUEST_ETERNAL_VIGILANCE = 11011,
+ QUEST_KEY_TO_THE_FOCUSING_IRIS = 13372,
+ QUEST_HC_KEY_TO_THE_FOCUSING_IRIS = 13375,
ITEM_ARCATRAZ_KEY = 31084,
ITEM_SHADOWFORGE_KEY = 11000,
@@ -2409,21 +2433,28 @@ enum eLockSmith
ITEM_SHATTERED_HALLS_KEY = 28395,
ITEM_THE_MASTERS_KEY = 24490,
ITEM_VIOLET_HOLD_KEY = 42482,
+ ITEM_ESSENCE_INFUSED_MOONSTONE = 32449,
+ ITEM_KEY_TO_THE_FOCUSING_IRIS = 44582,
+ ITEM_HC_KEY_TO_THE_FOCUSING_IRIS = 44581,
SPELL_ARCATRAZ_KEY = 54881,
SPELL_SHADOWFORGE_KEY = 54882,
SPELL_SKELETON_KEY = 54883,
SPELL_SHATTERED_HALLS_KEY = 54884,
SPELL_THE_MASTERS_KEY = 54885,
- SPELL_VIOLET_HOLD_KEY = 67253
+ SPELL_VIOLET_HOLD_KEY = 67253,
+ SPELL_ESSENCE_INFUSED_MOONSTONE = 40173,
};
-#define GOSSIP_LOST_ARCATRAZ_KEY "I've lost my key to the Arcatraz."
-#define GOSSIP_LOST_SHADOWFORGE_KEY "I've lost my key to the Blackrock Depths."
-#define GOSSIP_LOST_SKELETON_KEY "I've lost my key to the Scholomance."
-#define GOSSIP_LOST_SHATTERED_HALLS_KEY "I've lost my key to the Shattered Halls."
-#define GOSSIP_LOST_THE_MASTERS_KEY "I've lost my key to the Karazhan."
-#define GOSSIP_LOST_VIOLET_HOLD_KEY "I've lost my key to the Violet Hold."
+#define GOSSIP_LOST_ARCATRAZ_KEY "I've lost my key to the Arcatraz."
+#define GOSSIP_LOST_SHADOWFORGE_KEY "I've lost my key to the Blackrock Depths."
+#define GOSSIP_LOST_SKELETON_KEY "I've lost my key to the Scholomance."
+#define GOSSIP_LOST_SHATTERED_HALLS_KEY "I've lost my key to the Shattered Halls."
+#define GOSSIP_LOST_THE_MASTERS_KEY "I've lost my key to the Karazhan."
+#define GOSSIP_LOST_VIOLET_HOLD_KEY "I've lost my key to the Violet Hold."
+#define GOSSIP_LOST_ESSENCE_INFUSED_MOONSTONE "I've lost my Essence-Infused Moonstone."
+#define GOSSIP_LOST_KEY_TO_THE_FOCUSING_IRIS "I've lost my Key to the Focusing Iris."
+#define GOSSIP_LOST_HC_KEY_TO_THE_FOCUSING_IRIS "I've lost my Heroic Key to the Focusing Iris."
class npc_locksmith : public CreatureScript
{
@@ -2458,6 +2489,18 @@ public:
if (player->GetQuestRewardStatus(QUEST_CONTAINMENT) && !player->HasItemCount(ITEM_VIOLET_HOLD_KEY, 1, true))
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_VIOLET_HOLD_KEY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
+ // Essence-Infused Moonstone
+ if (player->GetQuestRewardStatus(QUEST_ETERNAL_VIGILANCE) && !player->HasItemCount(ITEM_ESSENCE_INFUSED_MOONSTONE, 1, true))
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_ESSENCE_INFUSED_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
+
+ // Key to the Focusing Iris
+ if (player->GetQuestRewardStatus(QUEST_KEY_TO_THE_FOCUSING_IRIS) && !player->HasItemCount(ITEM_KEY_TO_THE_FOCUSING_IRIS, 1, true))
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
+
+ // Heroic Key to the Focusing Iris
+ if (player->GetQuestRewardStatus(QUEST_HC_KEY_TO_THE_FOCUSING_IRIS) && !player->HasItemCount(ITEM_HC_KEY_TO_THE_FOCUSING_IRIS, 1, true))
+ player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_HC_KEY_TO_THE_FOCUSING_IRIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
+
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
@@ -2492,171 +2535,17 @@ public:
player->CLOSE_GOSSIP_MENU();
player->CastSpell(player, SPELL_VIOLET_HOLD_KEY, false);
break;
- }
- return true;
- }
-};
-
-/*######
-## npc_tabard_vendor
-######*/
-
-enum
-{
- QUEST_TRUE_MASTERS_OF_LIGHT = 9737,
- QUEST_THE_UNWRITTEN_PROPHECY = 9762,
- QUEST_INTO_THE_BREACH = 10259,
- QUEST_BATTLE_OF_THE_CRIMSON_WATCH = 10781,
- QUEST_SHARDS_OF_AHUNE = 11972,
-
- ACHIEVEMENT_EXPLORE_NORTHREND = 45,
- ACHIEVEMENT_TWENTYFIVE_TABARDS = 1021,
- ACHIEVEMENT_THE_LOREMASTER_A = 1681,
- ACHIEVEMENT_THE_LOREMASTER_H = 1682,
-
- ITEM_TABARD_OF_THE_HAND = 24344,
- ITEM_TABARD_OF_THE_BLOOD_KNIGHT = 25549,
- ITEM_TABARD_OF_THE_PROTECTOR = 28788,
- ITEM_OFFERING_OF_THE_SHATAR = 31408,
- ITEM_GREEN_TROPHY_TABARD_OF_THE_ILLIDARI = 31404,
- ITEM_PURPLE_TROPHY_TABARD_OF_THE_ILLIDARI = 31405,
- ITEM_TABARD_OF_THE_SUMMER_SKIES = 35279,
- ITEM_TABARD_OF_THE_SUMMER_FLAMES = 35280,
- ITEM_TABARD_OF_THE_ACHIEVER = 40643,
- ITEM_LOREMASTERS_COLORS = 43300,
- ITEM_TABARD_OF_THE_EXPLORER = 43348,
-
- SPELL_TABARD_OF_THE_BLOOD_KNIGHT = 54974,
- SPELL_TABARD_OF_THE_HAND = 54976,
- SPELL_GREEN_TROPHY_TABARD_OF_THE_ILLIDARI = 54977,
- SPELL_PURPLE_TROPHY_TABARD_OF_THE_ILLIDARI = 54982,
- SPELL_TABARD_OF_THE_ACHIEVER = 55006,
- SPELL_TABARD_OF_THE_PROTECTOR = 55008,
- SPELL_LOREMASTERS_COLORS = 58194,
- SPELL_TABARD_OF_THE_EXPLORER = 58224,
- SPELL_TABARD_OF_SUMMER_SKIES = 62768,
- SPELL_TABARD_OF_SUMMER_FLAMES = 62769
-};
-
-#define GOSSIP_LOST_TABARD_OF_BLOOD_KNIGHT "I've lost my Tabard of Blood Knight."
-#define GOSSIP_LOST_TABARD_OF_THE_HAND "I've lost my Tabard of the Hand."
-#define GOSSIP_LOST_TABARD_OF_THE_PROTECTOR "I've lost my Tabard of the Protector."
-#define GOSSIP_LOST_GREEN_TROPHY_TABARD_OF_THE_ILLIDARI "I've lost my Green Trophy Tabard of the Illidari."
-#define GOSSIP_LOST_PURPLE_TROPHY_TABARD_OF_THE_ILLIDARI "I've lost my Purple Trophy Tabard of the Illidari."
-#define GOSSIP_LOST_TABARD_OF_SUMMER_SKIES "I've lost my Tabard of Summer Skies."
-#define GOSSIP_LOST_TABARD_OF_SUMMER_FLAMES "I've lost my Tabard of Summer Flames."
-#define GOSSIP_LOST_LOREMASTERS_COLORS "I've lost my Loremaster's Colors."
-#define GOSSIP_LOST_TABARD_OF_THE_EXPLORER "I've lost my Tabard of the Explorer."
-#define GOSSIP_LOST_TABARD_OF_THE_ACHIEVER "I've lost my Tabard of the Achiever."
-
-class npc_tabard_vendor : public CreatureScript
-{
-public:
- npc_tabard_vendor() : CreatureScript("npc_tabard_vendor") { }
-
- bool OnGossipHello(Player* player, Creature* creature)
- {
- bool lostBloodKnight = false;
- bool lostHand = false;
- bool lostProtector = false;
- bool lostIllidari = false;
- bool lostSummer = false;
-
- //Tabard of the Blood Knight
- if (player->GetQuestRewardStatus(QUEST_TRUE_MASTERS_OF_LIGHT) && !player->HasItemCount(ITEM_TABARD_OF_THE_BLOOD_KNIGHT, 1, true))
- lostBloodKnight = true;
-
- //Tabard of the Hand
- if (player->GetQuestRewardStatus(QUEST_THE_UNWRITTEN_PROPHECY) && !player->HasItemCount(ITEM_TABARD_OF_THE_HAND, 1, true))
- lostHand = true;
-
- //Tabard of the Protector
- if (player->GetQuestRewardStatus(QUEST_INTO_THE_BREACH) && !player->HasItemCount(ITEM_TABARD_OF_THE_PROTECTOR, 1, true))
- lostProtector = true;
-
- //Green Trophy Tabard of the Illidari
- //Purple Trophy Tabard of the Illidari
- if (player->GetQuestRewardStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH) &&
- (!player->HasItemCount(ITEM_GREEN_TROPHY_TABARD_OF_THE_ILLIDARI, 1, true) &&
- !player->HasItemCount(ITEM_PURPLE_TROPHY_TABARD_OF_THE_ILLIDARI, 1, true) &&
- !player->HasItemCount(ITEM_OFFERING_OF_THE_SHATAR, 1, true)))
- lostIllidari = true;
-
- //Tabard of Summer Skies
- //Tabard of Summer Flames
- if (player->GetQuestRewardStatus(QUEST_SHARDS_OF_AHUNE) &&
- !player->HasItemCount(ITEM_TABARD_OF_THE_SUMMER_SKIES, 1, true) &&
- !player->HasItemCount(ITEM_TABARD_OF_THE_SUMMER_FLAMES, 1, true))
- lostSummer = true;
-
- if (lostBloodKnight || lostHand || lostProtector || lostIllidari || lostSummer)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
-
- if (lostBloodKnight)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_TABARD_OF_BLOOD_KNIGHT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
-
- if (lostHand)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_TABARD_OF_THE_HAND, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
-
- if (lostProtector)
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_TABARD_OF_THE_PROTECTOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
-
- if (lostIllidari)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_GREEN_TROPHY_TABARD_OF_THE_ILLIDARI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_PURPLE_TROPHY_TABARD_OF_THE_ILLIDARI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- }
-
- if (lostSummer)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_TABARD_OF_SUMMER_SKIES, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_LOST_TABARD_OF_SUMMER_FLAMES, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
- }
-
- player->SEND_GOSSIP_MENU(13583, creature->GetGUID());
- }
- else
- player->GetSession()->SendListInventory(creature->GetGUID());
-
- return true;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- case GOSSIP_ACTION_TRADE:
- player->GetSession()->SendListInventory(creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 1:
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_TABARD_OF_THE_BLOOD_KNIGHT, false);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2:
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_TABARD_OF_THE_HAND, false);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3:
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_TABARD_OF_THE_PROTECTOR, false);
- break;
- case GOSSIP_ACTION_INFO_DEF + 4:
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_GREEN_TROPHY_TABARD_OF_THE_ILLIDARI, false);
- break;
- case GOSSIP_ACTION_INFO_DEF + 5:
+ case GOSSIP_ACTION_INFO_DEF + 7:
player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_PURPLE_TROPHY_TABARD_OF_THE_ILLIDARI, false);
+ player->CastSpell(player, SPELL_ESSENCE_INFUSED_MOONSTONE, false);
break;
- case GOSSIP_ACTION_INFO_DEF + 6:
+ case GOSSIP_ACTION_INFO_DEF + 8:
player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_TABARD_OF_SUMMER_SKIES, false);
+ player->AddItem(ITEM_KEY_TO_THE_FOCUSING_IRIS,1);
break;
- case GOSSIP_ACTION_INFO_DEF + 7:
+ case GOSSIP_ACTION_INFO_DEF + 9:
player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player, SPELL_TABARD_OF_SUMMER_FLAMES, false);
+ player->AddItem(ITEM_HC_KEY_TO_THE_FOCUSING_IRIS,1);
break;
}
return true;
@@ -2999,7 +2888,7 @@ public:
}
};
- CreatureAI *GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
return new npc_fireworkAI(creature);
}
@@ -3031,7 +2920,7 @@ public:
struct npc_spring_rabbitAI : public ScriptedAI
{
- npc_spring_rabbitAI(Creature* c) : ScriptedAI(c) { }
+ npc_spring_rabbitAI(Creature* creature) : ScriptedAI(creature) { }
bool inLove;
uint32 jumpTimer;
@@ -3101,35 +2990,34 @@ public:
void AddSC_npcs_special()
{
- new npc_air_force_bots;
- new npc_lunaclaw_spirit;
- new npc_chicken_cluck;
- new npc_dancing_flames;
- new npc_doctor;
- new npc_injured_patient;
- new npc_garments_of_quests;
- new npc_guardian;
- new npc_mount_vendor;
- new npc_rogue_trainer;
- new npc_sayge;
- new npc_steam_tonk;
- new npc_tonk_mine;
- new npc_winter_reveler;
- new npc_brewfest_reveler;
- new npc_snake_trap;
- new npc_mirror_image;
- new npc_ebon_gargoyle;
- new npc_lightwell;
- new mob_mojo;
- new npc_training_dummy;
- new npc_shadowfiend;
- new npc_wormhole;
- new npc_pet_trainer;
- new npc_locksmith;
- new npc_tabard_vendor;
- new npc_experience;
- new npc_fire_elemental;
- new npc_earth_elemental;
- new npc_firework;
+ new npc_air_force_bots();
+ new npc_lunaclaw_spirit();
+ new npc_chicken_cluck();
+ new npc_dancing_flames();
+ new npc_doctor();
+ new npc_injured_patient();
+ new npc_garments_of_quests();
+ new npc_guardian();
+ new npc_mount_vendor();
+ new npc_rogue_trainer();
+ new npc_sayge();
+ new npc_steam_tonk();
+ new npc_tonk_mine();
+ new npc_winter_reveler();
+ new npc_brewfest_reveler();
+ new npc_snake_trap();
+ new npc_mirror_image();
+ new npc_ebon_gargoyle();
+ new npc_lightwell();
+ new mob_mojo();
+ new npc_training_dummy();
+ new npc_shadowfiend();
+ new npc_wormhole();
+ new npc_pet_trainer();
+ new npc_locksmith();
+ new npc_experience();
+ new npc_fire_elemental();
+ new npc_earth_elemental();
+ new npc_firework();
new npc_spring_rabbit();
}