Advertisement
Guest User

PlayerRange

a guest
Feb 26th, 2024
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.12 KB | None | 0 0
  1. -- Rayon de recherche des joueurs
  2. local range = 200
  3.  
  4. -- Déclaration de la variable qui stockera l'Advanced Peripherals Player Detector
  5. local playerDetector
  6.  
  7. -- Recherche de l'Advanced Peripherals Player Detector connecté
  8. for _, peripheralName in ipairs(peripheral.getNames()) do
  9.     if peripheral.getType(peripheralName) == "playerDetector" then
  10.         playerDetector = peripheral.wrap(peripheralName)
  11.         break
  12.     end
  13. end
  14.  
  15. -- Vérification que l'Advanced Peripherals Player Detector a été trouvé
  16. if playerDetector == nil then
  17.     print("Advanced Peripherals Player Detector non trouvé")
  18.     return
  19. else
  20.     print("Advanced Peripherals Player Detector trouvé")
  21. end
  22.  
  23. -- Déclaration de la variable qui stockera l'Advanced Peripherals Monitor
  24. local monitor
  25.  
  26. -- Recherche de l'Advanced Peripherals Monitor connecté
  27. for _, peripheralName in ipairs(peripheral.getNames()) do
  28.     if peripheral.getType(peripheralName) == "monitor" and peripheral.wrap(peripheralName).isColour() then
  29.         monitor = peripheral.wrap(peripheralName)
  30.         break
  31.     end
  32. end
  33.  
  34. -- Vérification que l'Advanced Peripherals Monitor a été trouvé
  35. if monitor == nil then
  36.     print("Advanced Peripherals Monitor non trouvé")
  37.     return
  38. else
  39.     print("Advanced Peripherals Monitor trouvé")
  40. end
  41.  
  42.  
  43. -- Fonction pour afficher la liste des joueurs détectés
  44. local function displayPlayerList(playerList)
  45.     -- Définir les couleurs d'arrière-plan et de texte pour l'interface
  46.     monitor.setBackgroundColor(colors.black)
  47.     monitor.setTextColor(colors.white)
  48.     -- Effacer l'écran et afficher l'en-tête de l'interface
  49.     monitor.clear()
  50.     monitor.setCursorPos(1, 1)
  51.     monitor.write("===============================")
  52.     monitor.setCursorPos(1, 2)
  53.     monitor.write("      PLAYERS IN AREA      ")
  54.     monitor.setCursorPos(1, 3)
  55.     monitor.write("      RANGE: "..range..string.rep(" ", 27 - #tostring(range)).."|")
  56.     monitor.setCursorPos(1, 4)
  57.     monitor.write("===============================")
  58.     -- Afficher chaque joueur détecté à partir de la ligne 5
  59.     for i, playerName in ipairs(playerList) do
  60.         monitor.setCursorPos(1, i + 4)
  61.         monitor.write("  " .. playerName .. string.rep(" ", 27 - #playerName) .. "|")
  62.     end
  63.     -- Afficher le bas de l'interface
  64.     monitor.setCursorPos(1, #playerList + 5)
  65.     monitor.write("===============================")
  66. end
  67.  
  68. -- Boucle principale du programme
  69. while true do
  70.     -- Vérification si un joueur est en ligne dans le rayon de recherche
  71.     local playersInRange = playerDetector.getPlayersInRange(range)
  72.     if #playersInRange > 0 then
  73.         -- Si un joueur est détecté, afficher la liste des joueurs
  74.         displayPlayerList(playersInRange)
  75.         -- Activer le signal de redstone pour indiquer qu'un joueur est en ligne
  76.         redstone.setOutput("right", true)
  77.     else
  78.         -- Si aucun joueur n'est détecté, effacer l'écran et désactiver le signal de redstone
  79.         monitor.clear()
  80.         redstone.setOutput("right", false)
  81.     end
  82.     -- Attendre 1 seconde avant de vérifier à nouveau si un joueur est en ligne
  83.     sleep(30)
  84. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement