简介

  别名可以根据你输入的特定命令做出预先定义的动作。

  例如,一个“gf”别名可以定义为依次发送“open bag”和“get food”两条命令。

  你也可以让别名调用一个脚本函数,通过它在屏幕上显示提示信息,执行快速行走或者其他的事。

  如果要根据从 MUD 服务器接收到的信息做出预定义的动作则必须使用触发器。

  别名中还可以使用通配符捕捉你感兴趣的内容,并应用在对应的动作中(通常是发送给 MUD 服务器的命令)。例如,假如你想制作一个别名从你的篮子(basket)中拿出一个装水的容器,然后饮用其中的水。由于 MUD 中有很多装水的容器,所以它是一个变化的物品。在别名中你可以用一个星号(*)来代替这个容器。例如:

  匹配:gd *

  发送:

  get %1 from basket
  drink %1

  当你在命令窗口输入“gd jiudai”,这个别名就会依次发送“get jiudai from basket”和“drink jiudai”这两条命令。

  你可以在别名中一次使用多达 999 个通配符,但是通过普通方式你只能获得 %0 - %9 的匹配内容,其中 %0 表示别名匹配的整个文本。要访问更多的通配符内容请看下面的介绍。

  这里还有一个使用两个通配符的例子:

  匹配:gd * *

  发送:

  get %1 from %2
  drink %2

  你可以输入“gd basket jiudai”得到和上例完全一样的结果。

别名脚本

  别名的发送框中不但可以发送普通的 MUD 命令,还可以执行脚本命令,你只要把发送框发送的对象选为“脚本解析器”就可以了。

  如果脚本很复杂,在发送框中编写会很吃力。这时你可以把这个脚本作为一个函数写在游戏的脚本文件中(在脚本配置对话框中设置),然后在别名设置对话框的脚本框中填入这个脚本名称就可以调用它了。

  别名调用的脚本函数必须有以下三个参数:

  别名名称

  1. 别名匹配的行
  2. 包含前十个通配符内容的数组

  下面是一个 VBscript 脚本函数的示例:

  sub MyAlias (name, line, wildcards)
    world.Note "Alias " & name & " matched."
    world.Note "Wildcard 1 was" & wildcards (1)
  end sub

  wildcard 10 包含了整个被匹配的文本,当使用正则表达式的时候,它不一定和匹配行一样。对于其它通配符(例如,命名的通配符,超过 9 的通配符),你可以用 GetAliasWildcard 函数来获取。

通配符

  别名的一个强大功能就是可以使用通配符。通配符主要用于在你想匹配的文本行中代替经常会变化的文字。这样就可以用一个别名匹配多个相似的命令。

  例如:

  k *

  在这个别名中,星号会代替你想 kill 的任何目标。

在发送文本框中使用通配符代替的内容

  要在别名的发送文本框中使用通配符代替的内容,可以用 %1 调用第一个通配符代替的内容,%2 调用第二个通配符代替的内容,后面的依次类推。例如:

  kick %1

  %0 是一个特殊的通配符,它代表整个被匹配的行。对于大于 9 的通配符,其访问方式稍有不同。语法如下:

  kick %<22>

  尖括号中的数字可以是 0 - 999 之间的任何一个数字。

  另一种访问的方式是使用正则表达式给这个通配符指定一个名称,例如:

  ^k (?P<target>.*)$

  通配符的名称为“target”。然后你可以这样使用它:

  kick %<target>