[AJUDA] Questхes no OnPlayerText
#1

Pessoal to com um problema no OnPlayerText. eu fiz umas questхes para responder quando o jogador for novato:
pawn Код:
public OnPlayerText(playerid, text[])
{
    new idx;
    new tmp[256];
    tmp = strtok(text, idx);


    if(JogadorInfo[playerid][Pergunta] == 0)
    {
        Pergunt = 1;
        SendClientMessage(playerid, COLOR_GREEN, "--[Seja Bem-Vindo ao Servidor de Pilotos]--");
        SendClientMessage(playerid, COLOR_RED, "------Questгo 1: O que й um Piloto?------");
        SendClientMessage(playerid, COLOR_WHITE, "1: Piloto й um Motorista que dirige o carro levando pessoas para viajar");
        SendClientMessage(playerid, COLOR_WHITE, "2: Piloto й um Homem que trabalha em um restaurante entregando refeiзхes");
        SendClientMessage(playerid, COLOR_WHITE, "3: Piloto й Alguйm que Pilota uma aeronave, viajando a vбrios paнses e levando...");
        SendClientMessage(playerid, COLOR_WHITE, "... passageiros para o seu destino e que treina sempre.");

        if((strcmp("3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("3")))
        {
            Questao += 1;
            Pergunt = 2;
           
            Porcento += 30;
            Final = 0;
        }
        else
        {
            Pergunt = 2;
           
            Final = 0;
            return 0;
        }

    if(Pergunt == 2)
    {
        SendClientMessage(playerid, COLOR_RED, "------Questгo 2: Explique o que й ADF?------");
        SendClientMessage(playerid, COLOR_WHITE, "1: ADF - Automatic Direction Finder, Acha a Rota desejada para o Aviгo");
        SendClientMessage(playerid, COLOR_WHITE, "2: ADF - Бgua Dura Federaзгo");
        SendClientMessage(playerid, COLOR_WHITE, "3: ADF - Й uma coisa que tem no carro?");

        if((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))
        {
            Questao2 += 1;
           
            Pergunt = 3;
           
            Porcento += 30;
            Final = 0;
        }
        else
        {
            Pergunt = 3;

            Final = 0;
            return 0;
        }
    }
    if(Pergunt == 3)
    {
        SendClientMessage(playerid, COLOR_RED, "------Questгo 3: O que й TCAS?------");
        SendClientMessage(playerid, COLOR_WHITE, "1: TCAS - Traffic Collision Avoidance System");
        SendClientMessage(playerid, COLOR_WHITE, "2: TCAS - Transiзгo Cara Apagar Sistema");
        SendClientMessage(playerid, COLOR_WHITE, "3: TCAS - Serve para formatar o computador");

        if((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))
        {
            Questao3 += 1;

            Porcento += 40;
            Final = 1;
        }
        else
        {
            Final = 1;
            return 0;
        }
       
        if(Questao == 1 && Final == 1)
        {
            SendClientMessage(playerid, COLOR_GREEN, "Vocк passou a Primeira Questгo");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "Vocк errou a Primeira Questгo");
            //return 1;
        }
        if(Questao2 == 2 && Final == 1)
        {
            SendClientMessage(playerid, COLOR_GREEN, "Vocк passou a Segunda Questгo");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "Vocк errou a Segunda Questгo");
            //return 1;
        }
        if(Questao3 == 3 && Final == 1)
        {
            SendClientMessage(playerid, COLOR_GREEN, "Vocк passou a Terceira Questгo");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "Vocк errou a Terceira Questгo");
            //return 1;
        }
        if(Porcento == 100 && Final == 1)
        {
            SendClientMessage(playerid, COLOR_GREEN, "Vocк foi aprovado no teste!");
            new string[64], Enviador[MAX_PLAYER_NAME];
            GetPlayerName(playerid,Enviador,MAX_PLAYER_NAME);
            format(string,sizeof string,"[Servidor de Pilotos] %s passou o teste de Aviaзгo e foi aprovado! Boas Vindas a Ele!",Enviador);
            SendClientMessageToAll(COLOR_GREEN,string);
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "Vocк foi Reprovado");
            Kick(playerid);
            return 1;
        }
        }
    }
    return 1;
}
Mais eu respondo a 1, e a 2 daн volta para o 1 ao invйs de ir para 3. alguйm ajuda aн por favor
Reply
#2

Tenta ai:

PHP код:
new Questao[MAX_PLAYERS];

