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

Разные буки и номера их кнопок...
http://forum.yoko.com.ua/viewtopic.php?f=3&t=4273
Page 1 of 2

Author:  Tergos [ 2005-06-21 08:41:31 ]
Post subject:  Разные буки и номера их кнопок...

Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.

ЗЫ: И как узнать номера кнопок в буке?

Author:  Askaneli [ 2005-06-21 08:49:28 ]
Post subject:  Re: Разные буки и номера их кнопок...

Tergos wrote:
Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.

ЗЫ: И как узнать номера кнопок в буке?


,[yhlp_infogump] после того как нажал что нить в буке в разделе Reply смотришь код возврата
А вот потом

Code:
uo.exec("ongump anygump "+"Тот самый код возврата")
uo.useobject("ИД той самой буки")

Да. Нужна свежая версия инжи для того что бы работала команда [yhlp_ongump].

Author:  Tergos [ 2005-06-21 09:12:36 ]
Post subject:  Re: Разные буки и номера их кнопок...

Askaneli wrote:
Tergos wrote:
Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.

ЗЫ: И как узнать номера кнопок в буке?


,[yhlp_infogump] после того как нажал что нить в буке в разделе Reply смотришь код возврата
А вот потом

Code:
uo.exec("ongump anygump "+"Тот самый код возврата")
uo.useobject("ИД той самой буки")

Да. Нужна свежая версия инжи для того что бы работала команда [yhlp_ongump].


хмм. так. вроде бы ясно, но... Если нужен рецепт на скажем третьей странице алхеми буки... ведь при "uo.exec("ongump anygump "+"Тот самый код возврата")" он по идее сразу будет пытаться нажать кнопку, а она на третьей странице... Он просто пригнорирует перелистывание и начнет варить нужный поушен? Или нажмет что-то не то? Или вообще повиснет в ожидании нужной кнопки?

Author:  Askaneli [ 2005-06-21 09:26:33 ]
Post subject:  Re: Разные буки и номера их кнопок...

Tergos wrote:
Askaneli wrote:
Tergos wrote:
Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.

ЗЫ: И как узнать номера кнопок в буке?


,[yhlp_infogump] после того как нажал что нить в буке в разделе Reply смотришь код возврата
А вот потом

Code:
uo.exec("ongump anygump "+"Тот самый код возврата")
uo.useobject("ИД той самой буки")

Да. Нужна свежая версия инжи для того что бы работала команда [yhlp_ongump].


хмм. так. вроде бы ясно, но... Если нужен рецепт на скажем третьей странице алхеми буки... ведь при "uo.exec("ongump anygump "+"Тот самый код возврата")" он по идее сразу будет пытаться нажать кнопку, а она на третьей странице... Он просто пригнорирует перелистывание и начнет варить нужный поушен? Или нажмет что-то не то? Или вообще повиснет в ожидании нужной кнопки?

Если это просто перелистывание, а не вызов гампа то да , сработает без проблем. Смотри пример рунбуки http://yoko.netroof.net/forum/viewtopic ... 3858#23858
там выброс рунки из рунбука как раз на второй странице рунбуки.
Зачастую у каждой кнопки гампа свой код возврата. Иногда они прям по порядку идут 0x0001, 0x0002 и тд. Но на некоторых шардах делают хитрые гампы когда надо 2 кнопки поочереди жать, тадыть немного другая схема.
uo.[yhlp_recall] вызывает первый гамп а второй уже тыкаешь uo.[yhlp_ongump].

Author:  Tergos [ 2005-06-21 09:52:14 ]
Post subject: 

Честно скажу - по ссылке не сходил, вроде и так понял, что надо будет отдельную процедуру на перелистывание через обработку гампа сделать. Именно так у нас - два гампа. первый - тип поушена, второй - начало варки оного... Ну а на случай если это просто перелистывание, то вроде вот такой скриптик вырисовывается...
Code:
sub Alchemy()

uo.print('gde regi i butylki?')
uo.addobject(sunduk)
while uo.targeting()
  wait(100)
wend

