Нужна помощь в скрипте на мининг.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
messir
Posts: 18
Joined: 2010-02-16 19:41:25

Нужна помощь в скрипте на мининг.

Post by messir »

В общем я не умею писать умные красивые скрипты, и использую только то, что мне известно и понятно. Поэтому скрипт очень "тупой". Но при этом работает без нареканий. Проблема вот в чем:
В некоторых частях скрипта используется goto и именно на нее происходит ругань. А именно. Запускаю скрипт, он летит по руне как пологается, встает на нужную точку и начинает копать. Как накопал улетает домой, сгружается, пополняет запасы и снова летит к шахте. И вот когда чар прилетает и должен идти к точке копания, то на этом месте вылазиет ошибка "Line 44: GoTo - некорректное определение цикла в скрипте?!!"
Как вылечить и почему эта ошибка возникает?

вот код (помечу 44 строчку, на которую ругается)

Code: Select all

sub start()
uo.Exec('exec Avtohealing')
uo.Exec('exec Speak')
uo.Exec('exec Drap')
UO.Set('finddistance','3')
uo.WarMode(1)
wait(1000)
uo.setarm("1")
wait(1000)
uo.deletejournal()
wait(500)
letimkopat()
endsub


sub letimkopat()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
wait(5000)
uo.disarm()
wait(500)
UO.Exec("useobject '0x79ED63A2'")
wait(1000)
UO.LClick (62,81)
wait(7000)
if uo.injournal ("Kal Ort Por") then
   uo.deletejournal()
   wait(1000)
   uo.arm("1")
   wait(500)
   idemkopat()
   else
   letimkopat()
endif
end sub

sub idemkopat()
var q,w,e,r
q=23
e=10
w=0
r=0 #44 строчка на которую скрипт ругается.
while not uo.dead()
first:
if q==w then   
   w=0
   goto second
else
   if uo.injournal ("Saving World State") then
      wait(20000)
      uo.deletejournal()
   endif
   uo.press(33)
   wait(500)
   w=w+1
   goto first
endif

second:
if e==r then
      r=0
      uo.press(35)
      wait(1000)
      uo.press(35)
      wait(1000)
      uo.press(34)
      wait(1000)
      mining()
else
      if uo.injournal ("Saving World State") then
         wait(20000)
         uo.deletejournal()
      endif
      uo.press(36)
      wait(500)
      r=r+1
      goto second
endif
wait(1000)
wend
end sub

sub domoy()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
wait(10000)
uo.disarm()
wait(500)
UO.Exec("useobject '0x79ED63A2'")
wait(1000)
UO.LClick (62,66)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
uo.press(36)
wait(100)
wait(5000)
if uo.injournal ("a unicorn") then
   uo.deletejournal()
   uo.press(36)
   wait(1000)
   uo.press(36)
   wait(1000)
   uo.press(34)
   wait(1000)
   uo.press(34)
   wait(1000)
   drop()
else
   domoy()
endif
end sub

sub drop()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
uo.msg("Âûãðóæàþ ðóäó")
if uo.count("0x19B9") >0 then
   UO.exec("waittargetobject '^0x19B9'")
   UO.Drop('^0x19B9')
   wait(1000)
   drop()
   else
   wait(1000)
   recharge()
endif
end sub

sub recharge()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
uo.msg("Ñîáèðàþñü çàðÿäèòü ðóíáóê")
wait(1000)
UO.Exec("waittargetobject '~0x1F4C'")
UO.Exec("useobject '0x79ED63A2'")
wait(1000)
UO.LClick (243,22)
wait(20000)
uo.msg("Ìîþ ãðÿçíûå áèíòû")
wait(1000)
UO.Exec("waittargetobject '~0x0E7B'")
UO.Exec("useobject '^0x0E20'")
wait(1000)
bandage()
end sub

sub bandage()
while not uo.dead()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
uo.msg("Ñîáèðàþñü ïîïîëíèòü çàïàñû áèíòîâ")
wait(1000)
if uo.count('0x0E21')>100 then
   uo.msg("Áèíòîâ áîëüøå 100 øòóê")
   wait(1000)
   eda()
   else
   UO.Exec("moveitem '~0x0E21' '10' '^0x0E75'")
   wait(1000)
   uo.msg("Áåðó 10 áèíòîâ")
   wait(1000)
endif
wend
end sub

sub eda()
while not uo.dead()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
uo.msg("Ñîáèðàþñü ïîïîëíèòü çàïàñû åäû")
wait(1000)
if uo.count('0x171F')>0 then
   uo.msg("Åäû áîëüøå 5")
   wait(1000)
   letimkopat()
   else
   uo.msg("Áåðó Åäó")
   wait(1000)
   UO.Exec("moveitem '~0x171F' '1' '^0x0E75'")
   wait(1000)
endif
wend
end sub

sub speak()
while not uo.dead()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
uo.msg("Êà÷àþ ìèíèíã! Ñêàæè drîp me è ÿ âûáðîøó âñþ ðóäó!")
wait(7500)
wend
end sub

sub drap()
while not uo.dead()
if uo.injournal ("drop me") then
   uo.deletejournal()
   wait(1000)
   drapactive()
endif
wait(1000)
wend
end sub

sub drapactive()
while uo.count("0x19B9")>0
UO.exec("waittargetobject '^0x19B9'")
UO.Drop('^0x19B9')
uo.msg("Ñáðàñûâàåì...")
wait(1000)
wend
end sub

sub Avtohealing()
var x=1
while not uo.dead()
if (UO.STR-x) > UO.Life then
uo.msg(".bandage self")
wait(1000)
endif
wait(1000)
wend
end sub


sub mining()
var i,j,n,m,r
i=0
j=0
n=15
m=4
r=0
begin:
while not uo.dead()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
if j==m then
   uo.press(33)
   wait(1000)
   uo.press(33)
   wait(1000)
   uo.press(36)
   wait(1000)
   j=0
   goto back
else
   if r==1 then
      goto west
   else
      goto east
   endif
endif
wend

east:
while not uo.dead()
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
if i<n then
   goto kopalka1
else
   uo.press(35)
   wait(1000)
   uo.press(35)
   wait(1000)
   uo.press(36)
   wait(1000)
   i=0
   j=j+1
   r=r+1
endif
uo.exec("usetype '0x171F'")
goto begin
wend

west:
while not uo.dead()
if uo.Weight>=20000 or uo.count('0x0E21')<10 then
   domoy()
endif
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
if i<n then
   goto kopalka2
else
   uo.press(35)
   wait(1000)
   uo.press(35)
   wait(1000)
   uo.press(34)
   wait(1000)
   i=0
   j=j+1
   r=0
endif
uo.exec("usetype '0x171F'")
goto begin
wend

back:
while not uo.dead()
if uo.Weight>=20000 or uo.count('0x0E21')<10 then
   domoy()
endif
if uo.injournal ("Saving World State") then
   wait(20000)
   uo.deletejournal()
endif
if j<m then
   wait(50)
   uo.press(33)
   wait(1000)
   j=j+1
   goto back
else
   uo.press(34)
   wait(1000)
   j=0
   uo.exec("usetype '0x171F'")
   wait(50)
   goto begin
endif
wend

kopalka1:
while not uo.dead()
uo.msg(".pray")
wait(100)
uo.exec("usetype 'pickaxe'")
wait(500)
UO.LClick (403,303)
wait(5000)
if uo.injournal ("There is no") then
   uo.deletejournal()
   uo.press(34)
   wait(1000)
   i=i+1
   goto east
else
   goto kopalka1
endif
uo.exec("usetype '0x171F'")
goto begin
wend

kopalka2:
while not uo.dead()
uo.msg(".pray")
wait(100)
uo.exec("usetype 'pickaxe'")
wait(500)
UO.LClick (403,303)
wait(5000)
if uo.injournal ("There is no") then
   uo.deletejournal()
   uo.press(36)
   wait(1000)
   i=i+1
   goto west
else
   goto kopalka2
endif
uo.exec("usetype '0x171F'")
goto begin
wend
end sub
Post Reply