Advertisement
Guest User

Reputation (Give Rep, Remove Rep, Saving System By kitten)

a guest
Nov 28th, 2012
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <zcmd>
  4. #include <YSI\y_ini>
  5.  
  6. #define V "1.0"
  7. #define FS "Reputation Filterscript"
  8. #define N "Kitten"
  9. #define CHAT "{C3C3C3}ยป"
  10. #define PU "/Rep/%s.ini"
  11.  
  12. enum PlayerRep
  13. {
  14. Rep
  15. };
  16. new pRep[MAX_PLAYERS][PlayerRep];
  17. new pName[24];
  18.  
  19. forward LoadUser_data(playerid,name[],value[]);
  20.  
  21. public OnFilterScriptInit() {
  22. print(""FS" "V" Loaded - By "N"");
  23. return 1;
  24. }
  25.  
  26. public OnFilterScriptExit() {
  27. print(""FS" "V" Unloaded - By "N"");
  28. return 1;
  29. }
  30.  
  31. public OnPlayerConnect(playerid) {
  32. pRep[playerid][Rep] = 0;
  33. if(fexist(UserPath(playerid))) {
  34. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  35. }
  36. else {
  37. FirstTimeRep(playerid);
  38. }
  39. return 1;
  40. }
  41.  
  42. public OnPlayerDisconnect(playerid, reason) {
  43. SaveRep(playerid);
  44. pRep[playerid][Rep] = 0;
  45. return 1;
  46. }
  47.  
  48. public LoadUser_data(playerid,name[],value[]) {
  49. INI_Int("Rep",pRep[playerid][Rep]);
  50. return 1;
  51. }
  52.  
  53. CMD:giverep(playerid,params[])
  54. {
  55. if(IsPlayerConnected(playerid)) {
  56. new targetid,giverep,reason[105],stringrep[256];
  57. if(sscanf(params,"uis[105]", targetid,giverep,reason)) return SendClientMessage(playerid,-1,""CHAT" /giverep [playerid] [amount] [reason]");
  58. if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,""CHAT" Player is not online");
  59. if(targetid == playerid) return SendClientMessage(playerid,-1,""CHAT" You cannot give reputation to yourself");
  60. if(giverep < 1 || giverep > 5) return SendClientMessage(playerid,-1,""CHAT" You can only give reputation between 1-5");
  61. pRep[targetid][Rep] += giverep;
  62. format(stringrep,sizeof(stringrep),""CHAT" Player %s has given %d rep to %s [Reason: %s]", PlayerName(playerid), giverep, PlayerName(targetid), reason);
  63. SendClientMessageToAll(-1,stringrep);
  64. }
  65. return 1;
  66. }
  67.  
  68. CMD:removerep(playerid,params[]) {
  69. if(IsPlayerAdmin(playerid)) { // Or replace this with your admin variable!
  70. new targetid,removerep,reason[105],stringrep[256];
  71. if(sscanf(params,"uis[105]", targetid,removerep,reason)) return SendClientMessage(playerid,-1,""CHAT" /removerep [playerid] [amount] [reason]");
  72. if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,""CHAT" Player is not online");
  73. if(removerep < 1 || removerep > 50) return SendClientMessage(playerid,-1,""CHAT" You can only remove between 1-5 reputation");
  74. pRep[targetid][Rep] -= removerep;
  75. format(stringrep,sizeof(stringrep),""CHAT" Admin %s has removed %d rep from %s [Reason: %s]", PlayerName(playerid), removerep, PlayerName(targetid), reason);
  76. SendClientMessageToAll(-1,stringrep);
  77. }
  78. else return SendClientMessage(playerid,-1,""CHAT" You are not admin!");
  79. return 1;
  80. }
  81.  
  82. CMD:rep(playerid,params[]) {
  83. new targetid, str[64];
  84. if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,-1,""CHAT" /rep [playerid]");
  85. if(IsPlayerConnected(targetid)) {
  86. format(str,sizeof(str),""CHAT" Player %s current reputation is %i",PlayerName(targetid),pRep[targetid][Rep]);
  87. SendClientMessage(playerid,-1,str);
  88. }
  89. return 1;
  90. }
  91.  
  92. stock UserPath(playerid) {
  93. new string[128];
  94. format(string,sizeof(string),PU,PlayerName(playerid));
  95. return string;
  96. }
  97.  
  98. stock PlayerName(playerid) {
  99. GetPlayerName(playerid, pName, 24);
  100. return pName;
  101. }
  102.  
  103. stock SaveRep(playerid) {
  104. if(fexist(UserPath(playerid))) {
  105. new INI:File = INI_Open(UserPath(playerid));
  106. INI_SetTag(File,"Reputation");
  107. INI_WriteInt(File,"Rep",pRep[playerid][Rep]);
  108. INI_Close(File);
  109. }
  110. return 1;
  111. }
  112.  
  113. stock FirstTimeRep(playerid) {
  114. new INI:File = INI_Open(UserPath(playerid));
  115. INI_SetTag(File,"Reputation");
  116. INI_WriteInt(File,"Rep",0);
  117. INI_Close(File);
  118. return 1;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement