2010-11-14 36 views
2

J'ai trois fonctions locales que je veux utiliser pour toujours dans la mémoire:Comment faire une boucle infinie dans le code Lua?

proxy:PlayerParamRecover(); 
proxy:PlayerRecover(); 
proxy:EnableInvincible(10000,true); 

Je ne sais pas comment les ajouter dans une boucle infinie.

+1

Que voulez-vous dire par «utiliser pour toujours en mémoire»? – Zecc

+4

S'il vous plaît noter que la langue est appelée "Lua", pas "LUA". C'est le nom propre de la lune de la Terre, en portugais. – RBerteig

+0

Si vous voulez éditer votre question, vous pouvez cliquer sur le lien "éditer" ci-dessous les tags. Essaie. – Will

Répondre

11

Vous voulez une boucle while:

while true do 
    proxy:PlayerParamRecover() 
    proxy:PlayerRecover() 
    proxy:EnableInvincible(10000,true) 
end 

Informations complémentaires here

Notez que, puisque la boucle while toujours avoir le contrôle du programme après l'entrée dans cette boucle, tout code que vous écrivez après il ne sera jamais exécuté. Les boucles infinies ne sont utiles que dans les cas extrêmes - assurez-vous que ce que vous voulez faire le justifie.

+0

Une chose: vous ne pouvez pas écrire le colon après "faire", c'est ce que vous feriez en Python, mais pas en Lua –

+0

@MiKy Mis à jour ma réponse, merci! –

+0

De même, aucun point-virgule n'est requis dans Lua même si vous avez plusieurs instructions sur la même ligne. –

0

Il y a deux façons d'utiliser la boucle infinie:

repeat 
-- do something 
until false 

- ou -

while true do 
-- do something 
end 
0

Si vous vouliez dire « Bonjour » dans la barre de commande à chaque seconde, à l'infini, ou quelque chose comme ça, vous pouvez utiliser le format ci-dessous:

while true do 
    -- whatever 
    end 

Par exemple,

while true do 
    print("Hello") 
    wait(1) 
    end 
+1

alors que cela est factuellement précis, le code ci-dessus va bloquer le fil, et est peu probable la bonne solution au problème de la personne –