01.05.2015, 10:55
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)
* 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
*/
* 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