Работа с журналом Injection, Как взять значение из журнала Injection |
Работа с журналом Injection, Как взять значение из журнала Injection |
Сообщений: 82 Рег. 7.09.2011 |
23 октября 2017 23:18
Сообщение #21
|
Ggthxbye, Спасибо отличный совет! (= |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
23 октября 2017 23:23
Сообщение #22
|
Подскажите как придать значению полученному от команды УО.ТАЙМЕР() формат времени 00:00:00(Часы:Минуты:Секунды) ? |
|
|
|
Сообщений: 6208 Рег. 27.11.2009 |
24 октября 2017 16:41
Сообщение #23
|
Xottab, Из таймера никак. Он в 1/10 секунды время считает. Есть функция Time: Консоль: Только из скрипта. Из скрипта: Function Time() Введено с версии: <=1501.17 Возвращает число вида HHMMSS, где SS - секунда, MM - минута, YY - час |
|
|
|
25 октября 2017 16:04
Сообщение #24
|
|
Жмешь quest, потом ,infogump. uo.print(UO.LastGump('text',32)) - покажеть строку №32 в подразделе гампа text (Button,Command и т.д.) Можно написать определение завершенности квеста по наличию картинки замка. п.с. Если найдешь способ жать квест из скрипта напиши :) |
|
|
|
25 октября 2017 16:07
Сообщение #25
|
|
UO.GetGumpCount() - получить количество гампов в памяти инжекта UO.SelectGump(InjID) - выбрать гамп, с которым будем работать UO.GumpExists(InjID) / UO.GumpExists(Serial, GumpID) - проверить, есть ли указанный гамп в памяти UO.GetGump(ident [n]) - работа с гампом, аналогично работе с LastGump, но, если первым параметром является InjID то: UO.GetGump(ident, GumpIndex) / UO.GetGump(ident, Serial, GumpID) - будут возвращать InjID гампа в строке, либо пустую строку. GumpIndex - порядковый номер гампа от 0 до GumpCount() - 1 UO.SetGump(ident, id, state) - работа с гампом, который выбрали в UO.SelectGump(), если гамп исчез - ничего не произойдет. ident может быть: checkbox, radio, state для этого случая число 0 или 1. Переключает значения чекбоксов и радио-кнопок. Для радио кнопок срабатывает только на 1. textentry - для этого случая, state - строка, на которую нужно заменить текст И уже давно существующая функция UO.SendGumpSelect(index, ...) - index это номер кнопки, которую нужно нажать. Параметры: UO.SendGumpSelect(index) - нажать в последнем гампе UO.SendGumpSelect(index, gump_index) - нажать в гампе с порядковым номером UO.SendGumpSelect(index, serial, gump_id) - нажать в гампе по серийнику и ид UO.SendGumpSelect(index, serial = 0, gump_id = 0, InjID) - нажать в гампе по InjID гампа, серийник и ИД гампа могут быть любыми значениями и не используются в этом варианте. |
|
|
|
Сообщений: 6208 Рег. 27.11.2009 |
25 октября 2017 18:28
Сообщение #26
|
Цитата: Glaz п.с. Если найдешь способ жать квест из скрипта напиши :) Юзаем квест, берем инфогамп. _____infogump_______ injection id 0x425bf398 serial 0x00b1e581 gumpid 0x00000467 Перезаходим в игру, юзаем квест, берем инфогамп. _____infogump_______ injection id 0x4268c848 serial 0x00b1e581 gumpid 0x00000467 Итого у нас для каждого чара есть две постоянные: serial 0x00b1e581 = айди чара gumpid 0x00000467 = тип гампа Нужна функция, которая позволит по двум параметрам serial и gumpid получить InjID, для дальнейшей работы с гампом через UO.SelectGump(InjID). |
|
|
|
25 октября 2017 23:12
Сообщение #27
|
|
Эх это только в идеальном мире, а у нас ГампИД не постоянен. |
|
|
|
Сообщений: 6208 Рег. 27.11.2009 |
26 октября 2017 00:39
Сообщение #28
|
Glaz, МММ, поясни? У меня на любом чаре закладка "Квестс" имеет один и тот гампайди, привязанный к айди чара. |
|
|
|
26 октября 2017 04:49
Сообщение #29
|
|
Он не держится постоянно, проходит несколько дней и он меняется, я не засекал сколько. |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
26 октября 2017 13:11
Сообщение #30
|
Она не постоянно меняется. Это серверная константа. Просто Хосан решает чето подправить в окошечке и оно меняет номер. Ну либо он спецом вредничает. Стелс кстати вроде умеет тыкать в кукловые кнопки. Можно через него считать и епредать в инжект данные. Или сразу пилить скрипт на стелсе. |
|
|
|
Сообщений: 6208 Рег. 27.11.2009 |
26 октября 2017 14:39
Сообщение #31
|
Mirage, Ну либо на стелсе пилить, либо инжект + изиуо. |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
26 октября 2017 23:28
Сообщение #32
|
Спасибо всем за дискуссию, полезны советы для себя нашёл... Ggthxbye, можешь дать простой пример как использовать фунцию Time Glaz, способ есть... |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
5 ноября 2017 02:28
Сообщение #33
|
Подскажите пожалуйста, есть ли аналогичная команда, но на ману ? UO.Life < UO.GetMaxHP() Пробовал: UO.Mana < UO.GetMaxMP() Не работает... |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
5 ноября 2017 14:17
Сообщение #34
|
максимального значения у маны нет. Как вариант использовать плавающую константу mana=uo.mana какое то событие if mana <> uo.mana then либо через uo.int получать. Максимальная мана вроде редко когда больше интелекта. PS раньше на старых версиях жизни меряли по силе. |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
5 ноября 2017 16:51
Сообщение #35
|
Mirage, Спасибо, не однократно видел в скриптах сопоставление маны с интелектом, но думал есть более правильный способ как в примере с жизними, теперь всё понятно, почему делают так... |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
6 ноября 2017 04:47
Сообщение #36
|
Простите пожалуйста, ну не получается... Совсем глупый затык поучился не могу написать проверку наличия в паке игрок определённой сумки с определённым ID, выручите... sub Proverca() VAR Bag = '0x40043C10' UO.FindType( Bag ) UO.Print( str( UO.FindCount() ) ) endsub ИЛИ sub Proverca() VAR Bag = '0x40043C10' UO.FindType( Bag ) UO.Print( str( UO.Count( 'finditem' ) ) ) endsub ИЛИ sub Proverca() VAR Bag = '0x40043C10' UO.Print( str( Bag ) ) endsub Не возвращает значение 1 или 0, точнее постоянно возвращает '0', без разницы есть сумка в паке или её нет... |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
6 ноября 2017 18:08
Сообщение #37
|
В общем сделал на подобие ЧекЛаг..., но всё равно хотелось бы для само развития, понять, как искать в сумке объекты по ID, а не по Типу... Если кто знает, дайте пример или хотя бы направление, куда капать... |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
6 ноября 2017 18:38
Сообщение #38
|
если предмет/сумка находится внутри открытого контейнера (например бэкпака) то инжект сразу знает его ID. Если и ты сразу знаешь его ид то можно сразу к нему обращаться через uo.userobject(id). С другой стороны можно найти по типу, затем сравнить с нужным ID, если не равно то игнорируем тип и продолжаем искать до удачи или до пока не кончатся предметы. Цикл на 5-6 строк. Если задача чисто "есть ли предмет именно в паке" то можно uo.FindType(LootType,LootColour,'backpack') If uo.FindCount()> 0 then LootID = uo.getSerial('finditem') uo.setGlobal('LootBag',LootID) else uo.setGlobal('LootBag','backpack') endif Можно еще короче через if UO.Count (LootType, LootColour)<1 Then но это не точно ©brb |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
6 ноября 2017 19:28
Сообщение #39
|
Mirage, не получается... Дело в том, что ту сумку, что я пытаюсь отследить (её присутствие или отсутствие) в паке игрока по типу и по цвету идентична паку игрока, единственное отличие между ними это ИД номер, в связи с чем искать её по типу и по цвету бесполезно, он всегда находит пак игрока... Неужели нет проверки по ИД, прям ну не вериться... |
|
|
|
Сообщений: 82 Рег. 7.09.2011 |
6 ноября 2017 20:05
Сообщение #40
|
Вот как я сделал: |
|
|
|
Сейчас: 23 ноября 2024 23:34 |