[Tutorial] [TUT]Como criar GangZone Dominavel
#1

[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
Agora, tambйm entre public (aconselho ser no fim ou topo do GM)

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
OBS: Sem esta ultima parte, o /dominar nгo irб funcionar

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
No OnPlayerSpawn:

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
No OnPlayerCommandText:

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
Agora Entre public's (nгo pode estar dentro de nenhum public, pois й um.. xD)

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
No final do GM:


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
Reply
#2

muito bom este tut, para ja nao й tao inesperiente XD. Aprovado.
Reply
#3

Maneiro
Reply
#4

Quote:
Originally Posted by Airton_
Maneiro
й simples, mas й muito longo e e presciso ter paciencia
Reply
#5

Legal Mais Como Ve as Coordenadas
Reply
#6

XTreme Vehicle Plotter, penso que й assim o nome programa
Reply
#7

desse geito nao da grana ne?
Reply
#8

Quote:
Originally Posted by andmeida10
[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);
Код:
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
Agora, tambйm entre public (aconselho ser no fim ou topo do GM)

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
OBS: Sem esta ultima parte, o /dominar nгo irб funcionar

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
No OnPlayerSpawn:

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
No OnPlayerCommandText:

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
Agora Entre public's (nгo pode estar dentro de nenhum public, pois й um.. xD)

pawn Код:
public DominarGrooveGroove(playerid)
{

GangZoneHideForAll(Groove);
GangZoneShowForAll(Groove, COR_GROOVE);

return 1;
}


public DominarGrooveBallas(playerid)
{

GangZoneHideForAll(Groove);
GangZoneShowForAll(Groove, COR_BALLAS);

return 1;
}


public DominarBallasBallas(playerid)
{

GangZoneHideForAll(Ballas);
GangZoneShowForAll(Ballas, COR_BALLAS);

return 1;
}


public DominarBallasGroove(playerid)
{

GangZoneHideForAll(Ballas);
GangZoneShowForAll(Ballas, COR_GROOVE);

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
__________________________________________________ ________________________________________________


Tutorial criado por: andmeida10
Queria saber como faz agora pra qnd a gang dominar ganhar dinheiro por dominar
Reply
#9

Eu tmb...
tipo o cara ganha grana a casa 3 min que tem o territorio em seu poder saca...
Reply
#10

Quote:
Originally Posted by Brunow
Eu tmb...
tipo o cara ganha grana a casa 3 min que tem o territorio em seu poder saca...
Actualizado para dar dinheiro ao Player a cada 3 minutos
Pode estar errado, pois nao testei e jб й tarde
Reply
#11

Quote:
Originally Posted by andmeida10
Quote:
Originally Posted by Brunow
Eu tmb...
tipo o cara ganha grana a casa 3 min que tem o territorio em seu poder saca...
Actualizado para dar dinheiro ao Player a cada 3 minutos
Pode estar errado, pois nao testei e jб й tarde
Muito bom vou testar
Reply
#12

Se o player sai da GZ, domina e ganha a grana
Reply
#13

Sim..... Brevemente posto para quando sair, parar de dominar
Reply
#14

Pessoal estou com um probleminha aki:

C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(194) : error 017: undefined symbol "gTeam"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(199) : error 017: undefined symbol "gTeam"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(207) : error 017: undefined symbol "gTeam"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(212) : error 017: undefined symbol "gTeam"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

pq isso?
Reply
#15

topo do GM:


pawn Code:
new gTeam[MAX_PLAYERS];
Reply
#16

Estou comeзando a aprender sobre isso, estou tentando analizar os codigos ainda...

Coloquei o comando

Code:
new gTeam[MAX_PLAYERS];
ai da o seguinte error:

Code:
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(4) : error 017: undefined symbol "MAX_PLAYERS"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(196) : error 017: undefined symbol "gang"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(201) : error 017: undefined symbol "gang"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(209) : error 017: undefined symbol "gang"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(214) : error 017: undefined symbol "gang"
C:\samp03asvr_R7_win32\gamemodes\lvdm.pwn(1149) : warning 203: symbol is never used: "gTeam"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


5 Errors.
Esqueci de mencionar que meu GM nao tem sistema de gang ( /gang /gang criar etc... )

Queria saber se isso tem algo haver, e se tem, como posso introduzir um sistema de gang no meu GM

Meu pwn para que vcs possam me ajudar : http://www.4shared.com/file/4hqLuDlr/lvdm.html


Espero que possam me ajudar, afinal vcs sao os feras!

Obrigado pelo Tuto de Gangs dominaveis andmeida10 Muito bem explicado parabens
Reply
#17

Ahh, pra quem me ajudar colocarei os creditos, pois й uma falta de respeito nao colocar os creditos, pois estas pessoas tbm colaboraram com o GM, agradeзo a todos que puderem me ajudar
Reply
#18

Oo nгo seria
static gTeam[MAX_PLAYERS];
Reply
#19

MSM COM O STATIC NAO DEU CERTO
Reply
#20

Bom...
Em vez de vocк colocar
if (gTeam[playerid] == Ballas)
if (gTeam[playerid] == Groove)
Vocк colocou:
if (gang[playerid] == Ballas)
if (gang[playerid] == Groove)

E quando dizem no para colocar algo no topo do GM, vocк coloca sempre abaixo dos includes.
Pronto seu gm ta ai:

http://www.4shared.com/file/v-gknBuV/lvdm.html
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)