Bom dia Theon.
A variável
life aparenta estar sendo usada no seu código ANTES de ser populada. Perceba que a linha que insere valor nesta variável é a linha 42, porém você está querendo dereferenciar ela (usar o valor) já na linha 2.
Fiquei com a impressão de que você simplesmente escreveu o código que queria executar acima de um outro script, porém não percebeu que o código escrito precisa que o código abaixo processe primeiro. O correto seria escrever o código observando a ordem de execução do script.
Os scripts seguem uma ordem de execução na qual a primeira linha do script será sempre a primeira linha a ser executada. Depois, se esta não contiver um "pulo" para algum outro lugar e nem for uma linha de parada, o script passará a executar a segunda linha. Logo, ao tentar popular a variável text na segunda linha do script, nada do que estiver abaixo dela terá executado ainda.
Vejo que a linha 42 (onde a variável
life recebe seu valor) se encontra dentro da label
menu, que por sua vez está condicionada a um SetTimer na linha 39. Quando se condiciona uma label a um SetTimer, ela para de executar conforme as linhas e passa a executar conforme um temporizador. OCORRE que esse condicionamento não será feito até que a linha 39 seja executada (pois é ela quem cria o temporizador da label
menu).
Minha sugestão é que você tente recortar todo o código anterior à linhha
#include <classMemory> (linhas 1 a 9) e cole ele entre as linhas 43 e 44 (ou seja, após a linha
url_tovar(str, param) e antes da linha
return. Depois disso teste o script e veja se funcionou. Também é preciso fazer uma ressalva: o código executa um temporizador em loop, ou seja, pode estar funcionando como uma espécie de "espera" de outro programa. Se for este o caso, você deve condicionar seu código à variável ter de fato recebido dados. Isso pode ser feito com um [url=
https://www.autohotkey.com/docs/commands/IfExpression.htm]If[/if] dentro da label menu. Também vale a pena verificar se o código escrito deve de fato executar toda vez que a label
menu execute. Se não for este o caso, você deve criar o gatilho que faça com que o código execute APÓS a label menu ter feito seu trabalho (um exemplo seria condicionar uma chamada a uma segunda label que terá o código, e a condição será conforme você deseja que o código rode [por exemplo, uma vez apenas ou etc]).
Bom dia Theon.
A variável [c]life[/c] aparenta estar sendo usada no seu código ANTES de ser populada. Perceba que a linha que insere valor nesta variável é a linha 42, porém você está querendo dereferenciar ela (usar o valor) já na linha 2.
Fiquei com a impressão de que você simplesmente escreveu o código que queria executar acima de um outro script, porém não percebeu que o código escrito precisa que o código abaixo processe primeiro. O correto seria escrever o código observando a ordem de execução do script.
Os scripts seguem uma ordem de execução na qual a primeira linha do script será sempre a primeira linha a ser executada. Depois, se esta não contiver um "pulo" para algum outro lugar e nem for uma linha de parada, o script passará a executar a segunda linha. Logo, ao tentar popular a variável text na segunda linha do script, nada do que estiver abaixo dela terá executado ainda.
Vejo que a linha 42 (onde a variável [c]life[/c] recebe seu valor) se encontra dentro da label [c]menu[/c], que por sua vez está condicionada a um SetTimer na linha 39. Quando se condiciona uma label a um SetTimer, ela para de executar conforme as linhas e passa a executar conforme um temporizador. OCORRE que esse condicionamento não será feito até que a linha 39 seja executada (pois é ela quem cria o temporizador da label [c]menu[/c]).
:arrow: Minha sugestão é que você tente recortar todo o código anterior à linhha [c]#include <classMemory>[/c] (linhas 1 a 9) e cole ele entre as linhas 43 e 44 (ou seja, após a linha [c]url_tovar(str, param)[/c] e antes da linha [c]return[/c]. Depois disso teste o script e veja se funcionou. Também é preciso fazer uma ressalva: o código executa um temporizador em loop, ou seja, pode estar funcionando como uma espécie de "espera" de outro programa. Se for este o caso, você deve condicionar seu código à variável ter de fato recebido dados. Isso pode ser feito com um [url=https://www.autohotkey.com/docs/commands/IfExpression.htm]If[/if] dentro da label menu. Também vale a pena verificar se o código escrito deve de fato executar toda vez que a label [c]menu[/c] execute. Se não for este o caso, você deve criar o gatilho que faça com que o código execute APÓS a label menu ter feito seu trabalho (um exemplo seria condicionar uma chamada a uma segunda label que terá o código, e a condição será conforme você deseja que o código rode [por exemplo, uma vez apenas ou etc]).