Онлайн игра Адамант Адан: Хроники Средиземья
0 Пользователей и 1 Гость просматривают эту тему.
Страницы: [1] 2

Туор

  • [Бессмертный]
  • Герой
  • *****
  • Сообщений: 267
11 Сен 2014 в 08:42

Totilla mud client

Totilla mud client
-----------------------
Tortilla - это клиент для игры в текстовые многопользовательские онлайновые игры MUD (multi users dangeons, dimension or domains games).
Клиент готов полностью. Требуется тестирование и исправление недоработок. При необходимости будут вноситься исправления и дополнения в сам клиент, но весь базовый объем функциональности уже реализован. Дальнейшее расширение клиента будет происходить только за счет плагинов.
Клиент полностью на русском языке. Системные требования: Windows XP и выше, Linux (через Wine).

Основные возможности клиента (уже работает):

У клиента есть справка, в которой можно прочитать все необходимое.

Работа с протоколом:
- Кодировки клиента win и utf8.
- Протокол сжатия MCCP.
- 256 цветов.
- Поддержка курсива, подчеркивания и мигания. Правда вместо мигания, клиент обводит нужные буквы рамкой.
- Поддержка буквы я.

Работают все основные элементы, такие, как:
- Триггеры (actions)
- Макросы (aliases)
- Горячие клавиши (hotkeys)
- Замены (subs)
- Подсветки (highlights)
- Фильтры (gags)
- Антизамены (antisubs)
- Таймеры (timers)
- Группы (groups)

Большое количество системных команд клиента (в справке).
Поддержка буфера обмена Windows.
Можно копировать содежимое окна клиента и командной строки в буфер обмена.
Возможна вставка из буфера обмена в командную строку клиента.
Есть возможность записывать логи. Логи пишутся в формате HTML.

Командная строка с большим количеством возможностей:
- Два режима работы для командой строки - с автоочисткой и без.
- Очистка командной строки по кнопке Esc.
- История команд (последние введенные команды).
- Автоподстановка команд. Можно подключить к ней историю последних введенных команд.

Работа с окнами клиента, так называемые Output-окна.
Палитра для первых 16 цветов. Можно измененить шрифт.
Поддержка колеса мыши для всех окон.
Поддержка клавиш PgUp, PgDown для главного окна.
История мада (разделение главного окна на две части с историей и текущей информацией).
Система профилей. Позволяет удобно создавать профили под разные мады и управлять ими.

Поддержка плагинов
- Есть также поддержка модулей (библиотек, т.е. общих блоков кода) для плагинов.
- Плагины можно писать на С/С++ и Lua. В принципе доступны и Delphi и другие языки.

Уже написаны следующие плагины:
- prompt (механизм блокирования повторных строк Prompt, при использовании команды #drop).
- jmc3import (импорт игровых конфигов из Jaba Mud Client 3)
- mapper (карта, в разработке пока, доступна сборка из исходников).
- Документация по разработке плагинов.

Сайт разработки тут.
Изменено

petka

  • Герой
  • *****
  • Сообщений: 300
11 Сен 2014 в 13:19

Re: Totilla mud client

Прикольно...
А кто автор?
В планах нет добавить поддержку адановского кастом протокола (карты, группа, лоры и пр.)?

Туор

  • [Бессмертный]
  • Герой
  • *****
  • Сообщений: 267
11 Сен 2014 в 14:10

Re: Totilla mud client

Автор же на гитхабе указан вроде)
Он, планирует доделать маппер и возможно сделать плагин для лора вещей, потом заняться другим проектом.
Все остальные доработки могут делать все желающие, так как код в открытом доступе.

Туор

  • [Бессмертный]
  • Герой
  • *****
  • Сообщений: 267
17 Окт 2014 в 20:28

Re: Totilla mud client

Вышла версия 0.94!

Исправлены ошибки:
- Теперь перевод строк мада в клиенте работает правильно. Где нужно, текст начинается с новой строки. Это работает благодаря поддержке мад-серверами и клиентом IAC GA маркера. Чтобы перевод строки работал правильно, нужно включить в маде режим га (игровая команда 'реж га'). Если мад не поддерживает IAC GA, то нужно задать шаблон prompt-строки (см. справку).
- Ошибка неправильной отрисовки строк мада, если у них статус мигания (рамка) и они выделены для копирования в буфер обмена.
- Неудалялись кнопки плагинов с тулбара, при их выгрузке.

