Неактуально Не считает расстояние getDistanceBetweenCoords3d

Fasmin

Участник
Автор темы
175
6
Версия MoonLoader
.026-beta
код:
function main()
    while true do wait(0)
        BeginToPoint(x, y, z) -- здесь координаты записаны
    end
end

function BeginToPoint(posX, posY, posZ)
    local x, y, z = getCharCoordinates(PLAYER_PED)
    local distance = getDistanceBetweenCoords3d(posX, posY, posZ, x, y, z)
    while isBot and distance > 1.0 do wait(50)
        local x, y, z = getCharCoordinates(PLAYER_PED)
        local zAngle = getHeadingFromVector2d(posX - x, posY - y)
        setCharHeading(PLAYER_PED, zAngle)
        restoreCameraJumpcut()
        --setGameKeyState(1, -255)
        sampAddChatMessage(distance .. " больше > 0.8", -1)
    end
end

Не могу понять почему функция getDistanceBetweenCoords3d не обновляет расстояние от моей позиции до той, что указывается в BeginToPoint(x, y, z)
То есть через адд масадже проверяю дистанцию, а она просто стоит на месте и при беге никак не меняется
 

Lance_Sterling

Известный
986
350
Я не уверен что она читается 1 раз, т.к находится в основном блоке в цикле
Ну а я тебе говорю, как правильно. Ты вызываешь функцию 1 раз, и она ждет пока завершится цикл в другой функции, чтобы начать новую итерацию бесконечного цикла. Вставь получение дистанции в цикле функции и будет тебе счастье
 
  • Нравится
Реакции: Fasmin

Fasmin

Участник
Автор темы
175
6
Ну а я тебе говорю, как правильно. Ты вызываешь функцию 1 раз, и она ждет пока завершится цикл в другой функции, чтобы начать новую итерацию бесконечного цикла. Вставь получение дистанции в цикле функции и будет тебе счастье
А еще вопрос, как остановить этот цикл когда расстояние будет меньше 1.0?

код:
function BeginToPoint(posX, posY, posZ)
    repeat
        wait(0)
        local x, y, z = getCharCoordinates(PLAYER_PED)
        local zAngle = getHeadingFromVector2d(posX - x, posY - y)
        setCharHeading(PLAYER_PED, zAngle)
        restoreCameraJumpcut()
        local distance = getDistanceBetweenCoords3d(posX, posY, posZ, x, y, z)
        sampAddChatMessage(distance, -1)
    until isBot or distance > 1.0
end

Не могу понять почему он не останавливается когда расстояние меньше 1 и почему то на проверку isBot цикл не обращает внимания (isBot = not isBot в регистре)
 

Lance_Sterling

Известный
986
350
А еще вопрос, как остановить этот цикл когда расстояние будет меньше 1.0?

код:
function BeginToPoint(posX, posY, posZ)
    repeat
        wait(0)
        local x, y, z = getCharCoordinates(PLAYER_PED)
        local zAngle = getHeadingFromVector2d(posX - x, posY - y)
        setCharHeading(PLAYER_PED, zAngle)
        restoreCameraJumpcut()
        local distance = getDistanceBetweenCoords3d(posX, posY, posZ, x, y, z)
        sampAddChatMessage(distance, -1)
    until isBot or distance > 1.0
end

Не могу понять почему он не останавливается когда расстояние меньше 1 и почему то на проверку isBot цикл не обращает внимания (isBot = not isBot в регистре)
Сделай локалькую переменную distance в начале функции и каждую итерацию цикла присваивай ей новое значение

Так же ты бежишь бесконечно по условию пока isBot активно, верни старый цикл while