Bir oyuncu sürmekte olan bir oyuna katıldığında yeni bir tur başlayıncaya kadar seyirci olarak beklemesini istemezsin. İdeal olan, yeni oyuncunun doğup hemen oynamaya başlamasıdır. Bunu gerçekleştirmek için yeni oyuncuyu TeamMap
haritasına eklemen, avlanma olayına abone olman ve oyuncuya birinci silahını vermen gerekir.
Sürmekte olan bir oyuna katılan oyunculara silah vermek ve oyuncu olaylarına abone olmak için aşağıdaki adımları izle.
-
team_elimination_game
sınıfınaOnPlayerAdded
adlı yeni bir metot ekle. Bu metot, sürmekte olan oyuna katılan bir oyuncuyu takımdaki başka bir oyuncunun en düşük silah seviyesine yükseltir.OnPlayerAdded(InPlayer : player) : void = Print("A New Player Joined!")
-
GetTeam[]
kullanarak yeni oyuncunun takımını al veTeam
yerel değişkeninde depola. OyuncununFortCharacter
değerini al ve birFortCharacter
değişkenine kaydet.OnPlayerAdded(InPlayer : player) : void = Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[]
-
Yeni oyuncuyu
TeamMap
haritasına atamak için yeni oyuncununTeam
değeriyle ilişkiliplayer_map
haritasına erişmen gerekir. Yeni oyuncuyla ilişkiliplayer_map
haritasını al ve birPlayerMap
yerel değişkeninde depola.OnPlayerAdded(InPlayer : player) : void = Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayerr.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team]
-
PlayerMap
içindeki oyuncu puanını 0 olarak ayarla, ardındanTeamMap
değeriniPlayerMap
yerel değişkeniyle güncelle.OnPlayerAdded(InPlayer : player) : void = Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] set PlayerMap[InPlayer] = 0 set TeamMap[Team] = PlayerMap
-
Bir
GrantWeapon
çağrısıyla oyuncuya ilk silahını ver ve yeni oyuncunun avlama olayına abone ol.OnPlayerAdded
kodun aşağıdaki koda benzer şekilde görünmelidir.OnPlayerAdded(InPlayer : player) : void = Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] set PlayerMap[InPlayer] = 0 set TeamMap[Team] = PlayerMap then: GrantWeapon(option{InPlayer}, 0) Print("Set new player weapon tier to 0 in the TeamMap") FortCharacter.EliminatedEvent().Subscribe(OnPlayerEliminated) # bu oyuncunun avlama olayına abone ol
-
OnBegin
içindeOnPlayerAdded
kullanarakPlayerAddedEvent
oyun alanına abone ol. Şimdi sürmekte olan oyuna katılan bir oyuncuOnPlayerAdded
olayını tetikleyecektir.PlayerAddedEvent
, oyun alanı tarafından başlatılan bir olay olduğundan abone olmak için belirli bir cihaza ihtiyacın yoktur.OnBegin<override>()<suspends> : void = set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Number of eliminations to end game is {EliminationsToEndGame}") Print("Beginning to assign players") PopulateTeamsAndPlayers() for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Her bir oyuncu doğma karesine bağla for (Sentry : Sentries): Sentry.EliminatedEvent.Subscribe(TestPlayerEliminated) # Her bir Gözcüye bağla # Oyuna katılan yeni oyunculara bağla GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
Kodu Visual Studio Code’a kaydet, derle ve bölüme oynanış testi uygulamak için UEFN araç çubuğunda Oturumu Başlat butonuna tıkla. Sürmekte olan oyuna yeni bir oyuncu katıldığında birinci silahla doğmalıdır. Oyuncunun kendisi veya takım arkadaşı avlama puanı aldığında oyuncu bir sonraki silah katmanına yükseltilmelidir.
Sonraki Adım
Bu eğitimin bir sonraki adımında gözcüleri kullanarak tek oyunculu oynarken avlamaları nasıl test edeceğini öğreneceksin.