[Tutorial] Criando Equipes/Grupos/Gangs. v0.1
#1

Ola Galera Do Samp,

Bom Nao Tinha Nada Pra Fazer, Resolvi Fazer Um Tutorial Como Criar Um(a) Equipes/Grupos/Gangs. Bla Bla!

Vamos La.

Primeiramente Vamos Definir Nossas Classes:
pawn Код:
new Classes[MAX_PLAYERS];
Bom Essa New, Servira Para Definir Nossas Classes, Ou Seja, Um Grupo De Equipes, Oque e Definir? Click Aqui.

Agora Iremos Definir Nossas Equipes/Grupos/Gangs
pawn Код:
// Bom Mude o Nome "Groves" Para Sua Equipes/Grupos/Gangs.
#define Groves 1  
// Bom Mude o Nome "Ballas" Para Sua Equipes/Grupos/Gangs.
#define Ballas 2
Bom Que Tal Umas Cores Para Nossas Equipes/Grupos/Gangs?
pawn Код:
// Definimos a Cor "Verde"
#define CorGrove 0x33AA33AA
// Definimos a Cor "Azul"
#define CorBalla 0x058AFFFF
Ok, Definidas Nossas Equipes/Grupos/Gangs, Cores, e Criado Nossa New, Vamos a Proxima Etapa.

Vamos Criar As Skins Da Nossa Equipes/Grupos/Gangs.
pawn Код:
//Na Public OnGameModeInit.

// -=-=- / Groves / [ ID: 0 - 3 ] / -=-=- //
AddPlayerClassEx(1, 105, 0.0,0.0,0.0, 0.0, 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(1, 106, 0.0,0.0,0.0, 0.0, 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(1, 107, 0.0,0.0,0.0, 0.0, 0, 0, 0, 0, 0, 0);
// -=-=- / Ballas / [ ID: 4 - 6 ] / -=-=- //
AddPlayerClassEx(2, 102, 0.0,0.0,0.0, 0.0, 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(2, 103, 0.0,0.0,0.0, 0.0, 0, 0, 0, 0, 0, 0);
AddPlayerClassEx(2, 104, 0.0,0.0,0.0, 0.0, 0, 0, 0, 0, 0, 0);
Explicando:
https://sampwiki.blast.hk/wiki/AddPlayerClassEx
pawn Код:
// 1  a "Grove e 2 a "Balla" Ou Se Preferir Outro Nome Das (Equipes/Grupos/Gangs)
//Deixaremos Tudo 0. Menos a Teamid e as Skins.
Como Vejo As Skins? https://sampwiki.blast.hk/wiki/Skins:All

Explicando As Funзoes Dos
// -=-=- / Groves / [ ID: 0 - 3 ] / -=-=- //
e
// -=-=- / Ballas / [ ID: 4 - 6 ] / -=-=- //
Vamos La.

Fingimos que Vc Criou 6 Skins (3 Para Cada Equipes.), A Contagem Comeзa Do 0, Imtaum Eu Fiz Assim:
0 - 3 Do Groves e 4 - 6 Dos Ballas.

Proximo Passo, Mensagem No OnPlayerRequestClass Ou Seja (GameTextForPlayer), Ponhe Isso Na Callback (OnPlayerRequestClass)
pawn Код:
if((classid >= 0) && (classid <= 3))
{
    Classes[playerid] = Groves; // Setara Ele Para Os "Groves"
    SetPlayerInterior(playerid, 11); // Setara Ele Para o Interior 11
    SetPlayerFacingAngle(playerid, 0.0); // Setara o Angolo Dele Para 0
    SetPlayerPos(playerid, 508.7362, -87.4335, 998.9609); // Setara Ele Em Tal Posiзao.
    SetPlayerCameraPos(playerid, 508.7362, -83.4335, 998.9609); // Setara a Camera Dele Em Tal Posiзao.
    SetPlayerCameraLookAt(playerid, 508.7362, -87.4335, 998.9609); // Gira Camera Dele Em Tal Posiзao.
    GameTextForPlayer(playerid, "Groves", 3000, 5); // Mandara a Mensagem Ou Seja "GameTextForPlayer"
}
if((classid >= 4) && (classid <= 6))
{
    Classes[playerid] = Ballas; // Setara Ele Para Os "Ballas"
    SetPlayerInterior(playerid, 11); // Setara Ele Para o Interior 11
    SetPlayerFacingAngle(playerid, 0.0); // Setara o Angolo Dele Para 0
    SetPlayerPos(playerid, 508.7362, -87.4335, 998.9609); // Setara Ele Em Tal Posiзao.
    SetPlayerCameraPos(playerid, 508.7362, -83.4335, 998.9609); // Setara a Camera Dele Em Tal Posiзao.
    SetPlayerCameraLookAt(playerid, 508.7362, -87.4335, 998.9609); // Gira Camera Dele Em Tal Posiзao.
    GameTextForPlayer(playerid, "Ballas", 3000, 5); // Mandara a Mensagem Ou Seja "GameTextForPlayer"
}
Que Tal colocar o Local Do Spawn e Definir a Cor a Team e Algumas Armas Para Ele.

Na Callback OnPlayerSpawn:
pawn Код:
if(Classes[playerid] == Groves) // Verificar Se Ele e Dos "Groves".
{
    SetPlayerTeam(playerid, 1); // Setara ele Para a Team "1" Ou Seja "Groves".
    SetPlayerInterior(playerid, 0); // Setara ele Para o Interior 0.
    SetPlayerColor(playerid, CorGrove); // Setara ele Para a Cor "Verde".
    SetPlayerPos(playerid, 101.6843,-64.3650,1.3377); // Setara ele Para o Local De Spawn.
    GivePlayerWeapon(playerid, 4, 1); // Daremos 1 Weapon Para Ele.
    GivePlayerWeapon(playerid, 22, 999); // Daremos 2 Weapon Para Ele.
    GivePlayerWeapon(playerid, 25, 999); // Daremos 3 Weapon Para Ele.
    GivePlayerWeapon(playerid, 29, 999); // Daremos 4 Weapon Para Ele.
}
if(Classes[playerid] == Ballas) // Verificar Se Ele e Dos "Ballas".
{
    SetPlayerTeam(playerid, 2); // Setara ele Para a Team "2" Ou Seja "Ballas"
    SetPlayerInterior(playerid, 0); // Setara ele Para o Interior 0.
    SetPlayerColor(playerid, CorBalla); // Setara ele Para a Cor "Azul".
    SetPlayerPos(playerid, 101.6843,-64.3650,1.3377); // Setara ele Para o Local De Spawn.
    GivePlayerWeapon(playerid, 4, 1); // Daremos 1 Weapon Para Ele.
    GivePlayerWeapon(playerid, 22, 999); // Daremos 2 Weapon Para Ele.
    GivePlayerWeapon(playerid, 25, 999); // Daremos 3 Weapon Para Ele.
    GivePlayerWeapon(playerid, 29, 999); // Daremos 4 Weapon Para Ele.
}
Em Fim Que Tal, Colocar Um Negocin Para que Todos Nao Matem o Da Mesma Gang Ou Seja (Equipes/Grupos/Gangs)

Na Callback (OnPlayerGiveDamage) Adicionamos:
pawn Код:
if(GetPlayerTeam(playerid) == GetPlayerTeam(damagedid))
{
    SendClientMessage(playerid, -1, "[Erro]: Voce Nao Pode Atirar Na Mesma Equipe.");
    return false;
}
Ultimo Passo, Como Criar Comandos Para As Gangs Ou Seja "Equipes/Grupos/Gangs"
pawn Код:
CMD:grove(playerid)
{
    SendClientMessage(playerid, CorBalla, "So Os do Grove Podera Usar Este Comando.");
    if(Classes[playerid] == Groves)  // Ou Seja So Grove Podera Usar o Comando
    {
         SendClientMessage(playerid, CorGrove, "Voce e Um Dos Groves.");
    }
    return true;
}

CMD:balla(playerid)
{
    SendClientMessage(playerid, CorGrove, "So Os do Balla Podera Usar Este Comando.");
    if(Classes[playerid] == Ballas)  // Ou Seja So Balla Podera Usar o Comando
    {
         SendClientMessage(playerid, CorGrove, "Voce e Um Dos Ballas.");
    }
  return true;
}
Obs: Caso Queira Salvar Em (DINI) As (Equipes/Grupos/Gangs.) Do Player Tae o Cod, Ponhe Na Calback OnPlayerDisconnect.
pawn Код:
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
dini_IntSet("Classes.txt", Nome, Classes[playerid]);
Obs: Salvara Assim:
pawn Код:
i7Core = Grove  //Se For Dos "Grove"
i7Core = Balla  //Se For Dos "Balla"
Fim De Tutorial!

Aceito Criticas, Elogios Etc, Para Minha Melhora.

Nota: Estarei Editando.

i7Core
Reply
#2

Fico ate bom .
Reply
#3

Muito bom o tutorial, sгo estes tutoriais que dб vontade de ler do principio atй ao fim!

Continue assim! +rep
Reply
#4

Agora os noobs podem ficar a entender como adicionar/modificar orgs nos seus gms sem ficar pedindo para os outros criarem por eles.

Boa iniciativa.
Reply
#5

Bom, ajudara muitos para quem й dono de rpg.
Reply
#6

bom tuto...
Reply
#7

Belo tutorial, й sempre bom ver conteъdo bem feito na nossa board. #BrBr
Reply
#8

Belo tutorial, deve ajudar os "novatos" que pedem para nуs alterar pra eles
Reply
#9

Bom tutorial, parabens.
Reply
#10

Quote:

Aceito Criticas, Elogios Etc, Para Minha Melhora.

Utilize um portuguкs mais formal, e pare de comeзar toda palavra com a primeira letra maiъscula. Posso recomendar tambйm que utilize termos mais teуricos, sei que o intuito й facilitar o entendimento, mas tenha certeza, o efeito й o contrбrio no final das contas, exemplo:

Quote:

Primeiramente Vamos Definir Nossas Classes

Recomendo utilizar:

Quote:

Primeiramente vamos criar uma variбvel para podermos checar qual equipe o jogador pertence

Em um comando que vocк utiliza um statement para verificar se o jogador pertencer a tal equipe, dependendo do que se vai fazer, se existem duas condiзхes ou mais, й necessбrio utilizar return para parar a execuзгo do restante do cуdigo, caso tal condiзгo nгo seja verdadeira:

pawn Код:
if(Classes[playerid] != Ballas)
      return SendClientMessage(playerid, CorGrove, "Vocк nгo pertence aos Ballas.");
Й um tutorial relativamente difнcil de se digitar, atй porque envolve muitos outros assuntos, assim como operadores, macros, statement e atй algumas funзхes, seria mais fбcil e atй mesmo teria um maior efeito, explicar a lуgica do sistema, nгo somente jogar as funзхes para para as pessoas darem Copy/Paste, mas explicar como funciona, e as melhores formas de o fazer.

Bom tutorial, abraзos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)