diff --git a/Project Reboot 3.0/FortGameModeAthena.cpp b/Project Reboot 3.0/FortGameModeAthena.cpp index a32543e..1696003 100644 --- a/Project Reboot 3.0/FortGameModeAthena.cpp +++ b/Project Reboot 3.0/FortGameModeAthena.cpp @@ -235,6 +235,12 @@ void AFortGameModeAthena::OverrideSupplyDrop(AFortGameStateAthena* GameState, UC static auto MapInfoOffset = GameState->GetOffset("MapInfo"); auto MapInfo = GameState->Get(MapInfoOffset); + if (!MapInfo) + { + LOG_WARN(LogGame, "No MapInfo!"); + return; + } + static auto SupplyDropInfoListOffset = MapInfo->GetOffset("SupplyDropInfoList"); auto& SupplyDropInfoList = MapInfo->Get>(SupplyDropInfoListOffset); @@ -396,7 +402,7 @@ bool AFortGameModeAthena::Athena_ReadyToStartMatchHook(AFortGameModeAthena* Game } else { - if (Fortnite_Version >= 4.0) // ???? + if (Fortnite_Version >= 4.1) // ???? { SetPlaylist(PlaylistToUse, true); diff --git a/Project Reboot 3.0/dllmain.cpp b/Project Reboot 3.0/dllmain.cpp index 54ab074..560b1de 100644 --- a/Project Reboot 3.0/dllmain.cpp +++ b/Project Reboot 3.0/dllmain.cpp @@ -874,7 +874,8 @@ DWORD WINAPI Main(LPVOID) static auto FortOctopusVehicleDefault = FindObject(L"/Script/FortniteGame.Default__FortOctopusVehicle"); static auto FortPlayerControllerAthenaDefault = FindObject(L"/Script/FortniteGame.Default__FortPlayerControllerAthena"); // FindObject(L"/Game/Athena/Athena_PlayerController.Default__Athena_PlayerController_C"); - ApplyNullAndRetTrues(); + if (Fortnite_Version >= 20) + ApplyNullAndRetTrues(); // UKismetSystemLibrary::ExecuteConsoleCommand(GetWorld(), L"log LogNetPackageMap VeryVerbose", nullptr); // UKismetSystemLibrary::ExecuteConsoleCommand(GetWorld(), L"log LogNetTraffic VeryVerbose", nullptr); @@ -1024,6 +1025,9 @@ DWORD WINAPI Main(LPVOID) LOG_INFO(LogDev, "Switch levels."); + if (Fortnite_Version < 20) + ApplyNullAndRetTrues(); + if (Fortnite_Version != 22.4) { auto matchmaking = Memcury::Scanner::FindPattern("83 BD ? ? ? ? 01 7F 18 49 8D 4D D8 48 8B D6 E8 ? ? ? ? 48", false).Get(); diff --git a/Project Reboot 3.0/finder.cpp b/Project Reboot 3.0/finder.cpp index 3b83a9e..dc897ef 100644 --- a/Project Reboot 3.0/finder.cpp +++ b/Project Reboot 3.0/finder.cpp @@ -51,10 +51,10 @@ uint64 FindGIsClient() auto Addr = Memcury::Scanner::FindStringRef(L"AllowCommandletRendering"); std::vector> BytesArray = { - {0x88, 0x05}, // 20.40 + {0x88, 0x05}, // 20.40 21.00 {0xC6, 0x05}, // mov cs X // Checked on 1.11, 12.41 {0x88, 0x1D}, // mov cs bl // Checked on 17.50, 19.10 - // {0x44, 0x88} // IDK WHAT VERSION This for but it scuffs older builds + {0x44, 0x88} // IDK WHAT VERSION This for but it scuffs older builds }; int Skip = 2; // Skip GIsServer and some variable i forgot diff --git a/Project Reboot 3.0/finder.h b/Project Reboot 3.0/finder.h index d4ca055..58cd6c5 100644 --- a/Project Reboot 3.0/finder.h +++ b/Project Reboot 3.0/finder.h @@ -1486,7 +1486,7 @@ static inline uint64 FindDispatchRequest() static inline uint64 FindMcpIsDedicatedServerOffset() { - if (Fortnite_Version >= 4.5 && Engine_Version <= 422) // checked on 4.5 & 5.41 & 6.21 & 7.30 + if (Fortnite_Version >= 4.2 && Engine_Version <= 422) // checked on 4.5 & 5.41 & 6.21 & 7.30 return 0x28; return 0x60; // 1.7.2 & 1.11 3.3 & & 4.1 @@ -1840,7 +1840,7 @@ static inline uint64 FindCallPreReplication() return Memcury::Scanner::FindPattern("48 85 D2 0F 84 ? ? ? ? 48 8B C4 55 57 41 54 48 8D 68 A1 48 81 EC ? ? ? ? 48 89 58 08 4C").Get(); if (Fortnite_Version >= 2.5 && Fortnite_Version <= 3.3) return Memcury::Scanner::FindPattern("48 85 D2 0F 84 ? ? ? ? 56 41 56 48 83 EC 38 4C 8B F2").Get(); - if (Fortnite_Version >= 20) + if (std::floor(Fortnite_Version) == 20) return Memcury::Scanner::FindPattern("48 85 D2 0F 84 ? ? ? ? 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 83 EC 40 F6 41 58 30 48 8B EA 48 8B D9 40 B6 01").Get(); return 0; diff --git a/Project Reboot 3.0/inc.h b/Project Reboot 3.0/inc.h index d586f27..d098db4 100644 --- a/Project Reboot 3.0/inc.h +++ b/Project Reboot 3.0/inc.h @@ -21,6 +21,7 @@ extern inline double Fortnite_Version = 0; // For example, 4.1, 6.21, etc. // Pr extern inline int Fortnite_CL = 0; #define PROD // this doesnt do anything besides remove processeventhook and some assert stuff +#define ABOVE_S20 struct PlaceholderBitfield { @@ -59,8 +60,6 @@ inline bool IsRestartingSupported() return Engine_Version >= 419 && Engine_Version < 424; } -// #define ABOVE_S20 - /* enum class AllocatorType diff --git a/README.md b/README.md index df784da..a81a3b7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![Banner](https://i.imgur.com/p0P4tcI.png) -Project Reboot is an tough battled and widely used game server for Fortnite. Below are the key points about this project: +Project Reboot is a tough battled and widely used game server for Fortnite. Below are the key points about this project: Join our discord at https://discord.gg/reboot ## Features