version 4.8
new revive function god mode instant interaction custom shortcut keys
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
@@ -12,4 +12,72 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||||
<WarningLevel>0</WarningLevel>
|
<WarningLevel>0</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="0Harmony">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\net6\0Harmony.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Assembly-CSharp">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppbolt">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppbolt.user">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.user.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppcom.rlabrecque.steamworks.net">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppcom.rlabrecque.steamworks.net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2CppInterop.Runtime">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\net6\Il2CppInterop.Runtime.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppmscorlib">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppmscorlib.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2CppOpsive.UltimateCharacterController">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2CppOpsive.UltimateCharacterController.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppudpkit">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppudpkit.common">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.common.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Il2Cppudpkit.platform.photon">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.platform.photon.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="MelonLoader">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\net6\MelonLoader.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.TextMeshPro">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Unity.TextMeshPro.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AnimationModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.AnimationModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.CoreModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.IMGUIModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.IMGUIModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.InputLegacyModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.PhysicsModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.PhysicsModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TextRenderingModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.TextRenderingModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UI">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.UI.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UIModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.UIModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace DevourClient.ESP
|
|||||||
Gasoline, // Gasoline
|
Gasoline, // Gasoline
|
||||||
|
|
||||||
// Asylum (Molly) specific
|
// Asylum (Molly) specific
|
||||||
RottonFood, // Rotten Food
|
RottenFood, // Rotten Food
|
||||||
Fuse, // Fuse
|
Fuse, // Fuse
|
||||||
|
|
||||||
// Inn specific
|
// Inn specific
|
||||||
@@ -61,7 +61,7 @@ namespace DevourClient.ESP
|
|||||||
|
|
||||||
// Enemy ESP - Slaughterhouse
|
// Enemy ESP - Slaughterhouse
|
||||||
Corpse, // Corpse
|
Corpse, // Corpse
|
||||||
Roar, // Roar
|
Boar, // Boar
|
||||||
Pig, // Pig
|
Pig, // Pig
|
||||||
|
|
||||||
// Enemy ESP - Manor
|
// Enemy ESP - Manor
|
||||||
@@ -99,7 +99,7 @@ namespace DevourClient.ESP
|
|||||||
ESPType.FirstAid, // Common: First Aid
|
ESPType.FirstAid, // Common: First Aid
|
||||||
ESPType.Battery, // Common: Battery
|
ESPType.Battery, // Common: Battery
|
||||||
ESPType.Keys, // Common: Keys
|
ESPType.Keys, // Common: Keys
|
||||||
ESPType.RottonFood, // Specific: Rotten Food
|
ESPType.RottenFood, // Specific: Rotten Food
|
||||||
ESPType.Fuse, // Specific: Fuse
|
ESPType.Fuse, // Specific: Fuse
|
||||||
ESPType.Inmates, // Enemy: Inmates
|
ESPType.Inmates, // Enemy: Inmates
|
||||||
ESPType.Rat // Enemy: Rat
|
ESPType.Rat // Enemy: Rat
|
||||||
@@ -140,7 +140,7 @@ namespace DevourClient.ESP
|
|||||||
ESPType.Bone, // Specific: Bone
|
ESPType.Bone, // Specific: Bone
|
||||||
ESPType.Gasoline, // Specific: Gasoline
|
ESPType.Gasoline, // Specific: Gasoline
|
||||||
ESPType.Corpse, // Enemy: Corpse
|
ESPType.Corpse, // Enemy: Corpse
|
||||||
ESPType.Roar, // Enemy: Roar
|
ESPType.Boar, // Enemy: Boar
|
||||||
ESPType.Pig // Enemy: Pig
|
ESPType.Pig // Enemy: Pig
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -202,7 +202,7 @@ namespace DevourClient.ESP
|
|||||||
{ ESPType.Gasoline, false },
|
{ ESPType.Gasoline, false },
|
||||||
|
|
||||||
// Asylum specific
|
// Asylum specific
|
||||||
{ ESPType.RottonFood, false },
|
{ ESPType.RottenFood, false },
|
||||||
{ ESPType.Fuse, false },
|
{ ESPType.Fuse, false },
|
||||||
|
|
||||||
// Inn specific
|
// Inn specific
|
||||||
@@ -242,7 +242,7 @@ namespace DevourClient.ESP
|
|||||||
|
|
||||||
// Enemy - Slaughterhouse
|
// Enemy - Slaughterhouse
|
||||||
{ ESPType.Corpse, false },
|
{ ESPType.Corpse, false },
|
||||||
{ ESPType.Roar, false },
|
{ ESPType.Boar, false },
|
||||||
{ ESPType.Pig, false },
|
{ ESPType.Pig, false },
|
||||||
|
|
||||||
// Enemy - Manor
|
// Enemy - Manor
|
||||||
@@ -315,8 +315,8 @@ namespace DevourClient.ESP
|
|||||||
return "Gasoline ESP";
|
return "Gasoline ESP";
|
||||||
|
|
||||||
// Asylum specific
|
// Asylum specific
|
||||||
case ESPType.RottonFood:
|
case ESPType.RottenFood:
|
||||||
return "Rotton Food ESP";
|
return "Rotten Food ESP";
|
||||||
case ESPType.Fuse:
|
case ESPType.Fuse:
|
||||||
return "Fuse ESP";
|
return "Fuse ESP";
|
||||||
|
|
||||||
@@ -375,8 +375,8 @@ namespace DevourClient.ESP
|
|||||||
// Enemy - Slaughterhouse
|
// Enemy - Slaughterhouse
|
||||||
case ESPType.Corpse:
|
case ESPType.Corpse:
|
||||||
return "Corpse ESP";
|
return "Corpse ESP";
|
||||||
case ESPType.Roar:
|
case ESPType.Boar:
|
||||||
return "Roar ESP";
|
return "Boar ESP";
|
||||||
case ESPType.Pig:
|
case ESPType.Pig:
|
||||||
return "Pig ESP";
|
return "Pig ESP";
|
||||||
|
|
||||||
@@ -439,10 +439,10 @@ namespace DevourClient.ESP
|
|||||||
return ESPType.Gasoline;
|
return ESPType.Gasoline;
|
||||||
|
|
||||||
// Asylum specific
|
// Asylum specific
|
||||||
case "rottonfoodpickup":
|
case "rottenfoodpickup":
|
||||||
case "rotton food":
|
case "rotten food":
|
||||||
case "rottonfood":
|
case "rottenfood":
|
||||||
return ESPType.RottonFood;
|
return ESPType.RottenFood;
|
||||||
|
|
||||||
case "fusepickup":
|
case "fusepickup":
|
||||||
case "fuse":
|
case "fuse":
|
||||||
@@ -534,13 +534,12 @@ namespace DevourClient.ESP
|
|||||||
case "corpsebehaviour":
|
case "corpsebehaviour":
|
||||||
return ESPType.Corpse;
|
return ESPType.Corpse;
|
||||||
|
|
||||||
case "roar":
|
|
||||||
case "roarbehaviour":
|
|
||||||
return ESPType.Roar;
|
|
||||||
|
|
||||||
case "pig":
|
|
||||||
case "boar":
|
case "boar":
|
||||||
case "boarbehaviour":
|
case "boarbehaviour":
|
||||||
|
return ESPType.Boar;
|
||||||
|
|
||||||
|
case "pig":
|
||||||
case "pigbehaviour":
|
case "pigbehaviour":
|
||||||
return ESPType.Pig;
|
return ESPType.Pig;
|
||||||
|
|
||||||
@@ -623,7 +622,7 @@ namespace DevourClient.ESP
|
|||||||
GetESPState(ESPType.Keys) ||
|
GetESPState(ESPType.Keys) ||
|
||||||
GetESPState(ESPType.Hay) ||
|
GetESPState(ESPType.Hay) ||
|
||||||
GetESPState(ESPType.Gasoline) ||
|
GetESPState(ESPType.Gasoline) ||
|
||||||
GetESPState(ESPType.RottonFood) ||
|
GetESPState(ESPType.RottenFood) ||
|
||||||
GetESPState(ESPType.Fuse) ||
|
GetESPState(ESPType.Fuse) ||
|
||||||
GetESPState(ESPType.Bleach) ||
|
GetESPState(ESPType.Bleach) ||
|
||||||
GetESPState(ESPType.Egg) ||
|
GetESPState(ESPType.Egg) ||
|
||||||
@@ -652,7 +651,7 @@ namespace DevourClient.ESP
|
|||||||
GetESPState(ESPType.Spider) ||
|
GetESPState(ESPType.Spider) ||
|
||||||
GetESPState(ESPType.Ghost) ||
|
GetESPState(ESPType.Ghost) ||
|
||||||
GetESPState(ESPType.Corpse) ||
|
GetESPState(ESPType.Corpse) ||
|
||||||
GetESPState(ESPType.Roar) ||
|
GetESPState(ESPType.Boar) ||
|
||||||
GetESPState(ESPType.Pig) ||
|
GetESPState(ESPType.Pig) ||
|
||||||
GetESPState(ESPType.Crow) ||
|
GetESPState(ESPType.Crow) ||
|
||||||
GetESPState(ESPType.DirtyHead) ||
|
GetESPState(ESPType.DirtyHead) ||
|
||||||
|
|||||||
167
DevourClient/Features/ClientRuntime.cs
Normal file
167
DevourClient/Features/ClientRuntime.cs
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
using System;
|
||||||
|
using DevourClient.Helpers;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.Features
|
||||||
|
{
|
||||||
|
internal static class ClientRuntime
|
||||||
|
{
|
||||||
|
internal static void Tick()
|
||||||
|
{
|
||||||
|
if (Settings.Settings.menuToggleKey != KeyCode.None && Input.GetKeyDown(Settings.Settings.menuToggleKey))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.GameUI gameUI = UnityEngine.Object.FindObjectOfType<Il2Cpp.GameUI>();
|
||||||
|
if (Settings.Settings.menu_enable)
|
||||||
|
{
|
||||||
|
gameUI.HideMouseCursor();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gameUI.ShowMouseCursor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
|
Settings.Settings.menu_enable = !Settings.Settings.menu_enable;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Player.IsInGame())
|
||||||
|
{
|
||||||
|
if (ClientMain.flashlight_toggle && !ClientMain.fullbright)
|
||||||
|
{
|
||||||
|
Hacks.Misc.BigFlashlight(false);
|
||||||
|
}
|
||||||
|
else if (!ClientMain.flashlight_toggle && !ClientMain.fullbright)
|
||||||
|
{
|
||||||
|
Hacks.Misc.BigFlashlight(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.fullbright && !ClientMain.flashlight_toggle)
|
||||||
|
{
|
||||||
|
Hacks.Misc.Fullbright(false);
|
||||||
|
}
|
||||||
|
else if (!ClientMain.fullbright && !ClientMain.flashlight_toggle)
|
||||||
|
{
|
||||||
|
Hacks.Misc.Fullbright(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain._IsAutoRespawn && Helpers.Player.IsPlayerCrawling())
|
||||||
|
{
|
||||||
|
Hacks.Misc.AutoRespawn();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.crosshair && !ClientMain.in_game_cache)
|
||||||
|
{
|
||||||
|
ClientMain.in_game_cache = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ClientMain.crosshair && ClientMain.in_game_cache)
|
||||||
|
{
|
||||||
|
ClientMain.in_game_cache = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.spoofLevel)
|
||||||
|
{
|
||||||
|
Hacks.Misc.SetRank((int)ClientMain.spoofLevelValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Input.GetKeyDown(Settings.Settings.flyKey))
|
||||||
|
{
|
||||||
|
ClientMain.fly = !ClientMain.fly;
|
||||||
|
}
|
||||||
|
|
||||||
|
RadialMenuManager.Enabled = true;
|
||||||
|
RadialMenuManager.HandleUpdate();
|
||||||
|
|
||||||
|
if (Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
if (ClientMain.fly && !ClientMain.need_fly_reset)
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = Player.GetPlayer();
|
||||||
|
if (nb)
|
||||||
|
{
|
||||||
|
Collider coll = nb.GetComponentInChildren<Collider>();
|
||||||
|
if (coll)
|
||||||
|
{
|
||||||
|
coll.enabled = false;
|
||||||
|
ClientMain.need_fly_reset = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!ClientMain.fly && ClientMain.need_fly_reset)
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = Player.GetPlayer();
|
||||||
|
if (nb)
|
||||||
|
{
|
||||||
|
Collider coll = nb.GetComponentInChildren<Collider>();
|
||||||
|
if (coll)
|
||||||
|
{
|
||||||
|
coll.enabled = true;
|
||||||
|
ClientMain.need_fly_reset = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.fly)
|
||||||
|
{
|
||||||
|
Hacks.Misc.Fly(ClientMain.fly_speed);
|
||||||
|
}
|
||||||
|
|
||||||
|
Hacks.Misc.InstantInteractTick(ClientMain.InstantInteractionEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Helpers.Map.GetActiveScene() == "Menu")
|
||||||
|
{
|
||||||
|
Hacks.Misc.WalkInLobby(ClientMain._walkInLobby);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.fastMove)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (Helpers.Entities.LocalPlayer_.p_GameObject != null)
|
||||||
|
{
|
||||||
|
var locomotion = Helpers.Entities.LocalPlayer_.p_GameObject
|
||||||
|
.GetComponent<Il2CppOpsive.UltimateCharacterController.Character.UltimateCharacterLocomotion>();
|
||||||
|
if (locomotion != null)
|
||||||
|
{
|
||||||
|
locomotion.TimeScale = ClientMain._PlayerSpeedMultiplier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientMain.frameCount++;
|
||||||
|
|
||||||
|
if (ClientMain.frameCount % ClientMain.GC_GEN0_INTERVAL == 0)
|
||||||
|
{
|
||||||
|
GC.Collect(0, GCCollectionMode.Optimized);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.frameCount % ClientMain.GC_FULL_INTERVAL == 0)
|
||||||
|
{
|
||||||
|
GC.Collect();
|
||||||
|
GC.WaitForPendingFinalizers();
|
||||||
|
GC.Collect();
|
||||||
|
ClientMain.frameCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.frameCount - ClientMain.lastMemoryLog >= ClientMain.MEMORY_LOG_INTERVAL)
|
||||||
|
{
|
||||||
|
long memoryUsed = GC.GetTotalMemory(false);
|
||||||
|
MelonLoader.MelonLogger.Msg($"[Memory Monitor] Current managed memory: {memoryUsed / 1024 / 1024} MB | Frame: {ClientMain.frameCount}");
|
||||||
|
ClientMain.lastMemoryLog = ClientMain.frameCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
117
DevourClient/Features/ItemHandling.cs
Normal file
117
DevourClient/Features/ItemHandling.cs
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
using Il2CppPhoton.Bolt;
|
||||||
|
|
||||||
|
namespace DevourClient.Features
|
||||||
|
{
|
||||||
|
internal static class ItemHandling
|
||||||
|
{
|
||||||
|
internal static void HandleItemCarry(string carryObjectName)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(carryObjectName))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.autoItemFarm && DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
MelonLoader.MelonCoroutines.Start(ItemFarmRoutine(carryObjectName));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DevourClient.Hacks.Misc.CarryObject(carryObjectName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IEnumerator ItemFarmRoutine(string carryObjectName)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < ClientMain.ITEM_FARM_REPEAT_COUNT; i++)
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CarryObject(carryObjectName);
|
||||||
|
yield return new WaitForSeconds(ClientMain.ITEM_FARM_DELAY);
|
||||||
|
TryDropCarriedItem(carryObjectName);
|
||||||
|
yield return new WaitForSeconds(ClientMain.ITEM_FARM_DELAY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void TryDropCarriedItem(string carryObjectName)
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
if (nb == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
nb.PlopObject();
|
||||||
|
TrySpawnDroppedItem(carryObjectName, nb);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Warning($"Failed to drop carried item: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void TrySpawnDroppedItem(string carryObjectName, Il2Cpp.NolanBehaviour nb)
|
||||||
|
{
|
||||||
|
if (!BoltNetwork.IsServer || nb == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 dropPosition = nb.transform.position + nb.transform.forward * 1.5f;
|
||||||
|
Quaternion dropRotation = Quaternion.identity;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
switch (carryObjectName)
|
||||||
|
{
|
||||||
|
case "SurvivalHay":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalHay, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalFirstAid":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalFirstAid, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalBattery":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalBattery, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalGasoline":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalGasoline, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalFuse":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalFuse, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalRottenFood":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalRottenFood, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalBone":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalBone, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalBleach":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalBleach, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "Matchbox-3":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalMatchbox, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalSpade":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalSpade, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalCake":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCake, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "MusicBox-Idle":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalMusicBox, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
case "SurvivalCoin":
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCoin, dropPosition, dropRotation);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Warning($"Failed to spawn dropped item '{carryObjectName}': {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using MelonLoader;
|
using MelonLoader;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
@@ -47,14 +47,14 @@ namespace DevourClient.Hacks
|
|||||||
|
|
||||||
public static void WalkInLobby(bool walk)
|
public static void WalkInLobby(bool walk)
|
||||||
{
|
{
|
||||||
GameObject LocalPlayer = Helpers.Entities.LocalPlayer_.p_GameObject;
|
GameObject? LocalPlayer = Helpers.Entities.LocalPlayer_.p_GameObject;
|
||||||
if (LocalPlayer == null)
|
if (LocalPlayer == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//GetComponent called only once as AddComponent returns a component
|
//GetComponent called only once as AddComponent returns a component
|
||||||
UltimateCharacterLocomotionHandler cmp = Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<UltimateCharacterLocomotionHandler>();
|
UltimateCharacterLocomotionHandler? cmp = LocalPlayer.GetComponent<UltimateCharacterLocomotionHandler>();
|
||||||
|
|
||||||
if (cmp == null)
|
if (cmp == null)
|
||||||
{
|
{
|
||||||
@@ -143,7 +143,7 @@ namespace DevourClient.Hacks
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameObject _localPlayer = Helpers.Entities.LocalPlayer_.p_GameObject;
|
GameObject? _localPlayer = Helpers.Entities.LocalPlayer_.p_GameObject;
|
||||||
|
|
||||||
if (_localPlayer != null)
|
if (_localPlayer != null)
|
||||||
{
|
{
|
||||||
@@ -174,7 +174,17 @@ namespace DevourClient.Hacks
|
|||||||
|
|
||||||
public static void CarryObject(string name)
|
public static void CarryObject(string name)
|
||||||
{
|
{
|
||||||
Il2Cpp.NolanBehaviour nb = Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent<Il2Cpp.NolanBehaviour>();
|
GameObject? localPlayerGameObject = Helpers.Entities.LocalPlayer_.p_GameObject;
|
||||||
|
if (localPlayerGameObject == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Il2Cpp.NolanBehaviour? nb = localPlayerGameObject.GetComponent<Il2Cpp.NolanBehaviour>();
|
||||||
|
|
||||||
|
if (nb == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
nb.StartCarry(name);
|
nb.StartCarry(name);
|
||||||
}
|
}
|
||||||
@@ -203,11 +213,23 @@ namespace DevourClient.Hacks
|
|||||||
}
|
}
|
||||||
public static void TPItems()
|
public static void TPItems()
|
||||||
{
|
{
|
||||||
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
|
Il2Cpp.NolanBehaviour? Nolan = Player.GetPlayer();
|
||||||
|
if (Nolan == null)
|
||||||
foreach (Il2Cpp.SurvivalInteractable item in Helpers.Entities.SurvivalInteractables)
|
|
||||||
{
|
{
|
||||||
item.transform.position = Nolan.transform.position + Nolan.transform.forward * UnityEngine.Random.RandomRange(1f, 3f);
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Helpers.Entities.SurvivalInteractables != null)
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.SurvivalInteractable? item in Helpers.Entities.SurvivalInteractables)
|
||||||
|
{
|
||||||
|
if (item == null || item.transform == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
item.transform.position = Nolan.transform.position + Nolan.transform.forward * UnityEngine.Random.RandomRange(1f, 3f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,7 +320,11 @@ namespace DevourClient.Hacks
|
|||||||
|
|
||||||
public static void Fullbright(bool reset)
|
public static void Fullbright(bool reset)
|
||||||
{
|
{
|
||||||
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
|
Il2Cpp.NolanBehaviour? Nolan = Player.GetPlayer();
|
||||||
|
if (Nolan == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (Nolan == null)
|
if (Nolan == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -330,7 +356,11 @@ namespace DevourClient.Hacks
|
|||||||
}
|
}
|
||||||
public static void FlashlightColor(Color color)
|
public static void FlashlightColor(Color color)
|
||||||
{
|
{
|
||||||
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
|
Il2Cpp.NolanBehaviour? Nolan = Player.GetPlayer();
|
||||||
|
if (Nolan == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
Light flashlightSpot = Nolan.flashlightSpot;
|
Light flashlightSpot = Nolan.flashlightSpot;
|
||||||
|
|
||||||
flashlightSpot.color = color;
|
flashlightSpot.color = color;
|
||||||
@@ -339,7 +369,11 @@ namespace DevourClient.Hacks
|
|||||||
public static void TPKeys()
|
public static void TPKeys()
|
||||||
{
|
{
|
||||||
//TOFIX: spawn manually the missing key in slaughterhouse
|
//TOFIX: spawn manually the missing key in slaughterhouse
|
||||||
Il2Cpp.NolanBehaviour Nolan = Player.GetPlayer();
|
Il2Cpp.NolanBehaviour? Nolan = Player.GetPlayer();
|
||||||
|
if (Nolan == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (Il2Cpp.KeyBehaviour keyBehaviour in Helpers.Entities.Keys)
|
foreach (Il2Cpp.KeyBehaviour keyBehaviour in Helpers.Entities.Keys)
|
||||||
{
|
{
|
||||||
@@ -353,7 +387,7 @@ namespace DevourClient.Hacks
|
|||||||
|
|
||||||
public static void SetRank(int rank)
|
public static void SetRank(int rank)
|
||||||
{
|
{
|
||||||
Il2Cpp.NolanRankController NolanRank = UnityEngine.Object.FindObjectOfType<Il2Cpp.NolanRankController>();
|
Il2Cpp.NolanRankController? NolanRank = UnityEngine.Object.FindObjectOfType<Il2Cpp.NolanRankController>();
|
||||||
if (NolanRank == null)
|
if (NolanRank == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -364,77 +398,98 @@ namespace DevourClient.Hacks
|
|||||||
|
|
||||||
public static void DespawnDemons()
|
public static void DespawnDemons()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.SurvivalDemonBehaviour demon in Helpers.Entities.Demons)
|
if (Helpers.Entities.Demons != null)
|
||||||
{
|
{
|
||||||
if (demon != null)
|
foreach (Il2Cpp.SurvivalDemonBehaviour demon in Helpers.Entities.Demons)
|
||||||
{
|
{
|
||||||
demon.Despawn();
|
if (demon != null)
|
||||||
|
{
|
||||||
|
demon.Despawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DespawnSpiders()
|
public static void DespawnSpiders()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.SpiderBehaviour spider in Helpers.Entities.Spiders)
|
if (Helpers.Entities.Spiders != null)
|
||||||
{
|
{
|
||||||
if (spider != null)
|
foreach (Il2Cpp.SpiderBehaviour? spider in Helpers.Entities.Spiders)
|
||||||
{
|
{
|
||||||
spider.Despawn();
|
if (spider != null)
|
||||||
|
{
|
||||||
|
spider.Despawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DespawnGhosts()
|
public static void DespawnGhosts()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.GhostBehaviour ghost in Helpers.Entities.Ghosts)
|
if (Helpers.Entities.Ghosts != null)
|
||||||
{
|
{
|
||||||
if (ghost != null)
|
foreach (Il2Cpp.GhostBehaviour ghost in Helpers.Entities.Ghosts)
|
||||||
{
|
{
|
||||||
ghost.Despawn();
|
if (ghost != null)
|
||||||
|
{
|
||||||
|
ghost.Despawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DespawnBoars()
|
public static void DespawnBoars()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.BoarBehaviour boar in Helpers.Entities.Boars)
|
if (Helpers.Entities.Boars != null)
|
||||||
{
|
{
|
||||||
if (boar != null)
|
foreach (Il2Cpp.BoarBehaviour boar in Helpers.Entities.Boars)
|
||||||
{
|
{
|
||||||
boar.Despawn();
|
if (boar != null)
|
||||||
|
{
|
||||||
|
boar.Despawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DespawnCorpses()
|
public static void DespawnCorpses()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.CorpseBehaviour corpse in Helpers.Entities.Corpses)
|
if (Helpers.Entities.Corpses != null)
|
||||||
{
|
{
|
||||||
if (corpse != null)
|
foreach (Il2Cpp.CorpseBehaviour corpse in Helpers.Entities.Corpses)
|
||||||
{
|
{
|
||||||
corpse.Despawn();
|
if (corpse != null)
|
||||||
|
{
|
||||||
|
corpse.Despawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DespawnCrows()
|
public static void DespawnCrows()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.CrowBehaviour crow in Helpers.Entities.Crows)
|
if (Helpers.Entities.Crows != null)
|
||||||
{
|
{
|
||||||
if (crow != null)
|
foreach (Il2Cpp.CrowBehaviour? crow in Helpers.Entities.Crows)
|
||||||
{
|
{
|
||||||
crow.Despawn();
|
if (crow != null)
|
||||||
|
{
|
||||||
|
crow.Despawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DespawnLumps()
|
public static void DespawnLumps()
|
||||||
{
|
{
|
||||||
foreach (Il2Cpp.ManorLumpController lump in Helpers.Entities.Lumps)
|
if (Helpers.Entities.Lumps != null)
|
||||||
{
|
{
|
||||||
if (lump != null)
|
foreach (Il2Cpp.ManorLumpController lump in Helpers.Entities.Lumps)
|
||||||
{
|
{
|
||||||
lump.Dissolve();
|
if (lump != null)
|
||||||
|
{
|
||||||
|
lump.Dissolve();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -504,6 +559,11 @@ namespace DevourClient.Hacks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void InstantInteractTick(bool enabled)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
public static void FreezeAzazel()
|
public static void FreezeAzazel()
|
||||||
{
|
{
|
||||||
if (Helpers.Map.GetActiveScene() == "Menu")
|
if (Helpers.Map.GetActiveScene() == "Menu")
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ namespace DevourClient.Helpers
|
|||||||
private static float G;
|
private static float G;
|
||||||
private static float B;
|
private static float B;
|
||||||
|
|
||||||
private static Texture2D previewTexture = null;
|
private static Texture2D? previewTexture = null;
|
||||||
private static Dictionary<Color, Texture2D> colorTextureCache = new Dictionary<Color, Texture2D>();
|
private static Dictionary<Color, Texture2D> colorTextureCache = new Dictionary<Color, Texture2D>();
|
||||||
private static Dictionary<int, Texture2D> circularTextureCache = new Dictionary<int, Texture2D>();
|
private static Dictionary<int, Texture2D> circularTextureCache = new Dictionary<int, Texture2D>();
|
||||||
|
|
||||||
private static Color lastPreviewColor = Color.clear;
|
private static Color lastPreviewColor = Color.clear;
|
||||||
private static GUIStyle cachedBoxStyle = null;
|
private static GUIStyle? cachedBoxStyle = null;
|
||||||
|
|
||||||
public static Color ColorPick(string title, Color color)
|
public static Color ColorPick(string title, Color color)
|
||||||
{
|
{
|
||||||
@@ -59,7 +59,7 @@ namespace DevourClient.Helpers
|
|||||||
|
|
||||||
public static Texture2D MakeTex(int width, int height, Color col)
|
public static Texture2D MakeTex(int width, int height, Color col)
|
||||||
{
|
{
|
||||||
if (colorTextureCache.TryGetValue(col, out Texture2D cachedTexture))
|
if (colorTextureCache.TryGetValue(col, out Texture2D? cachedTexture))
|
||||||
{
|
{
|
||||||
if (cachedTexture != null)
|
if (cachedTexture != null)
|
||||||
{
|
{
|
||||||
@@ -85,7 +85,7 @@ namespace DevourClient.Helpers
|
|||||||
{
|
{
|
||||||
int cacheKey = width;
|
int cacheKey = width;
|
||||||
|
|
||||||
if (circularTextureCache.TryGetValue(cacheKey, out Texture2D cachedTexture))
|
if (circularTextureCache.TryGetValue(cacheKey, out Texture2D? cachedTexture))
|
||||||
{
|
{
|
||||||
if (cachedTexture != null)
|
if (cachedTexture != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace DevourClient.Helpers
|
namespace DevourClient.Helpers
|
||||||
{
|
{
|
||||||
class Map
|
class Map
|
||||||
{
|
{
|
||||||
@@ -31,8 +31,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static UnityEngine.GameObject GetAzazel()
|
public static UnityEngine.GameObject? GetAzazel()
|
||||||
{
|
{
|
||||||
|
if (Helpers.Entities.Azazels == null || Helpers.Entities.Azazels.Length == 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (Helpers.Entities.Azazels[0] == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return Helpers.Entities.Azazels[0].gameObject;
|
return Helpers.Entities.Azazels[0].gameObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ using System;
|
|||||||
using DevourClient.Network;
|
using DevourClient.Network;
|
||||||
using MelonLoader;
|
using MelonLoader;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using Il2CppPhoton.Bolt;
|
||||||
|
using Il2Cpp;
|
||||||
|
using Il2CppOpsive.UltimateCharacterController.Character;
|
||||||
|
|
||||||
namespace DevourClient.Helpers
|
namespace DevourClient.Helpers
|
||||||
{
|
{
|
||||||
@@ -19,9 +22,19 @@ namespace DevourClient.Helpers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TryHostRevive(target))
|
if (NetworkHelper.IsHost() && Player.IsInGame())
|
||||||
{
|
{
|
||||||
return true;
|
if (TryHostRevive(target))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TryClientRevive(target))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return TryInteractRevive(target);
|
return TryInteractRevive(target);
|
||||||
@@ -41,16 +54,70 @@ namespace DevourClient.Helpers
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Il2Cpp.SurvivalReviveInteractable interactable = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalReviveInteractable>();
|
var reviverEntity = GetLocalPlayerEntity();
|
||||||
if (interactable == null)
|
if (reviverEntity == null)
|
||||||
{
|
{
|
||||||
target.TeleportTo(HostFallbackPosition, Quaternion.identity);
|
return false;
|
||||||
MelonLogger.Msg("[ReviveHelper] Host fallback teleport executed (no interactable found).");
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interactable.Interact(target.gameObject);
|
var targetEntity = target.entity;
|
||||||
MelonLogger.Msg("[ReviveHelper] Host revive interactable triggered.");
|
ReviveEvent.Post(GlobalTargets.Others, targetEntity, reviverEntity);
|
||||||
|
|
||||||
|
var survival = UnityEngine.Object.FindObjectOfType<Il2Cpp.Survival>();
|
||||||
|
if (survival != null)
|
||||||
|
{
|
||||||
|
survival.OnReviveEvent(targetEntity, reviverEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
target.OnReviveEvent(targetEntity, reviverEntity);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
target.inputDisabledFromKnockout = false;
|
||||||
|
if (target.devourInput != null)
|
||||||
|
{
|
||||||
|
target.devourInput.EnableGameplayInput(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
var layerManager = target.gameObject.GetComponent<CharacterLayerManager>();
|
||||||
|
if (layerManager != null)
|
||||||
|
{
|
||||||
|
var maskValue = layerManager.CharacterLayer.value;
|
||||||
|
if (maskValue != 0)
|
||||||
|
{
|
||||||
|
target.gameObject.layer = (int)Mathf.Log(maskValue, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
target.EnableRevivedEffects();
|
||||||
|
if (targetEntity.IsAttached)
|
||||||
|
{
|
||||||
|
var state = targetEntity.GetState<IPlayerState>();
|
||||||
|
if (state != null)
|
||||||
|
{
|
||||||
|
state.Locked = false;
|
||||||
|
state.Reviving = null;
|
||||||
|
state.DemonHoldingPlayer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MelonLogger.Error($"Error validating revive state: {ex}");
|
||||||
|
}
|
||||||
|
|
||||||
|
var nameplate = target.gameObject.GetComponent<Il2Cpp.NolanNameplateController>();
|
||||||
|
if (nameplate != null) nameplate.OnReviveEvent(targetEntity, reviverEntity);
|
||||||
|
|
||||||
|
var perkController = target.gameObject.GetComponent<Il2Cpp.NolanPerkController>();
|
||||||
|
if (perkController != null) perkController.OnReviveEvent(targetEntity, reviverEntity);
|
||||||
|
|
||||||
|
if (Il2Cpp.IngameStatsTracker.singleton != null)
|
||||||
|
{
|
||||||
|
Il2Cpp.IngameStatsTracker.singleton.OnReviveEvent(targetEntity, reviverEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
NotifySceneListeners(targetEntity, reviverEntity);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -60,6 +127,32 @@ namespace DevourClient.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool TryClientRevive(Il2Cpp.NolanBehaviour target)
|
||||||
|
{
|
||||||
|
if (!NetworkHelper.IsNetworkRunning())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var reviverEntity = GetLocalPlayerEntity();
|
||||||
|
if (reviverEntity == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var targetEntity = target.entity;
|
||||||
|
ReviveEvent.Post(GlobalTargets.OnlyServer, targetEntity, reviverEntity);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MelonLogger.Warning($"[ReviveHelper] Client revive failed: {ex.Message}");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static bool TryInteractRevive(Il2Cpp.NolanBehaviour target)
|
private static bool TryInteractRevive(Il2Cpp.NolanBehaviour target)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -84,21 +177,54 @@ namespace DevourClient.Helpers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Legacy revive method migrated from StateHelper.BasePlayer.Revive().
|
private static BoltEntity? GetLocalPlayerEntity()
|
||||||
// This method preserves the original implementation from StateHelper.
|
|
||||||
// targetGameObject: The GameObject of the player to revive.
|
|
||||||
public static void ReviveLegacy(GameObject targetGameObject)
|
|
||||||
{
|
{
|
||||||
if (targetGameObject == null)
|
var players = GameObject.FindGameObjectsWithTag("Player");
|
||||||
|
for (int i = 0; i < players.Length; i++)
|
||||||
{
|
{
|
||||||
return;
|
var nb = players[i].GetComponent<Il2Cpp.NolanBehaviour>();
|
||||||
|
if (nb != null && nb.entity != null && nb.entity.IsAttached && nb.entity.IsOwner)
|
||||||
|
{
|
||||||
|
return nb.entity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NotifySceneListeners(BoltEntity player, BoltEntity reviver)
|
||||||
|
{
|
||||||
|
foreach (var pet in UnityEngine.Object.FindObjectsOfType<Il2Cpp.PetController>())
|
||||||
|
{
|
||||||
|
pet.OnReviveEvent(player, reviver);
|
||||||
}
|
}
|
||||||
|
|
||||||
Il2Cpp.NolanBehaviour nb = targetGameObject.GetComponent<Il2Cpp.NolanBehaviour>();
|
foreach (var mgr in UnityEngine.Object.FindObjectsOfType<Il2Cpp.ReconnectManager>())
|
||||||
Il2Cpp.SurvivalReviveInteractable _reviveInteractable = UnityEngine.Object.FindObjectOfType<Il2Cpp.SurvivalReviveInteractable>();
|
{
|
||||||
|
mgr.OnReviveEvent(player, reviver);
|
||||||
|
}
|
||||||
|
|
||||||
if (_reviveInteractable.CanInteract(nb.gameObject) == true) { _reviveInteractable.Interact(nb.gameObject); }
|
foreach (var web in UnityEngine.Object.FindObjectsOfType<Il2Cpp.InnWebController>())
|
||||||
|
{
|
||||||
|
web.OnReviveEvent(player, reviver);
|
||||||
|
}
|
||||||
|
foreach (var crawl in UnityEngine.Object.FindObjectsOfType<Il2Cpp.InnShojiDoorCrawlRendering>())
|
||||||
|
{
|
||||||
|
crawl.OnReviveEvent(player, reviver);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var deadRealm in UnityEngine.Object.FindObjectsOfType<Il2Cpp.ManorDeadRealmTrigger>())
|
||||||
|
{
|
||||||
|
deadRealm.OnReviveEvent(player, reviver);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var poison in UnityEngine.Object.FindObjectsOfType<Il2Cpp.PoisonBox>())
|
||||||
|
{
|
||||||
|
poison.OnReviveEvent(player, reviver);
|
||||||
|
}
|
||||||
|
foreach (var stairs in UnityEngine.Object.FindObjectsOfType<Il2Cpp.TriggerStairsCrawlState>())
|
||||||
|
{
|
||||||
|
stairs.OnReviveEvent(player, reviver);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace DevourClient.Helpers
|
|||||||
{
|
{
|
||||||
public class BasePlayer
|
public class BasePlayer
|
||||||
{
|
{
|
||||||
public GameObject p_GameObject { get; set; } = default!;
|
public GameObject? p_GameObject { get; set; } = default!;
|
||||||
public string Name { get; set; } = default!;
|
public string Name { get; set; } = default!;
|
||||||
public string Id { get; set; } = default!;
|
public string Id { get; set; } = default!;
|
||||||
|
|
||||||
@@ -165,22 +165,22 @@ namespace DevourClient.Helpers
|
|||||||
public static int MAX_PLAYERS = 4; //will change by calling CreateCustomizedLobby
|
public static int MAX_PLAYERS = 4; //will change by calling CreateCustomizedLobby
|
||||||
|
|
||||||
public static BasePlayer LocalPlayer_ = new BasePlayer();
|
public static BasePlayer LocalPlayer_ = new BasePlayer();
|
||||||
public static BasePlayer[] Players = default!;
|
public static BasePlayer[]? Players = default!;
|
||||||
public static Il2Cpp.GoatBehaviour[] GoatsAndRats = default!;
|
public static Il2Cpp.GoatBehaviour[]? GoatsAndRats = default!;
|
||||||
public static Il2Cpp.SurvivalInteractable[] SurvivalInteractables = default!;
|
public static Il2Cpp.SurvivalInteractable[]? SurvivalInteractables = default!;
|
||||||
public static Il2Cpp.KeyBehaviour[] Keys = default!;
|
public static Il2Cpp.KeyBehaviour[]? Keys = default!;
|
||||||
public static Il2Cpp.SurvivalDemonBehaviour[] Demons = default!;
|
public static Il2Cpp.SurvivalDemonBehaviour[]? Demons = default!;
|
||||||
public static Il2Cpp.SpiderBehaviour[] Spiders = default!;
|
public static Il2Cpp.SpiderBehaviour[]? Spiders = default!;
|
||||||
public static Il2Cpp.GhostBehaviour[] Ghosts = default!;
|
public static Il2Cpp.GhostBehaviour[]? Ghosts = default!;
|
||||||
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.CrowBehaviour[]? Crows = default!;
|
||||||
public static Il2Cpp.ManorLumpController[] Lumps = default!;
|
public static Il2Cpp.ManorLumpController[]? Lumps = default!;
|
||||||
public static Il2Cpp.GoatBehaviour[] DirtyHeads = default!;
|
public static Il2Cpp.GoatBehaviour[]? DirtyHeads = default!;
|
||||||
public static Il2Cpp.MonkeyBehaviour[] Monkeys = default!;
|
public static Il2Cpp.MonkeyBehaviour[]? Monkeys = default!;
|
||||||
public static Il2Cpp.GoatBehaviour[] Dolls = default!;
|
public static Il2Cpp.GoatBehaviour[]? Dolls = default!;
|
||||||
public static Il2Cpp.CollectableInteractable[] Collectables = default!;
|
public static Il2Cpp.CollectableInteractable[]? Collectables = default!;
|
||||||
|
|
||||||
// Coroutine lifecycle management
|
// Coroutine lifecycle management
|
||||||
private static List<object> activeCoroutines = new List<object>();
|
private static List<object> activeCoroutines = new List<object>();
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using Il2Cpp;
|
using Il2Cpp;
|
||||||
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace DevourClient.Hooks
|
namespace DevourClient.Hooks
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,8 @@ namespace DevourClient.Hooks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[HarmonyPatch(typeof(Il2Cpp.RankHelpers))]
|
[HarmonyPatch(typeof(Il2Cpp.RankHelpers))]
|
||||||
[HarmonyPatch(nameof(Il2Cpp.RankHelpers.CalculateExpGain))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
[HarmonyPatch(nameof(Il2Cpp.RankHelpers.CalculateExpGain))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
||||||
static class RankHelpers_CalculateExpGain
|
static class RankHelpers_CalculateExpGain
|
||||||
@@ -128,5 +132,20 @@ namespace DevourClient.Hooks
|
|||||||
__result = false;
|
__result = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(Il2Cpp.DevourInput))]
|
||||||
|
[HarmonyPatch(nameof(Il2Cpp.DevourInput.GetLongPress))]
|
||||||
|
static class DevourInput_GetLongPress_Patch
|
||||||
|
{
|
||||||
|
static bool Prefix(ref bool __result, string name, ref float duration, bool waitForRelease)
|
||||||
|
{
|
||||||
|
if (!DevourClient.ClientMain.InstantInteractionEnabled)
|
||||||
|
return true;
|
||||||
|
duration = 0.05f;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,8 +108,8 @@ namespace DevourClient.Localization
|
|||||||
// Keep AddTranslation method for backward compatibility (used by AddCustomTranslation)
|
// Keep AddTranslation method for backward compatibility (used by AddCustomTranslation)
|
||||||
|
|
||||||
private static void AddTranslation(string english,
|
private static void AddTranslation(string english,
|
||||||
string cn = null, string fr = null, string de = null, string es = null,
|
string? cn = null, string? fr = null, string? de = null, string? es = null,
|
||||||
string ja = null, string ko = null, string ru = null, string pt = null, string it = null, string vi = null)
|
string? ja = null, string? ko = null, string? ru = null, string? pt = null, string? it = null, string? vi = null)
|
||||||
{
|
{
|
||||||
var translations = new Dictionary<Language, string>
|
var translations = new Dictionary<Language, string>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "延迟" },
|
{ "Ping", "延迟" },
|
||||||
{ "Play Random Sound", "播放随机音效" },
|
{ "Play Random Sound", "播放随机音效" },
|
||||||
{ "Player", "玩家" },
|
{ "Player", "玩家" },
|
||||||
|
{ "Instant Interaction", "立即交互" },
|
||||||
{ "Player Count", "玩家数" },
|
{ "Player Count", "玩家数" },
|
||||||
{ "Player ESP", "玩家透视" },
|
{ "Player ESP", "玩家透视" },
|
||||||
{ "Player ESP Color", "玩家透视颜色" },
|
{ "Player ESP Color", "玩家透视颜色" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "老鼠透视" },
|
{ "Rat ESP", "老鼠透视" },
|
||||||
{ "Region", "区域" },
|
{ "Region", "区域" },
|
||||||
{ "Revive", "复活" },
|
{ "Revive", "复活" },
|
||||||
{ "Radial Menu (Z)", "轮盘菜单 (Z)" },
|
{ "Radial Menu", "轮盘菜单" },
|
||||||
{ "Ritual Book", "仪式书" },
|
{ "Ritual Book", "仪式书" },
|
||||||
{ "Rose", "玫瑰" },
|
{ "Rose", "玫瑰" },
|
||||||
{ "Ritual Book ESP", "仪式书透视" },
|
{ "Ritual Book ESP", "仪式书透视" },
|
||||||
{ "Ritual Object ESP", "仪式物品透视" },
|
{ "Ritual Object ESP", "仪式物品透视" },
|
||||||
{ "Ritual Objects", "仪式物品" },
|
{ "Ritual Objects", "仪式物品" },
|
||||||
{ "RitualBook", "仪式书" },
|
{ "RitualBook", "仪式书" },
|
||||||
{ "Roar ESP", "咆哮者透视" },
|
{ "Boar ESP", "野猪透视" },
|
||||||
{ "Role", "角色" },
|
{ "Role", "角色" },
|
||||||
{ "RottenFood", "腐烂食物" },
|
{ "RottenFood", "腐烂食物" },
|
||||||
{ "Rotton Food ESP", "腐烂食物透视" },
|
{ "Rotten Food ESP", "腐烂食物透视" },
|
||||||
{ "Sam", "萨姆" },
|
{ "Sam", "萨姆" },
|
||||||
{ "Shoot Player", "射击玩家" },
|
{ "Shoot Player", "射击玩家" },
|
||||||
{ "Show Coordinates", "显示坐标" },
|
{ "Show Coordinates", "显示坐标" },
|
||||||
@@ -274,10 +275,22 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Unlimited UV Light", "无限紫外线" },
|
{ "Unlimited UV Light", "无限紫外线" },
|
||||||
{ "Unlock Achievements", "解锁成就" },
|
{ "Unlock Achievements", "解锁成就" },
|
||||||
{ "Unlock Doors", "解锁门" },
|
{ "Unlock Doors", "解锁门" },
|
||||||
|
{ "God Mode", "上帝模式" },
|
||||||
{ "Visuals", "视觉" },
|
{ "Visuals", "视觉" },
|
||||||
{ "Waiting for the game to start", "等待游戏开始" },
|
{ "Waiting for the game to start", "等待游戏开始" },
|
||||||
{ "Walk In Lobby", "大厅行走" },
|
{ "Walk In Lobby", "大厅行走" },
|
||||||
{ "Zara", "扎拉" },
|
{ "Zara", "扎拉" },
|
||||||
|
{ "Gardener", "园丁" },
|
||||||
|
{ "Butler", "管家" },
|
||||||
|
{ "Bridesmaid 1", "伴娘 1" },
|
||||||
|
{ "Bridesmaid 2", "伴娘 2" },
|
||||||
|
{ "Cook", "厨师" },
|
||||||
|
{ "Groomsman 1", "伴郎 1" },
|
||||||
|
{ "Groomsman 2", "伴郎 2" },
|
||||||
|
{ "Maid", "女仆" },
|
||||||
|
{ "Photographer", "摄影师" },
|
||||||
|
{ "Priest", "牧师" },
|
||||||
|
{ "Menu Key", "菜单键" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Play Random Sound" },
|
{ "Play Random Sound", "Play Random Sound" },
|
||||||
{ "Player", "Player" },
|
{ "Player", "Player" },
|
||||||
|
{ "Instant Interaction", "Instant Interaction" },
|
||||||
{ "Player Count", "Player Count" },
|
{ "Player Count", "Player Count" },
|
||||||
{ "Player ESP", "Player ESP" },
|
{ "Player ESP", "Player ESP" },
|
||||||
{ "Player ESP Color", "Player ESP Color" },
|
{ "Player ESP Color", "Player ESP Color" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "Rat ESP" },
|
{ "Rat ESP", "Rat ESP" },
|
||||||
{ "Region", "Region" },
|
{ "Region", "Region" },
|
||||||
{ "Revive", "Revive" },
|
{ "Revive", "Revive" },
|
||||||
{ "Radial Menu (Z)", "Radial Menu (Z)" },
|
{ "Radial Menu", "Radial Menu" },
|
||||||
{ "Ritual Book", "Ritual Book" },
|
{ "Ritual Book", "Ritual Book" },
|
||||||
{ "Rose", "Rose" },
|
{ "Rose", "Rose" },
|
||||||
{ "Ritual Book ESP", "Ritual Book ESP" },
|
{ "Ritual Book ESP", "Ritual Book ESP" },
|
||||||
{ "Ritual Object ESP", "Ritual Object ESP" },
|
{ "Ritual Object ESP", "Ritual Object ESP" },
|
||||||
{ "Ritual Objects", "Ritual Objects" },
|
{ "Ritual Objects", "Ritual Objects" },
|
||||||
{ "RitualBook", "RitualBook" },
|
{ "RitualBook", "RitualBook" },
|
||||||
{ "Roar ESP", "Roar ESP" },
|
{ "Boar ESP", "Boar ESP" },
|
||||||
{ "Role", "Role" },
|
{ "Role", "Role" },
|
||||||
{ "RottenFood", "RottenFood" },
|
{ "RottenFood", "RottenFood" },
|
||||||
{ "Rotton Food ESP", "Rotton Food ESP" },
|
{ "Rotten Food ESP", "Rotten Food ESP" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Shoot Player" },
|
{ "Shoot Player", "Shoot Player" },
|
||||||
{ "Show Coordinates", "Show Coordinates" },
|
{ "Show Coordinates", "Show Coordinates" },
|
||||||
@@ -274,10 +275,22 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Unlimited UV Light", "Unlimited UV Light" },
|
{ "Unlimited UV Light", "Unlimited UV Light" },
|
||||||
{ "Unlock Achievements", "Unlock Achievements" },
|
{ "Unlock Achievements", "Unlock Achievements" },
|
||||||
{ "Unlock Doors", "Unlock Doors" },
|
{ "Unlock Doors", "Unlock Doors" },
|
||||||
|
{ "God Mode", "God Mode" },
|
||||||
{ "Visuals", "Visuals" },
|
{ "Visuals", "Visuals" },
|
||||||
{ "Waiting for the game to start", "Waiting for the game to start" },
|
{ "Waiting for the game to start", "Waiting for the game to start" },
|
||||||
{ "Walk In Lobby", "Walk In Lobby" },
|
{ "Walk In Lobby", "Walk In Lobby" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Gardener", "Gardener" },
|
||||||
|
{ "Butler", "Butler" },
|
||||||
|
{ "Bridesmaid 1", "Bridesmaid 1" },
|
||||||
|
{ "Bridesmaid 2", "Bridesmaid 2" },
|
||||||
|
{ "Cook", "Cook" },
|
||||||
|
{ "Groomsman 1", "Groomsman 1" },
|
||||||
|
{ "Groomsman 2", "Groomsman 2" },
|
||||||
|
{ "Maid", "Maid" },
|
||||||
|
{ "Photographer", "Photographer" },
|
||||||
|
{ "Priest", "Priest" },
|
||||||
|
{ "Menu Key", "Menu Key" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Jouer son aléatoire" },
|
{ "Play Random Sound", "Jouer son aléatoire" },
|
||||||
{ "Player", "Joueur" },
|
{ "Player", "Joueur" },
|
||||||
|
{ "Instant Interaction", "Interaction instantanée" },
|
||||||
{ "Player Count", "Nombre de joueurs" },
|
{ "Player Count", "Nombre de joueurs" },
|
||||||
{ "Player ESP", "ESP joueur" },
|
{ "Player ESP", "ESP joueur" },
|
||||||
{ "Player ESP Color", "Couleur ESP joueur" },
|
{ "Player ESP Color", "Couleur ESP joueur" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "ESP rat" },
|
{ "Rat ESP", "ESP rat" },
|
||||||
{ "Region", "Région" },
|
{ "Region", "Région" },
|
||||||
{ "Revive", "Réanimer" },
|
{ "Revive", "Réanimer" },
|
||||||
{ "Radial Menu (Z)", "Menu radial (Z)" },
|
{ "Radial Menu", "Menu radial" },
|
||||||
{ "Ritual Book", "Livre rituel" },
|
{ "Ritual Book", "Livre rituel" },
|
||||||
{ "Rose", "Rose" },
|
{ "Rose", "Rose" },
|
||||||
{ "Ritual Book ESP", "ESP livre rituel" },
|
{ "Ritual Book ESP", "ESP livre rituel" },
|
||||||
{ "Ritual Object ESP", "ESP objet rituel" },
|
{ "Ritual Object ESP", "ESP objet rituel" },
|
||||||
{ "Ritual Objects", "Objets rituels" },
|
{ "Ritual Objects", "Objets rituels" },
|
||||||
{ "RitualBook", "Livre rituel" },
|
{ "RitualBook", "Livre rituel" },
|
||||||
{ "Roar ESP", "ESP rugissement" },
|
{ "Boar ESP", "ESP Sanglier" },
|
||||||
{ "Role", "Rôle" },
|
{ "Role", "Rôle" },
|
||||||
{ "RottenFood", "Nourriture pourrie" },
|
{ "RottenFood", "Nourriture pourrie" },
|
||||||
{ "Rotton Food ESP", "ESP nourriture pourrie" },
|
{ "Rotten Food ESP", "ESP Nourriture Pourrie" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Tirer sur le joueur" },
|
{ "Shoot Player", "Tirer sur le joueur" },
|
||||||
{ "Show Coordinates", "Afficher coordonnées" },
|
{ "Show Coordinates", "Afficher coordonnées" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "Centre-Sud des États-Unis" },
|
{ "US South Central", "Centre-Sud des États-Unis" },
|
||||||
{ "US West", "Ouest des États-Unis" },
|
{ "US West", "Ouest des États-Unis" },
|
||||||
{ "Unlimited Stamina", "Endurance illimitée" },
|
{ "Unlimited Stamina", "Endurance illimitée" },
|
||||||
{ "Unlimited UV Light", "UV illimitée" },
|
{ "Unlimited UV Light", "UV illimité" },
|
||||||
{ "Unlock Achievements", "Débloquer succès" },
|
{ "Unlock Achievements", "Débloquer succès" },
|
||||||
{ "Unlock Doors", "Déverrouiller portes" },
|
{ "Unlock Doors", "Déverrouiller portes" },
|
||||||
|
{ "God Mode", "Mode Dieu" },
|
||||||
{ "Visuals", "Visuels" },
|
{ "Visuals", "Visuels" },
|
||||||
{ "Waiting for the game to start", "En attente du démarrage" },
|
{ "Waiting for the game to start", "En attente du début de la partie" },
|
||||||
{ "Walk In Lobby", "Marcher dans le lobby" },
|
{ "Walk In Lobby", "Marcher dans le lobby" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Bridesmaid 1", "Demoiselle d'honneur 1" },
|
||||||
|
{ "Bridesmaid 2", "Demoiselle d'honneur 2" },
|
||||||
|
{ "Butler", "Majordome" },
|
||||||
|
{ "Cook", "Cuisinier" },
|
||||||
|
{ "Gardener", "Jardinier" },
|
||||||
|
{ "Groomsman 1", "Garçon d'honneur 1" },
|
||||||
|
{ "Groomsman 2", "Garçon d'honneur 2" },
|
||||||
|
{ "Maid", "Domestique" },
|
||||||
|
{ "Photographer", "Photographe" },
|
||||||
|
{ "Priest", "Prêtre" },
|
||||||
|
{ "Menu Key", "Touche Menu" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Zufälligen Sound abspielen" },
|
{ "Play Random Sound", "Zufälligen Sound abspielen" },
|
||||||
{ "Player", "Spieler" },
|
{ "Player", "Spieler" },
|
||||||
|
{ "Instant Interaction", "Sofortige Interaktion" },
|
||||||
{ "Player Count", "Spieleranzahl" },
|
{ "Player Count", "Spieleranzahl" },
|
||||||
{ "Player ESP", "Spieler ESP" },
|
{ "Player ESP", "Spieler ESP" },
|
||||||
{ "Player ESP Color", "Spieler ESP Farbe" },
|
{ "Player ESP Color", "Spieler ESP Farbe" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "Ratte-ESP" },
|
{ "Rat ESP", "Ratte-ESP" },
|
||||||
{ "Region", "Region" },
|
{ "Region", "Region" },
|
||||||
{ "Revive", "Wiederbeleben" },
|
{ "Revive", "Wiederbeleben" },
|
||||||
{ "Radial Menu (Z)", "Radiales Menü (Z)" },
|
{ "Radial Menu", "Radiales Menü" },
|
||||||
{ "Ritual Book", "Ritualbuch" },
|
{ "Ritual Book", "Ritualbuch" },
|
||||||
{ "Rose", "Rose" },
|
{ "Rose", "Rose" },
|
||||||
{ "Ritual Book ESP", "Ritualbuch-ESP" },
|
{ "Ritual Book ESP", "Ritualbuch-ESP" },
|
||||||
{ "Ritual Object ESP", "Ritualobjekt ESP" },
|
{ "Ritual Object ESP", "Ritualobjekt ESP" },
|
||||||
{ "Ritual Objects", "Rituelle Objekte" },
|
{ "Ritual Objects", "Rituelle Objekte" },
|
||||||
{ "RitualBook", "Ritualbuch" },
|
{ "RitualBook", "Ritualbuch" },
|
||||||
{ "Roar ESP", "Brüllen-ESP" },
|
{ "Boar ESP", "Wildschwein-ESP" },
|
||||||
{ "Role", "Rolle" },
|
{ "Role", "Rolle" },
|
||||||
{ "RottenFood", "Verdorbenes Essen" },
|
{ "RottenFood", "Verdorbenes Essen" },
|
||||||
{ "Rotton Food ESP", "Verdorbenes-Essen-ESP" },
|
{ "Rotten Food ESP", "Verrottetes Essen ESP" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Spieler erschießen" },
|
{ "Shoot Player", "Spieler erschießen" },
|
||||||
{ "Show Coordinates", "Koordinaten anzeigen" },
|
{ "Show Coordinates", "Koordinaten anzeigen" },
|
||||||
@@ -270,14 +271,26 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US East", "USA Ost" },
|
{ "US East", "USA Ost" },
|
||||||
{ "US South Central", "USA Süd-Zentral" },
|
{ "US South Central", "USA Süd-Zentral" },
|
||||||
{ "US West", "USA West" },
|
{ "US West", "USA West" },
|
||||||
{ "Unlimited Stamina", "Unbegrenzte Ausdauer" },
|
{ "Unlimited Stamina", "Unendliche Ausdauer" },
|
||||||
{ "Unlimited UV Light", "Unbegrenzte UV" },
|
{ "Unlimited UV Light", "Unendliches UV-Licht" },
|
||||||
{ "Unlock Achievements", "Erfolge freischalten" },
|
{ "Unlock Achievements", "Erfolge freischalten" },
|
||||||
{ "Unlock Doors", "Türen öffnen" },
|
{ "Unlock Doors", "Türen öffnen" },
|
||||||
|
{ "God Mode", "Gottmodus" },
|
||||||
{ "Visuals", "Visuals" },
|
{ "Visuals", "Visuals" },
|
||||||
{ "Waiting for the game to start", "Warte auf Spielstart" },
|
{ "Waiting for the game to start", "Warte auf Spielstart" },
|
||||||
{ "Walk In Lobby", "Im Lobby laufen" },
|
{ "Walk In Lobby", "Im Lobby laufen" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Bridesmaid 1", "Brautjungfer 1" },
|
||||||
|
{ "Bridesmaid 2", "Brautjungfer 2" },
|
||||||
|
{ "Butler", "Butler" },
|
||||||
|
{ "Cook", "Koch" },
|
||||||
|
{ "Gardener", "Gärtner" },
|
||||||
|
{ "Groomsman 1", "Trauzeuge 1" },
|
||||||
|
{ "Groomsman 2", "Trauzeuge 2" },
|
||||||
|
{ "Maid", "Dienstmädchen" },
|
||||||
|
{ "Photographer", "Fotograf" },
|
||||||
|
{ "Priest", "Priester" },
|
||||||
|
{ "Menu Key", "Menütaste" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Riproduci suono casuale" },
|
{ "Play Random Sound", "Riproduci suono casuale" },
|
||||||
{ "Player", "Giocatore" },
|
{ "Player", "Giocatore" },
|
||||||
|
{ "Instant Interaction", "Interazione istantanea" },
|
||||||
{ "Player Count", "Numero di giocatori" },
|
{ "Player Count", "Numero di giocatori" },
|
||||||
{ "Player ESP", "ESP giocatore" },
|
{ "Player ESP", "ESP giocatore" },
|
||||||
{ "Player ESP Color", "Colore ESP giocatore" },
|
{ "Player ESP Color", "Colore ESP giocatore" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "ESP ratto" },
|
{ "Rat ESP", "ESP ratto" },
|
||||||
{ "Region", "Regione" },
|
{ "Region", "Regione" },
|
||||||
{ "Revive", "Rianima" },
|
{ "Revive", "Rianima" },
|
||||||
{ "Radial Menu (Z)", "Menu radiale (Z)" },
|
{ "Radial Menu", "Menu radiale" },
|
||||||
{ "Ritual Book", "Libro rituale" },
|
{ "Ritual Book", "Libro rituale" },
|
||||||
{ "Rose", "Rosa" },
|
{ "Rose", "Rosa" },
|
||||||
{ "Ritual Book ESP", "ESP libro rituale" },
|
{ "Ritual Book ESP", "ESP libro rituale" },
|
||||||
{ "Ritual Object ESP", "ESP oggetto rituale" },
|
{ "Ritual Object ESP", "ESP oggetto rituale" },
|
||||||
{ "Ritual Objects", "Oggetti rituali" },
|
{ "Ritual Objects", "Oggetti rituali" },
|
||||||
{ "RitualBook", "Libro rituale" },
|
{ "RitualBook", "Libro rituale" },
|
||||||
{ "Roar ESP", "ESP ruggito" },
|
{ "Boar ESP", "ESP Cinghiale" },
|
||||||
{ "Role", "Ruolo" },
|
{ "Role", "Ruolo" },
|
||||||
{ "RottenFood", "Cibo marcio" },
|
{ "RottenFood", "Cibo marcio" },
|
||||||
{ "Rotton Food ESP", "ESP cibo marcio" },
|
{ "Rotten Food ESP", "ESP Cibo Avariato" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Spara al giocatore" },
|
{ "Shoot Player", "Spara al giocatore" },
|
||||||
{ "Show Coordinates", "Mostra coordinate" },
|
{ "Show Coordinates", "Mostra coordinate" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "Centro-Sud USA" },
|
{ "US South Central", "Centro-Sud USA" },
|
||||||
{ "US West", "Ovest USA" },
|
{ "US West", "Ovest USA" },
|
||||||
{ "Unlimited Stamina", "Resistenza illimitata" },
|
{ "Unlimited Stamina", "Resistenza illimitata" },
|
||||||
{ "Unlimited UV Light", "UV illimitata" },
|
{ "Unlimited UV Light", "UV illimitato" },
|
||||||
{ "Unlock Achievements", "Sblocca obiettivi" },
|
{ "Unlock Achievements", "Sblocca obiettivi" },
|
||||||
{ "Unlock Doors", "Sblocca porte" },
|
{ "Unlock Doors", "Sblocca porte" },
|
||||||
{ "Visuals", "Visivi" },
|
{ "God Mode", "Modalità Dio" },
|
||||||
{ "Waiting for the game to start", "In attesa dell'inizio del gioco" },
|
{ "Visuals", "Visuali" },
|
||||||
{ "Walk In Lobby", "Camminare in lobby" },
|
{ "Waiting for the game to start", "In attesa dell'inizio della partita" },
|
||||||
|
{ "Walk In Lobby", "Cammina nel lobby" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Bridesmaid 1", "Damigella 1" },
|
||||||
|
{ "Bridesmaid 2", "Damigella 2" },
|
||||||
|
{ "Butler", "Maggiordomo" },
|
||||||
|
{ "Cook", "Cuoco" },
|
||||||
|
{ "Gardener", "Giardiniere" },
|
||||||
|
{ "Groomsman 1", "Testimone 1" },
|
||||||
|
{ "Groomsman 2", "Testimone 2" },
|
||||||
|
{ "Maid", "Cameriera" },
|
||||||
|
{ "Photographer", "Fotografo" },
|
||||||
|
{ "Priest", "Prete" },
|
||||||
|
{ "Menu Key", "Tasto Menu" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "ランダム音再生" },
|
{ "Play Random Sound", "ランダム音再生" },
|
||||||
{ "Player", "プレイヤー" },
|
{ "Player", "プレイヤー" },
|
||||||
|
{ "Instant Interaction", "即時インタラクション" },
|
||||||
{ "Player Count", "プレイヤー数" },
|
{ "Player Count", "プレイヤー数" },
|
||||||
{ "Player ESP", "プレイヤーESP" },
|
{ "Player ESP", "プレイヤーESP" },
|
||||||
{ "Player ESP Color", "プレイヤーESP色" },
|
{ "Player ESP Color", "プレイヤーESP色" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "ネズミESP" },
|
{ "Rat ESP", "ネズミESP" },
|
||||||
{ "Region", "地域" },
|
{ "Region", "地域" },
|
||||||
{ "Revive", "蘇生" },
|
{ "Revive", "蘇生" },
|
||||||
{ "Radial Menu (Z)", "ラジアルメニュー (Z)" },
|
{ "Radial Menu", "ラジアルメニュー" },
|
||||||
{ "Ritual Book", "儀式の本" },
|
{ "Ritual Book", "儀式の本" },
|
||||||
{ "Rose", "バラ" },
|
{ "Rose", "バラ" },
|
||||||
{ "Ritual Book ESP", "儀式の本ESP" },
|
{ "Ritual Book ESP", "儀式の本ESP" },
|
||||||
{ "Ritual Object ESP", "儀式オブジェクトESP" },
|
{ "Ritual Object ESP", "儀式オブジェクトESP" },
|
||||||
{ "Ritual Objects", "儀式の品" },
|
{ "Ritual Objects", "儀式の品" },
|
||||||
{ "RitualBook", "儀式の本" },
|
{ "RitualBook", "儀式の本" },
|
||||||
{ "Roar ESP", "咆哮ESP" },
|
{ "Boar ESP", "イノシシESP" },
|
||||||
{ "Role", "役割" },
|
{ "Role", "役割" },
|
||||||
{ "RottenFood", "腐った食べ物" },
|
{ "RottenFood", "腐った食べ物" },
|
||||||
{ "Rotton Food ESP", "腐った食べ物ESP" },
|
{ "Rotten Food ESP", "腐った食べ物ESP" },
|
||||||
{ "Sam", "サム" },
|
{ "Sam", "サム" },
|
||||||
{ "Shoot Player", "プレイヤーを撃つ" },
|
{ "Shoot Player", "プレイヤーを撃つ" },
|
||||||
{ "Show Coordinates", "座標を表示" },
|
{ "Show Coordinates", "座標を表示" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "米国中南部" },
|
{ "US South Central", "米国中南部" },
|
||||||
{ "US West", "米国西部" },
|
{ "US West", "米国西部" },
|
||||||
{ "Unlimited Stamina", "無限スタミナ" },
|
{ "Unlimited Stamina", "無限スタミナ" },
|
||||||
{ "Unlimited UV Light", "無限UV" },
|
{ "Unlimited UV Light", "無制限UV" },
|
||||||
{ "Unlock Achievements", "実績解除" },
|
{ "Unlock Achievements", "実績の解除" },
|
||||||
{ "Unlock Doors", "ドアを開ける" },
|
{ "Unlock Doors", "ドアの解除" },
|
||||||
|
{ "God Mode", "神モード" },
|
||||||
{ "Visuals", "ビジュアル" },
|
{ "Visuals", "ビジュアル" },
|
||||||
{ "Waiting for the game to start", "ゲーム開始を待っています" },
|
{ "Waiting for the game to start", "ゲーム開始を待っています" },
|
||||||
{ "Walk In Lobby", "ロビーで歩く" },
|
{ "Walk In Lobby", "ロビーで歩く" },
|
||||||
{ "Zara", "ザラ" },
|
{ "Zara", "ザラ" },
|
||||||
|
{ "Bridesmaid 1", "ブライズメイド 1" },
|
||||||
|
{ "Bridesmaid 2", "ブライズメイド 2" },
|
||||||
|
{ "Butler", "執事" },
|
||||||
|
{ "Cook", "料理人" },
|
||||||
|
{ "Gardener", "庭師" },
|
||||||
|
{ "Groomsman 1", "グルームズマン 1" },
|
||||||
|
{ "Groomsman 2", "グルームズマン 2" },
|
||||||
|
{ "Maid", "メイド" },
|
||||||
|
{ "Photographer", "写真家" },
|
||||||
|
{ "Priest", "司祭" },
|
||||||
|
{ "Menu Key", "メニューキー" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "핑" },
|
{ "Ping", "핑" },
|
||||||
{ "Play Random Sound", "랜덤 사운드 재생" },
|
{ "Play Random Sound", "랜덤 사운드 재생" },
|
||||||
{ "Player", "플레이어" },
|
{ "Player", "플레이어" },
|
||||||
|
{ "Instant Interaction", "즉시 상호작용" },
|
||||||
{ "Player Count", "플레이어 수" },
|
{ "Player Count", "플레이어 수" },
|
||||||
{ "Player ESP", "플레이어 ESP" },
|
{ "Player ESP", "플레이어 ESP" },
|
||||||
{ "Player ESP Color", "플레이어 ESP 색상" },
|
{ "Player ESP Color", "플레이어 ESP 색상" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "쥐 ESP" },
|
{ "Rat ESP", "쥐 ESP" },
|
||||||
{ "Region", "지역" },
|
{ "Region", "지역" },
|
||||||
{ "Revive", "부활" },
|
{ "Revive", "부활" },
|
||||||
{ "Radial Menu (Z)", "방사형 메뉴 (Z)" },
|
{ "Radial Menu", "방사형 메뉴" },
|
||||||
{ "Ritual Book", "의식서" },
|
{ "Ritual Book", "의식서" },
|
||||||
{ "Rose", "장미" },
|
{ "Rose", "장미" },
|
||||||
{ "Ritual Book ESP", "의식서 ESP" },
|
{ "Ritual Book ESP", "의식서 ESP" },
|
||||||
{ "Ritual Object ESP", "의식 물체 ESP" },
|
{ "Ritual Object ESP", "의식 물체 ESP" },
|
||||||
{ "Ritual Objects", "의식 물품" },
|
{ "Ritual Objects", "의식 물품" },
|
||||||
{ "RitualBook", "의식서" },
|
{ "RitualBook", "의식서" },
|
||||||
{ "Roar ESP", "으르렁 ESP" },
|
{ "Boar ESP", "멧돼지 ESP" },
|
||||||
{ "Role", "역할" },
|
{ "Role", "역할" },
|
||||||
{ "RottenFood", "썩은 음식" },
|
{ "RottenFood", "썩은 음식" },
|
||||||
{ "Rotton Food ESP", "썩은 음식 ESP" },
|
{ "Rotten Food ESP", "썩은 음식 ESP" },
|
||||||
{ "Sam", "샘" },
|
{ "Sam", "샘" },
|
||||||
{ "Shoot Player", "플레이어 쏘기" },
|
{ "Shoot Player", "플레이어 쏘기" },
|
||||||
{ "Show Coordinates", "좌표 표시" },
|
{ "Show Coordinates", "좌표 표시" },
|
||||||
@@ -274,10 +275,22 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Unlimited UV Light", "무제한 UV" },
|
{ "Unlimited UV Light", "무제한 UV" },
|
||||||
{ "Unlock Achievements", "업적 잠금 해제" },
|
{ "Unlock Achievements", "업적 잠금 해제" },
|
||||||
{ "Unlock Doors", "문 잠금 해제" },
|
{ "Unlock Doors", "문 잠금 해제" },
|
||||||
|
{ "God Mode", "신 모드" },
|
||||||
{ "Visuals", "비주얼" },
|
{ "Visuals", "비주얼" },
|
||||||
{ "Waiting for the game to start", "게임 시작 대기 중" },
|
{ "Waiting for the game to start", "게임 시작 대기 중" },
|
||||||
{ "Walk In Lobby", "로비에서 걷기" },
|
{ "Walk In Lobby", "로비에서 걷기" },
|
||||||
{ "Zara", "자라" },
|
{ "Zara", "자라" },
|
||||||
|
{ "Bridesmaid 1", "신부 들러리 1" },
|
||||||
|
{ "Bridesmaid 2", "신부 들러리 2" },
|
||||||
|
{ "Butler", "집사" },
|
||||||
|
{ "Cook", "요리사" },
|
||||||
|
{ "Gardener", "정원사" },
|
||||||
|
{ "Groomsman 1", "신랑 들러리 1" },
|
||||||
|
{ "Groomsman 2", "신랑 들러리 2" },
|
||||||
|
{ "Maid", "하녀" },
|
||||||
|
{ "Photographer", "사진가" },
|
||||||
|
{ "Priest", "사제" },
|
||||||
|
{ "Menu Key", "메뉴 키" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Reproduzir som aleatório" },
|
{ "Play Random Sound", "Reproduzir som aleatório" },
|
||||||
{ "Player", "Jogador" },
|
{ "Player", "Jogador" },
|
||||||
|
{ "Instant Interaction", "Interação instantânea" },
|
||||||
{ "Player Count", "Número de jogadores" },
|
{ "Player Count", "Número de jogadores" },
|
||||||
{ "Player ESP", "ESP jogador" },
|
{ "Player ESP", "ESP jogador" },
|
||||||
{ "Player ESP Color", "Cor ESP jogador" },
|
{ "Player ESP Color", "Cor ESP jogador" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "ESP rato" },
|
{ "Rat ESP", "ESP rato" },
|
||||||
{ "Region", "Região" },
|
{ "Region", "Região" },
|
||||||
{ "Revive", "Reviver" },
|
{ "Revive", "Reviver" },
|
||||||
{ "Radial Menu (Z)", "Menu radial (Z)" },
|
{ "Radial Menu", "Menu radial" },
|
||||||
{ "Ritual Book", "Livro ritual" },
|
{ "Ritual Book", "Livro ritual" },
|
||||||
{ "Rose", "Rosa" },
|
{ "Rose", "Rosa" },
|
||||||
{ "Ritual Book ESP", "ESP livro ritual" },
|
{ "Ritual Book ESP", "ESP livro ritual" },
|
||||||
{ "Ritual Object ESP", "ESP objeto ritual" },
|
{ "Ritual Object ESP", "ESP objeto ritual" },
|
||||||
{ "Ritual Objects", "Objetos rituais" },
|
{ "Ritual Objects", "Objetos rituais" },
|
||||||
{ "RitualBook", "Livro ritual" },
|
{ "RitualBook", "Livro ritual" },
|
||||||
{ "Roar ESP", "ESP rugido" },
|
{ "Boar ESP", "ESP Javali" },
|
||||||
{ "Role", "Função" },
|
{ "Role", "Função" },
|
||||||
{ "RottenFood", "Comida podre" },
|
{ "RottenFood", "Comida podre" },
|
||||||
{ "Rotton Food ESP", "ESP comida podre" },
|
{ "Rotten Food ESP", "ESP comida podre" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Atirar no jogador" },
|
{ "Shoot Player", "Atirar no jogador" },
|
||||||
{ "Show Coordinates", "Mostrar coordenadas" },
|
{ "Show Coordinates", "Mostrar coordenadas" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "Centro-Sul dos EUA" },
|
{ "US South Central", "Centro-Sul dos EUA" },
|
||||||
{ "US West", "Oeste dos EUA" },
|
{ "US West", "Oeste dos EUA" },
|
||||||
{ "Unlimited Stamina", "Resistência ilimitada" },
|
{ "Unlimited Stamina", "Resistência ilimitada" },
|
||||||
{ "Unlimited UV Light", "UV ilimitada" },
|
{ "Unlimited UV Light", "UV ilimitado" },
|
||||||
{ "Unlock Achievements", "Desbloquear conquistas" },
|
{ "Unlock Achievements", "Desbloquear conquistas" },
|
||||||
{ "Unlock Doors", "Desbloquear portas" },
|
{ "Unlock Doors", "Desbloquear portas" },
|
||||||
|
{ "God Mode", "Modo Deus" },
|
||||||
{ "Visuals", "Visuais" },
|
{ "Visuals", "Visuais" },
|
||||||
{ "Waiting for the game to start", "Aguardando início do jogo" },
|
{ "Waiting for the game to start", "Aguardando início do jogo" },
|
||||||
{ "Walk In Lobby", "Andar no lobby" },
|
{ "Walk In Lobby", "Andar no lobby" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Bridesmaid 1", "Dama de honra 1" },
|
||||||
|
{ "Bridesmaid 2", "Dama de honra 2" },
|
||||||
|
{ "Butler", "Mordomo" },
|
||||||
|
{ "Cook", "Cozinheiro" },
|
||||||
|
{ "Gardener", "Jardineiro" },
|
||||||
|
{ "Groomsman 1", "Padrinho 1" },
|
||||||
|
{ "Groomsman 2", "Padrinho 2" },
|
||||||
|
{ "Maid", "Empregada" },
|
||||||
|
{ "Photographer", "Fotógrafo" },
|
||||||
|
{ "Priest", "Padre" },
|
||||||
|
{ "Menu Key", "Tecla de Menu" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Пинг" },
|
{ "Ping", "Пинг" },
|
||||||
{ "Play Random Sound", "Воспроизвести случайный звук" },
|
{ "Play Random Sound", "Воспроизвести случайный звук" },
|
||||||
{ "Player", "Игрок" },
|
{ "Player", "Игрок" },
|
||||||
|
{ "Instant Interaction", "Мгновенное взаимодействие" },
|
||||||
{ "Player Count", "Количество игроков" },
|
{ "Player Count", "Количество игроков" },
|
||||||
{ "Player ESP", "ESP игрока" },
|
{ "Player ESP", "ESP игрока" },
|
||||||
{ "Player ESP Color", "Цвет ESP игрока" },
|
{ "Player ESP Color", "Цвет ESP игрока" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "ESP крысы" },
|
{ "Rat ESP", "ESP крысы" },
|
||||||
{ "Region", "Регион" },
|
{ "Region", "Регион" },
|
||||||
{ "Revive", "Воскресить" },
|
{ "Revive", "Воскресить" },
|
||||||
{ "Radial Menu (Z)", "Радиальное меню (Z)" },
|
{ "Radial Menu", "Радиальное меню" },
|
||||||
{ "Ritual Book", "Ритуальная книга" },
|
{ "Ritual Book", "Ритуальная книга" },
|
||||||
{ "Rose", "Роза" },
|
{ "Rose", "Роза" },
|
||||||
{ "Ritual Book ESP", "ESP ритуальной книги" },
|
{ "Ritual Book ESP", "ESP ритуальной книги" },
|
||||||
{ "Ritual Object ESP", "ESP ритуального предмета" },
|
{ "Ritual Object ESP", "ESP ритуального предмета" },
|
||||||
{ "Ritual Objects", "Ритуальные предметы" },
|
{ "Ritual Objects", "Ритуальные предметы" },
|
||||||
{ "RitualBook", "Ритуальная книга" },
|
{ "RitualBook", "Ритуальная книга" },
|
||||||
{ "Roar ESP", "ESP рёва" },
|
{ "Boar ESP", "ESP Кабана" },
|
||||||
{ "Role", "Роль" },
|
{ "Role", "Роль" },
|
||||||
{ "RottenFood", "Гнилая еда" },
|
{ "RottenFood", "Гнилая еда" },
|
||||||
{ "Rotton Food ESP", "ESP гнилой еды" },
|
{ "Rotten Food ESP", "ESP Гнилая Еда" },
|
||||||
{ "Sam", "Сэм" },
|
{ "Sam", "Сэм" },
|
||||||
{ "Shoot Player", "Стрелять в игрока" },
|
{ "Shoot Player", "Стрелять в игрока" },
|
||||||
{ "Show Coordinates", "Показать координаты" },
|
{ "Show Coordinates", "Показать координаты" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "Юго-Центральная часть США" },
|
{ "US South Central", "Юго-Центральная часть США" },
|
||||||
{ "US West", "Запад США" },
|
{ "US West", "Запад США" },
|
||||||
{ "Unlimited Stamina", "Безлимитная выносливость" },
|
{ "Unlimited Stamina", "Безлимитная выносливость" },
|
||||||
{ "Unlimited UV Light", "Безлимитный УФ" },
|
{ "Unlimited UV Light", "Неограниченный УФ" },
|
||||||
{ "Unlock Achievements", "Разблокировать достижения" },
|
{ "Unlock Achievements", "Разблокировать достижения" },
|
||||||
{ "Unlock Doors", "Открыть двери" },
|
{ "Unlock Doors", "Открыть двери" },
|
||||||
{ "Visuals", "Визуалы" },
|
{ "God Mode", "Режим Бога" },
|
||||||
|
{ "Visuals", "Визуализация" },
|
||||||
{ "Waiting for the game to start", "Ожидание начала игры" },
|
{ "Waiting for the game to start", "Ожидание начала игры" },
|
||||||
{ "Walk In Lobby", "Ходить в лобби" },
|
{ "Walk In Lobby", "Ходить в лобби" },
|
||||||
{ "Zara", "Зара" },
|
{ "Zara", "Зара" },
|
||||||
|
{ "Bridesmaid 1", "Подружка невесты 1" },
|
||||||
|
{ "Bridesmaid 2", "Подружка невесты 2" },
|
||||||
|
{ "Butler", "Дворецкий" },
|
||||||
|
{ "Cook", "Повар" },
|
||||||
|
{ "Gardener", "Садовник" },
|
||||||
|
{ "Groomsman 1", "Шафер 1" },
|
||||||
|
{ "Groomsman 2", "Шафер 2" },
|
||||||
|
{ "Maid", "Горничная" },
|
||||||
|
{ "Photographer", "Фотограф" },
|
||||||
|
{ "Priest", "Священник" },
|
||||||
|
{ "Menu Key", "Клавиша меню" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Reproducir sonido aleatorio" },
|
{ "Play Random Sound", "Reproducir sonido aleatorio" },
|
||||||
{ "Player", "Jugador" },
|
{ "Player", "Jugador" },
|
||||||
|
{ "Instant Interaction", "Interacción instantánea" },
|
||||||
{ "Player Count", "Número de jugadores" },
|
{ "Player Count", "Número de jugadores" },
|
||||||
{ "Player ESP", "ESP jugador" },
|
{ "Player ESP", "ESP jugador" },
|
||||||
{ "Player ESP Color", "Color ESP jugador" },
|
{ "Player ESP Color", "Color ESP jugador" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "ESP rata" },
|
{ "Rat ESP", "ESP rata" },
|
||||||
{ "Region", "Región" },
|
{ "Region", "Región" },
|
||||||
{ "Revive", "Revivir" },
|
{ "Revive", "Revivir" },
|
||||||
{ "Radial Menu (Z)", "Menú radial (Z)" },
|
{ "Radial Menu", "Menú radial" },
|
||||||
{ "Ritual Book", "Libro ritual" },
|
{ "Ritual Book", "Libro ritual" },
|
||||||
{ "Rose", "Rosa" },
|
{ "Rose", "Rosa" },
|
||||||
{ "Ritual Book ESP", "ESP libro ritual" },
|
{ "Ritual Book ESP", "ESP libro ritual" },
|
||||||
{ "Ritual Object ESP", "ESP objeto ritual" },
|
{ "Ritual Object ESP", "ESP objeto ritual" },
|
||||||
{ "Ritual Objects", "Objetos rituales" },
|
{ "Ritual Objects", "Objetos rituales" },
|
||||||
{ "RitualBook", "Libro ritual" },
|
{ "RitualBook", "Libro ritual" },
|
||||||
{ "Roar ESP", "ESP rugido" },
|
{ "Boar ESP", "ESP Jabalí" },
|
||||||
{ "Role", "Rol" },
|
{ "Role", "Rol" },
|
||||||
{ "RottenFood", "Comida podrida" },
|
{ "RottenFood", "Comida podrida" },
|
||||||
{ "Rotton Food ESP", "ESP comida podrida" },
|
{ "Rotten Food ESP", "ESP Comida Podrida" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Disparar al jugador" },
|
{ "Shoot Player", "Disparar al jugador" },
|
||||||
{ "Show Coordinates", "Mostrar coordenadas" },
|
{ "Show Coordinates", "Mostrar coordenadas" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "Centro-Sur de EE.UU." },
|
{ "US South Central", "Centro-Sur de EE.UU." },
|
||||||
{ "US West", "Oeste de EE.UU." },
|
{ "US West", "Oeste de EE.UU." },
|
||||||
{ "Unlimited Stamina", "Resistencia ilimitada" },
|
{ "Unlimited Stamina", "Resistencia ilimitada" },
|
||||||
{ "Unlimited UV Light", "UV ilimitada" },
|
{ "Unlimited UV Light", "UV ilimitado" },
|
||||||
{ "Unlock Achievements", "Desbloquear logros" },
|
{ "Unlock Achievements", "Desbloquear logros" },
|
||||||
{ "Unlock Doors", "Desbloquear puertas" },
|
{ "Unlock Doors", "Desbloquear puertas" },
|
||||||
|
{ "God Mode", "Modo Dios" },
|
||||||
{ "Visuals", "Visuales" },
|
{ "Visuals", "Visuales" },
|
||||||
{ "Waiting for the game to start", "Esperando inicio del juego" },
|
{ "Waiting for the game to start", "Esperando a que empiece la partida" },
|
||||||
{ "Walk In Lobby", "Caminar en lobby" },
|
{ "Walk In Lobby", "Caminar en lobby" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Bridesmaid 1", "Dama de honor 1" },
|
||||||
|
{ "Bridesmaid 2", "Dama de honor 2" },
|
||||||
|
{ "Butler", "Mayordomo" },
|
||||||
|
{ "Cook", "Cocinero" },
|
||||||
|
{ "Gardener", "Jardinero" },
|
||||||
|
{ "Groomsman 1", "Padrino 1" },
|
||||||
|
{ "Groomsman 2", "Padrino 2" },
|
||||||
|
{ "Maid", "Criada" },
|
||||||
|
{ "Photographer", "Fotógrafo" },
|
||||||
|
{ "Priest", "Sacerdote" },
|
||||||
|
{ "Menu Key", "Tecla de Menú" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Ping", "Ping" },
|
{ "Ping", "Ping" },
|
||||||
{ "Play Random Sound", "Phát âm thanh ngẫu nhiên" },
|
{ "Play Random Sound", "Phát âm thanh ngẫu nhiên" },
|
||||||
{ "Player", "Người chơi" },
|
{ "Player", "Người chơi" },
|
||||||
|
{ "Instant Interaction", "Tương tác tức thì" },
|
||||||
{ "Player Count", "Số người chơi" },
|
{ "Player Count", "Số người chơi" },
|
||||||
{ "Player ESP", "Người chơi ESP" },
|
{ "Player ESP", "Người chơi ESP" },
|
||||||
{ "Player ESP Color", "Màu người chơi ESP" },
|
{ "Player ESP Color", "Màu người chơi ESP" },
|
||||||
@@ -207,17 +208,17 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "Rat ESP", "Chuột ESP" },
|
{ "Rat ESP", "Chuột ESP" },
|
||||||
{ "Region", "Khu vực" },
|
{ "Region", "Khu vực" },
|
||||||
{ "Revive", "Hồi sinh" },
|
{ "Revive", "Hồi sinh" },
|
||||||
{ "Radial Menu (Z)", "Menu vòng tròn (Z)" },
|
{ "Radial Menu", "Menu vòng tròn" },
|
||||||
{ "Ritual Book", "Sách nghi lễ" },
|
{ "Ritual Book", "Sách nghi lễ" },
|
||||||
{ "Rose", "Hoa hồng" },
|
{ "Rose", "Hoa hồng" },
|
||||||
{ "Ritual Book ESP", "Sách nghi lễ ESP" },
|
{ "Ritual Book ESP", "Sách nghi lễ ESP" },
|
||||||
{ "Ritual Object ESP", "Vật phẩm nghi lễ ESP" },
|
{ "Ritual Object ESP", "Vật phẩm nghi lễ ESP" },
|
||||||
{ "Ritual Objects", "Vật phẩm nghi lễ" },
|
{ "Ritual Objects", "Vật phẩm nghi lễ" },
|
||||||
{ "RitualBook", "RitualBook" },
|
{ "RitualBook", "RitualBook" },
|
||||||
{ "Roar ESP", "Tiếng gầm ESP" },
|
{ "Boar ESP", "Lợn rừng ESP" },
|
||||||
{ "Role", "Vai trò" },
|
{ "Role", "Vai trò" },
|
||||||
{ "RottenFood", "RottenFood" },
|
{ "RottenFood", "RottenFood" },
|
||||||
{ "Rotton Food ESP", "Thức ăn thối ESP" },
|
{ "Rotten Food ESP", "Thức ăn thối ESP" },
|
||||||
{ "Sam", "Sam" },
|
{ "Sam", "Sam" },
|
||||||
{ "Shoot Player", "Bắn người chơi" },
|
{ "Shoot Player", "Bắn người chơi" },
|
||||||
{ "Show Coordinates", "Hiển thị tọa độ" },
|
{ "Show Coordinates", "Hiển thị tọa độ" },
|
||||||
@@ -271,13 +272,25 @@ namespace DevourClient.Localization.Translations
|
|||||||
{ "US South Central", "US Nam Trung" },
|
{ "US South Central", "US Nam Trung" },
|
||||||
{ "US West", "US Tây" },
|
{ "US West", "US Tây" },
|
||||||
{ "Unlimited Stamina", "Thể lực vô hạn" },
|
{ "Unlimited Stamina", "Thể lực vô hạn" },
|
||||||
{ "Unlimited UV Light", "Ánh sáng UV vô hạn" },
|
{ "Unlimited UV Light", "UV không giới hạn" },
|
||||||
{ "Unlock Achievements", "Mở khóa thành tựu" },
|
{ "Unlock Achievements", "Mở khóa thành tựu" },
|
||||||
{ "Unlock Doors", "Mở khóa cửa" },
|
{ "Unlock Doors", "Mở khóa cửa" },
|
||||||
|
{ "God Mode", "Chế độ Thần" },
|
||||||
{ "Visuals", "Hình ảnh" },
|
{ "Visuals", "Hình ảnh" },
|
||||||
{ "Waiting for the game to start", "Đang chờ game bắt đầu" },
|
{ "Waiting for the game to start", "Đang chờ bắt đầu trò chơi" },
|
||||||
{ "Walk In Lobby", "Đi bộ trong phòng chờ" },
|
{ "Walk In Lobby", "Đi trong sảnh" },
|
||||||
{ "Zara", "Zara" },
|
{ "Zara", "Zara" },
|
||||||
|
{ "Bridesmaid 1", "Phù dâu 1" },
|
||||||
|
{ "Bridesmaid 2", "Phù dâu 2" },
|
||||||
|
{ "Butler", "Quản gia" },
|
||||||
|
{ "Cook", "Đầu bếp" },
|
||||||
|
{ "Gardener", "Người làm vườn" },
|
||||||
|
{ "Groomsman 1", "Phù rể 1" },
|
||||||
|
{ "Groomsman 2", "Phù rể 2" },
|
||||||
|
{ "Maid", "Hầu gái" },
|
||||||
|
{ "Photographer", "Nhiếp ảnh gia" },
|
||||||
|
{ "Priest", "Linh mục" },
|
||||||
|
{ "Menu Key", "Phím Menu" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
Note about license. As stated in the GPL FAQ :
|
Note about license. As stated in the GPL FAQ :
|
||||||
You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL.
|
You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL.
|
||||||
Thus, for instance, you must make the source code available to the users of the program as described in the GPL,
|
Thus, for instance, you must make the source code available to the users of the program as described in the GPL,
|
||||||
@@ -9,6 +9,8 @@ If you decide to modify and then sell this software you have to agree with the G
|
|||||||
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Il2CppInterop.Runtime.Injection;
|
using Il2CppInterop.Runtime.Injection;
|
||||||
|
using HarmonyLib;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: MelonLoader.VerifyLoaderVersion(0, 6, 0, true)] //Minimum MelonLoader version is V6.0.0, sanity check for people who use 5.7 and wonder why it crashes :)
|
[assembly: MelonLoader.VerifyLoaderVersion(0, 6, 0, true)] //Minimum MelonLoader version is V6.0.0, sanity check for people who use 5.7 and wonder why it crashes :)
|
||||||
[assembly: MelonLoader.MelonInfo(typeof(DevourClient.Load), "DevourClient", "2", "ALittlePatate & Jadis0x")]
|
[assembly: MelonLoader.MelonInfo(typeof(DevourClient.Load), "DevourClient", "2", "ALittlePatate & Jadis0x")]
|
||||||
@@ -34,6 +36,25 @@ namespace DevourClient
|
|||||||
public override void OnInitializeMelon()
|
public override void OnInitializeMelon()
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var harmony = new HarmonyLib.Harmony("DevourClient.Hooks");
|
||||||
|
harmony.PatchAll(Assembly.GetExecutingAssembly());
|
||||||
|
MelonLoader.MelonLogger.Msg("Harmony patches applied.");
|
||||||
|
}
|
||||||
|
catch (System.Exception ex)
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Error($"Failed to apply Harmony patches: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
|
||||||
|
{
|
||||||
|
if (sceneName == "Menu" && ClientMain.godMode)
|
||||||
|
{
|
||||||
|
ClientMain.godMode = false;
|
||||||
|
ClientMain.godModeOriginalLayer = -1;
|
||||||
|
MelonLoader.MelonLogger.Msg("God Mode disabled on return to menu.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace DevourClient.Network
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get PhotonRegion
|
// Get PhotonRegion
|
||||||
PhotonRegion region = GetPhotonRegion(regionCode);
|
PhotonRegion? region = GetPhotonRegion(regionCode);
|
||||||
if (region == null)
|
if (region == null)
|
||||||
{
|
{
|
||||||
MelonLogger.Error($"[LobbyManager] Failed to find region: {regionCode}");
|
MelonLogger.Error($"[LobbyManager] Failed to find region: {regionCode}");
|
||||||
@@ -36,7 +36,7 @@ namespace DevourClient.Network
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find Menu controller
|
// Find Menu controller
|
||||||
Il2CppHorror.Menu menu = FindMenuController();
|
Il2CppHorror.Menu? menu = FindMenuController();
|
||||||
if (menu == null)
|
if (menu == null)
|
||||||
{
|
{
|
||||||
MelonLogger.Error("[LobbyManager] Failed to find MenuController");
|
MelonLogger.Error("[LobbyManager] Failed to find MenuController");
|
||||||
@@ -92,7 +92,7 @@ namespace DevourClient.Network
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PhotonRegion GetPhotonRegion(string regionCode)
|
private static PhotonRegion? GetPhotonRegion(string regionCode)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -106,7 +106,7 @@ namespace DevourClient.Network
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Il2CppHorror.Menu FindMenuController()
|
private static Il2CppHorror.Menu? FindMenuController()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -156,7 +156,7 @@ namespace DevourClient.Network
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Il2CppHorror.Menu menu = FindMenuController();
|
Il2CppHorror.Menu? menu = FindMenuController();
|
||||||
if (menu == null)
|
if (menu == null)
|
||||||
{
|
{
|
||||||
MelonLogger.Error("[LobbyManager] Failed to find MenuController");
|
MelonLogger.Error("[LobbyManager] Failed to find MenuController");
|
||||||
@@ -177,7 +177,7 @@ namespace DevourClient.Network
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Il2CppHorror.Menu menu = FindMenuController();
|
Il2CppHorror.Menu? menu = FindMenuController();
|
||||||
if (menu != null)
|
if (menu != null)
|
||||||
{
|
{
|
||||||
menu.ShowMessageModal(message);
|
menu.ShowMessageModal(message);
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace DevourClient.Network
|
|||||||
// Get display name by region code (multilanguage support)
|
// Get display name by region code (multilanguage support)
|
||||||
public static string GetDisplayNameByCode(string code)
|
public static string GetDisplayNameByCode(string code)
|
||||||
{
|
{
|
||||||
if (AvailableRegions.TryGetValue(code, out string englishName))
|
if (AvailableRegions.TryGetValue(code, out string? englishName))
|
||||||
{
|
{
|
||||||
// Use MultiLanguageSystem to translate region names
|
// Use MultiLanguageSystem to translate region names
|
||||||
return MultiLanguageSystem.Translate(englishName);
|
return MultiLanguageSystem.Translate(englishName);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace DevourClient
|
|||||||
private static bool _enabled = true; // Controls whether the radial menu is enabled
|
private static bool _enabled = true; // Controls whether the radial menu is enabled
|
||||||
|
|
||||||
// Material used to draw radial arcs (GL immediate mode)
|
// Material used to draw radial arcs (GL immediate mode)
|
||||||
private static Material _radialMaterial;
|
private static Material? _radialMaterial;
|
||||||
|
|
||||||
// Public property to enable/disable the radial menu
|
// Public property to enable/disable the radial menu
|
||||||
public static bool Enabled
|
public static bool Enabled
|
||||||
@@ -51,12 +51,13 @@ namespace DevourClient
|
|||||||
if (!_enabled || !Player.IsInGameOrLobby())
|
if (!_enabled || !Player.IsInGameOrLobby())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (Input.GetKeyDown(KeyCode.Z))
|
KeyCode key = Settings.Settings.radialMenuKey;
|
||||||
|
if (key != KeyCode.None && Input.GetKeyDown(key))
|
||||||
{
|
{
|
||||||
BuildForCurrentScene();
|
BuildForCurrentScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Input.GetKeyUp(KeyCode.Z) && _active)
|
if (key != KeyCode.None && Input.GetKeyUp(key) && _active)
|
||||||
{
|
{
|
||||||
if (_selectedIndex >= 0 && _selectedIndex < _options.Count)
|
if (_selectedIndex >= 0 && _selectedIndex < _options.Count)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,8 +14,10 @@ namespace DevourClient.Settings
|
|||||||
public static Color player_esp_color = new Color(0.00f, 1.00f, 0.00f, 1);
|
public static Color player_esp_color = new Color(0.00f, 1.00f, 0.00f, 1);
|
||||||
public static Color azazel_esp_color = new Color(1.00f, 0.00f, 0.00f, 1);
|
public static Color azazel_esp_color = new Color(1.00f, 0.00f, 0.00f, 1);
|
||||||
public static float speed = 1f;
|
public static float speed = 1f;
|
||||||
|
public static KeyCode menuToggleKey = KeyCode.Insert;
|
||||||
public static KeyCode flyKey = KeyCode.None;
|
public static KeyCode flyKey = KeyCode.None;
|
||||||
public static KeyCode teleportKey = KeyCode.B;
|
public static KeyCode teleportKey = KeyCode.B;
|
||||||
|
public static KeyCode radialMenuKey = KeyCode.Z;
|
||||||
public static Vector2 itemsScrollPosition = Vector2.zero;
|
public static Vector2 itemsScrollPosition = Vector2.zero;
|
||||||
public static Vector2 rituelObjectsScrollPosition = Vector2.zero;
|
public static Vector2 rituelObjectsScrollPosition = Vector2.zero;
|
||||||
public static Vector2 stuffsScrollPosition = Vector2.zero;
|
public static Vector2 stuffsScrollPosition = Vector2.zero;
|
||||||
|
|||||||
362
DevourClient/UI/ClientMenu.cs
Normal file
362
DevourClient/UI/ClientMenu.cs
Normal file
@@ -0,0 +1,362 @@
|
|||||||
|
using DevourClient.Helpers;
|
||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static class ClientMenu
|
||||||
|
{
|
||||||
|
internal static void Draw()
|
||||||
|
{
|
||||||
|
string currentScene = Helpers.Map.GetActiveScene();
|
||||||
|
if (currentScene != ClientMain.lastESPScene)
|
||||||
|
{
|
||||||
|
ESP.ItemESPConfig.ResetAllStates();
|
||||||
|
ClientMain.lastESPScene = currentScene;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.should_show_start_message)
|
||||||
|
{
|
||||||
|
if (DevourClient.Hacks.Misc.ShowMessageBox("Welcome to DevourClient.\n\nPress the INS key to open the menu.") == 0)
|
||||||
|
ClientMain.should_show_start_message = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color originalBackgroundColor = GUI.backgroundColor;
|
||||||
|
GUISkin originalSkin = GUI.skin;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GUI.backgroundColor = Color.grey;
|
||||||
|
|
||||||
|
GUI.skin.button.normal.background = GUIHelper.MakeTex(2, 2, Color.black);
|
||||||
|
GUI.skin.button.normal.textColor = Color.white;
|
||||||
|
GUI.skin.button.hover.background = GUIHelper.MakeTex(2, 2, Color.green);
|
||||||
|
GUI.skin.button.hover.textColor = Color.black;
|
||||||
|
|
||||||
|
GUI.skin.toggle.onNormal.textColor = Color.yellow;
|
||||||
|
|
||||||
|
GUI.skin.textField.normal.background = GUIHelper.MakeTex(2, 2, new Color(0.2f, 0.2f, 0.2f, 0.8f));
|
||||||
|
GUI.skin.textField.normal.textColor = Color.white;
|
||||||
|
GUI.skin.textField.focused.background = GUIHelper.MakeTex(2, 2, new Color(0.3f, 0.5f, 0.3f, 0.9f));
|
||||||
|
GUI.skin.textField.focused.textColor = Color.white;
|
||||||
|
GUI.skin.textField.hover.background = GUIHelper.MakeTex(2, 2, new Color(0.25f, 0.25f, 0.25f, 0.85f));
|
||||||
|
GUI.skin.textField.border = new RectOffset(4, 4, 4, 4);
|
||||||
|
GUI.skin.textField.padding = new RectOffset(6, 6, 4, 4);
|
||||||
|
GUI.skin.textField.fontSize = 14;
|
||||||
|
GUI.skin.textField.alignment = TextAnchor.MiddleLeft;
|
||||||
|
|
||||||
|
GUI.skin.label.normal.textColor = Color.white;
|
||||||
|
|
||||||
|
GUI.skin.horizontalSlider.normal.background = GUIHelper.MakeTex(2, 2, new Color(0.3f, 0.3f, 0.3f, 0.8f));
|
||||||
|
GUI.skin.horizontalSliderThumb.normal.background = GUIHelper.MakeTex(2, 2, Color.white);
|
||||||
|
|
||||||
|
if (UnityEngine.Event.current.type == EventType.Repaint)
|
||||||
|
{
|
||||||
|
RenderRepaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.crosshair && ClientMain.in_game_cache)
|
||||||
|
{
|
||||||
|
const float crosshairSize = 4f;
|
||||||
|
|
||||||
|
float xMin = Settings.Settings.width - (crosshairSize / 2f);
|
||||||
|
float yMin = Settings.Settings.height - (crosshairSize / 2f);
|
||||||
|
|
||||||
|
if (ClientMain.crosshairTexture == null)
|
||||||
|
{
|
||||||
|
ClientMain.crosshairTexture = Helpers.GUIHelper.GetCircularTexture(5, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.DrawTexture(new Rect(xMin, yMin, crosshairSize, crosshairSize), ClientMain.crosshairTexture);
|
||||||
|
}
|
||||||
|
|
||||||
|
RadialMenuManager.HandleOnGUI();
|
||||||
|
|
||||||
|
if (Settings.Settings.menu_enable)
|
||||||
|
{
|
||||||
|
ClientMain.windowRect = GUI.Window(0, ClientMain.windowRect, (GUI.WindowFunction)ClientTabs.DrawTabs, "DevourClient");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (System.Exception ex)
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg($"OnGUI Error: {ex.Message}");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
GUI.backgroundColor = originalBackgroundColor;
|
||||||
|
GUI.skin = originalSkin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RenderRepaint()
|
||||||
|
{
|
||||||
|
if (ClientMain.player_esp || ClientMain.player_snapline || ClientMain.player_skel_esp)
|
||||||
|
{
|
||||||
|
foreach (Helpers.BasePlayer p in Helpers.Entities.Players)
|
||||||
|
{
|
||||||
|
if (p == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameObject player = p.p_GameObject;
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = player.GetComponent<Il2Cpp.NolanBehaviour>();
|
||||||
|
if (nb.entity.IsOwner)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.player_skel_esp)
|
||||||
|
{
|
||||||
|
Render.Render.DrawAllBones(DevourClient.Hacks.Misc.GetAllBones(nb.animator), Settings.Settings.player_esp_color);
|
||||||
|
}
|
||||||
|
|
||||||
|
Render.Render.DrawBoxESP(player, -0.25f, 1.75f, p.Name, Settings.Settings.player_esp_color, ClientMain.player_snapline, ClientMain.player_esp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.goat_rat_esp)
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.GoatBehaviour goat in Helpers.Entities.GoatsAndRats)
|
||||||
|
{
|
||||||
|
if (goat != null)
|
||||||
|
{
|
||||||
|
string itemName = goat.name.Replace("Survival", "").Replace("(Clone)", "");
|
||||||
|
|
||||||
|
if (ESP.ItemESPConfig.ShouldShowESP(itemName))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate(itemName);
|
||||||
|
Render.Render.DrawNameESP(goat.transform.position, translatedName, new Color(0.94f, 0.61f, 0.18f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.item_esp)
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.SurvivalInteractable obj in Helpers.Entities.SurvivalInteractables)
|
||||||
|
{
|
||||||
|
if (obj != null)
|
||||||
|
{
|
||||||
|
string itemName = obj.prefabName.Replace("Survival", "");
|
||||||
|
|
||||||
|
if (ESP.ItemESPConfig.ShouldShowESP(itemName))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate(itemName);
|
||||||
|
Render.Render.DrawNameESP(obj.transform.position, translatedName, new Color(1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.KeyBehaviour key in Helpers.Entities.Keys)
|
||||||
|
{
|
||||||
|
if (key != null)
|
||||||
|
{
|
||||||
|
if (ESP.ItemESPConfig.ShouldShowESP("Key"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Key");
|
||||||
|
Render.Render.DrawNameESP(key.transform.position, translatedName, new Color(1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Helpers.Entities.Collectables != null)
|
||||||
|
{
|
||||||
|
if (ESP.ItemESPConfig.GetESPState(ESP.ItemESPConfig.ESPType.Collectables))
|
||||||
|
{
|
||||||
|
Vector3 playerPosition = Vector3.zero;
|
||||||
|
if (Camera.main != null)
|
||||||
|
{
|
||||||
|
playerPosition = Camera.main.transform.position;
|
||||||
|
}
|
||||||
|
else if (DevourClient.Helpers.Player.GetPlayer() != null)
|
||||||
|
{
|
||||||
|
playerPosition = DevourClient.Helpers.Player.GetPlayer().transform.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.CollectableInteractable collectable in Helpers.Entities.Collectables)
|
||||||
|
{
|
||||||
|
if (collectable != null && collectable.gameObject != null)
|
||||||
|
{
|
||||||
|
string itemName = collectable.gameObject.name.Replace("Survival", "").Replace("(Clone)", "").Trim();
|
||||||
|
|
||||||
|
string displayName = "";
|
||||||
|
Color espColor = new Color(1.0f, 0.84f, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
string lowerName = itemName.ToLower();
|
||||||
|
if (lowerName.Contains("rose") || lowerName.Contains("collectable"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Rose");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("patch"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Patch");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("cherry") || lowerName.Contains("blossom"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Cherry Blossom");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("horseshoe"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Horseshoe");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("barbed") || lowerName.Contains("wire"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Barbed Wire");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("feather"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Feather");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("ticket"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Ticket");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("pumpkin"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Pumpkin");
|
||||||
|
}
|
||||||
|
else if (lowerName.Contains("present"))
|
||||||
|
{
|
||||||
|
displayName = MultiLanguageSystem.Translate("Present");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
displayName = itemName;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(displayName))
|
||||||
|
{
|
||||||
|
Render.Render.DrawNameESP(collectable.transform.position, displayName, espColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.demon_esp)
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.SurvivalDemonBehaviour demon in Helpers.Entities.Demons)
|
||||||
|
{
|
||||||
|
if (demon != null)
|
||||||
|
{
|
||||||
|
string enemyName = demon.name.Replace("Survival", "").Replace("(Clone)", "");
|
||||||
|
|
||||||
|
if (ESP.ItemESPConfig.ShouldShowESP(enemyName))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate(enemyName);
|
||||||
|
Render.Render.DrawNameESP(demon.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.SpiderBehaviour spider in Helpers.Entities.Spiders)
|
||||||
|
{
|
||||||
|
if (spider != null && ESP.ItemESPConfig.ShouldShowESP("Spider"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Spider");
|
||||||
|
Render.Render.DrawNameESP(spider.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.GhostBehaviour ghost in Helpers.Entities.Ghosts)
|
||||||
|
{
|
||||||
|
if (ghost != null && ESP.ItemESPConfig.ShouldShowESP("Ghost"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Ghost");
|
||||||
|
Render.Render.DrawNameESP(ghost.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.BoarBehaviour boar in Helpers.Entities.Boars)
|
||||||
|
{
|
||||||
|
if (boar != null && ESP.ItemESPConfig.ShouldShowESP("Boar"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Boar");
|
||||||
|
Render.Render.DrawNameESP(boar.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.CorpseBehaviour corpse in Helpers.Entities.Corpses)
|
||||||
|
{
|
||||||
|
if (corpse != null && ESP.ItemESPConfig.ShouldShowESP("Corpse"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Corpse");
|
||||||
|
Render.Render.DrawNameESP(corpse.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.CrowBehaviour crow in Helpers.Entities.Crows)
|
||||||
|
{
|
||||||
|
if (crow != null && ESP.ItemESPConfig.ShouldShowESP("Crow"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Crow");
|
||||||
|
Render.Render.DrawNameESP(crow.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.ManorLumpController lump in Helpers.Entities.Lumps)
|
||||||
|
{
|
||||||
|
if (lump != null && ESP.ItemESPConfig.ShouldShowESP("Lump"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Lump");
|
||||||
|
Render.Render.DrawNameESP(lump.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.GoatBehaviour dirtyHead in Helpers.Entities.DirtyHeads)
|
||||||
|
{
|
||||||
|
if (dirtyHead != null && ESP.ItemESPConfig.ShouldShowESP("DirtyHead"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("DirtyHead");
|
||||||
|
Render.Render.DrawNameESP(dirtyHead.transform.position, translatedName, new Color(0.94f, 0.61f, 0.18f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.MonkeyBehaviour monkey in Helpers.Entities.Monkeys)
|
||||||
|
{
|
||||||
|
if (monkey != null && ESP.ItemESPConfig.ShouldShowESP("Monkey"))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Monkey");
|
||||||
|
Render.Render.DrawNameESP(monkey.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Il2Cpp.GoatBehaviour doll in Helpers.Entities.Dolls)
|
||||||
|
{
|
||||||
|
if (doll != null)
|
||||||
|
{
|
||||||
|
string itemName = doll.name.Replace("Survival", "").Replace("(Clone)", "");
|
||||||
|
|
||||||
|
if (ESP.ItemESPConfig.ShouldShowESP(itemName))
|
||||||
|
{
|
||||||
|
string translatedName = MultiLanguageSystem.Translate(itemName);
|
||||||
|
Render.Render.DrawNameESP(doll.transform.position, translatedName, new Color(1.0f, 0.0f, 0.0f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.azazel_esp || ClientMain.azazel_snapline || ClientMain.azazel_skel_esp)
|
||||||
|
{
|
||||||
|
foreach (Il2Cpp.SurvivalAzazelBehaviour survivalAzazel in Helpers.Entities.Azazels)
|
||||||
|
{
|
||||||
|
if (survivalAzazel != null)
|
||||||
|
{
|
||||||
|
if (ClientMain.azazel_skel_esp)
|
||||||
|
{
|
||||||
|
Render.Render.DrawAllBones(DevourClient.Hacks.Misc.GetAllBones(survivalAzazel.animator), Settings.Settings.azazel_esp_color);
|
||||||
|
}
|
||||||
|
|
||||||
|
string translatedName = MultiLanguageSystem.Translate("Azazel");
|
||||||
|
Render.Render.DrawBoxESP(survivalAzazel.gameObject, -0.25f, 2.0f, translatedName, Settings.Settings.azazel_esp_color, ClientMain.azazel_snapline, ClientMain.azazel_esp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
116
DevourClient/UI/ClientTabs.ESP.cs
Normal file
116
DevourClient/UI/ClientTabs.ESP.cs
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
using DevourClient.Helpers;
|
||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void EspTab()
|
||||||
|
{
|
||||||
|
ClientMain.player_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 20), ClientMain.player_esp, MultiLanguageSystem.Translate("Player ESP"));
|
||||||
|
ClientMain.player_skel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 150, 20), ClientMain.player_skel_esp, MultiLanguageSystem.Translate("Skeleton ESP"));
|
||||||
|
ClientMain.player_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 130, 150, 20), ClientMain.player_snapline, MultiLanguageSystem.Translate("Player Snapline"));
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 160, 130, 30), MultiLanguageSystem.Translate("Player ESP Color")))
|
||||||
|
{
|
||||||
|
ClientMain.player_esp_colorpick = !ClientMain.player_esp_colorpick;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.player_esp_colorpick)
|
||||||
|
{
|
||||||
|
Color player_esp_color_input = GUIHelper.ColorPick(MultiLanguageSystem.Translate("Player ESP Color"), Settings.Settings.player_esp_color);
|
||||||
|
Settings.Settings.player_esp_color = player_esp_color_input;
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientMain.azazel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 200, 150, 20), ClientMain.azazel_esp, MultiLanguageSystem.Translate("Azazel ESP"));
|
||||||
|
ClientMain.azazel_skel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 230, 150, 20), ClientMain.azazel_skel_esp, MultiLanguageSystem.Translate("Skeleton ESP"));
|
||||||
|
ClientMain.azazel_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 260, 150, 20), ClientMain.azazel_snapline, MultiLanguageSystem.Translate("Azazel Snapline"));
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 290, 130, 30), MultiLanguageSystem.Translate("Azazel ESP Color")))
|
||||||
|
{
|
||||||
|
ClientMain.azazel_esp_colorpick = !ClientMain.azazel_esp_colorpick;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.azazel_esp_colorpick)
|
||||||
|
{
|
||||||
|
Color azazel_esp_color_input = GUIHelper.ColorPick(MultiLanguageSystem.Translate("Azazel ESP Color"), Settings.Settings.azazel_esp_color);
|
||||||
|
Settings.Settings.azazel_esp_color = azazel_esp_color_input;
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawESPPanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void DrawESPPanel()
|
||||||
|
{
|
||||||
|
string currentScene = Map.GetActiveScene();
|
||||||
|
List<ESP.ItemESPConfig.ESPType> espTypes = ESP.ItemESPConfig.GetMapESPTypes(currentScene);
|
||||||
|
if (espTypes.Count == 0 && currentScene != "Menu")
|
||||||
|
{
|
||||||
|
espTypes = new List<ESP.ItemESPConfig.ESPType>();
|
||||||
|
}
|
||||||
|
|
||||||
|
float panelX = Settings.Settings.x + 370;
|
||||||
|
float panelY = Settings.Settings.y + 70;
|
||||||
|
float panelWidth = 180;
|
||||||
|
float itemHeight = 30;
|
||||||
|
float padding = 5;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(panelX, panelY, panelWidth, 25),
|
||||||
|
MultiLanguageSystem.Translate("ESP Settings"),
|
||||||
|
GUI.skin.box);
|
||||||
|
|
||||||
|
float yOffset = panelY + 30;
|
||||||
|
if (espTypes.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var espType in espTypes)
|
||||||
|
{
|
||||||
|
string displayName = ESP.ItemESPConfig.GetESPTypeName(espType);
|
||||||
|
string translatedName = MultiLanguageSystem.Translate(displayName);
|
||||||
|
|
||||||
|
bool currentState = ESP.ItemESPConfig.GetESPState(espType);
|
||||||
|
bool newState = GUI.Toggle(
|
||||||
|
new Rect(panelX + padding, yOffset, panelWidth - padding * 2, itemHeight - padding),
|
||||||
|
currentState,
|
||||||
|
translatedName
|
||||||
|
);
|
||||||
|
|
||||||
|
if (newState != currentState)
|
||||||
|
{
|
||||||
|
ESP.ItemESPConfig.SetESPState(espType, newState);
|
||||||
|
}
|
||||||
|
|
||||||
|
yOffset += itemHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
yOffset += 5;
|
||||||
|
GUI.Label(new Rect(panelX + padding, yOffset, panelWidth - padding * 2, 20),
|
||||||
|
"─────────",
|
||||||
|
new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleCenter });
|
||||||
|
yOffset += 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool collectablesCurrentState = ESP.ItemESPConfig.GetESPState(ESP.ItemESPConfig.ESPType.Collectables);
|
||||||
|
bool collectablesNewState = GUI.Toggle(
|
||||||
|
new Rect(panelX + padding, yOffset, panelWidth - padding * 2, itemHeight - padding),
|
||||||
|
collectablesCurrentState,
|
||||||
|
MultiLanguageSystem.Translate("Collectables ESP")
|
||||||
|
);
|
||||||
|
|
||||||
|
if (collectablesNewState != collectablesCurrentState)
|
||||||
|
{
|
||||||
|
ESP.ItemESPConfig.SetESPState(ESP.ItemESPConfig.ESPType.Collectables, collectablesNewState);
|
||||||
|
}
|
||||||
|
yOffset += itemHeight;
|
||||||
|
|
||||||
|
if (currentScene != "Menu")
|
||||||
|
{
|
||||||
|
string mapDisplayName = Map.GetMapName(currentScene);
|
||||||
|
GUI.Label(
|
||||||
|
new Rect(panelX, yOffset + 10, panelWidth, 20),
|
||||||
|
$"Map: {mapDisplayName}",
|
||||||
|
new GUIStyle(GUI.skin.label) { fontSize = 10, alignment = TextAnchor.MiddleCenter }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
146
DevourClient/UI/ClientTabs.Entities.cs
Normal file
146
DevourClient/UI/ClientTabs.Entities.cs
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
using DevourClient.Localization;
|
||||||
|
using DevourClient.Helpers;
|
||||||
|
using Il2CppPhoton.Bolt;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void EntitiesTab()
|
||||||
|
{
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 130, 30), MultiLanguageSystem.Translate("TP items to you")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.TPItems();
|
||||||
|
MelonLoader.MelonLogger.Msg("TP Items!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110, 130, 30), MultiLanguageSystem.Translate("Freeze azazel")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.FreezeAzazel();
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 150, 120, 30), MultiLanguageSystem.Translate("Azazel & Demons"));
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("Sam")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.SpawnAzazel((PrefabId)BoltPrefabs.AzazelSam);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 80, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("SurvivalMolly")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.SpawnAzazel((PrefabId)BoltPrefabs.SurvivalAzazelMolly);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 150, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("Anna")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalAnnaNew, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("Zara")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AzazelZara, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 290, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("SurvivalNathan")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AzazelNathan, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 360, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("SurvivalApril")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AzazelApril, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 430, Settings.Settings.y + 180, 60, 25), MultiLanguageSystem.Translate("SurvivalKai")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AzazelKai, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Ghost")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Ghost, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 80, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Inmate")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalInmate, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 150, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Demon")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalDemon, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Boar")) && DevourClient.Helpers.Player.IsInGameOrLobby() && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Boar, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 290, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Corpse")) && BoltNetwork.IsServer && DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Corpse, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 360, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Crow")) && BoltNetwork.IsServer && DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Crow, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 430, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Lump")) && BoltNetwork.IsServer && DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.ManorLump, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 500, Settings.Settings.y + 220, 60, 25), MultiLanguageSystem.Translate("Monkey")) && BoltNetwork.IsServer && DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Monkey, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 260, 60, 25), MultiLanguageSystem.Translate("Rat")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalRat, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DevourClient.Helpers.Player.IsInGame() && !DevourClient.Helpers.Player.IsPlayerCrawling())
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CarryObject("SurvivalRat");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 80, Settings.Settings.y + 260, 60, 25), MultiLanguageSystem.Translate("Goat")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalGoat, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DevourClient.Helpers.Player.IsInGame() && !DevourClient.Helpers.Player.IsPlayerCrawling())
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CarryObject("SurvivalGoat");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 150, Settings.Settings.y + 260, 60, 25), MultiLanguageSystem.Translate("Spider")) && BoltNetwork.IsServer && DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Spider, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 260, 60, 25), MultiLanguageSystem.Translate("Pig")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalPig, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DevourClient.Helpers.Player.IsInGame() && !DevourClient.Helpers.Player.IsPlayerCrawling())
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CarryObject("SurvivalPig");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
416
DevourClient/UI/ClientTabs.Items.cs
Normal file
416
DevourClient/UI/ClientTabs.Items.cs
Normal file
@@ -0,0 +1,416 @@
|
|||||||
|
using DevourClient.Localization;
|
||||||
|
using Il2CppPhoton.Bolt;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void ItemsTab()
|
||||||
|
{
|
||||||
|
GUILayout.BeginHorizontal();
|
||||||
|
|
||||||
|
GUILayout.BeginVertical();
|
||||||
|
GUILayout.Label(MultiLanguageSystem.Translate("Items"));
|
||||||
|
Settings.Settings.itemsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.itemsScrollPosition, GUILayout.Width(220), GUILayout.Height(190));
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Hay")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalHay, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalHay");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("First aid")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalFirstAid, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalFirstAid");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Battery")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalBattery, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalBattery");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Gasoline")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalGasoline, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalGasoline");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Fuse")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalFuse, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalFuse");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Food")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalRottenFood, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalRottenFood");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Bone")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalBone, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalBone");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Bleach")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalBleach, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalBleach");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Matchbox")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalMatchbox, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("Matchbox-3");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Spade")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalSpade, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalSpade");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Cake")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCake, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalCake");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("MusicBox")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalMusicBox, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("MusicBox-Idle");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Coin")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCoin, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ClientMain.HandleItemCarry("SurvivalCoin");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GUILayout.EndScrollView();
|
||||||
|
ClientMain.autoItemFarm = GUILayout.Toggle(ClientMain.autoItemFarm, MultiLanguageSystem.Translate("Auto farm items (x5)"));
|
||||||
|
GUILayout.EndVertical();
|
||||||
|
|
||||||
|
GUILayout.BeginVertical();
|
||||||
|
GUILayout.Label(MultiLanguageSystem.Translate("Ritual Objects"));
|
||||||
|
Settings.Settings.rituelObjectsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.rituelObjectsScrollPosition, GUILayout.Width(220), GUILayout.Height(190));
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-1"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-1");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-2"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-2");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-3"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-3");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-4"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-4");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-5"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-5");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-6"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-6");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-7"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-7");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-8"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-8");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-9"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-9");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Egg-10"))) DevourClient.Hacks.Misc.CarryObject("Egg-Clean-10");
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Ritual Book")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalRitualBook, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CarryObject("RitualBook-Active-1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("DollHead")))
|
||||||
|
{
|
||||||
|
if (BoltNetwork.IsServer && !DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalDollHead, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CarryObject("SurvivalDollHead");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Gardener"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Gardener");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Butler"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Butler");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Bridesmaid 1"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Bridesmaid_01");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Bridesmaid 2"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Bridesmaid_02");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Cook"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Cook");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Groomsman 1"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Groomsman_01");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Groomsman 2"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Groomsman_02");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Maid"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Maid");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Photographer"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Photographer");
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Priest"))) DevourClient.Hacks.Misc.CarryObject("Head-Clean-Priest");
|
||||||
|
|
||||||
|
GUILayout.EndScrollView();
|
||||||
|
GUILayout.EndVertical();
|
||||||
|
|
||||||
|
GUILayout.BeginVertical();
|
||||||
|
GUILayout.Label(MultiLanguageSystem.Translate("Spawnable Prefabs"));
|
||||||
|
Settings.Settings.stuffsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.stuffsScrollPosition, GUILayout.Width(220), GUILayout.Height(190));
|
||||||
|
|
||||||
|
DrawSpawnablePrefabs();
|
||||||
|
|
||||||
|
GUILayout.EndScrollView();
|
||||||
|
GUILayout.EndVertical();
|
||||||
|
|
||||||
|
GUILayout.EndHorizontal();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void DrawSpawnablePrefabs()
|
||||||
|
{
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Animal_Gate")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Animal_Gate, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("AsylumDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AsylumDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("AsylumDoubleDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AsylumDoubleDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("AsylumWhiteDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.AsylumWhiteDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("DevourDoorBack")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.DevourDoorBack, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("DevourDoorMain")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.DevourDoorMain, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("DevourDoorRoom")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.DevourDoorRoom, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Elevator_Door")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Elevator_Door, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("InnDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.InnDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("InnDoubleDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.InnDoubleDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("InnShojiDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.InnShojiDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("InnShrine")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.InnShrine, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("InnWardrobe")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.InnWardrobe, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("InnWoodenDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.InnWoodenDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("PigExcrement")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.PigExcrement, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SlaughterhouseFireEscapeDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SlaughterhouseFireEscapeDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalAltarMolly")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalAltarMolly, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalAltarSlaughterhouse")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalAltarSlaughterhouse, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalAltarTown")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalAltarTown, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalCultist")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalCultist, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalKai")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalKai, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalNathan")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalNathan, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalMolly")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalMolly, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalApril")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalApril, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalFrank")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalFrank, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalRose")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalRose, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("SurvivalSmashableWindow")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.SurvivalSmashableWindow, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("TownDoor")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.TownDoor, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("TownDoor2")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.TownDoor2, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("TownPentagram")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.TownPentagram, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("TrashCan")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.TrashCan, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Truck_Shutter")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.Truck_Shutter, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("TV")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.TV, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Mirror")) && BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
BoltNetwork.Instantiate(BoltPrefabs.ManorMirror, DevourClient.Helpers.Player.GetPlayer().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
279
DevourClient/UI/ClientTabs.Map.cs
Normal file
279
DevourClient/UI/ClientTabs.Map.cs
Normal file
@@ -0,0 +1,279 @@
|
|||||||
|
using DevourClient.Helpers;
|
||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void MapSpecificTab()
|
||||||
|
{
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("Instant Win")) && DevourClient.Helpers.Player.IsInGame() && Il2CppPhoton.Bolt.BoltNetwork.IsSinglePlayer)
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.InstantWin();
|
||||||
|
MelonLoader.MelonLogger.Msg("EZ Win");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Burn a ritual object")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.BurnRitualObj(Map.GetActiveScene(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 150, 150, 30), MultiLanguageSystem.Translate("Burn all ritual objects")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.BurnRitualObj(Map.GetActiveScene(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (Map.GetActiveScene())
|
||||||
|
{
|
||||||
|
case "Menu":
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Devour":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Despawn Demons")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnDemons();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Molly":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Despawn Inmates")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnDemons();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Inn":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Clean The Fountains")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.CleanFountain();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), MultiLanguageSystem.Translate("Despawn Spiders")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnSpiders();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Town":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Despawn Ghosts")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnGhosts();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Slaughterhouse":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Despawn Boars")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnBoars();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), MultiLanguageSystem.Translate("Despawn Corpses")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnCorpses();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Manor":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Despawn Crows")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnCrows();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), MultiLanguageSystem.Translate("Despawn Lumps")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnLumps();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("Switch realm")))
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
Vector3 pos = nb.transform.position;
|
||||||
|
|
||||||
|
Il2Cpp.ManorDeadRealmTrigger realm = Il2Cpp.ManorDeadRealmTrigger.FindObjectOfType<Il2Cpp.ManorDeadRealmTrigger>();
|
||||||
|
if (realm == null)
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Warning("realm was null.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (realm.IsInDeadRealm)
|
||||||
|
{
|
||||||
|
pos.x += 150f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pos.x -= 150f;
|
||||||
|
}
|
||||||
|
|
||||||
|
nb.locomotion.SetPosition(pos, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Switch realm (house)")))
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
Vector3 pos = nb.transform.position;
|
||||||
|
|
||||||
|
Il2Cpp.ManorDeadRealmTrigger realm = Il2Cpp.ManorDeadRealmTrigger.FindObjectOfType<Il2Cpp.ManorDeadRealmTrigger>();
|
||||||
|
if (realm == null)
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Warning("realm was null.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (realm.IsInDeadRealm)
|
||||||
|
{
|
||||||
|
pos.x = -10.216758f;
|
||||||
|
pos.y = 0.009999979f;
|
||||||
|
pos.z = -7.632657f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pos.x = -160.03688f;
|
||||||
|
pos.y = 0.010014875f;
|
||||||
|
pos.z = -7.5686994f;
|
||||||
|
}
|
||||||
|
|
||||||
|
nb.locomotion.SetPosition(pos, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientMain.infinite_mirrors = GUI.Toggle(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 150, 150, 20), ClientMain.infinite_mirrors, MultiLanguageSystem.Translate("Infinite mirrors"));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Carnival":
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("TP to Azazel")))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
nb.TeleportTo(Map.GetAzazel().transform.position, Quaternion.identity);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MelonLoader.MelonLogger.Msg("Azazel not found !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), MultiLanguageSystem.Translate("Despawn Monkeys")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.DespawnMonkeys();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 210, 100, 30), MultiLanguageSystem.Translate("Load Map:"));
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 240, 90, 30), MultiLanguageSystem.Translate("Farmhouse")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Devour");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 110, Settings.Settings.y + 240, 90, 30), MultiLanguageSystem.Translate("Asylum")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Molly");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 210, Settings.Settings.y + 240, 90, 30), MultiLanguageSystem.Translate("Inn")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Inn");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 310, Settings.Settings.y + 240, 90, 30), MultiLanguageSystem.Translate("Town")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Town");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 280, 90, 30), MultiLanguageSystem.Translate("Slaughterhouse")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Slaughterhouse");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 110, Settings.Settings.y + 280, 90, 30), MultiLanguageSystem.Translate("Manor")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Manor");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 210, Settings.Settings.y + 280, 90, 30), MultiLanguageSystem.Translate("Carnival")) && Il2CppPhoton.Bolt.BoltNetwork.IsServer)
|
||||||
|
{
|
||||||
|
Map.LoadMap("Carnival");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
173
DevourClient/UI/ClientTabs.Misc.cs
Normal file
173
DevourClient/UI/ClientTabs.Misc.cs
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
using DevourClient.Localization;
|
||||||
|
using Il2CppOpsive.UltimateCharacterController.Character;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void MiscTab()
|
||||||
|
{
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 320, Settings.Settings.y + 70, 150, 20), "Language :");
|
||||||
|
|
||||||
|
string currentLanguageName = MultiLanguageSystem.GetLanguageDisplayName(Settings.Settings.selectedLanguage);
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 320, Settings.Settings.y + 95, 150, 30), currentLanguageName))
|
||||||
|
{
|
||||||
|
Settings.Settings.showLanguageSelector = !Settings.Settings.showLanguageSelector;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Settings.Settings.showLanguageSelector)
|
||||||
|
{
|
||||||
|
DevourClient.Localization.Language[] allLanguages = MultiLanguageSystem.GetAllLanguages();
|
||||||
|
float yOffset = 130;
|
||||||
|
|
||||||
|
GUI.Box(new Rect(Settings.Settings.x + 320, Settings.Settings.y + yOffset - 5, 150, allLanguages.Length * 25 + 10), "");
|
||||||
|
|
||||||
|
foreach (DevourClient.Localization.Language lang in allLanguages)
|
||||||
|
{
|
||||||
|
string displayName = MultiLanguageSystem.GetLanguageDisplayName(lang);
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 325, Settings.Settings.y + yOffset, 140, 20), displayName))
|
||||||
|
{
|
||||||
|
Settings.Settings.selectedLanguage = lang;
|
||||||
|
MultiLanguageSystem.CurrentLanguage = lang;
|
||||||
|
Settings.Settings.showLanguageSelector = false;
|
||||||
|
MelonLoader.MelonLogger.Msg($"Language changed to: {displayName}");
|
||||||
|
}
|
||||||
|
yOffset += 25;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 140, 28), MultiLanguageSystem.Translate("Unlock Achievements")))
|
||||||
|
{
|
||||||
|
Thread AchievementsThread = new Thread(new ThreadStart(DevourClient.Hacks.Unlock.Achievements));
|
||||||
|
AchievementsThread.Start();
|
||||||
|
|
||||||
|
MelonLoader.MelonLogger.Msg("Achievements unlocked!");
|
||||||
|
DevourClient.Hacks.Misc.ShowMessageBox("Achievements unlocked!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 160, Settings.Settings.y + 70, 140, 28), MultiLanguageSystem.Translate("Unlock Doors")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Unlock.Doors();
|
||||||
|
MelonLoader.MelonLogger.Msg("Doors unlocked!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 108, 140, 28), MultiLanguageSystem.Translate("Teleport Keys")) && DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.TPKeys();
|
||||||
|
MelonLoader.MelonLogger.Msg("Keys teleported!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 160, Settings.Settings.y + 108, 140, 28), MultiLanguageSystem.Translate("Play Random Sound")))
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.PlaySound();
|
||||||
|
MelonLoader.MelonLogger.Msg("Playing random sound!");
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientMain._walkInLobby = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 155, 140, 20), ClientMain._walkInLobby, MultiLanguageSystem.Translate("Walk In Lobby"));
|
||||||
|
ClientMain._IsAutoRespawn = GUI.Toggle(new Rect(Settings.Settings.x + 160, Settings.Settings.y + 155, 140, 20), ClientMain._IsAutoRespawn, MultiLanguageSystem.Translate("Auto Respawn"));
|
||||||
|
|
||||||
|
ClientMain.fly = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 180, 100, 20), ClientMain.fly, MultiLanguageSystem.Translate("Fly"));
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 120, Settings.Settings.y + 180, 60, 20), Settings.Settings.flyKey.ToString()))
|
||||||
|
{
|
||||||
|
Settings.Settings.flyKey = Settings.Settings.GetKey();
|
||||||
|
}
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 20, Settings.Settings.y + 205, 80, 20), MultiLanguageSystem.Translate("Fly Speed") + ":");
|
||||||
|
ClientMain.fly_speed = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 100, Settings.Settings.y + 210, 150, 10), ClientMain.fly_speed, 5f, 20f);
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 260, Settings.Settings.y + 205, 50, 20), ((int)ClientMain.fly_speed).ToString());
|
||||||
|
|
||||||
|
ClientMain.spoofLevel = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 250, 200, 20), ClientMain.spoofLevel, MultiLanguageSystem.Translate("Spoof Level"));
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 20, Settings.Settings.y + 275, 80, 20), MultiLanguageSystem.Translate("Level") + ":");
|
||||||
|
ClientMain.spoofLevelValue = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 100, Settings.Settings.y + 280, 150, 10), ClientMain.spoofLevelValue, 0f, 666f);
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 260, Settings.Settings.y + 275, 50, 20), ((int)ClientMain.spoofLevelValue).ToString());
|
||||||
|
|
||||||
|
bool newGodMode = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 480, 200, 20), ClientMain.godMode, MultiLanguageSystem.Translate("God Mode"));
|
||||||
|
if (newGodMode != ClientMain.godMode)
|
||||||
|
{
|
||||||
|
ClientMain.godMode = newGodMode;
|
||||||
|
if (DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
var nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
if (nb != null)
|
||||||
|
{
|
||||||
|
if (ClientMain.godMode)
|
||||||
|
{
|
||||||
|
ClientMain.godModeOriginalLayer = nb.gameObject.layer;
|
||||||
|
nb.gameObject.layer = LayerMask.NameToLayer("Default");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int targetLayer = ClientMain.godModeOriginalLayer;
|
||||||
|
if (targetLayer < 0)
|
||||||
|
{
|
||||||
|
var layerManager = nb.gameObject.GetComponent<CharacterLayerManager>();
|
||||||
|
if (layerManager != null)
|
||||||
|
{
|
||||||
|
var maskValue = layerManager.CharacterLayer.value;
|
||||||
|
if (maskValue != 0 && (maskValue & (maskValue - 1)) == 0)
|
||||||
|
{
|
||||||
|
targetLayer = (int)Mathf.Log(maskValue, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (targetLayer < 0)
|
||||||
|
{
|
||||||
|
int playerLayer = LayerMask.NameToLayer("Player");
|
||||||
|
if (playerLayer >= 0) targetLayer = playerLayer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (targetLayer >= 0)
|
||||||
|
{
|
||||||
|
nb.gameObject.layer = targetLayer;
|
||||||
|
}
|
||||||
|
ClientMain.godModeOriginalLayer = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientMain.exp_modifier = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 310, 200, 20), ClientMain.exp_modifier, MultiLanguageSystem.Translate("Exp Modifier"));
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 20, Settings.Settings.y + 335, 80, 20), MultiLanguageSystem.Translate("Exp Value") + ":");
|
||||||
|
ClientMain.exp = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 100, Settings.Settings.y + 340, 150, 10), ClientMain.exp, 1000f, 6000f);
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 260, Settings.Settings.y + 335, 50, 20), ((int)ClientMain.exp).ToString());
|
||||||
|
|
||||||
|
ClientMain.fastMove = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 370, 200, 20), ClientMain.fastMove, MultiLanguageSystem.Translate("Fast Move"));
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 20, Settings.Settings.y + 395, 100, 20), MultiLanguageSystem.Translate("Speed Multiplier") + ":");
|
||||||
|
ClientMain._PlayerSpeedMultiplier = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 130, Settings.Settings.y + 400, 120, 10), ClientMain._PlayerSpeedMultiplier, (int)1f, (int)10f);
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 260, Settings.Settings.y + 395, 50, 20), ((int)ClientMain._PlayerSpeedMultiplier).ToString());
|
||||||
|
|
||||||
|
ClientMain.showCoordinates = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 430, 200, 20), ClientMain.showCoordinates, MultiLanguageSystem.Translate("Show Coordinates"));
|
||||||
|
ClientMain.instantInteraction = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 455, 200, 20), ClientMain.instantInteraction, MultiLanguageSystem.Translate("Instant Interaction"));
|
||||||
|
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 505, 200, 20), MultiLanguageSystem.Translate("Radial Menu"));
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 505, 80, 20), Settings.Settings.radialMenuKey.ToString()))
|
||||||
|
{
|
||||||
|
Settings.Settings.radialMenuKey = Settings.Settings.GetKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 530, 200, 20), MultiLanguageSystem.Translate("Menu Key"));
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 530, 80, 20), Settings.Settings.menuToggleKey.ToString()))
|
||||||
|
{
|
||||||
|
Settings.Settings.menuToggleKey = Settings.Settings.GetKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.showCoordinates && DevourClient.Helpers.Player.IsInGameOrLobby())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = DevourClient.Helpers.Player.GetPlayer();
|
||||||
|
if (nb != null && nb.transform != null)
|
||||||
|
{
|
||||||
|
Vector3 pos = nb.transform.position;
|
||||||
|
string coordText = $"Position: X:{pos.x:F2} Y:{pos.y:F2} Z:{pos.z:F2}";
|
||||||
|
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 560, 400, 30), coordText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (System.Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
90
DevourClient/UI/ClientTabs.Network.cs
Normal file
90
DevourClient/UI/ClientTabs.Network.cs
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void NetworkTab()
|
||||||
|
{
|
||||||
|
int yOffset = 70;
|
||||||
|
int xBase = (int)Settings.Settings.x + 10;
|
||||||
|
int yBase = (int)Settings.Settings.y;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 300, 30),
|
||||||
|
MultiLanguageSystem.Translate("Network Info") + ": " + Network.NetworkHelper.GetRoomInfo());
|
||||||
|
yOffset += 40;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 300, 30),
|
||||||
|
$"=== {MultiLanguageSystem.Translate("Lobby Manager")} ===");
|
||||||
|
yOffset += 35;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 100, 30),
|
||||||
|
MultiLanguageSystem.Translate("Region") + ":");
|
||||||
|
|
||||||
|
string[] regionDisplayNames = Network.RegionHelper.GetRegionDisplayNames();
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(xBase + 110, yBase + yOffset, 200, 30), regionDisplayNames[ClientMain.selectedRegion]))
|
||||||
|
{
|
||||||
|
ClientMain.selectedRegion = (ClientMain.selectedRegion + 1) % regionDisplayNames.Length;
|
||||||
|
}
|
||||||
|
|
||||||
|
yOffset += 40;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 100, 30),
|
||||||
|
MultiLanguageSystem.Translate("Lobby Size") + ":");
|
||||||
|
ClientMain.lobbySize = (int)GUI.HorizontalSlider(new Rect(xBase + 110, yBase + yOffset + 5, 120, 20), ClientMain.lobbySize, 1, 64);
|
||||||
|
GUI.Label(new Rect(xBase + 240, yBase + yOffset, 50, 30), ClientMain.lobbySize.ToString());
|
||||||
|
yOffset += 35;
|
||||||
|
|
||||||
|
ClientMain.isPrivateLobby = GUI.Toggle(new Rect(xBase, yBase + yOffset, 200, 30),
|
||||||
|
ClientMain.isPrivateLobby, MultiLanguageSystem.Translate("Private Lobby"));
|
||||||
|
yOffset += 35;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(xBase, yBase + yOffset, 300, 40),
|
||||||
|
MultiLanguageSystem.Translate("Create Lobby")))
|
||||||
|
{
|
||||||
|
string regionCode = Network.RegionHelper.GetRegionCodeByIndex(ClientMain.selectedRegion);
|
||||||
|
Network.LobbyManager.CreateLobby(regionCode, ClientMain.lobbySize, ClientMain.isPrivateLobby);
|
||||||
|
}
|
||||||
|
yOffset += 50;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 300, 30),
|
||||||
|
$"=== {MultiLanguageSystem.Translate("Lobby Control")} ===");
|
||||||
|
yOffset += 35;
|
||||||
|
|
||||||
|
bool isHost = Network.NetworkHelper.IsHost();
|
||||||
|
GUI.enabled = isHost;
|
||||||
|
if (GUI.Button(new Rect(xBase, yBase + yOffset, 300, 35),
|
||||||
|
MultiLanguageSystem.Translate("Force Start Game") + (isHost ? "" : " (" + MultiLanguageSystem.Translate("Host Only") + ")")))
|
||||||
|
{
|
||||||
|
Network.LobbyManager.ForceLobbyStart();
|
||||||
|
}
|
||||||
|
GUI.enabled = true;
|
||||||
|
yOffset += 45;
|
||||||
|
|
||||||
|
if (Network.NetworkHelper.IsNetworkRunning())
|
||||||
|
{
|
||||||
|
yOffset += 10;
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 300, 30),
|
||||||
|
$"=== {MultiLanguageSystem.Translate("Network Stats")} ===");
|
||||||
|
yOffset += 35;
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 200, 30),
|
||||||
|
MultiLanguageSystem.Translate("Player Count") + ": " + Network.NetworkHelper.GetPlayerCount());
|
||||||
|
yOffset += 30;
|
||||||
|
|
||||||
|
if (!isHost)
|
||||||
|
{
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 200, 30),
|
||||||
|
"Ping: " + Network.NetworkHelper.GetPing() + "ms");
|
||||||
|
yOffset += 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.Label(new Rect(xBase, yBase + yOffset, 200, 30),
|
||||||
|
MultiLanguageSystem.Translate("Connection ID") + ": " + Network.NetworkHelper.GetConnectionID());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
91
DevourClient/UI/ClientTabs.Players.cs
Normal file
91
DevourClient/UI/ClientTabs.Players.cs
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
using DevourClient.Helpers;
|
||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void PlayersTab()
|
||||||
|
{
|
||||||
|
if (Helpers.Map.GetActiveScene() != "Menu")
|
||||||
|
{
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 30), MultiLanguageSystem.Translate("Players") + ":");
|
||||||
|
int i = 0;
|
||||||
|
if (Entities.Players != null)
|
||||||
|
{
|
||||||
|
foreach (BasePlayer? bp in Entities.Players)
|
||||||
|
{
|
||||||
|
if (bp == null || bp.Name == "")
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110 + i, 150, 30), bp.Name);
|
||||||
|
|
||||||
|
int buttonX = (int)Settings.Settings.x + 70;
|
||||||
|
int buttonY = (int)Settings.Settings.y + 105 + i;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 70, 30), MultiLanguageSystem.Translate("Kill")))
|
||||||
|
{
|
||||||
|
bp.Kill();
|
||||||
|
}
|
||||||
|
buttonX += 80;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 70, 30), MultiLanguageSystem.Translate("Revive")))
|
||||||
|
{
|
||||||
|
if (bp.p_GameObject != null)
|
||||||
|
{
|
||||||
|
Il2Cpp.NolanBehaviour nb = bp.p_GameObject.GetComponent<Il2Cpp.NolanBehaviour>();
|
||||||
|
if (nb != null)
|
||||||
|
{
|
||||||
|
ReviveHelper.TryRevive(nb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buttonX += 80;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 90, 30), MultiLanguageSystem.Translate("Jumpscare")))
|
||||||
|
{
|
||||||
|
bp.Jumpscare();
|
||||||
|
}
|
||||||
|
buttonX += 100;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 80, 30), MultiLanguageSystem.Translate("Teleport to")))
|
||||||
|
{
|
||||||
|
bp.TP();
|
||||||
|
}
|
||||||
|
buttonX += 90;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 100, 30), MultiLanguageSystem.Translate("Lock in cage")))
|
||||||
|
{
|
||||||
|
bp.LockInCage();
|
||||||
|
}
|
||||||
|
buttonX += 110;
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 90, 30), MultiLanguageSystem.Translate("TP Azazel")))
|
||||||
|
{
|
||||||
|
bp.TPAzazel();
|
||||||
|
}
|
||||||
|
buttonX += 100;
|
||||||
|
|
||||||
|
if (Helpers.Map.GetActiveScene() == "Town")
|
||||||
|
{
|
||||||
|
if (GUI.Button(new Rect(buttonX, buttonY, 90, 30), MultiLanguageSystem.Translate("Shoot Player")))
|
||||||
|
{
|
||||||
|
bp.ShootPlayer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 45;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 300, 30), MultiLanguageSystem.Translate("Waiting for the game to start"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
34
DevourClient/UI/ClientTabs.Visuals.cs
Normal file
34
DevourClient/UI/ClientTabs.Visuals.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
private static void VisualsTab()
|
||||||
|
{
|
||||||
|
ClientMain.flashlight_toggle = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 120, 30), ClientMain.flashlight_toggle, MultiLanguageSystem.Translate("Big Flashlight"));
|
||||||
|
ClientMain.fullbright = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 120, 30), ClientMain.fullbright, MultiLanguageSystem.Translate("Fullbright"));
|
||||||
|
ClientMain.unlimitedUV = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 130, 130, 30), ClientMain.unlimitedUV, MultiLanguageSystem.Translate("Unlimited UV Light"));
|
||||||
|
ClientMain.crosshair = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 160, 130, 30), ClientMain.crosshair, MultiLanguageSystem.Translate("Crosshair"));
|
||||||
|
|
||||||
|
if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 190, 130, 30), MultiLanguageSystem.Translate("Flashlight Color")))
|
||||||
|
{
|
||||||
|
ClientMain.flashlight_colorpick = !ClientMain.flashlight_colorpick;
|
||||||
|
MelonLoader.MelonLogger.Msg("Flashlight color picker : " + ClientMain.flashlight_colorpick.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ClientMain.flashlight_colorpick)
|
||||||
|
{
|
||||||
|
Color flashlight_color_input = DevourClient.Helpers.GUIHelper.ColorPick(MultiLanguageSystem.Translate("Flashlight Color"), Settings.Settings.flashlight_color);
|
||||||
|
Settings.Settings.flashlight_color = flashlight_color_input;
|
||||||
|
|
||||||
|
if (DevourClient.Helpers.Player.IsInGame())
|
||||||
|
{
|
||||||
|
DevourClient.Hacks.Misc.FlashlightColor(flashlight_color_input);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
87
DevourClient/UI/ClientTabs.cs
Normal file
87
DevourClient/UI/ClientTabs.cs
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
using DevourClient.Localization;
|
||||||
|
using UnityEngine;
|
||||||
|
using CurrentTab = DevourClient.ClientMain.CurrentTab;
|
||||||
|
|
||||||
|
namespace DevourClient.UI
|
||||||
|
{
|
||||||
|
internal static partial class ClientTabs
|
||||||
|
{
|
||||||
|
internal static void DrawTabs(int windowID)
|
||||||
|
{
|
||||||
|
GUILayout.BeginHorizontal();
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Visuals"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F1))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Visuals;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Entities"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F2))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Entities;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Map"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F3))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Map;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("ESP"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F4))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.ESP;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Items"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F5))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Items;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Misc"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F6))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Misc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Players"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F7))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Players;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button(MultiLanguageSystem.Translate("Network"), GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F8))
|
||||||
|
{
|
||||||
|
ClientMain.current_tab = CurrentTab.Network;
|
||||||
|
}
|
||||||
|
|
||||||
|
GUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
switch (ClientMain.current_tab)
|
||||||
|
{
|
||||||
|
case CurrentTab.Visuals:
|
||||||
|
VisualsTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.Entities:
|
||||||
|
EntitiesTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.Map:
|
||||||
|
MapSpecificTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.ESP:
|
||||||
|
EspTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.Items:
|
||||||
|
ItemsTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.Misc:
|
||||||
|
MiscTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.Players:
|
||||||
|
PlayersTab();
|
||||||
|
break;
|
||||||
|
case CurrentTab.Network:
|
||||||
|
NetworkTab();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
GUI.DragWindow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -25,7 +25,6 @@ Everything about spoofing ehre (steam name, server name, level...) will persist
|
|||||||
* Big Flashlight (allows your flashlight to light a lot more)
|
* Big Flashlight (allows your flashlight to light a lot more)
|
||||||
* Flashlight color customization (with a home made color picker)
|
* Flashlight color customization (with a home made color picker)
|
||||||
* Unlimited UV light (thanks to [@jadis0x](https://github.com/jadis0x))
|
* Unlimited UV light (thanks to [@jadis0x](https://github.com/jadis0x))
|
||||||
* A chat spammer for Lobby and InGame chat (i couldn't do a text entry because of the limitations of [Il2CppAssemblyUnhollower](https://github.com/knah/Il2CppAssemblyUnhollower))
|
|
||||||
* Achievements unlocker (couldn't do all of them, my code is crashing for some reasons at some point, i may fix it, for now it's commented out)
|
* Achievements unlocker (couldn't do all of them, my code is crashing for some reasons at some point, i may fix it, for now it's commented out)
|
||||||
* Doors unlocker (should work fine, though it doesn't seem to work sometimes)
|
* Doors unlocker (should work fine, though it doesn't seem to work sometimes)
|
||||||
* Keys teleporter
|
* Keys teleporter
|
||||||
@@ -55,6 +54,9 @@ Everything about spoofing ehre (steam name, server name, level...) will persist
|
|||||||
* Switch between realms (Manor update)
|
* Switch between realms (Manor update)
|
||||||
* Farm Items x5 (host only)
|
* Farm Items x5 (host only)
|
||||||
* Radial Menu (Z)
|
* Radial Menu (Z)
|
||||||
|
* God Mode
|
||||||
|
* instant interaction (set the speed to 0.05, and you can interact with objects instantly without any bugs)
|
||||||
|
* New revive function (only works for host. If you're host, you can revive your teammates; and if you're not host, you can only revive host.)
|
||||||
* Customize Lobby (Public or Private, 1-64 room size, but when the number of players exceeds four, the game will have bugs)
|
* Customize Lobby (Public or Private, 1-64 room size, but when the number of players exceeds four, the game will have bugs)
|
||||||
* 11 languages supported (English, 简体中文, Français, Deutsch, Español, 日本語, 한국어, Русский, Português, Italiano, Tiếng Việt) with in-game language switcher in Misc tab. Check it in misc table!
|
* 11 languages supported (English, 简体中文, Français, Deutsch, Español, 日本語, 한국어, Русский, Português, Italiano, Tiếng Việt) with in-game language switcher in Misc tab. Check it in misc table!
|
||||||
* Due to the game update, I deleted "Steam name spoofer" and "Server name spoofer" these two functions.For "steam name spoofer", even changed your name by this function, your teamates can still see your name by steam profile, escape button, and your message in game.(by manafeng)
|
* Due to the game update, I deleted "Steam name spoofer" and "Server name spoofer" these two functions.For "steam name spoofer", even changed your name by this function, your teamates can still see your name by steam profile, escape button, and your message in game.(by manafeng)
|
||||||
@@ -129,18 +131,15 @@ If you want to modify and develop the code, please follow the [Building from sou
|
|||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\net6\Il2CppInterop.Runtime.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\net6\Il2CppInterop.Runtime.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2CppOpsive.UltimateCharacterController.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2CppOpsive.UltimateCharacterController.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2CppBehaviorDesigner.Runtime.dll`
|
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.user.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.user.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppmscorlib.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppmscorlib.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.IMGUIModule.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.IMGUIModule.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.HotReloadModule.dll`
|
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.UI.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.UI.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.UIModule.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.UIModule.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.InputModule.dll`
|
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.common.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.common.dll`
|
||||||
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.dll`
|
* `C:\Program Files (x86)\Steam\steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppudpkit.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\Il2Cppudpkit.platform.photon.dll`
|
||||||
|
|||||||
@@ -104,8 +104,6 @@ function Find-DevourPathFromManifest {
|
|||||||
$RequiredDependencies = @(
|
$RequiredDependencies = @(
|
||||||
@{ Name = "0Harmony"; RelativePath = "steamapps\common\Devour\MelonLoader\net6\0Harmony.dll" },
|
@{ Name = "0Harmony"; RelativePath = "steamapps\common\Devour\MelonLoader\net6\0Harmony.dll" },
|
||||||
@{ Name = "Assembly-CSharp"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll" },
|
@{ Name = "Assembly-CSharp"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Assembly-CSharp.dll" },
|
||||||
@{ Name = "Il2CppAstarPathfindingProject"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2CppAstarPathfindingProject.dll" },
|
|
||||||
@{ Name = "Il2CppBehaviorDesigner.Runtime"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2CppBehaviorDesigner.Runtime.dll" },
|
|
||||||
@{ Name = "Il2Cppbolt"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.dll" },
|
@{ Name = "Il2Cppbolt"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.dll" },
|
||||||
@{ Name = "Il2Cppbolt.user"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.user.dll" },
|
@{ Name = "Il2Cppbolt.user"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppbolt.user.dll" },
|
||||||
@{ Name = "Il2Cppcom.rlabrecque.steamworks.net"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppcom.rlabrecque.steamworks.net.dll" },
|
@{ Name = "Il2Cppcom.rlabrecque.steamworks.net"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\Il2Cppcom.rlabrecque.steamworks.net.dll" },
|
||||||
@@ -120,7 +118,6 @@ $RequiredDependencies = @(
|
|||||||
@{ Name = "UnityEngine"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.dll" },
|
@{ Name = "UnityEngine"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.dll" },
|
||||||
@{ Name = "UnityEngine.AnimationModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.AnimationModule.dll" },
|
@{ Name = "UnityEngine.AnimationModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.AnimationModule.dll" },
|
||||||
@{ Name = "UnityEngine.CoreModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll" },
|
@{ Name = "UnityEngine.CoreModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.CoreModule.dll" },
|
||||||
@{ Name = "UnityEngine.HotReloadModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.HotReloadModule.dll" },
|
|
||||||
@{ Name = "UnityEngine.IMGUIModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.IMGUIModule.dll" },
|
@{ Name = "UnityEngine.IMGUIModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.IMGUIModule.dll" },
|
||||||
@{ Name = "UnityEngine.InputLegacyModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll" },
|
@{ Name = "UnityEngine.InputLegacyModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.InputLegacyModule.dll" },
|
||||||
@{ Name = "UnityEngine.PhysicsModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.PhysicsModule.dll" },
|
@{ Name = "UnityEngine.PhysicsModule"; RelativePath = "steamapps\common\Devour\MelonLoader\Il2CppAssemblies\UnityEngine.PhysicsModule.dll" },
|
||||||
|
|||||||
@@ -56,8 +56,6 @@ find_devour_path_from_manifest() {
|
|||||||
declare -A REQUIRED_DEPENDENCIES=(
|
declare -A REQUIRED_DEPENDENCIES=(
|
||||||
["0Harmony"]="steamapps/common/Devour/MelonLoader/net6/0Harmony.dll"
|
["0Harmony"]="steamapps/common/Devour/MelonLoader/net6/0Harmony.dll"
|
||||||
["Assembly-CSharp"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Assembly-CSharp.dll"
|
["Assembly-CSharp"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Assembly-CSharp.dll"
|
||||||
["Il2CppAstarPathfindingProject"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2CppAstarPathfindingProject.dll"
|
|
||||||
["Il2CppBehaviorDesigner.Runtime"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2CppBehaviorDesigner.Runtime.dll"
|
|
||||||
["Il2Cppbolt"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.dll"
|
["Il2Cppbolt"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.dll"
|
||||||
["Il2Cppbolt.user"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.user.dll"
|
["Il2Cppbolt.user"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.user.dll"
|
||||||
["Il2Cppcom.rlabrecque.steamworks.net"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppcom.rlabrecque.steamworks.net.dll"
|
["Il2Cppcom.rlabrecque.steamworks.net"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppcom.rlabrecque.steamworks.net.dll"
|
||||||
@@ -72,7 +70,6 @@ declare -A REQUIRED_DEPENDENCIES=(
|
|||||||
["UnityEngine"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.dll"
|
["UnityEngine"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.dll"
|
||||||
["UnityEngine.AnimationModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.AnimationModule.dll"
|
["UnityEngine.AnimationModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.AnimationModule.dll"
|
||||||
["UnityEngine.CoreModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.CoreModule.dll"
|
["UnityEngine.CoreModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.CoreModule.dll"
|
||||||
["UnityEngine.HotReloadModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.HotReloadModule.dll"
|
|
||||||
["UnityEngine.IMGUIModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.IMGUIModule.dll"
|
["UnityEngine.IMGUIModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.IMGUIModule.dll"
|
||||||
["UnityEngine.InputLegacyModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.InputLegacyModule.dll"
|
["UnityEngine.InputLegacyModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.InputLegacyModule.dll"
|
||||||
["UnityEngine.PhysicsModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.PhysicsModule.dll"
|
["UnityEngine.PhysicsModule"]="steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.PhysicsModule.dll"
|
||||||
@@ -145,8 +142,6 @@ import os
|
|||||||
required_deps = {
|
required_deps = {
|
||||||
"0Harmony": "steamapps/common/Devour/MelonLoader/net6/0Harmony.dll",
|
"0Harmony": "steamapps/common/Devour/MelonLoader/net6/0Harmony.dll",
|
||||||
"Assembly-CSharp": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Assembly-CSharp.dll",
|
"Assembly-CSharp": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Assembly-CSharp.dll",
|
||||||
"Il2CppAstarPathfindingProject": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2CppAstarPathfindingProject.dll",
|
|
||||||
"Il2CppBehaviorDesigner.Runtime": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2CppBehaviorDesigner.Runtime.dll",
|
|
||||||
"Il2Cppbolt": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.dll",
|
"Il2Cppbolt": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.dll",
|
||||||
"Il2Cppbolt.user": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.user.dll",
|
"Il2Cppbolt.user": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppbolt.user.dll",
|
||||||
"Il2Cppcom.rlabrecque.steamworks.net": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppcom.rlabrecque.steamworks.net.dll",
|
"Il2Cppcom.rlabrecque.steamworks.net": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/Il2Cppcom.rlabrecque.steamworks.net.dll",
|
||||||
@@ -161,7 +156,6 @@ required_deps = {
|
|||||||
"UnityEngine": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.dll",
|
"UnityEngine": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.dll",
|
||||||
"UnityEngine.AnimationModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.AnimationModule.dll",
|
"UnityEngine.AnimationModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.AnimationModule.dll",
|
||||||
"UnityEngine.CoreModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.CoreModule.dll",
|
"UnityEngine.CoreModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.CoreModule.dll",
|
||||||
"UnityEngine.HotReloadModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.HotReloadModule.dll",
|
|
||||||
"UnityEngine.IMGUIModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.IMGUIModule.dll",
|
"UnityEngine.IMGUIModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.IMGUIModule.dll",
|
||||||
"UnityEngine.InputLegacyModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.InputLegacyModule.dll",
|
"UnityEngine.InputLegacyModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.InputLegacyModule.dll",
|
||||||
"UnityEngine.PhysicsModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.PhysicsModule.dll",
|
"UnityEngine.PhysicsModule": "steamapps/common/Devour/MelonLoader/Il2CppAssemblies/UnityEngine.PhysicsModule.dll",
|
||||||
|
|||||||
Reference in New Issue
Block a user