23.04.2010, 20:31
[TUT]Como criar uma GangZone Dominavel
__________________________________________________ ________________________________________________Pode parecer muito dificil, mas nгo й assim tanto. Obvio que tem que ter um bocado de paciкncia e tals...
__________________________________________________ ________________________________________________
No topo do GM:
pawn Код:
new Groove;
new Ballas;
#define COR_GROOVE 0x00800096
#define COR_BALLAS 0xFF00CDFF
forward DominarGrooveGroove(playerid);
forward DominarGrooveBallas(playerid);
forward DominarBallasBallas(playerid);
forward DominarBallasGroove(playerid);
forward DinheiroGZ(playerid);
Код:
new Groove; --> Para podermos criar a GZ new Ballas; --> Para podermos criar a GZ #define COR_GROOVE 0x00800096 --> Definimos a cor de Groove #define COR_BALLAS 0xFF00CDFF --> Definimos a cor de Ballas forward DominarGrooveGroove(playerid); --> Para o SetTimer depois forward DominarGrooveBallas(playerid); --> Para o SetTimer depois forward DominarBallasBallas(playerid); --> Para o SetTimer depois forward DominarBallasGroove(playerid); --> Para o SetTimer depois forward DinheiroGZ(playerid); --> Para o SetTimer dps para dar a grana
pawn Код:
stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax )
{
new RetValue = 0;
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z );
if( X >= XMin && Y >= YMin && X < XMax && Y < YMax )
{
RetValue = 1;
}
return RetValue;
}
Код:
Isto jб й um bocado avanзado, vou ser breve: stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax ) --> Cria a funзгo e define a definiзгo para usarmos no /dominar GetPlayerPos(playerid,X,Y,Z ); --> Pega a posiзгo do player
No OnGameModeInit:
pawn Код:
Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437);
Ballas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160);
Код:
Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437); --> Cria a GangZone no Servidor Ballas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160); --> Cria a GangZone no Servidor
pawn Код:
GangZoneShowForPlayer(playerid, Groove, COR_GROOVE);
GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS);
Код:
GangZoneShowForPlayer(playerid, Groove, COR_GROOVE); --> Mostra a GangZone para o Player quando ele spawnar GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS); --> Mostra a GangZone para o Player quando ele spawnar
pawn Код:
if (strcmp("/dominar", cmdtext, true, 10) == 0)
{
if(IsPlayerInPlace(playerid,2239.024,-1721.339, 2512.828, -1638.437))
{
if(gTeam == BALLAS)
{
GangZoneFlashForAll(Groove,COR_BALLAS);
SetTimer("DominarBallasGroove",60000,false);
}
else if(gTeam == GROOVE)
{
GangZoneFlashForAll(Groove,COR_GROOVE);
SetTimer("DominarGrooveGroove",60000,false);
}
}
else if(IsPlayerInPlace(playerid,2282.1401,2425.7576,3.4692,357.7160))
{
if(gTeam == BALLAS)
{
GangZoneFlashForAll(Groove,COR_BALLAS);
SetTimer("DominarBallasBallas",60000,false);
}
else if(gTeam == GROOVE)
{
GangZoneFlashForAll(Groove,COR_GROOVE);
SetTimer("DominarGrooveBallas",60000,false);
}
}
return 1;
}
Код:
if (strcmp("/dominar", cmdtext, true, 10) == 0) --> Definimos o comando para ser /dominar if(IsPlayerInPlace(playerid,2239.024,-1721.339, 2512.828, -1638.437)) --> Verifica se o player estб na GangZone if(gTeam == BALLAS) --> Verifica se o player й dos Ballas GangZoneFlashForAll(Groove,COR_BALLAS); --> Faz A GangZone comeзar a piscar SetTimer("DominarBallasGroove",60000,false); --> Comeca o tempo para a GangZone ficar dominada else if(gTeam == GROOVE) --> Verifica se o player й da Groove GangZoneFlashForAll(Groove,COR_GROOVE); --> Faz A GangZone comeзar a piscar SetTimer("DominarGrooveGroove",60000,false); --> Comeca o tempo para a GangZone ficar dominada
pawn Код:
public DominarGrooveGroove(playerid)
{
GangZoneHideForAll(Groove);
GangZoneShowForAll(Groove, COR_GROOVE);
SetTimer("DinheiroGZ",3*60*1000,false);
return 1;
}
public DominarGrooveBallas(playerid)
{
GangZoneHideForAll(Groove);
GangZoneShowForAll(Groove, COR_BALLAS);
SetTimer("DinheiroGZ",3*60*1000,false);
return 1;
}
public DominarBallasBallas(playerid)
{
GangZoneHideForAll(Ballas);
GangZoneShowForAll(Ballas, COR_BALLAS);
SetTimer("DinheiroGZ",3*60*1000,false);
return 1;
}
public DominarBallasGroove(playerid)
{
GangZoneHideForAll(Ballas);
GangZoneShowForAll(Ballas, COR_GROOVE);
SetTimer("DinheiroGZ",3*60*1000,false);
return 1;
}
Код:
public DominarBallasGroove(playerid) --> Й a public que definimos no forward e que usamos no SetTimer do /dominar GangZoneHideForAll(Ballas); --> Esconde a GangZone (para ficar sem Cor e nуs redefinirmos a cor dela de novo) GangZoneShowForAll(Ballas, COR_GROOVE); --> Cria a GangZone com a cor desejada SetTimer("DinheiroGZ",3*60*1000,false); --> Activa para dar o dinheiro a cada 3 minutos ao player
pawn Код:
public DinheiroGZ(playerid)
{
GivePlayerMoney(playerid,3000);
SendClientMessage(playerid,0xFFFF00FF,"Vocк ganhou 3000$ por dominar a gangzone");
SetTimer("DinheiroGZ",3*60*1000,false);
return 1;
}
Код:
GivePlayerMoney(playerid,3000); ---> Dб o dinheiro para o Player
SendClientMessage(playerid,0xFFFF00FF,"Vocк ganhou 3000$ por dominar a gangzone"); ---> Manda uma mensagem
SetTimer("DinheiroGZ",3*60*1000,false); ---> Volta a activar o Timer para voltar a dar dinheiro ao fim de 3 min de nv
Tutorial criado por: andmeida10