Автокликер Clickermann :: Форум

Основной раздел => Биржа труда => Topic started by: toto123 on December 21, 2017, 02:09:58 PM

Title: Бот для игры Gems of War
Post by: toto123 on December 21, 2017, 02:09:58 PM
Всем привет!

Нужен бот для игры Gems of War: http://steamcommunity.com/app/329110
Тип игры "три в ряд" + карточная игра. Собирается колода карт со своими умениями, а бой происходит на поле с камнями (7 типов камней: красный, синий, зеленый, желтый, фиолетовый, коричневый, черепа), при сборе которых карты заряжаются манной, с помощью которой можно использовать ульту.

Цель:

Нужно чтобы бот мог различать цвет камней и собирал коричневые и зеленые камни, и при накоплении манны у первой (верхней) карты, использовал ее. Затем, прокликать на значек, оповещающий о победе (он появляется в центре экрана), кнопку "ок" и снова зайти в бой. И все это зациклить.


Может что-то коряво написал, извините, в программировании не разбираюсь.
Интересует можно ли такое сделать? Сколько это будет стоить? Сколько это займет времени?
Title: Re: Бот для игры Gems of War
Post by: toto123 on December 22, 2017, 12:14:17 PM
Предположим 3000 рублей, но цена не окончательная, готов выслушать встречные предложения
Title: Re: Бот для игры Gems of War
Post by: toto123 on December 25, 2017, 12:37:16 PM
Абсолютно так и есть!) Это фарм ресурсов, получаемых за победу в бою, отряд атаки прокачен на максимум, а оборона выбирается максимально слабой для скорости)
Title: Re: Бот для игры Gems of War
Post by: toto123 on December 25, 2017, 12:39:28 PM
Единственная пооправка, это то, что зеленых и коричневых сборок может не быть, и тогда нужно собирать что попадается. Приоритет на цвета камней следующий: 1 коричневый, 2 зеленый, 3 черепа, 4-7 остальные в любом порядке
Title: Re: Бот для игры Gems of War
Post by: Spw on January 09, 2018, 10:46:13 PM
Накидал по быстрому, toto123, отпишите если еще интересно, объясню что к чему.
Code: (clickermann) [Select]
//1280x800
wndpos( wndfind("GemsofWar"), 10, 10)

SUB(findall)
   LOGCLEAR
   UNDEFINE($arr_hor)
   UNDEFINE($arr_vert)
   GETSCREEN
   COLORMODE(6, 300, 90, 1010,800)
   FOR($a=1,$a<9)
      FOR($b=1,$b<9)
         $clr = PXL(260+($a*88),16+($b*88))  //??????? ???? ???? ??????
         arrpush ($x_hor, 260+($a*88))
         arrpush ($y_hor, 16+($b*88))
         arrpush ($arr_hor, $clr)    //????? ? ?????? ?? ???????????
         //         LOGWRITE($clr)
         $clr = PXL(260+($b*88),16+($a*88))
         arrpush ($x_vert, 260+($b*88))
         arrpush ($y_vert, 16+($a*88))
         arrpush ($arr_vert, $clr)           //????? ? ?????? ?? ?????????
         LOGWRITE($clr," ",$diva," x:",260+($b*88)," y:",16+($a*88))
         inc($diva)
      END_CYC
      logwrite("")
   END_CYC
   LOGWRITE ($arr_vert[62])
   LOGWRITE (ARRSIZE($arr_vert))
END_SUB


