Open
Description
The following code in COMMAND::mute
is suspicious:
Lines 5673 to 5677 in 3863697
Variable
targetid
is used in IsPlayerConnected()
before being assigned a value. The value is assigned later on with sscanf()
, and before that targetid
is zero-initialized by default, so
if(IsPlayerConnected(targetid))
works as
if(IsPlayerConnected(0))
which means the command won't work if Player 0 isn't connected.
You probably intended to write the code in the following way:
new targetid, minutes, reason[128], string[128];
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_RED, "Do Not Have Permission");
if(sscanf(params,"dds",targetid,minutes,reason)) { SendClientMessage(playerid, -1, "USAGE: /jail <playerid> <time> <reason>"); return 1;}
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_RED, "Player Not Connected");
if(muted[targetid] == true) return SendClientMessage(playerid, COLOR_RED, "Player is mute");
EDIT: The same oversight is also present in COMMAND::unmute
.
Metadata
Assignees
Labels
No labels