EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

27 Feb 2020, 14:09

Existe Alguma Maneira de criar um script que ele mantenha uma imagem que fica em movimento no meio de um retangulo ???

essa boia da imagem nao pode sair da area verde...

Image

OBS: quando eu seguro o botao esquerdo do mouse a boia vai para o lado direito , quando eu solto ela volta para o lado esquerdo
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

28 Feb 2020, 09:19

Bom dia GaahFlash.

É possível sim, mas a elaboração do script precisa ser feita analisando diretamente o comportamento do jogo pois existem muitas variáveis que precisam ser identificadas e controladas. Por exemplo: O movimento da bóia é constante ou variado? (tanto quando segura como quando solta). Se for variado, é preciso que a rotina tenha uma forma de verificar o resultado dos movimentos. Outro ponto: O peixe se move também?

:arrow: Para cada peculiaridade que você perceber você deve ajustar o script para que aja de acordo.

A formula básica do script seria como o pseudo-código abaixo:

Code: Select all

1. Identificar a posição das bordas as barra verde (para saber a extensão dela)
Loop
{
	2. Identificar a posição atual da boia
	3. Identificar a distância da boia para as bordas (para saber o quão próxima está do centro)
	4. Enviar o comando de botão direito do mouse por um tempo (o tempo poderá ter que ser variável se o movimento da bóia também for).
}
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

28 Feb 2020, 10:21

Gio wrote:
28 Feb 2020, 09:19
Bom dia GaahFlash.

É possível sim, mas a elaboração do script precisa ser feita analisando diretamente o comportamento do jogo pois existem muitas variáveis que precisam ser identificadas e controladas. Por exemplo: O movimento da bóia é constante ou variado? (tanto quando segura como quando solta). Se for variado, é preciso que a rotina tenha uma forma de verificar o resultado dos movimentos. Outro ponto: O peixe se move também?

:arrow: Para cada peculiaridade que você perceber você deve ajustar o script para que aja de acordo.

A formula básica do script seria como o pseudo-código abaixo:

Code: Select all

1. Identificar a posição das bordas as barra verde (para saber a extensão dela)
Loop
{
	2. Identificar a posição atual da boia
	3. Identificar a distância da boia para as bordas (para saber o quão próxima está do centro)
	4. Enviar o comando de botão direito do mouse por um tempo (o tempo poderá ter que ser variável se o movimento da bóia também for).
}
os movimentos da boia sao constantes

veja se ajuda olhando esse video de como se comporta a boia , começa no 1:30 de video
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

28 Feb 2020, 12:39

Não vejo o link do vídeo. Você tem certeza de que o escreveu?
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

28 Feb 2020, 17:39

Gio wrote:
28 Feb 2020, 12:39
Não vejo o link do vídeo. Você tem certeza de que o escreveu?
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

02 Mar 2020, 18:05

Ok, dando uma olhada na rotina eu tenho a dizer o seguinte: é possível fazer sem dúvida, mas vai ser um script que vai requerer um bom grau de otimização e testes, tendo em vista principalmente a necessidade de muita velocidade na leitura da posição da boia e na reação com o clique do mouse. Também dificulta um pouco esta tarefa o fato de que a barra verde é semi-transparente, o que significa que a cor exata dos pixels depende em parte do cenário embaixo dela, tornando-a difícil de prever com exatidão. Portanto, não é algo que eu possa apresentar um código-exemplo, mas talvez eu possa descrever os passos para obter este código funcional.

Então se eu fosse descrever sem testes a solução do problema (ou como eu tentaria fazê-lo à princípio), seria mais ou menos como o esboço a seguir:

PIXEL PENA.png
PIXEL PENA.png (162.89 KiB) Viewed 3523 times
1. A cor da pena da boia parece ter uns pixels com cores laranjas bem opacas. Usaria eles como o primeiro nivel de checagem em loop para determinar SE e QUANDO existirá uma barra de pesca aparecendo na tela. Faria isso em uma sub-área central da tela, pois vejo que a barra da bóia parece ficar mais ou menos ao centro da tela e diminuir a área de busca pode tornar a rotina mais rápida.

2. (talvez não seja necessário este passo - teria que determinar nos testes) Uma vez descoberta a existência da barra, o próximo passo talvez seja iniciar uma série de "comandos de mouse intermitentes" em uma espécie de "pente grosso". Isso significa basicamente que o script já vai reagir imediatamente quando descobrir a existência da boia, ainda que de uma forma um pouco cega a princípio: o objetivo nesse primeiro momento é clicar com o mouse para dificultar (ou seja, FREAR) o movimento da barra de descer muito rapidamente, e não para acertar o ritmo dela até o fim. A quantidade de cliques por segundo do pente grosso teria que ser determinada por meio de testes, buscando um nível que garanta o máximo de tempo até que a boia falhe (por exemplo: se vc deixar a boia parada, ela pode falhar em 5 segundos, tornado-se irreversível em 3. Mas se vc fizer dez cliques a cada 500ms, ou se vc segurar o botao do mouse 100ms a cada 300ms, talvez ela passe a falhar em 10 segundos, tornando-se irreversível em 8. Esse tempo extra é o tempo que talvez você precise para encontrar as outras posições necessárias e então fazer o script determinar a forma certa de clicar - ou seja, o "pente fino" dos cliques). Portanto, Enquanto faz esses cliques de pente grosso, o script:

PIXEL INTERMITENCIA.png
PIXEL INTERMITENCIA.png (179.71 KiB) Viewed 3523 times
PIXEL INTERMITENCIA DIREITA.png
PIXEL INTERMITENCIA DIREITA.png (173.41 KiB) Viewed 3523 times
3. iniciaria em paralelo (pseudo-paralelo na verdade) uma rotina para encontrar a posição da boia em relação à barra verde. Para fazer isso, é preciso somente determinar as posições das intermitências verde-laranjas à esquerda e à direita da da barra. Isso pode ser facilitado sabendo-se que a próxima busca será em apenas uma linha de pixels, que será determinada como sendo um pouco abaixo da linha onde a pena da boia foi localizada. Encontrar as intermitências pode ser tão fácil quanto ir pulando um PixelGetColor de X em X pixels do centro até a esquerda (e depois direita) da barra em um número de pixels fixo abaixo da posição da pena da boia. A intermitência ocorre onde o canal verde não for mais o maior dos 3 canais da cor.

CALCULO PENTE FINO.png
CALCULO PENTE FINO.png (175.32 KiB) Viewed 3523 times
4. Quando o script estiver certo de que encontrou todas as três variáveis (posição da pena da boia, posição da intermitência verde-laranja à esquerda e posição da intermitência verde-laranja à direita) ficaria muito fácil calcular em loop o nivel de cliques a serem enviados em pente fino: É só ver a diferença da posição horizontal (ou seja, X) da pena da boia em relação à posição horizontal das duas intermitências. Se estiver mais ou centro, mantém a quantidade (ou tempo) dos cliques, se estiver mais à esquerda, alivia a quantidade (ou tempo) dos cliques, se estiver mais à direita, aumenta a quantidade (ou tempo) dos cliques. O nivel do alivio ou do aumento dos cliques (ou do tempo de clique) a cada checagem teria que ser determinado por tentativa e erro.

5. O final da rotina (com a conclusão da pescaria) seria determinado pela mudança na cor do local onde estavam as intermitências antes.


:arrow: Acredito que uma rotina assim resolveria o problema. Mas como você já viu, esta rotina está mais para um pequeno projeto. Indico que comece então resolvendo o necessário para que o passo 1 esteja de acordo e preocupe-se somente com ele agora. Tente fazer um código que fica buscando em loop a cor da pena da bóia e que apresenta uma msgbox sempre que encontra a pena. Veja com testes se ele consegue jogar a msgbox quando a boia aparece e vá ajustando ele até que consiga. Depois (e somente depois) você passa para o passo 2.

Se tiver alguma dúvida sobre algum dos passos, basta postar abaixo.

OBS: Cabe repetir o que disse em outro tópico: não recomendo que faça nenhuma automação que possa ser contrária aos termos de uso do jogo em questão. Eu não conheço esse jogo que você indicou, mas saiba que muitos jogos podem banir sua conta se sua automação for contrária aos termos de uso deles. A responsabilidade e o julgamento do que é ou não certo em qualquer caso é totalmente sua ;)
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

