diff options
-rw-r--r-- | src/game/LootHandler.cpp | 4 | ||||
-rw-r--r-- | src/game/Spell.cpp | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/game/LootHandler.cpp b/src/game/LootHandler.cpp index 172a6ef46c2..6b5f22b6a6b 100644 --- a/src/game/LootHandler.cpp +++ b/src/game/LootHandler.cpp @@ -259,6 +259,10 @@ void WorldSession::HandleLootOpcode( WorldPacket & recv_data ) uint64 guid; recv_data >> guid; + // Check possible cheat + if(!_player->isAlive()) + return; + GetPlayer()->SendLoot(guid, LOOT_CORPSE); } diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 610e6af6b06..84bd533a406 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4713,6 +4713,14 @@ SpellCastResult Spell::CheckCast(bool strict) break; } + case SPELL_EFFECT_APPLY_GLYPH: + { + uint32 glyphId = m_spellInfo->EffectMiscValue[i]; + if(GlyphPropertiesEntry const *gp = sGlyphPropertiesStore.LookupEntry(glyphId)) + if(m_caster->HasAura(gp->SpellId)) + return SPELL_FAILED_UNIQUE_GLYPH; + break; + } case SPELL_EFFECT_FEED_PET: { if (m_caster->GetTypeId() != TYPEID_PLAYER) |