# Filename: mxpelements.rb # Author: Craig Smith # require 'gettext' # Defines the base MXP elements the mud will use module MXPCodes include GetText bindtextdomain("engine") MXP_BEG = "\x03" MXP_END = "\x04" MXP_AMP = "\x05" MXP_BEGc = 3 MXP_ENDc = 4 MXP_AMPc = 5 AMPc = 38 LTc = 60 GTc = 62 def mxptag(arg) MXP_BEG + arg + MXP_END end def mxpmode(arg) "\x1b[#{arg}z" end # This is provided during the welcome message when MXP is supported # This basically works like a stylesheet to let the client know # what kind of tags to expect def init_mxp_elements help = _("Right click for menu") msg = mxpmode("6") msg << mxptag("!-- Setup MXP elements --") msg << mxptag("!ELEMENT Ex '<COLOR Red><send>' FLAG=RoomExit") msg << mxptag("!ELEMENT Rname '<COLOR Green>' Flag=RoomName") msg << mxptag("!ELEMENT RDesc '<p>' FLAG=RoomDesc") msg << mxptag("!ELEMENT Hp '<FONT COLOR=Green>' FLAG=\"Set hp\"") msg << mxptag("!ELEMENT MaxHp FLAG=\"Set maxhp\"") msg << mxptag("!ELEMENT Mv '<FONT COLOR=Yellow>' Flag=\"Set mv\"") msg << mxptag("!ELEMENT MaxMv FLAG=\"Set maxmv\"") msg << mxptag("!ELEMENT Prompt FLAG=\"Prompt\"") msg << mxptag("!ELEMENT Motd FLAG=MOTD") msg << mxptag("!ELEMENT Inv FLAG=Inv") msg << mxptag("!ELEMENT StoreList Flag=StorList") msg << mxptag("!ELEMENT GroundObj \"<COLOR Yellow><send href='" + _("get") + " &name;|" + _("look") + " &name;' hint='#{help}|" + _("Get") + " &desc;|" + _("Look at") + " &desc;'>\" ATT='name desc'") msg << mxptag("!ELEMENT InvNormal \"<send href='" + _("drop") + " &name;|" + _("wield") + " &name;|" + _("look") + " &name;|" + _("junk") + " &name;' hint='#{help}|" + _("Drop") + " &desc;|" + _("Wield") + " &desc;|" + _("Look at") + " &desc;|" + _("Junk") + " &desc;'>\" " + "ATT='name desc'") msg << mxptag("!ELEMENT InvContainer \"<send href='" + _("drop") + " &name;|" + _("wield") + " &name;|" + _("look") + " &name;|" + _("look in") + " &name;|" + _("drink from") + " &name;|" + _("junk") + " &name;' hint='#{help}|" + _("Drop") + " &desc;|" + _("Wield") + " &desc;|" + _("Look at") + " &desc;|" + _("Look in") + " &desc;|" + _("Drink from") + " &desc;|" + _("Junk") + " &desc;'>\" " + "ATT='name desc'") msg << mxptag("!ELEMENT Fountain \"<send href='" + _("drink from") + " &name;|" + _("look in") + " &name;' hint='#{help}|" + _("Drink from") + " &desc;|" + _("Look in") + " &desc;'>\" " + "ATT='name desc'") msg << mxptag("!ELEMENT Buy \"<send href='" + _("buy") + " &name " + _("from") + " &merchant;' " + "hint='#{help}|" + _("Buy") + " &name;'>\" " + "ATT='name merchant'") msg << mxptag("!ELEMENT Player \"<COLOR Cyan><send href='" + _("look") + " &name;|" + _("kill") + " &name;' hint='#{help}|" + _("Loot at") + " &name;|" + _("Kill") + " &name;'>\" " + "ATT='name'") msg << mxptag("!ELEMENT NPC \"<COLOR Cyan><send href='" + _("look") + " &name;|" + _("kill") + " &name;' hint='#{help}|" + _("Loot at") + " &name;|" + _("Kill") + " &name;'>\" " + "ATT='name'") msg << mxptag("!ELEMENT Monster \"<COLOR Cyan><send href='" + _("kill") + " &name;|" + _("look") + " &name;' hint='#{help}|" + _("Kill") + " &name;|" + _("Look at") + " &name;'>\" " + "ATT='name'") msg << mxptag("!ELEMENT Merchant \"<COLOR Cyan><send href='" + _("list") + " &name;|" + _("look") + " &name;' hint='#{help}|" + _("List items for sale") + " &name;|" + _("Look at") + " &name;'>\"" + "ATT='name'") msg << mxptag("!ELEMENT Food \"<send href='" + _("eat") + " &name;|" + _("drop") + " &name;|" + _("look at") + " &name;' hint='#{help}|" + _("Eat") + " &desc;|" + _("Drop") + " &desc;|" + _("Look at") + " &desc;'>\" " + "ATT='name desc'") msg << mxptag("!ELEMENT Corpse \"<send href='" + _("get all corpse") + "' hint='" + _("Search the corpse") + "'>\"") msg << mxptag("!ELEMENT EatCorpse \"<send href='" + _("eat corpse") + "' hint='" + _("Eat the corpse") + "'>\"") msg << mxptag("!ELEMENT Logo \"<IMAGE URL='http://znmud.com/images/zombienation-concept.gif'>\">") msg end end