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

FREE IQDailyStep : 0.0.5 0.0.5

Нет прав для скачивания
C#:
using ConVar;
using Newtonsoft.Json;
using Oxide.Core.Plugins;
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Oxide.Game.Rust.Cui;
using System.Collections;

namespace Oxide.Plugins
{
    [Info("IQDailyStep", "SkuliDropek", "0.0.5")]
    [Description("Ежедневные награды")]
    class IQDailyStep : RustPlugin
    {
        #region Reference
        [PluginReference] Plugin IQChat, IQEconomic, IQCases, ImageLibrary, RustStore;
        public void SendChat(string Message, BasePlayer player, Chat.ChatChannel channel = Chat.ChatChannel.Global)
        {
            var Chat = config.GeneralSetting.ChatSettings;
            if (IQChat)
                if (Chat.UIAlertUse)
                    IQChat?.Call("API_ALERT_PLAYER_UI", player, Message);
                else IQChat?.Call("API_ALERT_PLAYER", player, Message, Chat.CustomPrefix, Chat.CustomAvatar);
            else player.SendConsoleCommand("chat.add", channel, 0, Message);
        }
        private string GetImage(string fileName, ulong skin = 0)
        {
            var imageId = (string)plugins.Find("ImageLibrary").CallHook("GetImage", fileName, skin);
            if (!string.IsNullOrEmpty(imageId))
                return imageId;
            return string.Empty;
        }
        public bool AddImage(string url, string shortname, ulong skin = 0) => (bool)ImageLibrary?.Call("AddImage", url, shortname, skin);
        public void AddAllImage()
        {
            var Images = config.InterfaceSetting;
            if (string.IsNullOrEmpty(Images.BackgroundURL))
                PrintError("Не найдена ссылка на задний фон!");
            if (!ImageLibrary)
            {
                PrintError("Не установлен плагин ImageLibrary!");
                return;
            }
            AddImage(Images.BackgroundURL, "BACKGROUND_IMG");
            for (int Day = 0; Day < config.Days.Count; Day++)
            {
                AddImage(config.Days[Day].ImageLink, $"DAY_{Day}");
                AddImage(config.Days[Day].ImageLinkAccess, $"DAY_ACCESS_{Day}");
                for (int Item = 0; Item < config.Days[Day].Rewards.Count; Item++)
                {
                    var Reward = config.Days[Day].Rewards[Item];
                    if (Reward.UseCommand)
                        AddImage(Reward.CommandSettings.CommandPNG, $"DAY_{Day}_COMMAND_{Item}");
                    if (Reward.UseItem)
                        AddImage(Reward.PNGItemRust, $"DAY_{Day}_ITEM_{Item}");
                    if (Reward.UseStores)
                        AddImage(Reward.PNGStoreBalance, $"DAY_{Day}_BALANCE_{Item}");
                }
            }
            Puts("Изображения загружены успешно");
        }
        public string GetImageReward(int Day, int ItemIndex)
        {
            var Item = config.Days[Day].Rewards[ItemIndex];
            if (Item.UseCommand)
                return $"DAY_{Day}_COMMAND_{ItemIndex}";
            if (Item.UseItem)
                return $"DAY_{Day}_ITEM_{ItemIndex}";
            if (Item.UseStores)
                return $"DAY_{Day}_BALANCE_{ItemIndex}";
            if (Item.UseIQCases)
                if (IQCASE_EXIST(Item.IQCasesSettings.KeyCase))
                    return Item.IQCasesSettings.KeyCase;
            if (Item.UseIQEconomic)
                return IQEconomicGetIL();
            return "null";
        }
        string IQEconomicGetIL() { 
            return (string)IQEconomic?.Call("API_GET_MONEY_IL"); }
        void IQCasesGiveCase(ulong userID, string CaseKey, int Amount)
        {
            if (!IQCases)
            {
                PrintError("У вас установлена выдача кейса IQCases,но не установлен плагин!\nВыдача награды будетн неккоректна!");
                return;
            }
            if (!IQCASE_EXIST(CaseKey))
            {
                PrintError($"{CaseKey} - данного кейса не найдено в IQCases.Проверьте введенные вами данные в плагине!");
                return;
            }
            IQCases?.Call("API_GIVE_CASE", userID, CaseKey, Amount);
        }
        bool IQCASE_EXIST(string CaseKey)
        {
            if (!(bool)IQCases?.Call("API_IS_CASE_EXIST", CaseKey))
                return false;
            else 
                return true;
        }
        void IQEconomicBalanceSet(ulong userID,int Balance)
        {
            if(!IQEconomic)
            {
                PrintError("У вас установлена выдача баланса IQEconomic,но не установлен плагин!\nВыдача награды будетн неккоректна!");
                return;
            }
            IQEconomic?.Call("API_SET_BALANCE", userID, Balance);
        }
        public void MoscovOVHBalanceSet(ulong userID, int Balance)
        {
            if (!RustStore)
            {
                PrintWarning("У вас не установлен магазин MoscovOVH");
                return;
            }
            plugins.Find("RustStore").CallHook("APIChangeUserBalance", userID, Balance, new Action<string>((result) =>
            {
                BasePlayer player = BasePlayer.FindByID(userID);
                if (result == "SUCCESS") return;
                Puts($"Пользователь {userID} не авторизован в магазине");
            }));
        }
        public void GameStoresBalanceSet(ulong userID, int Balance)
        {
            var GameStores = config.GeneralSetting.GameStoresSettings;
            if (String.IsNullOrEmpty(GameStores.GameStoresAPIStore) || String.IsNullOrEmpty(GameStores.GameStoresIDStore))
            {
                PrintWarning("Магазин GameStores не настроен! Невозможно выдать баланс пользователю");
                return;
            }
            webrequest.Enqueue($"https://gamestores.ru/api?shop_id={GameStores.GameStoresIDStore}&secret={GameStores.GameStoresAPIStore}&action=moneys&type=plus&steam_id={userID}&amount={Balance}&mess={GameStores.GameStoresMessage}", null, (i, s) =>
            {
                BasePlayer player = BasePlayer.FindByID(userID);
                if (i != 200) { }
                if (s.Contains("success")) return;
                if (s.Contains("fail"))
                {
                    Puts($"Пользователь {userID} не авторизован в магазине");
                    return;
                }
            }, this);
        }

