[POMOC]Reaction Test

Započeo IronBoy_
•12. Nov. 2013.• Zaključano
714
pregleda
2
postova
IronBoy_
3
Wheel Man
Balkan SA:MPBalkan SA:MP
SA-MP DoprinosSA-MP Doprinos
12. Nov. 2013.
Skripta koju koristim: Reaction Tests by Zh3r0
Detaljan opis problema: Na obicnom i ostalim modovima radi ali na mom nece ucita sve lijepo sa rcon komandom postavim pitanje npr (Who first say 7z432h7 win 5000$ ) ja upisem nista kao da se pravi budala kao da niko nista nije upisao a dok tu FS ubacim u druge modove rade mozda je lagano mozda ne da se popravi neznam, Ali ucim se skriptat novi sam pa barem mi pomozite 🙂

Dio skripte:
EVO CIJELA !!
#if defined x

|===========================================|
|        Reaction Tests by Zh3r0        |
|-------------------------------------------|
|      Creation date: May, 06, 2011    |
|                                          |
|  Type in console !start to start a test  |
|                                          |
|    Please keep the credits!          |
|===========================================|

#endif

#include

#define INTERVAL \
(3 * 60 * 1_000)   

#define MAX_RANDOM \
15         

#define MAX_MESSAGES \
25

#define MAX_QUESTION \
30

#define QUIZ_WINNERS  \
"Quiz Winners.txt"

#define MATH_WINNERS  \
"Math Winners.txt"

#define REACTION_WINNERS  \
"Reaction Winners.txt"

#define MSG_WINNERS  \
"Message Winners.txt"

new bTest, bMoney, bScore, bString, bool:Won, Winner, mString, Timer,
iMessages, mCount = 0;

new Question,
Option,
Answer,
CountQ = 0,
Q,
bool:Lost,
ReactionTime;

CreateQuiz(q[], o1[], o2[], o3[], answer[])
{

memcpy(Question, q, .numbytes = 256 );
memcpy(Option, o1, .numbytes = 100 );
memcpy(Option, o2, .numbytes = 100 );
memcpy(Option, o3, .numbytes = 100 );
memcpy(Option, answer, .numbytes = 100 );
++CountQ;
}
AddNewMessage(msg[])
{

memcpy(iMessages, msg, 0, 129, 129),
mCount++;

if(mCount >= MAX_MESSAGES){
    print("WARNING!! YOU EXCEEDED THE LIMIT OF "#MAX_MESSAGES" MESSAGES!\n\n\n");}
}

public OnFilterScriptInit()
{
    ReactionTime = 0;
//Question                                              Option1      Option2      Option3      Answer
    CreateQuiz("Who is the president of the United States?","Bin Laden", "Putin",      "Ceausescu",  "Barack Obama");
    CreateQuiz("Another question here?", "Option1", "Option2",    "Option3", "Answer!");
    CreateQuiz("Is this a question??", "NOPE!!", "WTF?",   "Hell no.",  "INDEED IT IS!!");
CreateQuiz("Who killed Bin Laden",                      "Obama",    "The beaver", "Nobody",    "NAVY SEAL");

AddNewMessage("This server rocks!!!");
AddNewMessage("We love to entertain you");
AddNewMessage("3v3RY0n3 l1k32 l337!!");
AddNewMessage("7hIz 73X7 iZ h4Rd 70 wRi73!" );
AddNewMessage("|-|4><0.-3.-2 |\\/||_|57 |)13");
AddNewMessage("HeloHeloHeloHeloOOPS");


printf("\n\n\
    |===========================================|\n\
|        Reaction Tests by Zh3r0          |\n\
|-------------------------------------------|\n\
|      Creation date: May, 06, 2011        |\n\
|                                          |\n\
|    Type in console !help to more info    |");

printf("\
|            Loaded %d messages     |\n\
|            Loaded %d questions     |\n\
|                                          |\n\
|    Please keep the credits!          |\n\
|===========================================|", mCount, CountQ);

Timer = SetTimerEx(#StartReaction, INTERVAL, 1, "dd", random(3), random(2));
return 1;
}
public OnPlayerConnect(playerid)
{
Lost = false;
SendClientMessage(playerid, ~1, "This server uses {CFF55F}Reaction Tests{FFFFFF} by {CFF55F}Zh3r0{FFFFFF}! Wait for them to appear!");
return 1;
}
public OnRconCommand(cmd[])
{
if(!strcmp(cmd, "!help", .length = 5))
{
    print("\n\n\
    |===========================================|\n\
|        Reaction Tests by Zh3r0          |\n\
|-------------------------------------------|\n\
|  Type /start in-game logged as admin    |\n\
|  to initiate a reaction test!            |\n\
|  Type in console !showmsgs to list the  |\n\
|  messages created.             |\n\
|===========================================|\n\n\n");
return 1;
}
if(!strcmp(cmd, "!showmsgs", .length = 9))
{
    print("\n\n\nDisplaying created messages:\n-----------------------\n");
for( new m; m < mCount; m++)
{
    print(iMessages);
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/an", true, 3))
{
    if(bTest != 4)
        return SendClientMessage(playerid, ~1, "There is no quiz game going on!");
       
if(Lost)
    return SendClientMessage(playerid, ~1, "You cannot answer anymore!");
   
    if((cmdtext != ' ') || (cmdtext == EOS))
        return SendClientMessage(playerid, ~1, "USAGE: /an {C3C3C3} (a,b,c,d)");

if(!strcmp(cmdtext, Answer, true, 1) && strlen(cmdtext))
{
    EndReaction(playerid, "answered correctly");
new Str,File:F = fopen(QUIZ_WINNERS, io_append);
if(F)
{
format(Str, sizeof(Str), "%s\r\n----------------------------------\r\n\
  Question: %s\r\n\
  Answer: %s) %s\r\n\
  Winner: %s\r\n\
  Took: %d ms\r\n\
  ----------------------------------\r\n\r\n",
  Date(),
  Question,
  Answer,
  Option,
  Name(playerid),
  ReactionTime);
fwrite(F, Str);
fclose(F);
}
Lost = false;
}
else
{
    Lost = true;
    SendClientMessage(playerid, ~1, "The answer was incorrect!");
}
return 1;
}

if(!strcmp(cmdtext, "/start", true, 6))
{
    if(IsPlayerAdmin(playerid))
{
    if((cmdtext != ' ') || (cmdtext == EOS))
return SendClientMessage(playerid, ~1, "USAGE: /start{C3C3C3} math/message [!text]/reaction/quiz/random");

           
    if(!strcmp(cmdtext, "math"))
{
StartReaction(0, 0);
SendClientMessage(playerid, ~1, "You started the {CFF55F}Math Reaction Test");
}
    else if(!strcmp(cmdtext, "message", true, 7))
{
    if(cmdtext == ' ' || cmdtext[15 || 14] != EOS)
    StartReaction(1, 0, cmdtext);
   

else if( cmdtext >= EOS )
StartReaction(1);

   
SendClientMessage(playerid, ~1, "You started the {CFF55F}Message Reaction Test");
}
    else if(!strcmp(cmdtext, "reaction"))
{
StartReaction(1, 1);
SendClientMessage(playerid, ~1, "You started the {CFF55F}Reaction Test");
}
else if(!strcmp(cmdtext, "quiz"))
{
StartReaction(2);
SendClientMessage(playerid, ~1, "You started the {CFF55F}Quiz Test");
}
else if(!strcmp(cmdtext, "random"))
{
StartReaction(random(3), random(2));
}
    else return SendClientMessage(playerid, ~1, "USAGE: {C3C3C3}/start math/message [!text]/reaction/quiz/random");

}else return 0;
    return 1;
}
return 0;
}

StartReaction( R1 = 3, R2 = 2, text[] = "?????")
{

KillTimer(Timer);
if(!Won){
    switch(bTest)
    {
        case (1): format(bString, 256, "Nobody was smart enough to calculate {CFF55F}%s{FFFFFF}. The answer was {CFF55F}%s{FFFFFF}.", mString, bString);
        case (2): format(bString, 256, "Nobody wrote {CFF55F}%s{FFFFFF} in time!", bString);
        case (3): format(bString, 256, "Nobody was fast enough to write {CFF55F}%s{FFFFFF} in time!", bString);
        case (4): format(bString, 256, "Nobody answered to the Quiz question! Answer {A9FF40}%s){FFFFFF} %s", Answer, Option);
}
if(strlen(bString))SendClientMessageToAll(~1, bString);
}
bString = EOS;
bString = EOS;
Winner = EOS;
mString = EOS;

bMoney = RandomEx(.Min = 9000, .Max = 7000),
bScore = RandomEx(.Min = 96, .Max = 120);

if(!R1)
{
        new
    N;
           
for(new n = 0; n != 4; n++) {N = 15 + random(50);}
switch(random(6))
{
  case (0): format(mString, sizeof(mString), "%d+%d-%d-%d",N,N,N,N),
  format(bString, 256, "%d", N + N - N - N);

case (1): format(mString, sizeof(mString), "%d-%d+%d-%d",N+40,N,N,N),
  format(bString, 256, "%d", N+40 - N + N - N);

case (2): format(mString, sizeof(mString), "%d-%d+%d+%d",N+40,N,N,N),
  format(bString, 256, "%d", N+40 - N + N + N);

      case (3): format(mString, sizeof(mString), "%d+%d+%d+%d",N,N,N,N),
    format(bString, 256, "%d", N + N + N + N);

case (4): format(mString, sizeof(mString), "%d-%d-%d-%d",N+40,N,N,N),
  format(bString, 256, "%d", N+40 + N + N + N);

case (5): format(mString, sizeof(mString), "%d+%d+%d*%d",N,N,N,N),
  format(bString, 256, "%d", N + N + N * N);
}
format(bString, 256, "First to calculate {CFF55F}%s {FFFFFF}receives {D7FFB8}$%i {FFFFFF}and {D7FFB8}%i{FFFFFF} score.",mString, bMoney, bScore );
SendClientMessageToAll(~1, bString );
bTest = 1;
}
if(R1 == 1)
{
  switch(R2)
    {
    case (0):
{
    if(!strcmp(text, "?????"))
memcpy(bString, iMessages[random(mCount)], 0, 256, 256);
else memcpy(bString, text, 0, 256, 256);

bTest = 2;
}

case (1):
{
    bString = EOS;
for( new c; c < MAX_RANDOM; ++c)
{
bString = random(2) ? ( '0' + random(9) ) : ( random(2) ? ( 'a' + random(26) ) : ( 'A' + random(26) ) );
}
bTest = 3;
}
}
format(bString, 256, "First to write {CFF55F}%s {FFFFFF}receives {D7FFB8}$%i {FFFFFF}and {D7FFB8}%i{FFFFFF} score.",bString, bMoney, bScore );
SendClientMessageToAll(~1, bString );
}
if(R1 == 2)
{

    Q = random(CountQ);
    bTest = 4;
    SendClientMessageToAll(~1, "-------------------------------------");
    format(bString, 256, "QUESTION:{FFFFFF} %s", Question);
SendClientMessageToAll(0xFF0000FF, bString);
    switch(random(4))
    {
   
        case 0:
format(bString, 256, "a) {FFFFFF}%s {A9FF40}b) {FFFFFF}%s {A9FF40}c) {FFFFFF}%s {A9FF40}d) {FFFFFF}%s", Option,Option,Option,Option),
Answer = 'a';

case 1:
format(bString, 256, "a) {FFFFFF}%s {A9FF40}b) {FFFFFF}%s {A9FF40}c) {FFFFFF}%s {A9FF40}d) {FFFFFF}%s", Option,Option,Option,Option),
Answer = 'b';

case 2:
format(bString, 256, "a) {FFFFFF}%s {A9FF40}b) {FFFFFF}%s {A9FF40}c) {FFFFFF}%s {A9FF40}d) {FFFFFF}%s", Option,Option,Option,Option),
Answer = 'c';

case 3:
format(bString, 256, "a) {FFFFFF}%s {A9FF40}b) {FFFFFF}%s {A9FF40}c) {FFFFFF}%s {A9FF40}d) {FFFFFF}%s", Option,Option,Option,Option),
Answer = 'd';

}
SendClientMessageToAll(0xA9FF40FF, bString);
SendClientMessageToAll(~1, "-------------------------------------");
SendClientMessageToAll(~1, "Use {FFFFFF}/an {C3C3C3}{FFFFFF} to answer!" );
}
Timer = SetTimerEx(#StartReaction, INTERVAL, 1, "dd", random(3), random(2));
ReactionTime = GetTickCount();
}
EndReaction(playerid, action[])
{
    GivePlayerMoney(playerid, bMoney);
SetPlayerScore(playerid, GetPlayerScore(playerid) + bScore);

if(bTest != 4)
    format(bString, 256, "Player {58CC00}%s{FFFFFF} %s {58CC00}%s{FFFFFF} first and won {D7FFB8}$%i {FFFFFF}and {D7FFB8}%i{FFFFFF} score.", Name(playerid), action, bString, bMoney, bScore);
else if(bTest == 4)
    format(bString, 256, "Player {58CC00}%s{FFFFFF} %s{FFFFFF}. Answer was {A9FF40}%s) {FFFFFF}%s{FFFFFF}", Name(playerid), action, Answer, Option);
   
for( new i = 0; i != MAX_PLAYERS; ++i){
    if(IsPlayerConnected(i)){
if(i != playerid){
            SendClientMessage(i, ~1, bString );
}
Lost = false;
}
}

format(bString, 256, "You were the first one to write the answer, you won {D7FFB8}$%i {FFFFFF}and {D7FFB8}%i{FFFFFF} score.", bMoney, bScore);
SendClientMessage(playerid, ~1, bString);

ReactionTime = (GetTickCount() - ReactionTime);
    format(bString, 256, "You answered in {58CC00}%d{FFFFFF} milliseconds ({58CC00}%d seconds{FFFFFF})",ReactionTime, floatround(ReactionTime * 0.001) );
    SendClientMessage(playerid, ~1, bString);
   
bTest = 0;
Won = true;
Winner = Name(playerid);

}
public OnPlayerText(playerid, text[])
{
if(bTest){
if(strlen(bString)){
if(!strcmp(text, bString, false)){
    new Str;
    switch(bTest)
    {
        case (1):
{
EndReaction(playerid, "calculated");
new File:F = fopen(MATH_WINNERS, io_append);
if(F)
{
    format(Str, sizeof(Str), "%s\r\n----------------------------------\r\n\
Calculation: %s\r\n\
Answer: %s\r\n\
Winner: %s\r\n\
Took: %d ms\r\n\
----------------------------------\r\n\r\n",
Date(),
mString,
bString,
Name(playerid),
ReactionTime);
fwrite(F, Str);
fclose(F);
}
}
   
        case (2):
{
EndReaction(playerid, "wrote");
new File:F = fopen(MSG_WINNERS, io_append);
if(F)
{
    format(Str, sizeof(Str), "%s\r\n----------------------------------\r\n\
Message: %s\r\n\
Winner: %s\r\n\
Took: %d ms\r\n\
----------------------------------\r\n\r\n",
Date(),
bString,
Name(playerid),
ReactionTime);
fwrite(F, Str);
fclose(F);
}
}
                    case (3):
{
EndReaction(playerid, "was faster at writing");
new File:F = fopen(REACTION_WINNERS, io_append);
if(F)
{
    format(Str, sizeof(Str), "%s\r\n----------------------------------\r\n\
Reaction: %s\r\n\
Winner: %s\r\n\
Took: %d ms\r\n\
----------------------------------\r\n\r\n",
Date(),
bString,
Name(playerid),
ReactionTime);
fwrite(F, Str);
fclose(F);
}
}
}
return 0;
}
}
}
else
{
    if(strlen(bString))
    {
    if(!strcmp(text, bString, false) && Won){

        if(!strcmp(Winner, Name(playerid), false)) bString = "You already answered!";
    else format(bString, 256, "Too late! {58CC00}%s{FFFFFF} answered first!", Winner );

    SendClientMessage(playerid, ~1, bString);
    return 0;
}
}
}

return 1;
}

Name(i){
new n;
GetPlayerName(i,n,24);
return n;
}
stock
RandomEx( Min, Max ){
new Random;
Random = Min + random( Max );
return Random;
}
Date(){
new dStr, D;
getdate(D, D, D);
gettime(D, D, D);
format(dStr, 30, "%d/%d/%d at %d:%d:%d",D, D, D, D, D, D);
return dStr;
}
#undef INTERVAL


AKO IMA NEKI SKRIPTER KOJI POZNAJE SQLITE A DA ZELI DA OTVORI FREEROAM/STUNT SERVER OBRATITE SE U PM JER MI JE POTREBAN PA DA ZAJEDNO OTVORIMO COMMUNITY ... HVALA 😛
MadDog
5
Crime Lord
Balkan SA:MPBalkan SA:MP
SA-MP DoprinosSA-MP Doprinos
12. Nov. 2013.
IronBoy_ wrote on November 12, 2013, 12:36 am:
AKO IMA NEKI SKRIPTER KOJI POZNAJE SQLITE A DA ZELI DA OTVORI FREEROAM/STUNT SERVER OBRATITE SE U PM JER MI JE POTREBAN PA DA ZAJEDNO OTVORIMO COMMUNITY ... HVALA 😛


Niko nece raditi sa sobom kada nemas znanje cim se koristis tudjim FS-ovima za neke lagane stvari.

Lock i prijava zbog ovog reklamiranja.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha