code refactor and optimization

This commit is contained in:
2023-03-11 11:59:11 +01:00
parent 9fbabb2de1
commit f732234e7a
3 changed files with 126 additions and 170 deletions

View File

@@ -47,58 +47,64 @@ namespace DevourClient.Hacks
public static void WalkInLobby(bool walk) public static void WalkInLobby(bool walk)
{ {
try { GameObject LocalPlayer = Helpers.Entities.LocalPlayer_.p_GameObject;
if (Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<UltimateCharacterLocomotionHandler>() == null) if (LocalPlayer == null)
{ {
Helpers.Entities.LocalPlayer_.p_GameObject.AddComponent<UltimateCharacterLocomotionHandler>(); return;
Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<UltimateCharacterLocomotionHandler>().enabled = false;
}
Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<UltimateCharacterLocomotionHandler>().enabled = walk;
} }
catch { return; }
} //GetComponent called only once as AddComponent returns a component
UltimateCharacterLocomotionHandler cmp = Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<UltimateCharacterLocomotionHandler>();
if (cmp == null)
{
cmp = LocalPlayer.AddComponent<UltimateCharacterLocomotionHandler>();
cmp.enabled = false;
}
cmp.enabled = walk;
}
public static void BurnRitualObj(string map, bool burnAll) public static void BurnRitualObj(string map, bool burnAll)
{ {
Il2Cpp.SurvivalObjectBurnController _altar = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalObjectBurnController>(); //map controllers SHOULDN'T be null but we never know, if smth break, add a nullptr check
Il2Cpp.InnMapController _innMapController = UnityEngine.Object.FindObjectOfType<Il2Cpp.InnMapController>(); switch (map)
{
case "Inn":
Il2Cpp.InnMapController _innMapController = UnityEngine.Object.FindObjectOfType<Il2Cpp.InnMapController>();
if (burnAll){
_innMapController.SetProgressTo(10);
}
else{
_innMapController.IncreaseProgress();
}
break;
if (map != "Inn") case "Slaughterhouse":
{ Il2Cpp.SlaughterhouseAltarController _slaughterhouseAltarController = UnityEngine.Object.FindObjectOfType<Il2Cpp.SlaughterhouseAltarController>();
if (burnAll)
{
_altar.SkipToGoat(10);
}
else
{
_altar.BurnGoat();
}
}
if(map == "Slaughterhouse") if (burnAll)
{ {
Il2Cpp.SlaughterhouseAltarController _slaughterhouseAltarController = UnityEngine.Object.FindObjectOfType<Il2Cpp.SlaughterhouseAltarController>(); _slaughterhouseAltarController.BurnGoat();
}
else
{
_slaughterhouseAltarController.SkipToGoat(10);
}
break;
if (burnAll) default:
{ Il2Cpp.SurvivalObjectBurnController _altar = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalObjectBurnController>();
_slaughterhouseAltarController.BurnGoat(); if (burnAll)
} {
else _altar.SkipToGoat(10);
{ }
_slaughterhouseAltarController.SkipToGoat(10); else
} {
} _altar.BurnGoat();
}
else break;
{ }
if (burnAll){
_innMapController.SetProgressTo(10);
}
else{
_innMapController.IncreaseProgress();
}
}
} }
public static void SpawnAzazel(PrefabId _azazelPrefabId) public static void SpawnAzazel(PrefabId _azazelPrefabId)
@@ -119,58 +125,44 @@ namespace DevourClient.Hacks
public static void CarryObject(string name) public static void CarryObject(string name)
{ {
try Il2Cpp.NolanBehaviour nb = Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<Il2Cpp.NolanBehaviour>();
{
Il2Cpp.NolanBehaviour nb = Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<Il2Cpp.NolanBehaviour>();
nb.StartCarry(name); nb.StartCarry(name);
}
public static void CleanFountain()
{
GameObject[] fountains = GameObject.FindGameObjectsWithTag("InnFountain");
foreach (GameObject fountain in fountains)
{
fountain.GetComponent<Il2Cpp.InnFountainController>().Clean();
} }
catch { return; } }
}
public static void CleanFountain() public static void AutoRespawn()
{
try
{
GameObject[] fountains = GameObject.FindGameObjectsWithTag("InnFountain");
for (int i = 0; i < fountains.Length; i++)
{
fountains[i].GetComponent<Il2Cpp.InnFountainController>().Clean();
}
}
catch { return; }
}
public static void AutoRespawn()
{ {
Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); Il2Cpp.NolanBehaviour nb = Player.GetPlayer();
Il2Cpp.SurvivalReviveInteractable _reviveInteractable = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalReviveInteractable>(); Il2Cpp.SurvivalReviveInteractable _reviveInteractable = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalReviveInteractable>(); //probably can't be null
_reviveInteractable.Interact(nb.gameObject); _reviveInteractable.Interact(nb.gameObject);
} }
public static void TPItems() public static void TPItems()
{ {
try Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
{
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
foreach (Il2Cpp.SurvivalInteractable item in Helpers.Entities.SurvivalInteractables) foreach (Il2Cpp.SurvivalInteractable item in Helpers.Entities.SurvivalInteractables)
{ {
item.transform.position = Nolan.transform.position + Nolan.transform.forward * UnityEngine.Random.RandomRange(1f, 3f); item.transform.position = Nolan.transform.position + Nolan.transform.forward * UnityEngine.Random.RandomRange(1f, 3f);
} }
}
catch { }
} }
public static void CreateCustomizedLobby(int lobbySize = 4, bool isPrivate = false, Il2CppUdpKit.Platform.Photon.PhotonRegion.Regions __region = Il2CppUdpKit.Platform.Photon.PhotonRegion.Regions.BEST_REGION) public static void CreateCustomizedLobby(int lobbySize = 4, bool isPrivate = false, Il2CppUdpKit.Platform.Photon.PhotonRegion.Regions __region = Il2CppUdpKit.Platform.Photon.PhotonRegion.Regions.BEST_REGION)
{ {
Il2CppHorror.Menu _menu = UnityEngine.Object.FindObjectOfType<Il2CppHorror.Menu>(); //TODO : make it so we can specify a password for a private lobby
CanvasGroup _loadingCanvasGroup = _menu.loadingCanvasGroup; Il2CppHorror.Menu _menu = UnityEngine.Object.FindObjectOfType<Il2CppHorror.Menu>();
CanvasGroup _hostCanvasGroup = _menu.hostCanvasGroup;
CanvasGroup _mainMenuCanvasGroup = _menu.mainMenuCanvasGroup;
Il2CppUdpKit.Platform.PhotonPlatformConfig __photonPlatformConfig = new Il2CppUdpKit.Platform.PhotonPlatformConfig(); Il2CppUdpKit.Platform.PhotonPlatformConfig __photonPlatformConfig = new Il2CppUdpKit.Platform.PhotonPlatformConfig();
__photonPlatformConfig.Region = Il2CppUdpKit.Platform.Photon.PhotonRegion.regions[__region]; __photonPlatformConfig.Region = Il2CppUdpKit.Platform.Photon.PhotonRegion.regions[__region];
@@ -185,9 +177,9 @@ namespace DevourClient.Hacks
BoltLauncher.StartServer(__config, null); BoltLauncher.StartServer(__config, null);
Il2CppHorror.Menu.ShowCanvasGroup(_loadingCanvasGroup, true); Il2CppHorror.Menu.ShowCanvasGroup(_menu.loadingCanvasGroup, true);
Il2CppHorror.Menu.ShowCanvasGroup(_hostCanvasGroup, false); Il2CppHorror.Menu.ShowCanvasGroup(_menu.hostCanvasGroup, false);
Il2CppHorror.Menu.ShowCanvasGroup(_mainMenuCanvasGroup, false); Il2CppHorror.Menu.ShowCanvasGroup(_menu.mainMenuCanvasGroup, false);
} }
public static void SetSteamName(string name) public static void SetSteamName(string name)
@@ -213,7 +205,7 @@ namespace DevourClient.Hacks
public static void BigFlashlight(bool reset) public static void BigFlashlight(bool reset)
{ {
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();//UnityEngine.Object.FindObjectOfType<NolanBehaviour>(); Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
if (Nolan == null) if (Nolan == null)
{ {
return; return;
@@ -273,7 +265,7 @@ namespace DevourClient.Hacks
public static void Fullbright(bool reset) public static void Fullbright(bool reset)
{ {
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();//UnityEngine.Object.FindObjectOfType<NolanBehaviour>(); Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
if (Nolan == null) if (Nolan == null)
{ {
return; return;
@@ -305,7 +297,7 @@ namespace DevourClient.Hacks
} }
public static void FlashlightColor(Color color) public static void FlashlightColor(Color color)
{ {
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer(); //UnityEngine.Object.FindObjectOfType<NolanBehaviour>(); Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
Light flashlightSpot = Nolan.flashlightSpot; Light flashlightSpot = Nolan.flashlightSpot;
flashlightSpot.color = color; flashlightSpot.color = color;
@@ -313,7 +305,8 @@ namespace DevourClient.Hacks
public static void TPKeys() public static void TPKeys()
{ {
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer(); //UnityEngine.Object.FindObjectOfType<NolanBehaviour>(); //TOFIX: spawn manually the missing key in slaughterhouse
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
foreach (Il2Cpp.KeyBehaviour keyBehaviour in Helpers.Entities.Keys) foreach (Il2Cpp.KeyBehaviour keyBehaviour in Helpers.Entities.Keys)
{ {
@@ -337,6 +330,7 @@ namespace DevourClient.Hacks
public static void MessageSpam(string message) public static void MessageSpam(string message)
{ {
//TOFIX : not spamming anymore :/
if (Helpers.Player.IsInGame()) if (Helpers.Player.IsInGame())
{ {
Il2Cpp.GameUI game_ui_class = UnityEngine.Object.FindObjectOfType<Il2Cpp.GameUI>(); Il2Cpp.GameUI game_ui_class = UnityEngine.Object.FindObjectOfType<Il2Cpp.GameUI>();
@@ -409,23 +403,13 @@ namespace DevourClient.Hacks
public static void ShowMessageBox(string message) public static void ShowMessageBox(string message)
{ {
//not used, might be useful, some day
Il2CppHorror.Menu menu = UnityEngine.Object.FindObjectOfType<Il2CppHorror.Menu>(); Il2CppHorror.Menu menu = UnityEngine.Object.FindObjectOfType<Il2CppHorror.Menu>();
menu.ShowMessageModal(message); menu.ShowMessageModal(message);
} }
public static void PlaySound() public static void PlaySound()
{ {
/*
public PlayRandomAudioClip yesClips;
public PlayRandomAudioClip noClips;
public PlayRandomAudioClip beckonClips;
public PlayRandomAudioClip showOffClips;
public PlayRandomAudioClip screamClips;
public PlayRandomAudioClip pickupClips;
public PlayRandomAudioClip burnGoatClips;
public PlayRandomAudioClip laughClips;
*/
Il2Cpp.PlayRandomAudioClip playRandomAudioClip = UnityEngine.Object.FindObjectOfType<Il2Cpp.PlayRandomAudioClip>(); Il2Cpp.PlayRandomAudioClip playRandomAudioClip = UnityEngine.Object.FindObjectOfType<Il2Cpp.PlayRandomAudioClip>();
Il2Cpp.NolanVoiceOvers nolanVoiceOvers = UnityEngine.Object.FindObjectOfType<Il2Cpp.NolanVoiceOvers>(); Il2Cpp.NolanVoiceOvers nolanVoiceOvers = UnityEngine.Object.FindObjectOfType<Il2Cpp.NolanVoiceOvers>();
playRandomAudioClip.delay = 0f; playRandomAudioClip.delay = 0f;
@@ -475,29 +459,25 @@ namespace DevourClient.Hacks
return; return;
} }
try if (Helpers.Map.GetAzazel() == null) {
{ return;
if (Helpers.Map.GetAzazel() == null) { }
return;
} UltimateCharacterLocomotion _azazelLocomotion = Helpers.Map.GetAzazel().GetComponent<UltimateCharacterLocomotion>();
UltimateCharacterLocomotion _azazelLocomotion = Helpers.Map.GetAzazel().GetComponent<UltimateCharacterLocomotion>(); if (_azazelLocomotion == null)
{
if (_azazelLocomotion == null) return;
{ }
return;
} if (_azazelLocomotion.TimeScale > 0.0f)
{
if (_azazelLocomotion.TimeScale > 0.0f) //seems like _azazelLocomotion.TimeScale is never == 1.0f for Sam _azazelLocomotion.TimeScale = 0f; //host only (?)
{ }
_azazelLocomotion.TimeScale = 0f; else
} {
else _azazelLocomotion.TimeScale = 1.0f;
{
_azazelLocomotion.TimeScale = 1.0f;
}
} }
catch { }
} }
public static void InstantWin() public static void InstantWin()

View File

@@ -83,27 +83,27 @@ namespace DevourClient.Render
public static void DrawAllBones(List<Transform> b, Color c) public static void DrawAllBones(List<Transform> b, Color c)
{ {
DrawBones(b[0], b[1], c); DrawBones(b[0], b[1], c); //head, neck
DrawBones(b[1], b[2], c); DrawBones(b[1], b[2], c); //neck, spine
DrawBones(b[2], b[3], c); DrawBones(b[2], b[3], c); //spine, hips
DrawBones(b[1], b[4], c); DrawBones(b[1], b[4], c); //neck, left shoulder
DrawBones(b[4], b[5], c); DrawBones(b[4], b[5], c); //left shoulder, left upper arm
DrawBones(b[5], b[6], c); DrawBones(b[5], b[6], c); //left upper arm, left lower arm
DrawBones(b[6], b[7], c); DrawBones(b[6], b[7], c); //left lower arm, left hand
DrawBones(b[1], b[8], c); DrawBones(b[1], b[8], c); //neck, right shoulder
DrawBones(b[8], b[9], c); DrawBones(b[8], b[9], c); //right shoulder, right upper arm
DrawBones(b[9], b[10], c); DrawBones(b[9], b[10], c); //right upper arm, right lower arm
DrawBones(b[10], b[11], c); DrawBones(b[10], b[11], c); //right lower arm, right hand
DrawBones(b[3], b[12], c); DrawBones(b[3], b[12], c); //hips, left upper leg
DrawBones(b[12], b[13], c); DrawBones(b[12], b[13], c); //left upper leg, left lower leg
DrawBones(b[13], b[14], c); DrawBones(b[13], b[14], c); //left lower leg, left foot
DrawBones(b[3], b[15], c); DrawBones(b[3], b[15], c); //hips, right upper leg
DrawBones(b[15], b[16], c); DrawBones(b[15], b[16], c); //right upper leg, right lower leg
DrawBones(b[16], b[17], c); DrawBones(b[16], b[17], c); //right lower leg, right foot
} }
static void DrawBox(float x, float y, float w, float h, Color color, float thickness) static void DrawBox(float x, float y, float w, float h, Color color, float thickness)

View File

@@ -548,20 +548,12 @@ namespace DevourClient
{ {
if (BoltNetwork.IsServer && !Player.IsInGame()) if (BoltNetwork.IsServer && !Player.IsInGame())
{ {
try BoltNetwork.Instantiate(BoltPrefabs.SurvivalRat, Player.GetPlayer().transform.position, Quaternion.identity);
{
BoltNetwork.Instantiate(BoltPrefabs.SurvivalRat, Player.GetPlayer().transform.position, Quaternion.identity);
}
catch { }
} }
if (Player.IsInGame() && !Player.IsPlayerCrawling()) if (Player.IsInGame() && !Player.IsPlayerCrawling())
{ {
try Hacks.Misc.CarryObject("SurvivalRat");
{
Hacks.Misc.CarryObject("SurvivalRat");
}
catch { }
} }
} }
@@ -569,20 +561,12 @@ namespace DevourClient
{ {
if (BoltNetwork.IsServer && !Player.IsInGame()) if (BoltNetwork.IsServer && !Player.IsInGame())
{ {
try BoltNetwork.Instantiate(BoltPrefabs.SurvivalGoat, Player.GetPlayer().transform.position, Quaternion.identity);
{
BoltNetwork.Instantiate(BoltPrefabs.SurvivalGoat, Player.GetPlayer().transform.position, Quaternion.identity);
}
catch { }
} }
if (Player.IsInGame() && !Player.IsPlayerCrawling()) if (Player.IsInGame() && !Player.IsPlayerCrawling())
{ {
try Hacks.Misc.CarryObject("SurvivalGoat");
{
Hacks.Misc.CarryObject("SurvivalGoat");
}
catch { }
} }
} }
@@ -595,20 +579,12 @@ namespace DevourClient
{ {
if (BoltNetwork.IsServer && !Player.IsInGame()) if (BoltNetwork.IsServer && !Player.IsInGame())
{ {
try BoltNetwork.Instantiate(BoltPrefabs.SurvivalPig, Player.GetPlayer().transform.position, Quaternion.identity);
{
BoltNetwork.Instantiate(BoltPrefabs.SurvivalPig, Player.GetPlayer().transform.position, Quaternion.identity);
}
catch { }
} }
if (Player.IsInGame() && !Player.IsPlayerCrawling()) if (Player.IsInGame() && !Player.IsPlayerCrawling())
{ {
try Hacks.Misc.CarryObject("SurvivalPig");
{
Hacks.Misc.CarryObject("SurvivalPig");
}
catch { }
} }
} }
} }