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

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

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

Post by Sanch »

Поискал по сайту, что либо что мой ум способен понять не нашел, зарание благодарю за помощь.

Проблема в следующем, мининг, когда чар выкапывает элементаля, тк тот появляется прям из под чара, чар отбегает на 3 или 2 шага в заданую сторону, 3 или 2 зависит от того, будет он поворачиваться или пойдет сразу, это в совю очередь завист от последней координаты в которой он копал, затем он его убивает не сходя с места, проблема возникает при возвращении после смерти элема, тк скрипт не знает сколько все же шагов он сделал когда отбегал. Хочу сделать так чтобы он возвращался именно на то место с которго бегал, вот только не знаю как, есть ли комманда подойти к определенному тайтлу или хотьба по координатам, а не по шагам с помощью uo.press() или счетчик шагов, или определение направления чара, то есть в какую сторону он повернут?
dmitrykit
Posts: 247
Joined: 2005-06-12 22:12:15

Post by dmitrykit »

zapominaj koordinaty pered otbeganijem, i vozvraschajsja tuda...
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post 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


Вот тебе примерчик.
Ходилку можна и по шустрее вставить...
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Post by Sanch »

zapominaj koordinaty pered otbeganijem, i vozvraschajsja tuda...


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

SLAK спасибо, все понял.
dmitrykit
Posts: 247
Joined: 2005-06-12 22:12:15

Post by dmitrykit »

Sanch wrote:
zapominaj koordinaty pered otbeganijem, i vozvraschajsja tuda...


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

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


&pathfind($lastx,$lasty);
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Post 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, ет при мининге оч неудобно тк в шахтах оч много скал, эту проблему реально решить? есть ли ходилки которые ходит еще и вниз вверх и тд?
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Post by Sanch »

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

Code: Select all

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


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

По поводу ссылки, ходилки та мож мега крутые, но понимание их работы для меня пока не достижимо.
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post 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,"")

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