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
Вот это дело, координаты сделал, теперь только проверку нужно сделать перед очередным нажатием кнопки. Как проверяется куда смотрит чар и ка нажимается кнопка?

будет примерно так
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() закидывается код кнопки. код кнопки можно узнать в редакторе (где-то там есть окошко)

Re: Миниг и рекол.
Posted: 2012-11-30 13:39:34
by Incorrect User
Спасибо, сделал, проверяю, на 10 строке парсер
Полностью, без координат выглядит так
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
Re: Миниг и рекол.
Posted: 2012-11-30 13:58:46
by Incorrect User
Теперь ошибка на строке 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: Миниг и рекол.
Posted: 2012-11-30 14:32:43
by ZeroDX
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:2 открывающие скобки и только 1 закрывающая. после условия нужно поставить
then
Там закрыто then стоит все как нужно, просто координаты стер

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

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
Re: Миниг и рекол.
Posted: 2012-11-30 18:26:41
by Incorrect User
Исправил, ошибка все равно, в том же месте.
Re: Миниг и рекол.
Posted: 2012-11-30 19:05:23
by Incorrect User
Нашел наконец-то

(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
тебе не нужно изменять и контролировать направление чара. все, что нужно, это чтобы скрипт жал кнопку, пока чар не окажется в нужном месте