1

Тема: AHK: Автоприцеливание скрипта

Чисто из научного любопытства придумал код который стреляет по шарикам на сайте.
В принципе результат довольно высокий 58000, но в коде есть какая то ошибка которая заставляет скрипт промахиваться.
Может кто подскажет в чем дело?


#Persistent
SetBatchLines, -1  
SetTimer, S1, 20
Pause

S1:
MouseGetPos, xpos, ypos
zX1:=xpos-30,zX2:=xpos+30,zY1:=ypos-20,zY2:=ypos+20
PixelSearch, VarX, VarY,zX1, zY1, zX2, zY2, 0x4171E9, 20, Fast RGB

if !ErrorLevel
{
MouseClick ,, VarX, VarY,, 0
SetTimer, S1, Off 
SetTimer, S2, -50 
}
Return

z::pause ;снять с паузы
End::ExitApp 

S2:
SetTimer, S1, On 
Return 

2

Re: AHK: Автоприцеливание скрипта

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

#Persistent
CoordMode, Mouse, Client
CoordMode, Pixel, Client
global zX1 := 660 ; x координата левого верхнего угла области игры
global zx2 := 1174 ; x координата правого нижнего угла области игры
global zy1 := 470 ; y координата левого верхнего угла области игры
global zy2 := 928 ; х координата правого нижнего угла области игры
global x := ""
global y := ""
SetBatchLines, -1  
SetTimer, S1, 20
Pause

S1:
PixelSearch, VarX, VarY,zX1, zY1, zX2, zY2, 0x4171E9, 20, Fast RGB

if (!ErrorLevel)  {
	mx := x + 10
	lx := x - 10
	my := y + 10
	ly := y - 10
	if (my >= vary) and (ly <= vary) {
		if (mx >= varx) and (lx <= varx) {
			SetTimer, S1, Off 
			SetTimer, S2, -50
		} else {
			MouseClick ,, VarX, VarY,, 0
			global x := varx
			global y := vary
		}
	} else {
		MouseClick ,, VarX, VarY,, 0
		global x := varx
		global y := vary
	}
SetTimer, S1, Off 
SetTimer, S2, -50
}
Return

z::pause ;снять с паузы
End::ExitApp 

S2:
SetTimer, S1, On 
Return 

Такой скрипт с легкостью набирает более 100 тыс очков. Координаты области игры через winspy определите. Давно хотел пощупать pixelsearch вот и повод выдался, спасибо .

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

3 (изменено: sabir.yanin2014, 2017-10-27 14:29:53)

Re: AHK: Автоприцеливание скрипта

belyankin12, не знаю зачем столько глобальных переменных, только у меня ваш код работает очень слабо.

Post's attachments

2017-10-27_13-05-26.png 508.78 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

4

Re: AHK: Автоприцеливание скрипта

Вот по моему коду статистика.

Post's attachments

2017-10-27_12-58-11.png 503.17 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

5

Re: AHK: Автоприцеливание скрипта

belyankin12, вы мышкой вообще не водили, скрипт все сам делал?

6 (изменено: belyankin12, 2017-10-27 14:50:56)

Re: AHK: Автоприцеливание скрипта

Верно, вы скорее всего координаты своей области не ввели. Мои координаты это мои координаты, вам же нужно свои сделать, ибо они по-любому будут другие. Не вижу ничего плохого в глобальных переменных, учитывая что ваш скрипт координаты высчитывает каждый раз заново, в то время как мои координаты всегда постоянные.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7

Re: AHK: Автоприцеливание скрипта

belyankin12, вы можете показать скрин с вашими достижениями?

8 (изменено: sabir.yanin2014, 2017-10-27 18:00:34)

Re: AHK: Автоприцеливание скрипта

belyankin12, воспользовался Window Spy: программа оказывается есть в меню пуск AHK>и.т.д. Забил в свой код координаты клиентской области и результат меня поразил. Производительность значительно выросла.


#Persistent
CoordMode, Mouse, Client
CoordMode, Pixel, Client
SetBatchLines, -1  
SetTimer, S1, 20
Pause

S1:
PixelSearch, VarX, VarY, 382, 175, 895, 629, 0x4171E9, 20, Fast RGB

if !ErrorLevel
{
MouseClick ,, VarX, VarY,, 0
SetTimer, S1, Off 
SetTimer, S2, -50 
}
Return

z::pause ;снять с паузы
End::ExitApp 

S2:
SetTimer, S1, On 
Return 

И без всяких глобальных переменных набил 204000.

Post's attachments

2017-10-27_16-49-32.png 525.28 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

9

Re: AHK: Автоприцеливание скрипта

По сути да, те четыре переменные были необязательны, тут признаю. Но вот x и y использовались для предотвращения повторного нажатия в определенной области рядом с местом последнего нажатия (я думаю у вас такое было что он делал 5-7 промахов подряд), с теми двумя такое сразу исключается ценой возможного пропуска 1-2 шариков.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.