View Single Post
Tene32
Junior Member
Join Date: May 2017
Old 12-22-2019 , 11:16   Re: [Error] What does it mean?
Reply With Quote #3

Quote:
Originally Posted by LeeStrong View Post
The table 'matches' does not exist in the database 'csgopickup'.
Do you need help setting up your database? Essentially the script is working fine but it looks like your database is empty.

Edit: looks like your AdminTimes plugin is having an issue as well, is this a public plugin? If so can you post a link to the plugin and/or the code to the plugin and .sql file (if included)
unfortunately, i dont have the sp file but i decompile it from smx to sp .




Quote:
public PlVers:__version =
{
version = 5,
filevers = "1.8.0.5914",
date = "10/12/2019",
time = "22:53:49"
};
new Float:NULL_VECTOR[3];
new String:NULL_STRING[4];
public Extension:__ext_core =
{
name = "Core",
file = "core",
autoload = 0,
required = 0,
};
new MaxClients;
public Extension:__ext_sdktools =
{
name = "SDKTools",
file = "sdktools.ext",
autoload = 1,
required = 1,
};
new Database:g_dDatabase;
new Handle:g_hTimer[66];
new String:g_szAddress[64];
new String:g_szAuth[66][32];
new g_iMinutes[66];
public Plugin:myinfo =
{
name = "Admins Time",
description = "Calculating the admins play time",
author = "??",
version = "1.0",
url = "http://gamers-il.com/"
};
public void:__ext_core_SetNTVOptional()
{
MarkNativeAsOptional("GetFeatureStatus");
MarkNativeAsOptional("RequireFeature");
MarkNativeAsOptional("AddCommandListener");
MarkNativeAsOptional("RemoveCommandListener") ;
MarkNativeAsOptional("BfWriteBool");
MarkNativeAsOptional("BfWriteByte");
MarkNativeAsOptional("BfWriteChar");
MarkNativeAsOptional("BfWriteShort");
MarkNativeAsOptional("BfWriteWord");
MarkNativeAsOptional("BfWriteNum");
MarkNativeAsOptional("BfWriteFloat");
MarkNativeAsOptional("BfWriteString");
MarkNativeAsOptional("BfWriteEntity");
MarkNativeAsOptional("BfWriteAngle");
MarkNativeAsOptional("BfWriteCoord");
MarkNativeAsOptional("BfWriteVecCoord");
MarkNativeAsOptional("BfWriteVecNormal");
MarkNativeAsOptional("BfWriteAngles");
MarkNativeAsOptional("BfReadBool");
MarkNativeAsOptional("BfReadByte");
MarkNativeAsOptional("BfReadChar");
MarkNativeAsOptional("BfReadShort");
MarkNativeAsOptional("BfReadWord");
MarkNativeAsOptional("BfReadNum");
MarkNativeAsOptional("BfReadFloat");
MarkNativeAsOptional("BfReadString");
MarkNativeAsOptional("BfReadEntity");
MarkNativeAsOptional("BfReadAngle");
MarkNativeAsOptional("BfReadCoord");
MarkNativeAsOptional("BfReadVecCoord");
MarkNativeAsOptional("BfReadVecNormal");
MarkNativeAsOptional("BfReadAngles");
MarkNativeAsOptional("BfGetNumBytesLeft");
MarkNativeAsOptional("BfWrite.WriteBool");
MarkNativeAsOptional("BfWrite.WriteByte");
MarkNativeAsOptional("BfWrite.WriteChar");
MarkNativeAsOptional("BfWrite.WriteShort");
MarkNativeAsOptional("BfWrite.WriteWord");
MarkNativeAsOptional("BfWrite.WriteNum");
MarkNativeAsOptional("BfWrite.WriteFloat");
MarkNativeAsOptional("BfWrite.WriteString");
MarkNativeAsOptional("BfWrite.WriteEntity");
MarkNativeAsOptional("BfWrite.WriteAngle");
MarkNativeAsOptional("BfWrite.WriteCoord");
MarkNativeAsOptional("BfWrite.WriteVecCoord") ;
MarkNativeAsOptional("BfWrite.WriteVecNormal" );
MarkNativeAsOptional("BfWrite.WriteAngles");
MarkNativeAsOptional("BfRead.ReadBool");
MarkNativeAsOptional("BfRead.ReadByte");
MarkNativeAsOptional("BfRead.ReadChar");
MarkNativeAsOptional("BfRead.ReadShort");
MarkNativeAsOptional("BfRead.ReadWord");
MarkNativeAsOptional("BfRead.ReadNum");
MarkNativeAsOptional("BfRead.ReadFloat");
MarkNativeAsOptional("BfRead.ReadString");
MarkNativeAsOptional("BfRead.ReadEntity");
MarkNativeAsOptional("BfRead.ReadAngle");
MarkNativeAsOptional("BfRead.ReadCoord");
MarkNativeAsOptional("BfRead.ReadVecCoord");
MarkNativeAsOptional("BfRead.ReadVecNormal");
MarkNativeAsOptional("BfRead.ReadAngles");
MarkNativeAsOptional("BfRead.GetNumBytesLeft" );
MarkNativeAsOptional("PbReadInt");
MarkNativeAsOptional("PbReadFloat");
MarkNativeAsOptional("PbReadBool");
MarkNativeAsOptional("PbReadString");
MarkNativeAsOptional("PbReadColor");
MarkNativeAsOptional("PbReadAngle");
MarkNativeAsOptional("PbReadVector");
MarkNativeAsOptional("PbReadVector2D");
MarkNativeAsOptional("PbGetRepeatedFieldCount ");
MarkNativeAsOptional("PbSetInt");
MarkNativeAsOptional("PbSetFloat");
MarkNativeAsOptional("PbSetBool");
MarkNativeAsOptional("PbSetString");
MarkNativeAsOptional("PbSetColor");
MarkNativeAsOptional("PbSetAngle");
MarkNativeAsOptional("PbSetVector");
MarkNativeAsOptional("PbSetVector2D");
MarkNativeAsOptional("PbAddInt");
MarkNativeAsOptional("PbAddFloat");
MarkNativeAsOptional("PbAddBool");
MarkNativeAsOptional("PbAddString");
MarkNativeAsOptional("PbAddColor");
MarkNativeAsOptional("PbAddAngle");
MarkNativeAsOptional("PbAddVector");
MarkNativeAsOptional("PbAddVector2D");
MarkNativeAsOptional("PbRemoveRepeatedFieldVa lue");
MarkNativeAsOptional("PbReadMessage");
MarkNativeAsOptional("PbReadRepeatedMessage") ;
MarkNativeAsOptional("PbAddMessage");
MarkNativeAsOptional("Protobuf.ReadInt");
MarkNativeAsOptional("Protobuf.ReadFloat");
MarkNativeAsOptional("Protobuf.ReadBool");
MarkNativeAsOptional("Protobuf.ReadString");
MarkNativeAsOptional("Protobuf.ReadColor");
MarkNativeAsOptional("Protobuf.ReadAngle");
MarkNativeAsOptional("Protobuf.ReadVector");
MarkNativeAsOptional("Protobuf.ReadVector2D") ;
MarkNativeAsOptional("Protobuf.GetRepeatedFie ldCount");
MarkNativeAsOptional("Protobuf.SetInt");
MarkNativeAsOptional("Protobuf.SetFloat");
MarkNativeAsOptional("Protobuf.SetBool");
MarkNativeAsOptional("Protobuf.SetString");
MarkNativeAsOptional("Protobuf.SetColor");
MarkNativeAsOptional("Protobuf.SetAngle");
MarkNativeAsOptional("Protobuf.SetVector");
MarkNativeAsOptional("Protobuf.SetVector2D");
MarkNativeAsOptional("Protobuf.AddInt");
MarkNativeAsOptional("Protobuf.AddFloat");
MarkNativeAsOptional("Protobuf.AddBool");
MarkNativeAsOptional("Protobuf.AddString");
MarkNativeAsOptional("Protobuf.AddColor");
MarkNativeAsOptional("Protobuf.AddAngle");
MarkNativeAsOptional("Protobuf.AddVector");
MarkNativeAsOptional("Protobuf.AddVector2D");
MarkNativeAsOptional("Protobuf.RemoveRepeated FieldValue");
MarkNativeAsOptional("Protobuf.ReadMessage");
MarkNativeAsOptional("Protobuf.ReadRepeatedMe ssage");
MarkNativeAsOptional("Protobuf.AddMessage");
VerifyCoreVersion();
return void:0;
}

