Програмирование zMUD.Введение.
Что такое zMUD клиент и в чем его
отличительные особенности? Подключение к
серверу MUD осуществляется с использованием
текстового протокола TELNET, по которому
осуществляется обмен между игровым
сервером и клиентской программой игрока.
Помимо основного текста, игровой сервер
может передавать коды цвета для выделения
фрагментов текста в формате ANSI, которые
преобразуются клиентом и отображаются в
соответствующем цвете. В общем случае имеет
место обмен текстовыми потоками между
клиентом и сервером.
В принципе, войти на MUD-сервер и даже
пожить там можно, используя тривиальный
TELNET-клиент, существующий в любой
операционной системе, однако, чтобы играть
было удобнее, рекомендуется использовать
специализированный MUD- клиент, которым и
является zMUD.
Следующие приятные функциональности
делают специализированный MUD-клиент
гораздо более удобным, чем обычный TELNET-терминал.
Алиасы.
Алиасы - в первом приближении алиас
является некоторым макроопределением,
позволяющим при вводе короткой команды в
строку команд MUD-клиента, отправить на
игровой сервер одну или несколько команд,
определенных в теле алиаса. При вводе
имени алиаса в качестве команды, MUD-клиент разворачивает
алиас, заменяя его имя содержащимися в нем
командами. В случае, если за именем алиаса (как
правило, после пробела) идут символы или
другие команды, они могут рассматриваться
как параметры развертывания алиаса, если на
них есть ссылка в теле алиаса, либо
непосредственно пересылаются на игровой
сервер, если к ним не осуществляется
обращения из тела алиаса. Алиас -
удобное средство для выполнения типовых
действий, обычно требующих ввода большого
количества команд MUD. Поскольку в теле
алиаса можно использовать условные
ветвления (выполнение различных действий в
зависимости от некоторого условия), циклы (многократное
повторение одного и того же действия) и
рекурсию (вызов других алиасов), алиас
является достаточно мощным механизмом,
минимизирующим ввод команд игроком,
необходимых для выполнения рутинных
действий.
Переменные.
Переменные - позволяют сохранять
временные или длительные состояния модели
игрока и его состояния на стороне клиента.
Переменные могут содержать числа или
строки. В zMUD переменные, помимо прочего,
могут содержать списки, а также выполнять
роль функций, определяемых
пользователем и возвращающих, в
зависимости от параметров, некоторое
значение.
Триггеры.
Триггеры - это, так сказать, условные
рефлексы, механизм, позволяющий MUD-клиенту
реагировать на события в игре без участия
игрока. Механизм триггеров основан на том,
что тело триггера срабатывает при
условии, если клиентское программное
обеспечение принимает с сервера текст,
соответствующий маске триггера. Тело
триггера функционирует точно также, как и
тело алиаса, за тем лишь исключением, что
параметрами триггера могут являться
специальным образом выделенные фрагменты
маски триггера.
Умелое комбинирование наборов триггеров,
использование переменных в качестве флагов
срабатывания триггера, вызовы сложных
алиасов из тел триггеров - все это позволяет
значительно автоматизировать рутинные
действия персонажа, например, такие, как
прием пищи или воды, а также придать
персонажу индивидуальность за счет
преобразования стандартных команд (к
примеру, команд общения, запроса задания у
квестора и т.п.) в более сложные
последовательности при сохранении
названия самих команд короткими и удобными.
Многие MUD-клиенты позволяют создавать
алиасы, триггеры и переменные только с
помощью командной строки, однако, zMUD
позволяет конфигурировать эти объекты,
используя специальный интерфейс
конфигурации. Приведение примеров будет
рассчитано на то, что код алиасов и
триггеров вводится из интерфейса
конфигурации, а не из командной строки,
однако, также будет указан и синтаксис
командной строки. Настройкам zMUD будет
посвящена отдельная глава.