[C++] Arkadaş Listesi Fix

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Daha önce açıldıysa rapor atabilirsiniz



Kod:
common/service.h gir Ekle: #def[HASH=1]#define[/HASH]BLE_DELETE_FRIEND_REFRESH_FIX game/src/messenger_manager.cpp gir Arat: MessengerManager::MessengerManager() Üstüne ekle: static char    __account[CHARACTER_NAME_MAX_LEN*2+1]; static char    __companion[CHARACTER_NAME_MAX_LEN*2+1]; Arat: DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&MessengerManager::LoadList) Üstüne ekle:     DBManager::instance().EscapeString(__account, sizeof(__account), account.c_str(), account.size());     if (account.compare(__account))         return; Arat:     if (m_Relation[account].find(companion) != m_Relation[account].end()) Altına ekle:     DBManager::instance().EscapeString(__account, sizeof(__account), account.c_str(), account.size());     DBManager::instance().EscapeString(__companion, sizeof(__companion), companion.c_str(), companion.size());     if (account.compare(__account) || companion.compare(__companion))         return; Arat:     sys_log(1, "Messenger Remove %s %s", account.c_str(), companion.c_str()); Üstüne ekle:     DBManager::instance().EscapeString(__account, sizeof(__account), account.c_str(), account.size());     DBManager::instance().EscapeString(__companion, sizeof(__companion), companion.c_str(), companion.size());       if (account.compare(__account) || companion.compare(__companion))         return; Arat: std::set<keyT>    company(m_Relation[account]); Altına ekle:     DBManager::instance().EscapeString(__account, sizeof(__account), account.c_str(), account.size());     if (account.compare(__account))         return;

