Разные буки и номера их кнопок...
Moderators: Murderator+, Murderator
Разные буки и номера их кнопок...
Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.
ЗЫ: И как узнать номера кнопок в буке?
ЗЫ: И как узнать номера кнопок в буке?
Re: Разные буки и номера их кнопок...
,[yhlp_infogump] после того как нажал что нить в буке в разделе Reply смотришь код возвратаTergos wrote:Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.
ЗЫ: И как узнать номера кнопок в буке?
А вот потом
Code: Select all
uo.exec("ongump anygump "+"Тот самый код возврата")
uo.useobject("ИД той самой буки")
Сделал дело - флуди смело !!!
Re: Разные буки и номера их кнопок...
хмм. так. вроде бы ясно, но... Если нужен рецепт на скажем третьей странице алхеми буки... ведь при "uo.exec("ongump anygump "+"Тот самый код возврата")" он по идее сразу будет пытаться нажать кнопку, а она на третьей странице... Он просто пригнорирует перелистывание и начнет варить нужный поушен? Или нажмет что-то не то? Или вообще повиснет в ожидании нужной кнопки?Askaneli wrote:,[yhlp_infogump] после того как нажал что нить в буке в разделе Reply смотришь код возвратаTergos wrote:Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.
ЗЫ: И как узнать номера кнопок в буке?
А вот потом
Да. Нужна свежая версия инжи для того что бы работала команда [yhlp_ongump].Code: Select all
uo.exec("ongump anygump "+"Тот самый код возврата") uo.useobject("ИД той самой буки")
Re: Разные буки и номера их кнопок...
Если это просто перелистывание, а не вызов гампа то да , сработает без проблем. Смотри пример рунбуки http://yoko.netroof.net/forum/viewtopic ... 3858#23858Tergos wrote:хмм. так. вроде бы ясно, но... Если нужен рецепт на скажем третьей странице алхеми буки... ведь при "uo.exec("ongump anygump "+"Тот самый код возврата")" он по идее сразу будет пытаться нажать кнопку, а она на третьей странице... Он просто пригнорирует перелистывание и начнет варить нужный поушен? Или нажмет что-то не то? Или вообще повиснет в ожидании нужной кнопки?Askaneli wrote:,[yhlp_infogump] после того как нажал что нить в буке в разделе Reply смотришь код возвратаTergos wrote:Такой вопрос: Есть на шарде алхеми бук, в нем, соответственно, рецепты. Как бы прописать работу с ней не используя тупое кликанье по координатам кнопки? т.е. по принципу работы с рунбукой.
ЗЫ: И как узнать номера кнопок в буке?
А вот потом
Да. Нужна свежая версия инжи для того что бы работала команда [yhlp_ongump].Code: Select all
uo.exec("ongump anygump "+"Тот самый код возврата") uo.useobject("ИД той самой буки")
там выброс рунки из рунбука как раз на второй странице рунбуки.
Зачастую у каждой кнопки гампа свой код возврата. Иногда они прям по порядку идут 0x0001, 0x0002 и тд. Но на некоторых шардах делают хитрые гампы когда надо 2 кнопки поочереди жать, тадыть немного другая схема.
uo.[yhlp_recall] вызывает первый гамп а второй уже тыкаешь uo.[yhlp_ongump].
Сделал дело - флуди смело !!!
Честно скажу - по ссылке не сходил, вроде и так понял, что надо будет отдельную процедуру на перелистывание через обработку гампа сделать. Именно так у нас - два гампа. первый - тип поушена, второй - начало варки оного... Ну а на случай если это просто перелистывание, то вроде вот такой скриптик вырисовывается...
Вроде так? Или я неправильно понял работу с гампами? А то на сайте про "ongump" написано только то, что она в разработке. А формат ее мне не очень ясен...
ЗЫ: Потом еще добавлю сбрасывание пойзонов в мешок, а то у нас на шарде они не кучкуются, придется через вайл пойзон есть в паке кидать - писать ща лень
ЗЗЫ: А чуйствую по ссылочке надо сходить, а то торможу как обработать два гампа, используя только один объект...
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
ЗЫ: Потом еще добавлю сбрасывание пойзонов в мешок, а то у нас на шарде они не кучкуются, придется через вайл пойзон есть в паке кидать - писать ща лень
ЗЗЫ: А чуйствую по ссылочке надо сходить, а то торможу как обработать два гампа, используя только один объект...
Так то вроде всё норма, должно работать.
Вот почитай тут.
http://yoko.netroof.net/forum/viewtopic ... 3692#23692
Вот почитай тут.
http://yoko.netroof.net/forum/viewtopic ... 3692#23692
Сделал дело - флуди смело !!!
хмм... почитал...
А вот такая свзка работать будет?
ЗЫ: А как он различает айди гампа я вписал или сериал?
ЗЗЫ: В процессе чтения наткнулся на это
Не совсем понял опять же формат онгампа... 16 - десятичный номер кнопки, 0x00000009 - айди самого гампа, а 0x4001AA8A - это что? Айди буки? (Видимо я все же тормоз
)
А вот такая свзка работать будет?
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У меня не получилось с ИД гампа ничего вымутить.
Но он равняется ИД итема юз которого вызывает гамп.
uo.[yhlp_ongump] же насколько я понял сам гамп не вызывает а лишь обрабатывает его, в частности жмёт определённую кнопку в книге уже открытую. По сути ставит ловушку на событие.
Но он равняется ИД итема юз которого вызывает гамп.
uo.[yhlp_ongump] же насколько я понял сам гамп не вызывает а лишь обрабатывает его, в частности жмёт определённую кнопку в книге уже открытую. По сути ставит ловушку на событие.
Сделал дело - флуди смело !!!
наличие гампа для него является событием.Tergos wrote:хмм. А сериалы? Если он работает как ловушка на событие, то интересно - что для него является событием... Открыте второй страницы - событие? или попробовать по содержащемуся тексту...
Причём
Code: Select all
uo.exec("ongump anygump "+"Тот самый код возврата")
uo.useobject("ИД той самой буки")
Code: Select all
uo.useobject("ИД той самой буки")
uo.exec("ongump anygump "+"Тот самый код возврата")
У тебя как процесс происходит ваще, расскажи.
Ты юзаешь реги и у тебя книга сама открывается или ты юзаешь книгу ?
Сделал дело - флуди смело !!!
Эх а я делал вот так:
И че удивительное работало
Ну небыло тада ongump'a небыло
p.s. а шард то доминари
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()
Ну небыло тада ongump'a небыло
p.s. а шард то доминари
Тады тебе токаTergos wrote:I'm, ты прав. Шард - доминария.
А порядок действий:
1 - юз книги (открывается список доступных рецептов)
2 - кнопка - выбор рецепта (открывается страничка с этими рецептами)
3 - кнопка - начало варки (бук закрывается)
Code: Select all
sub test()
UO.Recall('0x4001AA8A','1')
UO.OnGump('0x4001AA8A','0x00000009','16')
end sub
Сделал дело - флуди смело !!!
Я не знаю зачем ты придрался к этим цифрамTergos wrote:Хм, тогда объясните плиз подробно вот это: UO.OnGump('0x4001AA8A','0x00000009','16')
0x4001AA8A - айди буки.
16 - номер кнопки.
0x00000009 - Это что?
Code: Select all
uo.recall('ИД буки','5') ; 5 - это номер раздела который ты выбираешь
uo.exec("ongump anygump 11") ; 11 - это поушен из 5 раздела который ты варишь
и в начале скрипт ещё
Code: Select all
uo.exec("set norbcheck 1")
uo.exec("set norbcalc 1")
Сделал дело - флуди смело !!!
ХА! По ходу я нашел способ работать с такой алхеми букой.
Вот такой код. На второй реколл он ругается что нет такого айтема, но кнопку нажимает 
ЗЫ: Сейчас проверил - так обраьатывается любая вложенность. Хоть 5 гампов подряд
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 гампов подряд
Кхм-кхм найди 10 отличий

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