[C++ & Py] Parti Liderinin Aynı Haritadaki Takım Üyelerine Sesli Bildirimi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 51

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Herkese Merhaba

Yapmaktan Kaçındığım Şeyler;

"1: GUI Yapmaktan Nefret Ettiğim İçin Orasını Kullanmak İsteyen Arkadaşa Bıraktım.

Neler Yapabilirsiniz?

1: Saldırı Yapmalarını
2: Geri Çekilmelerini veya Bırakmalarını
3: Yanınıza Toplanmalarını veya Gelmelerini


Bilgilendirme:

1: Aynı Haritada Olan Parti Üyelerinde Notice Gözükür.
2: Aynı Haritada Olan Parti Üyelerinde Seslendirme Duyulur.
3: Aynı Partide Fakat Haritadan Bağımsız Parti Üyesinde Bunlardan Herhangi Biri Olmaz.
4: Aynı Haritada Fakat Partiden Bağımsız Kişilerde Bunlardan Herhangi Biri Olmaz.
5: Partiden Bağımsız Kişilerde Bunlardan Herhangi Biri Olmaz.


Geliştirmek İsteyenlere İpucu:

1: Butona Bastıktan Sonra Tekrar Basılabilmesi İçin Süre Eklentisi
2: Test Olduğu İçin InputLogin.cpp İçine Eklendi Sizin Kullanmak İstediğiniz Yere Göre Değişir. (Örneğin Zindana Girince Çalışsın)
3: Sesleri Yapay Zeka İle Diğer Patronlar veya Canavarlar İçin Geliştirebilirsiniz.
4: MapIndex Kontrolüne Göre Çalışmasını Sağlamak.
5: Her MapIndex İçerisinde Lider Kontrolü Yaptırmak.
6: Tek Bir GUI'den Partinin Bulunduğu Haritanın Patronunu Seslendirmek.




KANIT:


Metin2 Lobby - C++ & Python ile Oyun Geliştirme Serisi

Parti Liderinin Aynı Haritadaki Takım Üyelerine Sesli Bildirimi

Metin2 özel sunucularında oyun içi deneyimi zenginleştirmek, oyuncuların daha etkili iletişim kurmasını sağlamak büyük önem taşır. Bu yazıda, parti liderinin aynı haritada bulunan takım üyelerine sesli bildirim göndermesi özelliğini hem C++ hem de Python tarafında nasıl gerçekleyebileceğimizi ele alacağız. Bu özellik sayesinde lider, stratejik bilgileri hızlıca paylaşabilir; örneğin, düşman bir oyuncu ile karşılaştığında ya da belirli bir lokasyona yönlendirmek istediğinde tüm takımı uyarabilir.

C++ Tarafında Uygulama

Öncelikle C++ tarafında oyun sunucusuna entegre edilecek olan sistem üzerinden başlayalım. Bu işlem için öncelikle party.h ve party.cpp dosyalarında değişiklik yapmamız gerekir. Parti sisteminin temel bileşenlerinden biri olan Party sınıfı üzerine bir fonksiyon ekleyeceğiz. Bu fonksiyon, belirli bir mesajı aynı haritadaki tüm parti üyelerine göndermekten sorumlu olacaktır.

void SendVoiceToSameMap(const char* message); adında bir fonksiyon prototipi party.h dosyasına eklenir. Bu fonksiyon, parti liderinin gönderdiği mesajı alır ve sadece aynı harita üzerinde bulunan oyunculara iletir. Bu işlem sırasında map_allow_find gibi güvenlik kontrolleri yapılmalıdır.

Python Tarafında UI Entegrasyonu

Python tarafında kullanıcı arayüzünde bir buton veya metin kutusu aracılığıyla bu bildirimi tetiklememiz gerekir. Bu işlem için uiscript dosyalarında bir EditLine veya Button nesnesi tanımlanır. Kullanıcı bu alanı doldurup butona bastığında, SendVoiceToSameMap() fonksiyonuna gerekli parametrelerle birlikte istek gönderilir. Bu işlem için net.SendChatPacket veya benzeri bir fonksiyon kullanılabilir.

Güvenlik ve Performans Konuları[/BR][/BR]Bu tarz sistemlerde en çok dikkat edilmesi gereken konulardan birisi spam engellemedir. Her kullanıcı bu özelliği滥用 edebilir. Bu yüzden sunucu tarafında belirli bir zaman aralığında sadece bir kez kullanım izni verilmeli. Ayrıca, mesaj içeriği filtrelenmelidir. Python tarafında bir cooldown sistemi kurularak bu durum kontrol altına alınabilir. C++ tarafında ise gelen mesajın uzunluğu ve içerdiği karakterler kontrol edilmelidir.

Örnek Kullanım Senaryosu[/BR][/BR]Parti lideri, 'Boss çıkıyor!' mesajını gönderdiğinde, sadece aynı haritada bulunan diğer parti üyeleri bu bildirimi sesli olarak alır. Bu sayede takım üyeleri hazırlıklı olur ve koordineli bir şekilde hareket edebilir. Bu sistem özellikle PvP savaşlarında ve zor boss dövüşlerinde oldukça faydalıdır.

Sonuç

Metin2 özel sunucularında parti liderinin aynı haritadaki üyelere sesli bildirim göndermesi, oyuncu deneyimini ciddi anlamda artıran bir özelliktir. Hem C++ hem de Python tarafında uygulanması kolaydır ancak dikkatli planlama ve güvenlik önlemleri ile desteklenmelidir. Bu sistem sayesinde oyuncular daha aktif ve organize bir şekilde oyun içi aktivitelere katılabilir.


Metin2 Lobby - C++ & Python Game Development Series

Voice Announcement from Party Leader to Team Members on Same Map

Enhancing the in-game experience on Metin2 private servers and enabling more effective communication among players is crucial. In this article, we will explore how to implement a feature that allows the party leader to send voice announcements to team members on the same map, both in C++ and Python. This feature enables the leader to quickly share strategic information such as encountering an enemy player or directing the party towards a specific location.

Implementation in C++[/BR][/BR]Let's start with the system integrated into the game server on the C++ side. For this, we need to make changes in the party.h and party.cpp files. We will add a function to the Party class, which is one of the core components of the party system. This function will be responsible for sending a given message to all party members located on the same map.

Add a function prototype void SendVoiceToSameMap(const char* message); to the party.h file. This function takes the message sent by the party leader and transmits it only to players who are on the same map. Security checks like map_allow_find should be performed during this process.

UI Integration in Python[/BR][/BR]On the Python side, we need to trigger this announcement through a button or input field in the user interface. For this purpose, an EditLine or Button object is defined in the uiscript files. When the user fills the input field and clicks the button, the SendVoiceToSameMap() function is called with the necessary parameters. Functions like net.SendChatPacket can be used for this purpose.

Security and Performance Considerations[/BR][/BR]One of the most important aspects in such systems is spam prevention. Users may abuse this feature. Therefore, a cooldown mechanism must be implemented server-side, allowing usage only once within a certain time interval. Additionally, the content of the message should be filtered. A cooldown system can be established in Python to prevent overuse. On the C++ side, the length and characters of the incoming message should also be checked.

Example Use Case[/BR][/BR]When the party leader sends the message 'Boss is spawning!', only other party members located on the same map receive this announcement audibly. This helps the team prepare and act cohesively. This system proves highly useful during PvP battles and challenging boss fights.

Conclusion

Sending voice announcements from the party leader to teammates on the same map in Metin2 private servers significantly enhances the gaming experience. It is straightforward to implement in both C++ and Python, but careful planning and security measures are essential. With this system, players can participate more actively and in an organized manner in in-game activities.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt