· 7 years ago · Feb 07, 2019, 10:42 AM
1bool g_bInitialized[MAXPLAYERS+1];
2char g_sSQL_CreateTable_SQLITE[] = "CREATE TABLE IF NOT EXISTS lvl_base (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, value INTEGER NOT NULL default 0, steam varchar(32) NOT NULL default '', name varchar(128) NOT NULL default '', rank INTEGER NOT NULL default 0, kills INTEGER NOT NULL default 0, deaths INTEGER NOT NULL default 0, shoots INTEGER NOT NULL default 0, hits INTEGER NOT NULL default 0, headshots INTEGER NOT NULL default 0, assists INTEGER NOT NULL default 0, vip INTEGER NOT NULL default 0, lastconnect INTEGER NOT NULL default 0);",
3 g_sSQL_CreateTable_MYSQL[] = "CREATE TABLE IF NOT EXISTS lvl_base (id int(12) NOT NULL AUTO_INCREMENT, value int(12) NOT NULL default 0, steam varchar(32) NOT NULL default '', name varchar(128) NOT NULL default '', rank int(12) NOT NULL default 0, kills int(12) NOT NULL default 0, deaths int(12) NOT NULL default 0, shoots int(12) NOT NULL default 0, hits int(12) NOT NULL default 0, headshots int(12) NOT NULL default 0, assists int(12) NOT NULL default 0, vip int(12) NOT NULL default 0, lastconnect int(12) NOT NULL default 0, PRIMARY KEY (id)) CHARSET=utf8 COLLATE utf8_general_ci",
4 g_sSQL_CreatePlayer[] = "INSERT INTO lvl_base (value, steam, name, lastconnect) VALUES (%d, '%s', '%s', %d);",
5 g_sSQL_LoadPlayer[] = "SELECT value, rank, kills, deaths, shoots, hits, headshots, assists, vip FROM lvl_base WHERE steam = '%s';",
6 g_sSQL_SavePlayer[] = "UPDATE lvl_base SET value = %d, name = '%s', rank = %d, kills = %d, deaths = %d, shoots = %d, hits = %d, headshots = %d, assists = %d, vip = %d, lastconnect = %d WHERE steam = '%s';",
7 g_sSQL_CountPlayers[] = "SELECT steam FROM lvl_base;",
8 g_sSQL_PlacePlayer[] = "SELECT steam FROM lvl_base WHERE value >= %d;",
9 g_sSQL_PurgeDB[] = "DELETE FROM lvl_base WHERE lastconnect < %d;",
10 g_sSQL_CallTOP[] = "SELECT name, value FROM lvl_base ORDER BY value DESC LIMIT %i, 10;",
11 g_sSteamID[MAXPLAYERS+1][32];
12Database g_hDatabase = null;
13
14void ConnectDB()
15{
16 char sIdent[16], sError[256];
17 g_hDatabase = SQL_Connect("levels_ranks", false, sError, 256);
18 if(!g_hDatabase)
19 {
20 g_hDatabase = SQLite_UseDatabase("lr_base", sError, 256);
21 if(!g_hDatabase)
22 {
23 CrashLR("Could not connect to the database (%s)", sError);
24 }
25 }
26
27 DBDriver hDatabaseDriver = g_hDatabase.Driver;
28 hDatabaseDriver.GetIdentifier(sIdent, sizeof(sIdent));
29
30 SQL_LockDatabase(g_hDatabase);
31 switch(sIdent[0])
32 {
33 case 's': if(!SQL_FastQuery(g_hDatabase, g_sSQL_CreateTable_SQLITE)) CrashLR("ConnectDB - could not create table in SQLite");
34 case 'm': if(!SQL_FastQuery(g_hDatabase, g_sSQL_CreateTable_MYSQL)) CrashLR("ConnectDB - could not create table in MySQL");
35 default: CrashLR("ConnectDB - type database is invalid");
36 }
37 SQL_UnlockDatabase(g_hDatabase);
38
39 g_hDatabase.SetCharset("utf8");
40}