14.11.2012, 19:27
Observem este cуdigo:
Eu tenho 3 cidades no SA-MP, Los Santos, San Fierro e Las Venturas. Agora vamos supor que eu esteja em Las Venturas e que no chat do SA-MP apareзa o repуrter de Los Santos falando. Usando IsPlayerInLosSantos, IsPlayerInSanFierro e IsPlayerInLasVenturas, quero "separar" os repуrteres. Ou seja, se o player estiver em Los Santos, fazer com que ele sу veja as notнcias do repуrter de Los Santos, se o player estiver em San Fierro, fazer com que ele sу veja as notнcias do repуrter de San Fierro. Resumindo: Minha dъvida й como enviar uma mensagem para todos os players, mas o player sу poder ver a mensagem se estiver numa certa regiгo... Desde jб agradeзo!
Код:
if(strcmp(cmd, "/noticias", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMembro] == 9 || PlayerInfo[playerid][pLider] == 9)
{
new tmpcar = GetPlayerVehicleID(playerid);
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nao poder falar, Vocк foi calado");
return true;
}
if(IsAJornalCar(tmpcar)||PlayerToPoint(5,playerid,361.2997,203.8503,1008.3828))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /noticias [Texto]");
return true;
}
if(TentouDivulgar(result))
{
if(cdivulgar[playerid] >= 4)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE,"Aqui vocк nгo pode anunciar servidores!");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"Seu servidor й uma merda, nгo divulgue-o aqui!");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"Seu noob peguei esse IP e vou divulgar nesse server tambйm, uaheuhaeuhaeahe!");
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
Kick(playerid);
}
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
format(string, 128, "AdmAviso: [%d]%s tentou divulgar: %s.",playerid,playername,result);
ABroadCast(COLOR_YELLOW,string,1);
DivulgouLog(string);
cdivulgar[playerid] += 1;
return true;
}
format(string, sizeof(string), "Reporter %s: %s", sendername, result);
OOCNews(COLOR_NEWS,string);
PlayerInfo[playerid][pNewsSkill] ++;
if(PlayerInfo[playerid][pNewsSkill] == 50)
{ SendClientMessage(playerid, COLOR_YELLOW, "* Seu Reporter Agora e cargo 2, logo logo ja pode voar no helicoptero e falar AoVivo."); }
else if(PlayerInfo[playerid][pNewsSkill] == 100)
{ SendClientMessage(playerid, COLOR_YELLOW, "* Seu Reporter Agora e cargo 3, logo logo ja pode voar no helicoptero e falar AoVivo."); }
else if(PlayerInfo[playerid][pNewsSkill] == 200)
{ SendClientMessage(playerid, COLOR_YELLOW, "* O Seu Reporter Agora e cargo 4 e pode fazer coberturas com helicoptero"); }
else if(PlayerInfo[playerid][pNewsSkill] == 400)
{ SendClientMessage(playerid, COLOR_YELLOW, "* O Seu Reporter Agora e cargo 5 e pode conversar AoVivo com quem ele quizer."); }
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Vocк nгo estб no Jornal ou na Van !");
return true;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Vocк nгo й um Reporter !");
}
}//not connected
return true;
}


