Arkadaş Listesinden Silme Hata Çözümü

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
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=&quot;https:&amp;#x2F;&amp;#x2F;forum.turkmmo.com&amp;#x2F;konu&amp;#x2F;3689055-arkadas-listesinden-silme-hata-cozumu&amp;#x2F;#post-20490238&quot; class=&quot;js-lightboxCloser&quot;>Tunga · 28 Mar 2019 22:52&amp;#39;de</a> " style="cursor: pointer;">
image.png

İkinci resimde arkadaş olarak silmeme rağmen arkadaş listesinde bulunmaya devam ediyor.
imagedc97581635b2f8b5.png</h4><a href=&quot;https:&amp;#x2F;&amp;#x2F;forum.turkmmo.com&amp;#x2F;konu&amp;#x2F;3689055-arkadas-listesinden-silme-hata-cozumu&amp;#x2F;#post-20490238&quot; class=&quot;js-lightboxCloser&quot;>Tunga · 28 Mar 2019 22:52&amp;#39;de</a> " style="cursor: pointer;">
imagedc97581635b2f8b5.png


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.
 

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

Geri
Üst Alt