Перейти к содержимому


Загрузка изображения на ipic.su:
Фотография

Гайд по AutoIT и быстрой смене шмоток для fast-каста


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Джолька

Джолька

    Папка Панда

  • Император
  • 14 113 сообщений
  • Регистрация: 29.08.2008
  • Пол (sex):Мужчина (man)
  • Город (city):Москва теперь =)
  • Наставник в AO:Не выбран

Награды

              

Отправлено 19 Июль 2019 - 22:56

Я создавал тему по поводу возможности использования условных кликеров для комбинаций определенных в игре:
 
Ответ администрации:

Если ваш AutoIT в один прекрасный день не будет стоять без вас и убивать монстров/летать гео/бегать через двери, то можете его использовать, до тех пор, пока это не запрещается правилами сервера.
В данный момент мы не контролируем использование подобных скриптов со стороны клиента и сервера.
 
Так как 101-й уровень я взял и мне скучно, то я набросал тут скрипт по быстрой смене шмоток для ускорения каста долгих скиллов, на моем примере - Саранчи друида.
 
Принцип действия
 
Скилл Саранча у Друида кастуется 3 секунды. Если перед тем как скастовать данный скилл вы оденетесь в специальный шмот на пение, то можно ускорить этот каст. А после того как время активации скилла прошло - можно легко одеваться обратно в "сильный шмот", где будет выше выживаемость.
 
Например, у меня в хеви-сете 18% пения. Это значит, что скилл Темное нашествие саранчи у меня кастуется в хеви-сете 3*0.82=2,46 секунды. Если бы я не поменял ПВО-кольца на кольца по 6% пения, то это было бы 3*0.94=2,82 секунды.
 
У меня есть 4 шмотки на пение - наручи капитана (6%), пояс и ожерелка по 6% и торс квестовый на 3%. Итого +21 пение. Или 39% суммарно. 3*0.61=1,83 секунды.
С одной стороне сильное увеличение скорости каста, с другой - скиллов с таким временем активации не так много. С другой - каждая доля секунды снижает шансы получить стан, сало или смертельный дамаг.
 
Но в целом скрипт я писал больше из спортивного интереса.
 
Как написать свой скрипт
 
Что нам нужно:
 
1. Расставить скиллы на панельке цифр примерно так:
kiss_101kb.1563564369.png  
 
4 вещи на пение, затем 5-я ячейка - сам скилл, после 4 шмотки основных (на деф).
 
2. Скачать AutoIT https://www.autoitscript.com/site/autoit/
 
На самом деле на примере скрипта для игры можно понять принцип работы так называемых кликеров и потом использовать и на работе. Сам лично я несколько "скриптов" написал на работе на AutoIT, которые сильно помогают мне и моим коллегам. До этого я писал подручный софт на Delphi, но это уже программирование полноценное.
 
3. Запустить игру. Я надеюсь вы играете в окне, так как в полноэкранном режиме будет чуть сложнее.
 
4. Запустить файл Au3Info.exe или Au3Info_x64.exe (зависит от разрядности вашей винды) и открыть вкладку Mouse:
kiss_10kb.1563564756.png  
 
После этого зажать левую кнопку мыши на Finder Tool и перетащить курсор с Finder Tool на первую ячейку со шмоткой на пение:
kiss_31kb.1563564811.png
 
В окне программы AutoIT Window Info появятся координаты точки, куда вы навели курсор. Эти данные нам нужны.
 
5. Создаем файл текстовый (у меня в примере это файл settings.jolly) и пишем на первой строчке координату X из п. 4 и на второй строчке координату Y.\
 
Это будут наши переменные $x0 и $y0
 
6. Запускаем редактор скриптов SciTE.exe из папки SciTE в корне программы AutoIT и создаем новый скрипт (Ctrl+N)
 
Сохраняем файл скрипта в удобную вам папку, туда же кидаете файл настроек из п.5.
 
