Animal taming, нужна помощь с синтаксисом :)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Mozzarellum
Posts: 5
Joined: 2011-04-25 02:13:07

Animal taming, нужна помощь с синтаксисом :)

Post by Mozzarellum »

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

Code: Select all

Имеем 
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
перейти к следующему

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


П.С.в поиске того что мне нужно я не нашёл
Last edited by Mozzarellum on 2011-04-27 19:52:24, edited 2 times in total.
Mozzarellum
Posts: 5
Joined: 2011-04-25 02:13:07

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mozzarellum »

Code: Select all

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? и ждёт указателя
помогите
Last edited by Mozzarellum on 2011-04-27 19:44:17, edited 3 times in total.
Exist
Posts: 32
Joined: 2011-04-17 07:43:30

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Exist »

Code: Select all

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: Select all

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

Не проверял но по идее должно работать
---------
PWR: Друль Незнайка [OFF]
PWR: Убийца Незнайка [OFF]
BOI: Прист Недотрога [OFF]
---------
Dragon World: Cooler [Deleted]
Dragon World: Exist [ON]
---------
РУКИ кривые - пинаю НОГАМИ!

--------
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mirage »

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

Code: Select all

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
Mozzarellum
Posts: 5
Joined: 2011-04-25 02:13:07

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mozzarellum »

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

Mirage
животные конкретные, 13 штук и они не меняются
несколько лошадей, пара медведей, свинок, пантер, овец и тп )
хотелось бы доделать свой алгоритм
Last edited by Mozzarellum on 2011-04-27 20:16:07, edited 2 times in total.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mirage »

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

1) нигде не указано дистанция поиска животных на земле. => может глючить
2) достаточно прочитать уроки скриптинга чтобы отказаться от фишет типо GOTO из цикла...
3) конечно он останавливается - ловушка

Code: Select all

     repeat
        wait(100)
     until UO.InJournal('fail')

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

4) алгоритм лучше делать следующим образом.

Code: Select all

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

Ваяйте.

PS НАМНОГО удобнее и гармоничнее тренироваться на однотипных животинах Тогда при смерти 1 экземпляра не придется переписывать куски кода.
Mozzarellum
Posts: 5
Joined: 2011-04-25 02:13:07

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mozzarellum »

ваш скрипт также не работает
...может что с инжой у меня что она IF не читает? :(
он выполняет то что после else
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mirage »

Хм.
Скрипт работает у меня на сервере. Только что проверил на курах - в загоне около 25 кур - тамит прячет и отпускает.
Всего скорее ошибка связана с различием сообщений.
Но тут уж я не помощник - это самому нужно прописывать что пишется на сервере.
Mozzarellum
Posts: 5
Joined: 2011-04-25 02:13:07

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Mozzarellum »

'fail|It seems|already|rememb|creature'
а что за фразы скрываются под этими словами?
Exist
Posts: 32
Joined: 2011-04-17 07:43:30

Re: Animal taming, нужна помощь с синтаксисом :)

Post by Exist »

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

Code: Select all

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: Select all

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

Вот вродибы и все
---------
PWR: Друль Незнайка [OFF]
PWR: Убийца Незнайка [OFF]
BOI: Прист Недотрога [OFF]
---------
Dragon World: Cooler [Deleted]
Dragon World: Exist [ON]
---------
РУКИ кривые - пинаю НОГАМИ!

--------
Post Reply