public void:OnPluginStart()
{
new String:szIp[32];
new String:szPort[8];
ConVar.GetString(FindConVar("ip"), szIp, 32);
ConVar.GetString(FindConVar("hostport"), szPort, ;
Format(g_szAddress, 64, "%s:%s", szIp, szPort);
SQL_StartConnection();
RegAdminCmd("sm_time", Command_Time, 32, "", "", 0);
RegAdminCmd("sm_times", Command_Times, 32768, "", "", 0);
return void:0;
}

public void:OnClientPostAdminCheck(client)
{
if (!GetClientAuthId(client, AuthIdType:1, g_szAuth[client], 66, true))
{
KickClient(client, "Verification problem, please reconnect");
return void:0;
}
if (GetAdminFlag(GetUserAdmin(client), AdminFlag:5, AdmAccessMode:1))
{
SQL_CheckUser(client);
}
return void:0;
}

public void:OnClientDisconnect(client)
{
if (GetAdminFlag(GetUserAdmin(client), AdminFlag:5, AdmAccessMode:1))
{
SQL_UpdateUser(client);
if (g_hTimer[client])
{
CloseHandle(g_hTimer[client]);
g_hTimer[client] = 0;
}
}
return void:0;
}

public Action:Timer_AddMinute(Handle:timer, any:client)
{
new var1;
if (client <= any:0 || client > MaxClients || !IsClientInGame(client))
{
return Action:0;
}
g_iMinutes[client]++;
return Action:0;
}

public Action:Command_Time(client, args)
{
PrintToChat(client, "%s Current activity on this server: \x02%i \x01minutes.", " \x04[Gamers-IL]\x01", g_iMinutes[client]);
return Action;
}

public Action:Command_Times(client, args)
{
SQL_FetchTimes(client);
return Action;
}

void:SQL_StartConnection()
{
if (g_dDatabase)
{
CloseHandle(g_dDatabase);
g_dDatabase = MissingTAG:0;
}
new String:szError[512];
g_dDatabase = SQL_Connect("adminstime", true, szError, 512);
if (!g_dDatabase)
{
SetFailState("Cannot connect to database: %s.", szError);
}
Database.Query(g_dDatabase, SQLQueryCallback:23, "CREATE TABLE IF NOT EXISTS `times` (`steamId` VARCHAR(32) NOT NULL, `name` VARCHAR(64) NOT NULL, `serverIp` VARCHAR(32) NOT NULL, `minutes` INT NOT NULL DEFAULT 0)", any:0, DBPriority:1);
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
OnClientPostAdminCheck(i);
}
i++;
}
return void:0;
}

