Первое добавим массив отвечаущию за время мута
new Muted[MAX_PLAYERS];
Далее создадим таймер на секунду
В public OnGameModeInit
Добавляем следущее
Code
SetTimer("SecondTimer", 1000, 1);
Теперь в любое место кроме пабликов(можно в конец мода)
Code
forward SecondTimer();
public SecondTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)//цикл
{
if(Muted[i] > 0)//если мут больше нуля секунд
{
Muted[i] --;//отнимаем мут на 1
if(Muted[i] == 0)//если мут равно одному
SendClientMessage(i,COLOR_RED,"У вас больше нет молчанки");//выдаем сообщение
}
}
return 1;
}
Теперь сама команда
public OnPlayerCommandText
Code
if(strcmp(cmd, "/mute", true) == 0)
{
if(!IsPlayerAdmin(playerid))//проверка на админа
return SendClientMessage(playerid,COLOR_RED,"У вас не прав на использование даной команды");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /mute [playerid] [time] [reason]");
new id = strval(tmp);
tmp = strtok(cmdtext, idx);
new time = strval(tmp);
if(!strlen(tmp) || !IsPlayerConnected(id))
return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /mute [playerid] [time] [reason]");
if(!strlen(cmdtext[idx]))
return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /mute [playerid] [time] [reason]");
format(string, sizeof(string), "Вы заткнули %s на %d(минут) с причиной %s", GN(id),time, cmdtext[idx]); //собщение нам
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "Вас заткнул %s на %d(минут) Причина: %s", GN(playerid),time, cmdtext[idx]); //собщение заткнутому
SendClientMessage(id, COLOR_WHITE, string);
Muted[id] = time*60;//ставим мут ваше число умноженое на 60
return 1;
}
Теперь в public OnPlayerText
Code
if(Muted[playerid] != 0)//если мут не равно 0
{
format(string, sizeof(string), "Вы заткнуты отсавшиеся время заглушки %d(сек)",Muted[playerid]);
SendClientMessage(playerid, COLOR_SEA, string);//выдаем сообщение
return 0;
}
проверку выше можно так же запихнуть в свои команды
Ну вот и все если кому нужен сток GN он ниже
stock GN(playerid)
{
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof Name);
return Name;
}