Nice example there, missed it.
So I came up with this:
PHP Code:
#include <sourcemod>
#include <morecolors>
public Plugin:myinfo =
{
name = "Plugin Name",
author = "Author",
description = "",
version = "1.0",
url = ""
};
new Float:IntervalTime = 60.0;
new NumPlaytime = 1; //minute(s)
public OnPluginStart()
{
new Handle:kv = CreateKeyValues("sql");
KvSetString(kv, "driver", "mysql");
KvSetString(kv, "host", "hostname");
KvSetString(kv, "port", "3306");
KvSetString(kv, "database", "databasename");
KvSetString(kv, "user", "sqluser");
KvSetString(kv, "pass", "xxxxxxxxxx");
decl String:error[255];
new Handle:hDatabase = SQL_ConnectCustom(kv, error, sizeof(error), true);
if (hDatabase == INVALID_HANDLE)
{
LogError("SQL Connection Failed: %s", error);
return;
}
CloseHandle(kv);
CreateTimer(IntervalTime, Timer_AddPlaytime, _, TIMER_REPEAT);
}
public Action:Timer_AddPlaytime(Handle:timer)
{
for (new i = 1; i <= MAXPLAYERS + 1; i++)
{
if (IsClientConnected(i) && !IsFakeClient(i) && IsPlayerInGame(i))
{
new team = GetClientTeam(i);
if (team == 2 || team == 3)
{
decl String:SteamID32[21];
new String:CommunityID[18];
GetClientAuthString(i, SteamID32, sizeof(SteamID32));
GetCommunityIDString(SteamID32, CommunityID, sizeof(CommunityID));
new String:query[512];
Format(query, sizeof(query), "UPDATE players SET playtime = playtime + %s WHERE SteamID64 = %s", NumPlaytime, CommunityID);
if (!SQL_FastQuery(hDatabase, query))
{
new String:error[255]
SQL_GetError(hDatabase, error, sizeof(error))
PrintToServer("Failed to query (error: %s)", error)
}
}
}
}
}
While compiling I get:
Code:
plugin.sp(58) : error 017: undefined symbol "hDatabase" // if (!SQL_FastQuery(hDatabase, query))
plugin.sp(61) : error 017: undefined symbol "hDatabase" // SQL_GetError(hDatabase, error, sizeof(error))
Yes, I'm sure I want to hardcore my sql credentials.
Help please.
__________________