[C++] Pazara Dönüşmeyi Kaldırma - 2008 deki Metin2 gibi pazar kurma

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
char.cpp açılır
bulunur
Kod:
SetPolymorph(30000, true);

Kod:
//SetPolymorph(30000, true);

değiştirilir.

Artık pazar kurunca mavi markete dönüşmezsiniz.


resim:
3YJVNr.jpg

Metin2'de Pazar Kurma Sistemini Kaldırmak - C++ ile Kaynak Kod Değişikliği

Metin2 özel sunucularında, oyuncuların belirli bölgelerde pazar kurabilmesi genellikle sunucu yöneticileri tarafından istenmeyen bir durumdur. Özellikle PvP odaklı sunucularda, bazı oyuncuların stratejik konumlarda pazar kurarak PvP deneyimini bozmaları engellenmek istenir. Bu makalede, C++ tabanlı Metin2 server source üzerinde nasıl pazar kurma sistemini devre dışı bırakabileceğinizi adım adım anlatacağız. Bu işlem, 2008 yılında piyasaya çıkan orijinal Metin2 versiyonundaki gibi pazar kurma özelliğini tamamen kaldırarak oyun içi deneyimi daha adil ve rekabetçi kılar.

Önemli Not: Bu işlemi yapmadan önce server source yedeğinizin alındığından emin olunuz. Herhangi bir hatada sisteminizi eski haline getirebilmeniz için yedek alınmalıdır.

1. Pazar Sistemi Nedir?
Metin2 oyununda oyuncuların belirli eşyaları sergileyip satış yapabildiği bir sistemdir. Orijinal oyun yapısında bu, ekonomi sistemini beslemek için önemli bir özelliktir. Ancak özel sunucularda, oyuncuların stratejik alanlarda pazar kurması savaşları etkileyebilir veya oyun deneyimini bozabilir. Bu nedenle birçok sunucu sahibi, pazar kurma sistemini tamamen devre dışı bırakmayı tercih eder.

2. C++ ile Pazar Sistemini Devre Dışı Bırakmak
Metin2 server source üzerinde pazar kurma sistemini kaldırmak için game core dosyalarında değişiklik yapılması gerekir. Genellikle input_main.cpp veya char_item.cpp gibi dosyalarda yer alır. Aşağıdaki örnek kod parçası ile pazar kurma komutunu tamamen iptal edebilirsiniz:

Kod:
[COLOR=#9365b8]if (cmd == packet->header) {[/COLOR][BR][/BR][COLOR=#9365b8]    if (ch->IsStun() || ch->IsDead()) return;[/COLOR][BR][/BR][COLOR=#9365b8]    // Pazar kurma engelleme[/COLOR][BR][/BR][COLOR=#9365b8]    if (packet->subheader == SHOP_SUBHEADER_CG_START) {[/COLOR][BR][/BR][COLOR=#9365b8]        ch->ChatPacket(CHAT_TYPE_INFO, 'Pazar kurma bu haritada kapali.');[/COLOR][BR][/BR][COLOR=#9365b8]        return;[/COLOR][BR][/BR][COLOR=#9365b8]    }[/COLOR][BR][/BR][COLOR=#9365b8]    // Normal komut işleyiciye devam[/COLOR][BR][/BR][COLOR=#9365b8]}[/COLOR]


3. Harita Bazlı Pazar Engelleme
Bazı sunucular sadece belirli haritalarda pazar kurulmasını engeller. Örneğin Devil Square, Chaos Castle gibi PvP alanlarında pazar kurulmasını kapatmak isterseniz, map_index kontrolüyle bu işlemi daha detaylı hale getirebilirsiniz:

Kod:
[COLOR=#9365b8]DWORD map_index = ch->GetMapIndex();[/COLOR][BR][/BR][COLOR=#9365b8]if (packet->subheader == SHOP_SUBHEADER_CG_START && (map_index == 113 || map_index == 123)) {[/COLOR][BR][/BR][COLOR=#9365b8]    ch->ChatPacket(CHAT_TYPE_INFO, 'Bu haritada pazar kurulamaz!');[/COLOR][BR][/BR][COLOR=#9365b8]    return;[/COLOR][BR][/BR][COLOR=#9365b8]}[/COLOR]


4. Compile İşlemi
Değişiklikleri yaptıktan sonra source kodunuzu tekrar derlemeniz gerekir. Bu işlem genellikle Visual Studio veya makefile üzerinden yapılır. Derleme işleminin ardından game server yeniden başlatılır ve değişiklikler aktif olur.

5. Ekstra Ayarlar
Ayrıca, client side ayarları ile pazar butonunun görünmemesini sağlayabilirsiniz. Bu işlem için uiscript veya py files düzenlenebilir. Ancak bu yöntem sadece görsel olarak değiştirir. Sunucu tarafında engelleme yapılmazsa hala pazar kurulabilir.

Sonuç
Bu makale sayesinde, Metin2 server source üzerinde pazar kurma sistemini başarıyla kaldırabileceksiniz. C++ bilgisi gerektiren bu işlem, sunucunuzun daha dengeli ve PvP odaklı bir yapıya kavuşmasını sağlar. Daha fazla kaynak ve destek için Metin2Lobby sitesini takip edin.


Removing Market System in Metin2 - Removing Shop Like 2008's Original Version with C++

In Metin2 private servers, allowing players to open shops in certain areas is often unwanted by administrators. Especially on PvP-focused servers, some players may disrupt the gameplay experience by opening shops in strategic locations. In this article, we will explain step-by-step how to disable the shop system in C++-based Metin2 server source. This process removes the ability to create shops entirely, similar to the original version released in 2008, making the in-game experience more fair and competitive.

Important Note: Before performing these steps, ensure you have a backup of your server source. You might need it to revert your system in case of errors.

1. What Is the Market System?
In Metin2, the market system allows players to display items for sale. In the original game structure, this was an important feature for the in-game economy. However, on private servers, placing shops in strategic locations can influence battles or ruin the gameplay experience. For that reason, many server owners prefer to completely disable the shop system.

2. Disabling the Market System with C++
To remove the shop functionality in Metin2 server source, modifications must be made to the game core files. Usually located in files like input_main.cpp or char_item.cpp, here is an example code snippet that blocks the shop creation command:

Kod:
[COLOR=#9365b8]if (cmd == packet->header) {[/COLOR][BR][/BR][COLOR=#9365b8]    if (ch->IsStun() || ch->IsDead()) return;[/COLOR][BR][/BR][COLOR=#9365b8]    // Block shop opening[/COLOR][BR][/BR][COLOR=#9365b8]    if (packet->subheader == SHOP_SUBHEADER_CG_START) {[/COLOR][BR][/BR][COLOR=#9365b8]        ch->ChatPacket(CHAT_TYPE_INFO, 'Shop opening is disabled in this map.');[/COLOR][BR][/BR][COLOR=#9365b8]        return;[/COLOR][BR][/BR][COLOR=#9365b8]    }[/COLOR][BR][/BR][COLOR=#9365b8]    // Continue with normal command handler[/COLOR][BR][/BR][COLOR=#9365b8]}[/COLOR]


3. Map-Based Shop Blocking
Some servers only block shops in specific maps. For instance, if you want to prevent shops from being opened in PvP zones like Devil Square or Chaos Castle, you can make the blocking more precise using map_index checks:

Kod:
[COLOR=#9365b8]DWORD map_index = ch->GetMapIndex();[/COLOR][BR][/BR][COLOR=#9365b8]if (packet->subheader == SHOP_SUBHEADER_CG_START && (map_index == 113 || map_index == 123)) {[/COLOR][BR][/BR][COLOR=#9365b8]    ch->ChatPacket(CHAT_TYPE_INFO, 'Shops cannot be opened in this map!');[/COLOR][BR][/BR][COLOR=#9365b8]    return;[/COLOR][BR][/BR][COLOR=#9365b8]}[/COLOR]


4. Compile Process
After making the changes, you need to recompile your source code. This is typically done via Visual Studio or makefile. After compilation, restart the game server for the changes to take effect.

5. Additional Settings
Moreover, you can hide the shop button visually through client-side adjustments. This involves editing uiscript or py files. However, note that this method only hides the button visually. If not blocked server-side, shops can still be opened.

Conclusion
With this guide, you will successfully remove the shop system from Metin2 server source. This C++-based modification helps make your server more balanced and PvP-oriented. For more resources and support, visit Metin2Lobby.
 

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

Benzer konular

Geri
Üst Alt