Поставил ASM-2 411.16. Runtime Error исчезла. Но asmWaitTargetStaticTile всегда выдаёт 0.
Я пытаюсь написать простейший скрипт на рыбную ловлю.
Создал файл с типами тайлов, соответствующих воде:
Code:
0x1797=water
0x1798=water
0x1799=water
0x179a=water
0x179b=water
0x179c=water
0x179d=water
0x179e=water
0x179f=water
0x17a0=water
0x17a1=water
0x17a2=water
0x17a3=water
0x17a4=water
0x17a5=water
0x17a6=water
0x17a7=water
0x17a8=water
0x17a9=water
0x17aa=water
0x17ab=water
0x17ac=water
0x17ad=water
0x17ae=water
0x17af=water
0x17b0=water
0x17b1=water
0x17b2=water
Номера тайлов взял из InsideUO. В том месте, где я ловлю рыбу встречаются тайлы с номерами от 0x1798 до 0x179c.
Вот собственно сам скрипт:
Code:
sub Fishing2()
var fishingPoleType = 0x0DBF
var weightLimit = 100
var delta = 6
var found = false
var cont = true
var lastTimer
var myx
var myy
var myz
var dx, dy
var res
UO.DeleteJournal()
UO.asmTLStaticOpen("WaterStatic.dat")
while UO.Weight < weightLimit
for dx = -delta to delta
for dy = -delta to delta
myx = UO.GetX()
myy = UO.GetY()
myz = UO.GetZ()
UO.Print("dx=" + Str(dx) + " dy=" + Str(dy) + " X=" + Str(myx + dx) + " Y=" + Str(myy + dy))
cont = true
while cont
res = UO.asmWaitTargetStaticTile('water', myx + dx, myy + dy, 0)
UO.Print("res=" + str(res))
if res then
UO.UseType(fishingPoleType)
lastTimer = UO.Timer()
found = false
repeat
if UO.InJournal("They don't seem") then
found = true
cont = false
wait(100)
endif
if UO.InJournal("You can't fish there") then
found = true
cont = false
wait(100)
endif
if UO.InJournal("That is too far") then
found = true
cont = false
wait(100)
endif
if UO.InJournal("That location") then
found = true
cont = false
wait(100)
endif
if UO.InJournal("You catch") then
found = true
cont = false
wait(100)
endif
if UO.InJournal("There doesn't seem") then
found = true
cont = false
wait(100)
endif
wait(100)
until found || UO.Timer() > lastTimer + 300
UO.DeleteJournal()
else
UO.Print("Тайл не найден!")
cont = false
wait(100)
endif
wend
next
next
wend
UO.Print("Вес взят!!!")
end sub
(На обработку сообщений не обращайте внимания, она на скорую руку выдрана из другого скрипта
)
Но, как я уже писал, asmWaitTargetStaticTile всегда выдаёт 0. Никак не пойму в чём дело. Можно ли как-нибудь узнать какой именно тип тайла пытается сопоставить с логическим типом asmWaitTargetStaticTile?