2016-11-29 36 views
-1

大家好我很奇怪,爲什麼這個代碼給我一個錯誤

它應該採取的所有球員一些現金,然後加1爲int值(階段)更新其費用和改變速度值(SpawnDelay),所以當他點擊它再次就知道他是在什麼階段,但出於某種原因,這並不爲工作,如果聲明顯示爲不正確,請幫助:如果聲明中RobloxLua不工作

local stage = script.Parent.stage.Value 
local text = script.Parent.Text 
script.Parent.MouseButton1Click:connect(function() 
    if stage == 0 then 
    for i, v in pairs(game.Players:GetPlayers()) do 
v.leaderstats.Cash.Value = v.leaderstats.Cash.Value - 100 

workspace.RedTycoon.Factory.SpawnDelay.Value = 15 
text = "Upgrade Speed   (Cost = 200)" 
stage = stage + 1 

    elseif stage == 1 then 

    for i, v in pairs(game.Players:GetPlayers()) do 
v.leaderstats.Cash.Value = v.leaderstats.Cash.Value - 200 

workspace.RedTycoon.Factory.SpawnDelay.Value = 10 
text = "Upgrade Speed   (Cost = 500)" 
stage = stage + 1 
end 
     elseif stage == 2 then 

    for i, v in pairs(game.Players:GetPlayers()) do 
v.leaderstats.Cash.Value = v.leaderstats.Cash.Value - 500 

workspace.RedTycoon.Factory.SpawnDelay.Value = 8 

text = "Upgrade Speed   (Cost = 1000)" 


stage = stage + 1 

end) 

我只是試過這個

local stage = script.Parent.stage.Value 
local text = script.Parent.Text 
local delaytime = workspace.RedTycoon.Factory.SpawnDelay.Value 
text = "Upgrade Speed   (Cost = 100)" 
script.Parent.MouseButton1Click:connect(function() 
if stage == 0 then 

delaytime = 15 
text = "Upgrade Speed   (Cost = 500)" 
stage = stage + 1 
for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
     player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 100 
    end 
end 



elseif stage == 1 then 
    delaytime = 10 
text = "Upgrade Speed   (Cost = 1000)" 
stage = stage + 1 
for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
     player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 500 
    end 
end 


elseif stage == 2 then 
    delaytime = 10 
    text = "Upgrade Speed   (Cost = 1500)" 
stage = stage + 1 
for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
     player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 1000 
    end 
end 


elseif stage == 3 then 
    text = "Upgrade Speed   (Cost = 2000)" 
    delaytime = 8 
stage = stage + 1 
for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
     player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 1500 
    end 
end 


elseif stage == 4 then 
    delaytime = 4 
    text = "Upgrade Speed   (Cost = 20000)" 
stage = stage + 1 
for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
     player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 2000 
    end 

end 

elseif stage == 5 then 
    delaytime = 2 
    text = "No More Upgrades Avalible" 
stage = stage + 1 
for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
     player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 20000 
    end 

end 

else 
    text = "Just for being annoying here you have 1 less cash:" 

for _, player in ipairs(game.Players:GetPlayers()) do 
    if player:FindFirstChild("leaderstats") then 
      player.leaderstats.Cash.Value = player.leaderstats.Cash.Value - 1 
     end 

end 
     wait(4) 
     text = "No More Upgrades Avalible" 


     end 

end) 

沒有工作

回答

1

刪除所有多餘的代碼語句後,我們可以看到,代碼結構,至少是,失蹤的三名end關鍵字。

script.Parent.MouseButton1Click:connect(function() 
    if stage == 0 then 
     for i, v in pairs(game.Players:GetPlayers()) do 
     -- missing end 
    elseif stage == 1 then 
     for i, v in pairs(game.Players:GetPlayers()) do 

     end 
    elseif stage == 2 then 
     for i, v in pairs(game.Players:GetPlayers()) do 
     -- missing end 
    -- missing 
end)