Page 1 of 3

Подправьте плиз скрипт на мининг.

Posted: 2009-03-12 23:28:22
by Jekaaa
Подправьте пожалуйста скрипт на мининг. Дело в том что он после каждой попытки пытаеться сново копать тот же таил. А у нас на сервере нужно всего лишь 1 раз кликнуть на таил и он будет его копать пока все не выкапает. Мне нужно чтобы когда он тыкал на таил он ждал пока все выкапываться и только потом начинал капать следующий таил =)

Code: Select all

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

Posted: 2009-03-14 01:12:56
by Jekaaa
Народ дайте хотя бы простой скриптик что бы копал вокруг себя (только вокруг под собой не надо). Ну то есть по 1 разу кликал во круг себя, если точка уже выкопана то начинал капать следующею. Очень нужно! буду очень благодарен =)

Posted: 2009-03-14 07:31:59
by Millerbeer
А у нас на сервере нужно всего лишь 1 раз кликнуть на таил и он будет его копать пока все не выкапает.


а когда он выкапывает руду, пока ковыряет этот тайл, сообщения от серва приходят, типа You put the ore? Распиши подробно, какие сообщения приходят от сервака, когда копаешь, когда всё выкопал, когда ткнул киркой, а там руды нет уже, когда ткнул не в камень и когда ткнул далеко от себя.

Posted: 2009-03-14 09:14:37
by Jekaaa
Сообщение те же что и всегда (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.

Posted: 2009-03-14 16:17:15
by Millerbeer

Code: Select all

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


по идее, копать будет вокруг себя

Posted: 2009-03-14 16:23:19
by Jekaaa
Пишет ошибку на 5ой линии

Posted: 2009-03-14 16:46:23
by Millerbeer
подправил, чуть скосепорил

Posted: 2009-03-14 16:56:44
by Jekaaa
Теперь на 9ой =)

Posted: 2009-03-14 17:12:58
by Millerbeer
и ещё чуть подправил :)

Posted: 2009-03-14 17:17:20
by Jekaaa
Он делает 1 капок и стоит =((

Posted: 2009-03-14 17:28:31
by Millerbeer
а какое сообщение в журнале, после того, как он сделает копок?

Posted: 2009-03-15 03:52:57
by Jekaaa

Posted: 2009-03-15 06:41:30
by Millerbeer
пробуй

Posted: 2009-03-15 06:58:32
by Jekaaa
Все офигенно! Спасибо тебе большое. Если не в лом можно еще туда ходилку добавить? =)

Posted: 2009-03-15 07:07:52
by Jekaaa
Это сообщение глюк =)

Posted: 2009-03-15 07:52:35
by Millerbeer
да возьми любую ходилку, вбей координаты в массив, бегай по ним и копай

Posted: 2009-03-15 10:21:08
by Jekaaa
Я вообще в инже нефига не понимаю =( Как координаты вбивать? =) что такое массив? =)

Posted: 2009-03-15 17:03:50
by Jekaaa
Если не сложно допиши плиз, очень нужно... Или хотя бы объясни как можно это реализовать =)

Posted: 2009-03-15 17:35:53
by Millerbeer
дай координаты точек, в которых он стоит, когда копает, забью

Posted: 2009-03-15 18:20:23
by Jekaaa
Опиши пожалуйста как вынуть координаты.