GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Zamanlanmış Sunucu Mesajları Göndermek

Başlatan pAwnstein, 20 Mayıs 2019, 08:53:29

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

pAwnstein


Evet. Basit bi' şey yapmak istedim, bunu düşündüm. Sunucuya girişte herkese bir mesaj yollayıp oyuncunun bağlandığını söylüyoruz ve sonra da 5 dakikada bir her oyuncuya sunucu bilgilerini ve aktif oyuncu sayısını mesaj olarak gönderiyoruz. Basit ama işe yarayabilir dedim.

Aktif oyuncu sayısını çekebilmek için bir değer oluşturup oyuncu bağlandığında arttırıp çıkış yaptığında azaltmamız gerekiyor.

Modun başında bi yerde değerimizi oluşturalım.

new oyuncuSayisi = 0;


OnPlayerConnect'te yani bağlandığında sayımızı arttırıyoruz ve oyuncunun bağlandığını herkese duyuruyoruz.

public OnPlayerConnect(playerid)
{
oyuncuSayisi++;
new baglanan[24], baglantiyazi[128];
GetPlayerName(playerid, baglanan, 24);
format(baglantiyazi,sizeof(baglantiyazi), "%s isimli oyuncu sunucuya giriş yaptı. İyi oyunlar!", baglanan);
SendClientMessageToAll(-1, baglantiyazi);
return 1;
}


Şimdi de azaltmak için OnPlayerDisconnect'e gidelim.

public OnPlayerDisconnect(playerid, reason)
{
oyuncuSayisi--;
return 1;
}


Oyuncu sayısını hallettik. Şimdi oyuncu bağlandığında bi zamanlayıcı verip döngünün ilk aşamasına girmesini sağlayalım. Ben oyuncu spawn olduğunda başlasın istiyorum ve 5 dakikalık bi zaman olsun dedim. Bu yüzden OnPlayerSpawn publicini kullanıcam.

public OnPlayerSpawn(playerid)
{
SetTimerEx("OtomatikMesaj", 300000, false, "u", playerid);
return 1;
}


Döngümüze giriş yaptık. Şimdi zamanlayıcı tekrarlandığı gibi bir aynısından bir tane daha yapıp sürekli tekrarlanmasını sağlıyoruz. Ben genelde böyle yapıyorum başka yolları yok mu derseniz elbet vardır.

forward OtomatikMesaj(playerid);
public OtomatikMesaj(playerid)
{
new otomesaj[128];
SendClientMessage(playerid, -1, "PAWNOTurk - SA:MP");
SendClientMessage(playerid, -1, "Facebook: www.facebook.com/sunucum");
        SendClientMessage(playerid, -1, "Instagram: www.instagram.com/sunucum");
        SendClientMessage(playerid, -1, "Forum: www.sunucu-adresi.com");
format(otomesaj, sizeof(otomesaj), "Aktif Oyuncu Sayısı: %d", oyuncuSayisi);
        SendClientMessage(playerid, -1, otomesaj);
SetTimerEx("OtomatikMesaj2", 300000, false, "u", playerid);
return 1;
}

forward OtomatikMesaj2(playerid);
public OtomatikMesaj2(playerid)
{
new otomesaj2[128];
SendClientMessage(playerid, -1, "PAWNOTurk - SA:MP");
SendClientMessage(playerid, -1, "Facebook: www.facebook.com/sunucum");
        SendClientMessage(playerid, -1, "Instagram: www.instagram.com/sunucum");
        SendClientMessage(playerid, -1, "Forum: www.sunucu-adresi.com");
format(otomesaj2, sizeof(otomesaj2), "Aktif Oyuncu Sayısı: %d", oyuncuSayisi);
        SendClientMessage(playerid, -1, otomesaj2);
SetTimerEx("OtomatikMesaj", 300000, false, "u", playerid);
return 1;
}


Görüntüsü bu şekilde. Hızlıca görebilmek için saniyesini azalttım ama kodda geri düzelttim.





Docendo discimus.

Unknown

Başarılı, bu çocuk anlıyor bu işlerden.  :D ;)


Kraus

Bilmeyen için faydalı. Eline sağlık.

Başarılar. FS olarak daha gelişmişini yapabilirsin.

Safari Gaming © sɪɴᴄᴇ 2014
www.sf-gaming.net

Tektabanca

Katılıyorum bilmeyen için faydalı bir paylaşım olmuş teşekkürler


《Hırsız~Polis》《2015&2021》

Eamon

GetPlayerPoolsize diye bir fonksiyon vardı oyuncu sayısına ordan da ulaşabilirsin veya bir döngü ilede yapabilirsin.

Başarılar

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

Excision

timer kullanımın sıkıntılı, tek timer ile işi halledebilirdi. https://www.diffchecker.com/diff
killtimer kullanmalısın, her spawnda timer oluşturursan bir süreden sonra lag yapabilir.


Ryroz


FalafelÇorba


Asena

Basit, başarılı ve yararlı. Paylaşım için teşekkürler.

Control, is overrated.

nikobernoo


Pablo

Alıntı




Pawnotürk Üyesi 2017-2020

TheLeaK

 warning 235: public function lacks forward declaration (symbol "OnPlayerConnect")
error 017: undefined symbol "GetPlayerName"
error 017: undefined symbol "format"
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition
error 017: undefined symbol "SendClientMessageToAll"
warning 235: public function lacks forward declaration (symbol "OnPlayerDisconnect")
undefined symbol "SendClientMessage"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "format"
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "SetTimerEx"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "SendClientMessage"
error 017: undefined symbol "format"
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition
error 017: undefined symbol "SendClientMessage"
: error 017: undefined symbol "SetTimerEx"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


17 Errors.

Böyle  Bir Sürü Hata :( Lütfen çözümünü bilen varsa söylesin.


QrzR


FelleR