I've played with your code some, and made some changes...
sync rate 60
sync on
load bitmap "fire.bmp",1
get image 1,0,0,128,128
delete bitmap 1
make matrix 1,10000.0,10000.0,25,25
prepare matrix texture 1,1,1,1
randomize matrix 1,500
`LOAD OBJECT "L-Ninja-idle.x",1 : APPEND OBJECT "L-Ninja-Move.x",1,100
make object sphere 1, 5
rem make a drone sphere for the camera, and hide it
make object sphere 2, 5 : hide object 2
YROTATE OBJECT 1,180 : FIX OBJECT PIVOT 1
`LOOP OBJECT 1,0,20 : SET OBJECT SPEED 1,10
position camera 5000,200,5000
rem Activate manual syncronization
SYNC ON
x# = 100
`object position X(1)
z# = 100
`object position Z(1)
rem Begin loop
DO
rem (xpos and zpos are the x and z positions of your hero, whatever they might be
`position object 1, xpos,ground_height,zpos
y# = Get ground height(1,x#,z#)
`Position Camera X#,Y#+35,Z#
rem position the camera drone
position object 2,x#,y#,z# : set object to object orientation 2, 1
rem pitch the drone down...
pitch object down 2, 11
rem move it backwards...
move object 2, -35
rem position the camera
position camera object position x(2), object position y(2), object position z(2)
rem reset the drone
move object 2, 35
pitch object up 2, 11
`camdist#=35.0 : camhigh#=ground#+10.0 : camfade#=3.5
point camera x#,y#,z#
`set camera to follow x#,y#,z#,a#,camdist#,camhigh#,camfade#,1
rem Modify character angle based on left/right keys
stage=0
IF LEFTKEY()=1 THEN turn object left 1, 8
`a#=a#-8.0
IF RIGHTKEY()=1 THEN turn object right 1, 8
`a#=a#+8.0
`a#=wrapvalue(a#)
rem Modify character position based on up/down keys
IF UPKEY()=1 THEN move object 1, 5
`x#=NEWXVALUE(x#,a#,3) : z#=NEWZVALUE(z#,a#,3) : stage=1
IF DOWNKEY()=1 THEN move object 1, -5
`x#=NEWXVALUE(x#,a#,-3) : z#=NEWZVALUE(z#,a#,-3) : stage=1
remstart If character action changes
IF stage<>oldstage
IF stage=0
SET OBJECT FRAME 1,0.0
LOOP OBJECT 1,0,20
SET OBJECT SPEED 1,10
ENDIF
IF stage=1
SET OBJECT FRAME 1,105.0
LOOP OBJECT 1,105,125
SET OBJECT SPEED 1,40
ENDIF
oldstage=stage
ENDIF
remend
rem Update character position and angle
x# = object position X(1)
z# = object position Z(1)
POSITION OBJECT 1,x#,Get ground height(1,x#,z#),z#
`YROTATE OBJECT 1,a#
rem Refresh screen
SYNC
rem End loop
LOOP
Please note that I changed the texture name, and rem'd all things that had to do with the ninja model. You should be able to switch it back with no problems
something