Ennek jónak kell lennie
#include <a_samp>
#define TIMING 120 // hány másodpercenként adjon új feladatot
#define wMAX 5000 // A megnyerhetõ összeg felsõ határa
#define wMIN 1000 // A megnyerhetõ összeg alsó határa [NEM LEHET 0]
#define rdiff 10 // A beírandó szöveg hosszúsága (MAX 64)
#define sMAX 3 //A megnyerhetõ pont felsõ határa
#define sMIN 1 // A megnyerhetõ pont alsó határa
#define INVALID_NAME \"¢°²`ÿ\"
new rtimer,rtick,rname[MAX_PLAYER_NAME],rtask[64],rwin,rswin, bool:megfejtve = false, CheckTimer;
public OnFilterScriptInit()
{
print(\"\\n..loading-----------------------------\");
rname = INVALID_NAME;
rtick = 0;
rwin = 0;
rtimer = SetTimer(\"StartReact\",1000*TIMING,true);
print(\"- eReaction - Epsilon\'s Reaction Tester\");
print(\"-------------------------------loaded.\\n\");
return 1;
}
public OnFilterScriptExit()
{
print(\"\\n..loading-----------------------------\");
print(\"- eReaction - Epsilon\'s Reaction Tester\");
KillTimer(rtimer);
print(\"-----------------------------unloaded.\\n\");
return 1;
}
forward StartReact();
public StartReact()
{
if(rwin!=0) return 0;
megfejtve = false;
CheckTimer = SetTimer(\"CheckFejtes\", 60000 * 5, 0); //5 perc múlva megvizsgálja, hogy beírta-e valaki
KillTimer(rtimer);
new str[160];
format(rtask,sizeof(rtask),\"1\",0);
rwin = random(wMAX-wMIN)+wMIN;
rswin = random(sMAX-sMIN)+sMIN;
rname = INVALID_NAME;
rtick = 0;
for(new i = 0; i < rdiff; i++) if(i%2) rtask = 65+random(90-65); else rtask = 97+random(122-97);
SendClientMessageToAll(0xADF200FF,\"Reakció teszt! {F7E600}Aki a {E9FF00}leggyorsabban {F7E600}beírja az alábbi {0098E5}feladatot {F7E600}megnyerheti a {F27100}nyereményt{F7E600}!\");
format(str,160,\"{F27100}nyeremény{F7E600}: {FFFFFF}%d$,%d Pont{FF0000}| {0098E5}feladat{F7E600}: {FFFFFF}%s\",rwin,rswin,rtask);
SendClientMessageToAll(0xFFFFFFFF,str);
rtick = GetTickCount();
return 0;
}
forward CheckFejtes();
public CheckFejtes()
{
if(megfejtve == false)
{
SendClientMessageToAll(-1, \"Mivel senki nem fejtette meg a reakciótesztet ezért 1 perc múlva újraindul.\");
SetTimer(\"StartReact\", 60000, false);
}
return 1;
}
public OnPlayerText(playerid, text[])
{
if(rwin != 0)
{
if(!strcmp(text,rtask))
{
if(!strcmp(rname,INVALID_NAME))
{
new str[128];
format(str,128,\"{FFD700}%s\",rtask);
SendPlayerMessageToAll(playerid,str);
str = \"\\0\";
GetPlayerName(playerid,str,MAX_PLAYER_NAME);
GivePlayerMoney(playerid,rwin);
SetPlayerScore(playerid, GetPlayerScore(playerid) + rswin);
format(str,128,\"{0098E5}%s megnyerte a {F27100}%d dollárt,%d pontot{0098E5}! ({F27100}%.2f másodperc{0098E5})\",str,rwin,rswin,float((GetTickCount()-rtick)/1000));
SendClientMessageToAll(0xFFFFFFFF,str);
megfejtve = true;
KillTimer(CheckTimer); // Mivel megoldotta valaki, leállítjuk a timert.
rwin = 0;
rswin = 0;
rtimer = SetTimer(\"StartReact\",1000*TIMING,false);
return 0;
}
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/startrtest\", cmdtext, true) == 0) if(IsPlayerAdmin(playerid))
{
StartReact();
return 1;
}
return 0;
}