mudkiller
发表于 2015-8-23 08:40:09
本帖最后由 mudkiller 于 2015-8-23 01:06 AM 编辑
你说的我大概也明白,主要是不知道怎样在触发中调用 script中的函数,就是上面的tailei函数,怎样能把他执行呢,
如果能调用,那能做的事情就太多了,不知道哪位大侠能指教一下
另外我用xml文件主要是编一些小的插件,比如跟师傅学技能,用起来比mcl文件简单一些
to cappuccino还不太会用MUSH编写,反正怎样能用怎样算吧
adasibi
发表于 2015-8-23 14:14:59
仔细看大神的视频*接镖并到达目标城市*24分处,”注意发送到script“。
新创建的触发默认把命令tailei()直接发送给mud而不是lua解释器,大侠你创建触发的时候要在对话框里找到“发送到”(英文版的是"Send"),把它后面的下拉菜单从"World"改成"Script",这样命令tailei()就会由lua来解释了。
如果直接改xml,把<trigger>标签的send_to="10"改成send_to="12"。
mudkiller
发表于 2015-8-23 14:26:57
大侠你没有看懂我的意思
比如在script中有个函数
function tlei()
if tailei == 1then
wait.make (function ()
Execute("e;e")
wait.time(3)
Execute("sleep")
end)
end
end
怎样来执行这个函数
mudkiller
发表于 2015-8-23 14:29:48
这个应该很简单,就差一下点拨,我找了两个周末了,也没弄明白
上午在群里问了一下,也没人回答
adasibi
发表于 2015-8-23 14:59:49
大侠你是问怎么在MUSH里"定义"tlei() ,还是问怎么执行"已经定义"的tlei()?你的MUSH现在知道 tlei() 这个函斁吗?你可以通过菜单Game->Configure->Scripting在右下角设置一个前导字符比如"/",然后在输入框里执行“/tlei()”试一下。
mudkiller
发表于 2015-8-23 15:35:29
在XML文件中有个script代码段,其中定义了上面的函数,我要问的是怎么在触发命令中执行这个函数
adasibi
发表于 2015-8-23 15:56:20
本帖最后由 adasibi 于 2015-8-23 07:57 AM 编辑
<trigger
enabled="y"
group="学技能"
match="^.*你今天太累了,结果什么也没有学到。$"
regexp="y"
send_to="12" <!-- send_to="10":发送"tailei()"给mud。
send_to="12":调用lua执行tailei()。
要调用lua执行<send>里的东西就要把"10"改成"12"。 -->
sequence="100"
>
<send>tailei()</send>
mudkiller
发表于 2015-8-23 16:58:44
终于找到原因了,我一直在用MUSH -文件-导入 来加载XML文件,导致SCRIPT中的函数根本就没有生成,现在直接用插件功能,问题就解决了
感谢楼上的adasibi,一直耐心地给我解释。
找到问题的感觉是太爽了
ltblue
发表于 2015-11-21 09:35:50
我好歹也遍历了全地图,写了不少代码了,怎么你们说的我都听不懂啊
什么xml,什么SCRIPT,我怎么啥都没有
就是一个开始的lua文件,引用一堆lua文件,就完了......
littleknife
发表于 2015-11-22 08:11:54
回复 19# ltblue
他们并不是依靠框架体系来写机器,也就是并不是用《一个脚本》的思路。直接用底层的mcl文件和插件文件xml文件来写机器也是没问题的。。条条大路通罗马。。ttk_38