mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-13 02:42:22 +01:00
hopefully fix compile error & fix pausesafezone?
This commit is contained in:
@@ -23,7 +23,7 @@ struct FBarrierTeamState // Idk if this actually changes
|
||||
{
|
||||
static UStruct* GetStruct()
|
||||
{
|
||||
static auto Struct = FindObject<UStruct>("/Script/FortniteGame.BarrierTeamState");
|
||||
static auto Struct = FindObject<UStruct>(L"/Script/FortniteGame.BarrierTeamState");
|
||||
return Struct;
|
||||
}
|
||||
|
||||
|
||||
@@ -143,6 +143,26 @@ void AFortGameModeAthena::HandleSpawnRateForActorClass(UClass* ActorClass, float
|
||||
}
|
||||
}
|
||||
|
||||
void AFortGameModeAthena::PauseSafeZone(bool bPaused)
|
||||
{
|
||||
auto GameState = GetGameStateAthena();
|
||||
|
||||
static auto bSafeZonePausedOffset = GameState->GetOffset("bSafeZonePaused");
|
||||
GameState->IsSafeZonePaused() = bPaused;
|
||||
|
||||
auto SafeZoneIndicator = GetSafeZoneIndicator();
|
||||
|
||||
if (!SafeZoneIndicator)
|
||||
return;
|
||||
|
||||
static auto TimeRemainingWhenPhasePausedOffset = this->GetOffset("TimeRemainingWhenPhasePaused");
|
||||
|
||||
if (bPaused)
|
||||
this->Get<float>(TimeRemainingWhenPhasePausedOffset) = SafeZoneIndicator->GetSafeZoneFinishShrinkTime() - GameState->GetServerWorldTimeSeconds();
|
||||
else
|
||||
SafeZoneIndicator->GetSafeZoneFinishShrinkTime() = GameState->GetServerWorldTimeSeconds() + this->Get<float>(TimeRemainingWhenPhasePausedOffset);
|
||||
}
|
||||
|
||||
bool AFortGameModeAthena::Athena_ReadyToStartMatchHook(AFortGameModeAthena* GameMode)
|
||||
{
|
||||
Globals::bHitReadyToStartMatch = true;
|
||||
|
||||
@@ -244,6 +244,7 @@ public:
|
||||
|
||||
FName RedirectLootTier(const FName& LootTier);
|
||||
UClass* GetVehicleClassOverride(UClass* DefaultClass);
|
||||
void PauseSafeZone(bool bPaused = true);
|
||||
|
||||
static void HandleSpawnRateForActorClass(UClass* ActorClass, float SpawnPercentage); // idk where to put
|
||||
|
||||
|
||||
@@ -99,6 +99,12 @@ public:
|
||||
return Get<int>(PlayersLeftOffset);
|
||||
}
|
||||
|
||||
bool& IsSafeZonePaused()
|
||||
{
|
||||
static auto bSafeZonePausedOffset = this->GetOffset("bSafeZonePaused");
|
||||
return this->Get<bool>(bSafeZonePausedOffset);
|
||||
}
|
||||
|
||||
EAthenaGamePhase& GetGamePhase()
|
||||
{
|
||||
static auto GamePhaseOffset = GetOffset("GamePhase");
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
#include "ObjectMacros.h"
|
||||
#include "NameTypes.h"
|
||||
|
||||
@@ -76,13 +78,14 @@ public:
|
||||
void SetBitfieldValue(int Offset, uint8_t FieldMask, bool NewValue);
|
||||
void SetBitfieldValue(const std::string& ChildName, uint8_t FieldMask, bool NewValue) { return SetBitfieldValue(GetOffset(ChildName), FieldMask, NewValue); }
|
||||
|
||||
template <typename T = UObject*>
|
||||
/* template <typename T = UObject*>
|
||||
T& GetCached(const std::string& ChildName)
|
||||
{
|
||||
// We need to find a better way to do this because if there is a member with the same name in a different class then it will return the wrong offset.
|
||||
static std::unordered_map<std::string, int32_t> SavedOffsets; // Name (formatted in {Member}) and Offset
|
||||
|
||||
auto CachedName = /* ClassPrivate->GetName() + */ ChildName;
|
||||
auto CachedName = // ClassPrivate->GetName() +
|
||||
ChildName;
|
||||
auto Offset = SavedOffsets.find(CachedName);
|
||||
|
||||
if (Offset != SavedOffsets.end())
|
||||
@@ -97,7 +100,7 @@ public:
|
||||
SavedOffsets.emplace(CachedName, Offset->second);
|
||||
|
||||
return *(T*)(__int64(this) + Offset->second);
|
||||
}
|
||||
} */
|
||||
|
||||
template <typename T = UObject*>
|
||||
T& Get(const std::string& ChildName) { return Get<T>(GetOffset(ChildName)); }
|
||||
|
||||
@@ -720,7 +720,11 @@ void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg)
|
||||
}
|
||||
else if (Command == "pausesafezone")
|
||||
{
|
||||
UKismetSystemLibrary::ExecuteConsoleCommand(GetWorld(), L"pausesafezone", nullptr);
|
||||
auto GameState = Cast<AFortGameStateAthena>(GetWorld()->GetGameState());
|
||||
auto GameMode = Cast<AFortGameModeAthena>(GetWorld()->GetGameMode());
|
||||
|
||||
// UKismetSystemLibrary::ExecuteConsoleCommand(GetWorld(), L"pausesafezone", nullptr);
|
||||
GameMode->PauseSafeZone(GameState->IsSafeZonePaused() == 0);
|
||||
}
|
||||
else if (Command == "teleport")
|
||||
{
|
||||
@@ -764,36 +768,6 @@ void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg)
|
||||
Pawn->TeleportTo(FVector(X, Y, Z), Pawn->GetActorRotation());
|
||||
SendMessageToConsole(PlayerController, L"Teleported!");
|
||||
}
|
||||
else if (Command == "test")
|
||||
{
|
||||
auto SpawnBigWall = [&](AFortAthenaMutator* Mutator) {
|
||||
if (auto BarrierMutator = Cast<AFortAthenaMutator_Barrier>(Mutator))
|
||||
{
|
||||
auto BigBaseWallClass = BarrierMutator->GetBigBaseWallClass();
|
||||
|
||||
LOG_INFO(LogDev, "BigBaseWallClass: {}", BigBaseWallClass->IsValidLowLevel() ? BigBaseWallClass->GetFullName() : "BadRead");
|
||||
|
||||
if (BigBaseWallClass->IsValidLowLevel())
|
||||
{
|
||||
BarrierMutator->GetBigBaseWall() = GetWorld()->SpawnActor<AAthenaBigBaseWall>(BigBaseWallClass, FVector(0, 0, 0));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
LoopMutators(SpawnBigWall);
|
||||
}
|
||||
else if (Command == "printpawn")
|
||||
{
|
||||
auto Pawn = Cast<APawn>(ReceivingController->GetPawn());
|
||||
|
||||
if (!Pawn)
|
||||
{
|
||||
SendMessageToConsole(PlayerController, L"No pawn to print!");
|
||||
return;
|
||||
}
|
||||
|
||||
LOG_INFO(LogDev, "Pawn: 0x{:x}", __int64(Pawn));
|
||||
}
|
||||
else { bSendHelpMessage = true; };
|
||||
}
|
||||
else { bSendHelpMessage = true; };
|
||||
@@ -812,6 +786,8 @@ cheat setshield <Shield=0.f> - Sets executing player's shield.
|
||||
cheat applycid <CIDShortName> - Sets a player's character.
|
||||
cheat spawnpickup <ShortWID> - Spawns a pickup at specified player.
|
||||
cheat teleport - Teleports to what the player is looking at.
|
||||
cheat spawnbot <Amount=1> - Spawns a bot at the player (experimental).
|
||||
cheat setpickaxe <PickaxeID> - Set player's pickaxe.
|
||||
|
||||
If you want to execute a command on a certain player, surround their name (case sensitive) with \, and put the param anywhere. Example: cheat sethealth \Milxnor\ 100
|
||||
)";
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Globals
|
||||
extern inline bool bHitReadyToStartMatch = false;
|
||||
extern inline bool bInitializedPlaylist = false;
|
||||
extern inline bool bStartedListening = false;
|
||||
extern inline bool bAutoRestart = true; // doesnt work fyi
|
||||
extern inline bool bAutoRestart = false; // doesnt work fyi
|
||||
extern inline bool bFillVendingMachines = true;
|
||||
extern inline int AmountOfListens = 0; // TODO: Switch to this for LastNum
|
||||
}
|
||||
|
||||
@@ -458,7 +458,7 @@ static inline void MainUI()
|
||||
if (!bStartedBus)
|
||||
{
|
||||
bool bWillBeLategame = Globals::bLateGame.load();
|
||||
ImGui::Checkbox("Lategame", &bWillBeLategame);
|
||||
ImGui::Checkbox("Lategame (HIGHLY EXPERIMENTAL)", &bWillBeLategame);
|
||||
Globals::bLateGame.store(bWillBeLategame);
|
||||
}
|
||||
|
||||
@@ -478,10 +478,10 @@ static inline void MainUI()
|
||||
UKismetSystemLibrary::ExecuteConsoleCommand(GetWorld(), cmd, nullptr);
|
||||
}
|
||||
|
||||
if (ImGui::Button("Spawn BGAs"))
|
||||
/* if (ImGui::Button("Spawn BGAs"))
|
||||
{
|
||||
SpawnBGAs();
|
||||
}
|
||||
} */
|
||||
|
||||
/*
|
||||
if (ImGui::Button("New"))
|
||||
|
||||
Reference in New Issue
Block a user