Смерджил такой вот скриптик. Основная идея:
- запраживаем подобпытное существо (в данном случае - запертая кошка)
- ищем в инвентаре/руках посохи (напугала идея о том, что он может сломаться
)
- распускаем всех тварей
- тамим кошку
- проверяем Animal Lor'ом ее голод, если голодная - кормим
- ну и, чего уж там, кидаем на себя Anatomy
Вроде все качается помалу:
Собственно, 2 вопроса:
1)
Откуда может браться вот это, если используется динамическая задержка (вызвали скилл - ждем строки в журнале).
2)
Что обозначает "Auto target cancelled"? Ну и почему ниже идет "Targeting cancelled"? Ведь, по идее, все должно идти последовательно: запустили скилл - дождались завершения - запустили другой.
Я и так добавил лишних вейтов и проверок на лаги, дабы растянуть это дело... но чую, что чего-то недопонимаю
Собственно, сам скрипт:
Code:
sub AnimalTaming()
UO.Print('Где кошка?')
UO.Exec('addobject Animal')
while uo.Targeting()
wait(100)
wend
# ищем стафф
var s, n
Dim staff[2]
staff[1]='0x13F8'
staff[2]='0x13F9'
for n=1 to 2
uo.findtype(staff[n],-1,'backpack')
if uo.findcount() then
s=uo.getserial('finditem')
else
uo.findtype(staff[n],-1,'my')
if uo.findcount() then
s=uo.getserial('finditem')
endif
endif
next
# таминг, лог и анатомия на себя
while not uo.dead()
uo.msg('all release')
checklag()
uo.waittargetobject('Animal')
uo.useobject(s)
tamingresult()
uo.waittargetobject('Animal')
uo.useskill('Animal Lore')
loreresult()
UO.UseSkill('Anatomy','self')
anatomyresult()
wend
endsub
sub anatomyresult()
var n
for n=0 to 200
wait(400)
if uo.injournal('looks|think') then
return
endif
next
checklag()
endsub
sub loreresult()
var n
for n=0 to 200
wait(400)
if uo.injournal('think|it') then
return
if uo.injournal('hungry') then
wait(500)
uo.moveitem('0x09f1',1,'Animal')
uo.Print("Animal is Fed")
wait(500)
endif
endif
next
checklag()
endsub
sub tamingresult()
var n
for n=0 to 200
wait(400)
if uo.injournal('It seems|fail to tame|see the creature|already tame') then
return
endif
next
checklag()
endsub
sub checklag()
repeat
UO.DeleteJournal()
UO.Click('backpack')
until backpack()==1
wait(100)
endsub
sub backpack()
var n
for n=0 to 200
if uo.injournal('a backpack') then
return 1
endif
wait(200)
next
endsub