From b3987980e610c00bc18e9672bff9d800572faf45 Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Mon, 6 Mar 2023 19:17:51 +0100 Subject: [PATCH] added azazel/player skeleton ESP --- DevourClient/Hacks/Misc.cs | 31 +++++++++++++++++++++++++++++ DevourClient/Helpers/Render.cs | 36 +++++++++++++++++++++++++++++++--- DevourClient/MelonMain.cs | 34 ++++++++++++++++++++++---------- 3 files changed, 88 insertions(+), 13 deletions(-) diff --git a/DevourClient/Hacks/Misc.cs b/DevourClient/Hacks/Misc.cs index 4c98285..5ce54de 100644 --- a/DevourClient/Hacks/Misc.cs +++ b/DevourClient/Hacks/Misc.cs @@ -214,6 +214,37 @@ namespace DevourClient.Hacks } + public static List GetAllBones(Animator a) + { + List Bones = new List + { + a.GetBoneTransform(HumanBodyBones.Head), // 0 + a.GetBoneTransform(HumanBodyBones.Neck), // 1 + a.GetBoneTransform(HumanBodyBones.Spine), // 2 + a.GetBoneTransform(HumanBodyBones.Hips), // 3 + + a.GetBoneTransform(HumanBodyBones.LeftShoulder), // 4 + a.GetBoneTransform(HumanBodyBones.LeftUpperArm), // 5 + a.GetBoneTransform(HumanBodyBones.LeftLowerArm), // 6 + a.GetBoneTransform(HumanBodyBones.LeftHand), // 7 + + a.GetBoneTransform(HumanBodyBones.RightShoulder), // 8 + a.GetBoneTransform(HumanBodyBones.RightUpperArm), // 9 + a.GetBoneTransform(HumanBodyBones.RightLowerArm), // 10 + a.GetBoneTransform(HumanBodyBones.RightHand), // 11 + + a.GetBoneTransform(HumanBodyBones.LeftUpperLeg), // 12 + a.GetBoneTransform(HumanBodyBones.LeftLowerLeg), // 13 + a.GetBoneTransform(HumanBodyBones.LeftFoot), // 14 + + a.GetBoneTransform(HumanBodyBones.RightUpperLeg), // 15 + a.GetBoneTransform(HumanBodyBones.RightLowerLeg), // 16 + a.GetBoneTransform(HumanBodyBones.RightFoot) // 17 + }; + + return Bones; + } + public static void Fullbright(bool reset) { Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();//UnityEngine.Object.FindObjectOfType(); diff --git a/DevourClient/Helpers/Render.cs b/DevourClient/Helpers/Render.cs index 612f213..114c9cf 100644 --- a/DevourClient/Helpers/Render.cs +++ b/DevourClient/Helpers/Render.cs @@ -61,10 +61,40 @@ namespace DevourClient.Render GUI.color = Color.white; } } - - public static void RectFilled(float x, float y, float width, float height, Texture2D text) + public static void DrawBones(Transform bone1, Transform bone2, Color c) { - GUI.DrawTexture(new Rect(x, y, width, height), text); + Vector3 w1 = Camera.main.WorldToScreenPoint(bone1.position); + Vector3 w2 = Camera.main.WorldToScreenPoint(bone2.position); + + if (w1.z > 0.0f && w2.z > 0.0f) + { + DrawLine(new Vector2(w1.x, Screen.height - w1.y), new Vector2(w2.x, Screen.height - w2.y), c, 2f); + } + } + + public static void DrawAllBones(List b, Color c) + { + DrawBones(b[0], b[1], c); + DrawBones(b[1], b[2], c); + DrawBones(b[2], b[3], c); + + DrawBones(b[1], b[4], c); + DrawBones(b[4], b[5], c); + DrawBones(b[5], b[6], c); + DrawBones(b[6], b[7], c); + + DrawBones(b[1], b[8], c); + DrawBones(b[8], b[9], c); + DrawBones(b[9], b[10], c); + DrawBones(b[10], b[11], c); + + DrawBones(b[3], b[12], c); + DrawBones(b[12], b[13], c); + DrawBones(b[13], b[14], c); + + DrawBones(b[3], b[15], c); + DrawBones(b[15], b[16], c); + DrawBones(b[16], b[17], c); } static void DrawBox(float x, float y, float w, float h, Color color, float thickness) diff --git a/DevourClient/MelonMain.cs b/DevourClient/MelonMain.cs index f228adc..522f2b6 100644 --- a/DevourClient/MelonMain.cs +++ b/DevourClient/MelonMain.cs @@ -46,8 +46,10 @@ namespace DevourClient public static float exp = 1000f; public static bool _walkInLobby = false; static bool player_esp = false; + static bool player_skel_esp = false; static bool player_snapline = false; static bool azazel_esp = false; + static bool azazel_skel_esp = false; static bool azazel_snapline = false; static bool spam_message = false; static bool item_esp = false; @@ -180,7 +182,7 @@ namespace DevourClient //from https://www.unknowncheats.me/forum/unity/437277-mono-internal-optimisation-tips.html if (UnityEngine.Event.current.type == EventType.Repaint) { - if (player_esp || player_snapline) + if (player_esp || player_snapline || player_skel_esp) { foreach (Helpers.BasePlayer p in Helpers.Entities.Players) { @@ -192,12 +194,17 @@ namespace DevourClient GameObject player = p.p_GameObject; if (player != null) { - - if (player.GetComponent().entity.IsOwner) + Il2Cpp.NolanBehaviour nb = player.GetComponent(); + if (nb.entity.IsOwner) { continue; } + if (player_skel_esp) + { + Render.Render.DrawAllBones(Hacks.Misc.GetAllBones(nb.animator), Settings.Settings.azazel_esp_color); + } + Render.Render.DrawBoxESP(player, -0.25f, 1.75f, p.Name, Settings.Settings.player_esp_color, player_snapline, player_esp); } } @@ -260,12 +267,17 @@ namespace DevourClient } } - if (azazel_esp || azazel_snapline) + if (azazel_esp || azazel_snapline || azazel_skel_esp) { foreach (Il2Cpp.SurvivalAzazelBehaviour survivalAzazel in Helpers.Entities.Azazels) { if (survivalAzazel != null) { + if (azazel_skel_esp) + { + Render.Render.DrawAllBones(Hacks.Misc.GetAllBones(survivalAzazel.animator), Settings.Settings.azazel_esp_color); + } + Render.Render.DrawBoxESP(survivalAzazel.gameObject, -0.25f, 2.0f, "Azazel", Settings.Settings.azazel_esp_color, azazel_snapline, azazel_esp); } } @@ -662,14 +674,16 @@ namespace DevourClient private static void EspTab() { player_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 20), player_esp, "Player ESP"); - player_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 150, 20), player_snapline, "Player Snapline"); + player_skel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 150, 20), player_skel_esp, "Skeleton ESP"); + player_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 130, 150, 20), player_snapline, "Player Snapline"); - azazel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 140, 150, 20), azazel_esp, "Azazel ESP"); - azazel_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 170, 150, 20), azazel_snapline, "Azazel Snapline"); + azazel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 170, 150, 20), azazel_esp, "Azazel ESP"); + azazel_skel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 200, 150, 20), azazel_skel_esp, "Skeleton ESP"); + azazel_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 230, 150, 20), azazel_snapline, "Azazel Snapline"); - item_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 210, 150, 20), item_esp, "Item ESP"); - goat_rat_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 240, 150, 20), goat_rat_esp, "Goat/Rat ESP"); - demon_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 270, 150, 20), demon_esp, "Demon ESP"); + item_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 270, 150, 20), item_esp, "Item ESP"); + goat_rat_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 300, 150, 20), goat_rat_esp, "Goat/Rat ESP"); + demon_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 330, 150, 20), demon_esp, "Demon ESP"); } private static void ItemsTab()