aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 20b0ae2871d..1a0ea5fb3b0 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -23,6 +23,7 @@
#include "BattlegroundMgr.h"
#include "BattlePetMgr.h"
#include "CombatLogPackets.h"
+#include "CombatPackets.h"
#include "Common.h"
#include "Conversation.h"
#include "Creature.h"
@@ -325,7 +326,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
&Spell::EffectNULL, //250 SPELL_EFFECT_TAKE_SCREENSHOT
&Spell::EffectNULL, //251 SPELL_EFFECT_SET_GARRISON_CACHE_SIZE
&Spell::EffectTeleportUnits, //252 SPELL_EFFECT_TELEPORT_UNITS
- &Spell::EffectNULL, //253 SPELL_EFFECT_GIVE_HONOR
+ &Spell::EffectGiveHonor, //253 SPELL_EFFECT_GIVE_HONOR
&Spell::EffectNULL, //254 SPELL_EFFECT_254
&Spell::EffectNULL, //255 SPELL_EFFECT_LEARN_TRANSMOG_SET
};
@@ -5890,3 +5891,20 @@ void Spell::EffectPlayScene(SpellEffIndex /*effIndex*/)
m_caster->ToPlayer()->GetSceneMgr().PlayScene(effectInfo->MiscValue, destTarget);
}
+
+void Spell::EffectGiveHonor(SpellEffIndex /*effIndex*/)
+{
+ if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
+ return;
+
+ if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
+ return;
+
+ WorldPackets::Combat::PvPCredit packet;
+ packet.Honor = damage;
+ packet.OriginalHonor = damage;
+
+ Player* playerTarget = unitTarget->ToPlayer();
+ playerTarget->AddHonorXP(damage);
+ playerTarget->SendDirectMessage(packet.Write());
+}