Хелп с ходьбой
Moderators: Murderator+, Murderator
Хелп с ходьбой
Народ не мойму как зделать чтоб мой чар ходил на определённый тайл ...?какая команда? тайл допустим 2741 217 какой командой холдить? всякие там UO.Rclick не работают ... тайл от меня находиться в двух шагах по прямой.
Savage wrote:Если бильярдный стол, то юзай UO.Press(код клавиши), клавиши стрелки и хом, енд, пэйч ап и пэйч даун. А если препядствия есть, то моя SuperWalk() вполне прилично ходит.
можно по подробнее насчёт уо пресс дружище)))
и как SuperWalk() ползьзоваца?... ёмаё ... да я разбираюсь=( вспоминаю

... попробывал не получаетьсО
Prosto4en wrote:Savage wrote:Если бильярдный стол, то юзай UO.Press(код клавиши), клавиши стрелки и хом, енд, пэйч ап и пэйч даун. А если препядствия есть, то моя SuperWalk() вполне прилично ходит.
можно по подробнее насчёт уо пресс дружище)))
и как SuperWalk() ползьзоваца?... ёмаё ... да я разбираюсь=( вспоминаю
... попробывал не получаетьсО
uo.useobject("0x40154017")
wait(1000)
UO.press(34)
wait(1000)
UO.press(34)
wait(1000)
UO.press(34)
wait(1000)
uo.useobject("0x40154017")
if uo.waiting() then
uo.canceltarget()
вот вроде всё правельно ... у меня даже раз ходило ... а потом перестало ходить не пойму в чём проблема... в общем открывает калитку делает 3 шага вперёд закрывает калитку
Savage wrote:Иногда, чтоб сделать шаг надо два раза пресс использовать. Имеет смысл перед повторным пресом проверить, не остались ли координаты чара прежними?
попробывал повторно использовать пресс без проверки координат ... ибо тут ежё понятно что чар стоит на месте... вообще как работает комманда пресс от куда появляются эти цифры ?... эту команду взял со скрипта на стелс у меня чар ходил хотел приминить в моём скрипте ... тщетно ... в общем плиз обьясните по полочкам как в инжекте передвигаться ? искал на форуме не нашёл...
Вот... простая ходилка.. Обходит препятствия =)
Автор ходилки кажецо Сериус.
Вот... Чтоб пошла достаточно вбить команду...
Теперь где надо в скрипте чтоб шел пиши
Автор ходилки кажецо Сериус.
Code: Select all
##########################################
# Ходилка
##########################################
sub gotoxy(x,y,prec)
dim turn[8]
turn[0] = 39
turn[1] = 34
turn[2] = 40
turn[3] = 35
turn[4] = 37
turn[5] = 36
turn[6] = 38
turn[7] = 33
dim deltax[8]
dim deltay[8]
deltax[0] = 1
deltax[1] = 1
deltax[2] = 1
deltax[3] = 0
deltax[4] = -1
deltax[5] = -1
deltax[6] = -1
deltax[7] = 0
deltay[0] = -1
deltay[1] = 0
deltay[2] = 1
deltay[3] = 1
deltay[4] = 1
deltay[5] = 0
deltay[6] = -1
deltay[7] = -1
var dx,dy
var mx,my ; current coords
var lx = 0, ly = 0, ld = -1 ; last move coords
var pathFind = 0 ; as logical 0 - norm, 1 - block
var ind
var recursInd = 0
var fout = 0
var stepdelay = 350 ; скорость нажатия клавишь
InitStack()
repeat
mx=UO.GetX()
my=UO.GetY()
; calculating for precision coming
dx = mx - x
If dx < 0 Then
dx = 0 - dx
EndIf ;get ABS diff
dy = my - y
If dy < 0 Then
dy = 0 - dy
EndIf
If dy > dx Then
dx = dy
EndIf
If dx <= prec Then
Return
EndIf
if mx == x and my == y then
return
endif
lx = mx
ly = my
ld = UO.GetDir() ; cause once pressing can only change the direcction
if mx == x and my > y then
UO.Press(33)
endif
if mx == x and my < y then
UO.Press(35)
endif
if mx < x and my == y then
UO.Press(34)
endif
if mx < x and my > y then
UO.Press(39)
endif
if mx < x and my < y then
UO.Press(40)
endif
if mx > x and my == y then
UO.Press(36)
endif
if mx > x and my > y then
UO.Press(38)
endif
if mx > x and my < y then
UO.Press(37)
endif
UO.Print('KeyPressed')
wait( stepdelay )
if lx == UO.GetX() and ly == UO.GetY() and ld == UO.GetDir() then
; now there is a stop situation
UO.Print('PathFind')
recursInd = 0
repeat
#################################################
ind = ld
UO.Print(str(ind))
fout = 0
repeat
UO.Print('Iteration')
mx = UO.GetX()
my = UO.GetY()
ld = UO.GetDir()
UO.Press( turn[ ind ] )
wait( stepdelay )
if (UO.GetX() == mx and UO.GetY() == my and ld == UO.GetDir()) then
fout = 1
else
dx = UO.GetX() - mx
dy = UO.GetY() - my
UO.Print('deltas '+str(dx)+' '+str(dy))
if deltax[ ind ] == dx and deltay[ ind ] == dy then
fout = 2
endif
endif
until fout
UO.Print('fout '+ str(fout))
if fout == 1 then
recursInd = recursInd + 1
Push( str( ind ) )
;ld = ind
else ; fout == 2
UO.Print('Iter '+ str(recursInd))
pathFind = 0
if recursInd then
pathFind = 1
recursInd = recursInd - 1
ld = val(Pop()) - 1
if ld == -1 then
ld = 7
endif
UO.Press( turn[ld] )
wait ( stepdelay )
endif
endif
#################################################
until not recursInd and not pathFind
UO.Print('PathFind END')
endif
until 0
endsub
##########################################
# Стэк ходилки. Лучше в него нелезть.
##########################################
sub InitStack()
UO.SetGlobal('STACK', '0')
endsub
Sub Push( param )
var chk = val(UO.GetGlobal('STACK'))
UO.SetGlobal('STACK',str(chk + 1))
UO.SetGlobal('STACK_'+str(chk), param)
endsub
Sub Pop ()
var chk = val(UO.GetGlobal('STACK'))
if chk then
UO.SetGlobal('STACK',str(chk - 1))
return UO.GetGlobal('STACK_'+str(chk - 1))
else
return ''
endif
endsub
Вот... Чтоб пошла достаточно вбить команду...
Теперь где надо в скрипте чтоб шел пиши
Code: Select all
gotoxy(координата х, координата y, точность подхождения)
-
- Posts: 247
- Joined: 2008-09-12 05:07:34
Теперь где надо в скрипте чтоб шел пиши
[/quote]
что значит точность прохождения? ... ставлю координаты и выдаёт ошибку
Code: Select all
gotoxy(координата х, координата y, точность подхождения)
что значит точность прохождения? ... ставлю координаты и выдаёт ошибку
-
- Posts: 247
- Joined: 2008-09-12 05:07:34
Savage wrote:Дело не в нумлоке, наверное в клиенте или в инже бинд на этой кнопке.
Да ты прав... нам лук не помог.... что мне зделать чтоб заработали кнобки? .. гуру помогите
фишка в том ,перед запуском скрипта кнопки работают .... как только скрипт запускаю кнопки перестают работать..и после окончания скрипта остаються не рабочими... я в замешательстве уже не один ден...
Prosto4en wrote:Savage wrote:Дело не в нумлоке, наверное в клиенте или в инже бинд на этой кнопке.
Да ты прав... нам лук не помог.... что мне зделать чтоб заработали кнобки? .. гуру помогите
фишка в том ,перед запуском скрипта кнопки работают .... как только скрипт запускаю кнопки перестают работать..и после окончания скрипта остаються не рабочими... я в замешательстве уже не один ден...
c
И кстати вылетает табличка при копке "Unhandled exception in paster"
По ошибки тебе сюда
http://forum.yoko.com.ua/viewtopic.php?t=12990&highlight=unhandled
Лично мне помогло =-))))) Теперь данная ошибка практически ниокгда невылетает =)
http://forum.yoko.com.ua/viewtopic.php?t=12990&highlight=unhandled
Лично мне помогло =-))))) Теперь данная ошибка практически ниокгда невылетает =)
Nelson wrote:По ошибки тебе сюда
http://forum.yoko.com.ua/viewtopic.php?t=12990&highlight=unhandled
Лично мне помогло =-))))) Теперь данная ошибка практически ниокгда невылетает =)
Всё спасибо ... я разобрался полностью со своими проблемами ...спасибо вам друзья))) ... очень помогли....

Re: Хелп с ходьбой
скрипт работает отлично но только есть одна проблема, стою в доме в них 2 вендора
один всё время заходит за шкаф, шкаф стоит не у стены а по середине комнаты, когда чар упирается в шкаф сворачивает на право и упирается в стенку, после этого начинает рулить по периметру здания. даже когда я вручную подбегаю к нему скрипт его опять ведет к стенке и продолжается бессмысленная ходьба по кругу.
как я понимаю скрипт берёт заданные координаты и танком прёт к точке
вопрос вот в чём, может можно дописать пару строчек, что бы он после каждого шага проверял проверял позицию чара и "точки назначения", ну или каждые 5сек
если да то допишите пожалста и напишите куда их вписать.
значение prec=1
один всё время заходит за шкаф, шкаф стоит не у стены а по середине комнаты, когда чар упирается в шкаф сворачивает на право и упирается в стенку, после этого начинает рулить по периметру здания. даже когда я вручную подбегаю к нему скрипт его опять ведет к стенке и продолжается бессмысленная ходьба по кругу.
как я понимаю скрипт берёт заданные координаты и танком прёт к точке
вопрос вот в чём, может можно дописать пару строчек, что бы он после каждого шага проверял проверял позицию чара и "точки назначения", ну или каждые 5сек
если да то допишите пожалста и напишите куда их вписать.
значение prec=1
Re: Хелп с ходьбой
Номер раз: в инжекте нет ни одной безупречной ходилки.
Номер два: все ходилки с обходом периодически косячат на препятстчиях.
Номер три: Что мешает взять и дописать 3 координаты в обход препятствиям? |_| вот так?
Номер два: все ходилки с обходом периодически косячат на препятстчиях.
Номер три: Что мешает взять и дописать 3 координаты в обход препятствиям? |_| вот так?