Advertisement
Guest User

Zezombia

a guest
Nov 20th, 2008
1,342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.50 KB | None | 0 0
  1. /*------------------------*\
  2. | Maths script by Zezombia |
  3. \*------------------------*/
  4.  
  5. #include <a_samp>
  6.  
  7. #define yellow 0xFFFF00AA
  8. #define red 0xFF0000AA
  9. #define green 0x33FF33AA
  10.  
  11. forward Maths();
  12.  
  13. new answer;
  14. new answered;
  15. new score;
  16. new timer;
  17. new timerset;
  18.  
  19. public OnPlayerCommandText(playerid, cmdtext[])
  20. {
  21.     new cmd[256], idx;
  22.     cmd = strtok(cmdtext, idx);
  23.  
  24.     if (strcmp("/answer", cmd, true) == 0)
  25.     {
  26.         new tmp[256], cmdid, string[256], pname[MAX_PLAYER_NAME];
  27.         tmp = strtok(cmdtext, idx);
  28.         if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /Answer [answer]");
  29.         cmdid = strval(tmp);
  30.  
  31.         if(cmdid < answer || cmdid > answer)
  32.         {
  33.             SendClientMessage(playerid, red, "Wrong answer!");
  34.         }
  35.  
  36.         if(cmdid == answer && answered == 0)
  37.         {
  38.             GetPlayerName(playerid, pname, sizeof(pname));
  39.  
  40.             format(string, sizeof(string), "%s has won %d score for answering the math question '%d'!", pname, score, cmdid);
  41.             SendClientMessageToAll(green, string);
  42.             GivePlayerMoney(playerid, 10000);
  43.  
  44.             answered = 1;
  45.             SetPlayerScore(playerid, GetPlayerScore(playerid) + score);
  46.             score = 0;
  47.             return 1;
  48.         }
  49.         else if(cmdid == answer && answered == 1)
  50.         {
  51.             SendClientMessage(playerid, red, "To late!");
  52.         }
  53.         return 1;
  54.     }
  55.    
  56.     if (strcmp("/startmaths", cmd, true) == 0)
  57.     {
  58.         if(IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid, red, "You are not an RCON admin");
  59.    
  60.         new tmp[256], cmdid, string[256];
  61.         tmp = strtok(cmdtext, idx);
  62.         if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /Startmaths [timer (seconds)]");
  63.         cmdid = strval(tmp);
  64.  
  65.         KillTimer(timer);
  66.         timerset = cmdid * 1000;
  67.         timer = SetTimer("Maths", timerset, 1);
  68.        
  69.         format(string, sizeof(string), "Maths started, timer set to every %d seconds", cmdid);
  70.         SendClientMessage(playerid, yellow, string);
  71.         return 1;
  72.     }
  73.    
  74.     if (strcmp("/stopmaths", cmd, true) == 0)
  75.     {
  76.         if(IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid, red, "You are not an RCON admin");
  77.  
  78.         KillTimer(timer);
  79.         SendClientMessage(playerid, yellow, "Maths stopped");
  80.         return 1;
  81.     }
  82.     return 0;
  83. }
  84.  
  85. public Maths()
  86. {
  87.     new string[256], addsubtext1[10], addsubtext2[10];
  88.  
  89.     new temp1;
  90.  
  91.     new number1 = random(100);
  92.     new number2 = random(100);
  93.     new number3 = random(100);
  94.     new addsubnumb1 = random(2);
  95.     new addsubnumb2 = random(2);
  96.  
  97.     if(addsubnumb1 == 0)
  98.     {
  99.         score = score + 10;
  100.  
  101.         format(addsubtext1, sizeof(addsubtext1), "-");
  102.         temp1 = number1 - number2;
  103.     }
  104.     else if(addsubnumb1 == 1)
  105.     {
  106.         score = score + 5;
  107.  
  108.         format(addsubtext1, sizeof(addsubtext1), "+");
  109.         temp1 = number1 + number2;
  110.     }
  111.  
  112.     if(addsubnumb2 == 0)
  113.     {
  114.         score = score + 10;
  115.  
  116.         format(addsubtext2, sizeof(addsubtext2), "-");
  117.         answer = temp1 - number3;
  118.     }
  119.     else if(addsubnumb2 == 1)
  120.     {
  121.         score = score + 5;
  122.  
  123.         format(addsubtext2, sizeof(addsubtext2), "+");
  124.         answer = temp1 + number3;
  125.     }
  126.  
  127.     format(string, sizeof(string), "MATHS: %d%s%d%s%d - /answer to answer this question! Worth %d score!", number1, addsubtext1, number2, addsubtext2, number3, score);
  128.     SendClientMessageToAll(yellow, string);
  129.  
  130.     answered = 0;
  131.     return 1;
  132. }
  133.  
  134. strtok(const string[], &index)
  135. {
  136.     new length = strlen(string);
  137.     while ((index < length) && (string[index] <= ' '))
  138.     {
  139.         index++;
  140.     }
  141.  
  142.     new offset = index;
  143.     new result[20];
  144.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  145.     {
  146.         result[index - offset] = string[index];
  147.         index++;
  148.     }
  149.     result[index - offset] = EOS;
  150.     return result;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement