22/07/2023 19:10
Olá, to fazendo com q o OnPlayerText envie mensagem apenas aos jogadores proximos do playerid, porém está enviando a mensagem proximo e enviando uma no "chat global" ao mesmo tempo e nao to sabendo arrumar
Ja tentei trocar os returns de lugar, retornar false e true, porém tudo q consigo é q envie as duas mensagens, nao envie nenhuma ou só envie e aparece para o id 0 in-game
Ja tentei trocar os returns de lugar, retornar false e true, porém tudo q consigo é q envie as duas mensagens, nao envie nenhuma ou só envie e aparece para o id 0 in-game
Código PHP:
public OnPlayerText(playerid, text[])
{
new texto[128], Float:Pos[3], vip[128], novato[128], vip2[128];
format(texto, sizeof(texto), "| próximo | %s(%d) diz: %s", GetPlayerNameEx(playerid), playerid, text);
format(vip, sizeof(vip), "| próximo | %s(%d) [{1AB5FF}VIP{80FF00}] diz: %s", GetPlayerNameEx(playerid), playerid, text);
format(vip2, sizeof(vip2), "| próximo | %s(%d) [{1AB5FF}VIP{CAA520}+{80FF00}] diz: %s", GetPlayerNameEx(playerid), playerid, text);
format(novato, sizeof(novato), "| NOVATO | %s(%d) diz: %s", GetPlayerNameEx(playerid), playerid, text);
format(Log, sizeof(Log), "%s diz: %s", GetPlayerNameEx(playerid), playerid, text);
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
for(new i,a = GetMaxPlayers(); i < a; i++)
{
if(Player[playerid][Vip] >= 0)
{
if(Player[playerid][Vip] == 1)
{
if(IsPlayerInRangeOfPoint(i, 15.0, Pos[0], Pos[1], Pos[2]))
{
SendClientMessage(i, 0x80FF00AA, vip);
}
}
else if(Player[playerid][Vip] == 2)
{
if(IsPlayerInRangeOfPoint(i, 15.0, Pos[0], Pos[1], Pos[2]))
{
SendClientMessage(i, 0x80FF00AA, vip2);
}
}
else if(Player[playerid][Vip] == 0)
{
if(IsPlayerInRangeOfPoint(i, 15.0, Pos[0], Pos[1], Pos[2]))
{
SendClientMessage(i, 0x80FF00AA, texto);
}
}
}
if(Player[i][Admin] > 0 || Player[i][Mod] > 0 || Player[i][Pika] > 0 )
{
if(!IsPlayerInRangeOfPoint(i, 15.0, Pos[0], Pos[1], Pos[2]))
{
SendClientMessage(i, roxo, novato);
}
}
return 0;
}
fileLog("ChatProximo", Log);
return 0;
}