Исходник Гайд [ARZ] CEF Events

kyrtion

Известный
1,109
402
Пацыки кто знает как цеф АризоныМобайл вывести?
уметь читать код, документация, уметь гуглить, переводить англ на русс и наоборот.
грубо говоря, иметь умелые руки и продвинутый мозг ААХХПФВАХХААХХАХАХА
 

Orinssss

Новичок
11
0
Есть луашка для вывода данных битстримв но под мобайл аризону
 

wojciech?

Известный
Проверенный
385
282
Сегодня на аризоне немного обновился цеф и часть скриптов перестала работать. Изменили они не очень много, вот новая структура входящего пакета:
C:
struct cef_packet_recieved {
    uint8_t packet_id; // default 220
    uint8_t unknown_id; // default 17
    uint32_t _unused;
    uint16_t length;
    uint8_t is_encoded; // 1 - encoded, 0 - default
    char[] str; // char[length + is_encoded]
    // если строка закодирована, то + 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)
      print(str) -- строка из пакета
    end
  end
end)

up
Исходящие пакеты всё-таки тоже изменились:
C:
struct cef_packet_sended {
    uint8_t packet_id; // default 220, другие не разбирал
    uint8_t packet_type;
    uint16_t length;
    char[] str; // строка из пакета: char[length]
    uint32_t _unused;
}

