- 4,969
- 6,890
MoonR5 - Библиотека для работы с самповскими функциями на версии 0.3.7 R5. Причиной разработки послужило отсутствие( надеюсь временное ) SAMPFUNCS'а под данную версию клиента.
На данный момент функций в библиотеке в два раза меньше чем у SAMPFUNCS. Но со временем думаю функционал будет расширяться, а баги фикситься.
Для работы с RPC можете использовать: RakLua
Разработчики: @ARMOR @AdCKuY_DpO4uLa
Отдельное спасибо за помощь в разработке: @FYP
Пример работы с библиотекой:
Также специально для библиотеки было создано WIKI где можно ознакомиться со всеми функциями библиотеки.
Установка библиотеки происходит таким методом:
PS: В сравнении с SAMPFUNCS'ом имеется в виду только наличие функционала для Moonloader'а, а не отдельное C++ API, или CLEO функции.
На данный момент функций в библиотеке в два раза меньше чем у SAMPFUNCS. Но со временем думаю функционал будет расширяться, а баги фикситься.
Для работы с RPC можете использовать: RakLua
Разработчики: @ARMOR @AdCKuY_DpO4uLa
Отдельное спасибо за помощь в разработке: @FYP
Пример работы с библиотекой:
Получение информации о сервере:
require 'MoonR5' -- Подключаем саму библиотеку
function main()
while not isSampInit() do wait(100) end -- Проверка на запуск сампа, объязательно добавляйте её
sampAddChatMessage("Скрипт загружен!", -1) -- Отправляем в чат сообщение о том что скрипт загрузился
sampRegisterChatCommand("serverinfo", function() -- Регистрируем команду /serverinfo при вводе которой скрипт будет показывать нам диалог с информацией о сервере
local serverName = sampGetServerName() -- Получаем название сервера
local address, port = sampGetServerAddress() -- Получаем IP адрес сервера
local playerCount = sampGetPlayerCount() -- Получаем количество игроков на сервере
sampShowDialog(888, 0, "Тестовый диалог", ("{FFFFFF}Вы находитесь на сервере: {D97B16}%s\n{FFFFFF}Адрес сервера: {D97B16}%s:%d\n{FFFFFF}На данный момент на сервере: {D97B16}%d {FFFFFF}игроков"):format(serverName, address, port, playerCount), "ОК", "Закрыть") -- Показываем диалог с информацией которую мы получили выше
end)
addEventHandler('onScriptTerminate', function(scr, quit) if scr == thisScript() then unload() end end) -- Удаляем всё команды которые мы регистрировали.
wait(-1)
end
Эмуляция BitStream с помощью RakLua:
require 'MoonR5' -- Подключаем нашу библиотеку
local RakLua = require 'RakLua' -- Подключаем библиотеку RakLua
function main()
while not isSampInit() do wait(100) end -- Проверка на инициализацию SAMP'а
sampRegisterChatCommand("setpos", function(arg) -- Регистрируем комманду /setpos с помощью которой мы будем координаты игроков
local x, y, z = arg:match("(%d+) (%d+) (%d+)")
local bs = RakLuaBitStream.new() -- Создаем новый BitStream
bs:writeFloat(tonumber(x)) -- Первым параметром записываем координату X
bs:writeFloat(tonumber(y)) -- Вторым параметром записываем координату Y
bs:writeFloat(tonumber(z)) -- Третьим параметром записываем координату Z
bs:emulIncomingRPC(12) -- Эмулируем входящий RPC
sampAddChatMessage(("Вы переместились на координаты X: %0.1f | Y: %0.1f | Z: %0.1f"):format(x, y, z), -1)
end)
addEventHandler('onScriptTerminate', function(scr)
if scr == thisScript() then unload() end -- Удаляем ранее зарегистрированые нами комманды
end)
wait(-1)
end
Также специально для библиотеки было создано WIKI где можно ознакомиться со всеми функциями библиотеки.
Установка библиотеки происходит таким методом:
- Скачиваете MoonR5.dll из вложений
- Перекидываете скачаный файл в папку moonloader/lib
PS: В сравнении с SAMPFUNCS'ом имеется в виду только наличие функционала для Moonloader'а, а не отдельное C++ API, или CLEO функции.
Вложения
Последнее редактирование: