Yoko

All sides of Injection
It is currently 2025-10-20 19:16:45

All times are UTC+02:00




Post new topic  Reply to topic  [ 5 posts ] 
Author Message
PostPosted: 2007-08-11 09:44:42 
Offline
User avatar

Joined: 2006-02-07 19:16:37
Posts: 4
Нужно переделать скрипт, чтоб когда вылазиет Элем, то скрипт сразу выключался и делал логоут! Шард ДРВ

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 DigDistance, TileNum, KillElemental

   VAR ElemSignal, LastTimer

   DIM BaseX[2], BaseY[2]

   VAR BaseZ, WayPoint, WayPoints

   VAR MaxWeight



   VAR i,j,TileY,TileX,DirX,DirY

   VAR Delta,BeginX,EndX,BeginY,EndY

   



;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; TileNum='Num' - Use ",infotile" command on the floor

; ????? ????? ? ??????? ????? ?????? ,????????? ????????

; ",infotile" ?? ?????? ?????? ? ?????????? ?? ?????????? ?? ??

; ??????.

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   TileNum='1150'

   



;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; ???????????? ???, ??????? ????? ??????? ???. ??????? ???

; ??????? ?????? ?????????. ?? ???? ???? ??? ????????? 760, ??

; ?????? 730.

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   MaxWeight=500

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; 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='On'





;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; ????? ????????? ?????????? ????? ???????. ????? ?????? ??

; ??????? ? ?????????? ?????????? ? ???????. ?? ? ?????

; ?????????? ?????? ????. ???? ??????? ?? 4 ?????? ?? ????.

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



   BaseX[0]=5334

   BaseY[0]=1150

   BaseZ=0



   BaseX[1]=5326

   BaseY[1]=1150

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; ????????? ?????????? ????? ???????

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



   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

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



   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

               unloadore()

            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=5774

   VAR SundukY=1152

   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(0x1B76) ; 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:\game\uo\injection\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=150

   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


Top
   
 Post subject:
PostPosted: 2007-08-11 10:01:42 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Нужно. переделывайте


Top
   
 Post subject:
PostPosted: 2007-08-11 14:33:05 
Offline
User avatar

Joined: 2006-02-07 19:16:37
Posts: 4
Scripts Writer wrote:
Нужно. переделывайте


Большое спасибо! Ваш пост мне действительно помог!


Top
   
 Post subject:
PostPosted: 2007-08-11 15:17:59 
Offline
User avatar

Joined: 2006-02-07 19:16:37
Posts: 4
Scripts Writer

ЫЫЫ Ты прикалываешься с Ником? Помоему тебе лишь бы пофлудить!


Top
   
 Post subject:
PostPosted: 2007-08-12 08:45:49 
Offline

Joined: 2007-08-12 08:40:13
Posts: 1
eX-Clusive wrote:
Scripts Writer wrote:
Нужно. переделывайте


Большое спасибо! Ваш пост мне действительно помог!

на мб сработает нет времени проверить ....
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 DigDistance, TileNum, KillElemental

   VAR ElemSignal, LastTimer

   DIM BaseX[2], BaseY[2]

   VAR BaseZ, WayPoint, WayPoints

   VAR MaxWeight



   VAR i,j,TileY,TileX,DirX,DirY

   VAR Delta,BeginX,EndX,BeginY,EndY

   



;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; TileNum='Num' - Use ",infotile" command on the floor

; ????? ????? ? ??????? ????? ?????? ,????????? ????????

; ",infotile" ?? ?????? ?????? ? ?????????? ?? ?????????? ?? ??

; ??????.

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   TileNum='1150'

   



;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; ???????????? ???, ??????? ????? ??????? ???. ??????? ???

; ??????? ?????? ?????????. ?? ???? ???? ??? ????????? 760, ??

; ?????? 730.

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   MaxWeight=500

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; 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='On'





;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; ????? ????????? ?????????? ????? ???????. ????? ?????? ??

; ??????? ? ?????????? ?????????? ? ???????. ?? ? ?????

; ?????????? ?????? ????. ???? ??????? ?? 4 ?????? ?? ????.

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



   BaseX[0]=5334

   BaseY[0]=1150

   BaseZ=0



   BaseX[1]=5326

   BaseY[1]=1150

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

; ????????? ?????????? ????? ???????

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



   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

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



   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

               unloadore()

            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=5774

   VAR SundukY=1152

   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

sub killelem()
uo.Exec('terminate all")
wait(100)
uo.CloseUO()
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:\game\uo\injection\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=150

   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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 5 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited