· 9 years ago · Nov 20, 2016, 07:52 PM
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
11new
12 MySqlConnection,
13 TimerPlayer[MAX_PLAYERS],
14 String[300],
15 Cache: Resultado
16;
17
18public 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
28public OnPlayerConnect(playerid)
29{
30 mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
31 Resultado = mysql_query(MySqlConnection, String);
32 if(!cache_num_rows())
33 {
34 Kick(playerid);
35 }
36 cache_delete(Resultado);
37
38 mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `blacklist` WHERE `IP` = '%s'", gip(playerid));
39 Resultado = mysql_query(MySqlConnection, String);
40 if(cache_num_rows())
41 {
42 Kick(playerid);
43 }
44 cache_delete(Resultado);
45
46 return true;
47}
48
49public OnPlayerSpawn(playerid)
50{
51 TimerPlayer[playerid] = SetTimerEx("DateTime", INTERVALO_TIMER * 60 * 1000, true, "d", playerid);
52
53 return true;
54}
55
56public OnPlayerDisconnect(playerid, reason)
57{
58 KillTimer(TimerPlayer[playerid]);
59 mysql_format(MySqlConnection, String, sizeof String, "DELETE FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
60 mysql_query(MySqlConnection, String);
61
62 return true;
63}
64
65public OnFilterScriptExit()
66{
67 mysql_close(MySqlConnection);
68
69 return true;
70}
71
72forward DateTime(playerid);
73public DateTime(playerid)
74{
75 print("\n\ntimer");
76
77 mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
78 Resultado = mysql_query(MySqlConnection, String);
79 if(!cache_num_rows())
80 {
81 if(IsPlayerConnected(playerid))
82 {
83 Kick(playerid);
84 }
85 }
86 cache_delete(Resultado);
87
88 mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP`, `TIME` FROM `whitelist` WHERE `IP` = '%s' AND `TIME` < NOW()", gip(playerid));
89 Resultado = mysql_query(MySqlConnection, String);
90 if(cache_num_rows())
91 {
92 mysql_format(MySqlConnection, String, sizeof String, "DELETE FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
93 mysql_query(MySqlConnection, String);
94
95 if(IsPlayerConnected(playerid))
96 {
97 Kick(playerid);
98 }
99 }
100 cache_delete(Resultado);
101
102 return true;
103}
104
105stock gip(playerid)
106{
107 new pip[16];
108 GetPlayerIp(playerid, pip, 16);
109 return pip;
110}