Эмуляция цеф, родина рп

чупепик

Новичок
Автор темы
2
0
Версия MoonLoader
.026-beta
читаю cef-пакеты родины
Lua:
addEventHandler('onReceivePacket', function(id, bs)
    if id == 220 then
        local packet_struct = getPacketStructure(bs)

        raknetBitStreamIgnoreBits(bs, 8)
        local custom_id = raknetBitStreamReadInt8(bs)

        if custom_id == 17 then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encode = raknetBitStreamReadInt8(bs) == 1
            local str = encode and raknetBitStreamDecodeString(bs, length) or raknetBitStreamReadString(bs, length)
            if str then
                if active then
                    sampAddChatMessage('{FF8C00}[CEF Logger] {20B2AA}Receive {FF8C00}| {FFFFFF}' .. str, -1)
                    sampAddChatMessage(table.concat(packet_struct, ', '), -1)
                end
            end
        end
    end
end)

Ловлю цеф уведомление, получаю:
1762366752308.png
1762366773269.png

JavaScript:
window.executeEvent('cef.addNotification', JSON.stringify([{"type":"error","title":"Ошибка","description":"У Вас нет ключей от дверей!","duration":2700}]))

Пытаюсь эмулировать получения пакета (уведомления):

Lua:
    sampRegisterChatCommand('emul', function()
        local str = 'window%.executeEvent(\'cef%.addNotification\', JSON%.stringify%(%[{"type":"information","title":"Информация","description":"Вы голодны!","duration":1760}%]%))'

        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, 220)
        raknetBitStreamWriteInt8(bs, 17)
        raknetBitStreamWriteInt32(bs, 0)
        raknetBitStreamWriteInt16(bs, #str)
        raknetBitStreamWriteInt8(bs, 1)
        raknetBitStreamEncodeString(bs, str)

        raknetEmulPacketReceiveBitStream(220, bs)
        raknetDeleteBitStream(bs)
    end)

На выходе нихуя не получаю, в чем проблема? Делал подобные уведомления на аризоне, все работало, а тут <_>
 

Tema05

Известный
1,606
531
читаю cef-пакеты родины
Lua:
addEventHandler('onReceivePacket', function(id, bs)
    if id == 220 then
        local packet_struct = getPacketStructure(bs)

        raknetBitStreamIgnoreBits(bs, 8)
        local custom_id = raknetBitStreamReadInt8(bs)

        if custom_id == 17 then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encode = raknetBitStreamReadInt8(bs) == 1
            local str = encode and raknetBitStreamDecodeString(bs, length) or raknetBitStreamReadString(bs, length)
            if str then
                if active then
                    sampAddChatMessage('{FF8C00}[CEF Logger] {20B2AA}Receive {FF8C00}| {FFFFFF}' .. str, -1)
                    sampAddChatMessage(table.concat(packet_struct, ', '), -1)
                end
            end
        end
    end
end)

Ловлю цеф уведомление, получаю:
Посмотреть вложение 281632Посмотреть вложение 281633
JavaScript:
window.executeEvent('cef.addNotification', JSON.stringify([{"type":"error","title":"Ошибка","description":"У Вас нет ключей от дверей!","duration":2700}]))

Пытаюсь эмулировать получения пакета (уведомления):

Lua:
    sampRegisterChatCommand('emul', function()
        local str = 'window%.executeEvent(\'cef%.addNotification\', JSON%.stringify%(%[{"type":"information","title":"Информация","description":"Вы голодны!","duration":1760}%]%))'

        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, 220)
        raknetBitStreamWriteInt8(bs, 17)
        raknetBitStreamWriteInt32(bs, 0)
        raknetBitStreamWriteInt16(bs, #str)
        raknetBitStreamWriteInt8(bs, 1)
        raknetBitStreamEncodeString(bs, str)

        raknetEmulPacketReceiveBitStream(220, bs)
        raknetDeleteBitStream(bs)
    end)

На выходе нихуя не получаю, в чем проблема? Делал подобные уведомления на аризоне, все работало, а тут <_>
Так у тебя строчка приходящая с сервера, и та, что ты эмулируешь, разные. Ты получил ровно тот результат, что отправляешь. Думаю в логе даже будет сказано
window.executeEvent('cef.addNotification', JSON.stringify([{"type":"error","title":"Ошибка","description":"У Вас нет ключей от дверей!","duration":2700}]))
window%.executeEvent(\'cef%.addNotification\', JSON%.stringify%(%[{"type":"information","title":"Информация","description":"Вы голодны!","duration":1760}%]%))
 

чупепик

Новичок
Автор темы
2
0
Так у тебя строчка приходящая с сервера, и та, что ты эмулируешь, разные. Ты получил ровно тот результат, что отправляешь. Думаю в логе даже будет сказано
window.executeEvent('cef.addNotification', JSON.stringify([{"type":"error","title":"Ошибка","description":"У Вас нет ключей от дверей!","duration":2700}]))
window%.executeEvent(\'cef%.addNotification\', JSON%.stringify%(%[{"type":"information","title":"Информация","description":"Вы голодны!","duration":1760}%]%))
я нахуя-то в эмулировании начал экранировать спец. символы, но даже с чистой строкой оно не робит