Помогите добавить полиморф в демона. Если возможно с проверкой в демоне чар или нет; добор регов.
Code: ### # В рунбуке по порядку лежат руны с первой до 6ой. Указываем таргетом рунбуку, максимальный вес, сундук, # форжу, настраиваем шоплист # в котором пишем названия всех рингмайл и чайнмайл предметов которые потом пойдут на переплавку,и # координаты около дома -рядом # с форжой и сундуком. Запустили-полетели-купили-вернулись-переплавили-инги убрали-полетели дальше. ####### # ymd # ####### sub main() var X,Y, Xself , Yself, z ,i, n, k var MaxWeight = 700 # Your max weight uo.Set('finddistance','15') uo.Set('buydelay','3000')
uo.AddObject('Runebook') while uo.Targeting() wait(100) wend for z = 0 to 1 for i = 1 to 8 #6 - six runes to shop in runebook (mb changes) RecallShop: CheckLag() uo.UseObject('Runebook') wait(1000) uo.LClick(135 , i*15+55) # Runebook for DRW wait(500) Xself = uo.GetX('self') Yself = uo.GetY('self') repeat wait(100) until Xself<>uo.GetX('self') and Yself<>uo.GetY('self') uo.Print('Buying ...') wait(2550) uo.Buy('iron') #Shop list with chainmail items and ringmail items wait(6000) CheckLag() RecallHome() next wait(300000) #Pause for respaun next end sub
sub RecallHome() var RuneToHome=9 #Slot in runebook where's rune to home var Runebook='0x401E3A53' #ID of your runebook var Xself , Yself, k RecallHome: Xself = uo.GetX('self') Yself = uo.GetY('self') CheckLag() uo.UseObject('Runebook') wait(2000) uo.LClick(135 , RuneToHome*15+55) wait(5000) k = 0 repeat uo.Print('Get out an items ...') wait(1000) k = k + 1 until Xself<>uo.GetX('self') and Yself<>uo.GetY('self') if Xself <> uo.GetX('self') then wait(1000) SmelthingForIron() CheckLag() end if end sub
Sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(50) until UO.InJournal('backpack') end sub
sub SmelthingForIron() uo.Set('findistance','5') var i var Forge='0x401C37AC' #ID of your forge near house var Sunduk='0x40074435' #ID of a container near house var ingot='0x1BEF' #Type of iron ingot
DIM chain[10]
chain[0]='0x13EC' #0-9 .Types of ringmail and chainmail items chain[1]='0x13F0' chain[2]='0x13BF' chain[3]='0x13BB' chain[4]='0x13EE' chain[5]='0x13EB' chain[6]='0x13BE' chain[7]='0x1B76' chain[8]='0x1411' chain[9]='0x1413'
go(65535,65535,0) # X,Y near forge while not uo.Hidden() uo.UseSkill('Hiding') wait(5000) wend for i = 0 to 9 uo.FindType(chain[i],'-1','backpack') if uo.FindCount() then while uo.FindCOunt() uo.FindType(chain[i],'-1','backpack') uo.WaitTargetObject('finditem') uo.UseObject(Forge) wait(1000) wend else uo.Print('There are no chainmail armor') end if next uo.FindType('0x1BEF','-1','backpack') if uo.FindCOunt() then uo.moveitem('finditem','all',Sunduk) wait(1000) end if uo.FindType('0x1BEF','-1','ground') if uo.FindCOunt() then uo.moveitem('finditem','all',Sunduk) wait(1000) end if end sub
Sub go(x,y,k) var kop 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" kop=0 While Exit<>1
dx=x-UO.GetX() dy=y-UO.GetY() If dx==0 AND dy==0 Then Exit=1 Endif kop=kop+1 if kop==15 then Exit=1 else 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 endif Wend if k==1 then minround() endif 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 CheckLag() var ms="attacking you" var k=uo.life-uo.str if k*k>1 or uo.injournal(ms) then uo.say("") endif UO.DeleteJournal() UO.Click('backpack') repeat wait(50) until UO.InJournal('backpack') end sub
|