- Mesaj
- 8
- Beğeni
- 6
- Puan
- 440
- Ticaret Puanı
- 0
GM Komut Yetki Sistemi (İsim Bazlı Koruma)
Bu değişiklik, sunucunuzdaki "Kritik" Game Master (GM) komutlarını sadece belirlediğiniz isimlerin kullanabilmesini sağlar.
================================================================================
SISTEM NASIL CALISIR?
================================================================================
Sunucu kaynak kodlarında (cmd_gm.cpp ve cmd_general.cpp), komutların en başına bir isim kontrolü eklenir. Eğer komutu yazan kişinin ismi listenizdeki isimle ([GM]TEST gibi) eşleşmiyorsa, sistem komutu çalıştırmaz ve hata mesajı verir.
================================================================================
KURULUM REHBERI (ADIM ADIM)
================================================================================
--------------------------------------------------------------------------------
1. DOSYA: Game Source/Server/game/src/cmd_gm.cpp
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2. DOSYA: Game Source/Server/game/src/cmd_general.cpp
--------------------------------------------------------------------------------
================================================================================
KORUMA ALTINA ALINABILECEK KOMUTLAR VE ISLEVLERI
================================================================================
Aşağıdaki komutları da aynı mantıkla korumaya alabilirsiniz:
Bu değişiklik, sunucunuzdaki "Kritik" Game Master (GM) komutlarını sadece belirlediğiniz isimlerin kullanabilmesini sağlar.
================================================================================
SISTEM NASIL CALISIR?
================================================================================
Sunucu kaynak kodlarında (cmd_gm.cpp ve cmd_general.cpp), komutların en başına bir isim kontrolü eklenir. Eğer komutu yazan kişinin ismi listenizdeki isimle ([GM]TEST gibi) eşleşmiyorsa, sistem komutu çalıştırmaz ve hata mesajı verir.
KURULUM REHBERI (ADIM ADIM)
================================================================================
--------------------------------------------------------------------------------
1. DOSYA: Game Source/Server/game/src/cmd_gm.cpp
--------------------------------------------------------------------------------
Dosyanın en üstüne (Include'ların altına) ekleyin::
static const char* kAUTHORIZED_EXECUTORS[] = {
"[GM]TEST", //buradaki İSMİ KENDİNİZE GÖRE AYARLAYINIZ AYNI ŞEKİLDE ALTINA BİRDEN FAZLA İSİM YAZILABİLİR
nullptr
};
static bool IsAuthorizedExecutor(const char* name)
{
for (int i = 0; kAUTHORIZED_EXECUTORS[i]; ++i)
if (strcmp(name, kAUTHORIZED_EXECUTORS[i]) == 0)
return true;
return false;
}
Komutlara Eklenecek kontrol:
if (!IsAuthorizedExecutor(ch->GetName()))
{
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komut engellendi.");
return;
}
Örnek olarak /item Komutu İçin Uygulama::
Arat:
ACMD(do_item)
{
char arg1[256], arg2[256];
Değiştir:
ACMD(do_item)
{
if (!IsAuthorizedExecutor(ch->GetName()))
{
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komut engellendi.");
return;
}
char arg1[256], arg2[256];
2. DOSYA: Game Source/Server/game/src/cmd_general.cpp
--------------------------------------------------------------------------------
Dosyanın en üstüne (Include'ların altına) ekleyin::
static const char* kAUTHORIZED_EXECUTORS[] = {
"[GM]TEST", //buradaki İSMİ KENDİNİZE GÖRE AYARLAYINIZ AYNI ŞEKİLDE ALTINA BİRDEN FAZLA İSİM YAZILABİLİR
nullptr
};
static bool IsAuthorizedExecutor(const char* name)
{
for (int i = 0; kAUTHORIZED_EXECUTORS[i]; ++i)
if (strcmp(name, kAUTHORIZED_EXECUTORS[i]) == 0)
return true;
return false;
}
/shutdown Komutu İçin Uygulama::
Arat:
ACMD(do_shutdown)
{
Altına Ekle
if (ch && !IsAuthorizedExecutor(ch->GetName()))
{
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komut engellendi.");
return;
}
================================================================================
KORUMA ALTINA ALINABILECEK KOMUTLAR VE ISLEVLERI
================================================================================
Aşağıdaki komutları da aynı mantıkla korumaya alabilirsiniz:
Kod:
KOMUT ISLEV
------------- -----------------------------------------------------------------
Oyun Icı Komut | Dosyadaki Kod Karşılığı | Komutun İşlevi
-------------- | ----------------------- | -----------------------------------
/shutdown | ACMD(do_shutdown) | Sunucuyu güvenli şekilde kapatır.
/disconnect | ACMD(do_disconnect) | Oyuncuyu oyundan atar (DC).
/reload | ACMD(do_reload) | Dosya yetki/item ayarlarını yeniler.
/set | ACMD(do_set) | Karakter verilerini düzenler.
/item | ACMD(do_item) | VNUM kodu ile eşya üretir.
/mob | ACMD(do_mob) | Yanınıza canavar/NPC çağırır.
|/level | ACMD(do_level) | Oyuncunun seviyesini değiştirir.
/advance | ACMD(do_advance) | Seviye atlatır.
/event_flag | ACMD(do_event_flag) | Etkinlik ayarlarını yönetir.
/notice | ACMD(do_notice) | Tüm sunucuya duyuru geçer.
/big_notice | ACMD(do_big_notice) | Ekran ortasında büyük duyuru yapar.
/makeguild | ACMD(do_makeguild) | Manuel lonca kurar.
/deleteguild | ACMD(do_deleteguild) | Loncayı siler.
/gwlist | ACMD(do_gwlist) | Savaş listesini gösterir.
/stop_guild_war| ACMD(do_stop_guild_war) | Mevcut lonca savaşını bitirir.
/xmas | ACMD(do_xmas) | Etkinlik süslemelerini yönetir.
.