问题,关于lua里函数计算和if语句
function xl(nn,nm) -------nn,nm分别为打坐100气血后hp指令抓取到的当前和最大内力thp=(nm-nn)/100
local agroup = GetVariable("test") ------test是抓取nn nm的trigger
local bgroup = GetVariable("dzrunning") -------dzrunning是另一个trigger
EnableTriggerGroup (agroup, false) ------关闭test
EnableTriggerGroup (bgroup, ture)
end
function dz(qx,nn,nm) -----重新抓取当前气血 当前内力和最大内力
qa=math.ceil((nm*2-nn)/thp)
if qa>qx
then send("dazuo "..qx)
elseif qa==qx
then send("dazuo "..qx)
elseif qa<qx
then send("dazuo "..qa)
elseif qa<10
then send("dazuo 10")
else send("dazuo 10")
end
这段语句我自己看来看去都没看出问题
但就是执行不了
错误提示是下面这句
:19: 'end' expected (to close 'function' at line 8) near '<eof>'
请各位大侠帮忙指点一二,谢谢
北大侠客行MUD,中国最好的MUD if op == "+" then
r = a + b
elseif op == "-" then
r = a - b
elseif op == "*" then
r = a*b
elseif op == "/" then
r = a/b
else
error("invalid operation")
end
function dz(qx,nn,nm) -----重新抓取当前气血 当前内力和最大内力
qa=math.ceil((nm*2-nn)/thp)
if qa>qx then
send("dazuo "..qx)
elseif qa==qx then
send("dazuo "..qx)
elseif qa<qx then
send("dazuo "..qa)
elseif qa<10 then
send("dazuo 10")
else
send("dazuo 10")
end
end规范点
[ 本帖最后由 mygame 于 2011-9-22 04:49 PM 编辑 ] 晕 我少写了个end
不过这样一来又有新的问题了
:9: attempt to perform arithmetic on global 'thp' (a nil value)
stack traceback:
:9: in function 'dz'
:1: in main chunk global 'thp' (a nil value)
全局变量thp的值为nil 函数xl没有调用
全局变量thp的值为空
qa=math.ceil((nm*2-nn)/thp)
这句解析就会出问题 那请问我在xl函数里的赋值出错了么?
thp=(nm-nn)/100
难道不能这么写? 把触发器帖出来 函数前面初始化下变量就好了
thp = 1(PS:加上这句,测试下)
function xl(nn,nm)
..............
.............. 我把脚本一行一行的删掉检测
现在可以确定问题出在
if qa>qx
then send("dazuo "..qx)
elseif qa==qx
then send("dazuo "..qx)
elseif qa<qx
then send("dazuo "..qa)
elseif qa<10
then send("dazuo 10")
else send("dazuo 10")
end
这段代码里
thp的问题在于不能2个同样的触发来激活脚本
会同时执行2个函数 所以会出错
只要先执行xl的触发 然后关掉这个触发使用enable dz就行了(这块之后再研究 我想应该可以把2个函数捏成一个函数的) 后来我发现还是会有出错,把dz里的nn nm重新命名就没事了
现在关键是if这块不知道什么问题
:7: attempt to compare string with number
stack traceback:
:7: in function 'dz'
:1: in main chunk
这是加上if之后出现的错误提示
页:
[1]
2