Lua Arizona Train bot

idollegendary

Известный
Автор темы
11
12
- затестил на 2 серверах 9 и 30, у меня поинты не пропускает, за все время что я юзал бот, может кругов за 100 два раза не попал в поинт, могу предположить что изза какого-то фриза или лага, а так, либо дайте акаунт чтобы я мог затестить и посмотреть что не так с вашими серверами, либо я хз, у меня нету акков на каждом сервере, чтобы чекнуть фикс, но щас сделаю инфу где менять корды
 
  • Нравится
Реакции: S_Hack

S_Hack

Известный
118
103
- затестил на 2 серверах 9 и 30, у меня поинты не пропускает, за все время что я юзал бот, может кругов за 100 два раза не попал в поинт, могу предположить что изза какого-то фриза или лага, а так, либо дайте акаунт чтобы я мог затестить и посмотреть что не так с вашими серверами, либо я хз, у меня нету акков на каждом сервере, чтобы чекнуть фикс, но щас сделаю инфу где менять корды
У меня за 29 метров до чекпоинта останавливается и берет его но на втором круге уже не взял конечный чекпоинт... Вот примерно как у меня он останавливается на скринах!
 

Вложения

  • Без назви-1.jpg
    Без назви-1.jpg
    425.7 KB · Просмотры: 96
  • Без назви-2.jpg
    Без назви-2.jpg
    439.1 KB · Просмотры: 86
  • Без назви-3.jpg
    Без назви-3.jpg
    512.7 KB · Просмотры: 64
  • Без назви-4.jpg
    Без назви-4.jpg
    489.8 KB · Просмотры: 60
  • Без назви-5.jpg
    Без назви-5.jpg
    251.3 KB · Просмотры: 89
Последнее редактирование:
  • Нравится
Реакции: idollegendary

idollegendary

Известный
Автор темы
11
12
неа
ждем ответа автора
UPD
861.07373046875 -1409.6866455078 -0.16182518005371 корды ласт остановки хз ток куда вставлять
код использует функцию поиска чек поинта, координат нету, если есть на карте чекпоинт, бот его определяет и тормозит, выше обновил тему, там настройки кода, скорость поезда, стар, стоп и тд.

У меня за 29 метров до чекпоинта останавливается и берет его но на втором круге уже не взял конечный чекпоинт... Вот примерно как у меня он останавливается на скринах!
ок, сейчас потестим еще
 

bizinfo

Участник
57
6
С настройками автора работает чётко, но палевно из-за слишком быстрого торможения. Понизил скорость торможения и бот стал баговатся и пропускать чекпоинты.
Вывод - Бот для самоубийц которым плевать на аккаунт, и которые получат бан. Для легитных плееров не подойдет
 

Xaкep Рабинович

Участник
91
19
С настройками автора работает чётко, но палевно из-за слишком быстрого торможения. Понизил скорость торможения и бот стал баговатся и пропускать чекпоинты.
Вывод - Бот для самоубийц которым плевать на аккаунт, и которые получат бан. Для легитных плееров не подойдет
Ты не разобрался с настройками. Я последние два дня работал с этим скриптом, дорабатывал его, и изначально сделал настройки.

Смотри какое дело, там есть функция decelerationTrain, чем она выше тем быстрее и сильнее тормозит поезд. А есть функция decelerationDistance.
И вот представим ситуацию, поезд едет и знает что по таким то координатам ему надо будет тормозить, функция торможения стоит допустим в 300 единицах от метки. Когда поезд находится в этих самых 300 единицах, он начинает тормозить с указанной силой. Если ты сделаешь высокую силу торможения, он остановится раньше времени и забагается. Если ты поставишь низкую дистанцию торможения не изменив силу торможения, поезд не успеет остановиться и проедет станцию и забагается.

Решение очень простое, надо просто подобрать правильный баланс. Вот напишу как надо поставить, приблизительно, не помню как в скрипте но ты поймёшь. У меня это:
maxSpeed - 42
deceleration - 0.05
acceleration - 0.01
decelerationDistance - 250 (или 270, забыл чутка)
stopTrain - 0.0 (иначе он тормозит криво).

