[KITMiR-FIX] checkpoint tics eşitleme sorunu

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba, arkadaşlar gördüğüm bir ymir kod mantık hatasının fixini paylaşmak istiyorum.

Daha önceki gördüğüm fix konularında sadece abort() fonksiyonunu ve syserr silerek ch kapanmasını önlemiş oluyorlardı buda gereksiz kod oluşumuna ve işlevsiz koşula neden oluyordu.

Çözüm:

Açılır: libthecore/signal.c

[/FONT]Aratılır:

Kod:
RETSIGTYPE checkpointing(int sig)


Değiştirilir:

Kod:
RETSIGTYPE checkpointing(int sig)
Kod:
{     tics = 0; }


SS:

gXy7W0.png



NOT: farklı game ve farklı db kullanıyorsanız ikisindede aynı işlemi uygulayınız.


not: gerekli





[KITMiR-FIX] Checkpoint Tics Eşitleme Sorunu Nedir?
Metin2 özel sunucularında geliştirme yaparken karşılaşılan yaygın sorunlardan birisi de checkpoint tics eşitleme hatasıdır. Bu hata genellikle oyun sırasında zamanlama bazlı sistemlerin çalışmasında aksaklıklara neden olur. Özellikle PvP odaklı sunucularda zamanlama kritik öneme sahiptir. Bu yazıda, KITMiR-FIX kapsamında bu sorunun ne olduğunu, nasıl ortaya çıktığını ve nasıl çözüleceğini detaylıca ele alacağız.

Checkpoint Tics Eşitleme Hatasının Nedenleri
Bu hata genellikle server-side ve client-side zamanlama senkronizasyonu sağlanamadığında meydana gelir. Oyuncu bir belirli zaman aralığında bir işlem gerçekleştirmeye çalıştığında, sunucu ile istemci arasında zaman farkı oluşursa, bu durum illegal action olarak algılanabilir. Özellikle martysama veya diğer modifiye edilmiş sistemlerde bu durum sıkça görülmektedir.

Nasıl Tespit Edilir?
Oyuncuların belirli checkpointlere ulaşamaması, zaman bazlı sistemlerin (örneğin event sistemleri) doğru çalışmaması gibi durumlar bu hatanın göstergesi olabilir. Sunucu loglarında genellikle 'invalid tick count' veya benzeri hatalar gözlemlenir. Bu logları incelemek, sorunun kök nedenini anlamada büyük fayda sağlar.

Çözüm Yöntemleri
1. Client-side kodlarında tick sayısının doğrulanması gerekebilir. uiscript veya py root dosyalarında zamanlama kontrolleri revize edilmelidir. Python GUI üzerinden çalışan sistemlerde de benzer kontroller yapılmalıdır.

2. Server-side tarafında game ve auth sunucuları arasındaki gecikmeler kontrol edilmeli, tıklar senkronize edilmelidir. Bu işlemler genellikle C++ source üzerinde yapılır. Metin2 server src üzerinde yapılan küçük değişiklikler büyük etkiler yaratabilir.

Teknik Detaylar
Checkpoints, oyuncunun belirli bir konuma veya duruma ulaşması için zamanı ve pozisyonu kaydeder. Eğer tics (tick sayısı) eşitlenmezse, sunucu bu checkpointleri geçersiz sayabilir. Bu da oyunun akışını ciddi şekilde etkileyebilir. Örneğin, bir PvP haritasında belirli bir alana girişte zamanlama hatası oluşursa, oyuncu beklenmedik şekilde engellenmiş ya da geri itilmiş olabilir.

KITMiR-FIX Kullanımı
KITMiR-FIX, bu tür sorunların önüne geçmek için geliştirilmiş bir sistemdir. Metin2 development süreçlerinde bu fix’in kullanımı oldukça yaygındır. Fix sayesinde tıklar daha stabil hale getirilir ve sunucu ile istemci arasındaki senkronizasyon sağlanır. Bu fix, aynı zamanda core sistemlerde de değişiklik yapılmasını gerektirebilir.

Sonuç
Checkpoint tics eşitleme sorunu, Metin2 özel sunucularında zamanlama bazlı sistemlerin doğru çalışmasının önündeki en büyük engellerden biridir. Doğru tanı teşhisi ve çözüm uygulandığında bu hata kolayca giderilebilir. Geliştiricilerin dikkat etmesi gereken önemli konulardan biri de bu tür zamanlama senkronizasyonudur. Metin2Lobby olarak bu tür teknik sorunlarla ilgili sürekli güncel bilgileri paylaşmaya devam edeceğiz.


[KITMiR-FIX] Checkpoint Tics Synchronization Issue
One of the common issues encountered during development of Metin2 private servers is the checkpoint tics synchronization error. This error typically causes disruptions in timing-based systems during gameplay. Timing is especially critical on PvP-oriented servers. In this article, we will examine in detail what this issue is, how it occurs, and how it can be resolved within the scope of KITMiR-FIX.

Causes of Checkpoint Tics Sync Errors
This error usually occurs when synchronization between server-side and client-side timing fails. When a player attempts an action at a specific interval, if there is a time discrepancy between the server and the client, it may be flagged as an illegal action. This situation is frequently observed in modified systems like martysama.

How to Identify It?
Players being unable to reach certain checkpoints, timing-based systems (such as event systems) not working properly are indicators of this error. In server logs, errors such as 'invalid tick count' are often observed. Examining these logs can greatly assist in understanding the root cause of the issue.

Solutions
1. Client-side code may require validation of tick counts. Timing checks in uiscript or py root files should be revised. Similar checks must also be applied in systems operating via Python GUI.

2. Server-side, delays between game and auth servers should be checked, and ticks synchronized. These operations are generally done on C++ source. Small changes made on Metin2 server src can have significant impacts.

Technical Details
Checkpoints record the time and position for a player to reach a specific location or state. If tics (tick counts) are not synchronized, the server may invalidate these checkpoints. This can seriously affect gameplay. For example, a timing error upon entering a specific area in a PvP map might cause the player to be unexpectedly blocked or pushed back.

Using KITMiR-FIX
KITMiR-FIX is a system developed to prevent such issues. Its usage is quite common in Metin2 development processes. With this fix, ticks become more stable and synchronization between server and client is achieved. This fix may also require changes in core systems.

Conclusion
The checkpoint tics sync problem is one of the biggest obstacles to proper functioning of timing-based systems in Metin2 private servers. When correctly diagnosed and fixed, this error can easily be resolved. Developers must pay attention to such timing synchronizations. As Metin2Lobby, we will continue to share updated information about such technical issues.
 

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

Benzer konular

Geri
Üst Alt