DRW Vip mining

Anything and all.

Moderators: Murderator+, Murderator

Dillersss
Posts: 39
Joined: 2007-08-11 16:44:45
Location: www.drw.ru

Post by Dillersss »

Спасибо за отличный скрипт.
А вы немоглибы тут исправить спец для дрв чтоб чар килял элема вортексом потом аортил его и снова капать просто щас с пвм сложновато стало рукой он его убить неможет.
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

Code: Select all

;----------- Summon Energy Vortex, kill elem and loot him -----------
sub killelem()
if uo.injournal("heavy") then # вырыли элемента #
   # убиваем элемента #
   Vortex:
   uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, а то энергетик порвет =) #
   wait(300)
   uo.cast('Energy Vortex','self')
   repeat
      wait(300)
   until uo.injournal("fizzles") or uo.injournal("Vortex")
   if uo.injournal("fizzles") then
      goto Vortex
   else
                   wait(15000)
      vasanort:
      uo.exec('usetype 0x0f0e 0x09DF') # пьем манку #
      wait(300)
      uo.cast('Mass Dispel','self')
      wait(7000)
      if uo.injournal("fizzles") then
         goto vasanort
      endif
# собираем руду и копаем дальше #
      UO.SetReceivingContainer('backpack')
      UO.FindType('0x19B9',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.FindType('0x19B7',-1,'ground')
                   if UO.GetQuantity('finditem')>0 then
               UO.Grab('0','finditem')
               wait(2000)
      endif
      UO.FindType('0x19BA',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.FindType('0x19B8',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.UnSetReceivingContainer()
   endif
endif
end sub


Из старого скрипта вырезал.
Вставь вместо старого..
:O
Dillersss
Posts: 39
Joined: 2007-08-11 16:44:45
Location: www.drw.ru

Post by Dillersss »

спасибки , вот щас тестю сижу жду элема)
Dillersss
Posts: 39
Joined: 2007-08-11 16:44:45
Location: www.drw.ru

Post by Dillersss »

алилуя всё пашет агромное сенкс ещё раз.
Dillersss
Posts: 39
Joined: 2007-08-11 16:44:45
Location: www.drw.ru

Post by Dillersss »

Терь вот такая просьба а реконектор туда можно вставить ?))
BETEPAH2
Posts: 33
Joined: 2007-08-15 20:07:20
Contact:

Post by BETEPAH2 »

Просто скопируй его в макрос и запускай вместе с Майнингом
Dillersss
Posts: 39
Joined: 2007-08-11 16:44:45
Location: www.drw.ru

Post by Dillersss »

BETEPAH2 wrote:Просто скопируй его в макрос и запускай вместе с Майнингом
ясно спасибки)
Dillersss
Posts: 39
Joined: 2007-08-11 16:44:45
Location: www.drw.ru

Post by Dillersss »

плиз впишите суда ктонить реконектор :) зарание спасибо.

Code: Select all

############################################################## 
#===---====----===---===---= 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[4], BaseY[4]
   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='1339'
   

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; Ìàêñèìàëüíûé âåñ, êîòîðûé ìîæåò ïîäíÿòü ÷àð. Ñòàâüòå åãî
; íåìíîãî ìåíüøå ðåàëüíîãî. Òî åñòü åñëè ÷àð ïîäíèìàåò 760, òî
; ñòàâèì 730.
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   MaxWeight=600

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; 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='Yes'

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; ElemSignal='Off'/'On' - Play sound when elemental is digged
; Îïîâåøàòü ïðè ïîÿâëåíèè ýëåìà
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   ElemSignal='Off'


;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; Çäåñü óêàçûâàåì êîîðäèíàòû òî÷åê êîïàíèÿ. Íóæíî âñòàòü íà
; ïîçèöèþ è ïîñìîòðåòü êîîðäèíàòû â èíæåêòå. Èõ è íóæíî
; ïîäñòàâèòü âìåñòî ìîèõ. ×àðà ñòàâüòå íà 4 êëåòêè îò ñòåí.
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   BaseX[0]=5846
   BaseY[0]=1212
   BaseZ=0

   BaseX[1]=5843
   BaseY[1]=1215

   BaseX[2]=5850
   BaseY[2]=1214

   BaseX[3]=5846
   BaseY[3]=1212

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; Óêàçûâàåì êîëè÷åñòâî òî÷åê êîïàíèÿ
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   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=11   ; Ñêîëüêî ýëåìåíòîâ â ìàññèâå.
   DIM Ores[13]   

   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]="Gold"
   Ores[8]="Rose"
   Ores[9]="Shadow"
   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=5839
   VAR SundukY=1216
   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

