SC22 ASI connd[R1/R3] - краши больше не помеха

kin4stat

mq-team
Автор темы
Всефорумный модератор
2,730
4,710
Обновил.

Пофиксил стрельбу(не проходил урон), а также смерть после перезахода(кидало в воздух)

Также пофиксил Class selection, теперь если крашнет внутри него - будет все ок.

Добавил сохранение состояния двигателя, фар, а также скорости движения и вращения транспорта.
Теперь при крашах внутри летательных ТС вы не будете обречены на смерть
 

Deanytb

Участник
59
12
не работает audiostream после переподключением

connd[R1/R3] - connd v1.05 (audiostream)

та музыка

Solo Made – Arest
это клео скрипт (а аудиострим нету)​

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

deleted-user-452405

Гость
При публикации плагина на другом ресурсе обязательно указывать ссылку для скачивания на эту тему!
(Ютуберов тоже касается!)

Посмотреть вложение 176618

Что делает плагин?

Теперь при краше, вы не будете просто кикнуты, а встанете в афк.

При повторном входе в игру вы окажетесь в том же месте, и будете видеть на экране все то же самое что и до краша.

После краша у вас будет 3 минуты чтобы перезайти(по умолчанию). Если вы не успеете перезайти в этот промежуток времени - вас просто кикнет.

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

Состояние игры сохраняется практически полностью, вплоть до 3D текстов, редактирования объектов, текстдравов и прочего.

Сохраняются даже самые бесполезные вещи, которые уже не используются/используются редко(меню, SetPlayerShopName, аттачобъектов по ID, и т.д.)

Единственное что я помню, и что не сохраняется - анимации локального игрока.

Для игроков кастомных лаунчеров это не работает(точнее работает, но кастомные интерфейсы, или например кино - не восстанавливаются), поскольку основная задумка - самп, а все что прикручено к нему сверху уже не проблемы плагина.

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

Видеодемонстрация:

Также плагин сохраняет состоянии при выходе игры через /q.
Данное поведение настраивается. Подробнее - ниже, в спойлере Настройки

Последний релиз можно найти тут:


Как это работает?

При краше плагин сохраняет состояние сампа и передается соединение на дополнительный процесс, который удерживает состояние чтобы сервер не кикнул вас.

После перезахода в игру соединение автоматически передается сампу и восстанавливается его состояние. А все пакеты что отправлял вам сервер пока вы перезаходили не будут утеряны.

Установка:

Перенести содержимое прикрепленного архива в корень игры.

Запускать exe файл не нужно.
Все произойдет само при краше.

При первом переподключении у вас появится два окна, первое в момент краша, второе в момент входа после краша.

В обоих окнах вам нужно нажать "Разрешить доступ".

Данное разрешение нужно для передачи соединения между процессами, никакие ваши данные в интернет не отправляются. Такова политика Windows, что даже для локальных подключений нужно разрешение пользователя.

Что делать если я захочу перезайти по "нормальному"?

Если вас крашнуло, и вы хотите перезайти без восстановления состояния - достаточно будет удалить файл connd_samp_dump.json в папке connd в корне игры. В этом случае восстановление состояния не будет произведено, но соединение все еще будет удерживаться до истечения таймера в 3 минуты(по умолчанию).

Не меняйте название плагина и имя файла дополнительного процесса

Если вы хотите просто "убить" соединение - достаточно будет закрыть процесс "connd-daemon.exe" в диспетчере задач.

Плагин особо не тестировался, поэтому багов вероятно будет много.

Так как целью плагина стоит идеальное восстановление игры, прошу присылать сюда все косяки, даже самые мелкие, по типу "поворот машины не сохранился"

Настройки хранятся в папке connd, в файле connd-settings.json

На данный момент имеются следующие параметры:
default_timeout - стандартное время жизни процесса, в минутах. По умолчанию равно 3 минутам.
quit_timeout - стандартное время жизни процесса. Используется если прописать /q без параметров
По умолчанию - 0. Если поставить 0, то если написать просто /q, то состояние не будет сохраняться.

Также можно написать /q [minutes], где minutes - время, которое будет жить процесс при переподключении

Все таймауты ограничиваются от 0 до 10 минут.

Если вы файл настроек будет в неверном формате/вы укажете строку вместо числа - файл сбросится до настроек по умолчанию.

UPD: 2:40 08.11.2022: Пофикшена совместимость с SAMPFUNCS. Если вас крашит с RakLua - обновите его до последней версии.
UPD: 5:40 10.11.2022: Добавлен файл настроек, пофикшены кодировки для иностранных пользователей, повороты актеров, а также обработчик /q.
UPD: 1:49 11.11.2022: Пофиксил баг с созданием процесса
UPD: 2:48 11.11.2022: Добавил логгирование, пофиксил баг когда при двух и более переподключениях бралось состояние первого реконнекта
UPD: 3:12 11.11.2022: Пофиксил баг с цветами и командами игроков
UPD: 3:51 12.11.2022: Пофиксил баг с уроном, и смертью после перезахода. Добавил сохранение скорости, состояния двигателя и фар для машин

Спасибо @povargek @BBooGG @k1zn @Heroku @REAL HOT BEBRA за помощь с тестами и еще кучей различной инфы.
А также @SR_team за оперативность в вопросах с лаунчером.

Исходник - https://github.com/kin4stat/connd


Тема только для предложений по улучшению и багрепортов. Остальные сообщения будут удаляться, а их авторам будут выданы баллы предупреждений.
Если вы хотите оценить плагин для этого существует кнопка "Мне нравится" и различные реакции внутри нее.


176465
Почему не работает?
 

Foliks

Новичок
11
2
у меня стоит авто реконект, можно как ни будь добавить возможность восстанавливать состояние после
"Server didn't the connecting" , "server didn't respond" и т.п, просто лично у меня чаще случаются проблемы с инетом чем краши?
 

kyrtion

Известный
643
238
у меня стоит авто реконект, можно как ни будь добавить возможность восстанавливать состояние после
"Server didn't the connecting" , "server didn't respond" и т.п, просто лично у меня чаще случаются проблемы с инетом чем краши?
используешь плагином - вот и он использует rpc на сервере вашего айпи. если интернет упал то вернуть на прежнем состояние не получится.
и да, сделать его сервером для плагина тоже не получится.
 

Foliks

Новичок
11
2
используешь плагином - вот и он использует rpc на сервере вашего айпи. если интернет упал то вернуть на прежнем состояние не получится.
и да, сделать его сервером для плагина тоже не получится.
хорошо, спасибо
 

Viktor Aris

Участник
32
3
Вопрос, если меня крашнуло и я решил зайти на другой сборке, где тоже установлен данный скрипт, то всё ок будет? Сработает?
 

livingflore

Известный
366
319
Вопрос, если меня крашнуло и я решил зайти на другой сборке, где тоже установлен данный скрипт, то всё ок будет? Сработает?
нет, чтобы сработал - нужно будет перекинуть файл connd_samp_dump.json в папке connd из сборки, которая крашнула в сборку, с которой заходишь