Advertisement
Guest User

Zezombia

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