Исходник arizona-events

wojciech?

Известный
Автор темы
Проверенный
404
360
Arizona-events - это аналог библиотеки SAMP.Lua, позволяющий также удобно и просто взаимодействовать с новыми пакетами и CEF-интерфейсами аризоны. На данный момент поддерживается как обычный клиент SAMP'a, так и RakSamp Lite.

Подключение:
local acef = require("arizona-events")

Важно сразу отметить, в событии вместо передачи аргументов по порядку, они передаются таблицей.
Lua:
function acef.onArizonaBotChatBubble(packet)
    sampAddChatMessage(("Бот[%s] сказал: %s"):format(packet.bot_id, packet.text), -1)
end

Структуру таблицы для каждого пакета можно посмотреть в arizona-events/init.lua:
Lua:
INCOMING_EX[85] = {
    "onArizonaBotChatBubble",
    { IO.uint16,   "bot_id" },
    { IO.string32, "text" },
    { IO.int32,    "color" },
    { IO.float,    "distance" },
    { IO.int32,    "duration" }
}

Помимо обработки событий, также имеется дополнительный API для эмуляции и отправки пакетов:
ОписаниеМетодПример
Эмулирует входящий пакет
Lua:
---@string event* - название события
---@table packet - заполненный пакет
acef.emul(event, packet)
Lua:
acef.emul("onArizonaDisplay", {
    id = 17, -- указывать не обязательно*
    text = "..."
})
Отправляет исходящий пакет
Lua:
---@string event* - название события
---@table packet - заполненный пакет
acef.send(event, packet)
Lua:
acef.send("onArizonaSend", {
    text = "...",
    server_id = 0
})

* Для неразобранных событий есть специальные обработчики onArizonaAnyIn, onArizonaAnyOut для 220 пакета и onArizonaAnyInEx, onArizonaAnyOutEx для 221 пакета. Их структура:
Lua:
{
    id = 0, -- id пакета
    bytes = { ... } -- таблицы с байтами
}

Для отправки или эмуляции нужно полностью заполнить эту структуру, в том числе явно указать id пакета.

Примеры использования библиотеки:
Запрещаем открывать телефон, батлпас и др, пока открыта консоль SF или любой другой интерфейс:
function acef.onArizonaSendKey(packet)
    if packet.key ~= vkeys.VK_ESCAPE and (sampIsCursorActive() or isCursorActive()) then
        return false
    end
end

Автокликер мышкой для мини-игры:
function acef.onArizonaDisplay(packet)
    if packet.text:find("window.executeEvent%('event.clicker.setProgress', `%[%d+%]`%);") then
        for i = 1, 4 do
            acef.send("onArizonaSend", { server_id = 0, text = "clickMinigame" })
        end
    end
end

Простой пул ботов в зоне стрима:
local bot_pool = {}

function acef.onArizonaBotStreamIn(packet)
    bot_pool[packet.bot_id] = packet
end

function acef.onArizonaBotStreamOut(packet)
    bot_pool[packet.bot_id] = nil
end

function acef.onArizonaSetBotTargetPos(packet)
    local bot = bot_pool[packet.bot_id]
    if bot then
        bot.position = packet.position
    end
end

function acef.onArizonaSetBotPos(packet)
    local bot = bot_pool[packet.bot_id]
    if bot then
        bot.position = packet.position
    end
end

Библиотека всё еще находится на стадии разработки и на данный момент некоторые функции могут работать некорректно. Также будем очень признательны, если кто-то решит помочь разобрать пакеты, которых еще нет в нашем списке :)

Установка: разархивировать папку arizona-events в папку moonloader/lib

Авторы: @wojciech?, @vegas, @XRLM
 

Вложения

  • arizona-events.zip
    4.5 KB · Просмотры: 101
Последнее редактирование:

Klimer

Активный
230
67
много текста, 1 вопрос - эмуляция CEF? или еще чота есть
 
  • Клоун
Реакции: chapo

copypaste_scripter

Известный
1,407
284
о да вегас постоянно крутые вещи делал и автор темы тоже годно помогал всегда, будет заебись когда выйдет до конца
 
  • Нравится
Реакции: vegas

wojciech?

Известный
Автор темы
Проверенный
404
360
Библиотека обновлена, были исправлены мелкие ошибки и добавлены новые события:
onArizonaPlayMediaOnBillboard
onArizonaSetPlayerNametagFlags
onArizonaSetVehicleLights

onArizonaSetBotAttachedObject
onArizonaSetBotAttachedSimpleObject
onArizonaRemoveAttachedObjectFromBot
onArizonaBotPassengerSync
onArizonaBotHealthSync
onArizonaSetBotWeapon
onArizonaDestroyBot

onArizonaSendBotOnfootSync
 
  • Нравится
  • Влюблен
Реакции: Sargon, VanoKLR и Deps

wojciech?

Известный
Автор темы
Проверенный
404
360
Библиотека обновлена. Больше нет зависимости от SAMP.lua, появилась поддержка RakSamp Lite и еще немного новых пакетов.
 

bfix

Участник
49
50
Попросил нейронку(дипсик) сделать сниппеты для этого чуда, сделала одним промптом, вроде крутая темка
кидаю зипкой ибо неподдерживаемый формат файла
кидать файлик в \AppData\Roaming\Code\User\snippets (для тех кто не шарит)
не знаю идеально или нет но себе оставил
upd всё таки есть кривые функции просто вручную поправить надо, может если время будет залезу гляну
1746903992194.png
 

Вложения

  • arizona-events.zip
    1.9 KB · Просмотры: 9
Последнее редактирование: