// 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; } } } }
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; } } }
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(); } }
// 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 }); } } }
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; } } } }