[TUTORIAL]Como criar uma GangZone Dominavel


[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 Código:
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);

Código:
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
Agora, também entre public (aconselho ser no fim ou topo do GM)
pawn Código:
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;
}

Código:
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
OBS: Sem esta ultima parte, o /dominar não irá funcionar
No OnGameModeInit:

pawn Código:
Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437);
    Ballas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160);

Código:
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

No OnPlayerSpawn:
pawn Código:
GangZoneShowForPlayer(playerid, Groove, COR_GROOVE);
    GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS);

Código:
        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
No OnPlayerCommandText:
pawn Código:
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;
    }

Código:
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

Agora Entre public's (não pode estar dentro de nenhum public, pois é um.. xD)
pawn Código:
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;
}

Código:
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

No final do GM:

pawn Código:
public DinheiroGZ(playerid)
{
GivePlayerMoney(playerid,3000);
SendClientMessage(playerid,0xFFFF00FF,
"Você ganhou 3000$ por dominar a gangzone");
SetTimer(
"DinheiroGZ",3*60*1000,false);return 1;
}

Código:
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 Feita Por: Script Brasilian
e Usada, Editado e Postado Por: Pikeeno

0 comentários:

Postar um comentário