Somar Variavel Topic is solved

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

Moderator: Gio

User avatar
Hologram
Posts: 140
Joined: 06 May 2020, 16:47

Somar Variavel

14 Sep 2020, 11:02

Script:

Code: Select all

	ImageSearch, PosX1, PosY1, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, %A_ScriptDir%/search/fish1.png
	If (ErrorLevel = 0)
	{
		MouseMove, %PosX1%, %PosY1%
		MouseClick, left
		Random, PosicaoX1, 50, 250
		Random, PosicaoY1, 50, 250
		PosX1 := PosX1 + %PosicaoX1%
		PosY1 := PosY1 + %PosicaoY1%
		MouseMove, %PosX1%, %PosY1% 
		Sleep, 100
		Send, {f11}
		MouseClick, left
		Sleep, 100
		MouseClick, left
		Targetar := 1
		}
Estou tendo problema na linha 8 e 9 pra pegar a PosX1 e PosY1 + um numero aleatorio
Discord: Npc Bugado#9074



local config = {
delrey = getPlayerCarValue(cid, DELREY),
cigarro = getPlayerCancer(cid, DERBY),
prostituta = getPlayerAIDS(cid, cracuda),
tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end


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

Re: Somar Variavel  Topic is solved

14 Sep 2020, 12:22

Bom dia Hologram.

Se você envolver o nome de uma variável em percentuais DENTRO de uma expressão matemática, você vai causar o efeito da dupla-dereferenciação. Este efeito existe para que você possa definir os nomes de variáveis de maneira dinâmica (ou seja, o nome da variável a ser dereferenciada está dentro de outra variável ou uma parte do nome está).

Dereferenciar significa buscar o conteúdo de uma variável. Dupla-Dereferenciação significa buscar o conteúdo de uma variável cujo nome é conteúdo de outra variável.

Por este motivo, se você quiser simplesmente usar o conteúdo da variável PosicaoX1 após o símbolo de inserção de valores matemáticos (:=), você NÃO deve usar percentuais.

Code: Select all

PosX1 := PosX1 + PosicaoX1
PosY1 := PosY1 + PosicaoY1


Exemplos ilustrativos de como deve ser usado:

:arrow: Exemplo de Dereferenciação simples da variável VAR:

Code: Select all

VAR := 3
RES := 2 + VAR
msgbox % RES

:arrow: Exemplo de Dupla-Dereferênciação da variável VAR:

Code: Select all

VAR := 3
NOME_DE_VAR := "VAR"
RES := 2 + %NOME_DE_VAR%
msgbox % RES

:arrow: Exemplo de dupla-dereferênciação da variável VAR para reconstrução dinâmica do nome da variável:

Code: Select all

VAR_1 := 10
VAR_2 := 30
VAR_3 := 50


Loop 3
{
	NOME_DE_VAR := "VAR_" . A_Index
	RES := 2 + %NOME_DE_VAR%
	msgbox % RES
}

:arrow: No código acima, usamos a iteração atual do loop (A_Index) para que o mesmo código acesse variáveis diferentes em diferentes iterações. Assim, na primeira iteração, o cálculo de RES vai buscar o conteúdo de VAR_1 (que é 10) e somar 2 a ele, de modo que a msgbox vai apresentar 12. Já na segunda iteração, o mesmo cálculo de RES agora vai buscar o conteúdo de VAR_2 (que é 30) e somar 2 a ele, de modo que a msgbox vai apresentar 32. Por fim, na terceira iteração do loop, faremos uso do conteúdo de VAR_3, que é 50. Com isso, a última iteração vai apresentar 52 como resposta.

Espero ter ajudado, se ainda tiver alguma dúvida sobre o tema, basta postar abaixo.

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 38 guests