1
0

global.inc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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_ADMINS 0xFF5757FF
  9. CMD:gmute(playerid, params[]){
  10. if(PlayerInfo[playerid][pAdmin] < 1337)
  11. return AdmErrorMsg;
  12. new
  13. targetid,
  14. str[256],
  15. hours,
  16. query[128]
  17. ;
  18. if(sscanf(params, "d", targetid)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /gmute [playerid] [hours - leaving it empty gives permanent mute.]");
  19. if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Invalid player id.");
  20. if(PlayerInfo[targetid][pGCMute] == 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error: {FFFFFF}That player is already muted.");
  21. if(hours > 25) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error: {FFFFFF}Please select between 1-25 hours - or leave it empty for permanet mute");
  22. if(sscanf(params, "dd", targetid, hours)){
  23. PlayerInfo[targetid][pGCMutePerm] = 1;
  24. SendClientMessage(targetid, COLOR_WHITE, "{FF0000}Warning{FFFFFF}: You were permanently muted from global chat.");
  25. format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s was permanently muted from global chat by %s.", PlayerName(targetid), PlayerName(playerid));
  26. ABroadCast(COLOR_WHITE, str, 1);
  27. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `GCMutePerm`= 1 WHERE `Name`='%e'", PlayerName(targetid));
  28. mysql_pquery(sqlGameConnection, query);
  29. } else {
  30. format(str, sizeof(str), "{FF0000}WARNING{FFFFFF}: You were muted from global chat for %d hours.", hours);
  31. SendClientMessage(targetid, COLOR_WHITE, str);
  32. format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s was muted from global chat by %s for %d hours.", PlayerName(targetid), PlayerName(playerid), hours);
  33. ABroadCast(COLOR_WHITE, str, 1);
  34. new calc = hours*3600;
  35. PlayerInfo[targetid][pGCMute] = 1;
  36. PlayerInfo[targetid][pGCMuteTimer] = calc;
  37. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `GCMute`= 1, `GCMuteTimer` = %d WHERE `Name`='%e'", calc, PlayerName(targetid));
  38. mysql_pquery(sqlGameConnection, query);
  39. }
  40. return 1;
  41. }
  42. CMD:gunmute(playerid, params[]){
  43. new query[128];
  44. if(PlayerInfo[playerid][pAdmin] < 1337)
  45. return AdmErrorMsg;
  46. new targetid, str[256];
  47. if(sscanf(params, "d", targetid)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /gunmute [playerid]");
  48. if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Invalid player id.");
  49. PlayerInfo[targetid][pGCMute] = 0;
  50. PlayerInfo[targetid][pGCMuteTimer] = 0;
  51. PlayerInfo[targetid][pGCMutePerm] = 0;
  52. SendClientMessage(targetid, COLOR_GREY, "{FF0000}Notification{FFFFFF}: You were unmuted from global chat.");
  53. format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s was unmuted from global chat by %s.", PlayerName(targetid), PlayerName(playerid));
  54. ABroadCast(COLOR_WHITE, str, 1);
  55. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `GCMute`= 0, `GCMuteTimer` = 0, `GCMutePerm` = 0 WHERE `Name`='%e'", PlayerName(targetid));
  56. mysql_pquery(sqlGameConnection, query);
  57. return 1;
  58. }
  59. CMD:requestglobalunmute(playerid, params[])
  60. {
  61. if(PlayerInfo[playerid][pGCMute] != 0)
  62. {
  63. if(PlayerInfo[playerid][pGCMutePerm] == 1) return SendClientMessage(playerid, COLOR_GREY, "You may not request an unmute as you are permanently banned from the global channel (post an unmute request on Coming soon)");
  64. new str[128];
  65. if(PlayerInfo[playerid][pGCReqTimer] > 0)
  66. {
  67. if(PlayerInfo[playerid][pGCReqUnmute] > 3600) format(str, sizeof(str), "You have %d hours left before you can /requestglobalunmute", PlayerInfo[playerid][pGCReqUnmute]/3600);
  68. else format(str, sizeof(str), "You have %d minutes left before you can /requestglobalunmute", PlayerInfo[playerid][pGCReqUnmute]/60);
  69. return SendClientMessage(playerid, COLOR_GREY, str);
  70. }
  71. if(PlayerInfo[playerid][pGCRequestUnmute] == true) return SendClientMessage(playerid, COLOR_WHITE, "You're already requested an global unmute.");
  72. new price;
  73. if(PlayerInfo[playerid][pLevel] <= 3) price = PlayerInfo[playerid][pLevel] * 15000;
  74. else price = PlayerInfo[playerid][pLevel] * 30000;
  75. format(str, sizeof(str), "You don't have enough money ($%d) to do this.", price);
  76. if(PlayerInfo[playerid][pCash] >= price)
  77. {
  78. format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has requested to be unmuted from the global chat (/acceptunmute /OR/ /denyunmute)", PlayerICName(playerid), playerid);
  79. ABroadCast(COLOR_WHITE, str, 1);
  80. format(str, sizeof(str), "You have requested to be unmuted from the global chat for $%d.", price);
  81. SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
  82. PlayerInfo[playerid][pGCRequestUnmute] = true;
  83. PlayerInfo[playerid][pGCUnmutePrice] = price;
  84. }
  85. else return SendClientMessage(playerid, COLOR_GRAD1, str);
  86. }
  87. else return SendClientMessage(playerid, COLOR_GRAD1, "You're not muted from the global chat channel.");
  88. return 1;
  89. }
  90. CMD:gc(playerid, params[]){
  91. if(PlayerInfo[playerid][pLevel] < 2) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You need to be atleast level 2 to use that command.");
  92. new message[1024], str[256];
  93. if(sscanf(params, "s[1024]", message)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /gc [text]");
  94. if(PlayerInfo[playerid][pGCMutePerm] == 1 || PlayerInfo[playerid][pGCMute]) return SendClientMessage(playerid, COLOR_ERROR, "{FF0000}Error:{FFFFFF} You are banned from speaking in that channel");
  95. if(AGCTog != 0){
  96. if(PlayerInfo[playerid][pGCTog] != 0){
  97. if(PlayerInfo[playerid][pGCTag] != 0){
  98. if(strlen(message) > MAX_SPLIT_LENGTH){
  99. format(str, sizeof(str), "[Global Chat] %s %s [%d]: %.*s", PlayerInfo[playerid][pGCTagName], PlayerOOCName(playerid), playerid, MAX_SPLIT_LENGTH, message);
  100. SendGlobalChat(str);
  101. format(str, sizeof(str), "[Global Chat] %s %s [%d]: ...%s", PlayerInfo[playerid][pGCTagName], PlayerOOCName(playerid), playerid, message[MAX_SPLIT_LENGTH]);
  102. SendGlobalChat(str);
  103. }
  104. else{
  105. format(str, sizeof(str), "[Global Chat] %s %s [%d]: %s", PlayerInfo[playerid][pGCTagName], PlayerOOCName(playerid), playerid, message);
  106. SendGlobalChat(str);
  107. }
  108. }
  109. else{
  110. if(strlen(message) > MAX_SPLIT_LENGTH){
  111. format(str, sizeof(str), "[Global Chat] %s [%d]: %.*s", PlayerOOCName(playerid), playerid, MAX_SPLIT_LENGTH, message);
  112. SendGlobalChat(str);
  113. format(str, sizeof(str), "[Global Chat] %s [%d]: ...%s", PlayerOOCName(playerid), playerid, message[MAX_SPLIT_LENGTH]);
  114. SendGlobalChat(str);
  115. }
  116. else{
  117. format(str, sizeof(str), "[Global Chat] %s [%d]: %s", PlayerOOCName(playerid), playerid, message);
  118. SendGlobalChat(str);
  119. }
  120. }
  121. } else {
  122. SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Global chat channel is currently turned off, /togglobal to enable it.");
  123. }
  124. } else {
  125. SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Global chat channel has been disabled by an admin.");
  126. }
  127. return 1;
  128. }
  129. CMD:togglobal(playerid, params[]){
  130. if(PlayerInfo[playerid][pLevel] < 2) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You need to be atleast level 2 to use that command.");
  131. if(PlayerInfo[playerid][pLevel] < 2) return 0;
  132. if(PlayerInfo[playerid][pGCTog] != 0){
  133. PlayerInfo[playerid][pGCTog] = 0;
  134. SendClientMessage(playerid, COLOR_GREY, "Global chat channel disabled.");
  135. } else {
  136. PlayerInfo[playerid][pGCTog] = 1;
  137. SendClientMessage(playerid, COLOR_GREY, "Global Chat channel enabled.");
  138. }
  139. return 1;
  140. }
  141. CMD:setgtag(playerid, params[]){
  142. if(PlayerInfo[playerid][pAdmin] < 1337)
  143. return AdmErrorMsg;
  144. new targetid, tag[30], str[512], query[128];
  145. if(sscanf(params, "d", targetid)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /setgtag [playerid] [tag]");
  146. if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Invalid player id.");
  147. if(sscanf(params, "ds[30]", targetid, tag))
  148. {
  149. if(PlayerInfo[targetid][pGCTag] == 1){
  150. SendClientMessage(targetid, COLOR_GREY, "{FF0000}Warning{FFFFFF}: Your global chat tag has been removed by an Admin.");
  151. PlayerInfo[targetid][pGCTag] = 0;
  152. PlayerInfo[targetid][pGCTagName] = 0;
  153. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `GCTagName`='None', `GCTag` = 0 WHERE `Name`='%e'", PlayerName(targetid));
  154. mysql_pquery(sqlGameConnection, query);
  155. format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s's global chat tag has been removed by Admin %s", PlayerName(targetid), PlayerName(playerid));
  156. ABroadCast(COLOR_WHITE, str, 1);
  157. } else if(PlayerInfo[targetid][pGCTag] == 0) {
  158. SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player doesn't have any global chat tag.");
  159. }
  160. } else {
  161. format(str, sizeof(str), "{FF0000}Notification{FFFFFF}: Your global chat tag has been set to {FF2200}\"%s\" {FFFFFF}by an Admin.", tag);
  162. SendClientMessage(targetid, COLOR_GREY, str);
  163. PlayerInfo[targetid][pGCTag] = 1;
  164. PlayerInfo[targetid][pGCTagName] = tag;
  165. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `GCTagName`='%e', `GCTag` = 1 WHERE `Name`='%e'", tag, PlayerName(targetid));
  166. mysql_pquery(sqlGameConnection, query);
  167. format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s's global chat tag has been set to {FF2200}\"%s\"{FFFFFF} by Admin %s.", PlayerName(targetid), tag, PlayerName(playerid));
  168. ABroadCast(COLOR_WHITE, str, 1);
  169. }
  170. return 1;
  171. }
  172. CMD:noglobal(playerid, params[]){
  173. if(PlayerInfo[playerid][pAdmin] < 1337)
  174. return AdmErrorMsg;
  175. new query[128];
  176. if(AGCTog != 0){
  177. AGCTog = 0;
  178. SendClientMessageToAll(COLOR_GREY, "Global chat channel has been disabled by an Admin.");
  179. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `stuff` SET `AGCTog` = %d", AGCTog);
  180. mysql_pquery(sqlGameConnection, query);
  181. } else {
  182. AGCTog = 1;
  183. SendClientMessageToAll(COLOR_GREY, "Global chat channel has been enabled by an Admin.");
  184. mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `stuff` SET `AGCTog` = %d", AGCTog);
  185. mysql_pquery(sqlGameConnection, query);
  186. }
  187. return 1;
  188. }
  189. SendGlobalChat(message[]){
  190. for (new i = 0; i < MAX_PLAYERS; i++) {
  191. if (IsPlayerConnected(i) && PlayerInfo[i][pGCTog] != 0) SendClientMessage(i, 0xFF9B00FF, message);
  192. }
  193. }
  194. forward gunmuteplayertimer(playerid);
  195. public gunmuteplayertimer(playerid){
  196. foreach(new i: Player)
  197. {
  198. if(PlayerInfo[i][pGCMuteTimer] != 0)
  199. {
  200. PlayerInfo[i][pGCMuteTimer] --;
  201. if(PlayerInfo[i][pGCMuteTimer] == 0)
  202. {
  203. TimeGcUnmute(i);
  204. }
  205. }
  206. }
  207. return 1;
  208. }
  209. forward TimeGcUnmute(playerid);
  210. public TimeGcUnmute(playerid){
  211. new str[256];
  212. PlayerInfo[playerid][pGCMuteTimer] = 0;
  213. PlayerInfo[playerid][pGCMute] = 0;
  214. format(str, sizeof(str), "[System]: You have been automatically unmuted after serving your duration.");
  215. SendClientMessage(playerid, COLOR_ADMINS, str);
  216. SQLSave(playerid);
  217. return 1;
  218. }