Raksamp lite

Char

Известный
Автор темы
349
122
Версия SA-MP
  1. Любая
Здравствуйте, я начинаю для себя открывать язык lua, для SAMP найти гайды нет проблем, но написание скриптов для raksamp lite проблематично т.к очень мало примеров кода.
Если у вас есть скиньте пожалуйста простые скрипты или информацию.
 

Char

Известный
Автор темы
349
122
Записывай маршрут и воспроизводи его в скрипте
У меня есть скрипт записи и воспроизведении маршрутов (Тык*), но он активируется по команде, а как можно сделать проверку на интерьер (например 123) и при нахождении в нем начать маршрут
 

ik0nka

Известный
749
353
У меня есть скрипт записи и воспроизведении маршрутов (Тык*), но он активируется по команде, а как можно сделать проверку на интерьер (например 123) и при нахождении в нем начать маршрут
Конечно, можно, посмотри как воспроизводится маршрут в скрипте который ты используешь. В твоем случае за воспроизведение маршрута(именно начала его воспроизведения) отвечает эта часть кода:

Код:
packet = loadIni(getRakBotPath(1)..'routes\\'..act:match('!play (.*)')..'.rt') -- Получение битстрима(маршрута) маршрута который ты запустил
if packet then
    printLog('playing route "'..act:match('!play (.*)')..'". total length: '..#packet) -- Вывод информации о маршруте
    counter = 1 -- Какой по счету круг
    rep = true -- Переменная которая отвечает за старт маршрута
    loop = false
else
    printLog('route doesnt exist')
end

И в этой функции, проверяется запустить ли ты маршрут или нет:

Код:
function onScriptUpdate()
    if rep then -- Та самя переменная которая проверят нужно ли воспроизводить маршрут
        local ok = fillBitStream(getBotState())
        if ok then
            sendPacket(getBotState() == 1 and bitstream.onfoot or getBotState() == 2 and bitstream.incar)
            setPosition(packet[counter].x, packet[counter].y, packet[counter].z)
            counter = counter + 1
            if counter%20 == 0 then
                local aok = fillBitStream(3)
                if aok then sendPacket(bitstream.aim) else err() end
            end
        else
            err()
        end
        bitStreamReset(bitstream.incar); bitStreamReset(bitstream.onfoot); bitStreamReset(bitstream.aim)
        if counter == #packet then
            if not loop then
                rep = false
                setPosition(packet[counter].x, packet[counter].y, packet[counter].z)
                setQuaternion(packet[counter].qw, packet[counter].qx, packet[counter].qy, packet[counter].qz)
                packet = {}
            end
            counter = 1
        end
    end
end

Как итог, ты должен поставить запуск маршрута при нужном тебе событии и все. Главное разберись как работает код, и тогда проблем не возникнет

На всякий случай уточню, что скрипт который ты дал в пример для RakBot. Так что работать на RakSamp Lite он не бдует)
 
Последнее редактирование:

Tomato

Активный
392
89
Для рак сампа
 

Char

Известный
Автор темы
349
122
Для рак сампа
Скрипт из этот темы адаптация под раксамп, скрипта выше

Конечно, можно, посмотри как воспроизводится маршрут в скрипте который ты используешь. В твоем случае за воспроизведение маршрута(именно начала его воспроизведения) отвечает эта часть кода:

Код:
packet = loadIni(getRakBotPath(1)..'routes\\'..act:match('!play (.*)')..'.rt') -- Получение битстрима(маршрута) маршрута который ты запустил
if packet then
    printLog('playing route "'..act:match('!play (.*)')..'". total length: '..#packet) -- Вывод информации о маршруте
    counter = 1 -- Какой по счету круг
    rep = true -- Переменная которая отвечает за старт маршрута
    loop = false
else
    printLog('route doesnt exist')
end

И в этой функции, проверяется запустить ли ты маршрут или нет:

Код:
function onScriptUpdate()
    if rep then -- Та самя переменная которая проверят нужно ли воспроизводить маршрут
        local ok = fillBitStream(getBotState())
        if ok then
            sendPacket(getBotState() == 1 and bitstream.onfoot or getBotState() == 2 and bitstream.incar)
            setPosition(packet[counter].x, packet[counter].y, packet[counter].z)
            counter = counter + 1
            if counter%20 == 0 then
                local aok = fillBitStream(3)
                if aok then sendPacket(bitstream.aim) else err() end
            end
        else
            err()
        end
        bitStreamReset(bitstream.incar); bitStreamReset(bitstream.onfoot); bitStreamReset(bitstream.aim)
        if counter == #packet then
            if not loop then
                rep = false
                setPosition(packet[counter].x, packet[counter].y, packet[counter].z)
                setQuaternion(packet[counter].qw, packet[counter].qx, packet[counter].qy, packet[counter].qz)
                packet = {}
            end
            counter = 1
        end
    end
end

Как итог, ты должен поставить запуск маршрута при нужном тебе событии и все. Главное разберись как работает код, и тогда проблем не возникнет

На всякий случай уточню, что скрипт который ты дал в пример для RakBot. Так что работать на RakSamp Lite он не бдует)
Спасибо, постораюсь что то понять.