C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
/***********************************************************************************************************************/
/*** DO NOT edit this file! Edit the files under `oxide/config` and/or `oxide/lang`, created once plugin has loaded.***/
/*** Please note, support cannot be provided if the plugin has been modified.Please use a fresh copy if modified.***/
/***********************************************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Oxide.Core;
using Oxide.Core.Configuration;
using Oxide.Core.Plugins;
using Oxide.Core.Database;
using Oxide.Core.Libraries.Covalence;
using Oxide.Plugins.XPerienceEx;
using Oxide.Game.Rust.Cui;
using Rust;
using UnityEngine;
using Random = UnityEngine.Random;
using WebSocketSharp;
using Facepunch;
using Facepunch.Math;
using ConVar;
using System.IO;
using System.Net;
namespace Oxide.Plugins {
[Info("XPerience", "MACHIN3", "1.8.900")]
[Description("Player level system with xp, stats, and skills")]
public class XPerience : RustPlugin {
public const string version = "1.8.900";
#region Update Log
/*****************************************************
【 𝓜𝓐𝓒𝓗𝓘𝓝𝓔 】
Website: https://www.rustlevels.com/XPerience/
Discord: http://discord.rustlevels.com/
----------------------
✯ version 1.8.900
----------------------
✯ Fix for Rust May Update
✯ Minor changes made to the OnEntityTakeDamage hook
✯ Fixed Hunter Night Wildlife damge increase effecting non wildlife
✯ Possible fix for NRE errors in OnEntityTakeDamage hook
✯ Possible fix for NRE errors in OnCollectiblePickup hook
Notes:
* Please post bugs or issues in our discord.*****************************************************/
#endregion
#region Refrences
[PluginReference]
private readonly Plugin XPerienceAddon, WeaponMechanics, KillRecords, Economics, ServerRewards, ImageLibrary, TeaModifiers, BetterChat, ColouredChat, IQChat, Backpacks, RaidableBases, ZoneManager, PersonalAnimal, SkinBox, BuildingGrades, ItemRetriever, BotReSpawn, NeverWear, Cooking, EventHelper, SurvivalArena, MonumentOwner, Triangulation;
#endregion
#region Fields
private XPData _xpData;
private DailyData _dailyData;
private LootData _lootData;
private CorpseData _corpseData;
private HorseData _horseData;
private WeaponData _weaponData;
private BoatData _boatData;
private VehicleData _vehicleData;
private MinicopterData _minicopterData;
private SnowmobData _snowmobData;
private SmithyData _smithyData;
private ElectricianData _electricianData;
private HeliHits _heliHits;
private DynamicConfigFile _XPerienceData;
private DynamicConfigFile _DailyXPerienceData;
private DynamicConfigFile _LootContainData;
private DynamicConfigFile _CorpseContainData;
private DynamicConfigFile _HorseData;
private DynamicConfigFile _WeaponData;
private DynamicConfigFile _BoatData;
private DynamicConfigFile _VehicleData;
private DynamicConfigFile _MinicopterData;
private DynamicConfigFile _SnowmobData;
private DynamicConfigFile _SmithyData;
private DynamicConfigFile _ElectricianData;
private Dictionary<string, XPRecord> _xperienceCache;
private Dictionary<string, DailyRecord> _dailyxperienceCache;
private Dictionary<ulong, Loot> _lootCache;
private Dictionary<ulong, Corpse> _corpseCache;
private Dictionary<ulong, Horse> _horseCache;
private Dictionary<ulong, Weapon> _weaponCache;
private Dictionary<ulong, Boat> _boatCache;
private Dictionary<ulong, Vehicle> _vehicleCache;
private Dictionary<ulong, MiniCopterP> _minicopterCache;
private Dictionary<ulong, Snowmob> _snowmobCache;
private Dictionary<string, SmithyD> _smithyCache;
private Dictionary<ulong, ElectricianD> _electricianCache;
private Dictionary<ulong, Heli> _heliCache;
public Configuration config;
private static Configuration configData;
private static readonly RNGCryptoServiceProvider _generator = new RNGCryptoServiceProvider();
private const string Admin = "xperience.admin";
private const string VIP = "xperience.vip";
private const string PermMentality = "xperience.mentality";
private const string PermDexterity = "xperience.dexterity";
private const string PermMight = "xperience.might";
private const string PermCaptaincy = "xperience.captaincy";
private const string PermWeaponry = "xperience.weaponry";
private const string PermNinjary = "xperience.Ninjary";
private const string PermWoodCutter = "xperience.woodcutter";
private const string PermSmithy = "xperience.smithy";
private const string PermMiner = "xperience.miner";
private const string PermForager = "xperience.forager";
private const string PermHunter = "xperience.hunter";
private const string PermFisher = "xperience.fisher";
private const string PermCrafter = "xperience.crafter";
private const string PermFramer = "xperience.framer";
private const string PermMedic = "xperience.medic";
private const string PermScavenger = "xperience.scavenger";
private const string PermElectrician = "xperience.electrician";
private const string PermDemolitionist = "xperience.demolitionist";
private const string PermTamer = "xperience.tamer";
private const string PermXPBoost = "xperience.xpboost";
private readonly Hash<ulong, double> _notifyCooldowns = new Hash<ulong, double>();
private readonly Hash<ulong, double> _buildCooldowns = new Hash<ulong, double>();
private readonly Hash<ulong, double> _craftCooldowns = new Hash<ulong, double>();
private readonly Hash<ulong, int> _TopUIPage = new Hash<ulong, int>();
private Timer DashPanelTimer;
private Timer _helitracker;
private double CurrentTime => DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds;
private bool _isXPReady;
private bool _isRestart = true;
private int _imageLibraryCheck = 0;
private Dictionary<string, string> _xperienceImageList;
private Dictionary<string, string> _CheckImageList;
private Dictionary<string, string> _CheckImageListReload;
public static class RandomNumber {
private static readonly RNGCryptoServiceProvider _generator = new RNGCryptoServiceProvider();
public static int Between(int minimumValue, int maximumValue) {
byte[] randomNumber = new byte[1];
_generator.GetBytes(randomNumber);
double asciiValueOfRandomCharacter = Convert.ToDouble(randomNumber[0]);
double multiplier = Math.Max(0, (asciiValueOfRandomCharacter / 255d) - 0.00000000001d);
int range = maximumValue - minimumValue + 1;
double randomValueInRange = Math.Floor(multiplier * range);
return (int)(minimumValue + randomValueInRange);
}
}
#endregion
#region Config
public class Configuration : SerializableConfiguration {
[JsonProperty("Player Chat Commands")]
public PlayerChatCommands playerchatCommands = new PlayerChatCommands();
[JsonProperty("Admin Chat Commands")]
public AdminChatCommands adminchatCommands = new AdminChatCommands();
[JsonProperty("Player Info Box")]
public PlayerProfileSettings playerprofilesettings = new PlayerProfileSettings();
[JsonProperty("Default Options")]
public DefaultOptions defaultOptions = new DefaultOptions();
[JsonProperty("Sound Effects")]
public SoundEffects soundEffects = new SoundEffects();
[JsonProperty("UI Text Colors")]
public UITextColor uitextColor = new UITextColor();
[JsonProperty("Image Icons")]
public ImageIcons imageicons = new ImageIcons();
[JsonProperty("XP - Level Config")]
public XpLevel xpLevel = new XpLevel();
[JsonProperty("Daily Timer Config")]
public DailyTimer dailytimer = new DailyTimer();
[JsonProperty("Daily XP Limit Config")]
public DailyXpLimit dailyxpLimit = new DailyXpLimit();
[JsonProperty("Daily Reset Limit Config")]
public DailyResetLimit dailyresetLimit = new DailyResetLimit();
[JsonProperty("XP - Level Ranks")]
public XpLevelRanks xpLevelRanks = new XpLevelRanks();
[JsonProperty("Rank Boosts")]
public RankBoostsSettings Rankboostssettings = new RankBoostsSettings();
[JsonProperty("Special Groups")]
public SpecialGroups specialGroups = new SpecialGroups();
[JsonProperty("XP - Night Bonus")]
public NightBonus nightBonus = new NightBonus();
[JsonProperty("XP - Gain Amounts")]
public XpGain xpGain = new XpGain();
[JsonProperty("XP - Gather Amounts")]
public XpGather xpGather = new XpGather();
[JsonProperty("XP - Building Amounts")]
public XpBuilding xpBuilding = new XpBuilding();
[JsonProperty("XP - Teams")]
public XpTeams xpTeams = new XpTeams();
[JsonProperty("XP - Mission Amounts")]
public XpMissions xpMissions = new XpMissions();
[JsonProperty("XP - Reducer Amounts")]
public XpReducer xpReducer = new XpReducer();
[JsonProperty("BonusXP - Bonus Amounts (requires KillRecords plugin)")]
public XpBonus xpBonus = new XpBonus();
[JsonProperty("Economics Rewards (requires Economics plugin)")]
public XpEcon xpEcon = new XpEcon();
[JsonProperty("Server Rewards (requires ServerRewards plugin)")]
public SRewards sRewards = new SRewards();
[JsonProperty("Mentality Stat")]
public Mentality mentality = new Mentality();
[JsonProperty("Dexterity Stat")]
public Dexterity dexterity = new Dexterity();
[JsonProperty("Might Stat")]
public Might might = new Might();
[JsonProperty("Captaincy Stat")]
public Captaincy captaincy = new Captaincy();
[JsonProperty("Weaponry Stat")]
public Weaponry weaponry = new Weaponry();
[JsonProperty("Ninjary Stat")]
public Ninjary ninjary = new Ninjary();
[JsonProperty("WoodCutter Skill")]
public Woodcutter woodcutter = new Woodcutter();
[JsonProperty("Smithy Skill")]
public Smithy smithy = new Smithy();
[JsonProperty("Miner Skill")]
public Miner miner = new Miner();
[JsonProperty("Forager Skill")]
public Forager forager = new Forager();
[JsonProperty("Hunter Skill")]
public Hunter hunter = new Hunter();
[JsonProperty("Fisher Skill")]
public Fisher fisher = new Fisher();
[JsonProperty("Crafter Skill")]
public Crafter crafter = new Crafter();
[JsonProperty("Framer Skill")]
public Framer framer = new Framer();
[JsonProperty("Medic Skill")]
public Medic medic = new Medic();
[JsonProperty("Scavenger Skill")]
public Scavenger scavenger = new Scavenger();
[JsonProperty("Electrician Skill")]
public Electrician electrician = new Electrician();
[JsonProperty("Demolitionist Skill")]
public Demolitionist demolitionist = new Demolitionist();
[JsonProperty("Tamer Skill")]
public Tamer tamer = new Tamer();
[JsonProperty("SQL Info")]
public SQL sql = new SQL();
[JsonProperty("Backpacks Mod")]
public BackpacksMod backpacksmod = new BackpacksMod();
[JsonProperty("ZoneManager Mod")]
public ZoneManagerMod zonemanagermod = new ZoneManagerMod();
[JsonProperty("EventHelper Mod")]
public EventHelperMod eventhelpermod = new EventHelperMod();
[JsonProperty("SurvivalArena Mod")]
public SurvivalArenaMod survivalarenamod = new SurvivalArenaMod();
[JsonProperty("Raidable Bases")]
public RaidableBasesMod raidablebasesmod = new RaidableBasesMod();
}
public class PlayerChatCommands {
public string openplayerstats = "xpstats";
public string openplayerstats2 = "xpprofile";
public string openplayerstats3 = "xpinfo";
public string showplayerstatschat = "xpstatschat";
public string opentopplayers = "xptop";
public string playeraddstat = "xpaddstat";
public string playeraddskill = "xpaddskill";
public string playerresetstats = "xpresetstats";
public string playerresetskills = "xpresetskills";
public string playerresetall = "xprestart";
public string playerliveuichange = "xpliveui";
public string openhelp = "xphelp";
}
public class AdminChatCommands {
public string showadminhelp = "xpadminhelp";
public string openadminpanel = "xpconfig";
public string adminresetxperience = "xpresetall";
public string adminxpgive = "xpgive";
public string adminxpgiveall = "xpgiveall";
public string adminpointsgive = "xpgivepoints";
public string adminxptake = "xptake";
public string adminresetplayer = "xpresetplayer";
public string adminfixdata = "xpfix";
public string adminitemchange = "itemchange";
public string adminresetharvest = "resetharvest";
public string adminresetlevelonly = "resetlevel";
public string adminresetrankonly = "resetrank";
public string adminresetstat = "resetstat";
public string adminresetskill = "resetskill";
public string adminresetlevelonlyall = "resetalllevels";
public string adminresetrankonlyall = "resetallranks";
public string adminexcludeplayer = "xpexcludeplayer";
public string admingiveitem = "xpitem";
}
public class PlayerProfileSettings {
public bool showunusedeffects = true;
public bool useplayeravatar = true;
public bool profilemenusettings = true;
public bool profilemenutopplayers = true;
public bool profilemenuraids = true;
public bool profilemenuhelp = true;
public bool profilemenucalculations = true;
public bool skillshelp = true;
public bool profilemenuwelcome = true;
public bool playtime = true;
public bool alivetime = true;
public bool sleepingtime = true;
public bool swimingtime = true;
public bool drivingtime = true;
public bool flyingtime = true;
public bool boatingtime = true;
public bool basetime = true;
public bool monumenttime = true;
public bool wildernesstime = true;
public bool metersran = true;
public bool meterswalked = true;
public bool lastdmgrec = true;
public bool lastdmgrecby = true;
public bool lastdmgdelt = true;
public bool lastdmgdeltto = true;
public string AnchorMin = ".5.5";
public string AnchorMax = ".5.5";
public string OffsetMin = "-300 -200";
public string OffsetMax = "300 200";
public string InsideAnchorMin = ".03.01";
public string InsideAnchorMax = ".99.97";
public int menutype = 1;
public bool usebgimage = true;
public int profilebg = 0;
public bool allowprofilebgchange = true;
public bool usemenubgimage = false;
public double bgfadein = 0.5;
public double menuwidth = 0.2;
public double menuheight = 0.75;
public double menubuttonheight = 0.07;
public int menubuttonfont = 11;
}
public class DefaultOptions {
public bool userpermissions = false;
public int liveuistatslocation = 1;
public bool liveuistatslocationmoveable = true;
public bool showchatprofileonconnect = true;
public int NotifcationCooldown = 2;
public bool restristresets = true;
public bool allowrespec = true;
public int resetminsstats = 60;
public int resetminsskills = 60;
public bool bypassadminreset = true;
public int vipresetminstats = 30;
public int vipresetminsskills = 30;
public int playerfixdatatimer = 60;
public bool disableplayerfixdata = false;
public bool disablearmorchat = false;
public bool hardcorenoreset = false;
public bool allowplayersearch = true;
public bool allowplayerreset = false;
public int topplayersperpage = 20;
public bool showonlinestatus = true;
public bool useprogressivelevelicons = true;
public bool showfuelguage = true;
public bool showspeedometer = true;
public int speedometertype = 1;
public bool dropsgotoplayerinventory = true;
public bool wipedataonnewsave = false;
public bool enabledashpanel = true;
public bool enableconfirmationprompt = true;
public bool showchatnotifications = true;
public bool showlevelinchat = true;
public bool hidechatnotifications = false;
public bool debugmode = false;
}
public class SoundEffects {
public bool levelup = true;
public bool leveldown = true;
public bool rankup = true;
public bool statup = true;
public bool skillup = true;
public bool statreset = true;
public bool skillreset = true;
public bool scavengerloot = true;
public bool foragerloot = true;
public string levelupeffect = "assets/prefabs/misc/halloween/lootbag/effects/silver_open.prefab";
public string leveldowneffect = "assets/bundled/prefabs/fx/player/howl.prefab";
public string rankupeffect = "assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab";
public string statupeffect = "assets/prefabs/misc/halloween/lootbag/effects/bronze_open.prefab";
public string skillupeffect = "assets/prefabs/misc/halloween/lootbag/effects/bronze_open.prefab";
public string statreseteffect = "assets/bundled/prefabs/fx/player/fall-damage.prefab";
public string skillreseteffect = "assets/bundled/prefabs/fx/player/fall-damage.prefab";
public string scavengerlooteffect = "assets/prefabs/misc/halloween/lootbag/effects/loot_bag_upgrade.prefab";
public string foragerlooteffect = "assets/prefabs/misc/halloween/lootbag/effects/loot_bag_upgrade.prefab";
}
public class UITextColor {
public string defaultcolor = "white";
public string level = "green";
public string ranklevel = "blue";
public string rankxp = "blue";
public string rankname = "magenta";
public string experience = "green";
public string nextlevel = "yellow";
public string remainingxp = "cyan";
public string statskilllevels = "yellow";
public string perks = "green";
public string unspentpoints = "green";
public string spentpoints = "red";
public string pets = "cyan";
public string mentality = "white";
public string dexterity = "white";
public string might = "white";
public string captaincy = "white";
public string weaponry = "white";
public string Ninjary = "white";
public string woodcutter = "white";
public string smithy = "white";
public string miner = "white";
public string forager = "white";
public string hunter = "white";
public string fisher = "white";
public string crafter = "white";
public string framer = "white";
public string medic = "white";
public string scavenger = "white";
public string electrician = "white";
public string demolitionist = "white";
public string tamer = "white";
public string xpbar = "green";
public string armorbar = "red";
}
public class ImageIcons {
public bool uselocalpath = false;
public string rootpath = Directory.GetCurrentDirectory().ToString() + "/oxide";
public string xperiencelogo = "https://i.imgur.com/d16zkJk.png";
public string mainicon = "https://i.imgur.com/JUwd2a8.png";
public string mentality = "https://i.imgur.com/LQWZH34.png";
public string dexterity = "https://i.imgur.com/iBizHFq.png";
public string might = "https://i.imgur.com/k9p16oj.png";
public string captaincy = "https://i.imgur.com/DNYOr3Q.png";
public string weaponry = "https://i.imgur.com/P7Tr0rE.png";
public string ninjary = "https://i.imgur.com/jyo4foK.png";
public string woodcutter = "https://i.imgur.com/4tQpa6e.png";
public string smithy = "https://i.imgur.com/wW9oaUx.png";
public string miner = "https://i.imgur.com/B5JS3es.png";
public string forager = "https://i.imgur.com/ohoU0Jl.png";
public string hunter = "https://i.imgur.com/w4dlc8a.png";
public string fisher = "https://i.imgur.com/ete67me.png";
public string crafter = "https://i.imgur.com/vut4FVq.png";
public string framer = "https://i.imgur.com/Rm2pezt.png";
public string medic = "https://i.imgur.com/DoIP2aL.png";
public string scavenger = "https://i.imgur.com/yn5F9Cx.png";
public string electrician = "https://i.imgur.com/0l8dux1.png";
public string demolitionist = "https://i.imgur.com/VEX9WfH.png";
public string tamer = "https://i.imgur.com/ZnKAIAR.png";
public string chicken = "https://i.imgur.com/qJYzAZ6.png";
public string boar = "https://i.imgur.com/ou1DgxE.png";
public string stag = "https://i.imgur.com/CwACyuG.png";
public string wolf = "https://i.imgur.com/J18C2Je.png";
public string bear = "https://i.imgur.com/kTbD3B1.png";
public string polarbear = "https://i.imgur.com/Shk1sza.png";
public string archery = "https://i.imgur.com/qdm8AWg.png";
public string wizardry = "https://i.imgur.com/aNuEdni.png";
public string online = "https://i.imgur.com/WafMLkk.png";
public string offline = "https://i.imgur.com/QtbFqQz.png";
public string backpack = "https://i.imgur.com/zJbJpwx.png";
public string xp = "https://i.imgur.com/u46vNfo.png";
public string level = "https://i.imgur.com/2ouaBoh.png";
public string armor = "https://i.imgur.com/mEr59mA.png";
public string level0 = "https://i.imgur.com/7KTHgTa.png";
public string level2 = "https://i.imgur.com/GocRCM1.png";
public string level4 = "https://i.imgur.com/KxxRouB.png";
public string level6 = "https://i.imgur.com/Dgy9X9P.png";
public string level8 = "https://i.imgur.com/IYloCuJ.png";
public string level10 = "https://i.imgur.com/Xz9ZgZ4.png";
public string dash = "https://i.imgur.com/LLKCN1n.png";
public string raideasy = "https://i.imgur.com/cAUlHlA.png";
public string raidmedium = "https://i.imgur.com/Tzhbic3.png";
public string raidhard = "https://i.imgur.com/MGNUPg0.png";
public string raidexpert = "https://i.imgur.com/bPql6Tz.png";
public string raidnightmare = "https://i.imgur.com/RpiC5dy.png";
public string profilebg = "https://i.imgur.com/DdVLKsE.png";
public string menubg = "https://i.imgur.com/DrWCba0.jpg";
public Dictionary<int, BackgroundImgs> bgimages = new Dictionary<int, BackgroundImgs> {
[0]
= new BackgroundImgs {
name = "ProfileBG0", url = "https://i.imgur.com/DdVLKsE.png"
}
, [1] = new BackgroundImgs {
name = "ProfileBG1", url = "https://i.imgur.com/7HH5q6x.png"
}
, [2] = new BackgroundImgs {
name = "ProfileBG2", url = "https://i.imgur.com/GWSSyba.png"
}
, [3] = new BackgroundImgs {
name = "ProfileBG3", url = "https://i.imgur.com/g6KLi7y.png"
}
, [4] = new BackgroundImgs {
name = "ProfileBG4", url = "https://i.imgur.com/LSwahsy.png"
}
, [5] = new BackgroundImgs {
name = "ProfileBG5", url = "https://i.imgur.com/c3y6F25.png"
}
, [6] = new BackgroundImgs {
name = "ProfileBG6", url = "https://i.imgur.com/uVRGq4n.png"
}
, [7] = new BackgroundImgs {
name = "ProfileBG7", url = "https://i.imgur.com/ax68Blw.png"
}
, [8] = new BackgroundImgs {
name = "ProfileBG8", url = "https://i.imgur.com/UXPKSxv.png"
}
, [9] = new BackgroundImgs {
name = "ProfileBG9", url = "https://i.imgur.com/GyEYetr.png"
}
, [10] = new BackgroundImgs {
name = "ProfileBG10", url = "https://i.imgur.com/V8yLdZi.png"
}
, [11] = new BackgroundImgs {
name = "ProfileBG11", url = "https://i.imgur.com/9SK3fSy.png"
}
, [12] = new BackgroundImgs {
name = "ProfileBG12", url = "https://i.imgur.com/pSaYR95.png"
}
, [13] = new BackgroundImgs {
name = "ProfileBG13", url = "https://i.imgur.com/b6mfm5v.png"
}
, [14] = new BackgroundImgs {
name = "ProfileBG14", url = "https://i.imgur.com/KTCl6iw.png"
}
}
;
}
public class BackgroundImgs {
public string name;
public string url;
}
public class XpLevel {
public double levelstart = 25;
public double levelmultiplier = 50;
public int maxlevel = 500;
public double levelxpboost = 0.05;
public int statpointsperlvl = 1;
public int skillpointsperlvl = 2;
public bool alwaysearnxp = false;
public bool fullhealth = false;
public bool fullmetabolism = false;
}
public class XpLevelRanks {
public bool enableresetranks = false;
public bool resetallstatsskills = true;
public bool allowplayerdisable = false;
public bool increaselevelmultiplier = false;
public double levelmultiplierincrease = 10;
public int maxresetrank = 13;
public bool enablerankxpboost = false;
public double rankxpboost = 0.01;
public bool rankstatboost = false;
public double rankstatboostamount = 0.01;
public int rankstatpointstart = 1;
public int rankstatpointincrease = 1;
public bool rankskillboost = false;
public double rankskillboostamount = 0.01;
public int rankskillpointstart = 2;
public int rankskillpointincrease = 1;
public bool keepremainingxp = true;
public bool showtruelevelprofile = true;
public bool showrankinchat = true;
public bool showtruexpprofile = true;
public bool showrankinliveui = true;
public bool keepgrouponrank = true;
public Dictionary<int, Ranks> ranks = new Dictionary<int, Ranks> {
[0]
= new Ranks {
name = "Newbie", sig = "", image = "https://i.imgur.com/i6M4ZmV.png", group = "Newbies", description = ""
}
, [1] = new Ranks {
name = "Airman", sig = "〘AMN〙", image = "https://i.imgur.com/E0NeO2R.png", group = "Airmans", description = ""
}
, [2] = new Ranks {
name = "Airman First Class", sig = "〘A1C〙", image = "https://i.imgur.com/wYL15FW.png", group = "AirmanFirstClass", description = ""
}
, [3] = new Ranks {
name = "Senior Airman", sig = "〘SRA〙", image = "https://i.imgur.com/egqFVW5.png", group = "SeniorAirman", description = ""
}
, [4] = new Ranks {
name = "Staff Sergeant", sig = "〘SSGT〙", image = "https://i.imgur.com/pL6jbXM.png", group = "StaffSergeant", description = ""
}
, [5] = new Ranks {
name = "Technical Sergeant", sig = "〘TSGT〙", image = "https://i.imgur.com/XrtmWAn.png", group = "TechnicalSergeant", description = ""
}
, [6] = new Ranks {
name = "Master Sergeant", sig = "〘MSGT〙", image = "https://i.imgur.com/muYU6lf.png", group = "MasterSergeant", description = ""
}
, [7] = new Ranks {
name = "First Sergeant", sig = "〘1stSGT〙", image = "https://i.imgur.com/1OJ2zso.png", group = "FirstSergeant", description = ""
}
, [8] = new Ranks {
name = "Senior Master Sergeant", sig = "〘SMSGT〙", image = "https://i.imgur.com/zmNiE20.png", group = "SeniorMasterSergeant", description = ""
}
, [9] = new Ranks {
name = "Senior First Sergeant", sig = "〘S1stSGT〙", image = "https://i.imgur.com/1S7Z0cO.png", group = "SeniorFirstSergeant", description = ""
}
, [10] = new Ranks {
name = "Chief Master Sergeant", sig = "〘CMSGT〙", image = "https://i.imgur.com/V6dQMJL.png", group = "ChiefMasterSergeant", description = ""
}
, [11] = new Ranks {
name = "Chief First Sergeant", sig = "〘C1stSGT〙", image = "https://i.imgur.com/Dm6B08J.png", group = "ChiefFirstSergeant", description = ""
}
, [12] = new Ranks {
name = "Command Chief Master Sergeant", sig = "〘CCMSGT〙", image = "https://i.imgur.com/wE5C1w8.png", group = "CommandChiefMasterSergeant", description = ""
}
, [13] = new Ranks {
name = "Chief Master Sergeant of the Server", sig = "〘CMSGTS〙", image = "https://i.imgur.com/UdqLO7a.png", group = "ChiefMasterSergeantoftheServer", description = ""
}
}
;
}
public class RankBoostsSettings {
// Stats
#region Stats
// Mentality
public bool researchcost = true;
public bool researchspeed = true;
// Dexterity
public bool block = true;
public bool armor = true;
// Captaincy
public bool distance = true;
//Might
public bool meleedmg = true;
public bool metabolism = true;
#endregion
// Skills
#region Skills
// WoodCutter
public bool woodcuttergr = true;
public bool woodcutterbonus = true;
// Smithy
public bool smithypr = true;
public bool smithyps = true;
public bool smithyfc = true;
public bool smithyhqmc = true;
public bool smithyhqma = true;
// Miner
public bool minergr = true;
public bool minerbonus = true;
public bool minermfc = true;
public bool minerfuel = true;
public bool minermfa = true;
// Fisher
public bool fisherfa = true;
public bool fisheria = true;
public bool fisherotr = true;
// Forager
public bool foragergr = true;
public bool foragergwa = true;
public bool foragerric = true;
// Hunter
public bool huntergr = true;
public bool hunterbonus = true;
public bool hunterdmg = true;
public bool hunterndmg = true;
// Crafter
public bool crafterspeed = true;
public bool craftercost = true;
public bool crafterri = true;
public bool crafterrc = true;
public bool craftercc = true;
public bool crafterca = true;
// Framer
public bool framerucost = true;
public bool framerrcost = true;
// Medic
public bool medicrevivala = true;
public bool medicrecovera = true;
public bool medictools = true;
// Scavenger
public bool scavelc = true;
public bool scavelm = true;
public bool scavcic = true;
public bool scavcim = true;
#endregion
}
public class Ranks {
public string name;
public string sig;
public string image;
public string group;
public string description;
}
public class SpecialGroups {
public Dictionary<int, Specialgroups> specialgroups = new Dictionary<int, Specialgroups> {
[0]
= new Specialgroups {
groupname = "Player XP Boost", permissionname = "PlayerXPBoost", grouppriority = 1, xpboost = 0.10, dailyxplimit = 0, dailystatlimitboost = 0, dailyskilllimitboost = 0
}
, [1] = new Specialgroups {
groupname = "Player Daily Limits 01", permissionname = "PlayerDailyLimits01", grouppriority = 2, xpboost = 0, dailyxplimit = 1000, dailystatlimitboost = 2, dailyskilllimitboost = 2
}
, [2] = new Specialgroups {
groupname = "Player Daily Limits 02", permissionname = "PlayerDailyLimits02", grouppriority = 3, xpboost = 0, dailyxplimit = 2000, dailystatlimitboost = 4, dailyskilllimitboost = 4
}
,
}
;
}
public class Specialgroups {
public string groupname;
public string permissionname;
public int grouppriority;
public double xpboost;
public int dailyxplimit;
public int dailystatlimitboost;
public int dailyskilllimitboost;
}
public class DailyTimer {
public int dailyresettimerhours = 24;
public DateTime lastdailyreset = DateTime.Now;
}
public class DailyXpLimit {
public bool enabledailyxplimit = false;
public int dailyxplimit = 5000;
public int dailyxplimitvip = 7500;
public int limitmultipliertype = 1;
public int limitmultiplier = 2;
public double limitpercentage = 0.10;
}
public class DailyResetLimit {
public bool enabledailyresetlimit = false;
public int dailystatlimit = 5;
public int dailystatlimitvip = 10;
public int dailyskilllimit = 5;
public int dailyskilllimitvip = 10;
}
public class NightBonus {
public bool Enable = true;
public int StartTime = 19;
public int EndTime = 5;
public double Bonus = 0.10;
public bool enableskillboosts = true;
}
public class XpGain {
public double chickenxp = 5;
public double fishxp = 5;
public double boarxp = 10;
public double stagxp = 15;
public double wolfxp = 20;
public double bearxp = 25;
public double polarbearxp = 25;
public double sharkxp = 30;
public double horsexp = 20;
public double scientistxp = 25;
public double sc_full = 25;
public double sc_heavy = 25;
public double sc_cargo = 25;
public double sc_junkpile = 25;
public double sc_oilrig = 25;
public double sc_patrol = 25;
public double sc_peacekeeper = 25;
public double sc_roam = 25;
public double dwellerxp = 25;
public double tunneldwellerxp = 25;
public double underwaterdwellerxp = 25;
public double scarecrownpc = 25;
public double customnpc = 25;
public double zombienpc = 25;
public double playerxp = 25;
public double lootcontainerxp = 5;
public double lootbarrel = 5;
public double oilbarrel = 5;
public double vehicleparts = 5;
public double toolcrate = 5;
public double normalcrate = 5;
public double elitecrate = 5;
public double foodcrate = 5;
public double medicalcrate = 5;
public double animalharvestxp = 5;
public double corpseharvestxp = 5;
public double underwaterlootcontainerxp = 10;
public double lockedcratexp = 25;
public double hackablecratexp = 50;
public double craftingxp = 5;
public bool craftingxpdelay = true;
public double craftingxpdelayseconds = 10;
public double bradley = 25;
public double patrolhelicopter = 30;
public double turretxp = 5;
public bool allowturretxp = false;
public double playerrevive = 5;
public bool enablexpboost = false;
public double xpboostamount = 0.05;
public int xpboostorder = 1;
public double gifts = 5;
public double opengifts = 5;
public double opengiftsmed = 10;
public double opengiftslarge = 15;
public double upgradegiftsmed = 10;
public double upgradegiftslarge = 15;
public double craftmeal = 10;
}
public class XpGather {
public double treexp = 5;
public double orexp = 5;
public double metalorexp = 7;
public double stoneorexp = 5;
public double sulfurorexp = 6;
public double harvestxp = 5;
public double plantxp = 5;
public bool noxptools = true;
public bool onetimexp = false;
public double toolxpchance = 0.20;
public double toolxppercent = 0.10;
}
public class XpBuilding {
public double twigstructure = 2;
public double woodstructure = 5;
public double stonestructure = 10;
public double metalstructure = 15;
public double armoredstructure = 20;
public bool preventBGxp = false;
public bool buildxpdelay = false;
public bool requirebuildingprivlidge = true;
public int buildxpdelayseconds = 2;
public bool reducexp = false;
public double buildxpreduction = 0.25;
}
public class XpTeams {
public bool enableteamxpgain = true;
public bool enableteamxploss = true;
public double teamxpgainamount = 0.10;
public double teamxplossamount = 0.05;
public float teamdistance = 50f;
}
public class XpMissions {
public double missionsucceededxp = 50;
public bool missionfailed = false;
public double missionfailedxp = 10;
}
public class XpReducer {
public bool suicidereduce = true;
public double suicidereduceamount = 5;
public bool deathreduce = true;
public double deathreduceamount = 5;
public bool rankdeathreduce = false;
}
public class XpBonus {
public bool showkrbutton = false;
public bool enablebonus = false;
public int requiredkills = 10;
public double bonusxp = 5;
public int endbonus = 500;
public bool multibonus = true;
public string multibonustype = "fixed";
}
public class XpEcon {
public bool showbalanceprofile = true;
public bool econlevelup = false;
public bool econleveldown = false;
public bool econresetstats = false;
public bool econresetskills = false;
public bool econresetstat = false;
public bool econresetskill = false;
public double econlevelreward = 50;
public double econlevelreduction = 25;
public double econresetstatscost = 100;
public double econresetskillscost = 100;
public double econresetstatcost = 50;
public double econresetskillcost = 50;
public bool econstatlevelcost = false;
public bool econskilllevelcost = false;
public double econstatlevelcostmultiplier = 0;
public double econskilllevelcostmultiplier = 0;
public double econmentality = 100;
public double econdexterity = 100;
public double econmight = 100;
public double econcaptaincy = 100;
public double econweaponry = 100;
public double econninjary = 100;
public double econwoodcutter = 100;
public double econsmithy = 100;
public double econminer = 100;
public double econforager = 100;
public double econhunter = 100;
public double econfisher = 100;
public double econcrafter = 100;
public double econframer = 100;
public double econmedic = 100;
public double econscavenger = 100;
public double econelectrician = 100;
public double econdemolitionist = 100;
public double econtamer = 100;
}
public class SRewards {
public bool srewardlevelup = false;
public bool srewardleveldown = false;
public bool srewardresetstats = false;
public bool srewardresetskills = false;
public bool srewardresetstat = false;
public bool srewardresetskill = false;
public int srewardlevelupamt = 5;
public int srewardleveldownamt = 5;
public int srewardresetstatscost = 50;
public int srewardresetskillscost = 50;
public int srewardresetstatcost = 25;
public int srewardresetskillcost = 25;
public bool srewardstatlevelcost = false;
public bool srewardskilllevelcost = false;
public int srewardstatlevelcostmultiplier = 0;
public int srewardskilllevelcostmultiplier = 0;
public int srewardmentality = 50;
public int srewarddexterity = 50;
public int srewardmight = 50;
public int srewardcaptaincy = 50;
public int srewardweaponry = 50;
public int srewardninjary = 50;
public int srewardwoodcutter = 50;
public int srewardsmithy = 50;
public int srewardminer = 50;
public int srewardforager = 50;
public int srewardhunter = 50;
public int srewardfisher = 50;
public int srewardcrafter = 50;
public int srewardframer = 50;
public int srewardmedic = 50;
public int srewardscavenger = 50;
public int srewardelectrician = 50;
public int srewardemolitionist = 50;
public int srewardtamer = 50;
}
#region Stats
public class Mentality {
public int maxlvl = 10;
public int pointcoststart = 2;
public int costmultiplier = 2;
public double researchcost = 0.10;
public double researchcosttechtree = 0.10;
public double researchspeed = 0.10;
public double criticalchance = 0.05;
public double criticaldgm = 0.1;
public double damageincrease = 0.01;
public bool useotherresearchmod = false;
public bool locktechtree = false;
public int unlocktechtreelevel = 5;
}
public class Dexterity {
public int maxlvl = 10;
public int pointcoststart = 2;
public int costmultiplier = 2;
public double blockchance = 0.05;
public double blockamount = 0.10;
public double dodgechance = 0.05;
public double reducearmordmg = 0.05;
public double horsespeed = 0.05;
public double boatspeed = 0.05;
public double vehiclespeed = 0.05;
public double fuelreduce = 0.05;
}
public class Might {
public int maxlvl = 10;
public int pointcoststart = 2;
public int costmultiplier = 2;
public double armor = 0.10;
public double meleedmg = 0.05;
public double metabolism = 0.02;
public double bleedreduction = 0.05;
public double radreduction = 0.05;
public double heattolerance = 0.05;
public double coldtolerance = 0.05;
//public bool enablestacking = false;
//public int stackmultiplier = 2;
}
public class Captai
// ... [Code preview truncated due to length. Full source in attached file] ...