public void tryAddItem(int id, int amount) { if (ItemWeight.getWeight(id) != -1000) { ServerItem serverItem = new ServerItem(id, ItemAmount.getAmount(id), ItemState.getState(id), Vector3.zero); Vector3 position = base.transform.position; if (base.GetComponent <Player>().vehicle != null) { position = base.GetComponent <Player>().vehicle.getPosition(); } for (int i = 0; i < amount; i++) { if (this.hasSpace(serverItem) != 0) { SpawnItems.dropItem(id, position); } else { this.addItem(serverItem); } } } }
public void onReady() { SpawnItems.tool = this; SpawnItems.model = GameObject.Find(Application.loadedLevelName).transform.FindChild("items").gameObject; SpawnItems.regions = new ItemsRegion[NetworkRegions.REGION_X, NetworkRegions.REGION_Y]; for (int i = 0; i < NetworkRegions.REGION_X; i++) { for (int j = 0; j < NetworkRegions.REGION_Y; j++) { SpawnItems.regions[i, j] = new ItemsRegion(); } } if (Network.isServer) { int num = 0; for (int k = 0; k < SpawnItems.model.transform.FindChild("spawns").childCount; k++) { if (ServerSettings.mode == 0 && UnityEngine.Random.@value > Loot.NORMAL_ITEM_CHANCE || ServerSettings.mode == 1 && UnityEngine.Random.@value > Loot.BAMBI_ITEM_CHANCE || ServerSettings.mode == 2 && UnityEngine.Random.@value > Loot.HARDCORE_ITEM_CHANCE || ServerSettings.mode == 3 && UnityEngine.Random.@value > Loot.GOLD_ITEM_CHANCE) { Transform child = SpawnItems.model.transform.FindChild("spawns").GetChild(k); Point2 region = NetworkRegions.getRegion(child.position); int loot = Loot.getLoot(child.name); int type = ItemType.getType(loot); if (ItemWeight.getWeight(loot) != -1000 || type == 30) { if (type == 10) { SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(loot, UnityEngine.Random.Range(1, ItemAmount.getAmount(loot) + 1), ItemState.getState(loot), child.position)); num++; } else if (type == 25) { for (int l = 0; l < UnityEngine.Random.Range(3, 6); l++) { SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(loot, ItemAmount.getAmount(loot), ItemState.getState(loot), child.position + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), 0f, UnityEngine.Random.Range(-0.5f, 0.5f)))); num++; } } else if (loot == 30000) { SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(11, 1, ItemState.getState(11), child.position)); SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(4017, 1, ItemState.getState(4017), child.position)); SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(5017, 1, ItemState.getState(5017), child.position)); num = num + 3; } else if (loot != 30001) { SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(loot, ItemAmount.getAmount(loot), ItemState.getState(loot), child.position)); num++; } else { SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(12, 1, ItemState.getState(12), child.position)); SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(4018, 1, ItemState.getState(4018), child.position)); SpawnItems.regions[region.x, region.y].items.Add(new ServerItem(5018, 1, ItemState.getState(5018), child.position)); num = num + 3; } } } } if (ServerSettings.map != 0) { base.InvokeRepeating("respawn", 5f, Loot.getRespawnRate() * (ServerSettings.mode != 3 ? 1f : 0.5f)); } } }
public static void spawnItem(int id, int amount, Vector3 position) { SpawnItems.spawn(id, amount, ItemState.getState(id), position); }
public static void dropItem(int id, Vector3 position) { SpawnItems.drop(id, ItemAmount.getAmount(id), ItemState.getState(id), position); }