Page 4 of 5

Re: Миниг и рекол.

Posted: 2012-11-29 23:53:39
by Incorrect User
Не понял что оно вообще делает. А в моем варианте суть такая, чар прилетает в начало шатхы и начинает копать, и постепенно всю ее проходит двигаясь попеременно в одном из направлений W N E S в зависимости от того где он находится, и вот чтобы определить куда именно двигаться дальше для этого и нужны координаты.

Re: Миниг и рекол.

Posted: 2012-11-30 00:04:43
by ZeroDX

Re: Миниг и рекол.

Posted: 2012-11-30 00:20:05
by Incorrect User
Непонимаю, понял только что рекол нужен :) Но по вопросу можешь хоть первую координату показать как правильно вписать, остальные я сам. А как по твоему проще для меня только сложнее. С пониманием относиться нужно.

Re: Миниг и рекол.

Posted: 2012-11-30 00:35:02
by ZeroDX
if (uo.getx() == 1521 and uo.gety() == 815) or (uo.getx() == 1521 and uo.gety() == 815) then

Re: Миниг и рекол.

Posted: 2012-11-30 01:11:45
by Incorrect User
Вот это дело, координаты сделал, теперь только проверку нужно сделать перед очередным нажатием кнопки. Как проверяется куда смотрит чар и ка нажимается кнопка? :oops: будет примерно так

Code: Select all

posx = uo.getx() + 1
pos = положение чара
Нажать PageUp
while not(положение чара <> pos) or (uo.getx() = posx(это правильно?))
wait(100)
wend

Re: Миниг и рекол.

Posted: 2012-11-30 11:59:54
by ZeroDX
GetDir
про press в хелпе не нашёл :? в uo.press() закидывается код кнопки. код кнопки можно узнать в редакторе (где-то там есть окошко)
Image

Re: Миниг и рекол.

Posted: 2012-11-30 13:39:34
by Incorrect User
Спасибо, сделал, проверяю, на 10 строке парсер

Code: Select all

mydir = uo.getdir()


Полностью, без координат выглядит так

Code: Select all

sub Walk()
  var mypos, mystep, mydir, startx, starty
startx = uo.getx()
starty = uo.gety()
  if (uo.getx() == 383 and uo.gety() == 1443)
    mypos = uo.getx() - 5
    while not uo.getx() == mypos
      mystep = uo.getx() - 1
      mydir = uo.getdir()
      press 36
      while not( uo.getx()== mystep) or (uo.getdir() <> mydir)
        wait 100
      wend
      mydir = uo.getdir()
    wend
  endif

Re: Миниг и рекол.

Posted: 2012-11-30 13:50:15
by ZeroDX

Code: Select all

press 36
=>

Code: Select all

uo.press(36)

Code: Select all

wait 100
=>

Code: Select all

wait(100)

Re: Миниг и рекол.

Posted: 2012-11-30 13:58:46
by Incorrect User
Теперь ошибка на строке 29 endif :shock: Плохо что строка с ошибкой не подсвечивается.

Code: Select all

sub Walk()
  var mypos, mystep, mydir, startx, starty
startx = uo.getx()
starty = uo.gety()
  if (uo.getx()
    mypos = uo.getx() - 5
    while not uo.getx() == mypos
      mystep = uo.getx() - 1
      mydir = uo.getdir()
      press(36)
      while not(uo.getx()== mystep) or (uo.getdir() <> mydir)
        wait(100)
      wend
      mydir = uo.getdir()
    wend
  endif
  if (uo.getx()
    mypos = uo.gety() - 5
    while not uo.gety() == mypos
      mystep = uo.gety() - 1
      mydir = uo.getdir()
      press(33)
      while not(uo.gety() == mystep) or (uo.getdir() <> mydir)
        wait(100)
      wend
      mydir = uo.getdir()
    wend
  endif
if (uo.getx()
    mypos = uo.getx() + 5
    while not uo.getx() == mypos
      mystep = uo.getx() + 1
      mydir = uo.getdir()
      press(34)
      while not(uo.getx() == mystep) or (uo.getdir() <> mydir)
        wait(100)
      wend
      mydir = uo.getdir()
    wend
  endif
  if (uo.getx()
    mypos = uo.gety() + 5
    while not uo.gety() == mypos
      mystep = uo.gety() + 1
      mydir = uo.getdir()
      press(35)
      while not(uo.gety() == mystep) or (uo.getdir() <> mydir)
        wait(100)
      wend
      mydir = uo.getdir()
    wend
    end_if
    if (uo.getx()
      uo.print('Участок пройден!')
    endif
    if (uo.getx() == startx) or (uo.gety() == starty)
      uo.print('Заблудился!')
    endif
  endsub

Re: Миниг и рекол.

Posted: 2012-11-30 14:32:43
by ZeroDX

Code: Select all

if (uo.getx()

2 открывающие скобки и только 1 закрывающая. после условия нужно поставить then

Re: Миниг и рекол.

Posted: 2012-11-30 14:33:49
by Juicy Fruit
Куда дел then после ifов?)

Re: Миниг и рекол.

Posted: 2012-11-30 14:47:37
by Incorrect User
ZeroDX wrote:

Code: Select all

if (uo.getx()

2 открывающие скобки и только 1 закрывающая. после условия нужно поставить then

Там закрыто then стоит все как нужно, просто координаты стер :roll:

Re: Миниг и рекол.

Posted: 2012-11-30 15:09:50
by Incorrect User
Зеро, заходи ко мне через тимвьювер, потестим может? :D

Re: Миниг и рекол.

Posted: 2012-11-30 16:42:50
by ZeroDX
где-то могут быть незакрытые кавычки или скобки

Re: Миниг и рекол.

Posted: 2012-11-30 17:40:49
by Incorrect User
del

Re: Миниг и рекол.

Posted: 2012-11-30 17:47:41
by ZeroDX

Code: Select all

end_if

Re: Миниг и рекол.

Posted: 2012-11-30 18:26:41
by Incorrect User
Исправил, ошибка все равно, в том же месте.

Re: Миниг и рекол.

Posted: 2012-11-30 19:05:23
by Incorrect User
Нашел наконец-то :evil: (uo.getx() == 4023 uo.gety() == 434) and пропустил.

Re: Миниг и рекол.

Posted: 2012-11-30 19:20:40
by Incorrect User
Теперь чар не ходит. Точнее если положение чара заранее в ту сторону в которую нужно идти то чар идет нормально, а вот если ему нужно повернуться то так и происходит, скрипт один раз нажимает кнопку и все, дальше чар не идет. Принцип работы

Code: Select all

    mypos = uo.getx() - 5 ; задаем число X координата где стоим + 5 тайлов чтобы получить координату клетки куда прийдем. 
    while not uo.getx() == mypos ; До тех пор пока Х положение чара не совпадет с заданным числом...
      mystep = uo.getx() - 1 ; задаем число X координата где стоим + 1 тайл чтобы получить координату клетки на которую делаем шаг.
      mydir = uo.getdir() ; задаем значение направления чара чтобы если нажали кнопку и чар не слелал шаг а просто повернулся скрипт сработал далее.
      uo.press(36) ;нажимаем кнопку ходьбы
      while not (uo.getx()== mystep) or (uo.getdir() <> mydir) ;ждать до тех пор пока Х положение чара не будет равным заданному значению, либо ждем пока чар не повернется.
        wait(100)
      wend
    wend

Re: Миниг и рекол.

Posted: 2012-11-30 19:32:41
by ZeroDX
тебе не нужно изменять и контролировать направление чара. все, что нужно, это чтобы скрипт жал кнопку, пока чар не окажется в нужном месте