Работа с журналом Injection, Как взять значение из журнала Injection
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
29 августа 2017 21:50
Сообщение #1
Подскажите пожалуйста, как взять значение из журнала Injection

Например, мне нужно взять значение "1" из строки журнала "232]"
Работа с журналом Injection
Какой командой можно это сделать?
Что бы например, при команде UO.print ( ??? ), отражалось значение взятое и строки "232]"
Скорее всего это будет выглядеть примерно так:

sub Journal()
VAR i
i = ???
UO.print ( str( i ) )
end sub
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
2 сентября 2017 16:47
Сообщение #2
Ещё вопрос, как передать переменную "i" из одного скрипта в другой скрипт?
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
12 сентября 2017 21:03
Сообщение #3
Ну подкиньте же кто-нибудь припер скрипта, как брать значение из журнал, будьте добренькими (=
Старший Сержант (960341)8 лет
Dragonstalker
Сообщений: 516
Рег. 9.03.2016
13 сентября 2017 07:30
Сообщение #4
Пару способов:
1).

2). Легкий способ начать искать информацию. Аллен Карр
3). UO.InJournal("мессага журнала")
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
13 сентября 2017 22:39
Сообщение #5
DeaTh, как обращаться к журналу я знаю, мой вопрос заключался в том, как взять значение из этого самого журнала только из определённой строки, под номером например 232] и произнести его командой:

uo.print( "Значение строки журнала = " +UO.InJournal( 232] ) )

Что бы на экране появилось сообщение "Значение строки журнала = 1"

Если Вы в этом разбираетесь и Вам не составляет это труда, напишите пожалуйста рабочий пример кода, буду Вам очень признателен...
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
13 сентября 2017 23:10
Сообщение #6
Возможно ты не верно строишь задачу.
Если ты знаешь такт когда ты должен получить ответ из журнала то проще счетчик x=x+1 сделать и уже на так бери значение журнала.
Если ты знаешь сообщение то ищи сообщениее
какой скрипт ты хочешь получить на выходе?

PS

Описание: Journal •
Синтакс:
Консоль: Только из скрипта.
Из скрипта: Function UO.Journal(index)

Введено с версии: <=1501.17

Тема: Команды скриптов
Ключевые слова: Journal, Scripting, Function


--------------------------------------------------------------------------------

Возвращает строку журнала Injection номер number. Journal(0) возвращает то же что и LastMessage. Предпочтительно использовать функцию InJournal для проверок в журнале.

uo.Print(uo.Journal(10)) пробовал?
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
13 сентября 2017 23:44
Сообщение #7
Mirage,
Знаю порядковый номер сообщения в журнале Injection "232]"
The Best Ultima Online Shard Antares
нужно что бы он произнёс значение соответствующее этой строке то есть "1"
в идеале хочу получить авто определение выполненных работ, путём запроса infogump из меню квестов, что бы скрипт сам определял, какие работы уже выполнены, то есть значение в строке соответствующей работы = 1 или 0, исходя из этого принимал решение, что ему делать или не делать, т.к. уже сделано...

uo.Print(uo.Journal(10)) пробовал? Пробовал, никакого текста из журнала Injection он не произносит...

Простите если я жёстко туплю, я не специально...
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
14 сентября 2017 10:27
Сообщение #8
Аа ну ты я так и думал замороился по жесткому :)
В твоем случае возможны несколько вариантов:
1) логирование в текстовый файл (в физический файл а не жержать в журнале инжекта) данные о выполненных операциях. Потом уже работать с файлом. Ищи скрипты на добычу либо в хелпе посмотри работу с файлом.
2) загонять 0/1 в глобальную константу - что на мой взгляд проще. Глобалки используются в любом скрипте ДО выхода из игры.
Соответственно второй способ рассчитан на более длительное присутствие и стабильный коннект. Как только вышел - глобалки сбросятся. Первый способ может работать даже после перелогина чара. Скрипт просто загрузит данные из текстового файла и будет продолжать с места завершения.


sub Lootrunning()
   uo.setGlobal('running',1)
   uo.FindType(LootType,LootColour,'backpack')    
   If uo.FindCount()> 0 then
      LootID = uo.getSerial('finditem')
      uo.setGlobal('LootBag',LootID)
   else
      uo.setGlobal('LootBag','backpack')
   endif
end sub
Sub Rez_Cleaver()
   UO.Set('quiet','1')
   if val(uo.getGlobal('running'))==1 then
блаблабла

пример с глобалками

Если работы отображаются где то в профайле персонажа можно выцеплять через гампы.

PS инжект не умеет работать со своим журналом. Только с игровым либо с текстовым файлом.
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
14 сентября 2017 23:04
Сообщение #9
Mirage, хочу сразу поблагодарить, за то что уделяешь мне время!

Первый вариант конечно преимущественно интересней, второй понятно проще, но не так хорош как первый, т.к. после реконнекта мой скрипт не будет помнить, что он уже делал, а что нет, и начнёт выполнять всё с начала...

