2017-08-26 99 views
0

我正在使用ComputerCraft,這是一款添加了可使用Lua腳本進行編程的計算機,監視器,調制解調器等的Minecraft mod。基本LUA問題

http://www.computercraft.info/wiki/Main_Page

在運行我的劇本我得到這個錯誤: 「BIOS:171:壞的說法:字符串預期,得到了無」。

我不明白,因爲它說171行,即使我的代碼不超過30行..有人可以解釋嗎?

monitor = peripheral.wrap("right") 
monitor.clear() 
monitor.setCursorPos(1, 1) 
monitor.setTextScale(1) 
monitor.write("Current mode:") 
monitor.setCursorPos(1, 3) 
monitor.write("furnace") 
redstone.setOutput("back", false) 
print("blablabla") 
write() 
if input == ja then 
    print("k") 
    redstone.setOutput("back", true) 
    monitor.clear() 
    monitor.setCursorPos(1, 1) 
    monitor.write("blabla") 
else 
    print("u sux") 
end 

幫助將不勝感激。

+0

我們不知道什麼是'peripheral' –

+0

是的,在不知道'peripheral'的情況下幾乎不可能猜到,但只是猜測'write()'看看這個命令 – macroland

+0

@JacekCz http:///computercraft.info/wiki/Peripheral_(API) – Ynk

回答

3

您在bios.lua中調用了一個錯誤,它實現了可以在腳本中使用的函數。像write

如果我們看一下bios.lua,我們看到171行實際上是write實現的一部分。

它說:while string.len(sText) > 0 do,其中sText

是線154

輸入參數function write(sText)有針對sTextnil情況下,不正確的錯誤處理或默認值。程序員在這裏做了一個馬虎的工作。

在這種情況下,第171行中的string.len(sText)將導致您收到的錯誤。

爲了解決這個問題,您必須刪除空的電話write,這相當於write(nil)或者您必須提供一些輸入字符串。

write("something")不會導致任何錯誤。如果您想打印空字符串,請撥打write("")