nevermind screw v3 im about to release

This commit is contained in:
Milxnor
2023-05-12 18:18:47 -04:00
parent 8470ac942a
commit 8013f43a8b
9 changed files with 82 additions and 13 deletions

View File

@@ -323,6 +323,8 @@ void PickLootDropsFromLootPackage(const std::vector<UDataTable*>& LPTables, cons
} }
} }
// #define brudda
std::vector<LootDrop> PickLootDrops(FName TierGroupName, int ForcedLootTier, bool bPrint, int recursive) std::vector<LootDrop> PickLootDrops(FName TierGroupName, int ForcedLootTier, bool bPrint, int recursive)
{ {
std::vector<LootDrop> LootDrops; std::vector<LootDrop> LootDrops;
@@ -361,6 +363,7 @@ std::vector<LootDrop> PickLootDrops(FName TierGroupName, int ForcedLootTier, boo
if (LootTierDataSoft.IsValid() && LootPackagesSoft.IsValid()) if (LootTierDataSoft.IsValid() && LootPackagesSoft.IsValid())
{ {
#ifndef brudda
auto LootTierDataStr = LootTierDataSoft.SoftObjectPtr.ObjectID.AssetPathName.ToString(); auto LootTierDataStr = LootTierDataSoft.SoftObjectPtr.ObjectID.AssetPathName.ToString();
auto LootPackagesStr = LootPackagesSoft.SoftObjectPtr.ObjectID.AssetPathName.ToString(); auto LootPackagesStr = LootPackagesSoft.SoftObjectPtr.ObjectID.AssetPathName.ToString();
auto LootTierDataTableIsComposite = LootTierDataStr.contains("Composite"); auto LootTierDataTableIsComposite = LootTierDataStr.contains("Composite");
@@ -368,6 +371,10 @@ std::vector<LootDrop> PickLootDrops(FName TierGroupName, int ForcedLootTier, boo
auto StrongLootTierData = LootTierDataSoft.Get(LootTierDataTableIsComposite ? CompositeDataTableClass : UDataTable::StaticClass(), true); auto StrongLootTierData = LootTierDataSoft.Get(LootTierDataTableIsComposite ? CompositeDataTableClass : UDataTable::StaticClass(), true);
auto StrongLootPackage = LootPackagesSoft.Get(LootPackageTableIsComposite ? CompositeDataTableClass : UDataTable::StaticClass(), true); auto StrongLootPackage = LootPackagesSoft.Get(LootPackageTableIsComposite ? CompositeDataTableClass : UDataTable::StaticClass(), true);
#else
auto StrongLootTierData = (UDataTable*)Assets::LoadAsset(LootTierDataSoft.SoftObjectPtr.ObjectID.AssetPathName);
auto StrongLootPackage = (UDataTable*)Assets::LoadAsset(LootPackagesSoft.SoftObjectPtr.ObjectID.AssetPathName);
#endif
if (StrongLootTierData && StrongLootPackage) if (StrongLootTierData && StrongLootPackage)
{ {
@@ -381,8 +388,13 @@ std::vector<LootDrop> PickLootDrops(FName TierGroupName, int ForcedLootTier, boo
if (!bFoundPlaylistTable) if (!bFoundPlaylistTable)
{ {
#ifdef brudda
LTDTables.push_back((UDataTable*)Assets::LoadAsset(UKismetStringLibrary::Conv_StringToName(L"/Game/Items/Datatables/AthenaLootTierData_Client.AthenaLootTierData_Client")));
LPTables.push_back((UDataTable*)Assets::LoadAsset(UKismetStringLibrary::Conv_StringToName(L"/Game/Items/Datatables/AthenaLootPackages_Client.AthenaLootPackages_Client")));
#else
LTDTables.push_back(LoadObject<UDataTable>(L"/Game/Items/Datatables/AthenaLootTierData_Client.AthenaLootTierData_Client")); LTDTables.push_back(LoadObject<UDataTable>(L"/Game/Items/Datatables/AthenaLootTierData_Client.AthenaLootTierData_Client"));
LPTables.push_back(LoadObject<UDataTable>(L"/Game/Items/Datatables/AthenaLootPackages_Client.AthenaLootPackages_Client")); LPTables.push_back(LoadObject<UDataTable>(L"/Game/Items/Datatables/AthenaLootPackages_Client.AthenaLootPackages_Client"));
#endif
} }
// LTDTables.push_back(LoadObject<UDataTable>(L"/Game/Athena/Playlists/Playground/AthenaLootTierData_Client.AthenaLootTierData_Client")); // LTDTables.push_back(LoadObject<UDataTable>(L"/Game/Athena/Playlists/Playground/AthenaLootTierData_Client.AthenaLootTierData_Client"));

View File

@@ -249,6 +249,7 @@
<ClCompile Include="Object.cpp" /> <ClCompile Include="Object.cpp" />
<ClCompile Include="PlayerController.cpp" /> <ClCompile Include="PlayerController.cpp" />
<ClCompile Include="PlayerState.cpp" /> <ClCompile Include="PlayerState.cpp" />
<ClCompile Include="reboot.cpp" />
<ClCompile Include="SavePackage.cpp" /> <ClCompile Include="SavePackage.cpp" />
<ClCompile Include="UnrealMath.cpp" /> <ClCompile Include="UnrealMath.cpp" />
<ClCompile Include="UnrealNames.cpp" /> <ClCompile Include="UnrealNames.cpp" />

View File

@@ -106,9 +106,6 @@
<ClCompile Include="FortPlayerPawn.cpp"> <ClCompile Include="FortPlayerPawn.cpp">
<Filter>FortniteGame\Source\FortniteGame\Private\Pawns</Filter> <Filter>FortniteGame\Source\FortniteGame\Private\Pawns</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="events.cpp">
<Filter>Reboot\Private\Gameplay</Filter>
</ClCompile>
<ClCompile Include="FortPlayerControllerAthena.cpp"> <ClCompile Include="FortPlayerControllerAthena.cpp">
<Filter>FortniteGame\Source\FortniteGame\Private\Player</Filter> <Filter>FortniteGame\Source\FortniteGame\Private\Player</Filter>
</ClCompile> </ClCompile>
@@ -271,6 +268,12 @@
<ClCompile Include="inc.cpp"> <ClCompile Include="inc.cpp">
<Filter>Reboot\Private</Filter> <Filter>Reboot\Private</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="events.cpp">
<Filter>Reboot\Private</Filter>
</ClCompile>
<ClCompile Include="reboot.cpp">
<Filter>Reboot\Private</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="log.h" /> <ClInclude Include="log.h" />
@@ -546,9 +549,6 @@
<ClInclude Include="commands.h"> <ClInclude Include="commands.h">
<Filter>Reboot\Public</Filter> <Filter>Reboot\Public</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ai.h">
<Filter>Reboot\Public\Gameplay</Filter>
</ClInclude>
<ClInclude Include="Player.h"> <ClInclude Include="Player.h">
<Filter>Engine\Source\Runtime\Engine\Classes\Engine</Filter> <Filter>Engine\Source\Runtime\Engine\Classes\Engine</Filter>
</ClInclude> </ClInclude>
@@ -859,6 +859,9 @@
<ClInclude Include="inc.h"> <ClInclude Include="inc.h">
<Filter>Reboot\Public</Filter> <Filter>Reboot\Public</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ai.h">
<Filter>Reboot\Public</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Filter Include="Engine"> <Filter Include="Engine">
@@ -1011,9 +1014,6 @@
<Filter Include="Reboot\Public"> <Filter Include="Reboot\Public">
<UniqueIdentifier>{ad1c6299-9a6d-4eba-a1f8-66642a8afd21}</UniqueIdentifier> <UniqueIdentifier>{ad1c6299-9a6d-4eba-a1f8-66642a8afd21}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Reboot\Public\Gameplay">
<UniqueIdentifier>{9923af6f-0a65-43f7-ad58-8a66e83814ba}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Source\FortniteGame\Public\Creative"> <Filter Include="FortniteGame\Source\FortniteGame\Public\Creative">
<UniqueIdentifier>{51b57917-fec7-41b7-bdc8-ad284a5385a4}</UniqueIdentifier> <UniqueIdentifier>{51b57917-fec7-41b7-bdc8-ad284a5385a4}</UniqueIdentifier>
</Filter> </Filter>
@@ -1086,9 +1086,6 @@
<Filter Include="Reboot\Private"> <Filter Include="Reboot\Private">
<UniqueIdentifier>{563ca89b-be74-42a6-a995-f87ac7a532e4}</UniqueIdentifier> <UniqueIdentifier>{563ca89b-be74-42a6-a995-f87ac7a532e4}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Reboot\Private\Gameplay">
<UniqueIdentifier>{52d438db-beaf-44be-bddd-9aeb07c2459f}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Source\FortniteGame\Public\Athena\Modifiers"> <Filter Include="FortniteGame\Source\FortniteGame\Public\Athena\Modifiers">
<UniqueIdentifier>{39656a6c-bfe1-4521-8652-aea0146564d6}</UniqueIdentifier> <UniqueIdentifier>{39656a6c-bfe1-4521-8652-aea0146564d6}</UniqueIdentifier>
</Filter> </Filter>

View File

@@ -291,6 +291,9 @@ void Addresses::FindAll()
LOG_INFO(LogDev, "Finding PickSupplyDropLocation"); LOG_INFO(LogDev, "Finding PickSupplyDropLocation");
Addresses::PickSupplyDropLocation = FindPickSupplyDropLocation(); Addresses::PickSupplyDropLocation = FindPickSupplyDropLocation();
LOG_INFO(LogDev, "Finding LoadAsset");
Addresses::LoadAsset = FindLoadAsset();
LOG_INFO(LogDev, "Finished finding!"); LOG_INFO(LogDev, "Finished finding!");
} }
@@ -359,6 +362,7 @@ void Addresses::Print()
LOG_INFO(LogDev, "CombinePickupLea: 0x{:x}", CombinePickupLea - Base); LOG_INFO(LogDev, "CombinePickupLea: 0x{:x}", CombinePickupLea - Base);
LOG_INFO(LogDev, "CreateBuildingActorCallForDeco: 0x{:x}", CreateBuildingActorCallForDeco - Base); LOG_INFO(LogDev, "CreateBuildingActorCallForDeco: 0x{:x}", CreateBuildingActorCallForDeco - Base);
LOG_INFO(LogDev, "PickSupplyDropLocation: 0x{:x}", PickSupplyDropLocation - Base); LOG_INFO(LogDev, "PickSupplyDropLocation: 0x{:x}", PickSupplyDropLocation - Base);
LOG_INFO(LogDev, "LoadAsset: 0x{:x}", LoadAsset - Base)
} }
void Offsets::FindAll() void Offsets::FindAll()

View File

@@ -69,6 +69,7 @@ namespace Addresses
extern inline uint64 CombinePickupLea = 0; extern inline uint64 CombinePickupLea = 0;
extern inline uint64 CreateBuildingActorCallForDeco = 0; extern inline uint64 CreateBuildingActorCallForDeco = 0;
extern inline uint64 PickSupplyDropLocation = 0; extern inline uint64 PickSupplyDropLocation = 0;
extern inline uint64 LoadAsset = 0;
void SetupVersion(); // Finds Engine Version void SetupVersion(); // Finds Engine Version
void FindAll(); void FindAll();

View File

@@ -92,7 +92,9 @@ static void SetupServerBotManager()
static auto CachedGameModeOffset = ServerBotManager->GetOffset("CachedGameMode"); static auto CachedGameModeOffset = ServerBotManager->GetOffset("CachedGameMode");
ServerBotManager->Get(CachedGameModeOffset) = GameMode; ServerBotManager->Get(CachedGameModeOffset) = GameMode;
static auto CachedGameStateOffset = ServerBotManager->GetOffset("CachedGameState"); static auto CachedGameStateOffset = ServerBotManager->GetOffset("CachedGameState", false);
if (CachedGameStateOffset != -1)
ServerBotManager->Get(CachedGameStateOffset) = GameState; ServerBotManager->Get(CachedGameStateOffset) = GameState;
static auto CachedBotMutatorOffset = ServerBotManager->GetOffset("CachedBotMutator"); static auto CachedBotMutatorOffset = ServerBotManager->GetOffset("CachedBotMutator");

View File

@@ -168,6 +168,22 @@ static inline uint64 FindCreateNetDriver()
return 0; return 0;
} }
static inline uint64 FindLoadAsset()
{
auto Addrr = Memcury::Scanner::FindStringRef(L"Loaded delay-load asset %s").Get();
for (int i = 0; i < 2000; i++)
{
if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 &&
(*(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x74 || *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x6C))
{
return Addrr - i;
}
}
return 0;
}
static inline uint64 FindKickPlayer() static inline uint64 FindKickPlayer()
{ {
if (Engine_Version == 416) if (Engine_Version == 416)

View File

@@ -0,0 +1,29 @@
#include "reboot.h"
#include "SoftObjectPtr.h"
#include "KismetStringLibrary.h"
UObject* Assets::LoadAsset(FName Name, bool ShowDelayTimes)
{
static UObject* (*LoadAssetOriginal)(FName a1, bool a2);
return LoadAssetOriginal(Name, ShowDelayTimes);
}
UObject* Assets::LoadSoftObject(void* SoftObjectPtr)
{
if (Engine_Version == 416)
{
auto tAssetPtr = (TAssetPtr<UObject>*)SoftObjectPtr;
// return LoadAsset(tAssetPtr->AssetPtr.ObjectID.AssetLongPathname.);
return nullptr; // later
}
auto tSoftObjectPtr = (TSoftObjectPtr<UObject>*)SoftObjectPtr;
// if (auto WeakObject = tSoftObjectPtr->GetByWeakObject())
// return WeakObject;
return Assets::LoadAsset(tSoftObjectPtr->SoftObjectPtr.ObjectID.AssetPathName);
}

View File

@@ -384,6 +384,13 @@ static void CopyStruct(void* Dest, void* Src, size_t Size, UStruct* Struct = nul
} }
} }
class Assets
{
public:
static UObject* LoadAsset(FName Name, bool ShowDelayTimes = false);
static UObject* LoadSoftObject(void* SoftObjectPtr);
};
template <typename T = __int64> template <typename T = __int64>
static T* Alloc(size_t Size = sizeof(T), bool bUseFMemoryRealloc = false) static T* Alloc(size_t Size = sizeof(T), bool bUseFMemoryRealloc = false)
{ {