Поиск актуальных айди акссесуаров

palitessa

Новичок
Автор темы
17
1
Версия SA-MP
  1. Другая
Приветствую обывателей, я делаю скрипт для аризоны. Суть такая: создание сэта через скрипт с подробным описанием характеристик и примеркой сэта на персонаже. Скрипт похож на скрипт от чапо, я бы хотел чтобы он ответил на один вопрос (или кто шарит я хз). Я столкнулся с проблемой. Некоторые акссесуары отображаются правильно, а именно obj60_rifflecase, obj60a_eballon, obj68_vi, obj60_mtoolmk2 и obj86_spacejet. Остальные акссесуары из моего списка (их там около 90) отображаются некорректно в виде деревьев, стен либо других акссесуаров. Приведу пример на obj76a_trax, при попытке его надеть через скрипт вместо арбалета появляется новая бензопила (название не вспомню). Так же пример -obj52_duffhammer. Прикреплю ниже скрин (скрин 1) на котором видно что вместо молота появляется кенгурятник от автомобиля, при попытке сменить старый айди который был в файлах NamedModels.json и accessories.ide на айди который я нашел на вики аризоны. Вот что появилось когда поставил этот айди (скрин 2). Как мне писала нейронка - айди на новые аксы динамичные, они меняются каждый раз при заходе в игру. Я пытался сделать перехватчик этих айдишников, но неудачно. Я написал в Мастерскую аризоны, они сказали что нейронка мне врёт. Тогда у меня вопрос - откуда мне брать актуальные айди акссесуаров. Если кто то знает то расскажите.
 

Вложения

  • {EB12FF2C-9F2A-461B-AD9F-D662A2F48B40}.png
    {EB12FF2C-9F2A-461B-AD9F-D662A2F48B40}.png
    904.2 KB · Просмотры: 64
  • {A94C264E-D61F-40DD-B313-60B17F9E3BC1}.png
    {A94C264E-D61F-40DD-B313-60B17F9E3BC1}.png
    303.5 KB · Просмотры: 63
Решение
Пример аризоновского аттача через 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]...

менталейшн

Известный
1,705
336
arizona/data/maps/accessories/accessories.ide
там такое
Код:
##нагурудь
#14227, obj52_wolfmedal, obj52_1, 10, 0
##поясница
#14228, obj52_ninetails, obj52_1, 20, 0
#14229, obj52_odm, obj52_1, 20, 0
##рука
#14230, obj52_bag_prem1, obj52_1, 25, 0
#14231, obj52_bag_prem2, obj52_1, 25, 0
#14232, obj52_bag_prem3, obj52_1, 25, 0
#14233, obj52_bag_prem4, obj52_1, 25, 0
#14234, obj52_bag_prem5, obj52_1, 25, 0
#14235, obj52_bag_prem6, obj52_1, 25, 0
#14236, obj52_fortaxe, obj52_1, 25, 0
#14237, obj52_hookmodern, obj52_1, 25, 0
#14238, obj52_portalgun, obj52_1, 25, 0
#14239, obj52_shashleek, obj52_1, 25, 0
#14240, obj52_aotblade, obj52_1, 15, 0
#14241, obj52_aotspear, obj52_1, 15, 0
#14242, obj52_deathnote, obj52_1, 10, 0
#14243, obj52_duffhummer, obj52_1, 25, 0
#14244, obj52_stormbreaker, obj52_1, 25, 0
#14245, obj52_sulfuras, obj52_1, 25, 0
##рядомсплечем
#14246, obj52_cartman, obj52_1, 10, 0
#14247, obj52_kenny, obj52_1, 10, 0
#14248, obj52_kyle, obj52_1, 10, 0
#14249, obj52_sgchibi1, obj52_1, 10, 0
#14250, obj52_sgchibi2, obj52_1, 10, 0
#14251, obj52_sgchibi3, obj52_1, 10, 0
#14252, obj52_stan, obj52_1, 10, 0
##спина
#14253, obj52_bars005, obj52_1, 25, 0
#14254, obj52_bars006, obj52_1, 25, 0
#14255, obj52_bars007, obj52_1, 25, 0
#14256, obj52_bigbacksword, obj52_1, 25, 0
#14257, obj52_davinchiwings, obj52_1, 25, 0
#14258, obj52_energypack, obj52_1, 25, 0
#14259, obj52_medbackpack, obj52_1, 25, 0
#14260, obj52_regbackpack, obj52_1, 25, 0
#14261, obj52_akatsukibp, obj52_1, 15, 0
#14262, obj52_aotbacklogo, obj52_1, 10, 0
#14263, obj52_aotbackpack, obj52_1, 15, 0
#14264, obj52_dnbackpack, obj52_1, 15, 0
#14265, obj52_dollwd, obj52_1, 15, 0
#14266, obj52_dpkatanas, obj52_1, 15, 0
#14267, obj52_gfbackpack, obj52_1, 15, 0
#14268, obj52_hordeshield, obj52_1, 20, 0
#14269, obj52_marvelbp, obj52_1, 15, 0
#14270, obj52_narutobp, obj52_1, 15, 0
#14271, obj52_samehada, obj52_1, 25, 0
#14272, obj52_sgbackpack, obj52_1, 15, 0
#14273, obj52_spiritedaw, obj52_1, 15, 0
#14274, obj52_stbackpack, obj52_1, 15, 0
#14275, obj52_wdbackpack, obj52_1, 15, 0
#####obj53
#######19006, GlassesType1,
на сайте такое https://items.shinoa.tech/items.php
Код:
{"id":"7232","item_name":"Портальная пушка","model_id":"6544","eng_name":"Portalgun","stack":"1","useable":"true","tradeable":"true","droppable":"true","is_custom":"CUSTOM_OBJECT","colored":"false","enchanted":"true","slot_id":"4"}}
 

