diff --git a/data/sql/updates/world/2016_07_14_00.sql b/data/sql/updates/world/2016_07_14_00.sql new file mode 100644 index 000000000..18e60d4c2 --- /dev/null +++ b/data/sql/updates/world/2016_07_14_00.sql @@ -0,0 +1,5 @@ +ALTER TABLE world_db_version CHANGE COLUMN 2016_07_10_02 2016_07_14_00 bit; + +/* add spellscript for crow spell */ +DELETE FROM spell_script_names WHERE spell_id = 38776; +INSERT INTO spell_script_names VALUES (38776,'spell_q9718_crow_transform'); \ No newline at end of file diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index 4c8af8128..9e74ec864 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -213,13 +213,6 @@ void WorldSession::HandleMoveSplineDoneOpcode(WorldPacket& recvData) movementInfo.guid = guid; ReadMovementInfo(recvData, &movementInfo); - // Fix quest "As the crow flies" - Remove morph and complete quest - if(GetPlayer()->GetQuestStatus(9718) == QUEST_STATUS_INCOMPLETE) - { - GetPlayer()->CompleteQuest(9718); - GetPlayer()->RemoveAurasDueToSpell(38776); - } - recvData.read_skip(); // spline id } diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index f81799db3..81113b5e5 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3238,6 +3238,9 @@ void SpellMgr::LoadDbcDataCorrections() switch (spellInfo->Id) { + case 38776: // Evergrove Druid Transform Crow + spellInfo->DurationIndex = 4; // 120 seconds + break; case 63026: // Force Cast (HACK: Target shouldn't be changed) case 63137: // Force Cast (HACK: Target shouldn't be changed; summon position should be untied from spell destination) spellInfo->EffectImplicitTargetA[EFFECT_0] = TARGET_DEST_DB; diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 72ed85ff1..b08b7585b 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -3025,6 +3025,37 @@ class spell_q12919_gymers_throw : public SpellScriptLoader } }; +#define QUEST_CROW_TRANSFORM 9718 + +// spell 38776 +class spell_q9718_crow_transform : public SpellScriptLoader +{ +public: + spell_q9718_crow_transform() : SpellScriptLoader("spell_q9718_crow_transform") { } + + class spell_q9718_crow_transform_AuraScript : public AuraScript + { + PrepareAuraScript(spell_q9718_crow_transform_AuraScript) + + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if(GetOwner()) + if(Player* player = GetOwner()->ToPlayer()) + player->CompleteQuest(QUEST_CROW_TRANSFORM); + } + + void Register() + { + OnEffectRemove += AuraEffectRemoveFn(spell_q9718_crow_transform_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); + } + }; + + AuraScript* GetAuraScript() const + { + return new spell_q9718_crow_transform_AuraScript(); + } +}; + void AddSC_quest_spell_scripts() { @@ -3049,6 +3080,7 @@ void AddSC_quest_spell_scripts() new spell_q11198_take_down_tethyr(); new spell_q11653_youre_not_so_big_now(); new spell_q10985_light_of_the_naaru(); + new spell_q9718_crow_transform(); // Theirs new spell_q55_sacred_cleansing();