C#:
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using Oxide.Core;
using Oxide.Game.Rust.Cui;
using Oxide.Core.Plugins;
using UnityEngine;
using Rust;
using Newtonsoft.Json;
namespace Oxide.Plugins {
[Info("BuildingProtection", "Nimant", "1.0.3")]
class BuildingProtection : RustPlugin {
[PluginReference]
private Plugin NoEscape;
private const string OWOVpgnVlfVxxsMuOrNrJ = "buildingprotection.use";
private const string PGMMtZJJBYEHHcAHhhRG = "☐";
private const string ZeNttCwYMfQavz = "☑";
private static Dictionary<ulong, DHyiUPhOmQlUYi> ZpRpfYtdstxkqnrDctmFjHG = new Dictionary<ulong, DHyiUPhOmQlUYi>();
private class DHyiUPhOmQlUYi {
public float xTmepcJMRSBCYpotIWvVjxncHGpirm;
public int CKfukblzRm;
public long UYhfLDMgybnUfsfAr;
public BuildingPrivlidge daGIJHDKUbwTcWLDqcyvEKyoUgP;
public List<uint> fUSUsDdJKJxLwFEoG = new List<uint>();
public Dictionary<string, int> InzmNYamAcRouAhooBXjK = null;
public Dictionary<string, int> LOiPIabNmehxGwNGwcfrSFOAkxg = null;
}
private static bool DSZRmXskeNPbtuIULZ = false;
private static Dictionary<ulong, rcxnpARIqA> jVrZEpCTSbLq = new Dictionary<ulong, rcxnpARIqA>();
private class rcxnpARIqA {
public int GbtXbbXGQhryAd;
public Dictionary<uint, THKYObKFdbXpSTzeXvejA> VPOgwjDRXYfHDUisEgLjZUynG = new Dictionary<uint, THKYObKFdbXpSTzeXvejA>();
}
private static List<BuildingPrivlidge> hqVwQYSwveXkjeRwploLosAbB = new List<BuildingPrivlidge>();
private static string PfwNpbGXroE = null;
private void Init() {
FbUwtQnmPCLjJgk();
wZjNGtqHGNwmqtfUizKyMOX();
lang.RegisterMessages(HhSsvHSFdMIRcQjDGsqeEQRnBGpjRP, this, "en");
permission.RegisterPermission(OWOVpgnVlfVxxsMuOrNrJ, this);
foreach (var OhZbSGgexQmVYo in HIRsvYQPzWyuvfESFxHaUFIZurtTC.RmrosELnidzVJnFLKUlKeIxGLnRX) permission.RegisterPermission(OhZbSGgexQmVYo.Key, this);
DSZRmXskeNPbtuIULZ = false;
if (!string.IsNullOrEmpty(HIRsvYQPzWyuvfESFxHaUFIZurtTC.CommandChatBP)) cmd.AddChatCommand(HIRsvYQPzWyuvfESFxHaUFIZurtTC.CommandChatBP, this, "cmdBP");
RaUuSZVKIAvrtfTR(HIRsvYQPzWyuvfESFxHaUFIZurtTC);
}
private void OnServerInitialized() {
ZpRpfYtdstxkqnrDctmFjHG.Clear();
jVrZEpCTSbLq.Clear();
hqVwQYSwveXkjeRwploLosAbB.Clear();
var zRCdTSyvMjZjbzqFTfEllInYVbVa = BaseNetworkable.serverEntities.OfType<BaseEntity>().Where(x=> x!=null && !x.IsDestroyed && htjoTujQiNY.iCsBlkTpLGdFOvVb.ContainsKey(x.net.ID) && !htjoTujQiNY.iCsBlkTpLGdFOvVb[x.net.ID].jUEuKEKgYDmZEzqLbOAwZjRc).Select(x=> x.net.ID).ToHashSet();
htjoTujQiNY.iCsBlkTpLGdFOvVb = htjoTujQiNY.iCsBlkTpLGdFOvVb.Where(x=> zRCdTSyvMjZjbzqFTfEllInYVbVa.Contains(x.Key)).ToDictionary(x=> x.Key, x=> x.Value);
mQzhRoJNMQhRYNGRRGouBHwpzchVGn();
YdyGyUGPjDyQuoEwgBawGtqbaB();
timer.Once(3f, ()=> {
foreach (var eztFfWeeIhyNfEiSrzLS in BasePlayer.activePlayerList) OnPlayerInit(eztFfWeeIhyNfEiSrzLS);
xQWAhngVweKRUulszOTiHptfrUS();
FvqvCLgzoHekniMb();
}
);
}
private void OnPlayerInit(BasePlayer eztFfWeeIhyNfEiSrzLS) {
if (eztFfWeeIhyNfEiSrzLS == null) return;
if (eztFfWeeIhyNfEiSrzLS.HasPlayerFlag(BasePlayer.PlayerFlags.ReceivingSnapshot)) {
timer.Once(0.5f, () => OnPlayerInit(eztFfWeeIhyNfEiSrzLS));
return;
}
if (htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS.ContainsKey(eztFfWeeIhyNfEiSrzLS.userID) && htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS[eztFfWeeIhyNfEiSrzLS.userID].Count() > 0) bkCLUKXnmbelgdhAIeIMoc(eztFfWeeIhyNfEiSrzLS);
}
private void Unload() {
mQzhRoJNMQhRYNGRRGouBHwpzchVGn();
foreach (var eztFfWeeIhyNfEiSrzLS in BasePlayer.activePlayerList) {
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, ayYSMEgmsLvDAgljdcPIml);
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, "IconPanel");
}
}
private void OnNewSave() {
htjoTujQiNY.iCsBlkTpLGdFOvVb.Clear();
htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS.Clear();
mQzhRoJNMQhRYNGRRGouBHwpzchVGn();
}
private void OnHammerHit(BasePlayer eztFfWeeIhyNfEiSrzLS, HitInfo info) {
if (eztFfWeeIhyNfEiSrzLS == null || info?.HitEntity == null || !permission.UserHasPermission(eztFfWeeIhyNfEiSrzLS.UserIDString, OWOVpgnVlfVxxsMuOrNrJ)) return;
if (info.HitEntity is BuildingPrivlidge && (info.HitEntity as BuildingPrivlidge).IsAuthed(eztFfWeeIhyNfEiSrzLS)) PjoEKarzAEFhBoEh(eztFfWeeIhyNfEiSrzLS, info.HitEntity as BuildingPrivlidge);
}
private void OnStructureUpgrade(BaseCombatEntity CyGbREYipufEhLlJYkZFPkw) {
if (CyGbREYipufEhLlJYkZFPkw == null || !htjoTujQiNY.iCsBlkTpLGdFOvVb.ContainsKey(CyGbREYipufEhLlJYkZFPkw.net.ID)) return;
htjoTujQiNY.iCsBlkTpLGdFOvVb[CyGbREYipufEhLlJYkZFPkw.net.ID].jUEuKEKgYDmZEzqLbOAwZjRc = true;
}
private void OnEntityTakeDamage(BaseCombatEntity CyGbREYipufEhLlJYkZFPkw, HitInfo dZmGnyMWbrVRuaEc) {
if (CyGbREYipufEhLlJYkZFPkw == null || dZmGnyMWbrVRuaEc == null) return;
if (!dZmGnyMWbrVRuaEc.hasDamage || dZmGnyMWbrVRuaEc.damageTypes == null) return;
if (!HIRsvYQPzWyuvfESFxHaUFIZurtTC.WAwJTluQpKj.Contains(CyGbREYipufEhLlJYkZFPkw.ShortPrefabName) && !(CyGbREYipufEhLlJYkZFPkw is BuildingBlock)) return;
CuFTmOvASzbETPIsC(CyGbREYipufEhLlJYkZFPkw, dZmGnyMWbrVRuaEc);
}
private void cmdBP(BasePlayer eztFfWeeIhyNfEiSrzLS, string hXITxPqoZrEvoXys, string[] args) {
if (eztFfWeeIhyNfEiSrzLS == null || !permission.UserHasPermission(eztFfWeeIhyNfEiSrzLS.UserIDString, OWOVpgnVlfVxxsMuOrNrJ)) return;
var buildingPrivilege = eztFfWeeIhyNfEiSrzLS.GetBuildingPrivilege();
if (buildingPrivilege != null && buildingPrivilege.IsAuthed(eztFfWeeIhyNfEiSrzLS)) PjoEKarzAEFhBoEh(eztFfWeeIhyNfEiSrzLS, buildingPrivilege);
else SendReply(eztFfWeeIhyNfEiSrzLS, string.Format(zlBwsfqIZhISnFHdBH("INFO.NO_CUP_AUTH", eztFfWeeIhyNfEiSrzLS.userID)));
}
private void xQWAhngVweKRUulszOTiHptfrUS() {
if (!DSZRmXskeNPbtuIULZ) {
var RflRUMhWNwjir = hpGNPeGnzYRReiWGgloEPvAeufDr(DateTime.Now);
var uecOOAHGxgMcVxKXAW = new Dictionary<uint, THKYObKFdbXpSTzeXvejA>();
foreach(var OhZbSGgexQmVYo in htjoTujQiNY.iCsBlkTpLGdFOvVb) if ((OhZbSGgexQmVYo.Value.dTyvbttwmBMF - RflRUMhWNwjir) >= 0) uecOOAHGxgMcVxKXAW.Add(OhZbSGgexQmVYo.Key, OhZbSGgexQmVYo.Value);
if (htjoTujQiNY.iCsBlkTpLGdFOvVb.Count() != uecOOAHGxgMcVxKXAW.Count()) {
try {
htjoTujQiNY.iCsBlkTpLGdFOvVb = uecOOAHGxgMcVxKXAW;
mQzhRoJNMQhRYNGRRGouBHwpzchVGn();
}
catch {
}
}
}
timer.Once(60f, xQWAhngVweKRUulszOTiHptfrUS);
}
private void FvqvCLgzoHekniMb(ulong pDktUvdrNoKvwbLOHcCvkdviel = 0) {
var bMYheABVuLmynoQ = false;
var juoZyUyjPJpzSMoNTq = hpGNPeGnzYRReiWGgloEPvAeufDr(DateTime.Now);
foreach (var OhZbSGgexQmVYo in htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS.ToDictionary(x=> x.Key, x=> x.Value)) {
if (pDktUvdrNoKvwbLOHcCvkdviel != 0 && pDktUvdrNoKvwbLOHcCvkdviel != OhZbSGgexQmVYo.Key) continue;
var eztFfWeeIhyNfEiSrzLS = BasePlayer.FindByID(OhZbSGgexQmVYo.Key);
if (eztFfWeeIhyNfEiSrzLS == null) continue;
if (OhZbSGgexQmVYo.Value.Count() == 0) {
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, "IconPanel");
htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS.Remove(OhZbSGgexQmVYo.Key);
bMYheABVuLmynoQ = true;
continue;
}
else {
if (!jVrZEpCTSbLq.ContainsKey(OhZbSGgexQmVYo.Key)) jVrZEpCTSbLq.Add(OhZbSGgexQmVYo.Key, new rcxnpARIqA());
else {
jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd++;
if (jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd+1 > OhZbSGgexQmVYo.Value.Count()) jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd = 0;
}
var UElTEUsksLPPEdfWq = RyWHwlZMXKbHFnNseXpZCjffJRkv(OhZbSGgexQmVYo.Value[jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd]);
if (UElTEUsksLPPEdfWq == null || !UElTEUsksLPPEdfWq.IsAuthed(eztFfWeeIhyNfEiSrzLS)) {
htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS[OhZbSGgexQmVYo.Key].Remove(OhZbSGgexQmVYo.Value[jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd]);
bMYheABVuLmynoQ = true;
continue;
}
if (!jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].VPOgwjDRXYfHDUisEgLjZUynG.ContainsKey(UElTEUsksLPPEdfWq.net.ID)) {
var info = GDfNGTzuGYfMtZESO(UElTEUsksLPPEdfWq);
if (info != null) jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].VPOgwjDRXYfHDUisEgLjZUynG.Add(UElTEUsksLPPEdfWq.net.ID, info);
else {
htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS[OhZbSGgexQmVYo.Key].Remove(OhZbSGgexQmVYo.Value[jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd]);
bMYheABVuLmynoQ = true;
continue;
}
}
var CfYJiWHBvlwWIRlpuDZQl = jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].VPOgwjDRXYfHDUisEgLjZUynG[UElTEUsksLPPEdfWq.net.ID].dTyvbttwmBMF - juoZyUyjPJpzSMoNTq;
if (CfYJiWHBvlwWIRlpuDZQl <= 0) {
htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS[OhZbSGgexQmVYo.Key].Remove(OhZbSGgexQmVYo.Value[jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd]);
bMYheABVuLmynoQ = true;
continue;
}
nDSdiAzYcDUrZTOEZsa(eztFfWeeIhyNfEiSrzLS, CfYJiWHBvlwWIRlpuDZQl, jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].VPOgwjDRXYfHDUisEgLjZUynG[UElTEUsksLPPEdfWq.net.ID].cdspsASrrXBdzATOFNpbJmxD, OhZbSGgexQmVYo.Value.Count()==1 ? 0 : jVrZEpCTSbLq[OhZbSGgexQmVYo.Key].GbtXbbXGQhryAd+1);
}
}
if (bMYheABVuLmynoQ) mQzhRoJNMQhRYNGRRGouBHwpzchVGn();
if (pDktUvdrNoKvwbLOHcCvkdviel == 0) timer.Once(10f, ()=> FvqvCLgzoHekniMb());
}
private static void CuFTmOvASzbETPIsC(BaseCombatEntity CyGbREYipufEhLlJYkZFPkw, HitInfo dZmGnyMWbrVRuaEc) {
if (!htjoTujQiNY.iCsBlkTpLGdFOvVb.ContainsKey(CyGbREYipufEhLlJYkZFPkw.net.ID) || htjoTujQiNY.iCsBlkTpLGdFOvVb[CyGbREYipufEhLlJYkZFPkw.net.ID].jUEuKEKgYDmZEzqLbOAwZjRc) return;
for (int i = 0; i < (int)dZmGnyMWbrVRuaEc.damageTypes.types.Length;
i++) {
float nkKtBXpGbIgSpIdrsCzEGRP = dZmGnyMWbrVRuaEc.damageTypes.types[i];
if (!float.IsNaN(nkKtBXpGbIgSpIdrsCzEGRP) && !float.IsInfinity(nkKtBXpGbIgSpIdrsCzEGRP) && nkKtBXpGbIgSpIdrsCzEGRP > 0) dZmGnyMWbrVRuaEc.damageTypes.Scale((DamageType)i, 1f - htjoTujQiNY.iCsBlkTpLGdFOvVb[CyGbREYipufEhLlJYkZFPkw.net.ID].cdspsASrrXBdzATOFNpbJmxD/100f);
}
}
private DHyiUPhOmQlUYi ciaTOTCuDwKfpyfWbXJYIpZMnp(BasePlayer eztFfWeeIhyNfEiSrzLS, BuildingPrivlidge UElTEUsksLPPEdfWq) {
var RjQizHusPlbYmv = new DHyiUPhOmQlUYi();
float LjHZPpcPPRcNDLf = 1f;
foreach (var OhZbSGgexQmVYo in HIRsvYQPzWyuvfESFxHaUFIZurtTC.RmrosELnidzVJnFLKUlKeIxGLnRX.OrderBy(x=> x.Value)) {
if (permission.UserHasPermission(eztFfWeeIhyNfEiSrzLS.UserIDString, OhZbSGgexQmVYo.Key)) {
LjHZPpcPPRcNDLf = OhZbSGgexQmVYo.Value;
break;
}
}
RjQizHusPlbYmv.xTmepcJMRSBCYpotIWvVjxncHGpirm = HIRsvYQPzWyuvfESFxHaUFIZurtTC.WUkZrDfquy;
RjQizHusPlbYmv.CKfukblzRm = HIRsvYQPzWyuvfESFxHaUFIZurtTC.qQiYjYCTFYGvVlYwaVgSv;
RjQizHusPlbYmv.InzmNYamAcRouAhooBXjK = tmiyvxVvON(UElTEUsksLPPEdfWq, LjHZPpcPPRcNDLf);
RjQizHusPlbYmv.LOiPIabNmehxGwNGwcfrSFOAkxg = WsxxcFKfjohNq(eztFfWeeIhyNfEiSrzLS, RjQizHusPlbYmv.InzmNYamAcRouAhooBXjK.Keys.ToList());
RjQizHusPlbYmv.fUSUsDdJKJxLwFEoG = aThTzBZfWtzCTSmtbpfvpFEJMnb(UElTEUsksLPPEdfWq);
RjQizHusPlbYmv.daGIJHDKUbwTcWLDqcyvEKyoUgP = UElTEUsksLPPEdfWq;
return RjQizHusPlbYmv;
}
private static bool dYDXPtOHhfykMrMThXyGbs(BasePlayer eztFfWeeIhyNfEiSrzLS) {
ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg = WsxxcFKfjohNq(eztFfWeeIhyNfEiSrzLS, ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].InzmNYamAcRouAhooBXjK.Keys.ToList());
foreach(var OhZbSGgexQmVYo in ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].InzmNYamAcRouAhooBXjK) {
int wOqUTemtIiG = ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg.ContainsKey(OhZbSGgexQmVYo.Key) ? ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg[OhZbSGgexQmVYo.Key] : 0;
int EXHfmprVnUG = (int)Math.Round(OhZbSGgexQmVYo.Value * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm * neygPZBqOxPeyyCfNHjNlYY(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm) * CDSVHYsJCghKZTqkdWzNszkvBv(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm));
if (wOqUTemtIiG < EXHfmprVnUG) return false;
}
return true;
}
private static void ThablvjYgzPPFtapXSKl(BasePlayer eztFfWeeIhyNfEiSrzLS) {
foreach(var OhZbSGgexQmVYo in ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].InzmNYamAcRouAhooBXjK) {
int EXHfmprVnUG = (int)Math.Round(OhZbSGgexQmVYo.Value * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm * neygPZBqOxPeyyCfNHjNlYY(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm) * CDSVHYsJCghKZTqkdWzNszkvBv(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm));
var pEEmEHpWrWCYzgP = ItemManager.FindItemDefinition(OhZbSGgexQmVYo.Key);
if (pEEmEHpWrWCYzgP == null) continue;
eztFfWeeIhyNfEiSrzLS.inventory.Take(eztFfWeeIhyNfEiSrzLS.inventory.AllItems().ToList(), pEEmEHpWrWCYzgP.itemid, EXHfmprVnUG);
}
}
private static string USsAdFTaOOwkGrEVPu(string hSamcTjjkLhpSCRRSZx) {
if (HIRsvYQPzWyuvfESFxHaUFIZurtTC.gKOyVvBdMhstfyHffixIQDfEbhpLvj.ContainsKey(hSamcTjjkLhpSCRRSZx)) return HIRsvYQPzWyuvfESFxHaUFIZurtTC.gKOyVvBdMhstfyHffixIQDfEbhpLvj[hSamcTjjkLhpSCRRSZx];
return hSamcTjjkLhpSCRRSZx;
}
private static BuildingPrivlidge RyWHwlZMXKbHFnNseXpZCjffJRkv(uint JmSlRHEiXsEwgvVxzC) {
var UElTEUsksLPPEdfWq = hqVwQYSwveXkjeRwploLosAbB.FirstOrDefault(x=> x != null && x.net.ID == JmSlRHEiXsEwgvVxzC);
if (UElTEUsksLPPEdfWq == null) {
var CyGbREYipufEhLlJYkZFPkw = BaseNetworkable.serverEntities.OfType<BuildingPrivlidge>().FirstOrDefault(x=> x != null && x.net.ID == JmSlRHEiXsEwgvVxzC);
if (CyGbREYipufEhLlJYkZFPkw != null) {
hqVwQYSwveXkjeRwploLosAbB.Add(CyGbREYipufEhLlJYkZFPkw);
return CyGbREYipufEhLlJYkZFPkw;
}
}
return UElTEUsksLPPEdfWq;
}
private static List<uint> aThTzBZfWtzCTSmtbpfvpFEJMnb(BuildingPrivlidge UElTEUsksLPPEdfWq) {
var PQgaztpdvJdKRFZKkicyWHBftesRm = UElTEUsksLPPEdfWq.GetBuilding();
if (PQgaztpdvJdKRFZKkicyWHBftesRm == null || !PQgaztpdvJdKRFZKkicyWHBftesRm.HasDecayEntities()) return null;
var LhdrKSnVepi = PQgaztpdvJdKRFZKkicyWHBftesRm.decayEntities.Where(x=> x!=null && !x.IsDestroyed && (HIRsvYQPzWyuvfESFxHaUFIZurtTC.WAwJTluQpKj.Contains(x.ShortPrefabName) || x is BuildingBlock)).Select(x=> x.net.ID).ToList();
if (HIRsvYQPzWyuvfESFxHaUFIZurtTC.WAwJTluQpKj.Contains(UElTEUsksLPPEdfWq.ShortPrefabName) && !LhdrKSnVepi.Contains(UElTEUsksLPPEdfWq.net.ID)) LhdrKSnVepi.Add(UElTEUsksLPPEdfWq.net.ID);
return LhdrKSnVepi;
}
private static int KcBlKeRmnM(BuildingPrivlidge UElTEUsksLPPEdfWq) {
var PQgaztpdvJdKRFZKkicyWHBftesRm = UElTEUsksLPPEdfWq.GetBuilding();
if (PQgaztpdvJdKRFZKkicyWHBftesRm == null || !PQgaztpdvJdKRFZKkicyWHBftesRm.HasDecayEntities()) return 0;
return PQgaztpdvJdKRFZKkicyWHBftesRm.decayEntities.Where(x=> x != null && !x.IsDestroyed && x is BuildingBlock).Count();
}
private static Dictionary<string, float> hwRhYZSATICNXfBRs(BuildingPrivlidge UElTEUsksLPPEdfWq) {
var PQgaztpdvJdKRFZKkicyWHBftesRm = UElTEUsksLPPEdfWq.GetBuilding();
if (PQgaztpdvJdKRFZKkicyWHBftesRm == null || !PQgaztpdvJdKRFZKkicyWHBftesRm.HasDecayEntities()) return null;
var ZRjMzshOskQzIEVPxiMIy = PQgaztpdvJdKRFZKkicyWHBftesRm.decayEntities.Where(x=> x!=null && !x.IsDestroyed && (HIRsvYQPzWyuvfESFxHaUFIZurtTC.WAwJTluQpKj.Contains(x.ShortPrefabName) || x is BuildingBlock)).ToList();
if (HIRsvYQPzWyuvfESFxHaUFIZurtTC.WAwJTluQpKj.Contains(UElTEUsksLPPEdfWq.ShortPrefabName) && !ZRjMzshOskQzIEVPxiMIy.Contains(UElTEUsksLPPEdfWq as DecayEntity)) ZRjMzshOskQzIEVPxiMIy.Add(UElTEUsksLPPEdfWq as DecayEntity);
var RjQizHusPlbYmv = new Dictionary<string, float>();
foreach(var CGWDCTyALZbkWaYeDwCi in ZRjMzshOskQzIEVPxiMIy) {
var AkgqvQCRrQMBWqeBbBApJcoBFlRgl = CGWDCTyALZbkWaYeDwCi.BuildCost();
if (AkgqvQCRrQMBWqeBbBApJcoBFlRgl == null) continue;
foreach (ItemAmount itemAmount in AkgqvQCRrQMBWqeBbBApJcoBFlRgl) {
if (itemAmount.itemDef.category != ItemCategory.Resources) continue;
if (!RjQizHusPlbYmv.ContainsKey(itemAmount.itemDef.shortname)) RjQizHusPlbYmv.Add(itemAmount.itemDef.shortname, 0);
RjQizHusPlbYmv[itemAmount.itemDef.shortname] += itemAmount.amount;
}
}
return RjQizHusPlbYmv;
}
private static Dictionary<string, int> tmiyvxVvON(BuildingPrivlidge UElTEUsksLPPEdfWq, float LjHZPpcPPRcNDLf) {
var gQyKJTfugWyZSiUzJisDeslf = hwRhYZSATICNXfBRs(UElTEUsksLPPEdfWq);
if (gQyKJTfugWyZSiUzJisDeslf == null) return null;
var RjQizHusPlbYmv = new Dictionary<string, int>();
int TkXcwWOBjApAMKTmSVRRMUFZbCEX = KcBlKeRmnM(UElTEUsksLPPEdfWq);
float rePmhzGjMBkOBfrdBamWhXAVsS = 1f;
foreach (var OhZbSGgexQmVYo in HIRsvYQPzWyuvfESFxHaUFIZurtTC.PcLEgwhWxwYXWLBUHMxBSBbSYVv.OrderByDescending(x=> x.Key)) {
if (TkXcwWOBjApAMKTmSVRRMUFZbCEX >= OhZbSGgexQmVYo.Key) {
rePmhzGjMBkOBfrdBamWhXAVsS = OhZbSGgexQmVYo.Value;
break;
}
}
foreach (var OhZbSGgexQmVYo in gQyKJTfugWyZSiUzJisDeslf) {
if (OhZbSGgexQmVYo.Value <= 0f) continue;
if (HIRsvYQPzWyuvfESFxHaUFIZurtTC.ESiTmtHBTeohwpzBGeUW.ContainsKey(OhZbSGgexQmVYo.Key)) {
if (HIRsvYQPzWyuvfESFxHaUFIZurtTC.ESiTmtHBTeohwpzBGeUW[OhZbSGgexQmVYo.Key].YYRShJFRcBfcbPCquuXjgjjMQDHQT > 0f) {
var amount = (int)Math.Round(OhZbSGgexQmVYo.Value * HIRsvYQPzWyuvfESFxHaUFIZurtTC.ESiTmtHBTeohwpzBGeUW[OhZbSGgexQmVYo.Key].YYRShJFRcBfcbPCquuXjgjjMQDHQT * (HIRsvYQPzWyuvfESFxHaUFIZurtTC.QcDimTVYjcB/100f) * rePmhzGjMBkOBfrdBamWhXAVsS * LjHZPpcPPRcNDLf);
amount = amount < 1 ? 1 : amount;
if (!RjQizHusPlbYmv.ContainsKey(HIRsvYQPzWyuvfESFxHaUFIZurtTC.ESiTmtHBTeohwpzBGeUW[OhZbSGgexQmVYo.Key].XPWVFkAIoCXaSFsTVAzqSSiGI)) RjQizHusPlbYmv.Add(HIRsvYQPzWyuvfESFxHaUFIZurtTC.ESiTmtHBTeohwpzBGeUW[OhZbSGgexQmVYo.Key].XPWVFkAIoCXaSFsTVAzqSSiGI, amount);
else RjQizHusPlbYmv[HIRsvYQPzWyuvfESFxHaUFIZurtTC.ESiTmtHBTeohwpzBGeUW[OhZbSGgexQmVYo.Key].XPWVFkAIoCXaSFsTVAzqSSiGI] += amount;
}
}
else {
var amount = (int)Math.Round(OhZbSGgexQmVYo.Value * (HIRsvYQPzWyuvfESFxHaUFIZurtTC.QcDimTVYjcB/100f) * rePmhzGjMBkOBfrdBamWhXAVsS * LjHZPpcPPRcNDLf);
amount = amount < 1 ? 1 : amount;
RjQizHusPlbYmv.Add(OhZbSGgexQmVYo.Key, amount);
}
}
return RjQizHusPlbYmv;
}
private static Dictionary<string, int> WsxxcFKfjohNq(BasePlayer eztFfWeeIhyNfEiSrzLS, List<string> gQyKJTfugWyZSiUzJisDeslf) {
var RjQizHusPlbYmv = new Dictionary<string, int>();
foreach(var AGMhUNvwGBSINxypsTSWBx in eztFfWeeIhyNfEiSrzLS.inventory.AllItems().Where(x=> gQyKJTfugWyZSiUzJisDeslf.Contains(x.info.shortname))) {
if (!RjQizHusPlbYmv.ContainsKey(AGMhUNvwGBSINxypsTSWBx.info.shortname)) RjQizHusPlbYmv.Add(AGMhUNvwGBSINxypsTSWBx.info.shortname, 0);
RjQizHusPlbYmv[AGMhUNvwGBSINxypsTSWBx.info.shortname] += AGMhUNvwGBSINxypsTSWBx.amount;
}
return RjQizHusPlbYmv;
}
private static THKYObKFdbXpSTzeXvejA GDfNGTzuGYfMtZESO(BuildingPrivlidge UElTEUsksLPPEdfWq) {
var WxKcwnOmaLHEiHfLY = aThTzBZfWtzCTSmtbpfvpFEJMnb(UElTEUsksLPPEdfWq);
if (WxKcwnOmaLHEiHfLY?.Count() == 0) return null;
var CGWDCTyALZbkWaYeDwCi = htjoTujQiNY.iCsBlkTpLGdFOvVb.Where(x=> WxKcwnOmaLHEiHfLY.Contains(x.Key)).OrderBy(x=> x.Value.cdspsASrrXBdzATOFNpbJmxD).FirstOrDefault();
return CGWDCTyALZbkWaYeDwCi.Value;
}
private static string SSvJOPDahXrxGAQaDcOCVYDwelq(BasePlayer eztFfWeeIhyNfEiSrzLS, uint JmSlRHEiXsEwgvVxzC) {
if (!htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS.ContainsKey(eztFfWeeIhyNfEiSrzLS.userID)) return PGMMtZJJBYEHHcAHhhRG;
if (htjoTujQiNY.HVMhRoaoCievfPDLpLtyzLrnHS[eztFfWeeIhyNfEiSrzLS.userID].Contains(JmSlRHEiXsEwgvVxzC)) return ZeNttCwYMfQavz;
return PGMMtZJJBYEHHcAHhhRG;
}
private static string MeZRnTsgPJchwzIYpqJDE(string RKEbMvykjk) {
try {
var eNxYsSILImxEutRcR = RKEbMvykjk.Split(' ');
var r = (int)Math.Round(Convert.ToSingle(eNxYsSILImxEutRcR[0]) * 255f);
var g = (int)Math.Round(Convert.ToSingle(eNxYsSILImxEutRcR[1]) * 255f);
var b = (int)Math.Round(Convert.ToSingle(eNxYsSILImxEutRcR[2]) * 255f);
return "#" + r.ToString("X2") + g.ToString("X2") + b.ToString("X2");
}
catch {
}
return "white";
}
private static string ayqPLbEUYCxOGOq(int mBnsIqPKgEnaOcqESyHZfV, bool twbQkCJGfoUHqHCPQ = false) {
string RKEbMvykjk = twbQkCJGfoUHqHCPQ ? MeZRnTsgPJchwzIYpqJDE(HIRsvYQPzWyuvfESFxHaUFIZurtTC.rZGBuvEfDiwFzCUjsXDuPhBCyGEo) : "white";
return $"<color={RKEbMvykjk}>" + mBnsIqPKgEnaOcqESyHZfV.ToString("#,##0").Replace(",", "'") + "</color>";
}
private string HWaWrTxPyBtfJCWfzUhu(long CfYJiWHBvlwWIRlpuDZQl, bool EUfzGfHpjZYqkHhCHRNLmI, ulong pDktUvdrNoKvwbLOHcCvkdviel) {
var XJfmsxqQYoh = (int)Math.Truncate(CfYJiWHBvlwWIRlpuDZQl / 3600f);
var tULKyPsQkMVUZNEYgqLAIZBy = (int)Math.Floor(CfYJiWHBvlwWIRlpuDZQl / 60f - XJfmsxqQYoh * 60f);
if (!EUfzGfHpjZYqkHhCHRNLmI) {
var kmCZXQweHfyXRcGVRtMeROKMUTSJ = new List<string>() {
zlBwsfqIZhISnFHdBH("MINUTE1", pDktUvdrNoKvwbLOHcCvkdviel), zlBwsfqIZhISnFHdBH("MINUTES1", pDktUvdrNoKvwbLOHcCvkdviel), zlBwsfqIZhISnFHdBH("MINUTES2", pDktUvdrNoKvwbLOHcCvkdviel)
}
;
var xveCUppuhDfaNJxdZoimmQwfYK = $@"{LXquRVLGGmwxgmKcB(tULKyPsQkMVUZNEYgqLAIZBy, kmCZXQweHfyXRcGVRtMeROKMUTSJ)}";
var ssbEaqthLVaMUHRbFGvgIMZDXmpF = new List<string>() {
zlBwsfqIZhISnFHdBH("HOUR", pDktUvdrNoKvwbLOHcCvkdviel), zlBwsfqIZhISnFHdBH("HOURS1", pDktUvdrNoKvwbLOHcCvkdviel), zlBwsfqIZhISnFHdBH("HOURS2", pDktUvdrNoKvwbLOHcCvkdviel)
}
;
return (XJfmsxqQYoh > 0 ? $@"{LXquRVLGGmwxgmKcB(XJfmsxqQYoh, ssbEaqthLVaMUHRbFGvgIMZDXmpF)}" : "") + (tULKyPsQkMVUZNEYgqLAIZBy > 0 ? ((XJfmsxqQYoh > 0 ? " " : "") + xveCUppuhDfaNJxdZoimmQwfYK) : (XJfmsxqQYoh == 0 ? $@"1 {zlBwsfqIZhISnFHdBH("MINUTE2", pDktUvdrNoKvwbLOHcCvkdviel)}" : ""));
}
return (XJfmsxqQYoh > 0 ? $@"{XJfmsxqQYoh}{zlBwsfqIZhISnFHdBH("HOUR", pDktUvdrNoKvwbLOHcCvkdviel)[0]}" : "") + (tULKyPsQkMVUZNEYgqLAIZBy > 0 ? ((XJfmsxqQYoh > 0 ? " " : "") + $@"{tULKyPsQkMVUZNEYgqLAIZBy}{zlBwsfqIZhISnFHdBH("MINUTE1", pDktUvdrNoKvwbLOHcCvkdviel)[0]}") : (XJfmsxqQYoh == 0 ? $@"1{zlBwsfqIZhISnFHdBH("MINUTE1", pDktUvdrNoKvwbLOHcCvkdviel)[0]}" : ""));
}
private bool oheHITHFJFYiOHPmCfYfunMROyOedP(BasePlayer eztFfWeeIhyNfEiSrzLS) {
if (NoEscape == null) return false;
try {
var DeJWXcbFHDuY = NoEscape.Call("ApiGetTime", eztFfWeeIhyNfEiSrzLS.userID);
if (DeJWXcbFHDuY != null && (DeJWXcbFHDuY is int || DeJWXcbFHDuY is float || DeJWXcbFHDuY is long || DeJWXcbFHDuY is double || DeJWXcbFHDuY is uint || DeJWXcbFHDuY is ulong)) {
if (Convert.ToInt64(DeJWXcbFHDuY) > 0) {
SendReply(eztFfWeeIhyNfEiSrzLS, string.Format(zlBwsfqIZhISnFHdBH("NOESCAPE.WARNING", eztFfWeeIhyNfEiSrzLS.userID), DeJWXcbFHDuY));
return true;
}
}
}
catch {
PrintWarning(zlBwsfqIZhISnFHdBH("NOESCAPE.CALL.ERROR"));
}
return false;
}
private static float neygPZBqOxPeyyCfNHjNlYY(float xQDkpXxGStqJpwaOjmgUSmikWB) {
var RjQizHusPlbYmv = 1f;
for (int uBjuIumTfsdohEYmBplW = 0; uBjuIumTfsdohEYmBplW < (int)Math.Round(xQDkpXxGStqJpwaOjmgUSmikWB / HIRsvYQPzWyuvfESFxHaUFIZurtTC.uRkyQkziKUEaKyLdGPminbfEN);
uBjuIumTfsdohEYmBplW++ ) RjQizHusPlbYmv *= HIRsvYQPzWyuvfESFxHaUFIZurtTC.hgTDiegoLXbuTVpHav;
return RjQizHusPlbYmv;
}
private static float CDSVHYsJCghKZTqkdWzNszkvBv(int XJfmsxqQYoh) {
var RjQizHusPlbYmv = 1f;
for (int uBjuIumTfsdohEYmBplW = 0; uBjuIumTfsdohEYmBplW < XJfmsxqQYoh; uBjuIumTfsdohEYmBplW++ ) RjQizHusPlbYmv *= HIRsvYQPzWyuvfESFxHaUFIZurtTC.aIVGeziGeitoyycbJRBtiMEXbHqOBW;
return RjQizHusPlbYmv;
}
private const string ayYSMEgmsLvDAgljdcPIml = "BPPanel";
private void PjoEKarzAEFhBoEh(BasePlayer eztFfWeeIhyNfEiSrzLS, BuildingPrivlidge UElTEUsksLPPEdfWq) {
if (eztFfWeeIhyNfEiSrzLS == null || UElTEUsksLPPEdfWq == null) return;
var kEzXjiiXPmrzNAIOpqcMm = GDfNGTzuGYfMtZESO(UElTEUsksLPPEdfWq);
if (kEzXjiiXPmrzNAIOpqcMm != null) oLFicwVIXrJDOklAOcO(eztFfWeeIhyNfEiSrzLS, kEzXjiiXPmrzNAIOpqcMm, UElTEUsksLPPEdfWq);
else {
if (!oheHITHFJFYiOHPmCfYfunMROyOedP(eztFfWeeIhyNfEiSrzLS)) {
ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID] = ciaTOTCuDwKfpyfWbXJYIpZMnp(eztFfWeeIhyNfEiSrzLS, UElTEUsksLPPEdfWq);
GPdvkxiUBmDiI(eztFfWeeIhyNfEiSrzLS);
}
}
}
private void oLFicwVIXrJDOklAOcO(BasePlayer eztFfWeeIhyNfEiSrzLS, THKYObKFdbXpSTzeXvejA kEzXjiiXPmrzNAIOpqcMm, BuildingPrivlidge UElTEUsksLPPEdfWq) {
if (eztFfWeeIhyNfEiSrzLS == null) return;
var CTanCGEFHH = new CuiElementContainer();
apCsaAWiXv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.huotRVpEiisGCL, "0.35 0.2", "0.65 0.8");
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.pHgijKkhafaWaQAWyCNIwZXHzcG, "0 0.92", "1 1");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.chnJkKVjBAkIgjSFJaGUm, "X", 20, "0.90 0.92", "1 1", "bp_12345.close", "permanentmarker.ttf");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("TITLE.REMIND.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, "0.03 0.92", "0.89 1", TextAnchor.MiddleLeft);
var CfYJiWHBvlwWIRlpuDZQl = HWaWrTxPyBtfJCWfzUhu(kEzXjiiXPmrzNAIOpqcMm.dTyvbttwmBMF - hpGNPeGnzYRReiWGgloEPvAeufDr(DateTime.Now), false, eztFfWeeIhyNfEiSrzLS.userID);
var QqbMTvNEKFVg = string.Format(zlBwsfqIZhISnFHdBH("REMIND.HOME_PROTECT.MSG", eztFfWeeIhyNfEiSrzLS.userID), kEzXjiiXPmrzNAIOpqcMm.cdspsASrrXBdzATOFNpbJmxD, CfYJiWHBvlwWIRlpuDZQl);
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, QqbMTvNEKFVg, 18, "0.07 0.5", "0.93 0.9", TextAnchor.MiddleLeft);
var LxeECrfUitaZwThE = 0.05f;
var kFGRTkrauDwUxhCHvUpcCGoESNb = 0.525f;
jzZksiWahxYYl(ref CTanCGEFHH, "1 1 1 0", SSvJOPDahXrxGAQaDcOCVYDwelq(eztFfWeeIhyNfEiSrzLS, UElTEUsksLPPEdfWq.net.ID), 18, $"{LxeECrfUitaZwThE-0.02} {0.55-0.08}", $"{0.15} {0.53}", $"bp_12345.toggleicon {UElTEUsksLPPEdfWq.net.ID}", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml, ayYSMEgmsLvDAgljdcPIml + "_toggle_icon");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("REMIND.CHECK_TOGGLE.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.16} {0.45-0.04}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.55}", TextAnchor.MiddleLeft);
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, zlBwsfqIZhISnFHdBH("BUTTON.APPLY", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.02+LxeECrfUitaZwThE} {0.15-0.08}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.15}", "bp_12345.close");
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, ayYSMEgmsLvDAgljdcPIml);
CuiHelper.AddUi(eztFfWeeIhyNfEiSrzLS, CTanCGEFHH);
}
private void GPdvkxiUBmDiI(BasePlayer eztFfWeeIhyNfEiSrzLS) {
if (eztFfWeeIhyNfEiSrzLS == null) return;
var CTanCGEFHH = new CuiElementContainer();
apCsaAWiXv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.huotRVpEiisGCL, "0.35 0.2", "0.65 0.8");
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.pHgijKkhafaWaQAWyCNIwZXHzcG, "0 0.92", "1 1");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.chnJkKVjBAkIgjSFJaGUm, "X", 20, "0.90 0.92", "1 1", "bp_12345.ok", "permanentmarker.ttf");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("TITLE.WARNING.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, "0.03 0.92", "0.89 1", TextAnchor.MiddleLeft);
var QqbMTvNEKFVg = zlBwsfqIZhISnFHdBH("WARNING.RECOMENDATION.MSG", eztFfWeeIhyNfEiSrzLS.userID);
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, QqbMTvNEKFVg, 18, "0.07 0.2", "0.93 0.9", TextAnchor.MiddleLeft);
var LxeECrfUitaZwThE = 0.05f;
var kFGRTkrauDwUxhCHvUpcCGoESNb = 0.525f;
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, zlBwsfqIZhISnFHdBH("BUTTON.APPLY", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.02+LxeECrfUitaZwThE} {0.15-0.08}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.15}", "bp_12345.ok");
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, ayYSMEgmsLvDAgljdcPIml);
CuiHelper.AddUi(eztFfWeeIhyNfEiSrzLS, CTanCGEFHH);
}
private void jqHEvKPWUOFScgGR(BasePlayer eztFfWeeIhyNfEiSrzLS) {
var CTanCGEFHH = new CuiElementContainer();
apCsaAWiXv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.huotRVpEiisGCL, "0.35 0.2", "0.65 0.8");
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.pHgijKkhafaWaQAWyCNIwZXHzcG, "0 0.92", "1 1");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.chnJkKVjBAkIgjSFJaGUm, "X", 20, "0.90 0.92", "1 1", "bp_12345.close", "permanentmarker.ttf");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("TITLE.MAIN.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, "0.03 0.92", "0.89 1", TextAnchor.MiddleLeft);
var uUTwDdYqIjboJpkal = -0.02f;
var LxeECrfUitaZwThE = 0.05f;
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("MAIN.PROTECT_PERCENT.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.02+LxeECrfUitaZwThE} {0.825+uUTwDdYqIjboJpkal}", $"{0.4+LxeECrfUitaZwThE} {0.905+uUTwDdYqIjboJpkal}", TextAnchor.MiddleLeft);
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.pHgijKkhafaWaQAWyCNIwZXHzcG, $"{0.02+LxeECrfUitaZwThE} {0.75+uUTwDdYqIjboJpkal}", $"{0.4+LxeECrfUitaZwThE} {0.83+uUTwDdYqIjboJpkal}", ayYSMEgmsLvDAgljdcPIml, ayYSMEgmsLvDAgljdcPIml + "_percent_panel");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, "<", 25, "0.03 0.1", "0.25 0.87", $"bp_12345.percent_shift {-1*HIRsvYQPzWyuvfESFxHaUFIZurtTC.uRkyQkziKUEaKyLdGPminbfEN}", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_percent_panel");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, ">", 25, "0.745 0.1", "0.965 0.87", $"bp_12345.percent_shift {HIRsvYQPzWyuvfESFxHaUFIZurtTC.uRkyQkziKUEaKyLdGPminbfEN}", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_percent_panel");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm.ToString()+"%", 18, "0.3 0.1", "0.7 0.87", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_percent_panel", ayYSMEgmsLvDAgljdcPIml + "_percent_panel" + "_value");
var kFGRTkrauDwUxhCHvUpcCGoESNb = 0.525f;
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("MAIN.PROTECT_HOURS.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.02+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.825+uUTwDdYqIjboJpkal}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.905+uUTwDdYqIjboJpkal}", TextAnchor.MiddleLeft);
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.pHgijKkhafaWaQAWyCNIwZXHzcG, $"{0.02+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.75+uUTwDdYqIjboJpkal}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.83+uUTwDdYqIjboJpkal}", ayYSMEgmsLvDAgljdcPIml, ayYSMEgmsLvDAgljdcPIml + "_hour_panel");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, "<", 25, "0.03 0.1", "0.25 0.87", "bp_12345.hour_shift -1", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_hour_panel");
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, ">", 25, "0.745 0.1", "0.965 0.87", "bp_12345.hour_shift 1", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_hour_panel");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm.ToString()+zlBwsfqIZhISnFHdBH("HOUR", eztFfWeeIhyNfEiSrzLS.userID)[0], 18, "0.3 0.1", "0.7 0.87", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_hour_panel", ayYSMEgmsLvDAgljdcPIml + "_hour_panel" + "_value");
float pUlgdwhwvZlxkTa = 0.63f, delta_step = 0.1f;
int FKaCEFkbaXo = 0;
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, zlBwsfqIZhISnFHdBH("MAIN.RES_FOR_PAY.MSG", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.02+LxeECrfUitaZwThE} {0.63+uUTwDdYqIjboJpkal}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.71+uUTwDdYqIjboJpkal}", TextAnchor.MiddleCenter);
foreach(var OhZbSGgexQmVYo in ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].InzmNYamAcRouAhooBXjK) {
int wOqUTemtIiG = ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg.ContainsKey(OhZbSGgexQmVYo.Key) ? ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg[OhZbSGgexQmVYo.Key] : 0;
int EXHfmprVnUG = (int)Math.Round(OhZbSGgexQmVYo.Value * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm * neygPZBqOxPeyyCfNHjNlYY(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm) * CDSVHYsJCghKZTqkdWzNszkvBv(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm));
var twbQkCJGfoUHqHCPQ = wOqUTemtIiG < EXHfmprVnUG;
var PwyLdoPCRUPwvkPwsVEe = $"{USsAdFTaOOwkGrEVPu(OhZbSGgexQmVYo.Key)}";
var RiWkSmSjJOsAf = $"{ayqPLbEUYCxOGOq(EXHfmprVnUG)} / {ayqPLbEUYCxOGOq(wOqUTemtIiG, twbQkCJGfoUHqHCPQ)}";
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.pHgijKkhafaWaQAWyCNIwZXHzcG, $"{0.02+LxeECrfUitaZwThE} {pUlgdwhwvZlxkTa-0.08-FKaCEFkbaXo*delta_step+uUTwDdYqIjboJpkal}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {pUlgdwhwvZlxkTa-FKaCEFkbaXo*delta_step+uUTwDdYqIjboJpkal}", ayYSMEgmsLvDAgljdcPIml, ayYSMEgmsLvDAgljdcPIml + $"_res_panel_{FKaCEFkbaXo}");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, PwyLdoPCRUPwvkPwsVEe, 18, "0.03 0.1", "0.96 0.9", TextAnchor.MiddleLeft, ayYSMEgmsLvDAgljdcPIml + $"_res_panel_{FKaCEFkbaXo}");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, RiWkSmSjJOsAf, 18, "0.03 0.1", "0.96 0.9", TextAnchor.MiddleRight, ayYSMEgmsLvDAgljdcPIml + $"_res_panel_{FKaCEFkbaXo}", ayYSMEgmsLvDAgljdcPIml + "_res_panel" + $"_value_right_{FKaCEFkbaXo}");
FKaCEFkbaXo++;
}
jzZksiWahxYYl(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.YyPzjwnofbDqeDtrAFPpCAqcXGDkM, zlBwsfqIZhISnFHdBH("BUTTON.PROTECT_SET", eztFfWeeIhyNfEiSrzLS.userID), 18, $"{0.02+LxeECrfUitaZwThE} {0.15-0.08}", $"{0.4+kFGRTkrauDwUxhCHvUpcCGoESNb} {0.15}", "bp_12345.apply");
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, ayYSMEgmsLvDAgljdcPIml);
CuiHelper.AddUi(eztFfWeeIhyNfEiSrzLS, CTanCGEFHH);
}
private static void KuKMfYLEaKPPPFmiqfbkBAUrbf(BasePlayer eztFfWeeIhyNfEiSrzLS, ref CuiElementContainer CTanCGEFHH) {
int FKaCEFkbaXo = 0;
foreach(var OhZbSGgexQmVYo in ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].InzmNYamAcRouAhooBXjK) {
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, ayYSMEgmsLvDAgljdcPIml + "_res_panel" + $"_value_right_{FKaCEFkbaXo}");
int wOqUTemtIiG = ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg.ContainsKey(OhZbSGgexQmVYo.Key) ? ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].LOiPIabNmehxGwNGwcfrSFOAkxg[OhZbSGgexQmVYo.Key] : 0;
int EXHfmprVnUG = (int)Math.Round(OhZbSGgexQmVYo.Value * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm * ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm * neygPZBqOxPeyyCfNHjNlYY(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].xTmepcJMRSBCYpotIWvVjxncHGpirm) * CDSVHYsJCghKZTqkdWzNszkvBv(ZpRpfYtdstxkqnrDctmFjHG[eztFfWeeIhyNfEiSrzLS.userID].CKfukblzRm));
var twbQkCJGfoUHqHCPQ = wOqUTemtIiG < EXHfmprVnUG;
var RiWkSmSjJOsAf = $"{ayqPLbEUYCxOGOq(EXHfmprVnUG)} / {ayqPLbEUYCxOGOq(wOqUTemtIiG, twbQkCJGfoUHqHCPQ)}";
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, RiWkSmSjJOsAf, 18, "0.03 0.1", "0.96 0.9", TextAnchor.MiddleRight, ayYSMEgmsLvDAgljdcPIml + $"_res_panel_{FKaCEFkbaXo}", ayYSMEgmsLvDAgljdcPIml + "_res_panel" + $"_value_right_{FKaCEFkbaXo}");
FKaCEFkbaXo++;
}
}
private static void apCsaAWiXv(ref CuiElementContainer CTanCGEFHH, string RKEbMvykjk, string BrOBDQWVVpocLVedYIaYqgtSwEQGJ, string yACafJEmfctMoJBsdaqETMMAeAgKi) {
CTanCGEFHH.Add(new CuiPanel {
Image = {
Color = RKEbMvykjk
}
, RectTransform = {
AnchorMin = BrOBDQWVVpocLVedYIaYqgtSwEQGJ, AnchorMax = yACafJEmfctMoJBsdaqETMMAeAgKi
}
, CursorEnabled = true
}
, "Hud", ayYSMEgmsLvDAgljdcPIml);
}
private static void SuXbKyvVKZKv(ref CuiElementContainer CTanCGEFHH, string RKEbMvykjk, string BrOBDQWVVpocLVedYIaYqgtSwEQGJ, string yACafJEmfctMoJBsdaqETMMAeAgKi, string gaUGSeRmdtVANhGzTxSRFIZJtHP = ayYSMEgmsLvDAgljdcPIml, string kelJPfHxMZvDS = null) {
CTanCGEFHH.Add(new CuiPanel {
Image = {
Color = RKEbMvykjk
}
, RectTransform = {
AnchorMin = BrOBDQWVVpocLVedYIaYqgtSwEQGJ, AnchorMax = yACafJEmfctMoJBsdaqETMMAeAgKi
}
}
, gaUGSeRmdtVANhGzTxSRFIZJtHP, kelJPfHxMZvDS);
}
private static void yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CuiElementContainer CTanCGEFHH, string QqbMTvNEKFVg, int DVjZOEcMKV, string BrOBDQWVVpocLVedYIaYqgtSwEQGJ, string yACafJEmfctMoJBsdaqETMMAeAgKi, TextAnchor wuPPWtuwCJp = TextAnchor.MiddleCenter, string gaUGSeRmdtVANhGzTxSRFIZJtHP = ayYSMEgmsLvDAgljdcPIml, string kelJPfHxMZvDS = null) {
CTanCGEFHH.Add(new CuiLabel {
Text = {
FontSize = DVjZOEcMKV, Align = wuPPWtuwCJp, Text = QqbMTvNEKFVg, Font = "robotocondensed-regular.ttf"
}
, RectTransform = {
AnchorMin = BrOBDQWVVpocLVedYIaYqgtSwEQGJ, AnchorMax = yACafJEmfctMoJBsdaqETMMAeAgKi
}
}
, gaUGSeRmdtVANhGzTxSRFIZJtHP, kelJPfHxMZvDS);
}
private static void OoYQdZvWCGnJexBWqAOSQWz(ref CuiElementContainer CTanCGEFHH, string QqbMTvNEKFVg, int DVjZOEcMKV, string BrOBDQWVVpocLVedYIaYqgtSwEQGJ, string yACafJEmfctMoJBsdaqETMMAeAgKi, TextAnchor wuPPWtuwCJp = TextAnchor.MiddleCenter, string gaUGSeRmdtVANhGzTxSRFIZJtHP = ayYSMEgmsLvDAgljdcPIml, string kelJPfHxMZvDS = null) {
CTanCGEFHH.Add(new CuiElement() {
Name = kelJPfHxMZvDS, Parent = gaUGSeRmdtVANhGzTxSRFIZJtHP, Components = {
new CuiTextComponent() {
Text = QqbMTvNEKFVg, Font = "robotocondensed-regular.ttf", Align = wuPPWtuwCJp, FontSize = DVjZOEcMKV
}
, new CuiOutlineComponent() {
Color = "0 0 0 1"
}
, new CuiRectTransformComponent() {
AnchorMin = BrOBDQWVVpocLVedYIaYqgtSwEQGJ, AnchorMax = yACafJEmfctMoJBsdaqETMMAeAgKi
}
}
}
);
}
private static void jzZksiWahxYYl(ref CuiElementContainer CTanCGEFHH, string RKEbMvykjk, string QqbMTvNEKFVg, int DVjZOEcMKV, string BrOBDQWVVpocLVedYIaYqgtSwEQGJ, string yACafJEmfctMoJBsdaqETMMAeAgKi, string hXITxPqoZrEvoXys, string font = "robotocondensed-regular.ttf", TextAnchor wuPPWtuwCJp = TextAnchor.MiddleCenter, string gaUGSeRmdtVANhGzTxSRFIZJtHP = ayYSMEgmsLvDAgljdcPIml, string kelJPfHxMZvDS = null) {
if (string.IsNullOrEmpty(RKEbMvykjk)) RKEbMvykjk = "0 0 0 0";
CTanCGEFHH.Add(new CuiButton {
Button = {
Color = RKEbMvykjk, Command = hXITxPqoZrEvoXys, FadeIn = 0f
}
, RectTransform = {
AnchorMin = BrOBDQWVVpocLVedYIaYqgtSwEQGJ, AnchorMax = yACafJEmfctMoJBsdaqETMMAeAgKi
}
, Text = {
Text = QqbMTvNEKFVg, FontSize = DVjZOEcMKV, Align = wuPPWtuwCJp, Font = font
}
}
, gaUGSeRmdtVANhGzTxSRFIZJtHP, kelJPfHxMZvDS);
}
private static void qYftOzWmucUJ(ref CuiElementContainer CTanCGEFHH, string png, string BrOBDQWVVpocLVedYIaYqgtSwEQGJ, string yACafJEmfctMoJBsdaqETMMAeAgKi, string gaUGSeRmdtVANhGzTxSRFIZJtHP = ayYSMEgmsLvDAgljdcPIml) {
CTanCGEFHH.Add(new CuiElement {
Name = CuiHelper.GetGuid(), Parent = gaUGSeRmdtVANhGzTxSRFIZJtHP, Components = {
new CuiRawImageComponent {
Png = png
}
, new CuiRectTransformComponent {
AnchorMin = BrOBDQWVVpocLVedYIaYqgtSwEQGJ, AnchorMax = yACafJEmfctMoJBsdaqETMMAeAgKi
}
}
}
);
}
private void bkCLUKXnmbelgdhAIeIMoc(BasePlayer eztFfWeeIhyNfEiSrzLS) {
if (eztFfWeeIhyNfEiSrzLS == null) return;
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, "IconPanel");
var CTanCGEFHH = new CuiElementContainer();
SuXbKyvVKZKv(ref CTanCGEFHH, "1 1 1 0", HIRsvYQPzWyuvfESFxHaUFIZurtTC.AnchorMin, HIRsvYQPzWyuvfESFxHaUFIZurtTC.AnchorMax, "Hud", "IconPanel");
if (!string.IsNullOrEmpty(PfwNpbGXroE)) qYftOzWmucUJ(ref CTanCGEFHH, PfwNpbGXroE, "0 0", "1 1", "IconPanel");
CuiHelper.AddUi(eztFfWeeIhyNfEiSrzLS, CTanCGEFHH);
}
private void nDSdiAzYcDUrZTOEZsa(BasePlayer eztFfWeeIhyNfEiSrzLS, long LtBSCPxDGghGy, float percent, int ZIZaiMatAyPWPrLlyRFzqVJ) {
if (eztFfWeeIhyNfEiSrzLS == null) return;
var CfYJiWHBvlwWIRlpuDZQl = HWaWrTxPyBtfJCWfzUhu(LtBSCPxDGghGy, true, eztFfWeeIhyNfEiSrzLS.userID);
var home = ZIZaiMatAyPWPrLlyRFzqVJ > 0 ? string.Format(zlBwsfqIZhISnFHdBH("ICON.HOME_NUMBER.MSG", eztFfWeeIhyNfEiSrzLS.userID), ZIZaiMatAyPWPrLlyRFzqVJ) : "";
var IbjotEluWAowFyxKRJ = "137";
var QqbMTvNEKFVg = string.Format(zlBwsfqIZhISnFHdBH("ICON.HOME_PROTECT.MSG", eztFfWeeIhyNfEiSrzLS.userID), home, percent, CfYJiWHBvlwWIRlpuDZQl);
CuiHelper.DestroyUi(eztFfWeeIhyNfEiSrzLS, "IconPanel" + "_icon_text");
var CTanCGEFHH = new CuiElementContainer();
OoYQdZvWCGnJexBWqAOSQWz(ref CTanCGEFHH, QqbMTvNEKFVg, 12, "0 0", "1 1", TextAnchor.MiddleCenter, "IconPanel", "IconPanel" + "_icon_text");
CuiHelper.AddUi(eztFfWeeIhyNfEiSrzLS, CTanCGEFHH);
}
private static Dictionary<ulong, Timer> jriazZYsHvlgHweLXNiFwgzYRjOP = new Dictionary<ulong, Timer>();
private void JHjmeAlSceXEOAqRiuNhMpnsg(BasePlayer eztFfWeeIhyNfEiSrzLS, string ezSHcKJNszZPiCrf) {
if (eztFfWeeIhyNfEiSrzLS == null || string.IsNullOrEmpty(ezSHcKJNszZPiCrf)) return;
ZDVNslHPlv(eztFfWeeIhyNfEiSrzLS);
var CTanCGEFHH = new CuiElementContainer();
SuXbKyvVKZKv(ref CTanCGEFHH, HIRsvYQPzWyuvfESFxHaUFIZurtTC.TGaJzdOECkNQlmE, "0.1 0.56", "0.9 0.7", ayYSMEgmsLvDAgljdcPIml, ayYSMEgmsLvDAgljdcPIml + "_sm_container");
yiDkSeDzLRhkbHKquZShOcqGAyeXZL(ref CTanCGEFHH, ezSHcKJNszZPiCrf, 18, "0 0", "1 1", TextAnchor.MiddleCenter, ayYSMEgmsLvDAgljdcPIml + "_sm_container");
CuiHelper.AddUi(eztFfWeeIhyNfEiSrzLS, CTanCGEFHH);
if (!jriazZYsHvlgHweLXNiFwgzYRjOP.ContainsKey(eztFf
// ... [Code preview truncated due to length. Full source in attached file] ...