F1N4L_

[FS] Server AC 1.3.0.4

Nov 24th, 2016
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. #include a_samp
  2. #include a_mysql
  3.  
  4. #define MY_SERVER "127.0.0.1"
  5. #define MY_DATABASE "server_samp"
  6. #define MY_USER "root"
  7. #define MY_PASSWORD ""
  8.  
  9. #define INTERVALO_TIMER 10 // minutos
  10.  
  11. new
  12. MySqlConnection,
  13. TimerPlayer[MAX_PLAYERS],
  14. String[200],
  15. Cache: Resultado
  16. ;
  17.  
  18. public OnFilterScriptInit()
  19. {
  20. MySqlConnection = mysql_connect(MY_SERVER, MY_USER, MY_DATABASE, MY_PASSWORD);
  21.  
  22. mysql_query(MySqlConnection, "CREATE TABLE IF NOT EXISTS `whitelist` (`ID` INT(10) PRIMARY KEY AUTO_INCREMENT, `IP` VARCHAR(20), `TIME` DATETIME)");
  23. mysql_query(MySqlConnection, "CREATE TABLE IF NOT EXISTS `blacklist` (`ID` INT(10) PRIMARY KEY AUTO_INCREMENT, `IP` VARCHAR(20))");
  24.  
  25. return true;
  26. }
  27.  
  28. public OnPlayerConnect(playerid)
  29. {
  30. mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `blacklist` WHERE `IP` = '%s'", gip(playerid));
  31. Resultado = mysql_query(MySqlConnection, String);
  32. if(cache_num_rows())
  33. {
  34. SendClientMessage(playerid, -1, "Você está proibido de entrar neste servidor por ter cometido uma infração.");
  35. KickEx(playerid);
  36.  
  37. return false;
  38. }
  39. cache_delete(Resultado);
  40.  
  41. mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
  42. Resultado = mysql_query(MySqlConnection, String);
  43. if(!cache_num_rows())
  44. {
  45. SendClientMessage(playerid, -1, "Você precisa abrir o Launcher deste servidor para poder jogar.");
  46. KickEx(playerid);
  47.  
  48. return false;
  49. }
  50. cache_delete(Resultado);
  51.  
  52. return true;
  53. }
  54.  
  55. public OnPlayerSpawn(playerid)
  56. {
  57. TimerPlayer[playerid] = SetTimerEx("DateTime", INTERVALO_TIMER * 60 * 1000, true, "d", playerid);
  58.  
  59. return true;
  60. }
  61.  
  62. public OnPlayerDisconnect(playerid, reason)
  63. {
  64. KillTimer(TimerPlayer[playerid]);
  65.  
  66. mysql_format(MySqlConnection, String, sizeof String, "DELETE FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
  67. mysql_query(MySqlConnection, String);
  68.  
  69. return true;
  70. }
  71.  
  72. public OnFilterScriptExit()
  73. {
  74. mysql_close(MySqlConnection);
  75.  
  76. return true;
  77. }
  78.  
  79. forward DateTime(playerid);
  80. public DateTime(playerid)
  81. {
  82. mysql_query(MySqlConnection, "DELETE FROM `whitelist` WHERE `TIME` < NOW()");
  83.  
  84. mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
  85. Resultado = mysql_query(MySqlConnection, String);
  86. if(!cache_num_rows())
  87. {
  88. if(IsPlayerConnected(playerid))
  89. {
  90. Kick(playerid);
  91. }
  92. }
  93. cache_delete(Resultado);
  94.  
  95. return true;
  96. }
  97.  
  98. gip(playerid)
  99. {
  100. new pip[16];
  101. GetPlayerIp(playerid, pip, 16);
  102. return pip;
  103. }
  104.  
  105. stock KickEx(playerid)
  106. {
  107. SetTimerEx("KickEx_", 200, false, "d", playerid);
  108. }
  109.  
  110. forward KickEx_(playerid);
  111. public KickEx_(playerid) return Kick(playerid);
Advertisement
Add Comment
Please, Sign In to add comment