Kamera Bug Fix - C++

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar oyun içerisinde mouseye sağ tıklı haldeyken alt + tab yapınca takılı kalmayı sağlayan bir hata vardır bunun çözümü için;

Clitent Source Üzerinde PythonApplicationProcedure.cpp aç ve arat;

Kod:
void CPythonApplication::__MinimizeFullScreenWindow(HWND hWnd, DWORD dwWidth, DWORD dwHeight) {     ChangeDisplaySettings(0, 0);     SetWindowPos(hWnd, 0, 0, 0,                  dwWidth,                  dwHeight,                  SWP_SHOWWINDOW);     ShowWindow(hWnd, SW_MINIMIZE); }

Altına Ekle;
Kod:
void CPythonApplication::__ResetCameraWhenMinimize() {     CCameraManager& rkCmrMgr=CCameraManager::Instance();     CCamera* pkCmrCur=rkCmrMgr.GetCurrentCamera();     if (pkCmrCur)     {         pkCmrCur->EndDrag();     }          SetCursorNum(NORMAL);     if ( CURSOR_MODE_HARDWARE == GetCursorMode())         SetCursorVisible(TRUE); }

Arat;
Kod:
if (m_isWindowFullScreenEnable)                     {                         __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight);                     }

Satırı Komple Değiştir;

Kod:
if (m_isWindowFullScreenEnable)                     {                         __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight);                         __ResetCameraWhenMinimize();                     }                     else                     {                         __ResetCameraWhenMinimize();                     }

PythonApplication.h içerisinde arat;

Kod:
void __MinimizeFullScreenWindow(HWND hWnd, DWORD dwWidth, DWORD dwHeight);

Altına Ekle;
Kod:
void __ResetCameraWhenMinimize();

Metin2 Lobby - Kamera Bug Fix - C++


Kamera Hatası Nedir?
Metin2 özel sunucularında geliştirme yapılırken genellikle ortaya çıkan sorunlardan birisi de kamera sistemlerinde meydana gelen hatalardır. Bu hatalar oyuncuların karakterlerini takip eden kameranın düzgün çalışmayışı, takılma, kayma ya da tamamen sapıtması gibi durumları içerebilir. Bu tür hatalar oyun deneyimini ciddi şekilde etkileyebilir. Özellikle PvP savaşları sırasında bu sorunlar can alıcı olabilir. Bu yazıda C++ tabanlı Metin2 sunucularında karşılaşılan kamera hatalarının giderilmesine odaklanacağız.

Neden Kamera Bug Oluşur?
Metin2 sunucularında kamera bug'ı genellikle client-side kodlarında yapılan değişikliklerden kaynaklanır. Özellikle UIScript veya Python GUI üzerinde yapılan düzenlemeler sonucu kamera kontrolü etkilenir. Bazen de game core kısmında yapılan değişiklikler bu hatayı tetikleyebilir. Kamera koordinatlarının yanlış hesaplanması, kamera konumunun senkronize edilmemesi gibi sebeplerle bu tür hatalar meydana gelir.

C++ Kaynak Kodunda Kamera Hatası Giderimi
Kamera bug fix için öncelikle client/src/game/ dizininde bulunan kamera ile ilgili dosyalara bakmak gerekir. Genellikle Camera.cpp ve Camera.h dosyaları üzerinde değişiklikler yapılır. Bu dosyalar, kameranın karakteri takip etme mantığını içerir. Örneğin, karakterin konumu ile kamera arasındaki mesafe ayarı, kameranın dönüş hızı gibi ayarlar burada tanımlıdır.

Fix Uygulama Adımları:
- Camera.cpp dosyasında Update() fonksiyonu incelenir.
- Karakterin pozisyonuna göre kamera güncellenirken eksik senkronizasyon varsa burası düzeltilir.
- SetPosition() fonksiyonu ile kamera pozisyonu doğrulanır.
- Matrix işlemleri doğru yapılmış mı kontrol edilir.

Dikkat Edilmesi Gerekenler
Kamera sistemini değiştirirken dikkat edilmesi gereken bazı önemli hususlar vardır. Özellikle matrix dönüşümleri sırasında hata yapmamak gerekir. Yanlış hesaplamalar kamera sapmalarına neden olabilir. Ayrıca, farklı çözünürlüklerde test yapılması da önemlidir. Bazı hatalar sadece belirli ekran boyutlarında görülebilir. Bu nedenle hem client src hem de game server programming kısmında dikkatli hareket etmek gerekir.

Martysama ve Diğer Geliştirici Kaynakları
Metin2 özel sunucu geliştirme sürecinde Martysama gibi deneyimli geliştiricilerin forum katkıları oldukça faydalıdır. Özellikle source edit süreçlerinde örnek kodlar ve debug teknikleri bu kaynaklardan alınabilir. Aynı zamanda Metin2 Lobby olarak biz de bu tür hataların çözümüne yönelik sürekli güncel kaynaklar sunuyoruz.

Sonuç
Kamera bug fix işlemi, Metin2 özel sunucularında kullanıcı deneyimini artırmak için önemli bir adımdır. C++ seviyesinde kodlama bilgisi gerektirse de, doğru analiz ve düzenlemelerle kolayca çözülebilir. Game core ve client src üzerinde dikkatli çalışmak, bu tür hataları önlemenin en iyi yoludur.


Metin2 Lobby - Camera Bug Fix - C++


What is Camera Bug?
In Metin2 private server development, one of the common issues that arise is related to camera system errors. These errors may involve the camera not following the character properly, stuttering, sliding, or completely drifting off. Such errors can significantly impact the gaming experience. Especially during PvP fights, these problems can be critical. In this article, we will focus on fixing camera bugs in C++-based Metin2 servers.

Why Does Camera Bug Occur?
Camera bugs in Metin2 servers generally stem from modifications made in client-side code. Particularly, edits made in UIScript or Python GUI often affect camera control. Sometimes, changes made in the game core section can also trigger such errors. Incorrect calculation of camera coordinates or failure to synchronize the camera position can cause these types of bugs.

Fixing Camera Bugs in C++ Source Code
To fix camera bugs, first examine the files related to the camera located in the client/src/game/ directory. Usually, modifications are made to Camera.cpp and Camera.h. These files contain the logic for how the camera follows the character. For example, settings like the distance between the character's position and the camera, and the rotation speed of the camera are defined here.

Steps to Apply the Fix:
- Examine the Update() function in Camera.cpp.
- Correct any synchronization issues when updating the camera according to the character's position.
- Verify the camera position using the SetPosition() function.
- Ensure Matrix operations are correctly implemented.

Important Considerations
When modifying the camera system, certain key points must be considered. Especially avoid mistakes in matrix transformations. Incorrect calculations can lead to camera drifts. Also, testing at different resolutions is important. Some errors may only appear at specific screen sizes. Therefore, caution is required both in client src and game server programming.

Martysama and Other Developer Resources
During Metin2 private server development, contributions from experienced developers like Martysama are highly beneficial. Sample codes and debugging techniques can be obtained from these resources, especially during source edit processes. Additionally, Metin2 Lobby provides continuous updated resources towards solving such issues.

Conclusion
Camera bug fixes are an essential step in improving user experience in Metin2 private servers. Although it requires knowledge of C++ level coding, with proper analysis and adjustments, it can be resolved easily. Careful work on game core and client src is the best way to prevent such errors.
 

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

Benzer konular

Geri
Üst Alt