Вот с такими настройками он будет ехать почти как человек, но его выдаёт то что клавиши не нажимаются. Таких скриптов которые это делают в интернете нет, я лично переписывал этот скрипт и делал ему функцию нажатия клавиш через setVirtualKeyDown, я то сделал легитный бот который даже админ в реконе который шарит едва ли отличит, но то что сделал автор, ещё и без должных настроек, правда может спалить. Но если скрипт настроить то вряд-ли спалит.

P.S. Не помню наверняка как называлась та функция с дистанцией торможения, может быть stopDistance, если что учти это.

Немного не получается сделать плавное торможение, реалистичное, но старт плавный получилось сделать, в итоге стартует плавно, а тормозить начинает где-то за 50 поинтов и на красном уже резко останавливается, бывает мимо остановок проезжает, возможно всё зависит от поставленных координат, не понимаю, могу предположить из-за сворачивания тоже может мимо проезжать. Но в общем бот топчик, главное посматривать за ботом
Чтобы это исправить нужно stopDistance поставить на 0.0, чтобы каких-то резких остановок не было. А чтобы торможение было как у людей, или около того, его надо ставить на 0.05 единиц, а дистанцию торможения на 250 или около того.
 
Последнее редактирование:
  • Нравится
Реакции: Dima123dima

Dima123dima

Известный
35
6
Ты не разобрался с настройками. Я последние два дня работал с этим скриптом, дорабатывал его, и изначально сделал настройки.

Смотри какое дело, там есть функция decelerationTrain, чем она выше тем быстрее и сильнее тормозит поезд. А есть функция decelerationDistance.
И вот представим ситуацию, поезд едет и знает что по таким то координатам ему надо будет тормозить, функция торможения стоит допустим в 300 единицах от метки. Когда поезд находится в этих самых 300 единицах, он начинает тормозить с указанной силой. Если ты сделаешь высокую силу торможения, он остановится раньше времени и забагается. Если ты поставишь низкую дистанцию торможения не изменив силу торможения, поезд не успеет остановиться и проедет станцию и забагается.

Решение очень простое, надо просто подобрать правильный баланс. Вот напишу как надо поставить, приблизительно, не помню как в скрипте но ты поймёшь. У меня это:
maxSpeed - 42
deceleration - 0.05
acceleration - 0.01
decelerationDistance - 250 (или 270, забыл чутка)
stopTrain - 0.0 (иначе он тормозит криво).

Вот с такими настройками он будет ехать почти как человек, но его выдаёт то что клавиши не нажимаются. Таких скриптов которые это делают в интернете нет, я лично переписывал этот скрипт и делал ему функцию нажатия клавиш через setVirtualKeyDown, я то сделал легитный бот который даже админ в реконе который шарит едва ли отличит, но то что сделал автор, ещё и без должных настроек, правда может спалить. Но если скрипт настроить то вряд-ли спалит.

P.S. Не помню наверняка как называлась та функция с дистанцией торможения, может быть stopDistance, если что учти это.


Чтобы это исправить нужно stopDistance поставить на 0.0, чтобы каких-то резких остановок не было. А чтобы торможение было как у людей, или около того, его надо ставить на 0.05 единиц, а дистанцию торможения на 250 или около того.
А ты харош, чисто гайд для новичков :)
 

БеzликиЙ

Автор темы
Проверенный
1,202
755
вообще говоря, в этом скрипте скорость разгона и торможения зависит от фпс - поэтому у многих не доезжало до конечного чекпоинта, а лично у меня заезжало слишком далеко за чекпоинт в СФ. переписал скрипт, активацию изменил под себя (/pezda), функции разгона/торможения теперь нажимают на кнопки для создания видимости легита и учитывают текущий фпс, поэтому будут тормозить под любой чекпоинт
 

Вложения

  • poezd_01_gg.lua
    7.5 KB · Просмотры: 68
  • Нравится
Реакции: Adrian4ik21

zombak1231456

Новичок
7
0
вообще говоря, в этом скрипте скорость разгона и торможения зависит от фпс - поэтому у многих не доезжало до конечного чекпоинта, а лично у меня заезжало слишком далеко за чекпоинт в СФ. переписал скрипт, активацию изменил под себя (/pezda), функции разгона/торможения теперь нажимают на кнопки для создания видимости легита и учитывают текущий фпс, поэтому будут тормозить под любой чекпоинт
тупо на горках останавливается и очень медленно поднимается
 

gsgfdsgsfd

Новичок
14
4
вообще говоря, в этом скрипте скорость разгона и торможения зависит от фпс - поэтому у многих не доезжало до конечного чекпоинта, а лично у меня заезжало слишком далеко за чекпоинт в СФ. переписал скрипт, активацию изменил под себя (/pezda), функции разгона/торможения теперь нажимают на кнопки для создания видимости легита и учитывают текущий фпс, поэтому будут тормозить под любой чекпоинт
Тоже самое, останавливается, и медленно едет к чекпоинту
 

ShadeFurry

Новичок
2
0
Бот прикольный, но он не доезжает несколько метров до финального чека, из за чего не может закончить маршрут
,братан встав ето заместь старого скрипта и все буде вери гут
-- Конфігурація
local config = {
maxSpeed = 42.0, -- Максимальна швидкість поїзда
acceleration = 10.0, -- Швидкість прискорення поїзда
deceleration = 10.0, -- Швидкість гальмування поїзда
decelerationDistance = 1.0, -- Відстань до початку гальмування
stopDistance = 0.1, -- Відстань, на якій поїзд повністю зупиняється
}

-- Статусні змінні
local state = {
isActive = false, -- Чи активний бот
autoEat = false, -- Чи увімкнено автохарчування
isBarVisible = true, -- Чи показувати інформацію в барі
currentSpeed = 0.0, -- Поточна швидкість
distToCheckpoint = 0, -- Відстань до наступної точки
}

-- Ключові змінні для позицій та кроків
local onfoot_step = 'nil'

-- Шрифти та відображення
local font = renderCreateFont('UBUNTU', 12, 4)

-- Реєстрація команд
function registerCommands()
sampRegisterChatCommand('TRAINBOT', function(arg)
if #arg == 0 then
state.isActive = not state.isActive
printStringNow('~p~TRAINBOT: ' .. (state.isActive and '~G~ON' or '~r~OFF'), 2000)
elseif arg == 'bar' then
state.isBarVisible = not state.isBarVisible
printStringNow('~p~TRAINBOT: BAR: ' .. (state.isBarVisible and '~G~ON' or '~r~OFF'))
elseif arg == 'autoeat' then
state.autoEat = not state.autoEat
printStringNow('~p~TRAINBOT: AUTO-EAT: ' .. (state.autoEat and '~G~ON' or '~r~OFF'))
end
end)
end

-- Основна функція бота
function main()
repeat wait(0) until isSampAvailable()
registerCommands()

while true do
wait(0)
if state.isActive then
if isCharInAnyCar(PLAYER_PED) then
handleTrainMovement()
else
if state.autoEat then
handleAutoEat()
end
handleOnFootMovement()
end
end
end
end

-- Обробка руху поїзда
function handleTrainMovement()
local res, mX, mY, mZ = SearchMarker()
local x, y, z = getCharCoordinates(PLAYER_PED)
state.distToCheckpoint = getDistanceBetweenCoords3d(x, y, z, mX, mY, mZ)

if state.distToCheckpoint > config.decelerationDistance then
accelerateTrain()
elseif state.distToCheckpoint <= config.decelerationDistance and state.distToCheckpoint > config.stopDistance then
decelerateTrain()
elseif state.distToCheckpoint <= config.stopDistance then
stopTrain()
end
end

-- Обробка автоматичного харчування
function handleAutoEat()
onfoot_step = 'RUNFIX'
runToPoint(-2097.1640625, 515.29943847656, 1487.6927490234) -- fix
onfoot_step = 'RUNHAVKA'
runToPoint(-2097.2338867188, 512.36212158203, 1487.6927490234) -- їжа
onfoot_step = 'EAT'

