Как нажимать по CEF аризоны луа

jozke

Новичок
Автор темы
12
1
Есть такая менюшка, нужно чтобы при обнаружении например: "Исправительные" нажимало на вторую кнопку, в этом случае: "Далее",
помогите понять как нажимать по CEF'фу через ЛУА скрипт.
Знаю только как открыть настройки в телефоне:
Lua:
function arizonaOpenPhoneApp(appId)
    local action = ('launchedApp|%s'):format(appId)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt32(bs, #action)
    raknetBitStreamWriteString(bs, action)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStreamEx(bs, 1, 7, 1)
    raknetDeleteBitStream(bs)
end

А также приложил скриншот при открытии диалога
 

Вложения

  • 1754322517719.png
    1754322517719.png
    1.2 MB · Просмотры: 113
  • 1754323165231.png
    1754323165231.png
    58.6 KB · Просмотры: 112
Последнее редактирование:

TheUnity

Известный
136
58
Чтобы узнать нужную строку, просто нажми на нужную кнопку и посмотри что отправляется
Lua:
addEventHandler('onReceivePacket', function (id, bs)
    if id == 220 then
        raknetBitStreamIgnoreBits(bs, 8)
        if (raknetBitStreamReadInt8(bs) == 17) then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encoded = raknetBitStreamReadInt8(bs)
            local str = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
            if str:find("Исправительные работы") then
                emulateCEF('твоя строка')
            end
        end
    end
end)


emulateCEF = function(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStream(bs)
    raknetDeleteBitStream(bs)
end
 

jozke

Новичок
Автор темы
12
1
Чтобы узнать нужную строку, просто нажми на нужную кнопку и посмотри что отправляется
Lua:
addEventHandler('onReceivePacket', function (id, bs)
    if id == 220 then
        raknetBitStreamIgnoreBits(bs, 8)
        if (raknetBitStreamReadInt8(bs) == 17) then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encoded = raknetBitStreamReadInt8(bs)
            local str = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
            if str:find("Исправительные работы") then
                emulateCEF('твоя строка')
            end
        end
    end
end)


emulateCEF = function(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStream(bs)
    raknetDeleteBitStream(bs)
end
У меня твой скрипт не заработал, но могу скинуть код из CEF Monitoring который я получил после нажатия "Далее".

Lua:
answer.npcDialog|0 | 220, 18, 18, answer.npcDialog|0

window.executeEvent('event.npcDialog.initializeDialog', `[{"id":27547,"title":"Исправительные работы","text":"Вам доступны на выбор две работы для отработки:
- Фермер
- Грузчик
За каждый перенесенный стог сена на ферме или мешок с грузом на разгрузочной станции,
срок вашего лечения в психбольнице будет сокращаться на 1 минуту.

Если вы полностью отработаете весь срок, то сможете автоматически покинуть психбольницу.
Доступное время для работы на отработках - не ограничено.

Для продолжения вам нужно выбрать одну из отработок, куда вы хотите отправиться.","backgroundColor":"rgba(19, 21, 22, 0.65)","hoverColor":"rgba(19, 21, 22, 0.55)","keyboard": [[ {"id":1,"icon":"😎","text":"Отправиться на ферму."},{"id":0,"icon":"😎","text":"Отправиться на разгрузочную станцию."} ]] }]`); | 220, 17, 797, 1, window.executeEvent('event.npcDialog.initializeDialog', `[{"id":27547,"title":"����� ��"text":"���� ���� ������
- ��
- �����
 

Вложения

  • 1754328562949.png
    1754328562949.png
    496.3 KB · Просмотры: 62

TheUnity

Известный
136
58
У меня твой скрипт не заработал, но могу скинуть код из CEF Monitoring который я получил после нажатия "Далее".

Lua:
answer.npcDialog|0 | 220, 18, 18, answer.npcDialog|0

window.executeEvent('event.npcDialog.initializeDialog', `[{"id":27547,"title":"Исправительные работы","text":"Вам доступны на выбор две работы для отработки:
- Фермер
- Грузчик
За каждый перенесенный стог сена на ферме или мешок с грузом на разгрузочной станции,
срок вашего лечения в психбольнице будет сокращаться на 1 минуту.

Если вы полностью отработаете весь срок, то сможете автоматически покинуть психбольницу.
Доступное время для работы на отработках - не ограничено.

Для продолжения вам нужно выбрать одну из отработок, куда вы хотите отправиться.","backgroundColor":"rgba(19, 21, 22, 0.65)","hoverColor":"rgba(19, 21, 22, 0.55)","keyboard": [[ {"id":1,"icon":"😎","text":"Отправиться на ферму."},{"id":0,"icon":"😎","text":"Отправиться на разгрузочную станцию."} ]] }]`); | 220, 17, 797, 1, window.executeEvent('event.npcDialog.initializeDialog', `[{"id":27547,"title":"����� ��"text":"���� ���� ������
- ��
- �����
ну я телепатически mooloader.log читать не умею, но предполагаю что это из-за кодировки файла.
ну и тебе надо вот так вызвать функцию emulateCEF('answer.npcDialog|0')
 
  • Нравится
Реакции: jozke

jozke

Новичок
Автор темы
12
1
ну я телепатически mooloader.log читать не умею, но предполагаю что это из-за кодировки файла.
ну и тебе надо вот так вызвать функцию emulateCEF('answer.npcDialog|0')

ну я телепатически mooloader.log читать не умею, но предполагаю что это из-за кодировки файла.
ну и тебе надо вот так вызвать функцию emulateCEF('answer.npcDialog|0')
Братуха, i love you, всё работает


Lua:
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    repeat wait(500) until isSampAvailable()
    sampRegisterChatCommand('test', function(arg) lua_thread.create(function() emulateCEF('answer.npcDialog|0') end)
    end)
    wait(-1)
end

addEventHandler('onReceivePacket', function (id, bs)
    if id == 220 then
        raknetBitStreamIgnoreBits(bs, 8)
        if (raknetBitStreamReadInt8(bs) == 17) then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encoded = raknetBitStreamReadInt8(bs)
            local str = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
            if str:find("Исправительные работы") then
                emulateCEF('твоя строка')
            end
        end
    end
end)


emulateCEF = function(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStream(bs)
    raknetDeleteBitStream(bs)
end
 

TheUnity

Известный
136
58
Братуха, i love you, всё работает


Lua:
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    repeat wait(500) until isSampAvailable()
    sampRegisterChatCommand('test', function(arg) lua_thread.create(function() emulateCEF('answer.npcDialog|0') end)
    end)
    wait(-1)
end

addEventHandler('onReceivePacket', function (id, bs)
    if id == 220 then
        raknetBitStreamIgnoreBits(bs, 8)
        if (raknetBitStreamReadInt8(bs) == 17) then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encoded = raknetBitStreamReadInt8(bs)
            local str = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
            if str:find("Исправительные работы") then
                emulateCEF('твоя строка')
            end
        end
    end
end)


emulateCEF = function(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStream(bs)
    raknetDeleteBitStream(bs)
end
1754333241346.png