А вот третий вариант с гампами мне кажется лучше всего, задумка в том, что бы скрипт каждый раз перед началом и после выполнения очередной работы сверялся с КвестГампом и определял, какие работы уже сделаны то есть == 1, а какие ещё нет, то есть == 0, и летел на неё, а не повторял все работы с первой по очереди тем самым, повторно выполняя одни и те же работы, расходуя при этом реги, заряды рун, силы и как следствие устаёт и не добирается до последних работ, которые не успел выполнить, а если во время отдыха произойдёт обрыв соединения, то опять начнёт всё с начала...

Поэтому хочу сделать последовательную проверку выполненных работ перед началом работы:
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
22 октября 2017 00:49
Сообщение #10
Подскажите пожалуйста, какой коммандой в скрипте инжекта можно открыть Квест Гамп ?
Подскажите как придать значению полученному от команды УО.ТАЙМЕР() формат времени 00:00:00(Часы:Минуты:Секунды) ?
Маршал (60157892)14 летИнквизитор
Inquisitor
Сообщений: 6208
Рег. 27.11.2009
22 октября 2017 01:19
Сообщение #11
Цитата: Xottab
Подскажите пожалуйста, какой коммандой в скрипте инжекта можно открыть Квест Гамп ?


msg quest
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
22 октября 2017 14:36
Сообщение #12
Ggthxbye, спасибо добрый человек! :derisive:

Вот так просто пишет сообщение, но окно не открывается:
uo.msg('quest')

А вот так вообще ошибку выдаёт:
msg quest

Как правильно написать эту команду в скрипте, что бы окно quest появлялось? Имеется ввиду quest Gump(где перечислены все Квесты), а не quest вендора...
Маршал (60157892)14 летИнквизитор
Inquisitor
Сообщений: 6208
Рег. 27.11.2009
22 октября 2017 18:11
Сообщение #13
Xottab,

Ааа. Я думал квестолога окно тебе нужно.)
Через инжу не знаю как, через уо у меня стоит на кнопку команда Open QuestLog.
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
22 октября 2017 20:16
Сообщение #14
Ggthxbye, поняно... Так я тоже сделал, и использовал команду press, что бы нажимать на это копку, но это как-то уж слишком через одно место сделано ()*(), мне кажется должна быть специальная команда, она же есть в Уо, а значит нужно просто понять как она пишется...
Сержант (523056)13 лет
Druid
Сообщений: 82
Рег. 7.09.2011
22 октября 2017 20:19
Сообщение #15
Может ещё кто подскажет, как получить значение - количество зарядов в руне?
Генерал Полковник (31351072)15 лет
Dragonstalker
Сообщений: 4091
Рег. 6.09.2009
22 октября 2017 21:45
Сообщение #16
Цитата: Xottab
Может ещё кто подскажет, как получить значение - количество зарядов в руне?

:to_keep_order: каждые 1.0% Magery - 1 рекол заряд на руне при марке :elf:

Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
23 октября 2017 08:35
Сообщение #17
LEMON,
От имеет ввиду оставшееся количество прыжков :)

За кнопку quest - раньше когда она была в хелп меню её можно было через гамп нажать, но хитрый Хосан убрал кнопку переместив её в профиль чара. Профильные кнопки инжект не умеет нажимать. Если только админ сжалица надо бедными скриптерами и введет команду .quest для посмотреть количество заказов :)
Маршал (60157892)14 летИнквизитор
Inquisitor
Сообщений: 6208
Рег. 27.11.2009
23 октября 2017 13:51
Сообщение #18
Цитата: Xottab
Может ещё кто подскажет, как получить значение - количество зарядов в руне?


Клик по итему и отсечка текста в скобках с переводом в значение.
Но, по практике, зачем знать количество, если отлично с этой задачей справляется автоперемарк по получению фразы:

sub Mark(Rune)
  
   var OldTimer, OldMana
  
   if UO.InJournal('faded|fade') <> 0 then
      UO.Print('Mark rune')
      repeat
         CheckMana()
         OldTimer = Now()
         OldMana = UO.Mana;
         UO.Cast('Mark', Rune)
         repeat
            Wait(200)
         until UO.InJournalBetweenTimes('fizzles', OldTimer) <> 0 || UO.Mana < OldMana
      until UO.InJournalBetweenTimes('fizzles', OldTimer) <= 0
   end if
  
   UO.DeleteJournal()
  
end sub
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
23 октября 2017 15:42
Сообщение #19
faded пишется когда ты прилетаешь в точку по последнему заряду? А если филзанет на последнем?
Интересно но природное ожидание непредвиденного пипца меня заставляет перемаркивать руны когда на них остается 10-15 зарядов.
Маршал (60157892)14 летИнквизитор
Inquisitor
Сообщений: 6208
Рег. 27.11.2009
23 октября 2017 18:20
Сообщение #20
Mirage,

Уже за 10 или за 15 зарядов тебе пишет при каждом реколу фразу "starting to fade". Я этой функцией пользуюсь в скриптах и еще ни разу не было такого, чтобы руны кончились. А при физле рекола заряды не тратятся.
Последние посетители (0):

 
Сейчас: 23 ноября 2024 01:55