C#:
using System.Collections;
using System.Collections.Generic;
using System;
using System.Linq;
using System.Collections;
using Oxide.Core.Plugins;
using Oxide.Core;
using UnityEngine;
using Newtonsoft.Json;
using ProtoBuf;
namespace Oxide.Plugins {
[Info("CustomTownVending", "Nimant", "1.1.14")]
class CustomTownVending : RustPlugin {
private static readonly List<string> rsXocRllWoJhlHpbo = new List<string>() {
"Outpost", "Bandit Camp", "Large Fishing Village", "Fishing Village"
}
;
private static Dictionary<string, int> pvFgYfWeFmuernITOaGLIsyIUlX = new Dictionary<string, int> {
{
"mixingtable", 6
}
, {
"diving.mask", 20
}
, {
"diving.tank", 30
}
, {
"diving.fins", 25
}
}
;
private static bool mmdZtSRFLXe = false;
private static Dictionary<NPCVendingMachine, float[]> SdoitAWAsexHrX = new Dictionary<NPCVendingMachine, float[]>();
private void Init() {
ebnqPyNttrkDnrtIciiYVGlNZkzTaT.Clear();
SdoitAWAsexHrX.Clear();
lhlCyIkbvRM();
XOcwCLJYpfUYCPuCGwTloK();
foreach (var ZzteowTSZQ in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX) {
foreach (var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in ZzteowTSZQ.Value) {
foreach (var FQYFQkiySPuQgFsbkG in HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.EYLzypcHkeKGFeZtAmTk) {
if (FQYFQkiySPuQgFsbkG.ssdpbgGeVUCUibkJtkpCROreeZqj == null) FQYFQkiySPuQgFsbkG.ssdpbgGeVUCUibkJtkpCROreeZqj = "";
}
}
}
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
if (FRLKNqkjDId.VIERMFXbIYMqWMbg <= 0) {
FRLKNqkjDId.VIERMFXbIYMqWMbg = 30;
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
}
LoadDefaultMessages();
}
private void OnServerInitialized() {
if (FRLKNqkjDId.dMbKykHxpfkeurUYKOjalVka == false) Unsubscribe(nameof(OnNpcGiveSoldItem));
mmdZtSRFLXe = ConVar.Server.level == "HapisIsland";
var intKgsZZeQYnLtOTcD = uNNsoclDdwOLPoEalRCHZn.wuiNkmTMHLS();
DWXZMPPwEpoBOYMYHS();
AXhlflxqZHEhEmUbjdsg();
if (FRLKNqkjDId.qKZqlZnFdrkpjE) HinPgpuUAXOWdUePSwYrWN(intKgsZZeQYnLtOTcD);
DlcyVBnzPEDxIjpSX();
timer.Once(FRLKNqkjDId.VIERMFXbIYMqWMbg, wPuOuqdpJk);
}
private void Unload() {
IUCCFKhcCnjofFjwwZEewv(null, null);
eylXWiSHLf();
ZuqghZhumlzXNaAHl();
}
private void OnNpcGiveSoldItem(NPCVendingMachine HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ, Item FQYFQkiySPuQgFsbkG, BasePlayer nXuFjhLLeLdnRxHFADrAHkrX) {
if (HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ == null || FQYFQkiySPuQgFsbkG == null || nXuFjhLLeLdnRxHFADrAHkrX == null) return;
var entity = FQYFQkiySPuQgFsbkG.IsBlueprint() ? "чертёж" : "предмет";
var name = FQYFQkiySPuQgFsbkG.IsBlueprint() ? FQYFQkiySPuQgFsbkG.blueprintTargetDef.displayName.english : FQYFQkiySPuQgFsbkG.info.displayName.english;
var ZzteowTSZQ = KJFZSwoWAtaWdOe(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position)?.Replace("\n", "");
var vHgFdMIWoLBgnxBro = ssWKxCKZDmjcBaVxMsPgo("LOG.BUY.PLAYER").Replace("{PLAYER_NAME}", nXuFjhLLeLdnRxHFADrAHkrX.displayName).Replace("{PLAYER_ID}", nXuFjhLLeLdnRxHFADrAHkrX.UserIDString).Replace("{ENTITY_TYPE}", entity).Replace("{ENTITY_NAME}", name).Replace("{ENTITY_AMOUNT}", $"{FQYFQkiySPuQgFsbkG.amount}").Replace("{RADTOWN}", ZzteowTSZQ).Replace("{SHOP_NAME}", HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName).Replace("{SHOP_POS}", $"{HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position}");
Puts(vHgFdMIWoLBgnxBro);
IUCCFKhcCnjofFjwwZEewv("purchases", vHgFdMIWoLBgnxBro);
}
private Dictionary<string, List<NPCVendingMachine>> pCEQermlpnQEfxUQtFVfXFjZkUNuV() {
var GlrfCxvLQDOnVOMEZXEhHiVsIMabsM = BaseNetworkable.serverEntities.OfType<NPCVendingMachine>().Where(x=> x != null && !string.IsNullOrEmpty(x.shopName)).ToList();
var PjhiUfjoOs = new Dictionary<string, List<NPCVendingMachine>>();
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in GlrfCxvLQDOnVOMEZXEhHiVsIMabsM) {
var ZzteowTSZQ = KJFZSwoWAtaWdOe(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position)?.Replace("\n", "");
if (string.IsNullOrEmpty(ZzteowTSZQ) || !odgXuPnfpmHAFfDtJXiglP(ZzteowTSZQ)) continue;
ZzteowTSZQ = mmdZtSRFLXe ? "HapisIsland " + ZzteowTSZQ : ZzteowTSZQ;
if (!PjhiUfjoOs.ContainsKey(ZzteowTSZQ)) PjhiUfjoOs.Add(ZzteowTSZQ, new List<NPCVendingMachine>());
PjhiUfjoOs[ZzteowTSZQ].Add(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ);
}
return PjhiUfjoOs;
}
private static boRrhXlgtSjkb dzGIyyIsUcIwxxLHWBXyaALlvAtzeS(NPCVendingMachine HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ) {
var PjhiUfjoOs = new boRrhXlgtSjkb();
PjhiUfjoOs.YwVfLBTBfZMRRvrdESKcg = mmdZtSRFLXe ? HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName + $" {HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position}" : HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName;
foreach(var dmOrVIiLXs in HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders) {
var ZeXKMtUZmzN = new WrLIeAplkIanyblyNoOTVVTK();
ZeXKMtUZmzN.jsnQIIIXFJXKtevJLCFZXF = dmOrVIiLXs.sellItem.shortname;
ZeXKMtUZmzN.zEYAslSfgSqjZLVAA = dmOrVIiLXs.sellItemAmount;
ZeXKMtUZmzN.UmCqUZLBADWpJkstDLuPAo = dmOrVIiLXs.sellItemAsBP;
ZeXKMtUZmzN.LRYEwfyyXYXFFsfWyV = 0;
ZeXKMtUZmzN.ssdpbgGeVUCUibkJtkpCROreeZqj = "";
ZeXKMtUZmzN.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC = dmOrVIiLXs.currencyItem.shortname;
ZeXKMtUZmzN.nGBzNzwKcinQgbQpAvhgx = dmOrVIiLXs.currencyAmount;
ZeXKMtUZmzN.FPTRQCZxxilBnEvF = dmOrVIiLXs.currencyAsBP;
ZeXKMtUZmzN.zLbeUkHCYyhZVZ = dmOrVIiLXs.refillAmount;
ZeXKMtUZmzN.JowCFUPVRTqFVBMjlLwKaSdR = dmOrVIiLXs.refillDelay;
PjhiUfjoOs.EYLzypcHkeKGFeZtAmTk.Add(ZeXKMtUZmzN);
}
return PjhiUfjoOs;
}
private static void JCtqedNSBbggApimoUw(VendingMachine NKhCxFgwIqlCXkzPgqmDjVpS, int FcWQXmitpdepTFSYlHExnSk, int KidoVGfVDhPtgwHOuvkUXlyrRoCzp, int VZdudKjNJMxIGv, int CvyGZbcQqeDVaEbZl, byte mFoagaDQYUNTaAAsOeKQc) {
var gGgIEKfGmRB = ItemManager.FindItemDefinition(FcWQXmitpdepTFSYlHExnSk);
var YYOjnQXSCCpzDQelx = ItemManager.FindItemDefinition(VZdudKjNJMxIGv);
if (gGgIEKfGmRB == null || YYOjnQXSCCpzDQelx == null) return;
var fvJMJGtBTIpzZXIiBmhtdpxxCRo = new ProtoBuf.VendingMachine.SellOrder() {
ShouldPool = false, itemToSellID = FcWQXmitpdepTFSYlHExnSk, itemToSellAmount = KidoVGfVDhPtgwHOuvkUXlyrRoCzp, currencyID = VZdudKjNJMxIGv, currencyAmountPerItem = CvyGZbcQqeDVaEbZl, currencyIsBP = (mFoagaDQYUNTaAAsOeKQc == 3 ? true : mFoagaDQYUNTaAAsOeKQc == 2), itemToSellIsBP = (mFoagaDQYUNTaAAsOeKQc == 3 ? true : mFoagaDQYUNTaAAsOeKQc == 1)
}
;
Interface.CallHook("OnAddVendingOffer", NKhCxFgwIqlCXkzPgqmDjVpS, fvJMJGtBTIpzZXIiBmhtdpxxCRo);
NKhCxFgwIqlCXkzPgqmDjVpS.sellOrders.sellOrders.Add(fvJMJGtBTIpzZXIiBmhtdpxxCRo);
NKhCxFgwIqlCXkzPgqmDjVpS.RefreshSellOrderStockLevel(gGgIEKfGmRB);
NKhCxFgwIqlCXkzPgqmDjVpS.UpdateMapMarker();
NKhCxFgwIqlCXkzPgqmDjVpS.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
}
private void MFgJxOSUdSMw(NPCVendingMachine NKhCxFgwIqlCXkzPgqmDjVpS, int OGIyXvsEvVWti, int TYsucmBHLbDTTMKDIEZCxbjUOHGqgm, int AfyKNMbBTunvIaBUhwwLjaVFOMR, int vpPKaATAXLBxSmoaPbGVYAuL, byte UUyrvmzAGrDyqBuAVUgQJLI, ulong yrLkQjGBOJnTlEuK, string ssdpbgGeVUCUibkJtkpCROreeZqj, int vTvBQKPDIAufsJzYgAxDwILYIq) {
JCtqedNSBbggApimoUw(NKhCxFgwIqlCXkzPgqmDjVpS, OGIyXvsEvVWti, TYsucmBHLbDTTMKDIEZCxbjUOHGqgm, AfyKNMbBTunvIaBUhwwLjaVFOMR, vpPKaATAXLBxSmoaPbGVYAuL, UUyrvmzAGrDyqBuAVUgQJLI);
NKhCxFgwIqlCXkzPgqmDjVpS.transactionActive = true;
int CIJVhQDnvvboSSobXYmrAmPMV = vTvBQKPDIAufsJzYgAxDwILYIq;
var UMAtQiHVHjk = "{DarkPluginsID}";
if (UUyrvmzAGrDyqBuAVUgQJLI == 1 || UUyrvmzAGrDyqBuAVUgQJLI == 3) {
var FQYFQkiySPuQgFsbkG = ItemManager.CreateByItemID(NKhCxFgwIqlCXkzPgqmDjVpS.blueprintBaseDef.itemid, TYsucmBHLbDTTMKDIEZCxbjUOHGqgm * CIJVhQDnvvboSSobXYmrAmPMV, yrLkQjGBOJnTlEuK);
FQYFQkiySPuQgFsbkG.blueprintTarget = OGIyXvsEvVWti;
if (!string.IsNullOrEmpty(ssdpbgGeVUCUibkJtkpCROreeZqj)) FQYFQkiySPuQgFsbkG.name = ssdpbgGeVUCUibkJtkpCROreeZqj;
FQYFQkiySPuQgFsbkG.MoveToContainer(NKhCxFgwIqlCXkzPgqmDjVpS.inventory, -1, true);
}
else {
var FQYFQkiySPuQgFsbkG = ItemManager.CreateByItemID(OGIyXvsEvVWti, TYsucmBHLbDTTMKDIEZCxbjUOHGqgm * CIJVhQDnvvboSSobXYmrAmPMV, yrLkQjGBOJnTlEuK);
if (!string.IsNullOrEmpty(ssdpbgGeVUCUibkJtkpCROreeZqj)) FQYFQkiySPuQgFsbkG.name = ssdpbgGeVUCUibkJtkpCROreeZqj;
FQYFQkiySPuQgFsbkG.MoveToContainer(NKhCxFgwIqlCXkzPgqmDjVpS.inventory, -1, true);
}
NKhCxFgwIqlCXkzPgqmDjVpS.transactionActive = false;
(NKhCxFgwIqlCXkzPgqmDjVpS as VendingMachine).RefreshSellOrderStockLevel(null);
}
private void YZPnOQRkfVxjayMmnijhBDdl(boRrhXlgtSjkb sBfJHGeIJoKeAdeT, NPCVendingMachine HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ) {
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.ClearSellOrders();
foreach (var FQYFQkiySPuQgFsbkG in HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.inventory.itemList.ToList()) {
FQYFQkiySPuQgFsbkG.RemoveFromContainer();
FQYFQkiySPuQgFsbkG.Remove(0f);
}
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.inventory.itemList.Clear();
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.inventory.Clear();
foreach(var dmOrVIiLXs in sBfJHGeIJoKeAdeT.EYLzypcHkeKGFeZtAmTk) {
var OxPZiHWVLlKGN = ItemManager.FindItemDefinition(dmOrVIiLXs.jsnQIIIXFJXKtevJLCFZXF);
if (OxPZiHWVLlKGN == null) {
PrintWarning(ssWKxCKZDmjcBaVxMsPgo("WARNING.ITEM").Replace("{ITEM}", dmOrVIiLXs.jsnQIIIXFJXKtevJLCFZXF));
continue;
}
var oRtsQgOQnPqsVlpGeLr = ItemManager.FindItemDefinition(dmOrVIiLXs.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC);
if (oRtsQgOQnPqsVlpGeLr == null) {
PrintWarning(ssWKxCKZDmjcBaVxMsPgo("WARNING.ITEM").Replace("{ITEM}", dmOrVIiLXs.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC));
continue;
}
if (dmOrVIiLXs.zEYAslSfgSqjZLVAA <= 0 || dmOrVIiLXs.nGBzNzwKcinQgbQpAvhgx <= 0) continue;
if (dmOrVIiLXs.zLbeUkHCYyhZVZ == -1) {
dmOrVIiLXs.zLbeUkHCYyhZVZ = 1;
dmOrVIiLXs.JowCFUPVRTqFVBMjlLwKaSdR = 10f;
}
if (dmOrVIiLXs.dTaJGounpYPBvRzxZWNlYM <= 0) dmOrVIiLXs.dTaJGounpYPBvRzxZWNlYM = 10;
MFgJxOSUdSMw(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ, OxPZiHWVLlKGN.itemid, dmOrVIiLXs.zEYAslSfgSqjZLVAA, oRtsQgOQnPqsVlpGeLr.itemid, dmOrVIiLXs.nGBzNzwKcinQgbQpAvhgx, HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.GetBPState(dmOrVIiLXs.UmCqUZLBADWpJkstDLuPAo, dmOrVIiLXs.FPTRQCZxxilBnEvF), dmOrVIiLXs.LRYEwfyyXYXFFsfWyV, dmOrVIiLXs.ssdpbgGeVUCUibkJtkpCROreeZqj, dmOrVIiLXs.dTaJGounpYPBvRzxZWNlYM);
}
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.FullUpdate();
}
private static bool odgXuPnfpmHAFfDtJXiglP(string ZzteowTSZQ) {
foreach(var WyhhEXUHgxLNWgAiztrkO in rsXocRllWoJhlHpbo) if (ZzteowTSZQ.Contains(WyhhEXUHgxLNWgAiztrkO)) return true;
return false;
}
private class Sr {
public float dist;
public string name;
}
private string KJFZSwoWAtaWdOe(Vector3 lBdCaYgYbSAmKhDIabv) {
var sYqhKTqPahyJexxRIZBwDXjrk = TerrainMeta.Path.Monuments.Where(x=> x != null && !string.IsNullOrEmpty(x.name) && !x.name.Contains("power_sub_") && !x.name.Contains("cave/cave")).Select(x=> new KeyValuePair<float, MonumentInfo>(Vector3.Distance(x.transform.position, lBdCaYgYbSAmKhDIabv), x)).OrderBy(x=> x.Key);
if (sYqhKTqPahyJexxRIZBwDXjrk.Count() == 0) return null;
var bSdXffWgvRy = sYqhKTqPahyJexxRIZBwDXjrk.FirstOrDefault();
if (bSdXffWgvRy.Key > 75f) return null;
return !string.IsNullOrEmpty(bSdXffWgvRy.Value.displayPhrase.english) ? bSdXffWgvRy.Value.displayPhrase.english : null;
}
private static Dictionary<string, List<NPCVendingMachine>> ebnqPyNttrkDnrtIciiYVGlNZkzTaT = new Dictionary<string, List<NPCVendingMachine>>();
private void SiYryAugyN() {
if (ebnqPyNttrkDnrtIciiYVGlNZkzTaT.Count() == 0) ebnqPyNttrkDnrtIciiYVGlNZkzTaT = pCEQermlpnQEfxUQtFVfXFjZkUNuV();
foreach(var gTCKftiJTarGxwgs in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX) {
if (mmdZtSRFLXe && !gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
if (!mmdZtSRFLXe && gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
foreach(var KTYtOASySxRGxNLYMknmjlsHIQ in gTCKftiJTarGxwgs.Value) {
if (ebnqPyNttrkDnrtIciiYVGlNZkzTaT.ContainsKey(gTCKftiJTarGxwgs.Key)) {
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in ebnqPyNttrkDnrtIciiYVGlNZkzTaT[gTCKftiJTarGxwgs.Key]) {
if (HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ == null) continue;
var shopName = mmdZtSRFLXe ? HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName + $" {HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position}" : HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName;
if (!(KTYtOASySxRGxNLYMknmjlsHIQ.YwVfLBTBfZMRRvrdESKcg == shopName)) continue;
NvtIDUpySjwOtBfI(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ, KTYtOASySxRGxNLYMknmjlsHIQ);
}
}
}
}
timer.Once(1f, SiYryAugyN);
}
private static int GetAmount(ItemContainer cont, int itemid, bool isBP) {
if (cont == null) return 0;
int CIJVhQDnvvboSSobXYmrAmPMV = 0;
foreach (Item FQYFQkiySPuQgFsbkG in cont.itemList) if (!isBP && FQYFQkiySPuQgFsbkG.info.itemid == itemid || isBP && FQYFQkiySPuQgFsbkG.IsBlueprint() && FQYFQkiySPuQgFsbkG.blueprintTarget == itemid) CIJVhQDnvvboSSobXYmrAmPMV += FQYFQkiySPuQgFsbkG.amount;
return CIJVhQDnvvboSSobXYmrAmPMV;
}
private void NvtIDUpySjwOtBfI(NPCVendingMachine HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ, boRrhXlgtSjkb KTYtOASySxRGxNLYMknmjlsHIQ) {
if (HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ == null || HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders == null || HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders == null) return;
if (HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.inventory == null) return;
if (!SdoitAWAsexHrX.ContainsKey(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ)) SdoitAWAsexHrX.Add(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ, new float[(int)HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders.Length]);
for (int i = 0; i < (int)HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders.Length;
i++) {
var UwNGYvIlNlQJzCtros = HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders[i];
var cfgEntry = KTYtOASySxRGxNLYMknmjlsHIQ.EYLzypcHkeKGFeZtAmTk.FirstOrDefault(x=> x.jsnQIIIXFJXKtevJLCFZXF == UwNGYvIlNlQJzCtros.sellItem.shortname && x.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC == UwNGYvIlNlQJzCtros.currencyItem.shortname && x.UmCqUZLBADWpJkstDLuPAo == UwNGYvIlNlQJzCtros.sellItemAsBP && x.FPTRQCZxxilBnEvF == UwNGYvIlNlQJzCtros.currencyAsBP);
if (cfgEntry == null) continue;
if (Time.realtimeSinceStartup > (SdoitAWAsexHrX[HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ])[i]) {
int CIJVhQDnvvboSSobXYmrAmPMV = GetAmount(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.inventory, UwNGYvIlNlQJzCtros.sellItem.itemid, UwNGYvIlNlQJzCtros.sellItemAsBP);
var VIsAspVleahMYHQdhfGqyKjUK = cfgEntry.zLbeUkHCYyhZVZ <= 0 ? 1 : cfgEntry.zLbeUkHCYyhZVZ;
int num1 = cfgEntry.dTaJGounpYPBvRzxZWNlYM * cfgEntry.zEYAslSfgSqjZLVAA;
var diff = num1 - CIJVhQDnvvboSSobXYmrAmPMV;
var amount = diff > VIsAspVleahMYHQdhfGqyKjUK * cfgEntry.zEYAslSfgSqjZLVAA ? VIsAspVleahMYHQdhfGqyKjUK * cfgEntry.zEYAslSfgSqjZLVAA : diff;
if (amount > 0) {
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transactionActive = true;
Item FQYFQkiySPuQgFsbkG = null;
if (!cfgEntry.UmCqUZLBADWpJkstDLuPAo) FQYFQkiySPuQgFsbkG = ItemManager.Create(UwNGYvIlNlQJzCtros.sellItem, amount, cfgEntry.LRYEwfyyXYXFFsfWyV);
else {
FQYFQkiySPuQgFsbkG = ItemManager.Create(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.blueprintBaseDef, amount, (ulong)0);
FQYFQkiySPuQgFsbkG.blueprintTarget = UwNGYvIlNlQJzCtros.sellItem.itemid;
}
if (!string.IsNullOrEmpty(cfgEntry.ssdpbgGeVUCUibkJtkpCROreeZqj)) FQYFQkiySPuQgFsbkG.name = cfgEntry.ssdpbgGeVUCUibkJtkpCROreeZqj;
FQYFQkiySPuQgFsbkG.MoveToContainer(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.inventory, -1, true);
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transactionActive = false;
}
var ApjYcYqWpc = cfgEntry.JowCFUPVRTqFVBMjlLwKaSdR < 0f ? 0f : cfgEntry.JowCFUPVRTqFVBMjlLwKaSdR;
(SdoitAWAsexHrX[HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ])[i] = Time.realtimeSinceStartup + ApjYcYqWpc;
}
}
}
private void DWXZMPPwEpoBOYMYHS() {
string XsrTRMZQJzPBylIVr = $"{Rust.Protocol.printable} {Facepunch.BuildInfo.Current.BuildDate}";
bool XfllTllzbTZrnwxjZTeOeiMAItyvTT = false, BSMpofpPZRflf = false, ZsdntSofJU = false;
if (uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Count == 0 || string.IsNullOrEmpty(uNNsoclDdwOLPoEalRCHZn.mZzCcxDLxanGYTgDOBQpACG) || uNNsoclDdwOLPoEalRCHZn.mZzCcxDLxanGYTgDOBQpACG != XsrTRMZQJzPBylIVr) XfllTllzbTZrnwxjZTeOeiMAItyvTT = true;
else if (mmdZtSRFLXe) {
if (uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> x.Key.Contains("HapisIsland")).Count() == 0) BSMpofpPZRflf = true;
}
else {
foreach (var ZzteowTSZQ in rsXocRllWoJhlHpbo) if (uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> x.Key == ZzteowTSZQ).Count() == 0) ZsdntSofJU = true;
}
if (XfllTllzbTZrnwxjZTeOeiMAItyvTT || BSMpofpPZRflf || ZsdntSofJU) {
if (XfllTllzbTZrnwxjZTeOeiMAItyvTT) uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Clear();
if (BSMpofpPZRflf) foreach(var ZzteowTSZQ in uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Remove(ZzteowTSZQ);
if (ZsdntSofJU) foreach(var ZzteowTSZQ in uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> !x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Remove(ZzteowTSZQ);
if (string.IsNullOrEmpty(uNNsoclDdwOLPoEalRCHZn.mZzCcxDLxanGYTgDOBQpACG) || uNNsoclDdwOLPoEalRCHZn.mZzCcxDLxanGYTgDOBQpACG != XsrTRMZQJzPBylIVr) uNNsoclDdwOLPoEalRCHZn.mZzCcxDLxanGYTgDOBQpACG = XsrTRMZQJzPBylIVr;
var GlrfCxvLQDOnVOMEZXEhHiVsIMabsM = pCEQermlpnQEfxUQtFVfXFjZkUNuV();
if (GlrfCxvLQDOnVOMEZXEhHiVsIMabsM.Count > 0) {
if (mmdZtSRFLXe) {
foreach(var gTCKftiJTarGxwgs in GlrfCxvLQDOnVOMEZXEhHiVsIMabsM) foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in gTCKftiJTarGxwgs.Value) {
if (!uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.ContainsKey(gTCKftiJTarGxwgs.Key)) uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Add(gTCKftiJTarGxwgs.Key, new List<boRrhXlgtSjkb>());
uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX[gTCKftiJTarGxwgs.Key].Add(dzGIyyIsUcIwxxLHWBXyaALlvAtzeS(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ));
}
}
else {
foreach(var gTCKftiJTarGxwgs in GlrfCxvLQDOnVOMEZXEhHiVsIMabsM) {
var TGMmcENtYMGKMZkDIPC = default(Vector3);
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in gTCKftiJTarGxwgs.Value) {
if (TGMmcENtYMGKMZkDIPC == default(Vector3)) TGMmcENtYMGKMZkDIPC = HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position;
if (Vector3.Distance(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position, TGMmcENtYMGKMZkDIPC) > 100f) continue;
if (!uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.ContainsKey(gTCKftiJTarGxwgs.Key)) uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Add(gTCKftiJTarGxwgs.Key, new List<boRrhXlgtSjkb>());
if (uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX[gTCKftiJTarGxwgs.Key].Exists(x=> x.YwVfLBTBfZMRRvrdESKcg == HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName)) continue;
uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX[gTCKftiJTarGxwgs.Key].Add(dzGIyyIsUcIwxxLHWBXyaALlvAtzeS(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ));
}
}
}
}
eylXWiSHLf();
}
}
private void AXhlflxqZHEhEmUbjdsg() {
bool XfllTllzbTZrnwxjZTeOeiMAItyvTT = false, BSMpofpPZRflf = false, ZsdntSofJU = false;
if (FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Count == 0) XfllTllzbTZrnwxjZTeOeiMAItyvTT = true;
else if (mmdZtSRFLXe) {
if (FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> x.Key.Contains("HapisIsland")).Count() == 0) BSMpofpPZRflf = true;
}
else {
foreach (var ZzteowTSZQ in rsXocRllWoJhlHpbo) if (FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> x.Key == ZzteowTSZQ).Count() == 0) ZsdntSofJU = true;
}
if (XfllTllzbTZrnwxjZTeOeiMAItyvTT || BSMpofpPZRflf || ZsdntSofJU) {
if (XfllTllzbTZrnwxjZTeOeiMAItyvTT) FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX = uNNsoclDdwOLPoEalRCHZn.wuiNkmTMHLS();
if (BSMpofpPZRflf) foreach(var gTCKftiJTarGxwgs in uNNsoclDdwOLPoEalRCHZn.wuiNkmTMHLS().Where(x=> x.Key.Contains("HapisIsland"))) if (!FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.ContainsKey(gTCKftiJTarGxwgs.Key)) FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Add(gTCKftiJTarGxwgs.Key, gTCKftiJTarGxwgs.Value);
if (ZsdntSofJU) foreach(var gTCKftiJTarGxwgs in uNNsoclDdwOLPoEalRCHZn.wuiNkmTMHLS().Where(x=> !x.Key.Contains("HapisIsland"))) if (!FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.ContainsKey(gTCKftiJTarGxwgs.Key)) FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Add(gTCKftiJTarGxwgs.Key, gTCKftiJTarGxwgs.Value);
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
}
var GlrfCxvLQDOnVOMEZXEhHiVsIMabsM = pCEQermlpnQEfxUQtFVfXFjZkUNuV();
var aYIivdmqesnlJkUXBmhcdEGqRkKt = false;
foreach(var gTCKftiJTarGxwgs in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX) {
if (mmdZtSRFLXe && !gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
if (!mmdZtSRFLXe && gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
foreach(var KTYtOASySxRGxNLYMknmjlsHIQ in gTCKftiJTarGxwgs.Value) {
if (GlrfCxvLQDOnVOMEZXEhHiVsIMabsM.ContainsKey(gTCKftiJTarGxwgs.Key)) {
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in GlrfCxvLQDOnVOMEZXEhHiVsIMabsM[gTCKftiJTarGxwgs.Key]) {
var shopName = mmdZtSRFLXe ? HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName + $" {HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position}" : HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName;
if (!(KTYtOASySxRGxNLYMknmjlsHIQ.YwVfLBTBfZMRRvrdESKcg == shopName)) continue;
for (int i = 0; i < (int)HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders.Length;
i++) {
var UwNGYvIlNlQJzCtros = HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.vendingOrders.orders[i];
var cfgEntry = KTYtOASySxRGxNLYMknmjlsHIQ.EYLzypcHkeKGFeZtAmTk.FirstOrDefault(x=> x.jsnQIIIXFJXKtevJLCFZXF == UwNGYvIlNlQJzCtros.sellItem.shortname && x.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC == UwNGYvIlNlQJzCtros.currencyItem.shortname && x.UmCqUZLBADWpJkstDLuPAo == UwNGYvIlNlQJzCtros.sellItemAsBP && x.FPTRQCZxxilBnEvF == UwNGYvIlNlQJzCtros.currencyAsBP);
if (cfgEntry == null) continue;
if (cfgEntry.zLbeUkHCYyhZVZ == -1) {
cfgEntry.zLbeUkHCYyhZVZ = UwNGYvIlNlQJzCtros.refillAmount;
cfgEntry.JowCFUPVRTqFVBMjlLwKaSdR = UwNGYvIlNlQJzCtros.refillDelay;
aYIivdmqesnlJkUXBmhcdEGqRkKt = true;
}
if (cfgEntry.dTaJGounpYPBvRzxZWNlYM <= 0) {
cfgEntry.dTaJGounpYPBvRzxZWNlYM = 10;
aYIivdmqesnlJkUXBmhcdEGqRkKt = true;
}
}
}
}
}
}
if (aYIivdmqesnlJkUXBmhcdEGqRkKt) mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
}
private void HinPgpuUAXOWdUePSwYrWN(Dictionary<string, List<boRrhXlgtSjkb>> intKgsZZeQYnLtOTcD) {
bool aYIivdmqesnlJkUXBmhcdEGqRkKt = false;
foreach(var gTCKftiJTarGxwgs in uNNsoclDdwOLPoEalRCHZn.wuiNkmTMHLS()) {
if (mmdZtSRFLXe && !gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
if (!mmdZtSRFLXe && gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
if (!intKgsZZeQYnLtOTcD.ContainsKey(gTCKftiJTarGxwgs.Key)) {
if (!odgXuPnfpmHAFfDtJXiglP(gTCKftiJTarGxwgs.Key)) PrintWarning(ssWKxCKZDmjcBaVxMsPgo("WARNING.NEW.RADTOWN").Replace("{RADTOWN}", gTCKftiJTarGxwgs.Key));
continue;
}
if (!FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.ContainsKey(gTCKftiJTarGxwgs.Key)) continue;
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in gTCKftiJTarGxwgs.Value) {
if (!intKgsZZeQYnLtOTcD[gTCKftiJTarGxwgs.Key].Exists(x=> x.YwVfLBTBfZMRRvrdESKcg == HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg)) {
if (!FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX[gTCKftiJTarGxwgs.Key].Exists(x=> x.YwVfLBTBfZMRRvrdESKcg == HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg)) {
PrintWarning(ssWKxCKZDmjcBaVxMsPgo("WARNING.NEW.SHOP").Replace("{SHOP}", HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg).Replace("{RADTOWN}", gTCKftiJTarGxwgs.Key));
var exSEkdKegyMYWMjpNcFLAVnHgdupGw = new boRrhXlgtSjkb();
exSEkdKegyMYWMjpNcFLAVnHgdupGw.YwVfLBTBfZMRRvrdESKcg = HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg;
FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX[gTCKftiJTarGxwgs.Key].Add(exSEkdKegyMYWMjpNcFLAVnHgdupGw);
aYIivdmqesnlJkUXBmhcdEGqRkKt = true;
}
var xCNfinZTTbJcmLLBQDSABxqvwN = new boRrhXlgtSjkb();
xCNfinZTTbJcmLLBQDSABxqvwN.YwVfLBTBfZMRRvrdESKcg = HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg;
intKgsZZeQYnLtOTcD[gTCKftiJTarGxwgs.Key].Add(xCNfinZTTbJcmLLBQDSABxqvwN);
}
var DWYsQUqcWGmIwGHMdnguhKdataGIL = intKgsZZeQYnLtOTcD[gTCKftiJTarGxwgs.Key].FirstOrDefault(x=> x.YwVfLBTBfZMRRvrdESKcg == HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg);
var KTYtOASySxRGxNLYMknmjlsHIQ = FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX[gTCKftiJTarGxwgs.Key].FirstOrDefault(x=> x.YwVfLBTBfZMRRvrdESKcg == HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg);
foreach(var UwNGYvIlNlQJzCtros in HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.EYLzypcHkeKGFeZtAmTk) {
if (!DWYsQUqcWGmIwGHMdnguhKdataGIL.EYLzypcHkeKGFeZtAmTk.Exists(x=> x.jsnQIIIXFJXKtevJLCFZXF == UwNGYvIlNlQJzCtros.jsnQIIIXFJXKtevJLCFZXF && x.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC == UwNGYvIlNlQJzCtros.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC && x.UmCqUZLBADWpJkstDLuPAo == UwNGYvIlNlQJzCtros.UmCqUZLBADWpJkstDLuPAo && x.FPTRQCZxxilBnEvF == UwNGYvIlNlQJzCtros.FPTRQCZxxilBnEvF && x.LRYEwfyyXYXFFsfWyV == UwNGYvIlNlQJzCtros.LRYEwfyyXYXFFsfWyV && x.ssdpbgGeVUCUibkJtkpCROreeZqj == UwNGYvIlNlQJzCtros.ssdpbgGeVUCUibkJtkpCROreeZqj)) {
if (!KTYtOASySxRGxNLYMknmjlsHIQ.EYLzypcHkeKGFeZtAmTk.Exists(x=> x.jsnQIIIXFJXKtevJLCFZXF == UwNGYvIlNlQJzCtros.jsnQIIIXFJXKtevJLCFZXF && x.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC == UwNGYvIlNlQJzCtros.BvJEVPnAKpCxpBFLQHoJoIWhoQzwC && x.UmCqUZLBADWpJkstDLuPAo == UwNGYvIlNlQJzCtros.UmCqUZLBADWpJkstDLuPAo && x.FPTRQCZxxilBnEvF == UwNGYvIlNlQJzCtros.FPTRQCZxxilBnEvF && x.LRYEwfyyXYXFFsfWyV == UwNGYvIlNlQJzCtros.LRYEwfyyXYXFFsfWyV && x.ssdpbgGeVUCUibkJtkpCROreeZqj == UwNGYvIlNlQJzCtros.ssdpbgGeVUCUibkJtkpCROreeZqj)) {
PrintWarning(ssWKxCKZDmjcBaVxMsPgo("WARNING.NEW.ITEM").Replace("{SHOP}", HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.YwVfLBTBfZMRRvrdESKcg).Replace("{RADTOWN}", gTCKftiJTarGxwgs.Key).Replace("{ITEM}", UwNGYvIlNlQJzCtros.jsnQIIIXFJXKtevJLCFZXF));
KTYtOASySxRGxNLYMknmjlsHIQ.EYLzypcHkeKGFeZtAmTk.Add(UwNGYvIlNlQJzCtros);
aYIivdmqesnlJkUXBmhcdEGqRkKt = true;
}
DWYsQUqcWGmIwGHMdnguhKdataGIL.EYLzypcHkeKGFeZtAmTk.Add(UwNGYvIlNlQJzCtros);
}
}
}
}
if (aYIivdmqesnlJkUXBmhcdEGqRkKt) mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
}
private void wPuOuqdpJk() {
var GlrfCxvLQDOnVOMEZXEhHiVsIMabsM = pCEQermlpnQEfxUQtFVfXFjZkUNuV();
foreach(var gTCKftiJTarGxwgs in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX) {
if (mmdZtSRFLXe && !gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
if (!mmdZtSRFLXe && gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
foreach(var KTYtOASySxRGxNLYMknmjlsHIQ in gTCKftiJTarGxwgs.Value) {
if (GlrfCxvLQDOnVOMEZXEhHiVsIMabsM.ContainsKey(gTCKftiJTarGxwgs.Key)) {
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in GlrfCxvLQDOnVOMEZXEhHiVsIMabsM[gTCKftiJTarGxwgs.Key]) {
var shopName = mmdZtSRFLXe ? HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName + $" {HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position}" : HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName;
if (!(KTYtOASySxRGxNLYMknmjlsHIQ.YwVfLBTBfZMRRvrdESKcg == shopName)) continue;
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.GetComponent<FacepunchBehaviour>().CancelInvoke(new Action(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.InstallFromVendingOrders));
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.CancelInvoke(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.InstallFromVendingOrders);
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.GetComponent<FacepunchBehaviour>().CancelInvoke(new Action(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.Refill));
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.CancelInvoke(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.Refill);
YZPnOQRkfVxjayMmnijhBDdl(KTYtOASySxRGxNLYMknmjlsHIQ, HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ);
}
}
}
}
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
SiYryAugyN();
}
private void ZuqghZhumlzXNaAHl() {
var GlrfCxvLQDOnVOMEZXEhHiVsIMabsM = pCEQermlpnQEfxUQtFVfXFjZkUNuV();
foreach(var gTCKftiJTarGxwgs in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX) {
if (mmdZtSRFLXe && !gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
if (!mmdZtSRFLXe && gTCKftiJTarGxwgs.Key.Contains("HapisIsland")) continue;
foreach(var KTYtOASySxRGxNLYMknmjlsHIQ in gTCKftiJTarGxwgs.Value) {
if (GlrfCxvLQDOnVOMEZXEhHiVsIMabsM.ContainsKey(gTCKftiJTarGxwgs.Key)) {
foreach(var HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ in GlrfCxvLQDOnVOMEZXEhHiVsIMabsM[gTCKftiJTarGxwgs.Key]) {
var shopName = mmdZtSRFLXe ? HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName + $" {HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.transform.position}" : HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.shopName;
if (!(KTYtOASySxRGxNLYMknmjlsHIQ.YwVfLBTBfZMRRvrdESKcg == shopName)) continue;
HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.InvokeRandomized(new Action(HHPLXYwOXPdKbCmoDiCsWxGNAQCMJ.Refill), 1f, 1f, 0.1f);
}
}
}
}
}
private void DlcyVBnzPEDxIjpSX() {
var aYIivdmqesnlJkUXBmhcdEGqRkKt = false;
foreach(var gTCKftiJTarGxwgs in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX) foreach(var KTYtOASySxRGxNLYMknmjlsHIQ in gTCKftiJTarGxwgs.Value) foreach(var UwNGYvIlNlQJzCtros in KTYtOASySxRGxNLYMknmjlsHIQ.EYLzypcHkeKGFeZtAmTk) foreach(var pair2 in pvFgYfWeFmuernITOaGLIsyIUlX) if (UwNGYvIlNlQJzCtros.jsnQIIIXFJXKtevJLCFZXF == pair2.Key && UwNGYvIlNlQJzCtros.zEYAslSfgSqjZLVAA == pair2.Value) {
UwNGYvIlNlQJzCtros.zEYAslSfgSqjZLVAA = 1;
aYIivdmqesnlJkUXBmhcdEGqRkKt = true;
}
if (aYIivdmqesnlJkUXBmhcdEGqRkKt) mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
}
[ConsoleCommand("ctv.reset")]
private void TQSExcSjwejBlAbLhCYBjxnKg(ConsoleSystem.Arg SQpvNtZIsEU) {
var nXuFjhLLeLdnRxHFADrAHkrX = SQpvNtZIsEU?.Player();
if (nXuFjhLLeLdnRxHFADrAHkrX != null && !nXuFjhLLeLdnRxHFADrAHkrX.IsAdmin) return;
FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX = uNNsoclDdwOLPoEalRCHZn.wuiNkmTMHLS();
if (mmdZtSRFLXe) foreach(var ZzteowTSZQ in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> !x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Remove(ZzteowTSZQ);
else foreach(var ZzteowTSZQ in FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Where(x=> x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX.Remove(ZzteowTSZQ);
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
wPuOuqdpJk();
var vHgFdMIWoLBgnxBro = ssWKxCKZDmjcBaVxMsPgo("INFO.RESET");
if (nXuFjhLLeLdnRxHFADrAHkrX != null) PrintToConsole(nXuFjhLLeLdnRxHFADrAHkrX, vHgFdMIWoLBgnxBro);
else Puts(vHgFdMIWoLBgnxBro);
}
private void LoadDefaultMessages() {
lang.RegisterMessages(new Dictionary<string, string> {
{
"INFO.RESET", "Товары из магазинов в NPC городах были востановлены до значений по умолчанию."
}
, {
"WARNING.ITEM", "Указанный в конфигурационном файле предмет не существует: '{ITEM}'."
}
, {
"WARNING.NEW.SHOP", "Обнаружен новый магазин '{SHOP}' в городе '{RADTOWN}'."
}
, {
"WARNING.NEW.ITEM", "Добавлен новый товар '{ITEM}' в магазин '{SHOP}' города '{RADTOWN}'."
}
, {
"WARNING.NEW.RADTOWN", "Обнаружен новый город '{RADTOWN}'.Если это не кастомная карта, то сообщите разработчику, что бы он добавил новый город в плагин."
}
, {
"LOG.BUY.PLAYER", "Игрок '{PLAYER_NAME}' ({PLAYER_ID}) купил {ENTITY_TYPE} '{ENTITY_NAME}' ({ENTITY_AMOUNT} шт) в городе '{RADTOWN}', в магазине '{SHOP_NAME}' {SHOP_POS}."
}
}
, this);
}
private string ssWKxCKZDmjcBaVxMsPgo(string nJBCDCIIfslUCHbbrifkZCK, string JZyLtmBVavxcF = null) => lang.GetMessage(nJBCDCIIfslUCHbbrifkZCK, this, JZyLtmBVavxcF);
private static vtKcIETZvsDpHxpVPdDNg FRLKNqkjDId;
private class boRrhXlgtSjkb {
[JsonProperty(PropertyName = "Игровое название магазина (не менять)")]
public string YwVfLBTBfZMRRvrdESKcg;
[JsonProperty(PropertyName = "Список товаров")]
public List<WrLIeAplkIanyblyNoOTVVTK> EYLzypcHkeKGFeZtAmTk = new List<WrLIeAplkIanyblyNoOTVVTK>();
}
private class WrLIeAplkIanyblyNoOTVVTK {
[JsonProperty(PropertyName = "Название покупаемого товара")]
public string jsnQIIIXFJXKtevJLCFZXF;
[JsonProperty(PropertyName = "Количество покупаемого товара за раз")]
public int zEYAslSfgSqjZLVAA;
[JsonProperty(PropertyName = "Покупаемый товар это чертёж")]
public bool UmCqUZLBADWpJkstDLuPAo;
[JsonProperty(PropertyName = "Скин покупаемого товара")]
public ulong LRYEwfyyXYXFFsfWyV;
[JsonProperty(PropertyName = "Свое название покупаемого товара")]
public string ssdpbgGeVUCUibkJtkpCROreeZqj;
[JsonProperty(PropertyName = "Название платёжного товара")]
public string BvJEVPnAKpCxpBFLQHoJoIWhoQzwC;
[JsonProperty(PropertyName = "Количество платёжного товара за раз")]
public int nGBzNzwKcinQgbQpAvhgx;
[JsonProperty(PropertyName = "Платёжный товар это чертёж")]
public bool FPTRQCZxxilBnEvF;
[JsonProperty(PropertyName = "Количество предметов для восполнения")]
public int zLbeUkHCYyhZVZ = -1;
[JsonProperty(PropertyName = "Задержка восполнения предметов")]
public float JowCFUPVRTqFVBMjlLwKaSdR;
[JsonProperty(PropertyName = "Максимальная порция предметов для восполнения")]
public int dTaJGounpYPBvRzxZWNlYM = 10;
}
private class vtKcIETZvsDpHxpVPdDNg {
[JsonProperty(PropertyName = "Добавлять новые предметы в магазины")]
public bool qKZqlZnFdrkpjE;
[JsonProperty(PropertyName = "Задержка инициализации магазинов (секунды)")]
public int VIERMFXbIYMqWMbg;
[JsonProperty(PropertyName = "Логировать покупки")]
public bool? dMbKykHxpfkeurUYKOjalVka;
[JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
public Dictionary<string, List<boRrhXlgtSjkb>> bWCyLMjuTcklTmjCFWFFabDnsIeYFX = new Dictionary<string, List<boRrhXlgtSjkb>>();
}
private void lhlCyIkbvRM() {
FRLKNqkjDId = Config.ReadObject<vtKcIETZvsDpHxpVPdDNg>();
if (FRLKNqkjDId == null) FRLKNqkjDId = new vtKcIETZvsDpHxpVPdDNg();
if (FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX == null) FRLKNqkjDId.bWCyLMjuTcklTmjCFWFFabDnsIeYFX = new Dictionary<string, List<boRrhXlgtSjkb>>();
if (FRLKNqkjDId.dMbKykHxpfkeurUYKOjalVka == null) FRLKNqkjDId.dMbKykHxpfkeurUYKOjalVka = false;
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
}
protected override void LoadDefaultConfig() {
FRLKNqkjDId = new vtKcIETZvsDpHxpVPdDNg {
qKZqlZnFdrkpjE = true, VIERMFXbIYMqWMbg = 30, dMbKykHxpfkeurUYKOjalVka = false, bWCyLMjuTcklTmjCFWFFabDnsIeYFX = new Dictionary<string, List<boRrhXlgtSjkb>>()
}
;
mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId);
timer.Once(0.1f, ()=> mwyxreJNEECwuPqMTupdbQGSI(FRLKNqkjDId));
}
private void mwyxreJNEECwuPqMTupdbQGSI(vtKcIETZvsDpHxpVPdDNg LpVsBtUbsR) => Config.WriteObject(LpVsBtUbsR, true);
private static OrZNUDzdVbwVNhcFlAxENqOdEDlVNK uNNsoclDdwOLPoEalRCHZn = new OrZNUDzdVbwVNhcFlAxENqOdEDlVNK();
private class OrZNUDzdVbwVNhcFlAxENqOdEDlVNK {
[JsonProperty(PropertyName = "Протокол")]
public string mZzCcxDLxanGYTgDOBQpACG;
[JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
public Dictionary<string, List<boRrhXlgtSjkb>> bWCyLMjuTcklTmjCFWFFabDnsIeYFX = new Dictionary<string, List<boRrhXlgtSjkb>>();
public Dictionary<string, List<boRrhXlgtSjkb>> wuiNkmTMHLS() => JsonConvert.DeserializeObject<Dictionary<string, List<boRrhXlgtSjkb>>>(JsonConvert.SerializeObject(bWCyLMjuTcklTmjCFWFFabDnsIeYFX));
}
private void XOcwCLJYpfUYCPuCGwTloK() {
uNNsoclDdwOLPoEalRCHZn = Interface.GetMod().DataFileSystem.ReadObject<OrZNUDzdVbwVNhcFlAxENqOdEDlVNK>("CustomTownVendingData");
if (uNNsoclDdwOLPoEalRCHZn == null) uNNsoclDdwOLPoEalRCHZn = new OrZNUDzdVbwVNhcFlAxENqOdEDlVNK();
if (uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX == null) uNNsoclDdwOLPoEalRCHZn.bWCyLMjuTcklTmjCFWFFabDnsIeYFX = new Dictionary<string, List<boRrhXlgtSjkb>>();
}
private void eylXWiSHLf() => Interface.GetMod().DataFileSystem.WriteObject("CustomTownVendingData", uNNsoclDdwOLPoEalRCHZn);
private static List<string> kUpWtRDVUOpZ = new List<string>();
private static string EfbgjvPzLrvmYPhGYUKcXn() => "["+DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")+"] ";
private bool qIVndYLigMhZhyaPZhGl(string SBZJUFafzvTlfBrVBWUUhjPt, string message) {
try {
LogToFile(SBZJUFafzvTlfBrVBWUUhjPt, $"{EfbgjvPzLrvmYPhGYUKcXn()}{message}", this, false);
}
catch {
return false;
}
return true;
}
private void IUCCFKhcCnjofFjwwZEewv(string SBZJUFafzvTlfBrVBWUUhjPt, string message) {
if (!string.IsNullOrEmpty(SBZJUFafzvTlfBrVBWUUhjPt)) {
if (string.IsNullOrEmpty(message)) return;
kUpWtRDVUOpZ.Add($"{SBZJUFafzvTlfBrVBWUUhjPt}Vbua762x{message}");
}
while (kUpWtRDVUOpZ.Count > 0) {
var prefix_ = kUpWtRDVUOpZ[0].Split(new string[] {
"Vbua762x"
}
, 0)[0];
var message_ = kUpWtRDVUOpZ[0].Split(new string[] {
"Vbua762x"
}
, 0)[1];
if (qIVndYLigMhZhyaPZhGl(prefix_, message_)) kUpWtRDVUOpZ.RemoveAt(0);
else break;
}
}
}
}