- 71
- 15
- Версия SA-MP
-
- Любая
Привет всем! Делаю скрипт на визуальные аксессуары через RPC 113 на лаунчере Arizona Games.На стандартных ID из GTA SA всё работает отлично, но с кастомными лаунчерскими аксессуарами (например, Прототип ID 31277 или Легендарный наруч медведя ID 28645) возникает проблема: вместо нормальной модели на персонаже спавнится стандартный полосатый знак вопроса / бублик (заглушка missing-texture).В файлах есть C++ заголовочный файл SimpleModelLoaderAPI.h от SR_team:
Пробовал вызывать подгрузку через FFI, но не могу подтянуть процедуры из DLL. Сам отправной код пакета выглядит так:
Подскажите, пожалуйста:1. Как правильно дергать SimpleModelLoader из MoonLoader (Lua), чтобы перед отправкой RPC 113 моделька асинхронно или синхронно подгружалась в память?2. Из какой именно DLL подгружаются эти символы в клиенте Аризоны и как их объявить через FFI без ошибок?Заранее спасибо за помощь!
C++:
extern "C" { bool is_simple_model_exists(int modelId) DLL_PUBLIC; bool request_simple_model_load(int modelId) DLL_PUBLIC; bool load_simple_model(int modelId) DLL_PUBLIC;}
Lua:
local function setPlayerItem(playerId, slot, item) local bs = raknetNewBitStream() raknetBitStreamWriteInt16(bs, playerId) raknetBitStreamWriteInt32(bs, slot) raknetBitStreamWriteBool(bs, true) raknetBitStreamWriteInt32(bs, item.id) raknetBitStreamWriteInt32(bs, item.bone) local pos = item.position local rot = item.rotation local scale = item.scale -- Позиция raknetBitStreamWriteFloat(bs, pos[1]) raknetBitStreamWriteFloat(bs, pos[2]) raknetBitStreamWriteFloat(bs, pos[3]) -- Поворот raknetBitStreamWriteFloat(bs, rot[1]) raknetBitStreamWriteFloat(bs, rot[2]) raknetBitStreamWriteFloat(bs, rot[3]) -- Масштаб raknetBitStreamWriteFloat(bs, scale[1]) raknetBitStreamWriteFloat(bs, scale[2]) raknetBitStreamWriteFloat(bs, scale[3]) -- Цвета / Цвета материалов raknetBitStreamWriteInt32(bs, 0xFFffffff) raknetBitStreamWriteInt32(bs, 0xFFffffff) raknetEmulRpcReceiveBitStream(113, bs) raknetDeleteBitStream(bs)end