Lua [RakSamp/RakBot] OnFoot/InCar Route Recording System [Remake]

corner xyz

Участник
Автор темы
61
18
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R2
  3. 0.3.7-R3
  4. 0.3.7-R4
  5. 0.3.7-R5
  6. 0.3DL
  7. 0.3e (R1) / CR-MP
  8. CR-MP 0.3.7
  9. Любая
OnFoot/InCar Route Recording System v1.3
source author: @Shamanije


Многоуважаемый @Shamanije зародил и воплотил отличную идею.

Я, заинтересовавшись этим, горел желанием доработать скрипт, но навыков как таковых не имел.
Видел какие поправки хотел внести @Shamanije, и начал обучаться скриптингу на Lua,
Наращивая свои мозги уроками с ютуба (@chapo) и туториалами с интернета я так же наращивал и лепил в хороший код
свои корявые строчки.

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

Записал видео:

Итог:
1.Запись каждого пакета сразу в файл.
2.Совместимость со всеми версиями SAMP.
3.Скрипту стало легче работать, нет зависаний, за прогресс записи бояться не стоит.
1.Приходится создавать файл в ручную.
2.Код имеет отвратительный вид, и возможно лишние строчки.
3.Код вероятно можно оптимизировать.
4.При первой записи в файл записывается пару пустых пакетов, изза чего вашего бота может кикнуть в начале проигрывания,
для этого можете записать пару секунд в в /recd default
1.Пакеты записываются сразу в файл, а не в память.
2.Не должно быть границ количества пакетов.
3.После вылета игры все что успело сохраниться останется.
4.Нет фриза после окончания записи.
/create "название" - создать файл для записи
/recd "название" - записать в файл
!play "название" - проиграть записанный маршрут
!loop - зациклить маршрут
!stop - остановить произведения маршрута
1.Route Recorder переместить в Moonloader вашей сборки.
2.Переместить Route Player в папку scripts РакСампа/РакБота.
3.Создать папку "routes" в коревой папке РакСампа/РакБота (в том месте где лежит exe).
4.Зайти в игру, выполнить пункт 4 из "Минусов".
5.Использовать команду /create "название файла"(без "").
6.Использовать /recd "название файла который создали в 5 пункте"(без "").
7.Что бы закончить запись продублируйте команду 6 пункта.
8.Переместите файл из ("ваша сборка"\moonloader\rakbotRoutes\"название вашего файла".rt) в папку routes (3 пункт)
9.Проиграйте маршрут РакСампа/РакБота при помощи !play "название файла"(без "" и без .rt).
1.Синхронизация движений персонажа.
2.Синхронизация движений автомобиля/мотоцикла.
Что хотелось бы внести:
1.Продолжение записи в уже записанный файл(проблема в том, что нумерация пакетов начинается заново).
2.Синхра гана, пуль, трейлера.

Исходники/идеи всех файлов принадлежат: @Shamanije

Есть версия под RakSamp

CHANGELOG:
v1.3 - Релиз (14.04.2024).
v1.31 - Визуальные поправки как в коде так и в работе (15.04.2024).

**Убедительная просьба указывать разработчиков скрипта после внедрения в вашего бота**
RouteRecorder - SAMP moonloader | RoutePlayer - RakSamp/RakBot
 

Вложения

  • Route Player (RakSamp).lua
    5.9 KB · Просмотры: 41
  • Route Player(RakBot).lua
    6.6 KB · Просмотры: 12
  • Route Recorder v1.31.lua
    8.2 KB · Просмотры: 50
Последнее редактирование:

Ulong

Диванный критик
Проверенный
58
315
Я не хочу разбирать весь достаточно нелогичный код в рекордере, но это пиздец))
У тебя в цикле каждые 60 ms идёт чтение, закрытие, запись и снова закрытие файла.....
Почему конкретно каждые 60 ms запись пакетов? В скриптах плейера пакеты воспроизводятся каждые 50 ms
Про логику получения пакетов я лучше промолчу. Но главное указать себя в авторах рекордера

zootopia-judy-hopps.gif



Что вообще можно добавить?
Запись bikeLean в vehicle синхре, т.е. наклон мото/вело. Чтобы не было как на видео, будто на мото мобайл игрок
Сохранение маршрутов в бинарном виде
Пауза/продолжение записи
Нормальная логика очереди получения пакетов и воспроизведения их

Если мне не будет лень, то когда-нибудь опубликую нормальный рекордер под клиент и модуль для воспроизведения под раксамп лайт
 

corner xyz

