Mask help
#1

So I have this and it works to a point. The mask part covers up the name and when I have it on when I type is does say "Stranger Says".... Problem is when I have my mask off it just put what I type and it doesnt say any names at all

why could that be?

Код:
/*
Mask Maded By Paul_Saint & VIPAwesome
*/
#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;
}

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];
new sendername[MAX_PLAYER_NAME];

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;
}
Reply
#2

In OnPlayerText you forgot to get player name into sendername variable.
Reply
#3

example please? Not sure what you mean
Reply
#4

pawn Код:
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername);
Reply
#5

When I add that and I load the FS.... It makes my server restart lol
Reply
#6

Add this under the proxdetector function:
Код:
stock GetpName(playerid)
{
new uname[MAX_PLAYER_NAME];
GetPlayerName(playerid, uname, MAX_PLAYER_NAME);
return uname;
}
Replace "sendername" from OnPlayerText with:
Код:
GetpName(playerid)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)