【发布时间】:2018-03-07 19:08:23
【问题描述】:
我是使用 LUA 执行任务的新手 Operation Flashpoint:Dragon Rising 的任务编辑器。我已经尝试了大约一周的时间来编写脚本,我搜索、编辑并搜索了编辑器的帮助索引,直到感觉我的眼睛在流血,这一切都导致了这一点。 我对这个“if...then”语句没有做任何事情有疑问。首先,这是整个事情:
function onMissionStart()
OFP:showLetterBoxOsd(false);
OFP:allowPlayerMovement(true);
OFP:allowPlayerFire(true);
OFP:setObjectiveState("Wave1","IN_PROGRESS");
OFP:setObjectiveState("Wave2","IN_PROGRESS");
OFP:activateEntitySet("enemy1");
end --This all seems to work fine, nothing to see here.
--OFP:isAlive(name of unit or entity set)
function isAlive() --After naming this function, a pesky "'<name>' expected near 'if'" error dissapeared so thats nice.
if OFP:isAlive("enemy1") == (false) --This "if..Then" statement should spawn "enemy2" when "enemy1" dies.
then
OFP:activateEntitySet("enemy2");
end
if OFP:isAlive("enemy2") == (false)
then
OFP:setObjectiveState("Wave2","COMPLETED")
OFP:missionCompleted()
end
end
现在这就是给我带来麻烦的原因:
function isAlive()
if OFP:isAlive("enemy1") == (false)
then
OFP:activateEntitySet("enemy2");
end
这应该在enemy1 死亡时生成enemy2,但在游戏中它可能不存在,它不起作用。
这为我的函数命名,下一行是在 if 附近抛出 '<name>',直到我这样做。
function isAlive()
这应该跟踪enemy1是否还活着,如果它返回一个假,它应该产生enemy2。
if OFP:isAlive("enemy1") == (false)
then
OFP:activateEntitySet("enemy2");
end
【问题讨论】:
-
Lua 在哪个宇宙中是一种“死语”?
-
我个人只在旧游戏或 Minecraft 的 Computercraft 中看到过它。我也有几个从事代码工作的人也这么说。不过我是个菜鸟,所以 Lua 的应用可能比我想象的要多。
-
您是否知道函数可能不存在,除非它们被调用?
-
“函数isAlive()”不是调用吗?还是我弄错了电话是什么?
-
更新:我想出了如何调用这些函数。它仍然没有在我想要的时候产生我想要的东西,但我认为我只会让波浪从用户激活的对象中产生,可能更容易。
标签: lua if-this-then-that