Получить текст из меню сервера., как?
Старший Прапорщик (2538576)9 лет
Ranger
Сообщений: 113
Рег. 19.02.2015
23 июня 2015 09:45
Сообщение #1
Вопрос опытным скриптерам.

Как получить текст из меню окна Quests в переменную?

На картинке красным, для примера, показан какой текст интересен:

Маршал (60157892)15 летИнквизитор
Inquisitor
Сообщений: 6208
Рег. 27.11.2009
23 июня 2015 12:07
Сообщение #2
У меня это в инфогампе выглядит таким образом:
   25] 40 Greater Heal Potion
   26] 40 Sewing Kit
   27] 40 Paralyze Field Scroll
   28] 40 Maps
   29] 40 Cut up Wyrm Leather
   30] 40 Chainmail Tunic
   31] 40 Red Tree Log
   32] 40 Bow
   33] 40 Cooked Horse Rib
   34] 40 Bamboo Chair
   35] 40 Cooked Salmon
   36] 1000 Fish Steaks
   37] Packed Nosferatu Set
   38] 40 Shoes
   39] 40 Blue Steel Ingot


Т.е. по сути с 25 по 39 строку после скобки убираешь пробел и до следующего пробела - это количество итемов.
Потом пропускаешь пробел и до конца строки - название итема для крафта.

Я думаю умельцы помогут. Там не так все просто и набор команд для работы весьма сложный, через чтение текста и преобразование его в реальные переменные, команды в таком скрипте используются, типа: val, mid, gumpid, gumptype, lastgump, eof, readln, writeln, safe call, formatstr, str, textclear, textprint, textopen. К сожалению не владею сейчас до конца всем этим, чтобы помочь. Но уверен, что Мираж, Зомби и многие другие владеют этим, чтобы сделать такой скрипт, как ты хочешь.
И, что более вероятно, уже есть такой скрипт и давно написан, который крафтит дейлики из гампа.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
23 июня 2015 12:19
Сообщение #3
Тут 3 решения
1) простой - вверху всех скриптом размещаешь var zakazall = 25 ; количество заказов в этот день. А в скрипте пишешь как то так:

2) спортивно пантовый - копай на yoko функцию GetWord. Она умеет выцеплять буквы и цифры. Можешь посмотреть в темах про антимакросы.
3) как то еще :)

У меня полуавтомат - я указываю на тот предмет что нужно сделать и он уже делает столько сколько просит игра.
Старший Прапорщик (2538576)9 лет
Ranger
Сообщений: 113
Рег. 19.02.2015
23 июня 2015 12:28
Сообщение #4
С переменной типа твоей zakazal я уже сделал и работает. Но надо еще вбивать номера вещей из списка для каждой профы, для этого классно было бы автоматом получить имя вещи...

В принципе, infogump берет это все из меню.
Но как я понял в журнал это не попадает.

Так вот вопрос, как в журнал это заслать или как забрать из окна инфогампа?

Попробовал изначально такой вариант, в if не заходит :(

sub MyInfoQuest()
    var NomerStroki25=0, TextStroki25="pusto"

    UO.DeleteJournal()

    uo.infogump()
    wait(1000)
    if uo.InJournal("25] ") then
        NomerStroki25 = uo.InJournal("25] ")
        TextStroki25  = uo.Journal(NomerStroki25-1)
        UO.TextPrint("zahodim v if")
    endif
    UO.TextPrint(TextStroki25)
end sub


пытаюсь взять строку 25] 40 Greater Heal Potion
Старший Прапорщик (2538576)9 лет
Ranger
Сообщений: 113
Рег. 19.02.2015
23 июня 2015 12:29
Сообщение #5
zahodim v if - не пишет
pusto - пишет
Старший Прапорщик (2538576)9 лет
Ranger
Сообщений: 113
Рег. 19.02.2015
23 июня 2015 13:16
Сообщение #6
Есть контакт!

sub MyInfoQuest()
    var NomerStroki25=0, TextStroki25="pusto"

    UO.DeleteJournal()

    uo.infogump()
    wait(1000)

    if uo.LastGump('text', 25) <> "0" then
        TextStroki25=uo.LastGump('text', 25)
        UO.TextPrint(TextStroki25)
    end if

end sub
Старший Прапорщик (2538576)9 лет
Ranger
Сообщений: 113
Рег. 19.02.2015
23 июня 2015 13:37
Сообщение #7
после доработки получил массив переменных:

40
Greater Heal Potion
Sewing Kit
Paralyze Field Scrol
Maps
Cut up Wyrm Leather
Chainmail Tunic
Red Tree Log
Bow
Cooked Horse Rib
Bamboo Chair
Cooked Salmon
Fish Steaks
Packed Nosferatu Set
Shoes


КРАСОТА!!! :crazy:
Старший Прапорщик (2591056)9 лет
Necromancer
Сообщений: 494
Рег. 9.02.2015
23 июня 2015 14:21
Сообщение #8
Мираж, у тебя в скрипте все waitmenu для каждого итема прописаны? Офигеть... А массив не выкинешь? :)
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
23 июня 2015 14:58
Сообщение #9
Да там ничего такого нет. Частые менюшки, остальное либо циферками либо ручками.

