Килл энтов.
Posted: 2005-03-22 18:57:44
вот написал килл энтов для работы надо узнать все типы
шринков инвизок энтов =) драков в шринке и так в живую
пока без лута энтов
ходилка не моя
у меня работает тест прошел удачно 5 раз потом перестал тестить
при вырубки энта чар стоит в хайде потом выкидывает из шринки
драка желательно посильнее ) говорит ему атачить энта 2 раза и сам пьет инвизку, пока драк месит энта чар ждет, потом энт умирает кричим драку иди ко мне ) и сами идем к ниму потом юзаем на него шринк подбираем возвращаемся в исходную точку и продолжаем рубить =)
вобщем наверно в скрипте много лишнего так что если кто что добавит буду тока признателен
шринков инвизок энтов =) драков в шринке и так в живую
пока без лута энтов
ходилка не моя
у меня работает тест прошел удачно 5 раз потом перестал тестить

при вырубки энта чар стоит в хайде потом выкидывает из шринки
драка желательно посильнее ) говорит ему атачить энта 2 раза и сам пьет инвизку, пока драк месит энта чар ждет, потом энт умирает кричим драку иди ко мне ) и сами идем к ниму потом юзаем на него шринк подбираем возвращаемся в исходную точку и продолжаем рубить =)
вобщем наверно в скрипте много лишнего так что если кто что добавит буду тока признателен
Code: Select all
sub killent()
var xc=uo.getx()
var yc=uo.gety()
ToHide()
wait(5000)
uo.usetype('0x20D6') ;юзает шринк с драком
wait(2000)
UO.Exec('warmode 0')
uo.findtype('0x00C8','-1','ground'); ищит энта
uo.waittargetobject('finditem')
uo.say("all kill"); стравливает драка на энта
wait(1000)
UO.Exec('warmode 0')
uo.waittargetobject('finditem')
uo.say("all kill"); еще раз (один раз бывает не помогает)
UO.Exec('warmode 0')
uo.usetype('0x0F0E','0x0631'); юзает инвизку
uo.findtype('0x00C8','-1','ground')
repeat
wait(1000)
until UO.IsNPC('finditem')==0 ;ждет пока сдохнет энт
wait(1000)
uo.say("all come") ; зовет животинку =)
wait(5000)
uo.findtype('0x003B','-1','ground')
walkn(0,0,'finditem') ; идет к ней
uo.findtype('0x003B','-1','ground')
while UO.GetDistance('finditem')>1
wait(1000)
uo.findtype('0x003B','-1','ground')
wend
uo.findtype('0x003B','-1','ground')
uo.waittargetobject('finditem')
uo.usetype('0x0F0E','0x0388') ;кидает драка в шринк
wait(2000)
uo.findtype('0x20D6','-1','ground')
uo.moveitem('finditem','1','backpack'); кладет в пак
wait(2000)
walkn(xc,yc,"") ; возвращается назад
endsub
;---------------- ][odilka -----------------------
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
wend
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetX()+1==x Then
return -1
Else
return 1
Endif
end sub
sub GoN()
VAR walkwait=300
VAR x,y,dir=0
VAR key=33 ; PgUp
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
wend
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetY()+1==y Then
return -1
Else
return 1
Endif
end sub
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
wend
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetX()-1==x Then
return -1
Else
return 1
Endif
end sub
sub GoS()
VAR walkwait=300
VAR x,y,dir=4
VAR key=35 ; End
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
wend
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetY()-1==y Then
return -1
Else
return 1
Endif
end sub
sub GoWN()
VAR walkwait=300
VAR x,y,dir=7
VAR key=38 ; UpArrow
x=UO.GetX()
y=UO.GetY()
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub
sub GoNE()
VAR walkwait=300
VAR x,y,dir=1
VAR key=39 ; RightArrow
x=UO.GetX()
y=UO.GetY()
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub
sub GoSE()
VAR walkwait=300
VAR x,y,dir=3
VAR key=40 ; DownArrow
x=UO.GetX()
y=UO.GetY()
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub
sub GoSW()
VAR walkwait=300
VAR x,y,dir=5
VAR key=37 ; LeftArrow
x=UO.GetX()
y=UO.GetY()
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub
#==============================================================
# WalkN(X,Y,Serial) - char is walking by dX and dY step
# sub using Home, End, PgUp, PgDown keys
# d'not rebind this key from default action!
# walkwait - delay after keypress
#--------------------------------------------------------------
sub WalkN(x,y,Target)
VAR i
VAR dx,dy,Exit=0
While Exit<>1
If Target<>"" Then
dx=UO.GetX(Target)-UO.GetX()
dy=UO.GetY(Target)-UO.GetY()
; UO.Print("Target locked!")
If UO.GetDistance(Target)<2 Then
Exit=1
Endif
Else
dx=x-UO.GetX()
dy=y-UO.GetY()
If dx==0 AND dy==0 Then
Exit=1
Endif
Endif
If dx<>0 AND dy<>0 Then
If dx>0 AND dy>0 Then
GoSE()
Endif
If dx>0 AND dy<0 Then
GoNE()
Endif
If dx<0 AND dy>0 Then
GoSW()
Endif
If dx<0 AND dy<0 Then
GoWN()
Endif
Endif
If dx<>0 AND dy==0 Then
If dx>0 Then
GoE()
Endif
If dx<0 Then
GoW()
Endif
Endif
If dx==0 AND dy<>0 Then
If dy>0 Then
GoS()
Endif
If dy<0 Then
GoN()
Endif
Endif
Wend
end sub
sub ToHide()
while not uo.Hidden()
uo.DeleteJournal()
uo.Exec('warmode 0')
uo.UseSkill('Stealth')
wait(4100)
wend
wait(100)
end sub