Szablon detonacji przy użyciu Verse pokazuje, jak utworzyć grę, w której dwie drużyny walczą o uzbrajanie i rozbrajanie podłożonych bomb.
W samouczku używamy urządzenia Verse i urządzeń podstawowych, takich jak znacznik na mapie, aby realizować mechanikę gry, np. tworzyć nadajniki, które wyświetlają się zależnie od warunków.
Szablon demonstruje takie pojęcia Verse, jak:
Typy wyliczeniowe (enum)
Współbieżność
Race
Oczekiwanie
Przegląd
Poniżej przedstawiono dokładną kolejność kroków potrzebnych do odtworzenia tej wyspy oraz ich 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 |
|---|---|---|
Drużyny | Indeks drużyny 2 | Gracze będą podzieleni na dwuosobowe drużyny. |
Łączna liczba rund | 5 | Gra zakończy się po rozegraniu pięciu rund. |
Zezwól na obserwację innych drużyn | Zabronione | Gracze nie będą mogli obserwować innych drużyn. |
Nieskończone zasoby budowlane | False | Gracze nie będą dysponowali nieskończoną ilością materiałów budowlanych podczas gry. |
Budowanie może niszczyć elementy otoczenia | False | Postawienie zbudowanych przez gracza konstrukcji nie może zniszczyć elementów otoczenia, na które taka konstrukcja nachodzi. |
Uszkadzanie otoczenia | Wył. | Gracze nie mogą uszkadzać otoczenia podczas gry. |
Niszczenie przy użyciu kilofa | Brak | Kilof nie uszkadza otoczenia ani budowli. |
Zezwól na ręczne odradzanie się | False | Gracze nie mogą używać opcji odradzania się w menu podczas gry. |
Użyj wyniku drużyny | True | Każda drużyna w grze zdobywa statystyki przy użyciu sumy statystyk graczy. |
Konfigurowanie urządzeń
W tym samouczku wykorzystano następujące urządzenia:
2 x cele na czas
1 x zakończenie gry
1 x Verse
Urządzenie wybuchowe
Użyj urządzenia wybuchowego, aby wywołać eksplozję zdetonowanych liczników czasu. Skopiuj i umieść grupę czterech urządzeń wybuchowych po przeciwnych stronach mapy.
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Można uszkodzić | False | Gracze nie mogą uszkodzić urządzenia. |
Cel na czas
Urządzenie celu na czas służy jako detonator dla każdego miejsca. Umieść urządzenie celu na czas w obu grupach urządzeń wybuchowych.
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Czas | 30 | Określa długość licznika czasu dla celu. |
Punkty za uruchomienie | 2 | Określa liczbę punktów przyznawanych po rozpoczęciu nierozpoczętego odliczania. |
Punkty za zatrzymanie | 5 | Określa liczbę punktów przyznawanych po zatrzymaniu aktywnego odliczania. |
Punkty za ukończenie | 3 | Określa liczbę punktów przyznawanych po ukończeniu odliczania. |
Styl tekstu napisu przy liczniku czasu | Pomarańczowy pogrubiony | Określa styl tekstu odliczania i własnego komunikatu. |
Filtr drużyn uruchamiających | Indeks drużyny 1 | Określa, która drużyna może rozpocząć nierozpoczęte odliczanie. |
Tekst użycia uruchomienia | Uzbrój bombę | Określa komunikat wyświetlany u graczy, którzy mogą rozpocząć nierozpoczęte odliczanie. |
Czas użycia uruchomienia | 5 | Określa czas potrzebny na rozpoczęcie nierozpoczętego odliczania. |
Filtr drużyn zatrzymujących | Indeks drużyny 2 | Określa, która drużyna może zatrzymać aktywne odliczanie. |
Tekst użycia zatrzymania | Rozbrój bombę | Określa komunikat wyświetlany u graczy, którzy mogą zatrzymać aktywne odliczanie. |
Czas użycia zatrzymania | 5.0 | Określa czas potrzebny na zatrzymanie aktywnego odliczania. |
Zasięg dźwięku odliczania | Cała mapa | Określa, czy dźwięk odliczania jest słyszalny w danym miejscu, czy też na całej mapie. |
Urządzenie wskaźnika na mapie
Użyj urządzenia znacznika na mapie, aby utworzyć własne znaczniki na minimapie. Nad każdym miejscem urządzenia wybuchowego umieść dwa urządzenia znacznika na mapie, po jednym dla każdej drużyny.
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Kolor ikony | wybierz kolor | Określa kolor wyświetlanej ikony. Wybierz kolor, który reprezentuje każdą drużynę. |
Tekst | Urządzenie wybuchowe A - Urządzenie wybuchowe B | Jedną parę urządzeń znacznika na mapie nazwij Bomba A, a drugą Bomba B. |
Urządzenie końca gry
Użyj urządzenia końca gry, aby zakończyć rundę po rozbrojeniu bomby lub po upływie 30 sekund i wybuchu bomby wywołanym przez skrypt Verse.
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Zwycięska drużyna | Drużyna aktywująca | Grę wygrywa drużyna, która aktywuje urządzenie. |
Co zakończyć | Zakończ rundę | Urządzenie zakończy rundę gry. |
Urządzenie panelu startowego gracza
Zgrupuj urządzenia Panelu startowego gracza drużyny po przeciwnych stronach mapy. Każda drużyna będzie miała własne miejsca spawnu, Drużyna 1 będzie uzbrajała bombę, a Drużyna 2 będzie rozbrajała bombę. W każdej rundzie drużyny będą się zamieniały miejscami.
Aby skonfigurować to urządzenie, skonfiguruj Opcje użytkownika w następujący sposób:
| Opcja | Wartość | Objaśnienie |
|---|---|---|
Drużyna gracza | Indeks drużyny 1 - 2 | Jeden zestaw paneli startowych będzie ustawiony na Indeks drużyny 1, drugi na Indeks drużyny 2. |
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.
# enum to determine the state of the bombs
bomb_state<public>:= enum {AllUnarmed, BombAArmed, BombBArmed}Powyższy kod definiuje wyliczenie służące do śledzenia stanu bomb.
search_and_destroy := class(creative_device):
Logger:log = log{Channel:=log_search_and_destroy}
@editable
TimedObjectiveA: timed_objective_device = timed_objective_device{}
@editable
Możesz użyć @editable, aby odwoływać się do urządzeń.
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
# The race expression is used to run a block of two or more async expressions concurrently (simultaneously). When the fastest expression completes, it "wins the race".
# https://www.fortnite.com/en-US/creative/docs/uefn/race-in-verse
race:
Pierwsza sekcja kodu ilustruje współbieżność przy użyciu race w celu określenia, która bomba była uzbrojona najpierw, Bomba A czy Bomba B.
block:
# Wait for Bomb B to be armed
ArmingPlayer:= TimedObjectiveB.StartedEvent.Await()
Print("Bomb B Armed",?Duration:=5.0)
Powyższy kod pokazuje współbieżność, w której skrypt czeka na zakończenie lub zatrzymanie celu na czas.
# Disable the unarmed Beacons and enable the Beacon over the armed bomb
UpdateBeacons():void=
BombABeaconArm.Disable()
BombBBeaconArm.Disable()
Powyższy kod aktualizuje stan nadajników zależnie od tego, która bomba jest uzbrojona.
BombDetonated(Agent:agent):void=
Print("Bomb Detonated", ?Duration:=5.0)
# Determine which set barrels should explode
if:
BombState = bomb_state.BombAArmed
Powyższa metoda jest wywoływana, gdy urządzenie celu na czas się zakończy. Określa, które beczki powinny wybuchnąć i zakończyć grę.
ExplodeBarrels(Barrels:[]explosive_device, Agent:agent):void=
for (Barrel : Barrels):
Barrel.Explode(Agent)
Powyższa pętla for służy do detonowania każdej beczki w odpowiednim miejscu podłożenia bomby.
Urządzenie Verse
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.
W panelu Szczegóły urządzenia skonfiguruj ustawienia tak, aby pasowały do każdego urządzenia stanowiącego odwołanie, 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 |
|---|---|---|
TimeObjectiveA | Timed Objective BombSiteA | Łączy urządzenie celu na czas z miejscem podłożenia ładunku. |
TimeObjectiveB | Timed Objective BombSiteB | Łączy urządzenie celu na czas z miejscem podłożenia ładunku. |
ExplosiveBarrelsA | 0 - BarrelBombSiteA_1 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsA | 1 - BarrelBombSiteA_2 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsA | 2 - BarrelBombSiteA_3 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsA | 3 - BarrelBombSiteA_4 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsB | 0 - BarrelBombSiteB_1 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsB | 1 - BarrelBombSiteB_2 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsB | 2 - BarrelBombSiteB_3 | Łączy urządzenie wybuchowe. |
ExplosiveBarrelsB | 3 - BarrelBombSiteB_4 | Łączy urządzenie wybuchowe. |
EndGameDevice | End Game Device2 | Łączy urządzenie końca gry. |
BombAMapIndicators | 0 - Map_Team1_BombsiteA | Łączy urządzenie znacznika na mapie z miejscem podłożenia ładunku. |
BombAMapIndicators | 1 - Map_Team2_BombsiteA | Łączy urządzenie znacznika na mapie z miejscem podłożenia ładunku. |
BombBMapIndicators | 0 - Map_Team1_BombsiteB | Łączy urządzenie znacznika na mapie z miejscem podłożenia ładunku. |
BombBMapIndicators | 1 - Map_Team2_BombsiteB | Łączy urządzenie znacznika na mapie z miejscem podłożenia ładunku. |
BombABeaconArm | BeaconArmBombSiteA | Uzbraja ładunek dla miejsca podłożenia A. |
BombABeaconDisarm | BeaconDisarmBombSiteA | Rozbraja ładunek podłożony w miejscu A. |
BombBBeaconArm | BeaconArmBombSiteB | Uzbraja ładunek dla miejsca podłożenia B. |
BombBBeaconDisarm | BeaconDisarmBombSiteB | Rozbraja ładunek podłożony w miejscu B. |
Wybierz Uruchom sesję, aby przetestować ukończony poziom.