Knight Online ChatHandler.cpp Nedir? | GM Komutları ve Chat Sistemi Rehberi
admin
Katılım
23 Eki 2022
Mesajlar
9,661
Çözümler
14
Tepkime puanı
9,165
Puanları
113
Yaş
28

Knight Online ChatHandler.cpp Nedir? | GM Komutları ve Chat Sistemi

ChatHandler.cpp, Knight Online private server source içerisinde oyuncuların sohbet mesajlarını ve GM komutlarını işleyen önemli C++ kaynak dosyalarından biridir. Özellikle Knight Online 1886 server source gibi açık kaynak projelerde ChatHandler.cpp dosyası üzerinden chat sistemi, komutlar ve bazı yönetici işlemleri incelenebilir.

ChatHandler.cpp Ne İşe Yarar?

ChatHandler.cpp, GameServer içerisinde client tarafından gönderilen mesajların işlenmesinde kullanılır.

Dosya içerisinde genellikle:

  • Genel chat
  • Private message
  • Party chat
  • Shout chat
  • Clan chat
  • GM chat
  • GM komutları
  • Chat packet işlemleri
  • Komut kontrolü
gibi sistemlerle ilgili kodlar bulunabilir.

Kullanılan source'a göre fonksiyonların ve komutların isimleri değişebilir.

Knight Online Chat Sistemi

Oyuncu oyun içerisinde bir mesaj gönderdiğinde client tarafından server'a bir packet gönderilir. GameServer bu packet içerisindeki bilgileri işleyerek mesajın hangi chat kanalında gönderileceğini belirler.

Örneğin genel chat mesajları belirli bir bölgedeki oyunculara gönderilirken, party chat mesajları yalnızca aynı party içerisindeki oyunculara gönderilebilir.

Bu nedenle ChatHandler.cpp, Knight Online server source içerisinde chat packetlerinin işlenmesi ve doğru oyunculara iletilmesi açısından önemli bir dosyadır.

GM Komutları

ChatHandler.cpp içerisinde bazı server source'larında GM veya administrator komutları da bulunabilir.

Örneğin source'a göre:

ban
summon
teleport
item
event
notice
monster

gibi yönetim komutları tanımlanabilir.

Komutun kullanılabilmesi için genellikle oyuncunun GM veya gerekli authority seviyesine sahip olup olmadığı kontrol edilir.

COMMAND_HANDLER Yapısı

Bazı Knight Online source projelerinde GM komutlarının yönetimi için COMMAND_HANDLER benzeri macro veya handler yapıları kullanılabilir.

Örneğin mantıksal olarak:

COMMAND_HANDLER(command_name)
{
// command işlemleri
}

şeklinde bir yapı görülebilir.

Bu sistem sayesinde chat üzerinden gönderilen belirli komutlar ilgili C++ fonksiyonuna yönlendirilebilir.

Kullanılan source'a göre macro adı ve implementation tamamen farklı olabilir.

Region ve Chat Kontrolleri

Chat sistemlerinde oyuncuların mesajı kimlerin görebileceği de kontrol edilir.

Örneğin:

General Chat:
Aynı region içerisindeki oyunculara gönderilebilir.

Party Chat:
Yalnızca aynı party içerisindeki oyunculara gönderilebilir.

Clan Chat:
Aynı clan içerisindeki oyunculara gönderilebilir.

Private Message:
Belirlenen oyuncuya özel olarak gönderilir.

Bu kontroller ChatHandler.cpp veya source içerisinde kullanılan diğer chat/network sınıfları üzerinden gerçekleştirilebilir.

ChatHandler.cpp Nerede Bulunur?

Knight Online source projelerinde dosyanın konumu kullanılan proje yapısına göre değişebilir.

Örneğin bazı açık kaynak projelerde:

src/
└── GameServer/
└── ChatHandler.cpp

şeklinde bulunabilir.

KnightOnline-1886 gibi açık kaynak server projelerinde bu dosyayı inceleyerek chat ve GM command sisteminin nasıl uygulandığını görebilirsiniz.

ChatHandler.cpp Nasıl Düzenlenir?

GM komutu eklemek veya mevcut bir komutu değiştirmek istiyorsanız öncelikle kullanılan source'un command handler yapısını incelemeniz gerekir.

Genel olarak işlem sırası şöyledir:

  1. ChatHandler.cpp dosyasını açın.
  2. Mevcut GM command yapılarını inceleyin.
  3. Komutun nasıl parse edildiğini kontrol edin.
  4. Authority veya GM level kontrolünü inceleyin.
  5. Yeni komut için uygun handler oluşturun.
  6. Gerekli server fonksiyonunu çağırın.
  7. GameServer source'unu yeniden compile edin.
  8. Test server üzerinde komutu test edin.
Kod yapısı kullanılan Knight Online source sürümüne göre farklılık gösterebilir.

Sonuç

ChatHandler.cpp, Knight Online private server source içerisinde chat sistemi, packet işlemleri ve GM komutlarının yönetilmesinde kullanılan önemli dosyalardan biridir.

Özellikle Knight Online 1886 source, private server development, GM command development ve chat system üzerinde çalışıyorsanız bu dosya, server içerisindeki komut ve mesaj sistemini anlamak için başlangıç noktalarından biri olabilir.

Kaynak kodu incelerken kullandığınız source sürümünün yapısını dikkate almanız önemlidir; farklı Knight Online source projelerinde ChatHandler.cpp içerisindeki fonksiyonlar, macro'lar ve command sistemleri birbirinden farklı olabilir.
 
Üst
Reklam Ver
R10dev.net'i ana ekrana ekle!