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);
}
}