add faketime

This commit is contained in:
LouisLiu 2022-06-04 16:33:28 +08:00
parent d01c6f442e
commit 22094cd23b
6 changed files with 104 additions and 0 deletions

19
cheat-library/FakeTime.h Normal file
View File

@ -0,0 +1,19 @@
#pragma once
namespace cheat::feature
{
class FakeTime : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
static FakeTime& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
virtual bool NeedStatusDraw() const override;
void DrawStatus() override;
void OnGameUpdate();
private:
static void LevelTimeManager_SetInternalTimeOfDay_Hook(void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method);
FakeTime();
};
}

View File

@ -15,6 +15,7 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="src\user\cheat\world\FakeTime.h" />
<ClInclude Include="src\user\cheat\debugger.h"> <ClInclude Include="src\user\cheat\debugger.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
@ -125,6 +126,7 @@
<Font Include="res\Ruda-ExtraBold.ttf" /> <Font Include="res\Ruda-ExtraBold.ttf" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\user\cheat\world\FakeTime.cpp" />
<ClCompile Include="src\user\cheat\debugger.cpp"> <ClCompile Include="src\user\cheat\debugger.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild>

View File

@ -225,6 +225,9 @@
<ClInclude Include="src\user\cheat\world\AutoCook.h"> <ClInclude Include="src\user\cheat\world\AutoCook.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\user\cheat\world\FakeTime.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Font Include="res\Ruda-Bold.ttf" /> <Font Include="res\Ruda-Bold.ttf" />
@ -408,6 +411,9 @@
<ClCompile Include="src\user\cheat\debugger.cpp"> <ClCompile Include="src\user\cheat\debugger.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\user\cheat\world\FakeTime.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="res\res.rc"> <ResourceCompile Include="res\res.rc">

View File

@ -26,6 +26,7 @@
#include <cheat/world/MobVacuum.h> #include <cheat/world/MobVacuum.h>
#include <cheat/world/AutoTreeFarm.h> #include <cheat/world/AutoTreeFarm.h>
#include <cheat/world/AutoDestroy.h> #include <cheat/world/AutoDestroy.h>
#include <cheat/world/FakeTime.h>
#include <cheat/teleport/ChestTeleport.h> #include <cheat/teleport/ChestTeleport.h>
#include <cheat/teleport/MapTeleport.h> #include <cheat/teleport/MapTeleport.h>
@ -80,6 +81,7 @@ namespace cheat
FEAT_INST(ElementalSight), FEAT_INST(ElementalSight),
FEAT_INST(KillAura), FEAT_INST(KillAura),
FEAT_INST(MobVacuum), FEAT_INST(MobVacuum),
FEAT_INST(FakeTime),
FEAT_INST(ChestTeleport), FEAT_INST(ChestTeleport),
FEAT_INST(OculiTeleport), FEAT_INST(OculiTeleport),

View File

@ -0,0 +1,56 @@
#include "pch-il2cpp.h"
#include "FakeTime.h"
#include <cheat/events.h>
namespace cheat::feature
{
//CNLouisLiu
void* LevelTimeManager = NULL;
FakeTime::FakeTime() : Feature(),
NF(f_Enabled, "FakeTime", "Enabled", false)
{
HookManager::install(app::LevelTimeManager_SetInternalTimeOfDay, LevelTimeManager_SetInternalTimeOfDay_Hook);
events::GameUpdateEvent += MY_METHOD_HANDLER(FakeTime::OnGameUpdate);
}
FakeTime& FakeTime::GetInstance()
{
static FakeTime instance;
return instance;
}
const FeatureGUIInfo& FakeTime::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "FakeTime", "World", true };
return info;
}
void FakeTime::DrawMain()
{
ConfigWidget("Enabled", f_Enabled, "Keep the game in daylight (12 noon)");
}
bool FakeTime::NeedStatusDraw() const
{
return f_Enabled;
}
void FakeTime::DrawStatus()
{
ImGui::Text("FakeTime");
}
void FakeTime::OnGameUpdate()
{
if (LevelTimeManager != NULL&& f_Enabled) {
CALL_ORIGIN(LevelTimeManager_SetInternalTimeOfDay_Hook, LevelTimeManager, 12.00f, false, false, (MethodInfo*)0);
}
}
void FakeTime::LevelTimeManager_SetInternalTimeOfDay_Hook(void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method) {
float Hours = inHours;
if (GetInstance().f_Enabled)
{
Hours = 12.00f;
}
CALL_ORIGIN(LevelTimeManager_SetInternalTimeOfDay_Hook, __this, Hours, force, refreshEnviroTime, method);
}
}

View File

@ -0,0 +1,19 @@
#pragma once
namespace cheat::feature
{
class FakeTime : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
static FakeTime& GetInstance();
void OnGameUpdate();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
virtual bool NeedStatusDraw() const override;
void DrawStatus() override;
private:
static void LevelTimeManager_SetInternalTimeOfDay_Hook(void* __this, float inHours, bool force, bool refreshEnviroTime, MethodInfo* method);
FakeTime();
};
}