diff options
author | click <none@none> | 2010-07-11 22:22:49 +0200 |
---|---|---|
committer | click <none@none> | 2010-07-11 22:22:49 +0200 |
commit | 66547c5fbd6dc62ede9f891fdfebbf4bcd0086ee (patch) | |
tree | 0877c006bfe2582dda6c08c9f830d6e7b46a4ffe | |
parent | aebbdcebc2e02710fbe468cffcb03e44b52a8686 (diff) |
Implement ITEM_FLAGS_NO_EQUIP_COOLDOWN support + add serverside checks for ITEM_FLAGS_INDESTRUCTIBLE (code by Vladimir)
--HG--
branch : trunk
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Handlers/ItemHandler.cpp | 6 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 927cd189e30..8e93798ac1b 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -21002,6 +21002,9 @@ void Player::SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint3 void Player::ApplyEquipCooldown(Item * pItem) { + if (pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_NO_EQUIP_COOLDOWN)) + return; + for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i) { _Spell const& spellData = pItem->GetProto()->Spells[i]; diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index f0d1b5d05ee..6c9b505d6c9 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -113,7 +113,6 @@ bool Map::ExistVMap(uint32 mapid,int gx,int gy) { if (vmgr->isMapLoadingEnabled()) { - // x and y are swapped !! => fixed now bool exists = vmgr->existsMap((sWorld.GetDataPath()+ "vmaps").c_str(), mapid, gx,gy); if (!exists) { diff --git a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp index e9b9004804a..d969013801b 100644 --- a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp @@ -263,6 +263,12 @@ void WorldSession::HandleDestroyItemOpcode(WorldPacket & recv_data) return; } + if (pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_INDESTRUCTIBLE)) + { + _player->SendEquipError(EQUIP_ERR_CANT_DROP_SOULBOUND, NULL, NULL); + return; + } + if (count) { uint32 i_count = count; |