        #endregion

        #region Configuration
        private static Configuration config = new Configuration();
        private class Configuration
        {
            [JsonProperty("Настройка дней")]
            public List<DaySetting> Days = new List<DaySetting>();
            [JsonProperty("Настройка плагина")]
            public GeneraldSettings GeneralSetting = new GeneraldSettings();
            [JsonProperty("Настройка интерфейса")]
            public InterfaceSettings InterfaceSetting = new InterfaceSettings();

            #region GeneralSetting
            public class GeneraldSettings
            {
                [JsonProperty("MoscovOVH : Включить использование магазина(Должен быть включен обмен валют)")]
                public bool MoscovOvhUse;
                [JsonProperty("GameStores : Включить использование магазина(Должен быть включен обмен валют)")]
                public bool GameStoreshUse;
                [JsonProperty("GameStores : Настройки магазина GameStores")]
                public GameStores GameStoresSettings = new GameStores();
                [JsonProperty("IQChat : Настройки чата")]
                public ChatSetting ChatSettings = new ChatSetting();
                internal class ChatSetting
                {
                    [JsonProperty("IQChat : Кастомный префикс в чате")]
                    public string CustomPrefix;
                    [JsonProperty("IQChat : Кастомный аватар в чате(Если требуется)")]
                    public string CustomAvatar;
                    [JsonProperty("IQChat : Использовать UI уведомления")]
                    public bool UIAlertUse;
                }
                internal class GameStores
                {
                    [JsonProperty("API Магазина(GameStores)")]
                    public string GameStoresAPIStore;
                    [JsonProperty("ID Магазина(GameStores)")]
                    public string GameStoresIDStore;
                    [JsonProperty("Сообщение в магазин при выдаче баланса(GameStores)")]
                    public string GameStoresMessage;
                }
            }

            #endregion

