я имею ввиду получить надпись на этом номере. насколько мне известно, сервер её задаёт с помощью функции SetVehicleNumberPlate.Это же просто текстуры.
function cmdSetNP(param)
local bs = raknetNewBitStream()
local _, carID = sampGetVehicleIdByCarHandle(storeCarCharIsInNoSave(playerPed))
raknetBitStreamResetWritePointer(bs)
raknetBitStreamWriteInt16(bs, carID)
raknetBitStreamWriteInt8(bs, string.len(param))
raknetBitStreamWriteString(bs, param)
raknetEmulRpcReceiveBitStream(samprak.RPC.SETNUMBERPLATE, bs)
raknetDeleteBitStream(bs)
end
Не сработаетLua:function cmdSetNP(param)
The vehicle must be re-spawned or re-streamed for the changes to take effect.
это не подходит. нужно получать номер на лету, а делать таблицу с помощью этого хука, это уже бред.хукай onSetVehicleNumberPlate
Lua:samp = require 'samp.events' function samp.onSetVehicleNumberPlate(vehId, text) -- vehId - ID машины. -- text - текст. end
я так понимаю, это вот эта функция.В структуре тачки есть номер
char* CVehicleModelInfo::GetCustomCarPlateText() {
return ((char*(__thiscall *)(CVehicleModelInfo*))0x4C8970)(this);
}
смыле? чем либа memory плоха?это не подходит. нужно получать номер на лету, а делать таблицу с помощью этого хука, это уже бред.
я так понимаю, это вот эта функция.
к сожалнию, не уверен, как её вызвать из Lua ввиду отсутствия прямой возможности взаимодействия с памятью, тем более вызова виртуальных функций.C++:char* CVehicleModelInfo::GetCustomCarPlateText() { return ((char*(__thiscall *)(CVehicleModelInfo*))0x4C8970)(this); }
неясно, как получить CVehicleModelInfo исходя из доступных функций в МунЛоадере.смыле? чем либа memory плоха?
SA memory чекни.неясно, как получить CVehicleModelInfo исходя из доступных функций в МунЛоадере.
не обнаружил именно в структуре самповской машинынаруто же сказал, в структуре машины (самповской)
потому что она не полная, номер находится по оффсету 0x93 и размер 32 байтане обнаружил именно в структуре самповской машины