Vassasssin
Умник
Суть в том , что не работает вычитание времени на команду /mute
Команда работает ,в БД сохраняет , /unmute работает и проверка в чат работает .
Получается так , что ставит вечный мут и время не отнимается
Команда /mute
Проверка на чат
Ну и собственно мне непонятное из гайда . Должно вычитать из переменной по 1 каждую секунду .
Пример :
Я поставил затычку игроку на 1 минуту . Он не может писать в чат , вот что у него пишет "Доступ в чат заблокирован на 60 секунд" . Время не отнимается (!)
Помогите =)
Команда работает ,в БД сохраняет , /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;
}
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 секунд" . Время не отнимается (!)
Помогите =)
