Исходник Софт [RakBot][Module] LuaAddons

molimawka

Известный
Автор темы
Друг
443
648
Это проект наподобие SAMP.Lua только для RakBot'а.
Сейчас функционал маленький но он будет дополняться

Моя цель это почти полный перенос библиотеки SAMP.Lua
и частично перенос функций Moonloader'а

Если вы используете эту библиотеку то вместо стандартного хука onRecvRpc используйте хук onRRpc.
(Если вы будете использовать onRecvRpc то библиотека не будет работать)

Сейчас готово 4.5 модуля и один приятный фикс:
Это полноценный перенос работы с textdraw'ами из moonloader'a и samp.lua

Хук onShowTextDraw полностью повторяет хук из SAMP.Lua
Пример:
Lua:
function onShowTextDraw(tId,data)
    if data.modelId == 19918 then
        clickTextDraw(tId) -- кликаем по textdraw'у у которого модель сундука
    end
end
(Остальные хуки связанные с textdraw'ами я не переносил так как они уже есть в RakBot'е и нормально функционируют)

Перенесены с MoonLoader'a такие функции:
Lua:
-- Все функции возвращают значение или nil
sampTextdrawGetString(id)
sampTextdrawGetStyle(id)
sampTextdrawGetPos(id)
sampTextdrawGetShadowColor(id)
sampTextdrawGetLetterSizeAndColor(id)
sampTextdrawGetModelRotationZoomVehColor(id)

sampTextdrawIsExists(id) -- Возвращает true если текстдрав есть или false

Добавлены такие функции:
Lua:
sampTextdrawGetData(id) -- Возвращает всю информацию про textdraw
Перенесены такие хуки:
Lua:
onObjectCreate(objectId,data) -- тоже что и onCreateObject
onSetObjectPosition(objectId, position) -- onSetObjectPosition
onSetObjectRotation(objectId, rotation) -- onSetObjectRotation
(onObjectCreate чутка обрезан так как не знаю как правильно все перенести)
Пример:
Lua:
function onObjectCreate(id, data)
    if data.modelId == 983 then
        printLog('Установлен забор')
    end
end
С MoonLoader'a перенесены такие функции:
Lua:
getAllObjects()
getObjectCoordinates(id)
doesObjectExist(id)
Добавлены такие функции:
Lua:
getObjectData(id) -- получаем информацию про object
Так же прошу заметить что используется не handle объекта а именно id
Ну тут не было что переносить
Перенес только такие хуки:
Lua:
onSetCheckpoint(position, radius) -- onSetCheckpoint
onSetRaceCheckpoint(type, position, nextPosition, size) -- onSetRaceCheckpoint
getCurrentRaceCheckpoint() -- возвращает активный чекпоинт
Lua:
onPickupCreate(id, data) -- ивент который вызывается при создании пикапа
onPickupDestroy(id, data) -- вызывается при уничтожении пикапа

getAllPickups(id) -- получить все пикапы
getPickupType(id) -- получить тип пикапа
getPickupModel(id) -- получить модель пикапа
getPickupCoordinates(id) -- получить координаты пикапа
doesPickupExist(id) -- проверка существует ли пикап
В fix.lua просто фикс print. Теперь можно юзать стандартный print из луа и не переживать про тип.
В other.lua просто обработка интерьера
Lua:
onSetInterior(id) -- ивент который вызывает когда сервер меняет интерьер

getInteriorId() -- получение текущего интерьера


Содержимое архива перенести в папку путь_до_ракбота/scripts/libs
Подключение:
В начале вашего скрипта вам нужно вставить 2 строки

Lua:
package.path = getRakBotPath().."/scripts/libs/?.lua;"..getRakBotPath().."/scripts/libs/?/init.lua;";
package.cpath = getRakBotPath().."/scripts/libs/?.dll";

Далее просто каждый модуль подключать по отдельности

Lua:
require("luaAddons.other")
require("luaAddons.fix")
require("luaAddons.checkpoint")
require("luaAddons.textdraw")
require("luaAddons.object")
require("luaAddons.pickup")
 

Вложения

  • luaAddons.zip
    4.4 KB · Просмотры: 2,128
Последнее редактирование:

rgfxedghxyh

Участник
71
11
интересно, в раке часто бывают с этим проблемы. Много чего можно привнести.
 

MishaN

Новичок
14
18
Отличная штука
Разобрался, кстати, с проблемой require, в новой версии будет исправлено, а пока можно в начало скрипта следующий код добавлять:

Lua:
package.path = "./scripts/libs/?.lua";
package.cpath = "./scripts/libs/?.dll";
 

Dozor

Потрачен
359
143
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как мне получить текст с textdraw?
 

molimawka

Известный
Автор темы
Друг
443
648
Перезалил битый архив, добавил чутка оптимизации.
 
  • Нравится
Реакции: LelHack

vadimka0216

Известный
38
63
Предлагаю сделать редактор с подключением пакетов, как в nuget. Новичкам очень к стати.