SA-MP Forums Archive
Mask system - 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: Mask system (/showthread.php?tid=568798)



Mask system - kevin1990 - 25.03.2015

Could someone tell me why this wouldnt/wont work

Код:
#include <a_samp>
#include <ZCMD>
#define COLOR_GREY 0xAFAFAFAA
new masked[MAX_PLAYERS];

CMD:mask(playerid, params[])
{

   if(masked[playerid] == 0)
   {
   masked[playerid] = 1;
   SendClientMessage(playerid, -1,"You are now masked and your name is hidden.");
   for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i,playerid, false);
   }
   else
   {
   masked[playerid] = 0;
   SendClientMessage(playerid, -1,"You are no longer masked and your name is visble.");
   for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i,playerid, true);
   }
   return true;
}


public OnPlayerText(playerid, text[])
{
new string[128];
new ProxDetector;

if(masked[playerid] == 1)
		{
		    format(string,sizeof(string), "Stranger: %s",text);
		    ProxDetector(20.0, playerid, string,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY);
		}
		else
		{
        	format(string, sizeof(string), "%s: %s", sendername,text);
			ProxDetector(20.0, playerid, string,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY);
		}


}
I keep getting these errors

Quote:

ALL ON LINE 36
error 012: invalid function call, not a valid address
: warning 215: expression has no effect
: warning 215: expression has no effect
: warning 215: expression has no effect
: warning 215: expression has no effect
: warning 215: expression has no effect
: warning 215: expression has no effect
: warning 215: expression has no effect
: warning 215: expression has no effect
: error 001: expected token: ";", but found ")"
: error 029: invalid expression, assumed zero
: fatal error 107: too many error messages on one line




Re: Mask system - Konstantinos - 25.03.2015

If you ever get the error about undefined symbols, using "new" to declare it as a variable is not always the solution and in your case "ProxDetector" must be a function and not a variable you declared it to be. For that function, search it on ******, there're dozen of results and add it to the script, remove the declaration part and it'll compile.


Respuesta: Mask system - kevin1990 - 25.03.2015

Could you please give me an exampl? I have ben searching for things to do with proxdetector all night. I cannot find any solid solutions to this.


Re: Mask system - Konstantinos - 25.03.2015

http://forum.sa-mp.com/showpost.php?...42&postcount=3

Though it's kind of old function and if you're about to send the message with the same colour as you did in the code above, it's recommended not to use it and use the client messages instead.


Respuesta: Mask system - kevin1990 - 25.03.2015

How am I supposed to use the public proxdetector though when I am using the public OnPlayerText?


Re: Mask system - Konstantinos - 25.03.2015

Add the public function somewhere at your script (for example, at the bottom of it), just outside of callbacks etc.


Respuesta: Mask system - kevin1990 - 25.03.2015

I got it to compile. weird thing though. When I load the fs... no text shows up at all. When I unload works fine again.


Re: Mask system - Konstantinos - 25.03.2015

That's because you do not return any value in OnPlayerText callback.


Re: Mask system - Aly - 25.03.2015

Код:
forward ProxDetector(Float:radi, playerid, str[], col1, col2, col3, col4, col5);

public ProxDetector(Float:radi, playerid, str[],col1,col2,col3,col4,col5)
{
	if(IsPlayerConnected(playerid))
	{
		new Float:posx, Float:posy, Float:posz;
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		//radi = 2.0; //Trigger Radius
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i))
			{

				GetPlayerPos(i, posx, posy, posz);
				tempposx = (oldposx -posx);
				tempposy = (oldposy -posy);
				tempposz = (oldposz -posz);
				//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
				if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
				{
					SendClientMessage(i, col1, str);
				}
				else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
				{
					SendClientMessage(i, col2, str);
				}
				else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
				{
					SendClientMessage(i, col3, str);
				}
				else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
				{
					SendClientMessage(i, col4, str);
				}
				else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
				{
					SendClientMessage(i, col5, str);
				}
			}
		}
	}//not connected
	return 1;
}

public OnPlayerText(playerid, text[])
{
new string[128];

if(masked[playerid] == 1)
		{
		    format(string,sizeof(string), "Stranger: %s",text);
		    ProxDetector(20.0, playerid, string,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY);
		}
		else
		{
        	format(string, sizeof(string), "%s: %s", sendername,text);
			ProxDetector(20.0, playerid, string,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY);
		}
   return 0;
}