[Tutorial] Sistema de Sexo (Masculino e Feminino) em DOF2 + CMD /mudarsexo
#1

Olб pessoal do forъm sa-mp.
Esse й o meu primeiro tutorial, sou iniciante em pawno. Eu nгo consigo explicar muito direito, mas tentarei explicar o mбximo para vocкs intenderem. Bom, esse tutorial й simples... Mas por mim, acho que irб ajudar alguns iniciantes em pawno.

OQUE Й UM SITEMA DE SEXO?

Resposta: Sistema de sexo salva o Sexo ( Feminino ou Masculino ) do jogador. Apуs o jogador digitar a senha que ele deseja registrar-se, aparecerб uma dialog perguntando qual o sexo que o jogador deseja usar...

Terб um comando, que serб usado caso o jogador desejar mudar de sexo (no jogo).

OBS: Se vocкs nгo intenderem minha 'explicaзгo', me falem que tentarei explicar melhor.

Entгo acho que й isso... Vamos ao cуdigo.

Primeiro, crie uma #define para a DIALOG_SEXO

Код:
// Topo do seu gamemode:
#define         DIALOG_SEXO     ( 0 )
Utilizei '( 0 )' pois й serб a primeira DIALOG do gamemode...

Agora iremos criar uma enum para numerar o sexo do jogador...

Код:
enum PInfo
{
    Sexo
}
Agora, criaremos os 'Leveis' (Os sexos enumerados)

Код:
new pSexo[3][24] =
{
    {"Indefinido"}, // Sexo 0
    {"Masculino"}, // Sexo 1
    {"Feminino"} // Sexo 2
};
Agora, criaremos uma new para a Variavel do enum PInfo (Nгo consegui explicar direito aqui).

Код:
new pInfo[MAX_PLAYERS][PInfo];
Agora em sua dialog de Registro, depois que o jogador se registra vai ser criado o texto "Sexo = 0"

Код:
// Na dialog de Registro:
DOF2_SetInt(Arquivo, "Sexo", pInfo[playerid][Sexo]);
E depois adicione a ShowPlayerDialog da pergunta "Qual й seu sexo?"

Код:
//Na dialog de Registro ainda:
ShowPlayerDialog(playerid, DIALOG_SEXO, DIALOG_STYLE_MSGBOX, "{FFFF00}# {FFFFFF}- Defina Seu Sexo", "Qual й seu sexo?", "Masculino", "Feminino");
Agora na Dialog de Login, se a senha que o jogador digitou for a certa a funзгo "GetInt" irб pegar qual й o Level do sexo, por exemplo "Sexo = 1" vai pegar que o jogador й sexo masculino.

Код:
//Na dialog de Login:
pInfo[playerid][Sexo] = DOF2_GetInt(Arquivo, "Sexo");
Agora iremos criar uma dialog, que й a DIALOG_SEXO ( Que foi numerada no topo do gamemode "#define DIALOG_SEXO ( 0 )" )

Код:
//Na public OnDialogResponse:
case DIALOG_SEXO:
{
    if(response) // Se o jogador clicar em 'Masculino'
    {
        pInfo[playerid][Sexo] = 1; // O level do sexo do jogador serб setado para Masculino
        SendClientMessage(playerid, 0xFFFF00FF, "[INFO]: Seu Sexo Estб Como{FFFFFF} Masculino{FFFF00}.");
    }
    else //Se clicar em 'Feminino'
    {
        pInfo[playerid][Sexo] = 2; // O Level do sexo do jogador serб setado para Feminino
        SendClientMessage(playerid, 0xFFFF00FF, "[INFO]: Seu Sexo Estб Como{FFFFFF} Feminino{FFFF00}.");
    }
}
Agora, na stock que salva a conta iremos adicionar para quando o jogador sair do servidor, salvar o Sexo que ele estava enquanto estava conectado.
Код:
DOF2_SetInt(Arquivo, "Sexo", pInfo[playerid][Sexo]);
Agora vamos para a stock que carrega as informaзхes do jogador, ela irб pegar o sexo que foi salvado na ultima vez que o jogador se conectou...
Код:
pInfo[playerid][Sexo] = DOF2_GetInt(Arquivo, "Sexo");
Agora, iremos fazer o comando que muda o sexo do jogador.
Код:
//No fim do gamemode, ou em algum outro lugar (Fora de public's):
CMD:mudarsexo(playerid,params[])
{
    new Stringui[256];
    format(Stringui,sizeof(Stringui), "Atualmente Seu Sexo й %s.\nVocк Deseja Deixar Seu Sexo Como:", pSexo[pInfo[playerid][Sexo]]);
    ShowPlayerDialog(playerid, DIALOG_SEXO, DIALOG_STYLE_MSGBOX, "{FFFF00}# {FFFFFF}- Defina Seu Sexo", Stringui, "Masculino", "Feminino");
    return 1;
}
Se vocк quiser adicionar algumas mensagens em forma Masculina ou Feminina, й sу fazer uma if(pInfo[playerid][Sexo] == 1) ou == 2)
Exemplo:
Код:
public OnPlayerText(playerid, text[])
{
	if (pInfo[playerid][pLogado] == false) // Minha funзгo que verifica se o jogador estб ou nгo estб logado.
	{
        if(pInfo[playerid][Sexo] == 1) //Sexo masculino!!
        {
        	SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}[ERRO]: Vocк nгo estб logado e nгo pode falar."); // Se o sexo for masculino serб mostrado essa mensagem para ele.
                return 0; // Retornarб falsa, ou seja, a mensagem que o jogador tentou enviar nгo serб enviada no chat pois o jogador nгo estб logado.
        }
        if(pInfo[playerid][Sexo] == 2) //Sexo masculino!!
        {
            SendClientMessage(playerid, 0xFF0000FF, "{fF0000}[ERRO]: Vocк nгo estб logada e nгo pode falar.");        // Se o sexo for feminino serб mostrado essa mensagem para ela.
            return 0; // Retornarб falsa, pois a jogadora nгo estб logada.
        }
    }
    return 1;
 }
OBS: "if(pInfo[playerid][pLogado] == false)"
a funзгo pLogado nгo foi criada na enum do player lб em cima, pois no tutorial nгo vou utiliza-la para nada, mas eu a utilizo para verificar se o player estб logado ou nгo, entгo, desconsidere-a.

Meu codigo, nгo estб dos melhores entгo vocкs deem uma aperfeiзoada no code da maneira que vocкs conseguem se forem adicionar ao seu gamemode.

Entгo й isso galera, desculpem quaisquer erro de portuguкs... Tenho 13 anos, e em ortografia nгo sou muito bom.

Desculpem algum erro nos codes, como no inicio do tutorial eu disse "sou iniciante em pawno"...

Por favor, pode criticar ou dar dicas. Meus cуdigos nгo sгo aqueles 'Tops', mas com o tempo irei aprendendo nй.

Explicaзгo nгo foi muito boa nй, pois como disse no comeзo do tutorial tambйm, nгo sou muito bom com explicaзхes...

Obrigado a todos. Att: DjonathaTM
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)