24.07.2011, 12:42
Hi all.I need some help with mute for time it look like that: mute[playerid][time/sec].
new muted[ MAX_PLAYERS ];
CMD:mutemeforaminute( playerid, params[ ] ) {
SetTimerEx( "unmute", 60000, 0, "i", playerid );
muted[ playerid ] = 1;
return SendClientMessage( playerid, -1, "You have muted yourself for a minute. " );
}
public OnPlayerText( playerid, text[ ] ) {
if( muted[ playerid ] == 1 ) {
SendClientMessage( playerid, -1, "Can't talk while muted! " );
return 0;
}
return 1;
}
forward unmute( playerid );
public unmute( playerid ) {
SendClientMessage( playerid, -1, "A minute has passed, you have been unmuted. " );
muted[ playerid ] = 0;
return 1;
}
public OnPlayerDisconnect( playerid, reason ) {
muted[ playerid ] = 0;
return 1;
}
COMMAND:mute(playerid,params[])
{
new MuteID,MuteTime;
if(!IsPlayerAdmin(playerid)){return 1;}
if (sscanf(params, "ud", MuteID, MuteTime)){SendClientMessage(playerid, COLOR_ORANGE, "* mute player /mute [player_name] [time]");return 1;}
if (MuteID == INVALID_PLAYER_ID){SendClientMessage(playerid, COLOR_ORANGE, "This play do not exit");return 1;}
if(mute[MuteID] == true) { SendClientMessage(playerid,COLOR_ORANGE,"Player is already mute");return 1;}
SetTimerEx("MuteLeft",MuteTime,false,"i",MuteID);
MuteLiko[playerid] = SetTimerEx("MuteShow",1000,true,"i",MuteID);
mute[MuteID] = true;
PlayerData[playerid][rid][2] = MuteTime;
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,MAX_PLAYER_NAME);
new String[70];
format(String,sizeof(String),"* You have been muted by admin %i (seconds)",MuteTime);
SendClientMessage(MuteID,COLOR_ORANGE,String);
new String2[70];
format(String2,sizeof(String2),"* You muted %s %i (seconds)",Name,MuteTime);
SendClientMessage(playerid,COLOR_ORANGE,String2);
return 1;
}
new gMuted[MAX_PLAYERS];
CMD:mute(playerid, params[]) {
if(sscanf(params, "dd", params[0], params[1]) || (params[1] < 1)) {
SendClientMessage(playerid, -1, "Usage: /mute [playerid][time]");
} else {
new
tmp[128];
GetPlayerName(params[0], tmp, MAX_PLAYER_NAME);
gMuted[params[0]] = GetTickCount() + (params[1] * 1000);
format(tmp, sizeof tmp, "Player \"%s\" (%d) muted for %d seconds", tmp, params[0], params[1]);
SendClientMessage(playerid, 0xFFFFFFFF, tmp);
}
return true;
}
//OnPlayerText
if(gMuted[playerid]) {
if(GetTickCount() < gMuted[playerid]) {
new
tmp[64];
format(tmp, sizeof tmp, "Muted!, %d seconds remaining",
((gMuted[playerid] - GetTickCount()) / 1000));
SendClientMessage(playerid, 0xFF0000FF, tmp);
return false;
} else {
gMuted[playerid] = 0;
}
}
//OnPlayerDisconnect or OnPlayerConnect
muted[playerid] = 0;