Новый WebSocket муд-клиент на базе mudjs: mudjs-vue

(репост новости из мира)

Один из наших игроков, Terran, проделал огромную работу, переписав вебклиент с использованием библиотек VueJS и Quasar.
Вот список вещей, которые или уже доделаны или еще в разработке:
* выдвигающаяся панель слева с полезными ссылками
* выдвигающаяся панель справа с несколькими вкладками
* поддержка навигации мышкой (виртуальный кейпад)
* панели, где можно задать триггера, горячие клавиши и алиасы
* поддержка нескольких профайлов с настройками
* загрузка/выгрузка всех настроек
* фильтрация сообщений каналов в отдельные вкладки на правой панели



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

Клиент в действии: https://dreamland.rocks/mudjs-vue
Исходники: github.com/ruffinakoza/mudjs-vue

Любой желающий может принять участие в разработке.

Оригинальный клиент mudjs: исходники, клиент в работе

Mudjs: эксперимент с кнопками навигации

В качестве эксперимента присобачили панель с кнопками перемещения, а также командами 'смотреть', 'оглядеться', 'где'.
На скриншоте (под катом) кнопка команды 'где' нажата, поэтому подсвечена серым. Панель навигации видна только для маленьких экранов (как только исчезает правая панель, появляется эта).

Upd: длинное нажатие на кнопки направления теперь пытается отпереть и открыть двери по этому направлению.


Читать дальше →

Продолжение работы над контекстным меню для предметов в клиенте mudjs

За последнее время меню было расширено новыми командами, также перестали выводиться команды, не имеющие особого смысла в данном контексте.
Например, если нету специфического поведения, не покажется пункт «использовать», а если предмет не звучит или не имеет запаха, не будет команд «слушать» и «нюхать» соответственно.
Команды, доступные только в этой комнате, отделяются от основного меню чертой. Пример — команды доступные рядом с продавцом или ремонтником.



Меню также выводится для предметов в магазине, позволяя купить или узнать свойства.



Дальше в планах:
* доработать недостающие команды для предметов и отловить глюки
* добавить похожее меню для персонажей и мобов
* сделать гиперссылки для справки, списков умений и экстра-описаний
* продумать какие пункты меню могли бы присутствовать в комнатах

Upd: клиент в действии, исходники клиента

Контекстное меню для предметов в клиенте mudjs

Очередной «концептуальный прорыв» в вебклиенте. У всех предметов по нажатию на них появляется выпадающее меню, в котором перечисленым команды, которые можно проделать с этим предметом. По нажатию на пункт меню команда попытается выполниться (попытается — т.к. с тех пор предмет мог уже изменить свое местоположение или исчезнуть).

Меню зависит от типа и положения предмета, например:
* для предмета внутри контейнера виден будет только пункт «взять»
* для большиства предметов на полу или в инвентаре: «бросить» или «взять», «смотреть», «использовать»
* для мебели на полу будет видно «сесть, лечь, отдыхать» в зависимости от типа мебели
* для фонтана меню будет содержать «пить, наполнить», для бочонков — «пить, вылить»
* для вещей в инвентаре также видет пункт «легенды», если это умение доступно
* ворам виден пункт меню «украсть» на предмет в чужом инвентаре
* и так далее

С технической точки зрения это реализовано путем добавления специальных псевдо-тегов разметки вокруг каждого предмета. Если вывод происходит не в вебсокет, а в обычное соединение, эти теги не посылаются. Вебклиент обрабатывает эти теги и превращает их в стандартное dropdown-menu из Bootstrap.

Пример для предмета в инвентаре:
<m c=«бросить $, надеть $, смотреть $, использовать $, легенды $» id=«1773732900»>хитрость лаеркаи</m>
Для компактности символ $ будет заменен на стороне клиента на id предмета.
ID используется в качестве аргумента для однозначности, т.к. иначе для предметов с одинаковым названием пришлось бы вычислять это 3.бочонок или 2.бочонок, при том что с тех пор позиция в инвентаре могла поменяться, и команда в итоге выполнится с не тем предметом.

Аналогично теперь идет работа и с цветами, т.е. вебклиент больше не парсит ANSI-последовательности, а работает с псевдотегами <c c='fgbg'>ярко-зеленое сообщение</c>, превращая их в <span class='fgbg'>.

Пачка скриншотов под катом:



Читать дальше →

Воздействия на персонаже в клиенте mudjs

Новая панель, где в сокращенном виде выводятся большинство воздействий (аффектов) на персонаже. Положительные зеленым, отрицательные красным, те которым жить осталось меньше тика — желтым.



Upd: все элементы панели теперь кликабельны, появляется окошко с описанием содержимого этого элемента. Для групп эффектов выдается расшифровка всех возможных сокращений.

Upd: клиент в действии, исходники клиента

Правая панель состояния в клиенте mudjs

Следующий виток интеграции вебклиента с миром: в протокол общения добавлена информация о текущем положении персонажа (если оно и так видно по команде 'где'), о времени и погоде (если она видна). Все это выводится в правой панели клиента. Пока что это всё не настраиваемо, т.е. у игрока нет выбора, какую информацию показывать, какую отключить. С добавлением новых панелей эту задачу придется решить так или иначе.



Upd: клиент в действии, исходники клиента

Отображение информации о группе в веб-клиенте mudjs

Новая фишка в клиенте: отображение состояния твоей группы, как более сжатая версия того, что выводит команда group.
Вверху показываются все персонажи, дальше — домашние животные и призванные существа. В планах еще добавить флаги, обозначающие самые важные отрицательные или положительные воздействия на согрупнике, такие как слепота или защита святилища.
Табличка группы обновляется мгновенно, так же как и строка подсказки (prompt), т.к. вся информация каждый раз высылается от сервера к клиенту.


Upd: клиент в действии, исходники клиента

Маппер для веб-клиента mudjs

(репост с forum.mudconnector.su)

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

* По нажатию на кнопку «карта» в соседней вкладке откроется обычная ASCII-карта текущей зоны, если она есть среди карт на сайте

* Если эта карта обладает специальной разметкой, текущее положение персонажа будет подсвечено красным. Если сместиться из комнаты в комнату, текущее положение мгновенно обновится.



* Помочь разметить карты может кто угодно, и сейчас уже есть несколько таких размеченных арий. Для этого нужно, находясь в мире в веб-клиенте, открыть вкладку с редактором карт, подойти в нужную комнату, выделить ее на карте мышкой и нажать Enter. В появившемся окошке появится номер текущей комнаты.



Upd: клиент в действии, исходники клиента

Стройплощадка DreamLand

(репост с forum.mudconnector.su)

Выложен первый, черновой вариант документации по внутримировому редактору зон (OLC) и скриптовому языку.

Со всем этим можно экспериментировать на отдельно поднятом сервере — стройплощадке (dreamland.rocks 7000 или dreamland.rocks/mudjs/build.html)
Там смертным доступны некоторые дополнительные команды, такие как load/vnum/holylight, для удобства редактирования зон.

DreamLand месяц спустя

Репост с forum.mudconnector.su:

Сегодня ровно месяц как мир снова поднялся после пятилетнего перерыва.
Думаю, есть смысл подвести итоги. Всё нижеперечисленное — заслуга не только
иммов, но и игроков, результат их упорного труда, за что всем огромное спасибо.

* Код:
** Исходный код портирован под новый компилятор, вычищены свежие и старые крашбаги
** Добавлена поддержка веб-сокетов
** В скриптовом языке появились замыкания

* Веб-клиент:
** Прикручены новые фишки (тригера-хоткеи-алиасы), поиск по истории команд, кнопки интерфейса
** Интегрирован с миром по собственному xml-протоколу, есть первые примеры обмена данными между сервером и клиентом
** Код клиента выложен в общий доступ на github

* Сайт:
** создан с нуля и продвинут в гугле
** созданы поисковики по разными видам предметов
** добавлен раздел со всеми путями и многими картами; карты продолжают добавляться
** опубликована 1я часть учебника для начинающих
** регулярно обновляется раздел новостей
** муд зарегистрирован в соц.сетях и на мудконнекторах
** восстановлены старые домены
** код сайта выложен в общий доступ на github

* Мир:
** добавлены новые разделы помощи и улучшены существующие
** много улучшений для новичков (при создании персонажа, в начальной зоне, по командам, хелпам, магазинам)
** идет активная работа по переводу оставшихся зон на русский (2 закончено, 3 почти готовы, еще 7 в работе)
** продолжается русификация сообщений, надписей, справки
** обращение с предметами стало более удобным
** вычищаются все свеженайденные баги и опечатки
** приняты меры по защите персональных данных

* Набрана новая активная команда иммов