Merhabalar Değerli Turkmmo Ailesi;
Oyun içerisinde kanallar arası arkadaş ekleme/kabul etme problemini yaşayanlar için küçük bir fix.
Sistem İle İlgili Görseller:
Oyun içerisinde kanallar arası arkadaş ekleme/kabul etme problemini yaşayanlar için küçük bir fix.
Sistem İle İlgili Görseller:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
-
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Metin2 Private Server'lar İçin [C++] Kanallar Arası Arkadaşlık İsteği Sistemi
Metin2 oyununda kanallar arası arkadaşlık isteği göndermek, özellikle farklı kanallarda bulunan oyuncuların birbirleriyle bağlantı kurabilmesi açısından büyük önem taşır. Bu makalede, C++ tabanlı game server tarafında nasıl bir arkadaşlık sistemi entegrasyonu yapılacağına dair detaylı bir rehber sunacağız. Bu sistem, Metin2 Lobby gibi özel sunucularda yaygın olarak kullanılan bir özelliktir.
Arkadaşlık Sisteminin Mimari Yapısı
Arkadaşlık sistemi genellikle client-server mimarisinde çalışır. Oyuncu bir arkadaşlık isteği gönderdiğinde, bu istek önce client tarafından server'a gönderilir. Sunucu ise gerekli kontrolleri yaptıktan sonra isteği alıcıya iletir. Ancak kanallar arası işlemlerde ekstra kontroller yapılması gerekir.
C++ Kodlama Aşaması
Game server tarafında bu işlemi gerçekleştirmek için öncelikle packet tanımlamaları yapılmalıdır. Arkadaşlık isteği için örnek bir C++ yapı şu şekildedir:
typedef struct packet_friend_request{
char name[CHARACTER_NAME_MAX_LEN];
} TPacketFriendRequest;
Bu yapı, istenen karakterin adını içerir ve diğer kanala aktarılır.
Kanal Kontrolü ve İletişim
Her kanalın ayrı bir server yapısında bulunduğu durumlarda, inter-channel communication için bir core veya paylaşılan bir database bağlantısı gerekebilir. Bu sayede farklı kanallardaki karakterler birbirleriyle haberleşebilir.
Örnek Senaryo: Kullanıcı A, Kanal 1'de iken Kullanıcı B, Kanal 3'tedir. A, B'ye arkadaşlık isteği göndermek ister. Bu durumda C++ tarafında bir handler fonksiyonu çağrılır ve istek diğer kanala yönlendirilir.
Database Entegrasyonu
Arkadaşlık istekleri genellikle DB tarafında da saklanır. Bu sayede kullanıcı başka bir kanala geçse bile istek geçerliliğini korur. Metin2 sistemlerinde friend_list tablosu bu işlemleri desteklemektedir.
Python Entegrasyonları
Bazı sunucularda Python tabanlı script sistemleri de kullanılabilir. Bu durumda py root dosyalarında friend request handler'ları tanımlanabilir. Ancak temel mantık hâlâ C++ ile sağlanır.
Uygulama Adımları
1. Packet tanımlaması yapılır.
2. Handler fonksiyonu yazılır.
3.[/CR] Inter-channel iletişim ayarlanır.
4.[/CR] Database[/CR] güncelleme yapılır.
Sonuç
Kanallar arası arkadaşlık sistemi, Metin2 özel sunucularında kullanıcı deneyimini artıran önemli bir özelliktir. C++ ve game server bilgisiyle bu sistemi kendi projenize entegre edebilirsiniz. Metin2 Lobby üzerinden daha fazla kaynak ve yardım alabilirsiniz.
Cross-Channel Friend Request System for Metin2 Private Servers with [C++]
Metin2 allows players on different channels to send friend requests which is crucial for connecting players across various channels. This article provides a detailed guide on how to implement a friend request system on the C++ based game server side. This feature is commonly used on private servers like Metin2 Lobby.
Architecture of the Friend System
The friend system typically works on a client-server architecture. When a player sends a friend request, it is first sent from the client to the server. The server then performs necessary checks before forwarding the request to the recipient. However, additional checks are required for cross-channel operations.
C++ Coding Phase
To implement this on the game server side, first packet definitions must be created. An example C++ structure for a friend request would be:
typedef struct packet_friend_request{
char name[CHARACTER_NAME_MAX_LEN];
} TPacketFriendRequest;
This structure holds the requested character's name and forwards it to another channel.
Channel Control and Communication
In cases where each channel has its own server structure, a shared core or database connection is needed for inter-channel communication. This allows characters from different channels to communicate with each other.
Example Scenario: User A is on Channel 1 while User B is on Channel 3. If A wants to send a friend request to B, a handler function in C++ is called and the request is forwarded to the other channel.
Database Integration
Friend requests are usually stored in the DB side as well. This ensures that the request remains valid even if the user switches channels. In Metin2 systems, the friend_list table supports these operations.
Python Integration
Some servers also use Python-based script systems. In such cases, friend request handlers can be defined in py root files. However, the core logic is still handled by C++.
Implementation Steps
1. Define the packet.
2. Write the handler function.
3.[/CR] Set up inter-channel communication.
4.[/CR] Update the database[/CR].
Conclusion
The cross-channel friend system is an important feature that enhances the user experience on Metin2 private servers. With C++ and game server knowledge, you can integrate this system into your project. You can find more resources and support via Metin2 Lobby.
