Разные буки и номера их кнопок...

Ask for help

Moderators: Murderator+, Murderator

Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Разные буки и номера их кнопок...

Post by Tergos »

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

ЗЫ: И как узнать номера кнопок в буке?
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Re: Разные буки и номера их кнопок...

Post by Askaneli »

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

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


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

Code: Select all

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

Да. Нужна свежая версия инжи для того что бы работала команда [yhlp_ongump].
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Re: Разные буки и номера их кнопок...

Post by Tergos »

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

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


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

Code: Select all

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

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


хмм. так. вроде бы ясно, но... Если нужен рецепт на скажем третьей странице алхеми буки... ведь при "uo.exec("ongump anygump "+"Тот самый код возврата")" он по идее сразу будет пытаться нажать кнопку, а она на третьей странице... Он просто пригнорирует перелистывание и начнет варить нужный поушен? Или нажмет что-то не то? Или вообще повиснет в ожидании нужной кнопки?
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Re: Разные буки и номера их кнопок...

Post by Askaneli »

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

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


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

Code: Select all

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].
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

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

Code: Select all

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" написано только то, что она в разработке. А формат ее мне не очень ясен...
ЗЫ: Потом еще добавлю сбрасывание пойзонов в мешок, а то у нас на шарде они не кучкуются, придется через вайл пойзон есть в паке кидать - писать ща лень :)
ЗЗЫ: А чуйствую по ссылочке надо сходить, а то торможу как обработать два гампа, используя только один объект...
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Так то вроде всё норма, должно работать.
Вот почитай тут.
http://yoko.netroof.net/forum/viewtopic ... 3692#23692
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

хмм... почитал...
А вот такая свзка работать будет?

Code: Select all

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

ЗЫ: А как он различает айди гампа я вписал или сериал?
ЗЗЫ: В процессе чтения наткнулся на это

Code: Select all

sub test() 
UO.Recall('0x4001AA8A','1')
UO.OnGump('0x4001AA8A','0x00000009','16')
end sub

Не совсем понял опять же формат онгампа... 16 - десятичный номер кнопки, 0x00000009 - айди самого гампа, а 0x4001AA8A - это что? Айди буки? (Видимо я все же тормоз :oops: )
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

У меня не получилось с ИД гампа ничего вымутить.
Но он равняется ИД итема юз которого вызывает гамп.
uo.[yhlp_ongump] же насколько я понял сам гамп не вызывает а лишь обрабатывает его, в частности жмёт определённую кнопку в книге уже открытую. По сути ставит ловушку на событие.
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

хмм. А сериалы? Если он работает как ловушка на событие, то интересно - что для него является событием... Открыте второй страницы - событие? или попробовать по содержащемуся тексту...
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

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

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

Причём

Code: Select all

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

Code: Select all

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

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

У тебя как процесс происходит ваще, расскажи.
Ты юзаешь реги и у тебя книга сама открывается или ты юзаешь книгу ?
Сделал дело - флуди смело !!!
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Эх а я делал вот так:

Code: Select all

      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. а шард то доминари :)
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

I'm, ты прав. Шард - доминария. :)
А порядок действий:
1 - юз книги (открывается список доступных рецептов)
2 - кнопка - выбор рецепта (открывается страничка с этими рецептами)
3 - кнопка - начало варки (бук закрывается)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

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

Тады тебе тока

Code: Select all

sub test() 
UO.Recall('0x4001AA8A','1')
UO.OnGump('0x4001AA8A','0x00000009','16')
end sub
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

Хм, тогда объясните плиз подробно вот это: UO.OnGump('0x4001AA8A','0x00000009','16')
0x4001AA8A - айди буки.
16 - номер кнопки.
0x00000009 - Это что?
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

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

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

Code: Select all

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

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

и в начале скрипт ещё

Code: Select all

uo.exec("set norbcheck 1")
uo.exec("set norbcalc 1")
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

сенк. Попробую...
А придрался к цифрам - мне просто интересно что за онгамп с тремя параметрами. первый и третий я могу понять, а второй - нет.
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

ХА! По ходу я нашел способ работать с такой алхеми букой.

Code: Select all

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

Вот такой код. На второй реколл он ругается что нет такого айтема, но кнопку нажимает :)
ЗЫ: Сейчас проверил - так обраьатывается любая вложенность. Хоть 5 гампов подряд :)
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Кхм-кхм найди 10 отличий :roll:
Tergos wrote:

Code: Select all

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

      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:
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

Кхм. Отличие есть. По твоему варианту постоянно открывается бука (на втором реколле). Кнопка-то нажимается, но экран забивается алхеми буками - начинает лагать. А в моем варианте он ругается на отсутствие такой буки (с произвольным номером) и тоже нажимает кнопку. И лагов из-за кучи книжек открытых нет.
ЗЫ: Но буду честен - идея твоя, моя только доработка... :)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

uo.[yhlp_ongump] и только он и не надо ничего изобретать
прекрасно работает.
Сделал дело - флуди смело !!!
Post Reply