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

FREE FireTools : 1.0.4 1.0.4

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using Oxide.Core;
using Oxide.Core.Configuration;
using System.Linq;
using System.Text;
using UnityEngine;
using System;
using Random = UnityEngine.Random;
namespace Oxide.Plugins {
    [Info("FireTools", "Fartus", "1.0.4")]
    [Description("Выдается огненный инструмент, используя который добываются переплавленные ресурсы.")]
    class FireTools : RustPlugin {
#region Classes
        public List<uint> fireTools;
        private uint uid;
        readonly DynamicConfigFile dataFile = Interface.Oxide.DataFileSystem.GetFile("FireTools");
#endregion
#region Oxide hooks
        void OnServerInitialized() {
            InitCockables();
            try {
                fireTools = dataFile.ReadObject<List<uint>>();
            }
            catch {
                fireTools = new List<uint>();
            }
        }
        void Save() {
            dataFile.WriteObject(fireTools);
        }
#endregion
#region Console command
        [ConsoleCommand("hatchet.create")]
        // топор
        void cmdConsole_ToolhatchetCreate(ConsoleSystem.Arg arg) {
            if(!arg.HasArgs() || arg.Args.Length < 1) {
                SendError(arg, "Должен быть 1 аргумент.");
                return;
            }
            int toolId = -1252059217;
            ulong playerId = arg.GetUInt64(0);
            if (arg.Connection == null || arg.Connection.authLevel > 1) {
                BasePlayer targetPlayer = BasePlayer.FindByID(playerId);
                if (targetPlayer == null) {
                    SendError(arg, "Игрок не найден [" + playerId + "].");
                    return;
                }
                Item item = ItemManager.CreateByItemID(toolId, skin : (ulong)815040374);
                if (item == null) {
                    SendError(arg, "При создании предмета произошла ошибка!");
                    return;
                }
                fireTools.Add(item.uid);
                targetPlayer.GiveItem(item);
                SendReply(arg, "Предмет успешно выдан игроку: " + targetPlayer.displayName);
                SendReply(targetPlayer, "<size=15>Вы получили Огненный инструмент.</size>");
                Save();
                return;
            }
            SendError(arg, "У вас нет прав, чтобы использовать эту команду!");
        }
        [ConsoleCommand("pickaxe.create")]
        // кирка
        void cmdConsole_ToolpickaxeCreate(ConsoleSystem.Arg arg) {
            if(!arg.HasArgs() || arg.Args.Length < 1) {
                SendError(arg, "Должен быть 1 аргумент.");
                return;
            }
            int toolId = -1302129395;
            ulong playerId = arg.GetUInt64(0);
            if (arg.Connection == null || arg.Connection.authLevel > 1) {
                BasePlayer targetPlayer = BasePlayer.FindByID(playerId);
                if (targetPlayer == null) {
                    SendError(arg, "Игрок не найден [" + playerId + "].");
                    return;
                }
                Item item = ItemManager.CreateByItemID(toolId, skin : (ulong)820199230);
                if (item == null) {
                    SendError(arg, "При создании предмета произошла ошибка!");
                    return;
                }
                fireTools.Add(item.uid);
                targetPlayer.GiveItem(item);
                SendReply(arg, "Предмет успешно выдан игроку: " + targetPlayer.displayName);
                SendReply(targetPlayer, "<size=15>Вы получили Огненный инструмент.</size>");
                Save();
                return;
            }
            SendError(arg, "У вас нет прав, чтобы использовать эту команду!");
        }
        [ConsoleCommand("icepick.create")]
        // ледоруб
        void cmdConsole_ToolicepickCreate(ConsoleSystem.Arg arg) {
            if(!arg.HasArgs() || arg.Args.Length < 1) {
                SendError(arg, "Должен быть 1 аргумент.");
                return;
            }
            int toolId = -1780802565;
            ulong playerId = arg.GetUInt64(0);
            if (arg.Connection == null || arg.Connection.authLevel > 1) {
                BasePlayer targetPlayer = BasePlayer.FindByID(playerId);
                if (targetPlayer == null) {
                    SendError(arg, "Игрок не найден [" + playerId + "].");
                    return;
                }
                Item item = ItemManager.CreateByItemID(toolId, skin : (ulong)844666224);
                if (item == null) {
                    SendError(arg, "При создании предмета произошла ошибка!");
                    return;
                }
                fireTools.Add(item.uid);
                targetPlayer.GiveItem(item);
                SendReply(arg, "Предмет успешно выдан игроку: " + targetPlayer.displayName);
                SendReply(targetPlayer, "<size=15>Вы получили Огненный инструмент.</size>");
                Save();
                return;
            }
            SendError(arg, "У вас нет прав, чтобы использовать эту команду!");
        }
        [ConsoleCommand("chainsaw.create")]
        // бензопила
        void cmdConsole_ToolchainsawCreate(ConsoleSystem.Arg arg) {
            if(!arg.HasArgs() || arg.Args.Length < 1) {
                SendError(arg, "Должен быть 1 аргумент.");
                return;
            }
            int toolId = 1104520648;
            ulong playerId = arg.GetUInt64(0);
            if (arg.Connection == null || arg.Connection.authLevel > 1) {
                BasePlayer targetPlayer = BasePlayer.FindByID(playerId);
                if (targetPlayer == null) {
                    SendError(arg, "Игрок не найден [" + playerId + "].");
                    return;
                }
                Item item = ItemManager.CreateByItemID(toolId, skin : (ulong)1744052235);
                if (item == null) {
                    SendError(arg, "При создании предмета произошла ошибка!");
                    return;
                }
                fireTools.Add(item.uid);
                targetPlayer.GiveItem(item);
                SendReply(arg, "Предмет успешно выдан игроку: " + targetPlayer.displayName);
                SendReply(targetPlayer, "<size=15>Вы получили Огненный инструмент.</size>");
                Save();
                return;
            }
            SendError(arg, "У вас нет прав, чтобы использовать эту команду!");
        }
        [ConsoleCommand("jackhammer.create")]
        // бур
        void cmdConsole_TooljackhammerCreate(ConsoleSystem.Arg arg) {
            if(!arg.HasArgs() || arg.Args.Length < 1) {
                SendError(arg, "Должен быть 1 аргумент.");
                return;
            }
            int toolId = 1488979457;
            ulong playerId = arg.GetUInt64(0);
            if (arg.Connection == null || arg.Connection.authLevel > 1) {
                BasePlayer targetPlayer = BasePlayer.FindByID(playerId);
                if (targetPlayer == null) {
                    SendError(arg, "Игрок не найден [" + playerId + "].");
                    return;
                }
                Item item = ItemManager.CreateByItemID(toolId, skin : (ulong)1744050300);
                if (item == null) {
                    SendError(arg, "При создании предмета произошла ошибка!");
                    return;
                }
                fireTools.Add(item.uid);
                targetPlayer.GiveItem(item);
                SendReply(arg, "Предмет успешно выдан игроку: " + targetPlayer.displayName);
                SendReply(targetPlayer, "<size=15>Вы получили Огненный инструмент.</size>");
                Save();
                return;
            }
            SendError(arg, "У вас нет прав, чтобы использовать эту команду!");
        }
#endregion
#region Chat command
        [ChatCommand("ftool")]
        void CmdChat_CreateTool(BasePlayer player) {
            if(!player.IsAdmin) {
                SendReply(player, "<size=15>У вас нет доступа к этой команде!</size>");
                return;
            }
            Item item = ItemManager.CreateByItemID(-1252059217);
            Item item2 = ItemManager.CreateByItemID(-1302129395);
            Item item3 = ItemManager.CreateByItemID(-1780802565);
            Item item4 = ItemManager.CreateByItemID(1104520648);
            Item item5 = ItemManager.CreateByItemID(1488979457);
            item.skin = (ulong)815040374;
            item.GetHeldEntity().skinID = (ulong)815040374;
            item.skin = (ulong)815040374;
            item2.skin = (ulong)820199230;
            item2.GetHeldEntity().skinID = (ulong)820199230;
            item2.skin = (ulong)820199230;
            item3.skin = (ulong)844666224;
            item3.GetHeldEntity().skinID = (ulong)844666224;
            item3.skin = (ulong)844666224;
            item4.skin = (ulong)1744052235;
            item4.GetHeldEntity().skinID = (ulong)1744052235;
            item4.skin = (ulong)1744052235;
            item5.skin = (ulong)1744050300;
            item5.GetHeldEntity().skinID = (ulong)1744050300;
            item5.skin = (ulong)1744050300;
            player.GiveItem(item, BaseEntity.GiveItemReason.ResourceHarvested);
            player.GiveItem(item2, BaseEntity.GiveItemReason.ResourceHarvested);
            player.GiveItem(item3, BaseEntity.GiveItemReason.ResourceHarvested);
            player.GiveItem(item4, BaseEntity.GiveItemReason.ResourceHarvested);
            player.GiveItem(item5, BaseEntity.GiveItemReason.ResourceHarvested);
            fireTools.Add(item.uid);
            fireTools.Add(item2.uid);
            fireTools.Add(item3.uid);
            fireTools.Add(item4.uid);
            fireTools.Add(item5.uid);
            Puts(item.info.itemid.ToString());
            Puts(item2.info.itemid.ToString());
            Puts(item3.info.itemid.ToString());
            Puts(item4.info.itemid.ToString());
            Puts(item5.info.itemid.ToString());
            Save();
        }
#endregion
        /*void OnEntityDeath(BaseCombatEntity entity, HitInfo info)
		{
			if (entity.name.Contains("loot_barrel")) // все виды бочек, даже нефтяные 
			{
				if (Random.Range(1, 100) == 1f)
				{
					Item item = ItemManager.CreateByItemID(-1252059217, skin: (ulong)851146955);
					if (Random.Range(1, 3) == 1f)
					{
					item = ItemManager.CreateByItemID(-1302129395, skin: (ulong)815040374);	
					}
					fireTools.Add(item.uid);
					
					item.Drop(entity.transform.position, entity.GetDropVelocity());
					
					Save();
				}
			}
		}*/
#region Helpers
        object OnItemRepair(BasePlayer player, Item item) {
            if (fireTools.Contains(item.uid)) {
                SendReply(player, "<size=15>Огненные инструменты не поддаются ремонту!</size>");
                return false;
            }
            return null;
        }
        Dictionary<ItemDefinition, ItemModCookable> cookables;
        void InitCockables() {
            cookables = ItemManager.itemList.ToDictionary(item => item, item => item.GetComponent<ItemModCookable>()).Where(item => item.Value != null && !item.Value.becomeOnCooked.shortname.Contains("burned")).ToDictionary(item => item.Key, mod => mod.Value);
        }
        void OnLoseCondition(Item item, ref float amount) {
            uid = item.uid;
        }
        void OnDispenserGather(ResourceDispenser dispenser, BaseEntity ent, Item item) {
            if (dispenser == null || ent == null || item == null) {
                return;
            }
            BasePlayer player = ent as BasePlayer;
            if (player == null) return;
            if (fireTools.Contains(uid)) {
                ItemModCookable cookable;
                ItemDefinition gfiofufujfu = item.info;
                if (!cookables.TryGetValue(item.info, out cookable) && gfiofufujfu.itemid != -151838493) return;
                var amount = item.amount;
                NextTick(() => {
                    List<Item> items = new List<Item>();
                    player.inventory.Take(items, gfiofufujfu.itemid, amount);
                    items.ForEach(i=> i.Remove());
                    if(gfiofufujfu.itemid == -151838493) {
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-1938052175, amount));
                        return;
                    }
                    var cockItem = ItemManager.Create(cookable.becomeOnCooked, amount);
                    if (!cockItem.MoveToContainer(player.inventory.containerMain)) {
                        cockItem.Drop(player.GetCenter(), Vector3.up);
                    }
                }
                );
            }
            //	return null;
        }
#endregion
    }
}

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