Karakter Show Olduktan Sonra Karşımıza Gelen AtlasWindow Penceresini Devredışı Bırakma.

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Sistem Sorunsuz Çalışıyor. Kendi Dosyalarım Üzerinde Yaptım ve Test Ettim. Sorun Yaşayan Olursa Yoruma PLS :)

Not: Bu arada Linkteki düzenlemeler o dosyalarda var olan fonksiyonlardır. Fonksyionları aratın içindeki
ENABLE_HIDE_ATLASWINDOW_ENTER_GAME kısımları kendinize göre düzenleyin. Bu ifdef içine aldığım kod'da var zaten sadece ifdef içine alıp definesini locale_inc.h'de yorum satırı yapıyoruz. Umarım anlamışsınızdır.


Kod:
Client\UserInterface\PythonNetworkStreamPhaseGame.cpp   bool CPythonNetworkStream::RecvTargetCreatePacket() {     TPacketGCTargetCreate kTargetCreate;     if (!Recv(sizeof(kTargetCreate), &kTargetCreate))         return false;       CPythonMiniMap & rkpyMiniMap = CPythonMiniMap::Instance();     rkpyMiniMap.CreateTarget(kTargetCreate.lID, kTargetCreate.szTargetName);   #ifdef ENABLE_HIDE_ATLASWINDOW_ENTER_GAME     PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_OpenAtlasWindow", Py_BuildValue("()")); #endif     return true; }     bool CPythonNetworkStream::RecvTargetCreatePacketNew() {     TPacketGCTargetCreateNew kTargetCreate;     if (!Recv(sizeof(kTargetCreate), &kTargetCreate))         return false;       CPythonMiniMap & rkpyMiniMap = CPythonMiniMap::Instance();     CPythonBackground & rkpyBG = CPythonBackground::Instance();     if (CREATE_TARGET_TYPE_LOCATION == kTargetCreate.byType)     {         rkpyMiniMap.CreateTarget(kTargetCreate.lID, kTargetCreate.szTargetName);     }     else     {         rkpyMiniMap.CreateTarget(kTargetCreate.lID, kTargetCreate.szTargetName, kTargetCreate.dwVID);         rkpyBG.CreateTargetEffect(kTargetCreate.lID, kTargetCreate.dwVID);     }   #ifdef ENABLE_HIDE_ATLASWINDOW_ENTER_GAME     PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_OpenAtlasWindow", Py_BuildValue("()")); #endif     return true; }       Client Source\Client\UserInterface\Locale_inc.h   // #define ENABLE_HIDE_ATLASWINDOW_ENTER_GAME                            /* Oyuna ilk girişte atlas window penceresini kapat */     Root/Game.py       if constInfo.ENABLE_HIDE_ATLASWINDOW_ENTER_GAME == 1:         def BINARY_OpenAtlasWindow(self):             self.interface.BINARY_OpenAtlasWindow()   Root/InterFaceModule.py       if constInfo.ENABLE_HIDE_ATLASWINDOW_ENTER_GAME == 1:         def BINARY_OpenAtlasWindow(self):             if self.wndMiniMap:                 self.wndMiniMap.ShowAtlas()   Root/ConstInfo.py   #    MAIN FUNC                    START                    0/1 ENABLE_HIDE_ATLASWINDOW_ENTER_GAME                        = 0

Metin2 Karakter Show Olduktan Sonra AtlasWindow Penceresini Devre Dışı Bırakma Rehberi

Metin2 özel sunucu geliştirme süreçlerinde, oyuncuların karakter seçim ekranından sonra açılan AtlasWindow penceresinin devre dışı bırakılması birçok geliştirici tarafından tercih edilir. Bu durum, özellikle PvP sistemlerine odaklanan sunucularda, kullanıcı deneyimini optimize etmek ve istenmeyen etkileşimleri azaltmak açısından önemlidir. Bu rehberde, AtlasWindow penceresinin nasıl devre dışı bırakılacağını detaylıca inceleyeceğiz.

AtlasWindow Nedir?

AtlasWindow, Metin2 oyununda karakter seçildikten sonra açılan harita penceresidir. Bu pencere, oyuncuya mevcut konumunu ve diğer bölgeleri gösterebilir. Ancak bazı sunucularda bu pencere istenmez çünkü ekstra GUI yükü yaratır ya da kullanıcıyı oyun içi dikkatini dağıtabilir. Özellikle PvP sistemlerinde, oyuncuların hızlıca savaş bölgesine geçmesi ve dikkatlerinin dağılmaması hedeflenir. Bu nedenle, AtlasWindow penceresinin otomatik olarak kapatılması veya devre dışı bırakılması tercih edilir.

Neden AtlasWindow Devre Dışı Bırakılır?

Özel sunucularda kullanıcı deneyimi her şeyden önemlidir. Oyuncuların karakter seçip doğrudan oyuna girmesi, özellikle PvP odaklı sunucularda zaman kazandırır. Ayrıca, AtlasWindow gibi ekstra arayüz öğeleri, performans açısından da göz ardı edilmemelidir. Özellikle düşük donanımlı sistemlerde bu tür pencereler ekstra yük yaratabilir. Bu yüzden birçok C++ ve Python tabanlı sistemde bu pencerenin devre dışı bırakılması tercih edilir.

Devre Dışı Bırakma Yöntemleri

1. Python Tarafında (UIScript / Py Root)

Metin2 istemcisi, kullanıcı arayüzü genellikle Python ile yazılmıştır. AtlasWindow penceresi, characterSelect.py veya benzeri bir dosya üzerinden yönetilir. Burada yapılacak küçük bir değişiklikle pencere otomatik olarak kapanabilir veya hiç açılmaz.

Adım 1: root/uiscript dizininde bulunan AtlasWindow.py dosyasına gidin.
Adım 2: Bu dosyanın Show() fonksiyonunu silin veya yoruma alın.
Adım 3: Alternatif olarak, karakter seçildikten sonra AtlasWindow penceresinin gösterilmesini engellemek için CharacterSelectWindow sınıfında gerekli değişikliği yapın.

2. C++ Tarafında (Game Client Kaynak Kodları)

Metin2 istemci kaynak kodları genellikle C++ ile yazılmıştır. Bu seviyede yapılan değişiklikler daha kalıcı ve etkilidir. AtlasWindow penceresi, game/src/client/UserInterface/Locale_inc.h veya PythonNetworkStream.cpp gibi dosyalarda tetiklenebilir.

Adım 1: UserInterface dizininde AtlasWindow.cpp veya .py dosyasının çağrıldığı yeri bulun.
Adım 2: OnSelectCharacter fonksiyonu içindeki AtlasWindow gösterme komutunu kaldırın veya devre dışı bırakın.

Sunucu Uyumlu Hâle Getirme

Oyun sunucusu tarafında da bu değişikliğin etkili olması için, authserver ve gameserver yapılandırmalarında uyum sağlanmalıdır. Özellikle pack dosyalarınızda yer alan uiscript dosyalarının güncellenmiş halini içerdiğinden emin olun. Aksi takdirde, oyuncular eski sürümdeki davranışı görebilir.

Sonuç

Metin2 özel sunucularında kullanıcı deneyimini artırmak ve sistemi optimize etmek için birçok küçük değişiklik yapılabilir. AtlasWindow penceresinin devre dışı bırakılması da bunlardan biridir. Hem Python hem de C++ seviyesinde müdahale imkanı sunulduğu için bu işlem, geliştiriciler için oldukça erişilebilir bir özelliktir. Bu değişiklik, özellikle PvP odaklı sunucularda daha hızlı ve daha odaklı bir deneyim sunar.


Disabling the AtlasWindow After Character Select in Metin2

In the process of developing Metin2 private servers, disabling the AtlasWindow that appears after character selection is preferred by many developers. This situation is important especially in servers focusing on PvP systems, as it helps optimize user experience and reduce unwanted interactions. In this guide, we will examine in detail how to disable the AtlasWindow.

What is AtlasWindow?

AtlasWindow is the map window that opens in Metin2 after a character is selected. This window can show the player their current location and other areas. However, in some servers, this window is unwanted because it creates additional GUI load or distracts the player's attention within the game. Particularly in PvP systems, it is aimed that players quickly move to the battlefield without distractions. Therefore, closing or disabling the AtlasWindow automatically is preferred.

Why Disable AtlasWindow?

In private servers, user experience is of utmost importance. Having players enter the game directly after character selection saves time, especially in PvP-focused servers. Additionally, extra UI elements like AtlasWindow should not be ignored in terms of performance. On low-end systems, such windows can create extra load. For this reason, disabling this window in many C++ and Python-based systems is preferred.

Methods for Disabling

1. Python Side (UIScript / Py Root)

The Metin2 client's user interface is generally written in Python. The AtlasWindow is managed via files like characterSelect.py. A small modification here can cause the window to close automatically or not open at all.

Step 1: Go to the AtlasWindow.py file located in root/uiscript.
Step 2: Delete or comment out the Show() function in this file.
Step 3: Alternatively, modify the CharacterSelectWindow class to prevent the AtlasWindow from being displayed after character selection.

2. C++ Side (Game Client Source Code)

Metin2 client source codes are mostly written in C++. Modifications at this level are more permanent and effective. The AtlasWindow can be triggered in files such as game/src/client/UserInterface/Locale_inc.h or PythonNetworkStream.cpp.

Step 1: Find where AtlasWindow.cpp or .py is called in the UserInterface directory.
Step 2: Remove or disable the AtlasWindow display command inside the OnSelectCharacter function.

Making Server Compatible

To ensure these changes work on the game server side, configurations in authserver and gameserver must also be adjusted. Especially make sure your pack files contain updated versions of uiscript files. Otherwise, players might still see the old behavior.

Conclusion

Many small modifications can enhance user experience and optimize systems in Metin2 private servers. Disabling the AtlasWindow is one of them. Since modifications are possible both at the Python and C++ levels, this task is quite accessible for developers. This change provides a faster and more focused experience, particularly in PvP-oriented servers.
 

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

Geri
Üst Alt