Здравствуйте, гость ( Вход | Регистрация )

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Uopilot В Троецарствии, Опыт использования UOPilot для автоматиз
Destruction
сообщение 30.7.2009, 5:45
Сообщение #21


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Что касается конкретно троецарствия..

Довольно-таки давно меня просили нашаманить для него что-нибудь вроде бота, на что я разумеется успешно забил..

Однако успел поковыряться в том, что есть и посмотрел так сказать "протокол".

Хотелось бы отметить - что механизмами защиты от бот-программ сие чудо не оснащено (во всяком случае не было с полгода или даже год назад) и при самых не глубоких познаниях протокола HTTP и практически любого языка программирования - можно без особого труда наваять программку которая будет на порядок эффективнее.

Думайте ;-)


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Dark Portal
сообщение 30.7.2009, 6:54
Сообщение #22


*

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



Цитата
можно без особого труда наваять программку которая будет на порядок эффективнее.

если знания минимальные, приходится по нескольку часов сидеть над одной проблемой ...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tric
сообщение 30.7.2009, 11:28
Сообщение #23


**

Neophyte
Сообщений: 21
Регистрация: 20.5.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 11.875
Возраст: 25



Цитата(Dark Portal @ 29.7.2009, 23:49) *

Каким скриптом нужно задать автоматический поиск цели ?
И каким скриптом можно сообщить программе о завершении цикла (при определенных условиях) ?
И еще, на каком разрешении работает твой скрипт ?

Скрипты все(кроме скрипта на производство продукции) под разрешение 1024Х768 16 bit цвета.

Каким скриптом нужно задать автоматический поиск цели ?
Хмм, в моем понимании скрипт это собственно одна программа действий для пилота.
Соответственно я тут опубликовал скрипт на охоту, который состоит из следующих блоков:
переход в режим охоты.
Поиск цели и атака(3 вложенных друг в друга цикла)
бой

Опубликовал также скипт на соместную охоту, это когда один нападает, а остальные вмешиваются и помогают добить(охота на доргосов/шершней убиц/дюжих мишек)
он состоит из 2х блоков:
слежение за сообщением о нападении "застрельщика"
и блок боя такой же как в скрипте охоты


И каким скриптом можно сообщить программе о завершении цикла (при определенных условиях) ?Я думаю вопрос поставле не верно. Операторы break и goto позволяют выйти из любого цикла. А еще цикл может быть условным while или просто условие в цикле проверять с помощью if. Состояние окна игры можно проверить единственным образом- по цвету пикселя специфической области для данного состояния.
Для боевого режима характерно наличие рамки, для охоты полос прокрутки, в других режимах есть другие специфичные только для них характерные элементы или их состояния. Вот точку на таких элементах мы и проверяем, чтобы определить перешли ли мы в нужный режим или шляемся невесть где
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tric
сообщение 30.7.2009, 14:36
Сообщение #24


**

Neophyte
Сообщений: 21
Регистрация: 20.5.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 11.875
Возраст: 25



Так как раз за разом мне задают одни и теже вопросы по настройке скрипта охоты то попробую обобщить выдаваемые мной рекомендации в этом посте чтоб они были доступны для всех.
И так ваши действия.
  • Копируете последнюю версию скрипт для охоты, и вставляете его в свой пилот.
  • Переводите клиент игры в полноэкранный режим (f11) и сворачиваете чат(f7 2 раза)(пожно и не делать но тогда у вас область поиска будет меньше и зону охоты задавать будите сами (IMG:style_emoticons/default/smile.gif))
  • Привезываете UOPilot к окну Троецарствия нажав Ctrl-A над окном игры
  • Выставляем горячие клавиши остановки скрипта на закладке "еще" Pilot'a , не забываем так же поставить галку "включить горячие клавиши"(а то мало ли чего)
  • Вот теперь можно пускать скрипт
Теперь возможные распространенные проблемы:
В: перешел в охоту, находит цель но не нападает
О: как выяснилось даже установка идентичного разрешения и глубины цвета не делает скрипты 100% переносимыми(у меня между моими виртуальными машинами скрипты без проблем копируются, но не всем так везет (IMG:style_emoticons/default/sad.gif))
Это значит что у вас не совпадает цвет вот в этом условии с тем что у меня
if 399, 118 3243412 //проверка не ткнули мы еще на жертву, можно совместить с проверкой нужный ли это нам объект охоты
//тыкаем чтоб атаковать по кнопке атака
Move 409, 178 abs
KLeft 409, 178 abs
break 2
end_if
Вам надо вставить свои координаты и свой цвет вместо 399, 118 3243412 . Для получения нужных координат и цвета переходим в охоту, выделяем моба, и ждем 10 секунд. Кнопка "Атака" (Пиктограмма Топор) сначала будет мерцать а потом просто гореть ярко, вот теперь наводим курсор на лезвие топора и получаем цвет и координаты(у лезвия самый стабильный цвет) ЕЩЕ РАЗ ОБРАЩАЮ ВНИМАНИЕ!!!! ВО ВСЕХ УСЛОВИЯХ (if, while ) ИСПОЛЬЗУЮТСЯ ОТНОСИТЕЛЬНЫЕ КООрдинаты( левая кнопка с координатами)

