· 7 years ago · Feb 11, 2019, 03:12 PM
1public Action:DataBaseConnect()
2{
3 sql = SQL_Connect("DeathrunExpMod_SQL", true, dbError, sizeof(dbError));
4 stats_db = SQL_Connect("DeathrunExpMod_SQL", false, dbError, 256);
5
6 if(sql == INVALID_HANDLE)
7 PrintToServer("Error DataBaseConnect: %s", dbError);
8
9 SQL_LockDatabase(sql);
10 SQL_FastQuery(sql, "CREATE TABLE IF NOT EXISTS `DeathrunExpMod` (`id` INT(11) NOT NULL AUTO_INCREMENT, `nick` VARCHAR(48) NOT NULL, `steamid` VARCHAR(48) NOT NULL, `poziom` INT(11) DEFAULT 1, `exp` INT(14), `punkty` INT(9), `zdrowie` INT(9), `obrazenia` INT(9), `wytrzymalosc` INT(9), `regeneracjahp` INT(9), `niewidzialnosc` INT(9), PRIMARY KEY (`id`), UNIQUE KEY (`steamid`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");
11 SQL_UnlockDatabase(sql);
12}
13public Action:ZapiszDane(client)
14{
15 new String:tmp[1024];
16 new String:authid[64];
17 if(!GetClientAuthId(client, AuthId_Steam2, authid, sizeof(authid)))
18 return;
19
20 GetClientName(client, nazwa_gracza[client], 64);
21
22 Format(tmp, sizeof(tmp), "INSERT INTO `DeathrunExpMod` (`nick`, `steamid`, `poziom`, `exp`, `punkty`, `zdrowie`, `obrazenia`, `wytrzymalosc`, `regeneracjahp`, `niewidzialnosc`) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE `nick`=VALUES(`nick`), `poziom`=VALUES(`poziom`), `exp`=VALUES(`exp`), `punkty`=VALUES(`punkty`), `zdrowie`=VALUES(`zdrowie`), `obrazenia`=VALUES(`obrazenia`), `wytrzymalosc`=VALUES(`wytrzymalosc`), `regeneracjahp`=VALUES(`regeneracjahp`), `niewidzialnosc`=VALUES(`niewidzialnosc`);", nazwa_gracza[client], authid, poziom_gracza[client], doswiadczenie_gracza[client], punkty_gracza[client], zdrowie_gracza[client], obrazenia_gracza[client], wytrzymalosc_gracza[client], regeneracjahp_gracza[client], niewidzialnosc_gracza[client]);
23 SQL_TQuery(sql, ZapiszDane_Handler, tmp, client);
24
25}
26public ZapiszDane_Handler(Handle:owner, Handle:query, const String:error[], any:client)
27{
28 if(query == INVALID_HANDLE)
29 {
30 LogError("Error ZapiszDane_Handler: %s", error);
31 return;
32 }
33}
34
35public WczytajDane(client)
36{
37 new String:tmp[512];
38 new String:authid[64];
39 if(!GetClientAuthId(client, AuthId_Steam2, authid, sizeof(authid)))
40 return -1;
41
42 Format(tmp, sizeof(tmp), "SELECT `poziom`, `exp`, `punkty`, `zdrowie`, `obrazenia`, `wytrzymalosc`, `regeneracjahp`, `niewidzialnosc` FROM `DeathrunExpMod` WHERE steamid = '%s';", authid);
43 new Handle:query = SQL_Query(sql, tmp);
44
45 if(query == INVALID_HANDLE){
46 SQL_GetError(sql, dbError, sizeof(dbError))
47 PrintToServer("Error WczytajDane: %s", dbError)
48 return 0;
49 }
50
51 if(SQL_FetchRow(query))
52 {
53 poziom_gracza[client] = SQL_FetchInt(query, 0);
54 doswiadczenie_gracza[client] = SQL_FetchInt(query, 1);
55 punkty_gracza[client] = SQL_FetchInt(query, 2);
56 zdrowie_gracza[client] = SQL_FetchInt(query, 3);
57 obrazenia_gracza[client] = SQL_FetchInt(query, 4);
58 wytrzymalosc_gracza[client] = SQL_FetchInt(query, 5);
59 regeneracjahp_gracza[client] = SQL_FetchInt(query, 6);
60 niewidzialnosc_gracza[client] = SQL_FetchInt(query, 7);
61 sql_task[client] = CreateTimer(float(co_ile_zapisywac), TaskZapiszDane, client, TIMER_FLAG_NO_MAPCHANGE);
62 LogMessage("Nick: %s | SteamID: %s | poziom_gracza: %i | doswiadczenie_gracza: %i | punkty_gracza: %i | zdrowie_gracza: %i | obrazenia_gracza: %i | wytrzymalosc_gracza: %i | regeneracjahp_gracza: %i | niewidzialnosc_gracza: %i", nazwa_gracza[client], authid, SQL_FetchInt(query, 0), SQL_FetchInt(query, 1), SQL_FetchInt(query, 2), SQL_FetchInt(query, 3), SQL_FetchInt(query, 4), SQL_FetchInt(query, 5), SQL_FetchInt(query, 6), SQL_FetchInt(query, 7))
63 }
64 else
65 {
66 poziom_gracza[client] = 1;
67 doswiadczenie_gracza[client] = 0;
68 punkty_gracza[client] = 1;
69 zdrowie_gracza[client] = 0;
70 obrazenia_gracza[client] = 0;
71 wytrzymalosc_gracza[client] = 0;
72 regeneracjahp_gracza[client] = 0;
73 RegeneracjaHPZapis[client] = 0;
74 niewidzialnosc_gracza[client] = 0;
75
76 sql_task[client] = CreateTimer(float(co_ile_zapisywac), TaskZapiszDane, client, TIMER_FLAG_NO_MAPCHANGE);
77 }
78 LastPlace(client);
79 Stats_GetPlayerRankLevel(client);
80 CloseHandle(query)
81 return 1;
82}