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

FREE Magicsmelt : 1.0.1 1.0.1

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

namespace Oxide.Plugins
{
    [Info("Magic Smelt", "Rust-Plugin.ru", "1.0.1")]
    class Magicsmelt : RustPlugin
    {
	    private List<ulong> ActiveUsers = new List<ulong>();
	    private int cMultiplier;
 
	    void Init()
	    {
		    permission.RegisterPermission("magicsmelt.tools", this);
		    permission.RegisterPermission("magicsmelt.inventory", this);
		    LoadDefaultConfig();
		    LoadDefaultMessages();
		    LoadData();
	    }

	    #region Gathering
	    
	    void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
	    {
		    BasePlayer player = entity.ToPlayer();
		    if(!permission.UserHasPermission(player.UserIDString, "magicsmelt.tools") || !ActiveUsers.Contains(player.userID))
			    return;

		    switch (item.info.shortname)
		    {
			    case "sulfur.ore":
				    Smelter(item, -1581843485);
				    break;
			    case "hq.metal.ore":
				    Smelter(item, 317398316);
				    break;
			    case "metal.ore":
				    Smelter(item, 69511070);
				    break;
			    case "wood":
				    Smelter(item, -1938052175);
				    break;
			    case "bearmeat":
				    Smelter(item, 1873897110);
				    break;
			    case "deermeat.raw":
				    Smelter(item, -1509851560);
				    break;
			    case "humanmeat.raw":
				    Smelter(item, 1536610005);
				    break;
			    case "meat.boar":
				    Smelter(item, -242084766);
				    break;
			    case "wolfmeat.raw":
				    Smelter(item, 813023040);
				    break;
			    case "chicken.raw":
				    Smelter(item, -1848736516);
				    break;
		    }
	    }
	    
	    void OnDispenserBonus(ResourceDispenser dispenser, BasePlayer player, Item item)
	    {
		    if(!permission.UserHasPermission(player.UserIDString, "magicsmelt.tools") || !ActiveUsers.Contains(player.userID))
			    return;
		    switch (item.info.shortname)
		    {
			    case "sulfur.ore":
				    Smelter(item, -1581843485);
				    break;
			    case "hq.metal.ore":
				    Smelter(item, 317398316);
				    break;
			    case "metal.ore":
				    Smelter(item, 69511070);
				    break;
			    case "wood":
				    Smelter(item, -1938052175);
				    break;
		    }
	    }
	    
	    void OnCollectiblePickup(Item item, BasePlayer player)
	    {
		    if(!permission.UserHasPermission(player.UserIDString, "magicsmelt.tools") || !ActiveUsers.Contains(player.userID))
			    return;
		    switch (item.info.shortname)
		    {
			    case "sulfur.ore":
				    Smelter(item, -1581843485);
				    break;
			    case "metal.ore":
				    Smelter(item, 69511070);
				    break;
			    case "wood":
				    Smelter(item, -1938052175);
				    break;
		    }
	    }

	    #endregion

	    #region Data & Config & Lang
        		
        private void LoadData() => ActiveUsers = Interface.Oxide.DataFileSystem.ReadObject<List<ulong>>("MagicSmelt");
        		
        void OnServerSave() => SaveData();
        		
        void Unload() => SaveData();
        		
        private void SaveData() => Interface.Oxide.DataFileSystem.WriteObject("MagicSmelt", ActiveUsers);
		
	    protected override void LoadDefaultConfig()
	    {
		    Config["Charcoal Multiplier"] = cMultiplier = GetConfig("Charcoal Multiplier", 1);
		    SaveConfig();
	    }
	    
	    T GetConfig<T>(string name, T value) => Config[name] == null ? value : (T)Convert.ChangeType(Config[name], typeof(T));    
	    
	    protected override void LoadDefaultMessages()
	    {
		    lang.RegisterMessages(new Dictionary<string, string>
		    {
			    ["M.PERM"]  = "<color=cyan>[Magic Tools]</color> У вас нет разрешения на использование <color=cyan>magic smelt</color>.",
			    ["M.TOOLS"] = "<color=cyan>[Magic Tools]</color> Магическая плавка с помощью инструментов <color=green>включена</color>.",
			    ["M.OFF"]   = "<color=cyan>[Magic Tools]</color> Магическая плавка <color=red>выключена</color>.",
			    ["M.INV"]   = "<color=cyan>[Magic Tools]</color> Твой инвентарь переплавлен <color=green>успешно</color>.",
		    }, this);
	    }
	    
	    #endregion

	    #region Commands
		   
	    [ChatCommand("msmelt")]
	    private void CmdTools(BasePlayer player)
	    {
		    if (!permission.UserHasPermission(player.UserIDString, "magicsmelt.tools"))
		    {
			    SendReply(player, lang.GetMessage("M.PERM", this, player.UserIDString));
			    return;
		    }
		    if (ActiveUsers.Contains(player.userID))
		    {
			    SendReply(player, lang.GetMessage("M.OFF", this, player.UserIDString));
			    ActiveUsers.Remove(player.userID);
			    return;
		    }
		    SendReply(player, lang.GetMessage("M.TOOLS", this, player.UserIDString));
		    ActiveUsers.Add(player.userID);
	    }
  
	    [ChatCommand("ismelt")]
	    private void SmeltCmd(BasePlayer player)
	    {
		    if (!permission.UserHasPermission(player.UserIDString, "magicsmelt.inventory"))
		    {
			    SendReply(player, lang.GetMessage("M.PERM", this, player.UserIDString));
		    	return;
	    	}
		    foreach (Item item in player.inventory.containerMain.itemList)
		    {
			    switch (item.info.shortname)
				{
					case "sulfur.ore":
						Smelter(item, -1581843485);
						break;
					case "hq.metal.ore":
						Smelter(item, 317398316);
						break;
					case "metal.ore":
						Smelter(item, 69511070);
						break;
					case "wood":
						Smelter(item, -1938052175);
						break;
					case "bearmeat":
						Smelter(item, 1873897110);
						break;
					case "deermeat.raw":
						Smelter(item, -1509851560);
						break;
					case "humanmeat.raw":
						Smelter(item, 1536610005);
						break;
					case "meat.boar":
						Smelter(item, -242084766);
						break;
					case "wolfmeat.raw":
						Smelter(item, 813023040);
						break;
					case "chicken.raw":
						Smelter(item, -1848736516);
						break;
					case "can.beans.empty":
						Smelter(item, 69511070);
						break;
					case "can.tuna.empty":
						Smelter(item, 69511070);
						break;
					case "crude.oil":
						Smelter(item, -946369541);
						break;
					case "fish.raw":
						Smelter(item, 1668129151);
						break;
				}
		    }
		    player.SendNetworkUpdate();
		    SendReply(player, lang.GetMessage("M.INV", this, player.UserIDString));
	    }

	    #endregion

	    #region Main function
	    
	    private void Smelter(Item item, int ID)
	    {
		    if (item.info.shortname == "wood")
			    item.amount = item.amount * cMultiplier;
		    if (item.info.shortname == "can.beans.empty")
			    item.amount = item.amount * 15;
		    if (item.info.shortname == "can.tuna.empty")
			    item.amount = item.amount * 10;
		    if (item.info.shortname == "crude.oil")
			    item.amount = item.amount * 4;
		    
			Item nitem = ItemManager.CreateByItemID(ID, item.amount);
			item.info = nitem.info;
	    }
	    
	    #endregion
    }
}

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