            #region DaysSettings
            internal class DaySetting
            {
                [JsonProperty("Настройка награды")]
                public List<RewardSetting> Rewards = new List<RewardSetting>();
                [JsonProperty("Ссылка на картинку")]
                public string ImageLink;
                [JsonProperty("Ссылка на картинку в случае,если награда взята(Галочка)")]
                public string ImageLinkAccess;
                [JsonProperty("День")]
                public string Day;
                internal class RewardSetting
                {
                    [JsonProperty("Использовать предметы RUST'a")]
                    public bool UseItem;
                    [JsonProperty("Использовать команды")]
                    public bool UseCommand;
                    [JsonProperty("Использовать баланс на магазин")]
                    public bool UseStores;
                    [JsonProperty("Использовать валюты с IQEconomic.Картинка будет подставляться с плагина сама(Если есть плагин IQEconomic)")]
                    public bool UseIQEconomic;
                    [JsonProperty("Использовать кейсы с IQCases.Картинка будет подставляться с плагина сама(Если есть)")]
                    public bool UseIQCases;
                    [JsonProperty("Настройка предметов RUST'a")]
                    public List<ItemSetting> ItemSettings = new List<ItemSetting>();
                    [JsonProperty("Ссылка на картинку для набора предметов RUST'a")]
                    public string PNGItemRust;
                    [JsonProperty("Сколько баланса выдавать в магазин")]
                    public int CountMoneyStore;
                    [JsonProperty("Ссылка на картинку для иконки баланса с магазина")]
                    public string PNGStoreBalance;
                    [JsonProperty("Настройка IQCases(Если такой плагин имеется)")]
                    public IQCasesSetting IQCasesSettings = new IQCasesSetting();
                    [JsonProperty("Сколько монет выдавать IQEconomic(Если такой плагин имеется)")]
                    public int AmountEconomic;
                    [JsonProperty("Настройка команды")]
                    public CommandSetting CommandSettings = new CommandSetting();
                    internal class ItemSetting
                    {
                        [JsonProperty("DisplayName (Если требуется для кастомного предмета,в ином случае оставляйте пустым)")]
                        public string DisplayName;
                        [JsonProperty("Shortname")]
                        public string Shortname;
                        [JsonProperty("SkinID")]
                        public ulong SkinID;
                        [JsonProperty("Количество")]
                        public int Amount;
                    }
                    internal class IQCasesSetting
                    {
                        [JsonProperty("Ключ от кейса(к примеру freecase)")]
                        public string KeyCase;
                        [JsonProperty("Количество")]
                        public int Amount;
                    }
                    internal class CommandSetting
                    {
                        [JsonProperty("Команда")]
                        public string Command;
                        [JsonProperty("Картинка для команды")]
                        public string CommandPNG;
                    }
                }
            }
            #endregion

            #region InterfaceSettings
            internal class InterfaceSettings
            {
                [JsonProperty("Ссылка на задний фон")]
                public string BackgroundURL;
                [JsonProperty("Включить задний фон")]
                public bool UseBackground;
            }
            #endregion

