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",
|
name = "Spray Manager",
|
||||||
description = "A plugin to help manage player sprays.",
|
description = "A plugin to help manage player sprays.",
|
||||||
author = "Obus",
|
author = "Obus",
|
||||||
version = "2.1.0",
|
version = "2.1.1",
|
||||||
url = ""
|
url = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,6 +246,38 @@ public void CvarQueryFinished_SprayLifeTime(QueryCookie cookie, int client, ConV
|
|||||||
g_iClientSprayLifetime[client] = iVal <= 0 ? 1 : iVal > 1000 ? 1000 : iVal;
|
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)
|
public void OnClientPostAdminCheck(int client)
|
||||||
{
|
{
|
||||||
if (g_hDatabase != null)
|
if (g_hDatabase != null)
|
||||||
@ -255,6 +287,13 @@ public void OnClientPostAdminCheck(int client)
|
|||||||
UpdatePlayerInfo(client);
|
UpdatePlayerInfo(client);
|
||||||
UpdateSprayHashInfo(client);
|
UpdateSprayHashInfo(client);
|
||||||
UpdateNSFWInfo(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)
|
if (g_cvarSendSpraysToConnectingClients.BoolValue)
|
||||||
@ -1620,7 +1659,16 @@ public Action Command_HideSpray(int client, int argc)
|
|||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
|
|
||||||
g_bHasSprayHidden[client][iTarget] = true;
|
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);
|
PaintWorldDecalToOne(g_iHiddenDecalIndex, g_vecSprayOrigin[iTarget], client);
|
||||||
g_bSkipDecalHook = true;
|
g_bSkipDecalHook = true;
|
||||||
@ -1640,7 +1688,17 @@ public Action Command_HideSpray(int client, int argc)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
g_bHasSprayHidden[client][i] = true;
|
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);
|
PaintWorldDecalToOne(g_iHiddenDecalIndex, g_vecSprayOrigin[i], client);
|
||||||
g_bSkipDecalHook = true;
|
g_bSkipDecalHook = true;
|
||||||
@ -1675,7 +1733,16 @@ public Action Command_UnhideSpray(int client, int argc)
|
|||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
|
|
||||||
g_bHasSprayHidden[client][iTarget] = false;
|
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);
|
PaintWorldDecalToOne(g_iTransparentDecalIndex, g_vecSprayOrigin[iTarget], client);
|
||||||
|
|
||||||
@ -1703,7 +1770,16 @@ public Action Command_UnhideSpray(int client, int argc)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
g_bHasSprayHidden[client][i] = false;
|
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);
|
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, 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, 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, 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;
|
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, 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, 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, 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;
|
g_bSQLite = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user