· 8 years ago · Jan 19, 2018, 06:26 PM
1DB_Connect()
2{
3 if(g_DB != INVALID_HANDLE)
4 CloseHandle(g_DB);
5
6 decl String:error[255];
7 g_DB = SQL_Connect("timer", true, error, sizeof(error));
8
9 if(g_DB == INVALID_HANDLE)
10 {
11 LogError(error);
12 CloseHandle(g_DB);
13 }
14 else
15 {
16 decl String:query[512];
17
18 // Create Checkpoint table
19 Format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS checkpoint(CPs INTEGER NOT NULL AUTO_INCREMENT, MapID INTEGER, PlayerID INTEGER, Origin REAL, Angle REAL, Speed REAL, PRIMARY KEY (CPs))");
20 SQL_TQuery(g_DB, DB_Connect_Callback, query);
21
22 }
23}
24
25
26public savecpfile(client)
27{
28 new size = GetArraySize(g_Checkpoint[client][g_CurrentCP[client]][speed]);
29 new PlayerID = GetPlayerID(client);
30 decl String:query[512];
31 for (new cpSlot=0; cpSlot < size; ++cpSlot)
32 //for (new cpSlot=0; cpSlot < MAXCPS; ++cpSlot)
33
34 {
35 Format(query, sizeof(query), "INSERT INTO checkpoint (MapID, PlayerID, Origin, Angle, Speed) VALUES ((SELECT MapID FROM maps WHERE MapName='%s' LIMIT 0, 1), %d, %f, %f, %f, %f)",
36 g_sMapName,
37 PlayerID,
38 g_Checkpoint[client][cpSlot][origin], g_Checkpoint[client][cpSlot][angles], g_Checkpoint[client][cpSlot][speed]);
39 SQL_TQuery(g_DB, SaveCP_Callback, query, client);
40 }
41
42}
43
44public SaveCP_Callback(Handle:owner, Handle:hndl, const String:error[], any:data)
45{
46 if(hndl == INVALID_HANDLE)
47 {
48 LogError(error);
49 CloseHandle2(g_DB);
50 }
51}
52
53
54OpenSaveFileMenu(client)
55{
56 new Handle:panel = CreatePanel();
57
58 SetPanelTitle(panel, "Save CP File");
59 DrawPanelItem(panel, "Yes");
60 DrawPanelItem(panel, "No");
61 SendPanelToClient(panel, client, menu_SaveFile, 0);
62 SetMenuExitBackButton(panel, false);
63 CloseHandle(panel);
64}
65public menu_SaveFile(Handle:menu, MenuAction:action, client, item)
66{
67 switch (action)
68 {
69 case MenuAction_Select:
70 {
71 switch (item)
72 {
73 case 1: //Yes
74 {
75 savecpfile(client);
76 OpenCheckpointMenu(client);
77 }
78 case 2: //No
79 {
80 OpenCheckpointMenu(client);
81 }
82 }
83 }
84 }
85}