J'essaie d'améliorer mes compétences AHK en faisant des programmes aléatoires et stupides qui utilisent différents concepts de différentes façons. En ce moment, je suis en train de créer un programme pour battre les codes pour Rust, un jeu à vapeur. Mon code est listé ci-dessous, mais il ne semble pas entrer correctement le code. La majeure partie du code est dans enterCode()
, de sorte que je peux l'appeler disons, 20 fois, sans avoir à écrire chaque déclaration MouseClick
un million de fois. Seul problème est, if (codeArray[%A_Index%] = x)
ne semble pas fonctionner correctement. Est-ce que je ne passe pas les paramètres de la fonction dans le tableau correctement? Il effectue la première section correctement, puis ne fait rien après cela, donc il n'y a pas d'erreur que je peux regarder. Ma seule supposition est que rien ne se met dans le tableau, mais j'ai regardé beaucoup d'autres exemples de programmes et cela semble juste. (De plus, les deux dernières lignes de mon code ne sont pas fusionner avec le reste, mais ils sont tous les deux dans le même programme.)Impossible de récupérer des éléments du tableau? [AHK]
enterCode(number1, number2, number3, number4)
{
codeArray=:[] ;define the array, with nothing in it
codeArray[1]:=number1 ;enumerate passed parameters into array for loop
codeArray[2]:=number2
codeArray[3]:=number3
codeArray[4]:=number4
sleep 100
send {e down} ;open door context menu
sleep 200
MouseClick, left, 942, 536 ;click to open code interface
sleep 500
send {e up}
sleep 200
loop, 4
{
if (codeArray[%A_Index%] = 0)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 1)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 2)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 3)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 4)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 5)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 6)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 7)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 8)
{
MouseClick, left, 1217, 668
continue
}
if (codeArray[%A_Index%] = 9)
{
MouseClick, left, 1217, 668
continue
}
}
}
F3::
enterCode(1,2,3,4)
Je suis curieux de savoir pourquoi l'ajout d'espaces fixerait le problème. –
Ce n'est pas le cas. Changer la faute de frappe '=:' en ': =' le répare. L'espace blanc permet de distinguer l'opérateur d'affectation –