Улучшения:
Была убрана стандартная строка состояния, на нее переехала командная строка (экономия места).
Добавлен в api функционал, который позволяет работать с IAC GA плагинам.
Переделан плагин prompt. Теперь у него нет настроек, так как он работает через новое api клиента (IAC GA).
Переделано окно About на более информативное, с информацией о возможностях клиента (для популяризации клиента).
Теперь, только при первом запуске клиента, на компьютере будет отображаться окно About.

Гилард

  • Гость
  • *
  • Сообщений: 9
04 Янв 2015 в 22:14

Re: Totilla mud client

Всем здрасте.
Знаю что сервер адана шлет данные для работы карты в клиент AMC,
а я допиливаю свой маппер к черепахе.

Интересуюсь людьми, которые могут дать информацию по тому какие данные для
карты шлет сервер. Чтобы можно было подключиться к ним. Спасибо.

lrdx

  • Герой
  • *****
  • Сообщений: 330
04 Янв 2015 в 22:27

Re: Totilla mud client

Всем здрасте.
Знаю что сервер адана шлет данные для работы карты в клиент AMC,
а я допиливаю свой маппер к черепахе.

Интересуюсь людьми, которые могут дать информацию по тому какие данные для
карты шлет сервер. Чтобы можно было подключиться к ним. Спасибо.

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

Гилард

  • Гость
  • *
  • Сообщений: 9
04 Янв 2015 в 23:19

Re: Totilla mud client

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

lrdx

  • Герой
  • *****
  • Сообщений: 330
05 Янв 2015 в 00:31

Re: Totilla mud client

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