Участник
Автор темы
61
18
Я не хочу разбирать весь достаточно нелогичный код в рекордере, но это пиздец))
У тебя в цикле каждые 60 ms идёт чтение, закрытие, запись и снова закрытие файла.....
Почему конкретно каждые 60 ms запись пакетов? В скриптах плейера пакеты воспроизводятся каждые 50 ms
Про логику получения пакетов я лучше промолчу. Но главное указать себя в авторах рекордера

zootopia-judy-hopps.gif



Что вообще можно добавить?
Запись bikeLean в vehicle синхре, т.е. наклон мото/вело. Чтобы не было как на видео, будто на мото мобайл игрок
Сохранение маршрутов в бинарном виде
Пауза/продолжение записи
Нормальная логика очереди получения пакетов и воспроизведения их

Если мне не будет лень, то когда-нибудь опубликую нормальный рекордер под клиент и модуль для воспроизведения под раксамп лайт
Я добился работы на своей сборке, это все что мне было необходимо. Не выкладывал бы, если бы не заметил похожие случаи и других. Да и к тому же я и сам свою доработку называю говном, но даже так в работе она лучше оригинала.
По поводу задержек, на 50мс у меня бот бежал медленнее чем положено, подобрал то значение, с которым все нормально.
Пытался перевести скрипт воспроизведения на samp.events, там вообще все плохо у меня.

Будет не плохо если запилишь качественный вариант👍

Я не хочу разбирать весь достаточно нелогичный код в рекордере, но это пиздец))
У тебя в цикле каждые 60 ms идёт чтение, закрытие, запись и снова закрытие файла.....
Почему конкретно каждые 60 ms запись пакетов? В скриптах плейера пакеты воспроизводятся каждые 50 ms
Про логику получения пакетов я лучше промолчу. Но главное указать себя в авторах рекордера

zootopia-judy-hopps.gif



Что вообще можно добавить?
Запись bikeLean в vehicle синхре, т.е. наклон мото/вело. Чтобы не было как на видео, будто на мото мобайл игрок
Сохранение маршрутов в бинарном виде
Пауза/продолжение записи
Нормальная логика очереди получения пакетов и воспроизведения их

Если мне не будет лень, то когда-нибудь опубликую нормальный рекордер под клиент и модуль для воспроизведения под раксамп лайт
Я бы сделал синхру всего, что можно, bikeLean первым делом добавил бы, но просто не понял че делать с route player
 
Последнее редактирование:
  • Bug
Реакции: Dmitry Code

nend

Участник
140
10
анимки бега на раксамп нет, добавь комманду для воспроизведения маршрута через код скрипта
 

corner xyz

Участник
Автор темы
61
18
анимки бега на раксамп нет, добавь комманду для воспроизведения маршрута через код скрипта
Незнаю что с анимациями, у меня он повторяет каждую анимку которую на записи ты ему включал, бег тем более.
По поводу воспроизведения через сторонний скрипт не гарантирую что сделаю.
 

Notepad++

Новичок
23
7
Почему во время записи лютые лаги при том что у маршрута всего 200 пакетов
 

corner xyz

Участник
Автор темы
61
18
Открой файл записанный через блокнот, посмотри корректно ли он записывается
У тебя крмп?
пример:
[19]
packetId=207
lr=128
ud=0
keys=8
x=2046.0789794922
y=1346.5541992188
z=10.671875
qw=1.4012984643248e-43
qx=-0
qy=0
qz=-0.38606572151184
qw=1.4012984643248e-43
sa=0
sx=-0.10083647072315
sy=0.10581531375647
sz=0
anim=1266
flags=32770
mode=4
cx=-0.29271334409714
cy=-0.92385923862457
cz=-0.24658305943012
px=2046.5949707031
py=1347.1458740234
pz=11.793399810791
az=0
zoom=54
wstate=0
unk=0
 

corner xyz

Участник
Автор темы
61
18
я тестировал на 0.3.7-r3, 0.3.7-r1 у меня все отлично, samp.lua последний, мунлоадер тоже
UPD: сейчас аризону скачаю, там смотреть буду

Я думаю для этих целей удобнее будет скачать лайтовую сборку 200+мб, и все будет работать.
Возможно арз лаунчер что-то творит.
Если конечно через самп тебе доступен нужный функционал.
 
Последнее редактирование:

Notepad++

Новичок
23
7
Всё заработало, просто при скачивание браузер решил повредить файл
Спасибо за помощь!
 
  • Нравится
Реакции: corner xyz