Sorry, it works but it's not exactly the best method.
But I'll show you anyway.
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#,ypos#+20,zpos#+12,0) or intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#+12,xpos#,ypos#+20,zpos#,0)
dec zpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#+8,ypos#+20,zpos#+8,0) or intersectObjectDBC(1,0,xpos#+8,ypos#+20,zpos#+8,xpos#,ypos#+20,zpos#,0)
dec zpos#,0.8
dec xpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#+12,ypos#+20,zpos#,0) or intersectObjectDBC(1,0,xpos#+12,ypos#+20,zpos#,xpos#,ypos#+20,zpos#,0)
dec xpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#+8,ypos#+20,zpos#-8,0) or intersectObjectDBC(1,0,xpos#+8,ypos#+20,zpos#-8,xpos#,ypos#+20,zpos#,0)
inc zpos#,0.8
dec xpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#,ypos#+20,zpos#-12,0) or intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#-12,xpos#,ypos#+20,zpos#,0)
inc zpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#-8,ypos#+20,zpos#-8,0) or intersectObjectDBC(1,0,xpos#-8,ypos#+20,zpos#-8,xpos#,ypos#+20,zpos#,0)
inc zpos#,0.8
inc xpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#-12,ypos#+20,zpos#,xpos#,ypos#+20,zpos#,0) or intersectObjectDBC(1,0,xpos#-12,ypos#+20,zpos#,xpos#,ypos#+20,zpos#,0)
inc xpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+20,zpos#,xpos#-8,ypos#+20,zpos#+8,0) or intersectObjectDBC(1,0,xpos#-8,ypos#+20,zpos#+8,xpos#,ypos#+20,zpos#,0)
dec zpos#,0.8
inc xpos#,0.8
endwhile
while intersectObjectDBC(1,0,xpos#,ypos#+50,zpos#,xpos#,ypos#,zpos#,0)
inc ypos#,0.2
grav# = 0
jump = 0
position object 6,xpos#,ypos#,zpos#
endwhile
if ypos# < 0 then ypos# = 0 : grav# = 0 : jump = 0
if ypos# > 410 then grav# = 0-grav#
There must be a better way
This is really slow when made into an exe.
(uses sparkys collision dll)
There are three types of people, those that can count and those that can't.