Puan
0
Çözümler
0
- Katılım
- 18 Ocak 2025
- Mesajlar
- 52
- Tepkime puanı
- 2
- Konum
- Bursa
- Web sitesi
- ko-turkey.net
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.
Aşağıdaki fonksiyon, aktif oturumları kontrol eder, online olan GM'leri tarar ve tüm oyunculara adlarını notice olarak gönderir:
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