ITJA
Member
cmd_general.cpp
do_chatban – Yetkili oyuncu ban atar
cmd_general.cpp
cmd_genaral.cpp
cmd.cpp
input_main.cpp
GM olarak:
/chatban_auth ITJA
Yetkili oyuncu olarak:
/chatban ITJA 10
GM olarak yetkiyi kaldırmak için:
/chatban_revoke ITJA
Ek Olarak:
Chat yasağını kaldırmak için kod satırı
cmd_genaral.cpp
cmd.cpp:
Code:
ACMD(do_chatban_auth)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
if (!*arg1)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /chatban_auth <karakter_ismi>");
return;
}
LPCHARACTER target = CHARACTER_MANAGER::instance().FindPC(arg1);
if (!target)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu bulunamadı.");
return;
}
target->SetQuestFlag("chatban.authorized", 1);
ch->ChatPacket(CHAT_TYPE_INFO, "%s artık chat ban yetkilisi oldu.", target->GetName());
target->ChatPacket(CHAT_TYPE_INFO, "Artık chat ban yetkisine sahipsiniz. /chatban komutunu kullanabilirsiniz.");
}
do_chatban – Yetkili oyuncu ban atar
cmd_general.cpp
Code:
ACMD(do_chatban)
{
char arg1[256];
char arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
if (!*arg1 || !*arg2)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /chatban <karakter_ismi> <süre_dk>");
return;
}
// GM değilse yetki kontrolü
if (ch->GetGMLevel() < GM_HIGH_WIZARD && ch->GetQuestFlag("chatban.authorized") != 1)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komutu kullanmak için yetkiniz yok.");
return;
}
LPCHARACTER victim = CHARACTER_MANAGER::instance().FindPC(arg1);
if (!victim)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu bulunamadı.");
return;
}
int duration = atoi(arg2);
if (duration <= 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Geçersiz süre.");
return;
}
time_t banEnd = get_global_time() + (duration * 60);
victim->SetQuestFlag("chatban.end_time", banEnd);
victim->ChatPacket(CHAT_TYPE_INFO, "Sohbet hakkınız %d dakika boyunca engellendi.", duration);
ch->ChatPacket(CHAT_TYPE_INFO, "%s oyuncusuna %d dakika chat ban uyguladınız.", victim->GetName(), duration);
}
cmd_genaral.cpp
Code:
ACMD(do_chatban_revoke)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
if (!*arg1)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /chatban_revoke <karakter_ismi>");
return;
}
LPCHARACTER target = CHARACTER_MANAGER::instance().FindPC(arg1);
if (!target)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu bulunamadı.");
return;
}
target->SetQuestFlag("chatban.authorized", 0);
ch->ChatPacket(CHAT_TYPE_INFO, "%s artık chat ban yetkisine sahip değil.", target->GetName());
target->ChatPacket(CHAT_TYPE_INFO, "Chat ban yetkiniz kaldırıldı.");
}
cmd.cpp
Code:
{ "chatban", do_chatban, GM_PLAYER },
{ "chatban_auth", do_chatban_auth, GM_HIGH_WIZARD },
{ "chatban_revoke", do_chatban_revoke, GM_HIGH_WIZARD },
input_main.cpp
Code:
if (ch->GetQuestFlag("chatban.end_time") > get_global_time())
{
ch->ChatPacket(CHAT_TYPE_INFO, "Sohbet yasağınız devam ediyor.");
return;
}
GM olarak:
/chatban_auth ITJA
ITJA artık yetkili oldu.
Yetkili oyuncu olarak:
/chatban ITJA 10
ITJA Oyuncusu 10 dakika boyunca sohbet edemez.
GM olarak yetkiyi kaldırmak için:
/chatban_revoke ITJA
ITJAnın yetkisi geri alınır.
Ek Olarak:
Chat yasağını kaldırmak için kod satırı
cmd_genaral.cpp
Code:
ACMD(do_chatunban)
{
char name[256];
one_argument(argument, name, sizeof(name));
if (!*name) {
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /chatunban <oyuncu>");
return;
}
if (ch->GetQuestFlag("chatban.isAuthorized") != 1 && ch->GetGMLevel() < GM_LOW_WIZARD) {
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komutu kullanma yetkiniz yok.");
return;
}
LPCHARACTER victim = CHARACTER_MANAGER::instance().FindPC(name);
if (!victim) {
ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu bulunamadı.");
return;
}
victim->SetQuestFlag("chatban.end_time", 0);
victim->SetQuestFlag("chatban.isBanned", 0);
victim->SetQuestFlag("chatban.reason", "");
ch->ChatPacket(CHAT_TYPE_INFO, "%s adlı oyuncunun chat yasağı kaldırıldı.", victim->GetName());
victim->ChatPacket(CHAT_TYPE_INFO, "Chat yasağınız kaldırıldı.");
}
cmd.cpp:
Code:
ACMD(do_chatunban);
TCommandInfo command_info[] = {
{ "chatunban", do_chatunban, GM_PLAYER, POS_DEAD, 0, NULL },
// ...
};