2016-06-07 2 views
0

C'est une question assez difficile à poser parce que je ne peux pas tout mettre dans une question, mais je peux expliquer le problème. Ma logique de jeu/script de jeu est essentiellement:Comment est-ce que je ferais un lua stopper une boucle if dans une boucle while while?

function game() 
-- stuff 
end 

while true do 
    while players < 2 do 
    -- tell player to invite more players and all that jazz 
    end 

    if players >= 2 then 
     game() 
    end 
end 

(c'est juste pseudocode, j'ignore des choses comme attente() et API Roblox pour simplifier parce que l'idée est toujours la même, mais je pense que la question est générale Maintenant, dans ma fonction 'jeu', quand les joueurs sont prêts (c'est-à-dire ne sont pas dans un menu, etc.), ils téléporteront tous les joueurs prêts au point où se trouve le jeu. Malheureusement, puisque 'game()' est exécuté tout le temps, les joueurs continuent d'être téléportés encore et encore et ça ne s'arrête pas. Je ne suis pas sûr comment faire est de sorte que seulement les téléports une fois même si 'game()' est constamment exécuté.

Voici le code de la téléportation explique simplement sans avoir besoin de connaissances de l'API Roblox:

if #ready >= 2 then -- if the players in the list 'ready' (the players that are ready to start the game) 
    print(player.Name .. " moved") -- show which player is moved 
    player:MoveTo(--place where the game is)) -- actually move the player 
end 

Le problème est que depuis « jeu() » est en cours d'exécution tout le temps, les joueurs sont constamment déplacés à où le jeu est (ce qui rend impossible pour eux de se déplacer). Comment pourrais-je amener Lua à arrêter de déplacer les joueurs après que tous les joueurs aient été déplacés? J'ai essayé d'utiliser une boucle for mais cela a continué à être répété depuis que game() est répété. J'espère que cela est compréhensible pour quiconque connaît Lua.

+0

Pouvez-vous «sortir» de la boucle après l'appel 'game()'? – itdoesntwork

+0

@itdoesntwork Si j'utilise break alors seulement 1 joueur serait déplacé. – user3124306

+0

Puis marquez les joueurs quand ils sont déplacés et ne déplacez que ceux qui ne le sont pas? – itdoesntwork

Répondre

1

Il me semble que vous voulez maintenir deux listes: en cours de lecture, et souhaitant jouer. Je ne sais pas exactement à quelle logique vous vous attendez (les gens peuvent-ils rejoindre un jeu en cours?), Mais l'idée de base est que vous ne lanceriez le jeu que sur la liste des joueurs qui souhaitent jouer , pas les joueurs qui jouent actuellement.