En este paso, vas a crear un objetivo especial que otorga tiempo adicional cuando un jugador lo acierta. El objetivo sale de forma aleatoria al acertar en objetivos que dan puntos, y las probabilidades de que aparezca aumentan hasta que lo hace.
Modifica tu isla
Selecciona el Objetivo de combo en el visor.
Pulsa la tecla Alt; luego, haz clic izquierdo en el widget del eje y, a continuación, arrastra un objetivo duplicado hasta el frente de tu galería de tiro. Este es el objetivo de tiempo extra.
En el panel de detalles, establece TargetType en Bailando.
Escritura de código Verse
En esta página, se te guía paso a paso para realizar los cambios en el código, pero si quieres comprobar tu trabajo, consulta la sección Código completo para ver el resultado final.
Abre el archivo
shooting_range_manager_device.verse.Añade la siguiente biblioteca para admitir la generación de números aleatorios.
Verseusing { /Verse.org/Random }Añade las siguientes variables para almacenar la referencia del dispositivo objetivo y las propiedades relacionadas. La duración del tiempo y las variables de recompensa están en segundos.
Verse@editable InitialTimerDuration:float = 30.0 @editable MaxTimerDuration:float = 60.0 @editable BonusTimeTarget:shooting_range_target_track_device = shooting_range_target_track_device{} @editableAñade el método de devolución de llamada
OnBonusTimeTargetHitque aumenta el cronómetro.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 el método
OnBeginpara configurar y deshabilitar la suscripción al evento del objetivo de tiempo extra.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 el método
StartTimerpara definir las duraciones máxima y activa del cronómetro.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 el método
AdjustScorepara hacer que el objetivo que otorga tiempo adicional aparezca de forma aleatoria según la cantidad de objetivos buenos que se aciertan.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.Guarda y compila tu código Verse.
Código 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{}
Intégralo
Selecciona shooting_range_manager_device en el visor o el panel del esquematizador.
En el panel de detalles, establece BonusTimeTarget en el objetivo de tiempo extra.
Envía tus cambios y realiza una prueba de juego de tu isla.
Verifica que el objetivo de tiempo extra aparezca ocasionalmente después de disparar a objetivos que dan puntos.