Esempio n. 1
0
 public InventoryChangeFailure CanUseAmmo(ref WS_PlayerData.CharacterObject objCharacter, int AmmoID)
 {
     if (objCharacter.DEAD)
     {
         return(InventoryChangeFailure.EQUIP_ERR_YOU_ARE_DEAD);
     }
     if (!WorldServiceLocator._WorldServer.ITEMDatabase.ContainsKey(AmmoID))
     {
         return(InventoryChangeFailure.EQUIP_ERR_ITEM_NOT_FOUND);
     }
     if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].InventoryType != INVENTORY_TYPES.INVTYPE_AMMO)
     {
         return(InventoryChangeFailure.EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE);
     }
     if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableClasses != 0L && (ulong)(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableClasses & objCharacter.ClassMask) == 0)
     {
         return(InventoryChangeFailure.EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM);
     }
     if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableRaces != 0L && (ulong)(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableRaces & objCharacter.RaceMask) == 0)
     {
         return(InventoryChangeFailure.EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM);
     }
     if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkill != 0)
     {
         if (!objCharacter.HaveSkill(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkill))
         {
             return(InventoryChangeFailure.EQUIP_ERR_NO_REQUIRED_PROFICIENCY);
         }
         if (!objCharacter.HaveSkill(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkill, WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkillRank))
         {
             return(InventoryChangeFailure.EQUIP_ERR_SKILL_ISNT_HIGH_ENOUGH);
         }
     }
     if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSpell != 0 && !objCharacter.HaveSpell(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSpell))
     {
         return(InventoryChangeFailure.EQUIP_ERR_NO_REQUIRED_PROFICIENCY);
     }
     if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqLevel > objCharacter.Level)
     {
         return(InventoryChangeFailure.EQUIP_ERR_YOU_MUST_REACH_LEVEL_N);
     }
     if (objCharacter.HavePassiveAura(46699))
     {
         return(InventoryChangeFailure.EQUIP_ERR_BAG_FULL6);
     }
     return(InventoryChangeFailure.EQUIP_ERR_OK);
 }