[Tutorial] Criando Uma Gang Com Comando/Spawn/Skin/Cor 1.0
#1

Olha. Vejo Muitas Dъvidas de Como Criar uma Gang. Irei Fazer um Breve Tutorial De Como Criar Gangs. Irei Criar Dъvidas, Vamos Lб.

1.1 - Primeiramente, Vamos Definir Nossa gTeam, Que Sevirб Para Ajudar Nossas Gangs Que Vamos Definir.


pawn Код:
new gTeam[MAX_PLAYERS];
1.2 - Agora Vamos Definir Nossas Gangs, Dando Nome a Elas й ID, Que Poderб Ser Usado Em IDS ou em Nomes Tanto Faz. й as cores.

pawn Код:
// Poderб Ser Usado "  Aztecas  " Ou Poderб Ser Usado "  1  "
#define Aztecas 1
// Poderб Ser Usado "  Grove  " Ou Poderб Ser Usado "  1  "
#define Grove 2
// Poderб Ser Usado "  CorAztecas " Ou Poderб Ser Usado "  0x2641FEC8 "
#define CorAztecas 0x2641FEC8
// Poderб Ser Usado "  CorGrove " Ou Poderб Ser Usado "  0x00D900C8"
#define CorGrove 0x00D900C8
Definida Nossas Cores й Gangs Vamos Para Prуxima Fase.

1.3 - Criando Skins Para Nossa Gang ( Mais Complicado de Todos )

Como й Mais Complicado Fazer isso, Nгo vou Falar Muito. Vamos Comeзar.

Na Callback OnGameModeInit, Coloque Nossas Skins. Usando a Funзгo AddPlayerClass.

Explicando :

pawn Код:
AddPlayerClass(110,2752.3999,-1970.7333,17.3203,178.5558,0,0,0,0,0,0);
// 110 ( ID DA SKIN )
// 2752.3999 ( CorX Da onde Vai da Spawn Ao Escolher esse Skin = X )
// -1970.7333 ( CorY Da onde Vai da Spawn Ao Escolher esse Skin = Y )
// 17.3203 ( CorZ Da onde Vai da Spawn Ao Escolher esse Skin = Z )
// 0,0,0,0,0,0 = ( Armas,Balas,Armas,Balas,Armas,Balas, = Armas, sй Quiser que ele Nasзa com Algumam Coloque o ID й a bala. )
Explicado a Funзгo a cima Vamos Comeзar. Fingimos Que Vocк Criou 6 AddPlayerClass, Trкs Para Cada Org. Irei Fazer Uma Explicaзгo abaixo :

pawn Код:
// =========================== Aztecas ===========================
AddPlayerClass(115,2232.2813,-1158.4985,29.7969,0.3858,0,0,0,0,0,0);   //  [ ID 0 ]
AddPlayerClass(116,2232.2813,-1158.4985,29.7969,0.3858,0,0,0,0,0,0);   //  [ ID 1 ]
AddPlayerClass(116,2232.2813,-1158.4985,29.7969,0.3858,0,0,0,0,0,0);   //  [ ID 2 ]
// =========================== Grove =============================
AddPlayerClass(105,2531.0586,-1666.2322,15.1678,183.9649,0,0,0,0,0,0) ;// [ ID 3 ]
AddPlayerClass(106,2531.0586,-1666.2322,15.1678,183.9649,0,0,0,0,0,0); // [ ID 4 ]
AddPlayerClass(107,2531.0586,-1666.2322,15.1678,183.9649,0,0,0,0,0,0); // [ ID 5 ]
Lembrando que a Contagem Comeзa do 0, Ou Seja vou Resumir porque fiz isso.

Resumindo : ID 0,1 e 2, й dos Aztecas, й id 3,4 e 5, й Da Grove. Lembrando Que Comeзa do 0.

1.4 - Criando Uma GameTextForPlayer Quando For Escolher Uma Skin.

Na Callback OnPlayerRequestClass, Iremos Colocar a GameTextForPlayer , Para Quando Aparecer a Skin Aztecas ou Grove, Irб Aparecer Ela, E tipo um Textdraw.


