added support for spray hiding multiple people automatic on connection
This commit is contained in:
parent
16edc14753
commit
ad3af6e817
@ -84,7 +84,7 @@ public Plugin myinfo =
|
||||
name = "Spray Manager",
|
||||
description = "A plugin to help manage player sprays.",
|
||||
author = "Obus",
|
||||
version = "2.1.0",
|
||||
version = "2.1.1",
|
||||
url = ""
|
||||
}
|
||||
|
||||
@ -246,6 +246,38 @@ public void CvarQueryFinished_SprayLifeTime(QueryCookie cookie, int client, ConV
|
||||
g_iClientSprayLifetime[client] = iVal <= 0 ? 1 : iVal > 1000 ? 1000 : iVal;
|
||||
}
|
||||
|
||||
public void select_sprays_to_hide(Handle hParent, Handle hChild, const char[] err, any client)
|
||||
{
|
||||
if (!IsValidClient(client))
|
||||
return;
|
||||
|
||||
if (hChild == null)
|
||||
{
|
||||
LogError("failed selecting hidden sprays (%s)", err);
|
||||
return;
|
||||
}
|
||||
while (SQL_FetchRow(hChild))
|
||||
{
|
||||
char sAuthID[32];
|
||||
SQL_FetchString(hChild, 0, sAuthID, sizeof(sAuthID));
|
||||
for (int i = 1; i <= MaxClients; i++)
|
||||
{
|
||||
if (!IsValidClient(i) || IsFakeClient(i))
|
||||
continue;
|
||||
char sAuthID_target[32];
|
||||
GetClientAuthId(i, AuthId_Steam2, sAuthID_target, sizeof(sAuthID_target), false);
|
||||
if (StrEqual(sAuthID, sAuthID_target))
|
||||
{
|
||||
g_bHasSprayHidden[client][i] = true;
|
||||
PaintWorldDecalToOne(g_iHiddenDecalIndex, g_vecSprayOrigin[i], client);
|
||||
g_bSkipDecalHook = true;
|
||||
SprayClientDecalToOne(i, client, 0, ACTUAL_NULL_VECTOR);
|
||||
g_bSkipDecalHook = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnClientPostAdminCheck(int client)
|
||||
{
|
||||
if (g_hDatabase != null)
|
||||
@ -255,6 +287,13 @@ public void OnClientPostAdminCheck(int client)
|
||||
UpdatePlayerInfo(client);
|
||||
UpdateSprayHashInfo(client);
|
||||
UpdateNSFWInfo(client);
|
||||
|
||||
char sAuthID[32];
|
||||
GetClientAuthId(client, AuthId_Steam2, sAuthID, sizeof(sAuthID), false);
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "SELECT `steamidtarget` FROM `sprayhidemanage` WHERE `steamidhider` = '%s';", sAuthID);
|
||||
|
||||
SQL_TQuery(g_hDatabase, select_sprays_to_hide, sQuery, client, DBPrio_High);
|
||||
}
|
||||
|
||||
if (g_cvarSendSpraysToConnectingClients.BoolValue)
|
||||
@ -1620,7 +1659,16 @@ public Action Command_HideSpray(int client, int argc)
|
||||
return Plugin_Handled;
|
||||
|
||||
g_bHasSprayHidden[client][iTarget] = true;
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have hidden \x04%N\x01's spray.", iTarget);
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have hidden \x04%N\x01's spray.", iTarget); //'
|
||||
|
||||
char sAuthID[32];
|
||||
char sAuthID_target[32];
|
||||
GetClientAuthId(client, AuthId_Steam2, sAuthID, sizeof(sAuthID), false);
|
||||
GetClientAuthId(iTarget, AuthId_Steam2, sAuthID_target, sizeof(sAuthID_target), false);
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "INSERT IGNORE INTO `sprayhidemanage` (`steamidhider`, `steamidtarget`) VALUES ('%s', '%s');", sAuthID, sAuthID_target);
|
||||
|
||||
SQL_TQuery(g_hDatabase, DummyCallback, sQuery);
|
||||
|
||||
PaintWorldDecalToOne(g_iHiddenDecalIndex, g_vecSprayOrigin[iTarget], client);
|
||||
g_bSkipDecalHook = true;
|
||||
@ -1640,7 +1688,17 @@ public Action Command_HideSpray(int client, int argc)
|
||||
continue;
|
||||
|
||||
g_bHasSprayHidden[client][i] = true;
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have hidden \x04%N\x01's spray.", i);
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have hidden \x04%N\x01's spray.", i); //'
|
||||
|
||||
char sAuthID[32];
|
||||
char sAuthID_target[32];
|
||||
GetClientAuthId(client, AuthId_Steam2, sAuthID, sizeof(sAuthID), false);
|
||||
GetClientAuthId(i, AuthId_Steam2, sAuthID_target, sizeof(sAuthID_target), false);
|
||||
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "INSERT IGNORE INTO `sprayhidemanage` (`steamidhider`, `steamidtarget`) VALUES ('%s', '%s');", sAuthID, i);
|
||||
|
||||
SQL_TQuery(g_hDatabase, DummyCallback, sQuery);
|
||||
|
||||
PaintWorldDecalToOne(g_iHiddenDecalIndex, g_vecSprayOrigin[i], client);
|
||||
g_bSkipDecalHook = true;
|
||||
@ -1675,7 +1733,16 @@ public Action Command_UnhideSpray(int client, int argc)
|
||||
return Plugin_Handled;
|
||||
|
||||
g_bHasSprayHidden[client][iTarget] = false;
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have unhidden \x04%N\x01's spray.", iTarget);
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have unhidden \x04%N\x01's spray.", iTarget); // '
|
||||
|
||||
char sAuthID[32];
|
||||
char sAuthID_target[32];
|
||||
GetClientAuthId(client, AuthId_Steam2, sAuthID, sizeof(sAuthID), false);
|
||||
GetClientAuthId(iTarget, AuthId_Steam2, sAuthID_target, sizeof(sAuthID_target), false);
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "DELETE FROM `sprayhidemanage` WHERE `steamidhider` = '%s' and `steamidtarget` = '%s';", sAuthID, sAuthID_target);
|
||||
|
||||
SQL_TQuery(g_hDatabase, DummyCallback, sQuery);
|
||||
|
||||
PaintWorldDecalToOne(g_iTransparentDecalIndex, g_vecSprayOrigin[iTarget], client);
|
||||
|
||||
@ -1703,7 +1770,16 @@ public Action Command_UnhideSpray(int client, int argc)
|
||||
continue;
|
||||
|
||||
g_bHasSprayHidden[client][i] = false;
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have unhidden \x04%N\x01's spray.", i);
|
||||
PrintToChat(client, "\x01\x04[SprayManager]\x01 You have unhidden \x04%N\x01's spray.", i); //'
|
||||
|
||||
char sAuthID[32];
|
||||
char sAuthID_target[32];
|
||||
GetClientAuthId(client, AuthId_Steam2, sAuthID, sizeof(sAuthID), false);
|
||||
GetClientAuthId(i, AuthId_Steam2, sAuthID_target, sizeof(sAuthID_target), false);
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "DELETE FROM `sprayhidemanage` WHERE `steamidhider` = '%s' and `steamidtarget` = '%s';", sAuthID, sAuthID_target);
|
||||
|
||||
SQL_TQuery(g_hDatabase, DummyCallback, sQuery);
|
||||
|
||||
PaintWorldDecalToOne(g_iTransparentDecalIndex, g_vecSprayOrigin[i], client);
|
||||
|
||||
@ -2429,6 +2505,7 @@ public void OnSQLConnected(Handle hParent, Handle hChild, const char[] err, any
|
||||
SQL_TQuery(g_hDatabase, OnSQLTableCreated, "CREATE TABLE IF NOT EXISTS `spraymanager` (`steamid` VARCHAR(32) NOT NULL, `name` VARCHAR(32) NOT NULL, `unbantime` INT, `issuersteamid` VARCHAR(32), `issuername` VARCHAR(32) NOT NULL, `issuedtime` INT, `issuedreason` VARCHAR(64) NOT NULL, PRIMARY KEY(steamid)) CHARACTER SET utf8 COLLATE utf8_general_ci;");
|
||||
SQL_TQuery(g_hDatabase, OnSQLSprayBlacklistCreated, "CREATE TABLE IF NOT EXISTS `sprayblacklist` (`sprayhash` VARCHAR(16) NOT NULL, `sprayer` VARCHAR(32) NOT NULL, `sprayersteamid` VARCHAR(32), PRIMARY KEY(sprayhash)) CHARACTER SET utf8 COLLATE utf8_general_ci;");
|
||||
SQL_TQuery(g_hDatabase, OnSQLNSFWListCreated, "CREATE TABLE IF NOT EXISTS `spraynsfwlist` (`sprayhash` VARCHAR(16) NOT NULL, `sprayersteamid` VARCHAR(32), `setbyadmin` TINYINT, PRIMARY KEY(sprayhash)) CHARACTER SET utf8 COLLATE utf8_general_ci");
|
||||
SQL_TQuery(g_hDatabase, DummyCallback, "CREATE TABLE IF NOT EXISTS `sprayhidemanage` (`steamidhider` varchar(32), `steamidtarget` varchar(32), PRIMARY KEY (`steamidhider`, `steamidtarget`))");
|
||||
|
||||
g_bSQLite = false;
|
||||
}
|
||||
@ -2437,6 +2514,7 @@ public void OnSQLConnected(Handle hParent, Handle hChild, const char[] err, any
|
||||
SQL_TQuery(g_hDatabase, OnSQLTableCreated, "CREATE TABLE IF NOT EXISTS `spraymanager` (`steamid` TEXT NOT NULL, `name` TEXT DEFAULT 'unknown', `unbantime` INTEGER, `issuersteamid` TEXT, `issuername` TEXT DEFAULT 'unknown', `issuedtime` INTEGER NOT NULL, `issuedreason` TEXT DEFAULT 'none', PRIMARY KEY(steamid));");
|
||||
SQL_TQuery(g_hDatabase, OnSQLSprayBlacklistCreated, "CREATE TABLE IF NOT EXISTS `sprayblacklist` (`sprayhash` TEXT NOT NULL, `sprayer` TEXT DEFAULT 'unknown', `sprayersteamid` TEXT, PRIMARY KEY(sprayhash));");
|
||||
SQL_TQuery(g_hDatabase, OnSQLNSFWListCreated, "CREATE TABLE IF NOT EXISTS `spraynsfwlist` (`sprayhash` TEXT NOT NULL, `sprayersteamid` TEXT, `setbyadmin` INTEGER, PRIMARY KEY(sprayhash));");
|
||||
SQL_TQuery(g_hDatabase, DummyCallback, "CREATE TABLE IF NOT EXISTS `sprayhidemanage` (`steamidhider` TEXT, `steamidtarget` TEXT, PRIMARY KEY (`steamidhider`, `steamidtarget`))");
|
||||
|
||||
g_bSQLite = true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user