· 9 years ago · Nov 23, 2016, 07:08 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[200],
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
60 mysql_format(MySqlConnection, String, sizeof String, "DELETE FROM `whitelist` WHERE `IP` = '%s'", Ip);
61 mysql_query(MySqlConnection, String);
62
63 return true;
64}
65
66public OnFilterScriptExit()
67{
68 mysql_close(MySqlConnection);
69
70 mysql_format(MySqlConnection, String, sizeof String, "DELETE FROM `whitelist` WHERE `IP` = '%s'", Ip);
71 mysql_query(MySqlConnection, String);
72
73 return true;
74}
75
76forward DateTime(playerid);
77public DateTime(playerid)
78{
79 mysql_query(MySqlConnection, "DELETE FROM `whitelist` WHERE `TIME` < NOW()");
80
81 mysql_format(MySqlConnection, String, sizeof String, "SELECT `IP` FROM `whitelist` WHERE `IP` = '%s'", gip(playerid));
82 Resultado = mysql_query(MySqlConnection, String);
83 if(!cache_num_rows())
84 {
85 if(IsPlayerConnected(playerid))
86 {
87 Kick(playerid);
88 }
89 }
90 cache_delete(Resultado);
91
92 return true;
93}
94
95gip(playerid)
96{
97 new pip[16];
98 GetPlayerIp(playerid, pip, 16);
99 return pip;
100}