Подправьте пожалуйста скрипт на мининг. Дело в том что он после каждой попытки пытаеться сново копать тот же таил. А у нас на сервере нужно всего лишь 1 раз кликнуть на таил и он будет его копать пока все не выкапает. Мне нужно чтобы когда он тыкал на таил он ждал пока все выкапываться и только потом начинал капать следующий таил =)
var fizzle = 0 var iron = 1 var d var k var i var try = 0
sub success() if UO.InJournal("You put the Iron Ore") and Iron == 1 then try = 0 return 1 end if if UO.InJournal("You loosen") then if fizzle == 0 then return 1 else if try < fizzle then try = try + 1 return 1 else try = 0 return 0 end if end if end if return 0 end if
sub checkaction() if UO.InJournal("You loosen") then return 1 end if if UO.InJournal("You put") then return 1 end if if UO.InJournal("no ore") then return 1 end if if UO.InJournal("no line") then return 1 end if return 0 end sub
sub definedir( d ) if d == 0 then k = 33 return k end if if d == 2 then k = 34 return k end if if d == 4 then k = 35 return k end if if d == 6 then k = 36 return k end if return 0 end sub
sub main() UO.DeleteJournal() k = definedir(UO.GetDir("self")) if k == 0 then UO.Print("You are at wrong direction...") UO.Exec("terminate all") end if while 1 if k == 34 OR k == 36 then for i = UO.GetY("self") - 2 to UO.GetY("self") + 2 start1: UO.Exec("waittargettile * "+STR(UO.GetX("self"))+" "+STR(i)+" "+STR(UO.GetZ("self"))) Wait(200) UO.usetype("NPF")
UO.DeleteJournal()
while NOT checkaction() Wait(1000) wend
if success() then goto start1 else Wait(1000) end if next UO.Press(k,2,500) end if if k == 33 OR k == 35 then for i = UO.GetX("self") - 2 to UO.GetX("self") + 2 start2: UO.Exec("waittargettile * "+STR(i)+" "+STR(UO.GetY("self"))+" "+STR(UO.GetZ("self"))) Wait(200) UO.usetype("NPF")
UO.DeleteJournal()
while NOT checkaction() Wait(1000) wend
if success() then goto start2 else Wait(1000) end if next UO.Press(k,2,500) end if wend end sub
Last edited by Jekaaa on 2010-05-13 00:06:20, edited 1 time in total.
Народ дайте хотя бы простой скриптик что бы копал вокруг себя (только вокруг под собой не надо). Ну то есть по 1 разу кликал во круг себя, если точка уже выкопана то начинал капать следующею. Очень нужно! буду очень благодарен =)
А у нас на сервере нужно всего лишь 1 раз кликнуть на таил и он будет его копать пока все не выкапает.
а когда он выкапывает руду, пока ковыряет этот тайл, сообщения от серва приходят, типа You put the ore? Распиши подробно, какие сообщения приходят от сервака, когда копаешь, когда всё выкопал, когда ткнул киркой, а там руды нет уже, когда ткнул не в камень и когда ткнул далеко от себя.
Сообщение те же что и всегда (Select a place to mine, You are too far away, You loosen some rocks, You put the) просто они приходят от сервера во время копания и он начинает снова юзать кирку на тот же таил. А когда руда в таиле кончилась пишет there is no more ore here to mine.
sub Mining() var x,y for x=-2 to 2 for y=-2 to 2 if x==0 and y==0 then wait(500) else uo.deletejournal() uo.waittargettile('0',str(uo.getx('self')+x),str(uo.gety('self')+y),'0') uo.usetype('NPF') repeat wait(300) until uo.injournal('far away|no more|nothing here') endif next next endsub
по идее, копать будет вокруг себя
Last edited by Millerbeer on 2009-03-15 06:40:50, edited 4 times in total.