shape1
shape2
shape3
shape4
shape7
shape8

Команда /mute

Статус
Закрыто для дальнейших ответов.

Daniil

Новичок
Пользователь
28.03.2014
137
0
0
У меня команда /mute только чтобы заткнуть,пытался переделать чтобы было и время и причина, в итоге ошибки,можете кинуть нормальную команду?

 

Kostyaev

Магистр
Пользователь
19.07.2014
1 123
274
0
24
в public OnPlayerCommandText:

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] [время] [причина]");
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] [время] [причина]");
if(!strlen(cmdtext[idx]))
return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /mute [playerid] [время] [причина]");
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);
SetPVarInt(id,"Muted", gettime() + (time*60) );//unix time + минуты введенные в параметры
return 1;



Теперь в public OnPlayerText

if(GetPVarInt(playerid,"Muted") > gettime())//если PVar больше unixtime
{
format(string, sizeof(string), "Вы заткнуты отсавшиеся время заглушки %d(сек)",(GetPVarInt(playerid,"Muted") - gettime()) );
SendClientMessage(playerid, COLOR_SEA, string);//выдаем сообщение
return 0;
}



Проверку выше можно так же запихнуть в свои команды

Ну вот и все если кому нужен сток GN то :

stock GN(playerid)
{
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof Name);
return Name;
}

Если вы хотите чтобы игрок не мог писать и в команды такие как /report, /вопрос, /me /w... Тогда в начало самой команды:

if(Muted[playerid] != 0)//если мут не равно 0
{
format(string, sizeof(string), "Вы заткнуты отсавшиеся время заглушки %d(сек)",Muted[playerid]);
SendClientMessage(playerid, COLOR_SEA, string);//выдаем сообщение
return 0;




Вроде всё...
 
Последнее редактирование модератором:
Статус
Закрыто для дальнейших ответов.