北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 4048|回复: 4

littleknife看你的机器人有个地方不明白

[复制链接]
发表于 2011-12-20 23:25:47 | 显示全部楼层 |阅读模式
你在重写Addtrigger时候用的如下:
trireturnvalue=AddTriggerEx(triname, trimatch, "", triflag, -1, 0, "",  triscript, 0, 100)
为什么你不把trscript这个写在第三个参数里,而要用到那个脚本,这样写有什么好处吗,另外这个参数传递是怎么弄的,比如说如果写在第三个参数选择调用函数的话模式选择发送到脚本(倒数第二个参数改为12),然后用test(%1,%2)这样,按你的这种写法直接就在脚本那写个test就可以了,但是我对这种用法的参数传递有些迷惑,随便做了一个tr传过去的怎么是tr的名字。。。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-12-21 16:31:57 | 显示全部楼层
本帖最后由 littleknife 于 2011-12-21 08:25 PM 编辑

首先说,这个东西其实不是我的创作。取自于hellua的模块。我只是加工性的提出个框架模块方便阅读和修改而已。

至于这个函数,第三个参数应该是Sendto的文本内容,并不是一定之规。
之所以原函数忽略这项,我的理解是因为脚本引用方式比较方便使用罢了。


用脚本函数引用后,参数传递,可以参考下面的帖子。或看后边的帮助。
http://pkuxkx.com/forum/redirect ... 2265&pid=266719

要是有参数引用,需要命名为特殊的格式:
形如:
addtri("abc_name","触发行","abcGroup",abc_fun)
abc_fun=function(n,l,w)
print(w[1],w[2],w[3])
end
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-12-21 17:17:29 | 显示全部楼层
回复 2# littleknife

粘贴的链接怎么打不开啊,正好你写的这段代码是我另外一个比较迷惑的地方,在写函数的时候
function abc()
...
end
这个模式和你以及helllua命名函数的模式
abc=function() ... end
这两种模式有什么区别吗,怎么你们都用下面这种模式
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-12-21 20:21:14 | 显示全部楼层
http://pkuxkx.com/forum/redirect ... id=22265&pid=266719

这个链接就是,正则学习笔记那个。在置顶帖《一个脚本》里。
两种方式没有太大区别,只是看着方便。至于大家为什么这么做,我的理解是因为习惯。
这些lua教程里都有。

abc=function方式,不方便自调用,但阅读方便。function abc:cde()方式方便自调用。(这里在lua教程里也有。。。所实话我也不清楚为啥都这么用。哈哈。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-12-27 23:15:06 | 显示全部楼层
function foo (x) return 2*x end       -- 实际上这种写法是一个语法糖
foo = function (x) return 2*x end      -- 本质写法
有时间多看看这帖
http://www.cwowaddon.com/article-44-1.html
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 05:23 PM , Processed in 0.011203 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表