SA-MP Forums Archive
Logical OR || Operator doesn't work properly - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Logical OR || Operator doesn't work properly (/showthread.php?tid=654123)



Logical OR || Operator doesn't work properly - MiyuUchiha - 21.05.2018

I am creating sendrcon command on my server

Код:
CMD:sendrcon(playerid, params[])
{
	if(!IsPlayerAdmin(playerid) || pInfo[playerid][Admin] == 6) return SendClientMessage(playerid, 0xFFFFFFFF, "[HPRP]: You don't have enough permissions to use this command");
	{
        new rconcmd[128];
	    if(sscanf(params, "s[128]", rconcmd)) return SendClientMessage(playerid, 0xFFFFFFFF, "[HPRP] SYNTAX: /sendrcon [message]");
		{
			SendRconCommand(rconcmd);
			format(rconcmd, sizeof(rconcmd), "Command %s has been sent to RCON", rconcmd);
			SendClientMessage(playerid, 0xFFFFFFFF, rconcmd);
		}
	}
	return CMD_SUCCESS;
}
but when i got both var on my player, it says i don't have enough permission. but when i only have RCON assigned to my player, it works... so that means the error is on Logical OR Operator, cos i already check'd my stats, and i have Level 6 Admin on my player when i got denied... i've tried using both samp original pawn compiler and pawn-lang compiler

what do i need to do so when i got both var it would work?


Re: Logical OR || Operator doesn't work properly - DarkSkull - 21.05.2018

It should be like this:
PHP код:
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Admin] != 6) return SendClientMessage(playerid0xFFFFFFFF"[HPRP]: You don't have enough permissions to use this command"); 
In your code, It says, "If the player is not an admin or if he is an admin with level 6, Send error message". That's not what you want. What you want is, "If the player is not and admin or if he is not level 6, Send error message". The operator != translates to if the admin level is not equal to six. But I would recommend you to do this.

PHP код:
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Admin] < 6) return SendClientMessage(playerid0xFFFFFFFF"[HPRP]: You don't have enough permissions to use this command"); 
This means players with level 6 and above can use the command.


Re: Logical OR || Operator doesn't work properly - 10MIN - 21.05.2018

!IsPlayerAdmin(playerid) || pInfo[playerid][Admin] == 6

See that thing in red? It is the equality operator, so if left is equal to right (pInfo[playerid][Admin] and 6) it will give a value of true.
What you need is the inequality operator ( != ), which checks if left and right aren't equal.

PS: Read this article about C/++ operators (ignore the C/++ specific things) because Pawn is based on C's syntax.


Re: Logical OR || Operator doesn't work properly - MiyuUchiha - 21.05.2018

rep to both of u guys xd thanks, i'm so dumb