chasse a l'homme code verse

Mon souci est le suivant je souhaiterais mettre 50 personnes dans l’équipe 1 Quand un joueur interagit avec un bouton il passe à l’équipe 2 Avec une classe différente et son objectif est de survivre quand ce joueur est éliminé par un joueur de l’équipe 1 Celui ci passe à l’équipe 2 et se fait chasser par les autres je n’arrive pas à faire le système sans verse mais débutant avec celui ci mon code ne fonctionne pas le voici `using { /Fortnite.com/Devices }

using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Teams }
using { /Verse.org/Concurrency }
using { /Fortnite.com/Game }

Définition de la classe pour votre appareil personnalisé

player_equipe := class(creative_device):

@editable
BoutonChangementEquipe : button_device = button_device{}

@editable
GestionnaireClasseEquipe : class_and_team_selector_device = class_and_team_selector_device{}

@editable
SpawnsPad : []player_spawner_device = array{}

@editable
ElimManager : elimination_manager_device = elimination_manager_device{}

# Référence aux gestionnaires d'équipe pour les équipes 1 et 2
@editable
Team1Manager : team_manager_device = team_manager_device{}
@editable
Team2Manager : team_manager_device = team_manager_device{}

'class_and_team_selector_device'
@editable
ClasseEquipe1 : class_device = class_device{}
@editable
ClasseEquipe2 : class_device = class_device{}

OnBegin<override>()<suspends>:void =
    # Attribuer tous les joueurs de tous les spawners à l'équipe 1 au début du jeu
    Print("Début du jeu : Attribution des joueurs aux équipes.")
    for player_spawner_device : SpawnsPad:
        PlayerSpawner.SpawnedEvent.Subscribe(AssignPlayerToTeam1)

    



# S'abonner à l'événement d'interaction du bouton
BoutonChangementEquipe.InteractedEvent.Subscribe(OnBoutonChangementEquipeInteracted)

# S'abonner à l'événement d'élimination
ElimManager.EliminatedEvent.Subscribe(OnPlayerEliminated)

# Fonction pour assigner un joueur à l'équipe 1
AssignPlayerToTeam1(Agent : agent):
    Print("Nouveau joueur apparu, attribution à l'équipe 1.")
    if (FortPlayer := player(Agent)):
        Team1Manager.AddPlayer(FortPlayer)
        # Optionnel : attribuer une classe par défaut si vous en avez une
        GestionnaireClasseEquipe.Apply(FortPlayer, ClasseEquipe1) # Applique la classe 1 et l'équipe 1
        Print("Joueur assigné à l'équipe 1.")

# Fonction appelée lorsqu'un joueur interagit avec le bouton
OnBoutonChangementEquipeInteracted(Agent : agent):
    Print("Bouton de changement d'équipe interagi.")
    if (FortPlayer := player(Agent)):
        # Vérifier si le joueur est dans l'équipe 1 avant de le déplacer vers l'équipe 2
        if (FortPlayer.GetTeam() = Team1Manager.GetTeam()):
            Team2Manager.AddPlayer(FortPlayer)
            GestionnaireClasseEquipe.Apply(FortPlayer, ClasseEquipe2) # Applique la classe 2 et l'équipe 2
            Print("Joueur de l'équipe 1 passé à l'équipe 2 via le bouton.")
        else:
            Print("Le joueur n'est pas dans l'équipe 1, ou est déjà dans l'équipe 2.")

# Fonction appelée lorsqu'un joueur est éliminé
OnPlayerEliminated(Result : elimination_result):
    Print("Un joueur a été éliminé.")
    # Vérifier si l'éliminateur est dans l'équipe 1 et l'éliminé dans l'équipe 2
    if (EliminatingPlayer := Result.EliminatingAgent?):
        if (EliminatedPlayer := Result.EliminatedAgent?):
            if (EliminatingPlayerTeam := EliminatingPlayer.GetTeam[]):
                if (EliminatedPlayerTeam := EliminatedPlayer.GetTeam[]):
                    if (EliminatingPlayerTeam = Team1Manager.GetTeam() and EliminatedPlayerTeam = Team2Manager.GetTeam()):
                        if (FortPlayerToMove := player(EliminatingPlayer)):
                            Print("Un joueur de l'équipe 1 a éliminé un joueur de l'équipe 2. Déplacement vers l'équipe 2.")
                            Team2Manager.AddPlayer(FortPlayerToMove)
                            GestionnaireClasseEquipe.Apply(FortPlayerToMove, ClasseEquipe2) # Applique la classe 2 et l'équipe 2
                            Print("Joueur de l'équipe 1 déplacé vers l'équipe 2 et classe 2.")

`

Hey @Orry_Keyboard how are you? Ça va?

I don’t speak French so I’ll answer your question in both English and translated French to avoid any missundertanding!
Je ne parle pas français, donc je vais répondre à votre question en anglais et en français traduit afin d’éviter tout malentendu!

First of all, you NEED to define the output for each function, otherwise they are not complete and you won’t be able to use them. I added “void=” at the end of each function to make them work.
Tout d’abord, il est nécessaire de définir la sortie pour chaque fonction, sinon elles ne seront pas complètes et vous ne pourrez pas les utiliser. J’ai ajouté “void=” à la fin de chaque fonction pour qu’elles fonctionnent.

To assign all the players to team 1 at the beginning of the match, it’s better to use the GetPlayspace function and loop through the result instead of using the spawners. In addition, to declare a “for loop”, you should do it the way I did it in the fixed version. You don’t need the team manager devices for this.
Pour assigner tous les joueurs à l’équipe 1 au début de la partie, il est préférable d’utiliser la fonction GetPlayspace et de parcourir le résultat avec une boucle plutôt que d’utiliser les spawners. De plus, pour déclarer une boucle for, il faut le faire comme je l’ai fait dans la version corrigée. Vous n’avez pas besoin des dispositifs de gestion d’équipe pour cela.

You also need to add joining players to team 1, so you can subscribe to the “PlayerAdded” event for the GetPlayspace.
Il faut aussi ajouter les joueurs qui rejoignent la partie à l’équipe 1. Pour cela, vous pouvez vous abonner à l’événement “PlayerAdded” via GetPlayspace.

The event for interaction with a button is InteractedWithEvent, not InteractedEvent. I’ve changed the function for the button too, to use a similar logic as for the new joining players.
L’événement pour l’interaction avec un bouton est InteractedWithEvent, et non InteractedEvent. J’ai également modifié la fonction du bouton pour utiliser une logique similaire à celle des nouveaux joueurs rejoignant la partie.

Here is the fixed code using no other devices but the button to test.
Voici le code corrigé, en utilisant uniquement le bouton pour les tests, sans aucun autre dispositif.

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Teams }
using { /Verse.org/Concurrency }
using { /Fortnite.com/Game }

player_equipe := class(creative_device):

    @editable
    BoutonChangementEquipe : button_device = button_device{}

    OnBegin<override>()<suspends>:void =
        # 5 seconds delay before assigning all players to Team 1
        # Délai de 5 secondes avant d’assigner tous les joueurs à l’équipe 1
        Sleep(5.0)
        # Get all players in the game and subscribe to their death events
        # Obtenir tous les joueurs de la partie et s’abonner à leurs événements de mort
        # Move ALL existing players to Team 1
        # Déplacer TOUS les joueurs existants dans l’équipe 1
        AllPlayers := GetPlayspace().GetPlayers()
        for (Player : AllPlayers):
            if (Agent := agent[Player]):
                AssignPlayerToNewTeam(Agent, 0) # Team 1 (index 0)
                SubscribeToPlayerEvents(Agent)

        # Subscribe to the event for players joining the game
        # S’abonner à l’événement des joueurs rejoignant la partie
        GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)

        # S'abonner à l'événement d'interaction du bouton  BoutonChangementEquipe.InteractedWithEvent.Subscribe(OnBoutonChangementEquipeInteracted)


    # Function to add new players to Team 1 and subscribe to its eliminated event
    # Fonction pour ajouter les nouveaux joueurs à l’équipe 1 et s’abonner à leur événement d’élimination
    OnPlayerAdded(Player : player) : void =
        if (Agent := agent[Player]):
            #Subscribe new player to its eliminated event
            # S’abonner à l’événement d’élimination du nouveau joueur
            SubscribeToPlayerEvents(Player)
            AssignPlayerToNewTeam(Player, 0) #0 for team 1


    # Subscribe to events for a specific player
    # S’abonner aux événements pour un joueur spécifique
    SubscribeToPlayerEvents(Agent:agent):void=
        if (Player := player[Agent]):
            if (FortChar := Player.GetFortCharacter[]):
                # Subscribe to the elimination event for this character
                # S’abonner à l’événement d’élimination pour ce personnage
                FortChar.EliminatedEvent().Subscribe(OnPlayerEliminated)


    # Fonction appelée lorsqu'un joueur interagit avec le bouton
    OnBoutonChangementEquipeInteracted(Agent : agent) : void = 
        AssignPlayerToNewTeam(Agent, 1) #1 for team 2


    # Fonction appelée lorsqu'un joueur est éliminé
    OnPlayerEliminated(Result : elimination_result) : void = 
        # Create variable with agent that will change teams
        # Créer une variable avec l’agent qui changera d’équipe
        EliminatedChar := Result.EliminatedCharacter
        if (Agent := EliminatedChar.GetAgent[]):
            AssignPlayerToNewTeam(Agent, 1) #1 for team 2


    # Function to assign players to a specified team
    # Fonction pour assigner les joueurs à une équipe spécifique
    AssignPlayerToNewTeam(Agent:agent, Team:int) : void = 
        # Get team collection from Playspace
        # Obtenir la collection d’équipes depuis le Playspace
        TeamCollection := GetPlayspace().GetTeamCollection()
        Teams := TeamCollection.GetTeams()
            # Check if at least one team exists
            # Vérifier qu’il existe au moins une équipe
            if (Teams.Length > 0):
                if (NewTeam := Teams[Team]): #("Team" should be 0 for team 1, 1 for team 2)
                    # Assign agent to chosen team
                    # Assigner l’agent à l’équipe choisie
                    if (TeamCollection.AddToTeam[Agent, NewTeam]):

Remember that you need to configure your Island Settings this way:
N’oubliez pas de configurer les paramètres de votre île de cette manière:

This code should work as intended!
Ce code devrait fonctionner comme prévu!

I hope this helps you! And sorry if my French is not understandable!
J’espère que cela vous aidera! Et désolé si mon français n’est pas compréhensible !