Перепроверил ещё раз, + ещё не должно сниматься оружие(офханды, ванды и т.п)
Вот так будет правильнее:
PHP код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 1795654..9d492f8 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -10366,6 +10366,13 @@ uint8 Player::CanEquipItem( uint8 slot, uint16 &dest, Item *pItem, bool swap, bo
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
}
+ // prevent equip item in process logout
+ if (pProto->Class == ITEM_CLASS_WEAPON || ITEM_CLASS_ARMOR)
+ {
+ if(GetSession()->isLogingOut())
+ return EQUIP_ERR_YOU_ARE_STUNNED;
+ }
+
if (isInCombat()&& pProto->Class == ITEM_CLASS_WEAPON && m_weaponChangeTimer != 0)
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
@@ -10497,6 +10504,13 @@ uint8 Player::CanUnequipItem( uint16 pos, bool swap ) const
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
}
+ // prevent unequip item in process logout
+ if (pProto->Class == ITEM_CLASS_WEAPON || ITEM_CLASS_ARMOR)
+ {
+ if(GetSession()->isLogingOut())
+ return EQUIP_ERR_YOU_ARE_STUNNED;
+ }
+
if(!swap && pItem->IsBag() && !((Bag*)pItem)->IsEmpty())
return EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS;