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/http://topplugin.ru/", "1.0.5")]
class BuildingProtection : RustPlugin {
[PluginReference]
private Plugin NoEscape;
private const string cdhAlpanRBpDIza = "buildingprotection.use";
private const string vBvxkHaTFkygGpYQwuzSUq = "☐";
private const string nwVBCplpXvAaIKSWWs = "☑";
private static Dictionary<ulong, yiMnwiLrszNVuaAEN> LvQVdOcRKczi = new Dictionary<ulong, yiMnwiLrszNVuaAEN>();
private class yiMnwiLrszNVuaAEN {
public float IFKqjvXybmID;
public int DMhmrrnVKvNem;
public long akJrcdwqcuUZ;
public BuildingPrivlidge hmtpabplIUjQXuPIlBFjNVPMJLFVo;
public List<uint> sXIuBpDbLuyUxjuSqqpnUl = new List<uint>();
public Dictionary<string, float> BqxeHdPCSjIaYcCvbVTWnINaL = null;
public Dictionary<string, int> cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr = null;
}
private static bool tqIKYYnczXoFtEtnl = false;
private static Dictionary<ulong, IDEEeyYqtzfzZAaNgzawGG> ghIxMrSwhDBlkgYnCv = new Dictionary<ulong, IDEEeyYqtzfzZAaNgzawGG>();
private class IDEEeyYqtzfzZAaNgzawGG {
public int aFJePcIPSmPPltmGcZUQiqXRhOTS;
public Dictionary<uint, SbfmlOGavlfz> zcAwbVZDcDRxKRifPv = new Dictionary<uint, SbfmlOGavlfz>();
}
private static List<BuildingPrivlidge> VcQBQxmGKPMeQ = new List<BuildingPrivlidge>();
private static string HdBWieoSOUQFlqrjstNvpyGBTqWeu = null;
private static Dictionary<ulong, Dictionary<uint, long>> jiFWAzvYGB = new Dictionary<ulong, Dictionary<uint, long>>();
private void Init() {
htPGTdfQfJPtdtGTDsLmtGTvpxvxMp();
hMKgDXpDLmRwgZeQomY();
lang.RegisterMessages(BSGpNGGzTyiGKoKEeOyX, this, "en");
permission.RegisterPermission(cdhAlpanRBpDIza, this);
foreach (var KTVphBNiUXQhPqyBFsVrWYQHQsi in arYyoRcCywByxnRDoH.byNFtPigVDNuPTqiNFIV) permission.RegisterPermission(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key, this);
tqIKYYnczXoFtEtnl = false;
if (!string.IsNullOrEmpty(arYyoRcCywByxnRDoH.CommandChatBP)) cmd.AddChatCommand(arYyoRcCywByxnRDoH.CommandChatBP, this, "cmdBP");
oemcSUfxaTkeLYsdBfc(arYyoRcCywByxnRDoH);
}
private void OnServerInitialized() {
jiFWAzvYGB.Clear();
LvQVdOcRKczi.Clear();
ghIxMrSwhDBlkgYnCv.Clear();
VcQBQxmGKPMeQ.Clear();
var vvEAnwcIhrTxhJqKpauTFnXooXcPK = BaseNetworkable.serverEntities.OfType<BaseEntity>().Where(x=> x!=null && !x.IsDestroyed && fFXlNOaDpM.FJblgubrcofQAqy.ContainsKey(x.net.ID) && !fFXlNOaDpM.FJblgubrcofQAqy[x.net.ID].YTyclzzTMPRn).Select(x=> x.net.ID).ToHashSet();
fFXlNOaDpM.FJblgubrcofQAqy = fFXlNOaDpM.FJblgubrcofQAqy.Where(x=> vvEAnwcIhrTxhJqKpauTFnXooXcPK.Contains(x.Key)).ToDictionary(x=> x.Key, x=> x.Value);
OfGZZIBPEJVfix();
wqnridXLTCy();
timer.Once(3f, ()=> {
foreach (var rsQUZEouKGeITBPkGbMXD in BasePlayer.activePlayerList) OnPlayerConnected(rsQUZEouKGeITBPkGbMXD);
tOWewrFHkzfVeuwaePTjsDHPRwC();
eKkZkmksdVryKYmLmLJYStVf();
}
);
}
private void OnPlayerConnected(BasePlayer rsQUZEouKGeITBPkGbMXD) {
if (rsQUZEouKGeITBPkGbMXD == null) return;
if (rsQUZEouKGeITBPkGbMXD.HasPlayerFlag(BasePlayer.PlayerFlags.ReceivingSnapshot)) {
timer.Once(0.5f, () => OnPlayerConnected(rsQUZEouKGeITBPkGbMXD));
return;
}
if (fFXlNOaDpM.qYRLmeQQhezbQk.ContainsKey(rsQUZEouKGeITBPkGbMXD.userID) && fFXlNOaDpM.qYRLmeQQhezbQk[rsQUZEouKGeITBPkGbMXD.userID].Count() > 0) QxNidWRapMOxAeEJdwWGvy(rsQUZEouKGeITBPkGbMXD);
}
private void Unload() {
OfGZZIBPEJVfix();
foreach (var rsQUZEouKGeITBPkGbMXD in BasePlayer.activePlayerList) {
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, wWtOepewkLdlEswOdnRSBkTwijOZ);
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, "IconPanel");
}
}
private void OnNewSave() {
fFXlNOaDpM.FJblgubrcofQAqy.Clear();
fFXlNOaDpM.qYRLmeQQhezbQk.Clear();
OfGZZIBPEJVfix();
}
private void OnHammerHit(BasePlayer rsQUZEouKGeITBPkGbMXD, HitInfo info) {
if (rsQUZEouKGeITBPkGbMXD == null || info?.HitEntity == null || !permission.UserHasPermission(rsQUZEouKGeITBPkGbMXD.UserIDString, cdhAlpanRBpDIza)) return;
if (info.HitEntity is BuildingPrivlidge && (info.HitEntity as BuildingPrivlidge).IsAuthed(rsQUZEouKGeITBPkGbMXD)) {
LhObORdPwKeIUEGRhNhGIZ(rsQUZEouKGeITBPkGbMXD, info.HitEntity as BuildingPrivlidge);
return;
}
}
private void OnStructureUpgrade(BaseCombatEntity rRhofpSkipGxaeXiPA) {
if (rRhofpSkipGxaeXiPA == null || !fFXlNOaDpM.FJblgubrcofQAqy.ContainsKey(rRhofpSkipGxaeXiPA.net.ID)) return;
fFXlNOaDpM.FJblgubrcofQAqy[rRhofpSkipGxaeXiPA.net.ID].YTyclzzTMPRn = true;
}
private void OnEntityTakeDamage(BaseCombatEntity rRhofpSkipGxaeXiPA, HitInfo ucCWTnYiNonwsvvBunNDbG) {
if (rRhofpSkipGxaeXiPA == null || ucCWTnYiNonwsvvBunNDbG == null) return;
if (!ucCWTnYiNonwsvvBunNDbG.hasDamage || ucCWTnYiNonwsvvBunNDbG.damageTypes == null) return;
if (!arYyoRcCywByxnRDoH.zJYkgpJHDSsNREfyHhmjf.Contains(rRhofpSkipGxaeXiPA.ShortPrefabName) && !(rRhofpSkipGxaeXiPA is BuildingBlock)) return;
BUfsOpNUJSZIHOKcCKQHsUJEzMn(rRhofpSkipGxaeXiPA, ucCWTnYiNonwsvvBunNDbG);
if (!arYyoRcCywByxnRDoH.aYQnBANSjsFGzKOf) return;
var rsQUZEouKGeITBPkGbMXD = ucCWTnYiNonwsvvBunNDbG.InitiatorPlayer;
var type = ucCWTnYiNonwsvvBunNDbG.damageTypes.GetMajorityDamageType();
if (rsQUZEouKGeITBPkGbMXD != null && rRhofpSkipGxaeXiPA is DecayEntity && type != null && type == DamageType.Explosion && fFXlNOaDpM.FJblgubrcofQAqy.ContainsKey(rRhofpSkipGxaeXiPA.net.ID) && !fFXlNOaDpM.FJblgubrcofQAqy[rRhofpSkipGxaeXiPA.net.ID].YTyclzzTMPRn) {
var percent = fFXlNOaDpM.FJblgubrcofQAqy[rRhofpSkipGxaeXiPA.net.ID].aOcKgYsiyGLZqCTJhFXIezcDCh;
if (!jiFWAzvYGB.ContainsKey(rsQUZEouKGeITBPkGbMXD.userID)) jiFWAzvYGB.Add(rsQUZEouKGeITBPkGbMXD.userID, new Dictionary<uint, long>());
var buildingID = (rRhofpSkipGxaeXiPA as DecayEntity).buildingID;
if (!jiFWAzvYGB[rsQUZEouKGeITBPkGbMXD.userID].ContainsKey(buildingID)) jiFWAzvYGB[rsQUZEouKGeITBPkGbMXD.userID].Add(buildingID, 0);
if (InhebQTFJTvv(DateTime.Now) - (jiFWAzvYGB[rsQUZEouKGeITBPkGbMXD.userID])[buildingID] > arYyoRcCywByxnRDoH.XsYIeQxdlMoJqCssCQzljApcGdtG) {
SendReply(rsQUZEouKGeITBPkGbMXD, string.Format(qAtenYuUiJYoqqKQCAecaaWAFdE("INFO.BUILDING.PROTECTED", rsQUZEouKGeITBPkGbMXD.userID), percent));
(jiFWAzvYGB[rsQUZEouKGeITBPkGbMXD.userID])[buildingID] = InhebQTFJTvv(DateTime.Now);
}
}
}
private void OnEntityKill(BaseEntity rRhofpSkipGxaeXiPA) {
if (rRhofpSkipGxaeXiPA != null && rRhofpSkipGxaeXiPA is BuildingPrivlidge) {
var cupboard = rRhofpSkipGxaeXiPA as BuildingPrivlidge;
foreach (var player_ in cupboard.authorizedPlayers) {
var rsQUZEouKGeITBPkGbMXD = BasePlayer.FindByID(player_.userid);
if (rsQUZEouKGeITBPkGbMXD == null || !(rsQUZEouKGeITBPkGbMXD.GetBuildingPrivilege() == cupboard)) continue;
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, wWtOepewkLdlEswOdnRSBkTwijOZ);
}
}
}
private void cmdBP(BasePlayer rsQUZEouKGeITBPkGbMXD, string ZlEandkYxKDZZZIovjiteHiSq, string[] args) {
if (rsQUZEouKGeITBPkGbMXD == null || !permission.UserHasPermission(rsQUZEouKGeITBPkGbMXD.UserIDString, cdhAlpanRBpDIza)) return;
var buildingPrivilege = rsQUZEouKGeITBPkGbMXD.GetBuildingPrivilege();
if (buildingPrivilege != null && buildingPrivilege.IsAuthed(rsQUZEouKGeITBPkGbMXD)) LhObORdPwKeIUEGRhNhGIZ(rsQUZEouKGeITBPkGbMXD, buildingPrivilege);
else SendReply(rsQUZEouKGeITBPkGbMXD, string.Format(qAtenYuUiJYoqqKQCAecaaWAFdE("INFO.NO_CUP_AUTH", rsQUZEouKGeITBPkGbMXD.userID)));
}
private void tOWewrFHkzfVeuwaePTjsDHPRwC() {
if (!tqIKYYnczXoFtEtnl) {
var ZYFonMvxvVHtMnLym = InhebQTFJTvv(DateTime.Now);
var GAWUomUyukxbdPMLFrvznF = new Dictionary<uint, SbfmlOGavlfz>();
foreach(var KTVphBNiUXQhPqyBFsVrWYQHQsi in fFXlNOaDpM.FJblgubrcofQAqy) if ((KTVphBNiUXQhPqyBFsVrWYQHQsi.Value.EGNIlRsVsdVdQSMNvcyj - ZYFonMvxvVHtMnLym) >= 0) GAWUomUyukxbdPMLFrvznF.Add(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key, KTVphBNiUXQhPqyBFsVrWYQHQsi.Value);
if (fFXlNOaDpM.FJblgubrcofQAqy.Count() != GAWUomUyukxbdPMLFrvznF.Count()) {
try {
fFXlNOaDpM.FJblgubrcofQAqy = GAWUomUyukxbdPMLFrvznF;
OfGZZIBPEJVfix();
}
catch {
}
}
}
timer.Once(60f, tOWewrFHkzfVeuwaePTjsDHPRwC);
}
private void eKkZkmksdVryKYmLmLJYStVf(ulong zgLClBAOijWQCyL = 0) {
var QDHOzQxXyjz = false;
var NwuosurZoWyaHwSrspluLxcgzUCPl = InhebQTFJTvv(DateTime.Now);
foreach (var KTVphBNiUXQhPqyBFsVrWYQHQsi in fFXlNOaDpM.qYRLmeQQhezbQk.ToDictionary(x=> x.Key, x=> x.Value)) {
if (zgLClBAOijWQCyL != 0 && zgLClBAOijWQCyL != KTVphBNiUXQhPqyBFsVrWYQHQsi.Key) continue;
var rsQUZEouKGeITBPkGbMXD = BasePlayer.FindByID(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key);
if (rsQUZEouKGeITBPkGbMXD == null) continue;
if (KTVphBNiUXQhPqyBFsVrWYQHQsi.Value.Count() == 0) {
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, "IconPanel");
fFXlNOaDpM.qYRLmeQQhezbQk.Remove(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key);
QDHOzQxXyjz = true;
continue;
}
else {
if (!ghIxMrSwhDBlkgYnCv.ContainsKey(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key)) ghIxMrSwhDBlkgYnCv.Add(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key, new IDEEeyYqtzfzZAaNgzawGG());
else {
ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS++;
if (ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS+1 > KTVphBNiUXQhPqyBFsVrWYQHQsi.Value.Count()) ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS = 0;
}
var otFWnSlOJn = eYUvlfadCaYToFINsWmKbMIE(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value[ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS]);
if (otFWnSlOJn == null || !otFWnSlOJn.IsAuthed(rsQUZEouKGeITBPkGbMXD)) {
fFXlNOaDpM.qYRLmeQQhezbQk[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].Remove(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value[ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS]);
QDHOzQxXyjz = true;
continue;
}
if (!ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].zcAwbVZDcDRxKRifPv.ContainsKey(otFWnSlOJn.net.ID)) {
var info = mDEgmsqMtmPdHMkyijNXh(otFWnSlOJn);
if (info != null) ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].zcAwbVZDcDRxKRifPv.Add(otFWnSlOJn.net.ID, info);
else {
fFXlNOaDpM.qYRLmeQQhezbQk[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].Remove(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value[ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS]);
QDHOzQxXyjz = true;
continue;
}
}
var ItHQJBPTwYqtsxqaLKHtmgFjppu = ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].zcAwbVZDcDRxKRifPv[otFWnSlOJn.net.ID].EGNIlRsVsdVdQSMNvcyj - NwuosurZoWyaHwSrspluLxcgzUCPl;
if (ItHQJBPTwYqtsxqaLKHtmgFjppu <= 0) {
fFXlNOaDpM.qYRLmeQQhezbQk[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].Remove(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value[ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS]);
QDHOzQxXyjz = true;
continue;
}
ePOrSDyGJhsFlWJeNW(rsQUZEouKGeITBPkGbMXD, ItHQJBPTwYqtsxqaLKHtmgFjppu, ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].zcAwbVZDcDRxKRifPv[otFWnSlOJn.net.ID].aOcKgYsiyGLZqCTJhFXIezcDCh, KTVphBNiUXQhPqyBFsVrWYQHQsi.Value.Count()==1 ? 0 : ghIxMrSwhDBlkgYnCv[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].aFJePcIPSmPPltmGcZUQiqXRhOTS+1);
}
}
if (QDHOzQxXyjz) OfGZZIBPEJVfix();
if (zgLClBAOijWQCyL == 0) timer.Once(10f, ()=> eKkZkmksdVryKYmLmLJYStVf());
}
private static void BUfsOpNUJSZIHOKcCKQHsUJEzMn(BaseCombatEntity rRhofpSkipGxaeXiPA, HitInfo ucCWTnYiNonwsvvBunNDbG) {
if (!fFXlNOaDpM.FJblgubrcofQAqy.ContainsKey(rRhofpSkipGxaeXiPA.net.ID) || fFXlNOaDpM.FJblgubrcofQAqy[rRhofpSkipGxaeXiPA.net.ID].YTyclzzTMPRn) return;
for (int i = 0; i < (int)ucCWTnYiNonwsvvBunNDbG.damageTypes.types.Length;
i++) {
float poQTGsJYMxEO = ucCWTnYiNonwsvvBunNDbG.damageTypes.types[i];
if (!float.IsNaN(poQTGsJYMxEO) && !float.IsInfinity(poQTGsJYMxEO) && poQTGsJYMxEO > 0) ucCWTnYiNonwsvvBunNDbG.damageTypes.Scale((DamageType)i, 1f - fFXlNOaDpM.FJblgubrcofQAqy[rRhofpSkipGxaeXiPA.net.ID].aOcKgYsiyGLZqCTJhFXIezcDCh/100f);
}
}
private yiMnwiLrszNVuaAEN BzKAnZYXmLCnkMT(BasePlayer rsQUZEouKGeITBPkGbMXD, BuildingPrivlidge otFWnSlOJn) {
var HXuvdmXlkA = new yiMnwiLrszNVuaAEN();
float wJLtiFZeqrdzfhizmsJtC = 1f;
foreach (var KTVphBNiUXQhPqyBFsVrWYQHQsi in arYyoRcCywByxnRDoH.byNFtPigVDNuPTqiNFIV.OrderBy(x=> x.Value)) {
if (permission.UserHasPermission(rsQUZEouKGeITBPkGbMXD.UserIDString, KTVphBNiUXQhPqyBFsVrWYQHQsi.Key)) {
wJLtiFZeqrdzfhizmsJtC = KTVphBNiUXQhPqyBFsVrWYQHQsi.Value;
break;
}
}
HXuvdmXlkA.IFKqjvXybmID = arYyoRcCywByxnRDoH.YxdtJNemecgyegrsApTAmpUD;
HXuvdmXlkA.DMhmrrnVKvNem = arYyoRcCywByxnRDoH.yczkCuQTZObFoEWVhjRmSgl;
HXuvdmXlkA.BqxeHdPCSjIaYcCvbVTWnINaL = nqiFvQMDORsHzmUKBAlo(otFWnSlOJn, wJLtiFZeqrdzfhizmsJtC);
HXuvdmXlkA.cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr = WqXXsuHvgzivATTcwWqCOCQTefp(rsQUZEouKGeITBPkGbMXD, HXuvdmXlkA.BqxeHdPCSjIaYcCvbVTWnINaL.Keys.ToList());
HXuvdmXlkA.sXIuBpDbLuyUxjuSqqpnUl = EqwlSCWRVetitFa(otFWnSlOJn);
HXuvdmXlkA.hmtpabplIUjQXuPIlBFjNVPMJLFVo = otFWnSlOJn;
return HXuvdmXlkA;
}
private static bool COmXKLxhnkQjVNVhZwKlO(BasePlayer rsQUZEouKGeITBPkGbMXD) {
LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr = WqXXsuHvgzivATTcwWqCOCQTefp(rsQUZEouKGeITBPkGbMXD, LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].BqxeHdPCSjIaYcCvbVTWnINaL.Keys.ToList());
foreach(var KTVphBNiUXQhPqyBFsVrWYQHQsi in LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].BqxeHdPCSjIaYcCvbVTWnINaL) {
int lEDOXXSrPzNucCh = LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr.ContainsKey(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key) ? LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key] : 0;
int NVHNJunIxMNkFSNCdJWKcPSGTf = (int)Math.Round(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem * SqAOwudNaQicEIczNJ(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID) * qDanDNfhirdFKwyOVJnIOBVW(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem));
if (NVHNJunIxMNkFSNCdJWKcPSGTf < 1) NVHNJunIxMNkFSNCdJWKcPSGTf = 1;
if (lEDOXXSrPzNucCh < NVHNJunIxMNkFSNCdJWKcPSGTf) return false;
}
return true;
}
private static void eYBjRpbrPjzttOHVuFwllpjVtVf(BasePlayer rsQUZEouKGeITBPkGbMXD) {
foreach(var KTVphBNiUXQhPqyBFsVrWYQHQsi in LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].BqxeHdPCSjIaYcCvbVTWnINaL) {
int NVHNJunIxMNkFSNCdJWKcPSGTf = (int)Math.Round(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem * SqAOwudNaQicEIczNJ(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID) * qDanDNfhirdFKwyOVJnIOBVW(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem));
if (NVHNJunIxMNkFSNCdJWKcPSGTf < 1) NVHNJunIxMNkFSNCdJWKcPSGTf = 1;
var ZmiKzmpwnjjSvGWDKdxoAcCd = ItemManager.FindItemDefinition(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key);
if (ZmiKzmpwnjjSvGWDKdxoAcCd == null) continue;
rsQUZEouKGeITBPkGbMXD.inventory.Take(rsQUZEouKGeITBPkGbMXD.inventory.AllItems().ToList(), ZmiKzmpwnjjSvGWDKdxoAcCd.itemid, NVHNJunIxMNkFSNCdJWKcPSGTf);
}
}
private static string tRONBEbkJWOJUIpKaLfxXOFTIl(string qbIhAMtgvDRcLgBkKgBBWwCGVHZ) {
if (arYyoRcCywByxnRDoH.uekIFKWiDT.ContainsKey(qbIhAMtgvDRcLgBkKgBBWwCGVHZ)) return arYyoRcCywByxnRDoH.uekIFKWiDT[qbIhAMtgvDRcLgBkKgBBWwCGVHZ];
return qbIhAMtgvDRcLgBkKgBBWwCGVHZ;
}
private static BuildingPrivlidge eYUvlfadCaYToFINsWmKbMIE(uint HhzrRtMSZEffWiLtOZtcFEIUdHUN) {
var otFWnSlOJn = VcQBQxmGKPMeQ.FirstOrDefault(x=> x != null && x.net.ID == HhzrRtMSZEffWiLtOZtcFEIUdHUN);
if (otFWnSlOJn == null) {
var rRhofpSkipGxaeXiPA = BaseNetworkable.serverEntities.OfType<BuildingPrivlidge>().FirstOrDefault(x=> x != null && x.net.ID == HhzrRtMSZEffWiLtOZtcFEIUdHUN);
if (rRhofpSkipGxaeXiPA != null) {
VcQBQxmGKPMeQ.Add(rRhofpSkipGxaeXiPA);
return rRhofpSkipGxaeXiPA;
}
}
return otFWnSlOJn;
}
private static List<uint> EqwlSCWRVetitFa(BuildingPrivlidge otFWnSlOJn) {
if (otFWnSlOJn == null) return null;
var QWXrayHoIKlhgTVUddFINivvTmD = otFWnSlOJn.GetBuilding();
if (QWXrayHoIKlhgTVUddFINivvTmD == null || !QWXrayHoIKlhgTVUddFINivvTmD.HasDecayEntities()) return null;
var hoGyBYUrjVZddFNzNwQbpG = QWXrayHoIKlhgTVUddFINivvTmD.decayEntities.Where(x=> x!=null && !x.IsDestroyed && (arYyoRcCywByxnRDoH.zJYkgpJHDSsNREfyHhmjf.Contains(x.ShortPrefabName) || x is BuildingBlock)).Select(x=> x.net.ID).ToList();
if (arYyoRcCywByxnRDoH.zJYkgpJHDSsNREfyHhmjf.Contains(otFWnSlOJn.ShortPrefabName) && !hoGyBYUrjVZddFNzNwQbpG.Contains(otFWnSlOJn.net.ID)) hoGyBYUrjVZddFNzNwQbpG.Add(otFWnSlOJn.net.ID);
return hoGyBYUrjVZddFNzNwQbpG;
}
private static int jTlQhHaDAKWrPKUxCqoPYwcvcHMG(BuildingPrivlidge otFWnSlOJn) {
if (otFWnSlOJn == null) return 0;
var QWXrayHoIKlhgTVUddFINivvTmD = otFWnSlOJn.GetBuilding();
if (QWXrayHoIKlhgTVUddFINivvTmD == null || !QWXrayHoIKlhgTVUddFINivvTmD.HasDecayEntities()) return 0;
return QWXrayHoIKlhgTVUddFINivvTmD.decayEntities.Where(x=> x != null && !x.IsDestroyed && x is BuildingBlock).Count();
}
private static Dictionary<string, float> NJoZKpUkwFhUVQBfVoNCWTeNIIuo(BuildingPrivlidge otFWnSlOJn) {
if (otFWnSlOJn == null) return null;
var QWXrayHoIKlhgTVUddFINivvTmD = otFWnSlOJn.GetBuilding();
if (QWXrayHoIKlhgTVUddFINivvTmD == null || !QWXrayHoIKlhgTVUddFINivvTmD.HasDecayEntities()) return null;
var ImwfwgclypBuaZTcPVTQu = QWXrayHoIKlhgTVUddFINivvTmD.decayEntities.Where(x=> x!=null && !x.IsDestroyed && (arYyoRcCywByxnRDoH.zJYkgpJHDSsNREfyHhmjf.Contains(x.ShortPrefabName) || x is BuildingBlock)).ToList();
if (arYyoRcCywByxnRDoH.zJYkgpJHDSsNREfyHhmjf.Contains(otFWnSlOJn.ShortPrefabName) && !ImwfwgclypBuaZTcPVTQu.Contains(otFWnSlOJn as DecayEntity)) ImwfwgclypBuaZTcPVTQu.Add(otFWnSlOJn as DecayEntity);
var HXuvdmXlkA = new Dictionary<string, float>();
foreach(var NNYVXXAhbrTmNRafLHNbYe in ImwfwgclypBuaZTcPVTQu) {
var SOxGbCahIOb = NNYVXXAhbrTmNRafLHNbYe.BuildCost();
if (SOxGbCahIOb == null) continue;
foreach (ItemAmount itemAmount in SOxGbCahIOb) {
if (itemAmount.itemDef.category != ItemCategory.Resources) continue;
if (!HXuvdmXlkA.ContainsKey(itemAmount.itemDef.shortname)) HXuvdmXlkA.Add(itemAmount.itemDef.shortname, 0);
HXuvdmXlkA[itemAmount.itemDef.shortname] += itemAmount.amount;
}
}
return HXuvdmXlkA;
}
private static Dictionary<string, float> nqiFvQMDORsHzmUKBAlo(BuildingPrivlidge otFWnSlOJn, float wJLtiFZeqrdzfhizmsJtC) {
if (otFWnSlOJn == null) return null;
var yNBOgvVauStjFZTQHp = NJoZKpUkwFhUVQBfVoNCWTeNIIuo(otFWnSlOJn);
if (yNBOgvVauStjFZTQHp == null) return null;
var HXuvdmXlkA = new Dictionary<string, float>();
int zRihVLkJkTAEwOMaHzNYBEbhAIJ = jTlQhHaDAKWrPKUxCqoPYwcvcHMG(otFWnSlOJn);
float bmRIjLEVVC = 1f;
foreach (var KTVphBNiUXQhPqyBFsVrWYQHQsi in arYyoRcCywByxnRDoH.udJYCpbEzuJHHiaBgHiIjGVDRW.OrderByDescending(x=> x.Key)) {
if (zRihVLkJkTAEwOMaHzNYBEbhAIJ >= KTVphBNiUXQhPqyBFsVrWYQHQsi.Key) {
bmRIjLEVVC = KTVphBNiUXQhPqyBFsVrWYQHQsi.Value;
break;
}
}
foreach (var KTVphBNiUXQhPqyBFsVrWYQHQsi in yNBOgvVauStjFZTQHp) {
if (KTVphBNiUXQhPqyBFsVrWYQHQsi.Value <= 0f) continue;
if (arYyoRcCywByxnRDoH.UyCiuPAVpIePcZqusTn.ContainsKey(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key)) {
if (arYyoRcCywByxnRDoH.UyCiuPAVpIePcZqusTn[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].XbTLPuZbhqqvJWRfrC > 0f) {
var amount = KTVphBNiUXQhPqyBFsVrWYQHQsi.Value * arYyoRcCywByxnRDoH.UyCiuPAVpIePcZqusTn[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].XbTLPuZbhqqvJWRfrC * (arYyoRcCywByxnRDoH.FyFSbfbFsugNCQPEcTYwgViqXvNJYM/100f) * bmRIjLEVVC * wJLtiFZeqrdzfhizmsJtC;
if (!HXuvdmXlkA.ContainsKey(arYyoRcCywByxnRDoH.UyCiuPAVpIePcZqusTn[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].JDcZYhDHxYvDE)) HXuvdmXlkA.Add(arYyoRcCywByxnRDoH.UyCiuPAVpIePcZqusTn[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].JDcZYhDHxYvDE, amount);
else HXuvdmXlkA[arYyoRcCywByxnRDoH.UyCiuPAVpIePcZqusTn[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key].JDcZYhDHxYvDE] += amount;
}
}
else {
var amount = KTVphBNiUXQhPqyBFsVrWYQHQsi.Value * (arYyoRcCywByxnRDoH.FyFSbfbFsugNCQPEcTYwgViqXvNJYM/100f) * bmRIjLEVVC * wJLtiFZeqrdzfhizmsJtC;
HXuvdmXlkA.Add(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key, amount);
}
}
return HXuvdmXlkA;
}
private static Dictionary<string, int> WqXXsuHvgzivATTcwWqCOCQTefp(BasePlayer rsQUZEouKGeITBPkGbMXD, List<string> yNBOgvVauStjFZTQHp) {
var HXuvdmXlkA = new Dictionary<string, int>();
foreach(var tkoUfvoMaSzHYQFKIBIFpzdeD in rsQUZEouKGeITBPkGbMXD.inventory.AllItems().Where(x=> yNBOgvVauStjFZTQHp.Contains(x.info.shortname))) {
if (!HXuvdmXlkA.ContainsKey(tkoUfvoMaSzHYQFKIBIFpzdeD.info.shortname)) HXuvdmXlkA.Add(tkoUfvoMaSzHYQFKIBIFpzdeD.info.shortname, 0);
HXuvdmXlkA[tkoUfvoMaSzHYQFKIBIFpzdeD.info.shortname] += tkoUfvoMaSzHYQFKIBIFpzdeD.amount;
}
return HXuvdmXlkA;
}
private static SbfmlOGavlfz mDEgmsqMtmPdHMkyijNXh(BuildingPrivlidge otFWnSlOJn) {
if (otFWnSlOJn == null) return null;
var uJeQYaSiWSdjQAP = EqwlSCWRVetitFa(otFWnSlOJn);
if (uJeQYaSiWSdjQAP?.Count() == 0) return null;
var NNYVXXAhbrTmNRafLHNbYe = fFXlNOaDpM.FJblgubrcofQAqy.Where(x=> uJeQYaSiWSdjQAP.Contains(x.Key)).OrderBy(x=> x.Value.aOcKgYsiyGLZqCTJhFXIezcDCh).FirstOrDefault();
return NNYVXXAhbrTmNRafLHNbYe.Value;
}
private static string OSrYzuFgFTkfFqBa(BasePlayer rsQUZEouKGeITBPkGbMXD, uint HhzrRtMSZEffWiLtOZtcFEIUdHUN) {
if (!fFXlNOaDpM.qYRLmeQQhezbQk.ContainsKey(rsQUZEouKGeITBPkGbMXD.userID)) return vBvxkHaTFkygGpYQwuzSUq;
if (fFXlNOaDpM.qYRLmeQQhezbQk[rsQUZEouKGeITBPkGbMXD.userID].Contains(HhzrRtMSZEffWiLtOZtcFEIUdHUN)) return nwVBCplpXvAaIKSWWs;
return vBvxkHaTFkygGpYQwuzSUq;
}
private static string rYVUpJTmdVGiBKbsinI(string QFQHXJdKeKegjOOZOk) {
try {
var mAVIEfiWcF = QFQHXJdKeKegjOOZOk.Split(' ');
var r = (int)Math.Round(Convert.ToSingle(mAVIEfiWcF[0]) * 255f);
var g = (int)Math.Round(Convert.ToSingle(mAVIEfiWcF[1]) * 255f);
var b = (int)Math.Round(Convert.ToSingle(mAVIEfiWcF[2]) * 255f);
return "#" + r.ToString("X2") + g.ToString("X2") + b.ToString("X2");
}
catch {
}
return "white";
}
private static string uOHCcqPxmfWsehkREbRbYiLcLbDogq(int gkIssEuBsqKimzuwjfPmPlBO, bool VgTBBdpHZiLS = false) {
string QFQHXJdKeKegjOOZOk = VgTBBdpHZiLS ? rYVUpJTmdVGiBKbsinI(arYyoRcCywByxnRDoH.SbbdVbbCRU) : "white";
return $"<color={QFQHXJdKeKegjOOZOk}>" + gkIssEuBsqKimzuwjfPmPlBO.ToString("#,##0").Replace(",", "'") + "</color>";
}
private string WlRJiciKvTk(long ItHQJBPTwYqtsxqaLKHtmgFjppu, bool ipfLaKxcVLKDNMGVYcsN, ulong zgLClBAOijWQCyL) {
var zsAfnJpOqMuHnmsxqLKnhtLJOb = (int)Math.Truncate(ItHQJBPTwYqtsxqaLKHtmgFjppu / 3600f);
var paPuCJCTaOfQhAXLlbL = (int)Math.Floor(ItHQJBPTwYqtsxqaLKHtmgFjppu / 60f - zsAfnJpOqMuHnmsxqLKnhtLJOb * 60f);
if (!ipfLaKxcVLKDNMGVYcsN) {
var UIjduEOLQUZxoivELTwHEg = new List<string>() {
qAtenYuUiJYoqqKQCAecaaWAFdE("MINUTE1", zgLClBAOijWQCyL), qAtenYuUiJYoqqKQCAecaaWAFdE("MINUTES1", zgLClBAOijWQCyL), qAtenYuUiJYoqqKQCAecaaWAFdE("MINUTES2", zgLClBAOijWQCyL)
}
;
var AOjyXNGAsCfqDWxs = $@"{CRHvtuviAlBWexqFvfnuVzlN(paPuCJCTaOfQhAXLlbL, UIjduEOLQUZxoivELTwHEg)}";
var JMJhhClEvs = new List<string>() {
qAtenYuUiJYoqqKQCAecaaWAFdE("HOUR", zgLClBAOijWQCyL), qAtenYuUiJYoqqKQCAecaaWAFdE("HOURS1", zgLClBAOijWQCyL), qAtenYuUiJYoqqKQCAecaaWAFdE("HOURS2", zgLClBAOijWQCyL)
}
;
return (zsAfnJpOqMuHnmsxqLKnhtLJOb > 0 ? $@"{CRHvtuviAlBWexqFvfnuVzlN(zsAfnJpOqMuHnmsxqLKnhtLJOb, JMJhhClEvs)}" : "") + (paPuCJCTaOfQhAXLlbL > 0 ? ((zsAfnJpOqMuHnmsxqLKnhtLJOb > 0 ? " " : "") + AOjyXNGAsCfqDWxs) : (zsAfnJpOqMuHnmsxqLKnhtLJOb == 0 ? $@"1 {qAtenYuUiJYoqqKQCAecaaWAFdE("MINUTE2", zgLClBAOijWQCyL)}" : ""));
}
return (zsAfnJpOqMuHnmsxqLKnhtLJOb > 0 ? $@"{zsAfnJpOqMuHnmsxqLKnhtLJOb}{qAtenYuUiJYoqqKQCAecaaWAFdE("HOUR", zgLClBAOijWQCyL)[0]}" : "") + (paPuCJCTaOfQhAXLlbL > 0 ? ((zsAfnJpOqMuHnmsxqLKnhtLJOb > 0 ? " " : "") + $@"{paPuCJCTaOfQhAXLlbL}{qAtenYuUiJYoqqKQCAecaaWAFdE("MINUTE1", zgLClBAOijWQCyL)[0]}") : (zsAfnJpOqMuHnmsxqLKnhtLJOb == 0 ? $@"1{qAtenYuUiJYoqqKQCAecaaWAFdE("MINUTE1", zgLClBAOijWQCyL)[0]}" : ""));
}
private bool pvSHSIlKRTxJVheYbWvraKzZlb(BasePlayer rsQUZEouKGeITBPkGbMXD) {
if (NoEscape == null) return false;
try {
var MGXoTdfCHcEOO = NoEscape.Call("ApiGetTime", rsQUZEouKGeITBPkGbMXD.userID);
if (MGXoTdfCHcEOO != null && (MGXoTdfCHcEOO is int || MGXoTdfCHcEOO is float || MGXoTdfCHcEOO is long || MGXoTdfCHcEOO is double || MGXoTdfCHcEOO is uint || MGXoTdfCHcEOO is ulong)) {
if (Convert.ToInt64(MGXoTdfCHcEOO) > 0) {
SendReply(rsQUZEouKGeITBPkGbMXD, string.Format(qAtenYuUiJYoqqKQCAecaaWAFdE("NOESCAPE.WARNING", rsQUZEouKGeITBPkGbMXD.userID), MGXoTdfCHcEOO));
return true;
}
}
}
catch {
PrintWarning(qAtenYuUiJYoqqKQCAecaaWAFdE("NOESCAPE.CALL.ERROR"));
}
return false;
}
private static float SqAOwudNaQicEIczNJ(float rczTOzbQCSssCKOtewRdMniA) {
var HXuvdmXlkA = 1f;
for (int KnMPpJaftz = 0; KnMPpJaftz < (int)Math.Round(rczTOzbQCSssCKOtewRdMniA / arYyoRcCywByxnRDoH.vgxvQdfehcBa);
KnMPpJaftz++ ) HXuvdmXlkA *= arYyoRcCywByxnRDoH.yIUmCjgDLih;
return HXuvdmXlkA;
}
private static float qDanDNfhirdFKwyOVJnIOBVW(int zsAfnJpOqMuHnmsxqLKnhtLJOb) {
var HXuvdmXlkA = 1f;
for (int KnMPpJaftz = 0; KnMPpJaftz < zsAfnJpOqMuHnmsxqLKnhtLJOb; KnMPpJaftz++ ) HXuvdmXlkA *= arYyoRcCywByxnRDoH.PTAxFMEoLPvdmSJKR;
return HXuvdmXlkA;
}
private const string wWtOepewkLdlEswOdnRSBkTwijOZ = "BPPanel";
private void LhObORdPwKeIUEGRhNhGIZ(BasePlayer rsQUZEouKGeITBPkGbMXD, BuildingPrivlidge otFWnSlOJn) {
if (rsQUZEouKGeITBPkGbMXD == null || otFWnSlOJn == null) return;
var cHGqPsCQncUbNPzmtPLVUEDFSA = mDEgmsqMtmPdHMkyijNXh(otFWnSlOJn);
if (cHGqPsCQncUbNPzmtPLVUEDFSA != null) OhqCnOHANvflgxsQ(rsQUZEouKGeITBPkGbMXD, cHGqPsCQncUbNPzmtPLVUEDFSA, otFWnSlOJn);
else {
if (!pvSHSIlKRTxJVheYbWvraKzZlb(rsQUZEouKGeITBPkGbMXD)) {
LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID] = BzKAnZYXmLCnkMT(rsQUZEouKGeITBPkGbMXD, otFWnSlOJn);
icBUZELCuDhodqtVQZXlAgguvyMSR(rsQUZEouKGeITBPkGbMXD);
}
}
}
private void OhqCnOHANvflgxsQ(BasePlayer rsQUZEouKGeITBPkGbMXD, SbfmlOGavlfz cHGqPsCQncUbNPzmtPLVUEDFSA, BuildingPrivlidge otFWnSlOJn) {
if (rsQUZEouKGeITBPkGbMXD == null || otFWnSlOJn == null) return;
var DbSgKCHPUQoVDyWKaQo = new CuiElementContainer();
NymUWdVgVR(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.gqYWyqIPghYShSuRHooLlhtnT, "0.35 0.2", "0.65 0.8");
fiNfTratapNQOTqKQ(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.PzLkaNIXiEoXsobwBBhcelYZw, "0 0.92", "1 1");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.wGvRZXoWPQvBgkfDEzugQDgXBJFJ, "X", 20, "0.90 0.92", "1 1", "bp_12345.close", "permanentmarker.ttf");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("TITLE.REMIND.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, "0.03 0.92", "0.89 1", TextAnchor.MiddleLeft);
var ItHQJBPTwYqtsxqaLKHtmgFjppu = WlRJiciKvTk(cHGqPsCQncUbNPzmtPLVUEDFSA.EGNIlRsVsdVdQSMNvcyj - InhebQTFJTvv(DateTime.Now), false, rsQUZEouKGeITBPkGbMXD.userID);
var LQfeSVZcfE = string.Format(qAtenYuUiJYoqqKQCAecaaWAFdE("REMIND.HOME_PROTECT.MSG", rsQUZEouKGeITBPkGbMXD.userID), cHGqPsCQncUbNPzmtPLVUEDFSA.aOcKgYsiyGLZqCTJhFXIezcDCh, ItHQJBPTwYqtsxqaLKHtmgFjppu);
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, LQfeSVZcfE, 18, "0.07 0.5", "0.93 0.9", TextAnchor.MiddleLeft);
var nbISGJVvNVOeobGihxpXllme = 0.05f;
var kCsGayUwykszKK = 0.525f;
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, "1 1 1 0", OSrYzuFgFTkfFqBa(rsQUZEouKGeITBPkGbMXD, otFWnSlOJn.net.ID), 18, $"{nbISGJVvNVOeobGihxpXllme-0.02} {0.55-0.08}", $"{0.15} {0.53}", $"bp_12345.toggleicon {otFWnSlOJn.net.ID}", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ, wWtOepewkLdlEswOdnRSBkTwijOZ + "_toggle_icon");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("REMIND.CHECK_TOGGLE.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.16} {0.45-0.04}", $"{0.4+kCsGayUwykszKK} {0.55}", TextAnchor.MiddleLeft);
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, qAtenYuUiJYoqqKQCAecaaWAFdE("BUTTON.APPLY", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.02+nbISGJVvNVOeobGihxpXllme} {0.15-0.08}", $"{0.4+kCsGayUwykszKK} {0.15}", "bp_12345.close");
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, wWtOepewkLdlEswOdnRSBkTwijOZ);
CuiHelper.AddUi(rsQUZEouKGeITBPkGbMXD, DbSgKCHPUQoVDyWKaQo);
}
private void icBUZELCuDhodqtVQZXlAgguvyMSR(BasePlayer rsQUZEouKGeITBPkGbMXD) {
if (rsQUZEouKGeITBPkGbMXD == null) return;
var DbSgKCHPUQoVDyWKaQo = new CuiElementContainer();
NymUWdVgVR(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.gqYWyqIPghYShSuRHooLlhtnT, "0.35 0.2", "0.65 0.8");
fiNfTratapNQOTqKQ(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.PzLkaNIXiEoXsobwBBhcelYZw, "0 0.92", "1 1");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.wGvRZXoWPQvBgkfDEzugQDgXBJFJ, "X", 20, "0.90 0.92", "1 1", "bp_12345.ok", "permanentmarker.ttf");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("TITLE.WARNING.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, "0.03 0.92", "0.89 1", TextAnchor.MiddleLeft);
var LQfeSVZcfE = qAtenYuUiJYoqqKQCAecaaWAFdE("WARNING.RECOMENDATION.MSG", rsQUZEouKGeITBPkGbMXD.userID);
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, LQfeSVZcfE, 18, "0.07 0.2", "0.93 0.9", TextAnchor.MiddleLeft);
var nbISGJVvNVOeobGihxpXllme = 0.05f;
var kCsGayUwykszKK = 0.525f;
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, qAtenYuUiJYoqqKQCAecaaWAFdE("BUTTON.APPLY", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.02+nbISGJVvNVOeobGihxpXllme} {0.15-0.08}", $"{0.4+kCsGayUwykszKK} {0.15}", "bp_12345.ok");
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, wWtOepewkLdlEswOdnRSBkTwijOZ);
CuiHelper.AddUi(rsQUZEouKGeITBPkGbMXD, DbSgKCHPUQoVDyWKaQo);
}
private void VTFHpkukwgY(BasePlayer rsQUZEouKGeITBPkGbMXD) {
var DbSgKCHPUQoVDyWKaQo = new CuiElementContainer();
NymUWdVgVR(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.gqYWyqIPghYShSuRHooLlhtnT, "0.35 0.2", "0.65 0.8");
fiNfTratapNQOTqKQ(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.PzLkaNIXiEoXsobwBBhcelYZw, "0 0.92", "1 1");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.wGvRZXoWPQvBgkfDEzugQDgXBJFJ, "X", 20, "0.90 0.92", "1 1", "bp_12345.close", "permanentmarker.ttf");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("TITLE.MAIN.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, "0.03 0.92", "0.89 1", TextAnchor.MiddleLeft);
var ngRRbTUFWSURYCJDlmRDEWRXUOR = -0.02f;
var nbISGJVvNVOeobGihxpXllme = 0.05f;
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("MAIN.PROTECT_PERCENT.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.02+nbISGJVvNVOeobGihxpXllme} {0.825+ngRRbTUFWSURYCJDlmRDEWRXUOR}", $"{0.4+nbISGJVvNVOeobGihxpXllme} {0.905+ngRRbTUFWSURYCJDlmRDEWRXUOR}", TextAnchor.MiddleLeft);
fiNfTratapNQOTqKQ(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.PzLkaNIXiEoXsobwBBhcelYZw, $"{0.02+nbISGJVvNVOeobGihxpXllme} {0.75+ngRRbTUFWSURYCJDlmRDEWRXUOR}", $"{0.4+nbISGJVvNVOeobGihxpXllme} {0.83+ngRRbTUFWSURYCJDlmRDEWRXUOR}", wWtOepewkLdlEswOdnRSBkTwijOZ, wWtOepewkLdlEswOdnRSBkTwijOZ + "_percent_panel");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, "<", 25, "0.03 0.1", "0.25 0.87", $"bp_12345.percent_shift {-1*arYyoRcCywByxnRDoH.vgxvQdfehcBa}", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ + "_percent_panel");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, ">", 25, "0.745 0.1", "0.965 0.87", $"bp_12345.percent_shift {arYyoRcCywByxnRDoH.vgxvQdfehcBa}", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ + "_percent_panel");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID.ToString()+"%", 18, "0.3 0.1", "0.7 0.87", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ + "_percent_panel", wWtOepewkLdlEswOdnRSBkTwijOZ + "_percent_panel" + "_value");
var kCsGayUwykszKK = 0.525f;
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("MAIN.PROTECT_HOURS.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.02+kCsGayUwykszKK} {0.825+ngRRbTUFWSURYCJDlmRDEWRXUOR}", $"{0.4+kCsGayUwykszKK} {0.905+ngRRbTUFWSURYCJDlmRDEWRXUOR}", TextAnchor.MiddleLeft);
fiNfTratapNQOTqKQ(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.PzLkaNIXiEoXsobwBBhcelYZw, $"{0.02+kCsGayUwykszKK} {0.75+ngRRbTUFWSURYCJDlmRDEWRXUOR}", $"{0.4+kCsGayUwykszKK} {0.83+ngRRbTUFWSURYCJDlmRDEWRXUOR}", wWtOepewkLdlEswOdnRSBkTwijOZ, wWtOepewkLdlEswOdnRSBkTwijOZ + "_hour_panel");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, "<", 25, "0.03 0.1", "0.25 0.87", "bp_12345.hour_shift -1", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ + "_hour_panel");
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, ">", 25, "0.745 0.1", "0.965 0.87", "bp_12345.hour_shift 1", "robotocondensed-regular.ttf", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ + "_hour_panel");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem.ToString()+qAtenYuUiJYoqqKQCAecaaWAFdE("HOUR", rsQUZEouKGeITBPkGbMXD.userID)[0], 18, "0.3 0.1", "0.7 0.87", TextAnchor.MiddleCenter, wWtOepewkLdlEswOdnRSBkTwijOZ + "_hour_panel", wWtOepewkLdlEswOdnRSBkTwijOZ + "_hour_panel" + "_value");
float aMCYDkqiecuUjJQ = 0.63f, delta_step = 0.1f;
int rvduvcLjqllWJKKztt = 0;
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, qAtenYuUiJYoqqKQCAecaaWAFdE("MAIN.RES_FOR_PAY.MSG", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.02+nbISGJVvNVOeobGihxpXllme} {0.63+ngRRbTUFWSURYCJDlmRDEWRXUOR}", $"{0.4+kCsGayUwykszKK} {0.71+ngRRbTUFWSURYCJDlmRDEWRXUOR}", TextAnchor.MiddleCenter);
foreach(var KTVphBNiUXQhPqyBFsVrWYQHQsi in LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].BqxeHdPCSjIaYcCvbVTWnINaL) {
int lEDOXXSrPzNucCh = LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr.ContainsKey(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key) ? LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key] : 0;
int NVHNJunIxMNkFSNCdJWKcPSGTf = (int)Math.Round(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem * SqAOwudNaQicEIczNJ(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID) * qDanDNfhirdFKwyOVJnIOBVW(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem));
if (NVHNJunIxMNkFSNCdJWKcPSGTf < 1) NVHNJunIxMNkFSNCdJWKcPSGTf = 1;
var VgTBBdpHZiLS = lEDOXXSrPzNucCh < NVHNJunIxMNkFSNCdJWKcPSGTf;
var PcldXvkNaCh = $"{tRONBEbkJWOJUIpKaLfxXOFTIl(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key)}";
var uqgZnmgzHVqO = $"{uOHCcqPxmfWsehkREbRbYiLcLbDogq(NVHNJunIxMNkFSNCdJWKcPSGTf)} / {uOHCcqPxmfWsehkREbRbYiLcLbDogq(lEDOXXSrPzNucCh, VgTBBdpHZiLS)}";
fiNfTratapNQOTqKQ(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.PzLkaNIXiEoXsobwBBhcelYZw, $"{0.02+nbISGJVvNVOeobGihxpXllme} {aMCYDkqiecuUjJQ-0.08-rvduvcLjqllWJKKztt*delta_step+ngRRbTUFWSURYCJDlmRDEWRXUOR}", $"{0.4+kCsGayUwykszKK} {aMCYDkqiecuUjJQ-rvduvcLjqllWJKKztt*delta_step+ngRRbTUFWSURYCJDlmRDEWRXUOR}", wWtOepewkLdlEswOdnRSBkTwijOZ, wWtOepewkLdlEswOdnRSBkTwijOZ + $"_res_panel_{rvduvcLjqllWJKKztt}");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, PcldXvkNaCh, 18, "0.03 0.1", "0.96 0.9", TextAnchor.MiddleLeft, wWtOepewkLdlEswOdnRSBkTwijOZ + $"_res_panel_{rvduvcLjqllWJKKztt}");
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, uqgZnmgzHVqO, 18, "0.03 0.1", "0.96 0.9", TextAnchor.MiddleRight, wWtOepewkLdlEswOdnRSBkTwijOZ + $"_res_panel_{rvduvcLjqllWJKKztt}", wWtOepewkLdlEswOdnRSBkTwijOZ + "_res_panel" + $"_value_right_{rvduvcLjqllWJKKztt}");
rvduvcLjqllWJKKztt++;
}
tguGYRpxXjTCnTsTDTBoyms(ref DbSgKCHPUQoVDyWKaQo, arYyoRcCywByxnRDoH.BkHejxOINcSUOzjmiWDahxLg, qAtenYuUiJYoqqKQCAecaaWAFdE("BUTTON.PROTECT_SET", rsQUZEouKGeITBPkGbMXD.userID), 18, $"{0.02+nbISGJVvNVOeobGihxpXllme} {0.15-0.08}", $"{0.4+kCsGayUwykszKK} {0.15}", "bp_12345.apply");
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, wWtOepewkLdlEswOdnRSBkTwijOZ);
CuiHelper.AddUi(rsQUZEouKGeITBPkGbMXD, DbSgKCHPUQoVDyWKaQo);
}
private static void GVJDzFVqjVzvnqTiKnj(BasePlayer rsQUZEouKGeITBPkGbMXD, ref CuiElementContainer DbSgKCHPUQoVDyWKaQo) {
int rvduvcLjqllWJKKztt = 0;
foreach(var KTVphBNiUXQhPqyBFsVrWYQHQsi in LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].BqxeHdPCSjIaYcCvbVTWnINaL) {
CuiHelper.DestroyUi(rsQUZEouKGeITBPkGbMXD, wWtOepewkLdlEswOdnRSBkTwijOZ + "_res_panel" + $"_value_right_{rvduvcLjqllWJKKztt}");
int lEDOXXSrPzNucCh = LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr.ContainsKey(KTVphBNiUXQhPqyBFsVrWYQHQsi.Key) ? LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].cgbyuoVaBDvaUCsmdsuuUCzMMyHGBr[KTVphBNiUXQhPqyBFsVrWYQHQsi.Key] : 0;
int NVHNJunIxMNkFSNCdJWKcPSGTf = (int)Math.Round(KTVphBNiUXQhPqyBFsVrWYQHQsi.Value * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID * LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem * SqAOwudNaQicEIczNJ(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].IFKqjvXybmID) * qDanDNfhirdFKwyOVJnIOBVW(LvQVdOcRKczi[rsQUZEouKGeITBPkGbMXD.userID].DMhmrrnVKvNem));
if (NVHNJunIxMNkFSNCdJWKcPSGTf < 1) NVHNJunIxMNkFSNCdJWKcPSGTf = 1;
var VgTBBdpHZiLS = lEDOXXSrPzNucCh < NVHNJunIxMNkFSNCdJWKcPSGTf;
var uqgZnmgzHVqO = $"{uOHCcqPxmfWsehkREbRbYiLcLbDogq(NVHNJunIxMNkFSNCdJWKcPSGTf)} / {uOHCcqPxmfWsehkREbRbYiLcLbDogq(lEDOXXSrPzNucCh, VgTBBdpHZiLS)}";
dVEBunTpLpLSAABaIpelmVbA(ref DbSgKCHPUQoVDyWKaQo, uqgZnmgzHVqO, 18, "0.03 0.1", "0.96 0.9", TextAnchor.MiddleRight, wWtOepewkLdlEswOdnRSBkTwijOZ + $"_res_panel_{rvduvcLjqllWJKKztt}", wWtOepewkLdlEswOdnRSBkTwijOZ + "_res_panel" + $"_value_right_{rvduvcLjqllWJKKztt}");
rvduvcLjqllWJKKztt++;
}
}
private static void NymUWdVgVR(ref CuiElementContainer DbSgKCHPUQoVDyWKaQo, string QFQHXJdKeKegjOOZOk, string MtqMaeVWBs, string GBVMOqUTvNOaEwMFCGrVzLobdGeDU) {
DbSgKCHPUQoVDyWKaQo.Add(new CuiPanel {
Image = {
Color = QFQHXJdKeKegjOOZOk
}
, RectTransform = {
AnchorMin = MtqMaeVWBs, AnchorMax = GBVMOqUTvNOaEwMFCGrVzLobdGeDU
}
, CursorEnabled = true
}
, "Hud", wWtOepewkLdlEswOdnRSBkTwijOZ);
}
private static void fiNfTratapNQOTqKQ(ref CuiElementContainer DbSgKCHPUQoVDyWKaQo, string QFQHXJdKeKegjOOZOk, string MtqMaeVWBs, string GBVMOqUTvNOaEwMFCGrVzLobdGeDU, string JOzuVLFiUYauUsE = wWtOepewkLdlEswOdnRSBkTwijOZ, string mamobRnEmYeBZTqdzzfWGxihqgG = null) {
DbSgKCHPUQoVDyWKaQo.Add(new CuiPanel {
Image = {
Color = QFQHXJdKeKegjOOZOk
}
, RectTransform = {
AnchorMin = MtqMaeVWBs, AnchorMax = GBVMOqUTvNOaEwMFCGrVzLobdGeDU
}
}
, JOzuVLFiUYauUsE, mamobRnEmYeBZTqdzzfWGxihqgG);
}
private static void dVEBunTpLpLSAABaIpelmVbA(ref CuiElementContainer DbSgKCHPUQoVDyWKaQo, string LQfeSVZcfE, int qkPDTIfAYJwPvQIhniVh, string MtqMaeVWBs, string GBVMOqUTvNOaEwMFCGrVzLobdGeDU, TextAnchor muxkNvKsDZiSfZhXOJUxFvLdpRh = TextAnchor.MiddleCenter, string JOzuVLFiUYauUsE = wWtOepewkLdlEswOdnRSBkTwijOZ, string mamobRnEmYeBZTqdzzfWGxihqgG = null) {
DbSgKCHPUQoVDyWKaQo.Add(new CuiLabel {
Text = {
FontSize = qkPDTIfAYJwPvQIhniVh, Align = muxkNvKsDZiSfZhXOJUxFvLdpRh, Text = LQfeSVZcfE, Font = "robotocondensed-regular.ttf"
}
, RectTransform = {
AnchorMin = MtqMaeVWBs, AnchorMax = GBVMOqUTvNOaEwMFCGrVzLobdGeDU
}
}
, JOzuVLFiUYauUsE, mamobRnEmYeBZTqdzzfWGxihqgG);
}
private static void xPyLVNEuusFCKuNIJElKeixH(ref CuiElementContainer DbSgKCHPUQoVDyWKaQo, string LQfeSVZcfE, int qkPDTIfAYJwPvQIhniVh, string MtqMaeVWBs, string GBVMOqUTvNOaEwMFCGrVzLobdGeDU, TextAnchor muxkNvKsDZiSfZhXOJUxFvLdpRh = TextAnchor.MiddleCenter, string JOzuVLFiUYauUsE = wWtOepewkLdlEswOdnRSBkTwijOZ, string mamobRnEmYeBZTqdzzfWGxihqgG = null) {
DbSgKCHPUQoVDyWKaQo.Add(new CuiElement() {
Name = mamobRnEmYeBZTqdzzfWGxihqgG, Parent = JOzuVLFiUYauUsE, Components = {
new CuiTextComponent() {
Text = LQfeSVZcfE, Font = "robotocondensed-regular.ttf", Align = muxkNvKsDZiSfZhXOJUxFvLdpRh, FontSize = qkPDTIfAYJwPvQIhniVh
}
, new CuiOutlineComponent() {
Color = "0 0 0 1"
}
, new CuiRectTransformComponent() {
AnchorMin = MtqMaeVWBs, AnchorMax = GBVMOqUTvNOaEwMFCGrVzLobdGeDU
}
}
}
);
}
private static void tguGYRpxXjTCnTsTDTBoyms(ref CuiElementContainer DbSgKCHPUQoVDyWKaQo, string QFQHXJdKeKegjOOZOk, string LQfeSVZcfE, int qkPDTIfAYJwPvQIhniVh, string MtqMaeVWBs, string GBVMOqUTvNOaEwMFCGrVzLobdGeDU, string ZlEandkYxKDZZZIovjiteHiSq, string font = "robotocondensed-regular.ttf", TextAnchor muxkNvKsDZiSfZhXOJUxFvLdpRh = TextAnchor.MiddleCenter, string JOzuVLFiUYauUsE = wWtOepewkLdlEswOdnRSBkTwijOZ, string mamobRnEmYeBZTqdzzfWGxihqgG = null) {
if (string.IsNullOrEmpty(QFQHXJdKeKegjOOZOk)) QFQHXJdKeKegjOOZOk = "0 0 0 0";
DbSgKCHPUQoVDyWKaQo.Add(new CuiButton {
Button = {
Color = QFQHXJdKeKegjOOZOk, Command = ZlEandkYxKDZZZIovjiteHiSq, FadeIn = 0f
}
, RectTransform = {
AnchorMin = MtqMaeVWBs, AnchorMax =
// ... [Code preview truncated due to length. Full source in attached file] ...