fixed dying not working on some versions + fixed teams

This commit is contained in:
Milxnor
2023-03-28 19:19:37 -04:00
parent a5b5eb0e6e
commit 65668f8235
3 changed files with 26 additions and 10 deletions

View File

@@ -582,12 +582,12 @@ int AFortGameModeAthena::Athena_PickTeamHook(AFortGameModeAthena* GameMode, uint
{ {
CurrentTeamMembers = 0; CurrentTeamMembers = 0;
static int Current = 3; static int Current = 3;
CurrentTeamMembers++;
LOG_INFO(LogTeams, "Player is going on team {} with {} members (No Playlist).", Current, CurrentTeamMembers); LOG_INFO(LogTeams, "Player is going on team {} with {} members (No Playlist).", Current, CurrentTeamMembers);
CurrentTeamMembers++;
return Current++; return Current++;
} }
static int NextTeamIndex = Playlist->Get<int>("DefaultFirstTeam"); static int NextTeamIndex = Playlist->Get<uint8>("DefaultFirstTeam"); // + 1?
// std::cout << "CurrentTeamMembers: " << CurrentTeamMembers << '\n'; // std::cout << "CurrentTeamMembers: " << CurrentTeamMembers << '\n';
@@ -601,10 +601,10 @@ int AFortGameModeAthena::Athena_PickTeamHook(AFortGameModeAthena* GameMode, uint
CurrentTeamMembers = 0; CurrentTeamMembers = 0;
} }
CurrentTeamMembers++;
LOG_INFO(LogTeams, "Player is going on team {} with {} members.", NextTeamIndex, CurrentTeamMembers); LOG_INFO(LogTeams, "Player is going on team {} with {} members.", NextTeamIndex, CurrentTeamMembers);
CurrentTeamMembers++;
return NextTeamIndex; return NextTeamIndex;
} }

View File

@@ -41,7 +41,7 @@ void AFortPlayerController::ServerExecuteInventoryItemHook(AFortPlayerController
if (!ItemDefinition) if (!ItemDefinition)
return; return;
LOG_INFO(LogDev, "ItemDefinition: {}", ItemDefinition->GetFullName()); // LOG_INFO(LogDev, "ItemDefinition: {}", ItemDefinition->GetFullName());
static auto FortGadgetItemDefinitionClass = FindObject<UClass>("/Script/FortniteGame.FortGadgetItemDefinition"); static auto FortGadgetItemDefinitionClass = FindObject<UClass>("/Script/FortniteGame.FortGadgetItemDefinition");
@@ -637,7 +637,7 @@ void AFortPlayerController::ClientOnPawnDiedHook(AFortPlayerController* PlayerCo
// LOG_INFO(LogDev, "Tags: {}", Tags.ToStringSimple(true)); // 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); LOG_INFO(LogDev, "DeathCause: {}", (int)DeathCause);

View File

@@ -609,17 +609,25 @@ static inline uint64 FindRemoveFromAlivePlayers()
for (int i = 0; i < 2000; i++) 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; 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; 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; return Addrr - i;
} }
@@ -975,7 +983,15 @@ static inline uint64 FindRealloc()
static inline uint64 FindPickTeam() 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(); 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); auto Addr = Memcury::Scanner::FindStringRef(L"PickTeam for [%s] used beacon value [%d]", false);