KAYNAK KOD Gm Girişte Notice Geçirme Sistemi | Oyunculara Gm Bilgilendirme

  • Konuyu Başlatan Konuyu Başlatan Prepective
  • Başlangıç tarihi Başlangıç tarihi
  • Okuma süresi: 1:08

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, bir GM karakter oyuna giriş yaptığında, diğer tüm oyuncuların ekranına "GM giriş yaptı" şeklinde otomatik olarak notice mesajı düşer.


Sunucunun yönetimsel ciddiyetini artırır ve oyunculara güven verir.




✅ Fonksiyon:​


Aşağıdaki fonksiyon, aktif oturumları kontrol eder, online olan GM'leri tarar ve tüm oyunculara adlarını notice olarak gönderir:
C++:
void CUser::GMList()
{
    Packet result(WIZ_NOTICE, uint8(4));
    uint8 pCount = 0;

    result << pCount;

    SessionMap sMap = g_pMain->m_socketMgr.GetActiveSessionMap();
    foreach (itr, sMap)
    {
        CUser* pUser = TO_USER(itr->second);
        if (pUser == nullptr)
            continue;

        if (pUser->isGM()) // Sadece GM'leri dahil eder
        {
            result << pUser->GetName();
            pCount++;
        }
    }

    result.put(1, pCount); // Paket içine gerçek GM sayısını yazar
    Send(&result); // Notice gönderilir
}


🔍 Ne Yapar?​


  • Aktif oturumdaki tüm kullanıcıları tarar
  • GM yetkisine sahip olanların adını toplar
  • GM sayısını ve isimlerini WIZ_NOTICE tipiyle oyuncuya gönderir


  • 📝 Notlar​

    • WIZ_NOTICE → Oyuncunun ekranının üst kısmında bilgi mesajı (beyaz notice) gösterir
    • uint8(4) → Notice mesajının alt türüdür (genelde isim listesi için kullanılır)
    • result.put(1, pCount) → İlk pCount sahte değerdi, 1. byte’a gerçek sayıyı yazar
    • foreach → SocketManager'daki aktif oyuncuları döner
 
Geri
Üst