zmud中ansi的颜色丰富了游戏的内容,除了系统返回给客户端的ansi字符显示以外,我们也可以通过客户端的%ansi函数来显示丰富的信息:
#help ansi
#SHOW %ansi(high,red)Hello%ansi(blink,blue,white)Word
比如在状态window显示相关灭妖信息,局部突出怪的名字和地点,以及内力信息。
#stw %ansi(high,red)@guai_name(@guai_nick)%ansi(normal)%cr在%ansi(high,orange)@guai_place%ansi(normal)%cr怪的内力:%ansi(blink,blue,white)@guai_neili%ansi(normal)
其中%cr为换行,可以将显示分多行显示。%ansi(normal)为恢复系统默认颜色.
通过这个函数,我们在客户端也可以输出丰富的ansi文字,甚至可以通过这个来做颜色触发器(因为zmud对屏幕上所有信息都可以触发,不管是不是通过本地#say出来的)。
相同道理,文字显示适用于所有向屏幕输出信息的命令,包括#say/#show/#st/#stw等。
ansi颜色的定义可以参考:ansi.h
Ansi颜色: [0m 表示ansi颜色结束 [1;33;45m第2项项五第[0m 表示以[1;33;45m定义的颜色文字直到[0m结束 [1;33;45m 其中1表示高亮 33高亮前景色 45表示背景色 m为颜色定义后缀 具体定义见: // File : /include/ansi.h // Creator : Gothic@TMI-2 // // The standard set of ANSI codes for mudlib use. #define ESC "" #define CSI ESC + "[" /* Foreground Colors */ #define BLK ESC+"[30m" /* Black */ #define RED ESC+"[31m" /* Red */ #define GRN ESC+"[32m" /* Green */ #define YEL ESC+"[33m" /* Yellow */ #define BLU ESC+"[34m" /* Blue */ #define MAG ESC+"[35m" /* Magenta */ #define CYN ESC+"[36m" /* Cyan */ #define WHT ESC+"[37m" /* White */ /* Hi Intensity Foreground Colors */ #define HIR ESC+"[1;31m" /* Red */ #define HIG ESC+"[1;32m" /* Green */ #define HIY ESC+"[1;33m" /* Yellow */ #define HIB ESC+"[1;34m" /* Blue */ #define HIM ESC+"[1;35m" /* Magenta */ #define HIC ESC+"[1;36m" /* Cyan */ #define HIW ESC+"[1;37m" /* White */ /* High Intensity Background Colors */ #define HBRED ESC+"[41;1m" /* Red */ #define HBGRN ESC+"[42;1m" /* Green */ #define HBYEL ESC+"[43;1m" /* Yellow */ #define HBBLU ESC+"[44;1m" /* Blue */ #define HBMAG ESC+"[45;1m" /* Magenta */ #define HBCYN ESC+"[46;1m" /* Cyan */ #define HBWHT ESC+"[47;1m" /* White */ /* Background Colors */ #define BBLK ESC+"[40m" /* Black */ #define BRED ESC+"[41m" /* Red */ #define BGRN ESC+"[42m" /* Green */ #define BYEL ESC+"[43m" /* Yellow */ #define BBLU ESC+"[44m" /* Blue */ #define BMAG ESC+"[45m" /* Magenta */ #define BCYN ESC+"[46m" /* Cyan */ // #define BWHT ESC+"[47m" /* White */ #define NOR ESC+"[2;37;0m" /* Puts everything back to normal */ /* Additional ansi Esc codes added to ansi.h by Gothic april 23,1993 */ /* Note, these are Esc codes for VT100 terminals, and emmulators */ /* and they may not all work within the mud */ #define BOLD ESC+"[1m" /* Turn on bold mode */ #define CLR ESC+"[2J" /* Clear the screen */ #define HOME ESC+"[H" /* Send cursor to home position */ #define REF CLR+HOME /* Clear screen and home cursor */ #define BIGTOP ESC+"#3" /* Dbl height characters, top half */ #define BIGBOT ESC+"#4" /* Dbl height characters, bottem half */ #define SAVEC ESC+"[s" /* Save cursor position */ #define REST ESC+"[u" /* Restore cursor to saved position */ //#define REVINDEX ESC+"M" /* Scroll screen in opposite direction */ #define SINGW ESC+"#5" /* Normal, single-width characters */ #define DBL ESC+"#6" /* Creates double-width characters */ #define FRTOP ESC+"[2;25r" /* Freeze top line */ #define FRBOT ESC+"[1;24r" /* Freeze bottom line */ #define UNFR ESC+"[r" /* Unfreeze top and bottom lines */ #define BLINK ESC+"[5m" /* Initialize blink mode */ #define U ESC+"[4m" /* Initialize underscore mode */ #define REV ESC+"[7m" /* Turns reverse video mode on */ #define HIREV ESC+"[1,7m" /* Hi intensity reverse video */