Wciąż masz otwarty kod Verse? Świetnie!
W tym ćwiczeniu wywołasz funkcje, które faktycznie spowodują zadanie obrażeń twojej postaci w Fortnite, zgodnie z zapowiedzią z lekcji 3: Praktyka czyni mistrza!
Przed rozpoczęciem kodowania musisz dodać urządzenie do swojej wyspy UEFN. Jest to tak zwany punkt spawnu gracza, który sprawia, że postać pojawia się w miejscu, w którym znajduje się urządzenie, zamiast w powietrzu, co jest domyślnym miejscem pojawiania się w Fortnite. Aby kod w tym ćwiczeniu działał, wymagany jest punkt spawnu gracza.
Aby dowiedzieć się, jak ustawić urządzenie punktu spawnu gracza, zajrzyj do sekcji Umieszczanie obiektów w artykule Elementy sterujące UEFN dla użytkowników trybu kreatywnego. Możesz je umieścić w dowolnym miejscu na swojej wyspie.
Część kodu, którego użyjesz w tym ćwiczeniu, będzie dla ciebie nowa, ale dzięki temu dowiesz się, co robi każdy wiersz. Nie martw się, jeśli nie rozumiesz od razu wszystkiego. W tym ćwiczeniu chodzi tylko o wywoływanie funkcji.
Sprawdź, czy wszystkie poniższe wiersze znajdują się na samej górze pliku Verse. Informują one kompilator Verse, których części wbudowanego kodu Verse i Fortnite będziesz używać w swoim urządzeniu utworzonym w Verse.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
W następnej kolejności napiszesz wiersze kodu, które spowodują obrażenia twojej postaci w Fortnite. Prześledźmy to wiersz po wierszu.
- Wywołaj funkcję o nazwie
GetPlayspace(). Zwraca wartość typufort_playspace, którą zapiszesz do stałej o nazwiePlayspace. Potrzebujesz tego, aby zdobyć graczy. - Wywołaj metodę o nazwie
GetPlayers()na stałejPlayspace. Metoda zwraca tablicę typuplayer. Tablica to kontener, który może przechowywać wiele zmiennych tego samego typu w Verse. W tym przypadku tablicaAllPlayersprzechowuje wszystkich graczy na twoim poziomie. - Wiesz już, że możesz używać wyrażenia
ifdo zadawania pytań zamkniętych (wymagających odpowiedzi tak lub nie) w swoim kodzie. W tym przykładzie użyjeszif, aby zapytać, czy istnieje zmienna na pierwszej pozycji tablicyAllPlayers. WyrażenieAllPlayers[0]zwróci wartość zmiennej w tej pozycji, jeśli taka istnieje, a stałaFirstPlayerzostanie zainicjowana do wartości zwracanej. - Drugie wyrażenie
ifzagnieżdżone w pierwszym pyta, czy stałaFirstPlayerma postać Fortnite, wywołując jej metodęGetFortCharacter[]. Zwróć uwagę na nawiasy kwadratowe użyte do wywołania. Są one używane do wywołania funkcji, która może zakończyć się niepowodzeniem. Dlatego właśnie do wywołania tej funkcji używane jestif. JeśliGetFortCharacter[]zwróci wartość typufort_character, stała FortniteCharacter jest inicjowana do tej wartości. -
Na koniec, gdy masz już stałą typu
fort_character, możesz wywołać jej metodęDamage(). Metoda ta przyjmuje jeden parametr typufloat. To ilość obrażeń zadawanych postaci. Więcej o parametrach dowiesz się w następnej lekcji.Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)
Jeśli uruchomisz ten kod, twoja postać w Fortnite powinna otrzymać 50.0 punktów obrażeń po rozpoczęciu gry.
Całkiem spoko, nie?
Kompletny skrypt
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
hello_world_device := class(creative_device):
# Działa po uruchomieniu urządzenia w aktywnej grze
OnBegin<override>()<suspends>:void=
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)