aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2011-06-18 18:31:02 +0300
committerShocker <shocker@freakz.ro>2011-06-18 18:31:02 +0300
commit587eb053c61b0d5a42fbc0fb6c7336fdd966927e (patch)
treea14b94de7b199e7f27990fec5634eee8df3bde3d
parentd7762a9ebbc98e37a4067516e7b87d9c06df4890 (diff)
parent5a18ee0e660dc32c5cee68330e0ff6aeb235fd7c (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp32
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/QuestHandler.cpp19
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp1
3 files changed, 42 insertions, 10 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index eb1f2ac59f1..71672669d61 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 = 53742;
+
// 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;
}
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;
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