Door entities have the dmg command to deal damage to any entity preventing it from opening or closing.
With this command, one can create a simple script to punish doorblockers by hurting them.
You can compare this in real life to being hit by a door in the face. It hurts.
Execute the script from DMprecache
main:
local.min = int(getcvar("sv_maxclients"));
// It needs to spawn 5 or more entities to work correctly. Explained here -> https://www.x-null.net/forums/threads/3806
local.max = spawn script_model model "models/fx/dummy.tik" origin ( 0 0 -5000 );
local.max = spawn script_model model "models/fx/dummy.tik" origin ( 0 0 -5000 );
local.max = spawn script_model model "models/fx/dummy.tik" origin ( 0 0 -5000 );
local.max = spawn script_model model "models/fx/dummy.tik" origin ( 0 0 -5000 );
local.max = spawn script_model model "models/fx/dummy.tik" origin ( 0 0 -5000 );
local.max = spawn script_model model "models/fx/dummy.tik" origin ( 0 0 -5000 );
for (local.i = local.min; local.i <= local.max.entnum; local.i++) {
local.ent = getentity local.i;
if (local.ent && local.ent.classname == "RotatingDoor") {
// Damage the door will do to entities that get stuck in it. (DoorBlockers)
local.ent dmg 33;
}
if (local.i % 10 == 0) {
waitframe;
}
}
end;
holdthedoor.zip
This is how it looks