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

Re: Миниг и рекол.
if (uo.getx() == 1521 and uo.gety() == 815) or (uo.getx() == 1521 and uo.gety() == 815) then
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
Вот это дело, координаты сделал, теперь только проверку нужно сделать перед очередным нажатием кнопки. Как проверяется куда смотрит чар и ка нажимается кнопка?
будет примерно так

Code: Select all
posx = uo.getx() + 1
pos = положение чара
Нажать PageUp
while not(положение чара <> pos) or (uo.getx() = posx(это правильно?))
wait(100)
wend
Re: Миниг и рекол.
GetDir
про press в хелпе не нашёл
в uo.press() закидывается код кнопки. код кнопки можно узнать в редакторе (где-то там есть окошко)

про press в хелпе не нашёл


-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
Спасибо, сделал, проверяю, на 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: Миниг и рекол.
Code: Select all
press 36
Code: Select all
uo.press(36)
Code: Select all
wait 100
Code: Select all
wait(100)
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
Теперь ошибка на строке 29 endif
Плохо что строка с ошибкой не подсвечивается.

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: Миниг и рекол.
Code: Select all
if (uo.getx()
2 открывающие скобки и только 1 закрывающая. после условия нужно поставить then
-
- Posts: 820
- Joined: 2011-06-11 19:54:23
Re: Миниг и рекол.
Куда дел then после ifов?)
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
ZeroDX wrote:Code: Select all
if (uo.getx()
2 открывающие скобки и только 1 закрывающая. после условия нужно поставить then
Там закрыто then стоит все как нужно, просто координаты стер

-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
где-то могут быть незакрытые кавычки или скобки
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
del
Last edited by Incorrect User on 2012-11-30 19:04:01, edited 1 time in total.
Re: Миниг и рекол.
Code: Select all
end_if
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Миниг и рекол.
Теперь чар не ходит. Точнее если положение чара заранее в ту сторону в которую нужно идти то чар идет нормально, а вот если ему нужно повернуться то так и происходит, скрипт один раз нажимает кнопку и все, дальше чар не идет. Принцип работы
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: Миниг и рекол.
тебе не нужно изменять и контролировать направление чара. все, что нужно, это чтобы скрипт жал кнопку, пока чар не окажется в нужном месте