[FilterScript] Teste de reaзгo (Matemбtico)
#1


Bem galera apуs acabar a semana de provas na faculdade voltei a me empenhar no meu servidor,e fiz um simples sistema de teste de reaзгo matemбtico pois nunca vi algo do tipo no fуrum os existentes sгo apenas por letras (Existe um feito pelo garfield atй) entгo tive essa ideia na madrugada e passei cerca de 30 a 40 minutos fazendo e arrumando uns bugs que foram sendo encontrados



* O script contйm poucas linhas 190 no total contendo apenas um comando de debug (/iniciar).
* Caso queira editar o tempo para as questхes serem feitas edite a linha de nъmero 21.
pawn Code:
#define TempoDoDesafio      420000 + random(20000)
* A premiaзгo para quem acertar os cбlculos sгo um valor aleatуrio em dinheiro e em score.
* Includes utilizadas ( a_samp,foreach,zcmd ).



Cуdigo
pawn Code:
/*
    *FS Sistema de testes de reaзхes matemбticos
    *Versгo 1.0
    *Samp 0.3z
*/



#include <a_samp>
#include <foreach>
#include <zcmd>

new
    bool: TesteMatematico,          ResponderTeste,
    TempoTesteMatematico,           TempoDoTeste,                  
    ValorGanhoNoTeste,              ScoreNoTesteMatematico,
    string2[128]
;

#define COR_Informe         0x00FF0096
#define TempoDoDesafio      420000 + random(20000)

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public OnFilterScriptInit()
{
    print(" - Informe - Carregando sistemas [...] ");
    //----------------------------------------------------------
    TempoTesteMatematico = SetTimer("TesteDeReacao", TempoDoDesafio, 1);
    //----------------------------------------------------------
    print(" - Informe - Teste de reaзгo matemбtico versгo 1.0 carregado com sucesso ! ");
    //----------------------------------------------------------
    new ano,mes,dia;
    getdate(ano, mes, dia);
    //----------------------------------------------------------
    new hora,minutos,segundos;
    gettime(hora,minutos,segundos);
    //----------------------------------------------------------
    print(" |________________________________________|      ");
    printf("|                  Teste de Reaзгo          |   ");
    printf("|     Data: %d/%d/%d  Horas: %d:%d :%d   |  ",dia,mes,ano, hora, minutos, segundos);
    print(" |________________________________________|      ");
    //----------------------------------------------------------
    print (" - Informe - Carregado com sucesso ! \n\n");
    return 1;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public OnFilterScriptExit()
{
    print(" - Informe - Finalizando sistemas [...] ");
    //----------------------------------------------------------
    KillTimer(TempoTesteMatematico);
    //----------------------------------------------------------
    print(" - Informe - Teste de reaзгo matemбtico versгo 1.0 descarregado com sucesso ! ");
    //----------------------------------------------------------
    new ano,mes,dia;
    getdate(ano, mes, dia);
    //----------------------------------------------------------
    new hora,minutos,segundos;
    gettime(hora,minutos,segundos);
    //----------------------------------------------------------
    print(" |________________________________________|      ");
    printf("|                  Teste de Reaзгo          |   ");
    printf("|     Data: %d/%d/%d  Horas: %d:%d :%d   |  ",dia,mes,ano, hora, minutos, segundos);
    print(" |________________________________________|      ");
    //----------------------------------------------------------
    print (" - Informe - Descarregado com sucesso ! \n\n");
    return 1;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public OnPlayerText(playerid, text[])
{
    switch(TesteMatematico)
    {
        case true:
        {
            new ResultadoTeste = strval(text);
            //----------------------------------------------------------
            if(ResultadoTeste == TempoDoTeste && ResponderTeste == 0)
            {
                //----------------------------------------------------------
                foreach(Player, i)
                {
                    //----------------------------------------------------------
                    format(string2, sizeof(string2),
                    "[INFO DESAFIO]: ''%s'' Venceu o teste de reaзгo e ganhou o prкmio nesta rodada !",
                    PlayerName(playerid));
                    //----------------------------------------------------------
                    SendClientMessage(i, COR_Informe, string2);
                }
                //----------------------------------------------------------
                GivePlayerMoney(playerid, ValorGanhoNoTeste);
                KillTimer(TempoTesteMatematico);
                //----------------------------------------------------------
                SetPlayerScore(playerid, GetPlayerScore(playerid) + ScoreNoTesteMatematico);
                TempoTesteMatematico = SetTimer("TesteDeReacao", TempoDoDesafio, 1);
                //----------------------------------------------------------
                TesteMatematico = false;
                ResponderTeste = 1;
                //----------------------------------------------------------
            }
            else if(TempoDoTeste && ResponderTeste == 1)
            {
                SendClientMessage(playerid, -1,
                "[INFO DESAFIO]: Vocк foi muito lento e nгo conseguiu responder a tempo,que pena; Mas nгo desista tente em outra rodada!");
                //----------------------------------------------------------
                return 0;
            }
        }
    }
    return 1;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
forward TesteDeReacao(playerid);
public TesteDeReacao(playerid)
{
    new
        NumeroAleatorio = random(3),        DString[90],
        Numero1,                            Numero2,
        Numero3,                            Numero4

    ;
    //----------------------------------------------------------
    Numero1 = 10 + random(30);                  Numero2 = 15 + random(30);
    Numero3 = 10 + random(32);                  Numero4 = 20 + random(35);
    ValorGanhoNoTeste = 5000 + random(7000);    ScoreNoTesteMatematico = 8 + random(10);
    //----------------------------------------------------------
    format(string2, sizeof(string2),
    "[INFO DESAFIO]: A resposta da pergunta anterior foi o valor de ''%d''",
    TempoDoTeste);
    //----------------------------------------------------------
    SendClientMessageToAll(-1, string2);
    //----------------------------------------------------------
    switch(NumeroAleatorio)
    {
        case 1:
        {
            format(DString, sizeof(DString),"%d+%d-%d-%d",Numero1,Numero2,Numero3,Numero4);
            TempoDoTeste = Numero1+Numero2-Numero3-Numero4;
        }
        case 2:
        {
            format(DString, sizeof(DString), "%d-%d+%d-%d",Numero1,Numero2,Numero3,Numero4);
            TempoDoTeste = Numero1-Numero2+Numero3-Numero4;
        }
        case 3:
        {
            format(DString, sizeof(DString), "%d+%d+%d+%d",Numero1,Numero2,Numero3,Numero4);
            TempoDoTeste = Numero1+Numero2+Numero3+Numero4;
        }
        case 4:
        {
            format(DString, sizeof(DString), "%d+%d+%d-%d",Numero1,Numero2,Numero3,Numero4);
            TempoDoTeste = Numero1+Numero2+Numero3-Numero4;
        }
    }
    //----------------------------------------------------------
    format(string2, sizeof(string2),
    "[INFO DESAFIO]: O proximo a calcular o valor de ''%s'' vai ganhar um valor em dinheiro de ''%d'' $! Fique atento !!",
    DString,ValorGanhoNoTeste);
    //----------------------------------------------------------
    SendClientMessageToAll(-1, string2);
    //----------------------------------------------------------
    TesteMatematico = true;
    ResponderTeste = 0;
    return 1;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
stock PlayerName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CMD:iniciar(playerid)
{
    TesteDeReacao(playerid);
    return 1;
}
/*

- EOF - Since 2015

*/
* Aviso - Nгo ligue para a minha forma de 'organizar' o script eu acho bonito assim e jб e costume meu ;-;
* Favor nгo tirar os crйditos do mesmo
* Print provando o funcionamento




* Imagem meramente ilustrativa faзam bom uso
* A imagem foi tirada quando ainda existia um bug entгo ignorem
* Caso encontrar bugs me reportar para o mesmo sofrer uma atualizaзгo
Reply
#2

Bastante interessante, bom trabalho!
Reply
#3

Bom trabalho cara, e mucho loko isso em, rsrsrs
Reply
#4

Bem prбtico, bom trablho
Reply
#5

Quote:
Originally Posted by BlueX
View Post
Bastante interessante, bom trabalho!
Obrigado BlueX

Quote:
Originally Posted by gelton
View Post
Bom trabalho cara, e mucho loko isso em, rsrsrs
Valeu irmгo kkk e nozes

Quote:
Originally Posted by DayvisonJJB
View Post
Bem prбtico, bom trablho
Obrigado
Reply
#6

Muito bacana cara, mais uma opзгo pro server nao cair na rotina kkkkk
Reply
#7

Quote:
Originally Posted by GabrielDias_Invision
View Post
Muito bacana cara, mais uma opзгo pro server nao cair na rotina kkkkk
Sim sim inovar um pouco porque os servidores brs de dm/stunt estгo bem complicados kkk,obrigado
Reply
#8

Gostei, isso tambйm serve para fazer eventos em alguns servidores RPG ou RP, belo trabalho
Reply
#9

Quote:
Originally Posted by viniciuship
View Post
Gostei, isso tambйm serve para fazer eventos em alguns servidores RPG ou RP, belo trabalho
Valeu
Reply


Forum Jump:


Users browsing this thread: