26.04.2018, 17:40
PHP Code:
// The way you're checking for player team is very bad, what you should do is:
// On top of the script
new pTeam[MAX_PLAYERS]; // Create a variable to store player team
#define Police 0 // define teams
#define Criminal 1
new pClass[MAX_PLAYERS]; // Another variable to store player class
#define FBI 0 // define classes
#define Swat 1
#define Thief 2
#define Bomber 3
// OnGameModeInit
AddPlayerClass(283,1544.7887,-1675.4630,13.5591,90.0000,0,0,0,0,0,0); // FBI
AddPlayerClass(306,1544.7887,-1675.4630,13.5591,90.0000,0,0,0,0,0,0); // Swat
AddPlayerClass(124,1544.7887,-1675.4630,13.5591,90.0000,0,0,0,0,0,0); // Thief
AddPlayerClass(294,1544.7887,-1675.4630,13.5591,90.0000,0,0,0,0,0,0); // Bomber
public OnPlayerRequestClass(playerid, classid)
{
switch(classid)
{
case 0: // Classes are starting from 0 (The first class you have is 0)
{
pTeam[playerid] = Police;
pClass[playerid] = FBI;
}
case 1:
{
pTeam[playerid] = Police;
pClass[playerid] = Swat;
}
case 2:
{
pTeam[playerid] = Criminal;
pClass[playerid] = Thief;
}
case 3:
{
pTeam[playerid] = Criminal;
pClass[playerid] = Bomber;
}
}
return 1;
}
CMD:cm(playerid, params[])
{
if(pTeam[playerid] != Police) return SendClientMessage(playerid, 0xE74C3CFF, "{FF0000}Error: {FFFFFF}Only Law Enforcement may use this command.");
new string[128], message[128];
if(sscanf(params, "s[128]", message)) return SendClientMessage(playerid, COLOR_WHITE, "[SYNTEX]: /CM [Text]");
switch(pClass[playerid])
{
case FBI: format(string, sizeof(string), "{00FFFF}[FBI]%s: {1E90FF}%s", RPN(playerid), message);
case Swat: format(string, sizeof(string), "{00FFFF}[Swat]%s: {1E90FF}%s", RPN(playerid), message);
}
SendPlayerTeamMessage(playerid, BLUE, string);
return 1;
}
// and yes, the function should look like this then;
stock SendPlayerTeamMessage(playerid, color, string[])
{
foreach(new i : Player)
{
if(pTeam[i] == pTeam[playerid])
{
SendClientMessage(i, color, string);
}
}
return 1;
}