gren combat

This commit is contained in:
Your Name 2020-08-07 20:00:50 -06:00
parent 673e0a6c14
commit f624cb65cf
2 changed files with 42 additions and 33 deletions

View File

@ -179,18 +179,37 @@ knife()
{ {
} }
/* botThrowGrenade(grenName)
Bot will hold the frag button for a time
*/
frag(time)
{ {
self endon("death");
self endon("disconnect");
if (self.bot.tryingtofrag)
return "already nading";
if (!self getAmmoCount(grenName))
return "no ammo";
curWeap = self GetCurrentWeapon();
self setSpawnWeapon(grenName);
self.bot.tryingtofrag = true;
ret = "grenade_pullback";
if (grenName != "throwingknife_mp")
ret = self waittill_any_timeout( 5, "grenade_pullback" );
if (ret != "timeout")
{
ret = self waittill_any_timeout( 5, "grenade_fire", "weapon_change", "offhand_end" );
wait 0.95;
} }
/* self.bot.tryingtofrag = false;
Bot will hold the 'smoke' button for a time.
*/ self setSpawnWeapon(curWeap);
smoke(time)
{ return ret;
} }
/* /*
@ -396,7 +415,7 @@ grenade_watch()
self.bot.isfragging = true; self.bot.isfragging = true;
self.bot.isfraggingafter = true; self.bot.isfraggingafter = true;
self waittill_notify_or_timeout( "grenade_fire", 5 ); self waittill_any_timeout( 5, "grenade_fire", "weapon_change", "offhand_end" );
self.bot.isfragging = false; self.bot.isfragging = false;
self thread doFragAfterThread(); self thread doFragAfterThread();
@ -672,7 +691,7 @@ onWeaponChange()
case "none": case "none":
if(isDefined(self.lastDroppableWeapon) && self.lastDroppableWeapon != "none") if(isDefined(self.lastDroppableWeapon) && self.lastDroppableWeapon != "none")
self setSpawnWeapon(self.lastDroppableWeapon); self setSpawnWeapon(self.lastDroppableWeapon);
break;//grenades break;
case "ac130_105mm_mp": case "ac130_105mm_mp":
case "ac130_40mm_mp": case "ac130_40mm_mp":
case "ac130_25mm_mp": case "ac130_25mm_mp":
@ -1388,19 +1407,11 @@ aim()
nade = self getValidGrenade(); nade = self getValidGrenade();
if(isDefined(nade) && rand <= self.pers["bots"]["behavior"]["nade"] && bulletTracePassed(myEye, myEye + (0, 0, 75), false, self) && bulletTracePassed(last_pos, last_pos + (0, 0, 100), false, target)) //bots_minGrenadeDistance if(isDefined(nade) && rand <= self.pers["bots"]["behavior"]["nade"] && bulletTracePassed(myEye, myEye + (0, 0, 75), false, self) && bulletTracePassed(last_pos, last_pos + (0, 0, 100), false, target)) //bots_minGrenadeDistance
{ {
if(nade == "frag_grenade_mp") self thread botThrowGrenade(nade);
self thread frag(2.5);
else
self thread smoke(0.5);
self notify("kill_goal"); self notify("kill_goal");
} }
} }
} }
else
{
self stopNading();
}
} }
if (!usingRemote) if (!usingRemote)
@ -1410,8 +1421,6 @@ aim()
continue; continue;
} }
self stopNading();
if(isplay) if(isplay)
{ {
aimpos = target getTagOrigin( "j_spineupper" ) + (0, 0, nadeAimOffset); aimpos = target getTagOrigin( "j_spineupper" ) + (0, 0, nadeAimOffset);
@ -1458,7 +1467,6 @@ aim()
} }
self ads(false); self ads(false);
self stopNading();
if (!isDefined(self.bot.script_aimpos)) if (!isDefined(self.bot.script_aimpos))
{ {
@ -1514,15 +1522,6 @@ doSemiTime()
self.bot.semi_time = false; self.bot.semi_time = false;
} }
/*
Stop the bot from nading.
*/
stopNading()
{
if(self.bot.isfragging)
self thread frag(0);
}
/* /*
Returns a random grenade in the bot's inventory. Returns a random grenade in the bot's inventory.
*/ */
@ -1533,6 +1532,8 @@ getValidGrenade()
grenadeTypes[grenadeTypes.size] = "smoke_grenade_mp"; grenadeTypes[grenadeTypes.size] = "smoke_grenade_mp";
grenadeTypes[grenadeTypes.size] = "flash_grenade_mp"; grenadeTypes[grenadeTypes.size] = "flash_grenade_mp";
grenadeTypes[grenadeTypes.size] = "concussion_grenade_mp"; grenadeTypes[grenadeTypes.size] = "concussion_grenade_mp";
grenadeTypes[grenadeTypes.size] = "semtex_mp";
grenadeTypes[grenadeTypes.size] = "throwingknife_mp";
possibles = []; possibles = [];
@ -1558,6 +1559,9 @@ canFire(curweap)
if(curweap == "none") if(curweap == "none")
return false; return false;
if (self.bot.isreloading)
return false;
if (curweap == "riotshield_mp") if (curweap == "riotshield_mp")
return false; return false;

View File

@ -44,6 +44,11 @@ pressFire(time)
self fire(false); self fire(false);
} }
botThrowGrenade(gname)
{
return maps\mp\bots\_bot_internal::botThrowGrenade(gname);
}
fire(what) fire(what)
{ {
self.bot.fire_pressed = what; self.bot.fire_pressed = what;