sync latest code without "project z1k" 💀

This commit is contained in:
Twin1
2023-12-06 23:45:36 -06:00
3 changed files with 85 additions and 12 deletions

View File

@@ -121,8 +121,12 @@ static void ShowFoundation(AActor* BuildingFoundation, bool bShow = true)
static auto DynamicFoundationTypeOffset = BuildingFoundation->GetOffset("DynamicFoundationType", false);
if (DynamicFoundationTypeOffset != -1)
bool bChangeDynamicFoundationType = Fortnite_Version < 13;
if (DynamicFoundationTypeOffset != -1 && bChangeDynamicFoundationType)
{
BuildingFoundation->Get<uint8_t>(DynamicFoundationTypeOffset) = bShow ? Static : StartDisabled;
}
/* static auto bShowHLODWhenDisabledOffset = BuildingFoundation->GetOffset("bShowHLODWhenDisabled", false);
@@ -272,4 +276,4 @@ public:
static int Athena_PickTeamHook(AFortGameModeAthena* GameMode, uint8 preferredTeam, AActor* Controller);
static void Athena_HandleStartingNewPlayerHook(AFortGameModeAthena* GameMode, AActor* NewPlayerActor);
static void SetZoneToIndexHook(AFortGameModeAthena* GameModeAthena, int OverridePhaseMaybeIDFK);
};
};

View File

@@ -919,6 +919,75 @@ void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg)
Pawn->TeleportTo(FVector(X, Y, Z), Pawn->GetActorRotation());
SendMessageToConsole(PlayerController, L"Teleported!");
}
else if (Command == "fly")
{
auto Pawn = Cast<APawn>(ReceivingController->GetPawn());
if (!Pawn)
{
SendMessageToConsole(PlayerController, L"No pawn found!");
return;
}
static auto CharMovementOffset = Pawn->GetOffset("CharacterMovement");
if (CharMovementOffset != -1)
{
auto CharMovement = Pawn->Get<UObject*>(CharMovementOffset);
static auto MovementOffset = CharMovement->GetOffset("MovementMode", false);
if (MovementOffset != -1)
{
uint8_t MovementMode = CharMovement->Get<uint8_t>(MovementOffset);
static auto SetMovementModeFn = FindObject<UFunction>(L"/Script/Engine.CharacterMovementComponent.SetMovementMode");
uint8_t NewMode = 1;
if (MovementMode != 5)
{
NewMode = 5;
}
if (SetMovementModeFn)
{
CharMovement->ProcessEvent(SetMovementModeFn, &NewMode);
}
}
else
{
SendMessageToConsole(PlayerController, L"Movement mode not found!");
return;
}
}
else
{
SendMessageToConsole(PlayerController, L"Character movement not found!");
return;
}
}
else if (Command == "setspeed")
{
float Speed = 1.0f;
if (Arguments.size() > 1 && Arguments[1] != " ")
{
try { Speed = std::stof(Arguments[1]); }
catch (...) {}
}
auto Pawn = Cast<APawn>(ReceivingController->GetPawn());
if (!Pawn)
{
SendMessageToConsole(PlayerController, L"No pawn to set speed!");
return;
}
static auto SetMovementSpeedFn = FindObject<UFunction>(L"/Script/FortniteGame.FortPawn.SetMovementSpeed");
SetMovementSpeedFn = SetMovementSpeedFn ? SetMovementSpeedFn : FindObject<UFunction>(L"/Script/FortniteGame.FortPawn.SetMovementSpeedMultiplier"); // extremely clean code that totally works
if (!SetMovementSpeedFn)
{
SendMessageToConsole(PlayerController, L"Function not found!");
return;
}
Pawn->ProcessEvent(SetMovementSpeedFn, &Speed);
}
else { bSendHelpMessage = true; };
}
else { bSendHelpMessage = true; };
@@ -949,4 +1018,4 @@ If you want to execute a command on a certain player, surround their name (case
SendMessageToConsole(PlayerController, HelpMessage);
}
}
}

View File

@@ -462,17 +462,17 @@ DWORD WINAPI Main(LPVOID)
Hooking::MinHook::Hook((PVOID)Addresses::ActorGetNetMode, (PVOID)GetNetModeHook2, nullptr);
/*
if (Fortnite_Version > 13) // ermm
{
Hooking::MinHook::Hook(FindObject<ABuildingFoundation>(L"/Script/FortniteGame.Default__BuildingFoundation"),
FindObject<UFunction>(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationTransform"),
ABuildingFoundation::SetDynamicFoundationTransformHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationTransformOriginal, false, true);
Hooking::MinHook::Hook(FindObject<ABuildingFoundation>(L"/Script/FortniteGame.Default__BuildingFoundation"),
FindObject<UFunction>(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationTransform"),
ABuildingFoundation::SetDynamicFoundationTransformHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationTransformOriginal, false, true);
Hooking::MinHook::Hook(FindObject<ABuildingFoundation>(L"/Script/FortniteGame.Default__BuildingFoundation"),
FindObject<UFunction>(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationEnabled"),
ABuildingFoundation::SetDynamicFoundationEnabledHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationEnabledOriginal, false, true);
}
Hooking::MinHook::Hook(FindObject<ABuildingFoundation>(L"/Script/FortniteGame.Default__BuildingFoundation"),
FindObject<UFunction>(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationEnabled"),
ABuildingFoundation::SetDynamicFoundationEnabledHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationEnabledOriginal, false, true);
*/
/*
if (Fortnite_Version == 6.21) // ur trolling