gc.pwn 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #include <YSI\y_hooks>
  2. hook OnScriptInit()
  3. {
  4. SetTimer("gunmuteplayertimer", 1000, 1);
  5. return 1;
  6. }
  7. #define COLOR_ERROR 0xFF5757FF
  8. #define COLOR_WHITE1 0xFFFFFF00
  9. #define COLOR_ORANGE1 0xFFAF00FF
  10. #define COLOR_ADMINS 0xFF5757FF
  11. //#define COLOR_ORANGE2 0xFF9B00FF
  12. new
  13. agctog,
  14. gctog[MAX_PLAYERS],
  15. gctag[MAX_PLAYERS],
  16. gctagname[MAX_PLAYERS][30],
  17. gcmute[MAX_PLAYERS],
  18. gcmuteperm[MAX_PLAYERS],
  19. gcmutetimer[MAX_PLAYERS]
  20. ;
  21. CMD:gmute(playerid, params[]){
  22. if(!IsPlayerAdmin(playerid)) return 0;
  23. new id, string[256], hours;
  24. if(sscanf(params, "d", id)) return SendClientMessage(playerid, COLOR_WHITE1, "Usage: /gmute [playerid] [hours - leaving it empty would give player a permanent mute.]");
  25. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_ADMINS, "Error: Invalid player id.");
  26. if(gcmute[id] == 1) return SendClientMessage(playerid, COLOR_ADMINS, "Error: Player is already muted.");
  27. if(hours > 25) return SendClientMessage(playerid, COLOR_ADMINS, "Error: Please select between 1-25 hours, leaving it empty would give player a permanent mute.");
  28. if(sscanf(params, "ds", id, hours)){
  29. gcmuteperm[id] = 1;
  30. SendClientMessage(id, COLOR_ADMINS, "[AdmCmd]: An admin has muted you PERMANENTLY from global chat.");
  31. format(string, sizeof(string), "[AdmCmd]: You have muted %s from global chat permanently.", pname(id));
  32. SendClientMessage(playerid, COLOR_ADMINS, string);
  33. } else {
  34. new calc = hours*3600;
  35. gcmute[id] = 1;
  36. gcmutetimer[id] = calc;
  37. format(string, sizeof(string), "[AdmCmd]: An admin has muted you for %d hours from global chat.", hours);
  38. SendClientMessage(id, COLOR_ADMINS, string);
  39. format(string, sizeof(string), "[AdmCmd]: You have muted %s for %d hours from global chat.", pname(id), hours);
  40. SendClientMessage(playerid, COLOR_ADMINS, string);
  41. }
  42. return 1;
  43. }
  44. CMD:gunmute(playerid, params[]){
  45. if(!IsPlayerAdmin(playerid)) return 0;
  46. new id, string[256];
  47. if(sscanf(params, "d", id)) return SendClientMessage(playerid, COLOR_WHITE1, "Usage: /gunmute [playerid]");
  48. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_ERROR, "Error: Invalid player id.");
  49. gcmute[id] = 0;
  50. gcmuteperm[id] = 0;
  51. SendClientMessage(id, COLOR_ADMINS, "[AdmCmd]: An admin has unmuted you from global chat.");
  52. format(string, sizeof(string), "[AdmCmd]: You have unmuted %s from global chat.", pname(id));
  53. return 1;
  54. }
  55. CMD:gc(playerid, params[]){
  56. new message[256], string[512];
  57. if(sscanf(params, "s", message)) return SendClientMessage(playerid, COLOR_WHITE1, "Usage: /gc [text]");
  58. if(gcmuteperm[playerid] == 1 || gcmute[playerid]) return SendClientMessage(playerid, COLOR_ERROR, "Error: You are muted by an admin.");
  59. if(agctog != 0){
  60. if(gctog[playerid] != 0){
  61. if(gctag[playerid] != 0){
  62. format(string, sizeof(string), "(Global Chat) %s [%s] (%d): %s", gctagname[playerid], pname(playerid), playerid, message);
  63. SendGlobalChat(string);
  64. }
  65. else{
  66. format(string, sizeof(string), "(Global Chat) %s (%d): %s", pname(playerid), playerid, message);
  67. SendGlobalChat(string);
  68. }
  69. } else {
  70. SendClientMessage(playerid, COLOR_ADMINS, "Error: You have disabled the global chat, /toggc to enable it.");
  71. }
  72. } else {
  73. SendClientMessage(playerid, COLOR_ADMINS, "Error: Global chat is disabled by an admin.");
  74. }
  75. return 1;
  76. }
  77. CMD:toggc(playerid, params[]){
  78. if(gctog[playerid] != 0){
  79. gctog[playerid] = 0;
  80. SendClientMessage(playerid, COLOR_WHITE1, "[!] You have disabled the global chat.");
  81. } else {
  82. gctog[playerid] = 1;
  83. SendClientMessage(playerid, COLOR_WHITE1, "[!] You have enabled the global chat.");
  84. }
  85. return 1;
  86. }
  87. CMD:setgtag(playerid, params[]){
  88. if(!IsPlayerAdmin(playerid)) return 0;
  89. new id, tag[30], string[128];
  90. if(sscanf(params, "d", id)) return SendClientMessage(playerid, COLOR_WHITE1, "Usage: /setgtag [playerid] [tag]");
  91. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_ADMINS, "Error: Invalid player id.");
  92. if(sscanf(params, "ds", id, tag))
  93. {
  94. if(gctag[id] == 1){
  95. SendClientMessage(id, COLOR_ADMINS, "[AdmCmd]: An admin has removed your global chat tag.");
  96. gctag[id] = 0;
  97. gctagname[id] = "None";
  98. format(string, sizeof(string), "[AdmCmd]: You have removed %s's global chat tag.", pname(id));
  99. SendClientMessage(playerid, COLOR_ADMINS, string);
  100. } else if(gctag[id] == 0) {
  101. SendClientMessage(playerid, COLOR_ADMINS, "Error: That player doesn't have any global chat tag.");
  102. }
  103. } else {
  104. format(string, sizeof(string), "[AdmCmd]: An admin has set your global chat tag to \"%s\".", tag);
  105. SendClientMessage(id, COLOR_ADMINS, string);
  106. gctag[id] = 1;
  107. gctagname[id] = tag;
  108. format(string, sizeof(string), "[AdmCmd]: You have set %s's global tag to \"%s\".", pname(id), tag);
  109. SendClientMessage(playerid, COLOR_ADMINS, string);
  110. }
  111. return 1;
  112. }
  113. CMD:atoggc(playerid, params[]){
  114. if(!IsPlayerAdmin(playerid)) return 0;
  115. if(agctog != 0){
  116. agctog = 0;
  117. SendClientMessageToAll(COLOR_ADMINS, "[AdmCmd]: An admin has disabled global chat.");
  118. } else {
  119. agctog = 1;
  120. SendClientMessageToAll(COLOR_ADMINS, "[AdmCmd]: An admin has enabled global chat.");
  121. }
  122. return 1;
  123. }
  124. SendGlobalChat(message[]){
  125. for (new i = 0; i < MAX_PLAYERS; i++) {
  126. if (IsPlayerConnected(i) && gctog[i] != 0) SendClientMessage(i, 0xFF9B00FF, message);
  127. }
  128. }
  129. forward gunmuteplayertimer(playerid);
  130. public gunmuteplayertimer(playerid){
  131. foreach(new i: Player){
  132. if(gcunmutetimer[i] != 0){
  133. gcmutetimer[i] --;
  134. } else{
  135. TimeGcUnmute(i);
  136. }
  137. }
  138. return 1;
  139. }
  140. forward TimeGcUnmute(playerid);
  141. public TimeGcUnmute(playerid){
  142. new string[256];
  143. gcmutetimer[playerid] = 0;
  144. gcmute[playerid] = 0;
  145. format(string, sizeof(string), "[System]: You have been automatically unmuted after serving your duration.");
  146. SendClientMessage(playerid, COLOR_ADMINS, string);
  147. return 1;
  148. }
  149. stock pname(playerid)
  150. {
  151. new playname[MAX_PLAYER_NAME];
  152. GetPlayerName(playerid, playname, MAX_PLAYER_NAME);
  153. return playname;
  154. }