Kill Timer when Player Death -
Genmetal - 10.09.2015
hi, i have code when you type /tie and the player tied up, i make timer when tied player not killed in 5 minutes his got Uncuffed by Anti Tie Abuse. then how can i killtimer when the tied player died not in 5 minutes
Код:
CMD:tie(playerid, params[])
{
new otherid, string[120];
if (sscanf(params, "d", otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}/Tie [playerid]");
if(!IsPlayerConnected(otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player are not connected.");
if(!ProxDetectorS(5.0, playerid, otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player is not close enough.");
if(GetPlayerTeam(otherid) == playerid) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player are in your team!.");
if(PlayerInfo[playerid][pRope] < 1) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You don't have any rope!.");
if(IsPlayerCuffed(playerid) == true) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You are tied, can't use any commands");
if(IsPlayerCuffed(otherid) == true) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player are already tied!");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You cannot tie when you are in vehicle.");
if(IsPlayerInAnyVehicle(otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You cannot tie that player when in vehicle.");
{
SetPlayerCuffed(otherid, true);
format(string, sizeof(string), "[SERVER]: {FFFFFF}You have been tied by %s(%d)!", GetName(playerid), playerid);
SendClientMessage(otherid, 0xB0B0B0AA, string);
format(string, sizeof(string), "[SERVER]: {FFFFFF}You have tie %s(%d)!", GetName(otherid), otherid);
SendClientMessage(playerid, 0xB0B0B0AA, string);
PlayerInfo[playerid][pRope]--;
SetTimerEx("AntiTieAbuse",300000,0,"i",otherid);
}
return 1;
}
forward AntiTieAbuse(playerid);
public AntiTieAbuse(playerid)
{
SetPlayerCuffed(playerid, false);
format(string, sizeof(string), "[ANTI-ABUSE]: {FFFFFF}Player %s(%d) has been untied after 5 minutes tied!", GetName(playerid), playerid);
SendClientMessageToAll(COLOR_YELLOW, string);
KillTimer(AntiTieAbuse[playerid]);
}
Re: Kill Timer when Player Death -
DarkLored - 10.09.2015
I'd recommend using a global timer that uses variables as timers, that way you'll only need to kill the timer when the gamemode is being turned off.
pawn Код:
new AntiTieAbuse[MAX_PLAYERS];
forward PlayerVars();
public OnGameModeInit()
{
SetTimer("PlayerVars", 1000, true);
return 1;
}
CMD:tie(playerid, params[])
{
new otherid, string[120];
if (sscanf(params, "d", otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}/Tie [playerid]");
if(!IsPlayerConnected(otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player are not connected.");
if(!ProxDetectorS(5.0, playerid, otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player is not close enough.");
if(GetPlayerTeam(otherid) == playerid) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player are in your team!.");
if(PlayerInfo[playerid][pRope] < 1) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You don't have any rope!.");
if(IsPlayerCuffed(playerid) == true) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You are tied, can't use any commands");
if(IsPlayerCuffed(otherid) == true) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}That player are already tied!");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You cannot tie when you are in vehicle.");
if(IsPlayerInAnyVehicle(otherid)) return SendClientMessage(playerid, 0xB0B0B0AA, "[SERVER]: {FFFFFF}You cannot tie that player when in vehicle.");
{
SetPlayerCuffed(otherid, true);
format(string, sizeof(string), "[SERVER]: {FFFFFF}You have been tied by %s(%d)!", GetName(playerid), playerid);
SendClientMessage(otherid, 0xB0B0B0AA, string);
format(string, sizeof(string), "[SERVER]: {FFFFFF}You have tie %s(%d)!", GetName(otherid), otherid);
SendClientMessage(playerid, 0xB0B0B0AA, string);
PlayerInfo[playerid][pRope]--;
AntiTieAbuse[otherid] = 300; //5 Minutes
}
return 1;
}
public PlayerVars()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)
{
if(AntiTieAbuse[i] > 1)
{
AntiTieAbuse[i] --;
}
if(AntiTieAbuse[i] == 1)
{
AntiTieAbuse[i] = 0;
//code here
}
}
}
return 1;
}