GM'lerin oyuncu ile ticaret yapmasını engeller.
Test server'da herkes gm olduğu için ticareti engellememesi için test server'da devre dışı olur.
GameMaster Yetki Kısıtlaması Nedir?
Metin2 özel sunucularında yetkilendirme ve güvenlik ön plana çıkar. Özellikle GameMaster (GM) yetkileri, sunucu yönetimi ve oyun içi denetim için kritik öneme sahiptir. Ancak bu yetkilerin sınırsız kullanılması bazı sorunlara yol açabilir. Bu nedenle GameMaster yetki kısıtlaması, sunucu güvenliğini artırmak ve oyun içi dengeleri korumak için önemli bir yapıdır. Bu makalede Metin2 özel sunucularında GM yetki sınırlamalarının nasıl yapılandırılacağına ve bu işlemlerde dikkat edilmesi gereken konulara değinilecektir.
GameMaster Yetkileri Nelerdir?
Metin2 özel sunucularında GameMaster yetkileri genellikle oyun içinde özel komutlar aracılığıyla çalışır. GM yetkileri sayesinde yetkililer; oyuncuların konumuna ışınlanabilir, item verebilir, ban atabilir, seviye değiştirebilir veya oyun içi etkinlikleri yönetebilir. Ancak tüm bu yetkilerin kontrolsüz kullanımı hem güvenlik açıklarına neden olabilir hem de adil oyun ortamını bozabilir. Bu yüzden yetki seviyesine göre sınırlamalar getirmek büyük önem taşır.
Neden Yetki Kısıtlaması Gerekir?
Oyun içinde yetkili kullanıcıların yetkileri kötüye kullanılabilir. Örneğin bir alt yetkili GameMaster, üst düzey yetkileri kullanmaya çalışabilir ya da istemeden zararlı komutlar çalıştırabilir. Bu durumda sunucuda ciddi hatalar, veri kayıpları veya hile riski oluşabilir. Bu nedenle yetki seviyeleri arasında belirli sınırlamalar getirmek, sunucu güvenliği açısından kritiktir. Ayrıca yetki sistemi doğru şekilde ayarlandığında, sunucu yönetimi daha kolay ve organize hale gelir.
Yetki Sistemini Nasıl Ayarlarız?
Metin2 özel sunucularında yetki sistemleri genellikle C++ kaynak kodları üzerinden ayarlanır. Sunucu tarafında bulunan 'game' modülünde yetkilendirme işlemleri yapılır. Her GM seviyesi için farklı yetki kodları tanımlanabilir. Örneğin: GM seviyesi 1, 2, 3 gibi seviyelere göre komut erişimleri sınıflandırılır. Bu sınıflandırma sayesinde her yetkili sadece kendi seviyesine uygun komutları kullanabilir. Ayrıca Python tabanlı scriptlerle de GUI üzerinden yetki yönetim sistemleri geliştirilebilir.
C++ Kaynak Kodlarında Yetki Tanımı
C++ kaynak kodlarında yetki tanımı yaparken genellikle bir yetki matrisi oluşturulur. Bu matris sayesinde her GM seviyesi için izin verilen komutlar tanımlanır. Örneğin, yetki seviyesi 1 olan bir GM sadece ışınlanma komutunu kullanabilirken, yetki seviyesi 3 olan bir GM item verme, seviye değiştirme gibi daha fazla yetkiye sahip olabilir. Bu tanımlar, auth ve game sunucusu üzerinde eş zamanlı çalışarak doğru yetki kontrolünü sağlar.
Yetki Kısıtlaması İçin Güvenlik Önlemleri
Yetki sınırlamaları yapılandırılırken bazı güvenlik önlemleri alınmalıdır. Öncelikle yetki seviyeleri veritabanında (DB) güvenli şekilde saklanmalı ve her yetkilendirme işlemi loglanmalıdır. Bu sayede yetkili kullanıcıların yaptığı işlemler takip edilebilir. Ayrıca yetki yükseltmeleri kontrollü yapılmalı ve yalnızca güvenilir kişiler yetkilendirilmelidir. Yetki sistemi doğru şekilde yapılandırıldığında, hem sunucu güvenliği sağlanır hem de oyun içi denge korunur.
What is GameMaster Permission Restriction?
In Metin2 private servers, authorization and security are brought to the forefront. Especially GameMaster (GM) permissions are critical for server management and in-game oversight. However, unlimited usage of these permissions can lead to certain issues. Therefore, GameMaster permission restriction is an important structure for enhancing server security and maintaining in-game balances. In this article, we will discuss how to configure GM permission limits in Metin2 private servers and highlight the key considerations during these processes.
What Are GameMaster Permissions?
In Metin2 private servers, GameMaster permissions generally operate through special commands within the game. Thanks to GM permissions, administrators can teleport to player locations, give items, issue bans, change levels, or manage in-game events. However, unrestricted use of all these permissions may cause security vulnerabilities. For this reason, limiting permissions according to level is of great importance.
Why Is Permission Restriction Necessary?
Permissions of authorized users in the game can be misused. For example, a lower-level GameMaster might attempt to use higher-level privileges or accidentally execute harmful commands. This situation could result in serious errors, data losses, or cheating risks on the server. Therefore, implementing limitations between permission levels is critical for server security. Moreover, when the permission system is correctly configured, server management becomes easier and more organized.
How Do We Configure the Permission System?
In Metin2 private servers, permission systems are typically configured via C++ source codes. Authorization processes are handled in the 'game' module on the server side. Different permission codes can be defined for each GM level. For example, command accesses can be categorized based on GM levels such as 1, 2, 3. With this categorization, every authorized person can only use commands appropriate to their level. Additionally, Python-based scripts can also be used to develop GUI-based permission management systems.
Permission Definitions in C++ Source Code
When defining permissions in C++ source code, a permission matrix is generally created. This matrix defines allowed commands for each GM level. For instance, a GM with level 1 permission may only use teleport commands, while a GM with level 3 permission might have access to more privileges like giving items or changing levels. These definitions work simultaneously on the auth and game servers to ensure correct permission checks.
Security Measures for Permission Restrictions
Certain security measures must be taken when configuring permission restrictions. First, permission levels should be securely stored in the database (DB), and every authorization action should be logged. This allows tracking of actions performed by authorized users. Furthermore, permission upgrades should be controlled and only trusted individuals should be authorized. When the permission system is properly configured, both server security and in-game balance are maintained.
Test server'da herkes gm olduğu için ticareti engellememesi için test server'da devre dışı olur.
Kod:
// Service.h AÇILIR // Eklenir. #define ENABLE_GAMEMASTER_RESTRICTION ---------------------------------------------------------------------------------------- // exchange.cpp AÇILIR // Aratılır: if (victim->IsBlockMode(BLOCK_EXCHANGE)) // Eklenir: #ifdef ENABLE_GAMEMASTER_RESTRICTION if (!IsGM()) { if (!test_server && victim->GetGMLevel() != GM_PLAYER) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Game Master ile ticaret yapamazsınız.")); return false; } } if (!test_server && IsGM()) { std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM gamemaster_restriction")); SQLResult * pRes = pMsg->Get(); if (pRes->uiNumRows) { MYSQL_ROW row; while ((row = mysql_fetch_row(pRes->pSQLResult))) { DWORD datos = 0; str_to_number(datos, row[0]); if (GetPlayerID()==datos) { ChatPacket(CHAT_TYPE_INFO, "Bunu yapmak için izniniz yok."); return false; } } } } #endif ---------------------------------------------------------------------------------------- // char_item.cpp AÇILIR // Aratılır: bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount) // Eklenir: #ifdef ENABLE_GAMEMASTER_RESTRICTION if (!test_server && IsGM()) { std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM gamemaster_restriction")); SQLResult * pRes = pMsg->Get(); if (pRes->uiNumRows) { MYSQL_ROW row; while ((row = mysql_fetch_row(pRes->pSQLResult))) { DWORD datos = 0; str_to_number(datos, row[0]); if (GetPlayerID()==datos) { ChatPacket(CHAT_TYPE_INFO, "Bunu yapmak için izniniz yok"); return false; } } } } #endif ---------------------------------------------------------------------------------------- // cmd_general.cpp AÇILIR // Aratılır ACMD(do_click_safebox) // Eklenir: #ifdef ENABLE_GAMEMASTER_RESTRICTION if (!test_server && ch->IsGM()) { std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM gamemaster_restriction")); SQLResult * pRes = pMsg->Get(); if (pRes->uiNumRows) { MYSQL_ROW row; while ((row = mysql_fetch_row(pRes->pSQLResult))) { DWORD datos = 0; str_to_number(datos, row[0]); if (ch->GetPlayerID()==datos) { ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapmak için izniniz yok"); return; } } } } #endif ---------------------------------------------------------------------------------------- // Player.sql'e eklenir: SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for gamemaster_restriction -- ---------------------------- DROP TABLE IF EXISTS `gamemaster_restriction`; CREATE TABLE `gamemaster_restriction` ( `gamemaster` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', PRIMARY KEY (`gamemaster`) USING BTREE ) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
GameMaster Yetki Kısıtlaması Nedir?
Metin2 özel sunucularında yetkilendirme ve güvenlik ön plana çıkar. Özellikle GameMaster (GM) yetkileri, sunucu yönetimi ve oyun içi denetim için kritik öneme sahiptir. Ancak bu yetkilerin sınırsız kullanılması bazı sorunlara yol açabilir. Bu nedenle GameMaster yetki kısıtlaması, sunucu güvenliğini artırmak ve oyun içi dengeleri korumak için önemli bir yapıdır. Bu makalede Metin2 özel sunucularında GM yetki sınırlamalarının nasıl yapılandırılacağına ve bu işlemlerde dikkat edilmesi gereken konulara değinilecektir.
GameMaster Yetkileri Nelerdir?
Metin2 özel sunucularında GameMaster yetkileri genellikle oyun içinde özel komutlar aracılığıyla çalışır. GM yetkileri sayesinde yetkililer; oyuncuların konumuna ışınlanabilir, item verebilir, ban atabilir, seviye değiştirebilir veya oyun içi etkinlikleri yönetebilir. Ancak tüm bu yetkilerin kontrolsüz kullanımı hem güvenlik açıklarına neden olabilir hem de adil oyun ortamını bozabilir. Bu yüzden yetki seviyesine göre sınırlamalar getirmek büyük önem taşır.
Neden Yetki Kısıtlaması Gerekir?
Oyun içinde yetkili kullanıcıların yetkileri kötüye kullanılabilir. Örneğin bir alt yetkili GameMaster, üst düzey yetkileri kullanmaya çalışabilir ya da istemeden zararlı komutlar çalıştırabilir. Bu durumda sunucuda ciddi hatalar, veri kayıpları veya hile riski oluşabilir. Bu nedenle yetki seviyeleri arasında belirli sınırlamalar getirmek, sunucu güvenliği açısından kritiktir. Ayrıca yetki sistemi doğru şekilde ayarlandığında, sunucu yönetimi daha kolay ve organize hale gelir.
Yetki Sistemini Nasıl Ayarlarız?
Metin2 özel sunucularında yetki sistemleri genellikle C++ kaynak kodları üzerinden ayarlanır. Sunucu tarafında bulunan 'game' modülünde yetkilendirme işlemleri yapılır. Her GM seviyesi için farklı yetki kodları tanımlanabilir. Örneğin: GM seviyesi 1, 2, 3 gibi seviyelere göre komut erişimleri sınıflandırılır. Bu sınıflandırma sayesinde her yetkili sadece kendi seviyesine uygun komutları kullanabilir. Ayrıca Python tabanlı scriptlerle de GUI üzerinden yetki yönetim sistemleri geliştirilebilir.
C++ Kaynak Kodlarında Yetki Tanımı
C++ kaynak kodlarında yetki tanımı yaparken genellikle bir yetki matrisi oluşturulur. Bu matris sayesinde her GM seviyesi için izin verilen komutlar tanımlanır. Örneğin, yetki seviyesi 1 olan bir GM sadece ışınlanma komutunu kullanabilirken, yetki seviyesi 3 olan bir GM item verme, seviye değiştirme gibi daha fazla yetkiye sahip olabilir. Bu tanımlar, auth ve game sunucusu üzerinde eş zamanlı çalışarak doğru yetki kontrolünü sağlar.
Yetki Kısıtlaması İçin Güvenlik Önlemleri
Yetki sınırlamaları yapılandırılırken bazı güvenlik önlemleri alınmalıdır. Öncelikle yetki seviyeleri veritabanında (DB) güvenli şekilde saklanmalı ve her yetkilendirme işlemi loglanmalıdır. Bu sayede yetkili kullanıcıların yaptığı işlemler takip edilebilir. Ayrıca yetki yükseltmeleri kontrollü yapılmalı ve yalnızca güvenilir kişiler yetkilendirilmelidir. Yetki sistemi doğru şekilde yapılandırıldığında, hem sunucu güvenliği sağlanır hem de oyun içi denge korunur.
What is GameMaster Permission Restriction?
In Metin2 private servers, authorization and security are brought to the forefront. Especially GameMaster (GM) permissions are critical for server management and in-game oversight. However, unlimited usage of these permissions can lead to certain issues. Therefore, GameMaster permission restriction is an important structure for enhancing server security and maintaining in-game balances. In this article, we will discuss how to configure GM permission limits in Metin2 private servers and highlight the key considerations during these processes.
What Are GameMaster Permissions?
In Metin2 private servers, GameMaster permissions generally operate through special commands within the game. Thanks to GM permissions, administrators can teleport to player locations, give items, issue bans, change levels, or manage in-game events. However, unrestricted use of all these permissions may cause security vulnerabilities. For this reason, limiting permissions according to level is of great importance.
Why Is Permission Restriction Necessary?
Permissions of authorized users in the game can be misused. For example, a lower-level GameMaster might attempt to use higher-level privileges or accidentally execute harmful commands. This situation could result in serious errors, data losses, or cheating risks on the server. Therefore, implementing limitations between permission levels is critical for server security. Moreover, when the permission system is correctly configured, server management becomes easier and more organized.
How Do We Configure the Permission System?
In Metin2 private servers, permission systems are typically configured via C++ source codes. Authorization processes are handled in the 'game' module on the server side. Different permission codes can be defined for each GM level. For example, command accesses can be categorized based on GM levels such as 1, 2, 3. With this categorization, every authorized person can only use commands appropriate to their level. Additionally, Python-based scripts can also be used to develop GUI-based permission management systems.
Permission Definitions in C++ Source Code
When defining permissions in C++ source code, a permission matrix is generally created. This matrix defines allowed commands for each GM level. For instance, a GM with level 1 permission may only use teleport commands, while a GM with level 3 permission might have access to more privileges like giving items or changing levels. These definitions work simultaneously on the auth and game servers to ensure correct permission checks.
Security Measures for Permission Restrictions
Certain security measures must be taken when configuring permission restrictions. First, permission levels should be securely stored in the database (DB), and every authorization action should be logged. This allows tracking of actions performed by authorized users. Furthermore, permission upgrades should be controlled and only trusted individuals should be authorized. When the permission system is properly configured, both server security and in-game balance are maintained.
