Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ProgressBar Replication (Health Bar)
#1
Merhabalar. 
Oyunda Karakterin üzerinde Sağlık barı ekledim ve oyunu Dedicated olarak başlattığımda herkes Birbirinin sağlık barını görüyor. Herhangi biri hasar aldığında Herkesin görmesini istiyorum. Bunun için nasıl bi replication yapmam gerekiyor?

Ek olarak Kişinin Kendi Progres Bar'ının yeşil olmasını? Çnkü düsman Player'lar krmızı görükecek.

EDIT:
Konunun anlaşılması için resim atayım dedim.
Client2 skill attığnda, Client1 hasar alıyor ve kendi ekraninda Saglık bari düsüyor. Ama kendine hasar vuranın da yani Clien2ninde saglik bari dusyor ama sadece gorsel olarak (ProgresBar). Yani Skil vuran Clnt2 Sağlığından bisy kaybetmiyor.. 
Client2 ekranında ise Client1 hasar alıyor hatta ölüyorda ama ProgresBar güncellenmiyor.
Kafam patates oldu yine

RkMPYs.png

fvfXLK.png

C0N43q.png

LerrMv.png
Ara
Cevapla
#2
(27-10-2020, Saat: 13:08)MR Studio Adlı Kullanıcıdan Alıntı:  Merhabalar. 
Oyunda Karakterin üzerinde Sağlık barı ekledim ve oyunu Dedicated olarak başlattığımda herkes Birbirinin sağlık barını görüyor. Herhangi biri hasar aldığında Herkesin görmesini istiyorum. Bunun için nasıl bi replication yapmam gerekiyor?

Ek olarak Kişinin Kendi Progres Bar'ının yeşil olmasını? Çnkü düsman Player'lar krmızı görükecek.

Karakterinde bir Health float değişkeni olacak ve bu " Replicated" olacak. Sonrasında eğer bu değer herhangi bir şekilde değişecekse bu mutlaka server da olmalı ki diğerlerini de haberdar edebilsin ve bu şekilde herkes durumu aynı şekilde görebilsin. Bunun için hasar kodunu nasıl yazdıysan bunu server fonksiyonu yapacaksın (Run On Server). Dolayısı ile birisi birine vurduğunda aslında server daki karakter hasarı verecek diğer karaktere. İşin tamamı server da olacak. Diğer karakterin Health değeri server da değiştiğinden bunu da replicated yaptığından o zaten tüm client lara replicate olacak. Bu noktada sistemi hangi şekilde kurduğuna bağlı olarak "Replicated Using" fonksiyonu kullanarak tüm clientlarda bu konu ile ilgili ne yapman gerekiyorsa yapabilirsin. Eğer health widget a direk bağlı değilse mesela Replicated Using fonksiyonu ile manuel olarak health bar ı değiştirebilirsin. Health direk widget a bağlı ise zaten otomatik herkes bunu görecektir.
Kişinin kendi barının yeşil olması ise şöyle: Mevcut karakterin yerel olarak kontrol edilen bir karaktermi yoksa başka bir karakter mi diye kontrol etmen buna göre de uygun rengi blueprint ile vermen gerekiyor. Bunu için eğer karakterden yapacaksan bu işi "IsLocallyControlled" vardı. Player Controller dan ulaşacaksan "Is Local Player Controller" vb. bir kaç fonksiyon vardı. Bunlardan birini kullanarak o an ki kodun kimin kodu olduğunu çözmen  ona göre ilgili rengi değiştirmen gerekiyor.
 Bu komutları araştırırsan sonuca ulaşırsın diye düşünüyorum.
 Fikir vermesi açısından internette şöyle şeylere biraz bakabilirsin:
