В маде Арда моего статистического бота по имени Пруль посадили в тюрьму. Из тюрьмы команда КТО не работает (показывает только меня)
UPDATE (через пару часов) А нет, из тюрьмы “кто” работает, я только что увидел список из 4 игроков, так что всё ок
Languages: Ukrainian, Russian, English
В маде Арда моего статистического бота по имени Пруль посадили в тюрьму. Из тюрьмы команда КТО не работает (показывает только меня)
UPDATE (через пару часов) А нет, из тюрьмы “кто” работает, я только что увидел список из 4 игроков, так что всё ок
В России хотят ввести обязательную идентификацию игроков в онлайновых играх по номеру телефона. Это чтобы террористы и оппозиционеры не общались в игровых чатах.
По этому поводу я оставил на российском мад-форуме такой комент:
Ничто не мешает размещать игровые сервера за пределами страны. И ходить туда по VPN или даже не по VPN, а просто так.
Траффик мадов сниффится на раз, потому что он не шифрован. Я когда-то думал об этом, возможность добавить в мад-сервер и мад-клиенты ssl есть (примерно по тому же методу, что и mccp). Но я посчитал это сложным для себя и начал (и забросил) мад, работающий по ssh (я его назвал bbs-mud, исходники есть на моем Гитхабе)
Еще есть концепция простая до ужаса: на мад сервере делается логин mud с паролем mud. У пользователя mud в качестве командного интерпретатора указывается не sh, а консольный мад-клиент, например mmc или tintin++. Клиент надо обрезать так, чтобы он подключался только к одному маду — к localhost.
А если клиент не обрезать, это сервер можно еще использовать как мад-прокси для мультинга
Я немного модифицировал отображение статистики: теперь кроме общих графиков рисуется график по каждому маду:
Буду краток.
Мой Virtustan MUD на Гитхабе форкнул молодой аккаунт по имени DikuMUDOmnibus, который, как я понял, собирает форки всех мадов, основанных на движке Diku. Посетив аккаунт DikuMUDOmnibus, я нашел аккаунт MUDOmnibus, который форкает вообще все мады.
Это скорее всего энтузиаст, который всё каталогизирует
Администраця Рмада пишет в своей группе
Давно не постил новости рмада, а они есть:
* 11 октября 2017
* Кристальный куб Сафаники теперь правильно выдает награды.
* Мелкие правки в зонах.
* 25 июля 2017
* У всех замков проставлена сложность взлома. Теперь умение “взломать”
должно прокачиваться.
* Мелкие правки в зонах.
* 13 июля 2017
* Подключена новая зона для недобрых персонажей среднего уровня.
* Исправлены несколько вещей, спасибо всем, кто репортил.
Мир ждет своих приключенцев
Только что я запустил тестовый сервер русифицированного EmpireMUD (кодировка только UTF-8!),
которым занимаемся я и коллега Пацифист:
mud.kharkov.org 5000
Что сделано на данный момент:
– можно вводить русские имена игроков (только вводить, выводятся они пока в транслитерированной форме)
– можно писать в чат по-русски
– переведено одно сообщение!
Это не шутка, именно одно. Но главное, написан простейший модуль перевода, то есть теперь надо просто переводить все сообщения и заполнять словарь. А сообщений там тысячи, однако. Поэтому ищутся волонтеры и спонсоры 😉
Муд этот в отличие от обычных, состоящих из отдельных дискретных комнат, состоит из как бы непрерывного большого мира. И имеет элементы стратегии, то есть в лесу, можно строить домики, добывать руду, набигать и так далее. Я джва года искал такой муд
Бугагашенька.
Думал, что нашел глюк в EmpireMUD: у одного персонажа север сверху, у другого сбоку. Тестировал, потратил кучу времени, копал в коде. Оказалось, если персонаж не имеет свойства «navigation», он север может представлять в любом направлении. Также персонаж путает направления, если он пьян (drunk)
Это, кстати, ролеплейно. Ты можешь идти от своего дома к остановке трамвая, потому что знаешь дорогу относительно дома, а не потому, что у тебя в голове карта с севером. Как правоверный толкиенист вспоминаю, что гномы рисовали на своих картах север справа (а восток, соответственно, вверху карты)
Я предлагаю метод фальшпанели. То есть у мада есть основной язык, им будет, например, английский. Вся внутренняя инфа на английском. Для англоязычных игроков все работает как обычно. А для русскоязычных на лету переводится. Имеется ввиду конечно не использование онлайн-переводчиков, а заранее сделанный перевод.
Что нибудь примерно такое:
сообщения выводят игроку при помощи новой функции
msg_to_char_multilingual(ch,«Invalid exit»);
И англоязычный игрок увидит сообщение Invalid exit
А для русскоязычного игрока функция обратится в базе переводов (обычному текстовому файлу) и найдет соответствие
Invalid exit — Неверный выход
и выдаст игроку текст «Неверный выход»
Похожим, только более сложным и громоздким образом работает многоязычный интерфейс gettext (https://ru.wikipedia.org/wiki/Gettext)
А откуда система узнает, что игрок русскоязычный? Обратите внимание на первый параметр функции msg_to_char_multilingual, он такой же, как у реальной функции msg_to_char — это ссылка на структуру, описывающую игрока. Надо будет ввести в параметры игрока еще один параметр «Language». Или для большей простоты использовать какой-нибудь уже существующий малоиспользуемый параметр
Для ускорения поиска по строкам для оригинальных строк (английских) вычисляются хеши (например CRC32) и поиск по файле переводов будет осуществляться по хешам
Но современные сервера столь быстродействующи, а мады столь малопосещаемы, что оптимизация может и не понадобится. Или понадобится нескоро
Начал русификацию мада EmpireMUD по методу, описанному в предыдущем сообщении. EmpireMUD, кстати, отличается тем, что мир в нем состоит не из комнат, а как бы непрерывный и достаточно большой
С русификацией именам довольно сложно, потому что имена игроков используются в создании имен файлов данных игроков, в распределении их в каталоге данных по первой букве имени (это можно считать примитивным хешированием) и так далее. Например, при попытке создавать файлы данных с именами в UTF-8 мы можем получить кучу глюков
Поэтому только что мне в голову пришла простейшая идея, которую я назвал романизацией (по названию города Рима, где был изобретен латинский алфавит)
Игрок вводит имя кириллицей и оно сразу «романизируется», то есть аккуратно транслитерируется латиницей. И дальше внутри мада имя латинское и имена файлов данных латинские.
А при выводе сообщений на экран, везде, где выводится имя игрока GET_NAME(player) оно перед выводом дероманизируется:
deromanize(GET_NAME(player))
то есть транслитерируется назад