Page 1 of 2 12 LastLast
Results 1 to 10 of 20

Thread: Attempt to compare two nil values error in Lua Please Help

                  
   
  1. #1
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default Attempt to compare two nil values error in Lua Please Help

    I am getting this error in my script can someone help me out.

    game.lua:173:attempt to compare two nil values

    It seems to be the bit in bold on the script

    -- Created by splodger15

    ----------detect other cars collision--------------
    function detectCollision(player, opponent)
    if (player.x + character:width() > opponent.x) and (player.x < opponent.x + opponent.pic:width()) and (player.y + character:height() > opponent.y) and (player.y < opponent.y + opponent.pic:height()) then
    screen.waitVblankStart(60)
    score = score - 1
    end
    end


    Room_width = 480
    Room_height = 272
    player1x = 15
    player1y = 136
    road=Image.load("images/road.PNG")
    background=road
    car1=Image.load("images/car1.PNG")
    player1=car1
    car2=Image.load("images/car2.PNG")
    car3=Image.load("images/car3.PNG")
    car4=Image.load("images/car4.PNG")
    score = 0

    ----------walls------------

    wall1 = Image.createEmpty(480,2)
    wall2 = Image.createEmpty(2,272)
    wall3 = Image.createEmpty(2,272)
    wall4 = Image.createEmpty(480,2)

    wall1 = {x = 0, y = 0, height = wall1:height(), width = wall1:width() }
    wall2 = {x = 450, y = 0, height = wall2:height(), width = wall2:width() }
    wall3 = {x = 0, y = 0, height = wall3:height(), width = wall3:width() }
    wall4 = {x = 0, y = 299, height = wall4:height(), width = wall4:width() }



    player = {}
    player.x = 25
    player.y = 100
    playerHeight = 63
    playerWidth = 33

    car2 = {}
    car2.x = 128
    car2.y = 90
    car2Height = 63
    car2Width = 33
    car2.pic = Image.load("images/car2.PNG")

    car3 = {}
    car3.x = 228
    car3.y = 90
    car3Height = 63
    car3Width = 33
    car3.pic = Image.load("images/car3.PNG")

    car4 = {}
    car4.x = 28
    car4.y = 20
    car4Height = 63
    car4Width = 33
    car4.pic = Image.load("images/car4.PNG")

    character = car1

    ------------------player sprite loading--------------

    function rands1()
    rand2 = math.random(1,3)
    end

    function rands2()
    rand3 = math.random(1,3)
    end

    function rands3()
    rand4 = math.random(1,3)
    end

    XScrollPosition = 480

    numberOfScrolls = 0

    while true do
    math.randomseed(os.time() )
    rand=math.random(1,3)
    random1 =math.random(20,115)
    random2 =math.random(90,195)
    random3 =math.random(192,225)

    pad = Controls.read()
    screen:clear()

    oldx = player.x
    oldy = player.y
    screen:clear()

    if pad:left() then
    character = car1
    player.x = player.x - 2
    end

    if pad:right() then
    character = car1
    XScrollPosition = XScrollPosition - 10
    if XScrollPosition < 0 then
    XScrollPosition = XScrollPosition + 480
    numberOfScrolls = numberOfScrolls + 1
    end
    end

    if pad:up() then
    character = car1
    player.y = player.y - 2
    end

    if pad:down() then
    character = car1
    player.y = player.y + 2
    end

    if pad:triangle() then
    dofile("map.lua")
    end

    if pad:square() then
    Image:save("screenshot.png")
    end

    if pad:start() then
    break
    end


    if rand ==1 then
    car2.x = car2.x -5
    car3.x = car3.x-5
    car4.x = car3.x-5
    end

    if rand ==2 then
    car2.x = car2.x -5
    car3.x = car3.x-5
    car4.x = car3.x-5
    end

    if rand ==3 then
    car2.x = car2.x -5
    car3.x = car3.x-5
    car4.x = car3.x-5
    end

    if car2.x <=0 then
    car2.x =510
    car2.y = random1
    rands1()
    end

    if car3.x <=0 then
    car3.x = 520
    car3.y = random2
    rands2()
    end

    if car4.x <=0 then
    car4.x = 500
    car4.y = random3
    rands3()
    end

    if car1X100 > car2X90 then
    score = score +1
    end


    screen:clear()

    screen:blit(XScrollPosition, 0, road)
    screen:blit(2,2,score)


    if XScrollPosition > 0 then
    screen:blit(XScrollPosition - 480, 0, road)
    else
    screen:blit(XScrollPosition + 480, 0, road)
    end

    if numberOfScrolls > 30 then
    dofile("eol.lua")
    end

    if player.x > 448 then
    Player.x = 448
    end
    if player.x < 0 then
    player.x = 0
    end

    if player.y > 240 then
    player.y = 240
    end
    if player.y < 0 then
    player.y = 0
    end


    detectCollision(player, car2)
    detectCollision(player, car3)
    detectCollision(player, car4)

    -----------blit background and player------------

    screen:blit(player.x, player.y, character)
    screen:blit(car2.x, car2.y, car2.pic)
    screen:blit(car3.x, car3.y, car3.pic)
    screen:blit(car4.x, car4.y, car4.pic)
    screen.flip()
    screen.waitVblankStart()
    end

    PSN ID: splodger15

  2. #2
    DCEmu Old Pro
    Join Date
    May 2006
    Posts
    1,073
    Rep Power
    75

    Default

    the 2 variables (playerCarX100 and enemyCarX90) are not set variables, although im 99% sure that you accidentally got the names wrong. Cant help you though, since ive only just start learning lua...again, lol

  3. #3
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    Is there someone that can help

    PSN ID: splodger15

  4. #4
    DCEmu Coder PSPKOR's Avatar
    Join Date
    Apr 2006
    Location
    England
    Age
    36
    Posts
    184
    Rep Power
    70

    Default

    What are these command supose to do? "car1X100", "car2X90"
    LEARN, MASTER and ACHIEVE!!
    'Bruce Lee'

  5. #5
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    Thats why i think it is wrong

    I am no good at scoring in Lua

    PSN ID: splodger15

  6. #6
    DCEmu Coder PSPKOR's Avatar
    Join Date
    Apr 2006
    Location
    England
    Age
    36
    Posts
    184
    Rep Power
    70

    Default

    Well what is it that you want them two commands to do?
    LEARN, MASTER and ACHIEVE!!
    'Bruce Lee'

  7. #7
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    I was going to have it so that if the player's x axis was bigger than the enemy's x axis you have a point added

    PSN ID: splodger15

  8. #8
    PS3 User Gizmo356's Avatar
    Join Date
    Feb 2006
    Age
    33
    Posts
    1,756
    Rep Power
    124

    Default

    you cant do that cause you didn't make those into variables. you can try something like this

    player.x=100
    enemy.x=100
    points=50
    while true do
    screen:clear()
    pad=Controls.read()
    if player.x>enemy.x then
    points=points+2
    end

    its just that you never made a variable for you enemy x axis well thats what I think cause I dont have anyway of testing it

  9. #9
    DCEmu Coder splodger15's Avatar
    Join Date
    Jun 2006
    Location
    London
    Age
    34
    Posts
    4,123
    Rep Power
    95

    Default

    Gizmo i put in that script you showed me but i am getting this error (See Pic) I have made the line bold that has the error

    Here is the code

    -- Created by splodger15

    ----------detect other cars collision--------------
    function detectCollision(player, opponent)
    if (player.x + character:width() > opponent.x) and (player.x < opponent.x + opponent.pic:width()) and (player.y + character:height() > opponent.y) and (player.y < opponent.y + opponent.pic:height()) then
    screen.waitVblankStart(60)
    score = score - 1
    end
    end


    Room_width = 480
    Room_height = 272
    player1x = 15
    player1y = 136
    road=Image.load("images/road.PNG")
    background=road
    car1=Image.load("images/car1.PNG")
    player1=car1
    car2=Image.load("images/car2.PNG")
    car3=Image.load("images/car3.PNG")
    car4=Image.load("images/car4.PNG")
    score = 0
    player1.x=100
    car2.x=100

    screen:blit(2,2,score)


    ---------walls------------

    wall1 = Image.createEmpty(480,2)
    wall2 = Image.createEmpty(2,272)
    wall3 = Image.createEmpty(2,272)
    wall4 = Image.createEmpty(480,2)

    wall1 = {x = 0, y = 0, height = wall1:height(), width = wall1:width() }
    wall2 = {x = 450, y = 0, height = wall2:height(), width = wall2:width() }
    wall3 = {x = 0, y = 0, height = wall3:height(), width = wall3:width() }
    wall4 = {x = 0, y = 299, height = wall4:height(), width = wall4:width() }



    player = {}
    player.x = 25
    player.y = 100
    playerHeight = 63
    playerWidth = 33

    car2 = {}
    car2.x = 128
    car2.y = 90
    car2Height = 63
    car2Width = 33
    car2.pic = Image.load("images/car2.PNG")

    car3 = {}
    car3.x = 228
    car3.y = 90
    car3Height = 63
    car3Width = 33
    car3.pic = Image.load("images/car3.PNG")

    car4 = {}
    car4.x = 28
    car4.y = 20
    car4Height = 63
    car4Width = 33
    car4.pic = Image.load("images/car4.PNG")

    character = car1

    ------------------player sprite loading--------------

    function rands1()
    rand2 = math.random(1,3)
    end

    function rands2()
    rand3 = math.random(1,3)
    end

    function rands3()
    rand4 = math.random(1,3)
    end

    XScrollPosition = 480

    numberOfScrolls = 0

    while true do
    math.randomseed(os.time() )
    rand=math.random(1,3)
    random1 =math.random(20,115)
    random2 =math.random(90,195)
    random3 =math.random(192,225)

    pad = Controls.read()
    screen:clear()

    oldx = player.x
    oldy = player.y
    screen:clear()

    if pad:left() then
    character = car1
    player.x = player.x - 2
    end

    if pad:right() then
    character = car1
    XScrollPosition = XScrollPosition - 10
    if XScrollPosition < 0 then
    XScrollPosition = XScrollPosition + 480
    numberOfScrolls = numberOfScrolls + 1
    end
    end

    if pad:up() then
    character = car1
    player.y = player.y - 2
    end

    if pad:down() then
    character = car1
    player.y = player.y + 2
    end

    if pad:triangle() then
    dofile("map.lua")
    end

    if pad:square() then
    Image:save("screenshot.png")
    end

    if pad:start() then
    break
    end

    if player1.x>car2.x then
    score=score+2
    end


    if rand ==1 then
    car2.x = car2.x -5
    car3.x = car3.x-5
    car4.x = car3.x-5
    end

    if rand ==2 then
    car2.x = car2.x -5
    car3.x = car3.x-5
    car4.x = car3.x-5
    end

    if rand ==3 then
    car2.x = car2.x -5
    car3.x = car3.x-5
    car4.x = car3.x-5
    end

    if car2.x <=0 then
    car2.x =510
    car2.y = random1
    rands1()
    end

    if car3.x <=0 then
    car3.x = 520
    car3.y = random2
    rands2()
    end

    if car4.x <=0 then
    car4.x = 500
    car4.y = random3
    rands3()
    end



    screen:clear()

    screen:blit(XScrollPosition, 0, road)



    if XScrollPosition > 0 then
    screen:blit(XScrollPosition - 480, 0, road)
    else
    screen:blit(XScrollPosition + 480, 0, road)
    end

    if numberOfScrolls > 30 then
    dofile("eol.lua")
    end

    if player.x > 448 then
    Player.x = 448
    end
    if player.x < 0 then
    player.x = 0
    end

    if player.y > 240 then
    player.y = 240
    end
    if player.y < 0 then
    player.y = 0
    end


    detectCollision(player, car2)
    detectCollision(player, car3)
    detectCollision(player, car4)

    -----------blit background and player------------

    screen:blit(player.x, player.y, character)
    screen:blit(car2.x, car2.y, car2.pic)
    screen:blit(car3.x, car3.y, car3.pic)
    screen:blit(car4.x, car4.y, car4.pic)
    screen.flip()
    screen.waitVblankStart()
    end

    PSN ID: splodger15

  10. #10
    PS3 User Gizmo356's Avatar
    Join Date
    Feb 2006
    Age
    33
    Posts
    1,756
    Rep Power
    124

    Default

    hey lets talk on msn it will be alot easyier just add me.

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •