Guest User

Score

a guest
Sep 4th, 2016
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.33 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_timers>
  3. #include <dini>
  4.  
  5. #define FILTERSCRIPT
  6.  
  7. // Colours
  8. #define YELLOW                      0xFFFF00FF
  9.  
  10. #define RED                         0xE85454FF
  11. #define GREEN                       0x33AA33FF
  12. #define BLUE                        0x33CCFFFF
  13.  
  14. #define ORANGE                      0xFFAA00FF
  15. #define GREY                        0xAFAFAFFF
  16. #define PINK                        0xFFC0CBFF
  17. #define NAVY                        0x000080FF
  18. #define GOLD                        0xB8860BFF
  19. #define LGREEN                      0x00FD4DFF
  20. #define TEAL                        0x008080FF
  21. #define BROWN                       0xA52A2AFF
  22. #define AQUA                        0xF0F8FFFF
  23.  
  24. #define BLACK                       0x000000FF
  25. #define WHITE                       0xFFFFFFFF
  26. #define CHAT_LOCAL                  0xADABD1FF
  27. #define CHAT_RADIO                  0xCFD1ABFF
  28.  
  29.  
  30. // Embedding Colours
  31. #define C_YELLOW                    "{FFFF00}"
  32.  
  33. #define C_RED                       "{E85454}"
  34. #define C_GREEN                     "{33AA33}"
  35. #define C_BLUE                      "{33CCFF}"
  36.  
  37. #define C_ORANGE                    "{FFAA00}"
  38. #define C_GREY                      "{AFAFAF}"
  39. #define C_PINK                      "{FFC0CB}"
  40. #define C_NAVY                      "{000080}"
  41. #define C_GOLD                      "{B8860B}"
  42. #define C_LGREEN                    "{00FD4D}"
  43. #define C_TEAL                      "{008080}"
  44. #define C_BROWN                     "{A52A2A}"
  45. #define C_AQUA                      "{F0F8FF}"
  46.  
  47. #define C_BLACK                     "{000000}"
  48. #define C_WHITE                     "{FFFFFF}"
  49.  
  50. #define C_SPECIAL                   "{0025AA}"
  51.  
  52. // File paths
  53. #define PlayerPath "data/score/%s.ini"
  54.  
  55. new Text:ScoreDraw[MAX_PLAYERS];
  56.  
  57. stock SetPlayerScoreEx(playerid, score) // Fixes memory editing on scores. They're important, after all!
  58. {
  59.     //Initialize everything.
  60.     if(!IsPlayerConnected(playerid)) return;
  61.     SetPlayerScore(playerid, score);
  62.  
  63.     // How should the score be shown?
  64.     new drawstring[13];
  65.     if(score < 10)                              format(drawstring, sizeof(drawstring), "S:000000%i", score);
  66.     else if(score < 100)                        format(drawstring, sizeof(drawstring), "S:00000%i", score);
  67.     else if(score < 1000)                       format(drawstring, sizeof(drawstring), "S:0000%i", score);
  68.     else if(score < 10000)                      format(drawstring, sizeof(drawstring), "S:000%i", score);
  69.     else if(score < 100000)                     format(drawstring, sizeof(drawstring), "S:00%i", score);
  70.     else if(score < 1000000)                    format(drawstring, sizeof(drawstring), "S:0%i", score);
  71.     else if(score < 10000000)                   format(drawstring, sizeof(drawstring), "S:%i", score);
  72.     else                                        format(drawstring, sizeof(drawstring), "Allah! Too much");
  73.  
  74.     // Draw the new string!
  75.     TextDrawSetString(ScoreDraw[playerid], drawstring);
  76. }
  77.  
  78. public OnPlayerConnect(playerid)
  79. {
  80.     SetPlayerScoreEx(playerid, 0);
  81.    
  82.     // Setup local variables
  83.     new ply_Name[MAX_PLAYER_NAME], file[128];
  84.    
  85.     // Stylize the score draw.
  86.     ScoreDraw[playerid] = TextDrawCreate(499.000000, 94.000000, "");
  87.     TextDrawSetShadow(ScoreDraw[playerid], 1);
  88.     TextDrawColor(ScoreDraw[playerid], 0x7ADEFFAA);
  89.     TextDrawAlignment(ScoreDraw[playerid], 0);
  90.     TextDrawFont(ScoreDraw[playerid], 3);
  91.     TextDrawLetterSize(ScoreDraw[playerid], 0.5935, 2.4);
  92.     TextDrawSetOutline(ScoreDraw[playerid], 1);
  93.     TextDrawSetProportional(ScoreDraw[playerid], 1);
  94.    
  95.     GetPlayerName(playerid, ply_Name, sizeof ply_Name);
  96.    
  97.     format(file, sizeof file, PlayerPath, ply_Name);
  98.    
  99.     if(!dini_Exists(file)){
  100.         dini_Create(file);
  101.         dini_IntSet(file, "ply_Score", 0);
  102.     }
  103.     else{
  104.         SetPlayerScoreEx(playerid, dini_Int(file, "ply_Score"));
  105.     }
  106.    
  107.     defer IncreasePlayerScore(playerid);
  108.    
  109.     return 1;
  110. }
  111.  
  112. public OnPlayerSpawn(playerid)
  113. {
  114.     TextDrawShowForPlayer(playerid, ScoreDraw[playerid]);
  115.    
  116.     return 1;
  117. }
  118.  
  119. timer IncreasePlayerScore[15 * 60000](playerid)
  120. {
  121.     // Setup local variables
  122.     new ply_Name[MAX_PLAYER_NAME], file[128], string[128];
  123.    
  124.     GetPlayerName(playerid, ply_Name, sizeof ply_Name);
  125.     format(file, sizeof file, PlayerPath, ply_Name);
  126.    
  127.     SetPlayerScoreEx(playerid, GetPlayerScore(playerid) + 1);
  128.    
  129.     if(dini_Exists(file)){
  130.         dini_IntSet(file, "ply_Score", GetPlayerScore(playerid));
  131.     }
  132.    
  133.     format(string, sizeof string, ""C_YELLOW" >  "C_BLUE"You have played 15 minutes and received a score point!");
  134.     SendClientMessage(playerid, -1, string);
  135. }
  136.  
  137. public OnPlayerDeath(playerid, killerid, reason)
  138. {
  139.     if(killerid != INVALID_PLAYER_ID)
  140.     {
  141.         // Setup local variables
  142.         new ply_Name[MAX_PLAYER_NAME], file[128];
  143.  
  144.         GetPlayerName(killerid, ply_Name, sizeof ply_Name);
  145.         format(file, sizeof file, PlayerPath, ply_Name);
  146.  
  147.         SetPlayerScoreEx(killerid, GetPlayerScore(killerid) + 1);
  148.  
  149.         if(dini_Exists(file)){
  150.             dini_IntSet(file, "ply_Score", GetPlayerScore(killerid));
  151.         }
  152.     }
  153.    
  154.     TextDrawHideForPlayer(killerid, ScoreDraw[playerid]);
  155.    
  156.     return 1;
  157. }
Add Comment
Please, Sign In to add comment