Исходник rak.functions - Расширение функционала RakSamp-Lite

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
привет.

библиотека добавляет новые функции в raksamp-lite от @Rei ( https://www.blast.hk/threads/108052/ )
Lua:
sendDialog(id, button, list, input)
-- отправляет ответ диалогу

clickTextDraw(id)
-- клик по указанному текстдраву

bool = isBotSpawned()
-- проверка на спавн бота

disconnectByKick()
-- дисконнект

tab quat = getQuaternion()
-- получает кватернион бота, возвращает таблицу

x, y, z = getSpeed()
-- moveSpeed

int id = getBotId()
-- айди бота

setSpeed(x, y, z, true/false)
-- установить скорость с зажатием

setQuaternion(tab, true/false)
-- установить кватернион с зажатием

local data = _playerData() -- func by fyp
---
data.send()

newTask(str name, int delay, bool repeat, function)
-- создать новый поток

delTask(str name)
-- удалить поток по имени

при создании потока вписывайте updateTask() в onUpdate

как подключить ит.д
Lua:
------------ в начало кода
require("rak.functions")
----- эту строчку

local spawn = false
local a = 0

function onUpdate()
    updateTask() -- если создаем поток то вписываем
    if isBotSpawned() and not spawn then -- проверка на спавн
        print("spawned!!")
        spawn = true
    end
    newTask("123", 1500, true, function() -- (название, задержка, повторять или нет, функция)
        print("Пишу раз в полторы секунды 10 раз!! azaza")
        a = a + 1
        local data = _playerData() -- samp_create_sync by fyp
        data.moveSpeed.x = 123
        data.moveSpeed.y = 666
        data.moveSpeed.z = 1337
        data.send()
    end, 1)
    if a == 10 then
        delTask("123") -- удалить таск по неймтегу
    end
end

function onRunCommand(cmd)
    if cmd:match("!disconnect") then
        disconnectByKick() -- дисконнект )
    end
    if cmd:match("!speed") then
        local x, y, z = getSpeed() -- получить скорость, float
        print("SPEED | " .. x .. ";" .. y .. ";" .. z)
    end
    if cmd:match("!quat") then
        local quat = getQuaternion() -- quaternion {1,2,3,4}
        print("QUAT | " .. quat[1] .. ";" .. quat[2] .. ";" .. quat[3] .. ";" .. quat[4])
    end
    if cmd:match("!setspeed") and cmd:match("%d+") then
        local x, y, z = cmd:match("(%d+) (%d+) (%d+)")
        setSpeed(tonumber(x), tonumber(y), tonumber(z), true) -- устанавливает мувспид с зажатием.  true - включить, false - выключить
        print("SETSPEED | " .. x .. ";" .. y .. ";" .. z)
    end
    if cmd:match("!spoff") then
        setSpeed(123,123,123, false)
    end
end

require("samp.events").onShowDialog = function(dialogId, style, title, button1, button2, text)
    if title:match("Авторизация") then
        sendDialog(dialogId, 1, 65535, "123123") -- ответ диалогу
        return false
    end
end

папку из вложений в libs

что позаимствовал - указал авторство в коде.

по поводу багов/предложений по улучшению кода пишите в тему
так же очень рад буду услышать идеи че еще можно добавить!
 

Вложения

  • rak.functions.zip
    1.8 KB · Просмотры: 314
Последнее редактирование:

The Spark

Известный
656
690
Очевдно что самый главный минус - это всё держится до перезагрузки скрипта. После перезагрузки либа забывает всё, что запомнила.
Lua:
------------- author - noname, если ты автор и ты это читаешь свяжись со мноЙ!!!
function newTask(name, delay, rep, func, ...)
    local tab = {...}
    if task[name] == nil then
        task[name] = {start = os.clock() * 1000, delay = delay, rep = rep, func = func, tab = tab}
    end
end
...
Чем не угодили корутины? Выглядит это более надежно. https://www.blast.hk/threads/85081/
 

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Очевдно что самый главный минус - это всё держится до перезагрузки скрипта. После перезагрузки либа забывает всё, что запомнила.
Lua:
------------- author - noname, если ты автор и ты это читаешь свяжись со мноЙ!!!
function newTask(name, delay, rep, func, ...)
    local tab = {...}
    if task[name] == nil then
        task[name] = {start = os.clock() * 1000, delay = delay, rep = rep, func = func, tab = tab}
    end
end
...
Чем не угодили корутины? Выглядит это более надежно. https://www.blast.hk/threads/85081/
только айди забывается после перезагрузки скрипта.
если есть идеи как постоянно получать ид кроме sendchat /id botname() готов выслушать

по поводу корутин согласен, но мне такой метод больше нравится
 

Hatiko

Известный
Проверенный
1,502
620
Чем не угодили корутины? Выглядит это более надежно
Потому что их вроде бы нет в данном клиенте.
библиотека добавляет новые функции в raksamp-lite
Тему бы оформил более корректно - подсветка синтаксиса и спойлеры более человеческим языком назвать.
 

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Rei

Известный
Друг
1,611
1,668
что-то подобное тоже начинал делать.
есть уже функция getID(), просто забыл ее прописать в теме
в обнове так же будет работа с кватернионами
а чем тебе либа Tasking не нравится, я так и не понял
 

Вложения

  • addon.lua
    1.2 KB · Просмотры: 30
  • Нравится
Реакции: spelare for filmer

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в обнове так же будет работа с кватернионами
была бы возможность нормально ставить скорость и анимации, релизнул бы уже слапфиксы и много других прикольных штук
через синхру как-то кривовато работает
 

Rei

Известный
Друг
1,611
1,668
была бы возможность нормально ставить скорость и анимации, релизнул бы уже слапфиксы и много других прикольных штук
через синхру как-то кривовато работает
установка постоянного мувспида не очень нужна боту, который сам по себе на месте стоит, а для того же слапфикса нужно синхру в любом случае ручками слать

я не очень понял твою задумку, но проще сделать так
Lua:
function sampev.onSendPlayerSync(data)
    data.moveSpeed.x = 0.1
    data.quaternion[0] = 1.0
end
 

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
установка постоянного мувспида не очень нужна боту, который сам по себе на месте стоит, а для того же слапфикса нужно синхру в любом случае ручками слать

я не очень понял твою задумку, но проще сделать так
Lua:
function sampev.onSendPlayerSync(data)
    data.moveSpeed.x = 0.1
    data.quaternion[0] = 1.0
end
функция с зажатием больше для адаптации курдов и так далее
для слапфиксов юзал
local data = _playerData() -- func by fyp
---
data.send()
почему то результат ~= результату с ракбота
 

shutikov

Участник
55
5
ошибка raksamp/scripts/libs/rak/functions.lua:59: attempt to index global 'eventType' (a nil value)
 
  • Нравится
Реакции: 1ek

1ek

Новичок
19
0
Пробовал кто переписать под синхру транспорта? Попытался сам, но что-то не отправляется синхра 🙄
 

F0RQU1N and

Известный
1,309
498
1665754372525.png

хуета ккаая-то
 

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

spelare for filmer

Потрачен
Автор темы
151
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
так ошибка в твоём скрипте, а не моём(по крайней мере в логе так)
ошибка ваще в самом раксампе мне кажется, потому что оно вылетает на этом моменте: registerHandler(eventType.OUTGOING_PACKET, function(id, bitStream)