Verse Avlama oyununda oyuncular her avlamada değişen bir dizilimle savaşırlar. Bu mekanikler Eşya Verici gibi cihazlar Verse cihazına bağlanarak elde edilir.
Bu gelişmiş Verse şablonunda, aşağıdaki Verse API'lerinin kullanımını göreceksin:
Harita kapsayıcı türü
Diziler
Fort_character EliminateEvent bağı
Genel Bakış
Yeni bir proje oluştur ve oyunu kurmak için ada ayarlarını değiştir.
Cihazları ayarla.
Verse Kodunu ekle.
Yeni Bir Proje Oluşturma ve Oyunu Kurma
UEFN’i aç ve yeni bir boş proje oluştur.
Anahat Düzenleyicisinde IslandSettings cihazını seç ve Kullanıcı Seçenekleri - Oyun Kuralları bölümünü bul.
Kullanıcı Seçeneklerini aşağıda gösterildiği gibi değiştir.
| Seçenek | Değer | Açıklama |
|---|---|---|
Avlanan Oyuncunun Eşyaları | Tut | Oyuncular dizilimleriyle birlikte yeniden doğar. |
Eşya Bırakmaya İzin Ver | False | Oyuncular oyun sırasında çantalarından eşya düşüremez. |
Çevre Hasarı | Kapalı | Oyun sırasında çevre hasar görmez. |
Cihazları Ayarlama
Bu eğitimde şu cihazlar kullanılır:
~ adet Eşya Verici
1 adet Oyunu Sonlandırma Cihazı
~ adet Oyuncu Doğma Karesi
Eşya Verici Cihazı
Oyunculara silah vermek için bir Eşya Verici cihazı kullan. Eşya Vericiyi doğrudan olay bağlama kullanarak Verse cihazına bağladıktan sonra Verse kodu silah sırasını karıştırıp her avlamada ödül olarak verebilir.
Dilediğin sayıda Eşya Verici kullanabilirsin. Eşya Vericileri Verse cihaz dizisine bağladığın sürece oyun buna uygun şekilde ölçeklenir.
İçerik Çekmecesi’nden Fortnite > Cihazlar’a git ve Eşya Vericileri haritanın üzerine sürükle.
Bu cihazı ayarlamak için Kullanıcı Seçeneklerini aşağıdaki gibi yapılandır:
| Seçenek | Değer | Açıklama |
|---|---|---|
Eşya Açıklaması | bir silah seç | Her Eşya Verici cihazı için benzersiz bir silah seç. |
Oyunu Sonlandırma Cihazı
Koşullar yerine getirildikten sonra raundu sonlandırmak için bir Oyunu Sonlandırma cihazı kullan. Avlamalar belirli bir eşiğe ulaştığında, Verse kodu raundu sonlandırmak için bu cihazı etkinleştirir.
Bu cihaz için varsayılan ayarları kullan.
Oyuncu Doğma Karesi
Oyuncuların haritanda doğması için Oyuncu Doğma Karelerini kullanabilirsin. Oyuncuların grup halinde doğmadığından emin olmak için doğma karelerini haritanın dört bir yanına eşit olarak dağıt.
Bu cihaz için varsayılan ayarları kullan.
Verse Kodları Ekleme
Öncelikle @editable fonksiyonuyla cihazlara referans göstererek aşağıdaki Verse kodlarını ekle.
Kodu yazıldığı sırayla kopyalayabilirsin. Açıklamalar netlik sağlamak için kod içine eklenir.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
elimination_game_device := class(creative_device):
Yukarıdaki kod, değişken tanımlarını gösterir.
OnBegin<override>()<suspends>:void=
# Can use this variable to scale the number of eliminations needed based on how many item granters there are in the experience
set NumberOfEliminationsToWin = WeaponItemGranters.Length
Print("Number of Weapon Item Granters: {WeaponItemGranters.Length}")
# Randomize the order in which the weapons are granted
set WeaponItemGranters = Shuffle(WeaponItemGranters)
# Get all the players in the experience
AllPlayers := GetPlayspace().GetPlayers()
Yukarıdaki kod, kazanmak için kaç tane avlama gerektiğiyle ilgili oyun kuralını ayarlayan mantığı gösterir. Eşya Verici dizisinin sırası karıştırılır.
Oyuncular hem ilerlemelerini hem de verilmesi gereken bir sonraki silahı takip etmek için bir haritaya eklenir.
# Event that handles when a player is eliminated
OnPlayerEliminated(Result:elimination_result):void=
Print("Player Eliminated")
EliminatingCharacter := Result.EliminatingCharacter
if (FortCharacter := EliminatingCharacter?):
if (EliminatingAgent := FortCharacter.GetAgent[]):
GrantNextWeapon(EliminatingAgent)
Yukarıdaki kod bir oyuncu avlandığında gerçekleşen olaydır. Avlayan oyuncuya bir sonraki silah verilir.
# Check if there is a winner for the game, if not then grant the next weapon
GrantNextWeapon(Agent:agent):void=
if (var CurrentItemNumber:int = AgentMap[Agent]):
if (IsVictoryConditionMet(CurrentItemNumber) = true):
EndGame(Agent) # Game has been won
else: # Game is not over yet
set CurrentItemNumber = CurrentItemNumber + 1
if (ItemGranter := WeaponItemGranters[CurrentItemNumber - 1]):
ItemGranter.GrantItem(Agent)
Yukarıdaki kod, hem avlayan oyuncuya hangi silahın verileceğini hem de karşılaşmayı sonlandırmak için son silahta olup olmadığını belirleyen mantıktır.
# Check if the victory condition has been met and return the the result
IsVictoryConditionMet(EliminationNumber:int)<transacts>:logic=
if:
EliminationNumber = NumberOfEliminationsToWin
then:
return true
else:
return falseYukarıdaki kod, kazanma koşulunun karşılanıp karşılanmadığını kontrol eden mantıktır.
EndGame(Agent:agent):void=
EndGameDevice.Activate(Agent)
Yukarıdaki kod, kazanan oyuncuyu çağıran Oyunu Sonlandırma cihazını gösteren mantıktır.
Verse Cihazını Ayarlama
Verse cihazı, doğrudan olay bağlamayı kullanarak bağlı Eşya Vericiler dizisi üzerinden oyunu sonlandırmayı ve avlama olduğunda silah vermeyi kontrol eder.
Verse kodunu derle, sonra cihazı İçerik Çekmecesi’nde bul. Ayarları özelleştirmek için Verse cihazını haritanın görülmeyen bir alanına sürükle.
Doğrudan olay bağlamayı gereken cihazlarla ilişkilendirmek için bu cihazı kullan, böylece Verse kodu bu cihazlara referans verebilir.
Cihazın Ayrıntılar panelinde yukarıdaki fotoğrafta görüldüğü gibi referans verilen her bir cihazla eşleşecek ayarları yapılandır.
Bu cihazı ayarlamak için Kullanıcı Seçeneklerini aşağıdaki gibi yapılandır:
| Seçenek | Değer | Açıklama |
|---|---|---|
EndGameDevice | Oyunu Sonlandırma Cihazı | Verse cihazını Oyunu Sonlandırma cihazına bağlar. |
WeaponItemGranters - 0 | Eşya Verici | Eşya Vericiyi Verse cihazına bağlar. |
WeaponItemGranters - 1 | Eşya Verici 2 | Eşya Vericiyi Verse cihazına bağlar. |
WeaponItemGranters - 2 | Eşya Verici 3 | Eşya Vericiyi Verse cihazına bağlar. |
WeaponItemGranters - 3 | Eşya Verici 4 | Eşya Vericiyi Verse cihazına bağlar. |
Tamamlanan bölümünü test etmek için Oturumu Başlat’ı seç.