From 8bbdbd7027de61c8e1bd8f9c3d2c5e8506bd740c Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Sun, 8 Jan 2023 21:53:11 +0100 Subject: [PATCH] crash fixed for localplayer --- DevourClient/Helpers/StateHelper.cs | 25 ++++++++++++++----------- DevourClient/MelonMain.cs | 17 ++++++++++++++--- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/DevourClient/Helpers/StateHelper.cs b/DevourClient/Helpers/StateHelper.cs index 6092bd3..76e329b 100644 --- a/DevourClient/Helpers/StateHelper.cs +++ b/DevourClient/Helpers/StateHelper.cs @@ -6,6 +6,12 @@ using MelonLoader; namespace DevourClient.Helpers { + public class BasePlayer + { + public GameObject p_GameObject { get; set; } = default!; + public string Name { get; set; } = default!; + public string Id { get; set; } = default!; + } public class Player { public static bool IsInGame() @@ -47,17 +53,12 @@ namespace DevourClient.Helpers } } - public class BasePlayer - { - public GameObject p_GameObject = default!; - public string Name = default!; - public string Id = default!; - } - + public class Entities { - public static BasePlayer LocalPlayer_ = default!; - public static BasePlayer[] Players = default!; + public static BasePlayer LocalPlayer_ = new BasePlayer(); + //public static BasePlayer[] Players = new BasePlayer[4]; + public static GameObject[] Players = default!; public static Il2Cpp.GoatBehaviour[] GoatsAndRats = default!; public static Il2Cpp.SurvivalInteractable[] SurvivalInteractables = default!; public static Il2Cpp.KeyBehaviour[] Keys = default!; @@ -90,6 +91,8 @@ namespace DevourClient.Helpers { for (;;) { + Players = GameObject.FindGameObjectsWithTag("Player"); + /* int i = 0; foreach (GameObject p in GameObject.FindGameObjectsWithTag("Player")) { @@ -99,7 +102,6 @@ namespace DevourClient.Helpers Il2Cpp.DissonancePlayerTracking dpt = p.gameObject.GetComponent(); if (dpt != null) { - MelonLogger.Msg(dpt.state.PlayerName + " | " + dpt.state.PlayerId.ToString()); player_name = dpt.state.PlayerName; player_id = dpt.state.PlayerId; } @@ -108,8 +110,9 @@ namespace DevourClient.Helpers Players[i].Name = player_name; Players[i].p_GameObject = p; - i++; + i++; } + */ // Wait 5 seconds before caching objects again. yield return new WaitForSeconds(5f); diff --git a/DevourClient/MelonMain.cs b/DevourClient/MelonMain.cs index dec1c3e..240631c 100644 --- a/DevourClient/MelonMain.cs +++ b/DevourClient/MelonMain.cs @@ -155,9 +155,9 @@ namespace DevourClient { if (this.player_esp || this.player_snapline) { - foreach (BasePlayer Bplayer in Helpers.Entities.Players) + foreach (GameObject player in Helpers.Entities.Players) { - GameObject player = Bplayer.p_GameObject; + //GameObject player = Bplayer.p_GameObject; if (player != null) { @@ -632,7 +632,18 @@ namespace DevourClient if (Helpers.Map.GetActiveScene() != "") { GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 400, 200, 30), $"Functions for the map: {Helpers.Map.GetMapName(Helpers.Map.GetActiveScene())}"); - + /* + if (Helpers.Map.GetActiveScene() != "Menu") + { + GUI.Label(new Rect(Settings.Settings.x + 580, Settings.Settings.y + 400, 150, 30), "Player list:"); + int i = 0; + foreach (BasePlayer bp in Entities.Players) + { + GUI.Label(new Rect(Settings.Settings.x + 580, Settings.Settings.y + 430 + i, 150, 30), bp.Name); + i += 30; + } + } + */ switch (Helpers.Map.GetActiveScene()) { case "Menu":