            public static Configuration GetNewConfiguration()
            {
                return new Configuration
                {
                    #region GeneralSettings
                    GeneralSetting = new GeneraldSettings
                    {
                        GameStoreshUse = false,
                        MoscovOvhUse = true,
                        GameStoresSettings = new GeneraldSettings.GameStores
                        {
                            GameStoresAPIStore = "",
                            GameStoresIDStore = "",
                            GameStoresMessage = "",
                        },
                        ChatSettings = new GeneraldSettings.ChatSetting
                        {
                            UIAlertUse = false,
                            CustomAvatar = "",
                            CustomPrefix = ""
                        }
                    },
                    #endregion

                    #region RewardSettings

                    Days = new List<DaySetting>
                    {
                        new DaySetting
                        {
                            Day = "1 ДЕНЬ",
                            ImageLinkAccess = "https://i.imgur.com/8A7OQ4X.png",
                            ImageLink = "https://i.imgur.com/6zWWX2N.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = false,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = false,
                                    UseStores = false,
                                    UseIQCases = false,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {

                                    }
                                },
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = false,
                                    UseItem = true,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = false,
                                    UseStores = false,
                                    UseIQCases = false,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                },
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = false,
                                    UseItem = false,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = true,
                                    UseStores = false,
                                    UseIQCases = false,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {

                                    }
                                },
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = false,
                                    UseItem = false,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = false,
                                    UseStores = false,
                                    UseIQCases = true,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {

                                    }
                                }
                            }
                        },
                        new DaySetting
                        {
                            Day = "2 ДЕНЬ",
                            ImageLink = "https://i.imgur.com/OqPXvRh.png",
                            ImageLinkAccess = "https://i.imgur.com/66fsczj.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = false,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = false,
                                    UseStores = true,
                                    UseIQCases = false,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                }
                            }
                        },
                        new DaySetting
                        {
                            Day = "3 ДЕНЬ",
                            ImageLink = "https://i.imgur.com/DJR1xPh.png",
                            ImageLinkAccess = "https://i.imgur.com/mCXhiap.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = true,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = true,
                                    UseStores = true,
                                    UseIQCases = true,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                }
                            }
                        },
                        new DaySetting
                        {
                            Day = "4 ДЕНЬ",
                            ImageLink = "https://i.imgur.com/p2Xgdog.png",
                            ImageLinkAccess = "https://i.imgur.com/ffdLwcr.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = true,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = true,
                                    UseStores = true,
                                    UseIQCases = true,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                }
                            }
                        },
                        new DaySetting
                        {
                            Day = "5 ДЕНЬ",
                            ImageLink = "https://i.imgur.com/XO3xVoZ.png",
                            ImageLinkAccess = "https://i.imgur.com/Kp90WoJ.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = true,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = true,
                                    UseStores = true,
                                    UseIQCases = true,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                }
                            }
                        },
                        new DaySetting
                        {
                            Day = "6 ДЕНЬ",
                            ImageLink = "https://i.imgur.com/L9GrCmr.png",
                            ImageLinkAccess = "https://i.imgur.com/t9kh9No.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = true,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = true,
                                    UseStores = true,
                                    UseIQCases = true,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                }
                            }
                        },
                        new DaySetting
                        {
                            Day = "7 ДЕНЬ",
                            ImageLink = "https://i.imgur.com/iehQzIo.png",
                            ImageLinkAccess = "https://i.imgur.com/LoV71NL.png",
                            Rewards = new List<DaySetting.RewardSetting>
                            {
                                new DaySetting.RewardSetting
                                {
                                    UseCommand = true,
                                    UseItem = false,
                                    PNGItemRust = "https://i.imgur.com/4valKsh.png",
                                    PNGStoreBalance = "https://i.imgur.com/Pe2VmPZ.png",
                                    UseIQEconomic = false,
                                    UseStores = false,
                                    UseIQCases = false,
                                    AmountEconomic = 10,
                                    CountMoneyStore = 10,
                                    CommandSettings = new DaySetting.RewardSetting.CommandSetting
                                    {
                                        Command = "say 123 %STEAMID%",
                                        CommandPNG = "https://i.imgur.com/n6Pyc5F.png",
                                    },
                                    IQCasesSettings = new DaySetting.RewardSetting.IQCasesSetting
                                    {
                                        KeyCase = "freecase",
                                        Amount = 1,
                                    },
                                    ItemSettings = new List<DaySetting.RewardSetting.ItemSetting>
                                    {
                                       new DaySetting.RewardSetting.ItemSetting
                                       {
                                           DisplayName = "",
                                           Shortname = "rifle.ak",
                                           Amount = 1,
                                           SkinID = 0,
                                       },
                                        new DaySetting.RewardSetting.ItemSetting
                                        {
                                            DisplayName = "",
                                            Shortname = "scrap",
                                            Amount = 100,
                                            SkinID = 0,
                                        },
                                         new DaySetting.RewardSetting.ItemSetting
                                         {
                                             DisplayName = "Калаш убийца",
                                             Shortname = "rifle.ak",
                                             Amount = 1,
                                             SkinID = 1337,
                                         },
                                    }
                                }
                            }
                        },
                    },

                    #endregion
                        
                    #region InterfaceSetting
                    InterfaceSetting = new InterfaceSettings
                    {
                        BackgroundURL = "https://i.imgur.com/VfYWeo4.png",
                        UseBackground = true,
                    }
                    #endregion
                };
            }
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();
            try
            {
                config = Config.ReadObject<Configuration>();
                if (config == null) LoadDefaultConfig();
            }
            catch
            {
                PrintWarning($"Ошибка чтения #57 конфигурации 'oxide/config/{Name}', создаём новую конфигурацию!!");
                LoadDefaultConfig();
            }

            NextTick(SaveConfig);
        }

        protected override void LoadDefaultConfig() => config = Configuration.GetNewConfiguration();
        protected override void SaveConfig() => Config.WriteObject(config);
        #endregion

        #region Data
        [JsonProperty("Дата с днями игроков")]
        public Dictionary<ulong, Dictionary<int, bool>> DataPlayer = new Dictionary<ulong, Dictionary<int, bool>>();

        void ReadData()
        {
            DataPlayer = Oxide.Core.Interface.Oxide.DataFileSystem.ReadObject<Dictionary<ulong, Dictionary<int, bool>>>("IQDailyStep/IQUser");
        }
        void WriteData() {
            Oxide.Core.Interface.Oxide.DataFileSystem.WriteObject("IQDailyStep/IQUser", DataPlayer);
        }
        void RegisteredDataUser(BasePlayer player)
        {
            if (!DataPlayer.ContainsKey(player.userID))
                DataPlayer.Add(player.userID, new Dictionary<int, bool>
                {
                    [DateTime.Now.Day] = false,
                    [DateTime.Now.AddDays(1).Day] = false,
                    [DateTime.Now.AddDays(2).Day] = false,
                    [DateTime.Now.AddDays(3).Day] = false,
                    [DateTime.Now.AddDays(4).Day] = false,
                    [DateTime.Now.AddDays(5).Day] = false,
                    [DateTime.Now.AddDays(6).Day] = false,
                });
            else
            {
                if (!DataPlayer[player.userID].ContainsKey(DateTime.Now.Day))
                {
                    DataPlayer.Remove(player.userID);
                    DataPlayer.Add(player.userID, new Dictionary<int, bool>
                    {
                        [DateTime.Now.Day] = false,
                        [DateTime.Now.AddDays(1).Day] = false,
                        [DateTime.Now.AddDays(2).Day] = false,
                        [DateTime.Now.AddDays(3).Day] = false,
                        [DateTime.Now.AddDays(4).Day] = false,
                        [DateTime.Now.AddDays(5).Day] = false,
                        [DateTime.Now.AddDays(6).Day] = false,
                    });
                    Oxide.Core.Interface.Oxide.DataFileSystem.WriteObject("IQDailyStep/IQUser", DataPlayer);

                    return;
                }

                if (DataPlayer[player.userID].Count(x => x.Value == true) >= 1)
                {
                    int BackDay = DateTime.Now.Day - 1;
                    if (DataPlayer[player.userID].ContainsKey(BackDay))// ?????????????????
                        if (DataPlayer[player.userID][BackDay] == false)
                        {
                            DataPlayer.Remove(player.userID);
                            return;
                        }
                }

                if (DataPlayer[player.userID][DateTime.Now.Day])
                    return;
            }
        }

        #endregion

        #region Command

        [ChatCommand("day")]
        void DayilyMenuOpen(BasePlayer player)
        {
            Interface_Daily(player);
        }

        List<ulong> StopSpam = new List<ulong>();
        [ConsoleCommand("daily")]
        void ConsoleCommandDayTake(ConsoleSystem.Arg arg)
        {
            BasePlayer player = arg.Player();
            switch(arg.Args[0].ToLower())
            {
                case "take":
                    {
                        if (StopSpam.Contains(player.userID)) return;
                        int Day = Convert.ToInt32(arg.Args[1]);
                        int ThisDay = Convert.ToInt32(arg.Args[2]);
                        Interface_Days_Take(player, Day, ThisDay);
                        StopSpam.Add(player.userID);
                        break;
                    }
            }
        }

        #endregion
            
        #region Hooks
        void OnPlayerConnected(BasePlayer player)
        {
            RegisteredDataUser(player);
            Interface_Daily(player);
        }

        private void OnServerInitialized()
        {
            ReadData();
            //foreach (var p in BasePlayer.activePlayerList)
            //    OnPlayerConnected(p);
            WriteData();
            AddAllImage();
        }

        void Unload()
        {
            foreach (var p in BasePlayer.activePlayerList)
                CuiHelper.DestroyUi(p, UI_MAIN_UI_STEP);

            UI_MAIN_UI_STEP = null;
            UI_MAIN_UI_STEP_TAKE = null;
            WriteData();
        }
        #endregion

        #region Metods

        void GiveReward(BasePlayer player,int Day)
        {
            var DaysReward = config.Days[Day].Rewards;
            for(int i = 0; i < DaysReward.Count; i++)
            {
                var Reward = DaysReward[i];

                if(Reward.UseCommand)
                    rust.RunServerCommand(Reward.CommandSettings.Command.Replace("%STEAMID%", player.UserIDString));
                if(Reward.UseItem)
                {
                    for(int j = 0; j < Reward.ItemSettings.Count; j++)
                    {
                        var RewardItem = Reward.ItemSettings[j];
                        var ItemReward = ItemManager.CreateByName(RewardItem.Shortname, RewardItem.Amount, RewardItem.SkinID);
                        if (!string.IsNullOrEmpty(RewardItem.DisplayName))
                            ItemReward.name = RewardItem.DisplayName;
                        player.GiveItem(ItemReward);
                    }
                }
                if (Reward.UseIQEconomic)
                    IQEconomicBalanceSet(player.userID, Reward.AmountEconomic);
                if(Reward.UseIQCases)
                {
                    var IQCases = Reward.IQCasesSettings;
                    IQCasesGiveCase(player.userID, IQCases.KeyCase, IQCases.Amount);
                }
                if (Reward.UseStores)
                {
                    var General = config.GeneralSetting;
                    if(General.GameStoreshUse)
                        GameStoresBalanceSet(player.userID, Reward.CountMoneyStore);
                    if(General.MoscovOvhUse)
                        MoscovOVHBalanceSet(player.userID, Reward.CountMoneyStore);
                }
            }
        }
        #endregion

        #region UI
        public stati
// ... [Code preview truncated due to length. Full source in attached file] ...

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

Другие ресурсы пользователя 15FPS

Сверху