local otherteam = {}
function onLoad()
...
Config.aaRange.enemyrange:addParam("enemy0", otherteam[0], SCRIPT_PARAM_ONOFF, false)
Config.aaRange.enemyrange:addParam("enemy1", otherteam[1], SCRIPT_PARAM_ONOFF, false)
Config.aaRange.enemyrange:addParam("enemy2", otherteam[2], SCRIPT_PARAM_ONOFF, false)
end
function onDraw()
...
for k = 0, 3, 1 then
if hero.charName == otherteam[k] then
if (Config.aaRange.enemyrange."enemy" .. k) then
...
end
end
end
end
我尝试在运行时尝试连接全局敌人错误。
我可以通过删除for k循环并使用
分隔if语句来轻松解决这个问题if (Config.aaRange.enemyrange.enemy0) then
end
if (Config.aaRange.enemyrange.enemy0) then
end
if (Config.aaRange.enemyrange.enemy0) then
end
但这看起来很混乱(我有超过3个配置)。我甚至尝试过: j ="敌人" .. k
并在if语句中添加j而不是enemy0但没有。
我猜这是因为我试图用数字添加字符串?对不起,几个小时前才开始使用lua:x
答案 0 :(得分:1)
Lua支持强制,因此在数字中添加字符串是有效的。但是如果你写的话
j = "enemy" .. k
解释程序将Config.aaRange.enemyrange.j
作为Config.aaRange.enemyrange["j"]
,您应该使用Config.aaRange.enemyrange[j]
代替if Config.aaRange.enemyrange["enemy" .. k] then
。
如果没有其他变量,您可以编写
if Config.aaRange.enemyrange["enemy" .. tostring(k)] then
或更好:
{{1}}