palitessa

Новичок
Автор темы
17
1
arizona/data/maps/accessories/accessories.ide
там такое
Код:
##нагурудь
#14227, obj52_wolfmedal, obj52_1, 10, 0
##поясница
#14228, obj52_ninetails, obj52_1, 20, 0
#14229, obj52_odm, obj52_1, 20, 0
##рука
#14230, obj52_bag_prem1, obj52_1, 25, 0
#14231, obj52_bag_prem2, obj52_1, 25, 0
#14232, obj52_bag_prem3, obj52_1, 25, 0
#14233, obj52_bag_prem4, obj52_1, 25, 0
#14234, obj52_bag_prem5, obj52_1, 25, 0
#14235, obj52_bag_prem6, obj52_1, 25, 0
#14236, obj52_fortaxe, obj52_1, 25, 0
#14237, obj52_hookmodern, obj52_1, 25, 0
#14238, obj52_portalgun, obj52_1, 25, 0
#14239, obj52_shashleek, obj52_1, 25, 0
#14240, obj52_aotblade, obj52_1, 15, 0
#14241, obj52_aotspear, obj52_1, 15, 0
#14242, obj52_deathnote, obj52_1, 10, 0
#14243, obj52_duffhummer, obj52_1, 25, 0
#14244, obj52_stormbreaker, obj52_1, 25, 0
#14245, obj52_sulfuras, obj52_1, 25, 0
##рядомсплечем
#14246, obj52_cartman, obj52_1, 10, 0
#14247, obj52_kenny, obj52_1, 10, 0
#14248, obj52_kyle, obj52_1, 10, 0
#14249, obj52_sgchibi1, obj52_1, 10, 0
#14250, obj52_sgchibi2, obj52_1, 10, 0
#14251, obj52_sgchibi3, obj52_1, 10, 0
#14252, obj52_stan, obj52_1, 10, 0
##спина
#14253, obj52_bars005, obj52_1, 25, 0
#14254, obj52_bars006, obj52_1, 25, 0
#14255, obj52_bars007, obj52_1, 25, 0
#14256, obj52_bigbacksword, obj52_1, 25, 0
#14257, obj52_davinchiwings, obj52_1, 25, 0
#14258, obj52_energypack, obj52_1, 25, 0
#14259, obj52_medbackpack, obj52_1, 25, 0
#14260, obj52_regbackpack, obj52_1, 25, 0
#14261, obj52_akatsukibp, obj52_1, 15, 0
#14262, obj52_aotbacklogo, obj52_1, 10, 0
#14263, obj52_aotbackpack, obj52_1, 15, 0
#14264, obj52_dnbackpack, obj52_1, 15, 0
#14265, obj52_dollwd, obj52_1, 15, 0
#14266, obj52_dpkatanas, obj52_1, 15, 0
#14267, obj52_gfbackpack, obj52_1, 15, 0
#14268, obj52_hordeshield, obj52_1, 20, 0
#14269, obj52_marvelbp, obj52_1, 15, 0
#14270, obj52_narutobp, obj52_1, 15, 0
#14271, obj52_samehada, obj52_1, 25, 0
#14272, obj52_sgbackpack, obj52_1, 15, 0
#14273, obj52_spiritedaw, obj52_1, 15, 0
#14274, obj52_stbackpack, obj52_1, 15, 0
#14275, obj52_wdbackpack, obj52_1, 15, 0
#####obj53
#######19006, GlassesType1,
на сайте такое https://items.shinoa.tech/items.php
Код:
{"id":"7232","item_name":"Портальная пушка","model_id":"6544","eng_name":"Portalgun","stack":"1","useable":"true","tradeable":"true","droppable":"true","is_custom":"CUSTOM_OBJECT","colored":"false","enchanted":"true","slot_id":"4"}}
в .ide файле так же айди неправильные, либо под одним айди записано 2 акса

покажи как именно ты их создаешь в коде

Через
localAttach(slot):
function localAttach(slot)
    lua_thread.create(function()
        requestModel(data.modelId)   -- просим GTA загрузить модель
        while not hasModelLoaded(data.modelId) and timeout < 60 do
            wait(50)                 -- ждём загрузки (макс 3 сек)
        end
        sendAttachRPC(slot)          -- отправляем RPC
    end)
end
и
sendAttachRPC(slot):
local bs = rf.newBS()           -- создаём BitStream
rf.writeU16(bs, myId)           -- ID игрока
rf.writeU32(bs, slot)           -- номер слота (0-19)
rf.writeBool(bs, true)          -- create = true
rf.writeU32(bs, data.modelId)   -- ID модели
rf.writeU32(bs, data.boneId)    -- кость крепления
rf.writeFloat(bs, offset x/y/z)
rf.writeFloat(bs, rotation x/y/z)
rf.writeFloat(bs, scale x/y/z)
rf.writeU32(bs, 0xFFFFFFFF)     -- color1
rf.writeU32(bs, 0xFFFFFFFF)     -- color2
rf.emulateRPC(113, bs)          -- говорим SAMP "как будто сервер прислал это"
rf.deleteBS(bs)
скрипт эмулирует 113 RPC пакет
 
Последнее редактирование:

chapo

tg/inst: @moujeek
Всефорумный модератор
9,238
12,672
в .ide файле так же айди неправильные, либо под одним айди записано 2 акса



Через
localAttach(slot):
function localAttach(slot)
    lua_thread.create(function()
        requestModel(data.modelId)   -- просим GTA загрузить модель
        while not hasModelLoaded(data.modelId) and timeout < 60 do
            wait(50)                 -- ждём загрузки (макс 3 сек)
        end
        sendAttachRPC(slot)          -- отправляем RPC
    end)
end
и
sendAttachRPC(slot):
local bs = rf.newBS()           -- создаём BitStream
rf.writeU16(bs, myId)           -- ID игрока
rf.writeU32(bs, slot)           -- номер слота (0-19)
rf.writeBool(bs, true)          -- create = true
rf.writeU32(bs, data.modelId)   -- ID модели
rf.writeU32(bs, data.boneId)    -- кость крепления
rf.writeFloat(bs, offset x/y/z)
rf.writeFloat(bs, rotation x/y/z)
rf.writeFloat(bs, scale x/y/z)
rf.writeU32(bs, 0xFFFFFFFF)     -- color1
rf.writeU32(bs, 0xFFFFFFFF)     -- color2
rf.emulateRPC(113, bs)          -- говорим SAMP "как будто сервер прислал это"
rf.deleteBS(bs)
скрипт эмулирует 113 RPC пакет
Если ты хочешь приаттачить аризоновский объект, то тебе надо дедать это через 220 пакет, а не через самповский рпс
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,238
12,672
Пример аризоновского аттача через 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
        }
    );
 
  • Нравится
Реакции: Carunoqq и elyrin

palitessa

Новичок
Автор темы
17
1
Пример аризоновского аттача через 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
        }
    );
сейчас попробую

Пример аризоновского аттача через 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
        }
    );
Ну смотри, как ты и написал я сделал эмуляцию через arizona-events, оно так же имулирует 220 пакет. Все как надо но на данный момент вообще ничего не отображается. Даже те аксессуары которые отображались сейчас тоже не работают.

Я попытаюсь щас конечно пофиксить это
 
Последнее редактирование:

chapo

tg/inst: @moujeek
Всефорумный модератор
9,238
12,672
сейчас попробую


Ну смотри, как ты и написал я сделал эмуляцию через arizona-events, оно так же имулирует 220 пакет. Все как надо но на данный момент вообще ничего не отображается. Даже те аксессуары которые отображались сейчас тоже не работают.

Я попытаюсь щас конечно пофиксить это
Старые (самповские) надо создавать через стандартную эмуляцию, аризоновские через arizona-events. Возможно там нужен не ид модельки, а ид из NamedModels.json, уже не помню
 

palitessa

Новичок
Автор темы
17
1
Старые (самповские) надо создавать через стандартную эмуляцию, аризоновские через arizona-events. Возможно там нужен не ид модельки, а ид из NamedModels.json, уже не помню
Да, айди из NamedModels.json подошли, сейчас пытаюсь сделать так чтоб работали 2 пакета - 113 и 220, пока с этим проблема (проблема в том что либо появляются акссесуары из NamedModels.json но нету в списках тех акссесуаров которые работают через 113 пакет, либо наоборот). А так же попытаюсь сделать правильные позиции акссесуаров, дабы при выборе акссесуара он появлялся на своем месте, как стоковый акссесуар через инвентарь). Если будут вопросы дополню тему.
 

менталейшн

Известный
1,705
336
Да, айди из NamedModels.json подошли, сейчас пытаюсь сделать так чтоб работали 2 пакета - 113 и 220, пока с этим проблема (проблема в том что либо появляются акссесуары из NamedModels.json но нету в списках тех акссесуаров которые работают через 113 пакет, либо наоборот). А так же попытаюсь сделать правильные позиции акссесуаров, дабы при выборе акссесуара он появлялся на своем месте, как стоковый акссесуар через инвентарь). Если будут вопросы дополню тему.
Позиции уже с аренды аксов брать
 

palitessa

Новичок
Автор темы
17
1
не мог бы поделится твоим скриптом, если не приват какой-нибудь?
Я создал тему, но ее отклонили из за того что гугл диск запрещен как файлообменник. Теперь думаю куда заливать.
 

palitessa

Новичок
Автор темы
17
1
Последнее редактирование: