AloneSoft

Yeni üye
24 Eyl 2023
3
0
0
(6) Ankara
Merhaba Arkadaşlar, 

Sistemim bir online alt yapıdır. tam olarak bana lazım olan durum ; Menüde 5 adet butonum bulunmakta. client'lardan bir tanesi bu butona tıkladığı zaman buton tıklanma özelliği yani set is enabled olayı false olacak ki bu kısmı halledebiliyorum. ancak bu buton sadece basan client için kapalı oluyor ben tüm clientler için false olmasını istiyorum. 

Çözüm Denemeleri ; 

1) Run on Server - Multicast mantığı 
2) Bu olayları gamemode kısmında yazmak
3) Bu olayları Gamestate kısmında yazmak

ama bir sonuç alamıyorum. yardım ederseniz en kötü bir fikir bile olsa çok sevinirim. 

İyi çalışmalar herkese.
 
Widgetler replicated değildir. Widget içerisinde RunOnServer vs. yürütemezsin.
Çok yöntem var, aklıma ilk gelen ortak değişken kullanmak. GameState iş görür.

Widget içerisinde butona basınca PlayerController'un ne ise onu Cast et, bir event çalıştır (runonserver), ardından bu Player Controller'ın içerisinde çalıştırdığın event ile GameState cast et bir event çalıştır yine run on server.
Değişkeni true ya da false yap. 
Özetle:
Widget -> PlayerController -> GameState -> Değişken değiştir

Değişkenin replicated olup olmamasına dikkat et. 
Şimdi, is enabled "bind" kısmına bu GameState'de oluşturduğun değişkeni ekle (game state'den çağır bunu) ve bağla.
İstediğin şey tam olarak bu.
 
İşte bu süper. denedim ve test ettim. çalıştı bu güzel fikir ve bilgi için teşekkürler. 

Bundan sonra bu tarz bir işlem yapan kişi direk buradan yardım alabilir.