Вопрос по боту

Annanel

Участник
Автор темы
86
8
Версия MoonLoader
Другое
Для перемещения использую данный код
Lua:
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
Вопрос заключается в следующем:
1) Как сделать чтобы бот определял где созрел Лен или Хлопок и бежал именно туда, и сделать бег более плавным а не дерганым.
2) Как сделать авто нажатие Alt и если урожая остается 1-2 шт уходил на следующую грядку.
Можете просто подсказать функции для реализации, или пример кодов.
 
Последнее редактирование:
  • Эм
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,386
1,141
1) юзаешь getAllObject объект, по его хэнду получаешь координаты и бежишь
2) хукаешь текст который появляется чтобы ты жал alt, либо проверяешь дистанцию между тобой и объектом, если она меньше ~ 2 метров то флудит alt

 
Последнее редактирование:

Annanel

Участник
Автор темы
86
8
1) юзаешь getAllObject объект, по его хэнду получаешь координаты и бежишь
2) хукаешь текст который появляется чтобы ты жал alt, либо проверяешь дистанцию между тобой и объектом, если она меньше ~ 2 метров то флудит alt

То есть мне через getAllObject нужно получить ID объекта и после уже заставлять его бежать к координате? То есть в бесконечном цикле пишу
Lua:
runToPoint(координаты) else
    getAllObject = ID
Или я не так понял?
 
  • Эм
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,386
1,141
То есть мне через getAllObject нужно получить ID объекта и после уже заставлять его бежать к координате? То есть в бесконечном цикле пишу
Lua:
runToPoint(координаты) else
    getAllObject = ID
Или я не так понял?
Может с начало луа более подробно изучишь?
Не то без фантазии тебе код не написать

То есть мне через getAllObject нужно получить ID объекта и после уже заставлять его бежать к координате? То есть в бесконечном цикле пишу
Lua:
runToPoint(координаты) else
    getAllObject = ID
Или я не так понял?
И ты бы прогуглил что такое getallobj
 

Annanel

Участник
Автор темы
86
8
Может с начало луа более подробно изучишь?
Не то без фантазии тебе код не написать


И ты бы прогуглил что такое getallobj
getAllObject я понимаю что с помощью этой функции можно получить индентификаторы объекта, координаты и I’d модели
 

qdIbp

Автор темы
Проверенный
1,386
1,141
Ну на такой шаблон
Lua:
--выше
local coord = {}
local dist = 9999
-- цикл
for i,k in pairs(getAllObjects()) do
    if doesObjectExist(k) then
        if getObjectModel(k) == *id модели кустов* then
            coord = {getObjectCoordinates(k)}
            if coord[1] then
                x,y,z = getCharCoordinates(playerPed)
                if getDistanceBetweenCoords3d(ox,oy,oz, x,y,z) < dist then 
                    dist = getDistanceBetweenCoords3d(ox,oy,oz, x,y,z)
                    --code
                end
            end
        end
    end
end
runToPoint(coord[2],coord[3])
dist = 9999
 
  • Нравится
Реакции: Annanel

Annanel

Участник
Автор темы
86
8
Ну на такой шаблон
Lua:
--выше
local coord = {}
local dist = 9999
-- цикл
for i,k in pairs(getAllObjects()) do
    if doesObjectExist(k) then
        if getObjectModel(k) == *id модели кустов* then
            coord = {getObjectCoordinates(k)}
            if coord[1] then
                x,y,z = getCharCoordinates(playerPed)
                if getDistanceBetweenCoords3d(ox,oy,oz, x,y,z) < dist then
                    dist = getDistanceBetweenCoords3d(ox,oy,oz, x,y,z)
                    --code
                end
            end
        end
    end
end
runToPoint(coord[2],coord[3])
dist = 9999
И где нужно выполнить действие с кустом я пишу грубо говорят вот такое.
Lua:
                local distance = getDistanceBetweenCoords3d(ox,oy,oz, x,y,z)
                -- Проверяем, что расстояние меньше 2 метров
                if distance < 2 then
                    -- Обновляем значение переменной расстояния
                    dist = distance
                    -- Код для выполнения действий с ближайшим кустом
                    -- Нажимаем клавишу "Alt"
                    setVirtualKeyDown(18, true)
                end
 
Последнее редактирование:
  • Злость
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,386
1,141
та ёбнуться что за лентяи пошли, УЧИ ЛУА
Lua:
--выше
local coord = {}
local dist = 9999
local handleObj = -1
-- цикл
for i,k in pairs(getAllObjects()) do
    if doesObjectExist(k) then
        if getObjectModel(k) == *id модели кустов* then
            coord = {getObjectCoordinates(k)}
            if coord[1] then
                x,y,z = getCharCoordinates(playerPed)
                if getDistanceBetweenCoords3d(ox,oy,oz, x,y,z) < dist then
                    dist = getDistanceBetweenCoords3d(ox,oy,oz, x,y,z)
                    handleObj = k
                end
            end
        end
    end
end
runToPoint(coord[2],coord[3])
dist = 9999
while doesObjectExist(handleObj) do
    setVirtualKeyDown(18, true)
    wait(100)
    setVirtualKeyDown(18, false)
end
 
  • Нравится
Реакции: Annanel

Annanel

Участник
Автор темы
86
8
та ёбнуться что за лентяи пошли, УЧИ ЛУА
Lua:
--выше
local coord = {}
local dist = 9999
local handleObj = -1
-- цикл
for i,k in pairs(getAllObjects()) do
    if doesObjectExist(k) then
        if getObjectModel(k) == *id модели кустов* then
            coord = {getObjectCoordinates(k)}
            if coord[1] then
                x,y,z = getCharCoordinates(playerPed)
                if getDistanceBetweenCoords3d(ox,oy,oz, x,y,z) < dist then
                    dist = getDistanceBetweenCoords3d(ox,oy,oz, x,y,z)
                    handleObj = k
                end
            end
        end
    end
end
runToPoint(coord[2],coord[3])
dist = 9999
while doesObjectExist(handleObj) do
    setVirtualKeyDown(18, true)
    wait(100)
    setVirtualKeyDown(18, false)
end
Теперь понял спасибо за разъяснения! Lua это одно, использовать библиотеку это другое, это как с Pawn все его выучили но как пользовать не знали)
 
  • Эм
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,386
1,141
Теперь понял спасибо за разъяснения! Lua это одно, использовать библиотеку это другое, это как с Pawn все его выучили но как пользовать не знали)
ты на практики учись...
 

qdIbp

Автор темы
Проверенный
1,386
1,141
Просто мне не понятны порой функции по этому и пишу на форум, ибо на wiki описание у функции 2 слова и сиди ебись думай что и зачем.
Так есть поиск
1677335188518.png
 

Annanel

Участник
Автор темы
86
8
Последнее редактирование:

qdIbp

Автор темы
Проверенный
1,386
1,141

Annanel

Участник
Автор темы
86
8
Id модели имеется в виду, а ид у них динамичный
Там проблема в том что модели у не выросшего что у выросшего куста одинаковая, а I’d куста меняется у каждой грядки. И то это почему-то 16305 это грядка, I’d куста не отображается, получается I’d объекта 856 I’d меняется динамически то как тогда быть?

Id модели имеется в виду, а ид у них динамичный
I’d куста получается 865, даже у той модели что не выросла, он получается и к не выросшему кусту побежит
 
Последнее редактирование:
  • Эм
Реакции: qdIbp