02 Mar 2020, 23:31

Gio wrote:
02 Mar 2020, 18:05
Ok, dando uma olhada na rotina eu tenho a dizer o seguinte: é possível fazer sem dúvida, mas vai ser um script que vai requerer um bom grau de otimização e testes, tendo em vista principalmente a necessidade de muita velocidade na leitura da posição da boia e na reação com o clique do mouse. Também dificulta um pouco esta tarefa o fato de que a barra verde é semi-transparente, o que significa que a cor exata dos pixels depende em parte do cenário embaixo dela, tornando-a difícil de prever com exatidão. Portanto, não é algo que eu possa apresentar um código-exemplo, mas talvez eu possa descrever os passos para obter este código funcional.

Então se eu fosse descrever sem testes a solução do problema (ou como eu tentaria fazê-lo à princípio), seria mais ou menos como o esboço a seguir:


PIXEL PENA.png

1. A cor da pena da boia parece ter uns pixels com cores laranjas bem opacas. Usaria eles como o primeiro nivel de checagem em loop para determinar SE e QUANDO existirá uma barra de pesca aparecendo na tela. Faria isso em uma sub-área central da tela, pois vejo que a barra da bóia parece ficar mais ou menos ao centro da tela e diminuir a área de busca pode tornar a rotina mais rápida.

2. (talvez não seja necessário este passo - teria que determinar nos testes) Uma vez descoberta a existência da barra, o próximo passo talvez seja iniciar uma série de "comandos de mouse intermitentes" em uma espécie de "pente grosso". Isso significa basicamente que o script já vai reagir imediatamente quando descobrir a existência da boia, ainda que de uma forma um pouco cega a princípio: o objetivo nesse primeiro momento é clicar com o mouse para dificultar (ou seja, FREAR) o movimento da barra de descer muito rapidamente, e não para acertar o ritmo dela até o fim. A quantidade de cliques por segundo do pente grosso teria que ser determinada por meio de testes, buscando um nível que garanta o máximo de tempo até que a boia falhe (por exemplo: se vc deixar a boia parada, ela pode falhar em 5 segundos, tornado-se irreversível em 3. Mas se vc fizer dez cliques a cada 500ms, ou se vc segurar o botao do mouse 100ms a cada 300ms, talvez ela passe a falhar em 10 segundos, tornando-se irreversível em 8. Esse tempo extra é o tempo que talvez você precise para encontrar as outras posições necessárias e então fazer o script determinar a forma certa de clicar - ou seja, o "pente fino" dos cliques). Portanto, Enquanto faz esses cliques de pente grosso, o script:


PIXEL INTERMITENCIA.png

PIXEL INTERMITENCIA DIREITA.png

3. iniciaria em paralelo (pseudo-paralelo na verdade) uma rotina para encontrar a posição da boia em relação à barra verde. Para fazer isso, é preciso somente determinar as posições das intermitências verde-laranjas à esquerda e à direita da da barra. Isso pode ser facilitado sabendo-se que a próxima busca será em apenas uma linha de pixels, que será determinada como sendo um pouco abaixo da linha onde a pena da boia foi localizada. Encontrar as intermitências pode ser tão fácil quanto ir pulando um PixelGetColor de X em X pixels do centro até a esquerda (e depois direita) da barra em um número de pixels fixo abaixo da posição da pena da boia. A intermitência ocorre onde o canal verde não for mais o maior dos 3 canais da cor.


CALCULO PENTE FINO.png

4. Quando o script estiver certo de que encontrou todas as três variáveis (posição da pena da boia, posição da intermitência verde-laranja à esquerda e posição da intermitência verde-laranja à direita) ficaria muito fácil calcular em loop o nivel de cliques a serem enviados em pente fino: É só ver a diferença da posição horizontal (ou seja, X) da pena da boia em relação à posição horizontal das duas intermitências. Se estiver mais ou centro, mantém a quantidade (ou tempo) dos cliques, se estiver mais à esquerda, alivia a quantidade (ou tempo) dos cliques, se estiver mais à direita, aumenta a quantidade (ou tempo) dos cliques. O nivel do alivio ou do aumento dos cliques (ou do tempo de clique) a cada checagem teria que ser determinado por tentativa e erro.

5. O final da rotina (com a conclusão da pescaria) seria determinado pela mudança na cor do local onde estavam as intermitências antes.


:arrow: Acredito que uma rotina assim resolveria o problema. Mas como você já viu, esta rotina está mais para um pequeno projeto. Indico que comece então resolvendo o necessário para que o passo 1 esteja de acordo e preocupe-se somente com ele agora. Tente fazer um código que fica buscando em loop a cor da pena da bóia e que apresenta uma msgbox sempre que encontra a pena. Veja com testes se ele consegue jogar a msgbox quando a boia aparece e vá ajustando ele até que consiga. Depois (e somente depois) você passa para o passo 2.

Se tiver alguma dúvida sobre algum dos passos, basta postar abaixo.

OBS: Cabe repetir o que disse em outro tópico: não recomendo que faça nenhuma automação que possa ser contrária aos termos de uso do jogo em questão. Eu não conheço esse jogo que você indicou, mas saiba que muitos jogos podem banir sua conta se sua automação for contrária aos termos de uso deles. A responsabilidade e o julgamento do que é ou não certo em qualquer caso é totalmente sua ;)

peguei o seu tutorial do pixelsearh q mostra a posição do chapeu para encontar o pixel e a posição da boia.

o pixel da pena da boia é o : 0xfd7c16

e a posição x: 637 y:510

agora devo fazer oque ?
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

03 Mar 2020, 10:58

Bom dia Gaahflash.

O pixel da bóia não tem uma posição estática, pois a bóia se move. Ademais a bóia não existe a todo momento, ela existe somente quando o personagem inicia a ação da pesca. Sendo assim você deve fazer o primeiro passo como mencionei: um loop de checagem com PixelSearch, ou seja, uma rotina repetitiva de checagem que vai acionar a segunda rotina somente caso (e somente quando) encontre de fato a bóia.

O objetivo deste primeiro loop é ficar procurando a bóia na tela até que ela exista. Quando existir, aí sim executará a próxima rotina. Mas enquanto a bóia não existir, ele fica apenas procurando ela silenciosamente em segundo plano.

Vou te dar um exemplo. O código a seguir procura em loop (ou seja, repetidamente) um pixel com cores 0xFF7A09 (e tolerância de até 3 em cada canal) na área de 300x300 pixels central da sua tela. Quando ele acha essa cor nesta área, ele imediatamente avisa por meio de um ToolTip. Este ToolTip só é exibido caso a cor apareça na área e se ela sumir de lá, ele some também.

Code: Select all

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFF7A09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		Tooltip, Bóia encontrada!, %FoundX%, %FoundY%
		; Aqui vai o código do passo 2.
	}
	else
	{
		ToolTip
	}
	Sleep 10
}

Return

:arrow: Perceba que no código acima tudo o que estiver dentro do bloco onde está escrito "aqui vai o código do passo 2" estará imediatamente condicionado ao encontrar do pixel na área. Isso significa que só executa se o pixel estiver lá. Ou seja, é dentro desse bloco de códigos (ou seja, dentro do { e }) que você vai escrever o próximo passo.

Cabe destacar que o valor de cor 0xFF7A09 e o grau de tolerância 3 (parâmetros do PixelSearch) são um mero chute: você vai precisar testar bastante essa rotina pra saber se ela é confiável ou se precisa de ajuste nestes parâmetros. Dessa forma, precisa testar muito pra saber se ela de fato consegue sempre encontrar a bóia e também se ela não fica te causando transtornos com falso-positivos em outros elementos do cenário (por exemplo, se ela não fica acusando uma flor laranja ou algo do tipo de ser a bóia). Caso a rotina não esteja confiável o suficiente, você terá que ir mudando a cor escolhida e o grau de tolerância da cor até que consiga encontrar os melhores valores (ou seja, aqueles que vão sempre encontrar a bóia, mas não vão te dar muitos falso-positivos com outros elementos do cenário).
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

