Code: ############################################################### #===---====----===---===---= Mining =---=-=-=-=-=--=-=-=-=-=-=# # Single char mining for VIP Mine. DRW Shard www.drw.ru # # Scripted by Savage (c) 2005 ICQ:33336141 # #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# # To start script use ",exec mine" command from client window # ###############################################################
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ;==================== Main mining script ====================== ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" sub mine() VAR i,j,TileY,TileX,DirX,DirY VAR Delta,BeginX,EndX,BeginY,EndY VAR DigDistance, TileNum, KillElemental VAR ElemSignal, LastTimer DIM BaseX[2], BaseY[2] VAR BaseZ, WayPoint, WayPoints VAR MaxWeight
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; TileNum='Num' - Use ",infotile" command on the floor ; ????? ????? ? ??????? ????? ?????? ,????????? ???????? ; ",infotile" ?? ?????? ?????? ? ?????????? ?? ?????????? ?? ?? ; ??????. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" TileNum='1339'
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; ???????????? ???, ??????? ????? ??????? ???. ??????? ??? ; ??????? ?????? ?????????. ?? ???? ???? ??? ????????? 760, ?? ; ?????? 730. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" MaxWeight=250
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; DigDistance=4 - Distance from tile where pickaxe targeting ; ?????? ????? ?? ???????? ????? ?????? ???, ?? ???? ?????????? ; ?? ?????? ???? ????? ?????????? ??????. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" DigDistance=4
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; KillElemental='Yes'/'No' - Use 'Yes' if char skilled to morph ; in daemon and wrestling > 50 ; ???? ??? ?????????? ???????? ???? ???? ??????, ??????? 'Yes' ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" KillElemental='No'
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; ElemSignal='Off'/'On' - Play sound when elemental is digged ; ????????? ??? ????????? ????? ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ElemSignal='Off'
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; ????? ????????? ?????????? ????? ???????. ????? ?????? ?? ; ??????? ? ?????????? ?????????? ? ???????. ?? ? ????? ; ?????????? ?????? ????. ???? ??????? ?? 4 ?????? ?? ????. ;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
BaseX[0]=771 BaseY[0]=1683 BaseZ=0
BaseX[1]=779 BaseY[1]=1683
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; ????????? ?????????? ????? ??????? ;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
WayPoints=2
CheckLag() UO.UseObject('Sunduk') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the') OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("Podoydi k sunduku i tkni v nego pricelom!") UO.AddObject('Sunduk') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() UO.UseObject('Sunduk') Else ; UO.Say("Ok! Viju sunduk.") Endif
CheckLag() UO.UseObject('IronBag') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("V kakoy meshok kidat' Iron Ore") UO.AddObject('IronBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() Else ; UO.Say("Meshok dlya Iron Ore viju") Endif
CheckLag() UO.UseObject('OtherBag') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("V kakoy meshok kidat' rudu?") UO.AddObject('OtherBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() Else ; UO.Say("Meshok dlya rudy viju.") Endif
CheckLag() UO.UseObject('BestBag') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("V kakoy meshok kidat' vihu?") UO.AddObject('BestBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() Else ; UO.Say("Meshok dlya vihi viju.") Endif
While NOT UO.Dead() For WayPoint=0 to WayPoints-1 walkn(BaseX[WayPoint],BaseY[WayPoint],"") digitstay(MaxWeight,DigDistance,KillElemental,ElemSignal,BaseX[WayPoint],BaseY[WayPoint]) Next wend end sub
; ???????? ???????? ????. ??????????????? ?? ??? ????? ??????. sub CheckOre() VAR Cont=1, i=0, Exit=0 VAR Count=7 ; ??????? ????????? ? ???????. DIM Ores[15]
Ores[0]="Iron" Ores[1]="Rusty" Ores[2]="Old Copper" Ores[3]="Dull Copper" Ores[4]="Copper" Ores[5]="Bronze" Ores[6]="Silver" ; Ores[7]="Shadow" ; Ores[8]="Rose" ; Ores[9]="Gold" ; Ores[10]="Agapite" ; Ores[11]="Blood Rock" ; Ores[12]="Verite" ; Ores[13]="Valorite" ; Ores[14]="Mytheril"
While i<Count AND Exit==0 If UO.InJournal(Ores[i]) Then Cont=0 Exit=1 Endif ; UO.Print(STR(i)) ; UO.Print(Ores[i]) i=i+1 Wend return Cont wait(2000) port(2,book1) wait(3400) end sub
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
;-------------------- Try to mine under self ------------------ sub digitstay(MaxWeight,MaxDistance,KillElemental,ElemSignal,BaseX,BaseY) VAR x,y,z='0',TileNum='1339' VAR Last=0,LastTimer, ContFlag=1 VAR MaxTimer=110
na4alo: For x=-MaxDistance to MaxDistance For y=-MaxDistance to MaxDistance Repeat CheckLag() ; deleting journal ToHide() UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z) UO.UseType('0x0E85')
LastTimer=UO.Timer()
Repeat wait(500) until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+200<UO.Timer()
If NOT UO.InJournal('There is no') then ContFlag=CheckOre() Endif
If UO.InJournal('You loosen') then repeat wait(500) until UO.InJournal("You put") OR LastTimer+MaxTimer<UO.Timer() Endif
If UO.InJournal('something with ore') OR UO.InJournal("attacking you") then If ElemSignal=='On' Then Gong(2) Endif
If KillElemental=='Yes' Then KillElem() walkn(BaseX,BaseY,"") Else ; any user defined command when char digget elemental
Endif Endif If UO.InJournal("attacking you") then gong(3) Endif
If UO.Weight>=MaxWeight then wait(1000) unloadore() wait(3000) Endif Until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining") OR ContFlag==0 Next Next end sub
;------------------------- Unload ore ------------------------- sub unloadore() VAR TempX,TempY,i,Exit, Exit1, ConTainer, j VAR SundukX=5134 VAR SundukY=1151 VAR Index=14 ; ?????????? ????????? ??????? DIM Ore[5], Colors[20]
Colors[0]="0x09F0" ; Gorgan Colors[1]="0x09D3" ; Steel Colors[3]="0x0BA7" ; Eldar Colors[4]="0x08AF" ; Plut Colors[5]="0x0085" ; Dragon Colors[6]="0x0060" ; Aqua Colors[7]="0x09E6" ; Elvin Colors[8]="0x010F" ; Krinit Colors[9]="0x09DA" ; Vulkan Colors[10]="0x09EC" ; Blood Crest Colors[11]="0x008F" ; Sand Rock Colors[12]="0x09B9" ; Acid Colors[13]="0x09A4" ; Crystaline
TempX=UO.GetX() TempY=UO.GetY() walkn(SundukX,SundukY,"") ToHide() UO.UseObject("Sunduk")
Ore[0]=0x19B9 ; 4 and more ore Ore[1]=0x19B7 ; 1 ore Ore[2]=0x19BA ; 2 ore Ore[3]=0x19B8 ; 3 ore
For i=0 to 3 Exit=0 repeat UO.FindType(Ore[i]) if UO.GetQuantity('finditem')>0 then If UO.GetColor('finditem')=='0x0000' Then Container=UO.GetSerial('IronBag') Else Container=UO.GetSerial('OtherBag') Exit1=0 j=0 While j<Index AND Exit1<>1 If UO.GetColor('finditem')==Colors[j] Then Container=UO.GetSerial('BestBag') Exit1=1 Endif j=j+1 Wend Endif UO.MoveItem('finditem',0,Container) CheckLag() wait(1000) Else Exit=1 endif until Exit==1 Next
walkn(TempX,TempY,"") ToHide() end sub
;----------- Morf in Daemon, kill elem and loot him ----------- sub killelem() VAR Count, LastTimer, Elem
UO.UseType('0x0F0E','0x0631') ; inviz potion While UO.STR<201 ; U'r not morfed char max Strength + 1 If UO.Mana>=50 then UO.WaitMenu('What','Daemon') UO.Cast('Polymorph') wait(8000) else UO.UseType('0x0F0E','0x09DF') ; total mana potion wait(3000) endif Wend LastTimer=UO.Timer()
repeat UO.BandageSelf() wait(4000) until UO.Life==UO.STR OR LastTimer+300<UO.Timer()
UO.UseType(0x1B77) ; heater shield UO.UseType(0x1413) ; platemail gorget UO.DeleteJournal() UO.Exec('warmode 1')
UO.FindType('0x0010',-1,'ground') Elem=UO.GetSerial('finditem')
UO.Attack(Elem) repeat wait(1000) If UO.Life<50 Then UO.UseType('0x0F0E','0x09BB') ;GH Endif
If UO.GetDistance(Elem)>1 Then walkn(0,0,Elem) Endif
until UO.IsNPC(Elem)==0 wait(3000)
UO.WaitTargetGround('0x19B9') ; 4 and more ore wait(1500) UO.Grab('all') UO.WaitTargetGround('0x19B8') ; 3 ore wait(1500) UO.Grab('all') UO.WaitTargetGround('0x0EED') ; gold coins wait(500) UO.Grab('all')
UO.FindType('0x0010',-1,'ground') If UO.GetQuantity('finditem')>0 Then KillElem() Endif
UO.Exec('warmode 0') wait(1000)
UO.Print("Sdoh skotina!")
LastTimer=UO.Timer() if UO.Life<200 then ; U'r max HP repeat UO.BandageSelf() wait(4000) until UO.Life>200 OR LastTimer+300<UO.Timer() endif UO.DeleteJournal()
end sub
############################################################### ############################################################### ; ; Shared Subs ; ############################################################### ###############################################################
#============================================================== # tohide() - try hidding char. When char lose HP, drink inviz # potion if it found in backpack # # Journal has been deleted!!! #-------------------------------------------------------------- sub tohide() while NOT UO.Hidden() UO.DeleteJournal() UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then UO.UseType('0x0F0E','0x0631') ; inviz potion UO.Exec('warmode 0') wait(2000) else UO.Exec('warmode 0') UO.UseSkill('Stealth') repeat wait(50) until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') endif wend end sub
#============================================================== # CheckLag() - click on backpack and awaiting "backpack" # message in journal. # # Journal has been deleted!!! #-------------------------------------------------------------- sub CheckLag() UO.DeleteJournal() UO.Click('backpack')
repeat wait(500) until UO.InJournal('backpack') end sub
#============================================================== # Gong(counter) - playing wav-file 'counter'-times # http://www.jetta.ru/cow.wav #-------------------------------------------------------------- sub Gong(times) ; play wav-file VAR i for i=1 to times UO.Exec("playwav d:\uo\cow") wait(1200) ; time to play sample at once next end sub
#============================================================== # Alarm() - when char lose some HP, U are informed :) #-------------------------------------------------------------- sub Alarm() VAR CharHP=200 while 1==1 wait(1000) if UO.Life<CharHP then gong(1) endif wend end sub
;---------------- ??????? ----------------------- 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
Помогите пожайлусто! Чтоб чар прилетал \ улетал складывал \ прилетал... Сам пробовал , но нчиего не получается...
|