В: На цель напал но поиск цели не прекратил!
О: Не срабатывают вот эти условия
while_not 370, 74 9222895 //проверка наличия рамки боевого режима по одной из точек на ней
и еще вот тут точно такое жеусловие
if 370, 74 9222895// на случай если в момент паузы была атака или случайно дважды кликнули при поиске цели(детектор боевого режима короче, идентифицируем по наличию рамки боя)
break 2
end_if

для замены координат и цвета на свои нападаем на моба(лучше 1 ого уровня)
подводим мышь на рамку окружающую экран боя и определяем относительные координаты и цвет, вот ими то и заменяем координаты и цвет в этих условиях
В: Моба добил, но продолжает долбить по кнопкам ударов
О: Не срабатывают вот это условие блока боя while_not 464, 215 1205
здесь координаты и цвет точки из надписи на кнопке выход в сообщении"ВЫ ПОБЕДИЛИ"/"ВЫ ПРОИГРАЛИ"
Определите и вставте свои координаты и цвет.

Пока вроде все, буду дополнять помере появления новой информации
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tric
сообщение 16.9.2009, 0:50
Сообщение #25


**

Neophyte
Сообщений: 21
Регистрация: 20.5.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 11.875
Возраст: 25



Вот скриптик с воскрешением для охотя на поляне мастерства(Артания), цель не только опыт и аповые деньги мульта, но и обереги неофита. Условия использования те же.
Сдесь применяються 3 макроса: первый, FromPolanaToLager.mac переходит в режим локи и переходит в лагерь новобранцев
Второй, FromLagerToPolana.mac возвращает мульта в поляну матерства, Трейтий, WeaponRepair_Polana.mac макрос ремонтирует оружие (IMG:style_emoticons/default/smile.gif) Но для начала можно обойтись без него. Эхх жаль файлы приложить не могу (IMG:style_emoticons/default/sad.gif)

Код

set #deadcount 0
set #weaponLim 14
:begin
Move 79, 45   abs
KLeft  79, 45   abs
wait 500
//??????? ? ?????
Move 883, 87 abs
double_KLeft 883, 87 abs
wait 6000
set #gotoBegin 0
set #attackFiled 0
//attempt to attack
while_not 323, 73 9223919
    set #errorclickCounter 0
    for #i 200 850 120
        //turn to south/west/east
        Move 226, 202 abs
        KLeft 226, 202  abs
        wait 1000
         Move 745, 245   abs
         KLeft  745, 245  abs
        set #im #i - 35
        set #ip #i + 35
        for #k 250 680 30  
              if 370, 74 9222895
               break 2
             end_if  
             if_not 886, 110 3080    
                     Move 200, 46   abs
                     KLeft 200, 46   abs
                     wait 100
                      KLeft 199, 46   abs
                      wait 100
                    Move 79, 45   abs
                    KLeft  79, 45   abs
                    wait 500
                    set #errorclickCounter #errorclickCounter + 1
                    if #errorclickCounter > 3
                        set #gotoBegin 1
                        break 3
                    end_if
                    continue
            end_if
            set #errorclickCounter 0
            Move #im, #k abs
            KLeft  #im, #k abs
            Move #i, #k abs
            KLeft  #i, #k abs
            Move #ip, #k abs
            KLeft  #ip, #k abs        
         if 399, 118 3243412
                Move 409, 178 abs
                KLeft  409, 178 abs
            break 2
         end_if
    end_for
end_for
wait 10000
set #attackFiled #attackFiled + 1
if #attackFiled > 3
    CALL ressurect
    goto begin
end_if
end_while
if #gotoBegin = 1
    goto begin
end_if
//battle
set #attackFiled 0
set #counter 0
while_not 553, 251 165
        Move 449, 403  abs
        double_KLeft 449, 403  abs
        wait 500
        Move 405, 407  abs
        double_KLeft 405, 407 abs
    set #counter  #counter + 1
    Wait 5000
