Бот не идёт к нужным координатам

Статус
В этой теме нельзя размещать новые ответы.

Bananious

Известный
Автор темы
238
17
Я конечно всё понимаю, но я либо тупой и слепой, либо ещё что-то. Я когда пишу просто в чат слово "отдохнул" бот идёт к нужным координатам, пишу слово "устал" бот на секунду дёргается и отключается. Я вроде сделал всё как нужно, уже час сижу не могу вдуплить где здесь ошибка.
Lua:
require "lib.moonloader"
local sampev = require 'lib.samp.events'

local str_gym_grusha = {
    {766.979980, -2.110000, 1000.739990},
    {769.090027, -2.580000, 1000.750000},
    {770.890015, 13.550000, 1000.719971},
    {768.530029, 13.550000, 1000.719971}
}

local str_gym_home = {
    {765.450012, 7.240000, 1000.739990},
    {765.719971, 3.510000, 1000.739990},
    {764.119995, 5.590000, 1000.739990}
}



function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end

    local saveX = {}
    local saveY = {}
    local saveZ = {}
    while true do
        wait(0)
        if isPlayerPlaying(playerHandle) and enabled then
            gym_grusha_rand = math.random(1, #str_gym_grusha)
            BeginToPoint(str_gym_grusha[gym_grusha_rand][1], str_gym_grusha[gym_grusha_rand][2], str_gym_grusha[gym_grusha_rand][3], 1.0, -255, false)
            wait(1000)
            enabled = false
        end
        if isPlayerPlaying(playerHandle) and disabled then
            gym_home_rand = math.random(1, #str_gym_home)
            BeginToPoint(str_gym_home[gym_home_rand][1], str_gym_home[gym_home_rand][2], str_gym_home[gym_home_rand][3], 1.0, -255, false)
            wait(1000)
            disabled = false
        end
    end
end

function sampev.onServerMessage(color, text)
    if string.find(text, "устал", 1, true) then
        disabled = true
    end
    if string.find(text, "отдохнул", 1, true) then
        enabled = true
    end
end

--------------------------- STANDART FUNCTIONS ---------------------------

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 and disabled or dist < radius
end
function MovePlayer(move_code, isSprint)
    setGameKeyState(1, move_code)
    --[[255 - обычный бег назад
       -255 - обычный бег вперед
      65535 - идти шагом вперед
     -65535 - идти шагом назад]]
    if isSprint then setGameKeyState(16, 255) end
end

function SetAngle(x, y, z)
    local posX, posY, posZ = GetCoordinates()
    local pX = x - posX
    local pY = y - posY
    local zAngle = getHeadingFromVector2d(pX, pY)

    if isCharInAnyCar(playerPed) then
        local car = storeCarCharIsInNoSave(playerPed)
        setCarHeading(car, zAngle)
    else
        setCharHeading(playerPed, zAngle)
    end

    restoreCameraJumpcut()
end

function GetCoordinates()
    if isCharInAnyCar(playerPed) then
        local car = storeCarCharIsInNoSave(playerPed)
        return getCarCoordinates(car)
    else
        return getCharCoordinates(playerPed)
    end
end

-- Teleport from ClickWarp (by FYP)
function teleportPlayer(x, y, z)
    if isCharInAnyCar(playerPed) then
        setCharCoordinates(playerPed, x, y, z)
    end
    setCharCoordinatesDontResetAnim(playerPed, x, y, z)
end

function setCharCoordinatesDontResetAnim(char, x, y, z)
    if doesCharExist(char) then
        local ptr = getCharPointer(char)
        setEntityCoordinates(ptr, x, y, z)
    end
end

function setEntityCoordinates(entityPtr, x, y, z)
    if entityPtr ~= 0 then
        local matrixPtr = readMemory(entityPtr + 0x14, 4, false)
        if matrixPtr ~= 0 then
            local posPtr = matrixPtr + 0x30
            writeMemory(posPtr + 0, 4, representFloatAsInt(x), false) --X
            writeMemory(posPtr + 4, 4, representFloatAsInt(y), false) --Y
            writeMemory(posPtr + 8, 4, representFloatAsInt(z), false) --Z
        end
    end
end
-- End Teleport code

--------------------------- ADDITIONAL FUNCTIONS ---------------------------
 
Решение
В том и прикол что её нету, этой ошибки. Бот хочет пойти по координатам, как только он начинает идти бот сразу выключается, хотя он не должен я вроде всё правильно сделал.
Ты уверен что у тебя с "отдохнул" работает? У тебя переменные локальные, main их не видит. Добавь после local sampev... local disabled = false
local enabled = false
Да и зачем ты бег вынес в main, если можно в onServerMessage его запустить?

Bananious

Известный
Автор темы
238
17
Скинь ошибку из файла moonloader.log
В том и прикол что её нету, этой ошибки. Бот хочет пойти по координатам, как только он начинает идти бот сразу выключается, хотя он не должен я вроде всё правильно сделал.
 

winten

Потрачен
409
184
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В том и прикол что её нету, этой ошибки. Бот хочет пойти по координатам, как только он начинает идти бот сразу выключается, хотя он не должен я вроде всё правильно сделал.
Ты уверен что у тебя с "отдохнул" работает? У тебя переменные локальные, main их не видит. Добавь после local sampev... local disabled = false
local enabled = false
Да и зачем ты бег вынес в main, если можно в onServerMessage его запустить?
 

Bananious

Известный
Автор темы
238
17
Ты уверен что у тебя с "отдохнул" работает? У тебя переменные локальные, main их не видит. Добавь после local sampev... local disabled = false
local enabled = false
Да и зачем ты бег вынес в main, если можно в onServerMessage его запустить?
Да всё заработало, добавил переменные и всё. Спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.