public 
OnPlayerText(playeridtext[])
{
    if(
JogadorInfo[playerid][Pergunta] == 0)
    {
        
SendClientMessage(playeridCOLOR_GREEN"--[Seja Bem-Vindo ao Servidor de Pilotos]--");
        
SendClientMessage(playeridCOLOR_RED"------Questгo 1: O que й um Piloto?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: Piloto й um Motorista que dirige o carro levando pessoas para viajar");
        
SendClientMessage(playeridCOLOR_WHITE"2: Piloto й um Homem que trabalha em um restaurante entregando refeiзхes");
         
SendClientMessage(playeridCOLOR_WHITE"3: Piloto й Alguйm que Pilota uma aeronave, viajando a vбrios paнses e levando...");
         
SendClientMessage(playeridCOLOR_WHITE"... passageiros para o seu destino e que treina sempre.");
        if(
strcmp("3"texttrue) == 0)
        {
            
Questao[playerid]++;
            
JogadorInfo[playerid][Pergunta] = 1;
        }
    }
    if(
JogadorInfo[playerid][Pergunta] == 1)
    {
        
SendClientMessage(playeridCOLOR_RED"------Questгo 2: Explique o que й ADF?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: ADF - Automatic Direction Finder, Acha a Rota desejada para o Aviгo");
        
SendClientMessage(playeridCOLOR_WHITE"2: ADF - Бgua Dura Federaзгo");
        
SendClientMessage(playeridCOLOR_WHITE"3: ADF - Й uma coisa que tem no carro?");
        if(
strlen(text))
        {
            if(
strcmp("1"texttrue) == 0) { Questao[playerid]++; }
            
JogadorInfo[playerid][Pergunta] = 2;
        }
    }
    if(
JogadorInfo[playerid][Pergunta] == 2)
    {
        
SendClientMessage(playeridCOLOR_RED"------Questгo 3: O que й TCAS?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: TCAS - Traffic Collision Avoidance System");
        
SendClientMessage(playeridCOLOR_WHITE"2: TCAS - Transiзгo Cara Apagar Sistema");
         
SendClientMessage(playeridCOLOR_WHITE"3: TCAS - Serve para formatar o computador");
         if(
strlen(text))
        {
            if(
strcmp("1"texttrue) == 0)
            {
                
Questao[playerid]++;
                
JogadorInfo[playerid][Pergunta] = -1;
            }
        }
        if(
Questao[playerid] == 3)
        {
            
SendClientMessage(playeridCOLOR_GREEN"Vocк acertou todas as questхes e foi aprovado no teste!");
            new 
string[128];
            
GetPlayerName(playeridstringMAX_PLAYER_NAME);
            
format(string,sizeof string,"[Servidor de Pilotos] %s passou o teste de Aviaзгo e foi aprovado! Boas Vindas a Ele!"string);
            
SendClientMessageToAll(COLOR_GREENstring);
            
// NГO DEVERIA HAVER AQUI ALGUMA VARIAVEL PRA DEFINIR QUE O JOGADOR ADQUIRIU A LICENCA ?
            // NГO DEVERIA HAVER AQUI ALGUMA VARIAVEL PRA DEFINIR QUE O JOGADOR ADQUIRIU A LICENCA ?
        
}
        else
        {
            
SendClientMessage(playeridCOLOR_RED"Vocк foi Reprovado.");
            
Kick(playerid);
        }
    }
    return 
1;

Reply
#3

Eu estou com problema no meu sistema de perguntas da autoescola, na 3° Pergunta ele nгo estб descongelando, mais vou ver se consigo arrumar perfeitamente..
Reply
#4

Quote:
Originally Posted by Sr.Pekeno
Посмотреть сообщение
Eu estou com problema no meu sistema de perguntas da autoescola, na 3° Pergunta ele nгo estб descongelando, mais vou ver se consigo arrumar perfeitamente..
pawn Код:
TogglePlayerControllable(playerid,1);
Reply
#5

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
Tenta ai:

PHP код:
new Questao[MAX_PLAYERS];
public 
OnPlayerText(playeridtext[])
{
    if(
JogadorInfo[playerid][Pergunta] == 0)
    {
        
SendClientMessage(playeridCOLOR_GREEN"--[Seja Bem-Vindo ao Servidor de Pilotos]--");
        
SendClientMessage(playeridCOLOR_RED"------Questгo 1: O que й um Piloto?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: Piloto й um Motorista que dirige o carro levando pessoas para viajar");
        
SendClientMessage(playeridCOLOR_WHITE"2: Piloto й um Homem que trabalha em um restaurante entregando refeiзхes");
         
SendClientMessage(playeridCOLOR_WHITE"3: Piloto й Alguйm que Pilota uma aeronave, viajando a vбrios paнses e levando...");
         
SendClientMessage(playeridCOLOR_WHITE"... passageiros para o seu destino e que treina sempre.");
        if(
strcmp("3"texttrue) == 0)
        {
            
Questao[playerid]++;
            
JogadorInfo[playerid][Pergunta] = 1;
        }
    }
    if(
JogadorInfo[playerid][Pergunta] == 1)
    {
        
SendClientMessage(playeridCOLOR_RED"------Questгo 2: Explique o que й ADF?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: ADF - Automatic Direction Finder, Acha a Rota desejada para o Aviгo");
        
SendClientMessage(playeridCOLOR_WHITE"2: ADF - Бgua Dura Federaзгo");
        
SendClientMessage(playeridCOLOR_WHITE"3: ADF - Й uma coisa que tem no carro?");
        if(
strlen(text))
        {
            if(
strcmp("1"texttrue) == 0) { Questao[playerid]++; }
            
JogadorInfo[playerid][Pergunta] = 2;
        }
    }
    if(
JogadorInfo[playerid][Pergunta] == 2)
    {
        
SendClientMessage(playeridCOLOR_RED"------Questгo 3: O que й TCAS?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: TCAS - Traffic Collision Avoidance System");
        
SendClientMessage(playeridCOLOR_WHITE"2: TCAS - Transiзгo Cara Apagar Sistema");
         
SendClientMessage(playeridCOLOR_WHITE"3: TCAS - Serve para formatar o computador");
         if(
strlen(text))
        {
            if(
strcmp("1"texttrue) == 0)
            {
                
Questao[playerid]++;
                
JogadorInfo[playerid][Pergunta] = -1;
            }
        }
        if(
Questao[playerid] == 3)
        {
            
SendClientMessage(playeridCOLOR_GREEN"Vocк acertou todas as questхes e foi aprovado no teste!");
            new 
string[128];
            
GetPlayerName(playeridstringMAX_PLAYER_NAME);
            
format(string,sizeof string,"[Servidor de Pilotos] %s passou o teste de Aviaзгo e foi aprovado! Boas Vindas a Ele!"string);
            
SendClientMessageToAll(COLOR_GREENstring);
            
// NГO DEVERIA HAVER AQUI ALGUMA VARIAVEL PRA DEFINIR QUE O JOGADOR ADQUIRIU A LICENCA ?
            // NГO DEVERIA HAVER AQUI ALGUMA VARIAVEL PRA DEFINIR QUE O JOGADOR ADQUIRIU A LICENCA ?
        
}
        else
        {
            
SendClientMessage(playeridCOLOR_RED"Vocк foi Reprovado.");
            
Kick(playerid);
        }
    }
    return 
1;

Num foi ainda... quando eu digito qualquer nъmero na questгo 1 jб aparece que eu fui reprovado e eu vou kick ajuda aн por favor.
@EDIT
O sistema que to tentando fazer й assim, se tipo o usuбrio Errar na questгo, daн marca um ponto de erro, e se Acertar na questгo marca um ponto que acertou, daн no final aparece, vocк acertou tal questгo e vocк errou tal questгo..
@EDIT2
Eu puis
pawn Код:
return 0;
nos
pawn Код:
if(strcmp("1", text, true) == 0)
            {
                Questao[playerid]++;
                JogadorInfo[playerid][Pergunta] = -1;
            }
e foi, mais no ъltimo, do TCAS, quando digita o nъmero nгo aparece mais nada. daн dps dб pra falar normal. a mensagem de boas vindas nгo aparece
Reply
#6

Eu mudei e ficou assim
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(JogadorInfo[playerid][Pergunta] == 0)
    {
        SendClientMessage(playerid, COLOR_GREEN, "--[Seja Bem-Vindo ao Servidor de Pilotos]--");
        SendClientMessage(playerid, COLOR_RED, "------Questгo 1: O que й um Piloto?------");
        SendClientMessage(playerid, COLOR_WHITE, "1: Piloto й um Motorista que dirige o carro levando pessoas para viajar");
        SendClientMessage(playerid, COLOR_WHITE, "2: Piloto й um Homem que trabalha em um restaurante entregando refeiзхes");
        SendClientMessage(playerid, COLOR_WHITE, "3: Piloto й Alguйm que Pilota uma aeronave, viajando a vбrios paнses e levando...");
        SendClientMessage(playerid, COLOR_WHITE, "... passageiros para o seu destino e que treina sempre.");
        if(strlen(text))
        {
        if(strcmp("3", text, true) == 0)
        {
            JogadorInfo[playerid][Pergunta] = 1;
            Acerto[playerid] += 1;
            return 0;
        }
        if(strcmp("1", text, true) == 0)
        {
            JogadorInfo[playerid][Pergunta] = 1;
            Erro[playerid] += 1;
            return 0;
        }
        if(strcmp("2", text, true) == 0)
        {
            JogadorInfo[playerid][Pergunta] = 1;
            Erro[playerid] += 1;
            return 0;
        }
        }
    }
    if(JogadorInfo[playerid][Pergunta] == 1)
    {
        SendClientMessage(playerid, COLOR_RED, "------Questгo 2: Explique o que й ADF?------");
        SendClientMessage(playerid, COLOR_WHITE, "1: ADF - Automatic Direction Finder, Acha a Rota desejada para o Aviгo");
        SendClientMessage(playerid, COLOR_WHITE, "2: ADF - Бgua Dura Federaзгo");
        SendClientMessage(playerid, COLOR_WHITE, "3: ADF - Й uma coisa que tem no carro?");
        if(strlen(text))
        {
            if(strcmp("1", text, true) == 0)
            {
                JogadorInfo[playerid][Pergunta] = 2;
                Acerto[playerid] += 1;
                return 0;
            }
            if(strcmp("2", text, true) == 0)
            {
                JogadorInfo[playerid][Pergunta] = 2;
                Erro[playerid] += 1;
                return 0;
            }
            if(strcmp("3", text, true) == 0)
            {
                JogadorInfo[playerid][Pergunta] = 2;
                Erro[playerid] += 1;
                return 0;
            }
        }
    }
    if(JogadorInfo[playerid][Pergunta] == 2)
    {
        SendClientMessage(playerid, COLOR_RED, "------Questгo 3: O que й TCAS?------");
        SendClientMessage(playerid, COLOR_WHITE, "1: TCAS - Traffic Collision Avoidance System");
        SendClientMessage(playerid, COLOR_WHITE, "2: TCAS - Transiзгo Cara Apagar Sistema");
        SendClientMessage(playerid, COLOR_WHITE, "3: TCAS - Serve para formatar o computador");
        if(strlen(text))
        {
            if(strcmp("1", text, true) == 0)
            {
                JogadorInfo[playerid][Pergunta] = -1;
                Acerto[playerid] += 1;
                Questoes(playerid);
                return 0;
            }
            if(strcmp("2", text, true) == 0)
            {
                JogadorInfo[playerid][Pergunta] = -1;
                Erro[playerid] += 1;
                Questoes(playerid);
                return 0;
            }
            if(strcmp("3", text, true) == 0)
            {
                JogadorInfo[playerid][Pergunta] = -1;
                Erro[playerid] += 1;
                Questoes(playerid);
                return 0;
            }
        }
       
    }
    return 1;
}
Mais quando vai na questгo 2, eu digito o nъmero, daн aparece "O que й TCAS?" mais daн quando eu digito o nъmero ele aparece em texto normal, era pra aparecer qual errou e qual acertou, com a msg de boas vindas. envio abaixo o Questoes(playerid):

pawn Код:
forward Questoes(playerid);
public Questoes(playerid)
{
    if(Acerto[playerid] == 3)
    {
        SendClientMessage(playerid, COLOR_GREEN, "Vocк acertou todas as questхes e foi aprovado no teste!");
        new string[128];
        GetPlayerName(playerid, string, MAX_PLAYER_NAME);
        format(string,sizeof string,"[Servidor de Pilotos] %s passou o teste de Aviaзгo e foi aprovado! Boas Vindas a Ele!", string);
        SendClientMessageToAll(COLOR_GREEN, string);
    }
    if(Erro[playerid] == 3)
    {
        SendClientMessage(playerid, COLOR_RED, "Vocк foi Reprovado.");
        Kick(playerid);
    }
    return 1;
}
Reply
#7

Tenta agora:

PHP код:
new bool:Questao1[MAX_PLAYERS];
new 
bool:Questao2[MAX_PLAYERS];
new 
bool:Questao3[MAX_PLAYERS];

public 
OnPlayerText(playeridtext[])
{
    if(
JogadorInfo[playerid][Pergunta] == 0)
    {
        
SendClientMessage(playeridCOLOR_GREEN"--[Seja Bem-Vindo ao Servidor de Pilotos]--");
        
SendClientMessage(playeridCOLOR_RED"------Questгo 1: O que й um Piloto?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: Piloto й um Motorista que dirige o carro levando pessoas para viajar");
        
SendClientMessage(playeridCOLOR_WHITE"2: Piloto й um Homem que trabalha em um restaurante entregando refeiзхes");
         
SendClientMessage(playeridCOLOR_WHITE"3: Piloto й Alguйm que Pilota uma aeronave, viajando a vбrios paнses e levando...");
         
SendClientMessage(playeridCOLOR_WHITE"... passageiros para o seu destino e que treina sempre.");
        if(
strlen(text))
        {
            if(
strcmp("3"texttrue) == 0)
            {
                
Questao1[playerid] = true;
                
JogadorInfo[playerid][Pergunta] = 1;
            }
        }
    }
    else if(
JogadorInfo[playerid][Pergunta] == 1)
    {
        
SendClientMessage(playeridCOLOR_RED"------Questгo 2: Explique o que й ADF?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: ADF - Automatic Direction Finder, Acha a Rota desejada para o Aviгo");
        
SendClientMessage(playeridCOLOR_WHITE"2: ADF - Бgua Dura Federaзгo");
        
SendClientMessage(playeridCOLOR_WHITE"3: ADF - Й uma coisa que tem no carro?");
        if(
strlen(text))
        {
            if(
strcmp("1"texttrue) == 0) { Questao2[playerid] = true; }
            
JogadorInfo[playerid][Pergunta] = 2;
        }
    }
    else if(
JogadorInfo[playerid][Pergunta] == 2)
    {
        
SendClientMessage(playeridCOLOR_RED"------Questгo 3: O que й TCAS?------");
        
SendClientMessage(playeridCOLOR_WHITE"1: TCAS - Traffic Collision Avoidance System");
        
SendClientMessage(playeridCOLOR_WHITE"2: TCAS - Transiзгo Cara Apagar Sistema");
         
SendClientMessage(playeridCOLOR_WHITE"3: TCAS - Serve para formatar o computador");
         if(
strlen(text))
        {
            if(
strcmp("1"texttrue) == 0)
            {
                
Questao3[playerid] = true;
                
JogadorInfo[playerid][Pergunta] = -1;
            }
        }
        if(
Questao1[playerid] == true) { SendClientMessage(playeridCOLOR_GREEN"Vocк passou a Primeira Questгo"); }
        else { 
SendClientMessage(playeridCOLOR_RED"Vocк errou a Primeira Questгo"); }
        if(
Questao2[playerid] == true) { SendClientMessage(playeridCOLOR_GREEN"Vocк passou a Segunda Questгo"); }
        else { 
SendClientMessage(playeridCOLOR_RED"Vocк errou a Segunda Questгo"); }
        if(
Questao3[playerid] == true) { SendClientMessage(playeridCOLOR_GREEN"Vocк passou a Terceira Questгo"); }
        else { 
SendClientMessage(playeridCOLOR_RED"Vocк errou a Terceira Questгo"); }
        if(
Questao1[playerid] == true && Questao2[playerid] == true && Questao3[playerid] == true)
        {
            
SendClientMessage(playeridCOLOR_GREEN"Vocк foi aprovado no teste!");
            new 
string[128];
            
GetPlayerName(playeridstringMAX_PLAYER_NAME);
            
format(string,sizeof string,"[Servidor de Pilotos] %s passou o teste de Aviaзгo e foi aprovado! Boas Vindas a Ele!"string);
            
SendClientMessageToAll(COLOR_GREENstring);
        }
        else
        {
            
SendClientMessage(playeridCOLOR_RED"Vocк foi Reprovado.");
            
Kick(playerid);
        }
    }
    return 
1;

Reply
#8

Passou o Primeiro, o Segundo, mais quando foi passar pro TCAS daн apareceu:
Vocк acertou a Primeira
Vocк errou a Segunda
Vocк acertou a Terceira
daн eu vou reprovado e sou Kicked. esse sistema й o mais complexo q to tentando criar.
Reply
#9

Nгo, ele nгo й complexo. Sу estamos errando alguma coisa bem simples ou entгo nгo estou entendendo o que vocк quer.

Me explica uma coisa:

Acertei as questхes 1 e 2 e, consequentemente, errei a 3.

Entгo quando responder a 3 devo ser kickado ? Ou nгo ?

Se nгo, vocк quer que aconteзa o que ?
Reply
#10

Nгo, й assim, pra passar no teste tem que acertar a 1, 2 e a 3. mais se errar alguma daн sim й kicked. mais o erro tб assim, eu respondo a 1 e a 2, mais quando tenta responder a 3 jб aparece que й reprovado, acertando ou errando. se precisar eu faзo um vнdeo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)