Суть проблемы такова, при запуске скрипта вылетает ошибка:
Line 152: parse error
Проблема в том, что у меня в скрипте только 151 строка, как с этим бороться?
P.S. убрал из скрипта много полезного, но не помогло, сначала он был 252 строки и тогда писало ошибку в 253.
Вот сам скрипт:
sub Main()
VAR ret = 1
Repeat
While ret
Mine()
Wait(1000)
If ret == 1 Then
Move()
Wait(1000)
Endif
Wend
Smelt()
Wait(1000)
Until UO.Dead or UO.Weight > 600
endsub
sub Mine()
VAR x, y, ret = 1, l = 1, lopata = '0x0F39', kirka = '0x0E86'
UO.FindType(lopata)
If UO.FindCount() == 0 Then
l=0
EndIf
UO.FindType(kirka)
If UO.FindCount() == 0 && l == 0 Then
ret = 0
EndIf
If UO.Weight > 625 Then
ret = 0
EndIf
for x=-2 to 2
for y=-2 to 2
uo.deletejournal()
while not uo.hidden()
uo.useskill('Stealth')
wait(5000)
wend
uo.waittargettile(0,uo.getx()+x,uo.gety()+y,uo.getz())
if l==1 Then
uo.usetype(lopata)
else
uo.usetype(kirka)
endif
wait(300)
if uo.lastmessage()=='Òóò íè÷åãî íåòó.' or uo.lastmessage()=='Ïîïðîáóéòå êîïàòü â äðóãîì ìåñòå.' or uo.lastmessage()=='Ó âàñ íåò îáçîðà ê ýòîìó ìåñòîïîëîæåíèþ' then
wait(50)
else
while uo.lastmessage() == 'Ãäå âû õîòèòå èñïîëüçîâàòü Pickaxe?' || uo.lastmessage() == 'Ãäå âû õîòèòå èñïîëüçîâàòü Shovel?'
wait(100)
wend
y=y-1
endif
next
next
endsub
sub Move()
VAR ret = 1, x, y, sx, sy
sx = UO.GetX()
sy = UO.GetY()
While ret
Go_To(sx-3,sy-4)
VAR A, B, C
A = abs( x - sx )
B = abs( y - sy )
If A > B Then
C = A
Else
C = B
EndIf
if C > 4 then
ret = 0
endif
Wend
endsub
sub Smelt()
VAR smore, sx, sy, ore = '0x19B9'
sx = UO.GetX()
sy = UO.GetY()
Go_To(sx+1,sy+1) ; forge
Wait(10000)
UO.FindType(ore)
While UO.FindCount()
smore = UO.GetSerial('finditem')
UO.Ignore('finditem)
DelJournal("Get minimum")
While not UO.InJournal("Get minimum")
UO.Useobject(smore)
wait(300)
Wend
UO.FindType(ore)
Wend
Wait(500)
Go_To(sx,sy)
Wait(10000)
endsub
sub Go_To(x,y)
var fx,fy
var xx=x
var yy=y
var forstep=300
repeat
fx=uo.GetX()
fy=uo.GetY()
Step(xx,yy,forstep)
until x==fx && y==fy
endsub
sub Step(x,y,forstep)
VAR xx=x, yy=y, sx=UO.GetX(), sy=GetY()
VAR mx=sx-xx
VAR my=sy-yy
if uo.GetX() <> x then
if uo.GetY() <> y then
if mx<0 then
if my<0 then
uo.Press(40)
wait(forstep)
else
uo.Press(39)
wait(forstep)
endif
else
if my<0 then
uo.Press(37)
wait(forstep)
else
uo.Press(38)
wait(forstep)
endif
endif
else
if mx<0 then
uo.Press(34)
wait(forstep)
else
uo.Press(36)
wait(forstep)
endif
endif
else
if my<0 then
uo.Press(35)
wait(forstep)
else
uo.Press(33)
wait(forstep)
endif
endif
endsub
Скрипт на самом деле ещё не дописан, он не будет выполнять своих функций пока, но все места, где будет вставлен код на мой взгляд правильно закрыты.