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

FREE HitMarker : 1.0.8 1.0.8

Нет прав для скачивания
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using Random = System.Random;
using UnityEngine;
using Newtonsoft.Json;
namespace Oxide.Plugins {
    [Info("HitMarker", "Nimant", "1.0.8")]
    class HitMarker : RustPlugin {
        private const string FQESDScddeVSnMtmMZIDHysoQQeud = "hitmarker.allow";
        private const float jmwbJqIfnPFuCLc = 0.1f;
        private const float JjVBsPmxzClQcxfPLGYklXphElAEL = 0.05f;
        private const float MYUzWGsPPPAjW = 0.475f;
        private const float pLfOPAzItAZvENLYHJKa = 0.515f;
        private const float phNZPBUfWkxbAAjjLKoQn = 0.51f;
        private const float YDwaEHcSSTpdfVwEYDWeifdhvyUGUG = 0.54f;
        private const int pbEYgDuukAhQIvKAJEvuwJGRnX = 50;
        [PluginReference]
        private Plugin Friends, Clans;
        private static string pPolAKqdVykL = "<size={size}>УБИТ!</size>";
        private static string YlxbtUWZOSDptMsAzQZcIwi = "<size={size}>УПАЛ!</size>";
        private static string ROTBuIYSvOAADCshJ = "<size={size}>{AMOUNT}</size>";
        private static Random KcmKFTzCpT = new Random();
        private static bool yWVTHCfyjloropSb = false;
        private static HashSet<ulong> YSRTmIWdKsCFqqGACmjvrtldzeAql = new HashSet<ulong>();
        private static Dictionary<ulong, List<KmSRLTezgXWZQtUCPP>> vENIlwkjClONhcjqdvoqcWdykGPsAR = new Dictionary<ulong, List<KmSRLTezgXWZQtUCPP>>();
        private static Dictionary<ulong, Timer> HZNKZzHXexvWyCw = new Dictionary<ulong, Timer>();
        private static Dictionary<ulong, int> PVJZIIMBljwltlPwBUJLvnAtqboXly = new Dictionary<ulong, int>();
        private static Dictionary<ulong, HitTempData> oduSURcrTdLIAiUja = new Dictionary<ulong, HitTempData>();
        private class HitTempData {
            public HitInfo WTErBWOgNxznmhdeuupUlRgzX;
            public float timeSS;
        }
        private class KmSRLTezgXWZQtUCPP {
            public int ZemtfYLMNQppzPcMQ;
            public int pJiukTaQyZuARIIhxWeh;
            public int TjmUvSIAVMUfL;
            public bool uxRKkIhORRANsHqVAzy;
            public bool vMBmipZWyOWJlPfNSwOmGZAwEBjfoe;
            public bool GTAMETsGPzQqHq;
            public bool DbyQbqasvMURhff;
            public ulong EkkDQHJpAFpiEVRGplp;
            public string pWILvPlyaQPDxgEKcPTatabVqkzsOY;
            public double mypvetKcWiGeeaVzcGbmzMRoPSQaz;
            public double nxZkLTVXQQVCxGSBqZb;
            public double BnaDETkqaq;
            public double fCweONHNklRzOARIiwKDzQgC;
            public BasePlayer hKMidlTOFwwrKDeigwKHhQayStaK;
        }
        private void Init() {
            yWVTHCfyjloropSb = false;
            vENIlwkjClONhcjqdvoqcWdykGPsAR.Clear();
            HZNKZzHXexvWyCw.Clear();
            PVJZIIMBljwltlPwBUJLvnAtqboXly.Clear();
            oduSURcrTdLIAiUja.Clear();
            permission.RegisterPermission(FQESDScddeVSnMtmMZIDHysoQQeud, this);
            KczZmGUZKFxFOdESykMiI();
            LoadDefaultMessages();
            XSOTfIcDwGMmwuPKrnKASItRXc();
            if (ZKXvyhGByQjwSbnuAmdUq.xqUCnXSUJxGICyh == null) {
                ZKXvyhGByQjwSbnuAmdUq.xqUCnXSUJxGICyh = true;
                jwICZLLCOLOBtAZK(ZKXvyhGByQjwSbnuAmdUq);
            }
            if (ZKXvyhGByQjwSbnuAmdUq.sMJZnclGAudTXZUpkliIU == null) {
                ZKXvyhGByQjwSbnuAmdUq.sMJZnclGAudTXZUpkliIU = 0.1f;
                jwICZLLCOLOBtAZK(ZKXvyhGByQjwSbnuAmdUq);
            }
            pPolAKqdVykL = pPolAKqdVykL.Replace("{size}", $"{ZKXvyhGByQjwSbnuAmdUq.kDzlpKVVhCZOtLyiXSqilnLHgmPe}");
            YlxbtUWZOSDptMsAzQZcIwi = YlxbtUWZOSDptMsAzQZcIwi.Replace("{size}", $"{ZKXvyhGByQjwSbnuAmdUq.kDzlpKVVhCZOtLyiXSqilnLHgmPe}");
            ROTBuIYSvOAADCshJ = ROTBuIYSvOAADCshJ.Replace("{size}", $"{ZKXvyhGByQjwSbnuAmdUq.kDzlpKVVhCZOtLyiXSqilnLHgmPe}");
        }
        private void OnServerSave() => wmnMznvSdBMsjifLOubXOSvXYub();
        private void Unload() {
            yWVTHCfyjloropSb = true;
            foreach(var xXxDDFeqcfYTYTuVGTklsGYvAD in BasePlayer.activePlayerList.Where(x=> x != null && x.userID.IsSteamId())) if (vENIlwkjClONhcjqdvoqcWdykGPsAR.ContainsKey(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) foreach(var dbuNWhZTsapNvMQoE in vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID]) CuiHelper.DestroyUi(xXxDDFeqcfYTYTuVGTklsGYvAD, dbuNWhZTsapNvMQoE.pWILvPlyaQPDxgEKcPTatabVqkzsOY);
            wmnMznvSdBMsjifLOubXOSvXYub();
        }
        [ChatCommand("hitmarker")]
        private void UKHLUcyxhSdnewiWxcHMYC(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD, string BzYcrLrhhVYbBuBxKF, string[] LbgzPbECnAiYdGwZNVtSCMSwV) {
            if (ZKXvyhGByQjwSbnuAmdUq.KtBLDlYWPkMkDaG && !lXVelXRENKCggSmMohvLIgyxHtp(xXxDDFeqcfYTYTuVGTklsGYvAD, FQESDScddeVSnMtmMZIDHysoQQeud)) {
                SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.NO.PERM"));
                return;
            }
            if (LbgzPbECnAiYdGwZNVtSCMSwV.Length == 0) {
                SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("CMD.HM.HELP"));
                return;
            }
            var TrrQgYXflRZame = LbgzPbECnAiYdGwZNVtSCMSwV[0].ToLower();
            if (TrrQgYXflRZame != "on" && TrrQgYXflRZame != "off") {
                SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, string.Format(qYWsfeIjhPmUOhImNPubC("CMD.HM.UNKNOWN.ARG"), LbgzPbECnAiYdGwZNVtSCMSwV[0]));
                return;
            }
            switch (TrrQgYXflRZame) {
                case "on" : if (ZKXvyhGByQjwSbnuAmdUq.xqUCnXSUJxGICyh == true) {
                    if (!YSRTmIWdKsCFqqGACmjvrtldzeAql.Contains(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.ALREADY.ON"));
                    else {
                        YSRTmIWdKsCFqqGACmjvrtldzeAql.Remove(xXxDDFeqcfYTYTuVGTklsGYvAD.userID);
                        SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.ON"));
                    }
                }
                else {
                    if (YSRTmIWdKsCFqqGACmjvrtldzeAql.Contains(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.ALREADY.ON"));
                    else {
                        YSRTmIWdKsCFqqGACmjvrtldzeAql.Add(xXxDDFeqcfYTYTuVGTklsGYvAD.userID);
                        SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.ON"));
                    }
                }
                break;
                case "off" : if (ZKXvyhGByQjwSbnuAmdUq.xqUCnXSUJxGICyh == true) {
                    if (YSRTmIWdKsCFqqGACmjvrtldzeAql.Contains(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.ALREADY.OFF"));
                    else {
                        YSRTmIWdKsCFqqGACmjvrtldzeAql.Add(xXxDDFeqcfYTYTuVGTklsGYvAD.userID);
                        SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.OFF"));
                    }
                }
                else {
                    if (!YSRTmIWdKsCFqqGACmjvrtldzeAql.Contains(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.ALREADY.OFF"));
                    else {
                        YSRTmIWdKsCFqqGACmjvrtldzeAql.Remove(xXxDDFeqcfYTYTuVGTklsGYvAD.userID);
                        SendReply(xXxDDFeqcfYTYTuVGTklsGYvAD, qYWsfeIjhPmUOhImNPubC("HM.OFF"));
                    }
                }
                break;
            }
        }
        private void OnEntityDeath(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD, HitInfo info) => RjABDyMmlcsl(xXxDDFeqcfYTYTuVGTklsGYvAD, info, true);
        private void OnEntityTakeDamage(BasePlayer hKMidlTOFwwrKDeigwKHhQayStaK, HitInfo WTErBWOgNxznmhdeuupUlRgzX) {
            if (hKMidlTOFwwrKDeigwKHhQayStaK == null || WTErBWOgNxznmhdeuupUlRgzX == null || (!ZKXvyhGByQjwSbnuAmdUq.mijMxoNNKsg && !hKMidlTOFwwrKDeigwKHhQayStaK.UserIDString.IsSteamId())) return;
            if (!oduSURcrTdLIAiUja.ContainsKey(hKMidlTOFwwrKDeigwKHhQayStaK.userID)) oduSURcrTdLIAiUja.Add(hKMidlTOFwwrKDeigwKHhQayStaK.userID, new HitTempData());
            oduSURcrTdLIAiUja[hKMidlTOFwwrKDeigwKHhQayStaK.userID].WTErBWOgNxznmhdeuupUlRgzX = WTErBWOgNxznmhdeuupUlRgzX;
            oduSURcrTdLIAiUja[hKMidlTOFwwrKDeigwKHhQayStaK.userID].timeSS = UnityEngine.Time.realtimeSinceStartup;
        }
        private void OnPlayerHealthChange(BasePlayer hKMidlTOFwwrKDeigwKHhQayStaK, float oldvalue, float newvalue) {
            var wpXwTxHuXKCLpK = oldvalue - newvalue;
            if (hKMidlTOFwwrKDeigwKHhQayStaK == null || wpXwTxHuXKCLpK <= 0f) return;
            if (oduSURcrTdLIAiUja.ContainsKey(hKMidlTOFwwrKDeigwKHhQayStaK.userID) && UnityEngine.Time.realtimeSinceStartup - oduSURcrTdLIAiUja[hKMidlTOFwwrKDeigwKHhQayStaK.userID].timeSS < 0.1f) RjABDyMmlcsl(hKMidlTOFwwrKDeigwKHhQayStaK, oduSURcrTdLIAiUja[hKMidlTOFwwrKDeigwKHhQayStaK.userID].WTErBWOgNxznmhdeuupUlRgzX, false, wpXwTxHuXKCLpK);
        }
        private void RjABDyMmlcsl(BasePlayer hKMidlTOFwwrKDeigwKHhQayStaK, HitInfo WTErBWOgNxznmhdeuupUlRgzX, bool DbyQbqasvMURhff = false, float wpXwTxHuXKCLpK = -1f) {
            if (hKMidlTOFwwrKDeigwKHhQayStaK == null || WTErBWOgNxznmhdeuupUlRgzX == null || (!ZKXvyhGByQjwSbnuAmdUq.mijMxoNNKsg && !hKMidlTOFwwrKDeigwKHhQayStaK.UserIDString.IsSteamId())) return;
            var nuDcCqXRpJNJPuwpZXmenYHUClBnB = WTErBWOgNxznmhdeuupUlRgzX.InitiatorPlayer;
            if (nuDcCqXRpJNJPuwpZXmenYHUClBnB == null || nuDcCqXRpJNJPuwpZXmenYHUClBnB == hKMidlTOFwwrKDeigwKHhQayStaK) return;
            if (ZKXvyhGByQjwSbnuAmdUq.xqUCnXSUJxGICyh == true && YSRTmIWdKsCFqqGACmjvrtldzeAql.Contains(nuDcCqXRpJNJPuwpZXmenYHUClBnB.userID)) return;
            if (ZKXvyhGByQjwSbnuAmdUq.xqUCnXSUJxGICyh == false && !YSRTmIWdKsCFqqGACmjvrtldzeAql.Contains(nuDcCqXRpJNJPuwpZXmenYHUClBnB.userID)) return;
            if (ZKXvyhGByQjwSbnuAmdUq.KtBLDlYWPkMkDaG && !lXVelXRENKCggSmMohvLIgyxHtp(nuDcCqXRpJNJPuwpZXmenYHUClBnB, FQESDScddeVSnMtmMZIDHysoQQeud)) return;
            var rvUYHPHWzP = WTErBWOgNxznmhdeuupUlRgzX.isHeadshot;
            var RFWQCbyFRbrFrzySozq = false;
            if (hKMidlTOFwwrKDeigwKHhQayStaK.UserIDString.IsSteamId()) {
                if (ZKXvyhGByQjwSbnuAmdUq.IttjgRZsHrAORkAUSX) RFWQCbyFRbrFrzySozq = bjiMhgGIkTtGMrwoLHZ(nuDcCqXRpJNJPuwpZXmenYHUClBnB, hKMidlTOFwwrKDeigwKHhQayStaK);
                if (!RFWQCbyFRbrFrzySozq && Friends != null) RFWQCbyFRbrFrzySozq = (Friends?.Call("AreFriends", nuDcCqXRpJNJPuwpZXmenYHUClBnB.userID, hKMidlTOFwwrKDeigwKHhQayStaK.userID) as bool?) ?? false;
                if (!RFWQCbyFRbrFrzySozq && Clans != null) {
                    var VekFgNuDeSSLPPNW = Clans?.Call("GetClanOf", nuDcCqXRpJNJPuwpZXmenYHUClBnB) as string;
                    if (!string.IsNullOrEmpty(VekFgNuDeSSLPPNW)) {
                        var eaIZuOgXdQM = Clans?.Call("GetClanOf", hKMidlTOFwwrKDeigwKHhQayStaK) as string;
                        RFWQCbyFRbrFrzySozq = VekFgNuDeSSLPPNW == eaIZuOgXdQM;
                    }
                }
            }
            wpXwTxHuXKCLpK = wpXwTxHuXKCLpK < 0f ? (float)(Math.Round(olgPFSgEZabwjJtjYQKcgs(WTErBWOgNxznmhdeuupUlRgzX.damageTypes.types), 0, MidpointRounding.AwayFromZero)) : wpXwTxHuXKCLpK;
            eQgBWpgTQv(nuDcCqXRpJNJPuwpZXmenYHUClBnB, hKMidlTOFwwrKDeigwKHhQayStaK, (int)Math.Round(wpXwTxHuXKCLpK), rvUYHPHWzP, RFWQCbyFRbrFrzySozq, DbyQbqasvMURhff);
        }
        private static string OMbnrvSKZGAsucYF(ulong userID) {
            if (!PVJZIIMBljwltlPwBUJLvnAtqboXly.ContainsKey(userID)) PVJZIIMBljwltlPwBUJLvnAtqboXly.Add(userID, pbEYgDuukAhQIvKAJEvuwJGRnX);
            if (PVJZIIMBljwltlPwBUJLvnAtqboXly[userID] >= pbEYgDuukAhQIvKAJEvuwJGRnX) PVJZIIMBljwltlPwBUJLvnAtqboXly[userID] = 0;
            else PVJZIIMBljwltlPwBUJLvnAtqboXly[userID]++;
            return PVJZIIMBljwltlPwBUJLvnAtqboXly[userID].ToString();
        }
        private static float olgPFSgEZabwjJtjYQKcgs(float[] GxFfYcAYiJzEhZGfN) {
            var IqzDRadaczN = 0f;
            for (int i = 0; i < (int)GxFfYcAYiJzEhZGfN.Length;
            i++) {
                float RemVkGINuUTvJawKjzVrwqxSOEScm = GxFfYcAYiJzEhZGfN[i];
                if (!float.IsNaN(RemVkGINuUTvJawKjzVrwqxSOEScm)) {
                    if (!float.IsInfinity(RemVkGINuUTvJawKjzVrwqxSOEScm)) IqzDRadaczN = IqzDRadaczN + RemVkGINuUTvJawKjzVrwqxSOEScm;
                }
            }
            return IqzDRadaczN;
        }
        private static bool bjiMhgGIkTtGMrwoLHZ(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD, BasePlayer GSwFeUOlQSOKEpxo) => xXxDDFeqcfYTYTuVGTklsGYvAD.currentTeam != (long)0 && xXxDDFeqcfYTYTuVGTklsGYvAD.currentTeam == GSwFeUOlQSOKEpxo.currentTeam;
        private bool lXVelXRENKCggSmMohvLIgyxHtp(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD, string GsuOOXCOuuJsfoY) => permission.UserHasPermission(xXxDDFeqcfYTYTuVGTklsGYvAD.UserIDString, GsuOOXCOuuJsfoY);
        private void eQgBWpgTQv(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD, BasePlayer hKMidlTOFwwrKDeigwKHhQayStaK, int wpXwTxHuXKCLpK, bool isHeadshot, bool RFWQCbyFRbrFrzySozq, bool DbyQbqasvMURhff) {
            if (xXxDDFeqcfYTYTuVGTklsGYvAD == null || hKMidlTOFwwrKDeigwKHhQayStaK == null) return;
            if (!vENIlwkjClONhcjqdvoqcWdykGPsAR.ContainsKey(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) vENIlwkjClONhcjqdvoqcWdykGPsAR.Add(xXxDDFeqcfYTYTuVGTklsGYvAD.userID, new List<KmSRLTezgXWZQtUCPP>());
            if (DbyQbqasvMURhff && vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID].Count > 0) vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID].RemoveAt(vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID].Count-1);
            var dbuNWhZTsapNvMQoE = new KmSRLTezgXWZQtUCPP();
            dbuNWhZTsapNvMQoE.ZemtfYLMNQppzPcMQ = 0;
            dbuNWhZTsapNvMQoE.pJiukTaQyZuARIIhxWeh = wpXwTxHuXKCLpK;
            dbuNWhZTsapNvMQoE.TjmUvSIAVMUfL = 0;
            dbuNWhZTsapNvMQoE.uxRKkIhORRANsHqVAzy = isHeadshot;
            dbuNWhZTsapNvMQoE.vMBmipZWyOWJlPfNSwOmGZAwEBjfoe = RFWQCbyFRbrFrzySozq;
            dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq = hKMidlTOFwwrKDeigwKHhQayStaK.IsWounded();
            dbuNWhZTsapNvMQoE.DbyQbqasvMURhff = DbyQbqasvMURhff;
            dbuNWhZTsapNvMQoE.EkkDQHJpAFpiEVRGplp = hKMidlTOFwwrKDeigwKHhQayStaK.userID;
            dbuNWhZTsapNvMQoE.hKMidlTOFwwrKDeigwKHhQayStaK = hKMidlTOFwwrKDeigwKHhQayStaK;
            dbuNWhZTsapNvMQoE.pWILvPlyaQPDxgEKcPTatabVqkzsOY = OMbnrvSKZGAsucYF(xXxDDFeqcfYTYTuVGTklsGYvAD.userID);
            dbuNWhZTsapNvMQoE.mypvetKcWiGeeaVzcGbmzMRoPSQaz = (KcmKFTzCpT.Next((int)Math.Round(MYUzWGsPPPAjW*1000f), (int)Math.Round(pLfOPAzItAZvENLYHJKa*1000f))/1000f);
            dbuNWhZTsapNvMQoE.BnaDETkqaq = dbuNWhZTsapNvMQoE.mypvetKcWiGeeaVzcGbmzMRoPSQaz + jmwbJqIfnPFuCLc;
            dbuNWhZTsapNvMQoE.fCweONHNklRzOARIiwKDzQgC = (KcmKFTzCpT.Next((int)Math.Round((1f-YDwaEHcSSTpdfVwEYDWeifdhvyUGUG)*1000f), (int)Math.Round((1f-phNZPBUfWkxbAAjjLKoQn)*1000f))/1000f);
            dbuNWhZTsapNvMQoE.nxZkLTVXQQVCxGSBqZb = dbuNWhZTsapNvMQoE.fCweONHNklRzOARIiwKDzQgC - JjVBsPmxzClQcxfPLGYklXphElAEL;
            vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID].Add(dbuNWhZTsapNvMQoE);
            if (!HZNKZzHXexvWyCw.ContainsKey(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) HZNKZzHXexvWyCw.Add(xXxDDFeqcfYTYTuVGTklsGYvAD.userID, null);
            if (HZNKZzHXexvWyCw[xXxDDFeqcfYTYTuVGTklsGYvAD.userID] == null) HZNKZzHXexvWyCw[xXxDDFeqcfYTYTuVGTklsGYvAD.userID] = timer.Once(0.1f, ()=> BHsuvsDvmylfxYItMdJo(xXxDDFeqcfYTYTuVGTklsGYvAD));
        }
        private void BHsuvsDvmylfxYItMdJo(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD) {
            if (xXxDDFeqcfYTYTuVGTklsGYvAD == null) return;
            HZNKZzHXexvWyCw[xXxDDFeqcfYTYTuVGTklsGYvAD.userID] = null;
            if (yWVTHCfyjloropSb || !vENIlwkjClONhcjqdvoqcWdykGPsAR.ContainsKey(xXxDDFeqcfYTYTuVGTklsGYvAD.userID)) return;
            var HiOpOlScYHjXcprOOL = vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID].ToList();
            if (HiOpOlScYHjXcprOOL.Count == 0) return;
            ulong EkkDQHJpAFpiEVRGplp = 0;
            var gvvCzMKVYi = new List<KmSRLTezgXWZQtUCPP>();
            foreach(var dbuNWhZTsapNvMQoE in HiOpOlScYHjXcprOOL.Where(x=> x.ZemtfYLMNQppzPcMQ == 0).OrderBy(x=> x.EkkDQHJpAFpiEVRGplp)) {
                if (EkkDQHJpAFpiEVRGplp != dbuNWhZTsapNvMQoE.EkkDQHJpAFpiEVRGplp) {
                    EkkDQHJpAFpiEVRGplp = dbuNWhZTsapNvMQoE.EkkDQHJpAFpiEVRGplp;
                    dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq = !dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq ? dbuNWhZTsapNvMQoE.hKMidlTOFwwrKDeigwKHhQayStaK?.IsWounded() == true : dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq;
                    dbuNWhZTsapNvMQoE.DbyQbqasvMURhff = !dbuNWhZTsapNvMQoE.DbyQbqasvMURhff ? dbuNWhZTsapNvMQoE.hKMidlTOFwwrKDeigwKHhQayStaK?.IsDead() == true : dbuNWhZTsapNvMQoE.DbyQbqasvMURhff;
                    gvvCzMKVYi.Add(dbuNWhZTsapNvMQoE);
                }
                else {
                    gvvCzMKVYi[gvvCzMKVYi.Count - 1].pJiukTaQyZuARIIhxWeh += dbuNWhZTsapNvMQoE.pJiukTaQyZuARIIhxWeh;
                    gvvCzMKVYi[gvvCzMKVYi.Count - 1].uxRKkIhORRANsHqVAzy = false;
                    gvvCzMKVYi[gvvCzMKVYi.Count - 1].GTAMETsGPzQqHq = dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq ? dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq : gvvCzMKVYi[gvvCzMKVYi.Count - 1].GTAMETsGPzQqHq;
                    gvvCzMKVYi[gvvCzMKVYi.Count - 1].GTAMETsGPzQqHq = !gvvCzMKVYi[gvvCzMKVYi.Count - 1].GTAMETsGPzQqHq ? gvvCzMKVYi[gvvCzMKVYi.Count - 1].hKMidlTOFwwrKDeigwKHhQayStaK?.IsWounded() == true : gvvCzMKVYi[gvvCzMKVYi.Count - 1].GTAMETsGPzQqHq;
                    gvvCzMKVYi[gvvCzMKVYi.Count - 1].DbyQbqasvMURhff = dbuNWhZTsapNvMQoE.DbyQbqasvMURhff ? dbuNWhZTsapNvMQoE.DbyQbqasvMURhff : gvvCzMKVYi[gvvCzMKVYi.Count - 1].DbyQbqasvMURhff;
                    gvvCzMKVYi[gvvCzMKVYi.Count - 1].DbyQbqasvMURhff = !gvvCzMKVYi[gvvCzMKVYi.Count - 1].DbyQbqasvMURhff ? gvvCzMKVYi[gvvCzMKVYi.Count - 1].hKMidlTOFwwrKDeigwKHhQayStaK?.IsDead() == true : gvvCzMKVYi[gvvCzMKVYi.Count - 1].DbyQbqasvMURhff;
                }
            }
            gvvCzMKVYi.AddRange(HiOpOlScYHjXcprOOL.Where(x=> x.ZemtfYLMNQppzPcMQ > 0));
            foreach(var dbuNWhZTsapNvMQoE in gvvCzMKVYi) {
                if (dbuNWhZTsapNvMQoE.ZemtfYLMNQppzPcMQ == 1) {
                    if (dbuNWhZTsapNvMQoE.DbyQbqasvMURhff || dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq) {
                        if (dbuNWhZTsapNvMQoE.TjmUvSIAVMUfL < ZKXvyhGByQjwSbnuAmdUq.AtmXIpQrwuCtiwDWDbUS) {
                            dbuNWhZTsapNvMQoE.TjmUvSIAVMUfL += 1;
                            continue;
                        }
                    }
                    else {
                        if (dbuNWhZTsapNvMQoE.TjmUvSIAVMUfL < ZKXvyhGByQjwSbnuAmdUq.gttNQcNEBcWRDWR) {
                            dbuNWhZTsapNvMQoE.TjmUvSIAVMUfL += 1;
                            continue;
                        }
                    }
                    var mhiPfUWrNmJKqcNyNjGRELGsFxltZ = "1723";
                    CuiHelper.DestroyUi(xXxDDFeqcfYTYTuVGTklsGYvAD, dbuNWhZTsapNvMQoE.pWILvPlyaQPDxgEKcPTatabVqkzsOY);
                    dbuNWhZTsapNvMQoE.ZemtfYLMNQppzPcMQ = 2;
                }
                else if (dbuNWhZTsapNvMQoE.ZemtfYLMNQppzPcMQ == 0) {
                    jxSnQeHRYbgSYvaEKBhf(xXxDDFeqcfYTYTuVGTklsGYvAD, dbuNWhZTsapNvMQoE);
                    dbuNWhZTsapNvMQoE.TjmUvSIAVMUfL += 1;
                    dbuNWhZTsapNvMQoE.ZemtfYLMNQppzPcMQ = 1;
                }
            }
            gvvCzMKVYi.RemoveAll(x=> x.ZemtfYLMNQppzPcMQ == 2);
            vENIlwkjClONhcjqdvoqcWdykGPsAR[xXxDDFeqcfYTYTuVGTklsGYvAD.userID] = gvvCzMKVYi;
            if (gvvCzMKVYi.Count == 0) return;
            if (HZNKZzHXexvWyCw[xXxDDFeqcfYTYTuVGTklsGYvAD.userID] == null) HZNKZzHXexvWyCw[xXxDDFeqcfYTYTuVGTklsGYvAD.userID] = timer.Once(0.1f, ()=> BHsuvsDvmylfxYItMdJo(xXxDDFeqcfYTYTuVGTklsGYvAD));
        }
        private void jxSnQeHRYbgSYvaEKBhf(BasePlayer xXxDDFeqcfYTYTuVGTklsGYvAD, KmSRLTezgXWZQtUCPP dbuNWhZTsapNvMQoE) {
            if (xXxDDFeqcfYTYTuVGTklsGYvAD == null) return;
            var RrgMDAkLmABl = "[{\"name\":\"{name}\",\"parent\":\"Hud\",\"fadeOut\":\"{fadeOut}\",\"components\":[{\"type\":\"UnityEngine.UI.Text\",\"text\":\"{text}\",\"font\":\"{font}\"},{\"type\":\"UnityEngine.UI.Outline\",\"color\":\"0 0 0 1\",\"distance\":\"0.3 -0.3\"},{\"type\":\"RectTransform\",\"anchormin\":\"{xmin} {ymin}\",\"anchormax\":\"{xmax} {ymax}\",\"offsetmin\":\"0 0\",\"offsetmax\":\"1 1\"}]}]";
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{name}", dbuNWhZTsapNvMQoE.pWILvPlyaQPDxgEKcPTatabVqkzsOY);
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{xmin}", $"{dbuNWhZTsapNvMQoE.mypvetKcWiGeeaVzcGbmzMRoPSQaz}");
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{xmax}", $"{dbuNWhZTsapNvMQoE.BnaDETkqaq}");
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{ymin}", $"{dbuNWhZTsapNvMQoE.nxZkLTVXQQVCxGSBqZb}");
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{ymax}", $"{dbuNWhZTsapNvMQoE.fCweONHNklRzOARIiwKDzQgC}");
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{font}", $"{ZKXvyhGByQjwSbnuAmdUq.qFCJXIkCunttAsNTwzDJEoZvkuQ}");
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{fadeOut}", $"{ZKXvyhGByQjwSbnuAmdUq.sMJZnclGAudTXZUpkliIU}");
            var HtQcNDpAVUlX = ZKXvyhGByQjwSbnuAmdUq.qSZQyzeLcPQuQiewCIKjnQArZr;
            var lIvWSYRQEDhYFgRij = (ZKXvyhGByQjwSbnuAmdUq.yRbuQBYevRTRKjAJk ? "-" : "") + ROTBuIYSvOAADCshJ.Replace("{AMOUNT}", dbuNWhZTsapNvMQoE.pJiukTaQyZuARIIhxWeh.ToString());
            if (dbuNWhZTsapNvMQoE.vMBmipZWyOWJlPfNSwOmGZAwEBjfoe) {
                HtQcNDpAVUlX = ZKXvyhGByQjwSbnuAmdUq.cAbIFjAlJrrJHal;
                if (dbuNWhZTsapNvMQoE.DbyQbqasvMURhff) lIvWSYRQEDhYFgRij = pPolAKqdVykL;
                else if (dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq) lIvWSYRQEDhYFgRij = YlxbtUWZOSDptMsAzQZcIwi;
            }
            else if (dbuNWhZTsapNvMQoE.DbyQbqasvMURhff) {
                lIvWSYRQEDhYFgRij = pPolAKqdVykL;
                HtQcNDpAVUlX = ZKXvyhGByQjwSbnuAmdUq.SDbXfPLMIkyvZNMrTcoSufgpCjkQTf;
            }
            else if (dbuNWhZTsapNvMQoE.GTAMETsGPzQqHq) {
                lIvWSYRQEDhYFgRij = YlxbtUWZOSDptMsAzQZcIwi;
                HtQcNDpAVUlX = ZKXvyhGByQjwSbnuAmdUq.RcZHoMsURuSKwBPrV;
            }
            else if (dbuNWhZTsapNvMQoE.uxRKkIhORRANsHqVAzy) HtQcNDpAVUlX = ZKXvyhGByQjwSbnuAmdUq.xEESiugkPZKsBMVdyFEGrEWuhJsqD;
            RrgMDAkLmABl = RrgMDAkLmABl.Replace("{text}", $"<color={HtQcNDpAVUlX}>{lIvWSYRQEDhYFgRij}</color>");
            CuiHelper.AddUi(xXxDDFeqcfYTYTuVGTklsGYvAD, RrgMDAkLmABl);
        }
        private void LoadDefaultMessages() {
            lang.RegisterMessages(new Dictionary<string, string> {
                {
                    "CMD.HM.HELP", "ДОСТУПНЫЕ КОМАНДЫ:\n/hitmarker on - включить отображение урона по игрокам.\n/hitmarker off - выключить отображение урона по игрокам."
                }
                , {
                    "HM.ON", "Вы включили отображение урона по игрокам."
                }
                , {
                    "HM.OFF", "Вы выключили отображение урона по игрокам."
                }
                , {
                    "HM.ALREADY.ON", "У вас уже включено отображение урона по игрокам."
                }
                , {
                    "HM.ALREADY.OFF", "У вас уже выключено отображение урона по игрокам."
                }
                , {
                    "CMD.HM.UNKNOWN.ARG", "Неизвестный параметр \"{0}\".\nИспользуйте /hitmarker чтобы посмотреть список доступных команд."
                }
                , {
                    "HM.NO.PERM", "У вас нет прав на эту команду."
                }
            }
            , this);
        }
        private string qYWsfeIjhPmUOhImNPubC(string nQZpQwjmcBoJpfMWfdn, string aZycMyihQopsy = null) => lang.GetMessage(nQZpQwjmcBoJpfMWfdn, this, aZycMyihQopsy);
        private static yauPlNsmRLCQVA ZKXvyhGByQjwSbnuAmdUq;
        private class yauPlNsmRLCQVA {
            [JsonProperty(PropertyName = "Разрешать видеть урон только тем, у кого есть привилегия")]
            public bool KtBLDlYWPkMkDaG;
            [JsonProperty(PropertyName = "Отображать урон по учёным")]
            public bool mijMxoNNKsg;
            [JsonProperty(PropertyName = "Использовать встроенные в игру кланы для подсветки их как друзей")]
            public bool IttjgRZsHrAORkAUSX;
            [JsonProperty(PropertyName = "Отображать урон со знаком минус")]
            public bool yRbuQBYevRTRKjAJk;
            [JsonProperty(PropertyName = "Время отображения текста с величиной урона (в разах, где раз = 0.1 секунда)")]
            public int gttNQcNEBcWRDWR;
            [JsonProperty(PropertyName = "Время отображения текста о убийстве или падении (в разах, где раз = 0.1 секунда)")]
            public int AtmXIpQrwuCtiwDWDbUS;
            [JsonProperty(PropertyName = "Размер текста")]
            public int kDzlpKVVhCZOtLyiXSqilnLHgmPe;
            [JsonProperty(PropertyName = "Шрифт текста")]
            public string qFCJXIkCunttAsNTwzDJEoZvkuQ;
            [JsonProperty(PropertyName = "Цвет текста при попадании в тело")]
            public string qSZQyzeLcPQuQiewCIKjnQArZr;
            [JsonProperty(PropertyName = "Цвет текста при попадании в голову")]
            public string xEESiugkPZKsBMVdyFEGrEWuhJsqD;
            [JsonProperty(PropertyName = "Цвет текста при убийстве противника")]
            public string RcZHoMsURuSKwBPrV;
            [JsonProperty(PropertyName = "Цвет текста при падении противника")]
            public string SDbXfPLMIkyvZNMrTcoSufgpCjkQTf;
            [JsonProperty(PropertyName = "Цвет текста при попадании в друга")]
            public string cAbIFjAlJrrJHal;
            [JsonProperty(PropertyName = "Плавное пропадание текста")]
            public float? sMJZnclGAudTXZUpkliIU;
            [JsonProperty(PropertyName = "Отображение урона включено по умолчанию")]
            public bool? xqUCnXSUJxGICyh;
        }
        private void KczZmGUZKFxFOdESykMiI() => ZKXvyhGByQjwSbnuAmdUq = Config.ReadObject<yauPlNsmRLCQVA>();
        protected override void LoadDefaultConfig() {
            ZKXvyhGByQjwSbnuAmdUq = new yauPlNsmRLCQVA {
                KtBLDlYWPkMkDaG = false, mijMxoNNKsg = true, gttNQcNEBcWRDWR = 4, AtmXIpQrwuCtiwDWDbUS = 12, IttjgRZsHrAORkAUSX = true, yRbuQBYevRTRKjAJk = false, kDzlpKVVhCZOtLyiXSqilnLHgmPe = 14, qFCJXIkCunttAsNTwzDJEoZvkuQ = "robotocondensed-bold.ttf", qSZQyzeLcPQuQiewCIKjnQArZr = "white", xEESiugkPZKsBMVdyFEGrEWuhJsqD = "red", RcZHoMsURuSKwBPrV = "red", SDbXfPLMIkyvZNMrTcoSufgpCjkQTf = "white", cAbIFjAlJrrJHal = "lime", xqUCnXSUJxGICyh = true, sMJZnclGAudTXZUpkliIU = 0.1f
            }
            ;
            jwICZLLCOLOBtAZK(ZKXvyhGByQjwSbnuAmdUq);
            timer.Once(0.1f, ()=> jwICZLLCOLOBtAZK(ZKXvyhGByQjwSbnuAmdUq));
        }
        private void jwICZLLCOLOBtAZK(yauPlNsmRLCQVA tiTilaTtjtxAieYXrpsSA) => Config.WriteObject(tiTilaTtjtxAieYXrpsSA, true);
        private void XSOTfIcDwGMmwuPKrnKASItRXc() => YSRTmIWdKsCFqqGACmjvrtldzeAql = Interface.GetMod().DataFileSystem.ReadObject<HashSet<ulong>>("HitMarkerData");
        private static void wmnMznvSdBMsjifLOubXOSvXYub() => Interface.GetMod().DataFileSystem.WriteObject("HitMarkerData", YSRTmIWdKsCFqqGACmjvrtldzeAql);
    }
}

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