W tym kroku stworzysz w Verse system awansowania broni w stylu gry strzeleckiej, który wykorzystuje urządzenie przyznawacza przedmiotów, aby dać graczom nową broń po ukończeniu kombo.
Modyfikacja wyspy
Wybierz urządzenie ustawień wyspy w oknie wizualizacji lub panelu Outlinera.
W panelu szczegółów ustaw następujące parametry:
Ustaw Nieskończone rezerwy amunicji na wartość True.
Ustaw opcję Nieskończona amunicja w magazynku na wartość False. Ta zmiana wymaga od gracza ponownego załadowania broni, co jest istotnym aspektem wielu rodzajów broni w Fortnite.
Wybierz urządzenie przyznawacza przedmiotów w oknie wizualizacji lub panelu Outlinera.
W panelu szczegółów ustaw następujące parametry:
Ustaw opcję Czynność w momencie przyznania na wartość Wyczyść ekwipunek.
Ustaw opcję Przyznaj na wartość Aktualny przedmiot.
Usuń wszystkie elementy z listy indeksów, a następnie dodaj pięć następujących elementów:
Karabin szturmowy L1
Karabin dźwigniowy L2
Ciężka strzelba L3
Sześciostrzałowiec L4
Rękodziało L5
Ustaw opcję Otrzymujący gracze na wartość Wszyscy.
Ustaw opcję Przyznaj przy przewinięciu na wartość True.
Ustaw opcję Przyznaj na początku gry na wartość True.
Usuń powiązania funkcji Włącz i przyznaj przedmiot.
Wybierz urządzenie menedżera wyniku w oknie wizualizacji lub panelu Outlinera.
W panelu szczegółów ustaw opcję Wyświetlaj zmiany punktacji w interfejsie na wartość True.
Pisanie kodu Verse
Na tej stronie przedstawiono szczegółowe instrukcje dotyczące zmian w kodzie, ale jeśli chcesz sprawdzić swoją pracę, zapoznaj się z sekcją Kompletny kod, aby zobaczyć ostateczny wynik.
Otwórz plik
shooting_range_manager_device.verse.Dodaj następujące zmienne, aby zapisać odwołanie do przyznawacza przedmiotów i śledzić właściwości poziomu przedmiotu.
Verse@editable ItemGranter:item_granter_device = item_granter_device{} @editable MaxWeaponLevel:int = 5 var CurrentWeaponLevel:int = 1Dodaj metodę
IncreaseWeaponLevel, aby zwiększyć zmienną poziomu broni i przejść do następnego przedmiotu.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)Zmodyfikuj metodę
OnComboTargetHit, aby wywołaćIncreaseWeaponLevel.Verse# A hit callback that scores the ComboTarget and resets the combo. OnComboTargetHit():void= AdjustScore(ComboTargetScore) <# --- New Code Start --- #> IncreaseWeaponLevel() <# --- New Code End --- #>Zmodyfikuj metodę
AdjustScore, aby pomnożyć przyznawaną liczbę punktów przez poziom broni.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)Zapisz i skompiluj kod Verse.
Gotowy kod
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{}
Połączenie wszystkiego w całość
Wybierz shooting_range_manager_device w oknie wizualizacji lub panelu Outliner.
W panelu szczegółów ustaw ItemGranter na urządzenie przyznawacza przedmiotów.
Wypchnij zmiany i przetestuj swoją wyspę.
Sprawdź, czy broń się zmienia po trafieniu celu kombo, maksymalnie 5 razy. Po osiągnięciu poziomu 5 pozostaje taka sama.
Sprawdź, czy otrzymany wynik jest pomnożony przez poziom broni.