[Tutorial] Criando Organizaзхes - [ Modo Bбsico ]
#1

Oi Galera, neste tutorial, estarei ensinado um modo de criar uma organizaзгo, bem simples, para inciantes.

Bom, Primeiramente, vamos definir as organizaзхes.


pawn Код:
new OrG1     1

new OrG2     2
Pronto, assim, temos no topo de seu gamemode, as 2 Organizaзхes definidas.
Agora, vamos criar o cуdigo que vai setar a skin do player.


Acompanhe :

pawn Код:
AddPlayerClassEx(OrG1   , SKIN, X Y Z, 0.0, 0,0,0,0,0,0);
    AddPlayerClassEx(OrG2   , SKIN, X Y Z, 0.0, 0,0,0,0,0,0);
A primeira skin, vai ser setada, no ( case 0 ) Logo a baixo na public OnPlayerRequestClass. E a segunda skin, no ( case 1 ).


Agora, vamos criar o cуdigo que permitirб o player escolher a organizaзгo que ele vai participar, pela public OnPlayerRequestClass.
Acompanhe :


pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    switch(classid)
    {
        case 0:
        {
            SetPlayerTeam(playerid, OrG1     );
            GameTextForPlayer(playerid, "~b~ Organizaзгo 1 ", 2500, 3);
            SetPlayerColor(playerid,-1);
            SetSpawnInfo(playerid, OrG1   ,SKIN,-170.2165,2707.5413,62.5419,91.9070, 0, 0, 0, 0, 0, 0);
        }
       
        case 1:
        {
            SetPlayerTeam(playerid, OrG2     );
                    GameTextForPlayer(playerid, "~g~ Organizaзгo 2 ", 2500, 3);
                    SetPlayerColor(playerid,-1);
                SetSpawnInfo(playerid, OrG2  ,SKIN,-551.1176,2593.8345,53.9348,269.3831, 0, 0, 0, 0, 0, 0);
        }

    }
    return 1;
}
O Parвmetro SetPlayerTeam, Estб setando o Time que vocк definiu no topo do seu Gamemode. veja que estб definido com o nome de sua organizaзгo.
O Parвmetro GameTextForPlayer Й a mensagem que aparece quando o player vai escolher sua Organizaзгo.
O Parвmetro SetPlayerColor , Serve para setar a cor do player, a cor do nick, a cor do chat.
O Parвmetro SetSpawnInfo, Serve para setar o local exato do spawn do player, veja que estб definido com o nome de sua organizaзгo.

Pronto. Agora vocк tem duas organizaзхes quase criadas no seu gamemode.

Agora, vamos definir carros para cada organizaзгo ( Modo simples )

Primeiramente, no topo do seu gamemode, vamos criar uma variбvel com o numero de carros das organizaзхes.

Acompanhe :

pawn Код:
new CarrosOrg1[2]; // 4 й o numero de carros da organizaзгo, sempre que for adicionar mais, aumente o valor da variбvel.

new CarrosOrg2[2];
Agora, vamos adicionar os carros, ao gamemode.
pawn Код:
CarrosOrg1[0] = AddStaticVehicleEx(ID CARRO,      X          Y          Z          ,0,0,60);
    CarrosOrg1[1] = AddStaticVehicleEx(ID CARRO,      X          Y          Z          ,0,0,60);

    CarrosOrg2[0] = AddStaticVehicleEx(ID CARRO,      X          Y          Z          ,0,0,60);
    CarrosOrg2[1] = AddStaticVehicleEx(ID CARRO,      X          Y          Z          ,0,0,60);
Obs : X Y Z sгo as cordeadas. Nгo copie esses cуdigos, sгo apenas exemplos !

Ok. agora vocк definiu os carros de cada organizaзгo, mais, ainda nгo existe nenhum cуdigo que proнba a entrada de membros de organizaзхes diferentes em carros de organizaзхes diferentes.

Vamos fazer isso agora. Muita atenзгo nesta parte.


pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{                               --------                                      */
    new VehID = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
        for(new vP = 0; vP < sizeof( CarrosOrg1 ); vP++)
        {
            if(VehID == CarrosOrg1[vP] && GetPlayerTeam(playerid) != OrG1)
            {
                SendClientMessage(playerid,-1, "Este carro nгo estб disponнvel para sua organizaзгo !");
                RemovePlayerFromVehicle(playerid);
            }
        }
    }
    return 1;
}
Explicando :

Bem, essa public, serve para verificar o estado do player, no caso, estamos usando o PLAYER_STATE_DRIVER, ou seja, o estado em que o player estб como motorista do carro.

Apуs a verificaзгo da organizaзгo do player, e a verificaзгo do carro, o player й removido do carro, caso aquele carro nгo for de sua organizaзгo, com o parвmetro RemovePlayerFromVehicle.

O nome do mesmo й auto-explicativo.

Ok , agora й sу aplicar esse exemplo, para o resto das organizaзхes, lembrando sempre, em trocar o ID dos carros, e o ID da organizaзгo. No exemplo acima, usamos a OrG1 e os carros definidos como CarrosOrg1.

Bom.

Agora vamos criar restriзхes em comandos para cada organizaзгo. ( um player da organizaзгo X nгo poderб usar o comando exclusivo da organizaзгo Y )
Como fazemos isso ?
Simples ! Usando a funзгo : if(GetPlayerTeam.

Agora vou dar um exemplo, de um comando restrito apenas para a organizaзгo 1 ( OrG1 )
Exemplo em strcmp **


pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/Colete", cmdtext, true, 10) == 0)
    {
        if(GetPlayerTeam(playerid) != 1) return SendClientMessage(playerid,-1,"Comando indisponнvel para sua organizaзгo !");
       
                SendClientMessage(playerid,-1," Vocк comprou um colete por R$ 100");
        SetPlayerArmour(playerid,100);
        GivePlayerMoney(playerid,-100);
       
        return 1;
    }
    return 0;
}
Percebam, que a funзгo if(GetPlayerTeam(playerid) != 1) estб verificando, se o player faz parte da organizaзгo definida como 1, que no nosso caso, й a OrG1.
Caso o player nгo seja da organizaзгo 1, o comando fica restringido.

Isso pode ser feito, em qualquer comando, nгo sу em comandos, mais em sim , vбrias funзхes do seu gamemode.
Ok, agora, por ultimo, vou ensinar-lhes, a como criar um unico comando, que servirб para cada player, de acordo com a organizaзгo dele.
Usaremos o comando /Equipar.


pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/Equipar", cmdtext, true, 10) == 0)
    {
    if(GetPlayerTeam(playerid) == 1) // isso estб verificando a organizaзгo do player
    {
        GivePlayerWeapon(playerid,24,9999); // armas da equipe 1
    }
    else if(GetPlayerTeam(playerid) == 2) // isso estб verificando a organizaзгo do player
    {
        GivePlayerWeapon(playerid,34,9999); // armas da equipe 2
    }

    return 1;
}
    return 0;
}
Percebam, que com um ъnico comando, й possнvel dar armas de acordo com cada organizaзгo do player. Neste exemplo, o comando dб uma ( EAGLE ) para o player que for da organizaзгo 1, e da uma ( SNIPER ) para o player que for da organizaзгo 2.

Agora й sу estudar os cуdigos, e prestar bem a atenзгo.

Entгo galera, й isso, espero que ajude em alguma coisa, por que eu perdi 45 min fazendo esse Mini Tuto. Quando eu tiver conhecimentos mais amplos, estarei dividindo minhas experiкncias com vocкs. espero que gostem !!
Reply
#2

Quote:
Originally Posted by Duun
Посмотреть сообщение
new CarrosOrg1[2]; // 4 й o numero de carros da organizaзгo, sempre que for adicionar mais, aumente o valor da variбvel.
wtf ?

strcmp
Muito em que melhorar, explique mais isso.
Abraзos.

@edit

nгo crie por variбvel.
use defines.

#define org 1
#define org 2

muito melhor que:

new org = 1;
Reply
#3

Quote:
Originally Posted by AmericanStyle'™
Посмотреть сообщение
wtf ?

strcmp
Muito em que melhorar, explique mais isso.
Abraзos.
Pф cara, ta tгo ruim assim meu tuto ? se tiver, eu apago. eu fiz com a intenзгo de ajudar.
Reply
#4

Quote:
Originally Posted by Duun
Посмотреть сообщение
Pф cara, ta tгo ruim assim meu tuto ? se tiver, eu apago. eu fiz com a intenзгo de ajudar.
Sim, pois isso precisa de arrumar alguns cуdigos, e o "Importante explicar o mбximo possнvel",uma coisa que vocк nгo apresentou.
Abraзos.
Reply
#5

Poderia ter explicado melhor , em algumas partes ta foda
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{                               --------                                      */
isso vai da erro

Код:
new CarrosOrg1[2]; // 4 й o numero de carros da organizaзгo, sempre que for adicionar mais, aumente o valor da variбvel.
4 ?

strcmp poderia ter usado zCMD bCMD colocar um local certo pra org equipar pra nao equipar em qualquer lugar...
bom vocк poderia ter espero mais estudado mais um pouco antes de postar um tutorial ^^ fica a dica

eu fiz um tutorial do mesmo estilo do que o seu a uns 2 meses
Criando Gags para TDM Completo
Reply
#6

Quote:
Originally Posted by Math3us
Посмотреть сообщение
Poderia ter explicado melhor
Como ele vai explicar, se nem ele mesmo entendeu o que acabou de postar?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)