CMD:mute(playerid, params[]) { new str[128], reason[128], id, time; if(PlayerAcc[playerid][Log] == 0) return SendClientMessage(playerid, COLOR_RED, "Error: You are not logged in!"); if(PlayerAcc[playerid][Admin] >= 3) { if(sscanf(params, "uis[128]", id, time, reason)) return SendClientMessage(playerid, COLOR_RED, "Syntax: /mute (id) (minutes) (reason)"); if(id == INVALID_PLAYER_ID) return ErrorMessages(playerid, 2); if(id == playerid) return ErrorMessages(playerid, 4); if(PlayerAcc[id][Mute] == 1) return SendClientMessage(playerid, COLOR_RED, "That player is already mute!"); format(str, sizeof(str), "%s(%d) has been mute by Admin %s(%d) for %i minutes (for: %s)", GetName(id), id, GetName(playerid), playerid, time, reason); SendClientMessageToAll(COLOR_RED, str); format(str, sizeof(str), "You mute %s(%d) for %i minutes (for: %s)", GetName(id), id, time, reason); SendClientMessage(playerid, COLOR_YELLOW, str); PlayerAcc[id][Mute] = 1; PlayerAcc[id][MuteTime] = time*time; MuteTimer[id] = SetTimerEx("OnPlayerUnmute", PlayerAcc[id][MuteTime], false, "d", playerid); } else return ErrorMessages(playerid, 1); return 1; }
new mutetime;
mutetime = gettime();
mutetime += time*time;
PlayerAcc[id][MuteTime] = mutetime;
MuteTimer[id] = SetTimerEx("OnPlayerUnmute", PlayerAcc[id][MuteTime], false, "d", playerid);
forward OnPlayerUnmute(MuteTimerID[id]);
public OnPlayerUnmute(MuteTimerID[id])
{
new str[64];
format(str, sizeof(str), "%s(%d) has been unmuted ", GetName(MuteTimerID[id]),MuteTimerID[id]);
SendClientMessageToAll(COLOR_RED, str);
PlayerAcc[MuteTimerID[id]][Mute] = 0;
PlayerAcc[MuteTimerID[id]][MuteTime] = 0;
return 1;
}
Something like this
pawn Код:
|
forward OnPlayerUnmute(MuteTimerID[id]); public OnPlayerUnmute(MuteTimerID[id])
forward OnPlayerUnmute(MuteTimerID[id]);
public OnPlayerUnmute(MuteTimerID[id])
{
new str[64];
format(str, sizeof(str), "%s(%d) has been unmuted ", GetName(MuteTimerID[id]),MuteTimerID[id]);
SendClientMessageToAll(COLOR_RED, str);
PlayerAcc[MuteTimerID[id]][Mute] = 0;
PlayerAcc[MuteTimerID[id]][MuteTime] = 0;
return 1;
}
forward OnPlayerUnmute(playerid);
public OnPlayerUnmute(playerid)
{
new str[64];
format(str, sizeof(str), "%s(%d) has been unmuted ", GetName(playerid),playerid);
SendClientMessageToAll(COLOR_RED, str);
PlayerAcc[playerid][Mute] = 0;
PlayerAcc[playerid][MuteTime] = 0;
return 1;
}
new MuteTimer[MAX_PLAYERS];
CMD:mute(playerid, params[])
{
if(PlayerAcc[playerid][Log] == 0) return SendClientMessage(playerid, COLOR_RED, "Error: You are not logged in!");
if(PlayerAcc[playerid][Admin] < 3) return ErrorMessages(playerid, 1);
new reason[128], id, time;
if(sscanf(params, "uis[128]", id, time, reason)) return SendClientMessage(playerid, COLOR_RED, "Syntax: /mute (id) (minutes) (reason)");
if(id == INVALID_PLAYER_ID) return ErrorMessages(playerid, 2);
if(id == playerid) return ErrorMessages(playerid, 4);
if(PlayerAcc[id][Mute] == 1) return SendClientMessage(playerid, COLOR_RED, "That player is already mute!");
new str[128];
format(str, sizeof(str), "%s(%d) has been mute by Admin %s(%d) for %i minutes (for: %s)", GetName(id), id, GetName(playerid), playerid, time, reason);
SendClientMessageToAll(COLOR_RED, str);
format(str, sizeof(str), "You mute %s(%d) for %i minutes (for: %s)", GetName(id), id, time, reason);
SendClientMessage(playerid, COLOR_YELLOW, str);
PlayerAcc[id][Mute] = 1;
PlayerAcc[id][MuteTime] = time;
MuteTimer[id] = SetTimerEx("OnPlayerUnmute", 1000*60*time, false, "d", id);
return 1;
}
forward OnPlayerUnmute(id);
public OnPlayerUnmute(id)
{
new str[64];
format(str, sizeof(str), "%s(%d) has been unmuted ", GetName(id), id);
SendClientMessageToAll(COLOR_RED, str);
PlayerAcc[id][Mute] = 0;
PlayerAcc[id][MuteTime] = 0;
return 1;
}