2013-04-25 53 views
0

林在編碼業餘。所以,如果我面對一些事情,請介意我。的Lua - 夫婦的問題

不管怎麼說,即時製作α相對於OS IM做對嗎?我在做我的安裝程序。兩個問題。我可以從pastebin獲取代碼,然後讓我的lua腳本下載它嗎?二。我把代碼的「打印」部分放在cmd中。我收到「非法字符」。我不知道出了什麼問題。這是我的代碼。

--Variables 
Yes = True 
No = False 
--Loading Screen 
print ("1") 
sleep(0.5) 
print("2") 
sleep(0.5) 
print("Dowloading OS") 
sleep(2) 
print("Done!") 
sleep(0.2) 
print("Would you like to open the OS?") 
end 
+4

你是「業餘」的程序員,但你*進行操作系統*慢下來?如果你甚至無法理解語法上正確的Lua(這在語法上不正確),那麼從製作操作系統來說,你就是一個很長的路要走。 – 2013-04-25 04:30:46

+0

它是一個alpha。另外,我明白這一點。我在一步一步地教自己。 – TwitchyCake 2013-04-26 00:01:26

回答

3

我看到您的代碼有幾個問題。

首先,TrueFalse都是毫無意義的名字 - 它,除非你有以前分配,這對他們,都等於nil。因此,您的YesNo變量都被設置爲nil爲好。這不是因爲lua中不存在真假 - 它們只是小寫:truefalse。創建YesNo變量是多餘的,很難讀 - 只使用truefalse直接。

其次,如果您使用從他們的網站下載的標準lua,sleep是不是一個有效的功能(儘管它在Lua的Roblox版本,或者我聽說過)。與大寫TrueFalse一樣,默認情況下,睡眠爲nil,因此調用它將不起作用。根據您運行的是什麼,如果您使用的是mac,則需要使用os.execute("sleep " .. number_of_seconds);如果使用的是PC,則需要使用os.execute("timeout /t " .. number_of_seconds)。您可能需要這些包裝成一個function

function my_sleep_mac(number_of_seconds) 
    os.execute("sleep " .. number_of_seconds) 
end 

function my_sleep_PC(number_of_seconds) 
    os.execute("timeout /t " .. number_of_seconds) 
end 

至於您所遇到的特定錯誤,我認爲這是由於您的end語句作爲你的程序的結束。 lua中的end並不完全符合您的想法 - 它沒有指定程序的結束。 Lua可以通過查看文件中是否存在任何文本來確定程序結束的位置。它有什麼想不通的,沒有你說這就是代碼末尾的各種子塊,IE的if陳述,function S,等等。例如樹枝,假設你寫的代碼

print("checking x...") 
if x == 2 then 
print("x is 2") 
print("Isn't it awesome that x is 2?") 
print("x was checked") 

lua有沒有辦法知道是否最後一條語句,打印x被檢查,應該只發生在x爲2或始終。因此,您需要明確說明代碼的各個部分何時結束,爲此您使用end。但對於文件來說,這是不必要的,而且實際上會導致錯誤。這裏的if語句引入end

print("checking x...") 
if x == 2 then 
print("x is 2") 
print("isn't it awesome that x is 2?") 
end 
print("x was checked") 

雖然盧阿並不關心,這是一個非常好的主意,縮進這些代碼段,這樣就可以一眼看出它開始和結束:

print("checking x...") 
if x == 2 then 
    print("x is 2") 
    print("isn't it awesome that x is 2?") 
end 
print("x was checked") 

與問候你的「引擎收錄」的問題,你將有更加具體。

+0

我試圖讓它在哪裏,它會採取pastebin代碼,然後將文本下載到您的PC上。 – TwitchyCake 2013-04-26 00:04:45

+0

下載什麼文字?並從哪裏?通過下載,你的意思是從互聯網下載(在這種情況下,你必須建立一個服務器),或從文件中「下載」。這是「pastebin」紙板嗎? IE中存儲複製/粘貼文本的位置? – SelectricSimian 2013-04-26 19:55:47

0

可以實現與操作系統無關的(但CPU密集型)sleep方式:

local function sleep(seconds) 
    local t0 = os.clock() 
    repeat 
    until os.clock() - t0 >= seconds 
end 
+0

'os.clock() - t0> = n'應該是'os.clock() - t0> = seconds' =) – hjpotter92 2013-04-25 10:35:35

+0

@ hjpotter92 - 謝謝。固定。 – 2013-04-25 10:43:52