mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-13 19:02:21 +01:00
blow up
This commit is contained in:
@@ -14,4 +14,10 @@ void AController::Possess(class APawn* Pawn)
|
|||||||
{
|
{
|
||||||
auto PossessFn = FindFunction("Possess");
|
auto PossessFn = FindFunction("Possess");
|
||||||
this->ProcessEvent(PossessFn, &Pawn);
|
this->ProcessEvent(PossessFn, &Pawn);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AController::UnPossess()
|
||||||
|
{
|
||||||
|
auto UnPossessFn = FindFunction("UnPossess");
|
||||||
|
this->ProcessEvent(UnPossessFn);
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@ class AController : public AActor
|
|||||||
public:
|
public:
|
||||||
AActor* GetViewTarget();
|
AActor* GetViewTarget();
|
||||||
void Possess(class APawn* Pawn);
|
void Possess(class APawn* Pawn);
|
||||||
|
void UnPossess();
|
||||||
|
|
||||||
FName& GetStateName()
|
FName& GetStateName()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ UFortWeaponItemDefinition* AFortAthenaVehicle::GetVehicleWeaponForSeat(int SeatI
|
|||||||
static auto WeaponSeatDefinitionsOffset = WeaponComponent->GetOffset("WeaponSeatDefinitions");
|
static auto WeaponSeatDefinitionsOffset = WeaponComponent->GetOffset("WeaponSeatDefinitions");
|
||||||
auto& WeaponSeatDefinitions = WeaponComponent->Get<TArray<__int64>>(WeaponSeatDefinitionsOffset);
|
auto& WeaponSeatDefinitions = WeaponComponent->Get<TArray<__int64>>(WeaponSeatDefinitionsOffset);
|
||||||
|
|
||||||
|
// VehicleWeaponDefinition = *(UFortWeaponItemDefinition**)(__int64(WeaponSeatDefinitions.at(SeatIdx)) + VehicleWeaponOffset);
|
||||||
|
|
||||||
for (int i = 0; i < WeaponSeatDefinitions.Num(); i++)
|
for (int i = 0; i < WeaponSeatDefinitions.Num(); i++)
|
||||||
{
|
{
|
||||||
auto WeaponSeat = WeaponSeatDefinitions.AtPtr(i, WeaponSeatDefinitionStructSize);
|
auto WeaponSeat = WeaponSeatDefinitions.AtPtr(i, WeaponSeatDefinitionStructSize);
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ static UFortPlaylistAthena* GetPlaylistToUse()
|
|||||||
if (Globals::bCreative)
|
if (Globals::bCreative)
|
||||||
Playlist = FindObject<UFortPlaylistAthena>(L"/Game/Athena/Playlists/Creative/Playlist_PlaygroundV2.Playlist_PlaygroundV2");
|
Playlist = FindObject<UFortPlaylistAthena>(L"/Game/Athena/Playlists/Creative/Playlist_PlaygroundV2.Playlist_PlaygroundV2");
|
||||||
|
|
||||||
|
// Playlist = FindObject<UFortPlaylistAthena>(L"/Game/Athena/Playlists/Respawn/Variants/Respawn_Vamp/Playlist_Respawn_Vamp_Solo.Playlist_Respawn_Vamp_Solo");
|
||||||
|
|
||||||
return Playlist;
|
return Playlist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -499,54 +499,30 @@ void AFortPlayerController::ServerAttemptInteractHook(UObject* Context, FFrame*
|
|||||||
if (!WorldInventory)
|
if (!WorldInventory)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto NewAndModifiedInstances = WorldInventory->AddItem(VehicleWeaponDefinition, nullptr);
|
auto NewAndModifiedInstances = WorldInventory->AddItem(VehicleWeaponDefinition, nullptr, 1, 9999);
|
||||||
|
|
||||||
auto NewVehicleInstance = NewAndModifiedInstances.first[0];
|
auto NewVehicleInstance = NewAndModifiedInstances.first[0];
|
||||||
|
|
||||||
if (!NewVehicleInstance)
|
if (!NewVehicleInstance)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldInventory->Update();
|
static auto FortItemEntrySize = FFortItemEntry::GetStructSize();
|
||||||
|
|
||||||
auto VehicleWeapon = Pawn->EquipWeaponDefinition(VehicleWeaponDefinition, NewVehicleInstance->GetItemEntry()->GetItemGuid());
|
auto& ReplicatedEntries = WorldInventory->GetItemList().GetReplicatedEntries();
|
||||||
// PlayerController->ServerExecuteInventoryItemHook(PlayerController, newitem->GetItemEntry()->GetItemGuid());
|
|
||||||
|
|
||||||
/* static auto GetSeatWeaponComponentFn = FindObject<UFunction>("/Script/FortniteGame.FortAthenaVehicle.GetSeatWeaponComponent");
|
for (int i = 0; i < ReplicatedEntries.Num(); i++)
|
||||||
|
|
||||||
if (GetSeatWeaponComponentFn)
|
|
||||||
{
|
{
|
||||||
struct { int SeatIndex; UObject* ReturnValue; } AFortAthenaVehicle_GetSeatWeaponComponent_Params{};
|
auto ReplicatedEntry = ReplicatedEntries.AtPtr(i, FortItemEntrySize);
|
||||||
|
|
||||||
Vehicle->ProcessEvent(GetSeatWeaponComponentFn, &AFortAthenaVehicle_GetSeatWeaponComponent_Params);
|
if (ReplicatedEntry->GetItemGuid() == NewVehicleInstance->GetItemEntry()->GetItemGuid())
|
||||||
|
|
||||||
UObject* WeaponComponent = AFortAthenaVehicle_GetSeatWeaponComponent_Params.ReturnValue;
|
|
||||||
|
|
||||||
if (!WeaponComponent)
|
|
||||||
return;
|
|
||||||
|
|
||||||
static auto WeaponSeatDefinitionStructSize = FindObject<UClass>("/Script/FortniteGame.WeaponSeatDefinition")->GetPropertiesSize();
|
|
||||||
static auto VehicleWeaponOffset = FindOffsetStruct("/Script/FortniteGame.WeaponSeatDefinition", "VehicleWeapon");
|
|
||||||
static auto SeatIndexOffset = FindOffsetStruct("/Script/FortniteGame.WeaponSeatDefinition", "SeatIndex");
|
|
||||||
static auto WeaponSeatDefinitionsOffset = WeaponComponent->GetOffset("WeaponSeatDefinitions");
|
|
||||||
auto& WeaponSeatDefinitions = WeaponComponent->Get<TArray<__int64>>(WeaponSeatDefinitionsOffset);
|
|
||||||
|
|
||||||
for (int i = 0; i < WeaponSeatDefinitions.Num(); ++i)
|
|
||||||
{
|
{
|
||||||
auto WeaponSeat = WeaponSeatDefinitions.AtPtr(i, WeaponSeatDefinitionStructSize);
|
WorldInventory->GetItemList().MarkItemDirty(ReplicatedEntry);
|
||||||
|
WorldInventory->GetItemList().MarkItemDirty(NewVehicleInstance->GetItemEntry());
|
||||||
|
WorldInventory->HandleInventoryLocalUpdate();
|
||||||
|
|
||||||
if (*(int*)(__int64(WeaponSeat) + SeatIndexOffset) != Vehicle->FindSeatIndex(Pawn))
|
PlayerController->ServerExecuteInventoryItemHook(PlayerController, NewVehicleInstance->GetItemEntry()->GetItemGuid());
|
||||||
continue;
|
|
||||||
|
|
||||||
auto VehicleGrantedWeaponItem = (TWeakObjectPtr<UFortItem>*)(__int64(WeaponSeat) + 0x20);
|
|
||||||
|
|
||||||
VehicleGrantedWeaponItem->ObjectIndex = NewVehicleInstance->InternalIndex;
|
|
||||||
VehicleGrantedWeaponItem->ObjectSerialNumber = GetItemByIndex(NewVehicleInstance->InternalIndex)->SerialNumber;
|
|
||||||
|
|
||||||
static auto bWeaponEquippedOffset = WeaponComponent->GetOffset("bWeaponEquipped");
|
|
||||||
WeaponComponent->Get<bool>(bWeaponEquippedOffset) = true;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
} */
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -776,7 +752,7 @@ void AFortPlayerController::ServerAttemptAircraftJumpHook(AFortPlayerController*
|
|||||||
{
|
{
|
||||||
if (false)
|
if (false)
|
||||||
{
|
{
|
||||||
// honestly idk why this doesnt work
|
// honestly idk why this doesnt work ( ithink its suppsoed to be spectator)
|
||||||
|
|
||||||
auto NAME_Inactive = UKismetStringLibrary::Conv_StringToName(L"NAME_Inactive");
|
auto NAME_Inactive = UKismetStringLibrary::Conv_StringToName(L"NAME_Inactive");
|
||||||
|
|
||||||
|
|||||||
@@ -334,6 +334,13 @@ void AFortPlayerControllerAthena::ServerRestartPlayerHook(AFortPlayerControllerA
|
|||||||
static auto ZoneServerRestartPlayer = __int64(FortPlayerControllerZoneDefault->VFTable[GetFunctionIdxOrPtr(ServerRestartPlayerFn) / 8]);
|
static auto ZoneServerRestartPlayer = __int64(FortPlayerControllerZoneDefault->VFTable[GetFunctionIdxOrPtr(ServerRestartPlayerFn) / 8]);
|
||||||
static void (*ZoneServerRestartPlayerOriginal)(AFortPlayerController*) = decltype(ZoneServerRestartPlayerOriginal)(__int64(ZoneServerRestartPlayer));
|
static void (*ZoneServerRestartPlayerOriginal)(AFortPlayerController*) = decltype(ZoneServerRestartPlayerOriginal)(__int64(ZoneServerRestartPlayer));
|
||||||
|
|
||||||
|
// auto NAME_Spectating = UKismetStringLibrary::Conv_StringToName(L"NAME_Spectating");
|
||||||
|
|
||||||
|
// LOG_INFO(LogDev, "ISplayerwaiting: {}", Controller->IsPlayerWaiting());
|
||||||
|
|
||||||
|
// Controller->GetStateName() = NAME_Spectating;
|
||||||
|
// Controller->SetPlayerIsWaiting(true);
|
||||||
|
|
||||||
LOG_INFO(LogDev, "ServerRestartPlayerHook Call 0x{:x} returning with 0x{:x}!", ZoneServerRestartPlayer - __int64(_ReturnAddress()), __int64(ZoneServerRestartPlayerOriginal) - __int64(GetModuleHandleW(0)));
|
LOG_INFO(LogDev, "ServerRestartPlayerHook Call 0x{:x} returning with 0x{:x}!", ZoneServerRestartPlayer - __int64(_ReturnAddress()), __int64(ZoneServerRestartPlayerOriginal) - __int64(GetModuleHandleW(0)));
|
||||||
return ZoneServerRestartPlayerOriginal(Controller);
|
return ZoneServerRestartPlayerOriginal(Controller);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,13 @@ void APlayerController::SetPlayerIsWaiting(bool NewValue)
|
|||||||
this->SetBitfieldValue(bPlayerIsWaitingOffset, bPlayerIsWaitingFieldMask, NewValue);
|
this->SetBitfieldValue(bPlayerIsWaitingOffset, bPlayerIsWaitingFieldMask, NewValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool APlayerController::IsPlayerWaiting()
|
||||||
|
{
|
||||||
|
static auto bPlayerIsWaitingOffset = GetOffset("bPlayerIsWaiting");
|
||||||
|
static auto bPlayerIsWaitingFieldMask = GetFieldMask(this->GetProperty("bPlayerIsWaiting"));
|
||||||
|
return this->ReadBitfieldValue(bPlayerIsWaitingOffset, bPlayerIsWaitingFieldMask);
|
||||||
|
}
|
||||||
|
|
||||||
UCheatManager*& APlayerController::SpawnCheatManager(UClass* CheatManagerClass)
|
UCheatManager*& APlayerController::SpawnCheatManager(UClass* CheatManagerClass)
|
||||||
{
|
{
|
||||||
GetCheatManager() = UGameplayStatics::SpawnObject<UCheatManager>(CheatManagerClass, this, true);
|
GetCheatManager() = UGameplayStatics::SpawnObject<UCheatManager>(CheatManagerClass, this, true);
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SetPlayerIsWaiting(bool NewValue);
|
void SetPlayerIsWaiting(bool NewValue);
|
||||||
|
bool IsPlayerWaiting();
|
||||||
void ServerChangeName(FString& S);
|
void ServerChangeName(FString& S);
|
||||||
UCheatManager*& SpawnCheatManager(UClass* CheatManagerClass);
|
UCheatManager*& SpawnCheatManager(UClass* CheatManagerClass);
|
||||||
FRotator GetControlRotation();
|
FRotator GetControlRotation();
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ static ENetMode GetNetModeHook2() { return NetMode; }
|
|||||||
static bool ReturnTrueHook() { return true; }
|
static bool ReturnTrueHook() { return true; }
|
||||||
static bool ReturnFalseHook() { return false; }
|
static bool ReturnFalseHook() { return false; }
|
||||||
static int Return2Hook() { return 2; }
|
static int Return2Hook() { return 2; }
|
||||||
|
static void EmptyHook() { return; }
|
||||||
|
|
||||||
static bool NoMCPHook() { return Globals::bNoMCP; }
|
static bool NoMCPHook() { return Globals::bNoMCP; }
|
||||||
static void CollectGarbageHook() { return; }
|
static void CollectGarbageHook() { return; }
|
||||||
@@ -305,7 +306,7 @@ void ActivatePhaseAtIndexHook(UObject* SpecialEventScript, int Index)
|
|||||||
auto WorldInventory = CurrentController->GetWorldInventory();
|
auto WorldInventory = CurrentController->GetWorldInventory();
|
||||||
|
|
||||||
bool bShouldUpdate = false;
|
bool bShouldUpdate = false;
|
||||||
WorldInventory->AddItem(WID, &bShouldUpdate, 1);
|
WorldInventory->AddItem(WID, &bShouldUpdate, 1, 9999);
|
||||||
|
|
||||||
if (bShouldUpdate)
|
if (bShouldUpdate)
|
||||||
WorldInventory->Update();
|
WorldInventory->Update();
|
||||||
@@ -808,6 +809,8 @@ DWORD WINAPI Main(LPVOID)
|
|||||||
|
|
||||||
if (Fortnite_Version == 17.30) // Rift Tour stuff
|
if (Fortnite_Version == 17.30) // Rift Tour stuff
|
||||||
{
|
{
|
||||||
|
auto busCrash = Hooking::MinHook::Hook(Memcury::Scanner::FindPattern("48 89 5C 24 ? 48 89 6C 24 ? 56 57 41 54 41 56 41 57 48 83 EC 40 48 8B 59 28 45 33 E4").GetAs<PVOID>(), (PVOID)EmptyHook);
|
||||||
|
|
||||||
Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x3E07910), (PVOID)GetMeshNetworkNodeTypeHook, nullptr);
|
Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x3E07910), (PVOID)GetMeshNetworkNodeTypeHook, nullptr);
|
||||||
Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x3DED158), (PVOID)ReturnTrueHook, nullptr); // 7FF7E556D158
|
Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x3DED158), (PVOID)ReturnTrueHook, nullptr); // 7FF7E556D158
|
||||||
Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x3DECFC8), (PVOID)ReturnTrueHook, nullptr); // 7FF7E556CFC8
|
Hooking::MinHook::Hook((PVOID)(__int64(GetModuleHandleW(0)) + 0x3DECFC8), (PVOID)ReturnTrueHook, nullptr); // 7FF7E556CFC8
|
||||||
|
|||||||
Reference in New Issue
Block a user