While not UO.Dead()
  If UO.NS < 10 then
    Checklag()
    UO.FindType('тип найтшейда',0x0000,sunduk)
    If not UO.FindCount() then
      UO.Print('Regi konchilis')
      return
    endif
    UO.Moveitem('finditem', 100, 'backpack')
    wait(700)
  else
    UO.FindType('тип бутылок', 0x0000, 'backpack')
    if UO.Findcount()<20 then
      Checklag()
      UO.FindType('тип бутылок', 0x0000, sunduk)
      If not UO.Findcount() then
        UO.Print('Butylki konchilis')
        return
      endif
      UO.moveitem('finditem', 100, 'backpack')
      wait(700)
    else
      Checklag()
      UO.exec('ongump anygump _гамп_кнопки_пойзона_')
      UO.UseObject('айди алхеми буки')
      UO.DeleteJournal()
      While not UO.Injournal('You put|fail|have')
        wait(200)
      wend
      wait(250)
    endif
  endif
wend
endsub

Sub Checklag()
uo.deletejournal()
uo.click('backpack')
Repeat
wait(100)
Until UO.InJournal("backpack")
end sub

Вроде так? Или я неправильно понял работу с гампами? А то на сайте про "ongump" написано только то, что она в разработке. А формат ее мне не очень ясен...
ЗЫ: Потом еще добавлю сбрасывание пойзонов в мешок, а то у нас на шарде они не кучкуются, придется через вайл пойзон есть в паке кидать - писать ща лень :)
ЗЗЫ: А чуйствую по ссылочке надо сходить, а то торможу как обработать два гампа, используя только один объект...

Author:  Askaneli [ 2005-06-21 09:57:57 ]
Post subject: 

Так то вроде всё норма, должно работать.
Вот почитай тут.
http://yoko.netroof.net/forum/viewtopic ... 3692#23692

Author:  Tergos [ 2005-06-21 10:13:30 ]
Post subject: 

хмм... почитал...
А вот такая свзка работать будет?
Code:
UO.exec('ongump id_гампа_с_типом_поушенов номер_гампа_пойзонов')
UO.exec('ongump id_гампа_с_выбором_конкретного_пойзона номер_гампа_нужного_поушена')
UO.UseObject('id_алхеми_буки')

ЗЫ: А как он различает айди гампа я вписал или сериал?
ЗЗЫ: В процессе чтения наткнулся на это
Code:
sub test() 
UO.Recall('0x4001AA8A','1')
UO.OnGump('0x4001AA8A','0x00000009','16')
end sub

Не совсем понял опять же формат онгампа... 16 - десятичный номер кнопки, 0x00000009 - айди самого гампа, а 0x4001AA8A - это что? Айди буки? (Видимо я все же тормоз :oops: )

Author:  Askaneli [ 2005-06-21 10:31:58 ]
Post subject: 

У меня не получилось с ИД гампа ничего вымутить.
Но он равняется ИД итема юз которого вызывает гамп.
uo.[yhlp_ongump] же насколько я понял сам гамп не вызывает а лишь обрабатывает его, в частности жмёт определённую кнопку в книге уже открытую. По сути ставит ловушку на событие.

Author:  Tergos [ 2005-06-21 10:39:31 ]
Post subject: 

хмм. А сериалы? Если он работает как ловушка на событие, то интересно - что для него является событием... Открыте второй страницы - событие? или попробовать по содержащемуся тексту...

Author:  Askaneli [ 2005-06-21 10:43:51 ]
Post subject: 

Tergos wrote:
хмм. А сериалы? Если он работает как ловушка на событие, то интересно - что для него является событием... Открыте второй страницы - событие? или попробовать по содержащемуся тексту...

наличие гампа для него является событием.

Причём
Code:
uo.exec("ongump anygump "+"Тот самый код возврата") 
uo.useobject("ИД той самой буки")

Code:
uo.useobject("ИД той самой буки") 
uo.exec("ongump anygump "+"Тот самый код возврата")

сработают одинаково.

У тебя как процесс происходит ваще, расскажи.
Ты юзаешь реги и у тебя книга сама открывается или ты юзаешь книгу ?

Author:  I'm [ 2005-06-21 11:58:39 ]
Post subject: 

Эх а я делал вот так:
Code:
      UO.ReCall("AlchemyBook",FirstGump) 
      UO.DeleteJournal()
      While NOT UO.InJournal(" ")
         Wait(100)
      Wend
      UO.ReCall("AlchemyBook",SecondGump)
         While NOT UO.InJournal("You put")
            Wait(100)
         Wend
      CheckLag()

И че удивительное работало :lol:
Ну небыло тада ongump'a небыло :(
p.s. а шард то доминари :)

Author:  Tergos [ 2005-06-22 08:42:05 ]
Post subject: 

