|
|
  |
Где ошибка? Пишите у кого мелкие вопросы, сюда! |
|
|
| bumer |
24.9.2012, 19:02
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
Играю в игру WoW, понадобилось мне как то автоматизировать прожатие клавиш, но не просто тупое долбление а с минимальной логикой и если нет цели... то авто стоп прожатие клавиш. Чтоб моно было початится (IMG: style_emoticons/default/smile.gif) В общем есть задумка а умения грамотно составить скрипт нет, опешу тут свою идею... и надеюсь что получится довести до ума.. Есть коротенький скрипты с проверкой на одну картинку и если есть соответствие прожатие Код set #handleWin findwindow (World of Warcraft) // найти окно вов set workwindow #handleWin set $a findcolor (260, 696 265, 699 1 1 (6866887-7701385) %arr 2) // условие if $a > 0 //проверка выполнения условия send 1 wait 4s end_if
таких кусков может быть несколько, ну для меня достаточно 6 кнопок (IMG: style_emoticons/default/smile.gif) Но вот проблема мне нужно чтоб эти скрипты управлялись еще одним, чтоб он их запускал а останавливались они сами после исполнения. Помогите пожалуйста! (IMG: style_emoticons/default/unsure.gif)  Скрипт управления другими 6 скриптами?  К примеру вот 6ть первых кнопок , на картинках нумерация 
|
|
|
|
|
|
| bumer |
24.9.2012, 20:31
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
Цитата(DarkMaster @ 24.9.2012, 20:03)  Так критична скорость обновления? Что мешает сделать простой столбик?
set $a findcolor
while $a > 0 if ... end_if if ... end_if if ... end_if set $a findcolor end_if
Вообще вовка мечта для пилотера. Там столько сказочных вещей в паре с API его можно сделать.
К сожалению пришлось отказаться от такого подхода, так как есть две вещи препятствующие этому. 1 Это ротация не статична, нужно жать для большого ДПС правильную последовательность активных кнопок и особо которые в крите подсвечены. 2 Разный ( значительный) временной интервал но очень важных усиливающих бафов. Как пример приведу Цитата set #handleWin findwindow (World of Warcraft) // найти окно вов set workwindow #handleWin set $a findcolor (30, 60 33, 63 1 1 (14999781-13424346) %arr 2) // условие if $a > 0 //проверка выполнения условия send 1 wait 200 send 2 wait 200 send 3 wait 300 send 4 wait 1500 send 1 wait 200 send 5 wait 200 send 4 wait 1500 send {f1} wait 20 end_if
Часто прожатия проходят не оптимальный момент времени, иногда просто на не активны... много сообщений об ошибочном нажатии кнопки. Нужно более разумный подход.
|
|
|
|
|
|
| DarkMaster |
24.9.2012, 20:43
|
          
Модератор UOPilot
Сообщений: 9.765
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29991
Пользователь №: 11.279

|
Цитата 1 Это ротация не статична, нужно жать для большого ДПС правильную последовательность активных кнопок и особо которые в крите подсвечены. Это решается простыми ифами, на крайняк флагами. Цитата 2 Разный ( значительный) временной интервал но очень важных усиливающих бафов. На самом деле это и есть разумный подход. Вы все равно в 1 момент не будете жать две кнопки, поэтому линейность скорее плюс. Посмотрите второй вариант тут https://forum.uokit.com/index.php?showtopic=22175Я бы делал именно так. Если ну уж совсем никак не хочется делать столбик, то сделайте подпрограммы и вызывайте уже их. Несколько вкладок, которые будут очень часто останавливаться и возобновляться верный шаг к проблемам. Есть у пилота грешок с подобными действиями. Да и смысла тут раскидывать по вкладками никакого, если честно.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна.
|
|
|
|
|
|
| bumer |
25.9.2012, 20:46
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
Ну в принципе воспользовался данным советом о простой линейной структуре, она проще и ифами действительно получилось избегать ошибочных пожатий. Но к сожалению топ ДПС этим методом выжить у меня не получилось. Допиливал вот до такой структуры: Цитата set linedelay 1 // энтервал set #handleWin findwindow (World of Warcraft) // найти окно вов set workwindow #handleWin set $s findcolor // проверка на бой while $s > 0
set $a findcolor // проверяется кнопка на активность while $a > 0 send 1 wait 1600 end_if
...
set $d findcolor while $d > 0 send 6 wait 1600 end_if
end_if
Не как не могу сообразить как бы половчее попробовать всеж использовать команды start_script, stop_script есть призрачная надежда улучшить показатели ДПС хоть чуть чуть... Цитата в начале скрипта напишите set linedelay 1
ок
|
|
|
|
|
|
| EL-GReeN |
28.9.2012, 19:37
|

    
Journeyman
Сообщений: 474
Регистрация: 18.7.2011 Группа: Пользователи Наличность: 0 Из: Россия
Пользователь №: 13.815
Возраст: 32

|
Цитата(bumer @ 28.9.2012, 16:01)  В общем дело обстоит так, ручками тыча мне удается выжить 17к, оптимизируя скриптом 21к ДПС а вот платной прогой аж 30к выжимает и это все одним и тем же персонажем, одни и те же спелы только дело в оптимизации прожатий и минимизации простоях КД. Слишком разительна разница, вод и мои душевные муки... А как отключить отображение хода скрипта, может это как то повлиять на ДПС.
Если задачу осознать в общем трудно можно ее записать построчно, то есть на каждую строку действие + состояние всех кулдаунов, эффектов и прочего что там есть, когда будет готов этот идеальный список действий по нему можно писать скрипт, в общем алгоритм нужен на эти 30к дмг. пс ДПС - damage per second
--------------------
|
|
|
|
|
|
| DarkMaster |
28.9.2012, 19:39
|
          
Модератор UOPilot
Сообщений: 9.765
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29991
Пользователь №: 11.279

|
я бы вообще посоветовал поступить очень хитро, но придется повозиться. Посколько вов имеет очень обширный открытый api, в том числе с возможностью рисовать гуй, то было бы логичным следующее: 1) http://www.wowwiki.com/API2) http://www.wowwiki.com/Events_A-Z_%28Full_List%293) Набрасываем аддончик, который будет у нас детектить откаты скилов. 4) Прикручиваем гуй в виде простых цветных прямоугольничков, которые будут менять цвет при (не)доступности скила. 5) Пилот ориентируясь по прямоугольникам протыкивает скилы. Вариант второй. Берем полоску своего кастинг бара, делаем реакцию пилота на завершение каста. Вов позволяет нажать скил ДО окончания каста и он будет скастован. Что-то вроде очереди. Возможно будут небольшие проблемы с инстантами, если они есть. Вариант третий. Флудим следующий каст во время предыдущего каста. Флудим жестко. Каст все равно не прервется. Смотрим в другую сторону. В чем разница действий? Возможно сам алгоритм castsequens'а немного иной. Порядок скилов точно аналогичен? Я бы очень посоветовал просто сесть и посмотреть в чем разница поведения чара. Такую огромную разницу в дпсе на одних задержках схватить не реально. // Варианты 2 и 3 выдадут бОльший дпс, вариант 1 очень удобен в работе и гибок.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна.
|
|
|
|
|
|
| bumer |
30.9.2012, 10:55
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
В игре WoW вели рамдом поиск и создание групп для совместного прохождение "подземелий". Так вот очень досаждает что у меня окошко приглашения выходит и ожидает моего потверже ровно 30 секунд, при том ждать приходится совершенно разное время, от 10 до 30 минут, не подтвердить или проглядел то выкидывает из очереди и опять надо ждать 30 минут. Все время седеть и пялится в экран просто не реально, можно ли сделать реакцию в скрипте, чтоб при появлении окна приглашения, пожималась кнопка мышкой о моем согласии и проигрывалась мелодия, чтоб я подошол к компу? Ну начала скрипта обычная, находим око с игрой: Цитата set linedelay 1 // энтервал set #handleWin findwindow (World of Warcraft) // найти окно вов set workwindow #handleWin set $a findcolor // проверяется окно приглашения if $a > 0 Left 430, 471 // тычек мышкой по кнопке alarm wait 1000 alarm // а вот тут какая то функция для проигрывания мп3 файла, как сделать не знаю! end_if
вот такое окошко с приглашением.  а это око ожидания (IMG: style_emoticons/default/blink.gif) 
|
|
|
|
|
|
| bumer |
30.9.2012, 15:59
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
Цитата(DarkMaster @ 30.9.2012, 11:46)  Финдколор заменить на if в нескольких точках. Вместо мп3 используй wave и команду alarm.
Как ещё можно воспроизвести звук из файла, на команду alarm комп молчит, пробовал и в корень с пилотом файл с звуком положить.. результата нет (IMG: style_emoticons/default/huh.gif) При попытки запуске просто: Цитата alarm player.wav end_script
Вылазит окошка пилота "Клиент мертв"
|
|
|
|
|
|
| bumer |
30.9.2012, 20:03
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
Цитата(DarkMaster @ 30.9.2012, 19:17)  сними галку "при закрытии клиента приостанавливать скрипт".
Запустил "винамп" у него есть горячие клавиши, настроил что при нажатие одновременно трех проигрывается звуковой файл. Теперь только надо понять как сделать чтоб пилот прожимал сочитане 3х клавиш (IMG: style_emoticons/default/blink.gif) Цитата sendex {Ctrl}{Alt}{Insert}
почему то не работает, не нажимает одновременно все 3ри клавиши.
|
|
|
|
|
|
| bumer |
30.9.2012, 21:25
|
   
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998

|
Цитата(DarkMaster @ 30.9.2012, 20:56)  зачем вы страдаете этим маразмом? alarm или alarm имя_файла
.wav писать не надо.
не работает alarm у меня, даже через батник exec не выполняется, всё это просто удалено с ОС Поэтому я просто применил Цитата sendex ^@m end_script
+ 1. player - Winamp и у меня винамп в нужный момент стал проигрывать мелодию (IMG: style_emoticons/default/smile.gif)
|
|
|
|
|
|
| Baboon |
2.10.2012, 11:19
|

Registred
Сообщений: 6
Регистрация: 2.10.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.343

|
что делаю не так? строчка: Цитата sendex @{End} по идеи должна выделить всю строку в блокноте, но вместо этого курсор просто перемещается в конец строки. подскажите, что делаю не так. команды: Цитата sendex ^{v} sendex ^{с} работают прекрасно.
|
|
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|