RakSAMP Rodina [ARZ/Rodina] Как взаимодействовать с инвентарем?

akki

Участник
Автор темы
33
2
Писал скрипт для автоперекида предметов, и столкнулся с проблемой а именно:
Смотрите если ячейки пустые то они обычные айдишники
1759650089330.png

Но стоит положить в эти ячейки предметы:
1759650205371.png


То айдишники меняються, и создаеться проблема то что как я думал просто кликнуть по этим текстдравам, но если там предмет и количество его разное то вот.
Крч помогите пж


Мэйби у кого-т автоперекид есть, скиньте пару строчек как вы это делаете
 

WinOS

Участник
14
1
Привет, я лично юзал новый инвентарь на аризоне, и с помщью "CEF monitor" смотрел SEND запросы, и исходя из этого делал.
Вот пример:
LUA:
-- Отправка команды 
function sendCEFCommand(command)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt8(bs, #command)
    raknetBitStreamWriteInt8(bs, 0)
    
    for i = 1, #command do
        raknetBitStreamWriteInt8(bs, string.byte(command, i))
    end

    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    
    raknetSendBitStream(bs)
    raknetDeleteBitStream(bs)
end

-- Использовать предмет
function useItem(slot)
    local clickCmd = string.format('rightClickOnBlock|{"slot": %d, "type": 1}', slot) -- Клик по предмету (открыть меню)
    sendCEFCommand(clickCmd)
    
    return lua_thread.create(function()
        wait(300)
        
        local useCmd = string.format('clickOnButton|{"type": 1,"slot": %d, "action": 1}', slot)  -- Нажать кнопку USE
        sendCEFCommand(useCmd)
       
    end)
end
 
  • Нравится
Реакции: akki

akki

Участник
Автор темы
33
2
Привет, я лично юзал новый инвентарь на аризоне, и с помщью "CEF monitor" смотрел SEND запросы, и исходя из этого делал.
Вот пример:
LUA:
-- Отправка команды
function sendCEFCommand(command)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt8(bs, #command)
    raknetBitStreamWriteInt8(bs, 0)
   
    for i = 1, #command do
        raknetBitStreamWriteInt8(bs, string.byte(command, i))
    end

    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
   
    raknetSendBitStream(bs)
    raknetDeleteBitStream(bs)
end

-- Использовать предмет
function useItem(slot)
    local clickCmd = string.format('rightClickOnBlock|{"slot": %d, "type": 1}', slot) -- Клик по предмету (открыть меню)
    sendCEFCommand(clickCmd)
   
    return lua_thread.create(function()
        wait(300)
       
        local useCmd = string.format('clickOnButton|{"type": 1,"slot": %d, "action": 1}', slot)  -- Нажать кнопку USE
        sendCEFCommand(useCmd)
      
    end)
end
А как типо сделать чтобы ну он по определенным предметам именно жмал?
 

WinOS

Участник
14
1
А как типо сделать чтобы ну он по определенным предметам именно жмал?
Если юзать CEF, то там идёт счёт с 0 ( 0 - это первая ячейка ), и там вписываешь ячейку с которой работаешь, опять же нужно смотреть что идёт в SEND запросе что-бы переложить предмет. Могу позже посмотреть, но именно на Аризоне, на Родине не играл
 

akki

Участник
Автор темы
33
2
Если юзать CEF, то там идёт счёт с 0 ( 0 - это первая ячейка ), и там вписываешь ячейку с которой работаешь, опять же нужно смотреть что идёт в SEND запросе что-бы переложить предмет
Я просто вообще планировал с текстдравами, так как для меня CEF интерфейсы тяжкое дельцо.
 

WinOS

Участник
14
1
Я просто вообще планировал с текстдравами, так как для меня CEF интерфейсы тяжкое дельцо.
Я изначально тоже хотел на текстдравах, но столкнулся с тем что предмет просто не используется, даже когда указываешь конкретный ID, а именно у которых иконка не самповская. Возможно я что-то не так сделал. Потом подумал что возможно через CEF будет проще, и так оно и оказалось. Напиши мне в ТГ, и объясни что конкретно хочешь, помогу. TG: @Empty_Domain
 

БеzликиЙ

Автор темы
Проверенный
1,531
930
я ебал этот дырявый CEF, при взаимодействии с ним через скрипты вечно крашит, поэтому способ для старого инвентаря: получай id текстдравов ячеек по их приблизительным координатам и храни в таблице. что-то подобное я использую в IEditor
 
  • Нравится
Реакции: akki

akki

Участник
Автор темы
33
2
я ебал этот дырявый CEF, при взаимодействии с ним через скрипты вечно крашит, поэтому способ для старого инвентаря: получай id текстдравов ячеек по их приблизительным координатам и храни в таблице. что-то подобное я использую в IEditor
А типо смотри я вот допустим сделал так:
Закинул там 2 айдишника текстдравов, чтобы бот проверял в этом радиусе и крч там проверял модель текстдрава ну если мне подходила то он кликал, но возникла проблема как определить кол-во, так как вылазит диалог где надо ввести кол-во предмета.