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

kin4stat

mq-team · kin4@naebalovo.team
Автор темы
Всефорумный модератор
2,744
4,812
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R3
  3. CR-MP 0.3.7
При публикации плагина на другом ресурсе обязательно указывать ссылку для скачивания на эту тему!
(Ютуберов тоже касается!)

1667826304250.png
Специально для участников секты свидетелей "Аризона украла плагин с бластхака":

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Установка:

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

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

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

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

Данное разрешение нужно для передачи соединения между процессами, никакие ваши данные в интернет не отправляются. Такова политика 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
 

Вложения

  • connd.zip
    749.3 KB · Просмотры: 211
Последнее редактирование:

Zelda

Активный
238
49
А за это банят? Мб типо очень сильно дает преимущества. Могут ли запретить админы аризоны?
 

purpleee

Активный
179
81
Предложение:

При коннекте на сервер (при заходе на сервер) открывать диалоговое окно и ставить игрока перед выбором: обычный спавн или же на место краша. Что бы не лезть в файлы игры. Естественно проверяя на какой сервер игрок заходит и с каким ником
 
Последнее редактирование:

kyrtion

Известный
921
329
А за это банят? Мб типо очень сильно дает преимущества. Могут ли запретить админы аризоны?
По точку зрения это не может считать как читерство, а модификация типа того. "Крашнулся? Вот и вернись на место!"
 
726
594
По точку зрения это не может считать как читерство, а модификация типа того. "Крашнулся? Вот и вернись на место!"
Ну так это чит по сути он дает преимущество
 

kin4stat

mq-team · kin4@naebalovo.team
Автор темы
Всефорумный модератор
2,744
4,812

livingflore

Известный
370
321
плагин срабатывает на любое завершение процесса, или только конкретно на вылет? если допустим у меня окно тупо зависнет и я его самостоятельно убью
 

kin4stat

mq-team · kin4@naebalovo.team
Автор темы
Всефорумный модератор
2,744
4,812
плагин срабатывает на любое завершение процесса, или только конкретно на вылет? если допустим у меня окно тупо зависнет и я его самостоятельно убью
тока на краш, позже придумаю что-нибудь
 
  • Нравится
Реакции: Hristot и livingflore

kyrtion

Известный
921
329
Арз седона. запретили юзать(
1667826927937.png

* разрешали, пролистайте снизу дальше
** про одобрения удалилось сообщения, считая как оффтоп, поэтому сами спросите у зга/га)
 
Последнее редактирование: