2016-01-22 46 views
0

在BizHawk(它是模擬器)上的lua控制檯上使用此非常短的腳本時,LUA控制檯和BizHawk都同時崩潰。 我想知道這個錯誤是來自我的腳本還是來自BizHawk,她的腳本是:(它應該做的是檢查玩家是否在特定時間段內移動[TimeoutConstant],如果他是[ 。因爲他已經死了,卡住或AFK]腳本加載保存的狀態稱爲文件名,並再次啓動這裏的腳本:使用短LUA腳本在BizHawk上崩潰

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

她是一個patebin鏈接:http://pastebin.com/mSw35diM –

回答

0

我承擔起「撞車」你的意思是「凍結」,這是不是在所有相同因爲你的腳本將模擬器變成了一個繁忙的循環,所以你沒有做任何事情來提高模擬器的運行時間。腳本的最後兩行需要是:

emu.frameadvance(); 
end 

順便說一句,模擬器lua腳本,腳本遊戲的名稱是必不可少的信息。