Code: ################ ##### Мининг версия 2.5 ##### ############################# sub maning() var mx, my, mz, i, j, e, f, g, t, Exit1, a Uo.exec("set norbcheck 1") # нужно для рекола # uo.exec("set norbcalc 1") # нужно для рекола # e=1 # перменная местонахождения # f=0 # перменная подсчета пустых тайлов # # необходимо указать Runebook в Object - from target # na4alo: # поехали # mx = UO.GetX("self") my = UO.GetY("self") mz = UO.GetZ("self") UO.DeleteJournal() for i = mx-4 to mx+4 # радиус окапывания по х # for j = my-4 to my+4 # радиус окапывания по у # tohide() # прячемся # UO.Print("Mine in: "+str(mx-i)+" "+str(my-j)) # ниже убрать мессагу по которой вы нехотите переходить на следующий тайл # # необходимо указать Shovel в Object - from target # while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Ore") and not UO.InJournal("Elvin") and not UO.InJournal("You put") UO.DeleteJournal() if uo.waiting() then uo.canceltarget() endif UO.Waittargettile("1341", str(i), str(j), str(mz)) UO.Useobject("Shovel") # необходимо указать Shovel в Object Types - from target # while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock") wait(500) if uo.injournal("heavy") then # вырыли элемента # # ниже поменять на свою мелодию # uo.playwav("d:\Games\Ultima Online 2D\element.wav") # убиваем элемента, собираем руду и копаем дальше # Vortex: uo.exec('usetype 0x0f0e 0x0631') uo.cast('Energy Vortex','self') wait(4000) CheckLag() if uo.injournal("fizzles") or uo.injournal("line") then goto Vortex else wait(10000) CheckLag() istka: uo.exec('usetype 0x0f0e 0x09DF') # пьем манку # uo.cast('Mass Dispel','self') wait(4000) CheckLag() if uo.injournal("fizzles") then goto istka endif DIM Ore[5] Ore[0]=0x19B9 # 4 и более руды # Ore[1]=0x19B7 # 1 руда # Ore[2]=0x19BA # 2 руды # Ore[3]=0x19B8 # 3 руды # UO.SetReceivingContainer('backpack') wait(500) For t=0 to 3 Exit1=0 repeat UO.FindType(Ore[a],'ground') if UO.GetQuantity('finditem')>0 then UO.Grab('0','finditem') wait(1500) else Exit1=1 endif until Exit1==1 next UO.UnSetReceivingContainer() endif goto na4alo endif # ниже записать всех своих знакомых киллеров =) # Scaner() if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("revealed") or uo.injournal("LEXEY") or uo.injournal("REM") then # смотрим как ПК обломался и улыбаемся # tut: if uo.waiting() then uo.canceltarget() endif uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, лежат в паке # Save() # улетаем домой если ПК Вас раздетектил(при появлении записанных ПК), все выкладываем пополняем реги перемаркиваем руну, медитируем, прячемся и назад через установленное время () # e=1 # устанавливаем начальное положение # # ниже поменять на свою мелодию # uo.playwav("d:\Games\Ultima Online 2D\pk.wav") wait(180000) # стоко времени ждем дома у сейфа # goto reccal endif wend if uo.weight > 600 then # вес по которому летим домой по рунбуке # goto end endif wend ########################################################### ##### Переход если 20 раз не найдена руда вокруг себя ##### ########################################################### if UO.InJournal("no ore here") then f=f+1 endif if f>20 then # 20 раз # # ниже поменять на свою мелодию - это я так для себя сделал, необязательная мелодия # uo.playwav("d:\Games\Ultima Online 2D\perehod.wav") f=0 # обнуление переменной пустых тайлов # g=0 # переменная перехода # if e == 1 then UO.Print("Go West 7 step.") # столько раз будем шагать на West # repeat g=g+1 GoW() if uo.injournal('revealed') then # прячемся # tohide() endif if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then # предохраняемся # goto tut endif until g>6 # 6+1 стоко шагов # UO.DeleteJournal() e=2 goto na4alo else UO.Print("Go East 7 step.") # столько раз будем шагать на East # repeat g=g+1 GoE() if uo.injournal('revealed') then tohide() endif if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then goto tut endif until g>6 UO.DeleteJournal() e=1 goto na4alo endif endif ######### UO.DeleteJournal() next # переключатель цикла # next # то же # goto na4alo # и по кругу пока не найдем 20 пустых тайлов # end: if uo.waiting() then uo.canceltarget() endif uo.exec("recall Runebook 21") # домой по рунбуку - в первом слоте руна к сейфу # mx = UO.GetX("self") my = UO.GetY("self") wait(11000) if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then goto end # проверка на физл # endif e=1 loot() # выкладывает накопанное в сейф # wait(3000) reccal: uo.deletejournal() if uo.waiting() then uo.canceltarget() endif uo.exec("recall Runebook 94") # назад трудиться в шахте =), рунка в 8-м слоте рунбуки # mx = UO.GetX("self") my = UO.GetY("self") wait(11000) if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then goto reccal # проверка на физл # endif goto na4alo end sub ################################################## ##### Переход на 1 клетку в направлении West ##### ################################################## 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 ################################################## ##### Переход на 1 клетку в направлении East ##### ################################################## 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 Save() # описано выше # reccal: UO.DeleteJournal() if uo.waiting() then uo.canceltarget() endif UO.FindType('0x1F14',-1,'my') wait(200) UO.Cast('Recall','finditem') repeat wait(500) until uo.injournal("fizzles") or uo.injournal("Kal Ort Por") wait(3000) if uo.injournal("fizzles") then goto reccal endif tohide() loot() wait(3000) UO.DeleteJournal() UO.FindType('0x1F14',-1,'my') wait(200) UO.Cast('Mark','finditem') wait(5000) uo.exec('usetype 0x0f0e 0x09DF') # Пьем манку # Med: repeat UO.UseSkill('Meditation') wait(5000) until uo.injournal("peace") or uo.injournal("lose") if UO.InJournal('You lose') then UO.DeleteJournal() goto Med endif fillreagents() wait(3000) tohide() end sub ######################################### ##### Упаковка готового продукта =) ##### ######################################### sub loot() # складываем руду в сейф # VAR a, Exit if uo.waiting() then uo.canceltarget() endif VAR UnloadCont='0x4000E3AA' # поменять на ID своего сейфа куда складываем руду, узнать его можно командой ',info' # DIM Ore[5] Ore[0]=0x19B9 # 4 и более руды # Ore[1]=0x19B7 # 1 руда # Ore[2]=0x19BA # 2 руды # Ore[3]=0x19B8 # 3 руды # UO.SetReceivingContainer(UnloadCont) 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 next UO.UnSetReceivingContainer() end sub #################### ##### Прячемся ##### #################### sub tohide() while NOT UO.Hidden() UO.DeleteJournal() UO.Exec('warmode 0') UO.UseSkill('Stealth') repeat wait(300) until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') wend end sub ############################################## ##### Пополнение всех нужных регов до 10 ##### ############################################## sub fillreagents() VAR StoreRegCont='0x40173275' # непосредственно сам пак с регами в сейфе # VAR CharRegBag='backpack' # куда сложить реги себе # VAR CountReg=10 # количество регов каждого типа # VAR WaitTime=1500 VAR MainSafe='0x4000E3AA' # сейф где лежит пак с регами # UO.FindType('0x09B0','0x0044','backpack') if UO.GetQuantity('finditem')>0 then CharRegBag='finditem' endif UO.UseObject(MainSafe) UO.UseObject(StoreRegCont) UO.SetReceivingContainer(CharRegBag) wait(WaitTime) if UO.BM<CountReg then UO.FindType('0x0F7B','-1',StoreRegCont) ; BM UO.Grab(STR((CountReg-UO.BM)),'finditem') wait(WaitTime) endif if UO.BP<CountReg then UO.FindType('0x0F7A','-1',StoreRegCont) ; BP UO.Grab(STR(CountReg-UO.BP),'finditem') wait(WaitTime) endif if UO.GA<CountReg then UO.FindType('0x0F84','-1',StoreRegCont) ; GA UO.Grab(STR(CountReg-UO.GA),'finditem') wait(WaitTime) endif if UO.MR<CountReg then UO.FindType('0x0F86','-1',StoreRegCont) ; MR UO.Grab(STR(CountReg-UO.MR),'finditem') wait(WaitTime) endif if UO.NS<CountReg then UO.FindType('0x0F88','-1',StoreRegCont) ; NS UO.Grab(STR(CountReg-UO.NS),'finditem') wait(WaitTime) endif if UO.SA<CountReg then UO.FindType('0x0F8C','-1',StoreRegCont) ; SA UO.Grab(STR(CountReg-UO.SA),'finditem') wait(WaitTime) endif UO.UnsetReceivingContainer() end sub ########################### ##### Проверка на лаг ##### ########################### sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(500) until UO.InJournal('backpack') end sub ############################### ##### Модуль сканирования ##### ############################### Sub Scaner() var jor, ser, noto uo.ignore('self') for jor = 0 to 9 ser = uo.journalserial(jor) noto = uo.getnotoriety(ser) if noto <> 1 and noto <> 0 and not uo.injournal("elemental") and not uo.injournal("You loosen") then uo.print("!!!ALARM!!!") endif next endsub ###############################
это тот же скрипт только мной переделанный возьми из него только то что тебе нужно, а именно ходилку =) ... если ты хоть немного понимаешь в скриптах, то думаю тебе не составит труда это сделать
|