Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Spw

Pages: [1]
1
В первом примере цикл выполняется до тех пор пока $a=0, но так как переменная по умолчанию ноль то цикл сразу пропускает. Во втором, не совсем понял что надо, остановить скрипт? Если да то команду halt добавь в конце.

Code: (clickermann) [Select]
getscreen
if( pxl(493,261 16777215) )
dblclick(653,257)
wait(10)
ldown(382,45)
move(390,18)
lup(390,18)
waitms(1000)
lclick(777,115)
wait(5)
lclick(409,366)
wait(30)
lclick(274,80)
wait(60)
lclick(1590,215)
waitms(1000)
halt
end_if

2
После 17 строки добавить повторную проверку bast() ?

3
Loskutok, ну можно сделать так, если отображается название карты(или характерные пиксели), анализируем его, потом анализируем точку старта и потом уже грузим "вэйпоинты". Самое большое опасение у меня по поводу сдвигов врагами, если нельзя понять текущие координаты игрока, трудно определить его смещение. Когда не видел игры ничего не понятно, 2д или 3д?

4
В идеале, если оппоненты не могут вас толкать или как-то влиять на вас то можно. Какая игра? Скиньте название.

5
Какая игра? Можно скриншот?

6
Quote
А точно 15...? А не 51...  :)
Больше не буду пытаться вам помочь  :P

7
Quote

Ты думаешь, что у 12 и 21 значения будут разными...?  ???
А, ну да, косяк, тогда два раза придется пиксели считать, зато в файл 9 значении всего писать.

8
Пиксели считаешь 1 раз!, получается число, например 672, смотришь в файл он тебе говорит 672 пикселя, это 15(например). Право не знаю как это объяснить более доступно.

9
Попробуй сделать подсчет пикселей у числа. У всех 99 вариантов будет уникальное значение, потом все значения переписать в файл и делать из него запрос.

Например

GETSCREEN
$count = PXLCOUNT (10,20, 100, 40, 255)
logwrite("pixels: ", $count)
$str = INIREAD("chisla.ini",  $count)
logwrite($str)

Конечно это геморно, надо 99 вариантов в файл занести, но должно работать быстрее.

10
Биржа труда / Re: Бот для игры Gems of War
« on: January 10, 2018, 09:02:49 AM »
Такое разрешение предлагает сама игра, тут особо не задумывался, по идее лучше было бы делать под 800х600, для запуска на слабых видеокартах. Канечно все очень гибко, можно пренастроить за пару минут.
Кроме того постоянное выпрыгивание из подпрограммы по GOTO(start), может привести к сбоям.
Тут вы правы надо было переменную воткнуть там,  не красиво. Время будет свободное - переделаю. ;)

11
Биржа труда / Re: Бот для игры Gems of War
« on: January 10, 2018, 08:07:18 AM »
Такое разрешение предлагает сама игра, тут особо не задумывался, по идее лучше было бы делать под 800х600, для запуска на слабых видеокартах. Канечно все очень гибко, можно пренастроить за пару минут.

12
Биржа труда / Re: Бот для игры Gems of War
« 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

Pages: [1]