hualai 发表于 2009-5-4 04:41:11

function set_state(st_name,st_value)
{
    for(i=0;i<9;i++)    st_value=st_value.replace(" ","");   -----[[这里为什么要用循环?这个不是抓状态么...]]
           st_name=st_name.replace("-","_");
           world.setVariable(st_name,st_value);
}
function set_var(st_name,st_value)
{
           world.setVariable(st_name,st_value);         
}

这段出现在sure的朱熹答题脚本中...请问谁能把这段解释一下...

另外 请问我通过trigger抓取的变量如何发送给脚本?
打个比方说
^[> ]*(.*)两银子\(\bSilver\b\)$
%1是xx两银子,如何把这个%1赋值给脚本里的变量number?
选项里选择发送给脚本解析器这个我知道...
我问的是命令行里要如何书写?
setvariable ("number",%1)这个不行...

问题很简单 请别笑话...(闭门研究了几天mush和lua的入门,连游戏都停下来专心啃书)ttk_09

ddid 发表于 2009-5-4 05:27:38

正则表达式,我也刚刚明白一点。

一两白银(Silver)
的正则表达式我是这么做的:

(?P<silver_num>\D+)两白银\(Silver\).*

如果是发送到变量里,给你上张图:



如果是发送到脚本里,脚本里要用GetTriggerWildcard()函数,JScript为例:

var silver_num = world.GetTriggerWildcard("silver","silver_num");

其中"silver"是这个Trigger的Lable,"silver_num"是Trigger中设定的变量名。我不喜欢用%1%2 ……,所以全用(?P<var_name>)标识出来。

这样取到的应该是中文的数字“一”。脚本里要有其它的操作才能转换成数值。


以上也是我研究了两天的成果啊!yct63

[ 本帖最后由 ddid 于 2009-5-4 05:30 AM 编辑 ]

ddid 发表于 2009-5-4 05:33:22

你贴的那段程序,主要就是为了去除变量中有干扰作用的乱字符,去除之后,再给变量重新赋值。

ddid 发表于 2009-5-4 21:24:46

原帖由 ddid 于 2009-4-28 00:19 发表 不好意,不知为什么,右括号都变成小叉子了…… 自己测试一下Discuz!的右括号问题……)()(a.b.c.d e f.g.h)yct1()))else do_after(1,"ask hongdou about test");

[ 本帖最后由 ddid 于 2009-5-4 09:39 PM 编辑 ]

sure 发表于 2009-5-4 23:05:49

原帖由 hualai 于 2009-5-4 04:41 AM 发表 http://pkuxkx.net/forum/images/common/back.gif
function set_state(st_name,st_value)
{
    for(i=0;i ]*(.*)两银子\(\bSilver\b\)$
%1是xx两银子,如何把这个%1赋值给脚本里的变量number?
选项里选择发送给脚本解析器这个我知道...
我问的是命令行里要如何 ...

我那段是为了剔除变量值里面的空格,其实应该用while的,一直用着没问题,就不改了。
页: 1 [2]
查看完整版本: 向sure请教几个问题