if(strcmp(cmd, "/fine", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] <= 3 || PlayerInfo[playerid][pHelper] <= 4)
{
SendClientMessage(playerid, COLOR_GRAD1, " You are not authorized to use that command !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [playerid/PartOfName] [price] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [playerid/PartOfName] [price] [reason]");
return 1;
}
moneys = strvalEx(tmp);
if(moneys < 1) { SendClientMessage(playerid, COLOR_GREY, " Fine Money can't be below 1 !"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [playerid/PartOfName] [price] [reason]");
return 1;
}
if(UseAdmCmdTimer[playerid] > 3)
{
new IP[16];
new year, month, day;
getdate(year, month, day);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerIp(playerid, IP, sizeof(IP));
format(string, sizeof(string), "%s [%d/%d/%d] Name: %s Key: %s Reason: Spam.", IP, day, month, year,sendername,PlayerInfo[playerid][pKey]);
BanLog(string);
format(string, sizeof(string), "{AA3333}AdmCmd{FFFF00}: %s was banned, reason: Spam.", sendername);
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[playerid][pBand] = 3;
PlayerInfo[playerid][pPermBand] = 1;
BanEx(playerid, "Banned By: Autoban Reason: Spam");
return 1;
}
PlayerInfo[giveplayerid][pCash] = PlayerInfo[giveplayerid][pCash]-moneys;
GivePlayerMoney(giveplayerid,-moneys);
format(string, sizeof(string), "{AA3333}AdmCmd{FFFF00}: %s has been fined $%d by an Admin, reason: %s", giveplayer, moneys, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
UseAdmCmdTimer[playerid]++;
SetTimerEx("UseAdmCmd",3*1000,0,"i",playerid); //3 seconds
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " That player is Offline !");
return 1;
}
}
return 1;
}
if(PlayerInfo[playerid][pAdmin] <= 3 || PlayerInfo[playerid][pHelper] <= 4)
if(PlayerInfo[playerid][pAdmin] < 3 || PlayerInfo[playerid][pHelper] < 4)
Try editing this
pawn Code:
pawn Code:
|
if(PlayerInfo[playerid][pAdmin] <= 3 && PlayerInfo[playerid][pHelper] <= 4)
if(PlayerInfo[playerid][pAdmin] <= 3 && PlayerInfo[playerid][pHelper] <= 4)
pawn Code:
|
He doesn't, if just one of this one is higher it executes like he is admin/helper.
|
if(strcmp(cmd, "/fine", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 3)
{
SendClientMessage(playerid, COLOR_GRAD1, " You are not authorized to use that command !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [playerid/PartOfName] [price] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [playerid/PartOfName] [price] [reason]");
return 1;
}
moneys = strvalEx(tmp);
if(moneys < 1) { SendClientMessage(playerid, COLOR_GREY, " Fine Money can't be below 1 !"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [playerid/PartOfName] [price] [reason]");
return 1;
}
if(UseAdmCmdTimer[playerid] > 3)
{
new IP[16];
new year, month, day;
getdate(year, month, day);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerIp(playerid, IP, sizeof(IP));
format(string, sizeof(string), "%s [%d/%d/%d] Name: %s Key: %s Reason: Spam.", IP, day, month, year,sendername,PlayerInfo[playerid][pKey]);
BanLog(string);
format(string, sizeof(string), "AdmCmd: %s was banned by You_Got_Owned, reason: Spam.", sendername);
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[playerid][pBand] = 3;
PlayerInfo[playerid][pPermBand] = 1;
BanEx(playerid, "Banned By: Autoban Reason: Spam");
return 1;
}
PlayerInfo[giveplayerid][pCash] = PlayerInfo[giveplayerid][pCash]-moneys;
GivePlayerMoney(giveplayerid,-moneys);
format(string, sizeof(string), "AdmCmd: %s has been fined $%d by an Admin, reason: %s", giveplayer, moneys, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
UseAdmCmdTimer[playerid]++;
SetTimerEx("UseAdmCmd",3*1000,0,"i",playerid); //3 seconds
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " That player is Offline !");
return 1;
}
}
return 1;
}
You are stupid.
Anyway, make sure that PlayerInfo[playerid][pAdmin] DOES hold the correct values. |
Thanks i'm pretty sure that's not the problem with this command, but since you like to call people stupid and you know everything then you would know the problem revolved around the "||" "&&" issue.
I'm sorry, but are you stupid? |
That's just stupid. Think logic
Your admin level is high enough, BUT your helper level is not! Since you're using "||" it means "or" to call the code down. pawn Code:
|
if(PlayerInfo[playerid][pAdmin] >= 4 || PlayerInfo[playerid][pHelper] >= 5)