Minimap'de Metinleri 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 43

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
UserInterface/InstanceBase.h

bul
Kod:
NAMECOLOR_WAYPOINT,

ekle

Kod:
NAMECOLOR_METIN,

44e6c42494.png


UserInterface/PythonCharacterManagerModule.cpp

bul

Kod:
PyModule_AddIntConstant(poModule, "NAMECOLOR_MOB", CInstanceBase::NAMECOLOR_NORMAL_MOB);

ekle

Kod:
PyModule_AddIntConstant(poModule, "NAMECOLOR_METIN", CInstanceBase::NAMECOLOR_METIN);

0a47377989.png


UserInterface/InstanceBaseEffect.cpp

bul

Kod:
else if (IsPoly()) { return NAMECOLOR_MOB; }

ekle

Kod:
else if (IsStone()) { return NAMECOLOR_METIN; }

1076e830b1.png


UserInterface/PythonMiniMap.cpp

bul

Kod:
m_NPCPositionVector.clear();

ekle

Kod:
m_MetinPositionVector.clear();


d08919d084.png


bul

Kod:
else if (pkInstEach->IsNPC()) { aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; m_NPCPositionVector.push_back(aMarkPosition); }

ekle

Kod:
else if (pkInstEach->IsStone()) { aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; m_MetinPositionVector.push_back(aMarkPosition); }

f39fa095e2.png


bul

Kod:
// NPC STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_NPC)); aIterator = m_NPCPositionVector.begin(); while (aIterator != m_NPCPositionVector.end()) { TMarkPosition & rPosition = *aIterator; m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY); m_WhiteMark.Render(); ++aIterator; }

ekle

Kod:
// Metin STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_METIN)); aIterator = m_MetinPositionVector.begin(); while (aIterator != m_MetinPositionVector.end()) { TMarkPosition & rPosition = *aIterator; m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY); m_WhiteMark.Render(); ++aIterator; }

44a7fa46f8.png


UserInterface/PythonMiniMap.h

bul

Kod:
TInstanceMarkPositionVectorm_NPCPositionVector;

ekle

Kod:
TInstanceMarkPositionVectorm_MetinPositionVector;

f1d38ff30e.png


root/colorinfo.py

bul

Kod:
CHR_NAME_RGB_WARP = (136, 218, 241)

ekle

Kod:
CHR_NAME_RGB_METIN = (240, 255, 255)



84f60e93ba.png


root/introloading.py

bul

Kod:
chrmgr.NAMECOLOR_WAYPOINT : colorInfo.CHR_NAME_RGB_WAYPOINT,

ekle

Kod:
chrmgr.NAMECOLOR_METIN : colorInfo.CHR_NAME_RGB_METIN,

e200633f41.png


Oyundan görüntü

UFIGpU6.png

Minimap'de Metinleri Gösterme


Metin2 özel sunucularında kullanıcı deneyimini artırmak, oyun içi navigasyonu kolaylaştırmak ve oyuncuların daha etkin hareket etmesini sağlamak adına bazı görsel ve metinsel bilgilerin doğru yerlerde gösterilmesi oldukça önemlidir. Bu yazıda Metin2 özel sunucularında minimap üzerinde nasıl metinlerin görüntüleneceğini detaylı olarak ele alacağız.

Minimap Nedir?
Minimap, Metin2 oyununda sağ üst köşede bulunan küçük harita alanıdır. Bu alanda oyuncunun bulunduğu konum, yakınlardaki diğer karakterler, NPC'ler ve bazı özel nesneler gösterilir. Geliştiriciler, bu alanı özelleştirerek daha fazla bilgiyi oyuncuya aktarabilir.

Minimap Üzerinde Metin Gösterimi Nasıl Yapılır?
Minimap üzerine metin eklemek için öncelikle client-side değişiklikler yapılması gerekir. Bu işlem genellikle uiscript dosyalarında ve py root üzerinden yapılır. Python GUI sistemleri sayesinde kullanıcı arayüzüne yeni metinler eklenebilir.

Adım Adım Uygulama
1. Öncelikle minimap.py dosyasını açın. Bu dosya genellikle root klasöründe bulunur.
2. Yeni bir textLine nesnesi oluşturun. Bu nesne, minimap üzerinde görünecek metni temsil eder.
3. Bu nesneye konum, renk, font boyutu gibi özellikler atayın.
4. Son olarak, bu nesneyi minimap penceresine ekleyin.

Örnek Kod Yapısı
self.minimapText = ui.TextLine()
self.minimapText.SetPosition(10, 10)
self.minimapText.SetText('Oyuncu Sayısı: 15')
self.minimapText.Show()

Sunucu Tarafında Dinamik Veri Aktarımı
Minimap üzerinde gösterilen metinlerin dinamik olması isteniyorsa, game server tarafından belirli aralıklarla istemciye veri gönderilmesi gerekir. Bu işlem için C++ server tarafında özel paketler tanımlanabilir.

Avantajlar
Oyuncuların hızlıca bilgi alması sağlar.
Oyun içi navigasyon kolaylaşır.
PVP sunucularında stratejik bilgiler hızlıca aktarılabilir.

Dikkat Edilmesi Gerekenler
Metinlerin okunabilirliğine dikkat edilmelidir.
Fazla metin, oyuncunun dikkatini dağıtabilir.
Renk ve font seçimleri dikkatlice yapılmalıdır.

Sonuç
Metin2 özel sunucularında minimap üzerinde metin gösterimi, kullanıcı deneyimini ciddi anlamda artırabilir. Py GUI ve C++ sistem entegrasyonları ile güçlü sonuçlar elde edilebilir. Ancak tasarım ve performans dengesi korunmalıdır.


Displaying Texts on Minimap


Enhancing the user experience in Metin2 private servers involves displaying visual and textual information in appropriate locations to improve navigation and player efficiency. In this article, we will examine how to display texts on the minimap in Metin2 private servers in detail.

What is Minimap?
Minimap is the small map area located in the top-right corner of the Metin2 game interface. It shows the player's location, nearby characters, NPCs, and certain special objects. Developers can customize this area to relay more information to players.

How to Display Text on Minimap?
Adding text to the minimap requires modifications on the client-side. This process typically involves editing uiscript files and working within the py root directory. Thanks to Python GUI systems, new text elements can be added to the user interface.

Step-by-Step Implementation
1. First, open the minimap.py file. This file is usually located in the root folder.
2. Create a new textLine object which represents the text to be displayed on the minimap.
3. Assign properties such as position, color, and font size to the object.
4. Finally, add the object to the minimap window.

Example Code Structure
self.minimapText = ui.TextLine()
self.minimapText.SetPosition(10, 10)
self.minimapText.SetText('Player Count: 15')
self.minimapText.Show()

Sending Dynamic Data from Server

If the text displayed on the minimap needs to be dynamic, the game server must send data to the client at regular intervals. Custom packets can be defined in the C++ server side for this purpose.

Benefits
Players can quickly access information.
In-game navigation becomes easier.
Strategic information can be shared rapidly in PVP servers.

Points to Consider
Ensure readability of the texts.
Too much text may distract the player.
Color and font choices should be made carefully.

Conclusion

Displaying text on the minimap in Metin2 private servers can significantly enhance the user experience. Strong results can be achieved with Py GUI and C++ system integrations. However, a balance between design and performance should be maintained.
 

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

Benzer konular

Geri
Üst Alt