Hikayeler

Reklam vermek için turkmmo@gmail.com

GM İstediği Oyuncuya /b Duyuru Yetkisi Versin Sistemi (KANITLI)

  • Konuyu başlatan lTJA
  • Başlangıç tarihi
  • Cevaplar 3
  • Görüntüleme 390

lTJA

Level 3
Banlı
TM Üye
Katılım
2 Eyl 2023
Konular
28
Mesajlar
108
Online süresi
6g 82227s
Reaksiyon Skoru
85
Altın Konu
0
Başarım Puanı
59
TM Yaşı
2 Yıl 7 Ay 20 Gün
MmoLira
965
DevLira
15

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Sistem: https://forum.turkmmo.com/konu/3770...altyapi-server-files-v3-1-26-08-2022-yayinda/ üzerine Kurulmuştur

İstek: @XxZeMaHSeRxX


1. char.h
private:
bool m_bBroadcastPermission; // /b komutu yetkisi

public:
void SetBroadcastPermission(bool b) { m_bBroadcastPermission = b; }
bool HasBroadcastPermission() const { return m_bBroadcastPermission; }



2.char.cpp
CHARACTER::Initialize() fonksiyonu içinde bir yere şunu ekle:


m_bBroadcastPermission = false;

3. cmd_general.cpp

Dosyanın sonuna Ekle:

ACMD(do_set_bchat)
{
if (ch->GetGMLevel() < GM_HIGH_WIZARD) {
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komutu kullanamazsınız.");
return;
}

char arg1[256], arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));

if (!*arg1 || !*arg2) {
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /set_bchat <oyuncu> [on/off]");
return;
}

LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg1);
if (!tch) {
ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu bulunamadı.");
return;
}

if (!strcmp(arg2, "on")) {
tch->SetBroadcastPermission(true);
tch->ChatPacket(CHAT_TYPE_INFO, "Artık /b komutunu kullanabilirsiniz.");
ch->ChatPacket(CHAT_TYPE_INFO, "%s kullanıcısına yetki verildi.", tch->GetName());
} else if (!strcmp(arg2, "off")) {
tch->SetBroadcastPermission(false);
tch->ChatPacket(CHAT_TYPE_INFO, "Artık /b komutunu kullanamazsınız.");
ch->ChatPacket(CHAT_TYPE_INFO, "%s kullanıcısından yetki alındı.", tch->GetName());
} else {
ch->ChatPacket(CHAT_TYPE_INFO, "on ya da off yazılmalı.");
}
}

ACMD(do_broadcast)
{
if (!ch->HasBroadcastPermission()) {
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komutu kullanma yetkiniz yok.");
return;
}

if (!*argument) {
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /b <mesaj>");
return;
}

char buf[512];
snprintf(buf, sizeof(buf), "[DUYURU] %s: %s", ch->GetName(), argument);
BroadcastNotice(buf);
}

4. cmd.cpp
ACMD listesine ekle:

ACMD(do_set_bchat);
ACMD(do_broadcast);

cmd_info[] dizisine ekle

{ "set_bchat", do_set_bchat, 0, POS_DEAD, GM_HIGH_WIZARD },
{ "bchat", do_broadcast, 0, POS_DEAD, GM_PLAYER },


desc_client.cpp

En alta ekle (yoksa)

void BroadcastNotice(const char* msg)
{
DESC_MANAGER::instance().BroadcastNotice(msg);
}

Yetki vermek için:

/set_bchat ITJA on

Yetki almak için:

/set_bchat OyuncuAdi off

Yetki alan oyuncu şu komutu kullanabilir:

/bchat Etkinlik başlıyor!

KANIT:

 
Eline saglik baya iyi
 
Paylaşım için teşekkürler. İyi forumlar.
 
paylaşım için teşekkür ederim
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst