Yoko

All sides of Injection
It is currently 2024-04-16 10:32:13

All times are UTC+02:00




Post new topic  Reply to topic  [ 94 posts ]  Go to page Previous 1 2 3 4 5 Next
Author Message
PostPosted: 2012-11-29 23:53:39 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Не понял что оно вообще делает. А в моем варианте суть такая, чар прилетает в начало шатхы и начинает копать, и постепенно всю ее проходит двигаясь попеременно в одном из направлений W N E S в зависимости от того где он находится, и вот чтобы определить куда именно двигаться дальше для этого и нужны координаты.

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 00:04:43 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Урок 3. Оператор for


Top
   
PostPosted: 2012-11-30 00:20:05 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Непонимаю, понял только что рекол нужен :) Но по вопросу можешь хоть первую координату показать как правильно вписать, остальные я сам. А как по твоему проще для меня только сложнее. С пониманием относиться нужно.

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 00:35:02 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
if (uo.getx() == 1521 and uo.gety() == 815) or (uo.getx() == 1521 and uo.gety() == 815) then


Top
   
PostPosted: 2012-11-30 01:11:45 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Вот это дело, координаты сделал, теперь только проверку нужно сделать перед очередным нажатием кнопки. Как проверяется куда смотрит чар и ка нажимается кнопка? :oops: будет примерно так

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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 11:59:54 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
GetDir
про press в хелпе не нашёл :? в uo.press() закидывается код кнопки. код кнопки можно узнать в редакторе (где-то там есть окошко)
Image


Top
   
PostPosted: 2012-11-30 13:39:34 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Спасибо, сделал, проверяю, на 10 строке парсер

Code:
mydir = uo.getdir()


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

Code:
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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 13:50:15 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Code:
press 36
=>
Code:
uo.press(36)

Code:
wait 100
=>
Code:
wait(100)


Top
   
PostPosted: 2012-11-30 13:58:46 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Теперь ошибка на строке 29 endif :shock: Плохо что строка с ошибкой не подсвечивается.
Code:
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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 14:32:43 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Code:
if (uo.getx()

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


Top
   
PostPosted: 2012-11-30 14:33:49 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Куда дел then после ifов?)


Top
   
PostPosted: 2012-11-30 14:47:37 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
ZeroDX wrote:
Code:
if (uo.getx()

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

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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 15:09:50 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Зеро, заходи ко мне через тимвьювер, потестим может? :D

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 16:42:50 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
где-то могут быть незакрытые кавычки или скобки


Top
   
PostPosted: 2012-11-30 17:40:49 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
del

_________________
CodeSweeper


Last edited by Incorrect User on 2012-11-30 19:04:01, edited 1 time in total.

Top
   
PostPosted: 2012-11-30 17:47:41 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Code:
end_if


Top
   
PostPosted: 2012-11-30 18:26:41 
Offline

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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 19:05:23 
Offline

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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 19:20:40 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Теперь чар не ходит. Точнее если положение чара заранее в ту сторону в которую нужно идти то чар идет нормально, а вот если ему нужно повернуться то так и происходит, скрипт один раз нажимает кнопку и все, дальше чар не идет. Принцип работы

Code:
    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

_________________
CodeSweeper


Top
   
PostPosted: 2012-11-30 19:32:41 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
тебе не нужно изменять и контролировать направление чара. все, что нужно, это чтобы скрипт жал кнопку, пока чар не окажется в нужном месте


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 94 posts ]  Go to page Previous 1 2 3 4 5 Next

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited