if(PLogged[playerid] == 1)
{
if(WearingMask[playerid] == 0)
{
if(AccentOn[playerid] == 1)
{
format(string, sizeof(string), "%s says (%s accent): %s", GetPlayerNameEx(playerid), Accent[playerid],text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
format(string, sizeof(string), "%s says: %s", GetPlayerNameEx(playerid),text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
}
else
{
if(AccentOn[playerid] == 1)
{
format(string, sizeof(string), "Masked person says (%s accent): %s", Accent[playerid], text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
format(string, sizeof(string), "Masked person says: %s", text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
}
}
return 0;
}
new vWorld,
string[128];
vWorld=GetPlayerVirtualWorld(playerid);
format(string,sizeof(qqv),/*...*/);
foreach (Player, i)
{
if(GetPlayerVirtualWorld(i)==vWorld)
{
SendClientMessage(i, 0xFF66FFAA, string);
}
}
should work yes.
pawn Код:
|
if(PLogged[playerid] == 1)
{
new vworld = GetPlayerVirtualWorld(playerid);
for(new i; i<GetMaxPlayers(); i++)
{
if(GetPlayerVirtualWorld(i) == vworld)
{
if(WearingMask[playerid] == 0)
{
if(AccentOn[playerid] == 1)
{
format(string, sizeof(string), "%s says (%s accent): %s", GetPlayerNameEx(playerid), Accent[playerid],text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
format(string, sizeof(string), "%s says: %s", GetPlayerNameEx(playerid),text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
}
else
{
if(AccentOn[playerid] == 1)
{
format(string, sizeof(string), "Masked person says (%s accent): %s", Accent[playerid], text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
format(string, sizeof(string), "Masked person says: %s", text);
ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
}
}
}
}
return 0;
}
Your thinking is right, basically its the same thing
And yes, as you already said, you have to change the "playerid" to "i" so your loop will be implemented and take effect. Right now it will work only for the PlayerID 0 as you do not loop though any other players. |
if(PLogged[playerid] == 1)
{
new vworld = GetPlayerVirtualWorld(playerid);
for(new i; i<GetMaxPlayers(); i++)
{
if(GetPlayerVirtualWorld(i) == vworld)
{
if(WearingMask[playerid] == 0)
{
if(AccentOn[playerid] == 1)
{
format(string, sizeof(string), "%s says (%s accent): %s", GetPlayerNameEx(playerid), Accent[playerid],text);
ProxDetector(20.0, i, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
format(string, sizeof(string), "%s says: %s", GetPlayerNameEx(playerid),text);
ProxDetector(20.0, i, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
}
else
{
if(AccentOn[playerid] == 1)
{
format(string, sizeof(string), "Masked person says (%s accent): %s", Accent[playerid], text);
ProxDetector(20.0, i, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
else
{
format(string, sizeof(string), "Masked person says: %s", text);
ProxDetector(20.0, i, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
}
}
}
}
return 0;
}
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;
new vworld = GetPlayerVirtualWorld(playerid);
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerVirtualWorld(i) == vworld)
{
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;
}