Приветствую, дело в том, что мут "вечный"
Поясню, к примеру я выдал мут на 1 минуту. И по завершению этой минуты мут никуда не исчезает, время продолжает идти вперед. Даже когда оно близится к нулю, оно не останавливается и продолжает идти минус..
Вот все что у меня есть связанное с мутом:
PHP код:
#define D_ADMIN_MUTE_TIME_REASON 15003
PHP код:
new unmutetimer;
PHP код:
enum pInfo
{
..
pMuted,
pMuteTime,
..
}
PHP код:
stock UnMute(playerid)
{
PlayerInfo[playerid][pMuted] = 0;
PlayerInfo[playerid][pMuteTime] = 0;
SendMe(playerid, COLOR_LIGHTRED, "С вас был снят бан чата. Не нарушайте правила");
return true;
}
PHP код:
public OnPlayerText(playerid, text[])
{
if(CheckPlayerMute(playerid)) return 0;
if(GetPVarInt(playerid, "Logged") == 0) { SendMe(playerid, COLOR_YELLOW2, "Пожалуйста авторизируйтесь!"); return 0; }
if(Mobile[playerid] != -1)
{
format(stringg, 127, "[Телефон] %s: %s", PlayerInfo[playerid][pName], text);
ProxDetector(15.0, playerid, stringg,0xE6E6E6E6,0xE6E6E6E6,0xE6E6E6E6,0x9C9C9CAA,0x757575AA,0x383838AA);
if(Mobile[Mobile[playerid]] == playerid) SendMe(Mobile[playerid], COLOR_YELLOW,stringg);
return 0;
}
if(GetPVarInt(playerid, "SelectCharPlace") > 0) return 0;
if(realchat == 1)
{
format(stringg, sizeof(stringg), "%s[%d]: %s", PlayerInfo[playerid][pName],playerid, text);
ProxDetector(15.0, playerid, stringg,0xE6E6E6E6,0xE6E6E6E6,0xE6E6E6E6,0x9C9C9CAA,0x757575AA,0x383838AA);
SetPlayerChatBubble(playerid, text, 0x6495EDFF, 15.0, 6000);
if(!IsPlayerInAnyVehicle(playerid))
{
new word = strlen(text),time;
switch(word)
{
case 1..7: time = 2150;
case 8..128: time = 4000;
}
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
Timer = SetTimerEx("ClearAnimText", time, false, "d", playerid);
}
return 0;
}
return 1;
}
PHP код:
stock CheckPlayerMute(playerid)
{
if(PlayerInfo[playerid][pMuted] != 1) return false;
new string[128];
format(string, sizeof(string), "У Вас бан чата.Осталось: %d секунд(ы)", PlayerInfo[playerid][pMuteTime] - gettime());
SendMe(playerid, 0xdd4400AA, string);
return true;
}
PHP код:
CMD:mute(playerid, params[])
{
if(GetPVarInt(playerid, "Logged") == 0) return 1;
new string[128];
if(PlayerInfo[playerid][pAdmin] < 2) return true;
if(sscanf(params, "dds[32]", params[0], params[1], params[2])) return SendMe(playerid, COLOR_GREY, "Введие: /mute [id] [минуты] [причина]");
if(!IsPlayerConnected(params[0])) return SendMe(playerid, COLOR_GREY, "Данный игрок не подключен к серверу");
if(PlayerInfo[params[0]][pMuted] == 1)
{
UnMute(params[0]);
format(string, sizeof(string), "Администратор %s снял затычку с игрока %s ", PlayerInfo[playerid][pName], PlayerInfo[params[0]][pName]);
}
else
{
PlayerInfo[params[0]][pMuteTime] = gettime()+(params[1]*60);
PlayerInfo[params[0]][pMuted] = 1;
format(string, sizeof(string), "Администратор %s поставил затычку игроку %s на %d минут. Причина: %s ", PlayerInfo[playerid][pName], PlayerInfo[params[0]][pName], params[1], params[2]);
}
SendClientMessageToAll(COLOR_LIGHTRED, string);
return true;
}
Посмотри ]