Код для отправки исходящего пакета:
Lua:
function send_cef(str)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt16(bs, #str)
  raknetBitStreamWriteString(bs, str)
  raknetBitStreamWriteInt32(bs, 0)
  raknetSendBitStream(bs)
  raknetDeleteBitStream(bs)
end

Код для чтения исходящего пакета:
Lua:
addEventHandler('onSendPacket', function (id, bs, priority, reliability, orderingChannel)
  if id == 220 then
    local id = raknetBitStreamReadInt8(bs)
    local packettype = raknetBitStreamReadInt8(bs)
    local strlen = raknetBitStreamReadInt16(bs)
    local str = raknetBitStreamReadString(bs, strlen)
    if packettype ~= 0 and packettype ~= 1 and #str > 2 then
      print(str) -- исходящая строка
    end
  end
end)


Ниже обновленная библиотека (x2) из темы:
 

Вложения

  • CEF Events.lua
    1.8 KB · Просмотры: 80
Последнее редактирование:

SummerSouL

Известный
100
54
Сегодня на аризоне немного обновился цеф и часть скриптов перестала работать. Изменили они не очень много, вот новая структура входящего пакета:
C:
struct cef_packet {
    uint8_t packet_id; // default 220
    uint8_t unknown_id; // default 17
    uint32_t _unused;
    uint16_t length;
    uint8_t is_encoded; // 1 - encoded, 0 - default
    char[] str; // char[length + encoded]
    // если строка закодирована, то + 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)
      print(str) -- строка из пакета
    end
  end
end)

Исходящие пакеты не изменились (по крайней мере я не заметил проблем с ними). Ниже обновленная библиотека из темы:
а как на основе этого вернуть работоспособность скриптов? у меня все скрипты поголовно не работают с одной и той же ошибкой "in function 'raknetBitStreamReadString'"
 

wojciech?

Известный
Проверенный
385
282
а как на основе этого вернуть работоспособность скриптов? у меня все скрипты поголовно не работают с одной и той же ошибкой "in function 'raknetBitStreamReadString'"
Изменить в скрипте способ чтения пакета, выше есть готовый код для этого. Если не знаешь что с этим делать – обратись к разработчику скрипта или сюда https://www.blast.hk/forums/16/
 
  • Влюблен
  • Нравится
Реакции: Swerzxc и SummerSouL

Rice.

Известный
Автор темы
Модератор
1,755
1,647
Сегодня на аризоне немного обновился цеф и часть скриптов перестала работать. Изменили они не очень много, вот новая структура входящего пакета:
C:
struct cef_packet {
    uint8_t packet_id; // default 220
    uint8_t unknown_id; // default 17
    uint32_t _unused;
    uint16_t length;
    uint8_t is_encoded; // 1 - encoded, 0 - default
    char[] str; // char[length + encoded]
    // если строка закодирована, то + 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)
      print(str) -- строка из пакета
    end
  end
end)

Исходящие пакеты не изменились (по крайней мере я не заметил проблем с ними). Ниже обновленная библиотека из темы:
легенда
 
  • Нравится
Реакции: SAKUTA

Rice.

Известный
Автор темы
Модератор
1,755
1,647
но советую все равно использовать в своих скриптах что-то подобное:
Lua:
function bitStreamStructure(bs)
    local text, array = '', {}
    for i = 1, raknetBitStreamGetNumberOfBytesUsed(bs) do
        local byte = raknetBitStreamReadInt8(bs)
        if byte >= 32 and byte <= 255 and byte ~= 37 then text = text .. string.char(byte) end
        table.insert(array, byte)
    end
    raknetBitStreamResetReadPointer(bs)
    return text, array
end
 

Yondime

кавайчик
Проверенный
310
522
Сегодня на аризоне немного обновился цеф и часть скриптов перестала работать. Изменили они не очень много, вот новая структура входящего пакета:
C:
struct cef_packet {
    uint8_t packet_id; // default 220
    uint8_t unknown_id; // default 17
    uint32_t _unused;
    uint16_t length;
    uint8_t is_encoded; // 1 - encoded, 0 - default
    char[] str; // char[length + encoded]
    // если строка закодирована, то + 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)
      print(str) -- строка из пакета
    end
  end
end)

Исходящие пакеты не изменились (по крайней мере я не заметил проблем с ними). Ниже обновленная библиотека из темы:
умен
 

PointLegendary

Новичок
1
0
здраствуйте буквально вчера изменили структуру CEF пакета и куда использовать данный Lua? (можете подсказать пожалуйста не 1 сборка не запускаеться)
 

kyrtion

Известный
1,109
402
здраствуйте буквально вчера изменили структуру CEF пакета и куда использовать данный Lua? (можете подсказать пожалуйста не 1 сборка не запускаеться)
 

Неадекватная сова

Известный
Проверенный
277
245
Для своих нужд склепан такой вариант. Вдруг кому то будет по душе

Регистрируем хендлер на определенный ивент и слушаем его
Имеет поддержку отклонение пакета через return false

Lua:
local cefLib = require("cefLib")

local cefHandler = cefLib.new()

cefHandler:registerReceiveHandler("event.setActiveView", function(event, data)
    print(event) -- event.setActiveView
    print(data) -- Phone
end)

cefHandler:registerReceiveHandler("event.arizonahud.setRadialKey", function(event, data)
    print(event) -- event.arizonahud.setRadialKey
    print(data) -- R
end)

addEventHandler("onReceivePacket", function(id, bs)
    return cefHandler:onReceivePacket(id, bs)
end)
Регистрируем глобальный хендлер на все исходящие пакеты
Имеет поддержку отклонение пакета через return false

Lua:
local cefLib = require("cefLib")

local cefHandler = cefLib.new()

cefHandler:registerSendHandler(function(event, data)
    print(event) -- onActiveViewChanged
    print(data) -- Phone
end)

addEventHandler("onSendPacket", function(id, bs)
    return cefHandler:onSendPacket(id, bs)
end)

Ну и базовые функции:
Lua:
cefHandler:Emulate({220, 0, 80, 64}) -- Открываем телефон
cefHandler:SendCEF('launchedApp|24') -- Открываем приложение в телефоне
cefHandler:Emulate({220, 0, 27, 64}) -- Закрываем телефон
 

Вложения

  • cefLib.lua
    3.6 KB · Просмотры: 5

johnnysins

Участник
29
1
1741525979959.png
у меня какая то ебанина выводится помогите пж