new bool:entradaArea[MAX_PLAYERS];
forward EntrarAreaRestritaSF(playerid); public EntrarAreaRestritaSF(playerid) { if(IsPlayerInPlace(playerid, -2956.8369, -1438.3058, -765.9012, 1587.6742)) { entradaArea[playerid] = true; SetTimer("EntrarAreaRestritaSF", 1000, true); new stringAviso[250]; format(stringAviso, sizeof(stringAviso), "(ATENЗВO!) Vocк acabou de entrar no espaзo aйreo de San Fierro, peзa autorizaзгo para efetuar o pouso, ou sua aeronave serб interceptada por mнsseis."); SendClientMessage(playerid, COR_VERMELHO, stringAviso); } else return entradaArea[playerid] = false; return 1; } forward SairAreaRestritaSF(playerid); public SairAreaRestritaSF(playerid) { if(!IsPlayerInPlace(playerid, -2956.8369, -1438.3058, -765.9012, 1587.6742)) { if(entradaArea[playerid] == false) { SetTimer("SairAreaRestritaSF", 1000, false); new stringAviso[250]; format(stringAviso, sizeof(stringAviso), "(ATENЗВO!) Vocк acabou de sair do espaзo aйreo de San Fierro. Sua aeronave nгo serб interceptada."); SendClientMessage(playerid, COR_VERMELHO, stringAviso); } } return 1; }
stock IsPlayerInPlace(playerid, Float:XMin, Float:YMin, Float:XMax, Float:YMax) { new RetValue = 0, Float:aX, Float:aY, Float:aZ ; GetPlayerPos(playerid, aX, aY, aZ); if(aX >= XMin && aY >= YMin && aX < XMax && aY < YMax) { RetValue = 1; } return RetValue; }
new bool:inArea[MAX_PLAYERS];
AvisoAreaRestritaSF(playerid) {
if(isPlayerInPlace(playerid, -2956.8369, -1438.3058, -765.9012, 1587.6742)) {
new stringAviso[250];
if(!inArea[playerid]) {
inArea[playerid] = true;
SetTimer("EntrarAreaRestritaSF", 1000, true);
format(stringAviso, sizeof(stringAviso), "(ATENЗВO!) Vocк acabou de entrar no espaзo aйreo de San Fierro, peзa autorizaзгo para efetuar o pouso, ou sua aeronave serб interceptada por mнsseis.");
SendClientMessage(playerid, COR_VERMELHO, stringAviso);
}
else {
inArea[playerid] = false;
SetTimer("SairAreaRestritaSF", 1000, false);
format(stringAviso, sizeof(stringAviso), "(ATENЗВO!) Vocк acabou de sair do espaзo aйreo de San Fierro. Sua aeronave nгo serб interceptada.");
SendClientMessage(playerid, COR_VERMELHO, stringAviso);
}
}
return 1;
}
isPlayerInPlace(playerid, Float:XMin, Float:YMin, Float:XMax, Float:YMax)
{
new Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
if(pos[0] >= XMin && pos[2] >= YMin && pos[0] <= XMax && pos[2] <= YMax)
{
return 1;
}
return 0;
}
Refactorizei um bocado. Veja se funciona agora:
pawn Код:
|