using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using Microsoft.CodeAnalysis; using Mirror; using UnityEngine; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyCompany("ShowPlayerName")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyDescription("Show Player Name - Display all player names with outline")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ShowPlayerName")] [assembly: AssemblyTitle("ShowPlayerName")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace ShowPlayerName { public static class PlayerESP { private static Font _font; private static GUIStyle _name; private static GUIStyle _outline; private static bool _init; private static readonly List _list; private static float _nextRefresh; private static int _lastScene; private static readonly Rect[] _r; static PlayerESP() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) _list = new List(); _r = (Rect[])(object)new Rect[9]; for (int i = 0; i < 9; i++) { _r[i] = default(Rect); } } public static void Draw() { //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) if (!_init) { _init = true; string[] array = new string[5] { "Microsoft YaHei", "SimHei", "SimSun", "Arial Unicode MS", "Arial" }; for (int i = 0; i < array.Length; i++) { try { _font = Font.CreateDynamicFontFromOSFont(array[i], 28); if ((Object)(object)_font != (Object)null) { break; } } catch { } } if ((Object)(object)_font == (Object)null) { _font = GUI.skin.font; } _name = MakeStyle(new Color(0.2f, 0.5f, 1f, 1f)); _outline = MakeStyle(new Color(0f, 0.9f, 0.2f, 1f)); } Scene activeScene = SceneManager.GetActiveScene(); int handle = ((Scene)(ref activeScene)).handle; if (handle != _lastScene) { _lastScene = handle; _list.Clear(); _nextRefresh = 0f; return; } float time = Time.time; if (time >= _nextRefresh) { _nextRefresh = time + 3f; _list.Clear(); NetworkManager singleton = NetworkManager.singleton; CustomNetworkManager val = (CustomNetworkManager)(object)((singleton is CustomNetworkManager) ? singleton : null); if (((val != null) ? val.GamePlayers : null) != null) { foreach (PlayerObjectController gamePlayer in val.GamePlayers) { if ((Object)(object)gamePlayer != (Object)null && Object.op_Implicit((Object)(object)gamePlayer)) { _list.Add(gamePlayer); } } } } Camera main = Camera.main; if ((Object)(object)main == (Object)null) { return; } for (int num = _list.Count - 1; num >= 0; num--) { PlayerObjectController val2 = _list[num]; if ((Object)(object)val2 == (Object)null || !Object.op_Implicit((Object)(object)val2)) { _list.RemoveAt(num); continue; } string playerName; try { playerName = val2.PlayerName; } catch { continue; } if (string.IsNullOrEmpty(playerName)) { continue; } Vector3 val3; try { Vector3 position = ((Component)val2).transform.position; position.y += 2.2f; val3 = main.WorldToScreenPoint(position); if (val3.z <= 0f || val3.z > 200f) { continue; } goto IL_0263; } catch { } continue; IL_0263: float x = val3.x; float num2 = (float)Screen.height - val3.y; if (!(x < -200f) && !(x > (float)(Screen.width + 200)) && !(num2 < -200f) && !(num2 > (float)(Screen.height + 200))) { float num3 = 10f / Mathf.Max(val3.z, 0.1f); int num4 = (int)Mathf.Clamp(28f * num3, 12f, 48f); GUIStyle name = _name; int fontSize = (_outline.fontSize = num4); name.fontSize = fontSize; float num6 = (float)(playerName.Length * num4) * 0.7f + 16f; float num7 = (float)num4 + 14f; float num8 = x - num6 * 0.5f; float num9 = num2 - num7 * 0.5f; float num10 = (float)num4 * 0.1f + 1f; ((Rect)(ref _r[0])).Set(num8 - num10, num9 - num10, num6, num7); ((Rect)(ref _r[1])).Set(num8 + num10, num9 - num10, num6, num7); ((Rect)(ref _r[2])).Set(num8 - num10, num9 + num10, num6, num7); ((Rect)(ref _r[3])).Set(num8 + num10, num9 + num10, num6, num7); ((Rect)(ref _r[4])).Set(num8 - num10, num9, num6, num7); ((Rect)(ref _r[5])).Set(num8 + num10, num9, num6, num7); ((Rect)(ref _r[6])).Set(num8, num9 - num10, num6, num7); ((Rect)(ref _r[7])).Set(num8, num9 + num10, num6, num7); for (int j = 0; j < 8; j++) { GUI.Label(_r[j], playerName, _outline); } ((Rect)(ref _r[8])).Set(num8, num9, num6, num7); GUI.Label(_r[8], playerName, _name); } } } private static GUIStyle MakeStyle(Color c) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown GUIStyle val = new GUIStyle { font = _font, fontSize = 28, fontStyle = (FontStyle)1, alignment = (TextAnchor)4 }; val.normal.textColor = c; val.wordWrap = false; val.clipping = (TextClipping)0; return val; } } [BepInPlugin("com.showplayername.mod", "ShowPlayerName", "1.0.0")] public class Plugin : BaseUnityPlugin { private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"ShowPlayerName loaded"); } private void OnGUI() { PlayerESP.Draw(); } } }