Post by GaahFlash » 26 May 2020, 15:37
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
Se possível grave um vídeo do script em funcionamento para que possa ver o que está ocorrendo.
boa tarde gio , estava voltando a mexer no script e vi que tem uma linha invertida
"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."
quando a boia esta na esquerda ele deveria puxar e nao soltar como esta escrito nessa linha , qual linha devo modificar ??
esse ramdom de puxar e soltar nao esta funcionando , ele puxa quando tem que soltar e solta quando tem que puxar.
[quote=Gio post_id=318253 time=1584627280 user_id=89]
Bom dia Gaahflash.
[u]É importante que entenda que somente você tem acesso ao jogo em questão[/u]. 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) [u]e inverti as situações de soltar e puxar baseado na sua descrição[/u].
[code]; 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[/code]
:arrow: Se possível grave um vídeo do script em funcionamento para que possa ver o que está ocorrendo.
[/quote]
boa tarde gio , estava voltando a mexer no script e vi que tem uma linha invertida
"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."
quando a boia esta na esquerda ele deveria puxar e nao soltar como esta escrito nessa linha , qual linha devo modificar ??
esse ramdom de puxar e soltar nao esta funcionando , ele puxa quando tem que soltar e solta quando tem que puxar.