selfmud 发表于 2011-8-5 18:34:05

mush小白请教一些关于触发器的小白问题

才接触mush,很多东西不懂
匹配行里面的东西我现在大概知道了,就是和zmud差不多,\w\s什么的,还有$\n换行----我说的这些没问题吧?
现在下面的我还不太明白
就是发送行都可以输入些什么
一般的方向和吃饭啥的我大概懂了
可以写上n e s w (drink jiudai)-----这个没错吧?
我不懂是是
问题1
比如if qi<100
then exert recover
end
这样的东西是不是可以写进去执行
问题2
抓取数值应该可以吧 比如neili=%1 qi=%2
问题3
赋值是不是可以呢?比如再zmud里面的 #var skills dodge或者skills=dodge是不是可以执行
还有
问题4
是不是所有的触发器都需要选择 “启用”“保持有效性” “正则表达式”这几项
然后
问题5
发送给这里:
发送给 “游戏”,这个我理解了,就是一般的命令比如n e s w (drink jiudai)可以用这个----没问题吧?
那别的几个呢?如果要调用了脚本里面的函数的话是选择“发送到脚本”?
那别的都是干啥的?

问题很多,也很小白,请指点一下。不要说叫我自己去看手册啥的。我太笨了,没看怎么明白所有才问的。
bow

[ 本帖最后由 selfmud 于 2011-8-5 06:38 PM 编辑 ]

lzkd 发表于 2011-8-5 18:36:44

客户端问题,请发到技术版
转移一下,楼主以后请注意,谢谢!

selfmud 发表于 2011-8-5 18:39:27

啊,这个是客户端问题啊。。。我以为是疑问解答呢

littleknife 发表于 2011-8-5 19:20:04

我不懂是是
问题1
比如if qi<100
then exert recover
end
这样的东西是不是可以写进去执行

如果你打算在“发送”窗口写上面的东西的话,你需要在“发送给”这个下拉选项里选上:“发送到脚本解析器”。这样你的判断才能执行,另外选了用脚本运行发送的内容,那么在里面执行mud命令时需要用脚本命令:比如Execute("sleep"),而不能直接用sleep了。

问题2
抓取数值应该可以吧 比如neili=%1 qi=%2

抓取数值得看你的触发是如何写的。如果想去抓内力等状态可以考虑下面的触发形式:^【 气血 】\s*(\d+)\s*/\s*(\d+)\s*\[\s*(\d+)%\]\s*【 内力 】\s*(\d+)\s*/\s*(\d+)\s*\(\s*\+\s*(\d+)\)对应发送内容里:neili=%4,maxleili=%5

问题3
赋值是不是可以呢?比如再zmud里面的 #var skills dodge或者skills=dodge是不是可以执行
还有

只要在脚本解析器里,就可以赋值,这是lua的关系。

问题4
是不是所有的触发器都需要选择 “启用”“保持有效性” “正则表达式”这几项
然后

你若是使用它就必须启用。一般MUSH是用正则表达式的,但是也不完全。

问题5
发送给这里:
发送给 “游戏”,这个我理解了,就是一般的命令比如n e s w (drink jiudai)可以用这个----没问题吧?
那别的几个呢?如果要调用了脚本里面的函数的话是选择“发送到脚本”?
那别的都是干啥的?

只要理解发送给命令解释器是相当于在下面的窗口输入命令。发送给游戏是直接发一个命令。区别是前者可以多发,后者只发一个,很少用。前者的脚本命令是Execute()后者是Send()。

selfmud 发表于 2011-8-5 19:49:05

首先
非常感谢

原帖由 littleknife 于 2011-8-5 07:20 PM 发表 http://pkuxkx.com/forum/images/common/back.gif

如果你打算在“发送”窗口写上面的东西的话,你需要在“发送给”这个下拉选项里选上:“发送到脚本解析器”。这样你的判断才能执行,另外选了用脚本运行发送的内容,那么在里面执行mud命令时需要用脚本命令:比如E ...
就是说,我如果要选择了发送到脚本解析器,那么就不能直接输入发送到游戏里面的命令了,比如n e s w (sleep)对吗?
而如果选择了发送到游戏那么就不能用if then之类的东西是吗
那如果是调用mush的函数,比如doafter(1,eat jitui)这样的命令的话发送到哪?游戏还是脚本解析器?
我们常用的就发送到游戏和发送到脚本解析器2种吧

selfmud 发表于 2011-8-5 19:56:56

找到了关于发送的内容

发送到的地方有以下几种:

    *游戏 (MUD 服务器)

    *命令窗口 (显示在命令窗口中)

    *输出窗口 (显示在输出窗口中,就像使用 Note 函数显示注释一样)

    *状态栏 (显示在状态栏上)

    *记事本 - 新建 (创建一个新的记事本窗口并把发送内容添加进去)

    *记事本 - 追加 (把发送内容添加到现有记事本窗口的最后面)

    *记录文件 (把发送内容直接添加到记录文件中)

    *记事本 - 替换 (把现有记事本中窗口的内容用发送内容替换掉)

    *游戏 - 命令队列 (把发送内容添加到命令队列中,队列的时间间隔可以在“命令”配置对话框中设置)

    *变量 (把发送内容赋值给一个变量,必须在变量框中输入变量的名称)

    *命令解析器 - 执行 (通过命令解析器执行,这是发送内容中可以包含别名、快速行走等等)

    *快速行走 (把发送内容作为快速行走的路径来执行)

    *脚本解析器 (把发送内容作为脚本命令来执行)

    *游戏 - 立即发送 (把发送内容立即发送给服务器,不管当前队列中是否有命令)

selfmud 发表于 2011-8-5 20:00:43

原帖由 littleknife 于 2011-8-5 07:20 PM 发表 http://pkuxkx.com/forum/images/common/back.gif

如果你打算在“发送”窗口写上面的东西的话,你需要在“发送给”这个下拉选项里选上:“发送到脚本解析器”。这样你的判断才能执行,另外选了用脚本运行发送的内容,那么在里面执行mud命令时需要用脚本命令:比如E ...
这句没看懂
区别是前者可以多发,后者只发一个,很少用。前者的脚本命令是Execute()后者是Send()。
什么东西可以多发,什么东西只能发一个?为什么又变成了脚本命令

selfmud 发表于 2011-8-5 22:39:03

O ?咋没人理 了

littleknife 发表于 2011-8-6 05:51:35

回复 8楼 的帖子

其实就是发送的内容可以你自己来决定,所有的发送方法都可以归结为脚本解析器的发送方法。

所谓前者可以多发命令就是Execute("e;e;n;sleep")这个脚本命令相当于在下面的命令窗口输入e;e;n;sleep,当然前提是你设置了单行多命令允许。而Send("e;e;n;sleep")是不能执行的,因为它只能发一个命令如:Send("sleep"),当然这样的发送必须以脚本解析器方式来发给MUSH。

selfmud 发表于 2011-8-9 16:05:26

Execute和send的区别搞懂了
谢谢
他们都是发给脚本解析器的吧?
页: [1]
查看完整版本: mush小白请教一些关于触发器的小白问题