Testowanie wieloosobowych trybów gry bywa trudne ze względu na liczbę uczestniczących graczy, a nie zawsze ma się do dyspozycji inne osoby, z którymi można zagrać. W przypadku tego trybu gry można przetestować likwidacje w środowisku jednego gracza, wykorzystując wartowników. Wartownicy mają zdarzenie EliminatedEvent
, które można subskrybować, i mogą zachowywać się jak gracze przeciwnej drużyny na potrzeby przetestowania kodu likwidacji.
Aby bronie były przyznawane graczom, gdy dokonają likwidacji wartownika, wykonaj następujące instrukcje:
-
Dodaj nową metodę
TestPlayerEliminated
do klasyteam_elimination_game
. Metoda ta będzie wywoływana po każdej likwidacji wartownika.TestPlayerEliminated(Agent : ?agent) : void = Print("Wartownik powalony!")
-
W metodzie
TestPlayerEliminated
sprawdź, czy wartownik został zlikwidowany przez gracza, a jeśli tak, przekaż gracza dokonującego likwidacji do metodyGiveNextWeapon
. MetodaTestPlayerEliminated
akceptuje już opcję agenta jako argument, dlatego w konsekwencji wiesz, który gracz dokonał tej likwidacji.TestPlayerEliminated(Agent: ?agent) : void = Print("Wartownik powalony!") if(TeamPlayer := Agent?): GiveNextWeapon(TeamPlayer)
-
W metodzie
OnBegin
dodaj nową pętlęfor
, aby zasubskrybować zdarzenieEliminatedEvent
każdego wartownika z użyciem metodyTestPlayerEliminated
. Kod metodyOnBegin
powinien wyglądać następująco:OnBegin<override>()<suspends> : void = set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Logger.Print("Liczba likwidacji do końca gry wynosi {EliminationsToEndGame}") Logger.Print("Rozpoczęcie przypisywania graczy") PopulateTeamsAndPlayers() for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Subskrybuj każdy Panel startowy gracza for (Sentry : Sentries): Sentry.EliminatedEvent.Subscribe(TestPlayerEliminated) # Subskrybuj każdego wartownika # Subskrybuj nowych graczy dołączających do gry GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
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. Zlikwidowanie gracza przeciwnej drużyny lub wartownika powinno awansować cię do otrzymania kolejnej broni. Jeśli testujesz konfigurację trybu wieloosobowego, awansowanie powinno przebiegać zgodnie z dwiema regułami opisanymi w kroku 5. Przyznawanie broni po likwidacji. Awans u gracza dysponującego bronią najwyższego poziomu w sekwencji powinien zakończyć grę przyznaniem zwycięstwa graczowi, który dokonał likwidacji.

Efekt końcowy
W ostatnim kroku tego samouczka zobaczysz kompletny skrypt omawianego w nim zagadnienia.