new Muted[MAX_PLAYERS];
public OnPlayerText(playerid, text[])
{
if(Muted[playerid] == 1)
{
SendClientMessage(playerid,-1,"You are currently muted, you can not talk in chat.");
return 0;
}
return 1;
}
CMD:mute(playerid,params[])
{
new targetid,string[128];
if(Muted[playerid] == 0)
{
if(PlayerInfo[playerid][pAdmin] >1)
{
if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1, "Syntax - /mute [playerid]");
{
Muted[playerid] = 1;
format(string,sizeof(string), "%s has been muted by an administrator.",targetid);
SendClientMessageToAll(-1, string);
}
}
}
return 1;
}
CMD:unmute(playerid,params[])
{
new targetid, string[128];
if(Muted[playerid] == 1)
{
if(PlayerInfo[playerid][pAdmin] >1)
{
if(sscanf(params,"u",targetid)) return SendClientMessage(playerid, -1, "Syntax - /unmute [playerid]");
{
Muted[playerid] = 1;
format(string,sizeof(string),"%s has been un-muted by an administrator.",targetid);
SendClientMessageToAll(-1, string);
}
}
}
return 1;
}
Muted[playerid] = 1;
Muted[playerid] = 0;
|
You are using
Код:
Muted[playerid] = 1; Change the value to false aka 0 in the unmute command. Код:
Muted[playerid] = 0; |
(blank) has been muted/un-muted by an administrator.
CMD:mute(playerid, params[])
{
new targetid, targetname[MAX_PLAYER_NAME], string[144];
if(!PlayerInfo[playerid][pAdmin])
return 0;
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, -1, "Syntax: /mute [playerid]");
if(Muted[targetid] == 1)
return SendClientMessage(playerid, -1, "The player is already muted.");
GetPlayerName(playerid, targetname, MAX_PLAYER_NAME);
Muted[targetid] = 1;
format(string, sizeof(string), "%s (%d) has been muted by an administrator.", targetname, targetid);
SendClientMessageToAll(-1, string);
return 1;
}
CMD:unmute(playerid, params[])
{
new targetid, targetname[MAX_PLAYER_NAME], string[144];
if(!PlayerInfo[playerid][pAdmin])
return 0;
if(sscanf(params, "u", targetid))
return SendClientMessage(playerid, -1, "Syntax: /mute [playerid]");
if(!Muted[playerid])
return SendClientMessage(playerid, -1, "The player is not muted.");
GetPlayerName(playerid, targetname, MAX_PLAYER_NAME);
Muted[targetid] = 0;
format(string, sizeof(string), "%s (%d) has been un-muted by an administrator.", targetname, targetid);
SendClientMessageToAll(-1, string);
return 1;
}
|
Код:
(blank) has been muted/un-muted by an administrator. |
format(string,sizeof(string),"%s has been un-muted by an administrator.",targetid);
SendClientMessageToAll(-1, string);
|
Hey, that looks really clean and seemed like it fixed my issues. Care to explain what you changed?
![]() |
CMD:mute(playerid,params[])
{
new targetid,string[128];
if(Muted[playerid] == 0) // this mute check should be under sscanf and you are checking if you are muted yourself instead of the target player.
{
if(PlayerInfo[playerid][pAdmin] >1) // I check if player admin level is 0, what you did here is also correct.
{
if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1, "Syntax - /mute [playerid]");
{
Muted[playerid] = 1; // same here, instead of muting the targetid - you mute yourself.
format(string,sizeof(string), "%s has been muted by an administrator.",targetid); // you are quoting the targetid, not targetname. To get targetname, you need to create a different variable for that and use GetPlayerName.
SendClientMessageToAll(-1, string);
}
}
}
return 1;
}