- #1
Konu Sahibi
: serkankacan
[C++ REHBER] Knight Online v1886 / v19xx Oyuna Giriş Sarı Chat Notice
Karakter Oyuna Girdiğinde Sol Altta Sarı Renkte Hoş Geldiniz & Sunucu Saati Bildirimi Geçme
Karakter Oyuna Girdiğinde Sol Altta Sarı Renkte Hoş Geldiniz & Sunucu Saati Bildirimi Geçme
Merhaba değerli forum sakinleri,
Oyuncularınız oyuna giriş yaptığında (UserInOut / SendMyInfo aşamasında) sol alt sohbet penceresinde hem hoş geldiniz mesajını hem de anlık sunucu saatini **Sarı (Notice/System)** renginde iletmek istiyorsanız bu rehber tam size göre.
Teknik Bilgilendirme' Alıntı:StandartPUBLIC_CHATveyaGENERAL_CHATpaketleri istemcide beyaz/gri renk çıktısı verir. Sol altta göz alıcı **Sarı** renkli sistem mesajı düşürmek için paket alt tipi olarakWAR_SYSTEM_CHATkullanılır.
1. ADIM: User.h Fonksiyon Tanıtımı
GameServer / User.h dosyanızı açın ve uygun bir satıra (örneğin `public:` fonksiyonlarının altına) prototipi ekleyin:
C++:
// Oyuna giriş sarı bildirim fonksiyonu
void GirisNotice();
2. ADIM: User.cpp Fonksiyon Gövdesi
GameServer / User.cpp dosyanızın en altına aşağıdaki optimize edilmiş fonksiyonu ekleyin:
C++:
void CUser::GirisNotice()
{
// 1. Sistem anlık zamanını çekiyoruz
DateTime time = DateTime::Get();
// 2. Gönderilecek metinleri hazırlıyoruz
std::string strServerName = "Biteko Gaming'e Hoş Geldiniz!";
std::string strServerTime = string_format("[Sunucu Saati]: %04d-%02d-%02d %02d:%02d:%02d",
time.GetYear(), time.GetMonth(), time.GetDay(),
time.GetHour(), time.GetMinute(), time.GetSecond());
std::string strWelcome = string_format("Keyifli oyunlar dileriz, sayın %s.", GetName().c_str());
// -------------------------------------------------------------------
// SARI RENKLİ BİLDİRİM PAKETLERİ (WAR_SYSTEM_CHAT = Sarı Renk)
// -------------------------------------------------------------------
// Paket 1: Hoşgeldiniz Başlığı
Packet noticeServer(WIZ_CHAT, uint8(WAR_SYSTEM_CHAT));
noticeServer << GetNation() << GetSocketID() << uint8(0) << strServerName;
Send(¬iceServer);
// Paket 2: Oyuncu Özel Karşılama
Packet noticeUser(WIZ_CHAT, uint8(WAR_SYSTEM_CHAT));
noticeUser << GetNation() << GetSocketID() << uint8(0) << strWelcome;
Send(¬iceUser);
// Paket 3: Anlık Saat Bilgisi
Packet noticeTime(WIZ_CHAT, uint8(WAR_SYSTEM_CHAT));
noticeTime << GetNation() << GetSocketID() << uint8(0) << strServerTime;
Send(¬iceTime);
}
3. ADIM: Fonksiyonu Oyuna Giriş Anında Çağırma
Karakterin dünyaya giriş paketleri tamamlandıktan hemen sonra fonksiyonun tetiklenmesi için:
- User.cpp dosyasında
void CUser::SendMyInfo()veyavoid CUser::UserInOut(uint8 bType)fonksiyonunu açın. - Fonksiyonun en alt satırına (tüm veriler istemciye yollandıktan sonra) şu satırı ekleyin:
C++:
// Karakter oyuna girdiğinde sarı bildirimi gönder
GirisNotice();
Chat Türü Alternatifleri
Eğer rengi sarıdan farklı bir renge çevirmek isterseniz
WAR_SYSTEM_CHAT yerine şu sabitleri kullanabilirsiniz:| Sabit Adı | Görünüm Rengi | Açıklama |
|---|---|---|
| WAR_SYSTEM_CHAT | Sarı | Sol altta dikkat çeken sarı sistem bildirimi (Önerilen) |
| PUBLIC_CHAT | Beyaz / Gri | Standart genel chat satırı |
| COMMAND_CHAT | Yeşil | Komut / notice yeşil bildirim rengi |
Derleme ve Test:
Kodları kaydettikten sonra Visual Studio'da GameServer projenizi **Build/Rebuild** edin. Karakterle oyuna giriş yaptığınızda sol alt sohbet kutusunda hoş geldiniz mesajlarının ve sunucu saatinin sarı renkte aktığını göreceksiniz.
İyi forumlar ve keyifli geliştirmeler!

