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

Simple If Statement messed up the next If statement, how do I fix this?

Asked by 7 years ago

I have a function that basically turns ore into metal or raw meat into cooked meat. Both if Statements work independently, but with the first one in the function, when It is run on something that is "raw meat" (aka not an ore) the if statement recognizes that ore is nil and the script breaks. What I want it to do is recognize the ore is nil and then go on to the next If statement. Should be an easy fix I just must be missing something. Thanks guys! (I originally had just two separate if statements and no elseif, but then i tried the else if and neither work.

function heatUp(part)
    local heat = part.Heat
    local newName = heat.NewName.Value
    local newColor = heat.NewColor.Value
    local newRef = heat.NewRef.Value
    local newTrans = heat.NewTrans.Value
    local newOther = heat.NewOther:GetChildren()[1]

    part.Name = newName
    part.BrickColor = newColor
    part.Reflectance = newRef
    part.Transparency = newTrans

    if part.Ore.Value ~= nil then
        part.Mesh:remove()
        part.Size = Vector3.new(1, .6, 2)
        part.Material = ("Metal")
        else if

        part.Heat.Value ~= nil then
        part.Heat.NewOther.Edible.Parent = part
        part.Heat:remove()
        end
    end

2 answers

Log in to vote
0
Answered by 7 years ago

Your problem is that you wrote

else if

Instead of

elseif
0
Common mistake, I've done it while making a slot machine Ex_plore 62 — 7y
0
If you use elseif your code will be neater Ex_plore 62 — 7y
Ad
Log in to vote
0
Answered by
RubenKan 3615 Moderation Voter Administrator Community Moderator
7 years ago
Edited 7 years ago

The problem lays in your if statement. You use else if instead of elseif, wich would mean it requires an end for every new if.

What you're basicly doing is:

function stuff(args)

    if Statement then
        -- stuff
    else 
        if OtherStatement then
            -- stuff
        end
    end

--see the problem here? Not enough ends.

The easy way to solve this:

You gotta change your else if into elseif, because it'd require a few extra ends otherwise. That's all.

Example:

function stuff(args)

    if Statement then
        -- stuff
    elseif OtherStatement then
        -- stuff
    end
end
0
For some reason I'm still getting the error "Ore is not a valid member of part" why would that matter if there's an elseif statement? Gwolflover 80 — 7y

Answer this question