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

FREE CustomTownVending : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using System;
using System.Linq;
using System.Collections;
using Oxide.Core.Plugins;
using Oxide.Core;
using UnityEngine;
using Newtonsoft.Json;
namespace Oxide.Plugins {
    [Info("CustomTownVending", "ADMIN", "1.0.0")]
    class CustomTownVending : RustPlugin {
        private static bool vfNCvYrEpPmnmmLGheqMU = false;
        private class njHTmnOYemIxFVxbnZcfSuUPRHizit {
            [JsonProperty(PropertyName = "Игровое название магазина (не менять)")]
            public string HhgpYTQDHmbHPDXQRLMnZ;
            [JsonProperty(PropertyName = "Список товаров")]
            public List<SellOrderEntry> PPOLjjMlIqHcvj = new List<SellOrderEntry>();
        }
        private class SellOrderEntry {
            [JsonProperty(PropertyName = "Название покупаемого товара")]
            public string pEBIhDpkxQnko;
            [JsonProperty(PropertyName = "Количество покупаемого товара за раз")]
            public int lvmbGclsoFCWMCKVqxL;
            [JsonProperty(PropertyName = "Покупаемый товар это чертёж")]
            public bool FMdNyEWtsYTnrvAcDZ;
            [JsonProperty(PropertyName = "Название платёжного товара")]
            public string PCOttYGcSBdu;
            [JsonProperty(PropertyName = "Количество платёжного товара за раз")]
            public int ERSIOuTzCKXABzCcCjbAPsiZBaJvtN;
            [JsonProperty(PropertyName = "Платёжный товар это чертёж")]
            public bool kCvNPLLsyLhVpAz;
        }
        private void Init() {
            OkJAZeyzPwtOwq();
            LoadDefaultMessages();
        }
        private void OnTerrainInitialized() => vfNCvYrEpPmnmmLGheqMU = true;
        private void OnServerInitialized() {
            bool eYrBxwoQUiAvOPhEYhmaxnL = false;
            var wQgWcFYqezFlrwUVdt = UnityEngine.Object.FindObjectsOfType<NPCVendingMachine>().Where(x=> x!=null && !string.IsNullOrEmpty(x.shopName)).ToList();
            if (vfNCvYrEpPmnmmLGheqMU || fhWDaPfPkVvniPGFEnPYM == null) {
                if (fhWDaPfPkVvniPGFEnPYM == null) {
                    fhWDaPfPkVvniPGFEnPYM = new QfBsQviOXCqQMGojoJG {
                        hvOEgTyfbGcqvnCxdWpizxKeOe = new Dictionary<string, List<njHTmnOYemIxFVxbnZcfSuUPRHizit>>()
                    }
                    ;
                    vfNCvYrEpPmnmmLGheqMU = true;
                }
                fhWDaPfPkVvniPGFEnPYM.hvOEgTyfbGcqvnCxdWpizxKeOe.Clear();
            }
            foreach(var MEzgmlaswoEDYOxmdSug in wQgWcFYqezFlrwUVdt.OrderBy(x=>x.shopName)) {
                var daqFwjzwKkEz = KljIVkxGjnKy(MEzgmlaswoEDYOxmdSug.transform.position).Replace("\n", "");
                if (vfNCvYrEpPmnmmLGheqMU) {
                    var dqqvhjkuyfcbOhMtlmoFOR = new njHTmnOYemIxFVxbnZcfSuUPRHizit();
                    dqqvhjkuyfcbOhMtlmoFOR.HhgpYTQDHmbHPDXQRLMnZ = MEzgmlaswoEDYOxmdSug.shopName;
                    foreach(var SUHjMyuFzHdFNEJJqwn in MEzgmlaswoEDYOxmdSug.vendingOrders.orders) {
                        var umCWZTUeaYnnxMM = new SellOrderEntry();
                        umCWZTUeaYnnxMM.pEBIhDpkxQnko = SUHjMyuFzHdFNEJJqwn.sellItem.shortname;
                        umCWZTUeaYnnxMM.lvmbGclsoFCWMCKVqxL = SUHjMyuFzHdFNEJJqwn.sellItemAmount;
                        umCWZTUeaYnnxMM.FMdNyEWtsYTnrvAcDZ = SUHjMyuFzHdFNEJJqwn.sellItemAsBP;
                        umCWZTUeaYnnxMM.PCOttYGcSBdu = SUHjMyuFzHdFNEJJqwn.currencyItem.shortname;
                        umCWZTUeaYnnxMM.ERSIOuTzCKXABzCcCjbAPsiZBaJvtN = SUHjMyuFzHdFNEJJqwn.currencyAmount;
                        umCWZTUeaYnnxMM.kCvNPLLsyLhVpAz = SUHjMyuFzHdFNEJJqwn.currencyAsBP;
                        dqqvhjkuyfcbOhMtlmoFOR.PPOLjjMlIqHcvj.Add(umCWZTUeaYnnxMM);
                    }
                    if (!fhWDaPfPkVvniPGFEnPYM.hvOEgTyfbGcqvnCxdWpizxKeOe.ContainsKey(daqFwjzwKkEz)) fhWDaPfPkVvniPGFEnPYM.hvOEgTyfbGcqvnCxdWpizxKeOe.Add(daqFwjzwKkEz, new List<njHTmnOYemIxFVxbnZcfSuUPRHizit>());
                    fhWDaPfPkVvniPGFEnPYM.hvOEgTyfbGcqvnCxdWpizxKeOe[daqFwjzwKkEz].Add(dqqvhjkuyfcbOhMtlmoFOR);
                }
                if (!XeKWeeEdufo.hvOEgTyfbGcqvnCxdWpizxKeOe.ContainsKey(daqFwjzwKkEz)) XeKWeeEdufo.hvOEgTyfbGcqvnCxdWpizxKeOe.Add(daqFwjzwKkEz, new List<njHTmnOYemIxFVxbnZcfSuUPRHizit>());
                if (!XeKWeeEdufo.hvOEgTyfbGcqvnCxdWpizxKeOe[daqFwjzwKkEz].Exists(x=>x.HhgpYTQDHmbHPDXQRLMnZ==MEzgmlaswoEDYOxmdSug.shopName)) {
                    var PUxSiAvACzREUBjcbdZGIQmSXjmdo = new njHTmnOYemIxFVxbnZcfSuUPRHizit();
                    PUxSiAvACzREUBjcbdZGIQmSXjmdo.HhgpYTQDHmbHPDXQRLMnZ = MEzgmlaswoEDYOxmdSug.shopName;
                    foreach(var SUHjMyuFzHdFNEJJqwn in MEzgmlaswoEDYOxmdSug.vendingOrders.orders) {
                        var BQGTqfDhzTy = new SellOrderEntry();
                        BQGTqfDhzTy.pEBIhDpkxQnko = SUHjMyuFzHdFNEJJqwn.sellItem.shortname;
                        BQGTqfDhzTy.lvmbGclsoFCWMCKVqxL = SUHjMyuFzHdFNEJJqwn.sellItemAmount;
                        BQGTqfDhzTy.FMdNyEWtsYTnrvAcDZ = SUHjMyuFzHdFNEJJqwn.sellItemAsBP;
                        BQGTqfDhzTy.PCOttYGcSBdu = SUHjMyuFzHdFNEJJqwn.currencyItem.shortname;
                        BQGTqfDhzTy.ERSIOuTzCKXABzCcCjbAPsiZBaJvtN = SUHjMyuFzHdFNEJJqwn.currencyAmount;
                        BQGTqfDhzTy.kCvNPLLsyLhVpAz = SUHjMyuFzHdFNEJJqwn.currencyAsBP;
                        PUxSiAvACzREUBjcbdZGIQmSXjmdo.PPOLjjMlIqHcvj.Add(BQGTqfDhzTy);
                    }
                    XeKWeeEdufo.hvOEgTyfbGcqvnCxdWpizxKeOe[daqFwjzwKkEz].Add(PUxSiAvACzREUBjcbdZGIQmSXjmdo);
                    eYrBxwoQUiAvOPhEYhmaxnL = true;
                }
                else {
                    MEzgmlaswoEDYOxmdSug.ClearSellOrders();
                    MEzgmlaswoEDYOxmdSug.inventory.Clear();
                    foreach(var SUHjMyuFzHdFNEJJqwn in XeKWeeEdufo.hvOEgTyfbGcqvnCxdWpizxKeOe[daqFwjzwKkEz].FirstOrDefault(x=>x.HhgpYTQDHmbHPDXQRLMnZ==MEzgmlaswoEDYOxmdSug.shopName).PPOLjjMlIqHcvj) {
                        var drUCgGbYxRiOc = ItemManager.FindItemDefinition(SUHjMyuFzHdFNEJJqwn.pEBIhDpkxQnko);
                        if (drUCgGbYxRiOc == null) {
                            PrintWarning(IcwZHRumaAbnkkisXlFZb("WARNING.ITEM").Replace("{ITEM}", SUHjMyuFzHdFNEJJqwn.pEBIhDpkxQnko));
                            continue;
                        }
                        var DvTJoTFKRZvnMc = ItemManager.FindItemDefinition(SUHjMyuFzHdFNEJJqwn.PCOttYGcSBdu);
                        if (DvTJoTFKRZvnMc == null) {
                            PrintWarning(IcwZHRumaAbnkkisXlFZb("WARNING.ITEM").Replace("{ITEM}", SUHjMyuFzHdFNEJJqwn.PCOttYGcSBdu));
                            continue;
                        }
                        if (SUHjMyuFzHdFNEJJqwn.lvmbGclsoFCWMCKVqxL <= 0 || SUHjMyuFzHdFNEJJqwn.ERSIOuTzCKXABzCcCjbAPsiZBaJvtN <= 0) continue;
                        MEzgmlaswoEDYOxmdSug.AddItemForSale(drUCgGbYxRiOc.itemid, SUHjMyuFzHdFNEJJqwn.lvmbGclsoFCWMCKVqxL, DvTJoTFKRZvnMc.itemid, SUHjMyuFzHdFNEJJqwn.ERSIOuTzCKXABzCcCjbAPsiZBaJvtN, MEzgmlaswoEDYOxmdSug.GetBPState(SUHjMyuFzHdFNEJJqwn.FMdNyEWtsYTnrvAcDZ, SUHjMyuFzHdFNEJJqwn.kCvNPLLsyLhVpAz));
                    }
                }
            }
            if (vfNCvYrEpPmnmmLGheqMU) bYWxEvPqfFklzROBASQApCP();
            if (eYrBxwoQUiAvOPhEYhmaxnL) srTOWmHkcCLU(XeKWeeEdufo);
            vfNCvYrEpPmnmmLGheqMU = false;
        }
        private string KljIVkxGjnKy(Vector3 qsJZaiEvunTIzCZlLxawLRqQSRPsD) {
            var OKqodslXexlkHPleLHBacm = TerrainMeta.Path.Monuments.Where(x=> x != null).ToDictionary(x=>Vector3.Distance(x.transform.position, qsJZaiEvunTIzCZlLxawLRqQSRPsD), x=>x).OrderBy(x=>x.Key);
            if (OKqodslXexlkHPleLHBacm.Count() == 0) return "N|A";
            var OgNNclnxjVsRdc = OKqodslXexlkHPleLHBacm.FirstOrDefault();
            return !string.IsNullOrEmpty(OgNNclnxjVsRdc.Value.displayPhrase.english) ? OgNNclnxjVsRdc.Value.displayPhrase.english : "N|A";
        }
        [ConsoleCommand("ctv.reset")]
        private void aTXRKtIvAmSTlRE(ConsoleSystem.Arg KrxMmTTpHZxMXw) {
            var OmrZGKbXrJmYcSAqXxHbP = KrxMmTTpHZxMXw?.Player();
            if (OmrZGKbXrJmYcSAqXxHbP != null && !OmrZGKbXrJmYcSAqXxHbP.IsAdmin) return;
            XeKWeeEdufo.hvOEgTyfbGcqvnCxdWpizxKeOe = fhWDaPfPkVvniPGFEnPYM.zeXOGeWSRvBcOuCRonfn();
            OnServerInitialized();
            srTOWmHkcCLU(XeKWeeEdufo);
            var xRUPhMsjbiZ = IcwZHRumaAbnkkisXlFZb("INFO.RESET");
            if (OmrZGKbXrJmYcSAqXxHbP != null) PrintToConsole(OmrZGKbXrJmYcSAqXxHbP, xRUPhMsjbiZ);
            else Puts(xRUPhMsjbiZ);
        }
        private void LoadDefaultMessages() {
            lang.RegisterMessages(new Dictionary<string, string> {
                {
                    "INFO.RESET", "Товары из магазинов в NPC городах были востановлены до значений по умолчанию."
                }
                , {
                    "WARNING.ITEM", "Ошибка.Указанный в конфигурационном файле предмет не существует: '{ITEM}'."
                }
            }
            , this);
        }
        private string IcwZHRumaAbnkkisXlFZb(string NAtxMvouDbjbtBpixeuVJAwuHeyDnH, string xeunnpDObqfMagBZaLWBhTPUOM = null) => lang.GetMessage(NAtxMvouDbjbtBpixeuVJAwuHeyDnH, this, xeunnpDObqfMagBZaLWBhTPUOM);
        private static QfBsQviOXCqQMGojoJG XeKWeeEdufo;
        private class QfBsQviOXCqQMGojoJG {
            [JsonProperty(PropertyName = "Торговые автоматы в NPC городах")]
            public Dictionary<string, List<njHTmnOYemIxFVxbnZcfSuUPRHizit>> hvOEgTyfbGcqvnCxdWpizxKeOe;
            public Dictionary<string, List<njHTmnOYemIxFVxbnZcfSuUPRHizit>> zeXOGeWSRvBcOuCRonfn() => JsonConvert.DeserializeObject<Dictionary<string, List<njHTmnOYemIxFVxbnZcfSuUPRHizit>>>(JsonConvert.SerializeObject(hvOEgTyfbGcqvnCxdWpizxKeOe));
        }
        private void OkJAZeyzPwtOwq() => XeKWeeEdufo = Config.ReadObject<QfBsQviOXCqQMGojoJG>();
        protected override void LoadDefaultConfig() {
            XeKWeeEdufo = new QfBsQviOXCqQMGojoJG {
                hvOEgTyfbGcqvnCxdWpizxKeOe = new Dictionary<string, List<njHTmnOYemIxFVxbnZcfSuUPRHizit>>()
            }
            ;
            srTOWmHkcCLU(XeKWeeEdufo);
            timer.Once(0.1f, ()=>srTOWmHkcCLU(XeKWeeEdufo));
        }
        private void srTOWmHkcCLU(QfBsQviOXCqQMGojoJG sxQCoFNzWStxvQxwKKZZ) => Config.WriteObject(sxQCoFNzWStxvQxwKKZZ, true);
        private QfBsQviOXCqQMGojoJG fhWDaPfPkVvniPGFEnPYM;
        private void bYWxEvPqfFklzROBASQApCP() => Interface.GetMod().DataFileSystem.WriteObject("CustomTownVendingData", fhWDaPfPkVvniPGFEnPYM);
    }
}
//  Слив плагинов server-rust by Apolo YouGame

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