ok, in order to walk on the matrix, you need the know the height above each matrix point... to do this you use the
get ground height command, i think it's parameters are matrix number, position x, position y. In your case the code should be something like:
rem log object position
posx#=object position x(1)
posz#=object position z(1)
posy#=get ground height(1,posx#,posz#)
what that should do is get the height of the matrix at point posx# and posz#, you then use this height stored in posy# to position your object. (check that the get ground height works).
rounding the hills take more work... it would be cool though if db had two types of randomise matrix implementations, one to totally randomise the matrix and the second to kinda make a random terrain with smooth hills.