#define GZS_CRIADAS 8
new GZCriadas[GZS_CRIADAS];
new NomesGZs[GZS_CRIADAS][] =
{
"BarcoN",//1
"BarcoP",//2
"Golfers",//3
"Hunter",//4
"Industria",//5
"PertoDoAero",//6
"Puteiro",//7
"Wokers"//8
};
new Float:CordGZs[GZS_CRIADAS][8] =
{
{-1486.952,1501.404,-1347.895,1548.743}, // BarcoN
{-2545.777,1506.446,-2253.83,1588.191}, // BarcoP
{-2811.853,-407.9592,-2618.718,-183.0962}, // Golfers
{-2556.915,-695.9416,-2483.524,-569.7027}, // Hunter
{-1158.624,-774.8409,-950.0385,-565.7578}, // Industria
{-2195.441,-1051.009,-1845.104,-688.9946}, // PertoDoAero
{-2738.462,1319.935,-2553.053,1548.743}, // Puteiro
{-2151.333,112.7761,-1989.101,361.3089} // Wokers
};
forward Terminar(playerid);
for(new i = 0; i <GZS_CRIADAS; i++) //Loop
{
GZCriadas[i] = GangZoneCreate(CordGZs[i][0], CordGZs[i][1], CordGZs[i][2], CordGZs[i][3]);
}
public Terminar(playerid)
{
if(!IsAreaInGangCheck(playerid))
{
SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
}
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i=0; i < GZS_CRIADAS; i++)
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneStopFlashForAll(GZCriadas[i]);
}
return 1;
}
CMD:dominar(playerid,params[])
{
if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < GZS_CRIADAS; i++)
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
}
SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
SetTimer("Terminar",5000,false);
return 1;
}
stock IsAreaInGangCheck(playerid)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for (new i=0; i < GZS_CRIADAS; i++)
if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500) return 1;
return 0;
}
bom queria que alguem me ajudasse a colocar pra nгo dominar quando outra gang ou um memnbro da mesma gang estiver dominando.
E tem umn problema quando domina nгo fica com a cor da gang que dominou .. todo o cуdigo: pawn Код:
|
Uma coisa muito ъtil para vocк.... Clique aqui (se esse nгo ajudar....) CLIQUE NESSE
|
Cara, crie uma array com os todos os players,
e quando o player estiver dominnado, armazene o id da gangzona na array criada. Logo quando ele terminar de dominar vocк zera a array(colocando valor -1), assim nгo dando incompatibilidade com os id's das gangzones. Cheers. |
new
PlayerDominating[MAX_PLAYERS char]
;
CMD:dominar(playerid,params[])
{
if(!IsAreaInGangCheck(playerid))
return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < GZS_CRIADAS; i++)
{
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
PlayerDominating{playerid} = i;
}
}
// Criamos um loop para percorrer todos os players.
for(new i, e = GetMaxPlayers(); i != e; ++i){
// Com a condiзгo dos mesmos estarem connectados
if(IsPlayerConnected(i)){
// e tambйm que o id seja diferente do player que estб dominando
if(i != playerid){
// Verifica se o id em questгo, estб dominando a mesma gangzona
if(PlayerDominating{playerid} == PlayerDominating{i}){
// Manda mensagem
SendClientMessage(playerid, red, "ERROR: Alguйm de sua equipe jб estб dominando esta gangzona");
// Zera a array de dominaзгo
PlayerDominating{playerid} = -1;
return false;
}
}
}
}
SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
SetTimerEx("Terminar",5000,false, "d", playerid);
return 1;
}
public Terminar(playerid)
{
if(!IsAreaInGangCheck(playerid))
{
SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
}
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i=0; i < GZS_CRIADAS; i++)
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneStopFlashForAll(GZCriadas[i]);
}
PlayerDominating{playerid} = -1;
return 1;
}
new PlayerDominating[MAX_PLAYERS char];
CMD:dominar(playerid,params[])
{
if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < GZS_CRIADAS; i++)
{
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
PlayerDominating{playerid} = i;
}
}
for(new i, e = GetMaxPlayers(); i != e; ++i)
{
if(IsPlayerConnected(i))
{
if(i != playerid)
{
if(PlayerDominating{playerid} == PlayerDominating{i})
{
SendClientMessage(playerid, red, "-Erro- Jб esxiste uma gangue(ou sua gangue) dominando estб gangzone");
PlayerDominating{playerid} = -1;
return 0;
}
}
}
}
SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
SetTimerEx("Terminar",5000,false,"d",playerid);
return 1;
}
public Terminar(playerid)
{
if(!IsAreaInGangCheck(playerid))
{
SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
}
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i=0; i < GZS_CRIADAS; i++)
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneStopFlashForAll(GZCriadas[i]);
}
PlayerDominating{playerid} = -1;
return 1;
}
Ficou desse modo:
pawn Код:
|
CMD:dominar(playerid,params[])
{
if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < GZS_CRIADAS; i++)
{
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
PlayerDominating{playerid} = i;
}
}
for(new i, e = GetMaxPlayers(); i != e; ++i)
{
if(IsPlayerConnected(i))
{
if(i != playerid) // ATENЗГO: Se o id do player for igual ao interador I, o cуdigo abaixo serб ignorado!!, entгo caso for testar consigo mesmo , apague esta linha!!!
{
if(PlayerDominating{playerid} == PlayerDominating{i})
{
SendClientMessage(playerid, red, "-Erro- Jб esxiste uma gangue(ou sua gangue) dominando estб gangzone");
PlayerDominating{playerid} = -1;
return 0;
}
}
}
}
SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
SetTimerEx("Terminar",5000,false,"d",playerid);
return 1;
}
public Terminar(playerid)
{
if(!IsAreaInGangCheck(playerid))
{
return SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
}
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i=0; i < GZS_CRIADAS; i++)
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneStopFlashForAll(GZCriadas[i]);
GangZoneShowForAll(GZCriadas[i], GetPlayerColor(playerid));
}
PlayerDominating{playerid} = -1;
return 1;
}
CMD:dominar(playerid,params[])
{
if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < GZS_CRIADAS; i++)
{
if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
{
GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
PlayerDominating{playerid} = i;
SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
SetTimerEx("Terminar",5000,false,"d",playerid);
}
}
for(new i, e = GetMaxPlayers(); i != e; ++i)
{
if(IsPlayerConnected(i))
{
if(PlayerDominating{playerid} == PlayerDominating{i})
{
SendClientMessage(playerid,red,"-Erro- Essa gangue zone jб й de seu time!");
PlayerDominating{playerid} = -1;
return 0;
}
}
}
return 1;
}