I don't have a CSS server to test this, but try the following.
At the top of the file, add the following global variables:
PHP Code:
bool g_bRadiusPlayer[MAXPLAYERS + 1];
float g_fFreezeOverride[MAXPLAYERS + 1];
Those will be used as our override value whenever a player gets frozen.
In the OnPluginStart section, under all the CreateConVar stuff, add:
PHP Code:
RegAdminCmd("hns_freeze_radius_player", hns_freeze_player, ADMFLAG_ROOT, "Override the freeze radius of a player");
This adds an admin command with root privileges to set a custom freeze radius to a player.
Add the following block of code somewhere:
PHP Code:
Action hns_freeze_player(int client, int args)
{
if (args < 2)
{
ReplyToCommand(client, "[HNS] Usage: hns_freeze_radius_player <name|#userid> <radius>");
return Plugin_Handled;
}
char arg1[MAX_NAME_LENGTH];
char arg2[12];
GetCmdArg(1, arg1, sizeof(arg1));
GetCmdArg(2, arg2, sizeof(arg2));
int Target = FindTarget(client, arg1, true, false);
if (Target == -1)
return Plugin_Handled;
int arg2int = StringToFloat(arg2);
if (arg2int < 0)
{
ReplyToCommand(client, "[HNS] Invalid radius amount.");
return Plugin_Handled;
}
if (arg2int != GetConVarFloat(g_hFreezeRadius))
{
g_bRadiusPlayer[client] = true;
g_fFreezeOverride[client] = arg2int;
ReplyToCommand(client, "[HNS] Freeze radius set to %d for %N.", arg2int, Target);
}
else
{
g_bRadiusPlayer[client] = false;
ReplyToCommand(client, "[HNS] Value %d is already the global freeze radius value.");
return Plugin_Handled;
}
return Plugin_Handled;
}
This is the function of our new admin command.
Finally, find the following line (around the 1100):
PHP Code:
if (GetVectorDistance(faDecoyCoord, targetCoord) <= g_fFreezeRadius)
Freeze(iClient, g_fFreezeDuration, FROSTNADE, iThrower);
Replace with:
PHP Code:
if (g_bRadiusPlayer[iClient] && GetVectorDistance(faDecoyCoord, targetCoord) <= g_fFreezeOverride[iClient])
Freeze(iClient, g_fFreezeDuration, FROSTNADE, iThrower);
else if (GetVectorDistance(faDecoyCoord, targetCoord) <= g_fFreezeRadius)
Freeze(iClient, g_fFreezeDuration, FROSTNADE, iThrower);
Again, this is untested. It may very need some tweaking. Try it and see what happens.