[PEDIDO] Sistema de ENEM
#1

Queria fazer tipo uma provinha de enem, assim:
A cada uma hora aparece um convite pra prova de enem, aн digita /fazerprova e faz um teste tipo aqueles pra arrumar habilitaзгo, que tem a questгo, aн sу fala a letra (Exemplo, sу fala "C") e responde.
Daн pra quem jб vez nгo aparece convite
Alguйm sabe fazer?
Reply
#2

й Fбcil. Tente Usar Vбriaveis й o OnPlayerText, Ou Dialog List Para Responder as Questoes. Pera Vo tentar fazer um.
Reply
#3

bgd
Reply
#4

PHP код:
#include <time>
#include <Dini>
forward ENEM();
forward Fechar(playerid);
new 
tempo;
new 
Teste[MAX_PLAYERS];
new 
Questao[MAX_PLAYERS];
new 
Acertos[MAX_PLAYERS];
new 
Erros[MAX_PLAYERS];
public 
OnGameModeInit()
{
    new 
h;
    
SetTimer("ENEM"60000,true);
    
gettime(h);
    
tempo h;
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    new 
save[40], n[24];
    
GetPlayerName(playeridnsizeof(n));
    
format(save40"/Enem/%s.txt"n);
    if(
fexist(save)) { Enem[playerid] = 1; }
    else { 
Enem[playerid] = 0; }
    
Questao[playerid] = 0;
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
save[40], n[24];
    
GetPlayerName(playeridnsizeof(n));
    
format(save40"/Enem/%s.txt"n);
    if(!
fexist(save))
    {
        if(
Enem[playerid] = 1
        { 
            
dini_Create(save);
            return 
1;
        }
        return 
1;
    }
    return 
1;
}
public 
ENEM()
{
    new 
hms;
    
gettime(h,m,s);
    if(
== tempo+|| == 23)
    {
        for(new 
0MAX_PLAYERS++)
        {
            if(
Enem[i] == && Teste[i] == 0)
            {
                
SendClientMessage(i, -1"Vocк tem 5 minutos para fazer a prova do Enem. Caso vocк queira, digite /fazerprova.");
                
Teste[i] = 1;
                
SetTimerEx("Fechar"300000false"i"playerid);
                return 
1;
            }    
        }
    }
    else
    {
        
tempo h;
    }
    return 
1;
}
public 
Fechar(playerid)
{
    
Teste[playerid] = 0;
    
SendClientMessage(playerid, -1"O teste foi fechado e vocк nгo poderб fazer a prova atй completar 1 hora.");
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp(cmdtext"/fazerprova"true) == 0)
    {
        if(
Teste[playerid] == 0) return SendClientMessage(playerid, -1"A prova estб fechada ou ainda nгo iniciada.");
        if(
Questao[playerid] >= 1) return SendClientMessage(playerid, -1"Vocк jб estб fazendo a prova do Enem.");
        
SetPlayerPos(playeridXYZ);
        
Questao[playerid] = 1;
        
Acertos[playerid] = 0;
        
Erros[playerid] = 0;
        
SendClientMessage(playerid, -1"Vocк foi teleportado atй o local do teste. Responda аs questхes abaixo.");
        for(new 
05++)
        {
            
SendClientMessage(playerid, -1" ");
        }
        
SendClientMessage(playerid, -1"Responda: 1000 + 900 - 320 = ?");
        
SendClientMessage(playerid, -1"A) 1580.");
        
SendClientMessage(playerid, -1"B) 2280.");
        
SendClientMessage(playerid, -1"C) 1780.");
        return 
1;
    }
    return 
0;
}
public 
OnPlayerText(playeridtext[])
{
    if(
Questao[playerid] == 1)
    {
        if(
strcmp(text"A"true) == 0)
        {
            
SendClientMessage(playerid, -1"Parabйns ! Vocк acertou. RESPOSTA: 1580.");
            
SendClientMessage(playerid, -1"Vamos а proxima pergunta.");
            
Acertos[playerid]++;
            
Questao[playerid] = 2;
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: Qual a capital da Austrбlia ?");
            
SendClientMessage(playerid, -1"A) Darwin.");
            
SendClientMessage(playerid, -1"B) Sydney.");
            
SendClientMessage(playerid, -1"C) Camberra.");
        }
        else if(
strlen(text) && strcmp(text"A"true) == -1)
        {
            
SendClientMessage(playerid, -1"Que pena ! Vocк errou a resposta !");
            
SendClientMessage(playerid, -1"Vamos а proxima pergunta.");
            
Erros[playerid]++;
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: Qual a capital da Austrбlia ?");
            
SendClientMessage(playerid, -1"A) Darwin.");
            
SendClientMessage(playerid, -1"B) Sydney.");
            
SendClientMessage(playerid, -1"C) Camberra.");
            
Questao[playerid] = 2;
        }
        else
        {
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: 1000 + 900 - 320 = ?"
            
SendClientMessage(playerid, -1"A) 1580.");
            
SendClientMessage(playerid, -1"B) 2280.");
            
SendClientMessage(playerid, -1"C) 1780.");
        }
    }
    else if(
Questao[playerid] == 2)
    {
        if(
strcmp(text"C"true) == 0)
        {
            
SendClientMessage(playerid, -1"Parabйns ! Vocк acertou. RESPOSTA: Camberra.");
            
SendClientMessage(playerid, -1"Vamos а ultima pergunta.");
            
Acertos[playerid]++;
            
Questao[playerid] = 3;
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: Qual o significado da palavra 'attach' em inglкs ?");
            
SendClientMessage(playerid, -1"A) Atacar.");
            
SendClientMessage(playerid, -1"B) Atrelar.");
            
SendClientMessage(playerid, -1"C) Anexar.");
        }
        else if(
strlen(text) && strcmp(text"C"true) == -1)
        {
            
SendClientMessage(playerid, -1"Que pena ! Vocк errou a resposta !");
            
SendClientMessage(playerid, -1"Vamos а ultima pergunta.");
            
Erros[playerid]++;
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: Qual o significado da palavra 'attach' em inglкs ?");
            
SendClientMessage(playerid, -1"A) Atacar.");
            
SendClientMessage(playerid, -1"B) Atrelar.");
            
SendClientMessage(playerid, -1"C) Anexar.");
            
Questao[playerid] = 3;
        }
        else
        {
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: Qual a capital da Austrбlia ?");
            
SendClientMessage(playerid, -1"A) Darwin.");
            
SendClientMessage(playerid, -1"B) Sydney.");
            
SendClientMessage(playerid, -1"C) Camberra.");
        }
    }
    else if(
Questao[playerid] == 3)
    {
        if(
strcmp(text"C"true) == 0)
        {
            
SendClientMessage(playerid, -1"Parabйns ! Vocк acertou. RESPOSTA: Anexar.");
            
SendClientMessage(playerid, -1"Vocк acertou todas as questхes e passou na prova do ENEM. Alйm disso, acaba de receber 10000 dуlares como prкmio !");
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
GivePlayerMoney(playerid10000);
            
Questao[playerid] = 0;
            
Acertos[playerid] = 0;
            
Erros[playerid] = 0;
            
Teste[playerid] = 0;
            
Enem[playerid] = 1;
            
SpawnPlayer(playerid);
        }
        else if(
strlen(text) && strcmp(text"C"true) == -1)
        {
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            new 
str[128];
            
Erros[playerid]++;
            
format(strsizeof(str), "Vocк acertou %d e errou %d questхes. Para passar na prova era necessбrio acertar TODAS as questхes !"Acertos[playerid], Erros[playerid]);
            
SendClientMessage(playerid, -1str);
            
Questao[playerid] = 0;
            
Acertos[playerid] = 0;
            
Erros[playerid] = 0;
            
Teste[playerid] = 0;
            
Enem[playerid] = 0;
            
SendClientMessage(playerid, -1"Alйm disso, a prova te custou 1500 dуlares.");
            
SpawnPlayer(playerid);
        }
        else
        {
            for(new 
05++)
            {
                
SendClientMessage(playerid, -1" ");
            }
            
SendClientMessage(playerid, -1"Responda: Qual o significado da palavra 'attach' em inglкs ?");
            
SendClientMessage(playerid, -1"A) Atacar.");
            
SendClientMessage(playerid, -1"B) Atrelar.");
            
SendClientMessage(playerid, -1"C) Anexar.");
        }
    }
    return 
1;

Reply
#5

vlw
Reply
#6

Funcionou ? *-*
Reply
#7

ainda nao testei, to editando as questoes, mas aposto que vai funcionar ^^
vlw, ok?
(podem fechar o tpc)
Reply
#8

Ok ! Qualquer coisa avisa ...
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)