diff --git a/Project Reboot 3.0/FortGameModeAthena.cpp b/Project Reboot 3.0/FortGameModeAthena.cpp index daf3f49..8a92cab 100644 --- a/Project Reboot 3.0/FortGameModeAthena.cpp +++ b/Project Reboot 3.0/FortGameModeAthena.cpp @@ -582,12 +582,12 @@ int AFortGameModeAthena::Athena_PickTeamHook(AFortGameModeAthena* GameMode, uint { CurrentTeamMembers = 0; static int Current = 3; - CurrentTeamMembers++; LOG_INFO(LogTeams, "Player is going on team {} with {} members (No Playlist).", Current, CurrentTeamMembers); + CurrentTeamMembers++; return Current++; } - static int NextTeamIndex = Playlist->Get("DefaultFirstTeam"); + static int NextTeamIndex = Playlist->Get("DefaultFirstTeam"); // + 1? // std::cout << "CurrentTeamMembers: " << CurrentTeamMembers << '\n'; @@ -601,10 +601,10 @@ int AFortGameModeAthena::Athena_PickTeamHook(AFortGameModeAthena* GameMode, uint CurrentTeamMembers = 0; } - CurrentTeamMembers++; - LOG_INFO(LogTeams, "Player is going on team {} with {} members.", NextTeamIndex, CurrentTeamMembers); + CurrentTeamMembers++; + return NextTeamIndex; } diff --git a/Project Reboot 3.0/FortPlayerController.cpp b/Project Reboot 3.0/FortPlayerController.cpp index c615ea4..23818b3 100644 --- a/Project Reboot 3.0/FortPlayerController.cpp +++ b/Project Reboot 3.0/FortPlayerController.cpp @@ -41,7 +41,7 @@ void AFortPlayerController::ServerExecuteInventoryItemHook(AFortPlayerController if (!ItemDefinition) return; - LOG_INFO(LogDev, "ItemDefinition: {}", ItemDefinition->GetFullName()); + // LOG_INFO(LogDev, "ItemDefinition: {}", ItemDefinition->GetFullName()); static auto FortGadgetItemDefinitionClass = FindObject("/Script/FortniteGame.FortGadgetItemDefinition"); @@ -637,7 +637,7 @@ void AFortPlayerController::ClientOnPawnDiedHook(AFortPlayerController* PlayerCo // LOG_INFO(LogDev, "Tags: {}", Tags.ToStringSimple(true)); - auto DeathCause = ToDeathCause(Tags, false); + auto DeathCause = ToDeathCause(Tags, false); // DeadPawn->IsDBNO() ?? LOG_INFO(LogDev, "DeathCause: {}", (int)DeathCause); diff --git a/Project Reboot 3.0/finder.h b/Project Reboot 3.0/finder.h index b51b436..81c69ca 100644 --- a/Project Reboot 3.0/finder.h +++ b/Project Reboot 3.0/finder.h @@ -609,17 +609,25 @@ static inline uint64 FindRemoveFromAlivePlayers() for (int i = 0; i < 2000; i++) { - if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x4C && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x4C) + if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x4C && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x4C) // most common { return Addrr - i; } - if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x54) + if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x54) // idk what verisont bh { + for (int z = 3; z < 50; z++) + { + if (*(uint8_t*)(uint8_t*)(Addrr - i - z) == 0x4C && *(uint8_t*)(uint8_t*)(Addrr - i - z + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i - z + 2) == 0x4C) + { + return Addrr - i - z; + } + } + return Addrr - i; } - if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x8B && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0xC4) + if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x8B && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0xC4) // i forgot what version { return Addrr - i; } @@ -975,7 +983,15 @@ static inline uint64 FindRealloc() static inline uint64 FindPickTeam() { - if (Engine_Version >= 427) // different start + if (Engine_Version == 426) + { + auto testAddr = Memcury::Scanner::FindPattern("88 54 24 10 53 56 41 54 41 55 41 56 48 83 EC 60 4C 8B A1").Get(); // 14.60 ???? + + if (testAddr) + return testAddr; + } + + else if (Engine_Version >= 427) // different start return Memcury::Scanner::FindPattern("48 89 5C 24 ? 88 54 24 10 55 56 57 41 54 41 55 41 56 41 57 48 8B EC 48 83 EC 70 4C 8B A1").Get(); auto Addr = Memcury::Scanner::FindStringRef(L"PickTeam for [%s] used beacon value [%d]", false);