03.10.2010, 18:22
(
Последний раз редактировалось ipsBruno; 04.10.2010 в 12:21.
)
Introduзгo::
lб neste tutorial ensinarei a criar Gang Zones,nгo serб como os tutoriais anteriores,neste tutorial usaremos 1 public para todas gang,assim nгo necessitando criar centenas de publics para um simples domнnio, e sim um array onde armazenarб tudo,eficiente,rбpido,simples e fбcil.
Para iniciarmos necessita que criem 2 Arrays,uma contendo as coordenadas das Gang Zones e outra contendo os nomes.
Colocando elas::
Topo GM:
Nъmero de Gang Zones que serгo criadas
Logo Abaixo:
Nome das GangZones (Nicks de players da FeK)
[GZS_CRIADAS] = Nъmero de Gang Zones
new GZCriadas = Array que irб armazenar no loop para criar as Gang Zones,posteriormente.
Obs: O ъltimo nгo deve conter Virgula ,
Agora vamos criar a Array onde armazenarб coordenadas das Gang Zones
Logo Abaixo da Array acima
[GZS_CRIADAS] = Nъmeros de Gang Zones
[4] = Nъmero de Coordendas (x,y,x,y) [DEIXE 4 SEMPRE]
Criando elas::
Agora em OnGameModeInit vamos executar a criaзгo da Gang Zones:
printf = Irб imprimir no console os nomes das Gang Zones que serгo criadas,esta funзгo й importante para checar se a gang zone foi criada ou nгo.
GangZoneCreate = Irб criar as gang zones,com base nas coordenadas definidas anteriormente.
Mostrando elas :
Para mostrar usamos o mesmo que criar,com loop e tudo.
EM OnPlayerSpawn
Checando Бrea do Player::
Para checar a Бrea do player nessessitaremos de uma simples Stock chamada IsPlayerInArea
Ou atй mesmo use esta minha,ela checa se o player esta em alguma Gang Zone
Esta stock checa se X,Y estгo igual as coordenadas da Gang Zone atravйs da Amplitude e checa se a Altura for menor que 500 para poder iniciar domнnio.
Agora usando o comando em OnPlayerCommandText:
Dominando elas::
Este comando detecta se o player estiver na бrea,caso estiver irб pegar o nome da gang zone que ele esta e comecarб a fazer ela piscar com sua cor,com isso iniciarб um timer que chamarб essa funзгo:
estб public checa se o player estб na бrea,caso nгo estiver = Perdeu se Estiver = Ganhou
Tutorial acabado,criado por [FeK]DraKiNs do Blog [FeK]Squad.
NAO PERMITO POSTAR EM OUTROS BLOGS
ERROS -> PM
lб neste tutorial ensinarei a criar Gang Zones,nгo serб como os tutoriais anteriores,neste tutorial usaremos 1 public para todas gang,assim nгo necessitando criar centenas de publics para um simples domнnio, e sim um array onde armazenarб tudo,eficiente,rбpido,simples e fбcil.
Para iniciarmos necessita que criem 2 Arrays,uma contendo as coordenadas das Gang Zones e outra contendo os nomes.
Colocando elas::
Topo GM:
pawn Код:
#define GZS_CRIADAS 4
Logo Abaixo:
Nome das GangZones (Nicks de players da FeK)
pawn Код:
new GZCriadas[GZS_CRIADAS];
new NomesGZs[GZS_CRIADAS][] =
{
"[FeK]DraKiNs",//1
"[FeK]Higor",//2
"[FeK]Vitor",//3
"[FeK]RockManN"//4 OBS: Ъltimo sem vнrgula
};
new GZCriadas = Array que irб armazenar no loop para criar as Gang Zones,posteriormente.
Obs: O ъltimo nгo deve conter Virgula ,
Agora vamos criar a Array onde armazenarб coordenadas das Gang Zones
Logo Abaixo da Array acima
pawn Код:
new CordGZs[GZS_CRIADAS][4] = {
{2217,1901,2333,2013}, // [FeK]DraKiNs
{1875,641,1978,764}, // [FeK]Higor
{-2201,-281,-2011,-80}, // [FeK]Vitor
{-2015,1375,-1799,1601} // [FeK]RockManN
};
[4] = Nъmero de Coordendas (x,y,x,y) [DEIXE 4 SEMPRE]
Criando elas::
Agora em OnGameModeInit vamos executar a criaзгo da Gang Zones:
pawn Код:
for (new i = 0; i <GZS_CRIADAS; i++) // Loop
{
GZCriadas[i] = GangZoneCreate(CordGZs[i][0], CordGZs[i][1], CordGZs[i][2], CordGZs[i][3]);
printf("Gang Zone %s Criada com sucesso",NomesGZs[i]);
}
GangZoneCreate = Irб criar as gang zones,com base nas coordenadas definidas anteriormente.
Mostrando elas :
Para mostrar usamos o mesmo que criar,com loop e tudo.
EM OnPlayerSpawn
pawn Код:
for (new i = 0; i <GZS_CRIADAS; i++) // Loop
{
GangZoneShowForPlayer(GZCriadas[i],COR_INICIAL_AQUI);
printf("Gang Zone %s Criada com sucesso",NomesGZs[i]);
}
Para checar a Бrea do player nessessitaremos de uma simples Stock chamada IsPlayerInArea
Ou atй mesmo use esta minha,ela checa se o player esta em alguma Gang Zone
pawn Код:
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 true;
return false;
}
Agora usando o comando em OnPlayerCommandText:
Dominando elas::
pawn Код:
if(!strcmp(cmdtext, "/dominar", true))
{
if(!IsAreaInGangCheck(playerid)) SendClientMessage(playerid, 0xFFFFFFFF, "SERVER: Vocк nгo estб em nenhuma Gang Zone,FAIL");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new name[MAX_PLAYER_NAME], string[44];
GetPlayerName(playerid, name, sizeof(name));
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) {
format(string, sizeof(string), "%s comeзou a dominar a gang zone %s.",name,NomesGZs[i]);
}
SendClientMessageToAll(0xFFFF00AA, string);
GangZoneFlashForAll(GZCriadas[i], GetPlayerColor(playerid))
SetTimer("Terminar",60000,false);
return 1;
}
pawn Код:
forward Terminar(playerid);
public Terminar(playerid)
{
if(!IsAreaInGangCheck(playerid)) {
SendClientMessageToAll(0xFFFF00AA, "Nгo consiguiram dominar o territуrio");
}
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new name[MAX_PLAYER_NAME], string[44];
GetPlayerName(playerid, name, sizeof(name));
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) {
format(string, sizeof(string), "%s conseguiu dominar %s.",name,NomesGZs[i]);
GangZoneStopFlashForAll(GZCriadas[i]);
}
SendClientMessageToAll(0xFFFF00AA, string);
return true;
}
Tutorial acabado,criado por [FeK]DraKiNs do Blog [FeK]Squad.
NAO PERMITO POSTAR EM OUTROS BLOGS
ERROS -> PM