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 - zanogu

Pages: [1]
1
Общие вопросы / Re: Работа с сервером
« on: March 23, 2017, 12:51:51 PM »
SENDMESSAGE / POSTMESSAGE (hwnd, message, wParam, lParam) - как тут можно отправить координаты клика?

2
Общие вопросы / Работа с сервером
« on: March 21, 2017, 01:47:03 PM »
Добрый день!
Меня мучает вопрос. Возможен сценарий роботы с играми напрямую с сервером без самой игры. Запрос на сервер получение ответа и.т.д
Насколько это реально?

Думаю большинство пользуются эмуляторами и самой игрой, не всегда это стабильно.
Возможна это уже из разряда какой то хак программы, но не могу не спросить
Заранее спасибо за ответ (не пинайте сильно :) )

3

#define $Arena:3216221726,484,311,486,312,365,304,2,end,Центральная прлощадка игры
.....
#define $EnterArena:3216221726,484,311,486,312,365,304,2,Arena,Вход в арену

sub (analiz, $crc,$x,$y,$x1,$y1,$x_click,$y_click,$pausa,$perekluchatel,$log)
start:
   if ($restart<15)
      // Проверка на подгруз игры
      getscreen
      colormode (6)
      if_picture_in (455,285,502,339, "load.bmp", 0,80)
         logwrite ("Пауза подгрузка")
         inc ($restart)
         wait (3)
         goto (start)
      end_if
      //Проверка на рекламу
      getscreen
      if ($AddTrue = PXLCRC (48,39,48,39))
         logwrite ("Закрываю окно рекламы")
         lclick (665, 531)
         wait (3)
         goto (start)
      end_if
   else
      logwrite ("Рестрат", $restart)
      if ($restart>15)
         $restart=0
         restart()
         goto (start)
      end_if
   end_if
   getscreen
   if (($crc = pxlcrc ($x,$y,$x1,$y1)) & ($restart<15))
      logwrite ($crc)
      $restart = 0
      lclick ($x_click,$y_click)
      logwrite ($log)
      wait ($pausa)
   else
      restart ()
      $restart=0
      goto ($perekluchatel)
   end_if
end_sub

arena:
analiz ($EnterArena)//Розвернуть нижнюю панель игры
analiz ($ArenaPanel)//Переход в тип арены
analiz ($ArenaChous)//Выбор типа арены
for ($i, $i>5)
   analiz ($ArenaTake)
   lclick (838,503)
   wait (3)
   analiz ($ArenaAttake)
   analiz ($ArenaDrop)
   analiz ($ArenaWinLost)
end_cyc
$i=0

end:
hult


Если использвать цыкл for или while, то при входе в него крашится/ошибка pop () по всех переменных из подпрограммы analiz начиная с
$y=pop()
$x1=pop()
$y1=pop()
...
$log

Если не использовать цыклы тогда все норм. Вопрос где я налошил?

4
zanogu
только $1 - недопустимое имя переменной. имя не должно начинаться с цифры (по крайней мере так в справке Джонни написал)

Спасибо, учту

5
всеже немного почитал более внимательно. и пришел к выводу, что ты сканируешь какието отдельные участки экрана, и если их хэш совпадет с записанным ранее, то клик в какоето место. но в этом случае все координаты и значения хэш походу будут разнится. и написанное мной выше тебе не подойдет. вот тебе вариант, где все ппараметры вынесены в подпрограмме, таким образом легче будет ничего не попутать в вызовах, и никаких констант.
Code: (clickermann) [Select]
sub (analiz,$crc,$x,$y,$x1,$y1,$x_click,$y_click)
   //если после клика картинка меняется, не забываем про getscreen
   if ($crc = PXLCRC ($x,$y,$x1,$y1))
      lclick ($x_click,$y_click)
   end_if
end_sub

analiz (4343434352,100,100,110,110,105,104) //тут пишешь через запятую - значение PXLCRC, координаты анализа, и координаты клика (7 значений через запятую)




Спасибо очень помогли. Пофантазировал
Сделал так

// New Script
// Author: Anonymous
// Version: 1.0 (10.02.2017)

#autorun

wndpos( wndfind("BlueStacks App Player"), 0, 0)
$h = WNDFIND ("BlueStacks App Player")
HSET ($h, 1)// привязка мыши к окну

//Тут будет блок констант для удобства замены или правки. Возможно уберу в текстовый файл с вызовом.
#define $a:3216221726,484,311,486,312,365,304

sub (analiz, $1,$x,$y,$x1,$y1,$x_click,$y_click)
   getscreen
   if ($1= pxlcrc ($x,$y,$x1,$y1)
      lclick ($x_click,$y_click)
   end_if
end_sub

analiz ($a)


halt // for single run

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

Еще раз спасибо

6
Зачем анализировать кучу точек если ниже идет конкретное условие?
Почему просто не написать
Code: (clickermann) [Select]
if ($a  = PXLCRC (x,y,x1,y1))
lclick (x,y)//
end_if

Мда, все оригинально и просто. Спасибо

Еще вопрос
(x,y,x1,y1) загнать в константу можно?
Например:
Define ($a, 1, x,y,x1,y1)// знаю что не правильно но принцып думаю понятен
If ($a = pxlcrc)
Lclick (x,y)
End_if

Просто по скрипту потом искать координаты при больших массивах неудобно будет

7
Привет!
Возможна не в ту тему :)
Помогите пожалуйста упростить код
Подпрограмма analiz разрослось до некоторых объемов, делает анализ там где не нужно, хочется упростить.
Возможна описать подпрограмму так чтоб анализ экрана происходил точечно, не прогоняя весь массив данных?

//Блок констант
DEFINE ($a, 1)//
DEFINE ($b, 2)//
DEFINE ($c, 3)//
.....
DEFINE ($N, n)//

//Блок анализа экрана
sub (analiz)
$atrue = PXLCRC (x,y,x1,y1)//
$btrue = PXLCRC (x,y,x1,y1)//
$ctrue = PXLCRC (x,y,x1,y1)//
..........
$Ntrue = PXLCRC (x,y,x1,y1)//
end_sub

analiz ()
if ($a  = $atrue)
lclick (x,y)//
end_if

analiz ()
if ($b  = $btrue)
lclick (x,y)//
end_if

analiz ()
if ($c  = $ctrue)
lclick (x,y)//
end_if
............
analiz ()
if ($N  = $Ntrue)
lclick (x,y)//
end_if

8
Учебные статьи / Re: Массивы
« on: September 19, 2016, 03:24:06 PM »
Привет!
Подскажите как сделать сравнение переменной с каждым значением в массиве, если значение уникальное (в массиве нет такого) внести в этот же массив и т.д. Размерность массива 30

Заранее благодарю за ответ.

9
Привет!
Помогите на вин 10
Пользовался 4.7 Se, перешол на 4.11.
Ткнул носом чтоб скрипт открывался с exe 4.11, но при клике на любой скрипт не запускается автоматически воспроизведение скрипта. Просто открывается программа с скриптом, но авто воспроизведения скрипта не начинается, только когда ткнеш "запустить".

Помогите решить проблему.
напиши в любом месте скрипта    #autorun,   это одна из директив препроцессора на автозапуск, в начале такие директивы пишутся или где-то в другом месте совершенно никакого значения не имеет, потому-что выполняются только в момент загрузки скрипта и в дальнейшем в работе не участвуют.

Помогло. Спасибо

10
Привет!
Помогите на вин 10
Пользовался 4.7 Se, перешол на 4.11.
Ткнул носом чтоб скрипт открывался с exe 4.11, но при клике на любой скрипт не запускается автоматически воспроизведение скрипта. Просто открывается программа с скриптом, но авто воспроизведения скрипта не начинается, только когда ткнеш "запустить".

Помогите решить проблему.

11
Еще разок подниу тему
Есть возможность реализовать например GETSCREEN с установкой корекции количество пикселей в сделаном изображениее. В независиомсти от разширения экрана?
Возможно это приведет к универсализации скрипта под любые экраны и т.д.
Википедик говорит что есть прямая зависимость количество пискселей на точку от:
• формата файла
• разшерения экрана,
• пропорции изображения экрана (тоесть 16:9, 4:3)
• размер изображения
• Другие параметры (разрадяность, герцовка и.д.)

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

12
Привет!

Сорри за оффтоп

Возможно такую тему уже поднимали.

Постоянно стыкаюсь с проблемой подгонов скриптов под разные разширения экранов.
Вопрос в следующем. Возможно cделать GETSCREEN екрана с подгоном в рамки одного розширения? Например 800*600.

С кликами тут пробем не вижу разность разширений можна компенсировать LCLCIK (X+$X, Y+$Y)

Не пинайте меня сильно тольно начинаю

Pages: [1]