Подправьте пожалуйста скрипт на мининг. Дело в том что он после каждой попытки пытаеться сново копать тот же таил. А у нас на сервере нужно всего лишь 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.