А UNIX время вам на что дано? -_- Действительно, лучше ведь вкинуть дополнительное действие в таймер
Вот
PHP код:
CMD:gov(playerid, params[])
{
if(!player_is_authorized{playerid})
return SendClientMessage(playerid, COLOR_GREY, !"Вы не авторизировались.");
if(pInfo[playerid][pMute] == 1)
return MutePlayer(playerid);
static const
government_messages[][] =
{
"|___________ Новости Департамента Полиции LS ___________|",
"|___________ Новости Федерального Бюро Штата ___________|",
"|___________ Новости Воинской Части Штата ___________|",
"|___________ Медицинские Новости Штата ___________|",
"|___________ Новости Департамента Полиции LV ___________|",
"|___________ Новости Tаксопарка ___________|",
"|___________ Новости Коллегии Адвокатов ___________|"
};
new frac_idx = -1;
switch(pInfo[playerid][pMember])
{
case 1: frac_idx = 0;
case 2: frac_idx = 1;
case 3: frac_idx = 2;
case 4: frac_idx = 3;
case 10: frac_idx = 4;
case 17: frac_idx = 5;
case 19: frac_idx = 6;
}
if(!(0 <= frac_idx < sizeof(government_messages)))
{
SendClientMessage(playerid, COLOR_GREY, !"Ты не можешь использовать эту команду.");
return 1;
}
if(pInfo[playerid][pRank] < 5)
return SendClientMessage(playerid, COLOR_GREY, !"Тебе нужен 5-й и выше ранг.");
if(isnull(params))
return SendClientMessage(playerid, COLOR_GREY, !"Использование: /gov [Текст].");
static
flood_protection_time[sizeof(government_messages)],
unix_timestamp;
unix_timestamp = gettime();
if(flood_protection_time[frac_idx] > unix_timestamp)
{
static const fmt_str[] ="Для следующего сообщения осталось %d сек.";
new string[sizeof(fmt_str) - 2 + 10];
format(string, sizeof string, fmt_str, flood_protection_time[frac_idx]-unix_timestamp);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
SendClientMessageToAll(0x2641FEAA, government_messages[frac_idx]);
new string[MAX_CHATBUBBLE_LENGTH+1];
format(string, sizeof(string), "%s[%d]: %s",pInfo[playerid][pName], playerid, params);
SendClientMessageToAll(COLOR_WHITE, string);
flood_protection_time[frac_idx] = unix_timestamp+(2*60);// 2 - число минут
return 1;
}
Только при любых правках (удалении/изменении ID фракций) не забудь в switch выставить значение frac_idx в порядке возрастания (они определяют то, к какой ячейке массивов government_messages и flood_protection_time нужно обращаться для той или иной фракции. К слову, такого велосипеда можно было бы избежать, если изначально нормально распределить фракции по ID, хотя бы расположив все правительственные фракции "рядом").