end_while
//ressurection
wait 3000
if 627, 226 1205
CALL ressurect
set #deadcount #deadcount + 1
wait 3000
    if_not #deadcount < #weaponLim
        macro_load "c:\macros\WeaponRepair_Polana.mac"
        macro_play 1
        set #weaponLim #weaponLim - 1
        if #weaponLim < 2
            goto end
        end_if
    end_if
else
set #timeot #counter  *  1000
wait #timeot
end_if
goto begin
:end
end_script

proc ressurect
macro_load "c:\macros\FromPolanaToLager.mac"
macro_play 1
if 781, 278 181
     Move 745, 245  abs
    double_KLeft 745 245  abs
    wait 500
    Move 812, 317  abs
    KLeft 812, 317  abs
    wait 15000
    Move 745, 245  abs
    double_KLeft 745 245  abs
    wait 500
end_if
macro_load "c:\macros\FromLagerToPolana.mac"
macro_play 1
end_proc


А вот скриптомакросное решение которое позволяет зарегить мульта и запустить макрос, а через 4 часа забрать готовенького в городе
макросы применяються для взятия и сдачи квеста, перехода между локациями, использования предметов, тоесть те действия где без проверки условия можно обойтись
Код

if_not 16, 668 2179385
    MOVE 772, 606 ABS
    LEFT 772, 606 ABS
end_if
while_not 16, 668 2179385
sendex {f7}
wait 500
end_while
macro_load "c:\macros\introduction.mac"
macro_play 1
wait 3000
macro_load "c:\macros\gotocity.mac"
macro_play 1
wait 5000
for #i 0 50 1
    CALL ohota
end_for
goto end
macro_load "c:\macros\SdachaShakalov.mac"
macro_play 1
wait 5000
for #i 0 50 1
    CALL ohota
end_for
macro_load "c:\macros\SdachaMurovjov.mac"
macro_play 1
wait 5000
for #i 0 50 1
    CALL ohota
end_for
macro_load "c:\macros\SdachaTrutney.mac"
macro_play 1
wait 5000
:end
for #i 0 700 1
    CALL ohota
end_for
end_script

proc ohota
:begin
//??????? ? ?????
Move 79, 45   abs
KLeft  79, 45   abs
WAIT 500
Move 883, 87 abs
double_KLeft 883, 87 abs
wait 6000
set #errorclickCounter 0
//attempt to attack
while_not 370, 74 9222895
// if_not 621, 111 206    
    for #i  400 650 100
               //turn to south/west/east
                Move 200, 168  
                KLeft 200, 168  
                wait 1000
             Move 737, 244  abs
             KLeft  737, 244  abs
             set #im #i - 35
             set #ip #i + 35
        for #k 200 600 20
            if_not 885, 110 3080        
                       Move 230, 45    abs
                    KLeft  230, 45    abs
                    wait 500            
                    Move 79, 45   abs
                    KLeft  79, 45   abs
                    wait 500
                    set #errorclickCounter #errorclickCounter + 1
                    if #errorclickCounter > 3
                        goto begin
                    end_if
                    continue
            end_if
            set #errorclickCounter 0
            Move #im, #k abs
            KLeft  #im, #k abs
            Move #i, #k abs
            KLeft  #i, #k abs
            Move #ip, #k abs
            KLeft  #ip, #k abs
            if 399, 118 3243412
                Move 409, 178 abs
                KLeft  409, 178 abs
            break 2
         end_if
         if 370, 74 9222895
           break 2
         end_if
    end_for
end_for
wait 10000
//else
//goto begin  
//end_if
end_while
//battle
set #counter 0
while_not 534, 249 165
        Move 449, 403  abs
        double_KLeft 449, 403  abs
        wait 500
        Move 405, 407  abs
        double_KLeft 405, 407 abs
    set #counter  #counter + 1
    if #counter > 9
        break 1
    end_if
    Wait 5000
end_while
end_proc
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Доця
сообщение 17.11.2009, 12:08
Сообщение #26


*

Registred
Сообщений: 7
Регистрация: 11.11.2009
Группа: Пользователи
Наличность: 0
Из: Украина
Пользователь №: 12.210
Возраст: 20



(IMG:style_emoticons/default/cool.gif) А КТО МОЖЕТ НАПИСАТЬ СКРИПТ ДЛЯ ЛОВЛИ РЫБЫ??? ИЛИ КАК ЭГО НАПИСАТЬ ПОДСКАЖИТЕ ПРОШУ