pawn Код:
if((classid >= 0) && (classid <= 2))  // Ou Seja Igual й Maior que 0. й Menor й Igual a 2. Ou Seja, 0,1 e 2.
{
    gTeam[playerid] = Aztecas; // Setarб ele Para GANG Aztecas.
    GameTextForPlayer(playerid,"~n~~n~~n~~b~Aztecas",4000,5); // Irб Aparecer Aztecas Por 4 Segundos.

// Resumindo : Se Escolher a Skin 0,1 e 2 Ele Serб Azteca.
}
if((classid >= 3) && (classid <= 5)) // Ou Seja Igual й Maior que 3. й Menor й Igual a 5. Ou Seja, 3,4 e 5.
{
    gTeam[playerid] = Grove; // Setarб Ele Para a GANG Grove.
    GameTextForPlayer(playerid,"~n~~n~~n~~g~Grove",4000,5); // Irб Aparecer Grove Por 4 Segundos.

// Resumindo : Se Escolher a Skin 3,4 e 5 Ele Serб Grove.
}
Como Vocк Pode Ver, Essa Foi a Mais Complicada, й Vai ser a mais complicada de todas.

1.5 - Colocando o Local Para a Gang Der Spawn

Na Callback OnPlayerSpawn, Colocamos a Onde Ele Vai Nascer Ao Escolher a Skin de Sua Tal Org.


pawn Код:
// Se Ele Escolher o Skin  dos Aztecas. Ele Darб Spawn No Local Abaixo :

if(gTeam[playerid] == Aztecas) // Se Ele For Aztecas Ele Setarб Pro Local Abaixo :
{
   SetPlayerColor(playerid, CorAztecas); // Setarб a Cor Dele Para AZUL Que й a Cor definida no Topo !
   SetPlayerPos(playerid, 2232.2813,-1158.4985,29.7969); // Setarб Ele Para Estб Posiзгo
   SetPlayerInterior(playerid, 0); // Setarб o Interior Dele.
}
pawn Код:
// Se Ele Escolher o Skin  dos Grove. Ele Darб Spawn No Local Abaixo :

if(gTeam[playerid] == Grove) // Se Ele For Grove Ele Setarб Pro Local Abaixo :
{
   SetPlayerColor(playerid, CorGrove); // Setarб a Cor dele Para VERDE Que й a Cor definida no Topo.
   SetPlayerPos(playerid, 2531.0586,-1666.2322,15.1678); Setarб Ele Para Estб Posiзгo
   SetPlayerInterior(playerid, 0); Setarб o Interior Dele.
}
1.6 - Como Criar um Comando Para a Gang Aztecas/Grove Definidas.

pawn Код:
if(strcmp(cmdtext, "/aztecas", true) == 0)
{
    if(gTeam[playerid] == Aztecas)  // Ou Seja Sу aztecas Poderб Usar o Comando
    {
       SendClientMessage(playerid, CorAztecas, "Vocк й Aztecas, Parabйns.");
    }
    return true;
}
pawn Код:
if(strcmp(cmdtext, "/grove", true) == 0)
{
    if(gTeam[playerid] == Grove)  // Ou Seja Sу Grove Poderб Usar o Comando
    {
       SendClientMessage(playerid, CorGrove, "Vocк й Grove, Parabйns.");
    }
    return true;
}
1.7 - Fazendo um Comando /ajuda Para Org Grove,Aztecas.

pawn Код:
if(strcmp(cmdtext, "/ajuda", true) == 0)
{
    if(gTeam[playerid] == Aztecas)  // Ou Seja, Essa Mensagem Sу Aparecerб Pros Astecas.
    {
       SendClientMessage(playerid, CorAztecas, "Vocк Poderб Ter Ajuda Fazendo Algo O.O = Vocк й Aztecas.");
       // Mensagem Que Irб Aparecer se For Aztecas.
       return true;
    }
    if(gTeam[playerid] == Grove)  // Ou Seja, Essa Mensagem Sу Aparecerб Pros Grove.
    {
       SendClientMessage(playerid, CorGrove, " Vocк Poderб Ter Ajuda Fazendo Algo O.O = Vocк й Grove.");
       // Mensagem Que Irб Aparecer se For Grove.
       return true;
    }
    return true;
}
Simples de Mais Nгo й ? Amanha Irei Fazer um Sistema Unico Continuando Esse. Um Sistema /rank. Aguardem.

