add_action(3)         LPC 系统函数         add_action(3)

名称
     add_action() - 把命令的动词对应到函数去

语法
     void add_action( string | function fun, string  |  string  *
     cmd, int flag );

描述
     当玩家输入一个命令时, 把它对应到适当的局部函数(lfuns). 该局部
     函数的参数应该是玩家的命令动词之后的字串, 也就是在该局部函数
     中, 应该自行分析参数的意义. 当命令失败, 应该传回 0, 成功则传
     回非 0.

     假如第二个参数是阵列的话, 则该阵列中出现的命令动词都会对应到同
     一个函数去. 想在该局部函数要查出是用什么命令呼叫该函数的方法是:
     使用 query_verb() 这个系统函数. query_verb() 可以用来防止别人
     乱 call_other().

     假如该函数传回 0, 也就是失败的意思, 则系统的命令分析器会继续搜
     寻适合的命令, 直到找完所有可能, 或者是有某个命令成功为止.

     通常, add_action() 会在 init() 中使用. 如此一来, add_action()
     所在的物件只要在玩家身上, 或者是该玩家本身, 或者是该玩家所在的
     房间, 或者是跟该玩家同一间房间内的物件都可以用由 add_action()
     所定义出来的命令. 通常这是用来定义局部的, 特殊的命令用的, 也可
     以用来盖过系统命令(定义在 /cmds 下).

     假如 <flag> 的值是 1, 则只要命令动词的前导字元等于 <cmd> 就会
     呼叫 add_action() 所定义的函数, 而 query_verb() 传回 <cmd>,
     至于 <arg> 则同于 <flag> 的值是 0 的时候.
     如果 <flag> 的值是 2, 则大部份都跟 <flag> 的值是 1 的情况, 唯
     一不同的是 <arg> 则会把命令动词跟 <cmds> 比起来多余的部份也加
     入 <arg> 中.

请参考
     query_verb(3), remove_action(3), init(4)

MudOS                Last change: 5 Sep 1994                    1

