SA-MP Forums Archive
Jail Countdown message/text/textdraw - 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: Jail Countdown message/text/textdraw (/showthread.php?tid=484114)



Jail Countdown message/text/textdraw - mrxqware - 29.12.2013

Dear Guys and Girls,


I'm working on the /jail command to admin-jail player who do not behave.
I would like to create a countdown so the player could see how long he needs to wait before he will be released after he has been jailed and when he relogs while he is still in jail.

I've tried to check other gamemodes but I don't know how to fix it.
I have got the jail and unjail function already working, but I would like to have a textdraw/message in the top of the screen so the player can see 120 seconds left, 119 seconds left till 0 seconds left.

Could you help me with this please?

Код:
	if(strcmp(cmd, "/jail", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_WHITE, "USAGE: /jail [playerid/PartOfName] [minutes] [reason]");
				return 1;
			}
			new playa;
			new time;
			playa = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			time = strvalEx(tmp);
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
			    if(IsPlayerConnected(playa))
			    {
			        if(playa != INVALID_PLAYER_ID)
			        {
				        GetPlayerName(playa, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						new length = strlen(cmdtext);
						while ((idx < length) && (cmdtext[idx] <= ' '))
						{
							idx++;
						}
						new offset = idx;
						new result[64];
						while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
						{
							result[idx - offset] = cmdtext[idx];
							idx++;
						}
						result[idx - offset] = EOS;
						if(!strlen(result))
						{
							SendClientMessage(playerid, COLOR_WHITE, "USAGE: /jail [playerid/PartOfName] [minutes] [reason]");
							return 1;
						}
						format(string, sizeof(string), "{AA3333}AdmCmd{FFFF00}: %s has been jailed by an Admin, reason: %s", giveplayer, (result));
                		SendClientMessageToAll(COLOR_LIGHTRED, string);
                		ClearGuns(playa);
						ResetPlayerWeapons(playa);
						PlayerInfo[playa][pWantedLevel] = 0;
						SetPlayerWantedLevel(playa, 0);
						SetPlayerToTeamColor(playa);
						PlayerInfo[playa][pJailed] = 1;
						PlayerInfo[playa][pJailTime] = time*60;
						SetPlayerInterior(playa, 6);
						SetPlayerVirtualWorld(playerid, 0);
						PlayerInfo[giveplayerid][pVirtualWorld] = 0;
						SetPlayerPos(playa, 264.6288,77.5742,1001.0391);
						SetPlayerFacingAngle(playa, -90);
						format(string, sizeof(string), "You are jailed for %d minutes.   Bail: Unable", time);
						SendClientMessage(playa, COLOR_LIGHTBLUE, string);
						
						
						
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   You are not authorized to use that command !");
			}
		}
		return 1;
	}



Re: Jail Countdown message/text/textdraw - erminpr0 - 29.12.2013

pawn Код:
forward somethin();
public somethin()
{
    foreach(Player, someplayer)
    {
        if(!PlayerInfo[someplayer][pJailTime]) continue;
        new string[31+9];
        format(string, sizeof string, "~r~Jail time left: ~w~%d seconds!", PlayerInfo[someplayer][pJailTime]);
        GameTextForPlayer(someplayer, string, 999, 1);
        PlayerInfo[someplayer][pJailTime]--;
    }
}

new smn_timer;
// OnGameModeInitialize
smn_timer = SetTimer("somethin", 1000, true);
//OnGameModeExit
KillTimer(smn_timer);