Yoko
http://forum.yoko.com.ua/

Animal taming, нужна помощь с синтаксисом :)
http://forum.yoko.com.ua/viewtopic.php?f=20&t=16458
Page 1 of 1

Author:  Mozzarellum [ 2011-04-27 14:53:33 ]
Post subject:  Animal taming, нужна помощь с синтаксисом :)

Добрый день, я новичок в инжекте и пока не могу реализовать алгоритм который нужен, посему прошу вашей помощи

Code:
Имеем 
13 животных (ID могу вбить руками, животные не меняются)
ID=0x00164CDB
ID=0x0017CA27
ID=0x000E4339
ID=0x0015C13F
ID=0x0017D893
ID=0x001D3863
ID=0x0017D891
ID=0x0013C271
ID=0x0016BA91
ID=0x001586EC
ID=0x001299AF
ID=0x0016B875
ID=0x0016BA93
задача тамить их по очереди и отпускать перед приручением каждого следующего

при It seems to accept you as its master
Say All release
переходить к следующему

при получении сообщения при попытке приручить
... does not want to be tamed by you just yet
переходить к другому

если животное вдруг удалилось в процессе и сообщение I cannot tame this или до начала You are too far awar to tame that
перейти к следующему

и так зациклить по кругу


П.С.в поиске того что мне нужно я не нашёл

Author:  Mozzarellum [ 2011-04-27 15:25:21 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

Code:
sub Taming()
DIM Animal[13]
VAR i
Animal[1]='0x00164CDB'
Animal[2]='0x0017CA27'
Animal[3]='0x000E4339'
Animal[4]='0x0015C13F'
Animal[5]='0x0017D893'
Animal[6]='0x001D3863'
Animal[7]='0x0017D891'
Animal[8]='0x0013C271'
Animal[9]='0x0016BA91'
Animal[10]='0x001586EC'
Animal[11]='0x001299AF'
Animal[12]='0x0016B875'
Animal[13]='0x0016BA93'

start:
for i=0 to 13
   if i==13 then
   i=0
   endif
i=i+1
UO.Say('all release')
UO.DeleteJournal()
UO.WaitTargetObject(Animal[i])
UO.Useskill('Animal Taming')
     repeat
     wait(100)
until Uo.InJournal('It seems to accept you as its master|does not want to be tamed by you just yet|I cannot tame this|You are too far awar to tame that')
goto start

end sub



вот такой скриптик накидал, осталось только сделать так чтобы кидал таргет на животину
сейчас Tame wich animal? и ждёт указателя
помогите

Author:  Exist [ 2011-04-27 15:31:33 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

Code:
sub Taming()
DIM Animal[13]
VAR i
Animal[1]='0x00164CDB'
Animal[2]='0x0017CA27'
Animal[3]='0x000E4339'
Animal[4]='0x0015C13F'
Animal[5]='0x0017D893'
Animal[6]='0x001D3863'
Animal[7]='0x0017D891'
Animal[8]='0x0013C271'
Animal[9]='0x0016BA91'
Animal[10]='0x001586EC'
Animal[11]='0x001299AF'
Animal[12]='0x0016B875'
Animal[13]='0x0016BA93'

start:
for i=0 to 13
if i==13 then
i=0
end if

i=i+1
UO.Say('all release')
UO.DeleteJournal()
while not UO.InJournal('It seems to accept you as its master|does not want to be ramed by you just yet|I cannot tame this|You are too far awar to tame that')
UO.WaitTargetObject('Animal[i]')
UO.Useskill('Animal Taming')
     repeat
        wait(100)
     until UO.InJournal('fail')
        wait(500)
If Uo.InJournal('It seems to accept you as its master|does not want to be ramed by you just yet|I cannot tame this|You are too far awar to tame that') Then
goto start
Endif
wend
end sub


Code:
UO.WaitTargetObject(Animal[i])  - вот так должен выглядеть этот кусок

Не проверял но по идее должно работать

Author:  Mirage [ 2011-04-27 16:41:58 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

животные одного типа или как?
Если тип один (несколько кур, коней, лам или прочее) то вот так лучше.

Code:
sub AnimalTaming()
var animal = '0x00D0' #тип животного
uo.Set('finddistance', 8)
uo.ignorereset()
uo.warmode('0')
Repeat
   uo.FindType(animal, -1, 'ground')
   if uo.FindCount()>0 then
      UO.DeleteJournal()
      UO.WaitTargetObject('finditem') 
      UO.Useskill('Animal Taming')
      repeat
         wait(100)
      until UO.InJournal('fail|It seems|already|rememb|creature') or uo.GetX('finditem')==0
      If Uo.InJournal('It seems|already|creature') Then
         UO.Hide('finditem')
         UO.Ignore('finditem')
         uo.say('all release')
      endif
   else
      uo.ignorereset()
      UO.Msg(".resync")
   endif
   wait(500)
Until uo.Dead()
end sub

Author:  Mozzarellum [ 2011-04-27 18:19:01 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

Exist, спасиб
исправил мишеньку и теперь после затамливания первого всё встаёт :(

Mirage
животные конкретные, 13 штук и они не меняются
несколько лошадей, пара медведей, свинок, пантер, овец и тп )
хотелось бы доделать свой алгоритм

Author:  Mirage [ 2011-04-27 19:57:54 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

Иногда лучше взять чтото новее и работоспособнее чем пытать ся реинкарнировать устаревшие функции ;)

1) нигде не указано дистанция поиска животных на земле. => может глючить
2) достаточно прочитать уроки скриптинга чтобы отказаться от фишет типо GOTO из цикла...
3) конечно он останавливается - ловушка
Code:
     repeat
        wait(100)
     until UO.InJournal('fail')

будет вечно крутиться в ожидание фола.

4) алгоритм лучше делать следующим образом.
Code:
Повторять 
     for  массива животных
          повторять
               притамить тварюшку
                 ЖДАТЬ ПОКА - ВСЕ ВОЗМОЖНЫЕ ФРАЗЫ
          пока не прозвучит успешная фраза или кончится таймер (который нужно добавить чтобы вот так не зависал цикл)
          сказать ПШЛА ВОН
     next