Crйditos : Jonathan Feitosa
Reply
#2

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
[B]Olha. Vejo Muitas Dъvidas de Como Criar uma Gang. Irei Fazer um Breve Tutorial De Como Criar Gangs. Irei Criar Dъvidas, Vamos Lб.

pawn Код:
static gTeam[MAX_PLAYERS];
....
porque o static no topo ?

bom tutorial.
Reply
#3

Porque eu sou foda
Reply
#4

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
Porque eu sou foda
me explica o porque o static e nгo o new ?
Reply
#5

kk. Jб Irei Mudar, Como Disse, o new й mesma coisa que static no topo.

Static termina em Uma Chave Qualquer Ja o New nгo.

й o static tem a mesma funзгo que o new no topo, so que o new й melhor no topo u.U
Reply
#6

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
kk. Jб Irei Mudar, Como Disse, o new й mesma coisa que static no topo.

Static termina em Uma Chave Qualquer Ja o New nгo.

й o static tem a mesma funзгo que o new no topo, so que o new й melhor no topo u.U
sim.
como eu disse no msn, mais vocк nгo intendeu,
pawn Код:
if(IsPlayerAdmin(playerid)
{  // abre chave.
      static Jonatham_e_gay;
     
}// Fecha a chave e automaticamente deleta jonatham_e_gay
Reply
#7

agora tou intendendo porque meus dialog do meu JFS quando colocava static dava FAIL . kkk
Reply
#8

jб te encomodei o bastante, agora irei fazer algo mais produtivo.

boa sorte man.
Reply
#9

Quote:
Originally Posted by TheGarfield
Посмотреть сообщение
sim.
como eu disse no msn, mais vocк nгo intendeu,
pawn Код:
if(IsPlayerAdmin(playerid)
{  // abre chave.
      static Jonatham_e_gay;
     
}// Fecha a chave e automaticamente deleta jonatham_e_gay
pelo que eu sei e testei a
pawn Код:
static
nгo й deletada ao fechar a chave por isso gasta muita, muita memуria mesmo jб a
pawn Код:
new
й deletada ao fecharmos as chaves.
Reply
#10

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
kk. Jб Irei Mudar, Como Disse, o new й mesma coisa que static no topo.

Static termina em Uma Chave Qualquer Ja o New nгo.

й o static tem a mesma funзгo que o new no topo, so que o new й melhor no topo u.U
Meu jovem, a estбtica й apenas um tipo de variбvel, ela nгo necessariamente precisa terminar em uma chave, estбtica й apenas criada uma vez e permanece de forma estбtica no cуdigo, assim sempre tendo o ъltimo valor dado a mesma, o new jб й diferente, ele tem o valor inicial como zero, assim toda vez que criado й setado sempre a valor zero, por este motivo static й mais rбpido que new.

Lembre-se que new em topo de cуdigo significa uma variбvel estбtica e global, portanto й redundante colocar static em topo de loop, pois logo colocar new faria a mesma coisa.

Peзo que nгo falem coisas erradas, apenas irб nгo contribuir para o desenvolvimentos de membros novatos no fуrum, tentei falar de forma mais fбcil possнvel

[S]trong, Garfield tem razгo, nгo existe gastar memуria em pawn, a ъnica coisa que "gasta" memуria em pawn й a execuзгo, pawn nгo tem alocaзгo dinвmica, й tudo deixado no amx na hora da compilaзгo, portanto usar ambas nгo mudarб alguma coisa, talvez no tamanho do amx, ou nгo.
Cumprimentos.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)