В тело скрипта кладете следующий код:
;   ________________________________________________
; / \                                               \
;|   |  Скрипт быстрой смены вещей в Perfect World  |
; \_ |                                              |
;    |                                              |
;    |   by Джолька jolly.insane.su | джолька.рф    |
;    |                                              |
;    |                                              |
;    |               Copyright © 2019               |
;    |                                              |
;    |   ___________________________________________|___
;    |  /                                              /
;    \_/______________________________________________/
 
 
HotKeySet("+{F1}", "Checkposition") ; Проверяем по Shift+F1 задание координаты первой ячейки со шмоткой (курсор переходит в указанные координаты)
HotKeySet("+5", "FastSwitchAndCast") ; По Shift+5 выполняем скрипт быстрой смены шмота на пение и каста "долгого" скилла
 
 
; В А Ж Н О
HotKeySet("+{ESC}", "Terminate") ; Выключаем исполнение скрипта по Shift+ESCAPE
 
global $sLine, $x0 = 0, $y0 = 0 ; Объявляем переменные, координаты X и Y для первой ячейки со шмотом на пение
global $x, $y ; координаты мышки до нажатия комбинаций (куда вернуть мышку после завершения макросов)
 
      $hFile = FileOpen(@ScriptDir & '\settings.jolly', 0) ; Файл должен лежать в корне директории
        ; Читает построчно файл настроек, 1-ая строка = координата Х середины первой шмотки, вторая - координата Y
          $x0 = FileReadLine($hFile) ;координата Х
          $y0 = FileReadLine($hFile) ;координата Y
      FileClose($hFile) ;закрываем файл настроек
 
 
 
Func Checkposition() ; По нажатию на Shift+F1 проверяем корректность дефолтных координат
   if $y0>1 Then mousemove($x0,$y0) ;переводим мышку в первую ячейку со шмоткой, чтобы откалибровать позицию
EndFunc
 
Func FastSwitchAndCast() ; Функция смены вещей и каста долгого скилла
        ;Начинаем одевать 4 вещи на минус пение
        $mousecoord=MouseGetPos(); Читатаем в массив текущие координаты
        $x=$mousecoord[0];запоминаем координаты курсора
        $y=$mousecoord[1];
            $i=0
            mouseclick("left",$x0,$y0,1,0); 1-ая ячейка (left = левая кнопка мыши, $x0/$y0 - координаты куда переводить курсор, 1 - число кликов, 0 - задержка (скорость) движения мышки (0 = мгновенно, 100 - долго)
            $i=$i+33 ;33 = расстояние между ячейками в панели скиллов, я не стал делать цикл, так как так нагляднее
            mouseclick("left",$x0+$i,$y0,1,0); 2
            $i=$i+33
            mouseclick("left",$x0+$i,$y0,1,0);3
            $i=$i+33
            mouseclick("left",$x0+$i,$y0,1,0);4
            $i=$i+33
 
               ;Кастуем скилл
               $var1 = PixelGetColor($x0+$i,$y0) ; Запоминаем цвет пикселя на ячейке скилла
               mouseclick("left",$x0+$i,$y0,1,0);скилл
               sleep(1800); вынуждено вставляем 1,8 секунды, так как возможно цель слишком далеко
               $var2 = PixelGetColor($x0+$i,$y0) ; Запоминаем цвет пикселя ячейки скилла (если изменился, значит либо каст завершен, либо чар подлетел и может кастовать)
               $times=0;
                  if $var2=$var1 Then ; Защита от случая, когда кнопка стала темной, но скилл не сработал, так как все это время мы летели к цели
                    while ($var1 = PixelGetColor($x0+$i,$y0)) and ($times<250) ;пока не изменился цвет скилла (если он ушел в кулдаун - значит можно одеваться)
                        $times=$times+1 ; Считаем количество циклов
                        sleep(10);ждем 10 милисекунд
                        If $times > 250 Then ExitLoop ; Если прошло 10*250=2,5 секунд, то завершаем цикл, на случай зацикливания
                    wend
                  EndIf
 
            ;Заново одеваем толстый шмот
            $i=$i+33
            mouseclick("left",$x0+$i,$y0,1,0) ; 6
            $i=$i+33
            mouseclick("left",$x0+$i,$y0,1,0) ; 7
            $i=$i+33
            mouseclick("left",$x0+$i,$y0,1,0) ; 8
            $i=$i+33
            mouseclick("left",$x0+$i,$y0,1,0) ; 9
 
 
        mousemove($x,$y,0) ;возвращаем курсор обратно
 
EndFunc
 
 
Func Terminate() ; Завершаем программу
    Exit
 EndFunc   ;==>Terminate
 
; Запускаем бесконечный цикл, чтобы программа постоянно висела и не встала на паузу
While 1
   sleep(1)
WEnd
 
Как это работает
 
В принципе все разжевано в скрипте, тем более там есть подцветка синтаксиса:
kiss_61kb.1563565234.png
 
Я остановлюсь на главном:
 
1) Запустить скрипт можно по кнопке F5
2) Закрыть скрипт по сочетанию клавиш Shift + F1
3) По кнопке Shift+F1 можно проверить правильно ли указана начальная (первая) ячейка, мышка автоматом подведется к ней, иначе меняйте координаты в файлы настроек и перезапускайте программу/скрипт.
4) По кнопке Shift+5 будет непосредственно запущен макрос смены вещей, каст скилла и обратное одевание в деф-шмот. Я сделал несколько защит от дурака, но если вы будете дальше расстояния каста скилла - могут быть проблемы.
5) Правите скрипт под себя и компилируете в исполняемый файл Ctrl+F7 (сначала завершите исполнение текущего файла)
 
