MMORPG oyunlarında ya da bazı multiplayer oyunlarda chat içerisine komut yazılabiliyor. Mesela SAMP ya da MTA gibi oyunlarda da vardı. CS1.6 da da vardı.
Aynısını Blueprint ile yapmaya çalıştığımda bir karmaşa söz konusu. Switch on string şeklinde yapıyorum genelde. Ve her komut için Custom Event çağırıyorum. Aslında direkt string verilerek bir komut çağırılsa çok iyi olurdu. Mesela bir event var diyelim adı önceden belli. GiveCoin olsun ismi. Aynı set timer by function name gibi fonksiyon çağırıcı bir şey olsa. TMapArray gibi bir şey ile "komut,çağırılacak fonksiyon" şeklinde ayırabilsek, komutları yazar bırakırdım. O çağırması gerektiği fonksiyonu bulurdu. Mesela GiveCoin eklerdim GiveHP. Mapte karşılıklarını verirdim. Mesela GiveCoin- GivePlayerToCoin ya da GiveHP - SetPlayerMaxHP gibi. Chate yazılan şey map ile karşılaştırılır "Run Function By Name" gibi bir şey ile çalıştırılırdı. Fakat böyle bir node yok sanırım unrealde.

Fotoğrafta gördüğünüz gibi benim yaptığım sistem sürekli switch ekleyerek , custom eventleri yan yana diziyor böyle alt alta gidiyor. 200 komutum olsa burası kasmaya başlar ve şişer. Bunun bir çözümü yok mudur bilen bir arkadaşımız anlatırsa iyi olur. Ben C++ bilmem. C++ olsa çok basit bir şekilde yapısı kurulurdu bunun.
Sadece isim ile fonksiyon çağırılmaz mı?

Bu çalışıyor mesela. Loop olmadığı için de 1 kez çalışıyor. Fakat bunun timer olmayan hali yok mu bu garip kaçar. Belki garip değildir sonuçta çağırıyor fonksiyonu. Fakat bunun normal halinin olması gerekiyordu bence. Şu anda commandsMap listesine bakıyor ve chate yazılan şey ile oradaki komut aynıysa karşılığını set timer by function ile orada eşleşmiş functionu çağırtıyor. 1 kez çağırıyor çünkü loop değil.
Fakat bunun timer olmayan direkt "CallFunction" olan versiyonu olmalıydı.

Bu arada bu da çalışıyor fakat ne iş yaptığını bilmiyorum umarım arkada sürekli loop yapmıyordur.
Aynısını Blueprint ile yapmaya çalıştığımda bir karmaşa söz konusu. Switch on string şeklinde yapıyorum genelde. Ve her komut için Custom Event çağırıyorum. Aslında direkt string verilerek bir komut çağırılsa çok iyi olurdu. Mesela bir event var diyelim adı önceden belli. GiveCoin olsun ismi. Aynı set timer by function name gibi fonksiyon çağırıcı bir şey olsa. TMapArray gibi bir şey ile "komut,çağırılacak fonksiyon" şeklinde ayırabilsek, komutları yazar bırakırdım. O çağırması gerektiği fonksiyonu bulurdu. Mesela GiveCoin eklerdim GiveHP. Mapte karşılıklarını verirdim. Mesela GiveCoin- GivePlayerToCoin ya da GiveHP - SetPlayerMaxHP gibi. Chate yazılan şey map ile karşılaştırılır "Run Function By Name" gibi bir şey ile çalıştırılırdı. Fakat böyle bir node yok sanırım unrealde.

Fotoğrafta gördüğünüz gibi benim yaptığım sistem sürekli switch ekleyerek , custom eventleri yan yana diziyor böyle alt alta gidiyor. 200 komutum olsa burası kasmaya başlar ve şişer. Bunun bir çözümü yok mudur bilen bir arkadaşımız anlatırsa iyi olur. Ben C++ bilmem. C++ olsa çok basit bir şekilde yapısı kurulurdu bunun.
Sadece isim ile fonksiyon çağırılmaz mı?

Bu çalışıyor mesela. Loop olmadığı için de 1 kez çalışıyor. Fakat bunun timer olmayan hali yok mu bu garip kaçar. Belki garip değildir sonuçta çağırıyor fonksiyonu. Fakat bunun normal halinin olması gerekiyordu bence. Şu anda commandsMap listesine bakıyor ve chate yazılan şey ile oradaki komut aynıysa karşılığını set timer by function ile orada eşleşmiş functionu çağırtıyor. 1 kez çağırıyor çünkü loop değil.
Fakat bunun timer olmayan direkt "CallFunction" olan versiyonu olmalıydı.

Bu arada bu da çalışıyor fakat ne iş yaptığını bilmiyorum umarım arkada sürekli loop yapmıyordur.
Son düzenleme: