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; }