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 +}