Proszę uprzejmie. Napisałem Panu funkcję realizująca opisane wyżej losowanie. Gracze mają przypisane lokalizacje w zmiennej {randomizedSpawnLocations::%nazwa gracza%} (bądź UUID gracza, w zależności od ustawień w pliku konfiguracyjnym pluginu Skript).
function assignSpawnsToPlayers(playersList: players, locationsList: locations):
stop if size of {_playersList::*} != size of {_locationsList::*}
loop {_playersList::*}:
set {_randomLoc} to random element out of {_locationsList::*}
set {randomizedSpawnLocations::%loop-value%} to {_randomLoc}
remove {_randomLoc} from {_locationsList::*}
Załączam również przykład jej wykorzystania. Dodałem komentarze dla łatwiejszego zrozumienia.
Zaznaczam, że ani funkcja, ani poniższy kod ją wykorzystujący, nie były testowane.
command /teleportacja:
permission: server.command.teleportacja
trigger:
# Tworzenie 8 lokalizacji, do których gracze będą teleportowani
set {_locList::1} to location at (100, 100, 100) in world "world"
set {_locList::2} to location at (200, 100, 200) in world "world"
set {_locList::3} to location at (300, 100, 300) in world "world"
set {_locList::4} to location at (400, 100, 400) in world "world"
set {_locList::5} to location at (500, 100, 500) in world "world"
set {_locList::6} to location at (600, 100, 600) in world "world"
set {_locList::7} to location at (700, 100, 700) in world "world"
set {_locList::8} to location at (800, 100, 800) in world "world"
# Ustawienie ilości losowanych graczy (zabezpieczenie przed losowaniem 8 graczy,
# gdy na serwerze jest mniej niż 8)
set {_numberOfRandomPlayers} to min(size of all players, 8)
# Wybieranie nie więcej niż 8 losowych graczy na serwerze
while size of {_plList::*} < {_numberOfRandomPlayers}:
set {_randomPlayer} to random player out of all players
{_plList::*} doesn't contain {_randomPlayer}
add {_randomPlayer} to {_plList::*}
# Wykorzystanie napisanej wyżej funkcji
assignSpawnsToPlayers({_plList::*}, {_locList::*})
# Teleportacja graczy do przydzielonych im lokalizacji
loop {_plList::*}:
teleport loop-value to {randomizedSpawnLocations::%loop-value%}
send "&aZostałeś przeteleportowany!" to loop-value
W razie ewentualnych problemów, bądź pytań, proszę śmiało pisać. Chętnie pomogę.
Pozdrawiam.