1. При коннекте сервер посылает клиенту запрос на использование кастомного протокола. Этот запрос состоит из 3 последовательных байт : 0xFF(IAC), 0xFB(WILL), 0x57.
2. Клиент должен ответить, что он согласен использовать кастомный протокол следующей последовательностью 3 байт: 0xFF(IAC), 0xFD(DoCode), 0x57.
3. После этого клиент начинает посылать дополнительную информацию. Начало которой определяется последовательностью из 3 байт: 0xFF(IAC), 0xFA(SB), 0x57. 4-ый байт, следующий за этими тремя определяет код сообщения. Конец определяется последовательностью 2 байт:  0xFF(IAC), 0xF0(SBE).
4. На данный момент используются следующие коды сообщений: 14 - Map, 12 - Group, 13 - RoomMobs, 10 - Lore.
5. Каждое сообщение имеет формат xml с информацией о карте/группе и т.д. Подробнее о каждом сообщении можно узнать в плагинах к AMC (http://mudclient.codeplex.com/).
Изменено

petka

  • Герой
  • *****
  • Сообщений: 300
06 Янв 2015 в 11:40

Re: Totilla mud client

Вобщем ldrx почти все описал.
Используется стандартный механизм расширения протокола telnet. Такой же используется в MCCP сжатии.
После Negotiate шага (1 и 2) сервер автоматически выбирает кодировку 1251 и двойную букву 'я'. Так же включается сжатие.
И еще шлется ProtocolVersionMessage с текущей версией протокола (целое число).

Теперь по карте.
Сервер шлет только ID (VROOM) текущей комнаты и больше ничего.
На сайте по адресу: http://adan.ru/files/Maps.zip лежит файлик с картами (типа зашифрованными) всех зон. В файле опять же xml, в котором приведены VROOM комнаты, ее название, описание и VROOM'ы соседних комнат и еще координаты где рисовать клетку (ну чтоб Layout на клиенте не делать). Файл перегенерируется (полу)автоматически при выкладывании зон.

При старте клиент проверяет не изменился ли файл (http if-modified-since), если да, то закачивает к себе.
Ну и затем по пришедшему ID текущей комнаты находит нужный файлик и рисует карту...

lrdx

  • Герой
  • *****
  • Сообщений: 330
06 Янв 2015 в 20:55

Re: Totilla mud client

Сжатие включается не автоматически, на него тоже надо согласится (шлется стандартно IAC, WILLCODE, COMPRESSCODE). Т.е. в теории можно отказаться от сжатия.
ProtocolVersionMessage шлется тоже только с использованием кастом протокола (IAC NEGOTIATION PROTOCOLCODE).
Сервер шлет ZONE_ID и ROOM_ID.

Гилард

  • Гость
  • *
  • Сообщений: 9
07 Янв 2015 в 23:02

Re: Totilla mud client

Спасибо за информацию.
Буду пробовать как только дойдут руки (как использовать эту информацию от сервера адана).
Надеюсь в последнем локальном сервере все это работает, как описано (http://forum.adan.ru/index.php?topic=321.0)



Кархарот

  • [Бессмертный]
  • Герой
  • *****
  • Сообщений: 740
09 Янв 2015 в 09:25

Re: Totilla mud client

В последнем публично доступном локальном сервере может и не работать. А в чем проблема коннектиться напрямую к adan.ru?

Гилард

  • Гость
  • *
  • Сообщений: 9
09 Янв 2015 в 21:40

Re: Totilla mud client

В последнем публично доступном локальном сервере может и не работать. А в чем проблема коннектиться напрямую к adan.ru?
Я могу и к публичному подключиться, но тестировать свой код на боевом сервере, помойму не безопасно.
Могу и сервер порушить, не желая этого, в процессе экспериментов.

lrdx

  • Герой
  • *****
  • Сообщений: 330
09 Янв 2015 в 23:59

Re: Totilla mud client

В последнем публично доступном локальном сервере может и не работать. А в чем проблема коннектиться напрямую к adan.ru?
Я могу и к публичному подключиться, но тестировать свой код на боевом сервере, помойму не безопасно.
Могу и сервер порушить, не желая этого, в процессе экспериментов.

Порушить сервер через телнет не дурно, расскажешь потом как ты это сделал!

Туор

  • [Бессмертный]
  • Герой
  • *****
  • Сообщений: 267
21 Мар 2015 в 10:08

Re: Totilla mud client

Вышла версия 0.96
https://github.com/tmud/tortilla/releases/download/0.96/tortilla_0.96.zip

Исправлены ошибки:
- Решена проблема разрыва строк. Требуется режим га на сервере или настроеная prompt-строка мада. Клиент старается и без режима га работать правильно, но возможны иногда сбои (разрывы).
- Ошибка некорректной стыковки плавающего окна в нижней части окна клиента (под строку команд).
- Некорректное поведение клиента при повторных подключениях/отключениях, если идет установка соединения.
- Все другие найденные ошибки и неточности в работе клиента (например: неполное соответствие api функций клиента заявленным возможностям).
- Усовершенствован плагин импорта из Jmc3.

Новые возможности:
- Написаны новые плагины: Автоподключения при разрыве, подсветка команд, графические гистограммы для здоровья, маны, энергии и опыта.
- Добавлена возможность в клиенте создавать окна-панели (помимо плавающих окон). Они создаются определенного размера и они располагаются на одной из сторон клиента. Изменять сторону расположения и размер нельзя. В данную панель (как и в плавающее окно) можно подключить свое окно и делать что хочешь, а можно рисовать и писать тексты встроенными в клиент возможностями в Lua-скрипте. Данные панели могут использоватся для некоторых плагинов, где они будут более подходящим решением.
- Расширение и развитие api клиента для работы плагинов: — добавлены функции runCommand, loadTable, saveTable, createPanel, createPcre, log, terminate. — добавлены объекты/модули: подключена стандартная библиотека math, объект props - свойства мад клиента (цвета, подключение и т.д), viewdata.find - поиск строк по регулярке, pcre - работа с регулярками прямо в скриптах, render - рисование и тексты для визуализации простых плагинов на Lua.
- Новые методы-события для плагинов: connect, disconnect - информация о подлючении/обрыве. Методы before и after переделаны на получение данных в виде таблицы (команда + параметры), чтобы не разбирать команду в плагинах.

Скрин:
Изменено

Страницы: [1] 2