1.http://forum-pawno.ru/forum/1
gta new
Сообщений 1 страница 2 из 2
Поделиться22016-10-25 10:06:42
Чат по радиусу.
хочу убрать общий чат сделать как на рп
если кто то непонял то обьясню
на обычных дм люби пишут и все попадает в общий чат
а чат рп это когда человек подходит к человеку и тот только его слышит и все кто стоит рядом
а те кто далеко не слышат
обьясните пожалусто как убрать общий чат
public OnPlayerText(playerid, text[])
{
      new string[256], sendername[32];
     GetPlayerName(playerid, sendername, 32);
     format(string, sizeof(string), "%s(%d)", sendername, playerid); // Прикрепляем ид к нику
     SetPlayerName(playerid, string); // Меняем ник
     format(string, 128, "%s", caps); // Делаем сообщение
     SendPlayerMessageToAll(playerid, string); // Отправляем сообщение
     SetPlayerName(playerid, sendername); // Возвращаем исходный ник
     ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
     return 0;
}  
а вот сама функция
#define COLOR_PURPLE 0x800080AA  
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);  
  public ProxDetector(Float:radi, playerid, string[],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);  
  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;  
  }