C#:
using System;
using System.Collections.Generic;
using ConVar;
using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using UnityEngine;
namespace Oxide.Plugins {
[Info("IQPlagueSkill", "SkuliDropek", "1.0.5")]
[Description("Скилл система новых веков")]
class IQPlagueSkill : RustPlugin {
/// <summary>
/// Обновление 1.0.х
/// - Добавил мультиязычность в кофнигурации и датафайле
/// - Добавлена проверка на null в методе RegisteredData()
/// - Изменена проверка на кланы, добавлена поддержка еще одного плагина на кланы
/// - Корректировка метода на выдачу ДНК
/// </summary>
#region Vars
private const Boolean LanguageEn = false;
public static string PermissionsPatogenArmor = "iqplagueskill.patogenarmory";
public enum TypeSkill {
Active, Neutral
}
#endregion
#region Reference
[PluginReference]
Plugin ImageLibrary, IQChat, Friends, Clans, Battles, Duel, IQEconomic, IQHeadReward, XDNotifications, IQCraftSystem, IQKits;
private void AddNotify(BasePlayer player, string title, string description, string command = "", string cmdyes = "", string cmdno = "") {
if (!XDNotifications) return;
var Setting = config.ReferenceSettings.XDNotificationsSettings;
Interface.Oxide.CallHook("AddNotify", player, title, description, Setting.Color, Setting.AlertDelete, Setting.SoundEffect, command, cmdyes, cmdno);
}
#region Image Library
public string GetImage(string shortname, ulong skin = 0) => (string)ImageLibrary?.Call("GetImage", shortname, skin);
public bool AddImage(string url, string shortname, ulong skin = 0) => (bool)ImageLibrary?.Call("AddImage", url, shortname, skin);
public void SendImage(BasePlayer player, string imageName, ulong imageId = 0) => ImageLibrary?.Call("SendImage", player, imageName, imageId);
public bool HasImage(string imageName) => (bool)ImageLibrary?.Call("HasImage", imageName);
void LoadedImage() {
var Interface = config.InterfaceSettings.IconsPNG;
#region Interface Panel
if (!HasImage($"BACKGROUND_PLAGUES_{Interface.BackgroundPNG}")) AddImage(Interface.BackgroundPNG, $"BACKGROUND_PLAGUES_{Interface.BackgroundPNG}");
if (!HasImage($"BACKGROUND_PLAGUE_TAKE_PANEL_{Interface.BackgroundTakePanel}")) AddImage(Interface.BackgroundTakePanel, $"BACKGROUND_PLAGUE_TAKE_PANEL_{Interface.BackgroundTakePanel}");
if (!HasImage($"BACKGROUND_PLAGUE_TAKE_BUTTON_{Interface.ButtonTakeSkill}")) AddImage(Interface.ButtonTakeSkill, $"BACKGROUND_PLAGUE_TAKE_BUTTON_{Interface.ButtonTakeSkill}");
if (!HasImage($"BACKGROUND_PLAGUE_SKILL_BLOCK_{Interface.BlockSkill}")) AddImage(Interface.BlockSkill, $"BACKGROUND_PLAGUE_SKILL_BLOCK_{Interface.BlockSkill}");
if (!HasImage($"BACKGROUND_PLAGUE_SKILL_AVAILABLE_{Interface.AvailableSkill}")) AddImage(Interface.AvailableSkill, $"BACKGROUND_PLAGUE_SKILL_AVAILABLE_{Interface.AvailableSkill}");
if (!HasImage($"BACKGROUND_PLAGUE_SKILL_RECEIVED_{Interface.ReceivedSkill}")) AddImage(Interface.ReceivedSkill, $"BACKGROUND_PLAGUE_SKILL_RECEIVED_{Interface.ReceivedSkill}");
if (!HasImage($"BACKGROUND_PLAGUE_NEUTRAL_SKILL_BLOCK_{Interface.NeutralBlockSkill}")) AddImage(Interface.NeutralBlockSkill, $"BACKGROUND_PLAGUE_NEUTRAL_SKILL_BLOCK_{Interface.NeutralBlockSkill}");
if (!HasImage($"BACKGROUND_PLAGUE_NEUTRAL_SKILL_AVAILABLE_{Interface.NeutralAvailableSkill}")) AddImage(Interface.NeutralAvailableSkill, $"BACKGROUND_PLAGUE_NEUTRAL_SKILL_AVAILABLE_{Interface.NeutralAvailableSkill}");
if (!HasImage($"BACKGROUND_PLAGUE_NEUTRAL_SKILL_RECEIVED_{Interface.NeutralReceivedSkill}")) AddImage(Interface.NeutralReceivedSkill, $"BACKGROUND_PLAGUE_NEUTRAL_SKILL_RECEIVED_{Interface.NeutralReceivedSkill}");
try {
webrequest.Enqueue($"http://rust.skyplugins.ru/getimage/BACKGROUND_PLAGUE/12/IMAGELIBRARY_{Name}_{Author}_14321", null, (i, s) => {
if (i != 200) {
}
if (s.Contains("success")) {
AddImage(i.ToString(), $"{i.ToString()}_BACKGROUND_PLAGUE", ulong.Parse($"14321"));
}
if (s.Contains("fail")) {
return;
}
}
, this);
}
catch (Exception ex) {
}
#endregion
#region Skills
var Skill = config.SkillSettings;
if (String.IsNullOrWhiteSpace(Skill.AnabioticsSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_ANABIOTICS_{Skill.AnabioticsSettings.GeneralSettings.PNG}")) AddImage(Skill.AnabioticsSettings.GeneralSettings.PNG, $"SKILL_ANABIOTICS_{Skill.AnabioticsSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.AnimalFriendsSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_ANIMALFRIENDS_{Skill.AnimalFriendsSettings.GeneralSettings.PNG}")) AddImage(Skill.AnimalFriendsSettings.GeneralSettings.PNG, $"SKILL_ANIMALFRIENDS_{Skill.AnimalFriendsSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.CrafterSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_CRAFTER_{Skill.CrafterSettings.GeneralSettings.PNG}")) AddImage(Skill.CrafterSettings.GeneralSettings.PNG, $"SKILL_CRAFTER_{Skill.CrafterSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.GatherFriendsSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_GATHERFRIENDS_{Skill.GatherFriendsSettings.GeneralSettings.PNG}")) AddImage(Skill.GatherFriendsSettings.GeneralSettings.PNG, $"SKILL_GATHERFRIENDS_{Skill.GatherFriendsSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.GenesisGensSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_GENESISGENS_{Skill.GenesisGensSettings.GeneralSettings.PNG}")) AddImage(Skill.GenesisGensSettings.GeneralSettings.PNG, $"SKILL_GENESISGENS_{Skill.GenesisGensSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.MetabolismSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_METABOLISM_{Skill.MetabolismSettings.GeneralSettings.PNG}")) AddImage(Skill.MetabolismSettings.GeneralSettings.PNG, $"SKILL_METABOLISM_{Skill.MetabolismSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.MilitarySettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_MILITARY_{Skill.MilitarySettings.GeneralSettings.PNG}")) AddImage(Skill.MilitarySettings.GeneralSettings.PNG, $"SKILL_MILITARY_{Skill.MilitarySettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.MinerSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_MINER_{Skill.MinerSettings.GeneralSettings.PNG}")) AddImage(Skill.MinerSettings.GeneralSettings.PNG, $"SKILL_MINER_{Skill.MinerSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.PatogenAmrorySettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_PATOGENARMORY_{Skill.PatogenAmrorySettings.GeneralSettings.PNG}")) AddImage(Skill.PatogenAmrorySettings.GeneralSettings.PNG, $"SKILL_PATOGENARMORY_{Skill.PatogenAmrorySettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.PatogenKillSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_PATOGENKILL_{Skill.PatogenKillSettings.GeneralSettings.PNG}")) AddImage(Skill.PatogenKillSettings.GeneralSettings.PNG, $"SKILL_PATOGENKILL_{Skill.PatogenKillSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.RegenerationSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_REGENERATION_{Skill.RegenerationSettings.GeneralSettings.PNG}")) AddImage(Skill.RegenerationSettings.GeneralSettings.PNG, $"SKILL_REGENERATION_{Skill.RegenerationSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.ThickSkinSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_THICKSSKIN_{Skill.ThickSkinSettings.GeneralSettings.PNG}")) AddImage(Skill.ThickSkinSettings.GeneralSettings.PNG, $"SKILL_THICKSSKIN_{Skill.ThickSkinSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.WoundedShakeSettings.GeneralSettings.Sprite)) if (!HasImage($"SKILL_WOUNDED_{Skill.WoundedShakeSettings.GeneralSettings.PNG}")) AddImage(Skill.WoundedShakeSettings.GeneralSettings.PNG, $"SKILL_WOUNDED_{Skill.WoundedShakeSettings.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.NeutralSkills.SkillIQHeadRewards.GeneralSettings.Sprite)) if (!HasImage($"SKILL_IQHEAD_REWARD_{Skill.NeutralSkills.SkillIQHeadRewards.GeneralSettings.PNG}")) AddImage(Skill.NeutralSkills.SkillIQHeadRewards.GeneralSettings.PNG, $"SKILL_IQHEAD_REWARD_{Skill.NeutralSkills.SkillIQHeadRewards.GeneralSettings.PNG}");
if (String.IsNullOrWhiteSpace(Skill.NeutralSkills.IQCraftSystemAdvancedCrafts.GeneralSettings.Sprite)) if (!HasImage($"SKILL_IQCRAFTSYSTEM_{Skill.NeutralSkills.IQCraftSystemAdvancedCrafts.GeneralSettings.PNG}")) AddImage(Skill.NeutralSkills.IQCraftSystemAdvancedCrafts.GeneralSettings.PNG, $"SKILL_IQCRAFTSYSTEM_{Skill.NeutralSkills.IQCraftSystemAdvancedCrafts.GeneralSettings.PNG}");
#endregion
}
void CahedImages(BasePlayer player) {
var Interface = config.InterfaceSettings.IconsPNG;
var Skill = config.SkillSettings;
#region Interface Panel
SendImage(player, $"BACKGROUND_PLAGUES_{Interface.BackgroundPNG}");
SendImage(player, $"BACKGROUND_PLAGUE_TAKE_PANEL_{Interface.BackgroundTakePanel}");
SendImage(player, $"BACKGROUND_PLAGUE_TAKE_BUTTON_{Interface.ButtonTakeSkill}");
SendImage(player, $"BACKGROUND_PLAGUE_SKILL_BLOCK_{Interface.BlockSkill}");
SendImage(player, $"BACKGROUND_PLAGUE_SKILL_AVAILABLE_{Interface.AvailableSkill}");
SendImage(player, $"BACKGROUND_PLAGUE_SKILL_RECEIVED_{Interface.ReceivedSkill}");
SendImage(player, $"BACKGROUND_PLAGUE_NEUTRAL_SKILL_BLOCK_{Interface.NeutralBlockSkill}");
SendImage(player, $"BACKGROUND_PLAGUE_NEUTRAL_SKILL_AVAILABLE_{Interface.NeutralAvailableSkill}");
SendImage(player, $"BACKGROUND_PLAGUE_NEUTRAL_SKILL_RECEIVED_{Interface.NeutralReceivedSkill}");
#endregion
#region Skills
SendImage(player, $"SKILL_ANABIOTICS_{Skill.AnabioticsSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_ANIMALFRIENDS_{Skill.AnimalFriendsSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_CRAFTER_{Skill.CrafterSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_GATHERFRIENDS_{Skill.GatherFriendsSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_GENESISGENS_{Skill.GenesisGensSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_METABOLISM_{Skill.MetabolismSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_MILITARY_{Skill.MilitarySettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_MINER_{Skill.MinerSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_PATOGENARMORY_{Skill.PatogenAmrorySettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_PATOGENKILL_{Skill.PatogenKillSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_REGENERATION_{Skill.RegenerationSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_THICKSSKIN_{Skill.ThickSkinSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_WOUNDED_{Skill.WoundedShakeSettings.GeneralSettings.PNG}");
SendImage(player, $"SKILL_IQHEAD_REWARD_{Skill.NeutralSkills.SkillIQHeadRewards.GeneralSettings.PNG}");
SendImage(player, $"SKILL_IQCRAFTSYSTEM_{Skill.NeutralSkills.IQCraftSystemAdvancedCrafts.GeneralSettings.PNG}");
#endregion
}
#endregion
#region IQChat
public void SendChat(BasePlayer player, string Message, Chat.ChatChannel channel = Chat.ChatChannel.Global) {
var Chat = config.ReferenceSettings.IQChatSettings;
if (IQChat) IQChat?.Call("API_ALERT_PLAYER", player, Message, Chat.CustomPrefix, Chat.CustomAvatar);
else player.SendConsoleCommand("chat.add", channel, 0, Message);
}
#endregion
#region Block Farm
public bool IsFriends(ulong userID, ulong targetID) {
if (Friends) return (bool)Friends?.Call("HasFriend", userID, targetID);
else return false;
}
private bool IsClans(String userID, String targetID) {
if (Clans) {
String TagUserID = (String)Clans?.Call("GetClanOf", userID);
String TagTargetID = (String)Clans?.Call("GetClanOf", targetID);
if (TagUserID == null && TagTargetID == null) return false;
return (bool)(TagUserID == TagTargetID);
}
else return false;
}
public bool IsDuel(ulong userID) {
if (Battles) return (bool)Battles?.Call("IsPlayerOnBattle", userID);
else if (Duel) return (bool)Duel?.Call("IsPlayerOnActiveDuel", BasePlayer.FindByID(userID));
else return false;
}
#endregion
#region IQEconomic
int GetBalanceUser(ulong UserID) => (int)(IQEconomic?.Call("API_GET_BALANCE", UserID));
void RemoveBalanceUser(ulong UserID, int Balance) => IQEconomic?.Call("API_REMOVE_BALANCE", UserID, Balance);
#endregion
#endregion
#region Data
[JsonProperty(LanguageEn ? "user Information and their DNA" : "Информация пользователях и их ДНК")]
public Dictionary<ulong, int> DataInformation = new Dictionary<ulong, int>();
[JsonProperty(LanguageEn ? "information about user skills" : "Информация о скиллах пользователей")]
public Dictionary<ulong, InformationSkills> DataSkills = new Dictionary<ulong, InformationSkills>();
public class InformationSkills {
[JsonProperty(LanguageEn ? "Miner" : "Шахтер")]
public bool Miner;
[JsonProperty(LanguageEn ? "Regeneration" : "Регенерация")]
public bool Regeneration;
[JsonProperty(LanguageEn ? "Military" : "Военный")]
public bool Military;
[JsonProperty(LanguageEn ? "Skin" : "Кожа")]
public bool ThickSkin;
[JsonProperty(LanguageEn ? "Spirit" : "Дух")]
public bool WoundedShake;
[JsonProperty(LanguageEn ? "Metabolism" : "Метаболизм")]
public bool Metabolism;
[JsonProperty(LanguageEn ? "pathogen Protection" : "Защита от патогена")]
public bool PatogenAmrory;
[JsonProperty(LanguageEn ? "the Genesis gene" : "Генезиз ген")]
public bool GenesisGens;
[JsonProperty(LanguageEn ? "Unity with animals" : "Единство с животными")]
public bool AnimalFriends;
[JsonProperty(LanguageEn ? "Unity with nature" : "Единство с природой")]
public bool GatherFriends;
[JsonProperty(LanguageEn ? "Anabiotics" : "Анабиотики")]
public bool Anabiotics;
[JsonProperty(LanguageEn ? "Crafter" : "Крафтер")]
public bool Crafter;
[JsonProperty(LanguageEn ? "IQHeadReward" : "IQHeadReward")]
public bool IQHeadReward;
[JsonProperty(LanguageEn ? "IQCraftSystem: Advanced Crafter" : "IQCraftSystem : Продвинутый крафтер")]
public bool IQCraftSystemAdvanced;
[JsonProperty(LanguageEn ? "IQKits: Reduced recharge" : "IQKits : Уменьшенная перезарядка")]
public bool IQKitsCooldownPercent;
[JsonProperty(LanguageEn ? "IQKits: Increased drop chance" : "IQKits : Увеличенный шанс выпадения")]
public bool IQKitsRareup;
[JsonProperty(LanguageEn ? "is there a pathogen" : "Имеется ли патоген")]
public bool PatogenAttack;
}
void ReadData() {
DataInformation = Oxide.Core.Interface.Oxide.DataFileSystem.ReadObject<Dictionary<ulong, int>>("IQPlagueSkill/InformationUser");
DataSkills = Oxide.Core.Interface.Oxide.DataFileSystem.ReadObject<Dictionary<ulong, InformationSkills>>("IQPlagueSkill/InformationSkills");
}
void WriteData() {
timer.Every(60f, () => {
Oxide.Core.Interface.Oxide.DataFileSystem.WriteObject("IQPlagueSkill/InformationUser", DataInformation);
Oxide.Core.Interface.Oxide.DataFileSystem.WriteObject("IQPlagueSkill/InformationSkills", DataSkills);
}
);
}
void RegisteredDataUser(BasePlayer player) {
if (player == null) return;
if (!DataInformation.ContainsKey(player.userID)) DataInformation.Add(player.userID, 0);
if (!DataSkills.ContainsKey(player.userID)) DataSkills.Add(player.userID, new InformationSkills {
Anabiotics = false, AnimalFriends = false, Crafter = false, GatherFriends = false, GenesisGens = false, Metabolism = false, Military = false, Miner = false, PatogenAmrory = false, PatogenAttack = false, Regeneration = false, ThickSkin = false, WoundedShake = false, IQHeadReward = false, IQCraftSystemAdvanced = false, IQKitsCooldownPercent = false, IQKitsRareup = false,
}
);
}
#endregion
#region Configuration
private static Configuration config = new Configuration();
private class Configuration {
[JsonProperty(LanguageEn ? "configuring the plugin" : "Настройка плагина")]
public GeneralSetting GeneralSettings = new GeneralSetting();
[JsonProperty(LanguageEn ? "configuring all skills" : "Настройка всех скиллов")]
public Skills SkillSettings = new Skills();
[JsonProperty(LanguageEn ? "configuring the interface" : "Настройка интерфейса")]
public InterfaceSetting InterfaceSettings = new InterfaceSetting();
[JsonProperty(LanguageEn ? "configuring compatibility with other plugins" : "Настройка совместимостей с другими плагинами")]
public ReferenceSetting ReferenceSettings = new ReferenceSetting();
[JsonProperty(LanguageEn ? "configuring getting DNA" : "Настройка получения ДНК")]
public FarmingDNK FarmingDNKS = new FarmingDNK();
#region Skills
internal class Skills {
[JsonProperty(LanguageEn ? "Allow viewing a skill without the required number of DNA" : "Разрешить просмотр навыка без нужного кол-во ДНК")]
public bool ShowSkillNotDNK;
[JsonProperty(LanguageEn ? "setting the miner skill (Increases the mining rate)" : "Настройка скилла шахтер(Увеличивает рейт добычи)")]
public Miner MinerSettings = new Miner();
[JsonProperty(LanguageEn ? "setting the regeneration skill(HP Regeneration after battle)" : "Настройка скилла регенерации(Регенирация ХП после боя)")]
public Regeneration RegenerationSettings = new Regeneration();
[JsonProperty(LanguageEn ? "skill setting(Reduces weapon wear)" : "Настройка скилла военный(Уменьшает изнашивания оружия)")]
public Military MilitarySettings = new Military();
[JsonProperty(LanguageEn ? "Hard skin skill setting (Protects from cold in winter biomes)" : "Настройка скилла Твердая кожа(Защищает от холода в зимних биомах)")]
public ThickSkin ThickSkinSettings = new ThickSkin();
[JsonProperty(LanguageEn ? "setting the skill Will not shake(Gives a chance to get up after a fall)" : "Настройка скилла Не поколебим(Дает шанс встать после падения)")]
public WoundedShake WoundedShakeSettings = new WoundedShake();
[JsonProperty(LanguageEn ? "setting up the skill Metabolism (when revived gives N values of satiety, HP, thirst)" : "Настройка скилла Метаболизм(При возраждении дает N значения сытности,хп,жажды)")]
public Metabolism MetabolismSettings = new Metabolism();
[JsonProperty(LanguageEn ? "configure spell Protection from a pathogen(one-time protection from the fungus Pathogen(If zarazhenie pathogen , a virus eventually destroys the skills of the player))" : "Настройка скилла Защита от патогена(Одноразовая защита от грибка Патоген(При заражаении патогеном , вирус - со временем разрушает скиллы игрока))")]
public PatogenAmrory PatogenAmrorySettings = new PatogenAmrory();
[JsonProperty(LanguageEn ? "setting up skill the Killing of a pathogen(one-time killing of the fungus,if the player was infected by a Pathogen)" : "Настройка скилла Убийство патогена(Одноразовое убийство грибка,если игрок заразился Патогеном)")]
public PatogenKill PatogenKillSettings = new PatogenKill();
[JsonProperty(LanguageEn ? "setting up skill the Genesis gene(Keeps the % of DNA at the end of a wipe)" : "Настройка скилла Генезиз ген(Сохраняет % ДНК в конце вайпа)")]
public GenesisGens GenesisGensSettings = new GenesisGens();
[JsonProperty(LanguageEn ? "setting up the Unity with nature skill (Adds the ability to get more DNA for animal prey)" : "Настройка скилла Единство с природой(Добавляет возможность получать больше ДНК за добычу животных)")]
public AnimalFriends AnimalFriendsSettings = new AnimalFriends();
[JsonProperty(LanguageEn ? "setting up the Unity with earth skill (Adds the ability to get more DNA for full resource extraction)" : "Настройка скилла Единство с землей(Добавляет возможность получать больше ДНК за полную добычу ресурса)")]
public GatherFriends GatherFriendsSettings = new GatherFriends();
[JsonProperty(LanguageEn ? "setting up the Anabiotics skill(Players will get more treatment from drugs)" : "Настройка скилла Анабиотики(Игроки будут получать больше лечения от препаратов)")]
public Anabiotics AnabioticsSettings = new Anabiotics();
[JsonProperty(LanguageEn ? "setting up the Crafter skill(crafting Speed increases)" : "Настройка скилла Крафтер(Скорость крафта увеличивается)")]
public Crafter CrafterSettings = new Crafter();
[JsonProperty(LanguageEn ? "setting up NEUTRAL skills" : "Настройка НЕЙТРАЛЬНЫХ навыков")]
public NeutralSkill NeutralSkills = new NeutralSkill();
#region Classes
#region NeutralClasses
internal class NeutralSkill {
[JsonProperty(LanguageEn ? "Increases crafting level to advanced opening the possibility to craft items with the advanced crafting condition" : "Увеличивает уровень крафта до продвинутого открывая возможность крафтить предметы с условием продвинутого крафта")]
public IQCraftSystemAdvancedCraft IQCraftSystemAdvancedCrafts = new IQCraftSystemAdvancedCraft();
[JsonProperty(LanguageEn ? "Increases the drop rate of items in the set" : "Увеличивает шанс выпадения предметов в наборе")]
public IQKitsRareSkill IQKitsRare = new IQKitsRareSkill();
[JsonProperty(LanguageEn ? "Reduces the cooldown of the skill" : "Уменьшает перезарядку навыков")]
public IQKitsCooldownPercenct IQKitsCooldown = new IQKitsCooldownPercenct();
[JsonProperty(LanguageEn ? "Iqheadreward setting (Description and setting in the plugin Iqheadreward)" : "Настройка IQHeadReward (Описание и настройка в плагине IQHeadReward)")]
public IQHeadReward SkillIQHeadRewards = new IQHeadReward();
internal class IQHeadReward {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
}
internal class IQCraftSystemAdvancedCraft {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
}
internal class IQKitsRareSkill {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how much % increase the chance of dropping items?" : "На сколько % увеличивать шанс выпадения предметов?")]
public int RareUP;
}
internal class IQKitsCooldownPercenct {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how much % should I reduce the set's cooldown?" : "На сколько % уменьшать перезарядку набора?")]
public int PercentDrop;
}
}
#endregion
internal class Miner {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how much to multiply rates(all at once)" : "На сколько умножать рейты(все сразу)")]
public float Rate;
[JsonProperty(LanguageEn ? "Use custom multipliers (true-Yes/false-no)" : "Использовать кастомные множители(true - да/false - нет)")]
public bool UseLists;
[JsonProperty(LanguageEn ? "Use custom multipliers([Shortname] = multiplier)" : "Использовать кастомные множители([Shortname] = множитель)")]
public Dictionary<string, float> CustomRate = new Dictionary<string, float>();
}
internal class Regeneration {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how Many lives to regenerate in a time interval" : "Сколько жизней регенерировать в промежуток времени")]
public int HealtRegeneration;
[JsonProperty(LanguageEn ? "how many seconds to regenerate a player" : "Раз в сколько секунд регенерировать игрока")]
public int RegenerationTimer;
}
internal class Military {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how many percent to reduce the wear of weapons(0-100%)" : "На сколько процентов снижать изнашивания оружий(0-100%)")]
public int PercentNoBroken;
}
internal class ThickSkin {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
}
internal class WoundedShake {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "Chance to get up when the player is put down" : "Шанс встать в момент когда игрока положат")]
public int Rare;
[JsonProperty(LanguageEn ? "how many seconds to raise the player when falling, if the chance is successful" : "Через сколько секунд поднимать игрока при падаение,если шанс успешен")]
public int RareStartTime;
[JsonProperty(LanguageEn ? "after successful triggering - take the skill(true-Yes/false-no)" : "После успешного срабатывания - забирать скилл(true - да/false - нет)")]
public bool DropSkill;
}
internal class Metabolism {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General configuration" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "How many HP will be when reviving" : "Сколько ХП будет при возрождениие")]
public int Health;
[JsonProperty(LanguageEn ? "how much Satiety will there be when reviving" : "Сколько Сытности будет при возрождении")]
public int Calories;
[JsonProperty(LanguageEn ? "how much Thirst will there be when reviving" : "Сколько Жажды будет при возрождении")]
public int Hydration;
[JsonProperty(LanguageEn ? "Chance to Wake up with these indicators" : "Шанс проснуться с данными показателями")]
public int RareMetabolisme;
[JsonProperty(LanguageEn ? "after successful triggering - take the skill(true-Yes/false-no)" : "После успешного срабатывания - забирать скилл(true - да/false - нет)")]
public bool DropSkill;
}
internal class PatogenAmrory {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
}
internal class PatogenKill {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
}
internal class GenesisGens {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "How much % of DNA to leave at the end of the wipe(will be counted from the amount spent on skills)0 - 100" : "Сколько % ДНК оставлять в конце вайпа(будет отсчитываться от затраченного количества на скиллы)0 - 100")]
public int PercentSave;
}
internal class AnimalFriends {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "Min : How much to give out" : "Min : Сколько выдавать ДНК")]
public int MinDNKAnimal;
[JsonProperty(LanguageEn ? "Max: How much to give out" : "Max : Сколько выдавать ДНК")]
public int MaxDNKAnimal;
[JsonProperty(LanguageEn ? "Use custom sheet(true-Yes/false-no)" : "Использовать кастомный лист(true - да/false - нет)")]
public bool UseLists;
[JsonProperty(LanguageEn ? "Custom list, how much to increase the amount of DNA for killing an animal [Animal] = setting" : "Кастомный лист ,на сколько увеличивать количество ДНК за убийство животного [Animal] = Настройка")]
public Dictionary<string, CustomSettings> AnimalsList = new Dictionary<string, CustomSettings>();
[JsonProperty(LanguageEn ? "Chance of getting additional DNA" : "Шанс получения дополнительного ДНК")]
public int RareAll;
[JsonProperty(LanguageEn ? "Animals from which DNA will fall" : "Животные с которых будет падать ДНК")]
public List<string> AnimalDetected = new List<string>();
internal class CustomSettings {
[JsonProperty(LanguageEn ? "Chance of getting additional DNA" : "Шанс получения дополнительного ДНК")]
public int Rare;
[JsonProperty(LanguageEn ? "Min : How much to give out?" : "Min : Сколько выдавать ДНК")]
public int MinDNKCustom;
[JsonProperty(LanguageEn ? "Max: How much to give out?" : "Max : Сколько выдавать ДНК")]
public int MaxDNKCustom;
}
}
internal class GatherFriends {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "Custom list, how much to increase the amount of DNA for full resource extraction [Shortname] = setting" : "Кастомный лист ,на сколько увеличивать количество ДНК за полную добычу ресурса [Shortname] = Настройка")]
public Dictionary<string, CustomSettings> GatherList = new Dictionary<string, CustomSettings>();
internal class CustomSettings {
[JsonProperty(LanguageEn ? "Chance of getting additional DNA" : "Шанс получения дополнительного ДНК")]
public int Rare;
[JsonProperty(LanguageEn ? "Min : How much to give out?" : "Min : Сколько выдавать ДНК")]
public int MinDNKCustom;
[JsonProperty(LanguageEn ? "Max: How much to give out?" : "Max : Сколько выдавать ДНК")]
public int MaxDNKCustom;
}
}
internal class Anabiotics {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how much to increase the number of HP for using medicine[Shortname] = Amount" : "На сколько увеличивать количество ХП за использование медицины[Shortname] = Amount")]
public Dictionary<string, int> AnabioticsList = new Dictionary<string, int>();
}
internal class Crafter {
[JsonProperty(LanguageEn ? "Enable the ability?(true-enabled/false-disabled)" : "Включить умение?(true - включено/false - выключено)")]
public bool SkillTurn;
[JsonProperty(LanguageEn ? "General setting" : "Общая настройка")]
public GeneralSettingsSkill GeneralSettings = new GeneralSettingsSkill();
[JsonProperty(LanguageEn ? "how many times to increase the crafting speed? (Example: initially 60 seconds, 3x magnification = 60/3 = 20)" : "В сколько раз увеличивать скорость крафта? (Пример : изначально 60 секунд, увеличение в 3 раза = 60/3 = 20)")]
public int CraftBoost;
}
internal class GeneralSettingsSkill {
[JsonProperty(LanguageEn ? "Display name" : "Отображаемое имя")]
public string DisplayName;
[JsonProperty(LanguageEn ? "skill Description" : "Описание скилла")]
public string Description;
[JsonProperty(LanguageEn ? "sprite for icon" : "Sprite для иконки")]
public string Sprite;
[JsonProperty(LanguageEn ? "PNG link for the icon(64x64).If you use this,the sprite will be ignored" : "PNG-ссылка для иконки(64х64).Если используете это,спрайт будет игнорироваться")]
public string PNG;
[JsonProperty(LanguageEn ? "price per study" : "Цена за изучение")]
public int PriceDNK;
}
#endregion
}
#endregion
#region Interface
internal class InterfaceSetting {
[JsonProperty(LanguageEn ? "configuring design elements" : "Настройка элементов дизайна")]
public Icons IconsPNG = new Icons();
[JsonProperty(LanguageEn ? "configuring basic elements" : "Настройка основных элементов")]
public General GeneralSettings = new General();
internal class Icons {
[JsonProperty(LanguageEn ? "PNG background link" : "Ссылка PNG на задний фон")]
public string BackgroundPNG;
[JsonProperty(LanguageEn ? "Link link to the blocked skill icon PNG" : "Ссылка ссылка на иконку заблокированного навыка PNG")]
public string BlockSkill;
[JsonProperty(LanguageEn ? "Link link to available skill icon PNG" : "Ссылка ссылка на иконку доступного навыка PNG")]
public string AvailableSkill;
[JsonProperty(LanguageEn ? "Link link to the learned skill icon PNG" : "Ссылка ссылка на иконку изученного навыка PNG")]
public string ReceivedSkill;
[JsonProperty(LanguageEn ? "Link to the button to get this skill(develop)" : "Ссылка на кнопку для получения данного скилла(развить)")]
public string ButtonTakeSkill;
[JsonProperty(LanguageEn ? "Link panel for learning the skill" : "Ссылка панель для изучения скилла")]
public string BackgroundTakePanel;
[JsonProperty(LanguageEn ? "Link link to the NEUTRAL blocked skill icon PNG" : "Ссылка ссылка на иконку НЕЙТРАЛЬНОГО заблокированного навыка PNG")]
public string NeutralBlockSkill;
[JsonProperty(LanguageEn ? "Link link to the NEUTRAL available skill icon PNG" : "Ссылка ссылка на иконку НЕЙТРАЛЬНОГО доступного навыка PNG")]
public string NeutralAvailableSkill;
[JsonProperty(LanguageEn ? "Link link to the NEUTRAL learned skill icon PNG" : "Ссылка ссылка на иконку НЕЙТРАЛЬНОГО изученного навыка PNG")]
public string NeutralReceivedSkill;
}
internal class General {
[JsonProperty(LanguageEn ? "text Color" : "Цвет текста")]
public string HexLabels;
[JsonProperty(LanguageEn ? "skill text color" : "Цвет текста навыков")]
public string HexLabelsSkill;
[JsonProperty(LanguageEn ? "skill description text Color" : "Цвет текста описания навыков")]
public string HexLabelTakePanel;
}
}
#endregion
#region Generals
internal class GeneralSetting {
[JsonProperty(LanguageEn ? "settings for automatic date clearing after VAPE" : "Настройки автоматической очисти даты после вайпа")]
public WipeContoller WipeContollers = new WipeContoller();
[JsonProperty(LanguageEn ? "managing the PATHOGEN virus" : "Управление вирусом ПАТОГЕН")]
public VirusPatogen VirusPatogens = new VirusPatogen();
internal class WipeContoller {
[JsonProperty(LanguageEn ? "Enable automatic date clearing after server wipe" : "Включить автоматическую очистку даты после вайпа сервера")]
public bool WipeDataUse;
[JsonProperty(LanguageEn ? "Cleanse skills of players after a wipe" : "Очищать скиллы игроков после вайпа")]
public bool WipeDataSkill;
}
internal class VirusPatogen {
[JsonProperty(LanguageEn ? "Enable pathogen virus(this virus will remove 1 random skill from the player after N amount of time,they will also have skills for healing and protection from infection)" : "Включить вирус-патоген(Данный вирус будет удалять у игрока 1 случайный навык через N количество времени,у них так же будут навыки на излечение и защиты от заражаения)")]
public bool UsePatogen;
[JsonProperty(LanguageEn ? "Chance of virus infection" : "Шанс заражения вирусом")]
public int RareInfected;
[JsonProperty(LanguageEn ? "time to start player infection(seconds)" : "Раз в сколько времени начинать инфекцию игроков(Секунды)")]
public int TimerInfectedVirus;
[JsonProperty(LanguageEn ? "How long to delete 1 random skill to the player(seconds)" : "Через сколько удалять 1 случайный навык игроку(секунды)")]
public int TimerRemoveSkill;
}
}
#endregion
#region Reference
internal class ReferenceSetting {
[JsonProperty(LanguageEn ? "Setting Up IQChat" : "Настройка IQChat")]
public IQChat IQChatSettings = new IQChat();
[JsonProperty(LanguageEn ? "Enable IQEconomic support (DNA will be replaced with the economy currency)" : "Включить поддержку IQEconomic(ДНК заменится на валюту экономики)")]
public bool IQEconomicUse;
[JsonProperty(LanguageEn ? "Enable support for IQHeadReward" : "Включить поддержку IQHeadReward")]
public bool IQHeadRewardUse;
[JsonProperty(LanguageEn ? "Enable support for IQCraftSystem" : "Включить поддержку IQCraftSystem")]
public bool IQCraftSystem;
[JsonProperty(LanguageEn ? "Enable support for IQKits" : "Включить поддержку IQKits")]
public bool IQKits;
[JsonProperty(LanguageEn ? "configuring XDNotifications" : "Настройка XDNotifications")]
public XDNotifications XDNotificationsSettings = new XDNotifications();
internal class XDNotifications {
[JsonProperty(LanguageEn ? "Enable XDNotifications support(Some notifications will come in XDNotifications)" : "Включить поддержку XDNotifications(Некоторые уведомления будут приходить в XDNotifications)")]
public bool UseXDNotifications;
[JsonProperty(LanguageEn ? "notification background Color (HEX)" : "Цвет заднего фона уведомления(HEX)")]
public string Color;
[JsonProperty(LanguageEn ? "How long before the notification is deleted" : "Через сколько удалиться уведомление")]
public int AlertDelete;
[JsonProperty(LanguageEn ? "Sound effect" : "Звуковой эффект")]
public string SoundEffect;
[JsonProperty(LanguageEn ? "Table Of Contents" : "Оглавление")]
public string Title;
}
internal class IQChat {
[JsonProperty(LanguageEn ? "IQChat: Custom prefix in chat" : "IQChat : Кастомный префикс в чате")]
public string CustomPrefix;
[JsonProperty(LanguageEn ? "IQChat : Custom avatar in the chat(If you want)" : "IQChat : Кастомный аватар в чате(Если требуется)")]
public string CustomAvatar;
}
}
#endregion
#region DNKFarming
internal class FarmingDNK {
[JsonProperty(LanguageEn ? "setting up getting DNA for killing players" : "Настройка получения ДНК за убийство игроков")]
public PlayerKill PlayerKills = new PlayerKill();
[JsonProperty(LanguageEn ? "setting up getting DNA for killing NPCs" : "Настройка получения ДНК за убийство NPC")]
public NPCKill NPCKills = new NPCKill();
[JsonProperty(LanguageEn ? "setting up getting DNA for killing animals" : "Настройка получения ДНК за убийство животных")]
public AnimalKill AnimalKills = new AnimalKill();
internal class PlayerKill {
[JsonProperty(LanguageEn ? "getting DNA for killing players" : "Получение ДНК за убийство игроков")]
public bool DNKKillUser;
[JsonProperty(LanguageEn ? "Parameters" : "Параметры")]
public GeneralSettingsFarming GeneralSettin
// ... [Code preview truncated due to length. Full source in attached file] ...