if onfoot_step == 'EAT' then
wait(300)
setGameKeyState(21, 255)
wait(0)
setGameKeyState(21, 0)
wait(200)
local havkadialogid = sampGetCurrentDialogId()
sampSendDialogResponse(havkadialogid, 1, 3, "")
wait(2000)
end
end

-- Обробка руху на пішки
function handleOnFootMovement()
onfoot_step = 'RUNREYS'
runToPoint(-2102.4118652344, 512.90368652344, 1487.6927490234) -- рейс
onfoot_step = 'TAKEREYS'

if onfoot_step == 'TAKEREYS' then
while not isCharInAnyCar(PLAYER_PED) and state.isActive do
setGameKeyState(21, 255)
wait(0)
setGameKeyState(21, 0)
wait(100)
local reysdialogid = sampGetCurrentDialogId()
sampSendDialogResponse(reysdialogid, 1, 0, "")
wait(500)
end
end
end

-- Плавне прискорення поїзда
function accelerateTrain()
if state.currentSpeed < config.maxSpeed then
state.currentSpeed = state.currentSpeed + config.acceleration
if state.currentSpeed > config.maxSpeed then state.currentSpeed = config.maxSpeed end
end
setTrainSpeed(storeCarCharIsInNoSave(PLAYER_PED), state.currentSpeed)
end

-- Плавне гальмування поїзда
function decelerateTrain()
if state.currentSpeed > 0 then
state.currentSpeed = state.currentSpeed - config.deceleration
if state.currentSpeed < 0 then state.currentSpeed = 0 end
end
setTrainSpeed(storeCarCharIsInNoSave(PLAYER_PED), state.currentSpeed)
end

-- Повна зупинка поїзда
function stopTrain()
state.currentSpeed = 0
setTrainSpeed(storeCarCharIsInNoSave(PLAYER_PED), state.currentSpeed)
end

-- Відображення статусу
lua_thread.create(function()
while true do
wait(0)
if state.isActive and isCharInAnyCar(PLAYER_PED) then
local res, mX, mY, mZ = SearchMarker()
local x, y, z = getCharCoordinates(PLAYER_PED)
state.distToCheckpoint = math.floor(getDistanceBetweenCoords3d(x, y, z, mX, mY, mZ))
end
if state.isBarVisible then
local botState = state.isActive and 'ON' or 'OFF'
local autoEatState = state.autoEat and 'ON' or 'OFF'
renderFontDrawText(font, '| {6495ed}TRAINBOT:\n{ffffff}| {6495ed}STATE = ' .. botState .. '\n{FFFFFF}|{6495ed} DIST TO NEXT POINT = ' .. state.distToCheckpoint .. '\n{FFFFFF}|{6495ed} AUTO-EAT = ' .. autoEatState, 500, 500, -1)
end
end
end)

-- Рух до точки
function runToPoint(tox, toy, q)
if state.isActive then
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))

while getDistanceBetweenCoords2d(x, y, tox, toy) > 0.8 and state.isActive do
setGameKeyState(1, -255)
wait(1)
x, y, z = getCharCoordinates(PLAYER_PED)
angle = getHeadingFromVector2d(tox - x, toy - y)
setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
end
end
end

-- Пошук маркерів
function SearchMarker()
local ret_posX, ret_posY, ret_posZ = 0.0, 0.0, 0.0
for id = 0, 31, 1 do
local MarkerStruct = 0xC7F168 + id * 56
local MarkerPosX = representIntAsFloat(readMemory(MarkerStruct + 0, 4, false))
local MarkerPosY = representIntAsFloat(readMemory(MarkerStruct + 4, 4, false))
local MarkerPosZ = representIntAsFloat(readMemory(MarkerStruct + 8, 4, false))
if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
ret_posX = MarkerPosX
ret_posY = MarkerPosY
ret_posZ = MarkerPosZ
return true, ret_posX, ret_posY, ret_posZ
end
end
return false
end
 
  • Эм
Реакции: S_Hack