lua 一点儿疑问(函数调用方式)
-------------------钓鱼机器人 start--------------------------require "wait"
require "tprint"
function diaoyu_start()
wait.make (function ()--- coroutine below here
line, wildcards =
wait.regexp ("^(You heal .*|You lose your concentration)$")
疑问:
1/
'make' 是 wait.lua 中的函数,这里调用方式是'wait.make()',直接用'make()'行不行?
并且,tprint.lua中的'tprint()'就可以直接以'tprint()'使用,何也。。
2/
这个'line, wildcards = '是怎么个意思,lua程序设计里好像没它的说明。
[ 本帖最后由 ssb 于 2009-12-3 12:35 AM 编辑 ] 触发器的发送框中不但可以发送普通的 MUD 命令,还可以执行脚本命令,你只要把发送框发送的对象选为“脚本解析器”就可以了。
如果脚本很复杂,在发送框中编写会很吃力。这时你可以把这个脚本作为一个函数写在游戏的脚本文件中(在脚本配置对话框中设置),然后在触发器设置对话框的脚本框中填入这个脚本名称就可以调用它了。
触发器调用的脚本函数必须有以下三个(Lua 中有四个)参数:
触发器名称
触发器匹配的行
包含前十个通配符内容的数组(Lua 中包含了所有通配符)
包含匹配行中所有样式的表(这个参数仅在 Lua 中有效)
下面是一个 VBscript 脚本函数的示例:
sub MyTrigger (name, line, wildcards)
world.Note "Trigger " & name & " matched."
world.Note "Wildcard 1 was" & wildcards (1)
end sub wildcard 10 包含了整个被匹配的文本,当使用正则表达式的时候,它不一定和匹配行一样。对于其它通配符(例如,命名的通配符,超过 9 的通配符),你可以用 GetTriggerWildcard 函数来获取。
在 Lua 脚本中,wildcard 10 包含第十个通配符的内容,wildcard 11 包含了第十一个通配符的内容......wildcards 表中储存了触发器中所有通配符的内容,同时还包含了整个被匹配的行(关键字为 0)和指定了名称的通配符(关键字为通配符的名称)。 非常感谢帮忙,
不过看了回复还是感觉有点云里雾里的,
最好再直接一点儿,
line, wildcards =
wait.regexp ("^(You heal .*|You lose your concentration)$")
上面这两行它究竟是什么意思呢?
如果是赋值的话(感觉应该是),那是怎么样的一个过程呢,
路漫漫哪,,, 这几天感觉好像比较平静,莫非高手在秘密进行某种峰会? 请高手帮忙解答吧
活鱼呢?这个机器可是你写的哪。
猫呢,时代呼唤大熊猫啊,
快来吃鱼了! 表达式可以为序列即 a, b, c, d ....
lua函数支持多重返回值
囧如
function TestMultiReturn(a, b)
return a + b, a - b;
end
a = 4;
b = 1;
c, d = TestMultiReturn(a, b);
Note ("c = ", c, "d = ", d);
输出c = 5d = 3 这么晚了duno还抽时间给回复,
感动中。。
终于等到了
第一个问题是怎么回事儿,感觉我的问题都是常识性的好像。。
1/
'make' 是 wait.lua 中的函数,这里调用方式是'wait.make()',直接用'make()'行不行? ssb去Gammon的网站问了?
http://gammon.com.au/forum/?id=9896&page=999 是啊,现在想想感觉挺虎的,
我那E文我自个儿都看不大懂 呵呵,回答你问题的3个老外,都是很牛的。
页:
[1]