Зеркало и macOS

В рамках проекта «Всё, что шевелится, соберу под Андроидом и Эпплом» адаптировал код Зеркала к macOS

https://github.com/prool/zerkalomud

Это получилось не так просто, как у Виртустан мада, так как код Виртустана взят из более свежего релиза Былин и он адаптирован к 64-разрядной архитектуре. А код Зеркала стар и при 32 разрядах собирается и работает без проблем, а на 64 вылетает в корку на макросах флагов. Место, где вылетало, найдено и исправлено. Это макрос GET_FLAG. Эти проблемы еще частично связаны с тем, что в macOS родной компилятор не gcc, а «богомерзкий clang»

Карты, карты, карты

Когда-то я написал генератор карт мада, работающий со стороны сервера, то есть имеющий на входе мир (файлы .wld) и делающий из него картинку. И вот сегодня ВНЕЗАПНО я решил натравить его на мир Зеркала (то есть на «НВОшную локалку», то есть старые Былины). Результаты можно посмотреть здесь. Пояснение: я натравил рисовалку на каждую зону (файл .wld) в отдельности. Вначале белым цветом рисуется эта зона, а потом желтым все остальные комнаты, доступные из белой зоны. В случае ошибок геометрии типа наползания комнаты на комнату используется красный цвет.

Исходники картопостроителя присутствуют в репозитории Виртустан мада

Примечания.

1. План статичный, то есть неинтерактивный. Может, я соберусь и сделаю интерактив и можно будет нажимать.

2. План представляет собой вид сверху. Если из комнаты есть выход вверх, то рисуется кружок, если вниз, то крестик, если оба варианта — то кружок, а на нем крестик. Мнемоника проста: как я уже говорил, план это вид сверху. Направление выхода как бы обозначено стрелой. Представьте себе нарисованную в 3D металлическую стрелу с наконечником-конусом и двумя взаимно перпендикулярными треугольными стабилизаторами сзади. Если стрела показывает направление выхода снизу вверх, то глядя сверху вы видите «лицо «стрелы, то есть конус со стороны его острия, то есть круг. А если стрела направлена сверху вниз, вы видите ее хвостовое оперение, то есть крест. Это не я придумал, такие обозначения были на картах в каком-то старом маде, кажется в RMUD

И снова об оказуаливании Зеркала

Для облегчения игры в мад Зеркало сегодня сделал полезную команду

АКЦИОТРУП

По названию понятно, она призывает ваш труп (название взято из Гарри Поттера)

Пример использования: вы ходите, ходите по зонам мада и тут кто-то или что-то вас убило.
Вы респавнитесь (оживаете) голенький в комнате ренты без вещей и оружия, нажитых непосильным трудом. Всё это осталось в вашем трупе. Что делать? Бежать голым и невооруженным к трупу? Там
опять убьют. И вот появилась команда призыва трупа

И вообще, почитывайте тамошнее вече, я там пишу о мелких изменениях

Prool fool

Prool fool (англ.) — Пруль дурак

Фигня какая-то происходит с кодировкой UTF-8. После моих экспериментов она начала глючить, я откатил к последней версии кода Зеркала с Гитхаба, все равно глючит. Я проглядел какой-то фактор. (Остальные кодировки работают без проблем) Кстати, UTF глючила и когда я собирал Зеркало на сервере blind-games.ru.

Нам потребуются самые тщательные наблюдения! (И.Азимов, «Конец Вечности»)

* * *

Дальнейшие эксперименты: при обычном запуске Зеркала UTF работает. При запуске под отладчиком нет

В Виртустан-маде UTF нормально работает в обоих случаях!!!!!111111

Memory leak in Zerkalo MUD

Проверить, при аптайме в 20 дней Зеркало устраивает memory leak, жрет память и вылетает по segmentation. Может, это из-за того, что примерно в то же время памяти нажирается и squid, а свапа нет. А может, это не связано между собой

Пока я запустил Зеркало под отладчиком, посмотрим. Хотя под отладчиком оно ведет себя немного по другому, например, начинают глючить процедуры конвертации в utf8 (нормально работающие без отладчика и нормально работающие и с и без отладчика в Виртустан-маде, а также нормально работающие в Былинах). Где-то или неинициализированная переменная или еще большая фигня, например массив налазит на массив или на другие переменные

UPDATE. Оказалось, это была проблема сервера: у виртуальной машины не было свопа и спустя 20 дней работы всю память доедал Сквид, и начинал работать Out of memory killer и Зеркало глючило. Своп сделан и всё заработало нормально, максимальный аптайм пока 41 день, но это потому, что я перезагружаю сервер при обновлениях ядра, а ядро я обновляю, когда оно обновляется в дистрибутиве

Дух мада и сеты

Сегодня в игре Зеркало MUD (telnet zerkalo.kharkov.org 4000) сделал модификацию команды ДУХМАДА. Теперь дух мада выдает не только еду, питье и вещи начального уровня, но и наборы предметов (сеты) высокого уровня. Вообще сеты это редкие наборы, которые надо добывать неделями, а то и месяцами, но Зеркало — это неофициальный шард Былин, там почти никто по сути не играет и никто не будет месяцами дротить, нарабатывая уровни, реморты и сеты. И иногда забегающие туда задроты давно просили меня сделать выдачу сетов, чтобы погулять с комфортом по высокоуровневым зонам

github

В последнее время я увлекся Гитхабом (сервисом github.com). Некоторые называют его социальной сетю программистов, но в первую очередь это сервис для организации управления версиями кода на основе git. Моё имя там prool и я выложил там немного из своих текущих работ, в частности Былины-0 и код Зеркала (только код, без зон). (А мой Виртустанмуд у меня выложен на bitbucket)

Неофициальный сайт неофициального мада

Юноша Кагыр создал для моего Зеркала вот такой сайт http://bylins.hol.es/, где не все соответствует действительности, однако. Официальная информация публикуется в самом маде от имени имма Пруль (а то, что Пруль главный имм написано в заставке мада). Кроме того, на заставке мада указан адрес официального сайта Зеркала zerkalo.kharkov.org. И этот блог тоже является официальным

Update. 08-Jun-2014. Вчера я обнаружил, что Кагыр таки внял моим просьбам и удалил этот сайт. Я ничего не имею ни против рекламы, ни против критики, ни против собственного взгляда на происходящее, но в частности, там было написано, что проект Зеркало создан как улучшенные Былины, а это неправда. Зеркало — это устаревшая пиратская копия

Привет

Свежая виндовая сборка

«Дело было вечером, делать было нечего»

И я сделал очередную версию виндовой сборки Зеркала. Теперь я взял хорошую, годную, неглючную НВОшную локалку. Как обычно, собирал я в среде cygwin.

Вот: http://zerkalo.kharkov.org/z/

И еще об утечках паролей. Вот примерная схема как это может происходить: Юный мальчик-хакер поднимает свою локалку и зазывает туда игроков из Былин «чиста поприкалываться». Большинство игроков не заморачивается безопасностью и для простоты регистрируется в теми же паролями, что и в Былинах. Но самое плохое то, что виндовые сборки обычно делаются с флагом TEST_BUILD (см. файл Makefile), при этом мад собирается без библиотек zlib и libcrypt и шифрование паролей не происходит. И в пользовательских файлах хранятся не хеши паролей, а сами пароли в открытом виде. Вот.

Поэтому для пущей безопасности я изучил, что именно меняет этот тестовый флаг и как в среде cygwin прилинковать libcrypt. И у меня всё получилось, в данной моей сборке в пользовательских файлах хранятся хеши! Ура! (Исследователи могут сравнить эту сборку с моей старой сборкой 2011 года и посмотреть, как выглядит пользовательский файл там)

Тем не менее о безопасности все равно нужно думать и регистрироваться на разных мад-серверах с разными паролями. Хеши тоже не дают 100% гарантии, их можно отбрутфорсить. Или мальчик-хакер поставит перед локалкой сниффер и будет записывать весб траффик (в том числе и пароли). Это намного сложнее, но кроме тупых мальчиков-хакеров (которых большинство) попадаются еще и умные, это тоже надо учитывать. Кстати, по слухам в Былинах недавно произошла утечка базы хешей, после чего админы в целях безопасноти принудительно поменяли всем пароли.

И еще. Еще раз официально заявляю, что за безопасностью своих «пиратских говнофришардов» я слежу и никаких утечек у меня пока не было. И надеюсь не будет. (Чем я лучше админов Былин? Ничем, просто я один, а там команда человек в 10 и в такую команду вполне может затесаться крот, откуда и утечки локалок. Пора в мадах заводить отделы внутренней безопасности, о чем давно говорит Кадвар-Мандос из Адамант мада и форума mudconnector.su) Понятное дело, что в наше время верить нельзя никому. «Мне можно» (как сказал группенфюрер Мюллер в фильме «Семнадцать мгновений весны»)