Eklenti Yapımcısı: Berk
Eklentinin Sürümü: 1.0
Eklenti Hakkında: Serverdeki online sayisini serverin adına koyar ve bunu çok stabil olarak yapar.
Ekran Görüntüsü:
Eklenti Dosyası:
Oyuncu sayısını bulmak için komudun arka planında
for(new i=0;i<32;i++) döngüsü vardır.
i=0 işlemi 1 defa
i<32 kontrolu 33 defa
i++ işlemi 32 defa yaptırılıyor.
server cmd işlemi de 1 defa.
Yani bmGuncelle fonksiyonun maliyeti : 67
oyuncu oyuna girdiğinde : set_task + bmgüncelle fonkksiyonu çağrılıyor : 2 işlem.
1 birim saniyede N oyuncu oyuna girdiğinde kodun maliyeti : N*67+2 = 67N+2
Orijinal eklentide ise :
Oyuncu sayısını bulmak için komudun arka planında
for(new i=0;i<32;i++) döngüsü vardır.
i=0 işlemi 1 defa
i<32 kontrolu 33 defa
i++ işlemi 32 defa yaptırılıyor.
server cmd işlemi de 1 defa.
Yani devam fonksiyonun maliyeti : 67
oyuncu oyuna girdiğinde : remove_task + set_task + devam fonksiyonu çağrılıyor : 3 işlem.
1 birim saniyede N oyuncu oyuna girdiğinde : N+67+3 = N+70
(Burda çarpma işlemine koymamamızın sebebi 2 oyuncu aynı anda girdiği anda ikinci giren oyuncu birinci girenin set_task ettirdiği işlemi remove_task ettirmesi.)
#include <amxmodx>
#define SERVERISMI "WEBDIYO"
public devam() {
new nd[128];
formatex(nd, charsmax(nd), "[%d/32] %s",get_playersnum(), SERVERISMI);
server_cmd("hostname ^"%s^"",nd);
message_begin(MSG_BROADCAST,get_user_msgid("ServerName"));
write_string(nd);
message_end();
}
public client_putinserver(id) remove_task(1337),set_task(1.0,"devam",1337);
public client_disconnected(id) remove_task(1337),set_task(1.0,"devam",1337);
public plugin_init() register_plugin("host", "1.0", "nd");
(28-02-2019, Saat: 16:34)javandroid Adlı Kullanıcıdan Alıntı: set_task 0.5' in mantığını açıkçası tam anlayamadım. Acaba eklentinin orijinalinde set task vardı da ondan mı set task eklediniz yoksa giren oyuncunun tabda görünmesini beklemek amacıyla mı. Bu amaçlaysa sanırım gereksiz. Çünkü Client putin server fonksiyonu calıştığında giren oyuncu zaten tabda bulunuyor. Ayrıca çok stabil demişsiniz, sanırım basit düşünüyorsunuz.remove_task'ı eklemedim çünkü taska girdikten sonra bir oyuncu girerse zaten task tamamlandığı için boşuna kaldırmak istemedim 0.5 saniye farkla maximum oyuncu girme anı mapin açılışın ilk anıdır onu engelleyebilriz, iyi forumlar.
Iki kodu algoritma analizine sokarsak:
Sizinki 67*N+2' lik bir verimle çalışırken eklentinin orijinali 2*N+70 verimle çalışıyor. Yani aynı anda birden fazla oyuncu girerse orijinal eklenti daha verimli oluyor fakat genele vurursak sizinki daha verimli oluyor. 10/32'lik bir serverde farklı bir map açıldığını farz edelim. N yerine 10 bile koysak ciddi fark yaratıyor.Kod:Oyuncu sayısını bulmak için komudun arka planında
for(new i=0;i<32;i++) döngüsü vardır.
i=0 işlemi 1 defa
i<32 kontrolu 33 defa
i++ işlemi 32 defa yaptırılıyor.
server cmd işlemi de 1 defa.
Yani bmGuncelle fonksiyonun maliyeti : 67
oyuncu oyuna girdiğinde : set_task + bmgüncelle fonkksiyonu çağrılıyor : 2 işlem.
1 birim saniyede N oyuncu oyuna girdiğinde kodun maliyeti : N*67+2 = 67N+2
Orijinal eklentide ise :
Oyuncu sayısını bulmak için komudun arka planında
for(new i=0;i<32;i++) döngüsü vardır.
i=0 işlemi 1 defa
i<32 kontrolu 33 defa
i++ işlemi 32 defa yaptırılıyor.
server cmd işlemi de 1 defa.
Yani devam fonksiyonun maliyeti : 67
oyuncu oyuna girdiğinde : remove_task + set_task + devam fonksiyonu çağrılıyor : 3 işlem.
1 birim saniyede N oyuncu oyuna girdiğinde : N+67+3 = N+70
(Burda çarpma işlemine koymamamızın sebebi 2 oyuncu aynı anda girdiği anda ikinci giren oyuncu birinci girenin set_task ettirdiği işlemi remove_task ettirmesi.)
Orijinal hali :
Kod:#include <amxmodx>
#define SERVERISMI "WEBDIYO"
public devam() {
new nd[128];
formatex(nd, charsmax(nd), "[%d/32] %s",get_playersnum(), SERVERISMI);
server_cmd("hostname ^"%s^"",nd);
message_begin(MSG_BROADCAST,get_user_msgid("ServerName"));
write_string(nd);
message_end();
}
public client_putinserver(id) remove_task(1337),set_task(1.0,"devam",1337);
public client_disconnected(id) remove_task(1337),set_task(1.0,"devam",1337);
public plugin_init() register_plugin("host", "1.0", "nd");
Konu ile Alakalı Benzer Konular | |||||
Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
Silinmiş Konu | CSOyuncu.com - Online Oyun Sunucuları // Grafik Web Tasarımı | mrstipfan | 2 | 277 |
18-08-2020, Saat: 15:00 Son Yorum: MawiLarq |
|
Silinmiş Konu | Server Benden Ts3 Senden | adamkarabela | 1 | 336 |
05-12-2019, Saat: 18:16 Son Yorum: MawiLarq |
|
Silinmiş Konu | Surf Server Mod Plugin Yardımı | caner5706 | 1 | 309 |
25-10-2019, Saat: 19:55 Son Yorum: By.KinG |
|
Silinmiş Konu | Surf Server Mod Plugin Yardımı | caner5706 | 5 | 374 |
25-10-2019, Saat: 19:55 Son Yorum: By.KinG |
|
Silinmiş Konu | Surf Server Mod Plugin Yardımı | caner5706 | 1 | 326 |
25-10-2019, Saat: 19:55 Son Yorum: By.KinG |