Advertisement
Guest User

Untitled

a guest
May 24th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. local scanner = peripherals.wrap("top")
  2.  
  3. local currentPlayers = {}
  4. local playerIndexes = {}
  5.  
  6. local addPlayer = function(list, playerName)
  7. local player = {name = playerName, check = false}
  8. table.insert(list, player)
  9. playerIndexes[playerName] = #list
  10. end
  11.  
  12. local removePlayer = function(list, playerName)
  13. local index = playerIndexes[playerName]
  14. table.remove(list, index)
  15. playerIndexes[playerName] = nil
  16. end
  17.  
  18. local reset = function(list)
  19. for _,v in ipairs(list) do
  20. v.check = false
  21. end
  22. end
  23.  
  24. local contains = function(playerName)
  25. return playerIndexes[playerName] ~= nil
  26. end
  27.  
  28. while(true) do
  29. for _, name in ipairs(scanner.getPlayerNames()) do
  30. if(not contains(name)) then --new player has entered
  31. addPlayer(currentPlayers, name)
  32. local pos = sensor.getPlayerData(name).position
  33. print("Player: ", name, " has entered at x: ", pos.x, " y: ", pos.y, " z: ", pos.z)
  34. end
  35. currentPlayers[name].check = true
  36. end
  37.  
  38. for _, player in ipairs(currentPlayers) do
  39. if(not player.check) then
  40. print("Player: ", player.name, " has left.")
  41. removePlayer(player.name)
  42. end
  43. end
  44. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement