О русификации QuickMUD-lua

С подачи товарища Пацифиста начал русифицировать QuickMUD+lua (Авраам породил Иакова, ROM породил QuickMUD, а потом товарищ Odoth добавил туда lua). В общем, все делается примерно по тому же шаблону, что и ранее слегка русифицированный tbaMUD. Русские команды лучше и проще реализовывать не в общей таблице, а отдельным обработчиком, вызываемым до основного. А то всякие глюки выползают из-за UTF-8

Всё здесь:

https://bitbucket.org/prool/quickmud-lua-russian

А вот взгляд на проблему с другой стороны: http://muder.ru/blog/172.html

Статистика русскоязычных мадов

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

Я уже начал эту работу, вот первые три мада

http://muds.kharkov.org

Кстати, исходники своих плагинов потом я выложу на github примерно сюда

https://github.com/prool/prool-utilities
(там появится подкаталог)

Как я получаю информацию:

1. У некоторых мадов (у малого количества) статистика (число игроков онлайн в данный момент) есть на сайте мада. Сайт посещает каждые 5 минут мой бот (curl) и парсит

2. У тех мадов, у которых этого нету, я зарегистрирую персонажа и специальным скриптом для клиента tintin++ буду заходить каждые 5 минут, выдавать команду КТО и выходить. И парсить

Тут меня и забанят 😉

Я готов к конструктивному диалогу с иммами мадов, например к снижению частоты заходов бота, чтобы не создавать нагрузку на проц и траффик. Также я даже готов к ответу “статистика мада является приватной информацией и обнародована не будет, а бота мы забаним за нарушение правил”. Я уважаю вашу деятельность и вашу стратегию работы.

* * *

UPDATE. Прагматические замечания по программированию.

Как оказалось, tintin++ не умеет запускаться по крону, так как у крона терминал dumb, а тинтину нужен, например vt100. Я не придумал ничего умнее, чем под бота выделить отдельное окно скрина 🙂

И не надо забывать, что плагины Мунина запускаются от пользователя nobody

Внезапно я написал примитивнейший скрипт для tintin++, осуществлябщий вход в мад, выполнение одной команды (для примера взята команда users), а затем выход из мада и из tintin’а.

#action {ENTER} {i}
#action {MUDQUIT} {#zap;#zap}
#sess s0 mud.kharkov.org 3333
5
мудер парольмудера
users
quit
0

где i – это любая строка, главное, что в конце выдается enter,
3333 – порт моего тестового мада (у основного порт 3000),
5 – номер кодировки,
0 – пункт меню по выходу из мада

Для чего можно использовать этот скрипт?

Для периодического захода во все русские мады, выдачи команды КТО и построения графика посещаемости их при помощи munin. (Пока не забанят робота)

Или для того, чтобы в маде, например в Былинах, где игрок экспирится, заходить и обновлять его

Инструкции новым иммам

Я веду переписку с некоторыми начинающими иммами, которые поднимают у себя копии Виртустанмада или Прульзеркала. Свои ответы, которые в некотором смысле являются инструкциями для новых имморталов, буду приводить здесь

1-й вопрос. О командах имма

Первое. Список команд имморталов – команда wizhelp

А потом справку по каждой команде ты можешь смотреть обычным образом, командой help или помощь

например

помощь shutdown

При этом надо, чтобы твой персонаж иммортал был 34 уровня (при создании нового сервера первый зарегистрировавшийся перс будет 34) и дополнительно, чтобы твой персонаж был в списке иммов. Это делается хитро:

Смотришь файл lib/misc/privilege.lst

Его структура интуитивно должна быть понятна.

Видишь строку, начинающуюся с имени имма Пруль, вместо Пруля пишешь свое имя

А дальше сложнее, после имени надо ввести uin – цифровой идентификатор игрока. Находишь его среди файлов в подкаталогах каталога
lib/plrs

В каком именно подкаталоге будет твой файл, зависит от первой буквы имени твоего перса. UIN там в четвертой строке

Второй вопрос, о создании вещей и мобов

Создание объекта

load obj 411

где 411 – номер объекта

Объект возникает в инвентаре

Создание моба

load mob 411

моб возникает в комнате

А как узнать номера объектов и мобов?

команда

olist 1000 1999

выдается список объектов в номерами от 1000 до 1999

аналогичные команды

mlist список мобов

rlist список комнат

zlist список зон

Обрати внимание на систему нумерации

Например, зона 10, в ней объекты, мобы и комнаты нумеруются от 1000 до 1098

Номеров, заканчивающихся на 99 не бывает

Еще введи команду

РЕЖИМ ФЛАГИ

ты начнешь видеть номера комнат, объектов и мобов

И полезная команда

прыжок 4000

она переносит в комнату с номером 4000

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

med 1200 редактирование моба номен 1200

аналогично red
oed

Найди номера, которые не используются, и аккуратно создавай новые объекты, мобов, комнаты, если хочешь

А чтобы понять, какие бывают параметры, можно набрать, например, oed на уже существующий объект, изучить параметры и выйти из редактирования не сохраняя объект. И уже потом создавать что-то своё

И снова о переводе мадов

Я еще немного пописал свой модуль перевода для tintin++. Теперь в его словарь можно на лету добавлять пары слов:

#addword sword,меч

Неправильные переводы можно удалять

#addword sword,мечь
#delword sword
#addword sword,меч

И целые словосочетания можно сразу переводить
#addword You are carrying,Вы несете

Потом надо не забыть сохранить словарь командой #writedic

И заменить старый файл словаря новым

mv slovarb2.csv slovarb.csv

https://github.com/prool/virtustan

Прагматические замечания по сборке Былин в Debian 8 i386

sudo apt-get install libz-dev cmake g++ clang python3.4-dev libboost-python-dev libboost-system-dev git libgtest-dev

Также после установки Boost’а необходимо указать переменную окружения BOOST_ROOT, где находится сама библиотека Boost (заголовочные файлы), а также библиотеки python3, system и filesystem.

Или можно указать переменную BOOST_LIBRARYDIR, указывающую на путь, куда инсталлированы библиотеки пакета BOOST после компиляции его исходников, которые можно взять, например, с официального сайта BOOST (чаще всего BOOST_LIBRARYDIR=/usr/local/lib)

gtest тоже нужно компилировать и устанавливать в CMakefile.txt переменную GTEST_LIB

Отчет о происходящем

Что я сегодня делал: собирал Былины, которые переехали на новое место – на свой сайт с установленным там ПО gitlab.

На своем ноутбуке с Ubuntu 16.10 x86_64 всё собралось (хотя пришлось создавать на их сайте issue, так как я не знал, что такое GTEST)

А на VDS с Centos 6.8 i386 не собралось. Начался какой-то непонятный ад-и-израиль с параметрами -std=gnu++14 и ошибками в стандартных библиотеках. Учитывая, что я на VDS много чего обновлял и ставил, и не всегда стандартно (например, свежий boost), возможно, в проблемах виноват я сам. Проверить можно, повторив попытку сборки на чистой Centos 6. Кстати, оказалось, начиная с 7 версии Centos, уже нет официального 32-разрядного дистрибутива. Только x64, только хардкор! (Я нашел 32-битную сборку седьмого Центоса, но от независимой команды красноглазиков). А вот мой любимый Debian продолжает быть и в 32 и в 64-разрядных вариантах (и еще куче более экзотических платформ типа arm)

Update 21.11.2017

Потом Былины вроде как вернулись на Bitbucket в новый репозиторий: https://bitbucket.org/bylins/mud.mercurial

Записка самому себе

Кому: Прулю
Тема: Кланы

Надо разобраться со своим кланом (дружиной) в Виртустанмуде. Он опять удалился. Я вроде делал везде нулевой налог или налог в 1 куну. Проверить по логам (хорошо, что я складирую логи, хоть они и большие)

И возможно нарисовать еще один простой кланзамок. Пусть будет. Для тестов и вообще

И в Зеркале проверить то же самое

Пруль

UPDATE. Вечером того же дня.

Всё проверил по логам, ничего не удалялось по крайней мере с ноября 2015 года (а сейчас январь 2017-го). Так что всё ок, мне показалось. И в Зеркале всё ок.

Какой-то старый мад-архив

Большой ftp-архив, который собирался каким-то американцем многие годы, есть клиенты и серверы с исходниками, статьи и прочее и т.д.

ftp://sourcery.dyndns.org/

Тот же домен, но по протоколу http более информативен и сверстан

http://sourcery.dyndns.org/