Короче так и неясно из за чего выскакивает эта ошибка.
Дело и в скрипте тоже. Потому что нашёл немного другой, аналогичный скрипт и всё работает без глюков.
Может будут какие нибудь мысли почему при работе приведённого ниже скрипта появляется эта ошибка. И только на моём компе, повторюсь, у друга всё работает нормально, без каких бы то нибыло ошибок или подтормаживаний. Оба скрипта на фишинг, но первый (с которым проблемы), дополнительно ещё выкидывает ненужные вещи из пака, которые ловятся вместе с рыбой и переделывает выловленные ботинки в кожу. Кроме этого есть функция автозамены удочки в случае поломки. Второй просто ловит, единственное если ломается удочка тоже берёт другую.
Собственно вот "глючный" скрипт:
Code:
sub main()
uo.exec("disarm")
var xs,ys,y,x,tile
while not uo.dead()
if UO.Count("0x0DBF")== 0 then
uo.say("Oai?ee iaoo! Iaoaeyao ia ?aaioa?")
uo.say(",closeuo")
end if
xs=Uo.GetX()
ys=Uo.GetY()
for x=xs-5 to xs+5
for y=ys-5 to ys+5
uo.deletejournal()
Tile= GetTileWater(x, y)
if Tile then
while not uo.injournal("any fish|fish there|complete")
uo.deletejournal()
wait(100)
uo.WaitTargetTile(Tile, x, y, 0)
uo.usetype('0x0DBF')
nolomka()
dropp()
while not uo.injournal("That is too far away|The skies|fish there|biting|You catch|any fish|location|walrus comes by to|You find|complete")
wend
end if
next
wend
UO.Print()
end sub
sub GetTileWater(x, y)
for var i=6039 to 6045
if uo.privategettile(x, y, -1, i, i) then
return i
end if
next
Return 0
end sub
sub dropp()
DIM mycop[4]
mycop[0] = 0x099F
mycop[1] = 0x14ED
mycop[2] = 0x170E
mycop[3] = 0x1710
VAR i
For i = 0 To 3
UO.FindType( mycop[i], '-1', 'backpack')
if uo.GetQuantity('finditem')>0 then
UO.Drop(-1, STR(UO.GetX('self')), STR(UO.GetY('self')), STR(UO.GetZ('self')-3), "finditem")
End if
next
end sub
sub nolomka()
wait(2000)
if uo.injournal("have to equip that to go") then
main()
end if
end sub
А вот этот скрипт работает без всяких ошибок и тормозов:
Code:
Sub FishTile(t, x, y, z)
var timer
repeat
uo.WaitTargetTile(Str(t), Str(x), Str(y), Str(z))
uo.UseType(0x0DBF) #Удочка
uo.DeleteJournal()
timer = 0
repeat
wait(1000)
timer = timer + 1
until uo.InJournal("Points") or uo.InJournal("here") or uo.InJournal("line") or uo.InJournal("broken") or timer > 120
until uo.InJournal("here") or uo.InJournal("line")
end sub
sub Fishing()
var i, j, tile
uo.Disarm()
while not uo.dead()
for i = -6 to 6
for j = -6 to 6
tile = 168
while (not uo.PrivateGetTile(uo.GetX() + i, uo.GetY() + j, 251, tile, tile)) and (tile < 6045)
if tile == 171 then
tile = 310
else
if tile == 311 then
tile = 6039
else
tile = tile + 1
endif
endif
wend
if tile < 6039 then
tile = 0
endif
if tile < 6045 then
uo.concolor(0x53)
uo.Print("Fishing: " + Str((i + 6) * 13 + j + 7) + "/169...")
uo.concolor(0)
FishTile(tile, uo.GetX() + i, uo.GetY() + j, 251)
endif
next
next
uo.Print("Завершил круг. Продолжаю.")
wend
end sub