
Code: Select all
######
#Opisanie
######
#×àð ëåòàåò ïî 2 ðóíáóêàì ê âåíäîðàì åñëè âåíäîð äàëåêî
#ïîäõîäèò ê íåìó è ïîêóïàåò òîâàð.
#Êàê çàêóïèëñÿ ó âñåõ ëåòèò äîìîé è ñêèäûâàåò
#âñå êóïëåííîå â ñýéô ïåðåçàðÿæàåò ðóíáóêè õàâàåò è îïÿòü 25
######
#Nastroika
######
#ó ÷àðà â ïàêå 3 ðóíáóêè (ëþáëþ ÿ ðóíáóêè), â ñýéôå ó äîìà
#åäà(ôèøñòýéêè),ðåêîëû(ïîáîëüøå). Â óî äåëàåì ñïèñîê òîâàðà
#êîòîðûé íàäî ïîêóïàòü(êàê ýòî äåëàòü ñìîòðèì ÷óòü íèæå) ñïèñîê
#íàçûâàåì list1, â ïåðåìåííûõ óêàçûâàåì òèïû ïîêóïàåìûõ
#òîâàðîâ (ó ìåíÿ â ñêðèïòå ïîäðàçóìåâàåòñÿ ÷òî òîâàðîâ âñåãî 4)
#ìîæíî ëåòàòü òîëüêî ïî ïåðâîé ðóíáóêå äëÿ ýòîãî â ïåðåìåííûõ
#íàäà ïåðåìåííóþ skokonada èçìåíèòü íà 1
##### ÎÁßÇÀÒÅËÜÍÎ!!!!#########
#â èãðå íàáèðàåì ñëåäóùåå-" ,set buydelay 3000 "(áåç êîâû÷åê)
#â íàñòðîéêàõ èíæåêòà ñòàâèì ãàëêó íà trackworlditems
##########################
#Êàê ñäåëàòü ñïèñîê ïîêóïêè
##########################
#1-ïîäõîäè ê âåíäîðó
#2-â íàñòðîéêàõ èíæåêòà(çàêëàäêà Main) æìåì êíîïêó Buy/Sell
#3-â ïîëå Name ïèøåì list1 æìåì Create
#4-â èãðå ãîâîðèì âåíäîðó buy
#5-èäåì îïÿòü â èíæåêò è â îêíå Shoping list âûáèðàåì òîâàð è æìåì
#Add ìîæíî ñðàçó äîáàâèòü íåñêîëüêî òîâàðîâ
#6-äàëåå æìåì Done è åùå ðàç Done
##########################
#!! 1 è 2 ðóíáóêè çàáèòû ðóíàìè ê âåíäîðàì â 3 ðóíáóêå ïåðâàÿ ðóíà
#äîìîé
#êàæäîé ðóíå ñîîòâåòñòâóåò âåíäîð=>íàäî âáèòü èä âåíäîðîâ
#â ñîîòâåòñòâèè ñ ðóíàìè
#!!! ââåäèòå ÂÑÅ ïåðåìåííûå
#######
#from Question with smile
#######
#Peremennue
#######
var book1='0x400004A0' # ID ðóíáóê 1-àÿ
var book2='0x400FFA8C' # ...2-àÿ
var book3='0x40062824' # ...3-ÿÿ
var type1='0x0F88'# ñîîòâåòñòâóåò òèïó ïîêóïàåìîãî òîâàðà
var type2='0x0E34'# ...
var type3='0x0F83'# ...
var type4='0x0F85'# ...
var recall='0x1F4C' # òèï ðåêîëà
var unloadseif='0x401049F6' # ID ñýéôà ó äîìà
var tEat='0x097B' # òèï åäû(ôèø ñòýéêè)
var skokonada=1 # 0 -ëåòàåì ïî äâóì ðóíáóêàì; 1 -òîëüêî ïî ïåðâîé
##ÂÂåäèòå èä âåíäîðîâ íèæå###
sub POGNALI()
var k,j,b
DIM ven[9]
DIM vem[9]
#####################
ven[0]='0x0001A730' #È äëÿ 1-îé ðóíû ïåðâîé ðóíáóêè
ven[1]='0x00019820' #Ä äëÿ 2-îé ðóíû ïåðâîé ðóíáóêè
ven[2]='0x0001AFA3' #
ven[3]='0x000168B3' # äëÿ 1-îé ðóíáóêè
ven[4]='0x00018E58' #Â
ven[5]='0x00017E61' #Å
ven[6]='0x000174B3' #Í
ven[7]='0x00019D3A' #Ä
ven[8]='0x00018329' #Î äëÿ 9-îé ðóíû 1 ðóíáóêè
##################
vem[0]='0x00286C87' #Ð äëÿ 1-îé ðóíû 2 ðóíáóêè
vem[1]='0x00289D44' #Î
vem[2]='0x00164D2E' #Â
vem[3]='0x0030D2DB' #
vem[4]='0x0041A5F3' # äëÿ 2-îé ðóíáóêè
vem[5]='0x00286C87' #
vem[6]='0x00286C87' #
vem[7]='0x00286C87' #
vem[8]='0x00286C87' # äëÿ 9-îé ðóíû 2 ðóíáóêè
#####################
while not uo.dead()
for k=1 to 9
repeat
port(k,book1)
uo.resend()
b=UO.GetDistance(ven[k-1])
while b>1
SuperWalk(0,0,ven[k-1])
b=UO.GetDistance(ven[k-1])
wend
bustreevseh1(ven[k-1])
UO.Say("bye")
next
if skokonada==0 then
for j=1 to 9
repeat
port(j,book2)
uo.resend()
b=UO.GetDistance(vem[j-1])
while b>1
SuperWalk(0,0,vem[j-1])
b=UO.GetDistance(vem[j-1])
wend
bustreevseh1(vem[j-1])
UO.Say("bye")
next
endif
port(1,book3)
wait(2000)
unload()
wait(2000)
recharg(book1)
wait(2000)
recharg(book2)
wait(2000)
recharg(book3)
wait(2000)
ToEat()
wait(2000)
unload()
wend
endsub
sub port(n,book)
var oldX=UO.GetX()
var oldY=UO.GetY()
var time
NoTarget()
UO.UseObject(book)
FastLootCheck()
CheckLag()
UO.LClick(135,n*15+55)
time=UO.Timer()
Repeat
wait(500)
Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR time+200<UO.Timer()
end sub
sub FastLootCheck()
UO.DeleteJournal()
wait(600)
if UO.InJournal("FastLoot") OR UO.InJournal("World save") then
CheckLag()
endif
end sub
sub NoTarget()
if UO.Waiting() then
UO.CancelTarget()
endif
end sub
sub bustreevseh1(imya)
var vend, ven='vendor'
ven=UO.GetName(imya)
uo.buy('list1',ven)
endsub
#==============================================================
# SuperWalk(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 SuperWalk(x,y,Target)
VAR i
VAR dir,ldir,rdir,key,olddir
VAR dx,dy,Exit=0
VAR CacheLimit=9,CacheIndex="Text"
DIM CacheX[10], CacheY[10]
CacheX[0]="Test"
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)<3 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
dir=3
ldir=2
rdir=4
key=40 ; DownArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=0
rdir=1
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=5
rdir=6
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx>0 AND dy<0 Then ; GoNE
dir=1
ldir=0
rdir=2
key=39 ; RightArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=6
rdir=7
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy>0 Then ; GoSW
dir=5
ldir=4
rdir=6
key=37 ; LeftArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==6 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy<0 Then ; GoWN
dir=7
ldir=6
rdir=0
key=38 ; UpArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx<>0 AND dy==0 Then
If dx>0 Then ; GoE
dir=2
key=34 ; PgDown
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoNE
dir=1
ldir=1
rdir=0
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 Then ; GoW
dir=6
key=36 ; Home key
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx==0 AND dy<>0 Then
If dy>0 Then ; GoS
dir=4
key=35 ; End
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=6
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dy<0 Then ;GoN
dir=0
key=33 ; PgUp
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoWN
dir=7
ldir=7
rdir=6
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
Wend
end sub
sub StepEdit(x,y,dir,key)
VAR walkwait=300
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
If x==UO.GetX() AND y==UO.GetY() Then
;zatik
ErrLevel=1
Endif
Endif
Return ErrLevel
end sub
sub StepArrow(x,y,dir,ldir,rdir,key)
VAR walkwait=300
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
CheckLag()
Endif
Endif
If UO.GetX()==x AND UO.GetY()==y Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
CheckLag()
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik
ErrLevel=1
Endif
Endif
Endif
Return ErrLevel
end sub
sub recharg(kniga)
CheckLag()
wait(1000)
uo.useobject(unloadseif)
CheckLag()
wait(1000)
uo.findtype(recall,'-1',unloadseif)
CheckLag()
wait(1000)
uo.moveitem('finditem','9','backpack')
CheckLag()
wait(1000)
uo.UseObject(kniga)
CheckLag()
wait(1000)
uo.Lclick(296,91)
CheckLag()
wait(1000)
endsub
sub unload()
UO.FindType(type1, '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',unloadseif)
CheckLag()
Wait(700)
UO.FindType(type1,'-1','backpack')
wend
UO.FindType(type2, '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',unloadseif)
CheckLag()
Wait(700)
UO.FindType(type2,'-1','backpack')
wend
UO.FindType(type3, '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',unloadseif)
CheckLag()
Wait(700)
UO.FindType(type3,'-1','backpack')
wend
UO.FindType(type4, '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',unloadseif)
CheckLag()
Wait(700)
UO.FindType(type4,'-1','backpack')
wend
UO.FindType(recall, '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',unloadseif)
CheckLag()
Wait(700)
UO.FindType(recall,'-1','backpack')
wend
endsub
sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
endsub
sub ToEat()
UO.UseObject(unloadseif)
CheckLag()
wait(500)
UO.FindType(tEat,'0x0000',unloadseif)
CheckLag()
wait(500)
if UO.FindCount() > 0 then
UO.MoveItem('finditem','20','backpack')
end if
repeat
CheckLag()
uo.UseType(tEat)
while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
wait(100)
wend
until uo.InJournal('too full') or UO.Dead()
UO.FindType(tEat, '0x0000','backpack')
if UO.FindCount() > 0 then
UO.MoveItem('finditem','20',unloadseif)
end if
end sub