void:SQL_CheckUser(client)
{
new String:szQuery[512];
FormatEx(szQuery, 512, "SELECT `minutes` FROM `times` WHERE `steamid` = '%s' AND `serverIp` = '%s'", g_szAuth[client], g_szAddress);
Database.Query(g_dDatabase, SQLQueryCallback:25, szQuery, GetClientSerial(client), DBPriority:1);
return void:0;
}

public void:SQL_CheckUser_CB(DatabaseB, DBResultSet:results, String:error[], any:data)
{
new client = GetClientFromSerial(data);
if (results)
{
new String:szName[32];
GetClientName(client, szName, 32);
new len = strlen(szName) * 2 + 1;
new szEscapedName[len];
Database.Escape(g_dDatabase, szName, szEscapedName, len, 0);
new String:szQuery[512];
if (DBResultSet.FetchRow(results))
{
g_iMinutes[client] = DBResultSet.FetchInt(results, 0, 0);
FormatEx(szQuery, 512, "UPDATE `times` SET `name` = '%s WHERE `steamId` = '%s' AND `serverIp` = '%s''", szEscapedName, g_szAuth[client], g_szAddress);
}
else
{
g_iMinutes[client] = 0;
FormatEx(szQuery, 512, "INSERT INTO `times` (`steamId`, `name`, `serverIp`) VALUES ('%s', '%s', '%s')", g_szAuth[client], szEscapedName, g_szAddress);
}
Database.Query(g_dDatabase, SQLQueryCallback:23, szQuery, any:0, DBPriority:1);
g_hTimer[client] = CreateTimer(60.0, Timer_AddMinute, client, 0);
return void:0;
}
LogError("Failed to query, error: %s", error);
return void:0;
}

