[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
#2

Saudaзхes !


Quando vi o titulo do tуpico pensei que seria um sistema de sexo ( dб o brioco, transa, etc) ..

Eu conheзo este tema por: Gкnero

Dava pra caprichar mais na organizaзгo e explicaзгo do conteъdo nй, mas nгo dб nem pra cobrar tu йs novato ^^


Por exemplo vocк explicar o porque de colocar uma macro no topo do game mode e nгo no meio ou no final, porque de criar uma enum sendo que este sistema dava para ser feito usando apenas uma var inteira, e outras coisas bobas ..

mesmo assim ficou bacana !


Good job !
Reply
#3

Parabйns pra um novato!
Reply
#4

Quote:
Originally Posted by Sky™
Посмотреть сообщение
Saudaзхes !


Quando vi o titulo do tуpico pensei que seria um sistema de sexo ( dб o brioco, transa, etc) ..

Eu conheзo este tema por: Gкnero

Dava pra caprichar mais na organizaзгo e explicaзгo do conteъdo nй, mas nгo dб nem pra cobrar tu йs novato ^^


Por exemplo vocк explicar o porque de colocar uma macro no topo do game mode e nгo no meio ou no final, porque de criar uma enum sendo que este sistema dava para ser feito usando apenas uma var inteira, e outras coisas bobas ..

mesmo assim ficou bacana !


Good job !
Kkk, eu sabia que tinha gente que iria maliciar #kkkk

Obrigado Sky!! Vou aprender e melhorar.



Quote:
Originally Posted by LucasF
Посмотреть сообщение
Parabйns pra um novato!
Obrigado LucasF, estou aprendendo ainda... Nгo estб um code perfeito, mas eu aprendi assim. Tentarei melhorar
Reply
#5

Quote:

[27/10/2015 12:54:47] ★CP★MC★ - Matheus♔Spohr: se quer postar algo no fуrum, faзa algo realmente ъtil, ou entгo um tutorial de como criar um sistema de sexo, mais nгo poste o sistema de sexo em sн pois ele й apenas um cуdigo ъtil.
[27/10/2015 12:55:31] ★CP★MC★ - Matheus♔Spohr: Se for fazer como tutorial, utilize palavras escritas corretamente, letra normal, e sem fugir ao tamanho(2 coisas que estгo sempre em seus post's)
[27/10/2015 12:57:14] ★CP★MC★ - Matheus♔Spohr: Faзa algo realmente bom. Colocando em teoria e prбtica tudo oque vocк sabe sobre akilo, nem que vocк utilize dof2_ ou faзa um outro sistema de salvamento de dados, faзa algo.
[27/10/2015 12:57:23] ★CP★MC★ - Matheus♔Spohr: aн eu apoio.

Como jб te disse no Skype, melhor o tutorial do que postar sу o cуdigo em Sн. Certamente hб coisas que vocк poderia ter feito diferente, jб que й apenas um tutorial, nгo seria necessбrio a enum, podendo ter utilizado sу uma variбvel "new SexoDoPray[playerid];"; poderia ter explicado tambйm os parвmetros de cada funзхes; lembrando sempre, й um tutorial de iniciante para quem nгo sabe isso. Mas enfim, bom o tutorial.(jб da pra um "programador"){rsrs}

Abraзos.
Reply
#6

Da o brioco kkkkkk, parabйns matheusspohr
Reply
#7

Houve uma pequena desatenзгo sua:
Quote:
Originally Posted by DjonathaTM
Посмотреть сообщение
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:
DOF2_GetInt(Arquivo, "Sexo", pInfo[playerid][Sexo]);
O correto й:
PHP код:
pInfo[playerid][Sexo] = DOF2_GetInt(Arquivo"Sexo"); 
Reply
#8

Quote:
Originally Posted by matheusspohr
Посмотреть сообщение
Como jб te disse no Skype, melhor o tutorial do que postar sу o cуdigo em Sн. Certamente hб coisas que vocк poderia ter feito diferente, jб que й apenas um tutorial, nгo seria necessбrio a enum, podendo ter utilizado sу uma variбvel "new SexoDoPray[playerid];"; poderia ter explicado tambйm os parвmetros de cada funзхes; lembrando sempre, й um tutorial de iniciante para quem nгo sabe isso. Mas enfim, bom o tutorial.(jб da pra um "programador"){rsrs}

Abraзos.
matheusspohr, tentei fazer o meu mбximo. Nгo tenho muita experiencia, estou aprendendo ainda. Mesmo assim, obrigado.

Tu ja dб para um programador? [kkk]'


Quote:
Originally Posted by zPain
Посмотреть сообщение
Houve uma pequena desatenзгo sua:


O correto й:
PHP код:
pInfo[playerid][Sexo] = DOF2_GetInt(Arquivo"Sexo"); 
Hm, okay zPain!! Vou tentar melhorar da prуxima vez.

Obrigado a Todos!
Reply
#9

Quote:
Originally Posted by DjonathaTM
Посмотреть сообщение
matheusspohr, tentei fazer o meu mбximo. Nгo tenho muita experiencia, estou aprendendo ainda. Mesmo assim, obrigado.

Tu ja dб para um programador? [kkk]'




Hm, okay zPain!! Vou tentar melhorar da prуxima vez.

Obrigado a Todos!
Utilize do Botгo editar para corrigir seu erro.
Reply
#10

Pronto matheusspohr. Mas pelo que eu vi, funciona igual. Mas editei jб.

Devo postar o code inteiro pessoal?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)