Иконка ресурса

FREE CustomTownVending : 1.1.7 1.1.7

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
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.7")]
    class CustomTownVending : RustPlugin {
        private static readonly List<string> lAEYtZpEUOTnhkXL = new List<string>() {
            "Outpost", "Bandit Camp"
        }
        ;
        private static readonly Vector3 rFFrIWsLeFNE = new Vector3(-208.7f, 103.6f, -433.6f);
        private static bool IlfMERBOFnZCQGiDUX = false;
        private void Init() {
            pfWumzAnXozRLbRrDXVlYFAElovD();
            qtordHYEXIZsXe();
            foreach (var BGwNnqDGApwYEbpQwnTebBGuAJATxg in VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa) {
                foreach (var GMJnwoZAPOxygKP in BGwNnqDGApwYEbpQwnTebBGuAJATxg.Value) {
                    foreach (var hUBYbBWEeGZvroyfMEdnkWmsX in GMJnwoZAPOxygKP.hrVseuPNZbhsQSTtQ) {
                        if (hUBYbBWEeGZvroyfMEdnkWmsX.SellSkinName == null) hUBYbBWEeGZvroyfMEdnkWmsX.SellSkinName = "";
                    }
                }
            }
            KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
            if (VblVoPXVAZtZcKBVZi.ojQJUsAdNVgZ <= 0) {
                VblVoPXVAZtZcKBVZi.ojQJUsAdNVgZ = 30;
                KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
            }
            LoadDefaultMessages();
        }
        private void OnServerInitialized() {
            IlfMERBOFnZCQGiDUX = ConVar.Server.level == "HapisIsland";
            var myhCFcWcUT = eOUpGvpWLki.fkAQTNftZpNbeRp();
            sgHGEIueLq();
            rwfHBAtNJWvZnKOkMAjCzd();
            if (VblVoPXVAZtZcKBVZi.AZMTZnrHcygnbsYwVhyGwtX) tiUoMXpLlV(myhCFcWcUT);
            timer.Once(VblVoPXVAZtZcKBVZi.ojQJUsAdNVgZ, zylRCQZTeEVCyCUHmUKj);
        }
        private void Unload() => HbFWbxatitPKllflCWftIw();
        private bool? OnNpcGiveSoldItem(NPCVendingMachine mJaIrYXaijgUffeJiAY, Item hUBYbBWEeGZvroyfMEdnkWmsX, BasePlayer EIgTAlXzORLBKKSzMbDJh) {
            if (mJaIrYXaijgUffeJiAY == null || hUBYbBWEeGZvroyfMEdnkWmsX == null || EIgTAlXzORLBKKSzMbDJh == null) return null;
            var itemNew = ItemManager.Create(hUBYbBWEeGZvroyfMEdnkWmsX.info, hUBYbBWEeGZvroyfMEdnkWmsX.amount, hUBYbBWEeGZvroyfMEdnkWmsX.skin);
            itemNew.name = hUBYbBWEeGZvroyfMEdnkWmsX.name;
            EIgTAlXzORLBKKSzMbDJh.GiveItem(hUBYbBWEeGZvroyfMEdnkWmsX, BaseEntity.GiveItemReason.PickedUp);
            mJaIrYXaijgUffeJiAY.transactionActive = true;
            if (!itemNew.MoveToContainer(mJaIrYXaijgUffeJiAY.inventory, -1, true)) itemNew.Remove(0f);
            mJaIrYXaijgUffeJiAY.transactionActive = false;
            return true;
        }
        private static Dictionary<string, List<NPCVendingMachine>> IIrpoxkgLINGkxUJ() {
            var lnntFrRIGA = BaseNetworkable.serverEntities.OfType<NPCVendingMachine>().Where(x=> x != null && !string.IsNullOrEmpty(x.shopName)).ToList();
            var lEMazDtqdBwwboCFAaJBsFoXRcYJuO = new Dictionary<string, List<NPCVendingMachine>>();
            foreach(var GMJnwoZAPOxygKP in lnntFrRIGA) {
                var BGwNnqDGApwYEbpQwnTebBGuAJATxg = AnWPPXQlCAwMtQmQBbIYPOZqG(GMJnwoZAPOxygKP.transform.position)?.Replace("\n", "");
                if (string.IsNullOrEmpty(BGwNnqDGApwYEbpQwnTebBGuAJATxg) || !CoTkYVCwufdXHsDg(BGwNnqDGApwYEbpQwnTebBGuAJATxg)) continue;
                BGwNnqDGApwYEbpQwnTebBGuAJATxg = IlfMERBOFnZCQGiDUX ? "HapisIsland " + BGwNnqDGApwYEbpQwnTebBGuAJATxg : BGwNnqDGApwYEbpQwnTebBGuAJATxg;
                if (!lEMazDtqdBwwboCFAaJBsFoXRcYJuO.ContainsKey(BGwNnqDGApwYEbpQwnTebBGuAJATxg)) lEMazDtqdBwwboCFAaJBsFoXRcYJuO.Add(BGwNnqDGApwYEbpQwnTebBGuAJATxg, new List<NPCVendingMachine>());
                lEMazDtqdBwwboCFAaJBsFoXRcYJuO[BGwNnqDGApwYEbpQwnTebBGuAJATxg].Add(GMJnwoZAPOxygKP);
            }
            return lEMazDtqdBwwboCFAaJBsFoXRcYJuO;
        }
        private static eQOkiKPpCXaogpqR bCuBNrtBcPN(NPCVendingMachine GMJnwoZAPOxygKP) {
            var lEMazDtqdBwwboCFAaJBsFoXRcYJuO = new eQOkiKPpCXaogpqR();
            lEMazDtqdBwwboCFAaJBsFoXRcYJuO.VXuqSGWweKgajlISVurhHh = IlfMERBOFnZCQGiDUX ? GMJnwoZAPOxygKP.shopName + $" {GMJnwoZAPOxygKP.transform.position}" : GMJnwoZAPOxygKP.shopName;
            foreach(var AXGSjwneZYetccLKJaeabQNmPx in GMJnwoZAPOxygKP.vendingOrders.orders) {
                var noQVBKYEbURjDUNisVMnEzgO = new xYfrWLmXgidZhBZCpPAWpvEgVNiYuF();
                noQVBKYEbURjDUNisVMnEzgO.CIGpymgrHWfDpSIfLmN = AXGSjwneZYetccLKJaeabQNmPx.sellItem.shortname;
                noQVBKYEbURjDUNisVMnEzgO.YROdllwyJHkQTyDXnXOPmGXImd = AXGSjwneZYetccLKJaeabQNmPx.sellItemAmount;
                noQVBKYEbURjDUNisVMnEzgO.nEvnfNdWdmHRABS = AXGSjwneZYetccLKJaeabQNmPx.sellItemAsBP;
                noQVBKYEbURjDUNisVMnEzgO.BtCWgYRrCTqgAogTXxLgRd = 0;
                noQVBKYEbURjDUNisVMnEzgO.SellSkinName = "";
                noQVBKYEbURjDUNisVMnEzgO.VCmVUxvGTugHRQwutrA = AXGSjwneZYetccLKJaeabQNmPx.currencyItem.shortname;
                noQVBKYEbURjDUNisVMnEzgO.qlXpUFgCfepvToqmUdvKCvqOrMwUMY = AXGSjwneZYetccLKJaeabQNmPx.currencyAmount;
                noQVBKYEbURjDUNisVMnEzgO.CtmfBHQpozCXBEqHUZCEjPe = AXGSjwneZYetccLKJaeabQNmPx.currencyAsBP;
                lEMazDtqdBwwboCFAaJBsFoXRcYJuO.hrVseuPNZbhsQSTtQ.Add(noQVBKYEbURjDUNisVMnEzgO);
            }
            return lEMazDtqdBwwboCFAaJBsFoXRcYJuO;
        }
        private static void mTIZpNusltAiKxcCUZSxMn(VendingMachine mJaIrYXaijgUffeJiAY, int OMVIkRisURbXwXKuXryIDjvqVV, int sTKVRCrgjFAApldXeFxoMM, int gfmtZtIdmVPCYykc, int EcyKxenDnhMJgbnvgdAn, byte rRNvUDVnBmYSwkflivRsgTrLQYbmzc) {
            var VmHPEwDYqSaPswENnEczDSaih = ItemManager.FindItemDefinition(OMVIkRisURbXwXKuXryIDjvqVV);
            var ipCdwyKVeVgECp = ItemManager.FindItemDefinition(gfmtZtIdmVPCYykc);
            if (VmHPEwDYqSaPswENnEczDSaih == null || ipCdwyKVeVgECp == null) return;
            var BISqIsGldmunzNqC = new ProtoBuf.VendingMachine.SellOrder() {
                ShouldPool = false, itemToSellID = OMVIkRisURbXwXKuXryIDjvqVV, itemToSellAmount = sTKVRCrgjFAApldXeFxoMM, currencyID = gfmtZtIdmVPCYykc, currencyAmountPerItem = EcyKxenDnhMJgbnvgdAn, currencyIsBP = (rRNvUDVnBmYSwkflivRsgTrLQYbmzc == 3 ? true : rRNvUDVnBmYSwkflivRsgTrLQYbmzc == 2), itemToSellIsBP = (rRNvUDVnBmYSwkflivRsgTrLQYbmzc == 3 ? true : rRNvUDVnBmYSwkflivRsgTrLQYbmzc == 1)
            }
            ;
            Interface.CallHook("OnAddVendingOffer", mJaIrYXaijgUffeJiAY, BISqIsGldmunzNqC);
            mJaIrYXaijgUffeJiAY.sellOrders.sellOrders.Add(BISqIsGldmunzNqC);
            mJaIrYXaijgUffeJiAY.RefreshSellOrderStockLevel(VmHPEwDYqSaPswENnEczDSaih);
            mJaIrYXaijgUffeJiAY.UpdateMapMarker();
            mJaIrYXaijgUffeJiAY.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
        }
        private static void jBoPYWlnSyuLTNMHPsSM(NPCVendingMachine mJaIrYXaijgUffeJiAY, int XuPScYRlvEOdCuGnjmMEMdfSWFUejS, int FuqGYZOjxKURuHzr, int UduCgAdrEcrn, int RisXSCydeTXHLTUtU, byte nKEimOhAMRASWinigqTpOvwL, ulong lvifVVnGKFNYfiojPsOcs, string SellSkinName) {
            mTIZpNusltAiKxcCUZSxMn(mJaIrYXaijgUffeJiAY, XuPScYRlvEOdCuGnjmMEMdfSWFUejS, FuqGYZOjxKURuHzr, UduCgAdrEcrn, RisXSCydeTXHLTUtU, nKEimOhAMRASWinigqTpOvwL);
            mJaIrYXaijgUffeJiAY.transactionActive = true;
            int RaytvEGMdGmMbuSGRvIiXxl = 10;
            var itRixVtudpztWHbDGMYPjYNpCuV = "{DarkPluginsID}";
            if (nKEimOhAMRASWinigqTpOvwL == 1 || nKEimOhAMRASWinigqTpOvwL == 3) {
                var hUBYbBWEeGZvroyfMEdnkWmsX = ItemManager.CreateByItemID(mJaIrYXaijgUffeJiAY.blueprintBaseDef.itemid, FuqGYZOjxKURuHzr * RaytvEGMdGmMbuSGRvIiXxl, lvifVVnGKFNYfiojPsOcs);
                hUBYbBWEeGZvroyfMEdnkWmsX.blueprintTarget = XuPScYRlvEOdCuGnjmMEMdfSWFUejS;
                if (!string.IsNullOrEmpty(SellSkinName)) hUBYbBWEeGZvroyfMEdnkWmsX.name = SellSkinName;
                hUBYbBWEeGZvroyfMEdnkWmsX.MoveToContainer(mJaIrYXaijgUffeJiAY.inventory, -1, false);
            }
            else {
                var hUBYbBWEeGZvroyfMEdnkWmsX = ItemManager.CreateByItemID(XuPScYRlvEOdCuGnjmMEMdfSWFUejS, FuqGYZOjxKURuHzr * RaytvEGMdGmMbuSGRvIiXxl, lvifVVnGKFNYfiojPsOcs);
                if (!string.IsNullOrEmpty(SellSkinName)) hUBYbBWEeGZvroyfMEdnkWmsX.name = SellSkinName;
                hUBYbBWEeGZvroyfMEdnkWmsX.MoveToContainer(mJaIrYXaijgUffeJiAY.inventory, -1, false);
            }
            mJaIrYXaijgUffeJiAY.transactionActive = false;
            (mJaIrYXaijgUffeJiAY as VendingMachine).RefreshSellOrderStockLevel(null);
        }
        private void NEICWMMUks(eQOkiKPpCXaogpqR CAeJaqzchEbugoHqhdmauNuw, NPCVendingMachine GMJnwoZAPOxygKP) {
            GMJnwoZAPOxygKP.ClearSellOrders();
            foreach (var hUBYbBWEeGZvroyfMEdnkWmsX in GMJnwoZAPOxygKP.inventory.itemList.ToList()) {
                hUBYbBWEeGZvroyfMEdnkWmsX.RemoveFromContainer();
                hUBYbBWEeGZvroyfMEdnkWmsX.Remove(0f);
            }
            GMJnwoZAPOxygKP.inventory.itemList.Clear();
            GMJnwoZAPOxygKP.inventory.Clear();
            foreach(var AXGSjwneZYetccLKJaeabQNmPx in CAeJaqzchEbugoHqhdmauNuw.hrVseuPNZbhsQSTtQ) {
                var biKUSxkSFntBYdRVtFIWITdkUoi = ItemManager.FindItemDefinition(AXGSjwneZYetccLKJaeabQNmPx.CIGpymgrHWfDpSIfLmN);
                if (biKUSxkSFntBYdRVtFIWITdkUoi == null) {
                    PrintWarning(OvEzGqJWTVGSRWPuTLAMaisSzfZlJ("WARNING.ITEM").Replace("{ITEM}", AXGSjwneZYetccLKJaeabQNmPx.CIGpymgrHWfDpSIfLmN));
                    continue;
                }
                var FtYzfnuVorFxxeHKgAOY = ItemManager.FindItemDefinition(AXGSjwneZYetccLKJaeabQNmPx.VCmVUxvGTugHRQwutrA);
                if (FtYzfnuVorFxxeHKgAOY == null) {
                    PrintWarning(OvEzGqJWTVGSRWPuTLAMaisSzfZlJ("WARNING.ITEM").Replace("{ITEM}", AXGSjwneZYetccLKJaeabQNmPx.VCmVUxvGTugHRQwutrA));
                    continue;
                }
                if (AXGSjwneZYetccLKJaeabQNmPx.YROdllwyJHkQTyDXnXOPmGXImd <= 0 || AXGSjwneZYetccLKJaeabQNmPx.qlXpUFgCfepvToqmUdvKCvqOrMwUMY <= 0) continue;
                jBoPYWlnSyuLTNMHPsSM(GMJnwoZAPOxygKP, biKUSxkSFntBYdRVtFIWITdkUoi.itemid, AXGSjwneZYetccLKJaeabQNmPx.YROdllwyJHkQTyDXnXOPmGXImd, FtYzfnuVorFxxeHKgAOY.itemid, AXGSjwneZYetccLKJaeabQNmPx.qlXpUFgCfepvToqmUdvKCvqOrMwUMY, GMJnwoZAPOxygKP.GetBPState(AXGSjwneZYetccLKJaeabQNmPx.nEvnfNdWdmHRABS, AXGSjwneZYetccLKJaeabQNmPx.CtmfBHQpozCXBEqHUZCEjPe), AXGSjwneZYetccLKJaeabQNmPx.BtCWgYRrCTqgAogTXxLgRd, AXGSjwneZYetccLKJaeabQNmPx.SellSkinName);
            }
            GMJnwoZAPOxygKP.FullUpdate();
        }
        private static bool CoTkYVCwufdXHsDg(string BGwNnqDGApwYEbpQwnTebBGuAJATxg) {
            foreach(var kYPGAhNbhWzGLuIRfUZ in lAEYtZpEUOTnhkXL) if (BGwNnqDGApwYEbpQwnTebBGuAJATxg.Contains(kYPGAhNbhWzGLuIRfUZ)) return true;
            return false;
        }
        private static string AnWPPXQlCAwMtQmQBbIYPOZqG(Vector3 mAyjPBzeodjOFbyMmJyHCFGRbfw) {
            var RkpxYoKUylwUsYrfWROSEGr = TerrainMeta.Path.Monuments.Where(x=> x != null).ToDictionary(x=> Vector3.Distance(x.transform.position, mAyjPBzeodjOFbyMmJyHCFGRbfw), x=> x).OrderBy(x=> x.Key);
            if (RkpxYoKUylwUsYrfWROSEGr.Count() == 0) return null;
            var kvgobBxnnySvJvCmYnwyhQnur = RkpxYoKUylwUsYrfWROSEGr.FirstOrDefault();
            if (kvgobBxnnySvJvCmYnwyhQnur.Key > 75f) return null;
            return !string.IsNullOrEmpty(kvgobBxnnySvJvCmYnwyhQnur.Value.displayPhrase.english) ? kvgobBxnnySvJvCmYnwyhQnur.Value.displayPhrase.english : null;
        }
        private void sgHGEIueLq() {
            string BVKzYQSjnJisClbJlLDCWzQ = $"{Rust.Protocol.printable} {Facepunch.BuildInfo.Current.BuildDate}";
            bool HyvktfapKldLqRbbLddoBrY = false, skMeQSHBlFNKDOzOfzr = false, TsNqgUwLVRwSQlwZSlVwnhfRT = false;
            if (eOUpGvpWLki.ELMJIhSesYxbUkwZa.Count == 0 || string.IsNullOrEmpty(eOUpGvpWLki.GFFDDJkYNZMELB) || eOUpGvpWLki.GFFDDJkYNZMELB != BVKzYQSjnJisClbJlLDCWzQ) HyvktfapKldLqRbbLddoBrY = true;
            else if (IlfMERBOFnZCQGiDUX) {
                if (eOUpGvpWLki.ELMJIhSesYxbUkwZa.Where(x=> x.Key.Contains("HapisIsland")).Count() == 0) skMeQSHBlFNKDOzOfzr = true;
            }
            else {
                if ((eOUpGvpWLki.ELMJIhSesYxbUkwZa.Where(x=> x.Key == lAEYtZpEUOTnhkXL[0]).Count() == 0) || (eOUpGvpWLki.ELMJIhSesYxbUkwZa.Where(x=> x.Key == lAEYtZpEUOTnhkXL[1]).Count() == 0) ) TsNqgUwLVRwSQlwZSlVwnhfRT = true;
            }
            if (HyvktfapKldLqRbbLddoBrY || skMeQSHBlFNKDOzOfzr || TsNqgUwLVRwSQlwZSlVwnhfRT) {
                if (HyvktfapKldLqRbbLddoBrY) eOUpGvpWLki.ELMJIhSesYxbUkwZa.Clear();
                if (skMeQSHBlFNKDOzOfzr) foreach(var BGwNnqDGApwYEbpQwnTebBGuAJATxg in eOUpGvpWLki.ELMJIhSesYxbUkwZa.Where(x=> x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) eOUpGvpWLki.ELMJIhSesYxbUkwZa.Remove(BGwNnqDGApwYEbpQwnTebBGuAJATxg);
                if (TsNqgUwLVRwSQlwZSlVwnhfRT) foreach(var BGwNnqDGApwYEbpQwnTebBGuAJATxg in eOUpGvpWLki.ELMJIhSesYxbUkwZa.Where(x=> !x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) eOUpGvpWLki.ELMJIhSesYxbUkwZa.Remove(BGwNnqDGApwYEbpQwnTebBGuAJATxg);
                if (string.IsNullOrEmpty(eOUpGvpWLki.GFFDDJkYNZMELB) || eOUpGvpWLki.GFFDDJkYNZMELB != BVKzYQSjnJisClbJlLDCWzQ) eOUpGvpWLki.GFFDDJkYNZMELB = BVKzYQSjnJisClbJlLDCWzQ;
                var lnntFrRIGA = IIrpoxkgLINGkxUJ();
                if (lnntFrRIGA.Count > 0) {
                    if (IlfMERBOFnZCQGiDUX) {
                        foreach(var eiCXKEocLtNiNhYxAUKJxljTdga in lnntFrRIGA) foreach(var GMJnwoZAPOxygKP in eiCXKEocLtNiNhYxAUKJxljTdga.Value) {
                            if (Vector3.Distance(GMJnwoZAPOxygKP.transform.position, rFFrIWsLeFNE) > 75f) continue;
                            if (!eOUpGvpWLki.ELMJIhSesYxbUkwZa.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) eOUpGvpWLki.ELMJIhSesYxbUkwZa.Add(eiCXKEocLtNiNhYxAUKJxljTdga.Key, new List<eQOkiKPpCXaogpqR>());
                            eOUpGvpWLki.ELMJIhSesYxbUkwZa[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Add(bCuBNrtBcPN(GMJnwoZAPOxygKP));
                        }
                    }
                    else {
                        foreach(var eiCXKEocLtNiNhYxAUKJxljTdga in lnntFrRIGA) {
                            var EKtiZmajrPB = default(Vector3);
                            foreach(var GMJnwoZAPOxygKP in eiCXKEocLtNiNhYxAUKJxljTdga.Value) {
                                if (EKtiZmajrPB == default(Vector3)) EKtiZmajrPB = GMJnwoZAPOxygKP.transform.position;
                                if (Vector3.Distance(GMJnwoZAPOxygKP.transform.position, EKtiZmajrPB) > 100f) continue;
                                if (!eOUpGvpWLki.ELMJIhSesYxbUkwZa.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) eOUpGvpWLki.ELMJIhSesYxbUkwZa.Add(eiCXKEocLtNiNhYxAUKJxljTdga.Key, new List<eQOkiKPpCXaogpqR>());
                                if (eOUpGvpWLki.ELMJIhSesYxbUkwZa[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Exists(x=> x.VXuqSGWweKgajlISVurhHh == GMJnwoZAPOxygKP.shopName)) continue;
                                eOUpGvpWLki.ELMJIhSesYxbUkwZa[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Add(bCuBNrtBcPN(GMJnwoZAPOxygKP));
                            }
                        }
                    }
                }
                HbFWbxatitPKllflCWftIw();
            }
        }
        private void rwfHBAtNJWvZnKOkMAjCzd() {
            bool HyvktfapKldLqRbbLddoBrY = false, skMeQSHBlFNKDOzOfzr = false, TsNqgUwLVRwSQlwZSlVwnhfRT = false;
            if (VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Count == 0) HyvktfapKldLqRbbLddoBrY = true;
            else if (IlfMERBOFnZCQGiDUX) {
                if (VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Where(x=> x.Key.Contains("HapisIsland")).Count() == 0) skMeQSHBlFNKDOzOfzr = true;
            }
            else {
                if ((VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Where(x=> x.Key == lAEYtZpEUOTnhkXL[0]).Count() == 0) || (VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Where(x=> x.Key == lAEYtZpEUOTnhkXL[1]).Count() == 0) ) TsNqgUwLVRwSQlwZSlVwnhfRT = true;
            }
            if (HyvktfapKldLqRbbLddoBrY || skMeQSHBlFNKDOzOfzr || TsNqgUwLVRwSQlwZSlVwnhfRT) {
                if (HyvktfapKldLqRbbLddoBrY) VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa = eOUpGvpWLki.fkAQTNftZpNbeRp();
                if (skMeQSHBlFNKDOzOfzr) foreach(var eiCXKEocLtNiNhYxAUKJxljTdga in eOUpGvpWLki.fkAQTNftZpNbeRp().Where(x=> x.Key.Contains("HapisIsland"))) if (!VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Add(eiCXKEocLtNiNhYxAUKJxljTdga.Key, eiCXKEocLtNiNhYxAUKJxljTdga.Value);
                if (TsNqgUwLVRwSQlwZSlVwnhfRT) foreach(var eiCXKEocLtNiNhYxAUKJxljTdga in eOUpGvpWLki.fkAQTNftZpNbeRp().Where(x=> !x.Key.Contains("HapisIsland"))) if (!VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Add(eiCXKEocLtNiNhYxAUKJxljTdga.Key, eiCXKEocLtNiNhYxAUKJxljTdga.Value);
                KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
            }
        }
        private void tiUoMXpLlV(Dictionary<string, List<eQOkiKPpCXaogpqR>> myhCFcWcUT) {
            bool OQMERXAPWMkOEZJeOWCwuu = false;
            foreach(var eiCXKEocLtNiNhYxAUKJxljTdga in eOUpGvpWLki.fkAQTNftZpNbeRp()) {
                if (IlfMERBOFnZCQGiDUX && !eiCXKEocLtNiNhYxAUKJxljTdga.Key.Contains("HapisIsland")) continue;
                if (!IlfMERBOFnZCQGiDUX && eiCXKEocLtNiNhYxAUKJxljTdga.Key.Contains("HapisIsland")) continue;
                if (!myhCFcWcUT.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) {
                    if (!CoTkYVCwufdXHsDg(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) PrintWarning(OvEzGqJWTVGSRWPuTLAMaisSzfZlJ("WARNING.NEW.RADTOWN").Replace("{RADTOWN}", eiCXKEocLtNiNhYxAUKJxljTdga.Key));
                    continue;
                }
                if (!VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) continue;
                foreach(var GMJnwoZAPOxygKP in eiCXKEocLtNiNhYxAUKJxljTdga.Value) {
                    if (!myhCFcWcUT[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Exists(x=> x.VXuqSGWweKgajlISVurhHh == GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh)) {
                        if (!VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Exists(x=> x.VXuqSGWweKgajlISVurhHh == GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh)) {
                            PrintWarning(OvEzGqJWTVGSRWPuTLAMaisSzfZlJ("WARNING.NEW.SHOP").Replace("{SHOP}", GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh).Replace("{RADTOWN}", eiCXKEocLtNiNhYxAUKJxljTdga.Key));
                            var qfhICRySQhJfbKHAdO = new eQOkiKPpCXaogpqR();
                            qfhICRySQhJfbKHAdO.VXuqSGWweKgajlISVurhHh = GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh;
                            VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Add(qfhICRySQhJfbKHAdO);
                            OQMERXAPWMkOEZJeOWCwuu = true;
                        }
                        var MrYhmujdPPctpkpJj = new eQOkiKPpCXaogpqR();
                        MrYhmujdPPctpkpJj.VXuqSGWweKgajlISVurhHh = GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh;
                        myhCFcWcUT[eiCXKEocLtNiNhYxAUKJxljTdga.Key].Add(MrYhmujdPPctpkpJj);
                    }
                    var eYoXJOONVF = myhCFcWcUT[eiCXKEocLtNiNhYxAUKJxljTdga.Key].FirstOrDefault(x=> x.VXuqSGWweKgajlISVurhHh == GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh);
                    var igCPVUaYIgmsjPiDjWrMhNT = VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa[eiCXKEocLtNiNhYxAUKJxljTdga.Key].FirstOrDefault(x=> x.VXuqSGWweKgajlISVurhHh == GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh);
                    foreach(var YXzLXFhnhQIrPCNTvrldy in GMJnwoZAPOxygKP.hrVseuPNZbhsQSTtQ) {
                        if (!eYoXJOONVF.hrVseuPNZbhsQSTtQ.Exists(x=> x.CIGpymgrHWfDpSIfLmN == YXzLXFhnhQIrPCNTvrldy.CIGpymgrHWfDpSIfLmN && x.VCmVUxvGTugHRQwutrA == YXzLXFhnhQIrPCNTvrldy.VCmVUxvGTugHRQwutrA && x.nEvnfNdWdmHRABS == YXzLXFhnhQIrPCNTvrldy.nEvnfNdWdmHRABS && x.CtmfBHQpozCXBEqHUZCEjPe == YXzLXFhnhQIrPCNTvrldy.CtmfBHQpozCXBEqHUZCEjPe && x.BtCWgYRrCTqgAogTXxLgRd == YXzLXFhnhQIrPCNTvrldy.BtCWgYRrCTqgAogTXxLgRd && x.SellSkinName == YXzLXFhnhQIrPCNTvrldy.SellSkinName)) {
                            if (!igCPVUaYIgmsjPiDjWrMhNT.hrVseuPNZbhsQSTtQ.Exists(x=> x.CIGpymgrHWfDpSIfLmN == YXzLXFhnhQIrPCNTvrldy.CIGpymgrHWfDpSIfLmN && x.VCmVUxvGTugHRQwutrA == YXzLXFhnhQIrPCNTvrldy.VCmVUxvGTugHRQwutrA && x.nEvnfNdWdmHRABS == YXzLXFhnhQIrPCNTvrldy.nEvnfNdWdmHRABS && x.CtmfBHQpozCXBEqHUZCEjPe == YXzLXFhnhQIrPCNTvrldy.CtmfBHQpozCXBEqHUZCEjPe && x.BtCWgYRrCTqgAogTXxLgRd == YXzLXFhnhQIrPCNTvrldy.BtCWgYRrCTqgAogTXxLgRd && x.SellSkinName == YXzLXFhnhQIrPCNTvrldy.SellSkinName)) {
                                PrintWarning(OvEzGqJWTVGSRWPuTLAMaisSzfZlJ("WARNING.NEW.ITEM").Replace("{SHOP}", GMJnwoZAPOxygKP.VXuqSGWweKgajlISVurhHh).Replace("{RADTOWN}", eiCXKEocLtNiNhYxAUKJxljTdga.Key).Replace("{ITEM}", YXzLXFhnhQIrPCNTvrldy.CIGpymgrHWfDpSIfLmN));
                                igCPVUaYIgmsjPiDjWrMhNT.hrVseuPNZbhsQSTtQ.Add(YXzLXFhnhQIrPCNTvrldy);
                                OQMERXAPWMkOEZJeOWCwuu = true;
                            }
                            eYoXJOONVF.hrVseuPNZbhsQSTtQ.Add(YXzLXFhnhQIrPCNTvrldy);
                        }
                    }
                }
            }
            if (OQMERXAPWMkOEZJeOWCwuu) KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
        }
        private void zylRCQZTeEVCyCUHmUKj() {
            var lnntFrRIGA = IIrpoxkgLINGkxUJ();
            foreach(var eiCXKEocLtNiNhYxAUKJxljTdga in VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa) {
                if (IlfMERBOFnZCQGiDUX && !eiCXKEocLtNiNhYxAUKJxljTdga.Key.Contains("HapisIsland")) continue;
                if (!IlfMERBOFnZCQGiDUX && eiCXKEocLtNiNhYxAUKJxljTdga.Key.Contains("HapisIsland")) continue;
                foreach(var igCPVUaYIgmsjPiDjWrMhNT in eiCXKEocLtNiNhYxAUKJxljTdga.Value) {
                    if (lnntFrRIGA.ContainsKey(eiCXKEocLtNiNhYxAUKJxljTdga.Key)) {
                        foreach(var GMJnwoZAPOxygKP in lnntFrRIGA[eiCXKEocLtNiNhYxAUKJxljTdga.Key]) {
                            var shopName = IlfMERBOFnZCQGiDUX ? GMJnwoZAPOxygKP.shopName + $" {GMJnwoZAPOxygKP.transform.position}" : GMJnwoZAPOxygKP.shopName;
                            if (!(igCPVUaYIgmsjPiDjWrMhNT.VXuqSGWweKgajlISVurhHh == shopName)) continue;
                            NEICWMMUks(igCPVUaYIgmsjPiDjWrMhNT, GMJnwoZAPOxygKP);
                        }
                    }
                }
            }
        }
        [ConsoleCommand("ctv.reset")]
        private void DzeVHfRAwqAOjbWYu(ConsoleSystem.Arg QmySjpwXLNaXzAFlpacduJfv) {
            var EIgTAlXzORLBKKSzMbDJh = QmySjpwXLNaXzAFlpacduJfv?.Player();
            if (EIgTAlXzORLBKKSzMbDJh != null && !EIgTAlXzORLBKKSzMbDJh.IsAdmin) return;
            VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa = eOUpGvpWLki.fkAQTNftZpNbeRp();
            if (IlfMERBOFnZCQGiDUX) foreach(var BGwNnqDGApwYEbpQwnTebBGuAJATxg in VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Where(x=> !x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Remove(BGwNnqDGApwYEbpQwnTebBGuAJATxg);
            else foreach(var BGwNnqDGApwYEbpQwnTebBGuAJATxg in VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Where(x=> x.Key.Contains("HapisIsland")).Select(x=> x.Key).ToList()) VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa.Remove(BGwNnqDGApwYEbpQwnTebBGuAJATxg);
            KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
            zylRCQZTeEVCyCUHmUKj();
            var dIOnKqjPOfUuqgYlNYcWfOVroVCh = OvEzGqJWTVGSRWPuTLAMaisSzfZlJ("INFO.RESET");
            if (EIgTAlXzORLBKKSzMbDJh != null) PrintToConsole(EIgTAlXzORLBKKSzMbDJh, dIOnKqjPOfUuqgYlNYcWfOVroVCh);
            else Puts(dIOnKqjPOfUuqgYlNYcWfOVroVCh);
        }
        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 OvEzGqJWTVGSRWPuTLAMaisSzfZlJ(string AozEBQOTCEFMfHqmacHGKTBaCacst, string AtoeKEdijVxOmct = null) => lang.GetMessage(AozEBQOTCEFMfHqmacHGKTBaCacst, this, AtoeKEdijVxOmct);
        private static jeHXHdpymixtpslvpVl VblVoPXVAZtZcKBVZi;
        private class eQOkiKPpCXaogpqR {
            [JsonProperty(PropertyName = "Игровое название магазина (не менять)")]
            public string VXuqSGWweKgajlISVurhHh;
            [JsonProperty(PropertyName = "Список товаров")]
            public List<xYfrWLmXgidZhBZCpPAWpvEgVNiYuF> hrVseuPNZbhsQSTtQ = new List<xYfrWLmXgidZhBZCpPAWpvEgVNiYuF>();
        }
        private class xYfrWLmXgidZhBZCpPAWpvEgVNiYuF {
            [JsonProperty(PropertyName = "Название покупаемого товара")]
            public string CIGpymgrHWfDpSIfLmN;
            [JsonProperty(PropertyName = "Количество покупаемого товара за раз")]
            public int YROdllwyJHkQTyDXnXOPmGXImd;
            [JsonProperty(PropertyName = "Покупаемый товар это чертёж")]
            public bool nEvnfNdWdmHRABS;
            [JsonProperty(PropertyName = "Скин покупаемого товара")]
            public ulong BtCWgYRrCTqgAogTXxLgRd;
            [JsonProperty(PropertyName = "Свое название покупаемого товара")]
            public string SellSkinName;
            [JsonProperty(PropertyName = "Название платёжного товара")]
            public string VCmVUxvGTugHRQwutrA;
            [JsonProperty(PropertyName = "Количество платёжного товара за раз")]
            public int qlXpUFgCfepvToqmUdvKCvqOrMwUMY;
            [JsonProperty(PropertyName = "Платёжный товар это чертёж")]
            public bool CtmfBHQpozCXBEqHUZCEjPe;
        }
        private class jeHXHdpymixtpslvpVl {
            [JsonProperty(PropertyName = "Добавлять новые предметы в магазины")]
            public bool AZMTZnrHcygnbsYwVhyGwtX;
            [JsonProperty(PropertyName = "Задержка инициализации магазинов (секунды)")]
            public int ojQJUsAdNVgZ;
            [JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
            public Dictionary<string, List<eQOkiKPpCXaogpqR>> ELMJIhSesYxbUkwZa = new Dictionary<string, List<eQOkiKPpCXaogpqR>>();
        }
        private void pfWumzAnXozRLbRrDXVlYFAElovD() {
            VblVoPXVAZtZcKBVZi = Config.ReadObject<jeHXHdpymixtpslvpVl>();
            if (VblVoPXVAZtZcKBVZi == null) VblVoPXVAZtZcKBVZi = new jeHXHdpymixtpslvpVl();
            if (VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa == null) VblVoPXVAZtZcKBVZi.ELMJIhSesYxbUkwZa = new Dictionary<string, List<eQOkiKPpCXaogpqR>>();
            KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
        }
        protected override void LoadDefaultConfig() {
            VblVoPXVAZtZcKBVZi = new jeHXHdpymixtpslvpVl {
                AZMTZnrHcygnbsYwVhyGwtX = true, ojQJUsAdNVgZ = 30, ELMJIhSesYxbUkwZa = new Dictionary<string, List<eQOkiKPpCXaogpqR>>()
            }
            ;
            KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi);
            timer.Once(0.1f, ()=> KsxbLlrMrjVVPkLLelSAdotu(VblVoPXVAZtZcKBVZi));
        }
        private void KsxbLlrMrjVVPkLLelSAdotu(jeHXHdpymixtpslvpVl wXvtBCHTBeXTGh) => Config.WriteObject(wXvtBCHTBeXTGh, true);
        private static wNdACGWHkuZmpHBZgSHMFtJzdAOhC eOUpGvpWLki = new wNdACGWHkuZmpHBZgSHMFtJzdAOhC();
        private class wNdACGWHkuZmpHBZgSHMFtJzdAOhC {
            [JsonProperty(PropertyName = "Протокол")]
            public string GFFDDJkYNZMELB;
            [JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
            public Dictionary<string, List<eQOkiKPpCXaogpqR>> ELMJIhSesYxbUkwZa = new Dictionary<string, List<eQOkiKPpCXaogpqR>>();
            public Dictionary<string, List<eQOkiKPpCXaogpqR>> fkAQTNftZpNbeRp() => JsonConvert.DeserializeObject<Dictionary<string, List<eQOkiKPpCXaogpqR>>>(JsonConvert.SerializeObject(ELMJIhSesYxbUkwZa));
        }
        private void qtordHYEXIZsXe() {
            eOUpGvpWLki = Interface.GetMod().DataFileSystem.ReadObject<wNdACGWHkuZmpHBZgSHMFtJzdAOhC>("CustomTownVendingData");
            if (eOUpGvpWLki == null) eOUpGvpWLki = new wNdACGWHkuZmpHBZgSHMFtJzdAOhC();
            if (eOUpGvpWLki.ELMJIhSesYxbUkwZa == null) eOUpGvpWLki.ELMJIhSesYxbUkwZa = new Dictionary<string, List<eQOkiKPpCXaogpqR>>();
        }
        private void HbFWbxatitPKllflCWftIw() => Interface.GetMod().DataFileSystem.WriteObject("CustomTownVendingData", eOUpGvpWLki);
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху