cef help

Joce

Известный
Автор темы
119
51
Версия MoonLoader
.026-beta
эт есть где-то нормальный гайд для тюленей по CEF, у Аризоны все почти завязано на cef, не могу понять через cef мониторинг от вилички, что куда и к чему крутить
 
  • Нравится
Реакции: Порожденный

kawanki

Новичок
20
8
эт есть где-то нормальный гайд для тюленей по CEF, у Аризоны все почти завязано на cef, не могу понять через cef мониторинг от вилички, что куда и к чему крутить
если ты от вилички скачал cef monitoring для арз - то я думаю там уже все понятно.
Тебе выводит строку, которую содержит кастомный пакет, а после нее набор байтов
1787326980054.jpeg


Все кастомные пакеты которые отправляет игрок - имеют одинаковую структуру и можно отправлять лишь string(В нашем случае onActiveViewChange|null) имея эту функцию:

Lua:
function sendCef(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStreamEx(bs, 2, 9, 6)
    raknetDeleteBitStream(bs)
end

Lua:
sendCef("onActiveViewChange|null")

Читать CEF пакеты с игры можно так:


Lua:
function onReceivePacket(id, bs)
    if id == 220 then
        raknetBitStreamIgnoreBits(bs, 8)
        local packetType = raknetBitStreamReadInt8(bs)
        
        if packetType == 17 then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encoded = raknetBitStreamReadInt8(bs)
            
            local str
            if encoded ~= 0 then
                str = raknetBitStreamDecodeString(bs, length)
            else
                str = raknetBitStreamReadString(bs, length)
            end
            CEF(str) -- Функция куда ты будешь передавать все эти пакеты
        end
    end
end

Таким образом можно и эмулировать пакеты от сервера
Lua:
local function visualCefNotify(str, is_encoded)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 17)
    raknetBitStreamWriteInt32(bs, 0)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteInt8(bs, is_encoded and 1 or 0)
    if is_encoded then
        raknetBitStreamEncodeString(bs, str)
    else
        raknetBitStreamWriteString(bs, str)
    end
    raknetEmulPacketReceiveBitStream(220, bs)
    raknetDeleteBitStream(bs)
end

Lua:
visualCefNotify("тут строка которую хочешь эмулировать", true)

По поводу эмуляции пакетов от сервера не уверен на все 100%, конкретно в моем случае идет эмуляция серверного уведомления
 

Joce

Известный
Автор темы
119
51
если ты от вилички скачал cef monitoring для арз - то я думаю там уже все понятно.
Тебе выводит строку, которую содержит кастомный пакет, а после нее набор байтов
Посмотреть вложение 299188

Все кастомные пакеты которые отправляет игрок - имеют одинаковую структуру и можно отправлять лишь string(В нашем случае onActiveViewChange|null) имея эту функцию:

Lua:
function sendCef(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 0)
    raknetSendBitStreamEx(bs, 2, 9, 6)
    raknetDeleteBitStream(bs)
end

Lua:
sendCef("onActiveViewChange|null")

Читать CEF пакеты с игры можно так:


Lua:
function onReceivePacket(id, bs)
    if id == 220 then
        raknetBitStreamIgnoreBits(bs, 8)
        local packetType = raknetBitStreamReadInt8(bs)
       
        if packetType == 17 then
            raknetBitStreamIgnoreBits(bs, 32)
            local length = raknetBitStreamReadInt16(bs)
            local encoded = raknetBitStreamReadInt8(bs)
           
            local str
            if encoded ~= 0 then
                str = raknetBitStreamDecodeString(bs, length)
            else
                str = raknetBitStreamReadString(bs, length)
            end
            CEF(str) -- Функция куда ты будешь передавать все эти пакеты
        end
    end
end

Таким образом можно и эмулировать пакеты от сервера
Lua:
local function visualCefNotify(str, is_encoded)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 17)
    raknetBitStreamWriteInt32(bs, 0)
    raknetBitStreamWriteInt16(bs, #str)
    raknetBitStreamWriteInt8(bs, is_encoded and 1 or 0)
    if is_encoded then
        raknetBitStreamEncodeString(bs, str)
    else
        raknetBitStreamWriteString(bs, str)
    end
    raknetEmulPacketReceiveBitStream(220, bs)
    raknetDeleteBitStream(bs)
end

Lua:
visualCefNotify("тут строка которую хочешь эмулировать", true)

По поводу эмуляции пакетов от сервера не уверен на все 100%, конкретно в моем случае идет эмуляция серверного уведомления
Вот условно, я хочу получить cef, из-за флуда постоянного, этот мониторинг летит как ебанутый, понять что к чему, не представляется возможным, из-за чего не понятно, вызывалось это к тому вызову, который я хотел или нет
 

kawanki

Новичок
20
8
Вот условно, я хочу получить cef, из-за флуда постоянного, этот мониторинг летит как ебанутый, понять что к чему, не представляется возможным, из-за чего не понятно, вызывалось это к тому вызову, который я хотел или нет
Я думаю тут ничего сложного же нет, да и флуда там особого тоже нет.
Просто поймай тайминг отправки пакета и смотри близлежащие пакеты.
У них в основном все пакеты если с английского на русский перевести, то получится то действие, которое выполнил твой бот.
В нашем случае "изменен режим вида|null", то есть закрылись все цеф-интерфейсы и камера стала доступна.
 

Joce

Известный
Автор темы
119
51
Я думаю тут ничего сложного же нет, да и флуда там особого тоже нет.
Просто поймай тайминг отправки пакета и смотри близлежащие пакеты.
У них в основном все пакеты если с английского на русский перевести, то получится то действие, которое выполнил твой бот.
В нашем случае "изменен режим вида|null", то есть закрылись все цеф-интерфейсы и камера стала доступна.
я чет не могу все равно вдумлить, как мне получать предметы с инвентаря

вот сами пакеты

ЬonActiveViewChanged|null | 220, 18, 24, 0, 111, 110, 65, 99, 116, 105, 118, 101, 86, 105, 101, 119, 67, 104, 97, 110, 103, 101, 100, 124, 110, 117, 108, 108, 0, 0, 0, 0

ЬonActiveViewChanged|Inventory | 220, 18, 29, 0, 111, 110, 65, 99, 116, 105, 118, 101, 86, 105, 101, 119, 67, 104, 97, 110, 103, 101, 100, 124, 73, 110, 118, 101, 110, 116, 111, 114, 121, 0, 0, 0, 0


1787679737741.png
 

bfix

Активный
122
87
я чет не могу все равно вдумлить, как мне получать предметы с инвентаря

вот сами пакеты

ЬonActiveViewChanged|null | 220, 18, 24, 0, 111, 110, 65, 99, 116, 105, 118, 101, 86, 105, 101, 119, 67, 104, 97, 110, 103, 101, 100, 124, 110, 117, 108, 108, 0, 0, 0, 0

ЬonActiveViewChanged|Inventory | 220, 18, 29, 0, 111, 110, 65, 99, 116, 105, 118, 101, 86, 105, 101, 119, 67, 104, 97, 110, 103, 101, 100, 124, 73, 110, 118, 101, 110, 116, 111, 114, 121, 0, 0, 0, 0


Посмотреть вложение 299450
При заходе на сервер:
1787680490585.png
 
  • Клоун
Реакции: swlm

bfix

Активный
122
87
не подскажешь, как нажимать на cef элемент
Скачай библиотеку arizona-events (https://www.blast.hk/threads/235586/)

Тебе нужна функция onArizonaSend
Нажимаешь на кнопку, тебе выводит что то типо такого если ты отдебажил: [SENDED]: inventory.moveItemForce|{"slot": 20, "type": 1, "amount": 2}
Чтобы нажать через скрипт берёшь в той теме пример функции acef.send
Пример:
lua:
local acef = require('arizona-events')
function acef.onArizonaSend(packet)
    -- text | server_id
    print(packet.text)
end
-- Подбор предмета из рулетки
function takePrize()
    acef.send('onArizonaSend', {
        text = 'crate.roulette.takePrize',
        server_id = 0
    })
    roulette_state.isOpening = false
    acef.send('onArizonaSend', {
        text = 'crate.roulette.exit',
        server_id = 0
    })
end
function acef.onArizonaDisplay(packet)
    -- server_id | text
    if packet.text:find('window.executeEvent%(\'event.crate.roulette.onCrateOpen') then
        lua_thread.create(function ()
            wait(0)
            takePrize()
        end)
    end
end
 

2elnwndrer.

Известный
240
98
удобнее тыркать цеф через девтулс
а потом уже через ту же arizona events эмулировать то что отковырял) я так себе сделал автоспавн и открытие сундуков с тайниками автоматическое с отслеживанием кд