Advertisement
Patosho

endGame con un jugador + mensaje victoria

Dec 7th, 2015
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.06 KB | None | 0 0
  1. local gameFinished = true
  2. local gameLoaded
  3. local gameStarted
  4. local playersInRoom = 0
  5. local playersAlive
  6. local mice = {}
  7. local isAlive = {}
  8.  
  9. local text = {
  10.     en = {
  11.         victory = "%s has won the game.";
  12.         nocontest = "Time up! No one won.";
  13.     },
  14.     es = {
  15.         victory = "%s ha ganado la partida.";
  16.         nocontest = "ยกTiempo! Nadie ganรณ.";
  17.     }
  18. }
  19.  
  20. function main()
  21.     tfm.exec.disableAutoShaman(true)
  22.     tfm.exec.disableAutoNewGame(true)
  23.    
  24.     for n in pairs(tfm.get.room.playerList) do
  25.         eventNewPlayer(n)
  26.     end
  27.     startGame()
  28. end
  29.  
  30. function startGame()
  31.     tfm.exec.newGame(0)
  32. end
  33.  
  34. function endGame()
  35.     gameFinished = true
  36.     tfm.exec.setGameTime(5)
  37.    
  38.     if playersAlive == 1 then
  39.         for name in pairs(isAlive) do
  40.             tfm.exec.chatMessage(string.format(lang().victory, name), nil)
  41.             tfm.exec.giveCheese(name)
  42.             tfm.exec.playerVictory(name)
  43.             break
  44.         end
  45.     elseif playersAlive > 1 then
  46.         for name in pairs(isAlive) do
  47.             tfm.exec.killPlayer(name)
  48.         end
  49.         tfm.exec.chatMessage(lang().nocontest, nil)
  50.     end
  51. end
  52.  
  53. function eventNewPlayer(name)
  54.     playersInRoom = playersInRoom + 1
  55.     mice[name] = {
  56.     }
  57. end
  58.  
  59. function eventPlayerLeft(name)
  60.     playersInRoom = playersInRoom - 1
  61.     mice[name] = nil
  62. end
  63.  
  64. function eventNewGame()
  65.     gameLoaded = true
  66.     gameStarted = false
  67.     gameFinished = false
  68.    
  69.     playersAlive = playersInRoom
  70.     isAlive = {}
  71.     for name,m in pairs(mice) do
  72.         isAlive[name] = true
  73.     end
  74. end
  75.  
  76. function eventPlayerDied(name)
  77.     if gameFinished then return end
  78.    
  79.     playersAlive = playersAlive - 1
  80.     isAlive[name] = nil
  81.    
  82.     checkPlayers()
  83. end
  84.  
  85. function eventPlayerWon(name)
  86.     playersAlive = playersAlive - 1
  87.     checkPlayers()
  88. end
  89.  
  90. function checkPlayers()
  91.     if playersAlive == 1 then
  92.         endGame()
  93.     end
  94. end
  95.  
  96. function eventLoop(t, tr)
  97.     if not gameLoaded then return end
  98.     if not gameStarted then
  99.         if t > 3000 then
  100.             gameStarted = true
  101.         end
  102.         return
  103.     end
  104.    
  105.    
  106.    
  107.     if not gameFinished and tr <= 0 then
  108.         endGame()
  109.     elseif gameFinished and tr <= 0 then
  110.         startGame()
  111.     end
  112. end
  113.  
  114. function lang()
  115.     return text[tfm.get.room.community] or text.en
  116. end
  117.  
  118. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement