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

FREE DeathMessage : 1.1.2 1.1.2

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using System.Collections.Specialized;
using UnityEngine;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Rust;
using Oxide.Game.Rust.Cui;
using Oxide.Core.Libraries;
using Oxide.Core.Libraries.Covalence;
using Oxide.Core;
using System;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Text.RegularExpressions;
namespace Oxide.Plugins {
    [Info("DeathMessage", "Damo/beee / M&B-Studios", "1.1.2", ResourceId = 0)]
    [Description("Players can freely switch between the two modes of death tips")]
    class DeathMessage : RustPlugin {
#region 设置文档
        private ConfigData configData;
        private int _TempText = 0;
        private const string Permission_registration = "deathmessage.admin";
        private static DeathMessage Instance;
        private HashSet<ulong> _DeathMessageType = new HashSet<ulong>();
        public TextAnchor _textAnchor = TextAnchor.MiddleLeft;
        private ulong Last_attacker;
        private class ConfigData {
            public Oxide.Core.VersionNumber Version;
            [JsonProperty("➊ Global Messages settings")]
            public EnableSettings Enable_settings;
            [JsonProperty("➊ Discord settings")]
            public DiscordEnableSettings Discord_settings;
            [JsonProperty("➋ Display name modification and activation")]
            public AboutName About_name;
            [JsonProperty("➌ Other settings")]
            public OtherSettings Other_settings;
            [JsonProperty("➍ Lang settings")]
            public Dictionary<string, string> Lang_settings;
        }
        private class EnableSettings {
            [JsonProperty("Enable About Animal")]
            public bool Enable_Animal;
            [JsonProperty("Enable About Entitys")]
            public bool Enable_Entity;
            [JsonProperty("Enable About NPC")]
            public bool Enable_NPC;
            [JsonProperty("Enable Player Deaths")]
            public bool Enable_Player;
            [JsonProperty("Enable About Suicide")]
            public bool Enable_About_Suicide;
        }
        private class DiscordEnableSettings {
            [JsonProperty("Webhook URL")]
            public string DiscordWebHookUrl;
            [JsonProperty("Bot Name")]
            public string DiscordBotName;
            [JsonProperty("Bot Avatar Link")]
            public string DiscordAvatarLink;
            [JsonProperty("Enable Animal Deaths")]
            public bool Enable_Animal;
            [JsonProperty("Enable Entities Deaths")]
            public bool Enable_Entity;
            [JsonProperty("Enable NPC Deaths")]
            public bool Enable_NPC;
            [JsonProperty("Enable Player Deaths")]
            public bool Enable_Player;
        }
        private class OtherSettings {
            [JsonProperty("Default command")]
            public string Default_command;
            [JsonProperty("Chat Icon Id")]
            public string Chat_Icon;
            [JsonProperty("Default display(true = FloatUI , false = Chat box)")]
            public bool Defaultdisplay;
            [JsonProperty("FloatUI message closing time second")]
            public int Ui_time;
            [JsonProperty("Click on FloatUI switch to the chat box in seconds")]
            public int switching_time;
        }
        private class AboutName {
            [JsonProperty("➀ Animal name")]
            public Dictionary<string, EnableData> Animal_Name;
            [JsonProperty("➁ NPC name")]
            public Dictionary<string, EnableData> NPC_name;
            [JsonProperty("➂ Entity name")]
            public Dictionary<string, EnableData> Entity_Name;
            [JsonProperty("➃ Weapon name")]
            public Dictionary<string, string> Default_weapon;
            [JsonProperty("➄ Body part name")]
            public Dictionary<string, string> Body_part_name;
        }
        private class EnableData {
            [JsonProperty("Enable")]
            public bool Enable;
            [JsonProperty("Display name")]
            public string Display_name;
        }
        private void LoadConfigVariables() => configData = Config.ReadObject<ConfigData>();
        private void SaveConfig(ConfigData config) => Config.WriteObject(config, true);
        private void LoadVariables() {
            LoadConfigVariables();
            //1.1.1 update
            if (!configData.Enable_settings.Enable_About_Suicide) {
                Puts("Updating config.");
                configData.Enable_settings.Enable_About_Suicide = true;
                // Setze den Standardwert
                Puts("Added 'Enable About Suicide' setting to configuration.");
            }
            configData.Version = Version;
            SaveConfig(configData);
        }
        protected override void LoadDefaultConfig() {
            var config = new ConfigData {
                Version = Version, Enable_settings = new EnableSettings {
                    Enable_Animal = true, Enable_Entity = true, Enable_NPC = true, Enable_Player = true, Enable_About_Suicide = true
                }
                , Discord_settings = new DiscordEnableSettings {
                    DiscordBotName = "Death Messages Bot", DiscordAvatarLink = "https://avatarfiles.alphacoders.com/128/128573.png", DiscordWebHookUrl = "https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks", Enable_Animal = true, Enable_Entity = true, Enable_NPC = true, Enable_Player = true
                }
                , About_name = new AboutName {
                    Animal_Name = new Dictionary<string, EnableData> {
                        {
                            "bear" , new EnableData {
                                Enable = true, Display_name = "bear"
                            }
                        }
                        , {
                            "polarbear" , new EnableData {
                                Enable = true, Display_name = "polarbear"
                            }
                        }
                        , {
                            "boar" , new EnableData {
                                Enable = true, Display_name = "boar"
                            }
                        }
                        , {
                            "chicken" , new EnableData {
                                Enable = true, Display_name = "chicken"
                            }
                        }
                        , {
                            "stag" , new EnableData {
                                Enable = true, Display_name = "stag"
                            }
                        }
                        , {
                            "wolf" , new EnableData {
                                Enable = true, Display_name = "wolf"
                            }
                        }
                        , {
                            "testridablehorse" , new EnableData {
                                Enable = true, Display_name = "testridablehorse"
                            }
                        }
                        , {
                            "horse" , new EnableData {
                                Enable = true, Display_name = "horse"
                            }
                        }
                        , {
                            "zombie" , new EnableData {
                                Enable = true, Display_name = "zombie"
                            }
                        }
                        ,
                    }
                    , Entity_Name = new Dictionary<string, EnableData> {
                        {
                            "bradleyapc" , new EnableData {
                                Enable = true, Display_name = "bradleyapc"
                            }
                        }
                        , {
                            "patrolhelicopter" , new EnableData {
                                Enable = true, Display_name = "patrolhelicopter"
                            }
                        }
                        , {
                            "autoturret_deployed" , new EnableData {
                                Enable = false, Display_name = "autoturret_deployed"
                            }
                        }
                        , {
                            "flameturret.deployed" , new EnableData {
                                Enable = false, Display_name = "flameturret.deployed"
                            }
                        }
                        , {
                            "guntrap.deployed" , new EnableData {
                                Enable = false, Display_name = "guntrap.deployed"
                            }
                        }
                        , {
                            "landmine" , new EnableData {
                                Enable = false, Display_name = "landmine"
                            }
                        }
                        , {
                            "beartrap" , new EnableData {
                                Enable = false, Display_name = "beartrap"
                            }
                        }
                        , {
                            "sam_site_turret_deployed" , new EnableData {
                                Enable = false, Display_name = "sam_site_turret_deployed"
                            }
                        }
                        , {
                            "sentry.scientist.static" , new EnableData {
                                Enable = false, Display_name = "sentry.scientist.static"
                            }
                        }
                        ,
                    }
                    , NPC_name = new Dictionary<string, EnableData> {
                        {
                            "scarecrow" , new EnableData {
                                Enable = true, Display_name = "scarecrow"
                            }
                        }
                        , {
                            "bandit_conversationalist" , new EnableData {
                                Enable = true, Display_name = "bandit_conversationalist"
                            }
                        }
                        , {
                            "bandit_shopkeeper" , new EnableData {
                                Enable = true, Display_name = "bandit_shopkeeper"
                            }
                        }
                        , {
                            "boat_shopkeeper" , new EnableData {
                                Enable = true, Display_name = "boat_shopkeeper"
                            }
                        }
                        , {
                            "missionprovider_bandit_a" , new EnableData {
                                Enable = true, Display_name = "missionprovider_bandit_a"
                            }
                        }
                        , {
                            "missionprovider_bandit_b" , new EnableData {
                                Enable = true, Display_name = "missionprovider_bandit_b"
                            }
                        }
                        , {
                            "missionprovider_fishing_a" , new EnableData {
                                Enable = true, Display_name = "missionprovider_fishing_a"
                            }
                        }
                        , {
                            "missionprovider_fishing_b" , new EnableData {
                                Enable = true, Display_name = "missionprovider_fishing_b"
                            }
                        }
                        , {
                            "missionprovider_outpost_a" , new EnableData {
                                Enable = true, Display_name = "missionprovider_outpost_a"
                            }
                        }
                        , {
                            "missionprovider_outpost_b" , new EnableData {
                                Enable = true, Display_name = "missionprovider_outpost_b"
                            }
                        }
                        , {
                            "missionprovider_stables_a" , new EnableData {
                                Enable = true, Display_name = "missionprovider_stables_a"
                            }
                        }
                        , {
                            "missionprovider_stables_b" , new EnableData {
                                Enable = true, Display_name = "missionprovider_stables_b"
                            }
                        }
                        , {
                            "npc_bandit_guard" , new EnableData {
                                Enable = true, Display_name = "npc_bandit_guard"
                            }
                        }
                        , {
                            "npc_tunneldweller" , new EnableData {
                                Enable = true, Display_name = "npc_tunneldweller"
                            }
                        }
                        , {
                            "npc_underwaterdweller" , new EnableData {
                                Enable = true, Display_name = "npc_underwaterdweller"
                            }
                        }
                        , {
                            "player" , new EnableData {
                                Enable = true, Display_name = "player"
                            }
                        }
                        , {
                            "scientistnpc_patrol" , new EnableData {
                                Enable = true, Display_name = "scientistnpc_patrol"
                            }
                        }
                        , {
                            "scientistnpc_peacekeeper" , new EnableData {
                                Enable = true, Display_name = "scientistnpc_peacekeeper"
                            }
                        }
                        , {
                            "scientistnpc_roam" , new EnableData {
                                Enable = true, Display_name = "scientistnpc_roam"
                            }
                        }
                        , {
                            "scientistnpc_roamtethered" , new EnableData {
                                Enable = true, Display_name = "scientistnpc_roamtethered"
                            }
                        }
                        , {
                            "stables_shopkeeper" , new EnableData {
                                Enable = true, Display_name = "stables_shopkeeper"
                            }
                        }
                        ,
                    }
                    , Default_weapon = new Dictionary<string, string> {
                        {
                            "grenade", "grenade"
                        }
                        , {
                            "explosive", "explosive"
                        }
                        , {
                            "heat", "heat"
                        }
                        , {
                            "Assault Rifle", "Assault Rifle"
                        }
                        , {
                            "LR-300 Assault Rifle", "LR-300 Assault Rifle"
                        }
                        , {
                            "L96 Rifle", "L96 Rifle"
                        }
                        , {
                            "Bolt Action Rifle", "Bolt Action Rifle"
                        }
                        , {
                            "Semi-Automatic Rifle", "Semi-Automatic Rifle"
                        }
                        , {
                            "Semi-Automatic Pistol", "Semi-Automatic Pistol"
                        }
                        , {
                            "Spas-12 Shotgun", "Spas-12 Shotgun"
                        }
                        , {
                            "M92 Pistol", "M92 Pistol"
                        }
                        , {
                            "Crossbow", "Crossbow"
                        }
                        , {
                            "Compound Bow", "Compound Bow"
                        }
                        , {
                            "Eoka Pistol", "Eoka Pistol"
                        }
                        , {
                            "Nailgun", "Nailgun"
                        }
                        , {
                            "Multiple Grenade Launcher", "Multiple Grenade Launcher"
                        }
                        , {
                            "Waterpipe Shotgun", "Waterpipe Shotgun"
                        }
                        , {
                            "Flame Thrower", "Flame Thrower"
                        }
                        , {
                            "Revolver", "Revolver"
                        }
                        , {
                            "Python Revolver", "Python Revolver"
                        }
                        , {
                            "Pump Shotgun", "Pump Shotgun"
                        }
                        , {
                            "Custom SMG", "Custom SMG"
                        }
                        , {
                            "MP5A4", "MP5A4"
                        }
                        , {
                            "Thompson", "Thompson"
                        }
                        , {
                            "Double Barrel Shotgun", "Double Barrel Shotgun"
                        }
                        , {
                            "M39 Rifle", "M39 Rifle"
                        }
                        , {
                            "Rocket Launcher", "Rocket Launcher"
                        }
                        , {
                            "M249", "M249"
                        }
                        , {
                            "Chainsaw", "Chainsaw"
                        }
                        , {
                            "Jackhammer", "Jackhammer"
                        }
                        , {
                            "Salvaged Sword", "Salvaged Sword"
                        }
                        , {
                            "Hunting Bow", "Hunting Bow"
                        }
                        , {
                            "Longsword", "Longsword"
                        }
                        , {
                            "Salvaged Cleaver", "Salvaged Cleaver"
                        }
                        , {
                            "Combat Knife", "Combat Knife"
                        }
                        , {
                            "Wooden Spear", "Wooden Spear"
                        }
                        , {
                            "Stone Hatchet", "Stone Hatchet"
                        }
                        , {
                            "Rock", "Rock"
                        }
                        , {
                            "Torch", "Torch"
                        }
                        , {
                            "Salvaged Axe", "Salvaged Axe"
                        }
                        , {
                            "Salvaged Hammer", "Salvaged Hammer"
                        }
                        , {
                            "Pickaxe", "Pickaxe"
                        }
                        , {
                            "Mace", "Mace"
                        }
                        , {
                            "Bone Knife", "Bone Knife"
                        }
                        , {
                            "Hatchet", "Hatchet"
                        }
                        , {
                            "Salvaged Icepick", "Salvaged Icepick"
                        }
                        , {
                            "Stone Spear", "Stone Spear"
                        }
                        , {
                            "Flashlight", "Flashlight"
                        }
                        , {
                            "Butcher Knife", "Butcher Knife"
                        }
                        , {
                            "Bone Club", "Bone Club"
                        }
                        , {
                            "Candy Cane Club", "Candy Cane Club"
                        }
                        , {
                            "Stone Pickaxe", "Stone Pickaxe"
                        }
                        ,
                    }
                    , Body_part_name = new Dictionary<string, string> {
                        {
                            "Arm", "Arm"
                        }
                        , {
                            "Chest", "Chest"
                        }
                        , {
                            "Head", "Head"
                        }
                        , {
                            "Leg", "Leg"
                        }
                        , {
                            "Hand", "Hand"
                        }
                        , {
                            "Foot", "Foot"
                        }
                        , {
                            "Stomach", "Stomach"
                        }
                        , {
                            "Body", "Body"
                        }
                        ,
                    }
                }
                , Other_settings = new OtherSettings {
                    Default_command = "dm", Chat_Icon = "0", Defaultdisplay = true, switching_time = 10, Ui_time = 10,
                }
                , Lang_settings = new Dictionary<string, string> {
                    {
                        "ChatTitle", ""
                    }
                    , {
                        "NoPermission", "Not have permission !"
                    }
                    , {
                        "MessageTochat", "Toggle death message to <color=#FFFF00>ChatBox</color>"
                    }
                    , {
                        "MessageToFloatUI", "Toggle death message to <color=#66FF00>FloatUI</color>"
                    }
                    , {
                        "ButtonSwitch", "Auto switch death message to <color=#FFFF00>ChatBox</color> <color=#FF0000>{0}</color> seconds"
                    }
                    , {
                        "Reset", "Reset"
                    }
                    , {
                        "DIY", "DIY control panel"
                    }
                    , {
                        "FloatUILocation", "UI Location"
                    }
                    , {
                        "LengthWidth", "Length Width"
                    }
                    , {
                        "FontSize", "Font size"
                    }
                    , {
                        "IntervalStretch", "Interval stretch"
                    }
                    , {
                        "DisplayNumber", "Display number"
                    }
                    , {
                        "FontPosition", "Font position"
                    }
                    , {
                        "NPCKillPlayer", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#FF9900>{3}</color> m"
                    }
                    , {
                        "PlayerSuicide", "<color=#FFFF00>{0}</color> suicide"
                    }
                    , {
                        "PlayerKillPlayer", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#6699FF>{3}</color> <color=#FF9900>{4}</color> m"
                    }
                    , {
                        "PlayerKillNPC", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#6699FF>{3}</color> <color=#FF9900>{4}</color> m"
                    }
                    , {
                        "PlayerKillEntity", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#FF9900>{3}</color> m"
                    }
                    , {
                        "PlayerKillAnimal", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#FF9900>{3}</color> m"
                    }
                    , {
                        "PlayerKillBradleyapc", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#FF9900>{3}</color> m"
                    }
                    , {
                        "PlayerKillPatrolHelicopter", "<color=#66FF00>{0}</color> <color=#66FFFF>{1}</color> Kill <color=#FFFF00>{2}</color> <color=#FF9900>{3}</color> m"
                    }
                    , {
                        "EntityKillPlayer", "<color=#66FF00>{0}</color> Kill <color=#FFFF00>{1}</color> <color=#FF9900>{2}</color> m"
                    }
                    , {
                        "BradleyapcKillPlayer", "<color=#66FF00>{0}</color> Kill <color=#FFFF00>{1}</color> <color=#FF9900>{2}</color> m"
                    }
                    , {
                        "PatrolHelicopterKillPlayer", "<color=#66FF00>{0}</color> Kill <color=#FFFF00>{1}</color> <color=#FF9900>{2}</color> m"
                    }
                    , {
                        "AnimalKillPlayer", "<color=#66FF00>{0}</color> Kill <color=#FFFF00>{1}</color> <color=#FF9900>{2}</color> m"
                    }
                    ,
                }
            }
            ;
            SaveConfig(config);
        }
#endregion
#region 存档数据
        DamoData damoData;
        class DamoData {
            public float[] pos = new float[] {
                0.6f, 0.97f, 1f, 1f, 6f, 0.03f, 18, 0
            }
            ;
        }
        private void LoadData() {
            try {
                damoData = Interface.Oxide.DataFileSystem.ReadObject<DamoData>(Name);
            }
            catch {
                ClearData();
            }
        }
        private void OnServerSave() => SaveData();
        private void SaveData() => Interface.Oxide.DataFileSystem.WriteObject(Name, damoData);
        private void ClearData() {
            damoData = new DamoData();
            SaveData();
        }
#endregion
#region 钩子相关
        private void Init() {
            LoadVariables();
            LoadData();
        }
        private void OnServerInitialized() {
            PrintWarning($"Support: M&B-Studios\n Contact Discord: mbstudios");
            Instance = this;
            AddCovalenceCommand(configData.Other_settings.Default_command, nameof(DeathMessageCommand));
            permission.RegisterPermission(Permission_registration, this);
            Get_textAnchor();
            foreach (var item in BasePlayer.activePlayerList) {
                OnPlayerConnected(item);
            }
        }
        private void Unload() {
            SaveData();
            foreach (var player in BasePlayer.activePlayerList) {
                CuiHelper.DestroyUi(player, "_ControlMenuUi");
                Destroy_All(player);
            }
            Instance = null;
            configData = null;
        }
        private void OnPlayerDisconnected(BasePlayer player) {
            _DeathMessageType.Remove(player.userID);
            if (_playersUIHandler.ContainsKey(player.userID)) {
                _playersUIHandler.Remove(player.userID);
            }
        }
        private void OnPlayerConnected(BasePlayer player) {
            if (configData.Other_settings.Defaultdisplay) {
                _DeathMessageType.Remove(player.userID);
            }
            else {
                _DeathMessageType.Add(player.userID);
            }
        }
        private void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info) {
            if (entity == null || info == null) return;
            if (entity is BaseHelicopter) {
                if (info.InitiatorPlayer != null && info.InitiatorPlayer.userID.IsSteamId()) {
                    Last_attacker = info.InitiatorPlayer.userID;
                }
            }
        }
        private void OnEntityDeath(BaseCombatEntity victim, HitInfo info) {
            if (victim == null || info == null) return;
            if (victim.ShortPrefabName.Contains("corpse")) return;
            try {
                if (info.Initiator != null) {
                    var Uncertain_attacker = info.Initiator;
                    if (Uncertain_attacker is BasePlayer) {
                        var Attack_player = Uncertain_attacker as BasePlayer;
                        if (Attack_player.userID < 700000000000) {
                            if (victim is BasePlayer) {
                                var Victim_player = victim as BasePlayer;
                                if (Victim_player.userID > 700000000000) {
                                    if (configData.Enable_settings.Enable_NPC || configData.Discord_settings.Enable_NPC) {
                                        if (IS_BotSpawn_Name(Attack_player.displayName)) {
                                            UPGP(GetNPCEnableState(), "NPCKillPlayer", Attack_player.displayName, Weapon_Name(Attack_player, info), Victim_player.displayName, Attack_distance(info));
                                        }
                                        else {
                                            EnableData data;
                                            if (configData.About_name.NPC_name.TryGetValue(Attack_player.ShortPrefabName, out data)) {
                                                if (data.Enable) {
                                                    UPGP(GetNPCEnableState(), "NPCKillPlayer", data.Display_name, Weapon_Name(Attack_player, info), Victim_player.displayName, Attack_distance(info));
                                                }
                                            }
                                            else {
                                                configData.About_name.NPC_name.Add(Attack_player.ShortPrefabName, new EnableData {
                                                    Enable = false, Display_name = Attack_player.ShortPrefabName
                                                }
                                                );
                                                SaveConfig(configData);
                                                Puts($"Added a new ShortPrefabName To be activated..{Attack_player.ShortPrefabName}");
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else {
                            if (victim is BasePlayer) {
                                var Victim_player = victim as BasePlayer;
                                if (Victim_player.userID > 700000000000) {
                                    if(configData.Enable_settings.Enable_Player || configData.Discord_settings.Enable_Player) {
                                        if (Attack_player == victim) {
                                            // Prüfen, ob Suizidnachrichten aktiviert sind, bevor eine Nachricht gesendet wird
                                            if(configData.Enable_settings.Enable_About_Suicide) {
                                                UPGP(BroadcastTo.Both, "PlayerSuicide", Attack_player.displayName);
                                            }
                                        }
                                        else {
                                            UPGP(BroadcastTo.Both, "PlayerKillPlayer", Attack_player.displayName, Weapon_Name(Attack_player, info), Victim_player.displayName, GetBodyName(info), Attack_distance(info));
                                        }
                                    }
                                }
                                else if (configData.Enable_settings.Enable_NPC || configData.Discord_settings.Enable_NPC) {
                                    if (IS_BotSpawn_Name(Victim_player.displayName)) {
                                        UPGP(GetNPCEnableState(), "PlayerKillNPC", Attack_player.displayName, Weapon_Name(Attack_player, info), Victim_player.displayName, GetBodyName(info), Attack_distance(info));
                                    }
                                    else {
                                        EnableData data;
                                        if (configData.About_name.NPC_name.TryGetValue(victim.ShortPrefabName, out data)) {
                                            if (data.Enable) {
                                                UPGP(GetNPCEnableState(), "PlayerKillNPC", Attack_player.displayName, Weapon_Name(Attack_player, info), data.Display_name, GetBodyName(info), Attack_distance(info));
                                            }
                                        }
                                        else {
                                            configData.About_name.NPC_name.Add(victim.ShortPrefabName, new EnableData {
                                                Enable = false, Display_name = victim.ShortPrefabName
                                            }
                                            );
                                            SaveConfig(configData);
                                            Puts($"Added a new ShortPrefabName To be activated..{victim.ShortPrefabName}");
                                        }
                                    }
                                }
                            }
                            else {
                                if (victim is BaseAnimalNPC) {
                                    if (configData.Enable_settings.Enable_Animal || configData.Discord_settings.Enable_Animal) {
                                        EnableData data;
                                        if (configData.About_name.Animal_Name.TryGetValue(victim.ShortPrefabName, out data)) {
                                            if (data.Enable) {
                                                UPGP(GetAnimalEnableState(), "PlayerKillAnimal", Attack_player.displayName, Weapon_Name(Attack_player, info), data.Display_name, Attack_distance(info));
                                            }
                                        }
                                        else {
                                            configData.About_name.Animal_Name.Add(victim.ShortPrefabName, new EnableData {
                                                Enable = false, Display_name = victim.ShortPrefabName
                                            }
                                            );
                                            SaveConfig(configData);
                                            Puts($"Added a new ShortPrefabName To be activated..{victim.ShortPrefabName}");
                                        }
                                    }
                                }
                                else if (victim is BaseHelicopter) {
                                    if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                                        EnableData data;
                                        if (configData.About_name.Entity_Name.TryGetValue(victim.ShortPrefabName, out data)) {
                                            if (data.Enable) {
                                                UPGP(GetEntityEnableState(), "PlayerKillPatrolHelicopter", Attack_player.displayName, Weapon_Name(Attack_player, info), data.Display_name, Attack_distance(info));
                                            }
                                        }
                                        else {
                                            configData.About_name.Entity_Name.Add(victim.ShortPrefabName, new EnableData {
                                                Enable = false, Display_name = victim.ShortPrefabName
                                            }
                                            );
                                            SaveConfig(configData);
                                            Puts($"Added a new ShortPrefabName To be activated..{victim.ShortPrefabName}");
                                        }
                                    }
                                }
                                else if (victim is BradleyAPC) {
                                    if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                                        EnableData data;
                                        if (configData.About_name.Entity_Name.TryGetValue(victim.ShortPrefabName, out data)) {
                                            if (data.Enable) {
                                                UPGP(GetEntityEnableState(), "PlayerKillBradleyapc", Attack_player.displayName, Weapon_Name(Attack_player, info), data.Display_name, Attack_distance(info));
                                            }
                                        }
                                        else {
                                            configData.About_name.Entity_Name.Add(victim.ShortPrefabName, new EnableData {
                                                Enable = false, Display_name = victim.ShortPrefabName
                                            }
                                            );
                                            SaveConfig(configData);
                                            Puts($"Added a new ShortPrefabName To be activated..{victim.ShortPrefabName}");
                                        }
                                    }
                                }
                                else {
                                    if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                                        EnableData data;
                                        if (configData.About_name.Entity_Name.TryGetValue(victim.ShortPrefabName, out data)) {
                                            if (data.Enable) {
                                                UPGP(GetEntityEnableState(), "PlayerKillEntity", Attack_player.displayName, Weapon_Name(Attack_player, info), data.Display_name, Attack_distance(info));
                                                ;
                                            }
                                        }
                                        else {
                                            configData.About_name.Entity_Name.Add(victim.ShortPrefabName, new EnableData {
                                                Enable = false, Display_name = victim.ShortPrefabName
                                            }
                                            );
                                            SaveConfig(configData);
                                            Puts($"Added a new ShortPrefabName To be activated..{victim.ShortPrefabName}");
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else if (victim is BasePlayer) {
                        var Victim_player = victim as BasePlayer;
                        if (Victim_player.userID > 700000000000) {
                            if (Uncertain_attacker is BaseAnimalNPC) {
                                if (configData.Enable_settings.Enable_Animal || configData.Discord_settings.Enable_Animal) {
                                    EnableData data;
                                    if (configData.About_name.Animal_Name.TryGetValue(Uncertain_attacker.ShortPrefabName, out data)) {
                                        if (data.Enable) {
                                            UPGP(GetAnimalEnableState(), "AnimalKillPlayer", data.Display_name, Victim_player.displayName, Attack_distance(info));
                                        }
                                    }
                                    else {
                                        configData.About_name.Animal_Name.Add(Uncertain_attacker.ShortPrefabName, new EnableData {
                                            Enable = false, Display_name = Uncertain_attacker.ShortPrefabName
                                        }
                                        );
                                        SaveConfig(configData);
                                        Puts($"Added a new ShortPrefabName To be activated..{Uncertain_attacker.ShortPrefabName}");
                                    }
                                }
                            }
                            else if (Uncertain_attacker is BaseHelicopter) {
                                if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                                    EnableData data;
                                    if (configData.About_name.Entity_Name.TryGetValue(Uncertain_attacker.ShortPrefabName, out data)) {
                                        if (data.Enable) {
                                            UPGP(GetEntityEnableState(), "PatrolHelicopterKillPlayer", data.Display_name, Victim_player.displayName, Attack_distance(info));
                                        }
                                    }
                                    else {
                                        configData.About_name.Entity_Name.Add(Uncertain_attacker.ShortPrefabName, new EnableData {
                                            Enable = false, Display_name = Uncertain_attacker.ShortPrefabName
                                        }
                                        );
                                        SaveConfig(configData);
                                        Puts($"Added a new ShortPrefabName To be activated..{Uncertain_attacker.ShortPrefabName}");
                                    }
                                }
                            }
                            else if (Uncertain_attacker is BradleyAPC) {
                                if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                                    EnableData data;
                                    if (configData.About_name.Entity_Name.TryGetValue(Uncertain_attacker.ShortPrefabName, out data)) {
                                        if (data.Enable) {
                                            UPGP(GetEntityEnableState(), "BradleyapcKillPlayer", data.Display_name, Victim_player.displayName, Attack_distance(info));
                                        }
                                    }
                                    else {
                                        configData.About_name.Entity_Name.Add(Uncertain_attacker.ShortPrefabName, new EnableData {
                                            Enable = false, Display_name = Uncertain_attacker.ShortPrefabName
                                        }
                                        );
                                        SaveConfig(configData);
                                        Puts($"Added a new ShortPrefabName To be activated..{Uncertain_attacker.ShortPrefabName}");
                                    }
                                }
                            }
                            else {
                                if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                                    EnableData data;
                                    if (configData.About_name.Entity_Name.TryGetValue(Uncertain_attacker.ShortPrefabName, out data)) {
                                        if (data.Enable) {
                                            UPGP(GetEntityEnableState(), "EntityKillPlayer", data.Display_name, Victim_player.displayName, Attack_distance(info));
                                        }
                                    }
                                    else {
                                        configData.About_name.Entity_Name.Add(Uncertain_attacker.ShortPrefabName, new EnableData {
                                            Enable = false, Display_name = Uncertain_attacker.ShortPrefabName
                                        }
                                        );
                                        SaveConfig(configData);
                                        Puts($"Added a new ShortPrefabName To be activated..{Uncertain_attacker.ShortPrefabName}");
                                    }
                                }
                            }
                        }
                    }
                }
                else {
                    if (victim is BaseHelicopter) {
                        if (configData.Enable_settings.Enable_Entity || configData.Discord_settings.Enable_Entity) {
                            EnableData data;
                            if (configData.About_name.Entity_Name.TryGetValue(victim.ShortPrefabName, out data)) {
                                var pl = FindPlayer(Last_attacker);
                                if (pl != null) {
                                    if (data.Enable) {
                                        UPGP(GetEntityEnableState(), "PlayerKillEntity", pl.displayName, Weapon_Name(pl, info), data.Display_name, Attack_distance(info));
                                    }
                                }
                            }
                            else {
                                Puts($"Added a new ShortPrefabName To be activated..{victim.ShortPrefabName}");
                                configData.About_name.Entity_Name.Add(victim.ShortPrefabName, new EnableData {
                                    Enable = false, Display_name = victim.ShortPrefabName
                                }
                                );
                                SaveConfig(configData);
                            }
                        }
                    }
                }
            }
            catch {
            }
        }

// ... [Code preview truncated due to length. Full source in attached file] ...

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