https://shockandrockets.com/ue4-tip-spaw...yone-else/
Ara
Cevapla
#3
(27-10-2020, Saat: 16:20)erginegider Adlı Kullanıcıdan Alıntı:  
(27-10-2020, Saat: 13:08)MR Studio Adlı Kullanıcıdan Alıntı:  Merhabalar. 
Oyunda Karakterin üzerinde Sağlık barı ekledim ve oyunu Dedicated olarak başlattığımda herkes Birbirinin sağlık barını görüyor. Herhangi biri hasar aldığında Herkesin görmesini istiyorum. Bunun için nasıl bi replication yapmam gerekiyor?

Ek olarak Kişinin Kendi Progres Bar'ının yeşil olmasını? Çnkü düsman Player'lar krmızı görükecek.

Karakterinde bir Health float değişkeni olacak ve bu " Replicated" olacak. Sonrasında eğer bu değer herhangi bir şekilde değişecekse bu mutlaka server da olmalı ki diğerlerini de haberdar edebilsin ve bu şekilde herkes durumu aynı şekilde görebilsin. Bunun için hasar kodunu nasıl yazdıysan bunu server fonksiyonu yapacaksın (Run On Server). Dolayısı ile birisi birine vurduğunda aslında server daki karakter hasarı verecek diğer karaktere. İşin tamamı server da olacak. Diğer karakterin Health değeri server da değiştiğinden bunu da replicated yaptığından o zaten tüm client lara replicate olacak. Bu noktada sistemi hangi şekilde kurduğuna bağlı olarak "Replicated Using" fonksiyonu kullanarak tüm clientlarda bu konu ile ilgili ne yapman gerekiyorsa yapabilirsin. Eğer health widget a direk bağlı değilse mesela Replicated Using fonksiyonu ile manuel olarak health bar ı değiştirebilirsin. Health direk widget a bağlı ise zaten otomatik herkes bunu görecektir.
Kişinin kendi barının yeşil olması ise şöyle: Mevcut karakterin yerel olarak kontrol edilen bir karaktermi yoksa başka bir karakter mi diye kontrol etmen buna göre de uygun rengi blueprint ile vermen gerekiyor. Bunu için eğer karakterden yapacaksan bu işi "IsLocallyControlled" vardı. Player Controller dan ulaşacaksan "Is Local Player Controller" vb. bir kaç fonksiyon vardı. Bunlardan birini kullanarak o an ki kodun kimin kodu olduğunu çözmen  ona göre ilgili rengi değiştirmen gerekiyor.
 Bu komutları araştırırsan sonuca ulaşırsın diye düşünüyorum.
 Fikir vermesi açısından internette şöyle şeylere biraz bakabilirsin:
https://shockandrockets.com/ue4-tip-spaw...yone-else/

Anlatması da çok karışık nasıl izah edeceğimi bilemedim Smile
Diğer karakterden kastını bilmiyorum ama bende Tek bi karakter var sadece o çoğaltılıyor. Health değişkeni zaten replicated ve server clientlere haber vercek sekilde ayarlı. Benim kafamı karıştıran şu. Ben sana hasar vurduğumda hasar alıyorsun  ve sağlık barında güncelleniyor ve kendi ekranında benim sağlık barımda seninkiyle aynı gözüküyor. Yani şöyle dyim sana, Hasarı kim alırsa kendi akranında sağlık barı ona vuranınkiyle aynı düşüyor tabi kendi ekranında. Aslnda bunu yazarken benimde kafama yeni dank etti. Senin ekraninda senin HP barın çalısıyor ama yine senin ekranında Benim Hp barım da aslnda senin hp barını gösteriyor.

EDIT:

ÇÖZÜLDÜ


Başkası da faydalansın diye cözümü paylaşıyorum
Event Multicast veya Server vb. Yapmaya gerek yok. Değiskenleri replicate yapmak yeterli.
Widgetda Percent da herhangi bi fonksiyon veya kodlama yapmaya gerek yoktur Progresbar referans almak yeterli . Karakter Blueprint'de Bu kodlama yaplcak. 