03 Mar 2020, 14:02

Gio wrote:
03 Mar 2020, 10:58
Bom dia Gaahflash.

O pixel da bóia não tem uma posição estática, pois a bóia se move. Ademais a bóia não existe a todo momento, ela existe somente quando o personagem inicia a ação da pesca. Sendo assim você deve fazer o primeiro passo como mencionei: um loop de checagem com PixelSearch, ou seja, uma rotina repetitiva de checagem que vai acionar a segunda rotina somente caso (e somente quando) encontre de fato a bóia.

O objetivo deste primeiro loop é ficar procurando a bóia na tela até que ela exista. Quando existir, aí sim executará a próxima rotina. Mas enquanto a bóia não existir, ele fica apenas procurando ela silenciosamente em segundo plano.

Vou te dar um exemplo. O código a seguir procura em loop (ou seja, repetidamente) um pixel com cores 0xFF7A09 (e tolerância de até 3 em cada canal) na área de 300x300 pixels central da sua tela. Quando ele acha essa cor nesta área, ele imediatamente avisa por meio de um ToolTip. Este ToolTip só é exibido caso a cor apareça na área e se ela sumir de lá, ele some também.

Code: Select all

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFF7A09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		Tooltip, Bóia encontrada!, %FoundX%, %FoundY%
		; Aqui vai o código do passo 2.
	}
	else
	{
		ToolTip
	}
	Sleep 10
}

Return

:arrow: Perceba que no código acima tudo o que estiver dentro do bloco onde está escrito "aqui vai o código do passo 2" estará imediatamente condicionado ao encontrar do pixel na área. Isso significa que só executa se o pixel estiver lá. Ou seja, é dentro desse bloco de códigos (ou seja, dentro do { e }) que você vai escrever o próximo passo.

Cabe destacar que o valor de cor 0xFF7A09 e o grau de tolerância 3 (parâmetros do PixelSearch) são um mero chute: você vai precisar testar bastante essa rotina pra saber se ela é confiável ou se precisa de ajuste nestes parâmetros. Dessa forma, precisa testar muito pra saber se ela de fato consegue sempre encontrar a bóia e também se ela não fica te causando transtornos com falso-positivos em outros elementos do cenário (por exemplo, se ela não fica acusando uma flor laranja ou algo do tipo de ser a bóia). Caso a rotina não esteja confiável o suficiente, você terá que ir mudando a cor escolhida e o grau de tolerância da cor até que consiga encontrar os melhores valores (ou seja, aqueles que vão sempre encontrar a bóia, mas não vão te dar muitos falso-positivos com outros elementos do cenário).
FUNCIONOU EU COLOKEI O COMANDO SO PRA TESTAR

FIZ ESSE EXEMPLO PARA TESTAR E FUNCINOU PUXOU E SOLTOU A BOIA
\/
\/

Code: Select all

CoordMode, ToolTip, Screen
		Tooltip,
		; if alternar {
        send {LButton Down}
sleep 1500
        send {LButton Up}
sleep 400
   
    alternar := !alternar
	}
	
	{
		ToolTip
	}

acredito que agora so falte conseguir implementar o ultimo comando

Image

Image
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

04 Mar 2020, 19:27

Boa tarde.

Bom, agora você deve fazer o que eu disse antes. Caso a bóia seja encontrada, deve seguir-se uma rotina que calcula as distâncias da barra verde à esquerda e à direita da bóia. Se a distância à direita for menor do que a distância à esquerda, deve apertar o mouse por um tempo. Se não for, não deve fazer nada.

Ajuste o código a seguir conforme seja necessário.

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

COUNTER := 0
Loop
{
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 10
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 10
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 10
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 10
		}
		COUNTER += 1
		ToolTip, %COUNTER%
		If (DISTANCIA_DIREITA < DISTANCIA_ESQUERDA)
		{
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
	}
	Sleep 10
}

Return
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

04 Mar 2020, 21:14

Gio wrote:
04 Mar 2020, 19:27
Boa tarde.

