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

Daniel_Govnocode

Активный
334
66
Сегодня на аризоне немного обновился цеф и часть скриптов перестала работать. Изменили они не очень много, вот новая структура входящего пакета:
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) из темы:
Lua:
function main()
    while not isSampAvailable() do wait(0) end
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)
      print(str) -- строка из пакета
    end
  end
end)

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)

Хз чё такое, открываю например интерфейс рулетки и в логах просто пустая строка.
 

Rice.

Известный
Автор темы
Модератор
1,755
1,652
Lua:
function main()
    while not isSampAvailable() do wait(0) end
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)
      print(str) -- строка из пакета
    end
  end
end)

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)

Хз чё такое, открываю например интерфейс рулетки и в логах просто пустая строка.
ну ты уверен, что структура там такая? 220, 17, 0, 0, 0 ... ?
 

wojciech?

Известный
Проверенный
390
288
где-то ты накосячил, код аналогичен тому, что в твоем посте:
1741596781211.png
 

flashor

Участник
24
24
Lua:
function main()
    while not isSampAvailable() do wait(0) end
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)
      print(str) -- строка из пакета
    end
  end
end)

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)

Хз чё такое, открываю например интерфейс рулетки и в логах просто пустая строка.
У тебя полностью рабочий скрипт. Была проблема как у тебя, просто со сборки исчез SF Integrator, верни его и все будет работать.
 

Сокiл

Новичок
10
0
Как открыть\закрыть телефон?
Не работает:

sendCef('onActiveViewChanged|Phone')
sendCef('onActiveViewChanged|null')
 

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

Известный
Проверенный
278
225
Как открыть\закрыть телефон?
Не работает:

sendCef('onActiveViewChanged|Phone')
sendCef('onActiveViewChanged|null')
cefHandler:Emulate({220, 0, 80, 64}) - открыть
cefHandler:SendCEF('launchedApp|24') - выбрать приложение
cefHandler:Emulate({220, 0, 27, 64}) - закрыть
cefHandler:SendCEF('onSvelteAppInit')
 
  • Нравится
Реакции: Сокiл

flashor

Участник
24
24
Если дописать библиотеку будет
Я тебя умоляю, допиши, что бы можно было отправлять свои запросы на замену текстов и отправку своих запросов

Я тебя умоляю, допиши, что бы можно было отправлять свои запросы на замену текстов и отправку своих запросов
Всем форумом просим
 

constersuonsis

Известный
202
122
Сегодня на аризоне немного обновился цеф и часть скриптов перестала работать. Изменили они не очень много, вот новая структура входящего пакета:
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) из темы:
Про мобайл структуру что то известно? Там по другому, не как на пк