V7aIjl.png
Ara
Cevapla
#4
(28-10-2020, Saat: 05:52)MR Studio Adlı Kullanıcıdan Alıntı:  
(27-10-2020, Saat: 16:20)erginegider Adlı Kullanıcıdan Alıntı:  Karakterinde bir Health float değişkeni olacak ve bu " Replicated" olacak. Sonrasında eğer bu değer herhangi bir şekilde değişecekse bu mutlaka server da olmalı ki diğerlerini de haberdar edebilsin ve bu şekilde herkes durumu aynı şekilde görebilsin. Bunun için hasar kodunu nasıl yazdıysan bunu server fonksiyonu yapacaksın (Run On Server). Dolayısı ile birisi birine vurduğunda aslında server daki karakter hasarı verecek diğer karaktere. İşin tamamı server da olacak. Diğer karakterin Health değeri server da değiştiğinden bunu da replicated yaptığından o zaten tüm client lara replicate olacak. Bu noktada sistemi hangi şekilde kurduğuna bağlı olarak "Replicated Using" fonksiyonu kullanarak tüm clientlarda bu konu ile ilgili ne yapman gerekiyorsa yapabilirsin. Eğer health widget a direk bağlı değilse mesela Replicated Using fonksiyonu ile manuel olarak health bar ı değiştirebilirsin. Health direk widget a bağlı ise zaten otomatik herkes bunu görecektir.
Kişinin kendi barının yeşil olması ise şöyle: Mevcut karakterin yerel olarak kontrol edilen bir karaktermi yoksa başka bir karakter mi diye kontrol etmen buna göre de uygun rengi blueprint ile vermen gerekiyor. Bunu için eğer karakterden yapacaksan bu işi "IsLocallyControlled" vardı. Player Controller dan ulaşacaksan "Is Local Player Controller" vb. bir kaç fonksiyon vardı. Bunlardan birini kullanarak o an ki kodun kimin kodu olduğunu çözmen  ona göre ilgili rengi değiştirmen gerekiyor.
 Bu komutları araştırırsan sonuca ulaşırsın diye düşünüyorum.
 Fikir vermesi açısından internette şöyle şeylere biraz bakabilirsin:
https://shockandrockets.com/ue4-tip-spaw...yone-else/

Anlatması da çok karışık nasıl izah edeceğimi bilemedim Smile
Diğer karakterden kastını bilmiyorum ama bende Tek bi karakter var sadece o çoğaltılıyor. Health değişkeni zaten replicated ve server clientlere haber vercek sekilde ayarlı. Benim kafamı karıştıran şu. Ben sana hasar vurduğumda hasar alıyorsun  ve sağlık barında güncelleniyor ve kendi ekranında benim sağlık barımda seninkiyle aynı gözüküyor. Yani şöyle dyim sana, Hasarı kim alırsa kendi akranında sağlık barı ona vuranınkiyle aynı düşüyor tabi kendi ekranında. Aslnda bunu yazarken benimde kafama yeni dank etti. Senin ekraninda senin HP barın çalısıyor ama yine senin ekranında Benim Hp barım da aslnda senin hp barını gösteriyor.

EDIT:

ÇÖZÜLDÜ


Başkası da faydalansın diye cözümü paylaşıyorum
Event Multicast veya Server vb. Yapmaya gerek yok. Değiskenleri replicate yapmak yeterli.
Widgetda Percent da herhangi bi fonksiyon veya kodlama yapmaya gerek yoktur Progresbar referans almak yeterli . Karakter Blueprint'de Bu kodlama yaplcak. 

