Hi there,
I can't take credit for this code, but I remember seeing it in my archive recently - its not tested either, so not sure if you can just plug in to what you have and play...
position object 11,posx#,posy#,posz#
hit#=object collision(11,0)
if hit#<>0
if get object collision y() then playergrav#=0
if (get object collision x())+(get object collision z())
if ((object size(hit#)+object position y(hit#))-posy#)<40
posy#=object size y(hit#)+object position y(hit#)+1
endif
endif
dec posx#,get object collision x()
dec posy#,get object collision y()
dec posz#,get object collision z()
endif
...hang on, found this too:
Rem Test for collision
if object collision(1,0)>0
obj#=object collision(1,0)
Rem While the player is touching the slope, increase the players y-pos by 1
while object collision(1,obj#)0
y#=y#+1
position object 1,x#,y#,z#
endwhile
Rem Adjust y-pos to stop the character vibrating(well it did on my program anyway)
y#=y#-1
Rem If the move was to much/slope was too steep then move player back
if y#>oldy#+10 then x#=oldx#:y#=oldy#:z#=oldz#
Rem Set players gravity to zero
pgrav#=0
jump=0
endif
EDIT: also, may be worth checking out the demo of NG's DLL, www.nuclearglory.dll
Hope it helps,
Cheers.