Farklı bir tarz bloklama sistemi yazarken farkettim;
Bir kullanıcıyı arkadaş eklediğinizde karşı tarafa onay giderek karşılıklı olarak arkadaş listelerine ekleniyor
Ancak arkadaş listesinden çıkarıldığında sadece çıkartan kişiden silinmekte.
Bloklama sisteminde, karşıdaki kişinin arkadaş listesinde bulunuyorsanız asla ama asla bloklayamazsınız. Bu nedenle bloklama sistemi işlevini yitirmektedir.
Hatayı resimlerle anlatmak gerekirse:
İlk resimde arkadaş olarak ekliyoruz.
image.png</h4><a href="https:&#x2F;&#x2F;forum.turkmmo.com&#x2F;konu&#x2F;3689055-arkadas-listesinden-silme-hata-cozumu&#x2F;#post-20490238" class="js-lightboxCloser">Tunga · 28 Mar 2019 22:52&#39;de</a> " style="cursor: pointer;">
İkinci resimde arkadaş olarak silmeme rağmen arkadaş listesinde bulunmaya devam ediyor.
imagedc97581635b2f8b5.png</h4><a href="https:&#x2F;&#x2F;forum.turkmmo.com&#x2F;konu&#x2F;3689055-arkadas-listesinden-silme-hata-cozumu&#x2F;#post-20490238" class="js-lightboxCloser">Tunga · 28 Mar 2019 22:52&#39;de</a> " style="cursor: pointer;">
Bu düzeltmeyi yaptıktan sonra karşı taraf teleport olduğunda arkadaş listesinden silinecektir.
Metin2 Lobby
Arkadaş Listesinden Silme Hata Çözümü
Metin2 özel sunucularında arkadaş listesinden silme işlemi sırasında bazı kullanıcılarla karşılaşılan hatalar, hem oyun deneyimini olumsuz etkileyebilir hem de sunucu yöneticileri için hata ayıklama sürecini zorlaştırabilir. Bu makalede, Metin2 lobby kullanıcılarının sıklıkla karşılaştığı 'arkadaş listeden silinmiyor' veya 'silme işlemi başarısız' gibi sorunları detaylıca ele alacağız ve bu hataların kök nedenlerini ve çözüm yollarını açıklayacağız.
Hatanın Tanımı
Genellikle Metin2 sunucularında, bir oyuncu arkadaş listesinden başka bir oyuncuyu silmek istediğinde, işlem sunucuya gönderilen bir istekle başlatılır. Ancak bu işlem sırasında client-side veya server-side bir hata meydana gelirse, silme işlemi başarıyla gerçekleşmeyebilir. Kullanıcılar, silme butonuna bastıklarında herhangi bir tepki alamaz veya hata mesajı görebilirler. Bu durum, C++ tabanlı game server tarafında eksik kontrol veya Python tarafında GUI ile veri aktarımı sırasında sorun oluşmasından kaynaklanabilir.
Yaygın Nedenler
1. Database bağlantısında gecikme veya bağlantı kopması.
2. Sunucu tarafında friend_remove komutunun doğru işlenmemesi.
3. Client tarafından gönderilen packet yapısının sunucu ile uyumsuz olması.
4. Auth server ile game server arasında senkronizasyon hatası.
Sunucu Tarafında Çözüm Yöntemleri
Sunucu tarafında bu hatayı çözmek için game server kaynak kodlarında bulunan friend_remove fonksiyonunu kontrol etmelisiniz. Bu fonksiyon genellikle C++ dilinde yazılmıştır ve db_core ile haberleşerek veritabanındaki friend ilişkisini kaldırır. Eğer bu fonksiyonda rollback veya commit işlemleri eksikse, silme işlemi veritabanına yansımayabilir. Ayrıca, Martysama gibi geliştirici araçları kullanarak client ile server arasındaki packet trafiğini izlemek faydalı olabilir.
Client-side Ayarlar
Eğer sunucu tarafı sorunsuzsa, client-side hatalar da gözden geçirilmelidir. UIScript dosyalarında tanımlanan friend window içindeki remove button fonksiyonu, doğru packet yapısını gönderiyor mu diye kontrol edilmelidir. PyRoot üzerinden oluşturulan GUI yapılarında, PyGUI ile veri aktarımı esnasında bir hata olup olmadığı da incelenmelidir.
Test Ortamı Oluşturmak
Bu tür hataları tekrarlamak ve test etmek için, Metin2 Lobby üzerinde küçük bir test server ortamı kurabilirsiniz. Pack dosyalarınıza örnek kullanıcılar ekleyip, arkadaş ekleme/silme işlemlerini test ederek hataları yakalayabilirsiniz. Bu süreçte compile işlemi sırasında oluşan logları takip etmek önemlidir.
Sonuç
Arkadaş listesinden silme hatası, genellikle server-side ve client-side uyumsuzluklardan kaynaklanmaktadır. Bu hatayı çözmek için öncelikle database bağlantısı, packet yapısı ve C++ fonksiyonların doğruluğu kontrol edilmelidir. Metin2 geliştiricileri için bu tür hatalar, source edit sürecinde dikkat edilmesi gereken kritik konulardandır.
Metin2 Lobby
Friend List Removal Error Solution
In Metin2 private servers, errors encountered during the removal from friend list process can negatively affect both the gaming experience and complicate the debugging process for server administrators. In this article, we will examine in detail common issues such as 'friend not removed from list' or 'removal failed', frequently faced by Metin2 lobby users, and explain their root causes along with solutions.
Error Description
In general, in Metin2 servers, when a player wants to remove another player from their friend list, the action starts with a request sent to the server. However, if an error occurs on either client-side or server-side, the removal process may fail. Users might receive no response after clicking the remove button or see an error message. This issue could stem from missing checks in the C++-based game server side or problems during data transmission between the GUI and the server in Python.
Common Causes
1. Delay or disconnection in the database connection.
2. Incorrect processing of the friend_remove command on the server side.
3. Mismatch in packet structure sent by the client.
4. Synchronization error between auth server and game server.
Server-Side Solutions
To solve this error on the server side, you should check the friend_remove function located in the game server source code. This function is typically written in C++ and communicates with db_core to remove the friend relation in the database. If the rollback or commit operations are missing in this function, the removal operation might not reflect in the database. Additionally, monitoring the packet traffic between the client and server using tools like Martysama can be helpful.
Client-Side Adjustments
If the server side is functioning properly, client-side errors must also be reviewed. The remove button function defined within the friend window in the UIScript files should be checked to ensure it sends the correct packet structure. Any errors during data transfer via PyGUI through PyRoot in GUI structures must also be investigated.
Creating a Test Environment
To replicate and test these types of errors, you can set up a small test server environment on Metin2 Lobby. By adding sample users to your pack files and testing friend add/remove operations, you can catch errors. During this process, monitoring logs generated during the compile process is crucial.
Conclusion
The friend list removal error usually stems from mismatches between server-side and client-side operations. To resolve this error, the correctness of database connections, packet structures, and C++ functions should first be verified. For Metin2 developers, such errors are critical points to consider during the source edit process.
Bir kullanıcıyı arkadaş eklediğinizde karşı tarafa onay giderek karşılıklı olarak arkadaş listelerine ekleniyor
Ancak arkadaş listesinden çıkarıldığında sadece çıkartan kişiden silinmekte.
Bloklama sisteminde, karşıdaki kişinin arkadaş listesinde bulunuyorsanız asla ama asla bloklayamazsınız. Bu nedenle bloklama sistemi işlevini yitirmektedir.
Hatayı resimlerle anlatmak gerekirse:
İlk resimde arkadaş olarak ekliyoruz.
image.png</h4><a href="https:&#x2F;&#x2F;forum.turkmmo.com&#x2F;konu&#x2F;3689055-arkadas-listesinden-silme-hata-cozumu&#x2F;#post-20490238" class="js-lightboxCloser">Tunga · 28 Mar 2019 22:52&#39;de</a> " style="cursor: pointer;">
İkinci resimde arkadaş olarak silmeme rağmen arkadaş listesinde bulunmaya devam ediyor.
imagedc97581635b2f8b5.png</h4><a href="https:&#x2F;&#x2F;forum.turkmmo.com&#x2F;konu&#x2F;3689055-arkadas-listesinden-silme-hata-cozumu&#x2F;#post-20490238" class="js-lightboxCloser">Tunga · 28 Mar 2019 22:52&#39;de</a> " style="cursor: pointer;">
Bu düzeltmeyi yaptıktan sonra karşı taraf teleport olduğunda arkadaş listesinden silinecektir.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Metin2 Lobby
Arkadaş Listesinden Silme Hata Çözümü
Metin2 özel sunucularında arkadaş listesinden silme işlemi sırasında bazı kullanıcılarla karşılaşılan hatalar, hem oyun deneyimini olumsuz etkileyebilir hem de sunucu yöneticileri için hata ayıklama sürecini zorlaştırabilir. Bu makalede, Metin2 lobby kullanıcılarının sıklıkla karşılaştığı 'arkadaş listeden silinmiyor' veya 'silme işlemi başarısız' gibi sorunları detaylıca ele alacağız ve bu hataların kök nedenlerini ve çözüm yollarını açıklayacağız.
Hatanın Tanımı
Genellikle Metin2 sunucularında, bir oyuncu arkadaş listesinden başka bir oyuncuyu silmek istediğinde, işlem sunucuya gönderilen bir istekle başlatılır. Ancak bu işlem sırasında client-side veya server-side bir hata meydana gelirse, silme işlemi başarıyla gerçekleşmeyebilir. Kullanıcılar, silme butonuna bastıklarında herhangi bir tepki alamaz veya hata mesajı görebilirler. Bu durum, C++ tabanlı game server tarafında eksik kontrol veya Python tarafında GUI ile veri aktarımı sırasında sorun oluşmasından kaynaklanabilir.
Yaygın Nedenler
1. Database bağlantısında gecikme veya bağlantı kopması.
2. Sunucu tarafında friend_remove komutunun doğru işlenmemesi.
3. Client tarafından gönderilen packet yapısının sunucu ile uyumsuz olması.
4. Auth server ile game server arasında senkronizasyon hatası.
Sunucu Tarafında Çözüm Yöntemleri
Sunucu tarafında bu hatayı çözmek için game server kaynak kodlarında bulunan friend_remove fonksiyonunu kontrol etmelisiniz. Bu fonksiyon genellikle C++ dilinde yazılmıştır ve db_core ile haberleşerek veritabanındaki friend ilişkisini kaldırır. Eğer bu fonksiyonda rollback veya commit işlemleri eksikse, silme işlemi veritabanına yansımayabilir. Ayrıca, Martysama gibi geliştirici araçları kullanarak client ile server arasındaki packet trafiğini izlemek faydalı olabilir.
Client-side Ayarlar
Eğer sunucu tarafı sorunsuzsa, client-side hatalar da gözden geçirilmelidir. UIScript dosyalarında tanımlanan friend window içindeki remove button fonksiyonu, doğru packet yapısını gönderiyor mu diye kontrol edilmelidir. PyRoot üzerinden oluşturulan GUI yapılarında, PyGUI ile veri aktarımı esnasında bir hata olup olmadığı da incelenmelidir.
Test Ortamı Oluşturmak
Bu tür hataları tekrarlamak ve test etmek için, Metin2 Lobby üzerinde küçük bir test server ortamı kurabilirsiniz. Pack dosyalarınıza örnek kullanıcılar ekleyip, arkadaş ekleme/silme işlemlerini test ederek hataları yakalayabilirsiniz. Bu süreçte compile işlemi sırasında oluşan logları takip etmek önemlidir.
Sonuç
Arkadaş listesinden silme hatası, genellikle server-side ve client-side uyumsuzluklardan kaynaklanmaktadır. Bu hatayı çözmek için öncelikle database bağlantısı, packet yapısı ve C++ fonksiyonların doğruluğu kontrol edilmelidir. Metin2 geliştiricileri için bu tür hatalar, source edit sürecinde dikkat edilmesi gereken kritik konulardandır.
Metin2 Lobby
Friend List Removal Error Solution
In Metin2 private servers, errors encountered during the removal from friend list process can negatively affect both the gaming experience and complicate the debugging process for server administrators. In this article, we will examine in detail common issues such as 'friend not removed from list' or 'removal failed', frequently faced by Metin2 lobby users, and explain their root causes along with solutions.
Error Description
In general, in Metin2 servers, when a player wants to remove another player from their friend list, the action starts with a request sent to the server. However, if an error occurs on either client-side or server-side, the removal process may fail. Users might receive no response after clicking the remove button or see an error message. This issue could stem from missing checks in the C++-based game server side or problems during data transmission between the GUI and the server in Python.
Common Causes
1. Delay or disconnection in the database connection.
2. Incorrect processing of the friend_remove command on the server side.
3. Mismatch in packet structure sent by the client.
4. Synchronization error between auth server and game server.
Server-Side Solutions
To solve this error on the server side, you should check the friend_remove function located in the game server source code. This function is typically written in C++ and communicates with db_core to remove the friend relation in the database. If the rollback or commit operations are missing in this function, the removal operation might not reflect in the database. Additionally, monitoring the packet traffic between the client and server using tools like Martysama can be helpful.
Client-Side Adjustments
If the server side is functioning properly, client-side errors must also be reviewed. The remove button function defined within the friend window in the UIScript files should be checked to ensure it sends the correct packet structure. Any errors during data transfer via PyGUI through PyRoot in GUI structures must also be investigated.
Creating a Test Environment
To replicate and test these types of errors, you can set up a small test server environment on Metin2 Lobby. By adding sample users to your pack files and testing friend add/remove operations, you can catch errors. During this process, monitoring logs generated during the compile process is crucial.
Conclusion
The friend list removal error usually stems from mismatches between server-side and client-side operations. To resolve this error, the correctness of database connections, packet structures, and C++ functions should first be verified. For Metin2 developers, such errors are critical points to consider during the source edit process.
