if(isPlayer(other) && (other.pers["team"] == game["defenders"]) && other isOnGround())
{
if(!isDefined(other.defuseicon))
{
other.defuseicon = newClientHudElem(other);
other.defuseicon.alignX = "center";
other.defuseicon.alignY = "middle";
other.defuseicon.x = 320;
other.defuseicon.y = 345;
other.defuseicon setShader("ui_mp/assets/hud@defusebomb.tga", 64, 64);
}
while(other islookingat(self) && distance(other.origin, self.origin) < 64 && isAlive(other) && other useButtonPressed())
{
other notify("kill_check_bomb");
if(!isDefined(other.progressbackground))
{
other.progressbackground = newClientHudElem(other);
other.progressbackground.alignX = "center";
other.progressbackground.alignY = "middle";
other.progressbackground.x = 320;
other.progressbackground.y = 385;
other.progressbackground.alpha = 0.5;
}
other.progressbackground setShader("black", (level.barsize + 4), 12);
if(!isDefined(other.progressbar))
{
other.progressbar = newClientHudElem(other);
other.progressbar.alignX = "left";
other.progressbar.alignY = "middle";
other.progressbar.x = (320 - (level.barsize / 2.0));
other.progressbar.y = 385;
}
other.progressbar setShader("white", 0, 8);
other.progressbar scaleOverTime(level.defusetime, level.barsize, 8);
other playsound("MP_bomb_defuse");
other linkTo(self);
other disableWeapon();
self.progresstime = 0;
while(isAlive(other) && other useButtonPressed() && (self.progresstime < level.defusetime))
{
self.progresstime += 0.05;
wait 0.05;
}
if(isDefined(other.progressbackground))
other.progressbackground destroy();
if(isDefined(other.progressbar))
other.progressbar destroy();
if(self.progresstime >= level.defusetime)
{
if(isDefined(other.defuseicon))
other.defuseicon destroy();
if ( level.battlerank )
{
other.pers["score"] += 5;
other.score = other.pers["score"];
}
objective_delete(0);
self notify("bomb_defused");
level.bombmodel setmodel("xmodel/mp_bomb1");
level.bombmodel stopLoopSound();
self delete();
announcement(&"SD_EXPLOSIVESDEFUSED");
lpselfnum = other getEntityNumber();
lpselfguid = other getGuid();
logPrint("A;" + lpselfguid + ";" + lpselfnum + ";" + game["defenders"] + ";" + other.name + ";" + "bomb_defuse" + "\n");
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
players[i] playLocalSound("MP_announcer_bomb_defused");
}
level thread endRound(game["defenders"]);
return; //TEMP, script should stop after the wait .05
}
else
{
other unlink();
other enableWeapon();
}
wait .05;
}
self.defusing = undefined;
other thread check_bomb(self);
}