Your fix works! By the way, if you were wondering, the thing I modified was I added a simple position check to the SetActiveWeapon() function:
Code:
SetActiveWeapon(client, weapon)
{
if(InBounds(client)) {
new iWeapon = GetActiveWeapon(client);
new iSlot3 = GetPlayerWeaponSlot(client, 2);
decl String:strClass[40];
GetEdictClassname(iWeapon, strClass, sizeof(strClass));
if((strcmp(strClass, "tf_weapon_minigun") == 0)&(InBounds(client)))
{
ResetMinigun(iWeapon, 0);
TF2_RemoveCondition(client, TFCond_Slowed);
}
SDKCall(g_hWeaponSwitch, client, weapon, 0);
}
}
InBounds(client){//custom, added by whiplash
decl Float:pos[3];
GetClientAbsOrigin(client, pos);
if(((pos[0]<maxX)&(pos[1]<maxY)&(pos[2]<maxZ))&((pos[0]>minX)&(pos[1]>minY)&(pos[2]>minZ))) return true;
else return false;
}
The bounds are hard-coded as #defines since I only intend to run one specific map on my trade server. I also forced all ubers to 0%, blocked madmilk/jarate/crit-a-cola/bonk/buff banner/batallion's backup (set bAllow to false for each), and gave anyone outside the bounds buddha mode and access to all weapons. But thanks for doing the hard work for me!