aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none>2009-07-10 08:34:28 +0800
committermegamage <none@none>2009-07-10 08:34:28 +0800
commit9d77c5736ddf7902d2e224e12e5e15ba057aa54a (patch)
tree22260794f9bef8cc315bb509ae7ba48d9342e840 /src
parent02eecab45c853dd9a143126c978162ee6e77d8a4 (diff)
[8131] Some anti-cheating server side checks. Author: Lightguard
* Loot in ghost state * Apply duplicate glyphs. --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/LootHandler.cpp4
-rw-r--r--src/game/Spell.cpp8
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)