| Yoko http://forum.yoko.com.ua/ |
|
| Help me plz. Mining > next tail http://forum.yoko.com.ua/viewtopic.php?f=20&t=6950 |
Page 1 of 1 |
| Author: | skiv [ 2006-03-13 13:05:01 ] |
| Post subject: | Help me plz. Mining > next tail |
Quote: 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 ore") OR timeout>maxMineTime Wend return 0 end sub Не переходит к следуйщему тайлу при сообщение от уо "There is no ore here to mine." Why? |
|
| Author: | Grin [ 2006-03-13 13:29:24 ] |
| Post subject: | |
так он и не будет переходить%) потому что это процедура для рытья 1 тайла;) |
|
| Author: | skiv [ 2006-03-13 13:32:56 ] |
| Post subject: | |
Знаю, не полный дурак Quote: sub go_mining()
var cycle=1 var path="2wswsws4wnwswnwsws2wsw2ko5enesenesene4so4ek2l3e2n3w3n2wn2e2s2e2s4nw3ni" 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 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 ore") OR timeout>maxMineTime Wend return 0 end sub 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 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 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 |
|
| Author: | Grin [ 2006-03-13 13:50:35 ] |
| Post subject: | |
страный макрос;) изобретение самоката... у бедись что управление из mine_spot() передается дальше |
|
| Author: | CFA [ 2006-03-13 14:00:27 ] |
| Post subject: | |
как я понял, переходить он должет когда увидет в журнале строчку "You stop", а не "There is no ore here to mine" |
|
| Author: | skiv [ 2006-03-13 14:11:46 ] |
| Post subject: | |
Я тоже так понял, но он этого не делает |
|
| Author: | CFA [ 2006-03-13 14:14:01 ] |
| Post subject: | |
а сообщение "You stop" в журнале появляеться? |
|
| Author: | skiv [ 2006-03-13 14:16:48 ] |
| Post subject: | |
Нет=) Ну скрипт то я содрал, решил для безопастности ничего не трогать. Палки в колёса не вставляет, и фиг бы с ней=) |
|
| Author: | CFA [ 2006-03-13 14:21:53 ] |
| Post subject: | |
это While UO.InJournal("You stop")==0 поменяй на это While UO.InJournal("There is no ore")==0 |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|