From f95391b90699f504bf84e85e38d9d7a458c61cda Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 17 Sep 2020 10:49:12 -0600 Subject: [PATCH] grenade cook --- userraw/maps/mp/bots/_bot_internal.gsc | 33 +++++++++++++++++++++----- userraw/maps/mp/bots/_bot_script.gsc | 5 +++- userraw/maps/mp/bots/_bot_utility.gsc | 4 ++-- userraw/todo.txt | 3 --- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/userraw/maps/mp/bots/_bot_internal.gsc b/userraw/maps/mp/bots/_bot_internal.gsc index 710bad8..d76b0ac 100644 --- a/userraw/maps/mp/bots/_bot_internal.gsc +++ b/userraw/maps/mp/bots/_bot_internal.gsc @@ -140,6 +140,7 @@ resetBotVars() self.bot.isfragging = false; self.bot.isfraggingafter = false; self.bot.tryingtofrag = false; + self.bot.tryingtofragpullback = false; self.bot.semi_time = false; self.bot.greedy_path = false; @@ -895,7 +896,12 @@ fireHack() shouldFire = false; if (self.bot.tryingtofrag) - shouldFire = true; + { + if (self.bot.tryingtofragpullback) + shouldFire = true; + else + shouldFire = false; + } if (level.gameEnded || !gameFlag( "prematch_done" )) shouldFire = false; @@ -1805,7 +1811,10 @@ aim() 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) && dist > level.bots_minGrenadeDistance && dist < level.bots_maxGrenadeDistance) { - self thread botThrowGrenade(nade); + time = 0.5; + if (nade == "frag_grenade_mp") + time = 2; + self thread botThrowGrenade(nade, time); self notify("kill_goal"); } } @@ -2346,9 +2355,12 @@ knife(ent, knifeDist) self.bot.knifing = true; self.bot.knifingafter = true; - isplay = isPlayer(ent); + isplay = (isDefined(ent) && isPlayer(ent)); usedRiot = self.hasRiotShieldEquipped; - distsq = DistanceSquared(self.origin, ent.origin); + org = (0, 0, 99999999); + if (isDefined(ent)) + org = ent.origin; + distsq = DistanceSquared(self.origin, org); inLastStand = self inLastStand(); stance = self getStance(); damage = 135; @@ -2498,7 +2510,7 @@ reload() // the script should reload for us. } -botThrowGrenade(grenName) +botThrowGrenade(grenName, grenTime) { self endon("death"); self endon("disconnect"); @@ -2529,15 +2541,24 @@ botThrowGrenade(grenName) self setSpawnWeapon(grenName); self.bot.tryingtofrag = true; + self.bot.tryingtofragpullback = true; ret = self waittill_any_timeout( 5, "grenade_pullback", "grenade_fire" ); if (ret == "grenade_pullback") { + if (isDefined(grenTime)) + { + self.bot.tryingtofragpullback = false; + wait grenTime; + self.bot.tryingtofragpullback = true; + } + ret = self waittill_any_timeout( 5, "grenade_fire", "weapon_change", "offhand_end" ); } self.bot.tryingtofrag = false; + self.bot.tryingtofragpullback = false; self setSpawnWeapon(curWeap); @@ -2601,7 +2622,7 @@ jump() if (self inLastStand() || self getStance() != "stand" || level.gameEnded || !gameFlag( "prematch_done" ) || self IsUsingRemote() || - self.bot.isfrozen || self.bot.climbing || self.bot.jumpingafter) + self.bot.isfrozen || self.bot.stop_move || self.bot.climbing || self.bot.jumpingafter) return; self.bot.jumping = true; diff --git a/userraw/maps/mp/bots/_bot_script.gsc b/userraw/maps/mp/bots/_bot_script.gsc index aa3c746..b51b592 100644 --- a/userraw/maps/mp/bots/_bot_script.gsc +++ b/userraw/maps/mp/bots/_bot_script.gsc @@ -1818,7 +1818,10 @@ bot_use_grenade_think() self BotStopMoving(true); wait 1; - self throwBotGrenade(nade); + time = 0.5; + if (nade == "frag_grenade_mp") + time = 2; + self throwBotGrenade(nade, time); self ClearScriptAimPos(); self BotStopMoving(false); diff --git a/userraw/maps/mp/bots/_bot_utility.gsc b/userraw/maps/mp/bots/_bot_utility.gsc index 3264b13..3013bf5 100644 --- a/userraw/maps/mp/bots/_bot_utility.gsc +++ b/userraw/maps/mp/bots/_bot_utility.gsc @@ -117,9 +117,9 @@ getValidGrenade() return random(possibles); } -throwBotGrenade(gname) +throwBotGrenade(gname, gtime) { - return self maps\mp\bots\_bot_internal::botThrowGrenade(gname); + return self maps\mp\bots\_bot_internal::botThrowGrenade(gname, gtime); } botIsClimbing() diff --git a/userraw/todo.txt b/userraw/todo.txt index f903100..d643965 100644 --- a/userraw/todo.txt +++ b/userraw/todo.txt @@ -3,9 +3,6 @@ bomb gamemodes, unreleased gamemodes switch weapon with disable weapon -_internal: -grenade cook time - _other: dvars, loadout, behaviour, menu code comments