SA-MP Forums Archive
I'm sure its easy, please help quick! - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: I'm sure its easy, please help quick! (/showthread.php?tid=353681)



I'm sure its easy, please help quick! - grantism - 24.06.2012

If I was creating this:
pawn Код:
CMD:gov(playerid, params[])
{
    new string[128], new govon;
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsACop(playerid) || !IsFBi || !IsLSFMD || !IsAGov(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not an LEO/Government Official.");
    if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "You are not a faction leader.");
    govon == 0;
    if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/gov)ernment announcement [text]");
    if(AntiAdv(playerid, params)) return 1;
    if (govon == 0)
    {
        SendClientMessageToAll(COLOR_WHITE, "|___________ Government News Announcement ___________|");
        format(string, sizeof(string), "** [%s] %s %s: %s **", RPFN(playerid), RPFRN(playerid), RPN(playerid), params);
        SendClientMessageToAll(COLOR_BLUE, string);
        govon == 1;
        return 1;
    }
    else if (govon == 1)
    {
        format(string, sizeof(string), "** [%s] %s %s: %s **", RPFN(playerid), RPFRN(playerid), RPN(playerid), params);
        SendClientMessageToAll(COLOR_BLUE, string);
        return 1;
    }
    return 1;
}
How would I create a little timer say after 1 minute of /gov not being done, govon returns to 0?


Re: I'm sure its easy, please help quick! - doreto - 24.06.2012

you mean after 1 min you can cmd again ?


Re: I'm sure its easy, please help quick! - grantism - 24.06.2012

No after 1 minutes the govon returns to 0, if you see I don't want the stupid ____Government Announcement___ to show every time someone /gov's so... I want it to be like, this. Imagine this IG.
pawn Код:
5:35:01: /gov Number 1
= __________Government Announcement__________
LSPD Chief: Number 1

5:35:04: /gov Number 2
=
LSPD Chief: Number 2  ( NOTE HERE THERE ISNT _____ THIS CRAP )


5:36:05: /gov Number 3
=
_____________Government Announcement__________ ( HERE IT IS, AFTER A MINUTE )
LSPD Chief: Number 3
Look at the times, hope that helps.


Re: I'm sure its easy, please help quick! - Grand_Micha - 24.06.2012

You have to check for it, obviously. For the cmd, check
if(govon==1) return 0;
or whatever, and then use a pre-defined timer:
if(govon==0){if(IsCop(playerid)||etc){SetTimer("Go vTime",etc.); govon=1;}}


Later, you forward GovTime(playerid);
public GovTime(playerid)
{
KillTimer(GovTimer);
govon =0;
}


Simple as that.


Re: I'm sure its easy, please help quick! - Randy More - 24.06.2012

I got your point, but as for another resolution you can have "govon" variable defined in the starting of the script, and only gives the value 0 when connecting, not each time you submit the command, then make another command that ends the gov. announcement which it just gives the govon value 0, for example:

pawn Код:
new govon[MAX_PLAYERS]; // Somewhere in the starting of the script.
pawn Код:
CMD:gov(playerid, params[])
{
    new string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsACop(playerid) || !IsFBi || !IsLSFMD || !IsAGov(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not an LEO/Government Official.");
    if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "You are not a faction leader.");
    if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/gov)ernment announcement [text]");
    if(AntiAdv(playerid, params)) return 1;
    if (govon[playerid] == 0)
    {
        SendClientMessageToAll(COLOR_WHITE, "|___________ Government News Announcement ___________|");
        format(string, sizeof(string), "** [%s] %s %s: %s **", RPFN(playerid), RPFRN(playerid), RPN(playerid), params);
        SendClientMessageToAll(COLOR_BLUE, string);
        govon[playerid] == 1;
        return 1;
    }
    else if (govon[playerid] == 1)
    {
        format(string, sizeof(string), "** [%s] %s %s: %s **", RPFN(playerid), RPFRN(playerid), RPN(playerid), params);
        SendClientMessageToAll(COLOR_BLUE, string);
        return 1;
    }
    return 1;
}

CMD:endgov(playerid, params[])
{
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsACop(playerid) || !IsFBi || !IsLSFMD || !IsAGov(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not an LEO/Government Official.");
    if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "You are not a faction leader.");
    if(govon[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "You didn't start any announcement yet.");
    SendClientMessage(playerid, COLOR_GREY, "You have ended your announcement to the public.");
    govon[playerid] = 0;
    return 1;
}