Merhaba arkadaşlar fırsat buldukça sistemleri sistemleri paylaşmaya çalışıyorum.
GM yere item atma Engelleme nasıl yapılır onu ögreneceğiz hemde CONFIG'den Aç/Kapa Şeklinde.
Hemen Kuruluma Geçelim.
Game/src/config.cpp Açın ve Aratın;
int gPlayerMaxLevel = 99;
Altına Ekleyin;
int gmyereitematamaz = 0;
Son Hali;
Aratın;
TOKEN("max_level") {
str_to_number(gPlayerMaxLevel, value_string);
gPlayerMaxLevel = MINMAX(1, gPlayerMaxLevel, PLAYER_MAX_LEVEL_CONST);
fprintf(stderr, "PLAYER_MAX_LEVEL: %d\n", gPlayerMaxLevel);
}
Altına Ekleyin;
TOKEN("GM_YERE_ITEM_ATAMAZ") {
str_to_number(gmyereitematamaz, value_string);
printf("GM_YERE_ITEM_ATAMAZ: 1\n");
continue;
}
Kodu Paste2'den almak için: TIKLAYIN (
Son Hali;
Game/src/config.h Açın ve Aratın;
extern int gPlayerMaxLevel;
Altına Ekleyin;
extern int gmyereitematamaz;
Son Hali;
Game/src/char_item_cpp Açın ve Aratın;
bool CHARACTER:
ropItem(TItemPos Cell, BYTE bCount){
LPITEM item = NULL;
Altına Ekleyin;
if (gmyereitematamaz == 1) {
if (GetGMLevel() > GM_PLAYER)
{
ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Hata> GameMaster yere item atamaz.");
return false;
}
}
Kodu Paste2'den Almak için; TIKLAYIN (
Son Hali;
son olarak
channel1, channel2, channel3, channel4, game99 içindeki CONFIG dosyasının alt kısmına ekleyin
gm_yere_item_atamaz: 1
0 kapatır 1 açar
GM yere item atma Engelleme nasıl yapılır onu ögreneceğiz hemde CONFIG'den Aç/Kapa Şeklinde.
Hemen Kuruluma Geçelim.
Game/src/config.cpp Açın ve Aratın;
int gPlayerMaxLevel = 99;
Altına Ekleyin;
int gmyereitematamaz = 0;
Son Hali;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Aratın;
TOKEN("max_level") {
str_to_number(gPlayerMaxLevel, value_string);
gPlayerMaxLevel = MINMAX(1, gPlayerMaxLevel, PLAYER_MAX_LEVEL_CONST);
fprintf(stderr, "PLAYER_MAX_LEVEL: %d\n", gPlayerMaxLevel);
}
Altına Ekleyin;
TOKEN("GM_YERE_ITEM_ATAMAZ") {
str_to_number(gmyereitematamaz, value_string);
printf("GM_YERE_ITEM_ATAMAZ: 1\n");
continue;
}
Kodu Paste2'den almak için: TIKLAYIN (
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
)Son Hali;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Game/src/config.h Açın ve Aratın;
extern int gPlayerMaxLevel;
Altına Ekleyin;
extern int gmyereitematamaz;
Son Hali;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Game/src/char_item_cpp Açın ve Aratın;
bool CHARACTER:
LPITEM item = NULL;
Altına Ekleyin;
if (gmyereitematamaz == 1) {
if (GetGMLevel() > GM_PLAYER)
{
ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Hata> GameMaster yere item atamaz.");
return false;
}
}
Kodu Paste2'den Almak için; TIKLAYIN (
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
)Son Hali;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
son olarak
channel1, channel2, channel3, channel4, game99 içindeki CONFIG dosyasının alt kısmına ekleyin
gm_yere_item_atamaz: 1
0 kapatır 1 açar
Yere GM'lerin Item Atmasını Engelleme CONFIG Ayarları
Metin2 özel sunucularında güvenlik ve dengeli oyun deneyimi sağlamak adına birçok yapılandırma ayarı önemlidir. Bu ayarlardan biri de GM (Game Master) yetkililerinin oyun içi item atma davranışlarını kontrol etmektir. Özellikle PvP sunucularda GM'lerin yere item bırakması, oyun içi ekonomiyi bozabilecek veya hile olarak değerlendirilebilecek durumlara neden olabilir. Bu nedenle, GM'lerin yere item atmasını engellemek için bazı CONFIG ayarlarını düzenlemek gerekir.
CONFIG Dosyası Nedir?
Metin2 sunucu yapılandırmasında önemli bir yeri olan CONFIG dosyası, sunucu davranışlarını belirleyen anahtar ayarları içerir. Genellikle game/src/common/defines.h veya game/src/client_pack/setting.py gibi dosyalarda tanımlanan bu ayarlar, oyun içi kuralları belirler. Sunucu derlenirken bu ayarlar aktif hale gelir ve oyun davranışlarını yönlendirir.
Item Bırakma Ayarlarının Kontrolü
Birçok Metin2 özel sunucusu, geliştiriciler tarafından özelleştirilmiş kaynak koda sahiptir. Bu kaynak kodlarda GM komutları ve yetkileri genellikle C++ veya Python ile yazılmıştır. Yere item bırakma işlemi genellikle /drop komutuyla yapılır. Bu komutu devre dışı bırakmak veya sadece belirli yetkililerin kullanabilmesini sağlamak mümkündür.
CONFIG Ayarları Nasıl Yapılır?
1. defines.h veya Ayar Dosyasında Ayarlar:
#define ENABLE_GM_DROP_ITEM gibi bir tanım varsa, bu değeri false yaparak GM'lerin yere item bırakmasını engelleyebilirsiniz. Eğer bu tanım yoksa, doğrudan C++ kaynak kodda DropItem() fonksiyonuna yetki kontrolü eklenebilir.
2. Python Script Tarafında Ayar:
Py ROOT dosyalarında, genellikle game.py veya command.py dosyalarında, CMD_DROP komutuna yetki kontrolü getirebilirsiniz. Örneğin:
if player.GetStatus() < ADMIN_LEVEL:
chat.AppendChat(1, 'Bu komutu kullanma yetkiniz yok.')
Bu şekilde, sadece belirli yetki seviyesindeki kullanıcılar drop komutunu kullanabilir.
Sunucu Derleme ve Aktif Etme
CONFIG ayarlarını yaptıktan sonra, sunucuyu yeniden derlemeniz gerekir. Game server ve auth server yapılandırılmışsa, derleme işlemi tamamlandıktan sonra server_info.lua ve diğer yapılandırma dosyalarıyla birlikte çalışır. Derleme işlemi sırasında hata oluşmaması için tüm dosya yollarının doğru olduğundan emin olun.
Sonuç
Metin2 özel sunucularında güvenliği artırmak ve hile riskini azaltmak için GM yetkilerinin sınırlı tutulması çok önemlidir. Yere item atma yetkisinin kontrol altına alınması, oyun içi dengenin korunmasına yardımcı olur. Metin2Lobby olarak, bu tür yapılandırma ayarlarıyla ilgili daha fazla örnek ve kaynak kod paylaşımı yapmaya devam ediyoruz.
How to Configure Settings to Prevent GMs from Dropping Items on Ground
In private Metin2 servers, many configuration settings are crucial for ensuring security and balanced gameplay. One such setting involves controlling how GM (Game Master) staff can drop items within the game. In PvP-focused servers, allowing GMs to drop items on the ground might lead to economic imbalances or be perceived as cheating. Therefore, adjusting certain CONFIG settings to prevent GMs from dropping items on the ground is necessary.
What is a CONFIG File?
The CONFIG file holds significant importance in Metin2 server configurations, as it contains key parameters that define server behavior. These settings are typically defined in files like game/src/common/defines.h or game/src/client_pack/setting.py. When the server is compiled, these settings become active and shape in-game rules.
Controlling Item Drop Permissions
Many private Metin2 servers use custom-coded source code. In such codebases, GM commands and permissions are usually written in C++ or Python. The action of dropping an item on the ground is often executed via the /drop command. It's possible to disable this command entirely or restrict its usage to specific roles only.
How to Configure These Settings?
1. Settings in defines.h or Similar Config Files:
If a definition like #define ENABLE_GM_DROP_ITEM exists, you can set it to false to prevent GMs from dropping items. If not available, you can add permission checks directly into the DropItem() function in the C++ source code.
2. Python Script-Side Configuration:
Within Py ROOT files, usually in game.py or command.py, you can apply permission checks to the CMD_DROP command. For example:
if player.GetStatus() < ADMIN_LEVEL:
chat.AppendChat(1, 'You do not have permission to use this command.')
This ensures only users with a certain privilege level can execute the drop command.
Recompiling and Activating Server
After making the CONFIG adjustments, you must recompile your server. If both the game server and auth server are properly configured, once compilation completes, the settings will work in conjunction with files like server_info.lua. Ensure all file paths are correct to avoid errors during compilation.
Conclusion
To enhance security and reduce cheating risks in private Metin2 servers, limiting GM privileges is highly important. Controlling item drop permissions helps maintain in-game balance. At Metin2Lobby, we continue to provide more examples and source code related to such configuration settings.