Kod:
Userinterface/packet.h gir: Arat: MESSENGER_SUBHEADER_GC_INVITE, Altına ekle: #ifdef ENABLE[HASH=2]#ifdef[/HASH]E_FRIEND_REFRESH_FIX     MESSENGER_SUBHEADER_GC_REMOVE_FRIEND, #endif Useri[HASH=3]#endif[/HASH]ce/PythonMessenger.cpp gir Arat: m_FriendNameMap.erase(c_szKey); Direkt altına ekle: #ifdef ENABLE_[HASH=2]#ifdef[/HASH]_FRIEND_REFRESH_FIX     if (m_poMessengerHandler)         PyCallClassMemberFunc(m_poMessengerHandler, "OnRemoveList", Py_BuildValue("(is)", MESSENGER_GRUOP_INDEX_FRIEND, c_szKey)); #endif Sonucu[HASH=3]#endif[/HASH] olmalı: void CPythonMessenger::RemoveFriend(const char * c_szKey) {     m_FriendNameMap.erase(c_szKey);   #ifdef ENABLE_DE[HASH=2]#ifdef[/HASH]RIEND_REFRESH_FIX     if (m_poMessengerHandler)         PyCallClassMemberFunc(m_poMessengerHandler, "OnRemoveList", Py_BuildValue("(is)", MESSENGER_GRUOP_INDEX_FRIEND, c_szKey)); #endif } Arat: [HASH=3]#endif[/HASH]ESSENGER_SUBHEADER_GC_LOGOUT: Komut bloğunun sonuna ekle: #ifdef ENABLE_DEL[HASH=2]#ifdef[/HASH]IEND_REFRESH_FIX         case MESSENGER_SUBHEADER_GC_REMOVE_FRIEND:         {             BYTE bLength;             if (!Recv(sizeof(bLength), &bLength))                 return false;             if (!Recv(bLength, char_name))                 return false;             char_name[bLength] = 0;             CPythonMessenger::Instance().RemoveFriend(char_name);             break;         } #endif
[CE [/CENTER]
Metin2 Oyunu İçin [C++] Arkadaş Listesi Fix Sistemi

Metin2 özel sunucularında kullanıcı deneyimini artırmak adına birçok sistem geliştirilmektedir. Bunlardan birisi de arkadaş listesi sisteminin doğru çalışmayan veya eksik uygulanmış bölümleridir. Özellikle [C++] tabanlı sunucularda, oyuncuların birbirleriyle iletişim kurması ve birlikte oyun oynaması açısından arkadaş listesi sisteminin düzgün çalışması büyük önem taşır. Bu yazıda, [C++] dilinde yazılmış Metin2 sunucu kaynak kodlarında arkadaş listesi fix uygulamasını nasıl yapacağımızı detaylıca ele alacağız.

Arkadaş Listesi Nedir?
Arkadaş listesi, oyuncuların diğer oyuncuları takip edebilmesi, onların çevrimiçi durumlarını görebilmesi ve onlarla hızlıca iletişime geçebilmesini sağlayan temel bir sistemdir. Ancak bazı özel sunucularda bu sistem eksik ya da hatalı implemente edildiği için oyuncular sorun yaşayabilir. Bu sorunlar arasında arkadaş ekleme, silme, çevrimiçi durum gösterimi gibi işlemler olabilir.

Neden Arkadaş Listesi Fix Gereklidir?
Metin2 özel sunucularında [C++] tabanlı sunucu tarafında geliştirilen sistemlerin çoğu eski kodlara dayanmaktadır. Bu nedenle zamanla ortaya çıkan buglar veya eksiklikler, doğrudan kullanıcı deneyimini etkiler. Arkadaş listesi sisteminin düzgün çalışmaması, oyuncuların sunucudan uzaklaşmasına neden olabilir. Bu sebeple, arkadaş listesi fix uygulamak hem oyuncu sadakatini artırır hem de sunucu kalitesini yükseltir.

Fix Uygulaması İçin Gerekli Adımlar
1. Sunucu Kaynak Kodlarını Kontrol Et: Öncelikle arkadaş listesi ile ilgili olan tüm fonksiyonları gözden geçirin. Özellikle game/core ve db/core dosyalarında bulunan friend veya friend_manager gibi sınıflar incelenmelidir.

2. Hata Ayıklama Yap: Arkadaş listesi işlemleri sırasında log kayıtlarını kontrol edin. Sunucu loglarında hata mesajları varsa, bu hataların neden kaynaklandığını analiz edin. Genellikle hatalar SQL sorgularında ya da client-server senkronizasyonunda olur.

3. Gerekli Değişiklikleri Yap: Arkadaş listesi sistemine ait fonksiyonlar eksik ya da hatalıysa, bu fonksiyonları yeniden yazmanız gerekebilir. Özellikle AddFriend, DeleteFriend, FriendOnline gibi temel fonksiyonların doğru çalışıp çalışmadığını test edin.

4. Client Tarafında Uyum Sağlayın: Sunucu tarafında yapılan değişikliklerin client tarafından doğru şekilde yorumlanması gerekir. Bu yüzden client/src klasöründe bulunan ui.py ve benzeri dosyalarda gerekli düzenlemeler yapılmalıdır.

Python ve C++ Entegrasyonu
Metin2 özel sunucularında py root ve uiscript gibi Python tabanlı sistemler, C++ ile entegre çalışır. Arkadaş listesi fix işleminde Python tarafında da bazı ayarlamalar yapılması gerekebilir. Özellikle PyGUI arayüzü üzerinden yapılan işlemler için uyum sağlanmalıdır. Bu tür sistemlerde martysama gibi geliştiricilerin sağladığı kaynaklar da destek olabilir.

Test ve Doğrulama
Yapılan tüm değişikliklerden sonra mutlaka test aşaması yapılmalıdır. Gerçek oyuncularla test edilmesi, sistemin stabilitesini ve güvenilirliğini artırır. Oyuncuların arkadaş ekleme, silme, çevrimiçi durum görme gibi işlemleri sorunsuz şekilde çalışıyor mu diye kontrol edilmelidir.

Sonuç
[C++] tabanlı Metin2 özel sunucularda arkadaş listesi fix işlemi, kullanıcı memnuniyetini artıran ve sunucu kalitesini yükselten önemli bir sistemdir. Bu sistem, doğru şekilde yapılandırıldığında oyuncuların daha aktif ve bağlı kalmasını sağlar. Yazılım geliştirme konusunda bilgi sahibi olmayanlar için zorlu olsa da, doğru kaynaklar ve dökümantasyon ile kolayca uygulanabilir.


Metin2 Game: [C++] Friend List Fix System

In order to enhance the user experience in Metin2 private servers, many systems are being developed. One of these is the part of the friend list system that doesn't work properly or has been implemented incompletely. Especially in [C++] based servers, it's very important for the friend list system to function properly so that players can interact with each other and play together. In this article, we'll cover in detail how to apply a friend list fix in Metin2 server source codes written in [C++].

What is a Friend List?
The friend list allows players to follow other players, see their online status, and communicate quickly with them. However, in some private servers, this system may be incomplete or implemented incorrectly, causing players to encounter issues. These issues may include adding friends, removing friends, and showing online status.

Why is a Friend List Fix Necessary?
Most of the systems developed in Metin2 private servers based on [C++] are built upon old code. Therefore, bugs or missing features that arise over time directly affect the user experience. If the friend list system doesn't work correctly, it can cause players to leave the server. For this reason, applying a friend list fix increases player loyalty and improves server quality.

Steps Required for the Fix Implementation
1. Check Server Source Codes: First, review all functions related to the friend list. Particularly, check classes named friend or friend_manager located in game/core and db/core files.

2. Debugging: Examine server logs during friend list operations. If there are error messages in the logs, analyze what causes these errors. Usually, errors occur in SQL queries or client-server synchronization.

3. Make Necessary Changes: If the functions related to the friend list are incomplete or faulty, you may need to rewrite them. Test whether basic functions like AddFriend, DeleteFriend, FriendOnline are working properly.

4. Ensure Compatibility on the Client Side: Changes made on the server side must be correctly interpreted by the client. Therefore, necessary adjustments must be made in files such as ui.py found in the client/src folder.

Integration of Python and C++
In Metin2 private servers, Python-based systems like py root and uiscript work integrated with C++. During the friend list fix process, certain adjustments might also be required on the Python side. Compatibility should be ensured especially for operations done through PyGUI interfaces. Resources provided by developers like martysama can also provide support in such systems.

Testing and Validation
After making all changes, testing must be performed. Testing with real players helps improve the stability and reliability of the system. Whether players can successfully add, remove, and view online status of friends should be checked.

Conclusion
Implementing a friend list fix in [C++] based Metin2 private servers is an important system that increases user satisfaction and enhances server quality. When configured correctly, this system ensures players remain more active and loyal. Although it may seem challenging for those without programming knowledge, with the right resources and documentation, it can easily be applied.
 

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

Benzer konular

Geri
Üst Alt