I'm not real good at QC, but my guess is that you need to put your check in the player's .touch function, and set a .variable for the player (or flag or something) in there if other.classname == "func_bomb_target" - then, when the player tries to use C4, check that variable.
void() Func_BombTarget_Touch =
{
local entity oself;
if (other.classname != "player")
return; // only allow players to register touchs
if (!other.hasbomb)
return; // make sure they have the bomb
if (!other.flags & FL_ONGROUND)
return; // don't plant bomb midair
other.hasbomb = FALSE; // take the bomb off them
// spawn the bomb in the world here etc...
oself = self;
self = other;
W_FireBomb ();
self = oself;
};
...well you get the idea.. or at least some ideas, hopefully.[/code]