Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Проблема с /mute

Статус
В этой теме нельзя размещать новые ответы.

Vassasssin

Умник
Суть в том , что не работает вычитание времени на команду /mute

Команда работает ,в БД сохраняет , /unmute работает и проверка в чат работает .

Получается так , что ставит вечный мут и время не отнимается

Команда /mute

PHP:
if(strcmp(cmd, "/mute", true) == 0) // mute
  {
   if (PlayerInfo[playerid] [pAdmin]>= 1)
   if(apass[playerid] == 1)
   {
  #define WHITE 0xFFFFFFFF
  new tmp[128];
  tmp = strtok(cmdtext, idx);
  if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF , "Используйте /mute [ID игрока] [Время] [Причина]");
  new player = ReturnUser(tmp);
  if(!IsPlayerConnected(player)) return SendClientMessage(playerid,WHITE,"Игрок не онлайн");
  tmp = strtok(cmdtext, idx);
  new time = strval(tmp);
  if(time > 180 || time < 1) return SendClientMessage(playerid,0xFFFFFFFF,"Примечание : [время] [1-180]");
  new length = strlen(cmdtext);
  while ((idx < length) && (cmdtext[idx] <= ' '))
    {
        idx++;
    }
  new offset = idx;
  new result[100];
  while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
  result[idx - offset] = cmdtext[idx];
  idx++;
    }
  result[idx - offset] = EOS;
  if(!strlen(result)) return SendClientMessage(playerid, 0xFFFFFFFF , "Используйте /mute [ID игрока] [время] [причина]");
  new name[MAX_PLAYERS];
  new getname[MAX_PLAYERS];
  GetPlayerName(playerid,name, sizeof(name));
  GetPlayerName(player,getname, sizeof(getname));
  new string[128];
  PlayerInfo[player][pMute] = time*60;
  format(string, sizeof(string), "{FF0000}Администратор [%d] %s поставил затычку игроку %s íà %d минут причина : %s",playerid,name,getname,time,(result));
  SendClientMessageToAll(0xFFFFFFFF,string);
  return 1;
  }
Проверка на чат

PHP:
    if (PlayerInfo[playerid] [pMute] > 0)
    {
    new string[128];
    format(string, sizeof(string), "Доступ в чат заблокирован на %d секунд",PlayerInfo[playerid] [pMute]);
    SendClientMessage(playerid,0xFFFFFFFF,string);
    return 0;
    }
Ну и собственно мне непонятное из гайда . Должно вычитать из переменной по 1 каждую секунду .

PHP:
forward Mute(playerid);
public Mute(playerid)
{
  for(new i=0; i<MAX_PLAYERS; i++)
  {
   if(IsPlayerConnected(i))
   {
    if(PlayerInfo[i][pMute]>0) PlayerInfo[i][pMute]--;
    if(PlayerInfo[i][pMute]<0) PlayerInfo[i][pMute]=0;
   }
  }
}
Пример :

Я поставил затычку игроку на 1 минуту . Он не может писать в чат , вот что у него пишет "Доступ в чат заблокирован на 60 секунд" . Время не отнимается (!)

Помогите =)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу