- 4,937
- 6,738
- Версия MoonLoader
- .026-beta
Кароче. Возьмем к примеру такой код от Хероку который меняет цвет диалогов:
Меня интересуют эти 5 строчек
Каким способом он узнал какое значение нужно прибавлять к CDialog (0x1C), а потом и к CDXUTDialog? ( 0x12A, 0x12E, 0x132, 0x136 ) Тут порядок мне более мене понятен, т.к он прибавляет каждый раз на 4 байта больше значение, т.к цвета хранятся в 32 битном участке. Но один хуй как он узнал что цвет именно в 0x12A хранится?
Lua:
function setDialogColor(l_up, r_up, l_low, r_bottom)
local CDialog = memory.getuint32(getModuleHandle("samp.dll") + 0x21A0B8)
local CDXUTDialog = memory.getuint32(CDialog + 0x1C)
memory.setuint32(CDXUTDialog + 0x12A, l_up, true) -- Left corner
memory.setuint32(CDXUTDialog + 0x12E, r_up, true) -- Right upper corner
memory.setuint32(CDXUTDialog + 0x132, l_low, true) -- Lower left corner
memory.setuint32(CDXUTDialog + 0x136, r_bottom, true) -- Right bottom corner
end
Lua:
local CDXUTDialog = memory.getuint32(CDialog + 0x1C)
memory.setuint32(CDXUTDialog + 0x12A, l_up, true) -- Left corner
memory.setuint32(CDXUTDialog + 0x12E, r_up, true) -- Right upper corner
memory.setuint32(CDXUTDialog + 0x132, l_low, true) -- Lower left corner
memory.setuint32(CDXUTDialog + 0x136, r_bottom, true) -- Right bottom corner