- Версия MoonLoader
- .026-beta
Вопрос всё тот же. Задача - получить в Lua координаты (смещения) фар машины относительно её центра.
Примерно вот так это делается с помощью plugin-sdk, но вот незадача - в SAMemory нет нужных struct, а вручную считать все эти оффсеты - ну его нахер. Может, есть способ попроще?
А впрочем.
Немного поломав голову, пришёл к такому решению:
Примерно вот так это делается с помощью plugin-sdk, но вот незадача - в SAMemory нет нужных struct, а вручную считать все эти оффсеты - ну его нахер. Может, есть способ попроще?
А впрочем.
Немного поломав голову, пришёл к такому решению:
Lua:
function get_light_pos(car, light, invert_x)
local m_nModelIndex = getCarModel(car) -- vehicle -> m_nModelIndex
local ms_ModelInfoPtrs = 0xA9B0C8
local CBaseModelInfo_size = 0x20
local ptr = ms_ModelInfoPtrs + (0x4 * m_nModelIndex) -- ms_ModelInfoPtrs[vehicle -> m_nModelIndex] (pointer)
ptr = mem.getuint32(ptr) -- cModelInfo
ptr = ptr + 0x5c -- cModelInfo -> m_pVehicleStruct
ptr = mem.getuint32(ptr) -- VehicleStruct
ptr = ptr + 0x0 + 12*light
local x = mem.getfloat(ptr)
local y = mem.getfloat(ptr + 4)
local z = mem.getfloat(ptr + 8)
--print(x, y, z)
if invert_x then return -pos_model_cache[m_nModelIndex][light].x, pos_model_cache[m_nModelIndex][light].y, pos_model_cache[m_nModelIndex][light].z else return pos_model_cache[m_nModelIndex][light].x,pos_model_cache[m_nModelIndex][light].y,pos_model_cache[m_nModelIndex][light].z end
end
Последнее редактирование: