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_gamesınıfınaOnPlayerAddedadlı 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 veTeamyerel değişkeninde depola. OyuncununFortCharacterdeğerini al ve birFortCharacterdeğişkenine kaydet.OnPlayerAdded(InPlayer : player) : void = Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] -
Yeni oyuncuyu
TeamMapharitasına atamak için yeni oyuncununTeamdeğeriyle ilişkiliplayer_mapharitasına erişmen gerekir. Yeni oyuncuyla ilişkiliplayer_mapharitasını al ve birPlayerMapyerel 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] -
PlayerMapiçindeki oyuncu puanını 0 olarak ayarla, ardındanTeamMapdeğeriniPlayerMapyerel 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.OnPlayerAddedkodun 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 -
OnBeginiçindeOnPlayerAddedkullanarakPlayerAddedEventoyun alanına abone ol. Şimdi sürmekte olan oyuna katılan bir oyuncuOnPlayerAddedolayı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.