KAYNAK KOD Gameserver Üzerinden Renkli Notice Sistemi | /Clan /Ally /Gm Komutlarıyla Renkli Mesajlar

  • Konuyu Başlatan Konuyu Başlatan Prepective
  • Başlangıç tarihi Başlangıç tarihi
  • Okuma süresi: 2:56

Prepective

Admin
Admin
Moderatör
Puan 0
Çözümler 0
Katılım
18 Ocak 2025
Mesajlar
52
Tepkime puanı
2
Konum
Bursa
Web sitesi
ko-turkey.net
@Prepective
Konu Sahibi
Bu sistem sayesinde oyun içinden farklı sohbet kanallarına özel renkli notice mesajları gönderebilirsiniz.
Örneğin:


  • /gm ile mor renkte GM mesajı,
  • /party ile parti rengiyle notice,
  • /clan, /merchant, /shout gibi çeşitli stillerle mesaj paylaşımı mümkün.



🔧 1. GameServerDlg.h Dosyasına Aşağıdaki Fonksiyonları Ekleyin​

C++:
INLINE void SendNoticeClan(const char *msg, uint8 byNation = Nation::ALL) { SendChat<KNIGHTS_CHAT>(msg, byNation, true); }
INLINE void SendNoticeAlly(const char *msg, uint8 byNation = Nation::ALL) { SendChat<ALLIANCE_CHAT>(msg, byNation, true); }
INLINE void SendNoticeCommand(const char *msg, uint8 byNation = Nation::ALL) { SendChat<COMMAND_CHAT>(msg, byNation, true); }
INLINE void SendNoticePart(const char *msg, uint8 byNation = Nation::ALL) { SendChat<PARTY_CHAT>(msg, byNation, true); }
INLINE void SendNoticeAllChat(const char *msg, uint8 byNation = Nation::ALL) { SendChat<GENERAL_CHAT>(msg, byNation, true); }
INLINE void SendNoticeShout(const char *msg, uint8 byNation = Nation::ALL) { SendChat<SHOUT_CHAT>(msg, byNation, true); }
INLINE void SendNoticeMerchant(const char *msg, uint8 byNation = Nation::ALL) { SendChat<MERCHANT_CHAT>(msg,byNation, true); }
INLINE void SendNoticeGMChat(const char *msg, uint8 byNation = Nation::ALL) { SendChat<GM_CHAT>(msg, byNation, true); }



🧱 2. Komut Tablonuza Handler’ları Ekleyin​


static ServerCommandTable s_commandTable; satırının hemen altına:

C++:
COMMAND_HANDLER(HandleClanCommand);
COMMAND_HANDLER(HandleAllyCommand);
COMMAND_HANDLER(HandleCapCommand);
COMMAND_HANDLER(HandlePartCommand);
COMMAND_HANDLER(HandleAllCommand);
COMMAND_HANDLER(HandleShoutCommand);
COMMAND_HANDLER(HandleMerchantCommand);
COMMAND_HANDLER(HandleGMCommand);



💬 3. ChatHandler.cpp İçinde Komut Listesine Ekleyin​

C++:
{ "clan",     &CGameServerDlg::HandleClanCommand,     "Sends a server-wide clan notice." },
{ "ally",     &CGameServerDlg::HandleAllyCommand,     "Sends a server-wide ally notice." },
{ "kaptan",   &CGameServerDlg::HandleCapCommand,      "Sends a captain notice." },
{ "party",    &CGameServerDlg::HandlePartCommand,     "Sends a party notice." },
{ "all",      &CGameServerDlg::HandleAllCommand,      "Sends a general notice." },
{ "shout",    &CGameServerDlg::HandleShoutCommand,    "Sends a shout message." },
{ "merchant", &CGameServerDlg::HandleMerchantCommand, "Sends a merchant message." },
{ "gm",       &CGameServerDlg::HandleGMCommand,       "Sends a GM chat message." },



⚙️ 4. Chat Komutlarının Fonksiyonlarını En Alta Ekleyin​

COMMAND_HANDLER(CGameServerDlg::HandleClanCommand) {
if (vargs.empty()) return true;
SendNoticeClan(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandleAllyCommand) {
if (vargs.empty()) return true;
SendNoticeAlly(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandleCapCommand) {
if (vargs.empty()) return true;
SendNoticeCommand(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandlePartCommand) {
if (vargs.empty()) return true;
SendNoticePart(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandleAllCommand) {
if (vargs.empty()) return true;
SendNoticeAllChat(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandleShoutCommand) {
if (vargs.empty()) return true;
SendNoticeShout(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandleMerchantCommand) {
if (vargs.empty()) return true;
SendNoticeMerchant(args);
return true;
}

COMMAND_HANDLER(CGameServerDlg::HandleGMCommand) {
if (vargs.empty()) return true;
SendNoticeGMChat(args);
return true;
}


🎨 Renk/Tip Karşılıkları​

KomutRenk/Tür Açıklaması
/clanKlan sohbet (mavi-yeşil tonları)
/allyİttifak sohbeti
/kaptanKomutan mesajı (savaş zamanı)
/partyParti sohbeti (yeşil)
/allGenel sohbet (beyaz)
/shoutShout (bölgeye hitap - sarı)
/merchantPazar modu mesajı
/gmGM mesajı (mor renkte çıkar)

✅ Örnek Kullanım​


GameServer komut satırına:


Bash:
/gm Sunucu 5 dakika sonra yeniden başlatılacaktır.

Oyuncuların ekranında mor renkte çıkacaktır:

Markdown (GitHub flavored):
[GM]: Sunucu 5 dakika sonra yeniden başlatılacaktır.
 
Geri
Üst