Yoko http://forum.yoko.com.ua/ |
|
Мининг, помогите доделать пожалуйста. http://forum.yoko.com.ua/viewtopic.php?f=20&t=16673 |
Page 1 of 1 |
Author: | Hostin [ 2011-06-13 19:52:47 ] |
Post subject: | Мининг, помогите доделать пожалуйста. |
вот нашел у вас скрипт который мне в принципе подходит. НО на Абисе нельзя марчить руны прям в шахтах...поэтому можете сюда пожалуйста воткнуть функцию рекола по 2-3 рунам из банке+ доход до самой пещеры при рунах прямо напротив входа+ рекол домой\разгруз в банк. т.к. какие пещеры и куда идти вы не знаете - лучше обьясните мне как сюда воткнуть ходьбу по прямой сразу после рекола...) тоесть в итоге должно получится что-то типа "рекол по руне из банка к шахте - доход до пещеры - весь этот скрипт хождения и копания - рекол домой и разгрузка" заранее благодарен # 1) Запускаем функцию sub record_path() # 2) Медленно при помощи клавиатуры ходим по желаемому маршруту копания # 3) При прохождении всего маршрута (желательно вернуться на исходную позицию... И желательно запомнить ее расположение) пишем просто слово stop # 4) Появится окошко ТЕКСТ. Там вы увидите набор примерно такого вида 9s9d8e4k6g # 5) Копируем его и вставляем в кавычки в поля var path="ТУТ ВСТАВИТЬ" в функции main(). # 6) В функции sub record_path() поле var path="" оставить без изменений (пустым) # 7) В обжект тайпах прописать тип pickaxe на кирку. Либо, у кого дойдут руки, отредактировать этот скрипт и вставить запрос на кирку прямо в клиенте (прим. ВЕТЕРАН). # ![]() ########################################################### # Main Mining Function! Conf. Needed (look above) ############################################################ sub go_mining() var cycle=1 # 1 - зациклировать, 0 - нет var path="9s2sl9n3no9snio9niki" # все в кавычках очистить вначале скрипта var test=0 var i=0 var j UO.SetCatchBag("oresBag") UO.DeleteJournal() While i<LEN(path) if VAL(path[i]) then j=VAL(path[i]) i=i+1 else j=1 endif Repeat if test<>1 then UO.DeleteJournal() mine_spot() end if UO.Print("New Location!") if not make_step(path[i]) then UO.Print("Probably Stuck!") UO.Print("Hope it is a Worldsave") endif j=j-1 Until j==0 i = i + 1 if cycle && i==LEN(path) then i=0 endif Wend end sub ############################################################ # Auxilliar Function. Little mod needed (look above) ############################################################ sub mine_spot() var maxMineTime=1000 var times=0 var timeout=0 While UO.InJournal("You stop")==0 UO.Print("Mining time!") UO.DeleteJournal() UO.WaitTargetTile("1339",STR(UO.GetX()),STR(UO.GetY()),"0") UO.UseType("pickaxe") timeout=0 times = times +1 if times>20 then wait(maxMineTime) times = 0 endif Repeat timeout=timeout+200 Wait(200) #UO.Print("Waiting...") Until UO.InJournal("You put") OR UO.InJournal("There is no") OR timeout>maxMineTime Wend return 0 end sub ############################################################ # Main Path-Recording function! ############################################################ sub record_path() var x var y var path="" UO.DeleteJournal() Repeat x=UO.GetX() y=UO.GetY() if waitNewPos(x,y) then path=path+extract_dir(x,y,UO.GetX(),UO.GetY()) endif Until UO.InJournal("stop") path = compressPath(path) UO.TextClear() UO.TextOpen() UO.TextPrint("Your path is:") UO.TextPrint(path) end sub ############################################################ # Auxilliar sub. ############################################################ sub send_step(keycode,dir) var x = UO.GetX() var y = UO.GetY() var timeout = 0 if UO.GetDir()<>dir then UO.Press(keycode) Repeat wait(50) Until UO.GetDir()==dir endif UO.Press(keycode) Repeat timeout=timeout+50 wait(50) Until x<>UO.GetX() || y<>UO.GetY() || timeout>2000 if timeout>2000 then return 0 endif return 1 end sub ############################################################ # Bunch of auxilliar subs. No need to change anything! ############################################################ sub waitNewPos(x,y) while x==UO.GetX() && y==UO.GetY() if UO.InJournal("stop") then return 0 endif wend return 1 end sub sub compressPath(path) Var i=0 Var j=0 Var newPath="" while i<LEN(path) j=1 while path[i]==path[i+1] AND j<9 i=i+1 j=j+1 wend if j==1 then newPath=newPath+path[i] else newPath=newPath+STR(j)+path[i] endif i=i+1 wend return newPath end sub sub extract_dir(x,y,a,b) if x>a then if y==b then return "i" else if y>b then return "n" else return "w" endif endif else if x<a then if y==b then return "l" else if y>b then return "e" else return "s" endif endif else if y>b then return "o" else return "k" endif endif endif end sub sub make_step(dir) if dir=="e" then send_step(39,1) return 1 endif if dir=="l" then send_step(34,2) return 1 endif if dir=="s" then send_step(40,3) return 1 endif if dir=="k" then send_step(35,4) return 1 endif if dir=="w" then send_step(37,5) return 1 endif if dir=="i" then send_step(36,6) return 1 endif if dir=="n" then send_step(38,7) return 1 endif if dir=="o" then send_step(33,0) return 1 endif if dir=="d" then While UO.Count("0x19b9") UO.Drop("0x19b9") wait(1000) Wend wait(200) return 1 endif UO.Print("Recall Time!") return 0 end sub Скрипт нужно оформлять по правилам и в нужном разделе форума © Mirage |
Page 1 of 1 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |