Getting a problem Here I either get nestling error at line 169 or if I put a loop at the end of the code I get a Stack overflow at line 32 error, wht is going wrong here? I adapted the code from some code Arkeli gave me as I was trying to work out how to get in and out of vehicles woth pilots or drivers
sync on
sync rate 0
hide mouse
autocam off
player = 1
vehicle = 2
load object "FPPilot.x",1
load object "CHOVERC.x",2
vehicleX# = 150.0
vehicleY# = 3.0
vehicleZ# = 150.0
vehicleAngY# = 0.0
playerX# = 50.0
playerY# = 3.0
playerZ# = 50.0
playerAngX# = 0.0
playerAngY# = 45.0
camX# = 0.0
camY# = 0.0
camZ# = 0.0
camAngX# = 0.0
camAngY# = 0.0
inVehicle = 0
playerView = 0
do
gosub _UpdateCar
gosub _UpdatePlayer
gosub _UpdateCam
sync
_Input:
if controlkey()
if oldctrl = 0
ctrl = 1
else
ctrl = 0
endif
oldctrl = 1
else
oldctrl = 0
ctrl = 0
endif
if keystate(47)
if oldv = 0
v = 1
else
v = 0
endif
oldv = 1
else
oldv = 0
v = 0
endif
if v = 1
if playerView = 0 then playerView = 1 else playerView = 0
endif
return
_UpdatePlayer:
if inVehicle = 0
playerAngX# = wrapvalue(playerAngX# + mousemovey()*0.25)
playerAngY# = wrapvalue(playerAngY# + mousemovex()*0.25)
if keystate(17)
playerX# = newxvalue(playerX#,playerAngY#,1.0)
playerZ# = newzvalue(playerZ#,playerAngY#,1.0)
endif
if keystate(31)
playerX# = newxvalue(playerX#,playerAngY#,-1.0)
playerZ# = newzvalue(playerZ#,playerAngY#,-1.0)
endif
if keystate(30)
playerX# = newxvalue(playerX#,wrapvalue(playerAngY#-90.0),1.0)
playerZ# = newzvalue(playerZ#,wrapvalue(playerAngY#-90.0),1.0)
endif
if keystate(32)
playerX# = newxvalue(playerX#,wrapvalue(playerAngY#+90.0),1.0)
playerZ# = newzvalue(playerZ#,wrapvalue(playerAngY#+90.0),1.0)
endif
playerY# = 3.0
else
playerAngX# = wrapvalue(playerAngX# + mousemovey()*0.25)
playerAngY# = carAngY#
playerX# = newxvalue(carX#,wrapvalue(carAngY#-45.0),3.0)
playerZ# = newzvalue(carZ#,wrapvalue(carAngY#-45.0),3.0)
playerY# = 5.0
endif
position object player,playerX#,playerY#,playerZ#
rotate object player,0.0,playerAngY#,0.0
return
_UpdateCar:
if inVehicle = 1
if keystate(17) or joystick slider a()=0
carX# = newxvalue(carX#,carAngY#,2.0)
carZ# = newzvalue(carZ#,carAngY#,2.0)
endif
if keystate(31) or joystick slider a()=65535
carX# = newxvalue(carX#,carAngY#,-1.5)
carZ# = newzvalue(carZ#,carAngY#,-1.5)
endif
if keystate(30) or joystick left()=1
carAngY# = wrapvalue(carAngY#-2.0)
endif
if keystate(32) or joystick right()=1
carAngY# = wrapvalue(carAngY#+2.0)
endif
if ctrl = 1
inVehicle = 0
playerX# = newxvalue(carX#,wrapvalue(carAngY#-90.0),12.0)
endif
else
if ctrl = 1
if (playerX#-carX#)^2+(playerZ#-carZ#)^2 <= 160
inVehicle = 1
endif
endif
endif
position object vehicle,vehicleX#,vehicleY#,vehicleZ#
rotate object vehicle,vehicleAngX#,vehicleAngY#,vehicleAngZ#
return
_UpdateCam:
if inVehicle = 0
if playerView = 0
camX# = playerX#
camY# = playerY# + 2.5
camZ# = playerZ#
camAngX# = playerAngX#
camAngY# = playerAngY#
else
camX# = newxvalue(playerX#,wrapvalue(playerAngY#+180.0),25.0)
camY# = newyvalue(playerY#,playerAngX#,-25.0)
camZ# = newzvalue(playerZ#,wrapvalue(playerAngY#+180.0),25.0)
camAngX# = playerAngX#
camAngY# = playerAngY#
endif
else
if playerView = 0
camX# = playerX#
camY# = playerY# + 2.5
camZ# = playerZ#
camAngX# = 0.0
camAngY# = vehicleAngY#
else
camX# = newxvalue(vehicleX#,wrapvalue(vehicleAngY#+180.0),25.0)
camY# = newyvalue(playerY#,playerAngX#,-25.0)
camZ# = newzvalue(vehicleZ#,wrapvalue(vehicleAngY#+180.0),25.0)
camAngX# = playerAngX#
camAngY# = vehicleAngY#
endif
endif
position camera camX#,camY#,camZ#
rotate camera camAngX#,camAngY#,0.0
return