· 8 years ago · Jul 29, 2018, 07:32 PM
1//AKA SYSTEM By KELOX y GABY 02/08/2017 0:28 AM
2
3#include <a_samp>
4#include <sscanf>
5#include <zcmd>
6#define Database "AKA.db"
7
8new DB:_DB_,DB_Query[1800],eString[1048],eQuery[1024];
9#define W "{FFFFFF}"
10#define O "{FFAF00}"
11#define cgrey "{C3C3C3}"
12#define funcion%0(%1) forward%0(%1); public%0(%1)
13public OnGameModeInit()
14{
15 _DB_ = db_open(Database);
16 format(DB_Query, sizeof(DB_Query), "");
17 strcat(DB_Query, "CREATE TABLE IF NOT EXISTS AKA (");
18 strcat(DB_Query, "ID INTEGER PRIMARY KEY AUTOINCREMENT,");
19 strcat(DB_Query, "IP INTEGER DEFAULT 0,");
20 strcat(DB_Query, "NAMES TEXT DEFAULT '')");
21 db_query(_DB_, DB_Query);
22 return 1;
23}
24
25public OnPlayerConnect(playerid)
26{
27
28 format(eQuery, sizeof(eQuery), "SELECT * FROM AKA WHERE IP = '%s'", PlayerIP(playerid));
29 db_query(_DB_, eQuery);
30 LoadAka(playerid);
31 return 1;
32}
33funcion LoadAka(playerid)
34{
35 new pAka[1800]; eQuery[0]=EOS; eString[0] = EOS;
36 new DBResult: Result;
37 format(eQuery, sizeof(eQuery), "SELECT NAMES FROM AKA WHERE IP = '%s'", PlayerIP(playerid));
38 Result = db_query(_DB_, eQuery);
39
40 if(!db_num_rows(Result))
41 {
42 format(eQuery, sizeof(eQuery), "INSERT INTO AKA(IP, NAMES) VALUES ('%s', '%s')", PlayerIP(playerid), PlayerName(playerid));
43 db_query(_DB_, eQuery);
44 }
45 else
46 {
47 format(eQuery, sizeof(eQuery), "SELECT * FROM AKA");
48 Result = db_query(_DB_, eQuery);
49
50 for(new i; i < db_num_rows(Result); i++ )
51 {
52 db_get_field(Result, 2, pAka, 10);
53 }
54 if(strfind(pAka, PlayerName(playerid), true) == -1)
55 {
56 format(eString, sizeof(eString), "%s,%s", pAka, PlayerName(playerid));
57 format(eQuery, sizeof(eQuery), "UPDATE AKA SET NAMES = '%s' WHERE IP = '%s'", eString, PlayerIP(playerid));
58 db_query(_DB_, eQuery);
59 } //
60 }
61 db_free_result(Result);
62 return 1;
63}
64
65
66CMD:aka(playerid, params[])
67{
68 new id;
69 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1,"** El jugador no está conectado");
70 if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "** Uso correcto: /aka [ID]");
71 format(eQuery, 512, "SELECT * FROM AKA WHERE IP = '%s'", PlayerIP(id));
72 db_query(_DB_, eQuery);
73
74 new pAka[1800], AkaString[1800];
75 new DBResult:Result;
76 format(eQuery, sizeof(eQuery), "SELECT * FROM AKA");
77 Result = db_query(_DB_, eQuery);
78
79 for(new i; i < db_num_rows(Result); i++ )
80 {
81 db_get_field(Result, 2, pAka, 1800);
82 }
83
84 format(AkaString, sizeof(AkaString), "{375FFF}AKA\n{FF4444}%s(%d) - IP: %s\n"W"Nicks: {FF8000}%s",PlayerName(id), id, PlayerIP(id),pAka);
85 ShowPlayerDialog(playerid, 1800, DIALOG_STYLE_MSGBOX, ""cgrey"Historial", AkaString, "Ok", ""), PlayerPlaySound(playerid,1139,0.0,0.0,0.0);
86
87 return 1;
88}
89
90stock PlayerIP(playerid)
91{
92 new pIP[17];
93 GetPlayerIp(playerid, pIP, 17);
94 return pIP;
95}
96
97stock PlayerName(playerid)
98{
99 new name[MAX_PLAYER_NAME];
100 GetPlayerName(playerid, name, MAX_PLAYER_NAME);
101 return name;
102}
103
104
105///FIN FS AKA BY KELOX y GABY 02/08/2017 1:11 AM