V7aIjl.png
Dostum 
Sonradan bir sürü resim falan eklemişsin soruya daha yeni farkettim. Soru genel olunca insan çok genel cevap vermek zorunda kalıyor. Neyse sonuçta sende benim anlattığımı yapmışsın zaten. Bir daha özel mesajla falan dürt te konuya bir daha bakayım Smile
Ara
Cevapla
#5
(28-10-2020, Saat: 08:04)erginegider Adlı Kullanıcıdan Alıntı:  
(28-10-2020, Saat: 05:52)MR Studio Adlı Kullanıcıdan Alıntı:  Anlatması da çok karışık nasıl izah edeceğimi bilemedim Smile
Diğer karakterden kastını bilmiyorum ama bende Tek bi karakter var sadece o çoğaltılıyor. Health değişkeni zaten replicated ve server clientlere haber vercek sekilde ayarlı. Benim kafamı karıştıran şu. Ben sana hasar vurduğumda hasar alıyorsun  ve sağlık barında güncelleniyor ve kendi ekranında benim sağlık barımda seninkiyle aynı gözüküyor. Yani şöyle dyim sana, Hasarı kim alırsa kendi akranında sağlık barı ona vuranınkiyle aynı düşüyor tabi kendi ekranında. Aslnda bunu yazarken benimde kafama yeni dank etti. Senin ekraninda senin HP barın çalısıyor ama yine senin ekranında Benim Hp barım da aslnda senin hp barını gösteriyor.

EDIT:

ÇÖZÜLDÜ


Başkası da faydalansın diye cözümü paylaşıyorum
Event Multicast veya Server vb. Yapmaya gerek yok. Değiskenleri replicate yapmak yeterli.
Widgetda Percent da herhangi bi fonksiyon veya kodlama yapmaya gerek yoktur Progresbar referans almak yeterli . Karakter Blueprint'de Bu kodlama yaplcak. 

V7aIjl.png
Dostum 
Sonradan bir sürü resim falan eklemişsin soruya daha yeni farkettim. Soru genel olunca insan çok genel cevap vermek zorunda kalıyor. Neyse sonuçta sende benim anlattığımı yapmışsın zaten. Bir daha özel mesajla falan dürt te konuya bir daha bakayım Smile

Projeyi bildiğin senle beraber yapyorz. Her açtığm konuda çözüm senden gelyo Kral Big Grin Oyun ckarırsam sana %50 hisse vercem Smile
Ara
Cevapla
#6
(28-10-2020, Saat: 08:09)MR Studio Adlı Kullanıcıdan Alıntı:  
(28-10-2020, Saat: 08:04)erginegider Adlı Kullanıcıdan Alıntı:  Dostum 
Sonradan bir sürü resim falan eklemişsin soruya daha yeni farkettim. Soru genel olunca insan çok genel cevap vermek zorunda kalıyor. Neyse sonuçta sende benim anlattığımı yapmışsın zaten. Bir daha özel mesajla falan dürt te konuya bir daha bakayım Smile

Projeyi bildiğin senle beraber yapyorz. Her açtığm konuda çözüm senden gelyo Kral Big Grin Oyun ckarırsam sana %50 hisse vercem Smile

Hocam bunu daha önce de söyleyen oldu, halen bekliyorum :p
Ara
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Replication tavsiyesi Emirhan Altaş 2 156 19-11-2020, Saat: 16:11
Son Yorum: Emirhan Altaş
  Replication leonscottkfm 2 167 13-08-2020, Saat: 13:08
Son Yorum: erginegider
  MultiPlayer Replication leonscottkfm 3 322 15-03-2020, Saat: 19:50
Son Yorum: zoraki
  Replication sistemi ve mantığı hakkında detaylı bilgi [Soru] furkanxdgs4 8 2,029 21-04-2017, Saat: 12:11
Son Yorum: furkanxdgs4
  Health System sorunu goodluck 0 556 22-03-2017, Saat: 17:27
Son Yorum: goodluck
  Physics replication tranduil09 10 2,356 26-04-2016, Saat: 17:51
Son Yorum: cahitburak
  Blueprint replication ClimbDown 4 1,450 28-07-2015, Saat: 15:53
Son Yorum: ClimbDown

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi

Unreal Engine Türkiye

This forum is community driven and supported by voluntary community members. It has nothing to do with Epic Games.

Bu site sadece destek amaçlıdır. Epic Games ile bir ilgisi yoktur.