[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Lesson № 1]Молчанка на время
Дата: 14.11.2010, Воскресенье, 21:30:25 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 117
Репутация: 134+
Первое добавим массив отвечаущию за время мута

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;
}

  • Страница 1 из 1
  • 1
Поиск: