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

FREE Triangulation : 1.1.1 1.1.1

Нет прав для скачивания
C#:
using System;
using System.Collections;
using System.Collections.Generic;
using Facepunch;
using UnityEngine;
using UnityEngine.AI;
using Oxide.Core;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using System.IO;
using UnityEngine.Networking;
using Oxide.Plugins.TriangulationExtensionMethods;
namespace Oxide.Plugins {
    [Info("Triangulation", "KpucTaJl", "1.1.1")]
    internal class Triangulation : RustPlugin {
#region Config
        private const bool En = false;
        private PluginConfig _config;
        protected override void LoadDefaultConfig() {
            Puts("Creating a default config...");
            _config = PluginConfig.DefaultConfig();
            _config.PluginVersion = Version;
            SaveConfig();
            Puts("Creation of the default config completed!");
        }
        protected override void LoadConfig() {
            base.LoadConfig();
            _config = Config.ReadObject<PluginConfig>();
            if (_config.PluginVersion < Version) UpdateConfigValues();
        }
        private void UpdateConfigValues() {
            Puts("Config update detected! Updating config values...");
            if (_config.PluginVersion < new VersionNumber(1, 0, 2)) {
                _config.CooldownOwner = 86400;
            }
            if (_config.PluginVersion < new VersionNumber(1, 0, 7)) {
                _config.SkillTree = false;
                _config.XPerience = false;
                _config.RustRewards = false;
            }
            _config.PluginVersion = Version;
            Puts("Config update completed!");
            SaveConfig();
        }
        protected override void SaveConfig() => Config.WriteObject(_config);
        public class ItemConfig {
            [JsonProperty("ShortName")]
            public string ShortName {
                get;
                set;
            }
            [JsonProperty(En ? "Minimum" : "Минимальное кол-во")]
            public int MinAmount {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum" : "Максимальное кол-во")]
            public int MaxAmount {
                get;
                set;
            }
            [JsonProperty(En ? "Chance [0.0-100.0]" : "Шанс выпадения предмета [0.0-100.0]")]
            public float Chance {
                get;
                set;
            }
            [JsonProperty(En ? "Give blueprint? [true/false]" : "Это чертеж? [true/false]")]
            public bool IsBluePrint {
                get;
                set;
            }
            [JsonProperty("SkinID (0 = default)")]
            public ulong SkinId {
                get;
                set;
            }
            [JsonProperty(En ? "Name (empty = default)" : "Название (empty - default)")]
            public string Name {
                get;
                set;
            }
        }
        public class LootTableConfig {
            [JsonProperty(En ? "Minimum items" : "Минимальное кол-во элементов")]
            public int Min {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum items" : "Максимальное кол-во элементов")]
            public int Max {
                get;
                set;
            }
            [JsonProperty(En ? "Enforce minimum and maximum values? [true/false]" : "Использовать минимальное и максимальное значение? [true/false]")]
            public bool UseCount {
                get;
                set;
            }
            [JsonProperty(En ? "List of items" : "Список предметов")]
            public List<ItemConfig> Items {
                get;
                set;
            }
        }
        public class PrefabConfig {
            [JsonProperty(En ? "Chance [0.0-100.0]" : "Шанс выпадения [0.0-100.0]")]
            public float Chance {
                get;
                set;
            }
            [JsonProperty(En ? "The path to the prefab (Entity full name)" : "Путь к prefab-у")]
            public string PrefabDefinition {
                get;
                set;
            }
        }
        public class PrefabLootTableConfig {
            [JsonProperty(En ? "Minimum numbers of prefabs" : "Минимальное кол-во prefab-ов")]
            public int Min {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum numbers of prefabs" : "Максимальное кол-во prefab-ов")]
            public int Max {
                get;
                set;
            }
            [JsonProperty(En ? "Enforce minimum and maximum values? [true/false]" : "Использовать минимальное и максимальное значение? [true/false]")]
            public bool UseCount {
                get;
                set;
            }
            [JsonProperty(En ? "List of prefabs (Entity full names)" : "Список prefab-ов")]
            public List<PrefabConfig> Prefabs {
                get;
                set;
            }
        }
        public class LootTable {
            [JsonProperty(En ? "Which loot table should the plugin use? (0 - own custom table; 1 - Rust prefab loot table; 2 - combine both 0 & 1 tables)" : "Какую таблицу лута необходимо использовать? (0 - собственную; 1 - таблица предметов объектов Rust; 2 - совместить 0 и 1 методы)")]
            public int TypeLootTable {
                get;
                set;
            }
            [JsonProperty(En ? "Rust prefab loot table (if the loot table type is 1 or 2)" : "Таблица предметов из prefab-ов (если тип таблицы предметов - 1 или 2)")]
            public PrefabLootTableConfig PrefabLootTable {
                get;
                set;
            }
            [JsonProperty(En ? "Own custom table (if the loot table type is 0 or 2)" : "Собственная таблица предметов (если тип таблицы предметов - 0 или 2)")]
            public LootTableConfig OwnLootTable {
                get;
                set;
            }
        }
        public class ColorConfig {
            [JsonProperty("r")]
            public float R {
                get;
                set;
            }
            [JsonProperty("g")]
            public float G {
                get;
                set;
            }
            [JsonProperty("b")]
            public float B {
                get;
                set;
            }
        }
        public class MarkerConfig {
            [JsonProperty(En ? "Use map marker? [true/false]" : "Использовать маркер на карте? [true/false]")]
            public bool Enabled {
                get;
                set;
            }
            [JsonProperty(En ? "Type (0 - simple, 1 - advanced)" : "Тип (0 - упрощенный, 1 - расширенный)")]
            public int Type {
                get;
                set;
            }
            [JsonProperty(En ? "Background radius (if the marker type is 0)" : "Радиус фона (если тип маркера - 0)")]
            public float Radius {
                get;
                set;
            }
            [JsonProperty(En ? "Background transparency" : "Прозрачность фона")]
            public float Alpha {
                get;
                set;
            }
            [JsonProperty(En ? "Color" : "Цвет")]
            public ColorConfig Color {
                get;
                set;
            }
            [JsonProperty(En ? "Text" : "Текст")]
            public string Text {
                get;
                set;
            }
        }
        public class PointConfig {
            [JsonProperty(En ? "Enabled? [true/false]" : "Включен? [true/false]")]
            public bool Enabled {
                get;
                set;
            }
            [JsonProperty(En ? "Text" : "Текст")]
            public string Text {
                get;
                set;
            }
            [JsonProperty(En ? "Size" : "Размер")]
            public int Size {
                get;
                set;
            }
            [JsonProperty(En ? "Color" : "Цвет")]
            public string Color {
                get;
                set;
            }
        }
        public class GuiConfig {
            [JsonProperty(En ? "Use the GUI? [true/false]" : "Использовать ли GUI? [true/false]")]
            public bool IsGui {
                get;
                set;
            }
            [JsonProperty("OffsetMin Y")]
            public string OffsetMinY {
                get;
                set;
            }
        }
        public class ChatConfig {
            [JsonProperty(En ? "Use chat messages? [true/false]" : "Использовать ли чат? [true/false]")]
            public bool IsChat {
                get;
                set;
            }
            [JsonProperty(En ? "Prefix for chat messages" : "Префикс сообщений в чате")]
            public string Prefix {
                get;
                set;
            }
        }
        public class GameTipConfig {
            [JsonProperty(En ? "Use Facepunch Game Tips (notification bar above hotbar)? [true/false]" : "Использовать ли Facepunch Game Tip (оповещения над слотами быстрого доступа игрока)? [true/false]")]
            public bool IsGameTip {
                get;
                set;
            }
            [JsonProperty(En ? "Style (0 - Blue Normal, 1 - Red Normal, 2 - Blue Long, 3 - Blue Short, 4 - Server Event)" : "Стиль (0 - Blue Normal, 1 - Red Normal, 2 - Blue Long, 3 - Blue Short, 4 - Server Event)")]
            public int Style {
                get;
                set;
            }
        }
        public class GuiAnnouncementsConfig {
            [JsonProperty(En ? "Do you use the plugin GUIAnnouncements? [true/false]" : "Использовать ли GUIAnnouncements? [true/false]")]
            public bool IsGuiAnnouncements {
                get;
                set;
            }
            [JsonProperty(En ? "Banner color" : "Цвет баннера")]
            public string BannerColor {
                get;
                set;
            }
            [JsonProperty(En ? "Text color" : "Цвет текста")]
            public string TextColor {
                get;
                set;
            }
            [JsonProperty(En ? "Adjust Vertical Position" : "Отступ от верхнего края")]
            public float ApiAdjustVPosition {
                get;
                set;
            }
        }
        public class NotifyConfig {
            [JsonProperty(En ? "Do you use the plugin Notify? [true/false]" : "Использовать ли Notify? [true/false]")]
            public bool IsNotify {
                get;
                set;
            }
            [JsonProperty(En ? "Type" : "Тип")]
            public int Type {
                get;
                set;
            }
        }
        public class DiscordConfig {
            [JsonProperty(En ? "Do you use the plugin DiscordMessages? [true/false]" : "Использовать ли DiscordMessages? [true/false]")]
            public bool IsDiscord {
                get;
                set;
            }
            [JsonProperty("Webhook URL")]
            public string WebhookUrl {
                get;
                set;
            }
            [JsonProperty(En ? "Embed Color (DECIMAL)" : "Цвет полосы (DECIMAL)")]
            public int EmbedColor {
                get;
                set;
            }
            [JsonProperty(En ? "Keys of required messages" : "Ключи необходимых сообщений")]
            public HashSet<string> Keys {
                get;
                set;
            }
        }
        public class EconomyConfig {
            [JsonProperty(En ? "Which economy plugins do you want to use? (Economics, ServerRewards, IQEconomic, XPerience)" : "Какие плагины экономики вы хотите использовать? (Economics, ServerRewards, IQEconomic, XPerience)")]
            public HashSet<string> Plugins {
                get;
                set;
            }
            [JsonProperty(En ? "The minimum value that a player must collect to get economy reward" : "Минимальное значение, которое игрок должен заработать, чтобы получить баллы за экономику")]
            public double Min {
                get;
                set;
            }
            [JsonProperty(En ? "Killing animals" : "Убийство животных")]
            public Dictionary<string, double> Animals {
                get;
                set;
            }
            [JsonProperty(En ? "Start scanning on the signal receiver" : "Начало сканирования на приемнике сигнала")]
            public double StartScan {
                get;
                set;
            }
            [JsonProperty(En ? "List of commands that are executed in server console at the end of the event ({steamid} - the player who collected the highest number of points)" : "Список команд, которые выполняются в консоли по окончанию ивента ({steamid} - игрок, который набрал наибольшее кол-во баллов)")]
            public HashSet<string> Commands {
                get;
                set;
            }
        }
        public class AnimalConfig {
            [JsonProperty(En ? "Type (1 - Polar Bear, 2 - Bear, 3 - Wolf, 4 - Boar, 5 - Stag, 6 - Chicken)" : "Тип (1 - Полярный медведь, 2 - Медведь, 3 - Волк, 4 - Кабан, 5 - Олень, 6 - Курица)")]
            public int Type {
                get;
                set;
            }
            [JsonProperty(En ? "Can an animal attack players? [true/false]" : "Может ли атаковать игроков? [true/false]")]
            public bool CanAttackPlayer {
                get;
                set;
            }
            [JsonProperty(En ? "Health" : "Кол-во ХП")]
            public float Health {
                get;
                set;
            }
            [JsonProperty(En ? "Attack Range" : "Радиус атаки")]
            public float AttackRange {
                get;
                set;
            }
            [JsonProperty(En ? "Attack Damage" : "Урон от атаки")]
            public float AttackDamage {
                get;
                set;
            }
            [JsonProperty(En ? "Animal damage each second to signal receiver" : "Кол-во урона по приемнику сигнала в секунду")]
            public float DamagePerSec {
                get;
                set;
            }
            [JsonProperty(En ? "Attack Rate [sec.]" : "Минимальное время между атаками [sec.]")]
            public float AttackRate {
                get;
                set;
            }
            [JsonProperty(En ? "Speed" : "Скорость")]
            public float Speed {
                get;
                set;
            }
        }
        public class AmountConfig {
            [JsonProperty(En ? "Chance probability [0.0-100.0]" : "Шанс [0.0-100.0]")]
            public float Chance {
                get;
                set;
            }
            [JsonProperty(En ? "Count" : "Кол-во")]
            public int Count {
                get;
                set;
            }
        }
        public class PresetConfig {
            [JsonProperty(En ? "ShortName of the animal preset" : "ShortName набора животного")]
            public string ShortName {
                get;
                set;
            }
            [JsonProperty(En ? "Setting number of animals depending on probability" : "Настройка кол-ва животных в зависимoсти от вероятности")]
            public HashSet<AmountConfig> ListAmountConfig {
                get;
                set;
            }
        }
        public class WaveConfig {
            [JsonProperty(En ? "Level" : "Уровень")]
            public int Level {
                get;
                set;
            }
            [JsonProperty(En ? "Preparation time [sec.]" : "Время подготовки [sec.]")]
            public int TimeToStart {
                get;
                set;
            }
            [JsonProperty(En ? "Duration [sec.]" : "Длительность [sec.]")]
            public int Duration {
                get;
                set;
            }
            [JsonProperty(En ? "Time until appearance of new animals [sec.]" : "Время появления новых животных [sec.]")]
            public int TimerAnimal {
                get;
                set;
            }
            [JsonProperty(En ? "Animal sets" : "Наборы животных")]
            public HashSet<PresetConfig> Presets {
                get;
                set;
            }
        }
        public class ReceiverConfig {
            [JsonProperty(En ? "Health" : "Кол-во ХП")]
            public float Health {
                get;
                set;
            }
            [JsonProperty(En ? "Health to get one battery" : "Кол-во ХП для получения одной батарейки")]
            public float HealthPerBattery {
                get;
                set;
            }
            [JsonProperty(En ? "The loot table in crate at the end of the scan" : "Таблица предметов в ящике при завершении сканирования")]
            public LootTable Loot {
                get;
                set;
            }
            [JsonProperty(En ? "List of attack waves" : "Список волн атаки")]
            public HashSet<WaveConfig> Waves {
                get;
                set;
            }
        }
        public class DrillConfig {
            [JsonProperty(En ? "The operating time of the drilling rig from each battery [sec.]" : "Время работы от одной батарейки [sec.]")]
            public int WorkingTimePerBattery {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum operating time [sec.]" : "Максимальное время работы [sec.]")]
            public int MaxWorkingTime {
                get;
                set;
            }
            [JsonProperty(En ? "Lifetime [sec.]" : "Время существования [sec.]")]
            public int LifeTime {
                get;
                set;
            }
            [JsonProperty(En ? "The duration of item acquisition cycle [sec.]" : "Продолжительность цикла получения предметов [sec.]")]
            public int CycleTime {
                get;
                set;
            }
            [JsonProperty(En ? "Loot table for one item acquisition cycle" : "Таблица предметов для одного цикла получения предметов")]
            public LootTable Loot {
                get;
                set;
            }
        }
        public class LocationConfig {
            [JsonProperty(En ? "Position of the signal receiver or drilling rig" : "Позиция приемника сигнала или буровой установки")]
            public string Main {
                get;
                set;
            }
            [JsonProperty(En ? "List of positions for animals (if it is a signal receiver)" : "Список позиций для животных (если это приемник сигнала)")]
            public HashSet<string> Animals {
                get;
                set;
            }
        }
        public class MonumentConfig {
            [JsonProperty(En ? "Name of monument" : "Название монумента")]
            public string Name {
                get;
                set;
            }
            [JsonProperty(En ? "List of locations" : "Список расположений")]
            public HashSet<LocationConfig> Locations {
                get;
                set;
            }
        }
        public class SpawnConfig {
            [JsonProperty(En ? "What type of event appearance? (0 - random, 1 - standard monuments, 2 - custom monuments, 3 - combine 1 & 2 both, 4 - random but will default to 3 if no location is found)" : "Какой тип появления ивента необходимо использовать? (0 - рандомный, 1 - стандартные монументы, 2 - кастомные монументы, 3 - совместить 1 и 2 методы, 4 - рандомный, но если позиция не найдена, то 3 метод)")]
            public int Type {
                get;
                set;
            }
            [JsonProperty(En ? "List of biomes for the appearance of the event" : "Список биомов для появления ивента")]
            public HashSet<string> Biomes {
                get;
                set;
            }
            [JsonProperty(En ? "List of positions on standard monuments (all positions are relative to the monument)" : "Список позиций на стандартных монументах (все позиции являются локальными относительно монумента)")]
            public HashSet<MonumentConfig> Monuments {
                get;
                set;
            }
            [JsonProperty(En ? "List of positions on custom monuments (all positions are relative to map)" : "Список позиций на кастомных монументах (все позиции являются глобальными на карте)")]
            public HashSet<LocationConfig> CustomMonuments {
                get;
                set;
            }
        }
        private class PluginConfig {
            [JsonProperty(En ? "Minimum time between events [sec.]" : "Минимальное время между ивентами [sec.]")]
            public float MinStartTime {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum time between events [sec.]" : "Максимальное время между ивентами [sec.]")]
            public float MaxStartTime {
                get;
                set;
            }
            [JsonProperty(En ? "Use minimum and maximum event start values? [true/false]" : "Активен ли таймер для запуска ивента? [true/false]")]
            public bool EnabledTimer {
                get;
                set;
            }
            [JsonProperty(En ? "Delay of event start from the command or timer running (starts when chat message appears) [sec.]" : "Время до начала ивента после сообщения в чате [sec.]")]
            public float PreStartTime {
                get;
                set;
            }
            [JsonProperty(En ? "Waiting time for the scan to start after the signal receiver appears [sec.]" : "Время ожидания запуска сканирования после появления приемника сигнала [sec.]")]
            public float ScanWaitTime {
                get;
                set;
            }
            [JsonProperty(En ? "Time until a new receiver or drilling machine appears (if all receivers have successfully completed scanning) [sec.]" : "Время до появления нового приемника или буровой машины (если все приемники успешно завершили сканирование) [sec.]")]
            public float PreStartStage {
                get;
                set;
            }
            [JsonProperty(En ? "List of animal presets" : "Список наборов животных")]
            public Dictionary<string, AnimalConfig> Presets {
                get;
                set;
            }
            [JsonProperty(En ? "Settings for the first receiver" : "Настройки для первого приемника")]
            public ReceiverConfig FirstReceiver {
                get;
                set;
            }
            [JsonProperty(En ? "Settings for the second receiver" : "Настройки для второго приемника")]
            public ReceiverConfig SecondReceiver {
                get;
                set;
            }
            [JsonProperty(En ? "Settings for the third receiver" : "Настройки для третьего приемника")]
            public ReceiverConfig ThirdReceiver {
                get;
                set;
            }
            [JsonProperty(En ? "Drilling Rig Settings" : "Настройки для буровой установки")]
            public DrillConfig Drill {
                get;
                set;
            }
            [JsonProperty(En ? "Marker configuration on the map" : "Настройка маркера на карте")]
            public MarkerConfig Marker {
                get;
                set;
            }
            [JsonProperty(En ? "Marker settings for key event points shown on players screen" : "Настройки маркера на экране игрока")]
            public PointConfig Point {
                get;
                set;
            }
            [JsonProperty(En ? "GUI setting" : "Настройки GUI")]
            public GuiConfig Gui {
                get;
                set;
            }
            [JsonProperty(En ? "Chat Message setting" : "Настройки сообщений в чате")]
            public ChatConfig Chat {
                get;
                set;
            }
            [JsonProperty(En ? "Facepunch Game Tips setting" : "Настройка сообщений Facepunch Game Tip")]
            public GameTipConfig GameTip {
                get;
                set;
            }
            [JsonProperty(En ? "GUI Announcements setting (only for GUIAnnouncements plugin)" : "Настройка GUI Announcements (только для тех, кто использует плагин GUI Announcements)")]
            public GuiAnnouncementsConfig GuiAnnouncements {
                get;
                set;
            }
            [JsonProperty(En ? "Notify setting (only for Notify plugin)" : "Настройка Notify (только для тех, кто использует плагин Notify)")]
            public NotifyConfig Notify {
                get;
                set;
            }
            [JsonProperty(En ? "Discord setting (only for DiscordMessages plugin)" : "Настройка оповещений в Discord (только для тех, кто использует плагин Discord Messages)")]
            public DiscordConfig Discord {
                get;
                set;
            }
            [JsonProperty(En ? "Do you create a PVP zone in the event area? (only for TruePVE plugin) [true/false]" : "Создавать зону PVP в зоне проведения ивента? (только для тех, кто использует плагин TruePVE) [true/false]")]
            public bool IsCreateZonePvp {
                get;
                set;
            }
            [JsonProperty(En ? "Can a non-owner of the event loot the crates? [true/false]" : "Может ли не владелец ивента открывать ящики? [true/false]")]
            public bool LootCrate {
                get;
                set;
            }
            [JsonProperty(En ? "Can a non-owner of the event deal damage to the animal? [true/false]" : "Может ли не владелец ивента наносить урон по животным? [true/false]")]
            public bool DamageNpc {
                get;
                set;
            }
            [JsonProperty(En ? "Can an animal attack a non-owner of the event? [true/false]" : "Могут ли животные атаковать не владельца ивента? [true/false]")]
            public bool TargetNpc {
                get;
                set;
            }
            [JsonProperty(En ? "Can a non-owner of the event turn on/off the drilling rig? [true/false]" : "Может ли не владелец ивента включать/отключать буровую установку? [true/false]")]
            public bool SwitchDrill {
                get;
                set;
            }
            [JsonProperty(En ? "The time to save the status of the event owner for the second/third receiver of the signal after its appearance on the map" : "Время сохранения статуса владельца ивента на второй/третий приемник сигнала после его появления на карте [sec.]")]
            public float OwnerTime {
                get;
                set;
            }
            [JsonProperty(En ? "Prevent the actions of the RestoreUponDeath plugin in the event zone? [true/false]" : "Запрещать работу плагина RestoreUponDeath в зоне действия ивента? [true/false]")]
            public bool RestoreUponDeath {
                get;
                set;
            }
            [JsonProperty(En ? "The time that the player can`t become the Event Owner, after the end of the event and the player was its owner [sec.]" : "Время, которое игрок не сможет стать владельцем ивента, после того как ивент окончен и игрок был его владельцем [sec.]")]
            public double CooldownOwner {
                get;
                set;
            }
            [JsonProperty(En ? "Interrupt teleporting in the event area? (only for users NTeleportation plugin) [true/false]" : "Запрещать телепорт в зоне проведения ивента? (только для тех, кто использует плагин NTeleportation) [true/false]")]
            public bool NTeleportationInterrupt {
                get;
                set;
            }
            [JsonProperty(En ? "Economy setting (total values will be added up and rewarded at the end of the event)" : "Настройка экономики (конечное значение суммируется и будет выдано игрокам по окончанию ивента)")]
            public EconomyConfig Economy {
                get;
                set;
            }
            [JsonProperty(En ? "List of commands banned in the event zone" : "Список команд запрещенных в зоне ивента")]
            public HashSet<string> Commands {
                get;
                set;
            }
            [JsonProperty(En ? "Position settings for the event to appear on the map" : "Настройки позиций для появления ивента на карте")]
            public SpawnConfig Spawn {
                get;
                set;
            }
            [JsonProperty(En ? "Should the Skill Tree plugin work inside the event area? [true/false]" : "Должен ли работать плагин Skill Tree внутри зоны ивента? [true/false]")]
            public bool SkillTree {
                get;
                set;
            }
            [JsonProperty(En ? "Should the XPerience plugin work inside the event area? [true/false]" : "Должен ли работать плагин XPerience внутри зоны ивента? [true/false]")]
            public bool XPerience {
                get;
                set;
            }
            [JsonProperty(En ? "Should the Rust Rewards plugin work inside the event area? [true/false]" : "Должен ли работать плагин Rust Rewards внутри зоны ивента? [true/false]")]
            public bool RustRewards {
                get;
                set;
            }
            [JsonProperty(En ? "Configuration version" : "Версия конфигурации")]
            public VersionNumber PluginVersion {
                get;
                set;
            }
            public static PluginConfig DefaultConfig() {
                return new PluginConfig {
                    MinStartTime = 14400f, MaxStartTime = 14400f, EnabledTimer = true, PreStartTime = 300f, ScanWaitTime = 600f, PreStartStage = 60f, Presets = new Dictionary<string, AnimalConfig> {
                        ["polarbear1"]
                        = new AnimalConfig {
                            Type = 1, CanAttackPlayer = true, Health = 500f, AttackRange = 2.5f, AttackDamage = 70f, DamagePerSec = 20f, AttackRate = 5f, Speed = 2f
                        }
                        , ["bear1"] = new AnimalConfig {
                            Type = 2, CanAttackPlayer = true, Health = 400f, AttackRange = 2.5f, AttackDamage = 50f, DamagePerSec = 15f, AttackRate = 4f, Speed = 2.5f
                        }
                        , ["wolf1"] = new AnimalConfig {
                            Type = 3, CanAttackPlayer = true, Health = 100f, AttackRange = 2f, AttackDamage = 50f, DamagePerSec = 10f, AttackRate = 2f, Speed = 11f
                        }
                        , ["boar1"] = new AnimalConfig {
                            Type = 4, CanAttackPlayer = true, Health = 250f, AttackRange = 2f, AttackDamage = 35f, DamagePerSec = 10f, AttackRate = 3f, Speed = 4f
                        }
                        , ["stag1"] = new AnimalConfig {
                            Type = 5, CanAttackPlayer = true, Health = 80f, AttackRange = 2f, AttackDamage = 35f, DamagePerSec = 10f, AttackRate = 1f, Speed = 15f
                        }
                        , ["chicken1"] = new AnimalConfig {
                            Type = 6, CanAttackPlayer = true, Health = 25f, AttackRange = 1.2f, AttackDamage = 20f, DamagePerSec = 10f, AttackRate = 1f, Speed = 6f
                        }
                    }
                    , FirstReceiver = new ReceiverConfig {
                        Health = 2000f, HealthPerBattery = 50f, Loot = new LootTable {
                            TypeLootTable = 0, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, UseCount = true, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_oilrig.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 3, Max = 3, UseCount = true, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "ammo.rifle", MinAmount = 1500, MaxAmount = 1500, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                    , new ItemConfig {
                                        ShortName = "syringe.medical", MinAmount = 7, MaxAmount = 8, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                    , new ItemConfig {
                                        ShortName = "largemedkit", MinAmount = 4, MaxAmount = 5, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                }
                            }
                        }
                        , Waves = new HashSet<WaveConfig> {
                            new WaveConfig {
                                Level = 1, TimeToStart = 1, Duration = 60, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "polarbear1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "chicken1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                }
                            }
                            , new WaveConfig {
                                Level = 2, TimeToStart = 20, Duration = 120, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "wolf1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "boar1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                }
                            }
                            , new WaveConfig {
                                Level = 3, TimeToStart = 20, Duration = 180, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "bear1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "stag1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    , SecondReceiver = new ReceiverConfig {
                        Health = 3000f, HealthPerBattery = 100f, Loot = new LootTable {
                            TypeLootTable = 0, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, UseCount = true, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_oilrig.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 3, Max = 3, UseCount = true, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "ammo.rifle", MinAmount = 3000, MaxAmount = 3000, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                    , new ItemConfig {
                                        ShortName = "syringe.medical", MinAmount = 15, MaxAmount = 15, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                    , new ItemConfig {
                                        ShortName = "largemedkit", MinAmount = 9, MaxAmount = 9, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                }
                            }
                        }
                        , Waves = new HashSet<WaveConfig> {
                            new WaveConfig {
                                Level = 1, TimeToStart = 1, Duration = 30, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "bear1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "wolf1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "chicken1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    ,
                                }
                            }
                            , new WaveConfig {
                                Level = 2, TimeToStart = 20, Duration = 30, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "wolf1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "boar1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "stag1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    ,
                                }
                            }
                            , new WaveConfig {
                                Level = 3, TimeToStart = 20, Duration = 60, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "chicken1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 10
                                            }
                                        }
                                    }
                                }
                            }
                            , new WaveConfig {
                                Level = 4, TimeToStart = 30, Duration = 60, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "polarbear1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "bear1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "wolf1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    ,
                                }
                            }
                            , new WaveConfig {
                                Level = 5, TimeToStart = 20, Duration = 90, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "wolf1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 2
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "stag1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    , new PresetConfig {
                                        ShortName = "chicken1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 3
                                            }
                                        }
                                    }
                                    ,
                                }
                            }
                            , new WaveConfig {
                                Level = 6, TimeToStart = 20, Duration = 90, TimerAnimal = 10, Presets = new HashSet<PresetConfig> {
                                    new PresetConfig {
                                        ShortName = "polarbear1", ListAmountConfig = new HashSet<AmountConfig> {
                                            new AmountConfig {
                                                Chance = 100f, Count = 9
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    , ThirdReceiver = new ReceiverConfig {
                        Health = 4000f, HealthPerBattery = 100f, Loot = new LootTable {
                            TypeLootTable = 0, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, UseCount = true, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_oilrig.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 3, Max = 3, UseCount = true, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "ammo.rifle", MinAmount = 4500, MaxAmount = 4500, Chance = 100f, IsBluePrint = false, SkinId = 0, Name = ""
                                    }
                                    , new ItemConfig {
                                    
// ... [Code preview truncated due to length. Full source in attached file] ...

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

Другие ресурсы пользователя 15FPS

Сверху