Bu adımda, bir oyuncu tarafından vurulduğunda ekstra zaman kazandıran özel bir hedef oluşturacaksın. Hedef, pozitif puanlı hedeflere vurulduğunda rastgele bir şekilde kalkar ve hedefin kalkma ihtimali, hedef görünene kadar artar.
Adanın Ayarlarını Değiştir
Görünüm penceresinde Kombo Hedefi’ni seç.
Alt tuşuna bas, ardından eksen widget’ına sol tıkla ve bir kopya hedefi atış poligonunun önüne sürükle. Bu, bonus süre hedefidir.
Ayrıntılar panelinde, TargetType’ı Dans Etsin olarak ayarla.
Verse Kodu Yaz
Bu sayfa, kodda yapılacak değişikliklerde sana adım adım rehberlik sağlar, ancak çalışmanı kontrol etmek istersen nihai sonuç için Tam Kod bölümünü inceleyebilirsin.
shooting_range_manager_device.versedosyasını aç.Rastgele sayı üretimini desteklemek için aşağıdaki kütüphaneyi ekle.
Verseusing { /Verse.org/Random }Hedef cihaz referansını ve ilgili özellikleri depolamak için aşağıdaki değişkenleri ekle. Süre ve ödül değişkenleri saniye cinsindendir.
Verse@editable InitialTimerDuration:float = 30.0 @editable MaxTimerDuration:float = 60.0 @editable BonusTimeTarget:shooting_range_target_track_device = shooting_range_target_track_device{} @editableSüreölçeri artıran
OnBonusTimeTargetHitgeri çağırma metodunu ekle.Verse# A hit callback that adds bonus time and disables the BonusTimeTarget. OnBonusTimeTargetHit():void= CurrentDuration:float = Timer.GetActiveDuration() Timer.SetActiveDuration(CurrentDuration + BonusTimeReward) BonusTimeTarget.PopDown() BonusTimeTarget.Disable()OnBeginmetodunu, bonus süre hedefi olay aboneliğini ayarlayacak ve devre dışı bırakacak şekilde değiştir.Verse# Runs when the device is started in a running game. OnBegin<override>()<suspends>:void= # Subscribing to the GoodTarget HitEvents. GoodTarget1.HitEvent.Subscribe(OnGoodTarget1Hit) GoodTarget2.HitEvent.Subscribe(OnGoodTarget2Hit) GoodTarget3.HitEvent.Subscribe(OnGoodTarget3Hit) # Subscribing to the BadTarget HitEvents. BadTarget1.HitEvent.Subscribe(OnBadTarget1Hit) BadTarget2.HitEvent.Subscribe(OnBadTarget2Hit)StartTimermetodunu, süreölçerin maksimum ve aktif sürelerini ayarlayacak şekilde değiştir.Verse# Setup and start the timer. StartTimer():void= # Set the event subscription to call OnTimerSuccess when the timer finishes. Timer.SuccessEvent.Subscribe(OnTimerSuccess) <# --- New Code Start --- #> # Set the max and active duration based on the set property values. Timer.SetMaxDuration(MaxTimerDuration) Timer.SetActiveDuration(InitialTimerDuration)AdjustScoremetodunu, bonus süre hedefinin vurduğun doğru hedeflerin sayısına göre rastgele bir şekilde görünmesini sağlayacak şekilde değiştir.Verse# Adjusts the player's score by the provided value. AdjustScore(Value:int):void= # Start the timer if it hasn't started yet. if (not IsTimerStarted?): StartTimer() # Sets the score award to the base value of the target. ScoreManager.SetScoreAward(Value) # Gets the first player in the playspace.Verse kodunu kaydet ve derle.
Tam Kod
using { /Fortnite.com/Devices }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
# A device that manages shooting range gameplay.
shooting_range_manager_device := class(creative_device):
@editable
ScoreManager:score_manager_device = score_manager_device{}
Hepsini Bir Araya Getir
Görünüm penceresinde veya Anahat Düzenleyicisi panelinde shooting_range_manager_device’ı seç.
Ayrıntılar panelinde, BonusTimeTarget’ı bonus süre hedefine ayarla.
Değişikliklerini gönder ve adanın oynanış testini yap.
Pozitif puanlı hedeflere ateş ettikten sonra bonus süre hedefinin ara sıra göründüğünü doğrula.