SUB(findmatch, $color)
   FOR($n1=0,$n1<63)
      IF (($arr_hor[$n1] = $color) & (PXL($x_hor[$n1],$y_hor[$n1]+88) =  $color))  //??? ??????
         //         LOGWRITE ("msg ", PXL($x_hor[$n1+2]+88,$y_hor[$n1+2]))
         
         //--------------????????? ????------------------------------
         
         SWITCH($color)
         CASE(PXL($x_hor[$n1]+88,$y_hor[$n1]+176))   //c???? ??????
            LCLICK($x_hor[$n1+2]+88,$y_hor[$n1+2])
            waitms(100)
            LCLICK($x_hor[$n1+2],$y_hor[$n1+2])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_hor[$n1]-88,$y_hor[$n1]+176))   //c???? ?????
            LCLICK($x_hor[$n1+2]-88,$y_hor[$n1+2])
            waitms(100)
            LCLICK($x_hor[$n1+2],$y_hor[$n1+2])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_hor[$n1]+88,$y_hor[$n1]-88))    //c????? ??????
            LCLICK($x_hor[$n1-1]+88,$y_hor[$n1-1])
            waitms(100)
            LCLICK($x_hor[$n1-1],$y_hor[$n1-1])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_hor[$n1]-88,$y_hor[$n1]-88))    //c????? ?????
            LCLICK($x_hor[$n1-1]-88,$y_hor[$n1-1])
            waitms(100)
            LCLICK($x_hor[$n1-1],$y_hor[$n1-1])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_hor[$n1],$y_hor[$n1]+264)) //????? ?????
            LCLICK($x_hor[$n1+2],$y_hor[$n1+2])
            waitms(100)
            LCLICK($x_hor[$n1+3],$y_hor[$n1+3])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_hor[$n1],$y_hor[$n1]-176))     //?????? ??????
            LCLICK($x_hor[$n1-2],$y_hor[$n1-2])
            waitms(100)
            LCLICK($x_hor[$n1-1],$y_hor[$n1-1])
            waitms(1000)
            GOTO(start)
         DEFAULT
            // ?????? ?? ?????????
         END_SWITCH
      END_IF
     
      IF (($arr_hor[$n1] = $color) & (PXL($x_hor[$n1],$y_hor[$n1]+176) =  $color)) //????? 1
         SWITCH($color)
         CASE(PXL($x_hor[$n1]+88,$y_hor[$n1]+88))     //??????
            LCLICK($x_hor[$n1+1]+88,$y_hor[$n1+1])
            waitms(100)
            LCLICK($x_hor[$n1+1],$y_hor[$n1+1])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_hor[$n1]-88,$y_hor[$n1]+88))    //?????
            LCLICK($x_hor[$n1+1]-88,$y_hor[$n1+1])
            waitms(100)
            LCLICK($x_hor[$n1+1],$y_hor[$n1+1])
            waitms(1000)
            GOTO(start)
         DEFAULT
         END_SWITCH
      END_IF
     
      IF (($arr_vert[$n1] = $color) & (PXL($x_vert[$n1]+88,$y_vert[$n1]) =  $color))
         SWITCH($color)
         CASE(PXL($x_vert[$n1]+176,$y_vert[$n1]+88))   //c???? ??????
            LCLICK($x_vert[$n1+2],$y_vert[$n1+2]+88)
            waitms(100)
            LCLICK($x_vert[$n1+2],$y_vert[$n1+2])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_vert[$n1]+176,$y_vert[$n1]-88))   //c???? ?????
            LCLICK($x_vert[$n1+2],$y_vert[$n1+2]-88)
            waitms(100)
            LCLICK($x_vert[$n1+2],$y_vert[$n1+2])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_vert[$n1]-88,$y_vert[$n1]+88))    //c????? ??????
            LCLICK($x_vert[$n1-1],$y_vert[$n1-1]+88)
            waitms(100)
            LCLICK($x_vert[$n1-1],$y_vert[$n1-1])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_vert[$n1]-88,$y_vert[$n1]-88))    //c????? ?????
            LCLICK($x_vert[$n1-1],$y_vert[$n1-1]-88)
            waitms(100)
            LCLICK($x_vert[$n1-1],$y_vert[$n1-1])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_vert[$n1]+264,$y_vert[$n1])) //????? ?????
            LCLICK($x_vert[$n1+2],$y_vert[$n1+2])
            waitms(100)
            LCLICK($x_vert[$n1+3],$y_vert[$n1+3])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_vert[$n1]-176,$y_vert[$n1]))     //?????? ??????
            LCLICK($x_vert[$n1-2],$y_vert[$n1-2])
            waitms(100)
            LCLICK($x_vert[$n1-1],$y_vert[$n1-1])
            waitms(1000)
            GOTO(start)
         DEFAULT
         END_SWITCH
      END_IF
     
      IF (($arr_vert[$n1] = $color) & (PXL($x_vert[$n1]+176,$y_vert[$n1]) =  $color)) //????? 1
         SWITCH($color)
         CASE(PXL($x_vert[$n1]+88,$y_vert[$n1]+88))     //??????
            LCLICK($x_vert[$n1+1],$y_vert[$n1+1]+88)
            waitms(100)
            LCLICK($x_vert[$n1+1],$y_vert[$n1+1])
            waitms(1000)
            GOTO(start)
         CASE(PXL($x_vert[$n1]+88,$y_vert[$n1]-88))    //?????
            LCLICK($x_vert[$n1+1],$y_vert[$n1+1]-88)
            waitms(100)
            LCLICK($x_vert[$n1+1],$y_vert[$n1+1])
            waitms(1000)
            GOTO(start)
         DEFAULT
         END_SWITCH
      END_IF
   END_CYC
END_SUB

start:
IF  (PXL(100,800) = 2331458)
   LCLICK(300,800)
   WAITMS(500)
   LCLICK(650,450)
   WAITMS(500)
   LCLICK(650,450)
   WAITMS(200)
   LCLICK(300,800)
   WAITMS(2000)   
END_IF

findall()

IF  (PXL(180,90) = 16777215)
   IF (PXL(70,470) = 16732842)
      LCLICK(70,500)
      WAITMS(200)
      LCLICK(570,710)
   END_IF
   findmatch("8339327") //???? ??????????
   findmatch("4145023") //???? ???????
   findmatch("16777215") //???? ??????
   findmatch("4144959") //???? ??????????
   findmatch("4161471") //???? ??????
   findmatch("4161343") //???? ???????
   findmatch("12533567") //???? ?????
END_IF
waitms(2000)
GOTO(start)

halt
Title: Re: Бот для игры Gems of War
Post by: Spw on January 10, 2018, 08:07:18 AM
Такое разрешение предлагает сама игра, тут особо не задумывался, по идее лучше было бы делать под 800х600, для запуска на слабых видеокартах. Канечно все очень гибко, можно пренастроить за пару минут.
Title: Re: Бот для игры Gems of War
Post by: Spw on January 10, 2018, 09:02:49 AM
Такое разрешение предлагает сама игра, тут особо не задумывался, по идее лучше было бы делать под 800х600, для запуска на слабых видеокартах. Канечно все очень гибко, можно пренастроить за пару минут.
Кроме того постоянное выпрыгивание из подпрограммы по GOTO(start), может привести к сбоям.
Тут вы правы надо было переменную воткнуть там,  не красиво. Время будет свободное - переделаю. ;)
Title: Re: Бот для игры Gems of War
Post by: PasqualeAcosta on October 21, 2018, 02:32:19 AM
Бота случаем так и не доделали?)
Title: Re: Бот для игры Gems of War
Post by: PasqualeAcosta on October 21, 2018, 10:57:28 AM
доделали конечно, даже с многочисленными избыточными возможностями, по сравнению с первоначальным описанием автора темы, к сожалению у меня авторский вариант не сохранился, так-как почти год темой ни кто здесь не интересовался.
Эх, жаль. Может в почте или где после пересылок осталось...

Есть тема по 3 в ряд http://crapware.aidf.org/forum/index.php?topic=1047.0 , но для меня как новичка пока это все очень жестко))
Title: Re: Бот для игры Gems of War
Post by: sevdox on June 11, 2019, 07:33:39 PM
Готов приобрести аналогичного бота, по предложенной стоимости !