Exemplo n.º 1
0
        // Token: 0x0600283E RID: 10302 RVA: 0x000F36C0 File Offset: 0x000F1AC0
        public static void takeItem(Transform item, byte to_x, byte to_y, byte to_rot, byte to_page)
        {
            byte b;
            byte b2;

            if (Regions.tryGetCoordinate(item.position, out b, out b2))
            {
                ItemRegion itemRegion = ItemManager.regions[(int)b, (int)b2];
                for (int i = 0; i < itemRegion.drops.Count; i++)
                {
                    if (itemRegion.drops[i].model == item)
                    {
                        ItemManager.manager.channel.send("askTakeItem", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, new object[]
                        {
                            b,
                            b2,
                            itemRegion.drops[i].instanceID,
                            to_x,
                            to_y,
                            to_rot,
                            to_page
                        });
                        return;
                    }
                }
            }
        }
Exemplo n.º 2
0
 public void tellTakeItem(CSteamID steamID, byte x, byte y, uint instanceID)
 {
     if (base.channel.checkServer(steamID))
     {
         if (!Provider.isServer && !ItemManager.regions[(int)x, (int)y].isNetworked)
         {
             return;
         }
         ItemRegion itemRegion = ItemManager.regions[(int)x, (int)y];
         ushort     num        = 0;
         while ((int)num < itemRegion.drops.Count)
         {
             if (itemRegion.drops[(int)num].instanceID == instanceID)
             {
                 if (ItemManager.onItemDropRemoved != null)
                 {
                     ItemManager.onItemDropRemoved(itemRegion.drops[(int)num].model, itemRegion.drops[(int)num].interactableItem);
                 }
                 UnityEngine.Object.Destroy(itemRegion.drops[(int)num].model.gameObject);
                 itemRegion.drops.RemoveAt((int)num);
                 return;
             }
             num += 1;
         }
     }
 }
Exemplo n.º 3
0
 public void tellClearRegionItems(CSteamID steamID, byte x, byte y)
 {
     if (base.channel.checkServer(steamID))
     {
         if (!Provider.isServer && !ItemManager.regions[(int)x, (int)y].isNetworked)
         {
             return;
         }
         ItemRegion itemRegion = ItemManager.regions[(int)x, (int)y];
         itemRegion.destroy();
     }
 }
Exemplo n.º 4
0
 // Token: 0x06002843 RID: 10307 RVA: 0x000F3CF0 File Offset: 0x000F20F0
 public static void askClearRegionItems(byte x, byte y)
 {
     if (Provider.isServer)
     {
         if (!Regions.checkSafe((int)x, (int)y))
         {
             return;
         }
         ItemRegion itemRegion = ItemManager.regions[(int)x, (int)y];
         if (itemRegion.items.Count > 0)
         {
             itemRegion.items.Clear();
             ItemManager.manager.channel.send("tellClearRegionItems", ESteamCall.CLIENTS, x, y, ItemManager.ITEM_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
             {
                 x,
                 y
             });
         }
     }
 }
Exemplo n.º 5
0
 public void askTakeItem(CSteamID steamID, byte x, byte y, uint instanceID, byte to_x, byte to_y, byte to_rot, byte to_page)
 {
     if (Provider.isServer)
     {
         if (!Regions.checkSafe((int)x, (int)y))
         {
             return;
         }
         Player player = PlayerTool.getPlayer(steamID);
         if (player == null)
         {
             return;
         }
         if (player.life.isDead)
         {
             return;
         }
         if (!player.tryToPerformRateLimitedAction())
         {
             return;
         }
         if (player.animator.gesture == EPlayerGesture.ARREST_START)
         {
             return;
         }
         ItemRegion itemRegion = ItemManager.regions[(int)x, (int)y];
         ushort     num        = 0;
         while ((int)num < itemRegion.items.Count)
         {
             if (itemRegion.items[(int)num].instanceID == instanceID)
             {
                 if (Dedicator.isDedicated && (itemRegion.items[(int)num].point - player.transform.position).sqrMagnitude > 400f)
                 {
                     return;
                 }
                 bool flag;
                 if (to_page == 255)
                 {
                     flag = player.inventory.tryAddItem(ItemManager.regions[(int)x, (int)y].items[(int)num].item, true);
                 }
                 else
                 {
                     flag = player.inventory.tryAddItem(ItemManager.regions[(int)x, (int)y].items[(int)num].item, to_x, to_y, to_page, to_rot);
                 }
                 if (flag)
                 {
                     if (!player.equipment.wasTryingToSelect && !player.equipment.isSelected)
                     {
                         player.animator.sendGesture(EPlayerGesture.PICKUP, true);
                     }
                     EffectManager.sendEffect(7, EffectManager.SMALL, ItemManager.regions[(int)x, (int)y].items[(int)num].point);
                     ItemManager.regions[(int)x, (int)y].items.RemoveAt((int)num);
                     player.sendStat(EPlayerStat.FOUND_ITEMS);
                     base.channel.send("tellTakeItem", ESteamCall.CLIENTS, x, y, ItemManager.ITEM_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
                     {
                         x,
                         y,
                         instanceID
                     });
                 }
                 else
                 {
                     player.sendMessage(EPlayerMessage.SPACE);
                 }
                 return;
             }
             else
             {
                 num += 1;
             }
         }
     }
 }