在BizHawk(它是模拟器)的lua控制台上使用这个非常短的脚本时,LUA控制台和BizHawk同时崩溃。 我想知道错误是来自我的脚本还是来自BizHawk,她的脚本是:(它应该做的是检查玩家是否在一段时间内没有移动[TimeoutConstant]如果他[因为他死了,卡住或者afk],脚本会加载一个名为Filename的保存状态,然后重新开始。这是脚本:
Filename = "yolo.state"
TimeoutConstant = 80
rightmost = 0
timeout = TimeoutConstant
function initializeRun()
savestate.load(Filename)
rightmost = 0
timeout = TimeoutConstant
end
function getPositions()
marioX = memory.read_s16_le(0x94)
marioY = memory.read_s16_le(0x96)
local layer1x = memory.read_s16_le(0x1A);
local layer1y = memory.read_s16_le(0x1C);
screenX = marioX-layer1x
screenY = marioY-layer1y
end
initializeRun()
while true do
getPositions()
if marioX > rightmost then
rightmost = marioX
timeout = TimeoutConstant
end
if timeout <= 0 then
initializeRun()
end
timeout = timeout - 1
end
答案 0 :(得分:0)
我认为“崩溃”你的意思是“冻结”,这根本不是同一件事。它很冻结,因为你的脚本正在将模拟器置于繁忙的循环中。你没有做任何事情来推动模拟器的时间。脚本的最后两行必须是:
emu.frameadvance();
end
BTW,使用模拟器lua脚本,正在编写脚本的游戏名称是必不可少的信息。