ffi Цвет объекта

ChаtGPT

Активный
Автор темы
396
96
Версия MoonLoader
.026-beta
Есть ли способ получить цвет модели объекта, без издевательств с событием onSetObjectMaterial? Слышал что через ffi можно получить цвет объекта, но как ?

С этим связано может?
 
Последнее редактирование:
Решение
часть кода отсюда: https://www.blast.hk/threads/13380/post-1339311
Lua:
local samp = getModuleHandle("samp.dll")

function sampGetObjectMaterialColor(id, slot)
    local CNetGame = ffi.cast("uintptr_t*", samp + 0x21A0F8)
    local objectPool = ffi.cast("int(__thiscall*)(void*)", samp + 0x2E00)(ffi.cast("void*", CNetGame[0]))
    local CObject = ffi.cast("int(__thiscall*)(void*, int)", samp + 0x2DD0)(ffi.cast("void*", objectPool), id)
    local m_color = ffi.cast("uint32_t*", CObject + 0x217 + 0x40 + slot * 0x4)[0]
    return m_color
end

g305noobo

Известный
Модератор
307
477
Есть ли способ получить цвет модели объекта, без издевательств с событием onSetObjectMaterial? Слышал что через ffi можно получить цвет объекта, но как ?

С этим связано может?
если интересно этим заняться, тебе нужно получить указатель на твой объект, затем используя структуру(https://github.com/BlastHackNet/SAMP-API/blob/multiver/include/sampapi/0.3.7-R1/CObject.h#L92) прибавить к указателю смещение, где хранится цвет и всё

возможно еще что-то подобное есть тут https://www.blast.hk/threads/18058/
 
  • Нравится
Реакции: ChаtGPT

ChаtGPT

Активный
Автор темы
396
96
если интересно этим заняться, тебе нужно получить указатель на твой объект, затем используя структуру(https://github.com/BlastHackNet/SAMP-API/blob/multiver/include/sampapi/0.3.7-R1/CObject.h#L92) прибавить к указателю смещение, где хранится цвет и всё

возможно еще что-то подобное есть тут https://www.blast.hk/threads/18058/
А есть способ полегче?🥲
 

wojciech?

Известный
Проверенный
352
236
часть кода отсюда: https://www.blast.hk/threads/13380/post-1339311
Lua:
local samp = getModuleHandle("samp.dll")

function sampGetObjectMaterialColor(id, slot)
    local CNetGame = ffi.cast("uintptr_t*", samp + 0x21A0F8)
    local objectPool = ffi.cast("int(__thiscall*)(void*)", samp + 0x2E00)(ffi.cast("void*", CNetGame[0]))
    local CObject = ffi.cast("int(__thiscall*)(void*, int)", samp + 0x2DD0)(ffi.cast("void*", objectPool), id)
    local m_color = ffi.cast("uint32_t*", CObject + 0x217 + 0x40 + slot * 0x4)[0]
    return m_color
end
 
  • Нравится
Реакции: ChаtGPT