Инструкция для билдеров

Коллега Дариан написал инструкцию для билдеров по командам онлайнового редактора OLC (on-line creating), встроенного в мад Былины:

https://www.bylins.su/builder/olc/

Такие же редакторы есть и в мадах Зеркало и Виртустан, основанных на коде Былин. Более того, похожие команды редактирования есть практически по всех мадах, построенных на базе кода Circle или его потомков, например в tbaMUD. Естественно, с некоторыми различиями, например в англоязычных мадах нет падежей.

Маленькое наблюдение про русификацию

Я уже писал, что русификацию английских кодовых баз делаю простейшим способом: в кодовых базах, основанных на Circle/DIKU/ROM/MERC в одном месте модфицируется код проверки вводимого символа так, чтобы все 8-битные символы проходили нормально. Один из последних примеров вот. Но при этом во входной поток могут попасть управляющие символы протокола telnet (или их куски). Когда это бывает? Например после ввода пароля. Во многих кодовых базах для безопасного ввода пароля управляющими символами отключается эхо, а потом оно включается. А во время регистрации после пароля мад спрашивает sex и на любой первый ответ выдает сообщение об ошибке, приходится второй раз говорить m. (Я всегда говорю m).

Так вот, оказалось последние версии клиента tintin++ эту проблему с выскакивающими мусорными символами решают. В версии 2.02.12 все ок, а например в prooltin, основанном на tintin 2.01.7 выскакивает ошибка. Команда telnet тоже дает ошибку (что естественно, он тупой по определению, он так сделан). Чуть позже протестирую другие клиенты.

UPDATE. Проблему можно решить как на стороне сервера, так и на стороне клиента. В новой версии tintin++ проблема решена на стороне клиента – “не реагируем на мусорные символы”. Но я внес коррективы в функцию isprool и теперь не выдаю эти мусорные символы и старая версия tintin++ и некоторые другие виндовые клиенты, которые раньше глючили, теперь не глючат. В общем, проблема решена.

BBS, BBS, BBS

В реддитовской группе (сабреддите), посвященной MUDам сегодня наткнулся на рекламный пост про BBS. Оказывается, этим еще кто-то занимается, но самое главное, BBS и MUD похожи по интерфейсу и могут быть построены на одном и том же софте, например на PennMUSH или CircleMUD. А есть и универсальные BBS, доступные по протоколам telnet, ssh, http и даже по диалапу.

Вот каталог всего этого

https://www.ipingthereforeiam.com/bbs/

Как я ехал в метро

Сегодня утром по дороге на работу вместо того, чтобы залипать в твиттер, залипал в терминал termux на Андроиде и игрался со сборкой мад-серверов под Андроид.

Как я уже ранее писал, tbamud собирается с пол-пинка. ROM собирается. Виртустан муд собирается, но выпадает в корку на каком-то вызове lexical cast. А в Былинах-0 (это очень-очень-очень старая версия Былин, по сути слегка русифицированный Circle) внезапно нашелся ассемблерный код на ассемблере x86 (а телефон построен на процессоре ARM). Перепишу эти вставки на C и посмотрю, что будет дальше.

Кстати, когда телефон подключается к Wi-Fi, запущенный там мад-сервер может быть виден из Интернета, а вот при использовании 3G/4G – нет

Update. Код Былин-0 оказался психологически несовместим с используемым в Андроиде “богомерзким кленгом”. А tbamud и rom – рулез!

И снова о русификации английских кодовых баз, основанных на Circle

Я только о том, чтобы мад воспринимал символы из второй половины таблицы ASCII. И строго говоря это не русификация и даже не кириллизация, а интернационализация и UTFизация

Возьмем, к примеру TBAMUD

Файл comm.c, в функции perform_socket_read

ищем строку с проверкой isascii(*ptr)&&isprint(*ptr)

и меняем ее на ((unsigned char)*ptr)>=32U

Почему так коряво, да потому что по умолчанию *ptr – это signed *char

Я там и единицу ставил (то есть всегда true), тоже работало, но лучше от символов, меньших пробела, защититься 😉

Возможно есть и другие места, где придется слегка модифицировать код, чтобы нормально проходили старшие символы (>127). И не надо забывать, что char signed!

UPDATE. 01-Apr-2017. То же касается и русификации ROM и вообще всех детей Diku

UPDATE. 03-Dec-2017. И не надо забывать, от командах протокола telnet, которые могут появиться, например в начале строки и испортить картину. Например, испортится ввод пароля или ввод команд. Вот пример таких последовательностей FF FD 01 и FF FE 01

Былины номер ноль

Периодически я занимаюсь сборками разных движков, в первую очередь под Windows, так как основные мадолюбители сидят именно под виндами и если и хотят запустить мад-сервер на домашнем компе (чисто для себя или и для друзей), то с линуксом дело иметь боятся. Я иду по пути наименьшего сопротивления и собираю обычно в среде cygwin, это требует минимальной правки. Как говорили в советские времена – “дешево и сердито”. Так, я собрал под винду свой Виртустан мад, Зеркало, MERC, ROM и какой-то старый частично русифицированный Circle. Как говорится, дело было вечером, делать было нечего.

Среди этих сборок есть и то, что я назвал проектом Былины-0. Это выложенная на официальном сайте Былин одна из самых первых версий Былин, по сути русифицированный CircleMUD. В 2010 году я сделал виндовую сборку его и забыл. А через четыре года я опять вернулся к этому проекту и увидел, что он перестал собираться. Компьютер со старым Windows XP и старым cygwin давно разобран, а в новых версиях этот код не собирается. Похоже, это связано с переходом с gcc 3 на gcc 4-й версии. В общем я затеялся опять собирать ЭТО, попутно нашел в коде кучу мелких багов и вообще недописанных кусков (как оно вообще у меня собралось тогда?). И собрал, пока в 6-м Дебиане, дома поковыряюсь с cygwin. Файлы будут выкладываться все в том же каталоге

UPDATE. 18 dec 2019. С этого времени я поменял структуру каталогов своих файлопомоек минимум два раза. Ищите все здесь – http://files.mud.kharkov.org

UPDATE 2-May-2022. Былины-0 на github: https://github.com/prool/byliny-0