In questo passaggio potrai creare un bersaglio speciale che, se colpito da un giocatore, farà guadagnare tempo extra. Il bersaglio compare in modo casuale, quando vengono colpiti bersagli che danno punteggio positivo, e le possibilità che compaia aumentano fino a quando non si attiva.
Modifica la tua isola
Seleziona Bersaglio combo nella viewport.
Premi il tasto Alt, quindi fai clic con il pulsante sinistro del mouse sul widget dell'asse e trascina un bersaglio duplicato nella parte anteriore del Poligono di tiro. Questo elemento corrisponde al bersaglio tempo di bonus.
Nel pannello Dettagli imposta TargetType su Ballo.
Scrivi il codice Verse
Questa pagina ti guida passo dopo passo attraverso le modifiche al codice; tuttavia, se desideri controllare il tuo lavoro, rivedi la sezione
Apri il file
shooting_range_manager_device.verse.Aggiungi la seguente libreria per supportare la generazione di numeri casuali.
Verseusing { /Verse.org/Random }Aggiungi le seguenti variabili per memorizzare il riferimento al dispositivo bersaglio e le proprietà correlate. Le variabili durata e ricompensa sono espresse in secondi.
Verse@editable InitialTimerDuration:float = 30.0 @editable MaxTimerDuration:float = 60.0 @editable BonusTimeTarget:shooting_range_target_track_device = shooting_range_target_track_device{} @editableAggiungi il metodo di callback
OnBonusTimeTargetHitche aumenta il timer.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()Modifica il metodo
OnBeginper impostare la sottoscrizione dell'evento bersaglio tempo bonus e disabilitarla.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)Modifica il metodo
StartTimerper impostare la durata massima e attiva del timer.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)Modifica il metodo
AdjustScoreper far apparire casualmente il bersaglio tempo bonus in base al numero di Bersagli corretti che colpisci.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.Salva e crea il tuo codice Verse.
Codice completo
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{}
Unisci tutti gli elementi
Seleziona shooting_range_manager_device nella viewport o nel pannello Outliner.
Nel pannello Dettagli imposta BonusTimeTarget per il bersaglio tempo di bonus.
Applica le modifiche ed esegui un playtest sulla tua isola.
Verifica che il bersaglio tempo bonus appaia occasionalmente dopo aver sparato a bersagli con punteggio positivo.