Bom, agora você deve fazer o que eu disse antes. Caso a bóia seja encontrada, deve seguir-se uma rotina que calcula as distâncias da barra verde à esquerda e à direita da bóia. Se a distância à direita for menor do que a distância à esquerda, deve apertar o mouse por um tempo. Se não for, não deve fazer nada.

Ajuste o código a seguir conforme seja necessário.

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

COUNTER := 0
Loop
{
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 10
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 10
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 10
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 10
		}
		COUNTER += 1
		ToolTip, %COUNTER%
		If (DISTANCIA_DIREITA < DISTANCIA_ESQUERDA)
		{
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
	}
	Sleep 10
}

Return
sou muito iniciante no ahk nao entendi

qual linha eu devo ir alterando e pra que esses numeros que ficam aparecendo quando aparece a boia ?? conforme eu fico controlando a boia esse numero vai subindo.
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

05 Mar 2020, 08:56

Bom dia.

Os números são parte do código usado durante a etapa de desenvolvimento. Nesse caso específico, eu usei para saber quantas vezes o script tinha contado as distâncias da barra verde. O objetivo era entender a velocidade da rotina, para saber se era veloz o bastante para executar a ação sem perder o jogo.

Você pode eliminar a linha ToolTip, %COUNTER% se quiser. Os números deixarão de ser exibidos.

Mas e quanto ao código em si, está funcionando? Está pegando os peixes?
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

05 Mar 2020, 16:00

Gio wrote:
05 Mar 2020, 08:56
Bom dia.

Os números são parte do código usado durante a etapa de desenvolvimento. Nesse caso específico, eu usei para saber quantas vezes o script tinha contado as distâncias da barra verde. O objetivo era entender a velocidade da rotina, para saber se era veloz o bastante para executar a ação sem perder o jogo.

Você pode eliminar a linha ToolTip, %COUNTER% se quiser. Os números deixarão de ser exibidos.

Mas e quanto ao código em si, está funcionando? Está pegando os peixes?
infelizmente nao ele esta soltando por muito tempo e a boia esta chegando no vermelho do lado direito e com isso a linha esta estourando.

acredito que ele esteja confundindo os lados direito e esquerdo porque quando a boia esta perto do laranja do lado direito >>> ele solta por pouco tempo e logo apos começa a precionar dnv... quando a boia esta perto do laranja do lado esquerdo ele tambem solta , porem ele revia continuar presionado.
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

05 Mar 2020, 17:02

Bom, na teoria ele devia funcionar. Mas não estou tão surpreso que não funcione ainda. Por isso que disse que tem muito teste a ser feito para que um projeto desses de fato funcione adequadamente.

Tente aumentar o tempo do {Lbutton Down}. No momento está entre 900ms e 1,4 segundos. Pode colocar entre 1,5 e 2 segundos.

Code: Select all

Random, MILISECONDS, 1500, 2000

Também é possível que o minigame aplique um efeito inverso conforme você segura o mouse. Talvez se você segurar demais a linha, ele caia muito mais rápido depois. Se for isso, pode ser mais complexo definir o tempo certo de {Lbutton Down}.
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

06 Mar 2020, 11:49

Gio wrote:
05 Mar 2020, 17:02
Bom, na teoria ele devia funcionar. Mas não estou tão surpreso que não funcione ainda. Por isso que disse que tem muito teste a ser feito para que um projeto desses de fato funcione adequadamente.

Tente aumentar o tempo do {Lbutton Down}. No momento está entre 900ms e 1,4 segundos. Pode colocar entre 1,5 e 2 segundos.

Code: Select all

Random, MILISECONDS, 1500, 2000

Também é possível que o minigame aplique um efeito inverso conforme você segura o mouse. Talvez se você segurar demais a linha, ele caia muito mais rápido depois. Se for isso, pode ser mais complexo definir o tempo certo de {Lbutton Down}.
ele e complexo sim porque depende do peixe que voce puxa fica "pesado" a boia de puxar e quando solta ele volta mais rapido...
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

06 Mar 2020, 13:21

Pois é. Isso era meio que previsível. Mas como disse: não se preocupe. O que temos que fazer é ir ajustando até que funcione.

Próximo teste:

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	ATUAL := A_TickCount
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 5
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 5
		}
		If (DISTANCIA_DIREITA < DISTANCIA_ESQUERDA + 125)
		{
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
	}
	Sleep 10
}

