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