Advertisement
XConquer

Add Item Para Jheisson

Sep 21st, 2020
2,186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.33 KB | None | 0 0
  1.      public bool Add(MsgItemInfo item, Enums.ItemUse use)
  2.         {
  3.             if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID))
  4.                 return false;
  5.             //if (Owner.Player.Crossed && !MsgItemInfo.IsDrug(item.ID) && item.ID != 3600029) return false;
  6.             if (Count == 40)
  7.             {
  8.                 Owner.Send(Constants.FullInventory);
  9.                 return false;
  10.             }
  11.             if (!inventory.ContainsKey(item.UID))
  12.             {
  13.                 item.Position = 0;
  14.                 MsgItemInfo _ExistingItem;
  15.                 Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(item.ID, 0);
  16.                 if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem) && Owner.SpiltStack && use != Enums.ItemUse.None)
  17.                 {
  18.                     if (_ExistingItem.StackSize == 0)
  19.                         _ExistingItem.StackSize = 1;
  20.                     ushort _StackCount = iteminfo.BaseInformation.StackSize;
  21.                     _StackCount -= (ushort)_ExistingItem.StackSize;
  22.                     if (_StackCount >= 1)
  23.                         _StackCount += 1;
  24.                     _ExistingItem.StackSize += 1;
  25.                     Database.ConquerItemTable.UpdateStack(_ExistingItem);
  26.                     _ExistingItem.Mode = Game.Enums.ItemMode.Update;
  27.                     _ExistingItem.Send(Owner);
  28.                     _ExistingItem.Mode = Game.Enums.ItemMode.Default;
  29.                     switch (use)
  30.                     {
  31.                         case Enums.ItemUse.Add:
  32.                             Database.ConquerItemTable.DeleteItem(item.UID);
  33.                             break;
  34.                         case Enums.ItemUse.Move:
  35.                             Database.ConquerItemTable.DeleteItem(item.UID);
  36.                             break;
  37.                     }
  38.                     return true;
  39.                 }
  40.                 else
  41.                 {
  42.                     switch (use)
  43.                     {
  44.                         case Enums.ItemUse.CreateAndAdd:
  45.                             item.UID = COServer.Network.GamePackets.MsgItemInfo.ItemUID.Next;
  46.                             while (ConquerItemTable.IsThere(item.UID))
  47.                                 item.UID = COServer.Network.GamePackets.MsgItemInfo.ItemUID.Next;
  48.                             Database.ConquerItemTable.AddItem(ref item, Owner);
  49.                             item.MobDropped = false;
  50.                             break;
  51.                         case Enums.ItemUse.Add:
  52.                             Database.ConquerItemTable.UpdateLocation(item, Owner);
  53.                             break;
  54.                         case Enums.ItemUse.Move:
  55.                             item.Position = 0;
  56.                             item.StatsLoaded = false;
  57.                             Database.ConquerItemTable.UpdateLocation(item, Owner);
  58.                             break;
  59.                     }
  60.                     inventory.Add(item.UID, item);
  61.                     Update();
  62.                     item.Mode = Enums.ItemMode.Default;
  63.                     if (use != Enums.ItemUse.None)
  64.                         item.Send(Owner);
  65.                     return true;
  66.                 }
  67.             }
  68.  
  69.             return false;
  70.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement