Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
2

Elseif syntax error? Whats wrong with it? Order?

Asked by
WishXVI 94
4 years ago

So I'm trying to make a code system, and apparently I suck, because the third code isn't working for me because its an error. This is my WHOLE code if I got some sort of order wrong, you may use this code if you can fix it. Thanks!

local player = game.Players.LocalPlayer
local RE = game.ReplicatedStorage.EnterCode
local codes = player:WaitForChild("Codes")

--Optional if you want your code to have an expiration
local date = os.date("*t", os.time())

--Codes
local codelist = {
    code1 = "iread", -- Always put a comma every timne you're going to add another code
    code2 = "update2",
    code3 = "adbonus"
}

script.Parent.MouseButton1Click:Connect(function()
    if script.Parent.Parent.CodeHandler.Text == codelist.code1 then -- Im gonna add an expiration in this code
        if date["month"] >=0 and date["day"] >= 0 then -- Months are in numerical order .Month and Day must be in lowercase letters. Use "<=" If you want to make your code valid until that date. Use "==" if you want to make your code valid only on that date.
            if not codes:FindFirstChild("Code1") then -- This one here
                RE:FireServer(500, "Code1") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
                script.Parent.Text = "Code redeemed successfully!"
                script.Parent.Parent.CodeHandler.Text = "" -- Removes the text in our code handler textbox
                wait(2)
                script.Parent.Text = "Redeem Code"
            else
                script.Parent.Text = "Code already redeemed!"
                wait(2)
                script.Parent.Text = "Redeem Code"
            end 
        else
            script.Parent.Text = "Code expired!"
            wait(2)
            script.Parent.Text = "Redeem Code"      
        end
    elseif script.Parent.Parent.CodeHandler.Text == codelist.code2 then -- Your second code. So if our textbox matches the code in our dictionary...
        if not codes:FindFirstChild("Code2") then -- This one here
            RE:FireServer(300, "Code2") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
            script.Parent.Text = "Code redeemed successfully!"
            script.Parent.Parent.CodeHandler.Text = ""
            wait(2)
            script.Parent.Text = "Redeem Code"
        else
            script.Parent.Text = "Code already redeemed!"
            wait(2)
            script.Parent.Text = "Redeem Code"
        end
    else
        script.Parent.Text = "Code invalid!"
        script.Parent.Parent.CodeHandler.Text = ""
        wait(2)
        script.Parent.Text = "Redeem Code"
    end
    elseif script.Parent.Parent.CodeHandler.Text == codelist.code3 then -- Your third code. So if our textbox matches the code in our dictionary...
    if not codes:FindFirstChild("Code3") then -- This one here
        RE:FireServer(300, "Code3") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
        script.Parent.Text = "Code redeemed successfully!"
        script.Parent.Parent.CodeHandler.Text = ""
        wait(2)
        script.Parent.Text = "Redeem Code"
    else
        script.Parent.Text = "Code already redeemed!"
        wait(2)
        script.Parent.Text = "Redeem Code"
    end
else
    script.Parent.Text = "Code invalid!"
    script.Parent.Parent.CodeHandler.Text = ""
    wait(2)
    script.Parent.Text = "Redeem Code"
end
end)
0
You can't have elseif after 'end', it makes no sense, you can only have it after if or other elseif statement imKirda 4491 — 4y

1 answer

Log in to vote
1
Answered by 4 years ago

An elseif has to be on a line before the end of an if statement.

Ad

Answer this question