This commit is contained in:
Gray
2025-07-15 12:40:42 -04:00
4 changed files with 66 additions and 3 deletions

View File

@@ -7,7 +7,7 @@
#include "GameplayStatics.h" #include "GameplayStatics.h"
#include "KismetMathLibrary.h" #include "KismetMathLibrary.h"
#include <random> #include <random>
#include "Package.h"S #include "Package.h"
#include "AssertionMacros.h" #include "AssertionMacros.h"
#include "bots.h" #include "bots.h"
#include "gui.h" #include "gui.h"

View File

@@ -445,6 +445,8 @@ void Offsets::FindAll()
Offsets::ServerReplicateActors = 0x5E; Offsets::ServerReplicateActors = 0x5E;
else if (Fortnite_Version >= 15.3 && Engine_Version < 500) // 15.3-18 = 0x5F else if (Fortnite_Version >= 15.3 && Engine_Version < 500) // 15.3-18 = 0x5F
Offsets::ServerReplicateActors = 0x5F; Offsets::ServerReplicateActors = 0x5F;
else if (Fortnite_Version == 19.40)
Offsets::ServerReplicateActors = 0x65;
else if (std::floor(Fortnite_Version) >= 19 && std::floor(Fortnite_Version) <= 20) else if (std::floor(Fortnite_Version) >= 19 && std::floor(Fortnite_Version) <= 20)
Offsets::ServerReplicateActors = 0x66; Offsets::ServerReplicateActors = 0x66;
else if (std::floor(Fortnite_Version) >= 21) else if (std::floor(Fortnite_Version) >= 21)

View File

@@ -2,6 +2,11 @@
#include "FortAthenaAIBotSpawnerData.h" #include "FortAthenaAIBotSpawnerData.h"
#include <map>
#include <string>
std::map<std::string, FVector> Waypoints;
void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg) void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg)
{ {
bool isMsgEmpty = !Msg.Data.Data || Msg.Data.Num() <= 0; bool isMsgEmpty = !Msg.Data.Data || Msg.Data.Num() <= 0;
@@ -851,6 +856,57 @@ void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg)
CheatManager = nullptr; CheatManager = nullptr;
SendMessageToConsole(PlayerController, L"Teleported!"); SendMessageToConsole(PlayerController, L"Teleported!");
} }
else if (Command == "savewaypoint")
{
if (NumArgs < 1)
{
SendMessageToConsole(PlayerController, L"Please provide a phrase to save the waypoint.");
return;
}
auto Pawn = ReceivingController->GetMyFortPawn();
if (!Pawn)
{
SendMessageToConsole(PlayerController, L"No pawn to get location from!");
return;
}
auto PawnLocation = Pawn->GetActorLocation();
Waypoints[Arguments[1]] = PawnLocation;
SendMessageToConsole(PlayerController, L"Waypoint saved! Use « cheat waypoint (phrase) » to teleport to that location!");
}
else if (Command == "waypoint")
{
if (NumArgs < 1)
{
SendMessageToConsole(PlayerController, L"Please provide a waypoint phrase to teleport to.");
return;
}
std::string Phrase = Arguments[1];
if (Waypoints.find(Phrase) == Waypoints.end())
{
SendMessageToConsole(PlayerController, L"A saved waypoint with this phrase was not found!");
return;
}
FVector Destination = Waypoints[Phrase];
auto Pawn = ReceivingController->GetMyFortPawn();
if (Pawn)
{
Pawn->TeleportTo(Destination, Pawn->GetActorRotation());
SendMessageToConsole(PlayerController, L"Teleported to waypoint!");
}
else
{
SendMessageToConsole(PlayerController, L"No pawn to teleport!");
}
}
else if (Command == "startaircraft") else if (Command == "startaircraft")
{ {
GameMode->StartAircraftPhase(); GameMode->StartAircraftPhase();
@@ -1004,6 +1060,8 @@ cheat setshield <Shield=0.f> - Sets executing player's shield.
cheat applycid <CIDShortName> - Sets a player's character. cheat applycid <CIDShortName> - Sets a player's character.
cheat spawnpickup <ShortWID> <ItemCount=1> <PickupCount=1> - Spawns a pickup at specified player. cheat spawnpickup <ShortWID> <ItemCount=1> <PickupCount=1> - Spawns a pickup at specified player.
cheat teleport/tp - Teleports to what the player is looking at. cheat teleport/tp - Teleports to what the player is looking at.
cheat savewaypoint (phrase/number) - Gets the location of where you are standing and saves it as a waypoint.
cheat waypoint (saved phrase/number) - Teleports the player to the selected existing waypoint.
cheat spawnbot <Amount=1> - Spawns a bot at the player (experimental). cheat spawnbot <Amount=1> - Spawns a bot at the player (experimental).
cheat setpickaxe <PickaxeID> - Set player's pickaxe. Can be either the PID or WID cheat setpickaxe <PickaxeID> - Set player's pickaxe. Can be either the PID or WID
cheat destroytarget - Destroys the actor that the player is looking at. cheat destroytarget - Destroys the actor that the player is looking at.
@@ -1017,4 +1075,4 @@ If you want to execute a command on a certain player, surround their name (case
SendMessageToConsole(PlayerController, HelpMessage); SendMessageToConsole(PlayerController, HelpMessage);
} }
} }

View File

@@ -72,7 +72,10 @@ static inline uint64 FindStaticFindObject(int StringSkip = 1)
auto addr = Memcury::Scanner::FindPattern("40 55 53 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 45 33 F6 4C 8B E1 45 0F B6 E9 49 8B F8 41 8B C6", false).Get(); auto addr = Memcury::Scanner::FindPattern("40 55 53 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 45 33 F6 4C 8B E1 45 0F B6 E9 49 8B F8 41 8B C6", false).Get();
if (!addr) if (!addr)
addr = Memcury::Scanner::FindPattern("48 89 5C 24 ? 48 89 74 24 ? 4C 89 64 24 ? 55 41 55 41 57 48 8B EC 48 83 EC 60 45 8A E1 4C 8B E9 48 83 FA").Get(); // 20.00 addr = Memcury::Scanner::FindPattern("48 89 5C 24 ? 48 89 74 24 ? 4C 89 64 24 ? 55 41 55 41 57 48 8B EC 48 83 EC 60 45 8A E1 4C 8B E9 48 83 FA", false).Get(); // 20.00
if (!addr)
addr = Memcury::Scanner::FindPattern("48 89 5C 24 ? 48 89 74 24 ? 4C 89 64 24 ? 55 41 55 41 57 48 8B EC 48 83 EC 50 4C 8B E9").Get(); // 19.40
return addr; return addr;
} }