--------------------
2.5 – Запрещено использование в качестве “аватара” или “фотографии” изображения или анимацию, содержащую ненормативную лексику, хамство и личные оскорбления участников форума и, в особенности, сотрудников проекта, сотрудников администрации шардов, сцены насилия (в том числе призывы к насилию), элементы эротики, порнографии, а также все, что является нарушением УК РФ (высказывания расистского характера, призывы к свержению власти насильственным путем, разжигание межнациональной розни, унижение достоинства лиц того или иного пола или сексуальной ориентации и т.д.).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tric
сообщение 17.11.2009, 12:54
Сообщение #27


**

Neophyte
Сообщений: 21
Регистрация: 20.5.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 11.875
Возраст: 25



На мой взгляд идеи те же что и для автобоя, только область обклика должна быть согласно изгибов реки.

Тоесть смысл такой что мы вбиваем поокдинаты точек где река совершает изгиб в массив.
Далее алгоритм в цикле двигается от точки к точке обкликивая области вокруг промежутоных и поворотных точках. В поворотных точках пересчитываются приращения и цикл повторяется.

Как только ткнули на рыбу, у нас ярко загорается кнопка рыбалки, значит происходит изменение цвета. Тут же кликаем на эту кнопку. После чего надо проверить действительно ли ловля началась, например по наличию полосы прогресса. Далее ждем минуту и жмем на кнопку закрытия окна ловли рыбы. Для определения порезов можно либо мониторить окно чата(примерно так как сделано в окне боевого напарника), либо просто считать неудачные попытки(которые определять по специфическим пикселям в окне сообщения)

Вообще если вы не программист, попробуйте для начала с простые скрипты(например автопроизводство), помере привыкания к пилоту можете начинать писать более сложные.

Все опубликованые мной скрипты успешно работали на 5 виртуальных машинах в сентябре 2009 года. За 5 месяцев я с помощью пилота и виртуальных машин прокачал около 1000 мультов и это не считая куявских мультов для халявных лесов.
Но так как все проверки условий завязаны на цвета пикселей экранного интерфейса, то при очередной правке дизайна игры возможно работать и перестанут. Поэтому если чтото не работает, дам советы/рекомендации как это поправить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 17.11.2009, 15:28
Сообщение #28


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Некоторое время назад игрался в троецарствие.. Разумеется на автомате.

Что интересно - автоматизировать успел не все, ибо в бою (и возможно некоторых других элементах игры) есть довольно чувствительная защита.

Вообще, тот же сбор ресурсов там реализуется на нормальном языке вообще за 5 минут (попробуйте посмотреть на трафик в liveHTTPHeaders в Mozilla Firefox - все станет просто очевидно).

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

Соответственно я к чему это говорю.. Учите нормальные языки - пилотом тут много не натыкаешь.. Например автосбор ресурсов на PHP выглядит примерно так (условно, не помню конкретики):
Код
$snoopy = new Snoopy; // создание экземпляра "браузера"
$resources = $snoopy -> get( "/resources.xml" ); // получаем список доступных ресурсов
$resources = new SimpleXML( $resources ); // преобразуем для работы с XML
$pause = $snoopy -> get( "/getResource.php?id=" .  $resources[N] ); // делаем запрос на сбор одного конкретного ресурса
$pause = new SimpleXML( $pause ); // преобразуем для работы с XML
sleep( $pause[N] - $pause[M] ); // ждем указанное в ответе время
// и по новой..


Что в свою очередь в разы эффективнее любого скрипта на UoPilot. Не вижу смысла притворяться человеком, если можно представиться роботом и использовать все доступные данные.


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tric
сообщение 17.11.2009, 19:39
Сообщение #29


**

Neophyte
Сообщений: 21
Регистрация: 20.5.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 11.875
Возраст: 25



Цитата(Destruction @ 17.11.2009, 16:28) *

Что в свою очередь в разы эффективнее любого скрипта на UoPilot. Не вижу смысла притворяться человеком, если можно представиться роботом и использовать все доступные данные.

Ну мне удалось претворятся человеком целых 5 месяцев, потом просто по объему вычислили. А тех кто собирает ресурсы программами которые человеком не притворяются, ловят через 1-2-3 дня. Ну судя по ответам на жалобы посаженных за автосбор, смотрят на то сколько по времени в день человек собирает ресурсы и на интервал между собираемыми ресурсами. Если интервал между сбором ресурсов сделать рандомным, то это сильно усложнит работу админов. Но могут ввести(а помоему уже есть) фиктивные ресурсы которые на экране не видны, а автодобытчик их рано или поздно попробует добыть и автоматом посажен будет.

А вообще с нормальными программами автоматизировать намного проще. Потому что можно качественней проверять условия.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 17.11.2009, 19:41
Сообщение #30


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Я собирал в течении месяца..

Что вы мне рассказываете..


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V < 1 2
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.4.2024, 15:45
Designed by Nickostyle