diff options
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 20 |
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()); +} |