i`v try printing BSP COLLISION X,Y and Z but thay pass back -1.#IND if there is no hit and i not get a any thing out of COLLISION HIT.
any way the code i`v post had a typo.
FUNCTION PLAYER_SETUP()
PLAYER.TAG=NEW_OBJ()
MAKE OBJECT CUBE PLAYER.TAG,0.5
REM HIDE OBJECT PLAYER.TAG
SET BSP OBJECT COLLISION 1,PLAYER.TAG,2,0
SET BSP COLLISION THRESHHOLD 1,0.01
PLAYER.H=6
REM SET BSP COLLISION HEIGHT ADJUSTMENT 1,PLAYER.H
ENDFUNCTION
FUNCTION PLAYER_MOVE()
PLAYER.Y=PLAYER.Y+PLAYER.DY
v=BSP COLLISION HIT(1)
SET BSP CAMERA COLLISION RADIUS 1,PLAYER.TAG,PLAYER.X,PLAYER.Y,PLAYER.Z
print "hit=";v
IF v=1
PRINT "NO HIT"
ELSE
PLAYER.DY=0
PRINT "HIT"
ENDIF
PLAYER.X=PLAYER.X+PLAYER.DX
PLAYER.Z=PLAYER.Z+PLAYER.DZ
POSITION OBJECT PLAYER.TAG,PLAYER.X,PLAYER.Y,PLAYER.Z
POSITION CAMERA PLAYER.X,PLAYER.Y,PLAYER.Z
PLAYER.DX=PLAYER.DX*PHY_ficones
PLAYER.DY=PLAYER.DY*PHY_air-0.001
PLAYER.DZ=PLAYER.DZ*PHY_ficones
ENDFUNCTION
FUNCTION PLAYER_INPUT()
PLAYER.H=20.0
rem move camera
PLAYER.CX=PLAYER.CX+MouseMoveY()*0.5
PLAYER.CY=PLAYER.CY+MouseMoveX()*0.5
if PLAYER.CX90 then PLAYER.CX=90
PLAYER.CY=WRAPVALUE(PLAYER.CY)
ROTATE CAMERA PLAYER.CX,PLAYER.CY,0
IF UPKEY()=1
PLAYER.DX=PLAYER.DX+2*SIN(PLAYER.CY)
PLAYER.DZ=PLAYER.DZ+2*COS(PLAYER.CY)
ENDIF
ENDFUNCTION
--Dr 0--