;----------- Summon Energy Vortex, kill elem and loot him -----------
sub killelem()
if uo.injournal("heavy") then # âûðûëè ýëåìåíòà #
   # óáèâàåì ýëåìåíòà #
   Vortex:
   uo.exec('usetype 0x0f0e 0x0631') # ïüåì èíâèçêó, à òî ýíåðãåòèê ïîðâåò =) #
   wait(300)
   uo.cast('Energy Vortex','self')
   repeat
      wait(300)
   until uo.injournal("fizzles") or uo.injournal("Vortex")
   if uo.injournal("fizzles") then
      goto Vortex
   else
                   wait(15000)
      vasanort:
      uo.exec('usetype 0x0f0e 0x09DF') # ïüåì ìàíêó #
      wait(300)
      uo.cast('Mass Dispel','self')
      wait(7000)
      if uo.injournal("fizzles") then
         goto vasanort
      endif
# ñîáèðàåì ðóäó è êîïàåì äàëüøå #
      UO.SetReceivingContainer('backpack')
      UO.FindType('0x19B9',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.FindType('0x19B7',-1,'ground')
                   if UO.GetQuantity('finditem')>0 then
               UO.Grab('0','finditem')
               wait(2000)
      endif
      UO.FindType('0x19BA',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.FindType('0x19B8',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.UnSetReceivingContainer()
   endif
endif
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
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

Code: Select all

############################################################### 
#===---====----===---===---= 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()
UO.Exec('terminate Reconnector')
wait(1000)
uo.exec('exec Reconnector')
   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='1339'
   

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; Максимальный вес, который может поднять чар. Ставьте его
; немного меньше реального. То есть если чар поднимает 760, то
; ставим 730.
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   MaxWeight=200

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; 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='Yes'

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; ElemSignal='Off'/'On' - Play sound when elemental is digged
; Оповешать при появлении элема
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   ElemSignal='On'


;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; Здесь указываем координаты точек копания. Нужно встать на
; позицию и посмотреть координаты в инжекте. Их и нужно
; подставить вместо моих. Чара ставьте на 4 клетки от стен.
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   BaseX[0]=6108
   BaseY[0]=1213
   BaseZ=0

   BaseX[1]=6103
   BaseY[1]=1213

   BaseX[2]=6096
   BaseY[2]=1213

;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
; Указываем количество точек копания
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

   WayPoints=3


   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
               If UO.InJournal('Elemental') then
               UO.TextPrint('Elemental founded '+MakeTime())
end sub


; Проверка нужности руды. Закоментировать то что нужно копать.
sub CheckOre()
   VAR Cont=1, i=0, Exit=0
   VAR Count=0   ; Сколько элементов в массиве.
   DIM Ores[15]   

;   Ores[0]="Rusty"
;   Ores[1]="Old Copper"
;   Ores[2]="Dull Copper"
;   Ores[3]="Copper"
;   Ores[4]="Bronze"
;   Ores[5]="Silver"
;   Ores[6]="Iron"
;   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(300)
               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=6094
   VAR SundukY=1216
   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

;----------- Summon Energy Vortex, kill elem and loot him -----------
sub killelem()
if uo.injournal("heavy") then # вырыли элемента #
   # убиваем элемента #
   Vortex:
   uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, а то энергетик порвет =) #
   wait(300)
   uo.cast('Energy Vortex','self')
   repeat
      wait(300)
   until uo.injournal("fizzles") or uo.injournal("Vortex")
   if uo.injournal("fizzles") then
      goto Vortex
   else
                   wait(15000)
      vasanort:
      uo.exec('usetype 0x0f0e 0x09DF') # пьем манку #
      wait(300)
      uo.cast('Mass Dispel','self')
      wait(7000)
      if uo.injournal("fizzles") then
         goto vasanort
      endif
# собираем руду и копаем дальше #
      UO.SetReceivingContainer('backpack')
      UO.FindType('0x19B9',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.FindType('0x19B7',-1,'ground')
                   if UO.GetQuantity('finditem')>0 then
               UO.Grab('0','finditem')
               wait(2000)
      endif
      UO.FindType('0x19BA',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.FindType('0x19B8',-1,'ground')
      if UO.GetQuantity('finditem')>0 then
         UO.Grab('0','finditem')
         wait(2000)
      endif
      UO.UnSetReceivingContainer()
   endif
endif
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 C:\InformedFile.wav")
      wait(1200) ; time to play sample at once
   next
end sub


#==============================================================
#  Alarm() - when char lose some HP, U are informed :)
#--------------------------------------------------------------
sub Alarm()
   VAR CharHP=190
   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

sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
UO.Exec('terminate mine')  #сюда похоже нужно писать название другого скрипта, который нужно перезапустить после реконекта (для прокачки)
wait(1000)
UO.Exec('exec mine')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub


Вот мой скрипт.
С реконнектором и всё такое.
Last edited by Spirit on 2007-09-30 14:11:55, edited 2 times in total.
:O
Lopi
Posts: 9
Joined: 2006-04-22 10:12:38

Post by Lopi »

а куда слбственно чар идёт после того как набрад макимадьный вес, а?
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

К сундуку.
Dimage
Posts: 36
Joined: 2006-12-04 00:23:37
Contact:

Post by Dimage »

За скрипт автору огромное спасибо.
И как всегда большое жирное НО закралось...

У мну почему то не детектятся элемы которых выкопал не я...
тоесть они атакуют чара а ему реально пофигу , хотя если я выкопаю его , то скрипт с радостью выполнит все свои функции.

Где посмотреть , что посоветуете?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Dimage wrote:За скрипт автору огромное спасибо.
И как всегда большое жирное НО закралось...

У мну почему то не детектятся элемы которых выкопал не я...
тоесть они атакуют чара а ему реально пофигу , хотя если я выкопаю его , то скрипт с радостью выполнит все свои функции.

Где посмотреть , что посоветуете?


Code: Select all

;----------- Summon Energy Vortex, kill elem and loot him ----------- 
sub killelem()
if uo.injournal("heavy") then # вырыли элемента #
   # убиваем элемента


Вот тут посмотри ))) А посоветовать могу вставить поиск по типу, в радиусе 10 клеток, чтоб на соседей не срабатывал скрипт.
Dimage
Posts: 36
Joined: 2006-12-04 00:23:37
Contact:

Post by Dimage »

Code: Select all

sub killelem()
if uo.injournal("heavy") or uo.injournal("attacking you") or uo.injournal("Elemental")
then # вырыли элемента #
   # убиваем элемента #


Сделал так? правильно?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Dimage wrote:

Code: Select all

sub killelem()
if uo.injournal("heavy") or uo.injournal("attacking you") or uo.injournal("Elemental")
then # вырыли элемента #
   # убиваем элемента #


Сделал так? правильно?


По журналу не айс, так как основной скрипт затирает журнал, может пропускать элемов, лучше поиск по типу юзать.
Dimage
Posts: 36
Joined: 2006-12-04 00:23:37
Contact:

Post by Dimage »

а если так?

заменить:

Code: Select all

if uo.injournal("heavy") then # вырыли элемента #


на:

Code: Select all

    UO.Set('finddistance', '50')
    UO.FindType("0x0010","-1", "ground")
    If UO.FindCount() > 0 Then


Вариант правилен?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Dimage wrote:а если так?

Вариант правилен?


Да только дистанцию поменьше сделай

Code: Select all

    UO.Set('finddistance', '10')


А то на соседских будет срабатывать
Dimage
Posts: 36
Joined: 2006-12-04 00:23:37
Contact:

Post by Dimage »

так в этом и была проблема , что своих убивает свободно, а чужих нет.
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

В любом случае больше finddistance ставь не больше 24, оптимально 14( размер экрана)...
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

korzh wrote:В любом случае больше finddistance ставь не больше 24, оптимально 14( размер экрана)...


10 макс 12, т.к. детектятся элемы соседей, и еще одну строку нужно поправить, в самом мининге перед запуском кила идет проверка по журналу, там поменяй
Post Reply