Log In  

I am making a puzzle game on a 6x6 grid at the moment. Every cell has two values: 1) The colour/type of cell 2) the variable of that cell
Thus every cell is two hexadecimal digits. I've made a level editer and all but I've run into a problem with level loading. Shortened to the problematic code, here is the problem:

levels={
    "0000000000000000000000000000000000000000000000000011c0c07000000000000000",
    "0000000000000000000000000000000000000000000000000011c0c07000000000000000"
}
function loadlevel(n)
    local ltol=levels[n]
    powerlevel=0
    for i=1,#ltol/2do
        local s1=1+(i-1)*2
        local s2=s1+1
        level[i]=sub(ltol,s1,s2)
    end
end
function _init()
    nl=2
    go=false
    loadlevel(1)
    go=true
end
function _update()
    local nogo=false
    for i=1, 16do
        if level[i]!="00"then
            nogo=true
        end
    end
    if go and not nogo then
        loadlevel(nl)
        nl+=1
    end
end

Error code:

runtime error line 8 tab 0
    for i=1,#ltol/2do
attempt to get length of local 'ltol' (a nil value)
at line 0 (tab 0)

I really can't seem to figure out a solution to this.
Cheers in advance!

P#89110 2021-03-17 17:27

debug you go/nogo logic - nl is incremented 30 times per second, you are trying to load level 3 which is obviously nil.

P#89113 2021-03-17 17:30

Ah. Just realised the problem. Initially in the design process for the game, it was played on a 4x4 grid, which in the end didn't allow for good gameplay, so I upped it to 6x6. I guess half of my brain still thinks that there are 36 items and not 16. What a k e r f u f f l e .

P#89114 2021-03-17 17:45

[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2024-03-28 15:53:57 | 0.008s | Q:12