求教一个MUSH机器极简单的问题
脚本文件内容如下:function begindy()
num=1
DoAfterSpecial(2,"godiaoyu",10)
end
function diaoyu()
num=num+1
if num>99 then DoAfterspecial(2,"gobuyyuer",10)
else
Execute("gua yuer")
Execute("diao yu")
end
end
机器触发如下:
^[> ]*你从杨永福那里买下了一百个鱼饵。
执行:begindy()
^[> ]*你的经验增加了*点。
执行:diaoyu()
如此设置后,每次经验增加就报错:
:7: attempt to perform arithmetic on global 'num' (a nil value)
stack traceback:
:7: in function 'diaoyu'
:1: in main chunk
求解!谢谢大家!
北大侠客行MUD,中国最好的MUD 本帖最后由 afu 于 2012-2-25 04:50 PM 编辑
附加说明,godiaoyu和gobuyyuer是两个alias,分别是去钓鱼和去买鱼饵
我特意先去买了一次100个鱼饵,触发了去钓鱼的alias,按我的想法num应该等于1的。。。 错长老,怎么在MUSH里面显示变量值啊? 在function begindy()的前一行加 num=1
问题的症结在于:没有定义全局变量num,你在function begindy()中定义的num只是一个局部变量。 是的。函数里也可以声明全局变量。
页:
[1]