olympic, i am not sure because i dont know what you are trying to do, but i think that you have put the if mX#<>X(i) and mZ#<>Z(i)
Move Object 3,7 in the wrong place. This is because in order for this to be true, the two if state ments before it also have to be true. i think it should look more like this:
For i=29 to 33
if ABS(mX#-X(i))+ABS(mZ#-Z(i)) >10100
if ABS(mX#-X(i))+ABS(mZ#-Z(i)) <11350
point object 3,X(i),0,Z(i)
endif
endif
if mX#<>X(i) and mZ#<>Z(i)
Move Object 3,7
endif
sync
Next i
the reason that it runs so slowly is because every time your for/next loop runs, it can't run any faster than your syunc rate(because of the sync). to get around this set your sync rate a lot higher, say 120.
the second problem i have implemented into your code for you, because i can't be bothered to explain it properly (its very early..) maybe i will later.
Do
...
rem get monster position
mX#=object position X(3)
mZ#=object position Z(3)
mY#=0
rem calculate the distance from targets and choose one
rem I dim X(33), Z(33), two array to store 33 nodes
For i=29 to 33
if ABS(mX#-X(i))+ABS(mZ#-Z(i)) >10100
if ABS(mX#-X(i))+ABS(mZ#-Z(i)) <11350
point object 3,X(i),0,Z(i)
if mX#<>X(i) and mZ#<>Z(i)
Move Object 3,7
endif
endif
endif
sync
Next i
...
Rem make radar
Copy Bitmap 2,1
set current bitmap 1
rem one target in radar
ink rgb(100,255,100),rgb(0,0,0)
Circle 22,21,1
`get rid of radar target
if mX#=X(i) and mZ#=Z(i)
ink rgb(0,0,0),rgb(0,0,0)
circle 22,21,1
endif
`player on map
ink rgb(0,0,255),rgb(0,0,0)
PRX#=X#/200
PRZ#=50-(Z#/200)
Circle PRX#,PRZ#,1
`monster on map
ink rgb(255,0,0),rgb(0,0,0)
MRX#=mX#/200
MRZ#=50-(mZ#/200)
Circle MRX#,MRZ#,1
Get image 200,0,0,50,50
set current bitmap 0
texture object 200,200
ink rgb(255,128,128),rgb(0,0,0)
Sync
Loop
hope this works.