Timer CMD
#1

hi how can i put a timer on this cmd ? i did one system but didn't work can some1 help me ?

Код HTML:
if(strcmp(cmd, "/getgift", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	   	{
	   	    if (!PlayerToPoint(3.0, playerid, 1124.2874,-1466.6426,15.7665))
			{
			    CP[playerid] = 123321;
			    SetPlayerCheckpoint(playerid,1124.2874,-1466.6426,15.7665,5.0);
				SendClientMessage(playerid, COLOR_GRAD2, "Nu esti sub bradul de craciun de langa spawn.");
				SendClientMessage(playerid, COLOR_GRAD2, "Ti-am setat un Punct rosu pe harta unde trebuie sa ajungi.");
				return 1;
			}
		    if(PlayerData[playerid][pLevel] > 3)
			{
				new gift = random(9);
	   			if(gift == 0)
			    {
			        PlayerData[playerid][pExp] += 5;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat 5 respect points-uri la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won 5 respect points at giftbox. ))",GetName(playerid));
			    	SendClientMessageToAll(COLOR_WHITE,string);
			    	format(string, sizeof(string), "UPDATE players SET Respect='%d' WHERE id=%d", PlayerData[playerid][pExp], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			    if(gift == 1)
			    {
			        new cash = random(1000000);
			        PlayerData[playerid][pCash] += cash;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat o suma de bani la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won $%s at giftbox. ))",GetName(playerid), NumberFormat(cash));
			        SendClientMessageToAll(COLOR_WHITE,string);
					format(string, sizeof(string), "UPDATE players SET Money='%d' WHERE id=%d", PlayerData[playerid][pCash], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			    if(gift == 2)
			    {
			       	PlayerData[playerid][pWarns] = 0;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat clear warns de la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won a warns clear at giftbox. ))",GetName(playerid));
			        SendClientMessageToAll(COLOR_WHITE,string);
			        format(string, sizeof(string), "UPDATE players SET Warnings='%d' WHERE id=%d", PlayerData[playerid][pWarns], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			   	}
			    if(gift == 3)
			    {
					PlayerData[playerid][pMats] += 20000;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat 20.000 materiale de la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won 20.000 materials at giftbox. ))",GetName(playerid));
			        SendClientMessageToAll(COLOR_WHITE,string);
			        format(string, sizeof(string), "UPDATE players SET Materials='%d' WHERE id=%d", PlayerData[playerid][pMats], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			    if(gift == 4)
			    {
			        PlayerData[playerid][pFpunish] = 0;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat clear FP de la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won a clear FP at giftbox. ))",GetName(playerid));
			        SendClientMessageToAll(COLOR_WHITE,string);
			        format(string, sizeof(string), "UPDATE players SET Fpunish='%d' WHERE id=%d", PlayerData[playerid][pFpunish], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			    if(gift == 5)
			    {
			        PlayerData[playerid][pLevel] ++;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat un level up de la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won a level up at giftbox. ))",GetName(playerid));
			        SendClientMessageToAll(COLOR_WHITE,string);
			        format(string, sizeof(string), "UPDATE players SET PlayerLevel='%d' WHERE id=%d", PlayerData[playerid][pLevel], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			    if(gift == 6)
			    {
			        new cash = random(70);

			        PlayerData[playerid][pDonateRank] += cash;
			        SendClientMessage(playerid, COLOR_WHITE, "Ai castigat puncte premium la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won %d premium points at giftbox. ))",GetName(playerid), cash);
			        SendClientMessageToAll(COLOR_WHITE,string);
			        format(string, sizeof(string), "UPDATE players SET DonateRank='%d' WHERE id=%d", PlayerData[playerid][pDonateRank], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			    if(gift == 7)
			    {

			        PlayerData[playerid][pDrugs] += 10000;
	          		SendClientMessage(playerid, COLOR_WHITE, "Ai castigat 10.000 droguri de la giftbox.");
			        format(string, sizeof(string), "(( AdmBot says: %s won 10.000 drugs at giftbox. ))",GetName(playerid));
			        SendClientMessageToAll(COLOR_WHITE,string);
			        format(string, sizeof(string), "UPDATE players SET Drugs='%d' WHERE id=%d", PlayerData[playerid][pDrugs], PlayerData[playerid][pSQLID]);
					mysql_query(string);
			    }
			}
			else return SendClientMessage(playerid, COLOR_GREY, "Trebuie sa ai lvl 4 pentru a folosi /getgift");
		}
		return 1;
	}
Reply
#2

What exactly are you trying to do? Limit the times a player can execute the command before a certain time? Like once per minute?

First add a "pLastGiftTime" variable to your PlayerData enum. Then in the command, before the last return, do this:
pawn Код:
PlayerData[playerid][pLastGiftTime] = GetTickCount();
        return 1;
At the top of the command do this:
pawn Код:
if(PlayerData[playerid][pLastGiftTime] + 60000 < GetTickCount())
return SendClientMessage(playerid, color, "bleh bleh, you cant get more gifts at this time... bleh");
That's it!


If you don't understand, let me know.
Reply
#3

better to use time stamps for cooldowns

PHP код:
if(strcmp(cmd"/getgift"true) == 0)
    {
        new 
currenttime gettime(),errorString[256];
        
format(errorString,sizeof(errorString),"Command cooldown remaining %i seconds",((GiftCooldown[playerid] + 60) - currenttime));
        if(
currenttime < (GiftCooldown[playerid] + 60)) return SendClientMessage(playerid,COLOR_RED,string);
        if(
IsPlayerConnected(playerid))
           {
               if (!
PlayerToPoint(3.0playerid1124.2874,-1466.6426,15.7665))
            {
                
CP[playerid] = 123321;
                
SetPlayerCheckpoint(playerid,1124.2874,-1466.6426,15.7665,5.0);
                
SendClientMessage(playeridCOLOR_GRAD2"Nu esti sub bradul de craciun de langa spawn.");
                
SendClientMessage(playeridCOLOR_GRAD2"Ti-am setat un Punct rosu pe harta unde trebuie sa ajungi.");
                return 
1;
            }
            if(
PlayerData[playerid][pLevel] > 3)
            {
                new 
gift random(9);
                   if(
gift == 0)
                {
                    
PlayerData[playerid][pExp] += 5;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat 5 respect points-uri la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won 5 respect points at giftbox. ))",GetName(playerid));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET Respect='%d' WHERE id=%d"PlayerData[playerid][pExp], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
                if(
gift == 1)
                {
                    new 
cash random(1000000);
                    
PlayerData[playerid][pCash] += cash;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat o suma de bani la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won $%s at giftbox. ))",GetName(playerid), NumberFormat(cash));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET Money='%d' WHERE id=%d"PlayerData[playerid][pCash], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
                if(
gift == 2)
                {
                       
PlayerData[playerid][pWarns] = 0;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat clear warns de la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won a warns clear at giftbox. ))",GetName(playerid));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET Warnings='%d' WHERE id=%d"PlayerData[playerid][pWarns], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                   }
                if(
gift == 3)
                {
                    
PlayerData[playerid][pMats] += 20000;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat 20.000 materiale de la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won 20.000 materials at giftbox. ))",GetName(playerid));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET Materials='%d' WHERE id=%d"PlayerData[playerid][pMats], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
                if(
gift == 4)
                {
                    
PlayerData[playerid][pFpunish] = 0;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat clear FP de la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won a clear FP at giftbox. ))",GetName(playerid));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET Fpunish='%d' WHERE id=%d"PlayerData[playerid][pFpunish], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
                if(
gift == 5)
                {
                    
PlayerData[playerid][pLevel] ++;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat un level up de la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won a level up at giftbox. ))",GetName(playerid));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET PlayerLevel='%d' WHERE id=%d"PlayerData[playerid][pLevel], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
                if(
gift == 6)
                {
                    new 
cash random(70);
                    
PlayerData[playerid][pDonateRank] += cash;
                    
SendClientMessage(playeridCOLOR_WHITE"Ai castigat puncte premium la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won %d premium points at giftbox. ))",GetName(playerid), cash);
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET DonateRank='%d' WHERE id=%d"PlayerData[playerid][pDonateRank], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
                if(
gift == 7)
                {
                    
PlayerData[playerid][pDrugs] += 10000;
                      
SendClientMessage(playeridCOLOR_WHITE"Ai castigat 10.000 droguri de la giftbox.");
                    
format(stringsizeof(string), "(( AdmBot says: %s won 10.000 drugs at giftbox. ))",GetName(playerid));
                    
SendClientMessageToAll(COLOR_WHITE,string);
                    
format(stringsizeof(string), "UPDATE players SET Drugs='%d' WHERE id=%d"PlayerData[playerid][pDrugs], PlayerData[playerid][pSQLID]);
                    
mysql_query(string);
                    
GiftCooldown[playerid] = gettime();
                }
            }
            else return 
SendClientMessage(playeridCOLOR_GREY"Trebuie sa ai lvl 4 pentru a folosi /getgift");
        }
        return 
1;
    } 
top of script
PHP код:
new GiftCooldown[MAX_PLAYERS]; 
Reply
#4

Actually, mine was better. Mostly because you literally use the same code over and over for absolutely no reason other than buffing up the AMX. Also because you set up a string that will not be needed in a lot of cases.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)