Подскажите как ездить задом, bot driver

BoltHack

Новичок
Автор темы
12
2
Версия MoonLoader
.026-beta
Смотрел исходники Cover'a
Там ездит вперед, почему он там не использовал SetGameKey для езды вперед? А как то через память
Или одно и тоже?

Как записать маршрут чтобы и задом ездил?
 

AnWu

Guardian of Order
Всефорумный модератор
4,694
5,213
Мне бы понять как определить
Координаты сзади меня или спереди
float X, float Y, float Z = getOffsetFromCarInWorldCoords(Vehicle car, float offsetX, float offsetY, float offsetZ)
Lua:
local veh = store...
local x, y, z = getOffsetFromCarInWorldCoords(veh, -2.5, 0, 0) -- Получаем координату за автомобилем смещая его по X.
-- X - направление прямо или за точкой, Y - слева и справа, Z - смещение по высоте
 
  • Нравится
Реакции: BoltHack

BoltHack

Новичок
Автор темы
12
2
float X, float Y, float Z = getOffsetFromCarInWorldCoords(Vehicle car, float offsetX, float offsetY, float offsetZ)
Lua:
local veh = store...
local x, y, z = getOffsetFromCarInWorldCoords(veh, -2.5, 0, 0) -- Получаем координату за автомобилем смещая его по X.
-- X - направление прямо или за точкой, Y - слева и справа, Z - смещение по высоте
Есть точка куда боту надо ехать
Представим что их много, но они идут по порядку - эти точки
Я получаю координаты за мной и предо мной
И сверяю где дистанция между полученными координатами и точкой меньше. Спереди или сзади
Сделал так, работает
Все теперь скрипт ковера умеет ездить задом

Вот такая шняга вышла
Поправьте если не правильно
Код:
        for k,v in pairs(coords) do
            if isCharInAnyCar(PLAYER_PED) then
                local car = storeCarCharIsInNoSave(PLAYER_PED)
                local carPosX, carPosY, carPosZ = getCarCoordinates(car)
                local posX, posY, sprintOrSpeed = v.x, v.y, v.speed
                repeat
                    wait(0)
                    draw_line(posX, posY)
                    turning_mechanism(tonumber(posX), tonumber(posY), carPosX, carPosY, car)
                    if getCarSpeed(car) < sprintOrSpeed + 4.0 then
                        local x1, y1, z1 = getOffsetFromCarInWorldCoords(car, 0, 5.0, 0) -- Перед
                        local x2, y2, z2 = getOffsetFromCarInWorldCoords(car, 0, -5.0, 0) -- Зад
                        if math.floor(getDistanceBetweenCoords3d(x1, y1, z1, posX, posY, carPosZ)) < math.floor(getDistanceBetweenCoords3d(x2, y2, z2, posX, posY, carPosZ)) then
                            writeMemory(0xB73458 + 0x20, 1, 255, false) -- Вперед
                        else
                            writeMemory(0xB73458 + 0x21, 1, 255, false) -- Назад
                        end
                    else
                        writeMemory(0xB73458 + 0xC, 1, 255, false) -- Стоп
                    end
                until locateCharOnFoot2d(PLAYER_PED, tonumber(posX), tonumber(posY), 5.0, 5.0, false) or locateCharInCar2d(PLAYER_PED, tonumber(posX), tonumber(posY), 5.0, 5.0, false)
            else
                break
            end
        end
Пока не так идеально
 
Последнее редактирование:
  • Нравится
Реакции: AnWu