[code][/code] один чар практически нормально на этом скрипте работает, бывает после возвращения из шахты и выгрузки руды, берет все необходимое и начинает реколится в шахту, но реколится непонятно куда, так как постоянно происходит физл, и так пока не закончится мана, после медитации опять физлы а запускаю данный скрипт в другом окне так чар даходит до "берем инвиз" и все!!! дальше тупо стоит, месяца два назад все нормально работало вот сам скрипт # 23.11.2009 # 1# Mining Elemental hunter by Nmy a.k.a. Dark Enemy # Ñóòü ñêðèïòà - ìèíèíã ïî ðóíêàì. Çàïóñêàòü íàäî òîëüêî sub main(). Íå÷åãî äðóãîãî. # Åñëè ÷àð æèâ, ïðè çàïóñêå íàäî èìåòü â áåêïàêå ðóíó ê ñóíäóêó, # åñëè ÷àð ìåðòâ, òîãäà ïðîñòî çàïóñêàéòå ñêðèïò. # Ïîñëå çàïóñêà ñêðèïò èùåò êèðêó èëè ëîïàòó - àâòîìàòè÷åñêè. # Òðåáîâàíèÿ ïåðåä çàïóñêîì - ðåãè bp bm mr ns ga â ñóíäóêå, # áëàíê ðóíû â ìåøêå BlankRunebag, # çàìàð÷åíûå ðóíû â Runebag (×åì áîëüøå, òåì ëó÷øå. Ó ìåíÿ ãäå òî 59 ñïîòîâ), # ðóíà äîìîé Runehome, ïðÿìî ó ñóíäóêà, # èíâèçêè â ñóíäóêå äëÿ ðåêîëà îò ïê è ôàðìà åëåìîâ, # ñêðîëû íà Energy Vortex äëÿ ôàðìà åëåìîâ, # êó÷à êèðîê â ñóíäóêå. # Ïðè çàïóñêå ÷àð äîëæåí èìåòü ãîòîâóþ ðóíó äîìîé â áåêïàêå. Äðóãèõ ðóí â áåêïàêå íå äîëæíî áûòü. ## # Çàïóñêàåòñÿ ñêðèïò ó ñóíäóêà è çàïèñûâàåòñÿ ðóíà äîìîé. # Ñêðèïò áåðåò ðåãè, 2 èíâèçêè, ñêðîë âîðòåêñà, åñëè íàäî, êèðêó è óëåòàåò. # Íà÷èíàåòñÿ êîïêà. ×åðåç êàæäûé òàéë èäåò ïðîâåðêà íà åëåìà, # åñëè åëåì âûõà, ïëóò èëè îáñèä - óáèâàåò åëåìà, Vas An Ort, ëóòàåò ðóäó, óëåòàåò, âûãðóæàåòñÿ, áåðåò ðóíó â ñëåäóþùåþ øàõòó, # Òùàòåëüíî ïðîâåðÿåòñÿ æóðíàë íà ïê, èñêëþ÷àÿ ('Elemental|Scorpion King|Giant Spider|Energy Vortex'). # Óëåòàåò îò ïê - ïüåò èíâèçêó è äåëàåò ðåêîë ïî ðóíáóêå èëè ðóíå, # îòêðûâàåòcÿ îêíî òåêñòà TextOpen è ïèøåòñÿ Nick @ âðåìÿ @ äàòà, íàïðèìåð: # Roland @ 15:59:20 @ 9.09.18 ## # Track World Items äîëæåí áûòü âêëþ÷åí. # Reconnector - âêëþ÷àåòñÿ, îí ïðîñòî çàõîäèò îáðàòíî, íåò ãàðàíòèè ÷òî ñêðèïò áóäåò äàëüøå ðàáîòàòü, # íî øàíñ íà óñïåõ âñå òàêè åñòü. ## # Äîáàâëåí ðåññ â Ìèíîêå. ×àð ðåñàåòñÿ, ëåòèò äîìîé, ìàðêàåò ðóíó äîìîé, èùåò êèðêó â ñóíäóêå, çàïóñêàåò ìåéí ñêðèïò. # Äîáàâëåíû ïåðåìåííûå äëÿ õåëï êíîïêè, ò.ê. ïàïåðäîëë ó êàæäîãî ìîæåò áûòü â ðàçíûõ ìåñòàõ. # Undead íàäî âêëþ÷èòü. ## # ×àð ìåäèòèðóåò ôóëë ìàíó ïåðåä ðåêîëîì â øàõòó. var Pickaxe, Runehome, Blankrune, Runinetu, Nrune, flagpk var Runebook='0x400D87C3' # Äëÿ ðåêîëà äîìîé. var Runenr='46' # Íîìåð ðóíû. var Chest='0x40084BDB' # ß ëè÷íî ïîñòàâèë 2 ñåéôà ðÿäîì - 1 äëÿ ðåñóðñîâ, 2é äëÿ ðóäû. var Orechest='0x40084BDB' # Ñþäà êèäàþò ðóäó. var Dropbag='0x4052B078' # Ïóñòîé ìåøîê êóäà êèäàþò ðóíû ïîñëå îáêîïà. var Runebag='0x40169A26' # Ðóíû êóäà ëåòåòü. var Blankrunebag='0x40169AE0' # Ìåøîê ñ áëàíê ðóíàìè. var rune='0x1F14' # Òèï ðóíû. var homeX=1029 # Êîîðäèíàòû ãäå ñòîèò ÷àð ó ñóíäóêà. var homeY=393 # Êîîðäèíàòû ãäå ñòîèò ÷àð ó ñóíäóêà. var helpX=1398 # Ïåðåìåííûå áåç êàâû÷åê! var helpY=53 # Ïåðåìåííûå áåç êàâû÷åê! var recallrunebook=0 # Óëåòàåò îò ïê ïî ðóíáóêå èëè ïî ðóíå. 1-ðóíáóê, 0-ðóíà. var food='0x09BB' # Òèï åäû. Áóäåò áðàòü ïî 2 è êóøàòü. sub main() var markflag uo.exec('exec Reconnector') if not uo.getglobal('flagRes')=='1' then uo.exec('exec Resurrector') uo.setglobal('flagRes','1') endif wait(1000) uo.print('Dont forget track world items!') uo.findtype(rune,-1,'backpack') if uo.findcount() then Runehome=uo.getserial('finditem') else uo.print('Runehome not found! Terminate.') uo.exec('terminate all') endif Open(Chest) GrabBlankRune() while not uo.dead() Open(Runebag) uo.findtype(rune,-1,Runebag) while uo.findcount() uo.print('Ìåäèòèðóåì') meditation(uo.int) Nrune=uo.getserial('finditem') uo.moveitem(Nrune,0,Dropbag) checklag() wait(700) RegCheck() RegCheck() grabinvis() GetPickaxe() grabvortex() toeat() RecallRune(Nrune) uo.ignorereset() markflag=0 flagpk=0 checkifelem() if uo.injournal('is attacking you') then uo.warmode(0) invis() endif if uo.injournal('The recall rune fades completely.') then markflag=1 Mark(Blankrune,0) Runinetu=1 endif mining() checkifelem() if not flagpk==1 then repeat RecallRune(Runehome) until uo.getx('self')==homeX && uo.getY('self')==homeY endif if uo.injournal('The recall rune fades completely.') then Open(Chest) if Runinetu==1 then GrabBlankRune() endif Mark(Blankrune,1) GrabBlankRune() endif Open(Chest) if Runinetu==1 then GrabBlankRune() endif if markflag==1 then uo.moveitem(Nrune,0,Dropbag) checklag() wait(700) endif Dropore() if flagpk==1 then uo.print(' æäåì 100 ñåêóíä ') wait(100000) endif Open(Runebag) uo.findtype(rune,-1,Runebag) wend DropbagCheck() wend endsub sub Resurrector() var oldX,oldY while 1 if uo.dead() then uo.exec('terminate main') uo.exec('terminate Reconnector') uo.TextOpen() uo.TextPrint('- dead - @ '+MakeTime()) wait(5000) oldX = Uo.GetX() oldY = Uo.GetY() uo.useobject('self') checklag() wait(700) repeat uo.lclick(helpX,helpY) checklag() wait(700) uo.lclick(264,308) checklag() wait(700) uo.lclick(175,203) checklag() wait(5000) until oldX<>UO.GetX() OR oldY<>UO.GetY() repeat uo.press(39) wait(2000) until UO.GetY()<534 repeat uo.useobject('0x4001BDF0') wait(3000) until uo.life>0 Open(uo.getserial('backpack')) wait(100000) oldX = Uo.GetX() oldY = Uo.GetY() uo.recall(Runebook,Runenr) repeat wait(700) until oldX<>uo.getx('self') && oldY<>uo.gety('self') Open(Chest) RegCheck() GrabBlankRune() Mark(Blankrune,1) if uo.waiting() then uo.canceltarget() endif uo.exec('exec main') endif wait(5000) wend endsub sub checkifelem() uo.ignorereset() uo.findtype('0x0010',-1,'ground') if uo.findcount() then invis() endif endsub sub GetPickaxe() var n dim instrument[4] instrument[1]='0x0F39' instrument[2]='0x0F3A' instrument[3]='0x0E86' instrument[4]='0x0E85' if uo.count('0x0F39')==0 and uo.count('0x0F3A')==0 and uo.count('0x0E86')==0 and uo.count('0x0E85')==0 then for n=1 to 4 uo.findtype(instrument[n],-1,Chest) if uo.findcount() then pickaxe=uo.getserial('finditem') uo.moveitem('finditem',0,'backpack') checklag() wait(700) return endif next else for n=1 to 4 uo.findtype(instrument[n],-1,'my') if uo.findcount() then pickaxe=uo.getserial('finditem') return endif next endif while 1 uo.print(' pickaxe not found ') wait(3000) wend endsub sub Tohide() while not uo.Hidden() uo.warmode(0) uo.Print('Ïûòàåìñÿ óéòè â õàéä...') uo.UseSkill('Hiding') wait(4000) wend end sub sub checkelem() var n var flagvortex, Elemental, flaginvis Dim ore[2] ore[1]='0x19B8' ore[2]='0x19B9' uo.set('finddistance','3') uo.findtype('0x0010',-1,'ground') while uo.findcount() Elemental=uo.getserial('finditem') if checkcolor(Elemental)==1 then flagvortex=1 if not flaginvis==1 then invis() flaginvis=1 endif castvortex() uo.textopen() uo.textprint(uo.getname(Elemental)+' @ '+MakeTime()) for n=0 to 15 wait(1000) checkpk() if flagpk==1 then return endif next else uo.ignore(Elemental) endif uo.findtype('0x0010',-1,'ground') wend if flagvortex==1 then repeat checklag() while uo.mana<22 wait(500) wend uo.waittargetobject('self') uo.cast('Mass Dispel') WaitForMana() wait(1000) until not uo.injournal('The spell fizzles') for n=1 to 2 uo.findtype(ore[n],-1,'ground') while uo.findcount() uo.moveitem('finditem',-1,'backpack') checklag() wait(700) uo.findtype(ore[n],-1,'ground') wend next return 1 endif endsub sub checkcolor(obj) var n, c Dim color[14] color[1]='0x09DA' ; vulcan color[2]='0x0060' ; aqua color[3]='0x0BA7' ; eldar color[4]='0x09E6' ; elvin color[5]='0x09B9' ; acid color[6]='0x09D3' ; steel color[7]='0x008F' ; sand rock color[8]='0x09EC' ; blood crest color[9]='0x09F0' ; gorgan color[10]='0x010F' ; krynite color[11]='0x09A4' ; crystaline color[12]='0x0085' ; dragon color[13]='0x08AF' ; plutonium color[14]='0x0028' ; obsidian c=uo.getcolor(obj) for n=1 to 14 if c == color[n] then return 1 endif next endsub sub castvortex() repeat checklag() uo.waittargettile('1341',str(uo.getx()),str(uo.gety()),str(uo.getz())) uo.resend() uo.findtype('0x1F66',-1,'backpack') if uo.findcount() then while uo.mana<13 wait(500) wend uo.useobject('finditem') else while uo.mana<27 wait(500) wend uo.cast('Energy Vortex') endif WaitForMana() until not uo.injournal('The spell fizzles') endsub sub WaitForMana() VAR w,m m=uo.mana for w=0 to 100 if uo.mana<m then return endif if uo.injournal('is attacking you') then checklag() invis() endif wait(200) next endsub sub grabvortex() var kol=1, q uo.findtype('0x1F66',-1,'backpack') if uo.getquantity('finditem')<kol then q=kol-uo.getquantity('finditem') uo.print('Èùåì âîðòåêñ') uo.findtype('0x1F66',-1,Chest) if uo.findcount() then uo.moveitem('finditem',STR(q),'backpack') checklag() wait(700) endif endif endsub sub toeat() repeat uo.findtype(food,-1,Chest) if uo.findcount() then uo.moveitem('finditem','2','backpack') checklag() wait(600) repeat uo.usetype(food) wait(500) until uo.injournal('full to eat') or uo.count(food)==0 endif until uo.injournal('full to eat') uo.findtype(food,-1,'backpack') if uo.findcount() then uo.moveitem('finditem',0,Chest) checklag() wait(600) endif endsub sub Open(what) uo.useobject(what) checklag() wait(700) endsub sub Dropore() var n Dim ore[5] ore[0]='0x19BA' ore[1]='0x19B7' ore[2]='0x19B8' ore[3]='0x19B9' ore[4]='0x0F10' uo.warmode(0) uo.useskill('Hiding') for n=0 to 4 uo.findtype(ore[n],-1,'backpack') while uo.findcount() uo.moveitem('finditem',0,Orechest) checklag() wait(700) uo.findtype(ore[n],-1,'backpack') wend next uo.print('Dropore done.') endsub sub Mark(RuneID,Place) repeat meditation(33) checklag() Uo.Cast('Mark',RuneID) WaitForMana() wait(300) until not uo.injournal('The spell fizzles') if Place==0 then Nrune=uo.getserial(RuneID) else Runehome=uo.getserial(RuneID) endif endsub sub meditation(mn) uo.warmode(0) while uo.mana < mn if uo.mana==uo.int then return endif checklag() uo.Useskill('Meditation') waitformed(mn) wait(1000) wend endsub sub waitformed(mn) var n for n=0 to 100 if uo.injournal('You lose|You are at peace') or uo.mana>=mn then return endif wait(500) next endsub sub RecallRune(nowrune) uo.Print('óëåòàåì ïî ðóíå') var oldX,oldY oldX = Uo.GetX() oldY = Uo.GetY() repeat meditation(20) checklag() Uo.Cast('Recall',nowrune) WaitForMana() wait(1000) Until oldX<>UO.GetX() AND oldY<>UO.GetY() endsub sub grabinvis() uo.findtype('0x0F0E',-1,'backpack') while uo.findcount() uo.moveitem('finditem',0,Chest) checklag() wait(700) uo.findtype('0x0F0E',-1,'backpack') wend uo.findtype('0x0F0E','0x0631',Chest) if uo.findcount() then uo.print('Èùåì èíâèçêó') uo.moveitem('finditem','2','backpack') checklag() wait(700) endif endsub sub RegCheck() VAR i,q VAR kol=9 Dim Regs[6] Regs[0]='0x0F7A' ; Black Pearl Regs[1]='0x0F7B' ; Bood Moss Regs[2]='0x0F86' ; Mandrake Root Regs[3]='0x0F88' ; Nightshade Regs[4]='0x0F8C' ; Sulfurous Ash Regs[5]='0x0F84' ; Garlic for i=0 to 5 if uo.count(Regs[i])<>kol then q=kol-uo.count(Regs[i]) if q<>0 then if q>0 then uo.findtype(Regs[i],-1,Chest) if uo.findcount() then uo.moveitem('finditem',STR(q),'backpack') checklag() wait(700) uo.print('Áåðåì ðåãè äëÿ ðåêîëà...') else uo.print('No regs') return endif else q=q*-1 uo.findtype(Regs[i],-1,'my') if uo.findcount() then uo.moveitem('finditem',STR(q),Chest) checklag() wait(700) uo.print('Ðåãîâ áîëüøå ÷åì íàäî. Êèäàåì ëèøíåå â ñóíäóê') endif endif endif endif next endsub sub GrabBlankRune() Open(BlankRunebag) uo.findtype(rune,-1,BlankRunebag) if uo.findcount() then Blankrune=uo.getserial('finditem') uo.moveitem('finditem',0,'backpack') checklag() wait(700) uo.print('Âçÿëè áëàíê ðóíó') Runinetu=0 else uo.print('Áëàíê ðóí áîëüøå íåòó! Ñêðèïò îñòàíîâëåí.') uo.exec('terminate all') endif endsub sub DropbagCheck() uo.print('Ïðîâåðÿåì ìåøîê Dropbag') Open(Dropbag) uo.findtype(rune,-1,Dropbag) while uo.findcount() uo.moveitem('finditem',0,Runebag) checklag() wait(700) uo.print('Íàøëè ðóíó. Êëàäåì èõ â ñóìêó Runebag.') uo.findtype(Rune,-1,Dropbag) wend endsub sub mining() var mx, my, mz, i, j, f mx = UO.GetX('self') my = UO.GetY('self') mz = UO.GetZ('self') for i = mx-4 to mx+4 for j = my -4 to my+4 repeat if uo.count('0x0F39')==0 and uo.count('0x0F3A')==0 and uo.count('0x0E86')==0 and uo.count('0x0E85')==0 then return endif if uo.injournal('You loosen some rocks but fail') then wait(10000) endif Tohide() UO.Print('Êîïàåì â êîîðäèíàòàõ: '+str(mx-i)+' '+str(my-j)) DigAhole(i,j,mz) if uo.injournal('You have been revealed') then uo.warmode(0) invis() return endif if flagpk==1 then return endif until not uo.injournal('You loosen some rocks but fail') if checkelem()==1 then return endif next next endsub sub DigAhole(i,j,mz) var f for f=0 to 10 checklag() uo.waittargettile('1341',i,j,mz) uo.useobject(pickaxe) if waitforore()==1 then return endif next endsub sub waitforore() var n for n=0 to 50 checkpk() if uo.injournal('no ore here|location|far away|in rock|You have been revealed') or flagpk==1 then return 1 endif if uo.injournal('You put|heavy|but fail') then return endif wait(500) next endsub sub checkpk() var n var ser var noto var me=uo.getserial('self') for n=0 to 9 ser=uo.journalserial(n) noto=uo.getnotoriety(ser) if not ser==me then if noto<>0 and noto<>1 and noto<>3 and not uo.injournal('Elemental|Scorpion King|Giant Spider|Energy Vortex') then uo.TextOpen() uo.TextPrint(uo.getname(ser)+' @ '+MakeTime()) invis() if recallrunebook==1 then gohome() else RecallRune(Runehome) endif flagpk=1 return endif endif next endsub sub gohome() var oldX=uo.getx('self') var oldY=uo.gety('self') uo.recall(Runebook,Runenr) repeat wait(700) if uo.injournal('You have been revealed') then checklag() invis() endif until oldX<>uo.getx('self') && oldY<>uo.gety('self') endsub sub invis() uo.usetype('0x0F0E','0x0631') endsub sub CheckLag() repeat UO.DeleteJournal() UO.Click('backpack') until backpack()==1 endsub sub backpack() var n for n=0 to 200 if uo.injournal('a backpack') then return 1 endif wait(200) next endsub sub Reconnector() var ReconnectTime, RFlag ReconnectTime = '0' RFlag = 1 Repeat While (UO.ObjAtLayer('Bpack') == '') if RFlag Then ReconnectTime = MakeTime() RFlag = 0 endif Wait(1000) 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 all') ;UO.Exec('exec autoload') 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
кто может помогите!!! зарание спс!!!
|