C# ESP assembly-csharp.dll не будет показывать drawbox
Привет, мне нужно немного помочь ему показать дистанцию между мной и другими, но не drawbox или это игрок / бот или / другой игрок фракции.
Окей. я постараюсь объяснить это лучше, моя проблема заключается в том, что я пытаюсь создать ESP и объединить его с assembly-csharp (unity game) и управлять работой, но теперь моя проблема заключается в том, что мой код просто показывает расстояние от игрока, но не формирует их, но у меня есть этот код для рисования ящиков и не понимаю, где моя проблема и как ее исправить.
Я дал выше полностью работающий код, если кто-то может взять мой пример, что я делаю не так... Спасибо.
<pre>using System; using System.Collections.Generic; using System.Linq; using UnityEngine; using EFT; using EFT.Interactive; using System.IO; using System.Runtime.InteropServices; // Released by TheWWorld on UnknowCheats // I think the godmode cause my ban or maybe i was reported for for weird killings namespace Absolutly { public class Abso : MonoBehaviour { public Abso() { } private GameObject GameObjectHolder; private IEnumerable<Player> _playerInfo; private IEnumerable<ExfiltrationPoint> _extractPoints; private float _plyNextUpdateTime; private float _evaNextUpdateTime; protected float _infoUpdateInterval = 5f; // You can reduce this value for fastest update esp but can cause lag private bool _isInfoMenuActive; private bool _showPlayersInfo; private bool _showExtractInfo; private float _maxVueDistance = 600f; // View Distance (you can change it on overlay by pressing F11 and modify the red value) public void Load() { GameObjectHolder = new GameObject(); #pragma warning disable CS0436 // Type conflicts with imported type GameObjectHolder.AddComponent<Abso>(); #pragma warning restore CS0436 // Type conflicts with imported type DontDestroyOnLoad(GameObjectHolder); } public void Unload() { Destroy(GameObjectHolder); Destroy(this); } private void Update() { if (Input.GetKeyDown(KeyCode.F12)) { Unload(); } if (Input.GetKeyDown(KeyCode.F11)) { _isInfoMenuActive = !_isInfoMenuActive; } } private void OnGUI() { if (_isInfoMenuActive) { DrawInfoMenu(); } if (_showPlayersInfo && Time.time >= _plyNextUpdateTime) { _playerInfo = FindObjectsOfType<Player>(); _plyNextUpdateTime = Time.time + _infoUpdateInterval; } if (_showPlayersInfo) { DrawPlayers(); } if (_showExtractInfo && Time.time >= _evaNextUpdateTime) { _extractPoints = FindObjectsOfType<ExfiltrationPoint>(); _evaNextUpdateTime = Time.time + _infoUpdateInterval; } if (_showExtractInfo) { DrawExtractInfo(); } } private void DrawExtractInfo() { try { foreach (var point in _extractPoints) { float distanceToObject = Vector3.Distance(Camera.main.transform.position, point.transform.position); var exfilContainerBoundingVector = new Vector3( Camera.main.WorldToScreenPoint(point.transform.position).x, Camera.main.WorldToScreenPoint(point.transform.position).y, Camera.main.WorldToScreenPoint(point.transform.position).z); if (exfilContainerBoundingVector.z > 0.01) { GUI.color = Color.green; int distance = (int)distanceToObject; String exfilName = point.name; string boxText = $"{exfilName} - {distance}M"; GUI.Label(new Rect(exfilContainerBoundingVector.x - 50f, (float)Screen.height - exfilContainerBoundingVector.y, 100f, 50f), boxText); } } } catch (Exception ex) { File.WriteAllText("evasion.txt", ex.ToString()); } } private void DrawPlayers() { try { foreach (var player in _playerInfo) { float distanceToObject = Vector3.Distance(Camera.main.transform.position, player.Transform.position); var playerBoundingVector = new Vector3( Camera.main.WorldToScreenPoint(player.Transform.position).x, Camera.main.WorldToScreenPoint(player.Transform.position).y, Camera.main.WorldToScreenPoint(player.Transform.position).z); if (distanceToObject <= _maxVueDistance && playerBoundingVector.z > 0.01) { var playerHeadVector = new Vector3( Camera.main.WorldToScreenPoint(player.PlayerBones.Head.position).x, Camera.main.WorldToScreenPoint(player.PlayerBones.Head.position).y, Camera.main.WorldToScreenPoint(player.PlayerBones.Head.position).z); float boxXOffset = Camera.main.WorldToScreenPoint(player.Transform.position).x; float boxYOffset = Camera.main.WorldToScreenPoint(player.PlayerBones.Head.position).y + 10f; float boxHeight = Math.Abs(Camera.main.WorldToScreenPoint(player.PlayerBones.Head.position).y - Camera.main.WorldToScreenPoint(player.Transform.position).y) + 10f; float boxWidth = boxHeight * 0.65f; var playerColor = GetPlayerColor(player.Side); var isAi = player.Profile.Info.RegistrationDate <= 0; var playerName = isAi ? "AI" : player.Profile.Info.Nickname; string playerText = $"[{(int)distanceToObject}m]"; var playerTextVector = GUI.skin.GetStyle(playerText).CalcSize(new GUIContent(playerText)); GUI.Label(new Rect(playerBoundingVector.x - playerTextVector.x / 2f, (float)Screen.height - boxYOffset - 20f, 300f, 50f), playerText); } } } catch (Exception ex) { File.WriteAllText("plyzlog.txt", ex.ToString()); } } private string CurrentWeaponIDtoName(string id) { if (id.Contains("p226")) return "P226R"; else if (id.Contains("mp443")) return "MP443"; else if (id.Contains("aks74")) return "AKS-74"; else if (id.Contains("_mr133_")) return "MR-133"; else if (id.Contains("_mr153_")) return "MR-153"; else if (id.Contains("saiga12")) return "Saig.12"; else if (id.Contains("akm")) return "AKM"; else if (id.Contains("ak74n")) return "AK-7N"; else if (id.Contains("ak74m")) return "AK-7M"; else if (id.Contains("mr43e")) return "MR-43E"; else if (id.Contains("model_870")) return "M870"; else if (id.Contains("mosin")) return "Mosin"; else if (id.Contains("_zarya_")) return "Zarya"; else if (id.Contains("_pb_")) return "PB9x18PM"; else if (id.Contains("_izhmeh_pm_")) return "Makarov"; else if (id.Contains("saiga_9")) return "SaigaPM"; else if (id.Contains("_tt_")) return "TT"; else if (id.Contains("pp-9")) return "pp91"; else if (id.Contains("vepr")) return "VEPR"; else if (id.Contains("glock")) return "Glock"; else if (id.Contains("sks")) return "SKS"; else if (id.Contains("akms")) return "AKMS"; else if (id.Contains("akm_vpo")) return "AKM VPO"; else if (id.Contains("vepr_km")) return "VEPR KM VPO"; else if (id.Contains("mp5")) return "MP5"; else if (id.Contains("mp7a1")) return "MP7"; else if (id.Contains("_mpx_")) return "MPX"; else if (id.Contains("molot_aps")) return "Molot"; else if (id.Contains("m1a")) return "m1a"; else if (id.Contains("sa58")) return "SA58"; else if (id.Contains("ak101")) return "AK101"; else if (id.Contains("ak102")) return "AK102"; else if (id.Contains("ak103")) return "AK103"; else if (id.Contains("ak104")) return "AK104"; else if (id.Contains("ak105")) return "AK105"; else if (id.Contains("m4a1")) return "M4A1"; else if (id.Contains("sv-98")) return "SV-98"; else if (id.Contains("_val_")) return "ASVAL"; else if (id.Contains("_vss_")) return "VSS"; else if (id.Contains("rsass")) return "RSASS"; else if (id.Contains("dvl-10")) return "DVL10"; else return id; } private Color GetPlayerColor(EPlayerSide side) { switch (side) { case EPlayerSide.Bear: return Color.red; case EPlayerSide.Usec: return Color.blue; case EPlayerSide.Savage: return Color.green; default: return Color.white; } } private void DrawInfoMenu() { GUI.color = Color.black; GUI.Box(new Rect(100f, 100f, 190f, 190f), ""); GUI.color = Color.white; GUI.Label(new Rect(180f, 110f, 150f, 20f), "OPCIJE"); _showPlayersInfo = GUI.Toggle(new Rect(110f, 140f, 120f, 20f), _showPlayersInfo, "ESP"); _showExtractInfo = GUI.Toggle(new Rect(110f, 160f, 120f, 20f), _showExtractInfo, "EXFIL"); _maxVueDistance = float.Parse(GUI.TextField(new Rect(110f, 200f, 120f, 20f), _maxVueDistance.ToString(), 10, "DISTANCE")); } private double GetDistance(double x1, double y1, double x2, double y2) { return Math.Sqrt(Math.Pow(x2 - x1, 2.0) + Math.Pow(y2 - y1, 2.0)); } } }
Что я уже пробовал:
Все возможно!
Попробуйте удалить некоторые playerinfo для replice class но 0
есть идеи?
Richard MacCutchan
1. Ваш вопрос далек от ясности.
2. рассказывая нам, что вы испробовали все возможное, вы не оставляете простора для дальнейших предложений.
MRHals Gospodin
Окей. я постараюсь объяснить это лучше, моя проблема заключается в том, что я пытаюсь создать ESP и объединить его с assembly-csharp (unity game) и управлять работой, но теперь моя проблема заключается в том, что мой код просто показывает расстояние от игрока, но не формирует их, но у меня есть этот код для рисования ящиков и не понимаю, где моя проблема и как ее исправить.
Я дал выше полностью работающий код, если кто-то может взять мой пример, что я делаю не так... Спасибо.
Рис.: https://i.imgur.com/JQH8Ibm.png