add: features and fixes for the new map (Manor)
This commit is contained in:
@@ -3,6 +3,7 @@ using MelonLoader;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Il2CppPhoton.Bolt;
|
using Il2CppPhoton.Bolt;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using Il2Cpp;
|
||||||
|
|
||||||
namespace DevourClient
|
namespace DevourClient
|
||||||
{
|
{
|
||||||
@@ -59,6 +60,7 @@ namespace DevourClient
|
|||||||
static bool need_fly_reset = false;
|
static bool need_fly_reset = false;
|
||||||
static bool crosshair = false;
|
static bool crosshair = false;
|
||||||
static bool in_game_cache = false;
|
static bool in_game_cache = false;
|
||||||
|
static bool should_show_start_message = true;
|
||||||
static Texture2D crosshairTexture = default!;
|
static Texture2D crosshairTexture = default!;
|
||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
@@ -79,6 +81,8 @@ namespace DevourClient
|
|||||||
MelonCoroutines.Start(Helpers.Entities.GetGhosts());
|
MelonCoroutines.Start(Helpers.Entities.GetGhosts());
|
||||||
MelonCoroutines.Start(Helpers.Entities.GetBoars());
|
MelonCoroutines.Start(Helpers.Entities.GetBoars());
|
||||||
MelonCoroutines.Start(Helpers.Entities.GetCorpses());
|
MelonCoroutines.Start(Helpers.Entities.GetCorpses());
|
||||||
|
MelonCoroutines.Start(Helpers.Entities.GetCrows());
|
||||||
|
MelonCoroutines.Start(Helpers.Entities.GetLumps());
|
||||||
MelonCoroutines.Start(Helpers.Entities.GetAzazels());
|
MelonCoroutines.Start(Helpers.Entities.GetAzazels());
|
||||||
MelonCoroutines.Start(Helpers.Entities.GetAllPlayers());
|
MelonCoroutines.Start(Helpers.Entities.GetAllPlayers());
|
||||||
}
|
}
|
||||||
@@ -222,6 +226,12 @@ namespace DevourClient
|
|||||||
|
|
||||||
public void OnGUI()
|
public void OnGUI()
|
||||||
{
|
{
|
||||||
|
if (should_show_start_message)
|
||||||
|
{
|
||||||
|
if (DevourClient.Hacks.Misc.ShowMessageBox("Welcome to DevourClient.\n\nPress the INS key to open the menu.") == 0)
|
||||||
|
should_show_start_message = false;
|
||||||
|
}
|
||||||
|
|
||||||
GUI.backgroundColor = Color.grey;
|
GUI.backgroundColor = Color.grey;
|
||||||
|
|
||||||
GUI.skin.button.normal.background = GUIHelper.MakeTex(2, 2, Color.black);
|
GUI.skin.button.normal.background = GUIHelper.MakeTex(2, 2, Color.black);
|
||||||
@@ -334,6 +344,22 @@ namespace DevourClient
|
|||||||
Render.Render.DrawNameESP(corpse.transform.position, "Corpse", new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
Render.Render.DrawNameESP(corpse.transform.position, "Corpse", new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.CrowBehaviour crow in Helpers.Entities.Crows)
|
||||||
|
{
|
||||||
|
if (crow != null)
|
||||||
|
{
|
||||||
|
Render.Render.DrawNameESP(crow.transform.position, "Crow", new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.ManorLumpController lump in Helpers.Entities.Lumps)
|
||||||
|
{
|
||||||
|
if (lump != null)
|
||||||
|
{
|
||||||
|
Render.Render.DrawNameESP(lump.transform.position, "Lump", new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (azazel_esp || azazel_snapline || azazel_skel_esp)
|
if (azazel_esp || azazel_snapline || azazel_skel_esp)
|
||||||
@@ -517,6 +543,11 @@ namespace DevourClient
|
|||||||
BoltNetwork.Instantiate(BoltPrefabs.AzazelNathan, Player.GetPlayer().transform.position, Quaternion.identity);
|
BoltNetwork.Instantiate(BoltPrefabs.AzazelNathan, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 360, Settings.Settings.y + 180, 60, 25), "April") && Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AzazelApril, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
// demon
|
// demon
|
||||||
|
|
||||||
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 220, 60, 25), "Ghost") && Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 220, 60, 25), "Ghost") && Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
@@ -544,6 +575,16 @@ namespace DevourClient
|
|||||||
BoltNetwork.Instantiate(BoltPrefabs.Corpse, Player.GetPlayer().transform.position, Quaternion.identity);
|
BoltNetwork.Instantiate(BoltPrefabs.Corpse, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 360, Settings.Settings.y + 220, 60, 25), "Crow") && BoltNetwork.IsServer && Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Crow, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 430, Settings.Settings.y + 220, 60, 25), "Lump") && BoltNetwork.IsServer && Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.ManorLump, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
// Animal
|
// Animal
|
||||||
|
|
||||||
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 260, 60, 25), "Rat"))
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 260, 60, 25), "Rat"))
|
||||||
@@ -588,7 +629,7 @@ namespace DevourClient
|
|||||||
{
|
{
|
||||||
Hacks.Misc.CarryObject("SurvivalPig");
|
Hacks.Misc.CarryObject("SurvivalPig");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void MapSpecificTab()
|
private static void MapSpecificTab()
|
||||||
@@ -731,6 +772,94 @@ namespace DevourClient
|
|||||||
Hacks.Misc.DespawnCorpses();
|
Hacks.Misc.DespawnCorpses();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "Manor":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = Player.GetPlayer();
|
||||||
|
|
||||||
|
nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Despawn Crows"))
|
||||||
|
{
|
||||||
|
Hacks.Misc.DespawnCrows();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), "Despawn Lumps"))
|
||||||
|
{
|
||||||
|
Hacks.Misc.DespawnLumps();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 70, 150, 30), "Switch realm"))
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = Player.GetPlayer();
|
||||||
|
Vector3 pos = nb.transform.position;
|
||||||
|
|
||||||
|
ManorDeadRealmTrigger realm = Il2Cpp.ManorDeadRealmTrigger.FindObjectOfType<Il2Cpp.ManorDeadRealmTrigger>();
|
||||||
|
if (realm == null)
|
||||||
|
{
|
||||||
|
MelonLogger.Warning("realm was null.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (realm.IsInDeadRealm)
|
||||||
|
{
|
||||||
|
// normal dimension
|
||||||
|
pos.x += 150f;// -10.216758f;
|
||||||
|
//pos.y = 0.009999979f;
|
||||||
|
//pos.z = -7.632657f;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// other dimension
|
||||||
|
pos.x -= 150f;//-160.03688f;
|
||||||
|
//pos.y = 0.010014875f;
|
||||||
|
//pos.z = -7.5686994f;
|
||||||
|
}
|
||||||
|
|
||||||
|
nb.locomotion.SetPosition(pos, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 110, 150, 30), "Switch realm (house)"))
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = Player.GetPlayer();
|
||||||
|
Vector3 pos = nb.transform.position;
|
||||||
|
|
||||||
|
ManorDeadRealmTrigger realm = Il2Cpp.ManorDeadRealmTrigger.FindObjectOfType<Il2Cpp.ManorDeadRealmTrigger>();
|
||||||
|
if (realm == null)
|
||||||
|
{
|
||||||
|
MelonLogger.Warning("realm was null.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (realm.IsInDeadRealm)
|
||||||
|
{
|
||||||
|
// normal dimension
|
||||||
|
pos.x = -10.216758f;
|
||||||
|
pos.y = 0.009999979f;
|
||||||
|
pos.z = -7.632657f;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// other dimension
|
||||||
|
pos.x = -160.03688f;
|
||||||
|
pos.y = 0.010014875f;
|
||||||
|
pos.z = -7.5686994f;
|
||||||
|
}
|
||||||
|
|
||||||
|
nb.locomotion.SetPosition(pos, false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// load map
|
// load map
|
||||||
@@ -760,6 +889,12 @@ namespace DevourClient
|
|||||||
{
|
{
|
||||||
Helpers.Map.LoadMap("Slaughterhouse");
|
Helpers.Map.LoadMap("Slaughterhouse");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 560, Settings.Settings.y + 240, 100, 30), "Manor") && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Helpers.Map.LoadMap("Manor");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void EspTab()
|
private static void EspTab()
|
||||||
@@ -916,13 +1051,36 @@ namespace DevourClient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("Shovel"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalSpade, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Hacks.Misc.CarryObject("SurvivalSpade");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("Cake"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCake, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Hacks.Misc.CarryObject("SurvivalCake");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GUILayout.EndScrollView();
|
GUILayout.EndScrollView();
|
||||||
GUILayout.EndVertical();
|
GUILayout.EndVertical();
|
||||||
|
|
||||||
GUILayout.BeginVertical();
|
GUILayout.BeginVertical();
|
||||||
|
|
||||||
GUILayout.Label("Rituel Objects");
|
GUILayout.Label("Ritual Objects");
|
||||||
|
|
||||||
Settings.Settings.rituelObjectsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.rituelObjectsScrollPosition, GUILayout.Width(220), GUILayout.Height(190));
|
Settings.Settings.rituelObjectsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.rituelObjectsScrollPosition, GUILayout.Width(220), GUILayout.Height(190));
|
||||||
|
|
||||||
@@ -987,6 +1145,30 @@ namespace DevourClient
|
|||||||
Hacks.Misc.CarryObject("RitualBook-Active-1");
|
Hacks.Misc.CarryObject("RitualBook-Active-1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("Dirty head"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalHead, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Hacks.Misc.CarryObject("SurvivalHead");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("Clean head"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCleanHead, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Hacks.Misc.CarryObject("SurvivalCleanHead");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GUILayout.EndScrollView();
|
GUILayout.EndScrollView();
|
||||||
GUILayout.EndVertical();
|
GUILayout.EndVertical();
|
||||||
@@ -1183,6 +1365,22 @@ namespace DevourClient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("SurvivalApril"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalApril, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("SurvivalFrank"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalFrank, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (GUILayout.Button("SurvivalRose"))
|
if (GUILayout.Button("SurvivalRose"))
|
||||||
{
|
{
|
||||||
if (BoltNetwork.IsServer)
|
if (BoltNetwork.IsServer)
|
||||||
@@ -1247,6 +1445,14 @@ namespace DevourClient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("Miror"))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.ManorMirror, Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GUILayout.EndScrollView();
|
GUILayout.EndScrollView();
|
||||||
GUILayout.EndVertical();
|
GUILayout.EndVertical();
|
||||||
GUILayout.EndHorizontal();
|
GUILayout.EndHorizontal();
|
||||||
|
|||||||
@@ -99,7 +99,24 @@ namespace DevourClient.Hacks
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
case "Manor":
|
||||||
|
Il2Cpp.MapController mapc = UnityEngine.Object.FindObjectOfType<Il2Cpp.MapController>();
|
||||||
|
if (!mapc)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (burnAll)
|
||||||
|
{
|
||||||
|
mapc.SetProgressTo(10);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mapc.SetProgressTo(mapc.GetMapProgress() + 1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
Il2Cpp.SurvivalObjectBurnController _altar = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalObjectBurnController>();
|
Il2Cpp.SurvivalObjectBurnController _altar = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalObjectBurnController>();
|
||||||
if (!_altar) {
|
if (!_altar) {
|
||||||
return;
|
return;
|
||||||
@@ -432,11 +449,36 @@ namespace DevourClient.Hacks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ShowMessageBox(string message)
|
public static void DespawnCrows()
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.CrowBehaviour crow in Helpers.Entities.Crows)
|
||||||
|
{
|
||||||
|
if (crow != null)
|
||||||
|
{
|
||||||
|
crow.Despawn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DespawnLumps()
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.ManorLumpController lump in Helpers.Entities.Lumps)
|
||||||
|
{
|
||||||
|
if (lump != null)
|
||||||
|
{
|
||||||
|
lump.Dissolve();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ShowMessageBox(string message)
|
||||||
{
|
{
|
||||||
//not used, might be useful, some day
|
//not used, might be useful, some day
|
||||||
Il2CppHorror.Menu menu = UnityEngine.Object.FindObjectOfType<Il2CppHorror.Menu>();
|
Il2CppHorror.Menu menu = UnityEngine.Object.FindObjectOfType<Il2CppHorror.Menu>();
|
||||||
|
if (menu == null)
|
||||||
|
return 1;
|
||||||
menu.ShowMessageModal(message);
|
menu.ShowMessageModal(message);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void PlaySound()
|
public static void PlaySound()
|
||||||
|
|||||||
@@ -1,17 +1,30 @@
|
|||||||
namespace DevourClient.Hacks
|
using Il2CppSteamworks;
|
||||||
|
|
||||||
|
namespace DevourClient.Hacks
|
||||||
{
|
{
|
||||||
public class Unlock
|
public class Unlock
|
||||||
{
|
{
|
||||||
public static void Achievements()
|
public static void Achievements()
|
||||||
{
|
{
|
||||||
Il2Cpp.AchievementHelpers ah = UnityEngine.Object.FindObjectOfType<Il2Cpp.AchievementHelpers>();
|
//Il2Cpp.AchievementHelpers ah = UnityEngine.Object.FindObjectOfType<Il2Cpp.AchievementHelpers>();
|
||||||
|
|
||||||
string[] achievements = {"ACH_ALL_CLIPBOARDS_READ", "ACH_ALL_NOTES_READ", "ACH_UNLOCKED_CAGE", "ACH_UNLOCKED_ATTIC_CAGE", "ACH_CALMED_ANNA", "ACH_FRIED_RAT", "ACH_BURNT_GOAT", "ACH_KNOCKED_OUT_BY_ANNA", "ACH_KNOCKOUT_OUT_BY_DEMON", "ACH_KNOCKED_OUT_IN_HIDING", "STAT_NUM_BLEACH_USED", "ACH_WON_SP", "ACH_WIN_NIGHTMARE", "ACH_WON_HARD_SP", "ACH_WON_COOP", "ACH_WON_HARD", "ACH_WIN_NIGHTMARE_SP", "ACH_LOST", "ACH_NEVER_KNOCKED_OUT", "ACH_ONLY_ONE_KNOCKED_OUT", "ACH_WON_HARD_NO_MEDKITS", "ACH_WON_NO_MEDKITS", "ACH_WON_NO_BATTERIES", "ACH_WON_NIGHTMARE_NO_MEDKITS", "ACH_WON_NO_KNOCKOUT_COOP", "ACH_WON_HARD_NO_BATTERIES", "ACH_WON_HARD_{0}", "ACH_WON_NIGHTMARE_{0}", "ACH_WON_NIGHTMARE_NO_BATTERIES", "ACH_SURVIVED_TO_7_GOATS", "ACH_SURVIVED_TO_5_GOATS", "ACH_SURVIVED_TO_3_GOATS", "ACH_WON_Manor_NIGHTMARE_SP", "ACH_WON_NIGHTMARE_", "ACH_WON_MANOR_NIGHTMARE_SP", "ACH_WON_TOWN_HARD", "ACH_WON_INN_HARD_SP", "ACH_ALL_FEATHERS", "ACH_WON_SLAUGHTERHOUSE_COOP", "ACH_ALL_BARBED_WIRES", "ACH_WON_INN_HARD", "ACH_WON_MOLLY_HARD", "ACH_ALL_HORSESHOES", "ACH_WON_MOLLY_HARD_SP", "ACH_WON_TOWN_NIGHTMARE_SP", "ACH_100_GASOLINE_USED", "ACH_WON_INN_SP", "ACH_WON_MANOR_HARD_SP", "ACH_WON_MOLLY_SP", "ACH_1000_PIGS_DESTROYED", "ACH_1000_MIRRORS_DESTROYED", "ACH_100_EGGS_DESTROYED", "ACH_WON_SLAUGHTERHOUSE_HARD_SP", "ACH_WON_TOWN_COOP", "ACH_100_FUSES_USED", "ACH_WON_MOLLY_COOP", "ACH_WON_MOLLY_NIGHTMARE_SP", "ACH_1000_BOOKS_DESTROYED", "ACH_ALL_PATCHES", "ACH_WON_SLAUGHTERHOUSE_SP", "ACH_WON_TOWN_NIGHTMARE", "ACH_WON_INN_COOP", "ACH_ALL_CHERRY_BLOSSOM", "ACH_WON_TOWN_HARD_SP", "ACH_WON_MOLLY_NIGHTMARE", "ACH_WON_INN_NIGHTMARE_SP", "ACH_ALL_ROSES", "ACH_WON_TOWN_SP", "ACH_WON_SLAUGHTERHOUSE_NIGHTMARE_SP", "ACH_WON_INN_NIGHTMARE", "ACH_WON_MANOR_COOP", "ACH_WON_SLAUGHTERHOUSE_HARD", "ACH_WON_SLAUGHTERHOUSE_NIGHTMARE", "ACH_WON_MANOR_HARD", "ACH_WON_MANOR_NIGHTMARE", "ACH_WON_MANOR_SP", };
|
|
||||||
|
|
||||||
|
string[] achievements = { "ACH_WON_Manor_NIGHTMARE_SP", "ACH_WON_NIGHTMARE_", "ACH_WON_TOWN_HARD", "ACH_WON_MANOR_NIGHTMARE_SP", "ACH_WON_INN_HARD_SP", "ACH_WON_SLAUGHTERHOUSE_COOP", "ACH_ALL_FEATHERS", "ACH_WON_INN_HARD", "ACH_ALL_BARBED_WIRES", "ACH_ALL_HORSESHOES", "ACH_WON_MOLLY_HARD", "ACH_WON_TOWN_NIGHTMARE_SP", "ACH_WON_MOLLY_HARD_SP", "ACH_WON_INN_SP", "ACH_100_GASOLINE_USED", "ACH_WON_MANOR_HARD_SP", "ACH_WON_MOLLY_SP", "ACH_100_EGGS_DESTROYED", "ACH_1000_PIGS_DESTROYED", "ACH_WON_TOWN_COOP", "ACH_WON_SLAUGHTERHOUSE_HARD_SP", "ACH_WON_MOLLY_COOP", "ACH_100_FUSES_USED", "ACH_1000_BOOKS_DESTROYED", "ACH_WON_MOLLY_NIGHTMARE_SP", "ACH_WON_SLAUGHTERHOUSE_SP", "ACH_ALL_PATCHES", "ACH_WON_INN_COOP", "ACH_WON_TOWN_NIGHTMARE", "ACH_ALL_CHERRY_BLOSSOM", "ACH_WON_MOLLY_NIGHTMARE", "ACH_WON_TOWN_HARD_SP", "ACH_ALL_ROSES", "ACH_WON_INN_NIGHTMARE_SP", "ACH_1000_HEADS_BURIED", "ACH_WON_SLAUGHTERHOUSE_NIGHTMARE_SP", "ACH_WON_TOWN_SP", "ACH_WON_INN_NIGHTMARE", "ACH_WON_SLAUGHTERHOUSE_HARD", "ACH_WON_MANOR_COOP", "ACH_WON_MANOR_HARD", "ACH_WON_SLAUGHTERHOUSE_NIGHTMARE", "ACH_WON_MANOR_SP", "ACH_WON_MANOR_NIGHTMARE", "ACH_ALL_CLIPBOARDS_READ", "ACH_ALL_NOTES_READ", "ACH_UNLOCKED_ATTIC_CAGE", "ACH_UNLOCKED_CAGE", "ACH_CALMED_ANNA", "ACH_FRIED_RAT", "ACH_BURNT_GOAT", "ACH_KNOCKED_OUT_BY_ANNA", "ACH_KNOCKOUT_OUT_BY_DEMON", "ACH_KNOCKED_OUT_IN_HIDING", "STAT_NUM_BLEACH_USED", "ACH_WON_SP", "ACH_WIN_NIGHTMARE", "ACH_WON_HARD_SP", "ACH_WON_COOP", "ACH_WON_HARD", "ACH_WIN_NIGHTMARE_SP", "ACH_LOST", "ACH_NEVER_KNOCKED_OUT", "ACH_ONLY_ONE_KNOCKED_OUT", "ACH_WON_HARD_NO_MEDKITS", "ACH_WON_NO_MEDKITS", "ACH_WON_NO_BATTERIES", "ACH_WON_NIGHTMARE_NO_MEDKITS", "ACH_WON_NO_KNOCKOUT_COOP", "ACH_WON_HARD_NO_BATTERIES", "ACH_WON_HARD_{0}", "ACH_WON_NIGHTMARE_{0}", "ACH_WON_NIGHTMARE_NO_BATTERIES", "ACH_SURVIVED_TO_7_GOATS", "ACH_SURVIVED_TO_5_GOATS", "ACH_SURVIVED_TO_3_GOATS", };
|
||||||
|
string[] stats = { "STAT_ROSES_COLLECTED", "STAT_BARBED_WIRES_COLLECTED", "STAT_HORSESHOES_COLLECTED", "STAT_PATCHES_COLLECTED", "STAT_CHERRY_BLOSSOM_COLLECTED", "STAT_FEATHERS_COLLECTED", "STAT_NUM_CORPSES_FRIED", "STAT_NUM_GHOSTS_FRIED", "STAT_NUM_MOLLY_CALMED_DOWN", "STAT_NUM_ANNA_CALMED_DOWN", "STAT_NUM_ANNA_STAGGERS", "STAT_NUM_NATHAN_STAGGERS", "STAT_NUM_APRIL_STAGGERS", "STAT_NUM_ZARA_STAGGERS", "STAT_NUM_SAM_STAGGERS", "STAT_NUM_MOLLY_STAGGERS", "STAT_NUM_CROWS_FRIED", "STAT_NUM_BOARS_FRIED", "STAT_NUM_SPIDERS_FRIED", "STAT_NUM_INMATES_FRIED", "STAT_NUM_DEMONS_FRIED", "STAT_NUM_KNOCKOUTS", "STAT_KNOCKOUTS_BY_", "STAT_NUM_BOOKS_CURSED", "STAT_NUM_ALCOHOL_USED", "STAT_NUM_BLEACH_USED", "STAT_NUM_HEADS_BURIED", "STAT_POOPS_SEARCHED", "STAT_EXP", "STAT_NUM_PIGS_DESTROYED", "STAT_NUM_WON_HARD", "STAT_NUM_WON_NIGHTMARE", "STAT_NUM_WON", "STAT_NUM_BOOKS_DESTROYED", "STAT_NUM_GASOLINE_USED", "STAT_NUM_GOATS_DESTROYED", "STAT_NUM_RATS_DESTROYED", "STAT_NUM_FUSES_USED", "STAT_KNOCKOUTS_BY_NATHAN", "STAT_KNOCKOUTS_BY_GHOST", "STAT_INMATES", "STAT_NUM_REVIVES", "STAT_GHOSTS", "STAT_HEADS", "STAT_GOATS_LURED", "STAT_KNOCKOUTS_BY_MOLLY", "STAT_KNOCKOUTS_BY_BOAR", "STAT_NUM_EGGS_DESTROYED", "STAT_DEMONS", "STAT_KNOCKOUTS_BY_SPIDER", "STAT_CATEGORY_MISC", "STAT_BOOKS", "STAT_CATEGORY_WINS", "STAT_KNOCKOUTS_BY_SAM", "STAT_HEADS_CLEANSED", "STAT_BOARS", "STAT_KNOCKOUTS_BY_APRIL", "STAT_RATS", "STAT_HEADS_LURED", "STAT_CATEGORY_MINIONS_BANISHED", "STAT_CROWS", "STAT_PIGS", "STAT_PIGS_LURED", "STAT_CATEGORY_AZAZEL_STAGGERS", "STAT_GOATS", "STAT_KNOCKOUTS_BY_ZARA", "STAT_KNOCKOUTS_BY_DEMON", "STAT_KNOCKOUTS_BY_ANNA", "STAT_EGGS", "STAT_CATEGORY_ANIMALS_LURED", "STAT_CORPSES_FREED", "STAT_KNOCKOUTS_BY_INMATE", "STAT_SPIDERS", "STAT_RATS_LURED", "STAT_CATEGORY_RITUAL_ITEMS_DESTROYED", "STAT_CATEGORY_ITEMS_USED", "STAT_KNOCKOUTS_BY_CROW", "STAT_CATEGORY_KNOCKOUTS", "STAT_NUM_WON_NORMAL", "STAT_TOTAL", "STAT_TRASH_CANS_KICKED", };
|
||||||
for (int i = 0; i < achievements.Length; i++)
|
for (int i = 0; i < achievements.Length; i++)
|
||||||
{
|
{
|
||||||
ah.Unlock(achievements[i]);
|
Il2CppSteamworks.SteamUserStats.SetAchievement(achievements[i]);
|
||||||
|
//ah.Unlock(achievements[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int j = 0; j < stats.Length; j++)
|
||||||
|
{
|
||||||
|
Il2CppSteamworks.SteamUserStats.SetStat(stats[j], 666);
|
||||||
|
}
|
||||||
|
|
||||||
|
MelonLoader.MelonLogger.Warning("You need to restart your game for the achievements to be unlocked !!!");
|
||||||
|
MelonLoader.MelonLogger.Warning("You need to restart your game for the achievements to be unlocked !!!");
|
||||||
|
MelonLoader.MelonLogger.Warning("You need to restart your game for the achievements to be unlocked !!!");
|
||||||
|
MelonLoader.MelonLogger.Warning("You need to restart your game for the achievements to be unlocked !!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Doors()
|
public static void Doors()
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
return "Town";
|
return "Town";
|
||||||
case "Slaughterhouse":
|
case "Slaughterhouse":
|
||||||
return "Slaughterhouse";
|
return "Slaughterhouse";
|
||||||
|
case "Manor":
|
||||||
|
return "Manor";
|
||||||
default:
|
default:
|
||||||
return "Menu";
|
return "Menu";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -187,6 +187,8 @@ namespace DevourClient.Helpers
|
|||||||
public static Il2Cpp.SurvivalAzazelBehaviour[] Azazels = default!;
|
public static Il2Cpp.SurvivalAzazelBehaviour[] Azazels = default!;
|
||||||
public static Il2Cpp.BoarBehaviour[] Boars = default!;
|
public static Il2Cpp.BoarBehaviour[] Boars = default!;
|
||||||
public static Il2Cpp.CorpseBehaviour[] Corpses = default!;
|
public static Il2Cpp.CorpseBehaviour[] Corpses = default!;
|
||||||
|
public static Il2Cpp.CrowBehaviour[] Crows = default!;
|
||||||
|
public static Il2Cpp.ManorLumpController[] Lumps = default!;
|
||||||
|
|
||||||
public static IEnumerator GetLocalPlayer()
|
public static IEnumerator GetLocalPlayer()
|
||||||
{
|
{
|
||||||
@@ -333,6 +335,28 @@ namespace DevourClient.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IEnumerator GetCrows()
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
Crows = Il2Cpp.CrowBehaviour.FindObjectsOfType<Il2Cpp.CrowBehaviour>();
|
||||||
|
|
||||||
|
// Wait 5 seconds before caching objects again.
|
||||||
|
yield return new WaitForSeconds(5f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerator GetLumps()
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
Lumps = Il2Cpp.ManorLumpController.FindObjectsOfType<Il2Cpp.ManorLumpController>();
|
||||||
|
|
||||||
|
// Wait 5 seconds before caching objects again.
|
||||||
|
yield return new WaitForSeconds(5f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static IEnumerator GetAzazels()
|
public static IEnumerator GetAzazels()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ In order to get all of this working you need to generate the DevourClient.dll fi
|
|||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.platform.photon.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.platform.photon.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.AnimationModule.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.AnimationModule.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.PhysicsModule.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.PhysicsModule.dll`
|
||||||
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppcom.rlabrecque.steamworks.net.dll`
|
||||||
7. Build the solutions in Release | Any CPU
|
7. Build the solutions in Release | Any CPU
|
||||||
|
|
||||||
## Contact
|
## Contact
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 544 KiB After Width: | Height: | Size: 611 KiB |
@@ -11,17 +11,26 @@ import json
|
|||||||
f = open('script.json')
|
f = open('script.json')
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
|
|
||||||
o = open('out.cs', 'a')
|
o = open('out.cs', 'w')
|
||||||
o.write("string[] achievements = {")
|
o.write("string[] achievements = {")
|
||||||
tot = 0
|
tot_ach = 0
|
||||||
for i in data['ScriptString']:
|
for i in data['ScriptString']:
|
||||||
v = i["Value"]
|
v = i["Value"]
|
||||||
if "ACH_" in v :
|
if "ACH_" in v :
|
||||||
o.write('"'+v+'", ')
|
o.write('"'+v+'", ')
|
||||||
tot+=1
|
tot_ach+=1
|
||||||
|
o.write("};\n")
|
||||||
|
|
||||||
o.write("};")
|
tot_stat = 0
|
||||||
print(f"{tot} achievements")
|
o.write("string[] stats = {")
|
||||||
|
for j in data['ScriptString']:
|
||||||
|
v = j["Value"]
|
||||||
|
if "STAT_" in v :
|
||||||
|
o.write('"'+v+'", ')
|
||||||
|
tot_stat+=1
|
||||||
|
o.write("};\n")
|
||||||
|
|
||||||
|
print(f"{tot_ach} achievements, {tot_stat} stats")
|
||||||
|
|
||||||
# Closing files
|
# Closing files
|
||||||
o.close()
|
o.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user