Page 1 of 1

Хождение, трабла...

Posted: 2006-04-13 11:25:49
by Sanch
Поискал по сайту, что либо что мой ум способен понять не нашел, зарание благодарю за помощь.

Проблема в следующем, мининг, когда чар выкапывает элементаля, тк тот появляется прям из под чара, чар отбегает на 3 или 2 шага в заданую сторону, 3 или 2 зависит от того, будет он поворачиваться или пойдет сразу, это в совю очередь завист от последней координаты в которой он копал, затем он его убивает не сходя с места, проблема возникает при возвращении после смерти элема, тк скрипт не знает сколько все же шагов он сделал когда отбегал. Хочу сделать так чтобы он возвращался именно на то место с которго бегал, вот только не знаю как, есть ли комманда подойти к определенному тайтлу или хотьба по координатам, а не по шагам с помощью uo.press() или счетчик шагов, или определение направления чара, то есть в какую сторону он повернут?

Posted: 2006-04-13 12:19:45
by dmitrykit
zapominaj koordinaty pered otbeganijem, i vozvraschajsja tuda...

Posted: 2006-04-13 12:33:32
by SLAK

Code: Select all

sub sss()
var x= ;
var y= ; тут координаты куда сваливать если выкопали элема
if <выкопали элема> then
var MyX=uo.getx()
var MyY=uo.gety()
walk(x,y);убегаем от элема
<ждём пока сдохнет элем>
walk(MyX,MyY);бежим в место где копали до появления элема
end if
end sub

sub Walk(x,y)
go:
while not uo.getX() == x || not uo.getY() == y
if not uo.getX() == x then
if uo.getX() > x then
uo.press(36)
else
uo.press(34)
endif
endif
if not uo.getY() == y && uo.getX() == x then
if uo.getY() > y then
uo.press(33)
else
uo.press(35)
endif
endif
checklag()
wend
checklag()
if not uo.getX() == x || not uo.getY() == y then
goto go
endif
endsub


Вот тебе примерчик.
Ходилку можна и по шустрее вставить...

Posted: 2006-04-13 14:42:00
by Sanch
zapominaj koordinaty pered otbeganijem, i vozvraschajsja tuda...


Читать вопрос можно и по-внимательнее...
Как их запомнить я сам знаю, мне было интересно как попасть на эти координаты потом.

SLAK спасибо, все понял.

Posted: 2006-04-13 16:38:12
by dmitrykit
Sanch wrote:
zapominaj koordinaty pered otbeganijem, i vozvraschajsja tuda...


Читать вопрос можно и по-внимательнее...
Как их запомнить я сам знаю, мне было интересно как попасть на эти координаты потом.

SLAK спасибо, все понял.


&pathfind($lastx,$lasty);

Posted: 2006-04-14 10:42:49
by Sanch

Code: Select all

sub Walk(x,y) 
go:
while not uo.getX() == x || not uo.getY() == y
if not uo.getX() == x then
if uo.getX() > x then
uo.press(36)
else
uo.press(34)
endif
endif
if not uo.getY() == y && uo.getX() == x then
if uo.getY() > y then
uo.press(33)
else
uo.press(35)
endif
endif
checklag()
wend
checklag()
if not uo.getX() == x || not uo.getY() == y then
goto go
endif
endsub


Эта ходилка имеет только 4 степени свободы хождения, 2 по X и 2 по Y, ет при мининге оч неудобно тк в шахтах оч много скал, эту проблему реально решить? есть ли ходилки которые ходит еще и вниз вверх и тд?

Posted: 2006-04-14 11:48:26
by SLAK

Posted: 2006-04-14 14:07:30
by Sanch
Есть еще некая трабла, правда не значительная, uo.GetRun() не пашет, как написано должен возвращать числовое значение того бежит чар или стоит, я так пологаю 1 или 0, вот только вставил следующее после запуска скрипта на хотьбу walk(x,y) но он не ждет ничего и скрипт работает дальше:

Code: Select all

while uo.getrun() == 1   
  wait(100)
wend


или она работает только на бег, а не на хотьбу, существуюет ли "бегалики" (не ходилки) в инже?

По поводу ссылки, ходилки та мож мега крутые, но понимание их работы для меня пока не достижимо.

Posted: 2006-04-14 14:27:52
by SLAK
нащёт гетран: вс чудово работает, просто скрипт когда запускает ходилку останавливается пока функция хождения не завершится. Тоесть тебе НЕ нада писать так:

Code: Select all

walk(x,y)
while uo.Getrun()
 wait(100)
wend


А просто вот так:

Code: Select all

walk(x,y)


Нащёт ходилок по ссылке, то тебе и ненада знать принцып их работы, вполне достаточно уметь их запускать. Например ходилочка Саважа вызывается вот так:

Code: Select all

 SuperWalk(x,y,"")

Тоесть, название функции и параметры - "х" и "у"