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

Unknown Cause for Error?

Asked by 9 years ago

Every time I run the print statement I get an error (at the line of the print not in my function) that says " attempt to index a nil value" If anyone could explain to me what's causing this I would very much appreciate it. c:

01local function getMostDramatic(axis,up,tab)
02    local most=tab[0]
03    for i, v in pairs(tab) do
04        if up then
05            if axis=="x" then if v.x>most.x then most=v end
06            elseif axis=="y" then if v.y>most.y then most=v end
07            end
08        elseif not up then
09            if axis=="x" then if v.x<most.x then most=v end
10            elseif axis=="y" then if v.y<most.y then most=v end
11            end
12        end
13    end
14end
15--The line that is causing the error is right here and not up in my function.
16print(getMostDramatic("x",true,{Vector2.new(2,0),Vector2.new(10,0)}).x)
0
I'm confused as to why it wasn't telling me there was an error on line 5,6,9, or 10 because tables actually start counting at 1 and so that was the nil value ... anywas c: I'm not getting this error anymore so idc Prohibetur 70 — 9y

1 answer

Log in to vote
1
Answered by 9 years ago

You either have too many ends, or not enough ends...let me see... Using tabs can help you organize your code. Spaces make it hard to read

01local function getMostDramatic(axis,up,tab)
02    local most=tab[0]
03    for i, v in pairs(tab) do
04        if up then
05            if axis=="x" then
06                if v.x>most.x then
07                    most=v
08                end
09            elseif axis=="y" then
10                if v.y>most.y then
11                    most=v
12                end
13            end
14        elseif not up then
15            if axis=="x" then
View all 27 lines...

Did you see what I fixed? You missed not one, but TWO ends!

Organize your code so that you don't make simple mistakes. Trust me, I catch myself with not enough ends a lot.

0
Where are you claiming that I missed 2 ends? ctrl+f showed that we both had 9 ends in our code ... Prohibetur 70 — 9y
0
Odd...I removed two ends. Did you change your code? Run it again and tell me the error once more lightpower26 399 — 9y
Ad

Answer this question