Dans le modèle Verse - Élimination, les joueurs combattent avec un équipement qui change à chaque élimination. Il est possible de mettre en place cette mécanique de jeu en reliant divers appareils, tels que l'appareil Fournisseur d'objets, à l'appareil Verse.
Ce modèle Verse avancé vous montre comment utiliser les API Verse suivantes :
-
Type de conteneur de mappage
-
Abonnement à l'événement EliminateEvent de Fort_character
Vue d'ensemble
-
Créez un nouveau projet et modifiez les paramètres de l'île pour configurer le jeu.
-
Configurez les appareils.
-
Ajoutez le script Verse.
Créer un nouveau projet et configurer le jeu
-
Ouvrez l'UEFN et créez un nouveau projet vide.
-
Sélectionnez l'appareil IslandSettings (paramètres de l'île) dans l'organiseur et recherchez Options utilisateur - Règles du jeu dans le panneau Détails.

- Modifiez les options utilisateur comme indiqué ci-dessous.
Option | Valeur | Explication |
---|---|---|
Objets du joueur éliminé | Garder | Les joueurs réapparaissent avec leur équipement. |
Déposer des objets | False | Les joueurs ne peuvent pas déposer d'objets de leur inventaire pendant le jeu. |
Dégâts sur le décor | Non | Le décor n'est pas détruit pendant le jeu. |
Configuration des appareils
Ce tutoriel utilise les appareils suivants :
Appareil Fournisseur d'objets

Utilisez un fournisseur d'objets pour accorder des armes aux joueurs. Après avoir relié le fournisseur d'objets à l'appareil Verse à l'aide de la liaison d'événements directe, le script Verse peut modifier l'ordre des armes et les attribuer à chaque élimination.
Vous pouvez utiliser un nombre illimité de fournisseurs d'objets. Tant que vous les reliez dans la matrice de l'appareil Verse, le jeu s'adapte en conséquence.
Depuis le tiroir à contenu, accédez à Fortnite > Appareils et faites glisser les fournisseurs d'objets dans votre carte.
Pour configurer cet appareil, réglez les options utilisateur comme suit :
Option | Valeur | Explication |
---|---|---|
Définition de l'objet | Sélectionner une arme | Sélectionnez une seule arme par fournisseur d'objets. |
Appareil de fin de partie

Utilisez un appareil Fin de partie pour mettre fin à la manche une fois les conditions remplies. Dès que les éliminations atteignent un certain seuil, le script Verse active cet appareil pour mettre fin à la partie.
Utiliser les paramètres par défaut de cet appareil.
Point d'apparition de joueur

Vous pouvez utiliser les points d'apparition de joueurs pour faire apparaître des joueurs sur votre carte. Répartissez uniformément les points d'apparition sur l'ensemble de la carte afin de vous assurer que les joueurs n'apparaissent pas tous ensemble.
Utiliser les paramètres par défaut de cet appareil.
Ajouter les scripts Verse
Ajoutez les scripts Verse suivants en commençant par référencer les appareils avec la fonction @editable.
Vous pouvez copier le code dans l'ordre où il est écrit. Des commentaires sont ajoutés dans le script pour plus de clarté.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
elimination_game_device := class(creative_device):
@editable
EndGameDevice : end_game_device = end_game_device{}
# Matrice de fournisseurs d'objets utilisée pour accorder les armes
@editable
var WeaponItemGranters : []item_granter_device = array{}
# Ce paramètre est défini ultérieurement, il est égal au nombre de fournisseurs d'armes dans l'île.
var NumberOfEliminationsToWin : int = 0
# Conteneur de mappage pour suivre la progression des joueurs. Voici comment déterminer l'arme à attribuer au joueur
var AgentMap : [agent]int = map{}
Le code ci-dessus illustre les définitions des variables.
OnBegin<override>()<suspends>:void=
# Cette variable permet d'ajuster le nombre d'éliminations nécessaires en fonction du nombre de fournisseurs d'objets présents dans l'expérience.
set NumberOfEliminationsToWin = WeaponItemGranters.Length
Print("Number of Weapon Item Granters: {WeaponItemGranters.Length}")
# Randomiser l'ordre d'octroi des armes
set WeaponItemGranters = Shuffle(WeaponItemGranters)
# Obtenir tous les joueurs en jeu
AllPlayers := GetPlayspace().GetPlayers()
for (EliminationGamePlayer : AllPlayers):
if (FortCharacter := EliminationGamePlayer.GetFortCharacter[]):
FortCharacter.EliminatedEvent().Subscribe(OnPlayerEliminated) # s'abonner à l'événement d'élimination
# Ajouter des joueurs à un mappage pour suivre leur progression
if (set AgentMap[EliminationGamePlayer] = 1) {}
# Attribuer la première arme à chaque joueur
if (FirstItemGranter:item_granter_device = WeaponItemGranters[0]):
FirstItemGranter.GrantItem(EliminationGamePlayer)
Le code ci-dessus montre la logique qui définit la règle du jeu du nombre d'éliminations nécessaires pour gagner. L'ordre de la matrice du fournisseur d'objets est aléatoire.
Les joueurs sont ajoutés à un mappage afin de suivre leur progression et de savoir quel objet leur sera attribué par la suite.
# Événement qui gère l'élimination d'un joueur
OnPlayerEliminated(Result:elimination_result):void=
Print("Player Eliminated")
EliminatingCharacter := Result.EliminatingCharacter
if (FortCharacter := EliminatingCharacter?):
if (EliminatingAgent := FortCharacter.GetAgent[]):
GrantNextWeapon(EliminatingAgent)
Le code ci-dessus est l'événement qui se produit lorsqu'un joueur est éliminé. L'éliminateur se voit attribuer l'arme suivante.
# Vérifier s'il y a un gagnant pour le jeu, sinon accorder l'arme suivante
GrantNextWeapon(Agent:agent):void=
if (var CurrentItemNumber:int = AgentMap[Agent]):
if (IsVictoryConditionMet(CurrentItemNumber) = true):
EndGame(Agent) # Partie gagnée
else: # La partie continue
set CurrentItemNumber = CurrentItemNumber + 1
if (ItemGranter := WeaponItemGranters[CurrentItemNumber - 1]):
ItemGranter.GrantItem(Agent)
if (set AgentMap[Agent] = CurrentItemNumber) {}
Le code ci-dessus est la logique qui détermine à la fois quelle arme accorder à l'éliminateur et s'il est sur la dernière arme avant de terminer le match.
# Vérifier si la condition de victoire a été remplie et renvoyer le résultat
IsVictoryConditionMet(EliminationNumber:int)<transacts>:logic=
if:
EliminationNumber = NumberOfEliminationsToWin
then:
return true
else:
return false
Le code ci-dessus est la logique qui permet de vérifier si la condition de victoire est remplie.
EndGame(Agent:agent):void=
EndGameDevice.Activate(Agent)
Le code ci-dessus est la logique qui montre l'appareil de fin de partie appelant le joueur gagnant.
Configurer l'appareil Verse

L'appareil Verse contrôle la fin du jeu et l'octroi d'armes en cas d'élimination par le biais d'une matrice de fournisseurs d'objets connectés à l'aide d'une liaison d'événements directe.
Compilez votre script Verse, puis recherchez votre appareil dans le tiroir à contenu. Faites glisser l'appareil Verse dans une zone non visible de votre carte pour en personnaliser les paramètres.
Utilisez cet appareil pour lier directement les événements aux appareils nécessaires afin que le script Verse puisse les référencer.

Dans le panneau Détails de l'appareil, configurez les paramètres pour qu'ils correspondent à chaque appareil référencé, comme sur l'illustration ci-dessus.
Pour configurer cet appareil, réglez les options utilisateur comme suit :
Option | Valeur | Explication |
---|---|---|
EndGameDevice | Appareil de fin de partie | Relie l'appareil Verse à l'appareil de fin de partie. |
WeaponItemGranters - 0 | Fournisseur d'objets | Relie le fournisseur d'objets à l'appareil Verse. |
WeaponItemGranters - 1 | Fournisseur d'objets 2 | Relie le fournisseur d'objets à l'appareil Verse. |
WeaponItemGranters - 2 | Fournisseur d'objets 3 | Relie le fournisseur d'objets à l'appareil Verse. |
WeaponItemGranters - 3 | Fournisseur d'objets 4 | Relie le fournisseur d'objets à l'appareil Verse. |
Sélectionnez Lancer la session pour tester le niveau que vous avez créé.