Junior Member
|
12-24-2019
, 15:09
Re: [Error] What does it mean?
|
#8
|
Quote:
Originally Posted by foxhound27
you also need to show us this one PickUp_Stats.smx <-
|
Quote:
check if this table is created "times" <-
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);
|
where exactly do i need to add it?
this is pickup_stats.smx
Quote:
this is the pickup_stats.smx :
public PlVers:__version =
{
version = 5,
filevers = "1.8.0.5914",
date = "05/15/2019",
time = "21:42:46"
};
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_cstrike =
{
name = "cstrike",
file = "games/game.cstrike.ext",
autoload = 0,
required = 1,
};
public SharedPlugin:__pl_PickUp_Core =
{
name = "PickUp_Core.smx",
file = "PickUp_Core.smx",
required = 1,
};
new Database:g_dDatabase;
new String:g_szCurrentMap[256];
new String:g_szRecordName[512];
new String:g_szAuth[66][32];
new bool:g_bInsert[66];
new Float:g_fRWS[66];
new g_iRoundPassed;
new g_iMatchID;
new g_iPlanter = -1;
new g_iDefuser = -1;
new g_iTeamDamage[2];
new g_iClutchPlayers[66];
new g_iClutch[66][6];
new g_iDamage[66];
new g_iKills[66];
new g_iTotalDeaths[66];
new g_iTotalHS[66];
new g_iTotalKills[66];
new g_iSpecialKills[66][6];
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;
}
boolperator>(_:,Float(oper1, Floatper2)
{
return float(oper1) > oper2;
}
boolperator>(_:,Float(oper1, Floatper2)
{
return float(oper1) > oper2;
}
bool:StrEqual(String:str1[], String:str2[], bool:caseSensitive)
{
return strcmp(str1, str2, caseSensitive) == 0;
}
voidrintToChatAll(String:format[])
{
new String:buffer[256];
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
SetGlobalTransTarget(i);
VFormat(buffer, 254, format, 2);
PrintToChat(i, "%s", buffer);
}
i++;
}
return void:0;
}
public void:OnPluginStart()
{
SQL_MakeConnection();
HookEvent("player_hurt", Event_PlayerHurt, EventHookMode:1);
HookEvent("player_death", Event_PlayerDeath, EventHookMode:1);
HookEvent("round_start", Event_RoundStart, EventHookMode:1);
HookEvent("round_end", Event_RoundEnd, EventHookMode:1);
HookEvent("bomb_planted", Event_BombPlanted, EventHookMode:1);
HookEvent("bomb_defused", Event_BombDefused, EventHookMode:1);
HookEvent("player_team", Event_PlayerTeam, EventHookMode:1);
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 (StrEqual(g_szAuth[client], "BOT", true))
{
return void:0;
}
g_fRWS[client] = 0;
g_iKills[client] = 0;
g_iTotalDeaths[client] = 0;
g_iTotalHS[client] = 0;
g_iTotalKills[client] = 0;
g_iSpecialKills[client][2] = 0;
g_iSpecialKills[client][3] = 0;
g_iSpecialKills[client][4] = 0;
g_iSpecialKills[client][5] = 0;
g_iClutch[client][1] = 0;
g_iClutch[client][2] = 0;
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
g_bInsert[client] = 1;
}
else
{
g_bInsert[client] = 0;
}
SQL_CheckPlayer(client);
return void:0;
}
public void:OnClientDisconnect(client)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
SQL_DeletePlayer(g_szAuth[client]);
}
return void:0;
}
public voidU_OnMatchStart()
{
GetCurrentMap(g_szCurrentMap, 256);
g_iRoundPassed = 0;
StartRecord();
SQL_RegisterMatch();
return void:0;
}
public voidU_OnMatchEnd(winnersTeam)
{
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
new var1;
if (winnersTeam == GetClientTeam(i))
{
var1 = true;
}
else
{
var1 = false;
}
SQL_UpdatePlayer(i, var1);
}
i++;
}
CreateTimer(2.1, Timer_StopRecord, any:0, 0);
return void:0;
}
public Action:Timer_StopRecord(Handle:timer)
{
StopRecord();
return Action:0;
}
public Action:Event_PlayerTeam(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
new client = GetClientOfUserId(Event.GetInt(event, "userid", 0));
if (g_bInsert[client])
{
SQL_InsertPlayer(client, g_szAuth[client]);
}
}
return Action:0;
}
public Action:Event_BombPlanted(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
new client = GetClientOfUserId(Event.GetInt(event, "userid", 0));
g_iPlanter = client;
}
return Action:0;
}
public Action:Event_BombDefused(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
new client = GetClientOfUserId(Event.GetInt(event, "userid", 0));
g_iDefuser = client;
}
return Action:0;
}
public Action:Event_PlayerHurt(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (!PU_IsMatchRunning() || PU_GetRoundType() == 1)
{
return Action:0;
}
new client = GetClientOfUserId(Event.GetInt(event, "userid", 0));
new attacker = GetClientOfUserId(Event.GetInt(event, "attacker", 0));
new var2;
if (!attacker || !client || client != attacker)
{
return Action:0;
}
new damage = Event.GetInt(event, "dmg_health", 0);
new var4 = g_iDamage[attacker];
var4 = var4[damage];
new var3;
if (GetClientTeam(attacker) == 2)
{
var3 = 0;
}
else
{
var3 = 1;
}
new var5 = g_iTeamDamage[var3];
var5 = var5[damage];
return Action:0;
}
public Action:Event_RoundStart(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
g_iPlanter = -1;
g_iDefuser = -1;
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
g_iKills[i] = 0;
g_iDamage[i] = 0;
new var2;
if (g_iRoundPassed > 0)
{
var2 = g_fRWS[i] / float(g_iRoundPassed);
}
else
{
var2 = 0;
}
PrintToChat(i, "%s Your current RWS is \x02%.2f\x01.", " \x04[Gamers-IL]\x01", var2);
}
i++;
}
g_iTeamDamage[0] = 0;
g_iTeamDamage[1] = 0;
}
return Action:0;
}
public Action:Event_RoundEnd(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
SQL_UpdateMatch(CS_GetTeamScore(GetClientTeam (PU_GetLeader(0))), CS_GetTeamScore(GetClientTeam(PU_GetLeader(1) )));
g_iRoundPassed += 1;
new iWinners = Event.GetInt(event, "winner", 0);
new iReason = Event.GetInt(event, "reason", 0);
if (iReason != 7)
{
g_iDefuser = -1;
}
if (iReason != 1)
{
g_iPlanter = -1;
}
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
if (iWinners == GetClientTeam(i))
{
new Float:fEarned = 0.0;
new var2;
if (i != g_iDefuser && i != g_iPlanter)
{
fEarned += 30.0;
}
if (g_iDamage[i] > 0)
{
new var3;
if (g_iDefuser == -1 && g_iPlanter == -1)
{
new var4;
if (GetClientTeam(i) == 2)
{
var4 = 0;
}
else
{
var4 = 1;
}
fEarned += float(g_iDamage[i]) / float(g_iTeamDamage[var4]) * 70.0;
}
new var5;
if (GetClientTeam(i) == 2)
{
var5 = 0;
}
else
{
var5 = 1;
}
fEarned += float(g_iDamage[i]) / float(g_iTeamDamage[var5]) * 100.0;
}
new var6 = g_fRWS[i];
var6 = var6[fEarned];
PrintToChat(i, "%s You earned \x02%.2f \x01RWS in this round.", " \x04[Gamers-IL]\x01", fEarned);
if (0 < g_iClutchPlayers[i])
{
g_iClutch[i][g_iClutchPlayers[i]]++;
}
g_iClutchPlayers[i] = 0;
}
if (!StrEqual(g_szAuth[i], "BOT", true))
{
SQL_UpdateStats(i);
SQL_UpdatePlayer(i, false);
}
}
i++;
}
}
return Action:0;
}
public Action:Event_PlayerDeath(Event:event, String:name[], bool:dontBroadcast)
{
new var1;
if (PU_IsMatchRunning() && PU_GetRoundType() == 1)
{
new client = GetClientOfUserId(Event.GetInt(event, "userid", 0));
new attacker = GetClientOfUserId(Event.GetInt(event, "attacker", 0));
new var2;
if (!client || !attacker || attacker != client)
{
return Action:0;
}
g_iKills[attacker]++;
g_iTotalKills[attacker]++;
if (Event.GetBool(event, "headshot", false))
{
g_iTotalHS[attacker]++;
}
g_iTotalDeaths[client]++;
if (g_iKills[attacker] > 2)
{
if (g_iKills[attacker] < 5)
{
PrintToChatAll("%s \x02%N \x01just did a \x04%iK \x01in this round.", " \x04[Gamers-IL]\x01", attacker, g_iKills[attacker]);
}
else
{
PrintToChatAll("%s \x02%N \x01just did an \x04ACE \x01in this round.", " \x04[Gamers-IL]\x01", attacker);
}
g_iSpecialKills[attacker][g_iKills[attacker]]++;
}
new attackerAlives = GetAliveCountTeam(GetClientTeam(attacker));
new clientAlives = GetAliveCountTeam(GetClientTeam(attacker)) + -1;
new var3;
if (attackerAlives == 1 && g_iClutchPlayers[attacker])
{
g_iClutchPlayers[client] = clientAlives;
}
else
{
if (clientAlives == 1)
{
new lastAlive = -1;
new i = 1;
while (i <= MaxClients)
{
new var4;
if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(client) == GetClientTeam(i))
{
lastAlive = i;
}
i++;
}
if (g_iClutchPlayers[lastAlive])
{
g_iClutchPlayers[lastAlive] = attackerAlives;
}
}
}
}
return Action:0;
}
void:StartRecord()
{
new iStamp = GetTime({0,0});
FormatTime(g_szRecordName, 512, "%d_%m_%y-%H_%M", iStamp);
Format(g_szRecordName, 512, "%s-%s.dem", g_szRecordName, g_szCurrentMap);
ServerCommand("tv_record %s", g_szRecordName);
LogMessage("Started a TV Record, File name: %s", g_szRecordName);
return void:0;
}
void:StopRecord()
{
ServerCommand("tv_stoprecord");
return void:0;
}
void:SQL_MakeConnection()
{
if (g_dDatabase)
{
CloseHandle(g_dDatabase);
g_dDatabase = MissingTAG:0;
}
new String:szError[512];
g_dDatabase = SQL_Connect("pickup", true, szError, 512);
if (!g_dDatabase)
{
SetFailState("Cannot connect to database, error: %s", szError);
}
SQL_CreateTables();
return void:0;
}
void:SQL_CreateTables()
{
return void:0;
}
void:SQL_CheckPlayer(iClient)
{
new String:szQuery[512];
FormatEx(szQuery, 512, "SELECT * FROM `players` WHERE `auth` = '%s'", g_szAuth[iClient]);
Database.Query(g_dDatabase, SQLQueryCallback:57, szQuery, GetClientSerial(iClient), DBPriority:1);
return void:0;
}
public void:SQL_CheckPlayer_CB(DatabaseB, DBResultSet:results, String:error[], any:data)
{
if (results)
{
if (!(SQL_GetRowCount(results)))
{
new String:szQuery[512];
new String:szName[32];
new iClient = GetClientFromSerial(data);
GetClientName(iClient, szName, 32);
new len = strlen(szName) * 2 + 1;
new szEscapedName[len];
Database.Escape(g_dDatabase, szName, szEscapedName, len, 0);
FormatEx(szQuery, 512, "INSERT INTO `players` (auth, name, kills, deaths, assists, headshots, mvps, score, rws, rwssum, matchcount, wins, 2k, 3k, 4k, 5k, 1v1, 1v2, 1v3, 1v4, 1v5, elo) VALUES ('%s', '%s', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", g_szAuth[iClient], szEscapedName);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
}
return void:0;
}
LogError("Failed to query, error: %s", error);
return void:0;
}
void:SQL_UpdateStats(client)
{
new String:szQuery[512];
FormatEx(szQuery, 512, "UPDATE `matchstats` SET `team` = %i, `kills` = %i, `deaths` = %i, `assists` = %i, `headshots` = %i, `mvps` = %i, `score` = %i, `rws` = '%f', `2k` = %i, `3k` = %i, `4k` = %i, `5k` = %i, `1v1` = %i, `1v2` = %i WHERE `auth` = '%s' AND `matchid` = %i", GetClientTeam(client), g_iTotalKills[client], g_iTotalDeaths[client], CS_GetClientAssists(client), g_iTotalHS[client], CS_GetMVPCount(client), CS_GetClientContributionScore(client), g_fRWS[client] / float(g_iRoundPassed), g_iSpecialKills[client][2], g_iSpecialKills[client][3], g_iSpecialKills[client][4], g_iSpecialKills[client][5], g_iClutch[client][1], g_iClutch[client][2], g_szAuth[client], g_iMatchID);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
return void:0;
}
void:SQL_RegisterMatch()
{
new String:szQuery[512];
FormatEx(szQuery, 512, "SELECT `total_games` FROM `info`");
Database.Query(g_dDatabase, SQLQueryCallback:59, szQuery, any:0, DBPriority:1);
return void:0;
}
public void:SQL_RegisterMatch_CB(DatabaseB, DBResultSet:results, String:error[], any:data)
{
if (results)
{
if (DBResultSet.FetchRow(results))
{
g_iMatchID = DBResultSet.FetchInt(results, 0, 0);
new String:szQuery[512];
FormatEx(szQuery, 512, "UPDATE `info` SET `total_games` = `total_games` + 1");
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
FormatEx(szQuery, 512, "INSERT INTO `matches` (`matchid`,`teamAid`,`teamBid`,`scoreA`,`scor eB`,`date`,`map`,`demo`) VALUES ('%i',0,0,0,0,'%i','%s','%s')", g_iMatchID, GetTime({0,0}), g_szCurrentMap, g_szRecordName);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
new i = 1;
while (i <= MaxClients)
{
new var1;
if (IsClientInGame(i) && GetClientTeam(i) != 1)
{
SQL_InsertPlayer(i, g_szAuth[i]);
}
i++;
}
}
return void:0;
}
LogError("Failed to query, error: %s", error);
return void:0;
}
void:SQL_InsertPlayer(client, String:auth[])
{
new String:szQuery[512];
FormatEx(szQuery, 512, "INSERT INTO `matchstats` (`matchid`, `auth`, `team`, `kills`, `deaths`, `assists`, `headshots`, `mvps`, `score`, `rws`, `2k`, `3k`, `4k`, `5k`, `1v1`, `1v2`) VALUES ('%i', '%s', '%i', '%i', '%i', '%i', '%i', '%i', '%i', '%.2f', '%i', '%i', '%i', '%i', '%i', '%i')", g_iMatchID, auth, GetClientTeam(client), g_iTotalKills[client], g_iTotalDeaths[client], CS_GetClientAssists(client), g_iTotalHS[client], CS_GetMVPCount(client), CS_GetClientContributionScore(client), g_fRWS[client] / float(g_iRoundPassed), g_iSpecialKills[client][2], g_iSpecialKills[client][3], g_iSpecialKills[client][4], g_iSpecialKills[client][5], g_iClutch[client][1], g_iClutch[client][2]);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
return void:0;
}
void:SQL_UpdatePlayer(client, bool:winner)
{
new String:szQuery[512];
new String:szName[32];
if (StrEqual(g_szAuth[client], "BOT", true))
{
return void:0;
}
GetClientName(client, szName, 32);
new len = strlen(szName) * 2 + 1;
new szEscapedName[len];
Database.Escape(g_dDatabase, szName, szEscapedName, len, 0);
new var1;
if (winner)
{
var1 = 1;
}
else
{
var1 = 0;
}
FormatEx(szQuery, 512, "UPDATE `players` SET `name` = '%s', `kills` = `kills` + %i, `deaths` = `deaths` + %i, `assists` = `assists` + %i, `headshots` = `headshots` + %i, `mvps` = `mvps` + %i, `score`= `score` + %i, `rwssum` = `rwssum` + %.2f, `matchcount` = `matchcount` + 1, `wins` = `wins` + %i, `2k` = `2k` + %i, `3k` = `3k` + %i, `4k` = `4k` + %i, `5k` = `5k` + %i, `1v1` = `1v1` + %i,`1v2` = `1v2` + %i,`1v3` = `1v3` + %i,`1v4` = `1v4` + %i,`1v5` = `1v5` + %i, `rws` = `rwssum`/`matchcount` WHERE `auth` = '%s'", szEscapedName, g_iTotalKills[client], g_iTotalDeaths[client], CS_GetClientAssists(client), g_iTotalHS[client], CS_GetMVPCount(client), CS_GetClientContributionScore(client), g_fRWS[client] / float(g_iRoundPassed), var1, g_iSpecialKills[client][2], g_iSpecialKills[client][3], g_iSpecialKills[client][4], g_iSpecialKills[client][5], g_iClutch[client][1], g_iClutch[client][2], g_iClutch[client][3], g_iClutch[client][4], g_iClutch[client][5], g_szAuth[client]);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
return void:0;
}
void:SQL_DeletePlayer(String:auth[])
{
new String:szQuery[512];
FormatEx(szQuery, 512, "DELETE FROM `matchstats` WHERE `matchid` = %i AND `auth` = '%s'", g_iMatchID, auth);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
return void:0;
}
void:SQL_UpdateMatch(scoreA, scoreB)
{
new String:szQuery[512];
FormatEx(szQuery, 512, "UPDATE `matches` SET `scoreA` = %i, `scoreB` = %i WHERE `matchid` = %i", scoreA, scoreB, g_iMatchID);
Database.Query(g_dDatabase, SQLQueryCallback:55, szQuery, any:0, DBPriority:1);
return void:0;
}
public void:SQL_CheckErrors_CB(DatabaseB, DBResultSet:results, String:error[], any:data)
{
if (results)
{
return void:0;
}
LogError("Failed to query, error: %s", error);
return void:0;
}
GetAliveCountTeam(team)
{
new count;
new i = 1;
while (i <= MaxClients)
{
new var1;
if (IsClientInGame(i) && team == GetClientTeam(i) && IsPlayerAlive(i))
{
count++;
}
i++;
}
return count;
}
|
Last edited by Tene32; 12-24-2019 at 15:11.
|
|