多善于使用print查找问题
我们无论是在叫代码还是在写LUA的时候往往遇到不少问题,比如不执行,或者数值不对。这个时候我们要善于多用print这个函数来找出问题所在。
举例:
function Talked(meindex, talkerindex , szMes, color) if npc.isFaceToFace(meindex, talkerindex) == 1 then token = "3\n 「"..char.getChar(meindex, "名字").."」" .."\n这是一个例子" .."\n这是一个例子" .."\n这是一个例子" .."\n [ 按钮点击1 ]" .."\n [ 按钮点击2 ]" lssproto.windows(talkerindex, "选择框", "确定", 1, char.getWorkInt(meindex, "对象"), token) end end function WindowTalked ( meindex, talkerindex, seqno, select, data) if seqno == 1 then num = other.atoi(data) if num == 1 then char.TalkToCli(talkerindex, -1, "执行成功1。", "黄色") elseif num == 2 then char.TalkToCli(talkerindex, -1, "执行成功2。", "黄色") end end end
通过代码放到游戏中测试,可以知道按钮点击1没反应,但按钮点击2却出来的是执行成功1,这里我们需要在num == 1和 num == 2里加print(11111)和print(22222)
重新读取LUA再测试会发现按钮点击1输出的是22222,按钮点击2则是无任何输出,由此我们可以断定是错位了,将token = "3\n中的3改成4,再进行测试,这下就对了。
我们在调试LUA或者代码的时候要多用用print,当遇到语句不执行的时候,要看看到底是因为判断语句没执行还是语句本身是错误导致的不执行下面的语句。