void:SQL_UpdateUser(client)
{
new String:szQuery[512];
FormatEx(szQuery, 512, "UPDATE `times` SET `minutes` = %i WHERE `steamId` = '%s' AND `serverIp` = '%s'", g_iMinutes[client], g_szAuth[client], g_szAddress);
Database.Query(g_dDatabase, SQLQueryCallback:23, szQuery, any:0, DBPriority:1);
return void:0;
}

void:SQL_FetchTimes(client)
{
new String:szQuery[512];
FormatEx(szQuery, 512, "SELECT `name`, `minutes` FROM `times` ORDER BY `minutes` DESC");
Database.Query(g_dDatabase, SQLQueryCallback:27, szQuery, GetClientSerial(client), DBPriority:1);
return void:0;
}

public void:SQL_FetchTimes_CB(DatabaseB, DBResultSet:results, String:error[], any:data)
{
if (results)
{
new client = GetClientFromSerial(data);
new Menu:menu = Menu.Menu(Handler_TimesMenu, MenuAction:2;
Menu.SetTitle(menu, "%s Current admins' activity on this server:\nActivity is updated on every disconnect\n ", "[Gamers-IL]");
Menu.AddItem(menu, "reset", "Reset Times\n ", 0);
while (DBResultSet.FetchRow(results))
{
new String:szBuffer[44];
DBResultSet.FetchString(results, 0, szBuffer, 42, 0);
Format(szBuffer, 42, "%s - %i Minutes", szBuffer, DBResultSet.FetchInt(results, 1, 0));
Menu.AddItem(menu, "", szBuffer, 0);
}
Menu.Display(menu, client, 0);
return void:0;
}
LogError("Failed to query, error: %s", error);
return void:0;
}

public Handler_TimesMenu(Menu:menu, MenuAction:action, client, itemNum)
{
if (action == MenuAction:4)
{
if (!itemNum)
{
SQL_ResetTimes();
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
OnClientPostAdminCheck(i);
}
i++;
}
PrintToChat(client, "%s The times has been resetted.", " \x04[Gamers-IL]\x01");
}
}
return 0;
}

void:SQL_ResetTimes()
{
new String:szQuery[512];
FormatEx(szQuery, 512, "DELETE FROM `times` WHERE `serverIp` = '%s'", g_szAddress);
Database.Query(g_dDatabase, SQLQueryCallback:23, szQuery, any:0, DBPriority:1);
return void:0;
}

public void:SQL_CheckForErrors(DatabaseB, DBResultSet:results, String:error[], any:data)
{
if (results)
{
return void:0;
}
LogError("Failed to query, error: %s", error);
return void:0;
}
Tene32 is offline