From ff886b626e7aaa9d8359cfbddc69227dd3f30883 Mon Sep 17 00:00:00 2001 From: Kandera Date: Tue, 28 Aug 2012 09:52:59 -0400 Subject: Core/Wintergrasp: correctly fix collision for invisible wall in wg. also fixes recent crash. closes #7548 --- src/server/game/Battlefield/Zones/BattlefieldWG.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index 4b06ac8237b..734154020d9 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -1209,7 +1209,7 @@ struct BfWGGameObjectBuilding m_Build->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, NULL, true); if (m_Build->GetEntry() == GO_WINTERGRASP_VAULT_GATE) if (GameObject* go = m_Build->FindNearestGameObject(GO_WINTERGRASP_KEEP_COLLISION_WALL, 10.0f)) - go->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, NULL, true); + go->EnableCollision(true); // Update worldstate m_State = BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT - (m_Team * 3); @@ -1266,7 +1266,7 @@ struct BfWGGameObjectBuilding break; case BATTLEFIELD_WG_OBJECTTYPE_DOOR_LAST: if (GameObject* go = m_Build->FindNearestGameObject(GO_WINTERGRASP_KEEP_COLLISION_WALL, 10.0f)) - go->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED); + go->EnableCollision(false); m_WG->SetRelicInteractible(true); if (m_WG->GetRelic()) m_WG->GetRelic()->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); -- cgit v1.2.3 From 66917624bb90e302efa8bdf31b8cc8555843e9e6 Mon Sep 17 00:00:00 2001 From: thesensei Date: Tue, 28 Aug 2012 20:58:03 +0300 Subject: Core/Spells: Destabilize Azure Dragonshrine *Spell script support for spell 49370 --- .../2012_08_28_00_world_spell_script_name.sql | 4 +++ src/server/scripts/Spells/spell_quest.cpp | 41 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 sql/updates/world/2012_08_28_00_world_spell_script_name.sql (limited to 'src') diff --git a/sql/updates/world/2012_08_28_00_world_spell_script_name.sql b/sql/updates/world/2012_08_28_00_world_spell_script_name.sql new file mode 100644 index 00000000000..9cc18a4fa5a --- /dev/null +++ b/sql/updates/world/2012_08_28_00_world_spell_script_name.sql @@ -0,0 +1,4 @@ +-- Spell script name linking for Defending Wyrmrest Temple: Destabilize Azure Dragonshrine Effect +DELETE FROM `spell_script_names` WHERE `spell_id`=49370 ; +INSERT INTO `spell_script_names` VALUES +(49370,'spell_q12372_destabilize_azure_dragonshrine_dummy'); \ No newline at end of file diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 8b67a52d300..759dbfe802d 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1276,6 +1276,46 @@ class spell_q12372_cast_from_gossip_trigger : public SpellScriptLoader } }; +// http://www.wowhead.com/quest=12372 Defending Wyrmrest Temple +// 49370 - Wyrmrest Defender: Destabilize Azure Dragonshrine Effect +enum eQuest12372Data +{ + NPC_WYRMREST_TEMPLE_CREDIT = 27698, +}; + +class spell_q12372_destabilize_azure_dragonshrine_dummy : public SpellScriptLoader +{ + public: + spell_q12372_destabilize_azure_dragonshrine_dummy() : SpellScriptLoader("spell_q12372_destabilize_azure_dragonshrine_dummy") { } + + class spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript : public SpellScript + { + PrepareSpellScript(spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript); + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (GetHitCreature()) + { + if (Unit* caster = GetOriginalCaster()) + if (Vehicle* vehicle = caster->GetVehicleKit()) + if (Unit* passenger = vehicle->GetPassenger(0)) + if (Player* player = passenger->ToPlayer()) + player->KilledMonsterCredit(NPC_WYRMREST_TEMPLE_CREDIT, 0); + } + } + + void Register() + { + OnEffectHitTarget += SpellEffectFn(spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript(); + } +}; + void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); @@ -1306,4 +1346,5 @@ void AddSC_quest_spell_scripts() new spell_q12066_bunny_kill_credit(); new spell_q12735_song_of_cleansing(); new spell_q12372_cast_from_gossip_trigger(); + new spell_q12372_destabilize_azure_dragonshrine_dummy(); } -- cgit v1.2.3 From d533c950cb696dfd3077ce9eba9a20b799a40837 Mon Sep 17 00:00:00 2001 From: Nay Date: Tue, 28 Aug 2012 19:31:15 +0100 Subject: Scripts: Fix code style after PR --- .../world/2012_08_28_00_world_spell_script_name.sql | 2 +- src/server/scripts/Spells/spell_quest.cpp | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/sql/updates/world/2012_08_28_00_world_spell_script_name.sql b/sql/updates/world/2012_08_28_00_world_spell_script_name.sql index 9cc18a4fa5a..01cfeb35f1f 100644 --- a/sql/updates/world/2012_08_28_00_world_spell_script_name.sql +++ b/sql/updates/world/2012_08_28_00_world_spell_script_name.sql @@ -1,4 +1,4 @@ -- Spell script name linking for Defending Wyrmrest Temple: Destabilize Azure Dragonshrine Effect DELETE FROM `spell_script_names` WHERE `spell_id`=49370 ; INSERT INTO `spell_script_names` VALUES -(49370,'spell_q12372_destabilize_azure_dragonshrine_dummy'); \ No newline at end of file +(49370,'spell_q12372_destabilize_azure_dragonshrine_dummy'); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 759dbfe802d..3cb2300cadf 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1278,7 +1278,7 @@ class spell_q12372_cast_from_gossip_trigger : public SpellScriptLoader // http://www.wowhead.com/quest=12372 Defending Wyrmrest Temple // 49370 - Wyrmrest Defender: Destabilize Azure Dragonshrine Effect -enum eQuest12372Data +enum Quest12372Data { NPC_WYRMREST_TEMPLE_CREDIT = 27698, }; @@ -1294,16 +1294,14 @@ class spell_q12372_destabilize_azure_dragonshrine_dummy : public SpellScriptLoad void HandleDummy(SpellEffIndex /*effIndex*/) { - if (GetHitCreature()) - { - if (Unit* caster = GetOriginalCaster()) - if (Vehicle* vehicle = caster->GetVehicleKit()) - if (Unit* passenger = vehicle->GetPassenger(0)) - if (Player* player = passenger->ToPlayer()) - player->KilledMonsterCredit(NPC_WYRMREST_TEMPLE_CREDIT, 0); - } - } - + if (GetHitCreature()) + if (Unit* caster = GetOriginalCaster()) + if (Vehicle* vehicle = caster->GetVehicleKit()) + if (Unit* passenger = vehicle->GetPassenger(0)) + if (Player* player = passenger->ToPlayer()) + player->KilledMonsterCredit(NPC_WYRMREST_TEMPLE_CREDIT, 0); + } + void Register() { OnEffectHitTarget += SpellEffectFn(spell_q12372_destabilize_azure_dragonshrine_dummy_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); -- cgit v1.2.3