(FİX) Bineklerin Koşarken Geriye Atma Sorunu 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 60

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar bayadır araştırıyorum forumda bulamadım
sağolsun kimsede yardımcı olmadı. serverinde böyle bir sorun
yaşayan varsa fixini paylaşıyorum. güle güle kullansın

Aç> game/src/input_main.cpp
ARA :
if (((false == ch->IsRiding() && fDist > 25) || fDist > 40) && OXEVENT_MAP_INDEX != ch->GetMapIndex())

Değiştir:
if (((false == ch->IsRiding() && fDist > 750) || fDist > 999) && OXEVENT_MAP_INDEX != ch->GetMapIndex())

Geriye atma sorunu fixed.

(FIX) Bineklerin Koşarken Geriye Atma Sorunu Fix

Metin2 özel sunucularında binek sistemlerinin doğru çalışması, oyuncuların deneyimini doğrudan etkileyen önemli bir özelliktir. Ancak bazı durumlarda bineklerin koşarken kullanıcıyı geriye doğru atması gibi bir sorunla karşılaşabilirsiniz. Bu durum, hem oyun içi akışı bozar hem de oyuncu memnuniyetini ciddi şekilde düşürür. Bu yazıda, bineklerin koşarken geriye atma sorununun nedenlerine ve bu soruna nasıl kalıcı çözümler üretilebileceğine değineceğiz.

Sorunun Kaynağı Nedir?
Metin2 özel sunucularda bu tür sorunlar genellikle C++ sistem dosyalarındaki hatalı veya eksik yapılandırmalardan kaynaklanır. Özellikle game core üzerinde yapılan değişikliklerde binek mekanikleriyle ilgili fonksiyonlar yanlış tanımlandığında ya da client-src ile game server arasında koordinasyon eksikliği oluştuğunda bu tür durumlar meydana gelir.

Oyun sırasında bineğe bindiğinizde, karakterin konumu, bineğin hareket hızı ve kullanıcı kontrolü arasındaki senkronizasyon tam olarak sağlanmamışsa, karakter oyun tarafından 'geriye savrulmuş' gibi algılanabilir. Bu durum genellikle movement veya mount sınıflarında tanımlanan koordinat güncellemelerindeki aksaklıklardan kaynaklanır.

Fix İçin Gerekli Adımlar
Bu sorunu çözmek için öncelikle game server tarafında yer alan mount.cpp ve char.cpp dosyalarında gerekli düzenlemeler yapılmalıdır. Özellikle karakterin binek üzerindeyken konum senkronizasyonunu sağlayan fonksiyonlar incelenmelidir.

Aşağıda örnek bir düzeltme yöntemi verilmiştir:

- Mount.cpp dosyasında yer alan Mount::SetPosition fonksiyonu kontrol edilmeli. Burada karakterin binek üzerindeyken koordinatları doğru şekilde güncellenmelidir.
- CharManager.cpp dosyasında yer alan Character::MoveToDestPosition fonksiyonu, binekli durumda farklı davranacak şekilde ayarlanmalıdır.
- Eğer Python UI Script dosyalarında binek kontrolleri varsa, buradaki key input işlemleri de gözden geçirilmelidir.

Yanlış Uygulamalardan Kaçının!
Bazı geliştiriciler, bu sorunu hızlıca çözmek adına temp değişkenlerine başvurabilir. Ancak bu tarz geçici çözümler, daha sonra başka hatalara yol açabilir. Ayrıca auth server ile game server arasında veri aktarımı esnasında koordinat senkronizasyonu kopukluğu yaşanıyorsa, bu da sorunun artmasına sebep olabilir.

Geliştirici Tavsiyesi
Metin2 özel sunucularında binek sistemlerinin sağlıklı çalışması için martysama veya benzeri güvenilir kaynaklardan alınan sistemlerin kullanılması önerilir. Ayrıca source edit işlemlerinden sonra mutlaka compile işlemi yapılmış ve test sunucusunda bu sistemler detaylıca incelenmelidir.

Sorunun tekrar etmemesi için db core üzerinde de gerekli loglamalar yapılmalı ve binekle ilgili tüm eylemler kayıt altına alınmalıdır. Bu sayede olası hatalar izlenebilir ve analiz edilebilir.

Dilerseniz, Metin2Lobby üzerinden diğer geliştiricilerle bu tür fixler hakkında paylaşım yapabilir, destek alabilirsiniz.


(FIX) Mount Throwing Player Backwards While Running Fix

In Metin2 private servers, proper functioning of mount systems is crucial for player experience. However, sometimes you may encounter issues where mounts throw players backwards while running. This situation disrupts the gameplay flow and significantly reduces player satisfaction. In this article, we will examine the root causes of this problem and how to implement permanent fixes.

What Causes the Issue?
Such problems in Metin2 private servers usually stem from incorrect or incomplete configurations within the C++ system files. Particularly, errors in functions related to mount mechanics, misconfigured game core, or lack of coordination between client-src and game server can cause these kinds of issues.

When you mount a horse during gameplay, if synchronization between character position, mount speed, and user control is not properly handled, the character might be interpreted by the game as being 'thrown backwards'. This typically occurs due to inaccuracies in coordinate updates defined within movement or mount classes.

Steps to Apply the Fix
To resolve this issue, first check the mount.cpp and char.cpp files located on the game server side. Specifically, inspect the functions responsible for character positioning while mounted.

An example fix method is provided below:

- Examine the Mount::SetPosition function in Mount.cpp. Ensure that the character's coordinates are updated correctly while mounted.
- Adjust the Character::MoveToDestPosition function in CharManager.cpp to behave differently when mounted.
- If there are mount controls in Python UI Scripts, review the key input handling routines as well.

Avoid Incorrect Implementations!
Some developers may attempt to solve this issue quickly by using temporary variables. However, such temporary fixes can lead to other errors later. Additionally, if coordinate sync fails between auth server and game server during data transfer, this too can worsen the issue.

Developer Recommendation
To ensure smooth functioning of mount systems in Metin2 private servers, it is recommended to use systems sourced from reliable resources like martysama. Moreover, after source edit operations, make sure to perform a full compile and thoroughly test the system on a test server.

To prevent recurrence of the issue, logging should also be implemented in db core and all mount-related actions must be recorded. This allows for tracking and analysis of potential errors.

You can share or seek support about such fixes with other developers via Metin2Lobby.
 

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

Benzer konular

Geri
Üst Alt