Вопрос | Реализация передвижение по координатам в 0.26

diloxxe

Новичок
Автор темы
5
1
Версия MoonLoader
.026-beta
Я решил сделать бота для CRMP на lua, который должен ходить по координатам(Т.к там нет чекпоинтов) и нажимать на кнопку(ЛКМ)(Много раз). Меню(imgui) я научился отрисовывать и добавлять элементы(Button, Text итд), но появилась проблема с передвижением по координатам т.е я знаю координаты куда мне надо идти последовательно, но я не нашёл рабочего способа(Функции).

1. X=1972.092 Y=1356.525 Z=-18.109 - Получение материала.\n 2. X=1972.856 Y=1352.716 Z=-18.109 - Переработка.\n 3. X=1978.885 Y=1356.347 Z=-18.109 - Промежуточная точка.\n 4. X=1983.533 Y=1354.435 Z=-18.109 - Точка сдачи.

Такой код видел, но не знаю как вызвать функцию:
function go_to_point(point, is_sprint)
    local dist
    repeat
        set_camera_direction(point)
        wait(0)
        setGameKeyState(1, -255)
        local mx, my, mz = getCharCoordinates(playerPed)
        if is_sprint then setGameKeyState(16, 255) end
        dist = getDistanceBetweenCoords2d(point.x, point.y, mx, my)
    until dist < 0.6
end

function set_camera_direction(point)
    local c_pos_x, c_pos_y, c_pos_z = getActiveCameraCoordinates()
    local vect = {x = point.x - c_pos_x, y = point.y - c_pos_y}
    local ax = math.atan2(vect.y, -vect.x)
    setCameraPositionUnfixed(0.0, -ax)
end

Пробовал, но он отводит камеру и перестаёт рисовать меню:
function runToPoint(tox, toy)
    local x, y, z = getCharCoordinates(PLAYER_PED)
    local angle = getHeadingFromVector2d(tox - x, toy - y)
    local xAngle = math.random(-50, 50)/100
    setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
    stopRun = false
    while getDistanceBetweenCoords2d(x, y, tox, toy) > 0.8 do
        setGameKeyState(1, -255)
        --setGameKeyState(16, 1)
        wait(1)
        x, y, z = getCharCoordinates(PLAYER_PED)
        angle = getHeadingFromVector2d(tox - x, toy - y)
        setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
        if stopRun then
            stopRun = false
            break
        end
    end
end

Подскажите как реализовать передвижение по заданным координатам (Подробно если можно).
Спасибо!
 

Вложения

  • 17.01.42.843.jpg
    17.01.42.843.jpg
    368.1 KB · Просмотры: 17

why ega

РП игрок
Модератор
2,539
2,233
Я решил сделать бота для CRMP на lua, который должен ходить по координатам(Т.к там нет чекпоинтов) и нажимать на кнопку(ЛКМ)(Много раз). Меню(imgui) я научился отрисовывать и добавлять элементы(Button, Text итд), но появилась проблема с передвижением по координатам т.е я знаю координаты куда мне надо идти последовательно, но я не нашёл рабочего способа(Функции).

1. X=1972.092 Y=1356.525 Z=-18.109 - Получение материала.\n 2. X=1972.856 Y=1352.716 Z=-18.109 - Переработка.\n 3. X=1978.885 Y=1356.347 Z=-18.109 - Промежуточная точка.\n 4. X=1983.533 Y=1354.435 Z=-18.109 - Точка сдачи.

Такой код видел, но не знаю как вызвать функцию:
function go_to_point(point, is_sprint)
    local dist
    repeat
        set_camera_direction(point)
        wait(0)
        setGameKeyState(1, -255)
        local mx, my, mz = getCharCoordinates(playerPed)
        if is_sprint then setGameKeyState(16, 255) end
        dist = getDistanceBetweenCoords2d(point.x, point.y, mx, my)
    until dist < 0.6
end

function set_camera_direction(point)
    local c_pos_x, c_pos_y, c_pos_z = getActiveCameraCoordinates()
    local vect = {x = point.x - c_pos_x, y = point.y - c_pos_y}
    local ax = math.atan2(vect.y, -vect.x)
    setCameraPositionUnfixed(0.0, -ax)
end

Пробовал, но он отводит камеру и перестаёт рисовать меню:
function runToPoint(tox, toy)
    local x, y, z = getCharCoordinates(PLAYER_PED)
    local angle = getHeadingFromVector2d(tox - x, toy - y)
    local xAngle = math.random(-50, 50)/100
    setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
    stopRun = false
    while getDistanceBetweenCoords2d(x, y, tox, toy) > 0.8 do
        setGameKeyState(1, -255)
        --setGameKeyState(16, 1)
        wait(1)
        x, y, z = getCharCoordinates(PLAYER_PED)
        angle = getHeadingFromVector2d(tox - x, toy - y)
        setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
        if stopRun then
            stopRun = false
            break
        end
    end
end

Подскажите как реализовать передвижение по заданным координатам (Подробно если можно).
Спасибо!
 

diloxxe

Новичок
Автор темы
5
1