public void testItem(int id, int x, int y, Vector3 position, NetworkMessageInfo info) { if (info.sender != Network.player) { //Logger.LogSecurity(info.sender, "Item spawn hack detected!"); //NetworkTools.kick(info.sender, "VAC: item spawn hack detected. Incident reported!"); //return; } if ((info.sender.ToString() == "0" || info.sender.ToString() == "-1") && ItemsRegion.acceptable(x, NetworkRegions.region.x) && ItemsRegion.acceptable(y, NetworkRegions.region.y)) { this.createItemNotRPC(id, position); } }
public void onRegionUpdate() { if (Network.peerType != NetworkPeerType.Disconnected) { if (NetworkRegions.lastRegion.x != -1) { for (int i = 0; i < NetworkRegions.REGION_X; i++) { for (int j = 0; j < NetworkRegions.REGION_Y; j++) { if (SpawnItems.regions[i, j].models.Count > 0 && (!ItemsRegion.acceptable(i, NetworkRegions.region.x) || !ItemsRegion.acceptable(j, NetworkRegions.region.y))) { GameObject[] array = SpawnItems.regions[i, j].models.ToArray(); for (int k = 0; k < (int)array.Length; k++) { UnityEngine.Object.Destroy(array[k]); } SpawnItems.regions[i, j].models.Clear(); } } } } for (int l = NetworkRegions.region.x - 1; l < NetworkRegions.region.x + 2; l++) { for (int m = NetworkRegions.region.y - 1; m < NetworkRegions.region.y + 2; m++) { if (l >= 0 && m >= 0 && l < NetworkRegions.REGION_X && m < NetworkRegions.REGION_Y && SpawnItems.regions[l, m].models.Count == 0 && Time.realtimeSinceStartup - SpawnItems.regions[l, m].cooldown > 1f) { SpawnItems.regions[l, m].cooldown = Time.realtimeSinceStartup; if (!Network.isServer) { SpawnItems.tool.networkView.RPC("askAllItems", RPCMode.Server, new object[] { Network.player, l, m }); } else { this.askAllItems(Network.player, l, m); } } } } } }
public static bool acceptable(Point2 a, Point2 b) { return(!ItemsRegion.acceptable(a.x, b.y) ? false : ItemsRegion.acceptable(a.y, b.y)); }