[C++] İstediğin NPC'nin Krallık Bayrağını Kaldırma!

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar,
Sistem şu şekilde çalışıyor örneğin yeni bir npc eklediniz npcnin boyu kısa veya uzun farketmez krallık bayrağı ile iç içe geçmişse yada npcnin üstünde bayrağı beğenmiyorsanız o npcnin üstünde krallık bayrağı çıkmamasına yarar yani örneğin kırmızı 1 köyüne gidersin tüm npclerin üstüne kırmızı bayrak resmi çıkar ya sistemin amacıda herhangi bir npcnin üstünde o kırmızı bayrağın çıkmaması umarım anlatabilmişimdir.

Kanıtım Şuanlık Yok Ekleyen Olursa Yorumlara Atsın Konuya Eklerim :)
ss​
InstanceBaseEffect.cpp ' yi açın

Arat:
void CInstanceBase :: __ AttachEmpireEffect (DWORD eEmpire)

Kod bloğunun içinde arat :
if (IsResource())
return;

Altına Ekle:
DWORD vnum_my_npc = 20406;
if (GetRace() == vnum_my_npc)
return;


----------
Burada 20406 Olan Yer NPC'Nin kodudur.



[C++] İstediğin NPC'nin Krallık Bayrağını Kaldırma!

Metin2 özel sunucularında oyun deneyimini geliştirmek ve daha özelleştirilmiş sistemler kurmak istiyorsanız doğru yerdesiniz. Bu makalemizde Metin2 özel sunucu geliştirme sürecinde, belirli NPC'lerin krallık bayrağını kaldırma işlemine odaklanacağız. Bu işlem, oyun içindeki görsel ve mekanik yapıyı etkileyen önemli bir değişikliktir. Özellikle C++ temelli sistemlerde bu tür düzenlemeler yapabilmek, sunucu sahiplerinin oyun üzerinde daha fazla kontrol sahibi olmasına olanak tanır.

NPC Nedir?
NPC (Non-Player Character), yani oyuncu tarafından kontrol edilmeyen karakterlerdir. Metin2'de NPC'ler, görev verici, satıcı veya oyun içi olayları tetikleyen roller üstlenir. Bazı NPC'ler oyun içinde krallık bayrağıyla işaretlenir. Bu bayraklar, o NPC'nin hangi krallığa ait olduğunu gösterir. Ancak bazı özel sunucularda, tüm NPC'lerin krallık bayrağıyla işaretlenmesi istenmeyebilir. İşte burada C++ bilgisi devreye girer.

Neden NPC'lerin Bayrağını Kaldırmak İstersiniz?
Oyun içi estetik veya dengesizlik gibi sebeplerle bazı NPC'lerin krallık bayrağını kaldırmak isteyebilirsiniz. Örneğin, bir özel NPC yaratıp ona krallık bağlılığı vermektense tarafsız hale getirmek isterseniz bu işlem gerekebilir. Ayrıca bazı PvP sunucularında, krallık bayrağı taşıyan NPC'lerin savaşlarda avantaj sağlaması istenmeyebilir.

C++ Kaynak Kodunda Değişiklik Yapmak
Metin2 özel sunucularında NPC bayrağı ayarı genellikle oyun sunucusunun game core dosyalarında yer alır. Özellikle client src ve server src arasında senkronize çalışmak gerekir. Bayrağın gösterimi genellikle client tarafında gerçekleşir ancak bu bayrağın ne zaman gösterileceğini belirleyen mantık server tarafındadır.

Adım Adım Uygulama
1. Server src klasöründe NPC tanımlamalarının yapıldığı dosyayı bulun. Genellikle bu dosya char.cpp ya da benzeri bir dosyadır.
2. Belirli bir NPC'nin krallık bayrağını kontrol eden fonksiyonu arayın. Genellikle SetEmpire() veya GetEmpire() fonksiyonlarıdır.
3. Bu fonksiyonu, belirli NPC ID'leri için etkisizleştirmek üzere düzenleyin.
4. Gerekirse client src kısmında da bayrağın görünümünü etkileyen UI dosyalarını güncelleyin.

Örnek Kod Parçası
if (npc_vnum == 12345) {
SetEmpire(0); // Bayrağı kaldırır
}


Not: Kodlamada dikkatli olunması gereken bazı detaylar vardır. Yanlışlıkla tüm NPC'lerin bayrağını kaldırmak istemiyorsanız, ID'ye göre filtreleme yapmanız gerekir. Ayrıca yapılan değişikliklerin test aşaması çok önemlidir.

Sunucu Derleme ve Test Etme[/BR]Değişiklikleri yaptıktan sonra hem client hem de server tarafını tekrar derlemeniz gerekir. Bu işlem genellikle Metin2 Compile süreçlerini içerir. Derleme sırasında hata almanız durumunda logları kontrol edin ve hataları düzeltin.

Sonuç
C++ tabanlı Metin2 özel sunucularında NPC'lerin krallık bayrağını kaldırmak, sunucu sahiplerinin oyun deneyimini özelleştirmesi için güçlü bir yöntemdir. Bu makale sayesinde hem teknik adımları hem de neden bu tür değişiklikler yapılabileceğini öğrendiniz. Daha fazla Metin2 Development kaynağı için Metin2Lobby'i takip etmeyi unutmayın!


[C++] Removing Kingdom Flag from Any NPC You Want!

If you aim to enhance the gaming experience on your Metin2 private server and implement more customized systems, you are in the right place. In this article, we will focus on removing kingdom flags from specific NPCs within the Metin2 private server development process. This operation is an important visual and mechanical modification in the game. Particularly in C++-based systems, such modifications allow server owners to gain greater control over the game.

What is an NPC?
NPCs (Non-Player Characters) are characters not controlled by players. In Metin2, NPCs serve roles such as quest givers, vendors, or triggers for in-game events. Some NPCs are marked with a kingdom flag. These flags indicate which kingdom the NPC belongs to. However, in some private servers, it might be undesirable for all NPCs to display a kingdom flag. This is where C++ knowledge becomes essential.

Why Would You Want to Remove NPC Flags?
For aesthetic reasons or game balance, you may wish to remove the kingdom flag from certain NPCs. For example, if you create a special NPC without assigning it to any kingdom, you may prefer to make it neutral. Additionally, in some PvP servers, it might be undesirable for NPCs with kingdom flags to provide advantages during battles.

Modifying Source Code with C++
The NPC flag setting in Metin2 private servers usually lies within the game core files of the game server. The client src[/COORD] and server src must work in sync. The flag display usually occurs on the client side, but the logic determining when to show the flag is located on the server side.

Step-by-Step Implementation
1. Locate the file defining NPCs in the server src folder. Usually, this file is named char.cpp or similar.
2. Find the function controlling the kingdom flag of a specific NPC. These functions are typically named SetEmpire() or GetEmpire().
3. Modify this function to disable the flag for specific NPC IDs.
4. If necessary, update the UI files affecting the flag's appearance in the client src part as well.

Sample Code Snippet
if (npc_vnum == 12345) {
SetEmpire(0); // Removes the flag
}


Note: Attention to detail is crucial during coding. To avoid unintentionally removing flags from all NPCs, ensure filtering by ID. Also, testing is very important after making changes.

Compiling and Testing the Server
After making changes, you need to recompile both the client and server sides. This process often involves Metin2 Compile procedures. If errors occur during compilation, check logs and fix them accordingly.

Conclusion
Removing kingdom flags from NPCs in C++-based Metin2 private servers is a powerful method for customizing the gameplay experience. With this article, you have learned both the technical steps and the reasons behind such modifications. Follow Metin2Lobby for more Metin2 Development resources!
 

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

Benzer konular

Geri
Üst Alt