Скрипт на мининг по рунам.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Deathclaw
Posts: 31
Joined: 2005-01-21 15:45:19

Скрипт на мининг по рунам.

Post by Deathclaw »

Я его запускаю всё прописываю всё ок: Он реколится по первой руне, потом реколится к банку там реколится по второй руне к дому складывает но когда добирает реги берёт почему-то тока МР! Да и когда опять реколится но уже как бы по второй руне, почему-то реколится по первой(хотя ещё точно не уверен потому тчо все руны маркал в одной шахте может в одном и томже месте маркнул, пока проверить не могу крафтера в онлайне нету тчо бы мне руны сделал)но всёже если вдруг что-нибудь про рекол по руннам попадётся ненарком подозрительного плиз опишите!Заранее спасибо
Вот собственно сам скрипт:

Code: Select all

######################################################### 
#      World's Heart Mining         # 
#         ver 1.03         #    
#               by Flake   # 
######################################################### 
# Îïèñàíèå: 
#   ×àð ïðèëåòàåò â øàõòó, îáêàïûâàåòñÿ, çàòåì äåëàåò 5 øàãîâ íà çàïàä (W), 
#   è îïÿòü îáêàïûâàåòñÿ. Ïðè ïåðåâåñå ëåòèò ê áàíêó, è îòòóäà ïî ðóíå äîìîé. 
#   Äîìà âûãðóæàåò ðóäó, äîáèðàåò ðåãè, êóøàåò è îïÿòü êîïàòü. 
#   Íà áàçå ó ÷àðà 2 ñóíäóêà, Sunduk - äëÿ âûãðóçà ðóäû, Sunduk2 - â íåãî 
#   êëàäåì ðåãè, åäó è âñ¸ îñòàëüíîå (ñì. íèæå). 
#   Òàê æå ââåäåíà ñèñòåìà àíòè-ýëåì. Äëÿ ýòîãî âàì ïîíàäîáèòüñÿ ìîùíàÿ æèâîòèíà, 
#   ëó÷øå âñåãî Íàéòìàð. Ïðè âûêàïûâàíèè ýëåìà ÷àð áóäåò ñïóñêàòü çàøðèíêîâàííîãî 
#   çâåðÿ íà ýëåìà, æäàòü ïîêà òîò åãî óáüåò, çàòåì îí çàøðèíêóåò çâåðÿ îáðàòíî è 
#   îáëóòèò òðóï ýëåìà. ×òîáû âêëþ÷èòü ýòó ñèñòåìó, ïîñòàâüòå â ïåðåìåííîé 
#   AntiElem çíà÷åíèå 1 (Ïðè 0 ñèñòåìà îòêëþ÷åíà, ïðè 1 - âêëþ÷åíà.). 
#   Åñëè õîòèòå êîïàòü ñ àíòèýëåìîì, â Sunduk2 êèíüòå áóòûëîê èíâèçà è øðèíêîâ. 
#   Òàê æå íåîáõîäèìî â ïåðåìåííûõ Killer è KillerB ïðîïèñàòü òèïû âàøåãî 
#   çâåðÿ - óáèéöû â çàøðèíêîâàííîì è îáû÷íîì âèäàõ. 
#    ïàêå ó ÷àðà äîëæíî áûòü: 6 ðóí â øàõòû, ïàðó êèðîê, ðåãè íà ðåêàë. 
#   Â áàíêå - ðóíà äîìîé. 
#   Ðóíû íåîáõîäèìî ìàðêàòü òàêèì îáðàçîì, ÷òîáû ó ÷àðà áûëî ìåñòà äëÿ 5 
#   øàãîâ â íàïðàâëåíèè (W). 
############################################################################ 
###########################################################################¹ 
#                            Ïåðåìåííûå: 


VAR AntiElem = 0   ; Åñëè 0 - ñèñòåà îòêëþ÷åíà. åñëè 1 - âêëþ÷åíà. 

VAR BankRune = '0x4015CCDB'   ; ID ðóíû, âåäóùåé ê áàíêó 
VAR HomeRune = '0x4015AFE2'   ; ID ðóíû, êîòîðàÿ ëåæèò â áàíêå è âåäåò ê äîìó. 
VAR Sunduk = '0x40198702'      ;   ID ñóíäóêà äëÿ ðàçãðóçêè ðóäû 
VAR Sunduk2 = '0x401C8135'     ; ID ñóíäóêà ñ ðåãàìè è åäîé 
VAR Food = '0x1608'    

VAR Elem = '0x000E'            ; òèï ýëåìåíòà 
VAR Killer = '0x0000'          ; òèï êèëëåðà â øðèíêå 
VAR KillerB = '0x0000'         ; òèï êèëëåðà 
VAR ShrinkClr = '0x051B'      ; öâåò øðèíêà 
VAR InvisClr = '0x012B'       ; öâåò èíâèçêè 
VAR Bottle = '0x0F0E'  ; òèï áóòûëêè 



########################################################################### 
########################################################################### 
sub START_MINING() 
VAR Kirka = '0x0E85'    
VAR TileNum = '1339' 
VAR MaxWeight = 750                                      ; Ìàêñèìàëüíûé âåñ ìèíóñ 30-40 ñòîóíîâ 
VAR x, y, t, k 
VAR MaxTime = 7000    
VAR ms1 = "There is nothing here to mine for" 
VAR ms2 = "You can't use" 
VAR ms3 = "You put the" 
VAR ms4 = "loosen some rocks but fail" 
VAR ms5 = "You can't use the %s where it is" 
VAR ms6 = "Try mining in rock" 
VAR ms7 = "Try mining elsewhere." 
VAR ms8 = "no line of sight" 
VAR tochka = 1 
VAR flag = 0 

Dim Runa[6] 
 Runa[1] = 0x4026346E            ; âïèñàòü ID ðóí â øàõòû 
 Runa[2] = 0x402636C7 
 Runa[3] = 0x40263AA1 
 Runa[4] = 0x4025E5A8 
 Runa[5] = 0x4025E52E 
 Runa[6] = 0x4025E3A8 

   UO.SetGlobal( 'alarm', 'off' ) 
        RecallRune(Runa[tochka]) 
          If AntiElem == 1 Then 
            ElemCheck() 
          EndIf 
          If UO.GetGlobal( 'alarm' ) == 'on' Then 
            GoTo JumpNext 
          EndIf 
   CheckHide() 
    
 Repeat 
      
  StartMine: 
  flag = flag + 1 
  For y=-2 to 2 
    For x=-2 to 2 
     k = 0 
      Repeat 
         UO.DeleteJournal() 
         t = UO.Timer() 
         k = k + 1 
          UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) 
          UO.UseType( Kirka ) 
             Repeat 
               Wait(300) 
             Until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8) OR ((t + MaxTime) < UO.Timer())                      
      Until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR UO.InJournal(ms7) OR UO.InJournal(ms8) OR (k > 10)) 
   ;--- --- --- Ïðîâåðêà íà ïåðåâåñ è ýëåìà --- --- 
     If AntiElem == 1 Then 
       ElemCheck() 
     EndIf 
       If UO.Weight >= MaxWeight OR UO.GetGlobal( 'alarm') == 'on'  Then 
        UO.Print( 'Ïåðåâåñ!' ) 
         UnLoad() 
    RecallRune(Runa[tochka]) 
      If AntiElem == 1 Then 
             ElemCheck() 
           EndIf 
           If UO.GetGlobal( 'alarm' ) == 'on' Then 
             GoTo JumpNext 
           EndIf 
         CheckHide() 
         flag = 0             
         tochka = tochka + 1       
           If tochka == 6 Then       
              tochka = 1          
           EndIf             
         Goto StartMine          
       EndIf             
    ;--- --- --- --- --- --- --- --- --- --- 
    Next 
  Next 
  
  If flag < 2 Then 
    Walk() 
    GoTo StartMine 
  EndIf 

  JumpNext: 
    flag = 0 
    tochka = tochka + 1 
      If tochka == 6 Then 
        tochka = 1 
      EndIf 
    RecallRune(Runa[tochka]) 
      If AntiElem == 1 Then 
        ElemCheck() 
      EndIf 
      If UO.GetGlobal( 'alarm' ) == 'on' Then 
        GoTo JumpNext 
      EndIf 
    CheckHide() 

 Until UO.Dead() 
