
Project ASM
Moderators: Murderator+, Murderator
А пока вопрос ходьбы и гампов решается паралельно запущенным инстансом EasyUO, общение соответвенно с инжектом через реестр... Если ж не дай бог надо крафт при ходьбе, то поможет 2 одновременно запущенных инстанса изи... Хотя конечно с перемешиваемыми кнопками и т.п. не поможет, но просто надежно клацать гарантировано не в пустоту, а в нужный гамп - позволит.
Новая версия ASM-2 411.10. Подробности на сайте.
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
Новая версия ASM-2 411.16. Подробности на сайте.
Это последняя версия ASM-2. В конце ноября - начале декабря выйдет ASM-3.
Это последняя версия ASM-2. В конце ноября - начале декабря выйдет ASM-3.
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
Поставил ASM-2 411.16. Runtime Error исчезла. Но asmWaitTargetStaticTile всегда выдаёт 0.
Я пытаюсь написать простейший скрипт на рыбную ловлю.
Создал файл с типами тайлов, соответствующих воде:
Номера тайлов взял из InsideUO. В том месте, где я ловлю рыбу встречаются тайлы с номерами от 0x1798 до 0x179c.
Вот собственно сам скрипт:
(На обработку сообщений не обращайте внимания, она на скорую руку выдрана из другого скрипта
)
Но, как я уже писал, asmWaitTargetStaticTile всегда выдаёт 0. Никак не пойму в чём дело. Можно ли как-нибудь узнать какой именно тип тайла пытается сопоставить с логическим типом asmWaitTargetStaticTile?
Я пытаюсь написать простейший скрипт на рыбную ловлю.
Создал файл с типами тайлов, соответствующих воде:
Code: Select all
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: Select all
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?
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
AGRS wrote:ASM не тримингует логические типы тайлов.
Либо поубирай пробелы, либо используй res = UO.asmWaitTargetStaticTile('water ', myx + dx, myy + dy, 0)
Прошу прощения за назойливость, но, наверное, на меня какое-то слабоумие напало...
Из этого сообщения я не понял ничего

Что значт "ASM не тримингует логические типы тайлов"?
Откуда убирать пробелы?
И чем отличается ваше выражение от того, что написано у меня в скрипте?
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
AGRS wrote:Ды убери ты эти пробелы отовсюду! Что за изврат. Я не для этого оставил возможность пробелов напихать!
Осваивай новые функции постепенно:
sub test()
UO.asmTLStaticClear()
UO.asmTLStaticAdd(6040,'water')
UO.Print(STR(UO.asmWaitTargetStaticTile('water',1500,1760,0)))
end sub
Простите, я всё ещё не понимаю какие пробелы вы имеете в виду.
Функция test выдаёт 0. Что из этого следует?
AlexeyVorotnikov wrote:Простите, я всё ещё не понимаю какие пробелы вы имеете в виду.
Да те что в конце каждой строки в таблице тайлов.
AlexeyVorotnikov wrote:Функция test выдаёт 0. Что из этого следует?
Следует что прицел не был установлен.
Вобще у меня единичку выдает, но может у нас статика разная. infotile поможет.
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06
AGRS wrote:AlexeyVorotnikov wrote:Простите, я всё ещё не понимаю какие пробелы вы имеете в виду.
Да те что в конце каждой строки в таблице тайлов.AlexeyVorotnikov wrote:Функция test выдаёт 0. Что из этого следует?
Следует что прицел не был установлен.
Вобще у меня единичку выдает, но может у нас статика разная. infotile поможет.
Таблица тайлов была сгенерирована следующим скриптом:
Code: Select all
sub CreateWaterType()
UO.asmTLStaticClear()
for var i = 6039 to 6066
UO.asmTLStaticAdd(i, 'water')
next
UO.asmTLStaticSave("WaterStatic.dat")
end sub
И руками я до неё не дотрагивался.
Я выполнил ,infotile, вбил в скрипт test то, что она выдала, всё равно получается 0.
-
- Junior Expert
- Posts: 138
- Joined: 2004-09-18 15:12:06