W tym kroku omówiono, w jaki sposób przypisać broń do gracza na początku gry.
Gdy gracz spawnuje się po raz pierwszy, przyznaj mu pierwszą broń z tablicy WeaponGranters. W tym celu musisz zasubskrybować funkcję dla każdego Panelu startowego gracza. Więcej szczegółów na temat zdarzeń, które można subskrybować, patrz Kodowanie interakcji z urządzeniem.
Aby utworzyć subskrypcje dla zdarzeń spawnu gracza i przypisać graczowi jego pierwszą broń, wykonaj następujące instrukcje:
-
Dodaj nową metodę
OnPlayerSpawn()do klasyteam_elimination_game. Ta metoda pozwala zyskać pewność, że gracz otrzyma właściwą broń przy pierwszym spawnie oraz przy kolejnych respawnach.OnPlayerSpawn(InPlayer : agent) : void = Print("Gracz właśnie się zespawnował!") -
Aby utworzyć subskrypcje w celu wywoływania skonfigurowanych przed momentem funkcji dla powiązanych z nimi zdarzeń, musisz dodać do metody
OnBegin()nowy kod. Utwórz pętlęfor, aby subskrybować zdarzenieSpawnedEventkażdego punktu spawnu gracza za pomocą metodyOnPlayerSpawn.OnBegin<override>()<suspends> : void = # Pobierz wszystkich graczy set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Liczba likwidacji do końca gry wynosi {EliminationsToEndGame}") for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Subskrybuj każdy Panel startowy gracza -
Aby przyznać graczowi pierwszą broń, musisz uzyskać dostęp do pierwszego przyznawacza przedmiotów w tablicy
WeaponGranters. Możesz w tym celu użyć nowej metody.- Dodaj nową metodę
GrantWeapondo klasyteam_elimination_game. Metoda ta wykorzystuje typoptionagenta i przypisuje mu broń w oparciu o wprowadzoną wartośćWeaponTier.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Przyznawanie graczowi broni poziomu {WeaponTier}")- W metodzie
GrantWeaponuzyskaj dostęp do odpowiedniego przyznawacza przedmiotów z tablicyWeaponGranters, wykorzystując wartośćWeaponTierjako indeks. Uzyskaj dostęp do wartości wInPlayeri zapisz tę wartość w zmiennejGrantedPlayer.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Przyznawanie graczowi broni poziomu {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?):- Przyznaj graczowi odpowiednią broń za pomocą funkcji
ItemGranter.GrantItem. Możesz sprawdzić rodzaj przypisanej broni, rejestrując wartośćWeaponTier. Kod metodyGrantWeaponpowinien wyglądać następująco:
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Przyznawanie graczowi broni poziomu {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ItemGranter.GrantItem(GrantedPlayer) - Dodaj nową metodę
-
Zmodyfikuj metodę
OnPlayerSpawntak, aby wywoływała metodęGrantWeapon. Gdy gracz zostanie zespawnowany, zainicjuj liczbę całkowitąWeaponTierz wartością zerową, aby odzwierciedlała indeks pierwszego przyznawacza przedmiotów w tablicyWeaponGranters, a następnie wywołaj metodęGrantWeapon, która przekazuje wartośćWeaponTieri odwołanie do gracza. Kod metodyOnPlayerSpawnpowinien wyglądać następująco:OnPlayerSpawn(InPlayer : agent) : void= Print("Gracz właśnie się zespawnował!") WeaponTier : int = 0 GrantWeapon(option{InPlayer}, WeaponTier) Print("Zespawnowanemu graczowi przyznano broń poziomu {WeaponTier}") -
Zapisz skrypt w Visual Studio Code, skompiluj go, a następnie na pasku narzędzi UEFN kliknij opcję Uruchom sesję, aby przetestować poziom w grze. W trakcie testu poziomu w grze gracz powinien pojawiać się z pierwszą bronią z tablicy
WeaponGranters. Sprawdź to zachowanie w dzienniku.
Następny krok
W kolejnym kroku tego samouczka dowiesz się, jak monitorować graczy za pomocą map i uzupełniać te mapy po rozpoczęciu gry.