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

FREE BossMonster : 1.0.6 1.0.6

Нет прав для скачивания
C#:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Oxide.Core;
using Oxide.Core.Plugins;
using Rust;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Oxide.Plugins {
    [Info("BossMonster", "KpucTaJl", "1.0.6")]
    internal class BossMonster : 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...");
            _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 ? "Is this a 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 numbers of items" : "Минимальное кол-во элементов")]
            public int Min {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum numbers of items" : "Максимальное кол-во элементов")]
            public int Max {
                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" : "Путь к 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 ? "List of prefabs" : "Список prefab-ов")]
            public List<PrefabConfig> Prefabs {
                get;
                set;
            }
        }
        public class NpcBelt {
            [JsonProperty("ShortName")]
            public string ShortName {
                get;
                set;
            }
            [JsonProperty(En ? "Amount" : "Кол-во")]
            public int Amount {
                get;
                set;
            }
            [JsonProperty("SkinID (0 - default)")]
            public ulong SkinID {
                get;
                set;
            }
            [JsonProperty(En ? "Mods" : "Модификации на оружие")]
            public List<string> Mods {
                get;
                set;
            }
        }
        public class NpcWear {
            [JsonProperty("ShortName")]
            public string ShortName {
                get;
                set;
            }
            [JsonProperty("SkinID (0 - default)")]
            public ulong SkinID {
                get;
                set;
            }
        }
        public class AddNpcConfig {
            [JsonProperty(En ? "Wear items" : "Одежда")]
            public List<NpcWear> WearItems {
                get;
                set;
            }
            [JsonProperty(En ? "Belt items" : "Быстрые слоты")]
            public List<NpcBelt> BeltItems {
                get;
                set;
            }
            [JsonProperty(En ? "Kit (it is recommended to use the previous 2 settings to improve performance)" : "Kit (рекомендуется использовать предыдущие 2 пункта настройки для повышения производительности)")]
            public string Kit {
                get;
                set;
            }
            [JsonProperty(En ? "Name (empty - default)" : "Название (empty - default)")]
            public string Name {
                get;
                set;
            }
            [JsonProperty(En ? "Health" : "Кол-во ХП")]
            public float Health {
                get;
                set;
            }
            [JsonProperty(En ? "Roam Range" : "Дальность патрулирования местности")]
            public float RoamRange {
                get;
                set;
            }
            [JsonProperty(En ? "Chase Range" : "Дальность погони за целью")]
            public float ChaseRange {
                get;
                set;
            }
            [JsonProperty(En ? "Attack Range Multiplier" : "Множитель радиуса атаки")]
            public float AttackRangeMultiplier {
                get;
                set;
            }
            [JsonProperty(En ? "Sense Range" : "Радиус обнаружения цели")]
            public float SenseRange {
                get;
                set;
            }
            [JsonProperty(En ? "Target Memory Duration [sec.]" : "Длительность памяти цели [sec.]")]
            public float MemoryDuration {
                get;
                set;
            }
            [JsonProperty(En ? "Scale damage" : "Множитель урона")]
            public float DamageScale {
                get;
                set;
            }
            [JsonProperty(En ? "Aim Cone Scale" : "Множитель разброса")]
            public float AimConeScale {
                get;
                set;
            }
            [JsonProperty(En ? "Detect the target only in the NPC's viewing vision cone? [true/false]" : "Обнаруживать цель только в углу обзора NPC? [true/false]")]
            public bool CheckVisionCone {
                get;
                set;
            }
            [JsonProperty(En ? "Vision Cone" : "Угол обзора")]
            public float VisionCone {
                get;
                set;
            }
            [JsonProperty(En ? "Speed" : "Скорость")]
            public float Speed {
                get;
                set;
            }
            [JsonProperty(En ? "Disable radio effects? [true/false]" : "Отключать эффекты рации? [true/false]")]
            public bool DisableRadio {
                get;
                set;
            }
        }
        public class RadiusActionsConfig {
            [JsonProperty(En ? "Use only one ability at a time? [true/false]" : "Одновременно использовать только одну способность? [true/false]")]
            public bool UseOnlyOneAbility {
                get;
                set;
            }
            [JsonProperty(En ? "Radius (to disable all abilities, set the value to 0)" : "Радиус (чтобы отключить все способности установите значение 0)")]
            public float Radius {
                get;
                set;
            }
            [JsonProperty(En ? "Spikes ability cooldown time (to disable the ability, set the value -1)" : "Время перезарядки способности Spikes (чтобы отключить способность установите значение -1)")]
            public int TimeToSpikes {
                get;
                set;
            }
            [JsonProperty(En ? "Applied damage to player from Spikes" : "Получаемый урон игроком от Spikes")]
            public float DamageSpikes {
                get;
                set;
            }
            [JsonProperty(En ? "FireBall ability cooldown time (to disable the ability, set the value -1)" : "Время перезарядки способности FireBall (чтобы отключить способность установите значение -1)")]
            public int TimeToFire {
                get;
                set;
            }
            [JsonProperty(En ? "Applied damage to player from FireBall" : "Получаемый урон игроком от FireBall")]
            public float DamageFire {
                get;
                set;
            }
            [JsonProperty(En ? "ElectricShock ability cooldown time (to disable the ability, set the value -1)" : "Время перезарядки способности ElectricShock (чтобы отключить способность установите значение -1)")]
            public int TimeToElectricShock {
                get;
                set;
            }
            [JsonProperty(En ? "Applied damage to player from ElectricShock" : "Получаемый урон игроком от ElectricShock")]
            public float DamageElectricShock {
                get;
                set;
            }
            [JsonProperty(En ? "Wolf ability cooldown time (to disable the ability, set the value -1)" : "Время перезарядки способности Wolf (чтобы отключить способность установите значение -1)")]
            public int TimeToWolf {
                get;
                set;
            }
            [JsonProperty(En ? "Number of wolves" : "Кол-во волков")]
            public int CountWolf {
                get;
                set;
            }
            [JsonProperty(En ? "Despawn time wolves" : "Время удаления волков")]
            public float DespawnTimeWolf {
                get;
                set;
            }
            [JsonProperty(En ? "Wounded ability cooldown time (to disable the ability, set the value -1)" : "Время перезарядки способности Wounded (чтобы отключить способность установите значение -1)")]
            public int TimeToWounded {
                get;
                set;
            }
            [JsonProperty(En ? "NPC ability cooldown time (to disable the ability, set the value -1)" : "Время перезарядки способности NPC (чтобы отключить способность установите значение -1)")]
            public int TimeToNpc {
                get;
                set;
            }
            [JsonProperty(En ? "NPC Settings" : "Настройки NPC")]
            public AddNpcConfig ConfigNpc {
                get;
                set;
            }
            [JsonProperty(En ? "Number of NPCs" : "Кол-во NPC")]
            public int CountNpc {
                get;
                set;
            }
            [JsonProperty(En ? "Despawn time NPCs" : "Время удаления NPC")]
            public float DespawnTimeNpc {
                get;
                set;
            }
            [JsonProperty(En ? "Radiation" : "Радиация")]
            public float Radiation {
                get;
                set;
            }
            [JsonProperty(En ? "Temperature" : "Температура")]
            public float Temperature {
                get;
                set;
            }
        }
        public class TakeDamageActionsConfig {
            [JsonProperty(En ? "Disable all abilities when applying damage? [true/false]" : "Отключить все способности при нанесении урона? [true/false]")]
            public bool IsDisable {
                get;
                set;
            }
            [JsonProperty(En ? "Regeneration of health from the applied damage [%]" : "Восстановление здоровья от нанесенного урона [%]")]
            public float Vampirism {
                get;
                set;
            }
            [JsonProperty(En ? "The amount of calories consumed" : "Кол-во калорий, которое расходуется")]
            public float CaloriesTarget {
                get;
                set;
            }
            [JsonProperty(En ? "The amount of water consumed" : "Кол-во воды, которое расходуется")]
            public float HydrationTarget {
                get;
                set;
            }
            [JsonProperty(En ? "The amount of added radiation" : "Кол-во добавляемой радиации")]
            public float RadiationTarget {
                get;
                set;
            }
            [JsonProperty(En ? "The amount of added bleeding" : "Кол-во добавляемого кровотечения")]
            public float BleedingTarget {
                get;
                set;
            }
        }
        public class NpcConfig {
            [JsonProperty(En ? "Name (empty - default)" : "Название (empty - default)")]
            public string Name {
                get;
                set;
            }
            [JsonProperty(En ? "Wear items" : "Одежда")]
            public List<NpcWear> WearItems {
                get;
                set;
            }
            [JsonProperty(En ? "Belt items" : "Быстрые слоты")]
            public List<NpcBelt> BeltItems {
                get;
                set;
            }
            [JsonProperty(En ? "Kit (it is recommended to use the previous 2 settings to improve performance)" : "Kit (рекомендуется использовать предыдущие 2 пункта настройки для повышения производительности)")]
            public string Kit {
                get;
                set;
            }
            [JsonProperty(En ? "Health" : "Кол-во ХП")]
            public float Health {
                get;
                set;
            }
            [JsonProperty(En ? "Roam Range" : "Дальность патрулирования местности")]
            public float RoamRange {
                get;
                set;
            }
            [JsonProperty(En ? "Chase Range" : "Дальность погони за целью")]
            public float ChaseRange {
                get;
                set;
            }
            [JsonProperty(En ? "Attack Range Multiplier" : "Множитель радиуса атаки")]
            public float AttackRangeMultiplier {
                get;
                set;
            }
            [JsonProperty(En ? "Sense Range" : "Радиус обнаружения цели")]
            public float SenseRange {
                get;
                set;
            }
            [JsonProperty(En ? "Target Memory Duration [sec.]" : "Длительность памяти цели [sec.]")]
            public float MemoryDuration {
                get;
                set;
            }
            [JsonProperty(En ? "Scale damage" : "Множитель урона")]
            public float DamageScale {
                get;
                set;
            }
            [JsonProperty(En ? "Aim Cone Scale" : "Множитель разброса")]
            public float AimConeScale {
                get;
                set;
            }
            [JsonProperty(En ? "Detect the target only in the NPC's viewing vision cone? [true/false]" : "Обнаруживать цель только в углу обзора NPC? [true/false]")]
            public bool CheckVisionCone {
                get;
                set;
            }
            [JsonProperty(En ? "Vision Cone" : "Угол обзора")]
            public float VisionCone {
                get;
                set;
            }
            [JsonProperty(En ? "Speed" : "Скорость")]
            public float Speed {
                get;
                set;
            }
            [JsonProperty(En ? "Disable radio effects? [true/false]" : "Отключать эффекты рации? [true/false]")]
            public bool DisableRadio {
                get;
                set;
            }
            [JsonProperty(En ? "Remove a corpse after death? (it is recommended to use the true value to improve performance) [true/false]" : "Удалять труп после смерти? (рекомендуется использовать значение true для повышения производительности) [true/false]")]
            public bool IsRemoveCorpse {
                get;
                set;
            }
            [JsonProperty(En ? "Which loot table should the plugin use? (0 - default; 1 - own; 2 - AlphaLoot; 3 - CustomLoot; 4 - loot table of the Rust objects; 5 - combine the 1 and 4 methods)" : "Какую таблицу лута необходимо использовать? (0 - стандартную; 1 - собственную; 2 - AlphaLoot; 3 - CustomLoot; 4 - таблица предметов объектов Rust; 5 - совместить 1 и 4 методы)")]
            public int TypeLootTable {
                get;
                set;
            }
            [JsonProperty(En ? "Loot table from prefabs (if the loot table type is 4 or 5)" : "Таблица предметов из prefab-ов (если тип таблицы предметов - 4 или 5)")]
            public PrefabLootTableConfig PrefabLootTable {
                get;
                set;
            }
            [JsonProperty(En ? "Own loot table" : "Собственная таблица предметов")]
            public LootTableConfig OwnLootTable {
                get;
                set;
            }
            [JsonProperty(En ? "Minimum time of appearance after death [sec.]" : "Минимальное время появления после смерти [sec.]")]
            public float MinTime {
                get;
                set;
            }
            [JsonProperty(En ? "Maximum time of appearance after death [sec.]" : "Максимальное время появления после смерти [sec.]")]
            public float MaxTime {
                get;
                set;
            }
            [JsonProperty(En ? "Location setting" : "Настройка расположений")]
            public LocationConfig Location {
                get;
                set;
            }
            [JsonProperty(En ? "All actions that occur with the player within the NPC radius" : "Все действия, которые происходят с игроком в радиусе NPC")]
            public RadiusActionsConfig RadiusActions {
                get;
                set;
            }
            [JsonProperty(En ? "All actions that occur when applying NPC damage" : "Все действия, которые происходят при нанесении урона от NPC")]
            public TakeDamageActionsConfig TakeDamageActions {
                get;
                set;
            }
            [JsonProperty(En ? "Marker settings" : "Настройки маркера")]
            public MarkerConfig Marker {
                get;
                set;
            }
            [JsonProperty(En ? "Notify in the chat when the appearance? [true/false]" : "Оповещать в чате о появлении? [true/false]")]
            public bool IsChat {
                get;
                set;
            }
        }
        public class LocationConfig {
            [JsonProperty(En ? "Type of appearance on the map (0 - random; 1 - own list; 2 - standard monuments)" : "Тип появления на карте (0 - рандомное; 1 - собственный список; 2 - стандартные монументы)")]
            public int Type {
                get;
                set;
            }
            [JsonProperty(En ? "List of biomes for random appearance" : "Список биомов для рандомного появления (1 - Arid, 2 - Temperate, 4 - Tundra, 8 - Arctic)")]
            public List<TerrainBiome.Enum> Biomes {
                get;
                set;
            }
            [JsonProperty(En ? "Own list of locations" : "Собственный список расположений")]
            public List<string> Own {
                get;
                set;
            }
            [JsonProperty(En ? "List of locations on standard monuments" : "Список расположений на стандартных монументах")]
            public Dictionary<string, List<string>> Monuments {
                get;
                set;
            }
        }
        public class GuiAnnouncementsConfig {
            [JsonProperty(En ? "Do you use the GUI Announcements? [true/false]" : "Использовать ли GUI Announcements? [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 Notify? [true/false]" : "Использовать ли Notify? [true/false]")]
            public bool IsNotify {
                get;
                set;
            }
            [JsonProperty(En ? "Type" : "Тип")]
            public string Type {
                get;
                set;
            }
        }
        public class DiscordConfig {
            [JsonProperty(En ? "Do you use the Discord? [true/false]" : "Использовать ли Discord? [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 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 ? "Do you use the Marker? [true/false]" : "Использовать ли маркер? [true/false]")]
            public bool IsMarker {
                get;
                set;
            }
            [JsonProperty(En ? "Radius" : "Радиус")]
            public float Radius {
                get;
                set;
            }
            [JsonProperty(En ? "Alpha" : "Прозрачность")]
            public float Alpha {
                get;
                set;
            }
            [JsonProperty(En ? "Marker color" : "Цвет маркера")]
            public ColorConfig Color1 {
                get;
                set;
            }
            [JsonProperty(En ? "Outline color" : "Цвет контура")]
            public ColorConfig Color2 {
                get;
                set;
            }
        }
        private class PluginConfig {
            [JsonProperty(En ? "Prefix of chat messages" : "Префикс сообщений в чате")]
            public string Prefix {
                get;
                set;
            }
            [JsonProperty(En ? "Do you use the chat? [true/false]" : "Использовать ли чат? [true/false]")]
            public bool IsChat {
                get;
                set;
            }
            [JsonProperty(En ? "GUI Announcements setting" : "Настройка GUI Announcements")]
            public GuiAnnouncementsConfig GuiAnnouncements {
                get;
                set;
            }
            [JsonProperty(En ? "Notify setting" : "Настройка Notify")]
            public NotifyConfig Notify {
                get;
                set;
            }
            [JsonProperty(En ? "Discord setting (only for users DiscordMessages plugin)" : "Настройка оповещений в Discord (только для тех, кто использует плагин DiscordMessages)")]
            public DiscordConfig Discord {
                get;
                set;
            }
            [JsonProperty(En ? "All NPCs setting" : "Настройка всех NPC")]
            public List<NpcConfig> NPCs {
                get;
                set;
            }
            [JsonProperty(En ? "Configuration version" : "Версия конфигурации")]
            public VersionNumber PluginVersion {
                get;
                set;
            }
            public static PluginConfig DefaultConfig() {
                return new PluginConfig() {
                    Prefix = "[BossMonster]", IsChat = true, GuiAnnouncements = new GuiAnnouncementsConfig {
                        IsGuiAnnouncements = false, BannerColor = "Orange", TextColor = "White", ApiAdjustVPosition = 0.03f
                    }
                    , Notify = new NotifyConfig {
                        IsNotify = false, Type = "0"
                    }
                    , Discord = new DiscordConfig {
                        IsDiscord = false, WebhookUrl = "https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks", EmbedColor = 13516583, Keys = new HashSet<string> {
                            "Start", "Finish"
                        }
                    }
                    , NPCs = new List<NpcConfig> {
                        new NpcConfig {
                            Name = "Franken", WearItems = new List<NpcWear> {
                                new NpcWear {
                                    ShortName = "metal.facemask", SkinID = 2252919011
                                }
                                , new NpcWear {
                                    ShortName = "metal.plate.torso", SkinID = 2252998412
                                }
                                , new NpcWear {
                                    ShortName = "scarecrow.suit", SkinID = 0
                                }
                            }
                            , BeltItems = new List<NpcBelt> {
                                new NpcBelt {
                                    ShortName = "mace", Amount = 1, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "syringe.medical", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "grenade.beancan", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                            }
                            , Kit = "", Health = 10000f, RoamRange = 10f, ChaseRange = 100f, AttackRangeMultiplier = 1f, SenseRange = 50f, MemoryDuration = 10f, DamageScale = 3f, AimConeScale = 1f, CheckVisionCone = false, VisionCone = 135f, Speed = 7.5f, DisableRadio = true, IsRemoveCorpse = true, TypeLootTable = 4, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 1, Max = 1, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "scrap", MinAmount = 100, MaxAmount = 200, Chance = 50.0f, IsBluePrint = false, SkinID = 0, Name = ""
                                    }
                                }
                            }
                            , MinTime = 3600f, MaxTime = 3600f, Location = new LocationConfig {
                                Type = 0, Biomes = new List<TerrainBiome.Enum> {
                                    TerrainBiome.Enum.Arctic, TerrainBiome.Enum.Tundra, TerrainBiome.Enum.Arid, TerrainBiome.Enum.Temperate
                                }
                                , Own = new List<string> {
                                    "(-437.1, 62.1, -268.4)"
                                }
                                , Monuments = new Dictionary<string, List<string>>()
                            }
                            , RadiusActions = new RadiusActionsConfig {
                                UseOnlyOneAbility = false, Radius = 20f, TimeToSpikes = -1, DamageSpikes = 0f, TimeToFire = -1, DamageFire = 0f, TimeToElectricShock = 60, DamageElectricShock = 10f, TimeToWolf = -1, CountWolf = 0, DespawnTimeWolf = 0f, TimeToWounded = -1, TimeToNpc = -1, ConfigNpc = null, CountNpc = 0, DespawnTimeNpc = 0f, Radiation = 5f, Temperature = -30f
                            }
                            , TakeDamageActions = new TakeDamageActionsConfig {
                                IsDisable = false, Vampirism = 25f, CaloriesTarget = 0f, HydrationTarget = 0f, RadiationTarget = 0f, BleedingTarget = 0f
                            }
                            , Marker = new MarkerConfig {
                                IsMarker = true, Radius = 0.2f, Alpha = 0.6f, Color1 = new ColorConfig {
                                    R = 0.81f, G = 0.25f, B = 0.15f
                                }
                                , Color2 = new ColorConfig {
                                    R = 0f, G = 0f, B = 0f
                                }
                            }
                            , IsChat = true
                        }
                        , new NpcConfig {
                            Name = "Scary", WearItems = new List<NpcWear> {
                                new NpcWear {
                                    ShortName = "coffeecan.helmet", SkinID = 1539650632
                                }
                                , new NpcWear {
                                    ShortName = "roadsign.jacket", SkinID = 1539651543
                                }
                                , new NpcWear {
                                    ShortName = "roadsign.kilt", SkinID = 1539652650
                                }
                                , new NpcWear {
                                    ShortName = "scarecrow.suit", SkinID = 0
                                }
                            }
                            , BeltItems = new List<NpcBelt> {
                                new NpcBelt {
                                    ShortName = "shotgun.double", Amount = 1, SkinID = 854987948, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "syringe.medical", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "grenade.beancan", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                            }
                            , Kit = "", Health = 10000f, RoamRange = 10f, ChaseRange = 100f, AttackRangeMultiplier = 1f, SenseRange = 50f, MemoryDuration = 10f, DamageScale = 3f, AimConeScale = 1f, CheckVisionCone = false, VisionCone = 135f, Speed = 7.5f, DisableRadio = true, IsRemoveCorpse = true, TypeLootTable = 4, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 1, Max = 1, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "scrap", MinAmount = 100, MaxAmount = 200, Chance = 50.0f, IsBluePrint = false, SkinID = 0, Name = ""
                                    }
                                }
                            }
                            , MinTime = 3600f, MaxTime = 3600f, Location = new LocationConfig {
                                Type = 0, Biomes = new List<TerrainBiome.Enum> {
                                    TerrainBiome.Enum.Arctic, TerrainBiome.Enum.Tundra, TerrainBiome.Enum.Arid, TerrainBiome.Enum.Temperate
                                }
                                , Own = new List<string> {
                                    "(244.0, 71.4, -539.7)"
                                }
                                , Monuments = new Dictionary<string, List<string>>()
                            }
                            , RadiusActions = new RadiusActionsConfig {
                                UseOnlyOneAbility = false, Radius = 20f, TimeToSpikes = -1, DamageSpikes = 0f, TimeToFire = 60, DamageFire = 10f, TimeToElectricShock = -1, DamageElectricShock = 0f, TimeToWolf = -1, CountWolf = 0, DespawnTimeWolf = 0f, TimeToWounded = -1, TimeToNpc = -1, ConfigNpc = null, CountNpc = 0, DespawnTimeNpc = 0f, Radiation = 5f, Temperature = 0f
                            }
                            , TakeDamageActions = new TakeDamageActionsConfig {
                                IsDisable = true, Vampirism = 0f, CaloriesTarget = 0f, HydrationTarget = 0f, RadiationTarget = 0f, BleedingTarget = 0f
                            }
                            , Marker = new MarkerConfig {
                                IsMarker = true, Radius = 0.2f, Alpha = 0.6f, Color1 = new ColorConfig {
                                    R = 0.81f, G = 0.25f, B = 0.15f
                                }
                                , Color2 = new ColorConfig {
                                    R = 0f, G = 0f, B = 0f
                                }
                            }
                            , IsChat = true
                        }
                        , new NpcConfig {
                            Name = "Raptor", WearItems = new List<NpcWear> {
                                new NpcWear {
                                    ShortName = "metal.facemask", SkinID = 2131549928
                                }
                                , new NpcWear {
                                    ShortName = "metal.plate.torso", SkinID = 2131557341
                                }
                                , new NpcWear {
                                    ShortName = "scarecrow.suit", SkinID = 0
                                }
                            }
                            , BeltItems = new List<NpcBelt> {
                                new NpcBelt {
                                    ShortName = "pistol.nailgun", Amount = 1, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "syringe.medical", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "grenade.beancan", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                            }
                            , Kit = "", Health = 10000f, RoamRange = 10f, ChaseRange = 100f, AttackRangeMultiplier = 1f, SenseRange = 50f, MemoryDuration = 10f, DamageScale = 3f, AimConeScale = 1f, CheckVisionCone = false, VisionCone = 135f, Speed = 7.5f, DisableRadio = true, IsRemoveCorpse = true, TypeLootTable = 4, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 1, Max = 1, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "scrap", MinAmount = 100, MaxAmount = 200, Chance = 50.0f, IsBluePrint = false, SkinID = 0, Name = ""
                                    }
                                }
                            }
                            , MinTime = 3600f, MaxTime = 3600f, Location = new LocationConfig {
                                Type = 0, Biomes = new List<TerrainBiome.Enum> {
                                    TerrainBiome.Enum.Arctic, TerrainBiome.Enum.Tundra, TerrainBiome.Enum.Arid, TerrainBiome.Enum.Temperate
                                }
                                , Own = new List<string> {
                                    "(260.7, 12.6, -135.0)"
                                }
                                , Monuments = new Dictionary<string, List<string>>()
                            }
                            , RadiusActions = new RadiusActionsConfig {
                                UseOnlyOneAbility = false, Radius = 20f, TimeToSpikes = 60, DamageSpikes = 50f, TimeToFire = -1, DamageFire = 0f, TimeToElectricShock = -1, DamageElectricShock = 0f, TimeToWolf = -1, CountWolf = 0, DespawnTimeWolf = 0f, TimeToWounded = -1, TimeToNpc = -1, ConfigNpc = null, CountNpc = 0, DespawnTimeNpc = 0f, Radiation = 5f, Temperature = 0f
                            }
                            , TakeDamageActions = new TakeDamageActionsConfig {
                                IsDisable = false, Vampirism = 0f, CaloriesTarget = 0f, HydrationTarget = 0f, RadiationTarget = 1f, BleedingTarget = 0f
                            }
                            , Marker = new MarkerConfig {
                                IsMarker = true, Radius = 0.2f, Alpha = 0.6f, Color1 = new ColorConfig {
                                    R = 0.81f, G = 0.25f, B = 0.15f
                                }
                                , Color2 = new ColorConfig {
                                    R = 0f, G = 0f, B = 0f
                                }
                            }
                            , IsChat = true
                        }
                        , new NpcConfig {
                            Name = "Horror", WearItems = new List<NpcWear> {
                                new NpcWear {
                                    ShortName = "metal.facemask", SkinID = 1886920683
                                }
                                , new NpcWear {
                                    ShortName = "metal.plate.torso", SkinID = 1886922099
                                }
                                , new NpcWear {
                                    ShortName = "scarecrow.suit", SkinID = 0
                                }
                            }
                            , BeltItems = new List<NpcBelt> {
                                new NpcBelt {
                                    ShortName = "longsword", Amount = 1, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "syringe.medical", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "grenade.beancan", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                            }
                            , Kit = "", Health = 10000f, RoamRange = 10f, ChaseRange = 100f, AttackRangeMultiplier = 1f, SenseRange = 50f, MemoryDuration = 10f, DamageScale = 3f, AimConeScale = 1f, CheckVisionCone = false, VisionCone = 135f, Speed = 7.5f, DisableRadio = true, IsRemoveCorpse = true, TypeLootTable = 4, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 1, Max = 1, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "scrap", MinAmount = 100, MaxAmount = 200, Chance = 50.0f, IsBluePrint = false, SkinID = 0, Name = ""
                                    }
                                }
                            }
                            , MinTime = 3600f, MaxTime = 3600f, Location = new LocationConfig {
                                Type = 0, Biomes = new List<TerrainBiome.Enum> {
                                    TerrainBiome.Enum.Arctic, TerrainBiome.Enum.Tundra, TerrainBiome.Enum.Arid, TerrainBiome.Enum.Temperate
                                }
                                , Own = new List<string> {
                                    "(-859.5, 33.3, 356.2)"
                                }
                                , Monuments = new Dictionary<string, List<string>>()
                            }
                            , RadiusActions = new RadiusActionsConfig {
                                UseOnlyOneAbility = false, Radius = 20f, TimeToSpikes = -1, DamageSpikes = 0f, TimeToFire = -1, DamageFire = 0f, TimeToElectricShock = -1, DamageElectricShock = 0f, TimeToWolf = -1, CountWolf = 0, DespawnTimeWolf = 0f, TimeToWounded = 60, TimeToNpc = -1, ConfigNpc = null, CountNpc = 0, DespawnTimeNpc = 0f, Radiation = 5f, Temperature = 0f
                            }
                            , TakeDamageActions = new TakeDamageActionsConfig {
                                IsDisable = false, Vampirism = 50f, CaloriesTarget = 500f, HydrationTarget = 250f, RadiationTarget = 0f, BleedingTarget = 20f
                            }
                            , Marker = new MarkerConfig {
                                IsMarker = true, Radius = 0.2f, Alpha = 0.6f, Color1 = new ColorConfig {
                                    R = 0.81f, G = 0.25f, B = 0.15f
                                }
                                , Color2 = new ColorConfig {
                                    R = 0f, G = 0f, B = 0f
                                }
                            }
                            , IsChat = true
                        }
                        , new NpcConfig {
                            Name = "Heavy", WearItems = new List<NpcWear> {
                                new NpcWear {
                                    ShortName = "heavy.plate.helmet", SkinID = 0
                                }
                                , new NpcWear {
                                    ShortName = "heavy.plate.pants", SkinID = 0
                                }
                                , new NpcWear {
                                    ShortName = "heavy.plate.jacket", SkinID = 0
                                }
                                , new NpcWear {
                                    ShortName = "shoes.boots", SkinID = 0
                                }
                            }
                            , BeltItems = new List<NpcBelt> {
                                new NpcBelt {
                                    ShortName = "shotgun.spas12", Amount = 1, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "syringe.medical", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "grenade.f1", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                                , new NpcBelt {
                                    ShortName = "grenade.smoke", Amount = 10, SkinID = 0, Mods = new List<string>()
                                }
                            }
                            , Kit = "", Health = 10000f, RoamRange = 10f, ChaseRange = 100f, AttackRangeMultiplier = 1f, SenseRange = 50f, MemoryDuration = 10f, DamageScale = 3f, AimConeScale = 1f, CheckVisionCone = false, VisionCone = 135f, Speed = 7.5f, DisableRadio = false, IsRemoveCorpse = true, TypeLootTable = 4, PrefabLootTable = new PrefabLootTableConfig {
                                Min = 1, Max = 1, Prefabs = new List<PrefabConfig> {
                                    new PrefabConfig {
                                        Chance = 100f, PrefabDefinition = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab"
                                    }
                                }
                            }
                            , OwnLootTable = new LootTableConfig {
                                Min = 1, Max = 1, Items = new List<ItemConfig> {
                                    new ItemConfig {
                                        ShortName = "scrap", MinAmount = 100, MaxAmount = 200, Chance = 50.0f, IsBluePrint = false, SkinID = 0, Name = ""
                                    }
                                }
                            }
                            , MinTime = 3600f, MaxTime = 3600f, Location = new LocationConfig {
                                Type = 0, Biomes = new List<TerrainBiome.Enum> {
                                    TerrainBiome.Enum.Arctic, TerrainBiome.Enum.Tundra, TerrainBiome.Enum.Arid, TerrainBiome.Enum.Temperate
                                }
                                , Own = new List<string> {
                                    "(333.1
// ... [Code preview truncated due to length. Full source in attached file] ...

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