C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Sstem Yük Sistemi [C++]

  • Konuyu başlatan Konuyu başlatan kaya4572
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 545

kaya4572

ITJA
TC Kimlik Numarası Doğrulanmış Üye
Banlı
TM Üye
Katılım
23 Haz 2010
Konular
62
Mesajlar
330
Online süresi
1mo 1d
Reaksiyon Skoru
208
Altın Konu
0
Başarım Puanı
149
Yaş
28
MmoLira
4,661
DevLira
51
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Özellikler:​


Oyuncular komutla sunucudaki anlık bilgileri alabilir:Online oyuncu sayısı Server uptime süresi sadece game tarafında çalışır. get_dword_time() ile süre hesaplanır.


cmd.cpp Komut tanımı:

[CODE title="cmd.cpp"]ACMD(do_serverload);

KOMUT TARAFINA //

{ "sunucuyuk", do_serverload, 0, POS_DEAD, GM_PLAYER },



[/CODE]

cmd_general.cpp

[CODE title="cmd_general.cpp"]DWORD g_server_start_time = get_dword_time(); // Dosya üstüne eklenmeli

ACMD(do_serverload)
{
DWORD current = get_dword_time();
DWORD uptime_ms = current - g_server_start_time;

int uptime_sec = uptime_ms / 1000;
int uptime_min = uptime_sec / 60;
int uptime_hour = uptime_min / 60;

int online_count = CHARACTER_MANAGER::instance().GetCount();

ch->ChatPacket(CHAT_TYPE_INFO, " Anlık Sunucu Yükü:");
ch->ChatPacket(CHAT_TYPE_INFO, " Online Oyuncu Sayısı: %d", online_count);
ch->ChatPacket(CHAT_TYPE_INFO, " Uptime: %d saat %d dakika", uptime_hour, uptime_min % 60);
}[/CODE]

get_dword_time() Fonksiyonu (Yoksa utils.cpp/h içine ekle)

Kod:
// utils.h
DWORD get_dword_time();

// utils.cpp
DWORD get_dword_time()
{
    struct timeval tv;
    gettimeofday(&tv, NULL);
    return (tv.tv_sec * 1000 + tv.tv_usec / 1000);
}
 
Buna yük testi demek doğru olmaz, zaten /u komutu da coredaki oyuncu sayısını veriyor.

Ayrıca bu sadece tek core için çalışır, oyunda N tane ch ve M tane core var ise hepsinde ayrı ayrı çalıştırılması gerekir. Örneğin Ch1 kapandı ve vrunner ile tekrar başladı ise ch2'den komut çalıştırıldığında bu görülemez.

Fikir güzel ama iyileştirilmesi gerekli, paylaşım için teşekkürler.
 
Eline sağlık
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst