F1N4L_

Include Ban System [MySQL R39-4 + TD]

May 29th, 2016
719
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.63 KB | None | 0 0
  1. #define TABLE_BAN "BAN"
  2. #define ID "ID"
  3. #define NAME "NAME"
  4. #define IP "IP"
  5. #define DATE "DATE"
  6. #define BAN_BY "BAN BY"
  7. #define REASON "REASON"
  8. #define TIME "TIME"
  9.  
  10. #define PERMANENT 0
  11. #define MINUTES 1
  12. #define HOURS 2
  13. #define DAYS 3
  14.  
  15. new MyConection;
  16. new PlayerText:Ban_TD[MAX_PLAYERS][4];
  17.  
  18. public OnPlayerConnect(playerid)
  19. {
  20. Ban_TD[playerid][0] = CreatePlayerTextDraw(playerid, 114.241218, 142.017349, "_");
  21. PlayerTextDrawLetterSize(playerid, Ban_TD[playerid][0], 0.420705, 17.037477);
  22. PlayerTextDrawTextSize(playerid, Ban_TD[playerid][0], 501.299957, 0.000000);
  23. PlayerTextDrawAlignment(playerid, Ban_TD[playerid][0], 1);
  24. PlayerTextDrawColor(playerid, Ban_TD[playerid][0], -1);
  25. PlayerTextDrawUseBox(playerid, Ban_TD[playerid][0], 1);
  26. PlayerTextDrawBoxColor(playerid, Ban_TD[playerid][0], 100);
  27. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][0], 0);
  28. PlayerTextDrawSetOutline(playerid, Ban_TD[playerid][0], 0);
  29. PlayerTextDrawBackgroundColor(playerid, Ban_TD[playerid][0], 77);
  30. PlayerTextDrawFont(playerid, Ban_TD[playerid][0], 1);
  31. PlayerTextDrawSetProportional(playerid, Ban_TD[playerid][0], 1);
  32. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][0], 0);
  33.  
  34. Ban_TD[playerid][1] = CreatePlayerTextDraw(playerid, 307.847869, 123.066467, "_");
  35. PlayerTextDrawLetterSize(playerid, Ban_TD[playerid][1], 0.400000, 1.600000);
  36. PlayerTextDrawTextSize(playerid, Ban_TD[playerid][1], 0.000000, 387.000000);
  37. PlayerTextDrawAlignment(playerid, Ban_TD[playerid][1], 2);
  38. PlayerTextDrawColor(playerid, Ban_TD[playerid][1], -1744830465);
  39. PlayerTextDrawUseBox(playerid, Ban_TD[playerid][1], 1);
  40. PlayerTextDrawBoxColor(playerid, Ban_TD[playerid][1], -16777066);
  41. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][1], 0);
  42. PlayerTextDrawSetOutline(playerid, Ban_TD[playerid][1], 0);
  43. PlayerTextDrawBackgroundColor(playerid, Ban_TD[playerid][1], 1962934527);
  44. PlayerTextDrawFont(playerid, Ban_TD[playerid][1], 1);
  45. PlayerTextDrawSetProportional(playerid, Ban_TD[playerid][1], 1);
  46. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][1], 0);
  47.  
  48. Ban_TD[playerid][2] = CreatePlayerTextDraw(playerid, 176.117904, 121.983161, "YOU_ARE_BANNED_FROM_THIS_SERVER!");
  49. PlayerTextDrawLetterSize(playerid, Ban_TD[playerid][2], 0.400000, 1.600000);
  50. PlayerTextDrawAlignment(playerid, Ban_TD[playerid][2], 1);
  51. PlayerTextDrawColor(playerid, Ban_TD[playerid][2], 255);
  52. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][2], 0);
  53. PlayerTextDrawSetOutline(playerid, Ban_TD[playerid][2], 0);
  54. PlayerTextDrawBackgroundColor(playerid, Ban_TD[playerid][2], 255);
  55. PlayerTextDrawFont(playerid, Ban_TD[playerid][2], 2);
  56. PlayerTextDrawSetProportional(playerid, Ban_TD[playerid][2], 1);
  57. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][2], 0);
  58.  
  59. Ban_TD[playerid][3] = CreatePlayerTextDraw(playerid, 128.588684, 142.650985, "NAME:_XXXXXXXXXXXXXXXXXXXXXXXX~n~IP:_000.000.000.000~n~DATE:_00/00/0000_-_00:00:00~n~ADMIN:_XXXXXXXXXXXXXXXXXXXXXXXX~n~REASON:_XXXXXXXXXXXXXXXXXXXXXXXXX~n~TIME_LEFT:~n~0000_DAYS_E_00_HOURS_E_00_MINUTES_E_00_SECONDS");
  60. PlayerTextDrawLetterSize(playerid, Ban_TD[playerid][3], 0.337294, 2.375833);
  61. PlayerTextDrawAlignment(playerid, Ban_TD[playerid][3], 1);
  62. PlayerTextDrawColor(playerid, Ban_TD[playerid][3], -16776961);
  63. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][3], 0);
  64. PlayerTextDrawSetOutline(playerid, Ban_TD[playerid][3], 0);
  65. PlayerTextDrawBackgroundColor(playerid, Ban_TD[playerid][3], 255);
  66. PlayerTextDrawFont(playerid, Ban_TD[playerid][3], 2);
  67. PlayerTextDrawSetProportional(playerid, Ban_TD[playerid][3], 1);
  68. PlayerTextDrawSetShadow(playerid, Ban_TD[playerid][3], 0);
  69.  
  70. mysql_banned_check(playerid);
  71.  
  72. #if defined MySQL_OnPlayerConnect
  73. return MySQL_OnPlayerConnect(playerid);
  74. #else
  75. return 1;
  76. #endif
  77. }
  78. #if defined _ALS_OnPlayerConnect
  79. #undef OnPlayerConnect
  80. #else
  81. #define _ALS_OnPlayerConnect
  82. #endif
  83. #define OnPlayerConnect MySQL_OnPlayerConnect
  84. #if defined MySQL_OnPlayerConnect
  85. forward MySQL_OnPlayerConnect(playerid);
  86. #endif
  87.  
  88. public OnPlayerDisconnect(playerid, reason)
  89. {
  90. for(new i = 0; i < sizeof Ban_TD; i ++) PlayerTextDrawHide(playerid, Ban_TD[playerid][i]), PlayerTextDrawDestroy(playerid, Ban_TD[playerid][i]);
  91.  
  92. #if defined MySQL_OnPlayerDisconnect
  93. return MySQL_OnPlayerDisconnect(playerid);
  94. #else
  95. return 1;
  96. #endif
  97. }
  98. #if defined _ALS_OnPlayerDisconnect
  99. #undef OnPlayerDisconnect
  100. #else
  101. #define _ALS_OnPlayerDisconnect
  102. #endif
  103. #define OnPlayerDisconnect MySQL_OnPlayerDisconnect
  104. #if defined MySQL_OnPlayerDisconnect
  105. forward MySQL_OnPlayerDisconnect(playerid, reason);
  106. #endif
  107.  
  108. stock inc_ban_connect(const Server_Host[], const Server_User[], const Server_Database[], const Server_Password[])
  109. {
  110. MyConection = mysql_connect(Server_Host, Server_User, Server_Database, Server_Password);
  111.  
  112. new MySQL_Format[400];
  113.  
  114. mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "CREATE TABLE IF NOT EXISTS `"TABLE_BAN"` ( \
  115. `"ID"` INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT, \
  116. `"NAME"` VARCHAR(24), \
  117. `"IP"` VARCHAR(16), \
  118. `"DATE"` VARCHAR(40), \
  119. `"BAN_BY"` VARCHAR(24), \
  120. `"REASON"`VARCHAR(20), \
  121. `"TIME"` INT(20))");
  122. mysql_query(MyConection, MySQL_Format);
  123.  
  124. return 1;
  125. }
  126.  
  127. stock mysql_banned_check(playerid)
  128. {
  129. new MySQL_Format[300], GetDATE[50], Format[100], Strcat[500], Cache:GetCache, TimeBanLeft;
  130.  
  131. mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "SELECT * FROM `"TABLE_BAN"` WHERE `"IP"` = '%s' OR `"NAME"` = '%s'", GetIP(playerid), GetName(playerid));
  132. GetCache = mysql_query(MyConection, MySQL_Format);
  133. if(cache_num_rows())
  134. {
  135. TimeBanLeft = cache_get_field_content_int(0, TIME);
  136. if(TimeBanLeft <= gettime())
  137. {
  138. mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "DELETE FROM `"TABLE_BAN"` WHERE `"IP"` = '%s' OR `"NAME"` = '%s'", GetIP(playerid), GetName(playerid));
  139. mysql_query(MyConection, MySQL_Format);
  140.  
  141. SendClientMessage(playerid, -1, "You are unbanned. Avoid being banned again!");
  142. }
  143. else
  144. {
  145. cache_get_field_content(0, NAME, GetDATE); format(Format, sizeof Format, "NAME: %s~n~", GetDATE), strcat(Strcat, Format);
  146. cache_get_field_content(0, IP, GetDATE); format(Format, sizeof Format, "IP: %s~n~", GetDATE), strcat(Strcat, Format);
  147. cache_get_field_content(0, DATE, GetDATE); format(Format, sizeof Format, "DATE: %s~n~", GetDATE), strcat(Strcat, Format);
  148. cache_get_field_content(0, BAN_BY, GetDATE); format(Format, sizeof Format, "ADMIN: %s~n~", GetDATE), strcat(Strcat, Format);
  149. cache_get_field_content(0, REASON, GetDATE); format(Format, sizeof Format, "REASON: %s~n~", GetDATE), strcat(Strcat, Format);
  150. TimeBanLeft = cache_get_field_content_int(0, TIME); format(Format, sizeof Format, "TIME LEFT:~n~%s", ConvertTime(TimeBanLeft - gettime())), strcat(Strcat, Format);
  151.  
  152. PlayerTextDrawSetString(playerid, Ban_TD[playerid][3], Strcat);
  153.  
  154. PlayerTextDrawShow(playerid, Ban_TD[playerid][0]);
  155. PlayerTextDrawShow(playerid, Ban_TD[playerid][1]);
  156. PlayerTextDrawShow(playerid, Ban_TD[playerid][2]);
  157. PlayerTextDrawShow(playerid, Ban_TD[playerid][3]);
  158.  
  159. pKick(playerid);
  160. }
  161. }
  162. cache_delete(GetCache);
  163.  
  164. return 1;
  165. }
  166.  
  167. stock mysql_ban_remove(Banned[])
  168. {
  169. new MySQL_Format[400], Cache:GetCache_;
  170.  
  171. mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "SELECT `"IP"`, `"NAME"` FROM `"TABLE_BAN"` WHERE `"IP"` = '%s' OR `"NAME"` = '%s'", Banned, Banned);
  172. GetCache_ = mysql_query(MyConection, MySQL_Format);
  173.  
  174. if(cache_num_rows())
  175. {
  176. mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "DELETE FROM `"TABLE_BAN"` WHERE `"IP"` = '%s' OR `"NAME"` = '%s'", Banned, Banned);
  177. mysql_query(MyConection, MySQL_Format);
  178. }
  179. cache_delete(GetCache_);
  180.  
  181. return 1;
  182. }
  183.  
  184. stock bool:mysql_ban_remove_check(Banned[])
  185. {
  186. new MySQL_Format[400], Cache:GetCache_, bool:FindBan;
  187.  
  188. mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "SELECT `"IP"`, `"NAME"` FROM `"TABLE_BAN"` WHERE `"IP"` = '%s' OR `"NAME"` = '%s'", Banned, Banned);
  189. GetCache_ = mysql_query(MyConection, MySQL_Format);
  190.  
  191. if(cache_num_rows()) FindBan = true;
  192. else FindBan = false;
  193.  
  194. cache_delete(GetCache_);
  195.  
  196. return FindBan;
  197. }
  198.  
  199. stock bool:mysql_ban_player_check(Find[])
  200. {
  201. new bool:FindPlayer;
  202.  
  203. for(new i = 0; i < MAX_PLAYERS; i ++)
  204. {
  205. if(!IsPlayerConnected(i)) continue;
  206. if(strcmp(GetName(i), Find, true) == 0) FindPlayer = true;
  207. if(strcmp(GetIP(i), Find, true) == 0) FindPlayer = true;
  208. }
  209.  
  210. return FindPlayer;
  211. }
  212.  
  213. stock mysql_ban_player(Player_Name[], Player_IP[], Ban_By[], Reason[], Ban_Type, Time)
  214. {
  215. new GetTime[3], GetDate[3], FormatTimeDate[40], MySQL_Format[400];
  216.  
  217. gettime(GetTime[0], GetTime[1], GetTime[2]);
  218. getdate(GetDate[0], GetDate[1], GetDate[2]);
  219.  
  220. format(FormatTimeDate, sizeof FormatTimeDate, "%02i/%02i/%02i - %02i:%02i:%02i", GetDate[2], GetDate[1], GetDate[0], GetTime[0], GetTime[1], GetTime[2]);
  221.  
  222. for(new i = 0; i < MAX_PLAYERS; i ++)
  223. {
  224. if(!IsPlayerConnected(i)) continue;
  225. if(strcmp(GetName(i), Player_Name, true) == 0) pKick(i);
  226. if(strcmp(GetIP(i), Player_IP, true) == 0) pKick(i);
  227. }
  228.  
  229. switch(Ban_Type)
  230. {
  231. case PERMANENT: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NAME"`, `"IP"`, `"DATE"`, `"BAN_BY"`, `"REASON"`, `"TIME"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, 20 * 12 * 30 * 24 * 60 * 60 + gettime());
  232. case MINUTES: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NAME"`, `"IP"`, `"DATE"`, `"BAN_BY"`, `"REASON"`, `"TIME"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, Time * 60 + gettime());
  233. case HOURS: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NAME"`, `"IP"`, `"DATE"`, `"BAN_BY"`, `"REASON"`, `"TIME"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, Time * 60 * 60 + gettime());
  234. case DAYS: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NAME"`, `"IP"`, `"DATE"`, `"BAN_BY"`, `"REASON"`, `"TIME"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, Time * 24 * 60 * 60 + gettime());
  235. }
  236. mysql_query(MyConection, MySQL_Format);
  237.  
  238. return 1;
  239. }
  240.  
  241. forward pKickPlayer(playerid);
  242. public pKickPlayer(playerid) return Kick(playerid);
  243.  
  244. stock ppKick(playerid) return SetTimerEx("KickPlayer", 100, false, "i", playerid);
  245.  
  246. stock ConvertTime(SECONDS_)
  247. {
  248. new MINUTES_, HOURS_, DAYS_, String[200];
  249.  
  250. if(SECONDS_ > 59)
  251. {
  252. MINUTES_ = SECONDS_ / 60;
  253. SECONDS_ = SECONDS_ - MINUTES_ * 60;
  254. }
  255. if(MINUTES_ > 59)
  256. {
  257. HOURS_ = MINUTES_ / 60;
  258. MINUTES_ = MINUTES_ - HOURS_ * 60;
  259. }
  260. if(HOURS_ > 23)
  261. {
  262. DAYS_ = HOURS_ / 24;
  263. HOURS_ = HOURS_ - DAYS_ * 24;
  264. }
  265.  
  266. format(String, sizeof(String), "%02d Days, %02d Hours, %02d Minutes and %02d Seconds", DAYS_, HOURS_, MINUTES_, SECONDS_);
  267. if(DAYS_ < 1) format(String, sizeof(String), "%02d Hours, %02d Minutes and %02d Seconds", HOURS_, MINUTES_, SECONDS_);
  268. if(DAYS_ < 1 && HOURS_ < 1) format(String, sizeof(String), "%02d Minutes and %02d Seconds", MINUTES_, SECONDS_);
  269. if(DAYS_ < 1 && HOURS_ < 1 && MINUTES_ < 1) format(String, sizeof(String), "%02d Seconds", SECONDS_);
  270. if(DAYS_ > 3650) format(String, sizeof(String), "PERMANENT");
  271.  
  272. return String;
  273. }
  274.  
  275. stock GetName(playerid)
  276. {
  277. new Nome_[MAX_PLAYER_NAME];
  278. GetPlayerName(playerid, Nome_, sizeof Nome_);
  279. return Nome_;
  280. }
  281. stock GetIP(playerid)
  282. {
  283. new IP_[16];
  284. GetPlayerIp(playerid, IP_, sizeof IP_);
  285. return IP_;
  286. }
Advertisement
Add Comment
Please, Sign In to add comment