I'm, ты прав. Шард - доминария. :)
А порядок действий:
1 - юз книги (открывается список доступных рецептов)
2 - кнопка - выбор рецепта (открывается страничка с этими рецептами)
3 - кнопка - начало варки (бук закрывается)

Author:  Askaneli [ 2005-06-22 08:44:13 ]
Post subject: 

Tergos wrote:
I'm, ты прав. Шард - доминария. :)
А порядок действий:
1 - юз книги (открывается список доступных рецептов)
2 - кнопка - выбор рецепта (открывается страничка с этими рецептами)
3 - кнопка - начало варки (бук закрывается)

Тады тебе тока
Code:
sub test() 
UO.Recall('0x4001AA8A','1')
UO.OnGump('0x4001AA8A','0x00000009','16')
end sub

Author:  Tergos [ 2005-06-22 08:53:14 ]
Post subject: 

Хм, тогда объясните плиз подробно вот это: UO.OnGump('0x4001AA8A','0x00000009','16')
0x4001AA8A - айди буки.
16 - номер кнопки.
0x00000009 - Это что?

Author:  Askaneli [ 2005-06-22 09:02:00 ]
Post subject: 

Tergos wrote:
Хм, тогда объясните плиз подробно вот это: UO.OnGump('0x4001AA8A','0x00000009','16')
0x4001AA8A - айди буки.
16 - номер кнопки.
0x00000009 - Это что?

Я не знаю зачем ты придрался к этим цифрам

Code:
uo.recall('ИД буки','5') ; 5 - это номер раздела который ты выбираешь
uo.exec("ongump anygump 11") ; 11 - это поушен из 5 раздела который ты варишь

эти цифры достаешь из [yhlp_infogump]

и в начале скрипт ещё
Code:
uo.exec("set norbcheck 1")
uo.exec("set norbcalc 1")

Author:  Tergos [ 2005-06-22 10:24:10 ]
Post subject: 

сенк. Попробую...
А придрался к цифрам - мне просто интересно что за онгамп с тремя параметрами. первый и третий я могу понять, а второй - нет.

Author:  Tergos [ 2005-06-30 15:02:40 ]
Post subject: 

ХА! По ходу я нашел способ работать с такой алхеми букой.
Code:
      UO.Recall('айди_алхеми_буки','номер_первой_кнопки')
      UO.DeleteJournal()
      repeat
        wait(100)
      until UO.InJournal(' ')
      UO.Recall('ПРОИЗВОЛЬНОЕ_ЧИСЛО', 'номер_второй кнопки')
      While not UO.Injournal('You put|fail|have')
        wait(200)
      wend

Вот такой код. На второй реколл он ругается что нет такого айтема, но кнопку нажимает :)
ЗЫ: Сейчас проверил - так обраьатывается любая вложенность. Хоть 5 гампов подряд :)

Author:  I'm [ 2005-06-30 22:57:01 ]
Post subject: 

Кхм-кхм найди 10 отличий :roll:
Tergos wrote:
Code:
      UO.Recall('айди_алхеми_буки','номер_первой_кнопки')
      UO.DeleteJournal()
      repeat
        wait(100)
      until UO.InJournal(' ')
      UO.Recall('ПРОИЗВОЛЬНОЕ_ЧИСЛО', 'номер_второй кнопки')
      While not UO.Injournal('You put|fail|have')
        wait(200)
      wend


I'm wrote:
Code:
      UO.ReCall("AlchemyBook",FirstGump) 
      UO.DeleteJournal()
      While NOT UO.InJournal(" ")
         Wait(100)
      Wend
      UO.ReCall("AlchemyBook",SecondGump)
         While NOT UO.InJournal("You put")
            Wait(100)
         Wend
      CheckLag()


То-то же :lol:

Author:  Tergos [ 2005-07-01 07:34:31 ]
Post subject: 

Кхм. Отличие есть. По твоему варианту постоянно открывается бука (на втором реколле). Кнопка-то нажимается, но экран забивается алхеми буками - начинает лагать. А в моем варианте он ругается на отсутствие такой буки (с произвольным номером) и тоже нажимает кнопку. И лагов из-за кучи книжек открытых нет.
ЗЫ: Но буду честен - идея твоя, моя только доработка... :)

Author:  Askaneli [ 2005-07-01 07:38:00 ]
Post subject: 

uo.[yhlp_ongump] и только он и не надо ничего изобретать
прекрасно работает.

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