Собсно я обленился настолько что даже не добираю сырье - проще кинуть сразу много а потому выкинуть назад. Была идея чтобы оно само фаяло из меню но при туташном дифиците сырья и гонениях макросеров отказался в пользу - прилетел скрафтил, сдал, улетел.

2 Bulba - пошел по третьему пути? :yes:
Старший Прапорщик (2538576)9 лет
Ranger
Сообщений: 113
Рег. 19.02.2015
23 июня 2015 16:07
Сообщение #10
Цитата: Mirage
2 Bulba - пошел по третьему пути?


Mirage, сделал так:

1. обрабатываю меню quests
2. беру кол-во предметов нужное для крафта из меню quests
3. беру имя предмета, который крафтить из меню quests

4. дальше это впуливается параметрами в функции каждой профы (по имени делается нужный предмет)
- добирается/заменяется сломанный инструмент
- одевается + шмот
- чекается что есть в треше (добирается)
- в процессе добираются реги
- если надо докрафчиваются реги (wire, nail всякие)
- при перевесе складывается в мешок в доме
- выдается полный отчет о работе

с большего все уже работает, надо только кое что докосить/дотестить.
Старший Сержант (960341)8 лет
Dragonstalker
Сообщений: 516
Рег. 9.03.2016
30 сентября 2016 10:28
Сообщение #11
Спасибо Мираж, что нашел подходящую тему:)

Цитата: DeaTh
Уже подымал эту тему тут и получил от Зомби такой ответ. Но блин, с БСом топоров такая тема не сработает.
Axe (28 ingots) и Executioner`s Axe (28 ingots). Executioner`s стоит первый в списке и крафтит его, хотя сегодня по заданию просто Axe. По индексу выбирать не хочется, потому что уже натыкался на проблемы с этим(не послушал сразу, ага), а точно строку не могу указать, ибо не знаю как. Есть ли рациональное решение?

Цитата: Mirage
DeaTh,
Плохо ищешь ответы ;)
Пример меню крафтов. Последний символ это номер итема в меню.

Я же написал, что через индексы не оптимально как-то:) Крафтил я вчера лютни по чужому скрипту там стояла проверка по количеству дерева, но струны не учитывала. В итоге струны кончились и пока я курил у меня оказалось пол бэкпака каркасов часов. Также у меня нет ГМ крафтовых и наверное возможна ситуация, что во время выполнения крафта скилл подымется и на текущем индексе вылезет другой предмет, не?

Цитата: Mirage
ps Где то был скрипт на снятие с профайла количества ежедневных заказов. Если найду то скину. Если нет то идею я подсказал.

На стелсе я этот вопрос решил, а вот на инжекте не могу. Ну, точнее я решил его костыльно:

Sub GetGumpQuest(Index)
  UO.KeyPress('66')

  return UO.LastGump('text', Index)
end sub


Где на кнопке висит макрос Open -> QuestLog. По форуму поискал и нашел только под старый хелп гамп. А нажатие квест кнопки не могу. Есть идеи как реализовать?
Это также сюда перенесу с топика городских работ, ибо тут правильное место для обсуждения.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
30 сентября 2016 11:05
Сообщение #12
Костыли и есть :) Если решать через ухо то будет вот так:



Парни помоему не успели дописать командное открытие окна квеста. МОжно попробовать Хосана попросить оформить что то типо .quest может пойдет навстречу :)
Капитан (8608826)8 лет
Ranger
Сообщений: 519
Рег. 24.08.2016
30 сентября 2016 11:08
Сообщение #13
Mirage,
А если задать клик на кнопку по кордам?
Или инжа не умеет? Или по цвету? МОжно просто кнопку закрасить другим цветом и пусть по цвету кликает
Старший Сержант (960341)8 лет
Dragonstalker
Сообщений: 516
Рег. 9.03.2016
30 сентября 2016 11:14
Сообщение #14
Цитата: Mirage
Парни помоему не успели дописать командное открытие окна квеста. МОжно попробовать Хосана попросить оформить что то типо .quest может пойдет навстречу :)

Понятно. Благодарю:) Хосе вроде против скриптеров, не думаю что сделает в ближайшем будущем.
Цитата: Magnus
А если задать клик на кнопку по кордам?
Или инжа не умеет? Или по цвету? МОжно просто кнопку закрасить другим цветом и пусть по цвету кликает

А смысл? Это еще более костыльное занятие, чем нажатие одной кнопки с макросом в клиенте :)

Когда там уже форум инжи починят:(
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
30 сентября 2016 11:57
Сообщение #15
Magnus,
keypress и press имитируют нажатие кнопки в клиенте. Оно сработает и в фоне и в свернутом окне. Тыкать в точку экрана не удобно. Сдвинешь окно на пару миллиметров, свернул окно, загородил другим - результата не будет. Тык в цвет и координату хорошо случаях когда нужное окно завалено другими гампами - одновременно открывающимися но не видимыми. Тогда ластгамп собьется. Но против этого уже таблеточку придумали, но она навороченная.

ЗЫ поймаю Джусса спрошу за квест. Раньше не было актуально просто. Квесты запрашивались из хелпа а его тыкнуть можно как раз.
Последние посетители (0):

 
Сейчас: 23 ноября 2024 22:45