Ищу обучающие ресурсы скриптингу на Yoko Injection ! |
Ищу обучающие ресурсы скриптингу на Yoko Injection ! |
22 января 2017 09:31
Сообщение #21
|
|
Передать можно через глобальную переменную, пример: ; запись в глобальную переменную 'Count' строки со значением '20' sub test1() UO.SetGlobal('Count', '20') end sub ; внешняя передача параметра в макрос sub test2(Name, Value) UO.SetGlobal(Name, str(Value)) end sub вызов: ,exec test2#'Count'#20 ; извлечение значения из глобальной переменной sub test3() var Count = val(UO.GetGlobal('Count')) UO.Print('значение глобальной переменной = ' + UO.GetGlobal('Count')) UO.Print('значение числовой переменной = ' + str(Count)) end sub |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
22 января 2017 10:35
Сообщение #22
|
Спасибо ! |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
23 января 2017 09:40
Сообщение #23
|
Как принудительно указать нужный предмет для крафта. У меня почему то ищет по первому совпадению части строки и не ждет полного. В этом случае почему то крафтит lesser potion... UO.WaitMenu('What','Mana Refresh Potion') |
|
|
|
23 января 2017 10:19
Сообщение #24
|
|
В названии можно указать кол-во предметов, требуемое для изготовления. Пример можешь посмотреть ТУТ |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
23 января 2017 11:22
Сообщение #25
|
Нашел твой пример UO.WaitMenu('Blacksmithing', 'Weapon', 'Weapon', 'Fencing', 'Fencing', 'Spear (32') , но совершенно не могу понять синтаксис. На мой предмет нужно 12 логов и 4 nails. Пробую по разному:UO.WaitMenu('Carpentry','Furniture','Furniture', 'Chairs', 'Chairs', 'Chair(12')) UO.WaitMenu('Carpentry','Furniture','Furniture', 'Chairs', 'Chairs', 'Chair(12)') И множество других вариантов. Код парсится, но ничего не происходит. |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
23 января 2017 12:10
Сообщение #26
|
Engelos, Уже несколько раз возникал вопрос :) Цифрами можно указывать позицию. UO.WaitMenu('What','(3)') ps Spear (32 <--- это начало название из меню. Spear (32 iron ingot) например. Следовательно закрывающая скобка не нужна. 'Spear (32' |
|
|
|
23 января 2017 13:08
Сообщение #27
|
|
Mirage, Указывать позицию не лучший вариант, при наличии и кол-ва разных ресов позиция будет меняться. Цитата: Engelos Нашел твой пример sub Spear() return CraftOrder("'Blacksmithing' 'Weapon' 'Weapon' 'Fencing' 'Fencing'", "Spear", 0x0F62, 0x1BEF, 32) end sub Sub CraftOrder(Menu, Name, Type, Res, CountRes) . . . . Blacksmithing(Menu + " '" + Name + ' (' + Str(CountRes) + "'", Res, CountRes) then . . . . end sub Sub Blacksmithing(Menu, Res, CountRes) . . . . UO.Exec('waitmenu ' + Menu) . . . . end sub В конечном итоге в макрос Blacksmithing попадет строка "'Blacksmithing' 'Weapon' 'Weapon' 'Fencing' 'Fencing' 'Spear (32'" и будет установлена ловушка на крафт меню UO.Exec("waitmenu 'Blacksmithing' 'Weapon' 'Weapon' 'Fencing' 'Fencing' 'Spear (32'"), внешний вызов WaitMenu использую для того чтобы вытянуть все параметры в одну строку. |
|
|
|
23 января 2017 13:25
Сообщение #28
|
|
Цитата: Engelos UO.WaitMenu('Carpentry','Furniture','Furniture', 'Chairs', 'Chairs', 'Chair(12')) UO.WaitMenu('Carpentry','Furniture','Furniture', 'Chairs', 'Chairs', 'Chair(12)') И множество других вариантов. Код парсится, но ничего не происходит. Лишние скобки и забыл пробел, так правильно: UO.WaitMenu('Carpentry', 'Furniture', 'Furniture', 'Chairs', 'Chairs', 'Chair (12') |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
23 января 2017 13:33
Сообщение #29
|
Zombie, для тинкера алхимии и боукрафта ресов можно взять загодя побольше, а кузнеца и портного я особо не сдаю по этому мне не страшно если меню соскочит. Тем более при крафте 15-25 предметов можно и последить и терминатнуть если что. Если бы крафты были по овер 100500 при наличии 65000*10^10 ресурсов тут бы да - требовалось более продуманно строить менюшки. Я где то тут уже выкладывал своё крафт меню: |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
30 января 2017 12:04
Сообщение #30
|
Есть ли какая нибудь команда принудительной остановки работы скрипта ? |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
30 января 2017 12:50
Сообщение #31
|
Странно, почему то в хелпе не нашел хотя думал что есть. uo.exec("Terminate all") sub Terminate_2(); завершит только указанные скрипты uo.Exec('terminate Lumberjacking') uo.Exec('terminate Reconnect') end sub sub Terminate_all(); завершит все работающие скрипты. uo.Exec('terminate all') end sub Еще есть вариант поставить на паузу скрипт. |
|
|
|
Сообщений: 6208 Рег. 27.11.2009 |
30 января 2017 16:58
Сообщение #32
|
Цитата: Mirage для тинкера алхимии и боукрафта ресов можно взять загодя побольше, а кузнеца и портного я особо не сдаю по этому мне не страшно если меню соскочит. Тем более при крафте 15-25 предметов можно и последить и терминатнуть если что. Если бы крафты были по овер 100500 при наличии 65000*10^10 ресурсов тут бы да - требовалось более продуманно строить менюшки. Я где то тут уже выкладывал своё крафт меню Не в этом дело. Позиция может смещаться, вот стою я в амз или нет. Уже позиция скроллов смещается, т.к. некоторые в амз пропадают из крафта. Есть у меня в паке только логи - это будет одно меню крафта тинкера и карпы, а если еще и инги будут лежать, там уже совсем другой набор предметов будет. Конечно, когда делаешь для себя, знаешь алгоритм и принцип работы своего скрипта, то можно обойтись и пилотом с кликами по координатам.) А чтобы дать кому-нибудь в пользование, приходится учитывать больше возможных ситуаций, либо объяснять особенности своих скриптов, типа в амз не стоим, если крафтим тинкер из ингов, логи из пака выкладываем и т.п.) |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
31 января 2017 10:01
Сообщение #33
|
Пытаюсь разобраться с запукой стрел и регов. Сразу же возникла проблема. Какой командой это делается ? Сделал бай лист на закупку 50 стрел (ttt) и даю команду: ,buy ttt. Он ничего не покупает, просто открывает менюшку вендора с двумя строчками сдать скролы и посмотреть товар. Хорошо, прописываю вручную гамп и повторяю команду. На выходе получаю надпись от инжекта "1 types of items bought", а от игры You are buying too fast и ничего не покупается. Пробовал всунуть команду set buydelay, но ничего не изменилось. Как с этим работать ? |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
31 января 2017 10:28
Сообщение #34
|
Что то нахимичил ! Задержки лишние, но уже начало работать. Единственное пришлось галочку inverse buylist убрать. sub Cooking() UO.Set('buydelay', 600) wait (100) UO.WaitGump(3) wait (1000) UO.Buy('ttt') end sub |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
31 января 2017 13:48
Сообщение #35
|
инвертировать надо было на 14 версии. На 15 починили эту штуку так что галка на последнем инжекте не нужна. байделей лучше больше поставить. Я бы даже около 3000 выставил. первый wait не нужен а второй можно 100 поставить. |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
1 февраля 2017 15:51
Сообщение #36
|
Есть где то описание (хотя бы краткое) основных команд и возможностей инжекта ? Вот к примеру кусочек чужого кода, он возвращает количество зарядов на руне. Но как он работает, какие аргументы принимает ? Я нагуглил, что Val возвращает числа из строки. Что тогда леает right ? Обрезает часть строки на которую следует делать проверку ? return Val(Right(UO.GetFoundedText(), Len(UO.GetFoundedText()) - Pos(UO.GetFoundedText(), '('))) П.С. На данный момент два вопроса, простой и не очень. Пытаюсь что то придумать, что бы скрипт не глючил из за волд сейва. 1) Как поставить скрипт на паузу, и можно ли это сделать из паралельного потока. Идея следующая. С частотой в 0.3 секунды в паралельном скрипте считываю журнал на наличие обьявления сейва, если нахожу - ставлю паузу, через 30 секунд востанавливаю. Не знаю, как тут работает пауза, и подходит ли такой вариант, но хочу попробовать. 2) Есть ли какой то другой, более адекватный способ обезвреживания world save ? |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
1 февраля 2017 17:23
Сообщение #37
|
Самый простой способ вставить проверку в чеклаг через if сообщение сейва ждать 10-15 секунд и все. Val str right это языковые операторы. язык очень близок к визуал бейсику. Можно по нему конечно книжку прочитать но имхо значительно проще будет тупо зашариться по форуму и поискать примеры применения непонятностей. То что ты привел в строке проверки конды это осовременненый вариант на основе новых команд. ПРимерно как было с грабом и мувеитемом. Мувеитем это тот же граб по суте своей но еще с несколькими добавлениями. Кому с чем проще тот тем и пользуется. |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
1 февраля 2017 18:01
Сообщение #38
|
Эм, что за checklag и как им пользоваться ? П.С. Стелз клиент используется только для скриптинга ? Или на нем и играть можно полноценно ? Там вроде под него большой турториал есть, может действительно попробовать. |
|
|
|
Сообщений: 3319 Рег. 19.11.2013 |
1 февраля 2017 20:14
Сообщение #39
|
Играть и на голом клиенте можно :) Другое дело что ты хочешь от игры и сколько ты этому хотению готов уделять времени сил и денег. Чеклаг вспомогательная процедура проверки лага (что удивительно, правда? ) более подробно угадай где написано? ;) |
|
|
|
Сообщений: 305 Рег. 19.12.2016 |
2 февраля 2017 02:37
Сообщение #40
|
В турториале этого нету, нашел несколько вариантов в гугле с обьяснениями, но не тем не менее не понял как его использовать. Перед каждым действием пихать что ли эту проверку ? |
|
|
|
Сейчас: 23 ноября 2024 13:53 |