W szablonie Likwidacja przy użyciu Verse walczący gracze mają wyposażenie, które zmienia się po każdej likwidacji. Tę mechanikę realizuje się poprzez łączenie urządzeń (takich jak przyznawacz przedmiotów) z urządzeniem Verse.
Opisany tutaj zaawansowany szablon Verse pokazuje, jak używać następujących API Verse:
Typ kontenera mapy
Tablice
Subskrypcja Fort_character EliminateEvent
Omówienie
Utwórz nowy projekt i zmodyfikuj ustawienia wyspy, aby skonfigurować grę.
Skonfiguruj urządzenia.
Dodaj skrypt Verse.
Tworzenie nowego projektu i konfigurowanie gry
Otwórz UEFN i utwórz nowy pusty projekt.
W Outlinerze wybierz urządzenie IslandSettings i znajdź pozycję Opcje użytkownika – Zasady gry.
Zmodyfikuj Opcje użytkownika, jak pokazano poniżej.
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Przedmioty zlikwidowanego gracza | Zachowaj | Gracze respawnują się ze swoim wyposażeniem. |
Zezwól na upuszczanie przedmiotów | False | Gracze nie mogą upuszczać przedmiotów z ekwipunku podczas gry. |
Niszczenie otoczenia | Wył. | Gracze nie mogą niszczyć otoczenia podczas gry. |
Konfigurowanie urządzeń
W tym samouczku wykorzystano następujące urządzenia:
Urządzenie przyznawacza przedmiotów
Urządzenie przyznawacza przedmiotów służy do przyznawania graczom broni. Gdy połączysz przyznawacz przedmiotów z urządzeniem Verse przy użyciu powiązania bezpośredniego zdarzeń, skrypt Verse może mieszać kolejność broni i przyznawać je po każdej likwidacji.
Przyznawaczy przedmiotów może być dowolnie wiele. Dopóki będziesz je łączyć w tablicy urządzenia Verse, gra będzie się odpowiednio skalowała.
W Szufladzie zawartości przejdź do Fortnite > Urządzenia i przeciągnij przyznawacze przedmiotów na mapę.
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Definicja przedmiotu | wybierz broń | Wybierz jedną niepowtarzalną broń na jedno urządzenie przyznawacza przedmiotów. |
Urządzenie końca gry
Urządzenie końca gry służy do kończenia rundy po spełnieniu warunków. Gdy likwidacje osiągną określony próg, skrypt Verse aktywuje to urządzenie, aby zakończyć rundę.
Dla tego urządzenia użyj domyślnych ustawień.
Panel startowy gracza
Panele startowe gracza służą do spawnowania graczy na mapie. Panele startowe rozmieść równomiernie na mapie, aby gracze nie spawnowali się w grupach.
Dla tego urządzenia użyj domyślnych ustawień.
Dodawanie skryptów Verse
Dodaj poniższe skrypty Verse. Zacznij od odwoływania się do urządzeń przy użyciu funkcji @editable.
Kod możesz skopiować w takiej kolejności, w jakiej jest napisany. Komentarze w skrypcie są dodane jako objaśnienia.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
elimination_game_device := class(creative_device):
Powyższy kod pokazuje definicje zmiennych.
OnBegin<override>()<suspends>:void=
# Can use this variable to scale the number of eliminations needed based on how many item granters there are in the experience
set NumberOfEliminationsToWin = WeaponItemGranters.Length
Print("Number of Weapon Item Granters: {WeaponItemGranters.Length}")
# Randomize the order in which the weapons are granted
set WeaponItemGranters = Shuffle(WeaponItemGranters)
# Get all the players in the experience
AllPlayers := GetPlayspace().GetPlayers()
Powyższy kod pokazuje logikę, która ustanawia zasadę gry – ile likwidacji jest potrzebnych, aby wygrać. Kolejność w tablicy przyznawacza przedmiotów jest pomieszana.
Gracze są dodawani do mapy, aby śledzić zarówno ich postępy, jak i to, co powinno być im przyznane w dalszej kolejności.
# Event that handles when a player is eliminated
OnPlayerEliminated(Result:elimination_result):void=
Print("Player Eliminated")
EliminatingCharacter := Result.EliminatingCharacter
if (FortCharacter := EliminatingCharacter?):
if (EliminatingAgent := FortCharacter.GetAgent[]):
GrantNextWeapon(EliminatingAgent)
Powyższy kod to zdarzenie, które ma miejsce po zlikwidowaniu gracza. Likwidujący gracz dostaje kolejną broń palną.
# Check if there is a winner for the game, if not then grant the next weapon
GrantNextWeapon(Agent:agent):void=
if (var CurrentItemNumber:int = AgentMap[Agent]):
if (IsVictoryConditionMet(CurrentItemNumber) = true):
EndGame(Agent) # Game has been won
else: # Game is not over yet
set CurrentItemNumber = CurrentItemNumber + 1
if (ItemGranter := WeaponItemGranters[CurrentItemNumber - 1]):
ItemGranter.GrantItem(Agent)
Powyższy kod to logika określająca, którą broń przyznać likwidującemu graczowi oraz czy ma on ostatnią broń, aby zakończyć starcie.
# Check if the victory condition has been met and return the the result
IsVictoryConditionMet(EliminationNumber:int)<transacts>:logic=
if:
EliminationNumber = NumberOfEliminationsToWin
then:
return true
else:
return falsePowyższy kod to logika sprawdzająca, czy warunek zwycięstwa został spełniony.
EndGame(Agent:agent):void=
EndGameDevice.Activate(Agent)
Powyższy kod to logika, która pokazuje urządzenie końca gry wywołujące zwycięskiego gracza.
Konfigurowanie urządzenia Verse
Urządzenie Verse kontroluje koniec gry i przyznaje bronie po zlikwidowaniu za pomocą tablicy przyznawaczy przedmiotów, połączonych przy użyciu powiązania bezpośredniego zdarzeń.
Skompiluj skrypt Verse i znajdź urządzenie w Szufladzie zawartości. Przeciągnij urządzenie Verse do takiego obszaru na mapie, który nie jest widoczny dla graczy, aby dostosować ustawienia.
Użyj tego urządzenia, aby połączyć powiązanie bezpośrednie zdarzeń z wymaganymi urządzeniami, aby można się było do nich odwoływać w skrypcie Verse.
Na panelu szczegółów urządzenia skonfiguruj ustawienia tak, aby pasowały do każdego przywoływanego urządzenia (tak jak na powyższym zdjęciu).
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
EndGameDevice | Urządzenie końca gry | Łączy urządzenie Verse z urządzeniem końca gry. |
WeaponItemGranters – 0 | przyznawacz przedmiotów | Łączy przyznawacz przedmiotów z urządzeniem Verse. |
WeaponItemGranters – 1 | Przyznawacz przedmiotów 2 | Łączy przyznawacz przedmiotów z urządzeniem Verse. |
WeaponItemGranters – 2 | Przyznawacz przedmiotów 3 | Łączy przyznawacz przedmiotów z urządzeniem Verse. |
WeaponItemGranters – 3 | Przyznawacz przedmiotów 4 | Łączy przyznawacz przedmiotów z urządzeniem Verse. |
Wybierz Uruchom sesję, aby przetestować ukończony poziom.