À cette étape, vous allez créer une cible spéciale qui accorde du temps supplémentaire au joueur lorsqu'il la touche. La cible se soulève de façon aléatoire lorsque vous touchez des cibles à score positif, et les chances qu'elle se soulève augmentent jusqu'à ce qu'elle apparaisse.
Modifier votre île
Sélectionnez la cible de combo dans le hublot.
Appuyez sur la touche Alt, puis faites un clic gauche sur le widget d'axe et faites glisser un double de cible à l'avant de votre stand de tir. Ce sera votre cible de bonus de temps.
Dans le panneau Détails, définissez l'option Type de cible sur Cible dansante.
Rédiger du code Verse
Cette page vous guide pas à pas dans les modifications de code, mais si vous souhaitez contrôler votre travail, consultez la rubrique Code complet pour voir le résultat final.
Ouvrez le fichier
shooting_range_manager_device.verse.Ajoutez la bibliothèque suivante pour prendre en charge la génération de nombres aléatoires.
Verseusing { /Verse.org/Random }Ajoutez les variables suivantes pour stocker la référence de l'appareil cible et les propriétés associées. La durée et les variables de récompense sont exprimées en secondes.
Verse@editable InitialTimerDuration:float = 30.0 @editable MaxTimerDuration:float = 60.0 @editable BonusTimeTarget:shooting_range_target_track_device = shooting_range_target_track_device{} @editableAjoutez la méthode de rappel
OnBonusTimeTargetHit, qui augmente le chronomètre.Verse# A hit callback that adds bonus time and disables the BonusTimeTarget. OnBonusTimeTargetHit():void= CurrentDuration:float = Timer.GetActiveDuration() Timer.SetActiveDuration(CurrentDuration + BonusTimeReward) BonusTimeTarget.PopDown() BonusTimeTarget.Disable()Modifiez la méthode
OnBeginpour configurer l'abonnement à l'événement de cible de bonus de temps et le désactiver.Verse# Runs when the device is started in a running game. OnBegin<override>()<suspends>:void= # Subscribing to the GoodTarget HitEvents. GoodTarget1.HitEvent.Subscribe(OnGoodTarget1Hit) GoodTarget2.HitEvent.Subscribe(OnGoodTarget2Hit) GoodTarget3.HitEvent.Subscribe(OnGoodTarget3Hit) # Subscribing to the BadTarget HitEvents. BadTarget1.HitEvent.Subscribe(OnBadTarget1Hit) BadTarget2.HitEvent.Subscribe(OnBadTarget2Hit)Modifiez la méthode
StartTimerpour définir la durée maximale et la durée d'activation du chronomètre.Verse# Setup and start the timer. StartTimer():void= # Set the event subscription to call OnTimerSuccess when the timer finishes. Timer.SuccessEvent.Subscribe(OnTimerSuccess) <# --- New Code Start --- #> # Set the max and active duration based on the set property values. Timer.SetMaxDuration(MaxTimerDuration) Timer.SetActiveDuration(InitialTimerDuration)Modifiez la méthode
AdjustScorede façon à faire apparaître aléatoirement la cible de bonus de temps en fonction du nombre de bonnes cibles touchées.Verse# Adjusts the player's score by the provided value. AdjustScore(Value:int):void= # Start the timer if it hasn't started yet. if (not IsTimerStarted?): StartTimer() # Sets the score award to the base value of the target. ScoreManager.SetScoreAward(Value) # Gets the first player in the playspace.Enregistrez et générez votre code Verse.
Code complet
using { /Fortnite.com/Devices }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
# A device that manages shooting range gameplay.
shooting_range_manager_device := class(creative_device):
@editable
ScoreManager:score_manager_device = score_manager_device{}
Assembler tous les éléments
Sélectionnez shooting_range_manager_device dans le hublot ou dans le panneau Organiseur.
Dans le panneau Détails, définissez BonusTimeTarget sur la cible de bonus de temps.
Validez vos modifications et testez votre île.
Vérifiez que la cible de bonus de temps apparaît occasionnellement après avoir tiré sur des cibles de score positif.