İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

Knight Online Oyuna Girişte Otomatik Karşılama & Bilgilendirme Mesajı

Cevaplar0
Görüntüleme1
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
145
Tepkime puanı
24
Puanları
0
Mevcut Bakiye
3975 ₺
[KAYNAK KOD & GELİŞTİRME] Knight Online Oyuna Girişte Otomatik Karşılama & Bilgilendirme Mesajı
CUser (User.cpp / User.h) Üzerinden Girişte Oyuncuya Özel Whisper, Sistem Duyurusu ve Sunucu Saati Bildirimi​



Merhaba değerli forum sakinleri,

Knight Online sunucularında (v1299, v1534, v19xx, v2xxx) oyuncu oyuna ilk adım attığında sunucu kurallarını, Discord/Web adresini, anlık sunucu saatini ve kişiye özel bir karşılama mesajını chat penceresine otomatik olarak iletmek profesyonel bir sunucu intibası bırakır.

Sorun & Optimizasyon Farkı:
Paylaşılan ham kodda:
  • Metin içinde "Whisper ile gönderme" denmesine rağmen paket türü olarak GENERAL_CHAT ve PUBLIC_CHAT kullanılmıştır; bu durum mesajın sadece o oyuncuya değil, çevredeki diğer oyunculara da gereksiz chat spam'i yapmasına neden olabilir.
  • HTML karakter hataları (<<, &) derleme (compile) esnasında C++ sözdizimi hatalarına yol açar.
  • CUser::UserInOut içerisindeki doğru tetikleme noktası belirtilmediği için fonksiyon çağrılmadığında çalışmaz.

Aşağıda hem doğrudan kişiye özel özel mesaj (WHISPER veya WAR_SYSTEM_CHAT) modlarıyla optimize edilmiş fonksiyonu hem de çağrılması gereken doğru entegrasyon yerini bulabilirsiniz.

Teknik Bilgilendirme & Paket Türleri' Alıntı:
DİKKAT:
  • Kişiye Özel Mesaj (ChatType): Karşılama mesajlarının sadece giren oyuncuya görünmesi için WAR_SYSTEM_CHAT (Sarı Sistem Yazısı) veya WHISPER kullanılır; böylece çevreye genel chat paketi saçılmaz.
  • DateTime / Sunucu Saati: Sunucu makinesinin yerel saatini formatlayarak oyuncunun zaman farkını görmesini sağlar.
  • İşlem öncesinde **Ebenzer / GameServer** kaynak dosyalarınızın yedeğini almayı unutmayınız.



1. ADIM: User.h Başlık Dosyasına Fonksiyon Tanımı

Projenizdeki **User.h** dosyasını açın ve `public:` bloğu altına fonksiyon prototipini ekleyin:





2. ADIM: User.cpp Dosyasına Fonksiyon Kodunun Eklenmesi

**User.cpp** dosyasını açıp en alta (veya uygun bir metot bloğuna) aşağıdaki optimize edilmiş C++ fonksiyonunu yapıştırın:





3. ADIM: Fonksiyonun Oyuna Giriş Anında Çağrılması

Mesajların karakter haritaya tamamen yüklendiğinde görünmesi için **User.cpp** içerisinde **CUser::UserInOut** fonksiyonunu bulun:





Nasıl Derlenir & Test Edilir?

  1. Değişiklikleri kaydettikten sonra Visual Studio üzerinden **GameServer** projenizi derleyin (Build / Rebuild).
  2. Derlenen GameServer.exe dosyasını sunucu klasörünüze atıp çalıştırın.
  3. Oyuna herhangi bir karakterle giriş yapın.
  4. Harita yüklendiği anda chat pencerenizde sarı sistem yazısıyla adınıza özel karşılama metninin, sunucu saatinin ve SYSTEM adıyla gelen özel mesajın belirdiğini doğrulayın.

Sorularınızı ve farklı chat türleri ile bildirim gönderme taleplerinizi konu altından paylaşabilirsiniz. Herkese keyifli kodlamalar!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 28,911 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,373
Mesajlar 4,353
Kullanıcılar 1,670
Son üye Canbey
Geri
Üst