Advertisement
Guest User

Report System.

a guest
Aug 7th, 2019
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.66 KB | None | 0 0
  1. //UPOZORENJE.
  2.  
  3. Ako kanite koristiti sistem morate ga prilagoditi svom modu, a ne samo ubaciti i ocekivati da radi.
  4.  
  5.  
  6. //Definicija za limit prijava.
  7. #define MAX_REPORT 10
  8.  
  9. //Ovo postavljate u enum gdje cuvate podatke.
  10. pLastReportTime
  11.  
  12. //Report enum
  13. enum reportInfo
  14. {
  15. ReportExists,
  16. ReportedName[MAX_PLAYER_NAME],
  17. ReportedBy[MAX_PLAYER_NAME],
  18. ReportDescription[48],
  19. ReportDate[18],
  20. ReportTime
  21. }
  22. new ReportInfo[MAX_REPORT][reportInfo];
  23.  
  24. //Postavljamo var na nulu (OnPlayerDisconnect) tako da iduci igrac koji ude na server ne dobije njegovu valutu.
  25. PInfo[playerid][pLastReportTime] = 0;
  26.  
  27. //FN
  28. ReturnDate()
  29. {
  30. new date[18], year, month, day, hours, minutes, seconds;
  31.  
  32. getdate(year, month, day);
  33. gettime(hours, minutes, seconds);
  34.  
  35. format(date, sizeof(date), "%02d/%02d/%d, %02d:%02d", day, month, year, hours, minutes);
  36.  
  37. return date;
  38. }
  39.  
  40.  
  41. //Komande
  42. CMD:report(playerid, params[])
  43. {
  44. new targetid, description[48];
  45.  
  46. if (sscanf(params, "us[48]", targetid, description))
  47. return SCM(playerid, COLOR_ORANGE_RED, "KORISTENJE: /report (ID/Ime) (Razlog)");
  48.  
  49. if (targetid == INVALID_PLAYER_ID)
  50. return SCM(playerid, COLOR_ORANGE_RED, "* Igrac nije povezan na server.");
  51.  
  52. new seconds = gettime() - PInfo[playerid][pLastReportTime];
  53.  
  54. if (seconds < 120)
  55. {
  56. new message[64];
  57.  
  58. format(message, sizeof(message), "* Report mozes poslati nakon %d %s.", 120 - seconds, (120 - seconds == 1) ? ("sekundi") : ("sekunda"));
  59. return SCM(playerid, COLOR_ORANGE_RED, message);
  60. }
  61. for (new i; i < MAX_REPORT; i++) if (!ReportInfo[i][ReportExists])
  62. {
  63. new message[144];
  64.  
  65. ReportInfo[i][ReportExists] = true;
  66. ReportInfo[i][ReportedName] = GetName(targetid);
  67. ReportInfo[i][ReportedBy] = GetName(playerid);
  68. ReportInfo[i][ReportDescription] = description;
  69. ReportInfo[i][ReportDate] = ReturnDate();
  70. ReportInfo[i][ReportTime] = gettime();
  71.  
  72. PInfo[playerid][pLastReportTime] = gettime();
  73.  
  74. SCM(playerid, 0xFFFF00AA, "* Tvoj report je poslan administratorima. Strpljenja molim...");
  75.  
  76. format(message, sizeof(message), "(REPORT) Igrac %s(%d) je prijavio %s(%d). Razlog: %s.\n ID: %d (/ar %d da prihvatis report).", GetName(playerid), playerid, GetName(targetid), playerid, description, i, i);
  77. foreach (new j : Player) if (PInfo[j][Admin]) SendClientMessage(j, COLOR_LIGHTBLUE, message);
  78.  
  79. return 1;
  80. }
  81. SCM(playerid, COLOR_ORANGE_RED, "* Broj prijava je premasen, pokusaj kasnije.");
  82. return 1;
  83. }
  84.  
  85. CMD:reports(playerid)
  86. {
  87. new count;
  88.  
  89. if(PInfo[playerid][Admin] >= 1 || PInfo[playerid][Operator] == 1)
  90.  
  91. for (new i, message[144]; i < MAX_REPORT; i++) if (ReportInfo[i][ReportExists])
  92. {
  93. format(message, sizeof(message), "ID: {FFFFFF}%d | %s je prijavio %s. Razlog: %s | Datum: %s", i, ReportInfo[i][ReportedBy], ReportInfo[i][ReportedName], ReportInfo[i][ReportDescription], ReportInfo[i][ReportDate]);
  94. SCM(playerid, 0xFFFF00AA, message);
  95.  
  96. count++;
  97. }
  98. if (count) SCM(playerid, 0xFFFF00AA, "* /ar [reportid] da prihvatis ili /dr [reportid] da odbijes report.");
  99. else SCM(playerid, 0xFFFF00AA, "* Nema zabiljezenih prijava trenutno.");
  100. return 1;
  101. }
  102.  
  103. CMD:ar(playerid, params[])
  104. {
  105. new reportid;
  106.  
  107. if(PInfo[playerid][Admin] >= 1 || PInfo[playerid][Operator] == 1)
  108.  
  109. if (sscanf(params, "d", reportid))
  110. return SCM(playerid, COLOR_ORANGE_RED, "KORISTENJE: /ar (reportid)");
  111.  
  112. if (reportid < 0 || reportid >= MAX_REPORT || !ReportInfo[reportid][ReportExists])
  113. return SCM(playerid, COLOR_ORANGE_RED, "* Prijava ne postoji.");
  114.  
  115. new message[84];
  116.  
  117. format(message, sizeof(message), "ADMIN: %s je prihvatio vas report.", GetName(playerid));
  118.  
  119. foreach (new i : Player) if (PInfo[i][Admin]) SCM(i, COLOR_ORANGE_RED, message);
  120. foreach (new i : Player) if (!strcmp(GetName(i), ReportInfo[reportid][ReportedBy]))
  121. {
  122. format(message, sizeof(message), "* %s pregledava vasu prijavu (Proslo vremena: %d sec).", GetName(playerid), gettime() - ReportInfo[reportid][ReportTime]);
  123. SCM(i, 0xFFFF00AA, message);
  124. break;
  125. }
  126. ReportInfo[reportid][ReportExists] = false;
  127. return 1;
  128. }
  129.  
  130. CMD:dr(playerid, params[])
  131. {
  132. new reportid;
  133.  
  134. if(PInfo[playerid][Admin] >= 1 || PInfo[playerid][Operator] == 1)
  135.  
  136. if (sscanf(params, "d", reportid))
  137. return SCM(playerid, COLOR_ORANGE_RED, "KORISTENJE: /dr (reportid)");
  138.  
  139. if (reportid < 0 || reportid >= MAX_REPORT || !ReportInfo[reportid][ReportExists])
  140. return SCM(playerid, COLOR_ORANGE_RED, "* Prijava ne postoji.");
  141.  
  142. new message[64];
  143.  
  144. ReportInfo[reportid][ReportExists] = false;
  145.  
  146. format(message, sizeof(message), "ADMIN: %s je odbio vasu prijavu.", GetName(playerid));
  147. foreach (new i : Player) if (PInfo[i][Admin]) SCM(i, COLOR_ORANGE_RED, message);
  148. return 1;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement