Map Allow Sınırını 32'den 64'e Yüksetlme [ SRC ]

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar ben Pelin Melek Aslan bazı büyük çaplı serverler için iyi olucağını düşünüyorum eklemenizde fayda var.

SRC'den game klasörüne giriniz.

desc_client.cpp dosyasını notepad++ ile açın ;


Bu yazıyı aratın ;

Kod:
map_allow_copy(p.alMaps, 32);

Bu şekilde değiştirin ;
Kod:
map_allow_copy(p.alMaps, 64);


Ardından Src'den db klasörünü açınız.

input_db.cpp adlı dosyayı notepad++ ile açın ;

Bu yazıyı aratın ;
Kod:
for (int i = 0; i < 32; ++i)

Bu şekilde değiştirin ;
Kod:
for (int i = 0; i < 64; ++i)



Şimdi ardından Peer.h isimli dosyayı notepad++ ile açın;

Bu yazıyı aratın ;
Kod:
long m_alMaps[32];

Bu şekilde değiştirin;
Kod:
long m_alMaps[64];

Ardından Src'den Common klasörüne girin.

tables.h adlı dosyayı notepad++ ile açın;


Bu yazıyı aratın;

Kod:
long alMaps[32];

Bu şekilde değiştirin;
Kod:
long alMaps[64];

Bu yazıyı aratın;
Kod:
long alMaps[32];

Bu şekilde değiştirin;
Kod:
long alMaps[64];


Ardından SRC'mizi build edebiliriz işlemler bukadar :rolleyes:

- Pelin Melek Aslan -
Map Allow Sınırını 32'den 64'e Yükseltme [SRC]

Metin2 özel sunucu geliştirme sürecinde birçok geliştirici, sistemsel sınırlamalarla karşılaşabilir. Bu sınırlamalardan birisi map_allow listesidir. Varsayılan olarak Metin2 oyununda bir oyuncunun giriş yapabileceği maksimum harita sayısı 32 ile sınırlıdır. Ancak bazı gelişmiş sunucularda bu sınırın artırılması gerekebilir. Bu yazıda, map_allow sınırını 32'den 64'e yükseltmeyi ele alacağız.

Map Allow Nedir?
Map allow, bir oyuncunun hangi haritalara erişebileceğini belirleyen listedir. Oyuncu bir sunucuya bağlandığında, bu listedeki haritalara geçiş yapabilir. Bu liste genellikle game server tarafında tanımlanır ve güvenlik amacıyla kullanılır. Her harita bu listeye manuel olarak eklenmelidir. Bu nedenle, büyük sunucular için bu listenin genişletilmesi gerekir.

Neden 64 Harita Gerekebilir?
Özel sunucular, farklı PvP sistemleri, özel haritalar, özel alanlar ve etkinlikler barındırabilir. Özellikle PvP odaklı sunucularda, turnuvalar, özel arena haritaları, guild savaşları gibi birçok harita aynı anda aktif olabilir. 32 harita bu tür içerikler için yetersiz kalabilir. Bu nedenle, geliştiriciler map_allow sınırını artırmak zorunda kalabilir.

SRC Dosyasında Değişiklik Yapma
Metin2 server kaynak kodu üzerinde değişiklik yapabilmek için C++ bilgisi gereklidir. Map allow sınırı, genellikle ClientManager.cpp veya benzeri bir dosyada tanımlanmıştır. Kodda şu satırlar görünebilir:

Kod:
[B]static int map_allow[MAX_MAP_ALLOW];[/B][BR][/BR][B]#define MAX_MAP_ALLOW 32[/B]


Buradaki MAX_MAP_ALLOW sabitini 64 olarak değiştirmek yeterlidir:

Kod:
[B]#define MAX_MAP_ALLOW 64[/B]


Ardından, server tekrar derlenmelidir. Bu işlem sırasında compile hatası almamak için, tüm ilgili fonksiyonların yeni boyuta göre güncellenmesi gerekir. Örneğin, harita ekleme döngüsü ya da kontrol mekanizması eski boyut üzerinden çalışıyorsa, bu fonksiyonlar da yeniden yazılmalıdır.

Harita Listesini Güncelleme
Artık map_allow sınırı 64 olarak ayarlandığına göre, server configuration dosyalarında veya doğrudan source code içinde bu 64 harita tanımlanmalıdır. Haritalar doğru şekilde listelenmezse, oyuncular bu haritalara geçiş yapamaz. Bu tür hatalar, auth server ve game server senkronizasyonundan kaynaklanabilir.

Olası Sorunlar ve Çözümler
Bu tür bir değişiklikte karşılaşılabilecek başlıca sorunlar şunlardır:

- Map_allow sınırı artırıldığında, client tarafında da desteklenmiyorsa, oyuncular bazı haritalara geçemeyebilir.
- DB core ile game core arasında uyumsuzluk olursa, harita listesi doğru yüklenmeyebilir.
- Channel yapılandırması, harita listesini etkileyebilir. Birden fazla kanalda farklı harita listeleri kullanılması durumunda, her kanal için ayrı ayrı kontrol yapılmalıdır.

Sonuç
Map allow sınırının artırılması, Metin2 özel sunucularında gelişmiş harita yönetim sistemleri kurmak isteyen geliştiriciler için kritik bir adımdır. Bu işlem, doğru yapıldığında hem PvP hem de PvE içeriklerin daha esnek yönetilmesini sağlar. Ancak dikkatli yapılması ve client ile server uyumunun sağlanması gerekir.

Daha fazla Metin2 development ipucu için Metin2 Lobby'yi takip edin.


Raising Map Allow Limit from 32 to 64 [SRC]

Metin2 private server development process may encounter several system limitations. One of these limitations is the map_allow list. By default, in Metin2, the maximum number of maps a player can enter is limited to 32. However, in some advanced servers, this limit might need to be increased. In this article, we will discuss how to raise the map_allow limit from 32 to 64.

What is Map Allow?
Map allow is the list that determines which maps a player can access. When a player connects to a server, they can switch between maps listed here. This list is usually defined on the game server side and used for security purposes. Each map must be manually added to this list. Therefore, for larger servers, this list may need to be expanded.

Why Might 64 Maps Be Needed?
Private servers can host various PvP systems, special maps, unique areas, and events. Especially in PvP focused servers, tournaments, custom arena maps, guild wars, and similar features may require more than 32 maps. In such cases, developers may need to increase the map_allow limit.

Making Changes in Source Files
To modify Metin2 server source code, knowledge of C++ is required. The map_allow limit is usually defined in files like ClientManager.cpp. You might see lines like:

Kod:
[B]static int map_allow[MAX_MAP_ALLOW];[/B][BR][/BR][B]#define MAX_MAP_ALLOW 32[/B]


You simply need to change the MAX_MAP_ALLOW constant to 64:

Kod:
[B]#define MAX_MAP_ALLOW 64[/B]


Then, the server needs to be recompiled. To avoid compile errors during this process, all related functions should be updated according to the new size. For instance, if the map addition loop or control mechanism works based on the old size, these functions must also be rewritten.

Updating the Map List
Now that the map_allow limit has been set to 64, these 64 maps must be defined in the server configuration files or directly in the source code. If maps are not correctly listed, players won't be able to switch to those maps. Such errors may stem from synchronization issues between auth server and game server.

Possible Issues and Solutions
The main problems you might face with such a modification include:

- If the map_allow limit is increased but not supported on the client side, players may fail to enter certain maps.
- Inconsistencies between DB core and game core may cause the map list not to load properly.
- Channel configurations may affect the map list. If different map lists are used across multiple channels, each channel must be checked separately.

Conclusion
Increasing the map_allow limit is a critical step for developers aiming to create advanced map management systems in Metin2 private servers. When done correctly, this action allows for more flexible management of both PvP and PvE content. However, it requires careful implementation and ensuring compatibility between client and server.

For more Metin2 development tips, follow Metin2 Lobby.
 

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

Geri
Üst Alt