diff --git a/Project Reboot 3.0/FortGameModeAthena.h b/Project Reboot 3.0/FortGameModeAthena.h index 0a8bab5..b78792f 100644 --- a/Project Reboot 3.0/FortGameModeAthena.h +++ b/Project Reboot 3.0/FortGameModeAthena.h @@ -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(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); -}; \ No newline at end of file +}; diff --git a/Project Reboot 3.0/commands.cpp b/Project Reboot 3.0/commands.cpp index 89f6fed..5297506 100644 --- a/Project Reboot 3.0/commands.cpp +++ b/Project Reboot 3.0/commands.cpp @@ -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(ReceivingController->GetPawn()); + + if (!Pawn) + { + SendMessageToConsole(PlayerController, L"No pawn found!"); + return; + } + + static auto CharMovementOffset = Pawn->GetOffset("CharacterMovement"); + if (CharMovementOffset != -1) + { + auto CharMovement = Pawn->Get(CharMovementOffset); + + static auto MovementOffset = CharMovement->GetOffset("MovementMode", false); + if (MovementOffset != -1) + { + uint8_t MovementMode = CharMovement->Get(MovementOffset); + static auto SetMovementModeFn = FindObject(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(ReceivingController->GetPawn()); + + if (!Pawn) + { + SendMessageToConsole(PlayerController, L"No pawn to set speed!"); + return; + } + + static auto SetMovementSpeedFn = FindObject(L"/Script/FortniteGame.FortPawn.SetMovementSpeed"); + SetMovementSpeedFn = SetMovementSpeedFn ? SetMovementSpeedFn : FindObject(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); } -} \ No newline at end of file +} diff --git a/Project Reboot 3.0/dllmain.cpp b/Project Reboot 3.0/dllmain.cpp index ab527d9..b65a9f5 100644 --- a/Project Reboot 3.0/dllmain.cpp +++ b/Project Reboot 3.0/dllmain.cpp @@ -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(L"/Script/FortniteGame.Default__BuildingFoundation"), + FindObject(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationTransform"), + ABuildingFoundation::SetDynamicFoundationTransformHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationTransformOriginal, false, true); - Hooking::MinHook::Hook(FindObject(L"/Script/FortniteGame.Default__BuildingFoundation"), - FindObject(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationTransform"), - ABuildingFoundation::SetDynamicFoundationTransformHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationTransformOriginal, false, true); + Hooking::MinHook::Hook(FindObject(L"/Script/FortniteGame.Default__BuildingFoundation"), + FindObject(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationEnabled"), + ABuildingFoundation::SetDynamicFoundationEnabledHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationEnabledOriginal, false, true); + } - Hooking::MinHook::Hook(FindObject(L"/Script/FortniteGame.Default__BuildingFoundation"), - FindObject(L"/Script/FortniteGame.BuildingFoundation.SetDynamicFoundationEnabled"), - ABuildingFoundation::SetDynamicFoundationEnabledHook, (PVOID*)&ABuildingFoundation::SetDynamicFoundationEnabledOriginal, false, true); - - */ /* if (Fortnite_Version == 6.21) // ur trolling