How to create T text only here around u! and....
#6

"LimitGlobalChatRadius" affects the whole chat. For example, when you say something, it will only send it to everyone who's within 40m radius of the person who spoke.

If you want to make a local chat, that is sent to players within 40m radius, use this:

// Will send a message to everyone who is within 40m radius of you, when using "-message".

Код:
public OnPlayerText(playerid, text[])
{
  new string[128],
     name[17];

  GetPlayerName(playerid,name,sizeof(name));

  if(text[0] == '-')
  {
    format(string,sizeof(string),"%s: %s",name,text);
    SendProximityMessage(40.0,playerid,string,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY);
    for(new i = 0; i <= MAX_PLAYERS; i++)
      if(GetDistanceBetweenPlayers(i,playerid) > 40 && i != playerid)
        return false;
    SendClientMessage(playerid,COLOR_GREY,"| Nobody was close enough to hear you.");
    return false;
  }
  return 0;
}
Код:
stock SendProximityMessage(Float:radi, playerid, string [], col1, col2, col3, col4, col5)
{
	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);
	for(new i = 0; i <= MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) == 1 && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
		{

				GetPlayerPos(i, posx, posy, posz);
				tempposx = (oldposx - posx);
				tempposy = (oldposy - posy);
				tempposz = (oldposz - posz);
				if(((tempposx < radi / 16) && (tempposx > -radi / 16)) && ((tempposy < radi / 16) && (tempposy > -radi / 16)) && ((tempposz < radi / 16) && (tempposz > -radi / 16)))
				{
					SendClientMessage(i, col1, string );
				}
				else if (((tempposx < radi / 8) && (tempposx > -radi / 8)) && ((tempposy < radi / 8) && (tempposy > -radi / 8)) && ((tempposz < radi / 8) && (tempposz > -radi / 8)))
				{
					SendClientMessage(i, col2, string );
				}
				else if (((tempposx < radi / 4) && (tempposx > -radi / 4)) && ((tempposy < radi / 4) && (tempposy > -radi / 4)) && ((tempposz < radi / 4) && (tempposz > -radi / 4)))
				{
					SendClientMessage(i, col3, string );
				}
				else if (((tempposx < radi / 2) && (tempposx > -radi / 2)) && ((tempposy < radi / 2) && (tempposy > -radi / 2)) && ((tempposz < radi / 2) && (tempposz > -radi / 2)))
				{
					SendClientMessage(i, col4, string );
				}
				else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
				{
					SendClientMessage(i, col5, string );
				}

		}
	}
	return 1;
}
I'm not sure if it will compile right away, but you get the idea.

Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)