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 Код:
|
.
.