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

FREE ScrapMultiplier : 1.0.5 1.0.5

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

namespace Oxide.Plugins
{
    [Info("ScrapMultiplier", "Cornholio21", "1.0.5")]
    [Description("Multiplies the amount of scrap found in crates.")]
    public class ScrapMultiplier : RustPlugin
    {
        private ConfigurationFile _configuration;
        private const int ScrapItemId = -932201673;

        public class ConfigurationFile
        {
            [JsonProperty(PropertyName = "Scrap Multiplier")]
            public float ScrapMultiplier = 1f;
        }

        protected override void LoadDefaultConfig()
        {
            PrintWarning("Creating a new configuration file");
            _configuration = new ConfigurationFile { ScrapMultiplier = 1f };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();
            _configuration = Config.ReadObject<ConfigurationFile>();
            SaveConfig();
        }

        protected override void SaveConfig() => Config.WriteObject(_configuration);

        private void OnServerInitialized()
        {
            RepopulateContainers();
        }

        private void OnLootSpawn(LootContainer container)
        {
            if (container?.inventory?.itemList == null)
            {
                return;
            }

            NextFrame(() =>
            {
                if (container?.inventory?.itemList == null)
                {
                    return;
                }

                foreach (Item item in container.inventory.itemList)
                {
                    if (item.info.itemid == ScrapItemId)
                    {
                        item.amount = (int)(item.amount * _configuration.ScrapMultiplier);
                        item.MarkDirty();
                    }
                }
            });
        }

        private void RepopulateContainers()
        {
            int affectedContainers = 0;

            foreach (var container in UnityEngine.Object.FindObjectsOfType<LootContainer>())
            {
                if (container?.inventory != null)
                {
                    container.inventory.Clear();
                    container.SpawnLoot();
                    affectedContainers++;
                }
            }

            PrintWarning($"Repopulated loot in {affectedContainers} containers.");
        }

        private void Unload()
        {
            RepopulateContainers();
        }
    }
}

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