En este paso, crearás un sistema de mejora de armas al estilo de los juegos de disparos en Verse que utiliza un dispositivo Repartidor de objetos para dar a los jugadores una nueva arma cuando completan un combo.
Cómo modificar tu isla
Selecciona el dispositivo Ajustes de la isla en el visor o en el panel Esquematizador.
En el panel Detalles, configura los siguientes parámetros:
Activa la opción Reserva de munición infinita.
Desactiva la opción Munición de cargador infinita. Este cambio requiere que el jugador tenga que recargar, un aspecto fundamental en muchas armas de Fortnite.
Selecciona el dispositivo Repartidor de objetos en el visor o en el panel Esquematizador.
En el panel Detalles, configura los siguientes parámetros:
Establece Acción al otorgar en Vaciar inventario.
Establece Otorgar en Objeto actual.
Elimina todos los elementos de la Lista de índices, y, a continuación, añade los siguientes cinco elementos:
Fusil de asalto L1
Fusil con acción de palanca L2
Escopeta pesada L3
Revólver de seis balas L4
Pistola pesada L5
Establece Jugadores receptores en Todos.
Activa la opción Otorgar al cambiar.
Activa la opción Otorgar al inicio de la partida.
Elimina las vinculaciones de funciones Habilitar y otorgar objeto.
Selecciona el dispositivo Gestor de puntuación en el visor o en el panel Esquematizador.
En el panel Detalles, activa la opción Mostrar actualización de puntuación en el HUD.
Cómo escribir código de Verse
En esta página encontrarás instrucciones paso a paso sobre los cambios que debes realizar en el código. No obstante, si deseas revisar tu trabajo, consulta la sección Código completo para ver el resultado final.
Abre el archivo
shooting_range_manager_device.verse.Añade las siguientes variables para almacenar una referencia al dispositivo repartidor de objetos y realizar un seguimiento de las propiedades a nivel de objeto.
Verse@editable ItemGranter:item_granter_device = item_granter_device{} @editable MaxWeaponLevel:int = 5 var CurrentWeaponLevel:int = 1Añade el método
IncreaseWeaponLevelpara aumentar la variable del nivel del arma y pasar al siguiente objeto.Verse# Increases the player's weapon level by one (up to the maximum value). IncreaseWeaponLevel():void= if: # If able to retrieve the first player and current weapon level isn't maxed, then... Player:player = GetPlayspace().GetPlayers()[0] CurrentWeaponLevel < MaxWeaponLevel then: # Increase weapon level and cycle to the next item. set CurrentWeaponLevel += 1 ItemGranter.CycleToNextItem(Player)Modifica el método
OnComboTargetHitpara llamar aIncreaseWeaponLevel.Verse# A hit callback that scores the ComboTarget and resets the combo. OnComboTargetHit():void= AdjustScore(ComboTargetScore) <# --- New Code Start --- #> IncreaseWeaponLevel() <# --- New Code End --- #>Modifica el método
AdjustScorepara multiplicar la puntuación que se otorga por el nivel del arma.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() <# --- New Code Start --- #> # Sets the score award to the base value of the target multiplied by the current weapon level. ScoreManager.SetScoreAward(Value * CurrentWeaponLevel)Guarda y compila tu código de 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{}
Cómo juntarlo todo
Selecciona shooting_range_manager_device en el visor o en el panel Esquematizador.
En el panel Detalles, configura ItemGranter en el dispositivo repartidor de objetos.
Aplica los cambios y prueba tu isla.
Comprueba que el arma cambia después de alcanzar un objetivo de combo, hasta 5 veces. En el nivel 5, ya no cambia.
Asegúrate de que la puntuación se multiplica por el nivel del arma.