[DIFF]Game Revision 34083 Görünmezlik Sorunu Fix Diff (FARKLI)

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Bazı Arkadaşlar Piyasadaki Diffi Kullanınca Görünmezlik Sorunları Çözülmüyormuş Bu Diffi Atarlarsa Sorunları Kalmıyıcaktır

Kod:
This difference file is created by DevSheeN   game_r34083 00027479: E8 90 0002747A: 82 90 0002747B: 60 90 0002747C: 01 90 0002747D: 00 90 00027480: 75 90 00027481: 20 90

Game Revision 34083 İçin Görünmezlik Sorunu Fix Diff


Metin2 özel sunucularında çalışan geliştiriciler, revision 34083 gibi eski sürümlerde görünmezlik sistemlerinde ciddi sorunlarla karşılaşabilmektedir. Bu sorunlar genellikle client-server senkronizasyonu eksikliklerinden veya C++ tabanlı game core üzerindeki eksikliklerden kaynaklanmaktadır. Bu makalede, Game Revision 34083 sürümünde yaşanan görünmezlik hatasının nasıl düzeltilmesi gerektiğini diff dosyası üzerinden detaylıca ele alacağız.

Görünmezlik Sistemi Nedir?
Metin2 oyununda görünmezlik efektleri, oyuncuların belirli koşullarda diğer oyuncular tarafından görülmemesini sağlar. Bu efektler genellikle ninja sınıfının gök gürültüsü yeteneği, bazı özel eşyalar veya GM komutları ile sağlanır. Ancak bu efektin çalışması için hem client hem de server tarafında doğru haberleşmelerin sağlanması gerekir.

Problemin Kaynağı
Revision 34083 sürümünde, görünmezlik efekti başlatıldığında sunucu, diğer oyunculara bu karakterin artık görünür olmadığını bildirmemektedir. Bu durumda karakterin konumu güncellenirken görünür olarak kalır, ancak efekt çalıştığı için client tarafında görünmezdir. Bu da görsel uyuşmazlıklara yol açar.

Fix Diff Dosyası Nasıl Oluşturulur?
Diff dosyası, iki kod sürümü arasındaki farkları gösteren bir dosya türüdür. Bu dosyayı oluşturmak için git ya da manuel olarak iki sürüm arasında değişiklik yapılan satırları belirtmek yeterlidir. Öncelikle game core üzerindeki char.cpp dosyasında bulunan görünmezlik fonksiyonuna odaklanmamız gerekir.

Örnek Değişiklik
char.cpp dosyasında ShowMapInfo() fonksiyonu çağrılırken, görünmezlik durumu kontrol edilmeden tüm oyunculara gönderilir. Bu durumda, görünmez olan karakterin diğer oyunculara görünmemesi için OnViewEntityDestroy() fonksiyonu ile görünmezlik durumunda diğer karakterlerin görüş alanından kaldırılması gerekir.

Diff Kodu Örneği
Aşağıdaki diff kodu, char_state.cpp dosyasında yapılan küçük bir değişikliği içerir:

Kod:
[B]--- char_state.cpp (orijinal)[/B][BR][/BR][B]+++ char_state.cpp (düzenlenmiş)[/B][BR][/BR][B]+if (IsInvisibility()) {[/B][BR][/BR][B]+    OnViewEntityDestroy();[/B][BR][/BR][B]+}[/B]


Sunucu Tarafında Test Süreci
Değişiklik yapıldıktan sonra server src yeniden derlenmelidir. Derleme işlemi sırasında make komutu kullanılır ve tüm modüllerin hatasız derlenmesi sağlanmalıdır. Derleme tamamlandıktan sonra channel sunucusu başlatılarak test yapılabilir. Test sırasında farklı karakterlerle görünmezlik yeteneğinin aktif edilip edilmediği gözlemlenmelidir.

Client-Side Uyum
Client tarafında herhangi bir değişiklik yapmanıza gerek yoktur, çünkü görünmezlik efekti zaten mevcuttur. Sunucudan gelen bilgiye göre client otomatik olarak karakteri ekrandan kaldırır veya geri getirir. Ancak bazı durumlarda uiscript veya py root üzerinde de küçük düzenlemeler gerekebilir. Bu tür değişiklikler genellikle Python GUI sistemleri ile çalışan özel arayüzlerde ortaya çıkar.

Sonuç
Metin2 özel sunucularında çalışan geliştiriciler için revision 34083 sürümünde yaşanan görünmezlik sorunları, doğru C++ bilgisiyle kolayca çözülebilir. Bu diff dosyası sayesinde game core üzerindeki küçük ama kritik değişiklikler yapılarak sistem daha stabil hale getirilebilir. Geliştiriciler, bu tarz sorunları çözerken source edit işlemlerini dikkatli gerçekleştirmeli ve test aşamasını ihmal etmemelidir.

Kaynak Kod Paylaşımı
Tüm bu işlemleri kolayca yapabilmeniz için Metin2Lobby olarak sitemizde birçok source, pack ve system ücretsiz olarak paylaşılıyor. Metin2 development sürecinde ihtiyaç duyduğunuz tüm materyalleri sitemizde bulabilirsiniz.


Game Revision 34083 Invisible Bug Fix Diff


Developers working on Metin2 private servers may encounter significant issues with invisibility systems in older versions like revision 34083. These issues often arise from missing client-server synchronization or flaws in the C++-based game core. In this article, we will address how to fix the invisibility bug in Game Revision 34083 by detailing a diff file implementation.

What Is the Invisibility System?
In Metin2, invisibility effects allow players not to be seen under certain conditions. These are typically activated through the ninja class's Thunder Strike ability, specific items, or GM commands. For this effect to work properly, correct communication must occur between both client and server sides.

Root of the Problem
In revision 34083, when the invisibility effect starts, the server does not notify other players that the character is no longer visible. As a result, while the character's position updates, it remains visible to others even though it appears invisible on the client side. This leads to visual inconsistencies.

How to Create a Fix Diff File?
A diff file shows the differences between two code versions. To create one, you can use git or manually indicate the lines changed between versions. First, focus on the invisibility function found in the char.cpp file within the game core.

Sample Change
In the char.cpp file, the ShowMapInfo() function is called without checking for invisibility status before sending to all players. To fix this, the OnViewEntityDestroy() function should be used to remove the invisible character from other players' view areas.

Example Diff Code
The following diff code contains a minor change in the char_state.cpp file:

Kod:
[B]--- char_state.cpp (original)[/B][BR][/BR][B]+++ char_state.cpp (modified)[/B][BR][/BR][B]+if (IsInvisibility()) {[/B][BR][/BR][B]+    OnViewEntityDestroy();[/B][BR][/BR][B]+}[/B]


Testing Process on Server Side
After making changes, the server src must be recompiled. Use the make command to ensure all modules compile without errors. After successful compilation, start the channel server to begin testing. During testing, observe whether the invisibility ability activates correctly across different characters.

Client-Side Compatibility
No changes are needed on the client side, as the invisibility effect already exists. The client automatically hides or shows the character based on server-side information. However, in some cases, minor adjustments might be needed in uiscript or py root, particularly in custom interfaces using Python GUI systems.

Conclusion
With proper C++ knowledge, invisibility issues in revision 34083 for Metin2 private servers can be resolved easily. With this diff file, small but critical changes can be made to the game core, stabilizing the system. Developers should carefully perform source edit operations and not skip the testing phase when fixing such issues.

Source Code Sharing
To help you implement these fixes easily, Metin2Lobby offers many free resources including sources, packs, and systems. You can find all materials you need during Metin2 development on our website.
 

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

Benzer konular

Geri
Üst Alt