endsub 


;  --- Ìîäóëü ðàçãðóçêè è äîáîðà ðåãîâ.  
Sub UnLoad() 
VAR a, b 

Dim Ore[4] 
Ore[1]= 0x19B9 ; 4 and more ore 
Ore[2]= 0x19B7 ; 1 ore 
Ore[3]= 0x19BA ; 2 ore 
Ore[4]= 0x19B8 ; 3 ore 

Dim RecallReg[3] 
RecallReg[1] = 0x0F7A 
RecallReg[2] = 0x0F7B 
RecallReg[3] = 0x0F86 

  ; --- Ïðûãàåì ê áàíêó 
   RecallRune(BankRune) 
   UO.MSG( 'Bank' ) 
   Wait(100) 

  ; --- Ïðûãàåì äîìîé 
    RecallRune(HomeRune) 

  ; --- Ðàçãðóçêà ðóäû 
   For a = 1 to 4 
     UO.FindType( Ore[a] ) 
       While UO.FindCount() 
         UO.MoveItem( 'finditem', '-1', Sunduk ) 
         Wait(200) 
         CheckLag() 
         UO.FindType( Ore[a] ) 
       Wend 
   Next 

  ; --- Äîáîð ðåãîâ, åäû è áóòûëîê 
  For b = 1 to 3 
    UO.FindType( RecallReg[b] ) 
      If UO.GetQuantity( 'finditem' ) < 20 Then 
        UO.FindType( RecallReg[b], '-1', Sunduk2 ) 
          If UO.GetQuantity( 'finditem' ) > 20 Then 
       UO.Grab( '1', 'finditem' )
            Wait(200) 
            CheckLag() 
          Else 
            UO.Print( 'Regs not found, script terminated' ) 
            UO.Exec( 'terminate all' ) 
          EndIf 
        
      EndIf 
  Next 
    UO.FindType( Food ) 
      If UO.GetQuantity( 'finditem' ) < 10 Then 
        UO.FindType( Food, '-1', Sunduk2 ) 
        UO.Grab( '10', 'finditem' ) 
        Wait(200) 
        CheckLag() 
      EndIf 
    UO.DeleteJournal()  
    UO.FindType( Food ) 
      If UO.FindCount() Then 
        Repeat  
          UO.UseType( Food ) 
          Wait(200) 
          CheckLag() 
        Until UO.InJournal( 'simply too full' ) 
      EndIf 
    
  If AntiElem == 1 Then 
    UO.FindType( Bottle, ShrinkClr, 'my' ) 
      If UO.GetQuantity( 'finditem' ) < 6 Then 
        UO.FindType( Bottle, ShrinkClr, Sunduk2 ) 
     If UO.FindCount() > 6 Then 
       UO.Grab( '6', 'finditem' ) 
     Else 
       UO.Print( 'Bottles not found, script terminated' ) 
            UO.Exec( 'terminate all' ) 
     EndIf 
      EndIf 

    UO.FindType( Bottle, InvisClr, 'my' ) 
      If UO.GetQuantity( 'finditem' ) < 6 Then 
        UO.FindType( Bottle, InvisClr, Sunduk2 ) 
     If UO.FindCount() > 6 Then 
       UO.Grab( '6', 'finditem' ) 
     Else 
       UO.Print( 'Bottles not found, script terminated' ) 
            UO.Exec( 'terminate all' ) 
     EndIf 
      EndIf 
  EndIf 
