http://www.zuggsoft.com/library/
zmud编程技术可以搜索"Zmud机器人制作--基础知识,技巧以及实例讲解"这篇文章,系统全面介绍了zmud编程的技术和技巧。<br />这里仅会提到常见的使用的技巧。<br />zmud编程最重要的是参考#help文档的commands/functions.
#ALIAS AddRange {#VAR N 0;#LOOP %1,%2 {#MATH N @N+%I};@N}
AddRange 5 8
You get a result of
26 (which is 5+6+7+8).
自定义函数(较复杂函数,具有LOOP功能)
#FUNC AddRange {%exec(#VAR N 0;#LOOP %1,%2 {#MATH N @N+%I};@N)}
will do the trick. @addrange(5,8) returns a result of 26. Keep in mind that any text normally sent to the MUD is captured as the result of the %exec function. If multiple lines are send to the MUD, they are returned from %exec separated by the vertical bar (|) character.
Definition command
| Alternative command
| Resulting value stored in @test
| Mode
|
#VAR test "@A/@B"
| #FUNC test {@A/@B}
| @A/@B
| Verbatim
|
#VAR test <@A/@B>
| #VAR test {@A/@B}
| 100/2
| Expansion
|
#VAR test [@A/@B]
| #MATH test {@A/@B}
| 50
| Evaluation
|
用户自定义函数用@开头;系统自带函数用%开头。
函数中不能引用alias和command,只能嵌套函数。
函数参数以逗号分隔,用圆括号包围。如:@addrange(5,8)
<> 会展开里面的内容
[] 会计算里面的内容
{} 用来包含拥有alias和function的一系列表达式
"" 里面的内容不会被展开
zmud支持的正则表达式类型(Trigger的Pattern即是正则表达式)
- . match any single character
- * match zero or more of the previous pattern
- + match one or more of the previous pattern
- ? match zero or one of the previous pattern
- (exp) group the regular expression "exp" into a single pattern
- exp1 | exp2 match expression exp1 OR expression exp2. Any number of expressions can be listed, separated by |
- [abc] match a range of letters. In this case, the letters a, b, or c are matched. You can specify a range of characters using the - operator. For example [a-z] matches any lowercase character. Putting ^ before the range defines a range of characters that are excluded. For example [^a-z] matches anything *except* a lowercase character.
- ^ matches the beginning of line
- $ matches the end of the line
- / escapes the next character, matching that character verbatim. For example /* matches an asterisk. // matches a slash itself. Note that to prevent zMUD variable parsing the @ character must still be escaped with the normal zMUD escape character (default of ~) rather than the / character.
- /s a space character (ascii 32)
- /p the | pipe character
- /w a word delimiter (matches /s!"&()*+,-./:;<=>?@[/]^`{|}~)
- /h a hex character (0-9A-F)