- Версия SA-MP
-
- 0.3.7-R3
Плагин исправляет опкод 0B61 (sampIsLocalPlayerSpawned()).
Нужен только для SAMP 0.3.7-R3-1!
Установка: перекинуть в корневую папку с игрой.
Нужен только для SAMP 0.3.7-R3-1!
Установка: перекинуть в корневую папку с игрой.
C++:
rtdhook_call* hook;
void __fastcall CScriptThread__SetCondResult(void* ecx, uintptr_t localPlayer, bool a3)
{
bool ret = *reinterpret_cast<void**>(localPlayer) != nullptr // m_pPed
&& *reinterpret_cast<BOOL*>(localPlayer + 0x141) // m_bClearedToSpawn
&& *reinterpret_cast<BOOL*>(localPlayer + 0x17B); // m_bHasSpawnInfo
reinterpret_cast<void(__thiscall*)(void*, bool)>(hook->getHookedFunctionAddress())(ecx, ret);
}
__declspec(naked) void __fastcall CScriptThread__SetCondResult_Naked()
{
__asm {
mov edx, eax
jmp CScriptThread__SetCondResult
}
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD fdwReason, LPVOID lpReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH)
{
uintptr_t handle;
if (handle = reinterpret_cast<uintptr_t>(GetModuleHandleA("SAMPFUNCS.asi")), handle != 0)
{
hook = new rtdhook_call(handle + 0x866F8, &CScriptThread__SetCondResult_Naked);
hook->install();
}
}
return TRUE;
}
Вложения
Последнее редактирование: