mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-14 03:02:22 +01:00
fixed dying not working on some versions + fixed teams
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user