27.08.2014, 23:36
Colega tem vбrias formas de fazer um sistemas desse tipo.
A funзгo deve pegar o nome do local onde o Player dominou, segue o exemplo abaixo.
output:
Pra isso podemos criar uma funзгo, algo como abaixo.
Mйtodo 1:
Mйtodo 2:
Tambйm podemos fazer com um simples array.
Outra escolha e tambйm uma opзгo, podemos usar um vetor para sinalizar qual Local o Player dominou.
Eu fiz tudo aqui pelo fуrum mesmo, entгo nгo tente copiar pode ter erros, apenas analise e estude a lуgica. Bem simples, e posso te afirmar que existe muitas outras formas.
A funзгo deve pegar o nome do local onde o Player dominou, segue o exemplo abaixo.
output:
pawn Код:
A Gang 'Los_Tetudos' dominaram o local ('Grove Street')!
Pra isso podemos criar uma funзгo, algo como abaixo.
Mйtodo 1:
pawn Код:
new gPlayerZone[MAX_PLAYERS];
GetZoneName(playerid){
new _@String[64];
if (IsPlayerInRangeOfPoint( playerid, 7.0, X, Y, Z)) // Grove Street
gPlayerZone[playerid] = 0;
else if (IsPlayerInRangeOfPoint( playerid, 7.0, X, Y, Z)) // Los Santos
gPlayerZone[playerid] = 1;
else if (IsPlayerInRangeOfPoint( playerid, 7.0, X, Y, Z)) // Area51
gPlayerZone[playerid] = 2;
switch(lPlayerZone[playerid]){
case 0: format(_@String, sizeof(_@String), "Grove Street");
case 1: format(_@String, sizeof(_@String), "Los Santos");
case 2: format(_@String, sizeof(_@String), "Area51");
}
return _@String; // Retorna um array (Nome do local)
}
Mйtodo 2:
Tambйm podemos fazer com um simples array.
pawn Код:
#define MAX_GANG_ZONES (32)
#define MAX_GANG_ZONE_NAME (64)
new gGangZone_Name[MAX_GANG_ZONES][MAX_GANG_ZONE_NAME] = {
"Grove Street",
"Los Santos",
"San Fierro",
"Las Vegas DM",
"Favela"
// Deve fazer atй o valor especificado em MAX_GANG_ZONES, caso nгo for especificado o valor mбximo do array, nгo vai acusar erros na declaraзгo..
};
// Entгo criamos um protуtipo pra nossa funзгo
#define GetZoneName(%0)\
gGangZone_Name[%0]
pawn Код:
// Definiзгo para od locais 'Zone-ID'
#define GROVE_STREET (0)
#define LOS_SANTOS (1)
#define SAN_FIERRO (2)
new pOwnerArea[MAX_PLAYERS]; // Criamos um vetor
// No evento que ocorre a dominaзгo do local(checkpoint)
OwnerArea[playerid] = GROVE_STREET; // O valor deve ser exatamente o mesmo ID usado ao Criar o CheckPoint, sendo assim eles trabalham associados.
/*
A ultima coisa que tem que fazer й usar este vetor que indica o ID de qual Checkpoint vc dominou, e fica fбcil acessar um array com os nomes de todos CheckPoints.
Podemos atй definir uma funзгo com macro
*/
// Exemplo
#define GetPlayerZoneOwner(%0)\
OwnerArea[%0]
format( string, sizeof(string), "%s Esta sendo dominada, ajudem a livrar seu territуrio desses babacas!", gGangZone_Name[GetPlayerZoneOwner(playerid)]);
Eu fiz tudo aqui pelo fуrum mesmo, entгo nгo tente copiar pode ter erros, apenas analise e estude a lуgica. Bem simples, e posso te afirmar que existe muitas outras formas.