In diesem Schritt erstellst du ein spezielles Ziel, das einem Spieler zusätzliche Zeit gewährt, wenn er es trifft. Das Ziel erscheint zufällig, wenn positive Punktziele getroffen werden, und die Wahrscheinlichkeit, dass es erscheint, steigt, bis es erscheint.
Ändern deiner Insel
Wähle das Kombo-Ziel im Viewport aus.
Drücke die Alt-Taste, klicke dann mit der linken Maustaste auf das Achsen-Widget und ziehe ein Duplikat des Ziels vor deinen Schießstand. Das ist das Bonuszeitziel.
Lege im Details-Panel TargetType auf Tanzend fest.
Schreiben von Verse-Code
Diese Seite führt dich Schritt für Schritt durch die Codeänderungen, aber wenn du deine Arbeit überprüfen möchtest, schau dir den Abschnitt Vollständiger Code an, um das Endergebnis zu sehen.
Öffne die Datei
shooting_range_manager_device.verse.Füge die folgende Bibliothek hinzu, um die Generierung von Zufallszahlen zu unterstützen.
Verseusing { /Verse.org/Random }Füge die folgenden Variablen hinzu, um die Zielgerätereferenz und zugehörige Eigenschaften zu speichern. Die Zeitdauer und die Belohnungsvariablen sind in Sekunden angegeben.
Verse@editable InitialTimerDuration:float = 30.0 @editable MaxTimerDuration:float = 60.0 @editable BonusTimeTarget:shooting_range_target_track_device = shooting_range_target_track_device{} @editableFüge die Callback-Methode
OnBonusTimeTargetHithinzu, die den Timer erhöht.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()Ändere die Methode
OnBegin, um das Abonnement für das Bonuszeitziel-Event einzurichten und zu deaktivieren.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)Ändere die Methode
StartTimer, um die maximale und aktive Dauer des Timers festzulegen.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)Ändere die Methode
AdjustScore, um das Bonuszeitziel zufällig basierend auf der Anzahl der von dir getroffenen guten Ziele anzuzeigen.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.Speichere und erstelle deinen Verse-Code.
Vollständiger Code
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{}
Alles kommt zusammen
Wähle shooting_range_manager_device im Viewport oder Outliner-Panel aus.
Lege im Details-Panel BonusTimeTarget auf das Bonuszeitziel fest.
Übertrage deine Änderungen und teste deine Insel.
Überprüfe, ob das Bonuszeitziel gelegentlich nach dem Schießen auf positive Wertungsziele angezeigt wird.