I think it's still not clear, so here is what i got so far.
The problem is, that the planting can not be interrupted.
CheckPlant()
{
self endon("disconnect");
self endon("intermission");
self endon("death");
while(1)
{
wait .1;
if(self GetStance() == "crouch" && self UseButtonPressed() && self.hasbombs > 0) self PlantBomb();
else if(self GetStance() == "prone" && self UseButtonPressed() && self.hasbombs > 0) self PlantBomb();
else if(self GetStance() == "crouch" && self UseButtonPressed() && self.hasbombs == 0) self iprintlnbold("You have no bombs left!");
else if(self GetStance() == "prone" && self UseButtonPressed() && self.hasbombs == 0) self iprintlnbold("You have no bombs left!");
}
}
PlantBomb()
{
self.bomb = Spawn("script_model", self.origin + vector_scale(anglesToForward(self.angles),20));
self.bomb SetModel("mil_tntbomb_mp");
self playsound("MP_bomb_plant");
thread onOwnerDeath(self);
self DisableWeapons();
self FreezeControls(1);
self.bar = self maps\mp\gametypes\_hud_util::createBar((1,1,1), 128, 8);
self.bar maps\mp\gametypes\_hud_util::setPoint("CENTER", 0, 0, 5);
self.bar maps\mp\gametypes\_hud_util::updateBar(0, 0.2);
wait 5;
self EnableWeapons();
self FreezeControls(0);
self.bar maps\mp\gametypes\_hud_util::destroyElem();
self.bomb thread BombExplosion(self);
self.hasbombs--;
self.bomb notify("bomb_planted");
}