[C++] (Client Source) Levele Göre Tag Sistemi

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

Admin

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




/Client/UserInterface/InstanceBaseEffect.cpp Aratılır;

void CInstanceBase::UpdateTextTailLevel(DWORD level)

KOD SATIRI KOMPLE DEĞİŞTİRİLİR :





Kod:
void CInstanceBase::UpdateTextTailLevel(DWORD level) {     static D3DXCOLOR s_kLevelColor = D3DXCOLOR(152.0f/255.0f, 255.0f/255.0f, 51.0f/255.0f, 1.0f);     char szText[256];     ///@ByCombra Level+Tag System (Turkmmo.com)     if (level >= 1 && level < 100)     {         sprintf(szText, "[Lv.%d] |cffff6060 [Acemi]", level);         CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);     }     else if (level >= 100 && level < 105)     {         sprintf(szText, "[Lv.%d] |cffffcc00[Tecrübeli]", level);         CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);     }     else if (level >= 105)     {         sprintf(szText, "[Lv.%d] |cff00ccff [Efsanevi]", level);         CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);     } }

Metin2 özel sunucularında kullanıcıların gelişimini daha görsel ve organize şekilde yansıtmak için Levele Göre Tag Sistemi büyük önem taşır. Bu sistem sayesinde oyuncuların seviyelerine göre özel etiketler (tag) profil veya sohbet ekranlarında görünür. Bu yazıda, C++ Client Source üzerinden bu sistemin nasıl kurulacağını adım adım anlatacağız.

Tag Sisteminin Amacı
Tag sistemi, oyuncuların seviyelerine göre özel bir tanımlayıcıya sahip olmalarını sağlar. Örneğin, 90. seviyedeki bir oyuncu 'Lv.90 Veteran' gibi bir etiketle diğer oyuncular tarafından tanınabilir. Bu, hem sosyal etkileşimi artırır hem de yüksek seviye oyuncuların daha kolay fark edilmesini sağlar.

Kurulum Aşamaları[/BR]
1. Client Kaynağını Hazırlamak
Öncelikle client source dosyanızın bulunduğu dizine gitmelisiniz. Burada genellikle entrycore.cpp veya benzeri bir dosya üzerinden oyuncu bilgileri kontrol edilir. Bu dosyada level bilgisi alınıp buna göre tag ataması yapılacaktır.

2. Tag Tanımlamaları
Her levele özel bir tag atamak için bir fonksiyon yazmalısınız. Örneğin:
Kod:
if (level >= 1 && level <= 20)[BR][/BR]{[BR][/BR]tag = '[COLOR=green]Yeni Başlayan[/COLOR]';[BR][/BR]}[BR][/BR]else if (level >= 21 && level <= 50)[BR][/BR]{[BR][/BR]tag = '[COLOR=orange]Macera Arayan[/COLOR]';[BR][/BR]}[BR][/BR]else if (level >= 51 && level <= 90)[BR][/BR]{[BR][/BR]tag = '[COLOR=red]Kahraman[/COLOR]';[BR][/BR]}

3. Tag'in Görüntülenmesi[/BR]Tag bilgisi genellikle oyuncu adının hemen yanında sohbette ya da karakter profili üzerinde görüntülenir. Bunu sağlamak için chatpacket.cpp gibi dosyalarda değişiklik yapmanız gerekebilir. Oyuncu adından önce tag eklenir ve istenirse renk kodlarıyla desteklenir.

Python Entegrasyonu
Bazı durumlarda tag bilgisi Python tarafında da kontrol edilmek istenebilir. Özellikle uiscript üzerinden GUI elemanları üzerinde tag gösterimi yapılmak istenirse, py root kısmında bu veri aktarımı sağlanmalıdır. Örneğin bir ui.py dosyasında tag bilgisini almak için net.SendChat() fonksiyonu kullanılabilir.

Sunucu Tarafıyla Eşleştirme[/BR]
Tag sisteminin doğru çalışması için game server tarafında level bilgisi sabit kalmalıdır. Oyuncu login olduğunda veya level atlama işlemi yaptığında bu bilgi client'a gönderilmelidir. Bu iletişim genellikle pack dosyaları üzerinden sağlanır.

Güvenlik ve Performans[/BR]
Tag sistemi performans açısından çok hafif bir eklentidir. Ancak, her seviye atlama anında tag yenilenmemelidir; bu gibi işlemler sadece gerekli zamanlarda yapılmalıdır. Ayrıca, tag bilgisi sunucudan doğrulanmalı ve istemci tarafında manipülasyon engellenmelidir.

Sonuç
Levele göre tag sistemi, Metin2 özel sunucularında kullanıcı deneyimini artırmak için güçlü bir araçtır. C++ client source[/BR] üzerinden entegre edilmesi kolaydır ve hem Python hem de C++ bilgisiyle daha esnek hale getirilebilir. Bu sistemi doğru kurmak, oyuncuların seviyelerine göre tanınmasını ve motivasyonlarını artırmalarını sağlar.


Metin2 private servers, visualizing and organizing user progress is important. The Level-Based Tag System helps players stand out according to their levels. This system displays special tags depending on player levels in chat or profile screens. In this article, we will explain how to set up this system step by step using C++ Client Source.

Purpose of the Tag System
The Tag system allows players to have a unique identifier based on their level. For instance, a level 90 player may appear as 'Lv.90 Veteran' to other players. This increases social interaction and makes high-level players more recognizable.

Installation Steps
1. Prepare Client Source
Firstly, navigate to your client source directory. Usually, files like entrycore.cpp are used to retrieve player information. You will use this file to fetch the level and assign tags accordingly.

2. Define Tags for Levels
To assign specific tags per level, write a function. Example:
Kod:
if (level >= 1 && level <= 20)[BR][/BR]{[BR][/BR]tag = '[COLOR=green]Newcomer[/COLOR]';[BR][/BR]}[BR][/BR]else if (level >= 21 && level <= 50)[BR][/BR]{[BR][/BR]tag = '[COLOR=orange]Adventurer[/COLOR]';[BR][/BR]}[BR][/BR]else if (level >= 51 && level <= 90)[BR][/BR]{[BR][/BR]tag = '[COLOR=red]Hero[/COLOR]';[BR][/BR]}

3. Displaying the Tag
Tags usually appear next to the player name in chat or character profiles. To achieve this, you might need to modify files like chatpacket.cpp. The tag is added before the player name and can be supported with color codes if desired.

Python Integration
In some cases, tag information may also be checked via Python. If tag display is intended over GUI elements through uiscript, data transfer must be handled within the py root section. For example, in a ui.py file, net.SendChat() function can be used to fetch tag information.

Server-Side Matching
For the tag system to work correctly, the level information must remain consistent on the game server. When a player logs in or levels up, this information should be sent to the client. Communication is generally handled through pack files.

Security and Performance
The tag system is lightweight in terms of performance. However, tags should not refresh with every level-up action; such operations should only occur when necessary. Additionally, tag data should be validated from the server side to prevent client-side manipulation.

Conclusion
The level-based tag system is a powerful tool for enhancing user experience in Metin2 private servers. It is easy to integrate via C++ client source and can be made more flexible with both Python and C++ knowledge. Properly implementing this system allows players to be recognized by their levels and boosts their motivation.
 

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

Benzer konular

Geri
Üst Alt