Nesta etapa, você criará um sistema de nivelamento de armas no estilo de jogo de tiro em Verse que usa um dispositivo Distribuidor de Itens para conceder uma nova arma às pessoas participantes quando elas completarem um combo.
Modifique sua ilha
Selecione o dispositivo Configurações da Ilha na janela de visualização ou no painel Organizador.
No painel Detalhes, defina os seguintes parâmetros:
Defina Munição Reserva Infinita como True.
Defina Pente de Munição Infinita como False. Essa mudança exige que a pessoa recarregue, um aspecto essencial de muitas armas do Fortnite.
Selecione o dispositivo Distribuidor de Itens na janela de visualização ou no painel Organizador.
No painel Detalhes, defina os seguintes parâmetros:
Defina Ao Conceder como Limpar Inventário.
Defina Conceder como Item Atual.
Remova todos os elementos da Lista de Índices e adicione os cinco elementos a seguir:
Rifle de Assalto L1
Rifle de Ação por Alavanca L2
Espingarda Pesada L3
Revólver de Seis Tiros L4
Canhão de Mão L5
Defina Jogadores de Recepção como Todos.
Defina Conceder ao Alternar como Verdadeiro.
Defina Conceder no Início do Jogo como True.
Remova as vinculações de função Habilitar e Conceder Item.
Selecione o dispositivo Gerenciador de Pontuação na janela de visualização ou no painel Organizador.
No painel Detalhes, defina Exibir Pontuação Atualizada no HUD como True.
Escreva o código Verse
Esta página apresenta um passo a passo sobre as alterações no código, mas se quiser verificar seu trabalho, revise a seção Código Completo para ver o resultado final.
Abra o arquivo
shooting_range_manager_device.verse.Adicione as seguintes variáveis para armazenar uma referência ao dispositivo distribuidor do item e rastrear as propriedades no nível do item.
Verse@editable ItemGranter:item_granter_device = item_granter_device{} @editable MaxWeaponLevel:int = 5 var CurrentWeaponLevel:int = 1Adicione o método
IncreaseWeaponLevelpara aumentar a variável de nível da arma e passar para o próximo item.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)Modifique o método
OnComboTargetHitpara chamarIncreaseWeaponLevel.Verse# A hit callback that scores the ComboTarget and resets the combo. OnComboTargetHit():void= AdjustScore(ComboTargetScore) <# --- New Code Start --- #> IncreaseWeaponLevel() <# --- New Code End --- #>Modifique o método
AdjustScorepara multiplicar a pontuação concedida pelo nível da 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)Salve e compile seu 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{}
Reunindo as partes
Selecione shooting_range_manager_device na janela de visualização ou no painel Organizador.
No painel Detalhes, defina ItemGranter como o dispositivo Distribuidor de Itens.
Envie suas alterações e teste sua ilha.
Verifique as trocas de armas após acertar um alvo de combo, até 5 vezes. No 5º nível, ela permanece a mesma.
Verifique se a pontuação recebida é multiplicada pelo nível da arma.