Return
:arrow: Agora o clique ocorre ainda que a bóia esteja bem mais próxima do limite à esquerda.
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

13 Mar 2020, 12:54

Gio wrote:
06 Mar 2020, 13:21
Pois é. Isso era meio que previsível. Mas como disse: não se preocupe. O que temos que fazer é ir ajustando até que funcione.

Próximo teste:

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	ATUAL := A_TickCount
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 5
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 5
		}
		If (DISTANCIA_DIREITA < DISTANCIA_ESQUERDA + 125)
		{
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
	}
	Sleep 10
}

Return
:arrow: Agora o clique ocorre ainda que a bóia esteja bem mais próxima do limite à esquerda.
ola infelizmente estive fora por uns dias e nao conseguir editar o script, esta ultima edição nao melhorou nem piorou nada no script. parece que o script nao esta reconhecendo as cores vermelhar laranjas e verdes ... sera que se nos focar apenas o lado direiro nao melhoraria ?? porque a unica coisa que esta mudando o script q o tempo de puxar e soltar... ele nao esta reconhecendo a hora que esta na area vermelha ou laranja ...
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

18 Mar 2020, 15:36

GaahFlash wrote:
13 Mar 2020, 12:54
Gio wrote:
06 Mar 2020, 13:21
Pois é. Isso era meio que previsível. Mas como disse: não se preocupe. O que temos que fazer é ir ajustando até que funcione.

Próximo teste:

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	ATUAL := A_TickCount
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Se a cor for encontrada, ErrorLevel recebe o valor 0.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 5
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 5
		}
		If (DISTANCIA_DIREITA < DISTANCIA_ESQUERDA + 125)
		{
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
	}
	Sleep 10
}

Return
:arrow: Agora o clique ocorre ainda que a bóia esteja bem mais próxima do limite à esquerda.
ola infelizmente estive fora por uns dias e nao conseguir editar o script, esta ultima edição nao melhorou nem piorou nada no script. parece que o script nao esta reconhecendo as cores vermelhar laranjas e verdes ... sera que se nos focar apenas o lado direiro nao melhoraria ?? porque a unica coisa que esta mudando o script q o tempo de puxar e soltar... ele nao esta reconhecendo a hora que esta na area vermelha ou laranja ...

Ninguém ?
User avatar
Gio
Posts: 1075
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

19 Mar 2020, 09:14

Bom dia Gaahflash.

É importante que entenda que somente você tem acesso ao jogo em questão. Se você não puder compreender o código e realizar o ajuste fino, o código provavelmente não funcionará no jogo.

Eu modifiquei o código abaixo para ser ainda mais auto-explicativo no seu funcionamento. Agora, ele exibe um ToolTip no início da área de busca contendo a informação apertar ou soltar, conforme a leitura que ele estiver fazendo da barra verde. Também modifiquei o código para interpretar o soltar a partir da diferença ser >70 (e não mais >125) e inverti as situações de soltar e puxar baseado na sua descrição.

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	ATUAL := A_TickCount
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Neste caso a bóia foi encontrada. iniciam-se os comandos para ler a barra verde.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 5
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 5
		}
		If (DISTANCIA_DIREITA > DISTANCIA_ESQUERDA - 70) ; Neste caso a bóia foi encontrada e a posição dela na barra verde justifica apertar o mouse um pouco.
		{
			ToolTip, APERTAR, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
		else ; Nesse caso, a bóia foi encontrada, mas a posição atual é muito próxima da lateral esquerda. Melhor soltar o botão do mouse até que ela caia um pouco.
		{
				ToolTip, SOLTAR, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%
		}
	}
	else
	{
		ToolTip ; nesse caso, o tooltip será desligado, pois a bóia não foi encontrada.
	}
	Sleep 10
}

Return

:arrow: Se possível grave um vídeo do script em funcionamento para que possa ver o que está ocorrendo.
GaahFlash
Posts: 64
Joined: 29 Aug 2019, 16:59

Re: EXISTE ALGUN SCRIPT PARA JOGOS DE PESCA

19 Mar 2020, 15:12

Gio wrote:
19 Mar 2020, 09:14
Bom dia Gaahflash.

É importante que entenda que somente você tem acesso ao jogo em questão. Se você não puder compreender o código e realizar o ajuste fino, o código provavelmente não funcionará no jogo.

Eu modifiquei o código abaixo para ser ainda mais auto-explicativo no seu funcionamento. Agora, ele exibe um ToolTip no início da área de busca contendo a informação apertar ou soltar, conforme a leitura que ele estiver fazendo da barra verde. Também modifiquei o código para interpretar o soltar a partir da diferença ser >70 (e não mais >125) e inverti as situações de soltar e puxar baseado na sua descrição.

Code: Select all

; Passos 1 e 2: buscamos o conteúdo do arquivo Concepts.htm que está disponibilizado na internet no repositório do AutoHotkey.
; O código abaixo busca o arquivo no link, lê o conteúdo de texto inteiro do arquivo e grava na variável CONTEUDO_DO_ARQUIVO.
; O exemplo vem da página de ajuda do comando URLDownloadToFile (https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm)

SetBatchLines, -1
#SingleInstance, Force

AREA_CENTRAL_X1 := (A_ScreenWidth / 2) - 150
AREA_CENTRAL_Y1 :=  (A_ScreenHeight / 2) - 150
AREA_CENTRAL_X2 := (A_ScreenWidth / 2) + 150
AREA_CENTRAL_Y2 :=  (A_ScreenHeight / 2) + 150

Loop
{
	ATUAL := A_TickCount
	CoordMode, Pixel, Screen
	PixelSearch, FoundX, FoundY, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%, %AREA_CENTRAL_X2%, %AREA_CENTRAL_Y2%, 0xFf7a09, 3, Fast RGB
	If (ErrorLevel = 0) ; Neste caso a bóia foi encontrada. iniciam-se os comandos para ler a barra verde.
	{
		CoordMode, ToolTip, Screen
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX - 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_ESQUERDA := 0 ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		While ((GREEN > RED) AND (GREEN > BLUE))
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X := NOVO_X - 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_ESQUERDA := DISTANCIA_ESQUERDA + 5
		}
		NOVO_Y := FoundY + 20
		NOVO_X := FoundX + 12
		GREEN := 10, RED := 0, BLUE := 0, DISTANCIA_DIREITA := 0
		While ((GREEN > RED) AND (GREEN > BLUE)) ; Estes valores iniciais são apenas para iniciar o while. Não têm outro sentido.
		{
			CoordMode, Pixel, Screen
			PixelGetColor, COR_ENCONTRADA, %NOVO_X%, %NOVO_Y%, RGB
			CoordMode, Tooltip, Screen
			NOVO_X += 5
			RED := "0x" . SubStr(COR_ENCONTRADA, 3, 2)
			GREEN := "0x" . SubStr(COR_ENCONTRADA, 5, 2)
			BLUE := "0x" . SubStr(COR_ENCONTRADA, 7, 2)
			DISTANCIA_DIREITA := DISTANCIA_DIREITA + 5
		}
		If (DISTANCIA_DIREITA > DISTANCIA_ESQUERDA - 70) ; Neste caso a bóia foi encontrada e a posição dela na barra verde justifica apertar o mouse um pouco.
		{
			ToolTip, APERTAR, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%
			Send {LButton Down}
			Random, MILISECONDS, 900, 1400
			Sleep %MILISECONDS%
			Send {LButton Up}
		}
		else ; Nesse caso, a bóia foi encontrada, mas a posição atual é muito próxima da lateral esquerda. Melhor soltar o botão do mouse até que ela caia um pouco.
		{
				ToolTip, SOLTAR, %AREA_CENTRAL_X1%, %AREA_CENTRAL_Y1%
		}
	}
	else
	{
		ToolTip ; nesse caso, o tooltip será desligado, pois a bóia não foi encontrada.
	}
	Sleep 10
}

Return

:arrow: Se possível grave um vídeo do script em funcionamento para que possa ver o que está ocorrendo.
veja , mesmo tando perto da area vermelha ele esta soltando


Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 1 guest