if(strcmp(cmd, "/radio", true) == 0 || strcmp(cmd, "/r", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new wstring[128];
new faction = PlayerInfo[playerid][pFaction];
new rank = PlayerInfo[playerid][pRank];
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, "[Usage] (/r)adio");
return 1;
}
if(Muted[playerid])
{
SendClientMessage(playerid, COLOR_GREY, "[Error] You can not use the radio, You are muted");
return 1;
}
if(PlayerInfo[playerid][pFaction] == 5)
{
if(rank == 1)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank1],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 2)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank2],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 3)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank3],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 4)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank4],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 5)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank5],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 6)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank6],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 7)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank7],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 8)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank8],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 9)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank9],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
else if(rank == 10)
{
format(wstring, sizeof(wstring), "[Radio] %s %s: %s, over",DynamicFactions[faction][fRank10],GetPlayerNameEx(playerid),result);
FactionChatLog(wstring);
}
SendFactionMessage(5, COLOR_LSPD, wstring);
printf("%s", wstring);
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(i != playerid)
{
ProxDetector(20.0, i, wstring,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
}
}
return 1;
}
stock SendLocalChat(playerid,color,msg[],Float:radius)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new ply;ply<MAX_PLAYERS;ply++)
{
if(IsPlayerInRangeOfPoint(ply,radius,x,y,z))SendClientMessage(ply,color,msg);
}
return 1;
}
|
Originally Posted by Joe Staff
ProxDetector sends a message to players depending on their position (local chat)
I suggest you use something way better, and a better method pawn Код:
|
The problem is i only want it to appear once for the guy who wrote it because i use a "SendFactionChat" string, and then a proxdetector which sends my messages twice.