Mudlet: Сервер IRE не выполняет согласование для MXP

Созданный на 22 янв. 2019  ·  26Комментарии  ·  Источник: Mudlet/Mudlet

Краткое описание проблемы / Описание запрошенной функции:

@ vadi2 сообщил мне, что коды

Действия по воспроизведению проблемы / Причины добавления функции:

  1. Будьте в последней ветке разработки
  2. соединять
  3. ??
  4. почему mxp не включен ?!

Вывод ошибок / ожидаемый результат функции

Я создал сценарий, чтобы проверить, согласован ли MXP сервером IRE. К сожалению, этого не произошло. Сервер согласовал только GMCP.

Дополнительная информация, такая как версия Mudlet, операционная система и идеи по решению / реализации:

  1. последняя разработка с версии 3.16.1.
  2. Я разговаривал с Tecton из IRE, чтобы узнать, почему сервер не ведет переговоры об этом? Оказалось, что его не было в двигателе восторга. Он сказал, что он автоматически включается для пользователя мудлета, поэтому переговоры не нужны. но код переговоров может быть в следующем обновлении восторга (может быть?).

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

bug high regression

Все 26 Комментарий

Это могло бы объяснить исходный код - но они могут быть не единственными, и мы не можем сломать что-то по умолчанию и добавить обходные пути для каждой игры.

Правда; однако тогда проблема вернется к Evennia и другим играм MUD, которые тоже договариваются об этом, @ vadi2 : смеется: так что вы, возможно, играете с горячей картошкой. : man_shrugging:

По словам Эвеннии, на них работает мушклиент! Возможно, это не было выбором.

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

Что ж, нет, мы должны найти решение, которое подойдет как для Evennia, так и для IRE. Чтобы Evennia не ускользнуло от <> до согласования MXP, и чтобы IRE каким-то образом заставил MXP работать без согласования с ними.

Это трудная вещь, которую мы должны сделать. Пользователям все равно, работает ли он на том или другом, они хотят, чтобы Mudlet просто работал: man_shrugging:

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

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

Это все еще обходной путь для пользователей IRE. Как MUSHclient это делает - и действительно ли он работает как для Evennia / ChatMUD, так и для IRE из коробки?

image

Я должен отметить, что по умолчанию в MUSS-клиенте это было «по команде».

А, ладно, это IRE выломано из коробки.

Я думаю о том, чтобы попытаться реализовать что-то подобное в Mushclient в виде:

1) 'да / нет / по команде'
2) также должна быть полезная всплывающая подсказка, объясняющая, какой вариант подходит для какого сервера. например, для «да»:
"Рекомендуется выбирать этот вариант, если вы играете в игры IRE (achaea, aetolia, starmourn и т. Д.).

3) реализовать это в опции XML (не отказываться от опции force_mxp_negotiation) вместо этого использовать ее для импорта опции в новую переменную. это преобразование старого профиля в новый профиль в обновлении.
4) каждый профиль по умолчанию будет иметь параметр XML, который может быть любым из этих параметров включен / отключен / команда адаптирована для каждой соответствующей игры.

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

Как насчет того, чтобы мы автоматически определяли MXP и включали его?

Итак, мы хотим обнаруживать mxp в форме [#z, а также обнаруживать согласование?

Ага. По сути, добавьте обходной путь для IRE (пока они не исправят его).

Я удивлен, что они не обсуждают это, учитывая, насколько обширна их реализация MXP - вы уверены, что это так?

Mushclient или IRE?

IRE

из того, что я собрал, его можно включить с помощью их конфигурации. хотя они еще не реализовали согласование для mxp. поскольку я напрямую общался с Tecton по этому поводу, он сказал, что это может быть реализовано в следующем обновлении движка Rapture. (в котором я не знаю, когда будет следующее обновление).

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

у нас было это автоматическое обнаружение перед тем или иным кодом, прежде чем я их изменил?

Нет, помните, мы предполагали, что MXP был включен без согласования с сервером - вот почему IRE работал.

тогда
1) по умолчанию мы оставляем mxp включенным (с mMxp равным false при инициализации), очевидно, что IRE может включить его с помощью (esc) [4z
2) если и должен согласовываться какой-либо грязный сервер, то mMXP будет переключен на true. (AKA code 0 открытая строка)

хорошо?

Я так думаю - вы говорите, что MXP можно включить либо путем надлежащего согласования, либо путем сканирования нами волшебной строки. В противном случае он выключен, и < , > появятся нормально. Звучит неплохо.

магическое автоопределение. : p Я завтра сделаю волшебный патч PR.

Помните, что существуют MUD, которые даже не знают / не заботятся о MXP, поэтому искажают свой вывод, если они случайно используют < > скажем, для какой-то формы выделения одного значения в списке так что с точки зрения HTML / XML кажется, что тег просто не включен. Что ой! Или, по крайней мере, он НЕ ДОЛЖЕН быть включен по умолчанию ...! :не вижу зла:

Вы должны иметь возможность активировать магию автоматического обнаружения, поместив что-то в TBuffer::translateToPlainText(std::string& data, const bool isFromServer) после строки:

                case static_cast<quint8>('z'):

который будет перехватывать ВСЕ последовательности управляющего кода MXP, но воздействовать на них только при правильных условиях. Возможно, вам следует заблокировать запуск с помощью isFromServer чтобы только данные сервера (и соответствующие повторы) щекотали ваш код - это предотвратит ложные срабатывания от feedTriggers( ... ) вызывает скрипты пользователя / упаковщика ...: smile_imp:

@SlySven, спасибо. Я буду смотреть в него.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги