Öncelikle engeli lonca deposu kullandığım için yaptım yararlı olduğunu düşündüğüm için paylaşıyorum
[/FONT]
İnput_Main.cpp aratılır:[/FONT]
Kod:
void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
Kod:
if (ch->GetGMLevel() > GM_PLAYER) { ch->ChatPacket(CHAT_TYPE_INFO,"GameMaster Lonca Kuramaz!"); return; }
config.cpp içinde aratın:
Kod:
int gPlayerMaxLevel = 99;
Altına Ekleyin;
Kod:
int gamemasterin_lonca_kurmamasi_icin_engel_ekliyoruz = 0;
Tekrar Aratın:
Kod:
TOKEN("max_level")
Kod bloğunun altına ekleyin;
Kod:
TOKEN("GM_LONCA_KURMA_ENGELI") { str_to_number(gamemasterin_lonca_kurmamasi_icin_engel_ekliyoruz, value_string); continue; }
config.h aratın:
Kod:
extern int gPlayerMaxLevel;
Altına Ekleyin;
Kod:
extern int gamemasterin_lonca_kurmamasi_icin_engel_ekliyoruz;
İnput_main.cpp aratılır:
Kod:
void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
Kod:
if (gamemasterin_lonca_kurmamasi_icin_engel_ekliyoruz == 1) { if (ch->GetGMLevel() > GM_PLAYER) { ch->ChatPacket(CHAT_TYPE_INFO,"GameMaster Lonca Kuramaz!"); return; } }
Gm Lonca Kurma Engeli Nedir?
Metin2 özel sunucularında yönetim ve denge açısından kritik öneme sahip olan Gm Lonca Kurma Engeli, sunucu güvenliğini artırmak ve yetkili oyuncuların oyun içi avantajlarını sınırlamak amacıyla geliştirilen bir sistemdir. Bu sistem, C++ tabanlı sunucularda genellikle kaynak kod seviyesinde entegre edilerek, yetkili kullanıcıların (GM, Admin vb.) lonca kurabilmesini engeller. Bu sayede, yetkililerin oyun içi ekonomiyi ve PvP sistemini manipüle etmesi önlenebilir.
Neden Gm Lonca Kurma Engeli Kullanılır?
Metin2 özel sunucularında yetkililerin bazı avantajları kötüye kullanabileceği durumlar gözlemlenmiştir. Özellikle loncalar üzerinden ekonomik kontrol sağlanması veya PvP savaşlarında avantaj elde edilmesi gibi senaryolar bu sistemin geliştirilmesinin temel nedenlerindendir. Bu engel sayesinde, oyun içi adalet sağlanır ve yetkili olmayan oyuncuların hissettiği dengesizlik azaltılır.
C++ Kaynak Kod Seviyesinde Uygulama
Bu sistemi C++ tabanlı Metin2 sunucularında uygulamak için genellikle 'game' projesi üzerinde değişiklikler yapılır. Özellikle lonca oluşturma işlemi sırasında yapılan istekler incelenerek, kullanıcı rolüne göre işlem onayı verilip verilmeyeceği belirlenir. Örneğin, oyuncu yetkisi GM ise lonca kurma talebi reddedilir. Bu işlem genellikle 'input_main.cpp' dosyasında yer alan lonca komutları üzerinden yapılır.
Kod Yapısı ve Uygulama Adımları
Öncelikle, oyuncunun yetkisini kontrol edecek bir fonksiyon tanımlanmalıdır. Bu fonksiyon, kullanıcı yetkisi GM veya üzeri ise lonca kurma izni vermeyecek şekilde ayarlanır. Ardından, lonca oluşturma isteği geldiğinde bu fonksiyon çağrılır. Eğer kullanıcı GM ise, lonca kurma işlemi iptal edilir ve gerekli mesaj kullanıcıya gönderilir. Bu mesajlar genellikle sistem mesajı olarak görünür ve oyuncuya bilgi verir.
Python ve Py Root Entegrasyonu
Metin2 özel sunucularında bazı işlemler Python tarafında da yapılabilir. Ancak Gm Lonca Kurma Engeli gibi temel güvenlik önlemleri genellikle C++ seviyesinde uygulanmalıdır. Python tarafında yalnızca istemciye gönderilecek mesajlar veya küçük kontroller için kullanılabilir. Py Root içinde bu tür kontroller yapılabilecekse de, ana mantık C++ kısmında olmalıdır.
Sistem Güvenliği ve DB Entegrasyonu
Lonca kurma engeli, DB (veritabanı) seviyesinde de desteklenebilir. Oyuncu yetkileri veritabanında saklandığı için, lonca kurma işlemi sırasında yetki kontrolü DB üzerinden yapılabilir. Bu sayede daha güvenli bir yapı oluşturulur ve sunucu taraflı hatalar azaltılır. Ayrıca, bu tür kontroller sunucu performansını etkilemeyecek şekilde optimize edilmelidir.
Sonuç
Gm Lonca Kurma Engeli, Metin2 özel sunucularında hem güvenlik hem de denge açısından önemli bir sistemdir. C++ tabanlı uygulamalarla güçlü bir şekilde entegre edilebilir ve sunucu yönetimi kolaylaştırılabilir. Bu tür sistemler, doğru şekilde uygulandığında hem oyuncular hem de geliştiriciler için faydalıdır.
What is Gm Guild Creation Block?
The Gm Guild Creation Block is a system developed to enhance security and balance in Metin2 private servers by preventing authorized users (GMs, Admins, etc.) from creating guilds within the game. This system is typically integrated at the source code level on C++ based servers, blocking privileged users from establishing guilds. This prevents them from manipulating the in-game economy and PvP systems.
Why Use Gm Guild Creation Block?
In Metin2 private servers, it has been observed that certain privileges held by administrators can be misused. Scenarios such as gaining economic control through guilds or obtaining advantages in PvP battles are among the main reasons for developing this system. By implementing this block, fairness within the game is maintained, and imbalance felt by non-admin players is reduced.
Implementation at C++ Source Code Level
To implement this system in C++ based Metin2 servers, modifications are usually made in the 'game' project. During guild creation requests, user roles are checked to decide whether permission should be granted. For instance, if the player's role is GM, the guild creation request is denied. This process typically occurs via guild commands located in the 'input_main.cpp' file.
Code Structure and Implementation Steps
Firstly, a function must be defined to check the user's authority. If the user’s rank is GM or higher, the function will prevent guild creation. Then, when a guild creation request arrives, this function is called. If the user is a GM, the request is canceled and the appropriate message is sent to the user. These messages usually appear as system notifications to inform the player.
Python and Py Root Integration
Some operations in Metin2 private servers can also be handled with Python. However, fundamental security measures like Gm Guild Creation Block should primarily be implemented at the C++ level. Python might only be used for sending messages to the client or minor checks. While such controls may be possible in Py Root, the main logic must remain in the C++ side.
System Security and DB Integration
The guild creation block can also be supported at the database (DB) level. Since user permissions are stored in the database, authority checks during guild creation can be performed via DB queries. This creates a more secure structure and reduces server-side errors. Additionally, these types of checks should be optimized to avoid impacting server performance.
Conclusion
The Gm Guild Creation Block is an important system for both security and balance in Metin2 private servers. When properly implemented using C++ based applications, it simplifies server management. Such systems prove beneficial for both players and developers when applied correctly.
