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] ...