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

FREE PirateNPC : 0.0.6 0.0.6

Нет прав для скачивания
C#:
using Facepunch;
using Network;
using Oxide.Core;
using Oxide.Core.Libraries;
using Oxide.Core.Plugins;
using ProtoBuf;
using Rust;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.SceneManagement;
using Physics = UnityEngine.Physics;
using Pool = Facepunch.Pool;
using Time = UnityEngine.Time;
namespace Oxide.Plugins {
    [Info("PirateNPC", "bmgjet", "0.0.6")]
    [Description("Creates NPC To Patrol Ocean,Skies and Land")]
    class PirateNPC : RustPlugin {
#region Variables
        [PluginReference]
        private Plugin Kits;
        private int piratePlane = 0;
        private int pirateRHIB = 0;
        private int pirateRowBoat = 0;
        private int pirateSub = 0;
        private int piratesMini = 0;
        private int pirateScrap = 0;
        private int pirateRail = 0;
        private int pirateHorse = 0;
        private int pirateSnowMobile = 0;
        private int pirateBase = 0;
        private List<uint> PirateUintList = new List<uint>();
        private List<uint> BaseParts = new List<uint>();
        private List<uint> GroundedNPCs = new List<uint>();
        private Dictionary<ScientistNPC, BaseEntity> ActiveNPCs = new Dictionary<ScientistNPC, BaseEntity>();
        private List<uint> NPCsUintList = new List<uint>();
        private List<BaseEntity> TrainsBaseEntityList = new List<BaseEntity>();
        private List<uint> VoiceUintList = new List<uint>();
        private List<uint> CoolDownUintList = new List<uint>();
        private List<Vector3> PointsOfIntrest = new List<Vector3>();
        private List<BasePlayer> downed = new List<BasePlayer>();
        private List<MapMarkerGenericRadius> mapmarkersList = new List<MapMarkerGenericRadius>();
        private Timer spawner = null;
        private List<Coroutine> Threads = new List<Coroutine>();
        private List<Vector3> seanodes = new List<Vector3>();
        private List<Vector3> airnodes = new List<Vector3>();
        private List<Vector3> groundnodes = new List<Vector3>();
        private List<Vector3> roadnodes = new List<Vector3>();
        private List<Vector3> railnodes = new List<Vector3>();
        private Dictionary<Vector3, bool> dropnodes = new Dictionary<Vector3, bool>();
        private List<PrefabData> footnodes = new List<PrefabData>();
        private List<PrefabData> Alarmtriggers = new List<PrefabData>();
        private List<uint> alarmcooldown = new List<uint>();
        private bool sealoaded = false;
        private bool airloaded = false;
        private bool landloaded = false;
        private bool railloaded = false;
        private bool footloaded = false;
        private readonly List<BasePlayer> _openProfiles = new List<BasePlayer>();
        public static PirateNPC plugin;
        public static ServerSettings _ServerSettings;
        private List<List<Dictionary<string, string>>> loottableDict = new List<List<Dictionary<string, string>>>();
        private const string wallprefab = "assets/prefabs/building core/wall/wall.prefab";
        private const string foundationprefab = "assets/prefabs/building core/foundation/foundation.prefab";
        private const string floorprefab = "assets/prefabs/building core/floor/floor.prefab";
        private const string windowprefab = "assets/prefabs/building/wall.window.reinforcedglass/wall.window.glass.reinforced.prefab";
        private const string wallframeprefab = "assets/prefabs/building core/wall.frame/wall.frame.prefab";
        private const string garagedoorprefab = "assets/prefabs/building/wall.frame.garagedoor/wall.frame.garagedoor.prefab";
        private const string workcartprefab = "assets/content/vehicles/trains/workcart/workcart_aboveground.entity.prefab";
        private const string wagonentsprefab = "assets/content/vehicles/trains/wagons/trainwagon$.entity.prefab";
        private const string codelockprefab = "assets/prefabs/locks/keypad/lock.code.prefab";
        private const string autoturretprefab = "assets/prefabs/npc/autoturret/autoturret_deployed.prefab";
        private const string samsiteprefab = "assets/prefabs/npc/sam_site_turret/sam_site_turret_deployed.prefab";
        private const string rhibentityprefab = "assets/content/vehicles/boats/rhib/rhib.prefab";
        private const string rowboatentityprefab = "assets/content/vehicles/boats/rowboat/rowboat.prefab";
        private const string minientityprefab = "assets/content/vehicles/minicopter/minicopter.entity.prefab";
        private const string scrapentityprefab = "assets/content/vehicles/scrap heli carrier/scraptransporthelicopter.prefab";
        private const string horseentityprefab = "assets/rust.ai/nextai/testridablehorse.prefab";
        private const string snowmobileentityprefab = "assets/content/vehicles/snowmobiles/snowmobile.prefab";
        private const string subentityprefab = "assets/content/vehicles/submarine/submarineduo.entity.prefab";
        private const string hoboentityprefab = "assets/prefabs/misc/twitch/hobobarrel/hobobarrel.deployed.prefab";
        private const string sphereentityprefab = "assets/prefabs/visualization/sphere.prefab";
        private const string buoyantentityprefab = "assets/prefabs/misc/item drop/item_drop_buoyant.prefab";
        private const string eliteentityprefab = "assets/bundled/prefabs/radtown/crate_elite.prefab";
        private const string basicentityprefab = "assets/bundled/prefabs/radtown/crate_basic.prefab";
        private const string normalentityprefab = "assets/bundled/prefabs/radtown/crate_normal.prefab";
        private const string helicrateentityprefab = "assets/prefabs/npc/patrol helicopter/heli_crate.prefab";
        private const string cargoplaneentityprefab = "assets/prefabs/npc/cargo plane/cargo_plane.prefab";
        private const string lanternentityprefab = "assets/prefabs/deployable/lantern/lantern.deployed.prefab";
        private const string woodboxentityprefab = "assets/prefabs/deployable/large wood storage/box.wooden.large.prefab";
        private const string rhibstorageentityprefab = "assets/content/vehicles/boats/rhib/subents/rhib_storage.prefab";
        private const string playerentityprefab = "assets/prefabs/player/player.prefab";
        private const string mapmarkerentityprefab = "assets/prefabs/tools/map/genericradiusmarker.prefab";
        private const string parachuteentityprefab = "assets/prefabs/misc/parachute/parachute.prefab";
        private const string groundfallentityprefab = "assets/bundled/prefabs/fx/player/groundfall.prefab";
        private const string c4_explosionentityprefab = "assets/prefabs/tools/c4/effects/c4_explosion.prefab";
        private const string damage_effect_debrisprefab = "assets/prefabs/npc/patrol helicopter/damage_effect_debris.prefab";
        private const string searchlightentityprefab = "assets/prefabs/deployable/search light/searchlight.deployed.prefab";
        private const string oilfireballsmallprefab = "assets/bundled/prefabs/oilfireballsmall.prefab";
        private int TopologyBaseBlock = TerrainTopology.MONUMENT;
#endregion
#region Configuration
        public class ServerSettings {
            public int SpawnEvery;
            public int LeaveAfter;
            public bool ShowMapMarkers;
            public float MapMarkerSize;
            public float MapMarkerAlpha;
            public float StartFireHealth;
            public Color AirMapMarkerColour;
            public Color WaterMapMarkerColour;
            public Color LandMapMarkerColour;
            public Color BaseMapMarkerColour;
            public Color RailMapMarkerColour;
            public float StopDelayFloat;
            public float CrashDelayFloat;
            public bool DisableScrapHeliGibs;
            public bool DisableHeliFireball;
            public bool DisableHelilights;
            public bool DisableBoatlights;
            public bool DisableLandlights;
            public float FireDelay;
            public float ExplodeDelay;
            public int RHIBNPCAmount;
            public int RHIBHealth;
            public int RHIBNPCHealth;
            public int RHIBBoatAmount;
            public int RHIBBoatMaxA;
            public float RHIBBoatMaxSpeed;
            public float RHIBBoatTurnSpeed;
            public float RHIBAIDistance;
            public string RHIBKit;
            public string RHIBLootString;
            public int RowBoatNPCAmount;
            public int RowBoatHealth;
            public int RowBoatNPCHealth;
            public int RowBoatBoatAmount;
            public int RowBoatBoatMaxA;
            public float RowBoatBoatMaxSpeed;
            public float RowBoatBoatTurnSpeed;
            public float RowBoatAIDistance;
            public string RowBoatKit;
            public string RowBoatLootString;
            public int SubmarineHealth;
            public int SubmarineAmount;
            public int SubmarineMaxA;
            public float SubmarineMaxSpeed;
            public float SubmarineTurnSpeed;
            public float SubmarineTargetDepth;
            public float SubmarineDamage;
            public string SubmarineLootString;
            public int MiniHealth;
            public int MiniNPCHealth;
            public int MiniNPCAmount;
            public int MiniAmount;
            public int MiniMaxA;
            public float MiniMaxSpeed;
            public float MiniOrbitDistance;
            public float MiniTurnSpeed;
            public float MiniHoverHeight;
            public float MiniAIDistance;
            public float MiniThreatLevel;
            public string MiniKit;
            public string MiniLootString;
            public int ScrapHealth;
            public int ScrapNPCHealth;
            public int ScrapNPCAmount;
            public int ScrapAmount;
            public int ScrapMaxA;
            public float ScrapMaxSpeed;
            public float ScrapOrbitDistance;
            public float ScrapTurnSpeed;
            public float ScrapHoverHeight;
            public float ScrapAIDistance;
            public float ScrapThreatLevel;
            public string ScrapKit;
            public string ScrapLootString;
            public bool CargoPathBool;
            public bool MonumentPathBool;
            public bool SamSitesBool0;
            public bool SamSitesBoat;
            public bool StaticSamSitesBool;
            public float SamSitesDamageFloat;
            public bool NPCParachuteBool;
            public float NPCTick;
            public float NPCParachuteTrigger;
            public float NPCParachuteDecay;
            public float NPCParachuteDie;
            public float HeliTargetDistance;
            public float BoatTargetDistance;
            public float LandTargetDistance;
            public int SnowMobileAmount;
            public int SnowMobileMax;
            public float SnowMobileNPCHealth;
            public float SnowMobileAimMulti;
            public float SnowMobileHealth;
            public float SnowMobileRomeRange;
            public bool SnowMobileCanRoam;
            public float SnowMobileMoveSpeed;
            public string SnowMobileKit;
            public string SnowMobileLootString;
            public int HorseAmount;
            public int HorseMax;
            public float HorseNPCHealth;
            public float HorseAimMulti;
            public float HorseHealth;
            public float HorseRomeRange;
            public bool HorseCanRoam;
            public float HorseMoveSpeed;
            public string HorseKit;
            public string HorseLootString;
            public string LootProfiles;
            public bool NPCChatter;
            public int NPCMaxVoicesAtOnce;
            public string NPCCustomChatter0;
            public int NPCCustomChatterCD;
            public string NPCCustomDeath0;
            public int NPCCustomDeathCD;
            public string NPCCustomKill0;
            public int NPCCustomKillCD;
            public string NPCCustomWarningString;
            public float NPCCustomWarningDistance;
            public int NPCCustomWarningCD;
            public bool NPCCAttackSupplyDrops;
            public bool NPCAttackCreate;
            public bool NPCCountRaids;
            public bool NPCsCanTargetNPCsBool;
            public float NPCDamageScaler;
            public float NPCAimScaler;
            public string NPCNameTag;
            public float PiratesAirPOIRadius;
            public float PiratesWaterPOIRadius;
            public float PiratesLandPOIRadius;
            public bool NPCPeaceKeeperBool;
            public int POIExpires;
            public float NPCPeaceKeeperToggle;
            public bool RaidableBasesAT;
            public int HorseLootMulti;
            public int SnowMobileLootMulti;
            public int ScrapLootMulti;
            public int MiniLootMulti;
            public int SubmarineLootMulti;
            public int RowBoatLootMulti;
            public int RHIBLootMulti;
            public int PirateBaseAmount;
            public int PirateBaseWallRadius;
            public int PirateBaseNPCAmount;
            public float PirateBaseAimMulti;
            public float PirateBaseNPCHealth;
            public string PirateBaseNPCKit;
            public string PirateBaseLootString;
            public int PirateBaseLootMulti;
            public float PirateBaseDoorHealth;
            public int PirateRailAmount;
            public float PirateRailTrainSpeed;
            public int PirateRailHealth;
            public int PirateRailNPCAmount;
            public float PirateRailAimMulti;
            public float PirateRailNPCHealth;
            public float PirateRailNPCDriverHealth;
            public string PirateRailNPCKit;
            public string PirateRailLootString;
            public int PirateRailLootMulti;
            public int PirateRailWagonAmount;
            public float PirateRailWagonSamRange;
            public float PirateRailWagonSamHealth;
            public float PirateRailWagonTurretHealth;
            public string PirateRailWagonTurretGun;
            public float PirateRailWagonhealth;
            public float PirateRailWagondoorhealth;
            public ulong PirateRailwagondoorskinid;
            public float PirateFootNPCHealth;
            public float PirateFootNPCAimMulti;
            public string PirateFootNPCKit;
            public float PirateFootNPCRoam;
            public bool PirateCargoPlane;
            public float PiratePlaneflyheight;
            public float PiratePlaneflyspeed;
            public int PiratePlaneNPCAmount;
            public int PiratePlaneNPCDrops;
            public bool PirateEventEnabled;
            public bool PirateEventAnnounce;
            public float PirateEventRadius;
            public int PirateEventNPCAmount;
            public string PirateEventNPCKit;
            public float PirateEventNPCHealth;
            public float PirateEventNPCAimMulti;
            public float PirateEventCoolDownDelay;
            public float PirateEventSpawnRadius;
            public float PirateEventStationaryRadius;
            public List<string> PiratePlaneAllowedDrops;
            public void LoadSettings() {
                RaidableBasesAT = bool.Parse(plugin.Config["(RaidableBases) Disable Auto Turrets Attacking Pirates"].ToString());
                SpawnEvery = int.Parse(plugin.Config["Spawn Pirates Every (sec)"].ToString());
                LeaveAfter = int.Parse(plugin.Config["Leave After (sec)"].ToString());
                ShowMapMarkers = bool.Parse(plugin.Config["Map Marker Show"].ToString());
                MapMarkerSize = float.Parse(plugin.Config["Map Marker Size"].ToString());
                MapMarkerAlpha = float.Parse(plugin.Config["Map Marker Alpha"].ToString());
                StartFireHealth = float.Parse(plugin.Config["Start Fire When Health Below"].ToString());
                AirMapMarkerColour = plugin.Hex2Colour(plugin.Config["Map Marker Colour (Air) (Hex)"].ToString());
                WaterMapMarkerColour = plugin.Hex2Colour(plugin.Config["Map Marker Colour (Water) (Hex)"].ToString());
                LandMapMarkerColour = plugin.Hex2Colour(plugin.Config["Map Marker Colour (Land) (Hex)"].ToString());
                BaseMapMarkerColour = plugin.Hex2Colour(plugin.Config["Map Marker Colour (Base) (Hex)"].ToString());
                RailMapMarkerColour = plugin.Hex2Colour(plugin.Config["Map Marker Colour (Rail) (Hex)"].ToString());
                StopDelayFloat = float.Parse(plugin.Config["Stop Delay (sec)"].ToString());
                CrashDelayFloat = float.Parse(plugin.Config["Crash Delay (sec)"].ToString());
                DisableScrapHeliGibs = bool.Parse(plugin.Config["Disable ScrapHeli Gibs"].ToString());
                DisableHeliFireball = bool.Parse(plugin.Config["Disable Heli Fireball"].ToString());
                DisableHelilights = bool.Parse(plugin.Config["Disable Heli Lights"].ToString());
                DisableBoatlights = bool.Parse(plugin.Config["Disable Boat Lights"].ToString());
                DisableLandlights = bool.Parse(plugin.Config["Disable Land Lights"].ToString());
                FireDelay = float.Parse(plugin.Config["Fire After Crash/Sink (sec)"].ToString());
                ExplodeDelay = float.Parse(plugin.Config["Explode After Fire (sec)"].ToString());
                RHIBNPCAmount = int.Parse(plugin.Config["RHIB NPC Amount Per Boat"].ToString());
                RHIBHealth = int.Parse(plugin.Config["RHIB Health"].ToString());
                RHIBNPCHealth = int.Parse(plugin.Config["RHIB NPC Health"].ToString());
                RHIBBoatAmount = int.Parse(plugin.Config["RHIB Boat Amount Per Spawn"].ToString());
                RHIBBoatMaxA = int.Parse(plugin.Config["RHIB Boat Max At Once"].ToString());
                RHIBBoatMaxSpeed = float.Parse(plugin.Config["RHIB Boat Max Speed"].ToString());
                RHIBBoatTurnSpeed = float.Parse(plugin.Config["RHIB Boat Turn Speed"].ToString());
                RHIBAIDistance = float.Parse(plugin.Config["RHIB AI Target Distance"].ToString());
                RHIBKit = plugin.Config["RHIB Kit Bots"].ToString();
                RHIBLootString = plugin.Config["RHIB Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                RHIBLootMulti = int.Parse(plugin.Config["RHIB Loot Spawner Multiplier"].ToString());
                RowBoatNPCAmount = int.Parse(plugin.Config["RowBoat NPC Amount Per Boat"].ToString());
                RowBoatHealth = int.Parse(plugin.Config["RowBoat Health"].ToString());
                RowBoatNPCHealth = int.Parse(plugin.Config["RowBoat NPC Health"].ToString());
                RowBoatBoatAmount = int.Parse(plugin.Config["RowBoat Boat Amount Per Spawn"].ToString());
                RowBoatBoatMaxA = int.Parse(plugin.Config["RowBoat Boat Max At Once"].ToString());
                RowBoatBoatMaxSpeed = float.Parse(plugin.Config["RowBoat Boat Max Speed"].ToString());
                RowBoatBoatTurnSpeed = float.Parse(plugin.Config["RowBoat Boat Turn Speed"].ToString());
                RowBoatAIDistance = float.Parse(plugin.Config["RowBoat AI Target Distance"].ToString());
                RowBoatKit = plugin.Config["RowBoat Kit Bots"].ToString();
                RowBoatLootString = plugin.Config["RowBoat Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                RowBoatLootMulti = int.Parse(plugin.Config["RowBoat Loot Spawner Multiplier"].ToString());
                SubmarineHealth = int.Parse(plugin.Config["Submarine Health"].ToString());
                SubmarineAmount = int.Parse(plugin.Config["Submarine Amount Per Spawn"].ToString());
                SubmarineMaxA = int.Parse(plugin.Config["Submarine Max At Once"].ToString());
                SubmarineMaxSpeed = float.Parse(plugin.Config["Submarine Max Speed"].ToString());
                SubmarineTurnSpeed = float.Parse(plugin.Config["Submarine Turn Speed"].ToString());
                SubmarineTargetDepth = float.Parse(plugin.Config["Submarine Target Depth"].ToString());
                SubmarineDamage = float.Parse(plugin.Config["Submarine Take Damage"].ToString());
                SubmarineLootString = plugin.Config["Submarine Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                SubmarineLootMulti = int.Parse(plugin.Config["Submarine Loot Spawner Multiplier"].ToString());
                MiniHealth = int.Parse(plugin.Config["Minicopter Health"].ToString());
                MiniNPCHealth = int.Parse(plugin.Config["Minicopter NPC Health"].ToString());
                MiniNPCAmount = int.Parse(plugin.Config["Minicopter NPC Amount"].ToString());
                MiniAmount = int.Parse(plugin.Config["Minicopter Amount Per Spawn"].ToString());
                MiniMaxA = int.Parse(plugin.Config["Minicopter Max At Once"].ToString());
                MiniMaxSpeed = float.Parse(plugin.Config["Minicopter Max Speed"].ToString());
                MiniOrbitDistance = float.Parse(plugin.Config["Minicopter Orbit Distance"].ToString());
                MiniTurnSpeed = float.Parse(plugin.Config["Minicopter Turn Speed"].ToString());
                MiniHoverHeight = float.Parse(plugin.Config["Minicopter Hover Height"].ToString());
                MiniAIDistance = float.Parse(plugin.Config["Minicopter AI Target Distance"].ToString());
                MiniThreatLevel = float.Parse(plugin.Config["Minicopter Target Threat Level"].ToString());
                MiniKit = plugin.Config["Minicopter Kit Bots"].ToString();
                MiniLootString = plugin.Config["Minicopter Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                MiniLootMulti = int.Parse(plugin.Config["Minicopter Loot Spawner Multiplier"].ToString());
                ScrapHealth = int.Parse(plugin.Config["Scrapcopter Health"].ToString());
                ScrapNPCHealth = int.Parse(plugin.Config["Scrapcopter NPC Health"].ToString());
                ScrapNPCAmount = int.Parse(plugin.Config["Scrapcopter NPC Amount"].ToString());
                ScrapAmount = int.Parse(plugin.Config["Scrapcopter Amount Per Spawn"].ToString());
                ScrapMaxA = int.Parse(plugin.Config["Scrapcopter Max At Once"].ToString());
                ScrapMaxSpeed = float.Parse(plugin.Config["Scrapcopter Max Speed"].ToString());
                ScrapOrbitDistance = float.Parse(plugin.Config["Scrapcopter Orbit Distance"].ToString());
                ScrapTurnSpeed = float.Parse(plugin.Config["Scrapcopter Turn Speed"].ToString());
                ScrapHoverHeight = float.Parse(plugin.Config["Scrapcopter Hover Height"].ToString());
                ScrapAIDistance = float.Parse(plugin.Config["Scrapcopter AI Target Distance"].ToString());
                ScrapThreatLevel = float.Parse(plugin.Config["Scrapcopter Target Threat Level"].ToString());
                ScrapKit = plugin.Config["Scrapcopter Kit Bots"].ToString();
                ScrapLootString = plugin.Config["Scrapcopter Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                ScrapLootMulti = int.Parse(plugin.Config["Scrapcopter Loot Spawner Multiplier"].ToString());
                CargoPathBool = bool.Parse(plugin.Config["Use Cargoship Path For Ocean"].ToString());
                MonumentPathBool = bool.Parse(plugin.Config["Use Monument Path For Air"].ToString());
                SamSitesBool0 = bool.Parse(plugin.Config["Samsites Attack Pirates"].ToString());
                SamSitesBoat = bool.Parse(plugin.Config["Samsites Attack Pirate Boats"].ToString());
                StaticSamSitesBool = bool.Parse(plugin.Config["Static(Server) Samsites Attack Pirates"].ToString());
                SamSitesDamageFloat = float.Parse(plugin.Config["Samsites Damage Multiplyer (Pirates)"].ToString());
                NPCParachuteBool = bool.Parse(plugin.Config["NPCs Parachute"].ToString());
                NPCTick = float.Parse(plugin.Config["NPCs Tick Rate (sec)"].ToString());
                NPCParachuteTrigger = float.Parse(plugin.Config["NPCs Parachute When Heli Health Below"].ToString());
                NPCParachuteDecay = float.Parse(plugin.Config["NPCs Parachute Decay (sec)"].ToString());
                NPCParachuteDie = float.Parse(plugin.Config["NPCs Parachute Suicide (sec)"].ToString());
                HeliTargetDistance = float.Parse(plugin.Config["(Air) Pirates Target Distance"].ToString());
                BoatTargetDistance = float.Parse(plugin.Config["(Sea) Pirates Target Distance"].ToString());
                LandTargetDistance = float.Parse(plugin.Config["(Land) Pirates Target Distance"].ToString());
                SnowMobileAmount = int.Parse(plugin.Config["SnowMobile Amount Per Spawn"].ToString());
                SnowMobileMax = int.Parse(plugin.Config["SnowMobile Max At Once"].ToString());
                SnowMobileNPCHealth = float.Parse(plugin.Config["SnowMobile NPC Health"].ToString());
                SnowMobileAimMulti = float.Parse(plugin.Config["SnowMobile NPC Aim Distance"].ToString());
                SnowMobileHealth = float.Parse(plugin.Config["SnowMobile Health"].ToString());
                SnowMobileRomeRange = float.Parse(plugin.Config["SnowMobile Roam Range"].ToString());
                SnowMobileCanRoam = bool.Parse(plugin.Config["SnowMobile Roam"].ToString());
                SnowMobileMoveSpeed = float.Parse(plugin.Config["SnowMobile Speed"].ToString());
                SnowMobileKit = plugin.Config["SnowMobile Kit Bots"].ToString();
                SnowMobileLootString = plugin.Config["SnowMobile Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                SnowMobileLootMulti = int.Parse(plugin.Config["SnowMobile Loot Spawner Multiplier"].ToString());
                HorseAmount = int.Parse(plugin.Config["Horse Amount Per Spawn"].ToString());
                HorseMax = int.Parse(plugin.Config["Horse Max At Once"].ToString());
                HorseNPCHealth = float.Parse(plugin.Config["Horse NPC Health"].ToString());
                HorseAimMulti = float.Parse(plugin.Config["Horse NPC Aim Distance"].ToString());
                HorseHealth = float.Parse(plugin.Config["Horse Health"].ToString());
                HorseRomeRange = float.Parse(plugin.Config["Horse Roam Range"].ToString());
                HorseCanRoam = bool.Parse(plugin.Config["Horse Roam"].ToString());
                HorseMoveSpeed = float.Parse(plugin.Config["Horse Speed"].ToString());
                HorseKit = plugin.Config["Horse Kit Bots"].ToString();
                HorseLootString = plugin.Config["Horse Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                HorseLootMulti = int.Parse(plugin.Config["Horse Loot Spawner Multiplier"].ToString());
                LootProfiles = plugin.Config["XLootCustomProfiles"].ToString();
                NPCChatter = bool.Parse(plugin.Config["NPCs Radio Disable"].ToString());
                NPCCustomChatter0 = plugin.Config["NPCs Radio Custom"].ToString();
                NPCCustomChatterCD = int.Parse(plugin.Config["NPCs Radio Custom Cooldown"].ToString());
                NPCCustomDeath0 = plugin.Config["NPCs Custom Death Voice"].ToString();
                NPCCustomDeathCD = int.Parse(plugin.Config["NPCs Custom Death VoiceCooldown"].ToString());
                NPCCustomKill0 = plugin.Config["NPCs Custom Kill Voice"].ToString();
                NPCCustomKillCD = int.Parse(plugin.Config["NPCs Custom Kill Voice Cooldown"].ToString());
                NPCNameTag = plugin.Config["NPCs Name Tag"].ToString();
                NPCCustomWarningString = plugin.Config["NPCs Custom Warning Voice"].ToString();
                NPCCustomWarningDistance = float.Parse(plugin.Config["NPCs Custom Warning Voice Trigger Distance"].ToString());
                NPCCustomWarningCD = int.Parse(plugin.Config["NPCs Custom Warning Voice Cooldown"].ToString());
                NPCCAttackSupplyDrops = bool.Parse(plugin.Config["NPCs Pirates Attack Supply Drops"].ToString());
                NPCAttackCreate = bool.Parse(plugin.Config["NPCs Pirates Attack Creates Being Hacked"].ToString());
                NPCsCanTargetNPCsBool = bool.Parse(plugin.Config["NPCs Can Target Other NPCs"].ToString());
                NPCCountRaids = bool.Parse(plugin.Config["NPCs Pirates Counter Raids"].ToString());
                NPCMaxVoicesAtOnce = int.Parse(plugin.Config["NPCs Max Voices To Play At Once On Server"].ToString());
                NPCDamageScaler = float.Parse(plugin.Config["NPC Damage Scaler"].ToString());
                NPCAimScaler = float.Parse(plugin.Config["NPC Aim Scaler"].ToString());
                PiratesAirPOIRadius = float.Parse(plugin.Config["Pirates Distance From POI Air"].ToString());
                PiratesWaterPOIRadius = float.Parse(plugin.Config["Pirates Distance From POI Water"].ToString());
                PiratesLandPOIRadius = float.Parse(plugin.Config["Pirates Distance From POI Land"].ToString());
                NPCPeaceKeeperBool = bool.Parse(plugin.Config["NPCs Pirates PeaceKeeper Mode"].ToString());
                POIExpires = int.Parse(plugin.Config["Pirates POI Expires After (sec)"].ToString());
                NPCPeaceKeeperToggle = float.Parse(plugin.Config["NPCs Pirates PeaceKeeper Toggle Hostile Distance"].ToString());
                PirateBaseAmount = int.Parse(plugin.Config["Pirate Base Amount To Spawn"].ToString());
                PirateBaseNPCAmount = int.Parse(plugin.Config["Pirate Base Amount Of NPCs"].ToString());
                PirateBaseWallRadius = int.Parse(plugin.Config["Pirate Base Wall Radius"].ToString());
                PirateBaseNPCHealth = float.Parse(plugin.Config["Pirate Base NPC Health"].ToString());
                PirateBaseAimMulti = float.Parse(plugin.Config["Pirate Base NPC Aim Distance"].ToString());
                PirateBaseNPCKit = plugin.Config["Pirate Base NPC Kit"].ToString();
                PirateBaseLootString = plugin.Config["Pirate Base Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                PirateBaseDoorHealth = float.Parse(plugin.Config["Pirate Base Door Health"].ToString());
                PirateBaseLootMulti = int.Parse(plugin.Config["Pirate Base Loot Spawner Multiplyer"].ToString());
                PirateRailAmount = int.Parse(plugin.Config["Pirate Rail Amount To Spawn"].ToString());
                PirateRailHealth = int.Parse(plugin.Config["Pirate Rail Train Health"].ToString());
                PirateRailNPCAmount = int.Parse(plugin.Config["Pirate Rail Amount Of NPCs"].ToString());
                PirateRailNPCHealth = float.Parse(plugin.Config["Pirate Rail NPC Health"].ToString());
                PirateRailNPCDriverHealth = float.Parse(plugin.Config["Pirate Rail NPC Driver Health"].ToString());
                PirateRailAimMulti = float.Parse(plugin.Config["Pirate Rail NPC Aim Distance"].ToString());
                PirateRailNPCKit = plugin.Config["Pirate Rail NPC Kit"].ToString();
                PirateRailLootString = plugin.Config["Pirate Rail Loot Spawner (Leave Blank For Profile Loot)"].ToString();
                PirateRailLootMulti = int.Parse(plugin.Config["Pirate Rail Loot Spawner Multiplyer"].ToString());
                PirateRailWagonSamRange = float.Parse(plugin.Config["Pirate Rail Samsite Range"].ToString());
                PirateRailWagonSamHealth = float.Parse(plugin.Config["Pirate Rail Samsite Health"].ToString());
                PirateRailWagonTurretHealth = float.Parse(plugin.Config["Pirate Rail Turret Health"].ToString());
                PirateRailWagonTurretGun = plugin.Config["Pirate Rail Turret Gun"].ToString();
                PirateRailWagonhealth = float.Parse(plugin.Config["Pirate Rail Wagon Health"].ToString());
                PirateRailWagondoorhealth = float.Parse(plugin.Config["Pirate Rail Wagon Door Health"].ToString());
                PirateRailwagondoorskinid = ulong.Parse(plugin.Config["Pirate Rail Wagon Door SkinID"].ToString());
                PirateRailWagonAmount = int.Parse(plugin.Config["Pirate Rail Wagon Spawn Ammount"].ToString());
                PirateRailTrainSpeed = float.Parse(plugin.Config["Pirate Rail Train Speed"].ToString());
                PirateFootNPCHealth = float.Parse(plugin.Config["Pirate Foot NPC Health"].ToString());
                PirateFootNPCAimMulti = float.Parse(plugin.Config["Pirate Foot Aim Distance"].ToString());
                PirateFootNPCKit = plugin.Config["Pirate Foot NPC Kit"].ToString();
                PirateFootNPCRoam = float.Parse(plugin.Config["Pirate Foot NPC Roam Distance"].ToString());
                PirateCargoPlane = bool.Parse(plugin.Config["Pirate Plane Event Enabled"].ToString());
                PiratePlaneflyheight = float.Parse(plugin.Config["Pirate Plane Fly Height"].ToString());
                PiratePlaneflyspeed = float.Parse(plugin.Config["Pirate Plane Fly Speed"].ToString());
                PiratePlaneNPCAmount = int.Parse(plugin.Config["Pirate Plane NPCs Per Drop"].ToString());
                PiratePlaneNPCDrops = int.Parse(plugin.Config["Pirate Plane Number Of Drops"].ToString());
                PiratePlaneAllowedDrops = plugin.AllowedMonumentList(plugin.Config["Pirate Plane Allowed Monuments"].ToString());
                PirateEventEnabled = bool.Parse(plugin.Config["Pirates Events Enabled"].ToString());
                PirateEventCoolDownDelay = float.Parse(plugin.Config["Pirate Events CoolDown Delay"].ToString());
                PirateEventRadius = float.Parse(plugin.Config["Pirate Events Player Radius"].ToString());
                PirateEventNPCAmount = int.Parse(plugin.Config["Pirate Events NPC Amount"].ToString());
                PirateEventNPCKit = plugin.Config["Pirate Events NPC Kit"].ToString();
                PirateEventNPCHealth = float.Parse(plugin.Config["Pirate Events NPC Health"].ToString());
                PirateEventNPCAimMulti = float.Parse(plugin.Config["Pirate Events NPC AimMulti"].ToString());
                PirateEventAnnounce = bool.Parse(plugin.Config["Pirate Events Annoucements"].ToString());
                PirateEventSpawnRadius = float.Parse(plugin.Config["Pirate Events NPC Spawn Radius"].ToString());
                PirateEventStationaryRadius = float.Parse(plugin.Config["Pirate Events NPC Stationary Radius"].ToString());
            }
        }
        protected override void LoadDefaultConfig() {
            Puts("Creating a new configuration file");
            Config["Spawn Pirates Every (sec)"] = 900;
            Config["Leave After (sec)"] = 1300;
            Config["(Air) Pirates Target Distance"] = 200f;
            Config["(Sea) Pirates Target Distance"] = 30f;
            Config["(Land) Pirates Target Distance"] = 40f;
            Config["(RaidableBases) Disable Auto Turrets Attacking Pirates"] = true;
            Config["Map Marker Show"] = true;
            Config["Map Marker Colour (Air) (Hex)"] = "#ada500";
            Config["Map Marker Colour (Water) (Hex)"] = "#001dad";
            Config["Map Marker Colour (Land) (Hex)"] = "#00ad00";
            Config["Map Marker Colour (Base) (Hex)"] = "#ad0000";
            Config["Map Marker Colour (Rail) (Hex)"] = "#ad00a0";
            Config["Map Marker Alpha"] = 0.2f;
            Config["Map Marker Size"] = 0.3f;
            Config["Start Fire When Health Below"] = 80f;
            Config["Stop Delay (sec)"] = 3;
            Config["Crash Delay (sec)"] = 0.5;
            Config["Disable ScrapHeli Gibs"] = true;
            Config["Disable Heli Fireball"] = true;
            Config["Disable Heli Lights"] = false;
            Config["Disable Boat Lights"] = false;
            Config["Disable Land Lights"] = false;
            Config["Fire After Crash/Sink (sec)"] = 60;
            Config["Explode After Fire (sec)"] = 10;
            Config["RHIB Kit Bots"] = "";
            Config["RHIB Loot Spawner (Leave Blank For Profile Loot)"] = eliteentityprefab;
            Config["RHIB Loot Spawner Multiplier"] = 2;
            Config["RHIB NPC Amount Per Boat"] = 4;
            Config["RHIB Health"] = 500;
            Config["RHIB NPC Health"] = 120;
            Config["RHIB Boat Amount Per Spawn"] = 1;
            Config["RHIB Boat Max Speed"] = 14f;
            Config["RHIB Boat Turn Speed"] = 7.5f;
            Config["RHIB AI Target Distance"] = 5f;
            Config["RHIB Boat Max At Once"] = 1;
            Config["RowBoat Kit Bots"] = "";
            Config["RowBoat Loot Spawner (Leave Blank For Profile Loot)"] = basicentityprefab;
            Config["RowBoat Loot Spawner Multiplier"] = 1;
            Config["RowBoat NPC Amount Per Boat"] = 2;
            Config["RowBoat Health"] = 400;
            Config["RowBoat NPC Health"] = 100;
            Config["RowBoat Boat Amount Per Spawn"] = 2;
            Config["RowBoat Boat Max Speed"] = 11f;
            Config["RowBoat Boat Turn Speed"] = 7.5f;
            Config["RowBoat AI Target Distance"] = 10f;
            Config["RowBoat Boat Max At Once"] = 4;
            Config["Submarine Loot Spawner (Leave Blank For Profile Loot)"] = eliteentityprefab;
            Config["Submarine Loot Spawner Multiplier"] = 1;
            Config["Submarine Health"] = 700;
            Config["Submarine Amount Per Spawn"] = 1;
            Config["Submarine Max Speed"] = 6f;
            Config["Submarine Turn Speed"] = 18f;
            Config["Submarine Target Depth"] = 6f;
            Config["Submarine Max At Once"] = 2;
            Config["Submarine Take Damage"] = 2500;
            Config["Minicopter Kit Bots"] = "";
            Config["Minicopter Loot Spawner (Leave Blank For Profile Loot)"] = normalentityprefab;
            Config["Minicopter Loot Spawner Multiplier"] = 1;
            Config["Minicopter Health"] = 300;
            Config["Minicopter NPC Health"] = 600;
            Config["Minicopter NPC Amount"] = 3;
            Config["Minicopter Amount Per Spawn"] = 2;
            Config["Minicopter Max Speed"] = 25f;
            Config["Minicopter Turn Speed"] = 4.5f;
            Config["Minicopter Hover Height"] = 45f;
            Config["Minicopter AI Target Distance"] = 4.5f;
            Config["Minicopter Max At Once"] = 4;
            Config["Minicopter Orbit Distance"] = 60f;
            Config["Minicopter Target Threat Level"] = 0.9f;
            Config["Scrapcopter Kit Bots"] = "";
            Config["Scrapcopter Loot Spawner (Leave Blank For Profile Loot)"] = helicrateentityprefab;
            Config["Scrapcopter Loot Spawner Multiplier"] = 3;
            Config["Scrapcopter Health"] = 850;
            Config["Scrapcopter NPC Health"] = 100;
            Config["Scrapcopter NPC Amount"] = 11;
            Config["Scrapcopter Amount Per Spawn"] = 1;
            Config["Scrapcopter Max Speed"] = 20f;
            Config["Scrapcopter Turn Speed"] = 2.5f;
            Config["Scrapcopter Hover Height"] = 45f;
            Config["Scrapcopter AI Target Distance"] = 4.5f;
            Config["Scrapcopter Max At Once"] = 2;
            Config["Scrapcopter Orbit Distance"] = 65f;
            Config["Scrapcopter Target Threat Level"] = 1f;
            Config["SnowMobile Amount Per Spawn"] = 3;
            Config["SnowMobile Max At Once"] = 6;
            Config["SnowMobile NPC Health"] = 15f;
            Config["SnowMobile NPC Aim Distance"] = 0.5f;
            Config["SnowMobile Health"] = 200f;
            Config["SnowMobile Roam Range"] = 200f;
            Config["SnowMobile Roam"] = true;
            Config["SnowMobile Speed"] = 10f;
            Config["SnowMobile Kit Bots"] = "";
            Config["SnowMobile Loot Spawner (Leave Blank For Profile Loot)"] = normalentityprefab;
            Config["SnowMobile Loot Spawner Multiplier"] = 1;
            Config["Horse Amount Per Spawn"] = 3;
            Config["Horse Max At Once"] = 6;
            Config["Horse NPC Health"] = 15f;
            Config["Horse Health"] = 350f;
            Config["Horse NPC Aim Distance"] = 0.5f;
            Config["Horse Roam Range"] = 280f;
            Config["Horse Roam"] = true;
            Config["Horse Speed"] = 8f;
            Config["Horse Kit Bots"] = "";
            Config["Horse Loot Spawner (Leave Blank For Profile Loot)"] = normalentityprefab;
            Config["Horse Loot Spawner Multiplier"] = 1;
            Config["Use Cargoship Path For Ocean"] = true;
            Config["Use Monument Path For Air"] = false;
            Config["Samsites Attack Pirates"] = false;
            Config["Static(Server) Samsites Attack Pirates"] = false;
            Config["Samsites Attack Pirate Boats"] = false;
            Config["Samsites Damage Multiplyer (Pirates)"] = 2f;
            Config["NPCs Tick Rate (sec)"] = 1.5f;
            Config["NPCs Parachute"] = true;
            Config["NPCs Parachute When Heli Health Below"] = 30f;
            Config["NPCs Parachute Decay (sec)"] = 30f;
            Config["NPCs Parachute Suicide (sec)"] = 600f;
            Config["NPCs Radio Disable"] = false;
            Config["NPCs Radio Custom"] = "";
            Config["NPCs Custom Kill Voice"] = "";
            Config["NPCs Custom Death Voice"] = "";
            Config["NPCs Custom Warning Voice"] = "";
            Config["NPCs Radio Custom Cooldown"] = 10;
            Config["NPCs Custom Death VoiceCooldown"] = 8;
            Config["NPCs Custom Kill Voice Cooldown"] = 8;
            Config["NPCs Custom Warning Voice Cooldown"] = 15;
            Config["NPCs Custom Warning Voice Trigger Distance"] = 15;
            Config["NPCs Max Voices To Play At Once On Server"] = 20;
            Config["NPCs Pirates Attack Supply Drops"] = true;
            Config["NPCs Pirates Attack Creates Being Hacked"] = true;
            Config["NPCs Pirates Counter Raids"] = true;
            Config["NPCs Pirates PeaceKeeper Mode"] = true;
            Config["NPCs Pirates PeaceKeeper Toggle Hostile Distance"] = 4;
            Config["NPC Damage Scaler"] = 0.8f;
            Config["NPC Aim Scaler"] = 1;
            Config["NPCs Name Tag"] = "[Pirate]";
            Config["NPCs Can Target Other NPCs"] = false;
            Config["Pirates Distance From POI Air"] = 5000f;
            Config["Pirates Distance From POI Water"] = 400f;
            Config["Pirates Distance From POI Land"] = 800f;
            Config["Pirates POI Expires After (sec)"] = 60f;
            Config["Pirate Base Amount To Spawn"] = 3;
            Config["Pirate Base Amount Of NPCs"] = 6;
            Config["Pirate Base NPC Aim Distance"] = 0.6f;
            Config["Pirate Base NPC Health"] = 150f;
            Config["Pirate Base NPC Kit"] = "";
            Config["Pirate Base Wall Radius"] = 12;
            Config["Pirate Base Loot Spawner (Leave Blank For Profile Loot)"] = eliteentityprefab;
            Config["Pirate Base Loot Spawner Multiplyer"] = 3;
            Config["Pirate Base Door Health"] = 600f;
            Config["Pirate Rail Amount To Spawn"] = 1;
            Config["Pirate Rail Train Health"] = 1000;
            Config["Pirate Rail Amount Of NPCs"] = 6;
            Config["Pirate Rail NPC Aim Distance"] = 0.6f;
            Config["Pirate Rail NPC Health"] = 150f;
            Config["Pirate Rail NPC Driver Health"] = 2f;
            Config["Pirate Rail NPC Kit"] = "";
            Config["Pirate Rail Loot Spawner (Leave Blank For Profile Loot)"] = eliteentityprefab;
            Config["Pirate Rail Loot Spawner Multiplyer"] = 4;
            Config["Pirate Rail Samsite Range"] = 20f;
            Config["Pirate Rail Samsite Health"] = 200f;
            Config["Pirate Rail Turret Health"] = 50f;
            Config["Pirate Rail Turret Gun"] = "pistol.eoka";
            Config["Pirate Rail Wagon Health"] = 2500f;
            Config["Pirate Rail Wagon Door Health"] = 55f;
            Config["Pirate Rail Wagon Door SkinID"] = 2488843636;
            Config["Pirate Rail Wagon Spawn Ammount"] = 3;
            Config["Pirate Rail Train Speed"] = 8;
            Config["Pirate Foot NPC Health"] = 120;
            Config["Pirate Foot Aim Distance"] = 0.9f;
            Config["Pirate Foot NPC Kit"] = "";
            Config["Pirate Foot NPC Roam Distance"] = 50f;
            Config["Pirates Events Enabled"] = true;
            Config["Pirate Events CoolDown Delay"] = 600f;
            Config["Pirate Events Annoucements"] = true;
            Config["Pirate Events Player Radius"] = 50;
            Config["Pirate Events NPC Amount"] = 5;
            Config["Pirate Events NPC Kit"] = "";
            Config["Pirate Events NPC Health"] = 120f;
            Config["Pirate Events NPC AimMulti"] = 0.8f;
            Config["Pirate Plane Event Enabled"] = true;
            Config["Pirate Plane Fly Height"] = 120f;
            Config["Pirate Plane Fly Speed"] = 40f;
            Config["Pirate Plane NPCs Per Drop"] = 3f;
            Config["Pirate Plane Number Of Drops"] = 6f;
            Config["Pirate Events NPC Spawn Radius"] = 12f;
            Config["Pirate Events NPC Stationary Radius"] = 4f;
            Config["Pirate Plane Allowed Monuments"] = "assets/bundled/prefabs/autospawn/monument/harbor/harbor_2.prefab|assets/bundled/prefabs/autospawn/monument/harbor/harbor_1.prefab|assets/bundled/prefabs/autospawn/monument/military_bases/desert_military_base_d.prefab|assets/bundled/prefabs/autospawn/monument/arctic_bases/arctic_research_base_a.prefab|assets/bundled/prefabs/autospawn/monument/xlarge/launch_site_1.prefab|assets/bundled/prefabs/autospawn/monument/large/excavator_1.prefab|assets/bundled/prefabs/autospawn/monument/medium/junkyard_1.prefab|assets/bundled/prefabs/autospawn/monument/large/trainyard_1.prefab|assets/bundled/prefabs/autospawn/monument/large/powerplant_1.prefab|assets/bundled/prefabs/autospawn/monument/large/military_tunnel_1.prefab|assets/bundled/prefabs/autospawn/monument/large/airfield_1.prefab|assets/bundled/prefabs/autospawn/monument/large/water_treatment_plant_1.prefab|assets/bundled/prefabs/autospawn/monument/medium/radtown_small_3.prefab|assets/bundled/prefabs/autospawn/monument/small/mining_quarry_a.prefab|assets/bundled/prefabs/autospawn/monument/small/satellite_dish.prefab|assets/bundled/prefabs/autospawn/monument/small/sphere_tank.prefab|assets/bundled/prefabs/autospawn/monument/small/mining_quarry_b.prefab|assets/bundled/prefabs/autospawn/monument/small/mining_quarry_c.prefab|assets/bundled/prefabs/autospawn/monument/tiny/water_well_d.prefab|assets/bundled/prefabs/autospawn/monument/tiny/water_well_e.prefab|assets/bundled/prefabs/autospawn/monument/tiny/water_well_c.prefab|assets/bundled/prefabs/autospawn/tunnel-entrance/entrance_bunker_a.prefab|assets/bundled/prefabs/autospawn/tunnel-entrance/entrance_bunker_c.prefab|assets/bundled/prefabs/autospawn/monument/roadside/warehouse.prefab|assets/bundled/prefabs/autospawn/monument/roadside/gas_station_1.prefab|assets/bundled/prefabs/autospawn/monument/roadside/supermarket_1.prefab|assets/bundled/prefabs/autospawn/power substations/small/power_sub_small_2.prefab|assets/bundled/prefabs/autospawn/power substations/small/power_sub_small_1.prefab|assets/bundled/prefabs/autospawn/power substations/big/power_sub_big_2.prefab|assets/bundled/prefabs/autospawn/power substations/
// ... [Code preview truncated due to length. Full source in attached file] ...

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