‫Merhaba ve hoş geldiniz.
‫Bu dersin konusu aktörün hasar alma fonksiyonu ve bunu nasıl çağırdığımız olacak.
‫Hadi içeri dalalım ve bu konuda her şeyi öğrenelim.
‫Dolayısıyla, bir şeye hasar verebilmemiz için, gerçekten vurabileceğimiz bir şeye sahip
‫olmamız gerekir.
‫Şimdi içerik tarayıcı rotamıza gidelim ve BP nişancı karakterlerinden birini getirelim.
‫Çünkü aslında olan şey, sahneye bir karakter getirirseniz, otomatik olarak Unreal bu karakteri
‫yapay zeka kontrollü hale getirecek ve oyuncu başladığında ortaya çıkanlar oyuncu kontrollü olacaktır.
‫Yani bu harika.
‫Bu tam da istediğimiz davranış biçimi.
‫Devam edip alt p tuşuna basarsam, aslında yanlış doğma noktasında olduğumu fark edeceksiniz, bu yüzden belki
‫de bu ikinci oyuncu başlangıcını silmek istiyorum.
‫Şimdi alt p'ye basarsam doğru yerde oluruz.
‫İşte benim düşmanım.
‫Düşmana ateş edebilirim.
‫Vuruş etkisini alıyorum.
‫Ama belli ki herhangi bir zarar vermiyorum.
‫En azından henüz değil.
‫Ve zarar vermek iki aşamalı bir süreçtir.
‫İlk bölüm hasarı gönderir, ikinci bölüm ise alır.
‫Bu derste, oyuncuya hasar gönderme ve bununla ilgili fonksiyon çağrıları ile ilgileneceğiz.
‫Bu yüzden bakacağımız en önemli şey aktör Dot H'de ve hasar almak adlı bir işlev
‫çağrısı arıyoruz.
‫Ve burada bu sanal işlevi görebilirsiniz.
‫Bir float döndürür.
‫Geri dönen şey, aktöre uygulanan gerçek hasar, gerçekten uygulanan gerçek miktardır.
‫Ve içeri giren şey hasar miktarıdır, bize bu konuda daha fazla bilgi veren bir hasar olayıdır.
‫Meydana gelen hasarda bir azmettiricimiz var.
‫Yani bu hasara neden olan kontrolörün kim olduğunu mu söylüyorsunuz?
‫Ve sonra hasara neden olan, yani aktörün sorumlu olduğu şey neydi?
‫Yani bu durumda, bir silah olabilir.
‫Yoksa burada patlayan merminin, bu durumda üzerinize düşen taşın, sizi
‫vuran silahın sorumlu aktör olacağını mı söylüyor.
‫Yani özetle hasar almak bu.
‫Bu hasar olayı yapısı hariç, bunların çoğunu bir araya getirmek sizin için oldukça kolay
‫olacaktır.
‫Ve bu biraz daha karmaşık bir durum.
‫Şimdi bu hasar olay yapısına bir göz atalım ve neler yapabileceğimize bakalım.
‫Nasıl bestelenecek?
‫Bunu nasıl bir araya getireceğiz?
‫Şimdi, hemen belli olmuyor ama aslında bu hasar olayı için iki alt tip var.
‫Pratikte, aslında bir EF hasar olayı yaratmayacaksınız, bunun yerine
‫bir EF nokta hasar olayı yaratacaksınız veya bir EF radyal hasar olayı yaratacaksınız.
‫Bunlar Unreal'da var olan iki ana hasar türüdür.
‫Kendi özel eşyalarınız için daha farklı hasar türleri oluşturabilirsiniz, örneğin
‫bir yangın hasarınız olabilir ve farklı parametrelerle, ancak bu durumda EF radyal radyal ve nokta hasarı ile ilgileniyoruz.
‫Yani radyal yine bir el bombasının patlaması gibi bir şey olabilir, bu durumda şunu söylemek istersiniz,
‫tamam, yarıçap nerede, düşüş ne kadar?
‫Tüm bu tür şeyler, silah gibi şeyler için çok daha uygun göründüğü gibi, nokta hasarının olduğu
‫yerlerde.
‫Bu yüzden bir EF noktası hasar olayı oluşturacağız ve gidip yapıcıyı arayacağız, işte
‫bunun için yapıcı ve ne aldığını görebiliriz.
‫Hasar miktarını tekrar alıyor.
‫Yani burada biraz tekrar var.
‫Bu puan hasarının gerçekleşmesine neden olan isabet sonucunu alıyoruz.
‫O zaman atış yönüne doğru gidiyoruz.
‫Harika.
‫Bunu zaten hesapladık.
‫Bir önceki derste bunu yaptığımızda biraz ilerisini düşünüyordum ve sonra bu hasar
‫türü alt sınıfını.
‫Şimdi bu, daha fazla bilgi aktarmak için kullanılabilir, böylece aslında farklı bir hasar olayı türü oluşturmak yerine, muhtemelen
‫farklı bir hasar türü oluşturursunuz.
‫Bu durumda bir yangın türüne veya buna benzer bir şeye sahip olabilirsiniz, çünkü herhangi bir hasar türüne ihtiyacımız
‫yok.
‫Yangın hasarı ya da zehir hasarı gibi ekstra bir şey yapmıyoruz.
‫O zaman yapacağımız şey, bunun yerine buraya bir null işaretçi aktarmaktır.
‫Şimdi bunlardan birini birlikte oluşturmaya çalışalım ve sonra bu hasar alma olayını çağırmanıza izin vereceğim.
‫Yapılacak ilk şey türü yapıştırmaktır, buna hasar olayı diyeceğiz ve sonra
‫onu oluşturacağız.
‫Her şeyden önce, hasar miktarı, henüz silah için bunlardan birine sahip değiliz.
‫Ne kadar zarar verdiğini bilmiyoruz.
‫Böylece devam edebilir ve orada bazı bilgiler oluşturabiliriz.
‫Zaten maksimum menzilimiz var.
‫Burada biraz daha mülk istiyoruz.
‫Herhangi bir yerde düzenleme olacak ve bu da yüzen hasar dememize olanak tanıyacak.
‫Ne kadar zarar veriyoruz?
‫Onluk bir hasar yapacağım ve sonra bunu C++'da kullanabiliriz.
‫Yani hasar, ilk argüman olarak aktaracağımız şeydir.
‫İkincisi bu isabet sonucu mu?
‫Neyse ki elimizde hit olarak adlandırılan sonuçlar var.
‫Bir sonraki şey, konumdaki yayıcımız için zaten hesapladığımız atış yönü olacaktır.
‫Ardından, sadece bir null işaretçi olacak olan alt sınıfa bakacağız.
‫Tamam, bu iş bitti.
‫Bir sonraki şey, zarar vermeye çalıştığımız aktörü ele geçirmek olacaktır.
‫Yaptığınız vuruşa göre bu oldukça basit.
‫Hit dot get actor on here.
‫Ancak bunun null olmadığını kontrol etmeniz gerekecek çünkü hasar vermeye çalıştığımız null bir aktörle
‫sonuçlanmak istemiyoruz, aksi takdirde çökeceğiz.
‫Bu yüzden yapmanız gereken, aktörün null olup olmadığını kontrol etmek için hasar alma işlevini çağırmak olacaktır.
‫Her şeyden önce, boş bir aktör istemiyoruz ve hasar al'ı çağırın ve derleyip derleyemeyeceğinize bakın.
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Konuk oyuncumuz burada.
‫Buna sadece küçük bir değişken diyeceğim.
‫Yani bir aktör işaretçisi isabet aktörü olacak ve daha sonra burada bir if deyimi yapacağız,
‫temel olarak isabet aktörü bir null işaretçisine eşit değilse, o zaman bu isabet aktörüyle
‫devam edeceğiz ve üzerinde hasar alma işlevini çağıracağız.
‫Ve ilk argüman olan hasar miktarını burada yapacağız.
‫İkincisi neydi?
‫Hasar alma bölümüne geri dönüp biraz bakacağım.
‫Sırada bu hasar olayını bir araya getirdiğimiz yapı var.
‫Bunu bir saniye düşünelim.
‫Ardından bunu oluşturan denetleyiciye bir göz atacağız.
‫Bu bizim kontrolörümüz.
‫Hasarı veren silahın kumandasıdır.
‫Ve sonra bu azmettirici, hasar almamızdaki son parametreydi.
‫Ve muhtemelen bu yapıyı yalnızca aktör null işaretçisine eşit değilse bunun içinde oluşturmak istiyoruz çünkü
‫bu hasarı uygulayacağımız bir aktör yoksa buna gerek yoktur.
‫Şimdi gidip derleyelim ve bunun işe yarayıp yaramayacağını görelim.
‫Bu yüzden günlüğümde bir hata aldım.
‫Bakalım neler oluyor.
‫Oh, sadece noktalı virgül eksik.
‫Bu oldukça kolay.
‫Aktörü oraya götürdükten sonra düzeltilecek bir şey.
‫Gidip tekrar deneyelim.
‫Güzel.
‫Her şey başarıyla derlendi ve devam edip oynayabilir ve çekimin bize herhangi bir null hatası vermeyeceğini
‫veya motoru çökertmeye çalışmayacağını kontrol edebiliriz.
‫Sorun yok gibi görünüyor.
‫Bu yüzden, seviyeye yerleştirdiğimiz bu aktör üzerindeki hasarı almaya çalışacağımız bir
‫sonraki derse geçeceğiz.
‫Demek oradasın.