提交给MTA的PR -> https://github.com/multitheftauto/mtasa-blue/pull/2495
这是一个用于启用或禁用 SA 引擎内自带的的载具太阳眩光效果的内存地址,这一部分代码来源于前作VC的残留,一些内存地址缺少文档,例如0x6ABCFD 和 0x6ABD04 地址函数的文档,如果有兴趣,欢迎顺着挖下去。(例如从 RE3 源码入手、或者GTA Reversed)
有关Patch的方法,最简单的就是把他丢到CMuliplayerSA.cpp 里,mta的主要hooks都写在那了。
使用例:
//Vehicle Sun Glare
//ASM
_declspec(naked) void CVehicle__DoSunGlare(void* this_)
{
#define EAXJMP(a) {_asm mov eax, a _asm jmp eax}
EAXJMP(0x6DD6F0);
}
void _declspec(naked) doglare(void)
{
_asm {
mov ecx,esi
call CVehicle__DoSunGlare
mov [esp+0D4h], edi
push 6ABD04h
retn
}
}
//Hooks
HookInstall(0x6ABCFD, (DWORD)doglare, 5);