Mini Map Altı Tüm Kanalları Gösterme

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
440b576f3e7cefb1d083ef0cd73282c3.gif



Kod:
//@Source/Client/UserInterface/PythonNetworkStreamPhaseGame.cpp //1.) Search for:     TPacketGCChannel kChannelPacket;     if (!Recv(sizeof(kChannelPacket), &kChannelPacket))         return false; //2.) Add after: #ifdef WJ_SHOW_ALL_CHANNEL     PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_OnChannelPacket", Py_BuildValue("(i)", kChannelPacket.channel)); #endif   //@Source/Client/UserInterface/Locale_inc.h #define WJ_SHOW_ALL_CHANNEL   //@Source/Client/UserInterface/PythonApplicationModule.cpp //1.) Search for:     PyModule_AddIntConstant(poModule, "CAMERA_STOP",            CPythonApplication::CAMERA_STOP); //2.) Add after: #ifdef WJ_SHOW_ALL_CHANNEL     PyModule_AddIntConstant(poModule, "WJ_SHOW_ALL_CHANNEL", 1); #else     PyModule_AddIntConstant(poModule, "WJ_SHOW_ALL_CHANNEL", 0); #endif   //root/game.py //1.) Search for:     def RefreshAlignment(self):         self.interface.RefreshAlignment() //2.) Add after:     if app.WJ_SHOW_ALL_CHANNEL:         def BINARY_OnChannelPacket(self, channel):             import net             dict = {'name' : 'Metin2'} # Replace with your server name.             net.SetServerInfo((localeInfo.TEXT_CHANNEL % (dict['name'], channel)).strip())             if self.interface:                 self.interface.wndMiniMap.serverInfo.SetText(net.GetServerInfo())            //locale_en/locale_game.txt: TEXT_CHANNEL    %s, CH%d

Mini Harita Altında Tüm Kanalları Gösterme Sistemi
Metin2 özel sunucularında kullanıcı deneyimini artırmak için geliştiriciler sürekli yenilikler yapmaktadır. Bu yeniliklerden biri de oyuncuların sunucu içindeki diğer kanallarda ne olduğu hakkında bilgi sahibi olmasıdır. Özellikle PVP sistemleri olan Metin2 sunucularında bu durum oldukça önemlidir. Bu yazıda mini harita altına tüm kanalları gösteren bir sistem kurulumundan bahsedeceğiz.

Mini Harita Nedir?
Mini harita, oyuncuların bulunduğu alanın küçük bir haritasını gösteren bir arayüzdür. Genellikle sağ üst köşede yer alır ve oyuncuların konumunu, NPC'leri, düşmanları veya diğer oyuncuları takip etmelerini sağlar. Ancak bazı sunucularda bu haritanın altında kanal bilgisi yer almaz, bu da oyuncuların diğer kanalları takip etmesini zorlaştırabilir.

Neden Tüm Kanallar Görüntülensin?
Özellikle PVP sunucularında oyuncuların aktif oldukları kanalları takip etmeleri büyük avantaj sağlar. Bu sayede savaşların, olayların veya etkinliklerin nerede olduğunu hızlıca fark edebilirler. Bu bilgiye sahip olmak, hem stratejik hem de rekabet açısından büyük önem taşır.

Kanal Bilgisi Sistemini Kurmak
Mini harita altına tüm kanalları göstermek için öncelikle UI Script dosyalarında değişiklik yapılması gerekir. Bu işlem genellikle 'uiscript' klasöründe bulunan 'Minimap.py' dosyasında yapılır. Burada kanal listesini gösterecek bir liste kutusu (Listbox) oluşturulur. Bu kutu, oyuncunun bulunduğu harita ve kanal bilgisinin yanına yerleştirilir.

Python GUI Kullanımı
Py GUI sistemleri, kullanıcı arayüzünü özelleştirmek için idealdir. Python tabanlı bir sistemle, kanal bilgileri sunucudan alınarak liste şeklinde ekrana basılabilir. Bu işlem sırasında 'py root' üzerinden gerekli veriler alınır ve 'game' modülü ile entegre edilir.

C++ Tarafında Entegrasyon
Oyun sunucusunun çekirdek kısmında (core) bulunan C++ kaynak kodlarla kanal bilgileri daha hızlı ve güvenli bir şekilde alınabilir. Auth ve game sunucuları arasında yapılan haberleşme ile oyuncuların bağlı olduğu kanallar listelenir. Bu bilgi client tarafına gönderilerek ekranda gösterilir.

Martysama ve Diğer Geliştirici Kaynakları
Metin2 geliştirme konusunda birçok kaynak bulunmaktadır. Martysama gibi topluluklar, C++ sistemleri, Python script örnekleri ve paketlenmiş çözümler sunar. Bu kaynaklardan yararlanarak kanal bilgisi sistemini kolayca kurabilirsiniz.

Sonuç
Mini harita altına tüm kanalları gösteren bir sistem kurmak, oyuncuların sunucu içi hareketlerini optimize etmesini sağlar. Özellikle PVP odaklı sunucularda bu özellik büyük bir avantaj sağlar. Hem C++ hem de Python tarafında yapılacak küçük düzenlemelerle bu sistem entegre edilebilir. Metin2 geliştirme sürecinde kullanıcı deneyimi için bu tür yenilikler oldukça değerlidir.


Displaying All Channels Below the Mini Map System
In Metin2 private servers, developers constantly introduce innovations to enhance user experience. One of these innovations is allowing players to see what's happening in other channels within the server. This is especially important on Metin2 servers with PVP systems. In this article, we'll discuss how to set up a system that displays all channels under the mini map.

What is a Mini Map?
The mini map is an interface showing a small version of the area where the player currently is. It typically appears in the top-right corner and allows players to track their location, NPCs, enemies, or other players. However, on some servers, channel information does not appear below this map, making it harder for players to follow other channels.

Why Should All Channels Be Displayed?
Especially in PVP servers, it's beneficial for players to monitor active channels. This allows them to quickly detect where battles, events, or activities are taking place. Having this information provides both strategic and competitive advantages.

Setting Up the Channel Info System
To display all channels below the mini map, modifications must be made in the UI script files. This process usually involves editing the 'Minimap.py' file located in the 'uiscript' folder. Here, a listbox is created to show the list of channels. This box is placed next to the map and channel information where the player is located.

Using Py GUI
Py GUI systems are ideal for customizing the user interface. With a Python-based system, channel data can be retrieved from the server and displayed in a list format. During this process, necessary data is fetched via 'py root' and integrated with the 'game' module.

Integration on the C++ Side
Channel information can be retrieved more quickly and securely through the C++ source code located in the game server's core. Communication between the auth and game servers allows listing the channels where players are connected. This data is sent to the client side and displayed on screen.

Martysama and Other Developer Resources
There are many resources available for Metin2 development. Communities like Martysama offer C++ systems, Python script examples, and packaged solutions. You can utilize these resources to easily implement the channel info system.

Conclusion
Implementing a system to show all channels below the mini map helps players optimize their movements inside the server. Especially on PVP-focused servers, this feature offers significant advantages. With minor adjustments on both the C++ and Python sides, this system can be integrated. Such innovations are highly valuable during Metin2 development to improve user experience.
 

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

Benzer konular

Geri
Üst Alt