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.1")]
class CustomTownVending : RustPlugin {
private static readonly List<string> xgsjgDpcxQWQJZ = new List<string>() {
"Outpost", "Bandit Camp"
}
;
private static readonly Vector3 snMSASKnNJNkreSFqNpdJXyLc = new Vector3(-208.7f, 103.6f, -433.6f);
private static bool NEKdcDCfMGhStftSurLdlagUTZVOX = false;
private void Init() {
UdQRiKAFuc();
vVEUplJGvSNTlBUGlRBQfGWmnwL();
if (kfoTixKdQrDKtTCUhvxcMHXNCqG.eFYSZWnllvfofymqFPXX <= 0) {
kfoTixKdQrDKtTCUhvxcMHXNCqG.eFYSZWnllvfofymqFPXX = 15;
yMNDObWaMnhBEkiunVrD(kfoTixKdQrDKtTCUhvxcMHXNCqG);
}
LoadDefaultMessages();
}
private void OnServerInitialized() {
NEKdcDCfMGhStftSurLdlagUTZVOX = ConVar.Server.level == "HapisIsland";
var aSfQcIKBGQ = vQkUcPgfRW.HFwpocIJYKaNWhnwvZViVURE();
QCmMAeFDHIBES();
pxrbEeIHgYiVpiDKUXCMdycau();
if (kfoTixKdQrDKtTCUhvxcMHXNCqG.SUdvApRPzox) ZPSrQiPnORonGRo(aSfQcIKBGQ);
timer.Once(kfoTixKdQrDKtTCUhvxcMHXNCqG.eFYSZWnllvfofymqFPXX, zQxagvFOcG);
}
private static Dictionary<string, List<NPCVendingMachine>> PKfiNJvRoTYnRrDtjXjYuFX() {
var PrYrMzzjOGTDkDHuckaGZpJksRkeG = BaseNetworkable.serverEntities.OfType<NPCVendingMachine>().Where(x=> x != null && !string.IsNullOrEmpty(x.shopName)).ToList();
var kXEsvYXKOnhqkTU = new Dictionary<string, List<NPCVendingMachine>>();
foreach(var EGYokUTELS in PrYrMzzjOGTDkDHuckaGZpJksRkeG) {
var TcfGMOFXTmRjOHvwkLETiY = OqqHOBhgxIznj(EGYokUTELS.transform.position)?.Replace("\n", "");
if (string.IsNullOrEmpty(TcfGMOFXTmRjOHvwkLETiY) || !itoaeQdtQB(TcfGMOFXTmRjOHvwkLETiY)) continue;
TcfGMOFXTmRjOHvwkLETiY = NEKdcDCfMGhStftSurLdlagUTZVOX ? "HapisIsland " + TcfGMOFXTmRjOHvwkLETiY : TcfGMOFXTmRjOHvwkLETiY;
if (!kXEsvYXKOnhqkTU.ContainsKey(TcfGMOFXTmRjOHvwkLETiY)) kXEsvYXKOnhqkTU.Add(TcfGMOFXTmRjOHvwkLETiY, new List<NPCVendingMachine>());
kXEsvYXKOnhqkTU[TcfGMOFXTmRjOHvwkLETiY].Add(EGYokUTELS);
}
return kXEsvYXKOnhqkTU;
}
private static RTQuvUyrIxdqC ynCcIwULeCZEzJDnAsPQhpm(NPCVendingMachine EGYokUTELS) {
var kXEsvYXKOnhqkTU = new RTQuvUyrIxdqC();
kXEsvYXKOnhqkTU.WWwmurpPcfSuhyEDGy = NEKdcDCfMGhStftSurLdlagUTZVOX ? EGYokUTELS.shopName + $" {EGYokUTELS.transform.position}" : EGYokUTELS.shopName;
foreach(var tAdOqqPIAEMmjeFTnugRITUOKHt in EGYokUTELS.vendingOrders.orders) {
var IsRVyliZcoQWQImnqloamVigLffd = new RkvqcDmRvMgTzYNIJm();
IsRVyliZcoQWQImnqloamVigLffd.HeWGjDXRKrZhdHiExnHjmQVQry = tAdOqqPIAEMmjeFTnugRITUOKHt.sellItem.shortname;
IsRVyliZcoQWQImnqloamVigLffd.DWTATqCOdhnbOHzEItROjSAtbnR = tAdOqqPIAEMmjeFTnugRITUOKHt.sellItemAmount;
IsRVyliZcoQWQImnqloamVigLffd.yBcUYVvakZViMGtmoVQlOuEXbD = tAdOqqPIAEMmjeFTnugRITUOKHt.sellItemAsBP;
IsRVyliZcoQWQImnqloamVigLffd.BmgFrQRXgXerOUFwpmijFXdmAUgm = tAdOqqPIAEMmjeFTnugRITUOKHt.currencyItem.shortname;
IsRVyliZcoQWQImnqloamVigLffd.UQFoMFkYeqhHwLtEOOtZirhPVCwMq = tAdOqqPIAEMmjeFTnugRITUOKHt.currencyAmount;
IsRVyliZcoQWQImnqloamVigLffd.gGoGSnKdWXGnaXxiFTCc = tAdOqqPIAEMmjeFTnugRITUOKHt.currencyAsBP;
kXEsvYXKOnhqkTU.NIcMXoALVmOOqUDeXOxpiJje.Add(IsRVyliZcoQWQImnqloamVigLffd);
}
return kXEsvYXKOnhqkTU;
}
private static void pibYakMHgGLvJxuzCUvmBsfezIgrm(NPCVendingMachine eunOAVRBMuRgMZhkukFYghK, int TfCuYdRKVlOhQnIMd, int anbPtetSmPl, int cVenOHoyuWSyTKhWDLfKgpLenVot, int CoNZMyNzMnGhgtPtVDwTPz, byte hISctUcaGgDaqT) {
(eunOAVRBMuRgMZhkukFYghK as VendingMachine).AddSellOrder(TfCuYdRKVlOhQnIMd, anbPtetSmPl, cVenOHoyuWSyTKhWDLfKgpLenVot, CoNZMyNzMnGhgtPtVDwTPz, hISctUcaGgDaqT);
eunOAVRBMuRgMZhkukFYghK.transactionActive = true;
int GigNyEPufIRxSgGzomlvm = 10;
var ewAsyuxpeOuWiIDWftW = "16";
if (hISctUcaGgDaqT == 1 || hISctUcaGgDaqT == 3) {
var tSwAERUHGtlVaOwYPuBAh = ItemManager.CreateByItemID(eunOAVRBMuRgMZhkukFYghK.blueprintBaseDef.itemid, anbPtetSmPl * GigNyEPufIRxSgGzomlvm, (ulong)0);
tSwAERUHGtlVaOwYPuBAh.blueprintTarget = TfCuYdRKVlOhQnIMd;
tSwAERUHGtlVaOwYPuBAh.MoveToContainer(eunOAVRBMuRgMZhkukFYghK.inventory, -1, true);
}
else {
var tSwAERUHGtlVaOwYPuBAh = ItemManager.CreateByItemID(TfCuYdRKVlOhQnIMd, anbPtetSmPl * GigNyEPufIRxSgGzomlvm, (ulong)0);
tSwAERUHGtlVaOwYPuBAh.MoveToContainer(eunOAVRBMuRgMZhkukFYghK.inventory, -1, true);
}
eunOAVRBMuRgMZhkukFYghK.transactionActive = false;
(eunOAVRBMuRgMZhkukFYghK as VendingMachine).RefreshSellOrderStockLevel(null);
}
private void TNquyWGkEjDkcovHKsO(RTQuvUyrIxdqC bghNmjVKhyPDirklMTUGilgZQSjoit, NPCVendingMachine EGYokUTELS) {
EGYokUTELS.ClearSellOrders();
EGYokUTELS.inventory.Clear();
foreach(var tAdOqqPIAEMmjeFTnugRITUOKHt in bghNmjVKhyPDirklMTUGilgZQSjoit.NIcMXoALVmOOqUDeXOxpiJje) {
var aiLcPuVosQsN = ItemManager.FindItemDefinition(tAdOqqPIAEMmjeFTnugRITUOKHt.HeWGjDXRKrZhdHiExnHjmQVQry);
if (aiLcPuVosQsN == null) {
PrintWarning(kWEnKyYsqxWcavyYCiWg("WARNING.ITEM").Replace("{ITEM}", tAdOqqPIAEMmjeFTnugRITUOKHt.HeWGjDXRKrZhdHiExnHjmQVQry));
continue;
}
var oeNTvzvJYqCVtJyEVxx = ItemManager.FindItemDefinition(tAdOqqPIAEMmjeFTnugRITUOKHt.BmgFrQRXgXerOUFwpmijFXdmAUgm);
if (oeNTvzvJYqCVtJyEVxx == null) {
PrintWarning(kWEnKyYsqxWcavyYCiWg("WARNING.ITEM").Replace("{ITEM}", tAdOqqPIAEMmjeFTnugRITUOKHt.BmgFrQRXgXerOUFwpmijFXdmAUgm));
continue;
}
if (tAdOqqPIAEMmjeFTnugRITUOKHt.DWTATqCOdhnbOHzEItROjSAtbnR <= 0 || tAdOqqPIAEMmjeFTnugRITUOKHt.UQFoMFkYeqhHwLtEOOtZirhPVCwMq <= 0) continue;
pibYakMHgGLvJxuzCUvmBsfezIgrm(EGYokUTELS, aiLcPuVosQsN.itemid, tAdOqqPIAEMmjeFTnugRITUOKHt.DWTATqCOdhnbOHzEItROjSAtbnR, oeNTvzvJYqCVtJyEVxx.itemid, tAdOqqPIAEMmjeFTnugRITUOKHt.UQFoMFkYeqhHwLtEOOtZirhPVCwMq, EGYokUTELS.GetBPState(tAdOqqPIAEMmjeFTnugRITUOKHt.yBcUYVvakZViMGtmoVQlOuEXbD, tAdOqqPIAEMmjeFTnugRITUOKHt.gGoGSnKdWXGnaXxiFTCc));
}
}
private static bool itoaeQdtQB(string TcfGMOFXTmRjOHvwkLETiY) {
foreach(var qwCHBiVOaeXqhkoIOZ in xgsjgDpcxQWQJZ) if (TcfGMOFXTmRjOHvwkLETiY.Contains(qwCHBiVOaeXqhkoIOZ)) return true;
return false;
}
private static string OqqHOBhgxIznj(Vector3 nLswUrzQPlsYzeJvSnTfUNSpszN) {
var VGjxoTYyGOEfzDdbhrN = TerrainMeta.Path.Monuments.Where(x=> x != null).ToDictionary(x=> Vector3.Distance(x.transform.position, nLswUrzQPlsYzeJvSnTfUNSpszN), x=> x).OrderBy(x=> x.Key);
if (VGjxoTYyGOEfzDdbhrN.Count() == 0) return null;
var SGFMQGVUrUQrijmAiwYzmnwFmzsf = VGjxoTYyGOEfzDdbhrN.FirstOrDefault();
if (SGFMQGVUrUQrijmAiwYzmnwFmzsf.Key > 75f) return null;
return !string.IsNullOrEmpty(SGFMQGVUrUQrijmAiwYzmnwFmzsf.Value.displayPhrase.english) ? SGFMQGVUrUQrijmAiwYzmnwFmzsf.Value.displayPhrase.english : null;
}
private void QCmMAeFDHIBES() {
string dTFyVrzlImFvyJSYEVFHOBnm = Rust.Protocol.printable;
bool RjEWMKGCtJXmMLrQsbozYTwh = false, RIbHQfRsccUNSDIHRaIqTyUhAt = false, vvjlQTOKuYokO = false;
if (vQkUcPgfRW.jYWzQaewyqNofXQ.Count == 0 || string.IsNullOrEmpty(vQkUcPgfRW.dLmDlamtDDtHXZdV) || vQkUcPgfRW.dLmDlamtDDtHXZdV != dTFyVrzlImFvyJSYEVFHOBnm) RjEWMKGCtJXmMLrQsbozYTwh = true;
else if (NEKdcDCfMGhStftSurLdlagUTZVOX) {
if (vQkUcPgfRW.jYWzQaewyqNofXQ.Where(x=> x.Key.Contains("HapisIsland")).Count() == 0) RIbHQfRsccUNSDIHRaIqTyUhAt = true;
}
else {
if ((vQkUcPgfRW.jYWzQaewyqNofXQ.Where(x=> x.Key == xgsjgDpcxQWQJZ[0]).Count() == 0) || (vQkUcPgfRW.jYWzQaewyqNofXQ.Where(x=> x.Key == xgsjgDpcxQWQJZ[1]).Count() == 0) ) vvjlQTOKuYokO = true;
}
if (RjEWMKGCtJXmMLrQsbozYTwh || RIbHQfRsccUNSDIHRaIqTyUhAt || vvjlQTOKuYokO) {
if (RjEWMKGCtJXmMLrQsbozYTwh) vQkUcPgfRW.jYWzQaewyqNofXQ.Clear();
if (RIbHQfRsccUNSDIHRaIqTyUhAt) foreach(var TcfGMOFXTmRjOHvwkLETiY in vQkUcPgfRW.jYWzQaewyqNofXQ.Where(x=> x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) vQkUcPgfRW.jYWzQaewyqNofXQ.Remove(TcfGMOFXTmRjOHvwkLETiY);
if (vvjlQTOKuYokO) foreach(var TcfGMOFXTmRjOHvwkLETiY in vQkUcPgfRW.jYWzQaewyqNofXQ.Where(x=> !x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) vQkUcPgfRW.jYWzQaewyqNofXQ.Remove(TcfGMOFXTmRjOHvwkLETiY);
if (string.IsNullOrEmpty(vQkUcPgfRW.dLmDlamtDDtHXZdV) || vQkUcPgfRW.dLmDlamtDDtHXZdV != dTFyVrzlImFvyJSYEVFHOBnm) vQkUcPgfRW.dLmDlamtDDtHXZdV = dTFyVrzlImFvyJSYEVFHOBnm;
var PrYrMzzjOGTDkDHuckaGZpJksRkeG = PKfiNJvRoTYnRrDtjXjYuFX();
if (PrYrMzzjOGTDkDHuckaGZpJksRkeG.Count > 0) {
if (NEKdcDCfMGhStftSurLdlagUTZVOX) {
foreach(var IQdlCsTavagMkS in PrYrMzzjOGTDkDHuckaGZpJksRkeG) foreach(var EGYokUTELS in IQdlCsTavagMkS.Value) {
if (Vector3.Distance(EGYokUTELS.transform.position, snMSASKnNJNkreSFqNpdJXyLc) > 75f) continue;
if (!vQkUcPgfRW.jYWzQaewyqNofXQ.ContainsKey(IQdlCsTavagMkS.Key)) vQkUcPgfRW.jYWzQaewyqNofXQ.Add(IQdlCsTavagMkS.Key, new List<RTQuvUyrIxdqC>());
vQkUcPgfRW.jYWzQaewyqNofXQ[IQdlCsTavagMkS.Key].Add(ynCcIwULeCZEzJDnAsPQhpm(EGYokUTELS));
}
}
else {
foreach(var IQdlCsTavagMkS in PrYrMzzjOGTDkDHuckaGZpJksRkeG) {
var USwzKWbxtgASZlkIuizWakE = default(Vector3);
foreach(var EGYokUTELS in IQdlCsTavagMkS.Value) {
if (USwzKWbxtgASZlkIuizWakE == default(Vector3)) USwzKWbxtgASZlkIuizWakE = EGYokUTELS.transform.position;
if (Vector3.Distance(EGYokUTELS.transform.position, USwzKWbxtgASZlkIuizWakE) > 100f) continue;
if (!vQkUcPgfRW.jYWzQaewyqNofXQ.ContainsKey(IQdlCsTavagMkS.Key)) vQkUcPgfRW.jYWzQaewyqNofXQ.Add(IQdlCsTavagMkS.Key, new List<RTQuvUyrIxdqC>());
if (vQkUcPgfRW.jYWzQaewyqNofXQ[IQdlCsTavagMkS.Key].Exists(x=> x.WWwmurpPcfSuhyEDGy == EGYokUTELS.shopName)) continue;
vQkUcPgfRW.jYWzQaewyqNofXQ[IQdlCsTavagMkS.Key].Add(ynCcIwULeCZEzJDnAsPQhpm(EGYokUTELS));
}
}
}
}
BInbqfqshpY();
}
}
private void pxrbEeIHgYiVpiDKUXCMdycau() {
bool RjEWMKGCtJXmMLrQsbozYTwh = false, RIbHQfRsccUNSDIHRaIqTyUhAt = false, vvjlQTOKuYokO = false;
if (kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Count == 0) RjEWMKGCtJXmMLrQsbozYTwh = true;
else if (NEKdcDCfMGhStftSurLdlagUTZVOX) {
if (kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Where(x=> x.Key.Contains("HapisIsland")).Count() == 0) RIbHQfRsccUNSDIHRaIqTyUhAt = true;
}
else {
if ((kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Where(x=> x.Key == xgsjgDpcxQWQJZ[0]).Count() == 0) || (kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Where(x=> x.Key == xgsjgDpcxQWQJZ[1]).Count() == 0) ) vvjlQTOKuYokO = true;
}
if (RjEWMKGCtJXmMLrQsbozYTwh || RIbHQfRsccUNSDIHRaIqTyUhAt || vvjlQTOKuYokO) {
if (RjEWMKGCtJXmMLrQsbozYTwh) kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ = vQkUcPgfRW.HFwpocIJYKaNWhnwvZViVURE();
if (RIbHQfRsccUNSDIHRaIqTyUhAt) foreach(var IQdlCsTavagMkS in vQkUcPgfRW.HFwpocIJYKaNWhnwvZViVURE().Where(x=> x.Key.Contains("HapisIsland"))) if (!kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.ContainsKey(IQdlCsTavagMkS.Key)) kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Add(IQdlCsTavagMkS.Key, IQdlCsTavagMkS.Value);
if (vvjlQTOKuYokO) foreach(var IQdlCsTavagMkS in vQkUcPgfRW.HFwpocIJYKaNWhnwvZViVURE().Where(x=> !x.Key.Contains("HapisIsland"))) if (!kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.ContainsKey(IQdlCsTavagMkS.Key)) kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Add(IQdlCsTavagMkS.Key, IQdlCsTavagMkS.Value);
yMNDObWaMnhBEkiunVrD(kfoTixKdQrDKtTCUhvxcMHXNCqG);
}
}
private void ZPSrQiPnORonGRo(Dictionary<string, List<RTQuvUyrIxdqC>> aSfQcIKBGQ) {
bool pEQcFeoYPmwP = false;
foreach(var IQdlCsTavagMkS in vQkUcPgfRW.HFwpocIJYKaNWhnwvZViVURE()) {
if (NEKdcDCfMGhStftSurLdlagUTZVOX && !IQdlCsTavagMkS.Key.Contains("HapisIsland")) continue;
if (!NEKdcDCfMGhStftSurLdlagUTZVOX && IQdlCsTavagMkS.Key.Contains("HapisIsland")) continue;
if (!aSfQcIKBGQ.ContainsKey(IQdlCsTavagMkS.Key)) {
if (!itoaeQdtQB(IQdlCsTavagMkS.Key)) PrintWarning(kWEnKyYsqxWcavyYCiWg("WARNING.NEW.RADTOWN").Replace("{RADTOWN}", IQdlCsTavagMkS.Key));
continue;
}
if (!kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.ContainsKey(IQdlCsTavagMkS.Key)) continue;
foreach(var EGYokUTELS in IQdlCsTavagMkS.Value) {
if (!aSfQcIKBGQ[IQdlCsTavagMkS.Key].Exists(x=> x.WWwmurpPcfSuhyEDGy == EGYokUTELS.WWwmurpPcfSuhyEDGy)) {
if (!kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ[IQdlCsTavagMkS.Key].Exists(x=> x.WWwmurpPcfSuhyEDGy == EGYokUTELS.WWwmurpPcfSuhyEDGy)) {
PrintWarning(kWEnKyYsqxWcavyYCiWg("WARNING.NEW.SHOP").Replace("{SHOP}", EGYokUTELS.WWwmurpPcfSuhyEDGy).Replace("{RADTOWN}", IQdlCsTavagMkS.Key));
var InEjCMdXPeOm = new RTQuvUyrIxdqC();
InEjCMdXPeOm.WWwmurpPcfSuhyEDGy = EGYokUTELS.WWwmurpPcfSuhyEDGy;
kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ[IQdlCsTavagMkS.Key].Add(InEjCMdXPeOm);
pEQcFeoYPmwP = true;
}
var UsJZriSaJuj = new RTQuvUyrIxdqC();
UsJZriSaJuj.WWwmurpPcfSuhyEDGy = EGYokUTELS.WWwmurpPcfSuhyEDGy;
aSfQcIKBGQ[IQdlCsTavagMkS.Key].Add(UsJZriSaJuj);
}
var OHLlRivAFejCCzxPiDbN = aSfQcIKBGQ[IQdlCsTavagMkS.Key].FirstOrDefault(x=> x.WWwmurpPcfSuhyEDGy == EGYokUTELS.WWwmurpPcfSuhyEDGy);
var iDrerZazKIgzEdWLKbYkVGqIdR = kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ[IQdlCsTavagMkS.Key].FirstOrDefault(x=> x.WWwmurpPcfSuhyEDGy == EGYokUTELS.WWwmurpPcfSuhyEDGy);
foreach(var mgHrqzaTcXk in EGYokUTELS.NIcMXoALVmOOqUDeXOxpiJje) {
if (!OHLlRivAFejCCzxPiDbN.NIcMXoALVmOOqUDeXOxpiJje.Exists(x=> x.HeWGjDXRKrZhdHiExnHjmQVQry == mgHrqzaTcXk.HeWGjDXRKrZhdHiExnHjmQVQry && x.BmgFrQRXgXerOUFwpmijFXdmAUgm == mgHrqzaTcXk.BmgFrQRXgXerOUFwpmijFXdmAUgm && x.yBcUYVvakZViMGtmoVQlOuEXbD == mgHrqzaTcXk.yBcUYVvakZViMGtmoVQlOuEXbD && x.gGoGSnKdWXGnaXxiFTCc == mgHrqzaTcXk.gGoGSnKdWXGnaXxiFTCc)) {
if (!iDrerZazKIgzEdWLKbYkVGqIdR.NIcMXoALVmOOqUDeXOxpiJje.Exists(x=> x.HeWGjDXRKrZhdHiExnHjmQVQry == mgHrqzaTcXk.HeWGjDXRKrZhdHiExnHjmQVQry && x.BmgFrQRXgXerOUFwpmijFXdmAUgm == mgHrqzaTcXk.BmgFrQRXgXerOUFwpmijFXdmAUgm && x.yBcUYVvakZViMGtmoVQlOuEXbD == mgHrqzaTcXk.yBcUYVvakZViMGtmoVQlOuEXbD && x.gGoGSnKdWXGnaXxiFTCc == mgHrqzaTcXk.gGoGSnKdWXGnaXxiFTCc)) {
PrintWarning(kWEnKyYsqxWcavyYCiWg("WARNING.NEW.ITEM").Replace("{SHOP}", EGYokUTELS.WWwmurpPcfSuhyEDGy).Replace("{RADTOWN}", IQdlCsTavagMkS.Key).Replace("{ITEM}", mgHrqzaTcXk.HeWGjDXRKrZhdHiExnHjmQVQry));
iDrerZazKIgzEdWLKbYkVGqIdR.NIcMXoALVmOOqUDeXOxpiJje.Add(mgHrqzaTcXk);
pEQcFeoYPmwP = true;
}
OHLlRivAFejCCzxPiDbN.NIcMXoALVmOOqUDeXOxpiJje.Add(mgHrqzaTcXk);
}
}
}
}
if (pEQcFeoYPmwP) yMNDObWaMnhBEkiunVrD(kfoTixKdQrDKtTCUhvxcMHXNCqG);
}
private void zQxagvFOcG() {
var PrYrMzzjOGTDkDHuckaGZpJksRkeG = PKfiNJvRoTYnRrDtjXjYuFX();
foreach(var IQdlCsTavagMkS in kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ) {
if (NEKdcDCfMGhStftSurLdlagUTZVOX && !IQdlCsTavagMkS.Key.Contains("HapisIsland")) continue;
if (!NEKdcDCfMGhStftSurLdlagUTZVOX && IQdlCsTavagMkS.Key.Contains("HapisIsland")) continue;
foreach(var iDrerZazKIgzEdWLKbYkVGqIdR in IQdlCsTavagMkS.Value) {
if (PrYrMzzjOGTDkDHuckaGZpJksRkeG.ContainsKey(IQdlCsTavagMkS.Key)) {
foreach(var EGYokUTELS in PrYrMzzjOGTDkDHuckaGZpJksRkeG[IQdlCsTavagMkS.Key]) {
var shopName = NEKdcDCfMGhStftSurLdlagUTZVOX ? EGYokUTELS.shopName + $" {EGYokUTELS.transform.position}" : EGYokUTELS.shopName;
if (!(iDrerZazKIgzEdWLKbYkVGqIdR.WWwmurpPcfSuhyEDGy == shopName)) continue;
TNquyWGkEjDkcovHKsO(iDrerZazKIgzEdWLKbYkVGqIdR, EGYokUTELS);
}
}
}
}
}
[ConsoleCommand("ctv.reset")]
private void cjFNRIXrQQSsLdPNnwGR(ConsoleSystem.Arg wFsKauGFHVkaEHzSAKC) {
var LfTwKZPHPQdihZPjHJEhixadsVmWxR = wFsKauGFHVkaEHzSAKC?.Player();
if (LfTwKZPHPQdihZPjHJEhixadsVmWxR != null && !LfTwKZPHPQdihZPjHJEhixadsVmWxR.IsAdmin) return;
kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ = vQkUcPgfRW.HFwpocIJYKaNWhnwvZViVURE();
if (NEKdcDCfMGhStftSurLdlagUTZVOX) foreach(var TcfGMOFXTmRjOHvwkLETiY in kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Where(x=> !x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Remove(TcfGMOFXTmRjOHvwkLETiY);
else foreach(var TcfGMOFXTmRjOHvwkLETiY in kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Where(x=> x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ.Remove(TcfGMOFXTmRjOHvwkLETiY);
yMNDObWaMnhBEkiunVrD(kfoTixKdQrDKtTCUhvxcMHXNCqG);
zQxagvFOcG();
var yAlviGGBddU = kWEnKyYsqxWcavyYCiWg("INFO.RESET");
if (LfTwKZPHPQdihZPjHJEhixadsVmWxR != null) PrintToConsole(LfTwKZPHPQdihZPjHJEhixadsVmWxR, yAlviGGBddU);
else Puts(yAlviGGBddU);
}
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}'.Если это не кастомная карта, то сообщите разработчику, что бы он добавил новый город в плагин."
}
}
, this);
}
private string kWEnKyYsqxWcavyYCiWg(string OcxaqddTVyvOgR, string NLXdzZpHiOreVaWdFcRFpvyfGy = null) => lang.GetMessage(OcxaqddTVyvOgR, this, NLXdzZpHiOreVaWdFcRFpvyfGy);
private static wPcBTJRVttCNSugOGJYywdZ kfoTixKdQrDKtTCUhvxcMHXNCqG;
private class RTQuvUyrIxdqC {
[JsonProperty(PropertyName = "Игровое название магазина (не менять)")]
public string WWwmurpPcfSuhyEDGy;
[JsonProperty(PropertyName = "Список товаров")]
public List<RkvqcDmRvMgTzYNIJm> NIcMXoALVmOOqUDeXOxpiJje = new List<RkvqcDmRvMgTzYNIJm>();
}
private class RkvqcDmRvMgTzYNIJm {
[JsonProperty(PropertyName = "Название покупаемого товара")]
public string HeWGjDXRKrZhdHiExnHjmQVQry;
[JsonProperty(PropertyName = "Количество покупаемого товара за раз")]
public int DWTATqCOdhnbOHzEItROjSAtbnR;
[JsonProperty(PropertyName = "Покупаемый товар это чертёж")]
public bool yBcUYVvakZViMGtmoVQlOuEXbD;
[JsonProperty(PropertyName = "Название платёжного товара")]
public string BmgFrQRXgXerOUFwpmijFXdmAUgm;
[JsonProperty(PropertyName = "Количество платёжного товара за раз")]
public int UQFoMFkYeqhHwLtEOOtZirhPVCwMq;
[JsonProperty(PropertyName = "Платёжный товар это чертёж")]
public bool gGoGSnKdWXGnaXxiFTCc;
}
private class wPcBTJRVttCNSugOGJYywdZ {
[JsonProperty(PropertyName = "Добавлять новые предметы в магазины")]
public bool SUdvApRPzox;
[JsonProperty(PropertyName = "Задержка инициализации магазинов (секунды)")]
public int eFYSZWnllvfofymqFPXX;
[JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
public Dictionary<string, List<RTQuvUyrIxdqC>> jYWzQaewyqNofXQ = new Dictionary<string, List<RTQuvUyrIxdqC>>();
}
private void UdQRiKAFuc() {
kfoTixKdQrDKtTCUhvxcMHXNCqG = Config.ReadObject<wPcBTJRVttCNSugOGJYywdZ>();
if (kfoTixKdQrDKtTCUhvxcMHXNCqG == null) kfoTixKdQrDKtTCUhvxcMHXNCqG = new wPcBTJRVttCNSugOGJYywdZ();
if (kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ == null) kfoTixKdQrDKtTCUhvxcMHXNCqG.jYWzQaewyqNofXQ = new Dictionary<string, List<RTQuvUyrIxdqC>>();
}
protected override void LoadDefaultConfig() {
kfoTixKdQrDKtTCUhvxcMHXNCqG = new wPcBTJRVttCNSugOGJYywdZ {
SUdvApRPzox = true, eFYSZWnllvfofymqFPXX = 30, jYWzQaewyqNofXQ = new Dictionary<string, List<RTQuvUyrIxdqC>>()
}
;
yMNDObWaMnhBEkiunVrD(kfoTixKdQrDKtTCUhvxcMHXNCqG);
timer.Once(0.1f, ()=> yMNDObWaMnhBEkiunVrD(kfoTixKdQrDKtTCUhvxcMHXNCqG));
}
private void yMNDObWaMnhBEkiunVrD(wPcBTJRVttCNSugOGJYywdZ NASLgQHPnUJmWyAdCmddm) => Config.WriteObject(NASLgQHPnUJmWyAdCmddm, true);
private static uUCxpmwYtZscciGsR vQkUcPgfRW = new uUCxpmwYtZscciGsR();
private class uUCxpmwYtZscciGsR {
[JsonProperty(PropertyName = "Протокол")]
public string dLmDlamtDDtHXZdV;
[JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
public Dictionary<string, List<RTQuvUyrIxdqC>> jYWzQaewyqNofXQ = new Dictionary<string, List<RTQuvUyrIxdqC>>();
public Dictionary<string, List<RTQuvUyrIxdqC>> HFwpocIJYKaNWhnwvZViVURE() => JsonConvert.DeserializeObject<Dictionary<string, List<RTQuvUyrIxdqC>>>(JsonConvert.SerializeObject(jYWzQaewyqNofXQ));
}
private void vVEUplJGvSNTlBUGlRBQfGWmnwL() {
vQkUcPgfRW = Interface.GetMod().DataFileSystem.ReadObject<uUCxpmwYtZscciGsR>("CustomTownVendingData");
if (vQkUcPgfRW == null) vQkUcPgfRW = new uUCxpmwYtZscciGsR();
if (vQkUcPgfRW.jYWzQaewyqNofXQ == null) vQkUcPgfRW.jYWzQaewyqNofXQ = new Dictionary<string, List<RTQuvUyrIxdqC>>();
}
private void BInbqfqshpY() => Interface.GetMod().DataFileSystem.WriteObject("CustomTownVendingData", vQkUcPgfRW);
}
}