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

Anything and all.

Moderators: Murderator+, Murderator

Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Не понял что оно вообще делает. А в моем варианте суть такая, чар прилетает в начало шатхы и начинает копать, и постепенно всю ее проходит двигаясь попеременно в одном из направлений W N E S в зависимости от того где он находится, и вот чтобы определить куда именно двигаться дальше для этого и нужны координаты.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Непонимаю, понял только что рекол нужен :) Но по вопросу можешь хоть первую координату показать как правильно вписать, остальные я сам. А как по твоему проще для меня только сложнее. С пониманием относиться нужно.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

if (uo.getx() == 1521 and uo.gety() == 815) or (uo.getx() == 1521 and uo.gety() == 815) then
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Вот это дело, координаты сделал, теперь только проверку нужно сделать перед очередным нажатием кнопки. Как проверяется куда смотрит чар и ка нажимается кнопка? :oops: будет примерно так

Code: Select all

posx = uo.getx() + 1
pos = положение чара
Нажать PageUp
while not(положение чара <> pos) or (uo.getx() = posx(это правильно?))
wait(100)
wend
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

GetDir
про press в хелпе не нашёл :? в uo.press() закидывается код кнопки. код кнопки можно узнать в редакторе (где-то там есть окошко)
Image
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post 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
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Code: Select all

press 36
=>

Code: Select all

uo.press(36)

Code: Select all

wait 100
=>

Code: Select all

wait(100)
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post 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
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Code: Select all

if (uo.getx()

2 открывающие скобки и только 1 закрывающая. после условия нужно поставить then
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

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

Post by Juicy Fruit »

Куда дел then после ifов?)
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

ZeroDX wrote:

Code: Select all

if (uo.getx()

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

Там закрыто then стоит все как нужно, просто координаты стер :roll:
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Зеро, заходи ко мне через тимвьювер, потестим может? :D
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

где-то могут быть незакрытые кавычки или скобки
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

del
Last edited by Incorrect User on 2012-11-30 19:04:01, edited 1 time in total.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Code: Select all

end_if
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Исправил, ошибка все равно, в том же месте.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Нашел наконец-то :evil: (uo.getx() == 4023 uo.gety() == 434) and пропустил.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post 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
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

тебе не нужно изменять и контролировать направление чара. все, что нужно, это чтобы скрипт жал кнопку, пока чар не окажется в нужном месте
Post Reply