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

Kod Yanlışlığı

Başlatan Toreno, 15 Mayıs 2023, 16:23:03

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Toreno

if(pInfo[playerid][pHunger] < 600)
{
new str2[128];
ProxDetector(60.0, playerid, str2, COLOR_GREY);

new aclik[257];

                format(aclik, sizeof(aclik), "%s Karni Acliktan Guruldamaktadir. %s", PlayerName(playerid));
                ProxDetector(20.0, playerid, aclik, COLOR_GREEN);  //aclik bari#
                SendClientMessage(playerid,-1,"*"COL_RED"Kendini acikmis ve halsiz hissediyorsan yemek yemen gerekiyor.");

}

Fakat ne hikmetse Buradaki şu Satır.   SendClientMessage(playerid,-1,"*"COL_RED"Kendini acikmis ve halsiz hissediyorsan yemek yemen gerekiyor.");
pHunger 600 den küçükse sürekli olarak durmadan Chat ekranına mesaj atıyor durmadan bunu nasıl engelleyebilirim? Bir Timer eklesek veya sadece 600 e geldiğinde sadece chatte 1 kere yazmasını nasıl sağlarız?


Holmes

stock SendHungerMessage(playerid)
{
    new str2[128];[table]

    ProxDetector(60.0, playerid, str2, COLOR_GREY);

    new aclik[257];
    format(aclik, sizeof(aclik), "%s Karni Acliktan Guruldamaktadir. %s", PlayerName(playerid));
    ProxDetector(20.0, playerid, aclik, COLOR_GREEN);  //aclik bari#
    SendClientMessage(playerid,-1,"*"COL_RED"Kendini acikmis ve halsiz hissediyorsan yemek yemen gerekiyor.");
}

new timer[MAX_PLAYERS]; // her oyuncu için bir timer

if(pInfo[playerid][pHunger] < 600 && !timer[playerid]) // timer yoksa ve açlık 600'den küçükse
{
    timer[playerid] = SetTimer(60000, false, "SendHungerMessage", playerid); // 1 dakika 60 saniye sonra mesajı gönderir
}
else if (pInfo[playerid][



şöyle deneyebilir misin
Son düzenlenme: 15 Mayıs 2023, 19:59:28 Lincoln.

Holmes

static counts[MAX_PLAYERS]; // sayaçları saklamak için statik bir dizi

if(pInfo[playerid][pHunger] < 600 && counts[playerid] == 0) // sayaç 0 ise mesaj gönder
{
    new str2[128];
    ProxDetector(60.0, playerid, str2, COLOR_GREY);

    new aclik[257];
    format(aclik, sizeof(aclik), "%s Karni Acliktan Guruldamaktadir. %s", PlayerName(playerid));
    ProxDetector(20.0, playerid, aclik, COLOR_GREEN);  //aclik bari#
    SendClientMessage(playerid,-1,"*"COL_RED"Kendini acikmis ve halsiz hissediyorsan yemek yemen gerekiyor.");
   
    counts[playerid]++; // sayaçı artır
}
else if (pInfo[playerid][pHunger] >= 600) // açlık 600 veya daha yüksekse sayaç sıfırlanır
{
    counts[playerid] = 0;
}

alternatif kod


Toreno

@Lincoln. Hangisini kullanmam daha doğru olur?


Hata

Alıntı yapılan: Toreno - 15 Mayıs 2023, 21:00:48
@Lincoln. Hangisini kullanmam daha doğru olur?
2. kod daha iyi gibi, ikisini de kullanabilirsin ama ben 2.yi tercih ederdim.