Итого
 
Как итог мы научились:
1. Определять координаты и цвет в нужной точке с помощью Windows Info
2. Биндить хоткеи и назначать их на выполнение функций.
3. Использовать локальные и глобальные переменные.
4. Загружать файлы с настройками (удобно, чтобы не компилировать под разные компы и разрешение каждый раз свой скрипт).
5. Двигать и кликать мышкой в нужных точках.
 
В следующий раз мы сделаем автопоты и попробуем баговать вар-скиллы. Если конечно вам интересна подобная тема.
 
p.s. Используйте скрипты только как средство автоматизирования определенных процессов (когда вы играете сами), а не для автоматической игры (когда вы фактически делаете бота). Ботоводство запрещено на данном сервере. Боты весьма легко палятся, так что не занимайтесь ерундой.
 
p.p.s. Сам я играю на обычном клиенте (люблю быть 100% легитным) и скрипты эти пишу только ради спортивного интереса.

Maria
You've gotta see her
Go insane and out of your mind © Blondie - Maria

[PW] Оборотень 100+. Основатель гильдии Insane и Faith.
[Aion.Ru] Клерик, 54+, Легат гильдии Insane

Гильдия это не всегда только друзья, гильдия это коллектив. Не переносите личные конфликты в масштабы гильдии. Если есть ради чего/кого остаться, то попробуйте остаться. Играйте в свое удовольствие, не позволяйте обидам лишать вас удовольствия игры в гильдии.

В нашей гильдии в случае конфликта кто ушел из ги, тот и виноват. Учитесь уживаться друг с другом.

Все фигня, главное, чтобы человек был хороший (ц) Джолли





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей

Яндекс.Метрика
Наши кнопки

Гильдийный счет (Яндекс.Деньги) 41001343732038

Огромное спасибо компании ЗЕНОН www.zenon.ru за отличный хостинг!

Любая перепечатка материалов форума insane.su - только с разрешения администрации или самих авторов.
В онлайн-издания перепечатка разрешена при указании ссылки на оригинал.