mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-13 02:42:22 +01:00
perforamce + fix chapter 2 match starting
This commit is contained in:
@@ -24,68 +24,15 @@ void AFortPlayerPawn::ServerSendZiplineStateHook(AFortPlayerPawn* Pawn, FZipline
|
||||
|
||||
if (*(int*)(__int64(&InZiplineState) + AuthoritativeValueOffset) > *(int*)(__int64(PawnZiplineState) + AuthoritativeValueOffset))
|
||||
{
|
||||
static auto ZiplinePawnStateClass = FindObject<UStruct>("/Script/FortniteGame.ZiplinePawnState");
|
||||
static auto ZiplinePawnStateSize = ZiplinePawnStateClass->GetPropertiesSize();
|
||||
static auto ZiplinePawnStateStruct = FindObject<UStruct>("/Script/FortniteGame.ZiplinePawnState");
|
||||
static auto ZiplinePawnStateSize = ZiplinePawnStateStruct->GetPropertiesSize();
|
||||
|
||||
CopyStruct(PawnZiplineState, &InZiplineState, ZiplinePawnStateSize);
|
||||
}
|
||||
|
||||
static bool bFoundFunc = false;
|
||||
|
||||
static void (*OnRep_ZiplineState)(AFortPlayerPawn* Pawn);
|
||||
|
||||
if (!bFoundFunc)
|
||||
{
|
||||
bFoundFunc = true;
|
||||
|
||||
static auto Addrr = Memcury::Scanner::FindStringRef(L"ZIPLINES!! Role(%s) AFortPlayerPawn::OnRep_ZiplineState ZiplineState.bIsZiplining=%d", false).Get();
|
||||
|
||||
if (!Addrr)
|
||||
Addrr = Memcury::Scanner::FindStringRef(L"ZIPLINES!! GetLocalRole()(%s) AFortPlayerPawn::OnRep_ZiplineState ZiplineState.bIsZiplining=%d").Get();
|
||||
|
||||
// L"%s LocalRole[%s] ZiplineState.bIsZiplining[%d]" for 18.40???
|
||||
|
||||
// std::cout << "Addrr: " << Addrr << '\n';
|
||||
|
||||
if (Addrr)
|
||||
{
|
||||
for (int i = 0; i < 400; i++)
|
||||
{
|
||||
// LOG_INFO(LogDev, "[{}] 0x{:x} 0x{:x}", i, (int)*(uint8_t*)Addrr - i, (int)*(uint8_t*)(Addrr - i + 1), (int)*(uint8_t*)(Addrr - i + 2));
|
||||
|
||||
if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x40 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x53)
|
||||
{
|
||||
OnRep_ZiplineState = decltype(OnRep_ZiplineState)(Addrr - i);
|
||||
break;
|
||||
}
|
||||
|
||||
if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x5C)
|
||||
{
|
||||
OnRep_ZiplineState = decltype(OnRep_ZiplineState)(Addrr - i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* for (int i = 600; i >= 0; i--)
|
||||
{
|
||||
LOG_INFO(LogDev, "[{}] 0x{:x} 0x{:x}", i, (int)*(uint8_t*)Addrr - i, (int)*(uint8_t*)(Addrr - i + 1), (int)*(uint8_t*)(Addrr - i + 2));
|
||||
|
||||
if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x40 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x53)
|
||||
{
|
||||
OnRep_ZiplineState = decltype(OnRep_ZiplineState)(Addrr - i);
|
||||
break;
|
||||
}
|
||||
|
||||
if (*(uint8_t*)(uint8_t*)(Addrr - i) == 0x48 && *(uint8_t*)(uint8_t*)(Addrr - i + 1) == 0x89 && *(uint8_t*)(uint8_t*)(Addrr - i + 2) == 0x5C)
|
||||
{
|
||||
OnRep_ZiplineState = decltype(OnRep_ZiplineState)(Addrr - i);
|
||||
break;
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
LOG_INFO(LogDev, "OnRep_ZiplineState: 0x{:x}\n", (uintptr_t)OnRep_ZiplineState - __int64(GetModuleHandleW(0)));
|
||||
}
|
||||
static void (*OnRep_ZiplineState)(AFortPlayerPawn* Pawn) = decltype(OnRep_ZiplineState)(Addresses::OnRep_ZiplineState);
|
||||
|
||||
if (OnRep_ZiplineState)
|
||||
OnRep_ZiplineState(Pawn);
|
||||
|
||||
Reference in New Issue
Block a user