This commit is contained in:
Gray
2025-07-19 10:17:35 -04:00
5 changed files with 88 additions and 3 deletions

View File

@@ -156,4 +156,14 @@ namespace Calendar
NewYearTimer->ProcessEvent(StartNYE, nullptr); NewYearTimer->ProcessEvent(StartNYE, nullptr);
} }
} }
static void OnDamageServerSleepyHook(UObject* SleepyProp, FFrame& Stack, void* Ret)
{
static auto DamageOffset = FindOffsetStruct("/Game/Athena/Prototype/Blueprints/Sleepy/BP_Sleepy_M.BP_Sleepy_M_C.OnDamageServer", "Damage");
int Damage = (int)(*(float*)(__int64(Stack.Locals) + DamageOffset));
static UObject* SleepyM = FindObject("/Game/Athena/Maps/Test/S8/SleepyMap.SleepyMap:PersistentLevel.BP_Sleepy_M_2");
static UFunction* RootUpdateDamage = SleepyM->FindFunction("RootUpdateDamage");
SleepyM->ProcessEvent(RootUpdateDamage, &Damage);
}
} }

View File

@@ -152,6 +152,8 @@ static inline void ProcessEventHook(UObject* Object, UFunction* Function, void*
!strstr(FunctionName.c_str(), "SpinCubeTimeline__UpdateFunc") && !strstr(FunctionName.c_str(), "SpinCubeTimeline__UpdateFunc") &&
!strstr(ObjectName.c_str(), "FortPhysicsObjectComponent") && !strstr(ObjectName.c_str(), "FortPhysicsObjectComponent") &&
!strstr(FunctionName.c_str(), "GetTextValue") && !strstr(FunctionName.c_str(), "GetTextValue") &&
!strstr(FunctionName.c_str(), "ServerUpdateLevelVisibility") &&
!strstr(FunctionName.c_str(), "UpdatePlayerPositionsWithinTheMID") &&
!strstr(FunctionName.c_str(), "ExecuteUbergraph_BGA_Petrol_Pickup")) !strstr(FunctionName.c_str(), "ExecuteUbergraph_BGA_Petrol_Pickup"))
{ {
LOG_INFO(LogDev, "Function called: {} with {}", FunctionFullName, ObjectName); LOG_INFO(LogDev, "Function called: {} with {}", FunctionFullName, ObjectName);

View File

@@ -1108,6 +1108,20 @@ nPnn
} }
*/ */
if (Fortnite_Version == 8.40)/*Fortnite_Version >= 8.40 && Fortnite_Version <= 8.51*/
{
auto TheFunc = (uint8*)FindObject<UFunction>("/Script/MeshNetwork.MeshNetworkSubsystem:GetMeshNetworkNodeType")->GetFunc();
for (int i = 0; i < 75; i++)
{
if (TheFunc[i] == 0xE8)
{
Hooking::MinHook::Hook((PVOID)(Memcury::Scanner(__int64(TheFunc) + i).RelativeOffset(1).Get()), (PVOID)GetMeshNetworkNodeTypeHook, nullptr);
}
}
//Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x8BC450), (PVOID)GetMeshNetworkNodeTypeHook, nullptr);
}
if (Fortnite_Version >= 16 && Fortnite_Version < 19) if (Fortnite_Version >= 16 && Fortnite_Version < 19)
{ {
// Bus crash (only needed if we are calling StartAircraftPhase on seperate thread I THINK) (sometimes) // Bus crash (only needed if we are calling StartAircraftPhase on seperate thread I THINK) (sometimes)
@@ -1355,7 +1369,6 @@ nPnn
// HookInstruction(Addresses::UpdateTrackedAttributesLea, (PVOID)AFortPlayerControllerAthena::UpdateTrackedAttributesHook, "/Script/Engine.PlayerController.EnableCheats", ERelativeOffsets::LEA, FortPlayerControllerAthenaDefault); // HookInstruction(Addresses::UpdateTrackedAttributesLea, (PVOID)AFortPlayerControllerAthena::UpdateTrackedAttributesHook, "/Script/Engine.PlayerController.EnableCheats", ERelativeOffsets::LEA, FortPlayerControllerAthenaDefault);
// HookInstruction(Addresses::CombinePickupLea, (PVOID)AFortPickup::CombinePickupHook, "/Script/Engine.PlayerController.SetVirtualJoystickVisibility", ERelativeOffsets::LEA, FortPlayerControllerAthenaDefault); // HookInstruction(Addresses::CombinePickupLea, (PVOID)AFortPickup::CombinePickupHook, "/Script/Engine.PlayerController.SetVirtualJoystickVisibility", ERelativeOffsets::LEA, FortPlayerControllerAthenaDefault);
if (Fortnite_Version == 13.40) if (Fortnite_Version == 13.40)
{ {
// HookInstruction(__int64(GetModuleHandleW(0)) + 0x1FC835D, (PVOID)UFortAthenaAIBotCustomizationData::ApplyOverrideCharacterCustomizationHook, "/Script/Engine.PlayerController.SetVirtualJoystickVisibility", ERelativeOffsets::CALL, nullptr); // HookInstruction(__int64(GetModuleHandleW(0)) + 0x1FC835D, (PVOID)UFortAthenaAIBotCustomizationData::ApplyOverrideCharacterCustomizationHook, "/Script/Engine.PlayerController.SetVirtualJoystickVisibility", ERelativeOffsets::CALL, nullptr);

View File

@@ -34,7 +34,7 @@ extern inline std::string PlaylistName =
"/Game/Athena/Playlists/Playlist_DefaultSolo.Playlist_DefaultSolo"; "/Game/Athena/Playlists/Playlist_DefaultSolo.Playlist_DefaultSolo";
// "/Game/Athena/Playlists/gg/Playlist_Gg_Reverse.Playlist_Gg_Reverse"; // "/Game/Athena/Playlists/gg/Playlist_Gg_Reverse.Playlist_Gg_Reverse";
// "/Game/Athena/Playlists/Playlist_DefaultDuo.Playlist_DefaultDuo"; // "/Game/Athena/Playlists/Playlist_DefaultDuo.Playlist_DefaultDuo";
// "/Game/Athena/Playlists/Playground/Playlist_Playground.Playlist_Playground"; //"/Game/Athena/Playlists/Playground/Playlist_Playground.Playlist_Playground";
// "/Game/Athena/Playlists/Carmine/Playlist_Carmine.Playlist_Carmine"; // "/Game/Athena/Playlists/Carmine/Playlist_Carmine.Playlist_Carmine";
// "/Game/Athena/Playlists/Fill/Playlist_Fill_Solo.Playlist_Fill_Solo"; // "/Game/Athena/Playlists/Fill/Playlist_Fill_Solo.Playlist_Fill_Solo";
// "/Game/Athena/Playlists/Low/Playlist_Low_Solo.Playlist_Low_Solo"; // "/Game/Athena/Playlists/Low/Playlist_Low_Solo.Playlist_Low_Solo";

View File

@@ -116,7 +116,7 @@ static inline void SetIsLategame(bool Value)
static inline bool HasAnyCalendarModification() static inline bool HasAnyCalendarModification()
{ {
return Calendar::HasSnowModification() || Calendar::HasNYE() || std::floor(Fortnite_Version) == 13; return Calendar::HasSnowModification() || Calendar::HasNYE() || Fortnite_Version == 8.40 || std::floor(Fortnite_Version) == 13;
} }
static inline void Restart() // todo move? static inline void Restart() // todo move?
@@ -956,6 +956,66 @@ static inline void MainUI()
} }
} }
/*
* Notes:
*
* Dopey (8.?? to 8.??) mining stones
*
* Rune events:
* Sleepy (8.40) hit the rune and it moves
* Leaky (8.40) rotate 3 beams onto the rune
* Sneezy (8.50) dance for progress
*/
if (Fortnite_Version == 8.40)
{
static UObject* SAR = FindObject("/Game/Athena/Maps/Athena_POI_Foundations.Athena_POI_Foundations:PersistentLevel.BP_SnowAlwaysRelevant_2");
if (SAR)
{
static bool LoadedSleepy = false;
if (!LoadedSleepy && ImGui::Button("Load Sleepy"))
{
SAR->ProcessEvent(SAR->FindFunction("LoadSleepy"));
LoadedSleepy = true;
UObject* SleepyProp = FindObject("/Game/Athena/Maps/Test/S8/SleepyMap.SleepyMap.PersistentLevel.BP_Sleepy_Prop_0");
UObject* SleepyM = FindObject("/Game/Athena/Maps/Test/S8/SleepyMap.SleepyMap.PersistentLevel.BP_Sleepy_M_2");
while (!SleepyProp && !SleepyM)
{
SleepyProp = FindObject("/Game/Athena/Maps/Test/S8/SleepyMap.SleepyMap.PersistentLevel.BP_Sleepy_Prop_0");
SleepyM = FindObject("/Game/Athena/Maps/Test/S8/SleepyMap.SleepyMap.PersistentLevel.BP_Sleepy_M_2");
}
Hooking::MinHook::Hook(SleepyProp, SleepyProp->FindFunction("OnDamageServer"), Calendar::OnDamageServerSleepyHook, nullptr, false, true);
int FiveHundred = 500;
*SleepyM->GetPtr<int>("MaxHealth") = 500;
SleepyM->ProcessEvent(SleepyM->FindFunction("RootSetProgress"), &FiveHundred);
LOG_INFO(LogDev, "Sleepy loaded!");
}
if (LoadedSleepy)
{
static int SleepyProgress = 0;
ImGui::SliderInt("Sleepy Progress", &SleepyProgress, 0, 1000);
if (ImGui::Button("Move Sleepy"))
{
static UObject* SleepyM = FindObject("/Game/Athena/Maps/Test/S8/SleepyMap.SleepyMap.PersistentLevel.BP_Sleepy_M_2");
static auto ProgressOffset = SleepyM->GetOffset("Progress");
*SleepyM->GetPtr<float>(ProgressOffset) = (float)SleepyProgress * (1.0f / 1000.0f);
static int EntryPoint = 929;
static auto ExecUbergraph = SleepyM->FindFunction("ExecuteUbergraph_BP_Sleepy_M");
SleepyM->ProcessEvent(ExecUbergraph, &EntryPoint);
}
}
}
else
{
ImGui::Text("Failed to find BP_SnowAlwaysRelevant_C");
}
}
if (std::floor(Fortnite_Version) == 13) if (std::floor(Fortnite_Version) == 13)
{ {
static UObject* WL = FindObject("/Game/Athena/Apollo/Maps/Apollo_POI_Foundations.Apollo_POI_Foundations.PersistentLevel.Apollo_WaterSetup_2"); static UObject* WL = FindObject("/Game/Athena/Apollo/Maps/Apollo_POI_Foundations.Apollo_POI_Foundations.PersistentLevel.Apollo_WaterSetup_2");