endsub 


; --- Ïðîöåäóðà ðåêàëà ïî ðóíå 
Sub RecallRune(RuneId)  
VAR MyX, MyY, t, i 
  If UO.Mana < UO.Int Then 
    UO.WarMode(0) 
      Repeat 
        UO.UseSkill( 'Meditation' ) 
        Wait(1000)        
      Until UO.Mana == UO.Int 
   EndIf 
   i = 1 
      Cast: 
        MyX = UO.GetX() 
        MyY = UO.GetY() 
   t = 0    
        UO.Cast( 'Recall', RuneId ) 
        UO.DeleteJournal() 
     If UO.GetGlobal( 'alarm' ) == 'on' AND i ==1 Then 
       Wait(150) 
       UO.UseType( Bottle, InvisClr ) 
       i = 0 
          EndIf 
          Repeat 
         t = 1 + 1 
              If UO.InJournal( 'izzle' ) OR (t > 40) Then 
                GoTo Cast 
         Else 
      Wait(500) 
              EndIf 
          Until MyX <> UO.GetX() AND MyY <> UO.GetY() 
endsub    

; --- Ôóíêöèÿ Àíòè-Ýëåìåíò. 
Sub ElemCheck() 
UO.Set( 'finddistance', '5' ) 
UO.FindType( Elem, '-1', 'ground' ) 
  If UO.FindCount() == 1 Then 
    UO.Print( 'One Element found! Killing system activated!' ) 
    UO.UseType( 'Killer' ) 
    UO.WaitTargetObject( 'finditem'  ) 
    UO.MSG( 'all kill' ) 
      UO.FindType( Elem, '-1', 'ground' ) 
        While UO.FindCount() 
         Wait(1000) 
          UO.FindType( Elem, '-1', 'ground' ) 
         Wend 
      UO.FindType( KillerB, '-1', 'ground' ) 
      UO.WaitTargetObject( 'finditem' ) 
      UO.UseType( Bottle, ShrinkClr ) 
      Wait(200) 
      UO.FindType( Killer, '-1', 'ground' ) 
      UO.Grab( '1', 'finditem' ) 
      Wait(200) 
      UO.SetGlobal( 'alarm', 'off' ) 
      LootElem() 
  Else 
    If UO.FindCount() > 1 Then 
      UO.SetGlobal( 'alarm', 'on' ) 
    Else 
      UO.SetGlobal( 'alarm', 'off' ) 
    EndIf 
  EndIf 
endsub 

; ---  Ôóíêöèÿ Ëóòà Ýëåìà 
Sub LootElem() 
VAR Cleaver = '0x0000' 
VAR Kirka = '0x0E85' 
VAR a 
 Dim Ore[4] 
  Ore[1]= 0x19B9 ; 4 and more ore 
  Ore[2]= 0x19B7 ; 1 ore 
  Ore[3]= 0x19BA ; 2 ore 
  Ore[4]= 0x19B8 ; 3 ore 

  If UO.GetDistance( 'lastcorpse' ) < 3 Then 
    UO.WaitTargetObject( 'lastcorpse' ) 
    UO.UseType( Cleaver ) 
    Wait(300) 
    UO.UseObject( 'lastcorpse' ) 
      For a = 1 to 4 
        UO.FindType( Ore[a], '-1', 'lastcorpse' ) 
          While UO.FindCount() 
       UO.Grab( '1', 'finditem' ) 
            Wait(200) 
       CheckLag() 
       UO.FindType( Ore[a], '-1', 'lastcorpse' ) 
      Wend 
      Next 
   UO.FindType( '0x0EED', '-1', 'lastcorpse' )   ; äåíüãè 
     If UO.FindCount() Then 
       UO.Grab( '1', 'finditem' ) 
            Wait(200) 
     EndIf 
    UO.UseType( Kirka ) 
    Wait(200) 
  Else 
    UO.Print( 'The corpse is too far!' ) 
  EndIf 
