From f1b931c9b0584fa49bb2277896710ead7a9bedbb Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Fri, 25 Mar 2022 20:57:42 +0100 Subject: [PATCH] The Town Update ! --- .gitignore | 4 + DevourClient/DevourClient.csproj | 38 +++++--- DevourClient/Hacks/Misc.cs | 89 +++++++++++++++--- DevourClient/Hacks/Unlock.cs | 4 +- DevourClient/Hooks/Hooks.cs | 36 +++++++ DevourClient/MelonMain.cs | 59 +++++++++--- ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7598 -> 6205 bytes 7 files changed, 186 insertions(+), 44 deletions(-) create mode 100644 .gitignore create mode 100644 DevourClient/Hooks/Hooks.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b12c96 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +#Visual studio stuff +.vs +DevourClient/bin +DevourClient/obj \ No newline at end of file diff --git a/DevourClient/DevourClient.csproj b/DevourClient/DevourClient.csproj index f4ac1e4..c0167d8 100644 --- a/DevourClient/DevourClient.csproj +++ b/DevourClient/DevourClient.csproj @@ -31,49 +31,60 @@ 4 + + False + D:\Jeux\steamapps\common\Devour\MelonLoader\0Harmony.dll + - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\Assembly-CSharp.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\Assembly-CSharp.dll False - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\bolt.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\bolt.dll False - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\bolt.user.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\bolt.user.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\Il2Cppmscorlib.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\Il2Cppmscorlib.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\MelonLoader.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\MelonLoader.dll + + + False + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\Opsive.UltimateCharacterController.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Il2CppAssemblyUnhollower\UnhollowerBaseLib.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Il2CppAssemblyUnhollower\UnhollowerBaseLib.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Il2CppAssemblyUnhollower\UnhollowerRuntimeLib.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Il2CppAssemblyUnhollower\UnhollowerRuntimeLib.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.CoreModule.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.CoreModule.dll + + + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.HotReloadModule.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.IMGUIModule.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.IMGUIModule.dll False - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.InputLegacyModule.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.InputLegacyModule.dll - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.InputModule.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.InputModule.dll False - ..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.UI.dll + D:\Jeux\steamapps\common\Devour\MelonLoader\Managed\UnityEngine.UI.dll @@ -85,6 +96,7 @@ + diff --git a/DevourClient/Hacks/Misc.cs b/DevourClient/Hacks/Misc.cs index f347b3a..2d0bb05 100644 --- a/DevourClient/Hacks/Misc.cs +++ b/DevourClient/Hacks/Misc.cs @@ -1,26 +1,81 @@ using UnityEngine; using MelonLoader; using UnityEngine.UI; +using System.Reflection; +using System.Runtime.InteropServices; namespace DevourClient.Hacks { public class Misc { + public static void Fly(float speed) //normal speed 0.5f + { + NolanBehaviour Nolan = UnityEngine.Object.FindObjectOfType(); + Vector3 PlayerAngles = Nolan.transform.position; + + if (Input.GetKey(KeyCode.Space)) + { + PlayerAngles.y += speed; + } + if (Input.GetKey(KeyCode.LeftShift)) + { + PlayerAngles.y -= speed; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + PlayerAngles.x -= speed; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + PlayerAngles.x += speed; + } + if (Input.GetKey(KeyCode.UpArrow)) + { + PlayerAngles.z += speed; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + PlayerAngles.z -= speed; + } + + Nolan.locomotion.SetPosition(PlayerAngles, false); + } + public static void SetSteamName(string name) + { + Horror.Menu Menu_ = UnityEngine.Object.FindObjectOfType(); + Menu_.steamName = name; + } + public static void SetServerName(string name) + { + Horror.Menu Menu_ = UnityEngine.Object.FindObjectOfType(); + Menu_.serverNameText.text = name; + } + public static void BigFlashlight(bool reset) { - NolanBehaviour Nolan = UnityEngine.Object.FindObjectOfType(); - Light flashlightSpot = Nolan.flashlightSpot; - - if (reset) + //Ohhhh yes, that's some great code, don't you like try and catches ? + //it's for fixing a glitch that activates the big flashlight during the loading of a map + //so the things are not loaded and it throws a shit ton of errors in the console + try { - flashlightSpot.intensity = 1.5f; - flashlightSpot.range = 9f; + NolanBehaviour Nolan = UnityEngine.Object.FindObjectOfType(); + Light flashlightSpot = Nolan.flashlightSpot; + + if (reset) + { + flashlightSpot.intensity = 1.5f; + flashlightSpot.range = 9f; + } + else + { + flashlightSpot.intensity = 1.5f; + flashlightSpot.range = 200f; + } } - else + catch { - flashlightSpot.intensity = 1.5f; - flashlightSpot.range = 200f; - } + return; + } } public static void FlashlightColor(Color color) @@ -46,11 +101,11 @@ namespace DevourClient.Hacks } } - public static void MaxRank() + public static void SetRank(int rank) { NolanRankController NolanRank = UnityEngine.Object.FindObjectOfType(); - NolanRank.SetRank(70); + NolanRank.SetRank(rank); } public static void MessageSpam(string message) @@ -69,7 +124,6 @@ namespace DevourClient.Hacks menu_class.OnChatMessageSubmit(); } } - public static void InstantWin() { Survival survival_class = UnityEngine.Object.FindObjectOfType(); @@ -85,7 +139,14 @@ namespace DevourClient.Hacks } catch { - survival_class.PlayWinEnding("Win"); + try + { + survival_class.PlayWinEnding("TownWin"); + } + catch + { + survival_class.PlayWinEnding("Win"); + } } } } diff --git a/DevourClient/Hacks/Unlock.cs b/DevourClient/Hacks/Unlock.cs index a3793f2..b506ad3 100644 --- a/DevourClient/Hacks/Unlock.cs +++ b/DevourClient/Hacks/Unlock.cs @@ -6,7 +6,7 @@ { AchievementHelpers ah = UnityEngine.Object.FindObjectOfType(); - /* + /* string[] names = { "hasAchievedFusesUsed", "hasAchievedGasolineUsed", "hasAchievedNoKnockout", "hasCollectedAllPatches", "hasCollectedAllRoses", "hasCompletedHardAsylumGame", "hasCompletedHardGame", "hasCompletedNightmareAsylumGame", "hasCompletedNightmareGame", "hasCompletedNormalGame", "hasCompletedHardInnGamehasCompletedNightmareInnGame", "hasCollectedAllCherryBlossom", "hasAchievedEggsDestroyed", "hasCollectedAllPumpkins", @@ -19,7 +19,7 @@ */ - string[] achievments = { "ACH_WON_INN_NIGHTMARE", "ACH_WON_INN_NIGHTMARE_SP", "ACH_WON_INN_HARD", "ACH_WON_INN_HARD_SP", "ACH_WON_INN_COOP", "ACH_ALL_ROSES", "ACH_BURNT_GOAT", + string[] achievments = { "ACH_WON_INN_NIGHTMARE", "ACH_WON_INN_NIGHTMARE_SP", "ACH_WON_INN_HARD", "ACH_WON_INN_HARD_SP", "ACH_WON_INN_COOP", "ACH_ALL_ROSES", "ACH_BURNT_GOAT", "ACH_ALL_CHERRY_BLOSSOM", "ACH_100_EGGS_DESTROYED", "ACH_WON_INN_SP", "ACH_SURVIVED_TO_3_GOATS", "ACH_SURVIVED_TO_5_GOATS", "ACH_SURVIVED_TO_7_GOATS", "ACH_WON_SP", "ACH_WON_COOP", "ACH_LOST", "ACH_LURED_20_GOATS", "ACH_REVIVED_20_PLAYERS", "ACH_ALL_NOTES_READ", "ACH_KNOCKED_OUT_BY_ANNA", "ACH_KNOCKOUT_OUT_BY_DEMON", "ACH_KNOCKED_OUT_20_TIMES", "ACH_NEVER_KNOCKED_OUT", "ACH_ONLY_ONE_KNOCKED_OUT", "ACH_UNLOCKED_CAGE", "ACH_UNLOCKED_ATTIC_CAGE", "ACH_BEAT_GAME_5_TIMES", "ACH_100_GASOLINE_USED", diff --git a/DevourClient/Hooks/Hooks.cs b/DevourClient/Hooks/Hooks.cs new file mode 100644 index 0000000..e67018f --- /dev/null +++ b/DevourClient/Hooks/Hooks.cs @@ -0,0 +1,36 @@ +using HarmonyLib; + +namespace DevourClient.Hooks +{ + public class Hooks + { + /* + [HarmonyPatch(typeof(UIPerkSelectionType))] + [HarmonyPatch(nameof(UIPerkSelectionType.SetLocked))] //annotation boiler plate to tell Harmony what to patch. Refer to docs. + static class UIPerkSelectionType_SetLocked_Patch + { + static void Prefix(ref bool locked, ref int cost) + { + MelonLoader.MelonLogger.Msg("cost : "+cost); + MelonLoader.MelonLogger.Msg("locked : " + locked); + + locked = false; + cost = 0; + return; + } + } + */ + + [HarmonyPatch(typeof(NolanBehaviour))] + [HarmonyPatch(nameof(NolanBehaviour.SetIsBeingKnockedOut))] //annotation boiler plate to tell Harmony what to patch. Refer to docs. + static class NolanBehaviour_SetIsBeingKnockedOut_Patch + { + static void Prefix(ref bool enable) + { + MelonLoader.MelonLogger.Msg("called ! : " + enable); + enable = false; + return; + } + } + } +} diff --git a/DevourClient/MelonMain.cs b/DevourClient/MelonMain.cs index 7c7e460..8038934 100644 --- a/DevourClient/MelonMain.cs +++ b/DevourClient/MelonMain.cs @@ -8,8 +8,13 @@ namespace DevourClient public class Load : MelonMod { bool flashlight_toggle = false; - bool flashlight_reset = false; bool flashlight_colorpick = false; + bool level_70 = false; + bool level_666 = false; + bool change_server_name = false; + bool change_steam_name = false; + bool fly = false; + float fly_speed = 0.5f; bool spam_message = false; @@ -26,23 +31,46 @@ namespace DevourClient Settings.Settings.menu_enable = !Settings.Settings.menu_enable; } - if (this.flashlight_toggle && !flashlight_reset && Player.IsInGame()) + if (this.flashlight_toggle && Player.IsInGame()) { - flashlight_reset = true; Hacks.Misc.BigFlashlight(false); - MelonLogger.Msg("Big Flashlight enabled !"); } - else if (!this.flashlight_toggle && flashlight_reset && Player.IsInGame()) + else if (!this.flashlight_toggle && Player.IsInGame()) { - flashlight_reset = false; Hacks.Misc.BigFlashlight(true); - MelonLogger.Msg("Big Flashlight disabled !"); } if (this.spam_message) { Hacks.Misc.MessageSpam(Settings.Settings.message_to_spam); } + + if (this.level_70 != this.level_666 && !Player.IsInGame()) + { + if (this.level_70) + { + Hacks.Misc.SetRank(70); + } + else + { + Hacks.Misc.SetRank(666); + } + } + + if (this.change_server_name && !Player.IsInGame()) + { + Hacks.Misc.SetServerName("patate on top !"); + } + + if (this.change_steam_name && !Player.IsInGame()) + { + Hacks.Misc.SetSteamName("patate"); + } + + if (this.fly && Player.IsInGame()) + { + Hacks.Misc.Fly(this.fly_speed); + } } public override void OnGUI() @@ -51,7 +79,14 @@ namespace DevourClient { GUI.Label(new Rect(300, Settings.Settings.y, 100, 30), "Devour Client"); //Titre du menu this.flashlight_toggle = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 150, 20), this.flashlight_toggle, "Big Flashlight"); //Checkbox Flashlight - this.spam_message = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 220, 150, 20), this.spam_message, "Chat Spam"); //Checkbox Chat Spam + this.spam_message = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 250, 150, 20), this.spam_message, "Chat Spam"); //Checkbox Chat Spam + this.level_70 = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 190, 150, 20), this.level_70, "Level 70"); //Checkbox lvl 70 + this.level_666 = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 220, 150, 20), this.level_666, "Level 666"); //Checkbox lvl 70 + this.change_server_name = GUI.Toggle(new Rect(Settings.Settings.x + 200, Settings.Settings.y + 40, 150, 20), this.change_server_name, "Change server name"); //Checkbox servername + this.change_steam_name = GUI.Toggle(new Rect(Settings.Settings.x + 200, Settings.Settings.y + 70, 150, 20), this.change_steam_name, "Change steam name"); //Checkbox servername + this.fly = GUI.Toggle(new Rect(Settings.Settings.x + 200, Settings.Settings.y + 100, 150, 20), this.fly, "Fly"); //Checkbox fly + this.fly_speed = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 200, Settings.Settings.y + 130, 100, 10), this.fly_speed, 0f, 1f); //Slider for the fly speed + GUI.Label(new Rect(Settings.Settings.x + 310, Settings.Settings.y + 125, 100, 30), this.fly_speed.ToString()); //Prints the value of the slider if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 40, 150, 20), "Unlock Achievements")) { @@ -93,13 +128,7 @@ namespace DevourClient MelonLogger.Msg("Here are your keys !"); } - if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 190, 150, 20), "Rank 70")) - { - Hacks.Misc.MaxRank(); - MelonLogger.Msg("EZ LV 70"); - } - - if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 250, 150, 20), "Instant WIn") && Player.IsInGame()) + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 280, 150, 20), "Instant WIn") && Player.IsInGame()) { Hacks.Misc.InstantWin(); MelonLogger.Msg("EZ Win"); diff --git a/DevourClient/obj/x64/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DevourClient/obj/x64/Debug/DesignTimeResolveAssemblyReferencesInput.cache index dc1d0685630ab8716b763a1ee94473b3a44c1594..d88f361199c68af1968e4460fa20f639bdf5b965 100644 GIT binary patch delta 340 zcmZ2yz1LvFPHyqk;_Q29LT2oE%0DAd3}$)nH(8yo&Q|kzZ#u^&*(iy8a*U*xA@@C!R}u!4tiMsLUI%3_GgT7x(CC}E z_$Kpx*#Pf_)(}+u=G=|}L0ajHIJ+Q4mDlFE57%5KJnk_Aotf0DZ&yR#pI0n^hE!Xf zp%qrav8xBh=B4kUz4xedg{c~t?y_=N(O_O96a9eKgj7(3DnnP4gf^((zIH9fk58V| zV%M5_ogdBO?nnK-t1>>?sm&oZi(G+gq~f42*FD2j8JKc6mzdeqmurVQ&exT!qKC+; zD++2{8`a!jkV3-@kPB}iqh4q9NV#@sXi*Bj1?v9M-9@hJK5LS|!wcJicDuE3Nl6#9 zmg)s+&kfpyA=h34-f}1m51_r|FsGK6^o>x%GE_l)!hfWRp+82;O>H2+@WlOf4F#P23Ir(b+6(Bcclq`86QHf0FCR1b0bN4aB3LIcxr^2qeL(rNTkjo!H+Q_ zDI()U&LbJOE+9=<7m*Zqm)n`svoa>q4W_{9CcBRPdTyngLuR+9>{)vv+ety&>E_(d zo^=U1?G>Ims~Yo9XW^eeKQI+A;S^;<_>y_rDZ;i4Rc4d9TbMqyzZQHB!W{e}EAO41 znJMh7gfvfMCc1*z(lTi2Z+BDU{nW^InY#(8&&Z<7NbVd|x`O~(%3Eoiag}Cdx^`tE zv#cw`pgrqzY>%?Qo0+n%Vsjk3bM|CzGXFI71%6MAr^)5?Z(So|H@FBq>pHeaY|rJluIQ^T;V1V1a|#8Ve8-Xvd8ZOxrQeBKT4) zpc_Fsi%hT@cur>%ekhbTnW{%ZZ=r-=Vv|sjzKPi0Mz(A5vc=q1MZE7I@AcStm;8xB zz23=8BLR0&z|!dj?C(It^&WC%$8haNW~RMI2xfYYR5$Dn9xkU9dCmdlzeF*-FJhJy zXgqq1P(cCFU}RMW#d&=Z*M%8vN%v9GZ^>gsefnW2LLG#M0Et}O+WgMBh=2}5D0!%V zRcs<0LO8CR{pL%iVS!g7Cwzsf{eE^-Yh%TZc3-1*?y3FOxkOe4H_bUw;{p&RDp-_W z=(l3w0SfxHFM{ZL{06xn7ipiq{YRNmT70!y>apWnl=QwYc0>i91*kE%*(2|}{#ix^ zr5;HSQBr(YXKyI1mZFpJ=mb+vcgels!jlb6$Brb8P|`9;wFjwotVN}`k!qCfy~Sc) zphw?o{sG3`Znvt-IP&*M_b2Y-V%wmSMs@XLi+=rx`?xnh=DNcA#@JZuG2VKeCryxz z-ZWU>BUwG>2kUgVZkiBbBqNKBk$HSekR)^%LB?KXk^~n&>P-`Vq$f=nlJvD~BsX>o zN4~b$vwploo;@pv{kL{kj;_f!_pCgQ#{)|zkkiH8W!509MOFJf zYZAK%55#~}D;xoCgi_N4J_(6iQ%L%=d)73v-snqU%rh6UrFPO0wnZ`LqG+H{p=bE7 T!R7XUFAWEmTlZzo#`*sMk;D7R