Eu tenho uma versão 1.0 na net mais é simples, essa é mais avançada e estou postando aqui !!
1.1 - Primeiramente, Vamos Definir Nossa gTeam, Que Sevirá Para Ajudar Nossas Gangs Que Vamos Definir
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.
Agora que Já Definimos as Nossas Cores é Gangs, Vamos Para Próxima Fase.
1.3 - Criando Skins Para Nossa Gang ( Mais Complicado de Todos )
Na Public OnPlayerRequestClass Bote Isso:
1.4 - Agora Vamos Criar a Outra Parte do Nosso DIALOG, na hora que escolherem.
Bote no OnDialogResponse Isso:
1.5 - Colocando o Local Para a Gang Der Spawn
Na Callback OnPlayerSpawn, Colocamos a Onde Ele Vai Nascer Ao Escolher Sua ORG.
1.6 - Como Criar um Comando Para a Gang Aztecas/Grove Definidas.
1.7 - Fazendo um Comando /ajuda Para Org Grove,Aztecas e Ballas.
1.8 - Criando um /equipar Para Cada Org.
1.9 - Mais Quero Por Para Quando Apertar F, Como Faço ?
é na Public OnPlayerKeyStateChange Bote:
2.0 - Créditos
Pronto Bem Simples, Melhor que a v1.0, é Bem Mais Explicado.
Créditos : Jonathan Feitosa
PS: Lembrando que os Comandos é Pra Por na Public OnPlayerCommandText
1.1 - Primeiramente, Vamos Definir Nossa gTeam, Que Sevirá Para Ajudar Nossas Gangs Que Vamos Definir
- Código:
// Bote no Topo Do Seu GameMode
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.
- Código:
// Poderá Ser Usado " Aztecas " Ou Poderá Ser Usado " 1 " Na Definição Por Comandos.
#define Aztecas 1
// Poderá Ser Usado " Grove " Ou Poderá Ser Usado " 2 " Na Definição Por Comandos.
#define Grove 2
// Poderá Ser Usado " Ballas " Ou Poderá Ser Usado " 3 " Na Definição Por Comandos.
#define Ballas 3
// Poderá Ser Usado " CorAztecas " Ou Poderá Ser Usado " 0x2641FEC8 "
#define CorAztecas 0x2641FEC8
// Poderá Ser Usado " CorGrove " Ou Poderá Ser Usado " 0x00D900C8 "
#define CorGrove 0x00D900C8
// Poderá Ser Usado " Ballas " Ou Poderá Ser Usado " 0xD900D3F6 "
#define CorBallas 0xD900D3F6
Agora que Já Definimos as Nossas Cores é Gangs, Vamos Para Próxima Fase.
1.3 - Criando Skins Para Nossa Gang ( Mais Complicado de Todos )
Na Public OnPlayerRequestClass Bote Isso:
- Código:
SetPlayerCameraPos(playerid, 2159.8921,-1055.2019,80.4219); // Setará Câmera ( Posição )
SetPlayerCameraLookAt(playerid, 2159.6272,-1061.3921,80.4219); // Setará Para Onde Irá Olhar.
ShowPlayerDialog(playerid, 4322, DIALOG_STYLE_LIST, "Escolha o Seu Time","Aztecas\nGrove\nBallas","Jogar","Cancelar");
1.4 - Agora Vamos Criar a Outra Parte do Nosso DIALOG, na hora que escolherem.
Bote no OnDialogResponse Isso:
- Código:
if(dialogid == 4322)
{
if(response == 0) // Se Ele Apertar Em Cancelar, Ou Seja, Aparecerá o Dialog Denovo, Obrigando ele a Escolher.
{
ShowPlayerDialog(playerid, Escolha, DIALOG_STYLE_LIST, "Escolha o Seu Time","Zumbis\nHumanos","Selecionar","Cancelar");
}
if(response == 1)
{
if(listitem == 0)
{
gTeam[playerid] = Aztecas; // ou gTeam[playerid] == 1; ( Seta Ele Para Gang Aztecas )
SetPlayerSkin(playerid, 116); // Setará Ele Para Skin 116, Dos Aztecas.
SendClientMessage(playerid, CorAztecas,"Você Escolheu Ser Aztecas.");
SpawnPlayer(playerid); // Spawn o Player
return true;
}
if(listitem == 1)
{
gTeam[playerid] = Grove; // ou gTeam[playerid] == 2; ( Seta Ele Para Gang Grove )
SetPlayerSkin(playerid, 107); // Setará Ele Para Skin 107, Dos Grove.
SendClientMessage(playerid, CorGrove,"Você Escolheu Ser Grove.");
SpawnPlayer(playerid); // Spawn o Player
return true;
}
if(listitem == 2)
{
gTeam[playerid] = Ballas; // ou gTeam[playerid] == 3; ( Seta Ele Para Gang Ballas)
SetPlayerSkin(playerid, 102); // Setará Ele Para Skin 107, Dos Ballas.
SendClientMessage(playerid, CorBallas,"Você Escolheu Ser Ballas.");
SpawnPlayer(playerid); // Spawn o Player
return true;
}
return true;
}
return true;
}
1.5 - Colocando o Local Para a Gang Der Spawn
Na Callback OnPlayerSpawn, Colocamos a Onde Ele Vai Nascer Ao Escolher Sua ORG.
- Código:
// 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 Do Nick Dele.
SetPlayerPos(playerid, 2232.2813,-1158.4985,29.7969); // Setará Ele Para Está Posição Para Sua HQ.
SetPlayerInterior(playerid, 0); // Setará o Interior Dele Para 0 ( RUA ).
}
// 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 Do Nick Dele.
SetPlayerPos(playerid, 2531.0586,-1666.2322,15.1678); // Setará Ele Para Está Posição Para Sua HQ.
SetPlayerInterior(playerid, 0); // Setará o Interior Dele Para 0 ( RUA ).
}
// Se Ele Selecionar a Gang Ballas. Ele Dará Spawn No Local Abaixo :
if(gTeam[playerid] == Ballas) // Se Ele For Grove Ele Setará Pro Local Abaixo :
{
SetPlayerPos(playerid, 1150.3842,-1181.0187,32.0275); // Setará Ele Para Está Posição Para Sua HQ.
SetPlayerColor(playerid, CorBallas); // Setará a Cor Do Nick Dele.
SetPlayerInterior(playerid, 0); // Setará o Interior Dele Para 0 ( RUA ).
}
1.6 - Como Criar um Comando Para a Gang Aztecas/Grove Definidas.
- Código:
if(strcmp(cmdtext, "/aztecas", true) == 0)
{
if(gTeam[playerid] == Aztecas) // (Ou if(gTeam[playerid] == 1). Ou Seja Só aztecas Poderá Usar o Comando
{
SendClientMessage(playerid, CorAztecas, "Você é Aztecas, Parabéns.");
}
return true;
}
- Código:
if(strcmp(cmdtext, "/grove", true) == 0)
{
if(gTeam[playerid] == Grove) // (Ou if(gTeam[playerid] == 2). Ou Seja Só Grove Poderá Usar o Comando
{
SendClientMessage(playerid, CorGrove, "Você é Grove, Parabéns.");
}
return true;
}
- Código:
if(strcmp(cmdtext, "/ballas", true) == 0)
{
if(gTeam[playerid] == Ballas) // (Ou if(gTeam[playerid] == 3 ). Ou Seja Só Ballas Poderá Usar o Comando
{
SendClientMessage(playerid, CorBallas, "Você é Ballas, Parabéns.");
}
return true;
}
1.7 - Fazendo um Comando /ajuda Para Org Grove,Aztecas e Ballas.
- Código:
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;
}
if(gTeam[playerid] == Ballas) // Ou Seja, Essa Mensagem Só Aparecerá Pros Grove.
{
SendClientMessage(playerid, CorBallas, " Você Poderá Ter Ajuda Fazendo Algo O.O = Você é Ballas.");
// Mensagem Que Irá Aparecer se For Ballas.
return true;
}
return true;
}
1.8 - Criando um /equipar Para Cada Org.
- Código:
if(strcmp(cmdtext, "/equipar", true) == 0)
{
if(gTeam[playerid] == Aztecas) // Se For Aztecas
{
SendClientMessage(playerid, CorAztecas, "Você é Aztecas, é Recebeu uma Eagle de 500 Ballas.");
GivePlayerWeapon(playerid, 24, 500) // Eagle, 500 Ballas.
return true;
}
if(gTeam[playerid] == Grove) // Se For Grove.
{
SendClientMessage(playerid, CorGrove, "Você é Grove, é Recebeu uma Eagle de 500 Ballas.");
GivePlayerWeapon(playerid, 24, 500) // Eagle, 500 Ballas.
return true;
}
if(gTeam[playerid] == Ballas) // Se For Ballas.
{
SendClientMessage(playerid, CorBallas, "Você é Ballas, é Recebeu uma Eagle de 500 Ballas.");
GivePlayerWeapon(playerid, 24, 500) // Eagle, 500 Ballas.
return true;
}
return true;
}
1.9 - Mais Quero Por Para Quando Apertar F, Como Faço ?
- Código:
if(strcmp(cmdtext, "/equipar", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z)) // Se Estiver no Local X,Y,Z Funcionará AbAIXO:
{
if(gTeam[playerid] == Aztecas) // Se For Aztecas
{
SendClientMessage(playerid, CorAztecas, "Você é Aztecas, é Recebeu uma Eagle de 500 Ballas.");
GivePlayerWeapon(playerid, 24, 500); // Eagle, 500 Ballas.
return true;
}
return true;
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z)) // Se Estiver no Local X,Y,Z Funcionará AbAIXO:
{
if(gTeam[playerid] == Grove) // Se For Grove.
{
SendClientMessage(playerid, CorGrove, "Você é Grove, é Recebeu uma Eagle de 500 Ballas.");
GivePlayerWeapon(playerid, 24, 500); // Eagle, 500 Ballas.
return true;
}
return true;
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z)) // Se Estiver no Local X,Y,Z Funcionará AbAIXO:
{
if(gTeam[playerid] == Ballas) // Se For Ballas.
{
SendClientMessage(playerid, CorBallas, "Você é Ballas, é Recebeu uma Eagle de 500 Ballas.");
GivePlayerWeapon(playerid, 24, 500); // Eagle, 500 Ballas.
return true;
}
return true;
}
return true;
}
é na Public OnPlayerKeyStateChange Bote:
- Código:
if((newkeys & KEY_SECONDARY_ATTACK)) // Ao Apertar F
{
OnPlayerCommandText(playerid,"/equipar"); // Forçar você apertar o Comando /equipar.
}
2.0 - Créditos
Pronto Bem Simples, Melhor que a v1.0, é Bem Mais Explicado.
Créditos : Jonathan Feitosa
PS: Lembrando que os Comandos é Pra Por na Public OnPlayerCommandText