Exemplo n.º 1
0
        private CommandResult RespawnItemsCommand(ICommandSource src, ICommandArgs args)
        {
            for (byte x = 0; x < Regions.WORLD_SIZE; x++)
            {
                for (byte y = 0; y < Regions.WORLD_SIZE; y++)
                {
                    var itemsCount = LevelItems.spawns[x, y].Count;
                    if (itemsCount <= 0)
                    {
                        continue;
                    }

                    for (var i = 0; i < itemsCount; i++)
                    {
                        var itemSpawnpoint = LevelItems.spawns[x, y][i];
                        var itemId         = LevelItems.getItem(itemSpawnpoint);

                        if (itemId == 0)
                        {
                            continue;
                        }

                        var item = new Item(itemId, true);
                        ItemManager.dropItem(item, itemSpawnpoint.point, false, false, false);
                    }
                }
            }
            EssLang.Send(src, "RESPAWNED_ITEMS");
            return(CommandResult.Success());
        }
Exemplo n.º 2
0
        CommandResult RespawnItemsCommand(ICommandSource src, ICommandArgs args)
        {
            for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
            {
                for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
                {
                    if (LevelItems.spawns[b, b2].Count <= 0)
                    {
                        continue;
                    }

                    for (var i = 0; i < LevelItems.spawns[b, b2].Count; i++)
                    {
                        var itemSpawnpoint = LevelItems.spawns[b, b2][i];
                        var item           = LevelItems.getItem(itemSpawnpoint);

                        if (item == 0)
                        {
                            continue;
                        }

                        var item2 = new Item(item, true);
                        ItemManager.dropItem(item2, itemSpawnpoint.point, false, false, false);
                    }
                }
            }

            EssLang.RESPAWNED_ITEMS.SendTo(src);

            return(CommandResult.Success());
        }
        public void Execute(IRocketPlayer caller, string[] command)
        {
            for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
            {
                for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
                {
                    if (LevelItems.spawns[b, b2].Count <= 0)
                    {
                        continue;
                    }

                    for (var i = 0; i < LevelItems.spawns[b, b2].Count; i++)
                    {
                        var itemSpawnpoint = LevelItems.spawns[b, b2][i];
                        var item           = LevelItems.getItem(itemSpawnpoint);

                        if (item == 0)
                        {
                            continue;
                        }

                        var item2 = new Item(item, true);
                        ItemManager.dropItem(item2, itemSpawnpoint.point, false, false, false);
                    }
                }
            }
            UnturnedChat.Say(caller, "Respawned all items.", Color.green);
        }
Exemplo n.º 4
0
        private void RefreshItems()
        {
            for (byte x = 0; x < Regions.WORLD_SIZE; x++)
            {
                for (byte y = 0; y < Regions.WORLD_SIZE; y++)
                {
                    ItemRegion      currentItemRegion = ItemManager.regions[x, y];
                    List <ItemData> droppedItems      = new List <ItemData>();

                    if (!Configuration.Instance.clearPlayerItems)
                    {
                        if (currentItemRegion.items.Count > 0)
                        {
                            for (int i = 0; i < currentItemRegion.items.Count; i++)
                            {
                                if (currentItemRegion.items[i].isDropped)
                                {
                                    droppedItems.Add(currentItemRegion.items[i]);
                                }
                            }
                        }
                    }

                    List <int> currentRegionSpawnsIndexes = new List <int>();

                    for (int i = 0; i < LevelItems.spawns[x, y].Count; i++)
                    {
                        currentRegionSpawnsIndexes.Add(i);
                    }

                    ItemManager.askClearRegionItems(x, y);

                    long itemsSpawnedCount = 0;

                    if (!Configuration.Instance.clearPlayerItems)
                    {
                        for (var i = 0; i < droppedItems.Count; i++)
                        {
                            ItemManager.dropItem(droppedItems[i].item, droppedItems[i].point, false, true, false);
                        }
                    }

                    if (currentRegionSpawnsIndexes.Count <= 0)
                    {
                        continue;
                    }

                    while (currentRegionSpawnsIndexes.Count > 0 && (double)LevelItems.spawns[(int)x, (int)y].Count * spawnChance > (double)itemsSpawnedCount)
                    {
                        int randomIndex = UnityEngine.Random.Range(0, currentRegionSpawnsIndexes.Count);

                        ItemSpawnpoint randomSpawn = LevelItems.spawns[x, y][currentRegionSpawnsIndexes[randomIndex]];

                        currentRegionSpawnsIndexes.RemoveAt(randomIndex);

                        ushort itemId = LevelItems.getItem(randomSpawn);

                        if (itemId == 0)
                        {
                            continue;
                        }

                        var newItem = new Item(itemId, false);

                        ItemManager.dropItem(newItem, randomSpawn.point, false, false, false);

                        itemsSpawnedCount++;
                    }
                }
            }
        }