Как подгрузить кастомные модели Аризоны (SimpleModelLoader) перед RPC 113?

DoctorHack

Участник
Автор темы
71
15
Версия SA-MP
  1. Любая
Привет всем! Делаю скрипт на визуальные аксессуары через RPC 113 на лаунчере Arizona Games.На стандартных ID из GTA SA всё работает отлично, но с кастомными лаунчерскими аксессуарами (например, Прототип ID 31277 или Легендарный наруч медведя ID 28645) возникает проблема: вместо нормальной модели на персонаже спавнится стандартный полосатый знак вопроса / бублик (заглушка missing-texture).В файлах есть C++ заголовочный файл SimpleModelLoaderAPI.h от SR_team:
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;}
Пробовал вызывать подгрузку через FFI, но не могу подтянуть процедуры из DLL. Сам отправной код пакета выглядит так:
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
Подскажите, пожалуйста:1. Как правильно дергать SimpleModelLoader из MoonLoader (Lua), чтобы перед отправкой RPC 113 моделька асинхронно или синхронно подгружалась в память?2. Из какой именно DLL подгружаются эти символы в клиенте Аризоны и как их объявить через FFI без ошибок?Заранее спасибо за помощь!
 
  • Bug
Реакции: Tema05

менталейшн

Известный
1,788
382
Сообщение в теме 'Поиск актуальных айди акссесуаров'
https://www.blast.hk/threads/254665/post-1680189

Сообщение в теме 'Поиск актуальных айди акссесуаров'
https://www.blast.hk/threads/254665/post-1680189
Пример аризоновского аттача через arizona-events
Lua:
    ArizonaEvents.emul(
        "onArizonaSetPlayerAttachedObject",
        {
            object = {
                rotation = {
                    x = item.rotation[1],
                    y = item.rotation[2],
                    z = item.rotation[3]
                },
                color1 = 0,
                color2 = 0,
                scale = {
                    x = item.scale[1],
                    y = item.scale[2],
                    z = item.scale[3]
                },
                bone = item.bone,
                model_id = item.model,
                offset = {
                    x = item.position[1],
                    y = item.position[2],
                    z = item.position[3]
                },
            },
            player_id = playerId,
            index = slot,
            create = true,
            id = 155
        }
    );

Сообщение в теме 'Поиск актуальных айди акссесуаров'
https://www.blast.hk/threads/254665/post-1680189
Если ты хочешь приаттачить аризоновский объект, то тебе надо дедать это через 220 пакет, а не через самповский рпс
 
Последнее редактирование: