Помогите не понимаю как работает функции

Feykomet

Участник
Автор темы
192
15
Версия SA-MP
  1. Любая
помогите не понимаю как работают эти функции(если можно приведите пример простого скрипта с этими функциями Ps желательно еще и объяснить как это работает а то я совсем чайник и 2 день могу понять как они работают)
lua:
function BeginToPoint(x, y, z, radius, move_code, isSprint)
    repeat
        local posX, posY, posZ = GetCoordinates()
        SetAngle(x, y, z)
        MovePlayer(move_code, isSprint)
        local dist = getDistanceBetweenCoords3d(x, y, z, posX, posY, z)
        wait(0)
    until not enabled or dist < radius
end

lua:
function MovePlayer(move_code, isSprint)
    setGameKeyState(1, move_code)
    --[[255 - обычный бег назад
       -255 - обычный бег вперед
      65535 - идти шагом вперед
    -65535 - идти шагом назад]]
    if isSprint then setGameKeyState(16, 255) end
end
 

Feykomet

Участник
Автор темы
192
15
lua:
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
 
    sampRegisterChatCommand('runtopoint', function()
          runToPoint(-846.95587158203, 1213.2403564453) -- координаты вставляй сюда вместо этих (это чтобы тебе не парится с вводом их в чат)
    end)
 
    while true do
       wait(0)
    end
end

-- про редакцию всего, что ниже этого - забудь --

function runToPoint(tox, toy)
    local x, y, z = getCharCoordinates(PLAYER_PED)
    local angle = getHeadingFromVector2d(tox - x, toy - y)
    setCameraPositionUnfixed(0, math.rad(angle - 90))
    stopRun = false
    while not stopRun and getDistanceBetweenCoords2d(x, y, tox, toy) > 0.8 do
        setGameKeyState(1, -255)
        setGameKeyState(16, 1)
        wait(0)
        x, y, z = getCharCoordinates(PLAYER_PED)
        angle = getHeadingFromVector2d(tox - x, toy - y)
        setCameraPositionUnfixed(0, math.rad(angle - 90))
    end
end
в консоли пишет что все рабоает
 

Вложения

  • moonloader.log
    26.8 KB · Просмотры: 3

MrDorlik

Известный
946
378
lua:
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
 
    sampRegisterChatCommand('runtopoint', function()
          runToPoint(-846.95587158203, 1213.2403564453) -- координаты вставляй сюда вместо этих (это чтобы тебе не парится с вводом их в чат)
    end)
 
    while true do
       wait(0)
    end
end

-- про редакцию всего, что ниже этого - забудь --

function runToPoint(tox, toy)
    local x, y, z = getCharCoordinates(PLAYER_PED)
    local angle = getHeadingFromVector2d(tox - x, toy - y)
    setCameraPositionUnfixed(0, math.rad(angle - 90))
    stopRun = false
    while not stopRun and getDistanceBetweenCoords2d(x, y, tox, toy) > 0.8 do
        setGameKeyState(1, -255)
        setGameKeyState(16, 1)
        wait(0)
        x, y, z = getCharCoordinates(PLAYER_PED)
        angle = getHeadingFromVector2d(tox - x, toy - y)
        setCameraPositionUnfixed(0, math.rad(angle - 90))
    end
end
в консоли пишет что все рабоает
блять я сказал не редачить код, ты его отредачил
 

Feykomet

Участник
Автор темы
192
15
блять я сказал не редачить код, ты его отредачил
я его не редачил мне тот чел скинул мол вот код пользуйся я ничего не редачил решил тестануть робит ли и вот не робит
 

Fasz fiatal

Известный
332
67
я его не редачил мне тот чел скинул мол вот код пользуйся я ничего не редачил решил тестануть робит ли и вот не робит
я скинул больше как пример записи координат, ну а "бери и пользуйся" у него код. И да, для ввода как я писал в примере "runToPoint(-846.95587158203, 1213.2403564453)" вместо "lua_thread.create(runToPoint, 2317.154296875, -1658.1245117188)" функция "runToPoint" должна выглядеть примерно так:
Lua:
function runToPoint(tox, toy)
    if tox == nil or toy == nil or not runing then return end
    if perekus then return end
    local angle = getHeadingFromVector2d(tox - MYPOS[1], toy - MYPOS[2])
    local xAngle = -0.1
    local isJump = false
    setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
    local dist = getDistanceBetweenCoords2d(MYPOS[1], MYPOS[2], tox, toy)
    while dist > 1.5 and runing do wait(0)
        dist = getDistanceBetweenCoords2d(MYPOS[1], MYPOS[2], tox, toy)
        setGameKeyState(1, -255)
        setGameKeyState(16, -255)
        if not isCharInAir(PLAYER_PED) and not isJump and not svobodnayaRuka and dist > 15 then
            setGameKeyState(14, 1)
            isJump = true
            lua_thread.create(function() --  поток должен быть тут на wait()
                wait(700)
                isJump = false
            end)
        end
        angle = getHeadingFromVector2d(tox - MYPOS[1], toy - MYPOS[2])
        setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
    end
end
 
Последнее редактирование: