Artık oyuncuları takımlara dengeli bir şekilde dağıttığına göre, atandıkları takıma göre oyunculara doğru silahları vermen gerekiyor. Oyunculara doğduklarında uygun silahların nasıl verileceği hakkında bilgi edinmek için aşağıdaki adımları izle.
Takıma Göre Silah Verme
triad_infiltration_gamesınıf tanımınaGrantTeamWeapon()adlı yeni bir fonksiyon ekle. Bu fonksiyon, bir oyuncuya bulunduğu takıma göre bir silah verir.GrantTeamWeapon(InPlayer:player):void=GrantTeamWeapon()dizisinde ilgili oyuncunun takımını al. Sonra birfordöngüsündeTeamsdizisindeki her bir takım ile yineleme yap ve takımın dizisini alıp birTeamIndexdeğişkeninde depola.fordöngünde bir filtreleme koşulu olarak ilgili oyuncunun takımının bu takımla eşleşip eşleşmediğini kontrol et.GrantTeamWeapon(InPlayer:player):void= if(CurrentTeam := GetPlayspace().GetTeamCollection().GetTeam[InPlayer]): for(TeamIndex -> PlayerTeam:Teams, PlayerTeam = CurrentTeam):- Filtreleme koşulun
fordöngüsündeki kodun doğru takımla çalışmasını sağlayacağından, takıma uygun eşya vericiyi almak için o takımınTeamIndexdeğerini kullanarakWeaponGrantersiçinde dizin oluştur. Son olarak ilgili oyuncuyu kullanarakGrantItem()çağır.GrantTeamWeapon()kodun şu şekilde görünmelidir:# Oyunculara Takımlar dizisindeki takımlarının dizinine göre bir silah verir, # bunun için WeaponGranters dizisinde bir dizin oluşturur. GrantTeamWeapon(InPlayer:player):void= if(CurrentTeam := GetPlayspace().GetTeamCollection().GetTeam[InPlayer]): for(TeamIndex -> PlayerTeam:Teams, PlayerTeam = CurrentTeam): if(WeaponGranter := WeaponGranters[TeamIndex]): WeaponGranter.GrantItem(InPlayer) Logger.Print("{TeamIndex + 1} takımındaki bir Oyuncuya bir silah verildi")Teamsiçindeki takımlarının sırasıylaWeaponGrantersiçindeki eşya vericilerinin sırasının eşleştiğinden emin ol. Casuslar 1. Takım iseWeaponGrantersiçindeki ilk eşya verici, Casuslar için olmalıdır. Editörde bu değerlerin doğru olup olmadığını iki kez kontrol et.
Oyuncu Doğduğunda Silah Verme
triad_infiltration_gamesınıf tanımınaOnPlayerSpawn()adlı yeni bir fonksiyon ekle. Bu fonksiyon biragentalır ve onu,GrantTeamWeapon()çağırarak oyuncuya uygun silahı vermek için kullanır.OnPlayerSpawn(SpawnedAgent:agent):void=OnPlayerSpawn()fonksiyonundaSpawnedAgentdeğerini birplayerdeğerine dönüştür. Sonra oyuncuyu geçerkenGrantTeamWeapon()fonksiyonunu çağır.OnPlayerSpawn()fonksiyonun şu şekilde görünmelidir:# Bir doğma karesinden herhangi bir oyuncu doğduğunda çalışır. # Belirtilen SpawnedAgent değerini kullanarak GrantTeamWeapon fonksiyonunu çağırır. OnPlayerSpawn(SpawnedAgent:agent):void= if(SpawnedPlayer := player[SpawnedAgent]): Logger.Print("Doğan oyuncuya bir silah vermeyi deniyor") GrantTeamWeapon(SpawnedPlayer)OnBegin()dizisindeBalanceTeams()çağrısını yapmadan önce birfordöngüsü kullanarak her bir oyuncu doğma yerininSpawnedEventdeğerini, yeni tanımladığınOnPlayerSpawn()fonksiyonuna abone yap.OnBegin<override>()<suspends>:void = # Bütün Takımları al set Teams = GetPlayspace().GetTeamCollection().GetTeams() # Takımları daha sonra başvurmak üzere kaydet set InfiltratorsOpt = option{Teams[0]} set AttackersOpt = option{Teams[1]} set DefendersOpt = option{Teams[2]} if: Infiltrators := InfiltratorsOpt? Attackers := AttackersOpt? Defenders := DefendersOpt? Logger.Print("Üç takımın hepsi bulundu") set TeamsAndTotals[Infiltrators] = MaximumInfiltrators set TeamsAndTotals[Attackers] = MaximumAttackers set TeamsAndTotals[Defenders] = MaximumDefenders Logger.Print("TeamsAndTotals içinde üç takımın hepsi ayarlandı") then: #Yeni bir oyuncu oyuna katıldığında takımların yeniden dengelenmesine olanak tanıyan PlayerAddedEvent olayına abone ol for(PlayerSpawner:PlayersSpawners): PlayerSpawner.SpawnedEvent.Subscribe(OnPlayerSpawn) BalanceTeams() TeleportPlayersToStartLocations() else: Logger.Print("Bütün takımlar bulunamadı, ada ayarlarında doğru takımları atadığından emin ol.")-
Kodu kaydet, derle ve bölüme oynanış testi uygulamak için UEFN araç çubuğunda oturumu başlat düğmesine tıkla. Bölümüne oynanış testi uyguladığında her oyuncunun en büyük farka sahip takıma atanması ve kendi takımına uygun bir silahla doğması gerekir. Günlüğü kullanarak bu davranışı doğrula.
Sonraki Adım
Bu eğitimin sonraki adımında, Casuslar doğduğunda ve oyun başladığında onları nasıl görünmez yapacağını öğreneceksin.