Иконка ресурса

FREE EasyStreet : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using Oxide.Core;
using Oxide.Core.Configuration;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;

namespace Oxide.Plugins
{
    [Info("EasyStreet", "Brady Gaster", "1.0.0")]
    [Description("Starts a new game with an inventory that sets you up for building a base and surviving the first night.")]
    class EasyStreet : CovalencePlugin
    {
        private const string LOG_FLAG = "<------------{ EASY STREET }------------>";

        private StoredData storedData;

        private void Init()
        {
            Puts("Initializing Easy Street...");
            storedData = Interface.Oxide.DataFileSystem.ReadObject<StoredData>("easystreet");
            Puts("Initialized Easy Street...");
        }

        private bool HasPlayerBeenWelcomed(BasePlayer player)
        {
            Puts("Entering HasPlayerBeenWelcomed");

            bool playerhasbeenwelcomed = false;
            if (storedData.Players.Contains(player.displayName))
            {
                Puts($"HasPlayerBeenWelcomed: Player {player.displayName} has already been welcomed.");
                playerhasbeenwelcomed = true;
            }
            else
            {
                Puts($"HasPlayerBeenWelcomed: Player {player.displayName} has not yet been welcomed.");

                Puts($"HasPlayerBeenWelcomed: Adding Player {player.displayName} to data file.");
                storedData.Players.Add(player.displayName);
                Interface.Oxide.DataFileSystem.WriteObject("easystreet", storedData);
                Puts($"HasPlayerBeenWelcomed: Added Player {player.displayName} to data file.");
            }

            Puts("Exiting HasPlayerBeenWelcomed");

            return playerhasbeenwelcomed;
        }

        private object OnDefaultItemsReceived(PlayerInventory inventory)
        {
            Puts("Entering OnDefaultItemsReceived");

            var player = inventory.baseEntity;

            var hasPlayerBeenWelcomed = HasPlayerBeenWelcomed(player);
            if (hasPlayerBeenWelcomed)
            {
                Puts(LOG_FLAG);
                Puts($"Welcome {player.displayName} back to Easy Street.");
                Puts(LOG_FLAG);
                return null;
            }

            Puts(LOG_FLAG);
            Puts($"Let's welcome {player.displayName} to Easy Street with a nice starting inventory.");
            Puts(LOG_FLAG);

            // clear this player's inventory
            Puts(LOG_FLAG);
            inventory.containerBelt.Clear();
            Puts($"Cleared {player.displayName}'s starting inventory.");
            Puts(LOG_FLAG);

            // resources
            foreach (var resource in new[] { "wood", "stones", "metal.fragments" })
            {
                for (int i = 0; i < 6; i++)
                {
                    AddItemToInventory(player, resource, 1000, player.inventory.containerMain);
                }
            }

            // main inventory
            AddItemToInventory(player, "ammo.rifle", 128, player.inventory.containerMain);
            AddItemToInventory(player, "cloth", 50, player.inventory.containerMain);
            AddItemToInventory(player, "lowgradefuel", 20, player.inventory.containerMain);
            AddItemToInventory(player, "pumpkin", 20, player.inventory.containerMain);

            // belt
            AddItemToInventory(player, "rifle.lr300", 1, player.inventory.containerBelt);
            AddItemToInventory(player, "knife.combat", 1, player.inventory.containerBelt);
            AddItemToInventory(player, "chainsaw", 1, player.inventory.containerBelt);
            AddItemToInventory(player, "jackhammer", 1, player.inventory.containerBelt);

            // clothing
            AddItemToInventory(player, "hat.miner", 1, player.inventory.containerWear);
            AddItemToInventory(player, "tshirt.long", 1, player.inventory.containerWear);
            AddItemToInventory(player, "roadsign.jacket", 1, player.inventory.containerWear);
            AddItemToInventory(player, "pants", 1, player.inventory.containerWear);
            AddItemToInventory(player, "shoes.boots", 1, player.inventory.containerWear);
            AddItemToInventory(player, "mask.bandana", 1, player.inventory.containerWear);

            // final confirmation
            Puts(LOG_FLAG);
            Puts($"{player.displayName} welcomed to Easy Street with a nice starting inventory.");
            Puts(LOG_FLAG);

            Puts("Exiting OnDefaultItemsReceived");

            return null;
        }

        private void AddItemToInventory(BasePlayer player, string itemName, int amount, ItemContainer container)
        {
            Puts($"Adding {itemName}");
            player.inventory.GiveItem(ItemManager.CreateByName(itemName, amount), container);
        }
    }

    public class StoredData
    {
        public HashSet<string> Players = new HashSet<string>();

        public StoredData()
        {
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху