Система регистрации договоров на сервере "Dragon Galaxy"

Начиная с версии ядра 1.27 в сервер "Dragon Galaxy" встроен механизм заключения и регистрации мирных договоров на сервере. Сразу хочу сказать, что на сам процесс игры этот механизм не оказывает никакого влияния. Он сам не ставит мир между расами и не блокирует возможность выставления войны. Он просто дает возможность протоколировать процесс "подписания". Любая из рас-участников может придать документ огласке посредством публикации договора на "стенке" и при этом прекратить (или не прекращать) его действие. Публикация договоров происходит от "имени сервера", поэтому исключается возможность подтасовок или фальсификаций договоров, (кстати, публиковать можно только подписанные договора).

Итак, как этим всем пользоваться?

  1. Убедитесь, что эта фича работает в Вашей партии. Это сделать очень просто. Загляните в нулевой реп, и посмотрите во второй строчке на версию ядра, если оно 1.27 или выше, то все в полном порядке. Важно! Речь идет именно о нулевом репе, так как он показывает, на каком ядре была создана партия. Если версия меньше, то, увы, надо смириться, что в Вашей партии эта фича работать не будет.
  2. Пошлите серверу текст договора с первой строчкой следующего вида:
    #treaty <GameName> <Password> <Race1> [<Race2> ... <RaceN>]
  3. Сервер зарегистрирует договор, присвоит ему некоторый идентификатор (ID) и разошлет текст, всем упомянутым в первой строчке, расам, с просьбой ратифицировать этот договор.
  4. Расы могут согласиться с текстом договора и послать в приказе строчку:
    O TREATY SIGN <ID>
    (ВАЖНО!!! Раса - автор договора, тоже должна его подписать)
    или отклонить договор командой:
    O TREATY REFUSE <ID>
    при отказе от подписания рассылается уведомление немедленно, что мол такая-то раса отказалась подписывать, и договор уничтожается, а при подписании договора, уведомление рассылается только когда договор вступил в силу, т.е. с момента его подписания последним участником.
  5. Уже подписанный договор может быть разорван в любой момент времени командой:
    O TREATY BREAK <ID>
    при этом всем участникам автоматически высылается уведомление о прекращении действия договора.
  6. После подписания, или после разрыва (не путать с отказом от подписания), договор можно опубликовать на "стенке". Делается это командой:
    O TREATY PUBLISH <ID>
    договор выкладывается на всеобщее обозрение со всей историей подписания (и разрыва, если он имел место).
  7. Список всех договоров в игре с участием Вашей расы, можно запросить через систему запросов.
    #query treaties <GameName> <Password>