1. Гость, если сервер для Вас недоступен - попробуйте добавить папку с клиентом игры в исключения антивируса и выполните проверку в Лаунчере. Ознакомьтесь с F.A.Q на форуме и нашим Telegram каналом: @mmoclassic

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

Тема в разделе "Гайды и F.A.Q.", создана пользователем Джолли, 19 июл 2019.

  1. Джолли

    Джолли Форумный аналитик Пользователь

    Сообщения:
    2.263
    Симпатии:
    886
    Баллы:
    83
    Я создавал тему по поводу возможности использования условных кликеров для комбинаций определенных в игре:
    https://pwclassic.net/forum/index.php?threads/Фастсвич-сетов-кликером-и-автопоты.1703/

    Ответ администрации:
    Так как 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. Расставить скиллы на панельке цифр примерно так:
    [​IMG]

    4 вещи на пение, затем 5-я ячейка - сам скилл, после 4 шмотки основных (на деф).

    2. Скачать AutoIT https://www.autoitscript.com/site/autoit/

    На самом деле на примере скрипта для игры можно понять принцип работы так называемых кликеров и потом использовать и на работе. Сам лично я несколько "скриптов" написал на работе на AutoIT, которые сильно помогают мне и моим коллегам. До этого я писал подручный софт на Delphi, но это уже программирование полноценное.

    3. Запустить игру. Я надеюсь вы играете в окне, так как в полноэкранном режиме будет чуть сложнее.

    4. Запустить файл Au3Info.exe или Au3Info_x64.exe (зависит от разрядности вашей винды) и открыть вкладку Mouse:
    [​IMG]

    После этого зажать левую кнопку мыши на Finder Tool и перетащить курсор с Finder Tool на первую ячейку со шмоткой на пение:
    [​IMG]

    В окне программы 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
    
    Как это работает

    В принципе все разжевано в скрипте, тем более там есть подцветка синтаксиса:
    [​IMG]

    Я остановлюсь на главном:

    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% легитным) и скрипты эти пишу только ради спортивного интереса.
     
  2. aloha

    aloha Новичок Пользователь

    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    сейчас бы какие то скрипты на автокликерах создавать, когда почти любая мышка за 300р с встроенной прогой для создания макросов
     
  3. Джолли

    Джолли Форумный аналитик Пользователь

    Сообщения:
    2.263
    Симпатии:
    886
    Баллы:
    83
    У меня есть и мыша такая A4 и клава G510, но суть же не банальном нажимании клавиш, а в небольшом уклоне в полезное простое программирование
     
  4. ШАМУРАЙ

    ШАМУРАЙ Житель форума Пользователь

    Сообщения:
    336
    Симпатии:
    118
    Баллы:
    43
    Очень круто, мне понравилось.
     
  5. smoke15963

    smoke15963 Новичок Пользователь

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    на месте админов я бы пермача на твой акк оформил.
     
  6. exXTaZzYy

    exXTaZzYy Активный участник Пользователь

    Сообщения:
    39
    Симпатии:
    8
    Баллы:
    8
    админы куда смотрят ? тоесть сторонние проги мы запрещаем , а тут овощи скрипты пишут на свап. Юпилот запрещен и прочий софт. Требую пермача аФФФтару
     
  7. exXTaZzYy

    exXTaZzYy Активный участник Пользователь

    Сообщения:
    39
    Симпатии:
    8
    Баллы:
    8
    джоль, а скрипт для бота напишешь ? будешь в массы толкать, а почему нет ? Я НАДЕЮСЬ АДМИН ПОНЯЛ, ЧТО ЭТО РОФЛ
     
  8. exXTaZzYy

    exXTaZzYy Активный участник Пользователь

    Сообщения:
    39
    Симпатии:
    8
    Баллы:
    8
    че мелочишься ? выложи уже тогда весь софт, который юзал...
     
  9. Джолли

    Джолли Форумный аналитик Пользователь

    Сообщения:
    2.263
    Симпатии:
    886
    Баллы:
    83
    Запрещен софт, который играет за тебя. Тут нет таких скриптов. Написаны все эти гайды в ответ на скрипты агусмера. Я получил одобрение админов. И более того, награды за гайды от ГМов. Писать ботов не рекомендую, за это реально банят.
     
  10. smoke15963

    smoke15963 Новичок Пользователь

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Любые изменения в игре, в том числе и скрипты запрещены. И от куда мне знать что ты не используешь запрещенные программы. Админы под контроль этого человека.
     
  11. Джолли

    Джолли Форумный аналитик Пользователь

    Сообщения:
    2.263
    Симпатии:
    886
    Баллы:
    83
    Вы бы хоть прочитали первый абзац. Там ссылка на официальный ответ PWClassic
     
  12. Kh0rne

    Kh0rne Форумный аналитик Пользователь

    Сообщения:
    1.642
    Симпатии:
    984
    Баллы:
    83
    Вообще странный какой то ответ. Типо мы понимаем что с помощью этого можно сделать бота, но не контролируем это со своей стороны. Соответственно если подобный скрипт начнёт летать гео, вы это не поймёте. Выглядит как просто погрозили пальчиком.
    P.s. к скрипту претензий нет. Просто автор сам пишет что можно из этого сделать бота при желании. А админы даже будут не вкурсе.
     
    Джолли нравится это.
  13. ШАМУРАЙ

    ШАМУРАЙ Житель форума Пользователь

    Сообщения:
    336
    Симпатии:
    118
    Баллы:
    43
    Пора просто уже понять, что на этой версии ботоводство не в промышленных масштабах ни принесёт никакой выгоды. Поэтому собственно тут это и не актуально.
     
  14. Kh0rne

    Kh0rne Форумный аналитик Пользователь

    Сообщения:
    1.642
    Симпатии:
    984
    Баллы:
    83
    Я на контракте, подбираю монетками, шмотом и дк около 100к за 20 минут убиения мобов. Сколько бабла я подниму поставя бота с утра и уехав на работу? Твой квест ожидание в 100окон нервно курит в сторонке
     
  15. ШАМУРАЙ

    ШАМУРАЙ Житель форума Пользователь

    Сообщения:
    336
    Симпатии:
    118
    Баллы:
    43
    На контракте вероятнее всего через час тебя кто-нибудь сольет, увы
     
  16. Kh0rne

    Kh0rne Форумный аналитик Пользователь

    Сообщения:
    1.642
    Симпатии:
    984
    Баллы:
    83
    Есть куча не контрактных .мобов-аналагов на пустых локах. Я просто привёл пример
     
  17. Джолли

    Джолли Форумный аналитик Пользователь

    Сообщения:
    2.263
    Симпатии:
    886
    Баллы:
    83
    Подходишь и жалуешься на чара через кнопку, прилетает ГМ и дает бан. Работает. ГМ и сам может в инвизе спалить в данже. Это ж не мыло, тут дают пермачи за дело.
     
  18. Kh0rne

    Kh0rne Форумный аналитик Пользователь

    Сообщения:
    1.642
    Симпатии:
    984
    Баллы:
    83
    Часто ты облетаешь окрестности условной дпп? Да даже если и пролетит кто-то, какая вероятность что нажмут кнопку? Ну бьёт чел мобов и бьёт. А сколько единовременно открытых инстансов на сервере? Ты думаешь 2 гма способны это контролировать? И я не говорю про то что не банят. Я говорю про то, что это не отслеживается. Получается админы не занимаются выявлением читеров. Их единственный инструмент в борьбе с этим - жалоба от игрока. На мой взгляд это халатность. Лучше уж вшить запрет на запуск с открытыми сторонними приложениями. Или отслеживать это как то. Это все лучше чем вообще ничего не делать пока не пожалуются
     
  19. Джолли

    Джолли Форумный аналитик Пользователь

    Сообщения:
    2.263
    Симпатии:
    886
    Баллы:
    83
    Бороться с читерами программными средствами онли - тратить деньги в холостую. Если уж бороться, то нужен комплексный подход. Античит. ГМы. Учет статистики каждого игрока (где стоит, насколько быстро зарабатывает экспу, итемы и деньги, сколько стоит на одном месте) и выявление экстремумов. Когда доход превышает ожидаемый намного. Либо чар зарабатывает 24/7. А потом перепроверить в живую. Ты серьёзно думаешь что на этой фришке настолько заморочатся? Это другие бюджеты. Сейчас достаточно приемлемый сервис в этом плане.
     
  20. Kh0rne

    Kh0rne Форумный аналитик Пользователь

    Сообщения:
    1.642
    Симпатии:
    984
    Баллы:
    83
    Ну мало мальский античит не требует тех бюджетов. Но повтыкает хоть какие то палки в колёса. Про защиту уровня пентагон никто и не говорит.
     

Поделиться этой страницей