Page 1 of 1

Помогите плиз отредактировать ходилку.

Posted: 2007-02-25 12:02:48
by Black Widow

Code: Select all

sub gotoXY(x,y) 
var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0
for i=1 to 60
MyX=uo.getX();
MyY=uo.getY();
if LastX==MyX AND LastY==MyY then
halt=halt+1
else
halt=0
end if
if halt>=10 then
if uo.GetDir()==1 then
for z=0 to 8
uo.press(40)
next
end if
if uo.GetDir()==3 then
for z=0 to 8
uo.press(37)
next
end if
if uo.GetDir()==5 then
for z=0 to 8
uo.press( 38 )
next
end if
if uo.GetDir()==7 then
for z=0 to 8
uo.press(39)
next
end if
halt=15
end if
if abs(x-myX)<=1 AND abs(y-myY)<=2 then
return 1
end if
if x<=MyX then
if y<=MyY then
for z=0 to 3
uo.press( 38 )
next
else
for z=0 to 3
uo.press(37)
next
end if
else
if y<=MyY then
for z=0 to 3
uo.press(39)
next
else
for z=0 to 3
uo.press(40)
next
end if
end if
lastX=myX
lastY=myY
wait(200)
next
return 0
end sub

sub abs(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub


Нужно, чтобы чар приходил в точно заданную точку. Прошу не пинать, в скриптовании ничего не смыслю ВООБЩЕ. Спасибо за понимание и помощь.

Posted: 2007-02-25 12:08:12
by prof

Code: Select all

sub script()
var X = 1234
var Y = 4321
gotoXY(X,Y)
end sub

Posted: 2007-02-25 12:24:12
by Black Widow
Спасибо.
У меня в скрипте прописано типа такого.

Code: Select all

...
gotoXY(1111,2222)
script()
gotoXY(2222,3333)
script()
...

Проблема в том, что чар точно в эти точки иногда не приходит, становится рядом. В скрипте видимо есть допуски точности подхода. Где они написаны - для меня темный лес. Помогите пожалуйста.

Posted: 2007-02-25 12:36:29
by prof
Black Widow wrote:Спасибо.
У меня в скрипте прописано типа такого.

Code: Select all

...
gotoXY(1111,2222)
script()
gotoXY(2222,3333)
script()
...

Проблема в том, что чар точно в эти точки иногда не приходит, становится рядом. В скрипте видимо есть допуски точности подхода. Где они написаны - для меня темный лес. Помогите пожалуйста.

Тогда тебе проще найти другую ходилку.

Posted: 2007-02-25 12:42:05
by Black Widow
prof wrote:Тогда тебе проще найти другую ходилку.

Очень жаль, т.к. ходилка очень устраивает на предмет обхода препятствий.

Posted: 2007-02-25 13:00:35
by volhram

Code: Select all

if abs(x-myX)<=1 AND abs(y-myY)==0 then 

должно быть так

Posted: 2007-02-25 13:50:12
by Black Widow
volhram wrote:

Code: Select all

if abs(x-myX)<=1 AND abs(y-myY)==0 then 

должно быть так

Спасибо.