From bfe1977f94c0443dd0624ffd95d9a75d66d71f32 Mon Sep 17 00:00:00 2001 From: tobmaps Date: Sat, 18 Jun 2011 20:18:38 +0700 Subject: Core/Spells: Fix Seal of Vengeance and Seal of Corruption. Original patch by kezo90 Closes #1243 Closes #1461 --- src/server/game/Entities/Unit/Unit.cpp | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 68026515ef7..43a5e1d12b8 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6809,21 +6809,27 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger return false; // At melee attack or Hammer of the Righteous spell damage considered as melee attack - if ((procFlag & PROC_FLAG_DONE_MELEE_AUTO_ATTACK) || (procSpell && procSpell->Id == 53595)) - triggered_spell_id = 31803; + bool stacker = !procSpell || procSpell->Id == 53595; + bool damager = procSpell && procSpell->EquippedItemClass == ITEM_CLASS_WEAPON; + + if (!stacker && !damager) + return false; + + triggered_spell_id = 31803; + // On target with 5 stacks of Holy Vengeance direct damage is done if (Aura* aur = pVictim->GetAura(triggered_spell_id, GetGUID())) { if (aur->GetStackAmount() == 5) { - aur->RefreshDuration(); + if (stacker) + aur->RefreshDuration(); CastSpell(pVictim, 42463, true); return true; } } - // Only Autoattack can stack debuff - if (procFlag & PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS) + if (!stacker) return false; break; } @@ -6834,21 +6840,27 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger return false; // At melee attack or Hammer of the Righteous spell damage considered as melee attack - if ((procFlag & PROC_FLAG_DONE_MELEE_AUTO_ATTACK) || (procSpell && procSpell->Id == 53595)) - triggered_spell_id = 53742; + bool stacker = !procSpell || procSpell->Id == 53595; + bool damager = procSpell && procSpell->EquippedItemClass == ITEM_CLASS_WEAPON; + + if (!stacker && !damager) + return false; + + triggered_spell_id = 31803; + // On target with 5 stacks of Blood Corruption direct damage is done if (Aura* aur = pVictim->GetAura(triggered_spell_id, GetGUID())) { if (aur->GetStackAmount() == 5) { - aur->RefreshDuration(); + if (stacker) + aur->RefreshDuration(); CastSpell(pVictim, 53739, true); return true; } } - // Only Autoattack can stack debuff - if (procFlag & PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS) + if (!stacker) return false; break; } -- cgit v1.2.3 From 439fe1b95c12d6b251e7ba8f3aaa3bee2a16ce98 Mon Sep 17 00:00:00 2001 From: tobmaps Date: Sat, 18 Jun 2011 20:23:13 +0700 Subject: Core/Spells: Fix typo in last rev --- src/server/game/Entities/Unit/Unit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 43a5e1d12b8..9dada649716 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6846,7 +6846,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger if (!stacker && !damager) return false; - triggered_spell_id = 31803; + triggered_spell_id = 53742; // On target with 5 stacks of Blood Corruption direct damage is done if (Aura* aur = pVictim->GetAura(triggered_spell_id, GetGUID())) -- cgit v1.2.3 From 348ec6ddd5960de71eb90ee876ac51a68b8ad391 Mon Sep 17 00:00:00 2001 From: click Date: Sat, 18 Jun 2011 15:41:45 +0200 Subject: Scripts/Ulduar: Fix non-PCH build --- src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp index fa65b21bb98..bc050b120da 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp @@ -17,6 +17,7 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "SpellScript.h" #include "ulduar.h" enum AuriayaSpells -- cgit v1.2.3 From 5a18ee0e660dc32c5cee68330e0ff6aeb235fd7c Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 18 Jun 2011 17:15:52 +0200 Subject: Core/Quests: Fixed autoaccept quests for quest chains --- .../game/Server/Protocol/Handlers/QuestHandler.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src') diff --git a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp index ae095eb4183..0766f5b5de2 100755 --- a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp @@ -325,7 +325,16 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket & recv_data) { // Send next quest if (Quest const* nextquest = _player->GetNextQuest(guid , pQuest)) + { + if (nextquest->IsAutoAccept() && _player->CanAddQuest(nextquest, true)) + { + _player->AddQuest(nextquest, pObject); + if (_player->CanCompleteQuest(nextquest->GetQuestId())) + _player->CompleteQuest(nextquest->GetQuestId()); + } + _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest, guid, true); + } (pObject->ToCreature())->AI()->sQuestReward(_player, pQuest, reward); } @@ -335,7 +344,17 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket & recv_data) { // Send next quest if (Quest const* nextquest = _player->GetNextQuest(guid , pQuest)) + { + if (nextquest->IsAutoAccept() && _player->CanAddQuest(nextquest, true)) + { + _player->AddQuest(nextquest, pObject); + if (_player->CanCompleteQuest(nextquest->GetQuestId())) + _player->CompleteQuest(nextquest->GetQuestId()); + } + _player->PlayerTalkClass->SendQuestGiverQuestDetails(nextquest, guid, true); + } + pObject->ToGameObject()->AI()->QuestReward(_player, pQuest, reward); } break; -- cgit v1.2.3