http://ifolder.ru/11550008
вылетает при скрипте на мининг, вроде в конце скрипта
Code: ################## ### Переменные ### ################################################################################################### var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.(не проверял работает или нет с этим скриптом) ### var Food=0 ## - Кушать после сброса руды или нет? 1 - да, 0 - нет. ### var Status=0 ## - Статус руды, показывает скока накопали (для опытных скриптёров) 1 - да, 0 - нет. ### var Chest='0x4001907A' ## - ID сундука куда будут выгружаться руду, где должны лежать реги и еда. ### var TypeFood='0x160A' ## - Type еды которую будем кушать.(сейчас фиштейки) ### var CountReg=65 ## - Кол-во регов для подзарядки. ### var OreQty=400 ## - Максимальный вес при котором домой с рудой ### var maxjamp=16 ## - Для рекола (изменять не нужно) var rune=1 ## - Для рекола (изменять не нужно) ################################################################################################### ### Wait - Ждёт сообшения после замаха кирки, чтобы повторить. ## ### Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать. ## ################################################################################################### var Wait1="You put" var Wait2="heavy" var Wait3="location" var Wait4="no ore" var Wait5="but fail" var Wait6="far away" var Wait7="in rock" var Wait8="You can't" var Wait9="nothing here" var Wait10="You have found some" ### var Fizzle1="There is no ore here to mine." var Fizzle2="You can't use the" var Fizzle3="Try mining elsewhere." var Fizzle4="location" ################################################################################################### ################# ### Включалка ### ################# sub Start() If UO.GetGlobal('Maningcheck')=='on' Then UO.SetGlobal('Maningcheck','off') UO.Exec('Exec Terminate') Else UO.Exec('Exec Maning') UO.SetGlobal('Maningcheck','on') EndIf End sub ############### ### Майнинг ### ############### Sub Maning() var Mine=1 UO.print('!!!SELECT YOU PICKAXE!!!') UO.exec('addobject Shovel') while UO.targeting() wait(100) wend
wait(1000) UO.print('!!!SELECT YOU RUNE TO HOME!!!') UO.exec('addobject Home') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (1)') UO.exec('addobject Mine1') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (2)') UO.exec('addobject Mine2') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (3)') UO.exec('addobject Mine3') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (4)') UO.exec('addobject Mine4') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (5)') UO.exec('addobject Mine5') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (6)') UO.exec('addobject Mine6') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (7)') UO.exec('addobject Mine7') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (8)') UO.exec('addobject Mine8') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (9)') UO.exec('addobject Mine9') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (10)') UO.exec('addobject Mine10') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (11)') UO.exec('addobject Mine11') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (12)') UO.exec('addobject Mine12') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (13)') UO.exec('addobject Mine13') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (14)') UO.exec('addobject Mine14') while UO.targeting() wait(100) wend
wait(1000) UO.print('SELECT YOU RUNE TO MINE (15)') UO.exec('addobject Mine15') while UO.targeting() wait(100) wend
If Reconnect==1 Then UO.Exec('Exec Reconnect') EndIf ############################## ### Копаем руду возле себя ### ############################## If Mine==1 Then REPEAT JumpToRune() GetOre() wait(2000) Until UO.Dead() End sub
Sub GetOre() var CheckTime var mx, my, mz, i, j mx = UO.GetX("self") my = UO.GetY("self") mz = UO.GetZ("self") for i = mx-2 to mx+2 for j = my-2 to my+2 ToHide() UO.Print("Get Coordinate: "+str(mx-i)+' '+str(my-j)) If UO.waiting() Then UO.canceltarget() EndIf REPEAT If UO.weight >= OreQty Then ToRecall() EndIf ToHide() UO.Waittargettile("1341",str(i),str(j),str(mz)) UO.Useobject("Shovel") CheckTime=UO.Timer() UO.DeleteJournal() REPEAT wait(300) Until UO.InJournal(Wait1) or UO.InJournal(Wait2) or UO.InJournal(Wait3) or UO.InJournal(Wait4) or UO.InJournal(Wait5) or UO.InJournal(Wait6) or UO.InJournal(Wait7) or UO.InJournal(Wait8) or UO.InJournal(Wait9) or UO.InJournal(Wait10) or CheckTime+200<uo.Timer() or UO.Dead() Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.Dead() If UO.weight >= OreQty Then ToRecall() EndIf Next Next End sub ################### ### Рекол домой ### ################### Sub ToRecall() RecallToHome() ToHide() DropOre() CheckReg() If Food==1 Then ToEat() EndIf If Status==1 Then InfoOre() EndIf BackToMine() End sub ######################################################## ### Система реколов по рунам (с проверкой на прыжки) ### ######################################################## Sub JumpToRune() var x=0 var mx, my mx = UO.GetX("self") my = UO.GetY("self") dim runes[15] runes[1]='Mine1' runes[2]='Mine2' runes[3]='Mine3' runes[4]='Mine4' runes[5]='Mine5' runes[6]='Mine6' runes[7]='Mine7' runes[8]='Mine8' runes[9]='Mine9' runes[10]='Mine10' runes[11]='Mine11' runes[12]='Mine12' runes[13]='Mine13' runes[14]='Mine14' runes[15]='Mine15' RecallMana() If rune==maxjamp Then rune=1 EndIf UO.Print("Go to Mine: "+str(rune)) UO.Cast('Recall',runes[rune]) Wait(5000) If UO.getx()==mx and UO.gety()==my Then REPEAT x=x+1 RecallMana() UO.Cast('Recall',runes[rune]) Wait(5000) Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() EndIf CheckMark() rune=rune+1 End sub
Sub BackToMine() var x=0 var mx, my mx = UO.GetX("self") my = UO.GetY("self") dim runes[15] runes[1]='Mine1' runes[2]='Mine2' runes[3]='Mine3' runes[4]='Mine4' runes[5]='Mine5' runes[6]='Mine6' runes[7]='Mine7' runes[8]='Mine8' runes[9]='Mine9' runes[10]='Mine10' runes[11]='Mine11' runes[12]='Mine12' runes[13]='Mine13' runes[14]='Mine14' runes[15]='Mine15' If rune==1 Then rune=2 EndIf rune=rune-1 RecallMana() UO.Print("Go back to Mine: "+str(rune)) UO.Cast('Recall',runes[rune]) Wait(5000) If UO.getx()==mx and UO.gety()==my Then REPEAT x=x+1 RecallMana() UO.Cast('Recall',runes[rune]) Wait(5000) Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() EndIf CheckMark() rune=rune+1 End sub
Sub CheckMark() dim runes[15] runes[1]='Mine1' runes[2]='Mine2' runes[3]='Mine3' runes[4]='Mine4' runes[5]='Mine5' runes[6]='Mine6' runes[7]='Mine7' runes[8]='Mine8' runes[9]='Mine9' runes[10]='Mine10' runes[11]='Mine11' runes[12]='Mine12' runes[13]='Mine13' runes[14]='Mine14' runes[15]='Mine15' If UO.InJournal('The recall rune is starting to fade') Then UO.print("Mark Rune: "+str(rune)) REPEAT UO.DeleteJournal() MarkMana() UO.Cast('Mark',runes[rune]) wait(5000) Until NOT UO.InJournal('The spell fizzles') or UO.Dead() UO.DeleteJournal() EndIf End sub ####################################################### ### Реколимся домой по рунам (с проверкой на прыжки) ## ####################################################### Sub RecallToHome() var x=0 var mx, my mx = UO.GetX("self") my = UO.GetY("self") REPEAT x=x+1 RecallMana() UO.Print('Go to Home') UO.Cast('Recall','Home') wait(5000) Until UO.getx()<>mx and UO.gety()<>my or (x==3) or UO.Dead() If UO.InJournal('The recall rune is starting to fade') Then UO.print("Mark Rune") REPEAT UO.DeleteJournal() MarkMana() UO.Cast('Mark','Home') wait(5000) Until NOT UO.InJournal('The spell fizzles') or UO.Dead() UO.DeleteJournal() EndIf End sub #################################### ### Выкладываем руду в контейнер ### #################################### Sub DropOre() If UO.waiting() Then UO.canceltarget() EndIf VAR a,Exit DIM Ore[5] Ore[0]=0x19B9 ; 4 and more ore Ore[1]=0x19B7 ; 1 ore Ore[2]=0x19BA ; 2 ore Ore[3]=0x19B8 ; 3 ore UO.SetReceivingContainer(Chest) wait(500) For a=0 to 3 Exit=0 repeat UO.FindType(Ore[a]) If UO.GetQuantity('finditem') > 0 Then UO.Grab('0','finditem') wait(1500) Else Exit=1 EndIf Until Exit==1 or UO.Dead() Next UO.UnSetReceivingContainer() End sub ##################################### ### Проверяем кол-во регов в паке ### ##################################### Sub CheckReg() If UO.MR <= 10 or UO.BM <= 10 or UO.BP <= 10 Then UO.Print("!!!Download Regs!!!") UO.SetReceivingContainer('backpack') UO.UseObject(Chest) wait(5000) UO.FindType('0x0F86','-1',Chest) ; MR UO.Grab(STR(CountReg-UO.MR),'finditem') wait(5000) UO.FindType('0x0F7B','-1',Chest) ; BM UO.Grab(STR(CountReg-UO.BM),'finditem') wait(5000) UO.FindType('0x0F7A','-1',Chest) ; BP UO.Grab(STR(CountReg-UO.BP),'finditem') wait(5000) UO.UnsetReceivingContainer() UO.Print("!!!Download Regs: Done!!!") EndIf End sub ########################################## ### Берём хавку из контейнера и кушаем ### ########################################## Sub ToEat() UO.UseObject(Chest) wait(5000) UO.FindType(TypeFood,'-1',Chest) If UO.FindCount() > 0 Then UO.SetReceivingContainer('backpack') UO.Grab('25','finditem') wait(2000) REPEAT UO.UseType(TypeFood) wait(1000) Until UO.InJournal('You are simply too full to eat any more!') or UO.Dead() Else UO.print("!!! Not Food !!!") EndIf DropFood() End sub
Sub DropFood() var f,Exit dim Food[1] Food[0]=TypeFood If UO.Waiting() Then UO.CancelTarget() EndIf UO.SetReceivingContainer(Chest) for f=0 to 0 Exit=0 repeat UO.FindType(Food[f]) If UO.GetQuantity('finditem') > 0 Then UO.Grab('0','finditem') wait(1500) Else Exit=1 EndIf Until Exit==1 or UO.Dead() next UO.UnsetReceivingContainer() End sub #################################### ### Проверяем ману перед кастами ### #################################### Sub RecallMana() If UO.mana <= 11 Then UO.print('!!!Meditation!!!') UO.Exec('warmode 0') wait(1000) REPEAT UO.UseSkill('Meditation') wait(15000); 15 секунд медетируем. Until UO.mana > 50 or UO.Dead() EndIf End sub
Sub MarkMana() If UO.mana <= 17 Then UO.print('!!!Meditation!!!') UO.Exec('warmode 0') wait(1000) REPEAT UO.UseSkill('Meditation') wait(15000); 15 секунд медетируем. Until UO.mana > 50 or UO.Dead() EndIf End sub ####################### ### Прячимся в хайд ### ####################### Sub ToHide() var CheckTime while NOT UO.Hidden() UO.Print('Hidden...') UO.Exec("warmode 0") wait(1000) UO.UseSkill('Stealth') CheckTime=UO.Timer() REPEAT wait(300) Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead() Wend End sub ################################### ### Смотрим скока накопали руды ### ################################### Sub InfoOre() var LogsTime=PrintTime() UO.FindType('0x1BDD','-1',Chest) UO.TextOpen() UO.TextPrint('#####################') UO.TextPrint('## Время: '+LogsTime+' ##') UO.TextPrint('#####################') UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest))) UO.TextPrint('Rose Ore: '+STR(GetAmount('0x19B9','0x0665',Chest))) UO.TextPrint('Golden Ore: '+STR(GetAmount('0x19B9','0x084D',Chest))) UO.TextPrint('Orion Ore: '+STR(GetAmount('0x19B9','0x048A',Chest))) UO.TextPrint('Dwarf Ore: '+STR(GetAmount('0x19B9','0x0488',Chest))) UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0482',Chest))) UO.TextPrint('Shadow Ore: '+STR(GetAmount('0x19B9','0x0770',Chest))) UO.TextPrint('Valorite Ore: '+STR(GetAmount('0x19B9','0x0515',Chest))) UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0487',Chest))) UO.TextPrint('Magma Ore: '+STR(GetAmount('0x19B9','0x0486',Chest))) UO.TextPrint('Obsidian Ore: '+STR(GetAmount('0x19B9','0x0485',Chest))) UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x048D',Chest))) UO.TextPrint('#####################') End sub
Sub GetAmount(Type, Color, Cont) Var item_amount = 0 UO.IgnoreReset() Repeat UO.FindType(Type, Color, Cont) If UO.FindCount() > 0 Then If UO.GetQuantity('finditem')==0 Then item_amount = item_amount + 1 Else item_amount = item_amount + UO.GetQuantity('finditem') EndIf UO.Ignore('finditem') UO.FindType(Type, Color, Cont) EndIf Until UO.FindCount() < 1 or UO.Dead() UO.IgnoreReset() Return item_amount End sub
Sub PrintTime() Var HR = '' Var MIN = '' Var SEC = '' Var CurrentTime = UO.Time() If CurrentTime>99999 Then HR = Mid(STR(CurrentTime),0,2) MIN = Mid(STR(CurrentTime),2,2) SEC = Mid(STR(CurrentTime),4,2) Else If CurrentTime > 9999 Then HR = '0'+Mid(STR(CurrentTime),0,1) MIN = Mid(STR(CurrentTime),1,2) SEC = Mid(STR(CurrentTime),3,2) Else If CurrentTime > 999 Then HR = '00' MIN = Mid(STR(CurrentTime),0,2) SEC = Mid(STR(CurrentTime),2,2) Else If CurrentTime > 99 Then HR = '00' MIN = '0'+Mid(STR(CurrentTime),0,1) SEC = Mid(STR(CurrentTime),1,2) Else If CurrentTime > 9 Then HR = '00' MIN = '00' SEC = STR(CurrentTime) Else HR = '00' MIN = '00' SEC = '0'+STR(CurrentTime) EndIf EndIf EndIf EndIf EndIf UO.TextPrint(STR(CurrentTime )) Return (HR+':'+MIN+':'+SEC) End sub ################## ### РЕКОНЕКТОР ### ################## Sub Reconnect() var ReconnectTime,rFlag ReconnectTime='0' rFlag=1 repeat while (UO.ObjAtLayer('Bpack')=='') If rFlag Then ReconnectTime=MakeTime() rFlag=0 EndIf wait(20000) 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.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
sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги) var mx, my reccal: uo.deletejournal() if uo.waiting() then uo.canceltarget() endif mx = UO.GetX("self") my = UO.GetY("self") UO.DeleteJournal() uo.waittargetobject('Home') ; домой wait(500) uo.cast('Recall') wait(4000) if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then goto reccal endif end sub ############################# ### Выключаем все скрипты ### ############################# Sub Terminate() UO.Print("Mining script: Off!") UO.DeleteJournal() UO.Exec('terminate all') wait(100) UO.Exec('terminate all') wait(100) UO.Exec('terminate all') wait(100) End sub
|