Пока чар живой

Ваяйте.

PS НАМНОГО удобнее и гармоничнее тренироваться на однотипных животинах Тогда при смерти 1 экземпляра не придется переписывать куски кода.

Author:  Mozzarellum [ 2011-04-27 20:16:18 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

ваш скрипт также не работает
...может что с инжой у меня что она IF не читает? :(
он выполняет то что после else

Author:  Mirage [ 2011-04-27 22:29:20 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

Хм.
Скрипт работает у меня на сервере. Только что проверил на курах - в загоне около 25 кур - тамит прячет и отпускает.
Всего скорее ошибка связана с различием сообщений.
Но тут уж я не помощник - это самому нужно прописывать что пишется на сервере.

Author:  Mozzarellum [ 2011-04-27 23:23:16 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

'fail|It seems|already|rememb|creature'
а что за фразы скрываются под этими словами?

Author:  Exist [ 2011-04-28 00:52:14 ]
Post subject:  Re: Animal taming, нужна помощь с синтаксисом :)

Mozzarellum wrote:
'fail|It seems|already|rememb|creature'
а что за фразы скрываются под этими словами?

Code:
repeat ; повтор цикла
         wait(100) ; ждем
      until UO.InJournal('fail|It seems|already|rememb|creature') or uo.GetX('finditem')==0 ; в журнале видим что не удалось, а также что удалось, что запомнила животина
      If Uo.InJournal('It seems|already|creature') Then ; фильтруем полученный журнал если всеже затеймили то
         UO.Hide('finditem') ; прячем
         UO.Ignore('finditem') ; игнорим
         uo.say('all release') ; прогоняем
      endif ; конец фильтра

Надеюсь так понятнее будет.
Code:
'fail|It seems|already|rememb|creature' - сюда пишешь свои сообщения, все когда не удалось и все когда удалось
'It seems|already|creature' - сюда пишешь все сообщения когда удалось.

Вот вродибы и все

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/