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;
}