endsub 

; --- Ïðîöåäóðà ïðîâåðêè è óõîäà â õàéä. 
Sub CheckHide() 
VAR fail = "You can't seem to hide here." 
  If UO.Hidden() Then 
    UO.Print( 'Hidden!' ) 
  Else 
    UO.Print( 'Now Hiding...' ) 
    StartHide: 
      UO.WarMode(0) 
      UO.UseSkill( 'Hiding' ) 
      DeleteJournal("You can't seem to hide here.") 
        Repeat 
          If UO.InJournal( fail ) Then 
            GoTo StartHide 
          Else 
            Wait(100) 
          EndIf 
        Until UO.Hidden() 
    UO.Print( 'Hidden!' ) 
  EndIf 
end sub 

Sub Walk() 
  UO.Press(36) 
  UO.Press(36) 
  UO.Press(36) 
  UO.Press(36) 
  UO.Press(36) 
  Wait(1500) 
  CheckHide() 
endsub 

Sub CheckLag() 
   DeleteJournal( 'backpack' ) 
   UO.Click('backpack') 
   Repeat 
      Wait(100) 
   Until UO.InJournal('backpack') 
end sub 
  
Sub DeleteJournal(msg) 
   var nom = UO.InJournal(msg) 
   If nom>0 Then 
      UO.SetJournalLine(Nom - 1," -- replaced -- ")  
      DeleteJournal(msg) 
   EndIf 
endsub 
Last edited by Deathclaw on 2006-11-16 17:37:06, edited 1 time in total.
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Во первых код в код, а во вторых не копируйте с инжекта. Сохраняйте в текстовых редакторах и вставляйте сюда из них.
[b][color=green]ДРВ[/color][/b]
[color=blue]Spoiler[/color]
_________________
[b][color=green]Антарес[/color][/b]
[color=blue]Spoiler[/color]|[color=blue]Gostrabaiter[/color]|[color=red]Umhra[/color]|[color=red]Slog[/color]
Deathclaw
Posts: 31
Joined: 2005-01-21 15:45:19

Post by Deathclaw »

Ну, я перезаписал в код и сохранил в текстовом редакторе и потом скопировал но всё равно фигня такая
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Я тоже одно время летал на таком скрипте а так как играю на ДРВ и там производство и покупка рунбук подорожала, то снова собираюсь вернутся к рункам.


Проверь, те типы регов для рекола прописаны? И не слишкомли много их? (много это 1,5,10 к). Положи по 100 каждого.

Code: Select all

Dim RecallReg[3] 
RecallReg[1] = 0x0F7A 
RecallReg[2] = 0x0F7B 
RecallReg[3] = 0x0F86 
Из-за невозможности прочесть настройки и объемности скрипта, могу только догадыватся, что рунки нужно было вбить в объекты.

Code: Select all

 Runa[1] = 0x4026346E
 Runa[2] = 0x402636C7 
 Runa[3] = 0x40263AA1 
 Runa[4] = 0x4025E5A8 
 Runa[5] = 0x4025E52E 
 Runa[6] = 0x4025E3A8 
[b][color=green]ДРВ[/color][/b]
[color=blue]Spoiler[/color]
_________________
[b][color=green]Антарес[/color][/b]
[color=blue]Spoiler[/color]|[color=blue]Gostrabaiter[/color]|[color=red]Umhra[/color]|[color=red]Slog[/color]
Deathclaw
Posts: 31
Joined: 2005-01-21 15:45:19

Post by Deathclaw »

Да не, с этим всё в порядке все типы и ИД прописал и регов нормально клал один раз по 50 другой раз по 300
xarek
Posts: 115
Joined: 2006-03-08 20:53:28

Post by xarek »

а есть у кого нибудь этот скрипт только с руским описанием а не с закорючкми)
Post Reply