From 0dd2f5990a03f389bb0daeaa008e225b5cfb04f2 Mon Sep 17 00:00:00 2001 From: INeedBots Date: Thu, 29 Oct 2020 13:59:49 -0600 Subject: [PATCH] bone offset --- userraw/maps/mp/bots/_bot_internal.gsc | 18 +++++++++++++++--- userraw/maps/mp/bots/_bot_utility.gsc | 7 +++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/userraw/maps/mp/bots/_bot_internal.gsc b/userraw/maps/mp/bots/_bot_internal.gsc index 041ab2d..0a5a4d3 100644 --- a/userraw/maps/mp/bots/_bot_internal.gsc +++ b/userraw/maps/mp/bots/_bot_internal.gsc @@ -2056,13 +2056,21 @@ aim() target = self.bot.target.entity; conedot = 0; isplay = self.bot.target.isplay; + offset = self.bot.target.offset; + if (!isDefined(offset)) + offset = (0, 0, 0); + dist = self.bot.target.dist; rand = self.bot.target.rand; no_trace_ads_time = self.pers["bots"]["skill"]["no_trace_ads_time"]; reaction_time = self.pers["bots"]["skill"]["reaction_time"]; nadeAimOffset = 0; + bone = self.bot.target.bone; + if (!isDefined(bone)) + bone = "j_spineupper"; + if(weaponClass(curweap) == "grenade" || curweap == "throwingknife_mp") { if (getWeaponClass(curweap) == "weapon_projectile") @@ -2109,7 +2117,10 @@ aim() { if(isplay) { - aimpos = target getTagOrigin( "j_spineupper" ) + (0, 0, nadeAimOffset); + aimpos = target getTagOrigin( bone ); + aimpos += offset; + aimpos += (0, 0, nadeAimOffset); + conedot = getConeDot(aimpos, eyePos, angles); if (!nadeAimOffset && conedot > 0.999) @@ -2120,10 +2131,11 @@ aim() else { aimpos = target.origin; - if (isDefined(offset)) - aimpos += offset; + aimpos += offset; aimpos += (0, 0, nadeAimOffset); + conedot = getConeDot(aimpos, eyePos, angles); + self thread bot_lookat(aimpos, aimspeed); } diff --git a/userraw/maps/mp/bots/_bot_utility.gsc b/userraw/maps/mp/bots/_bot_utility.gsc index 4e60995..e31e80c 100644 --- a/userraw/maps/mp/bots/_bot_utility.gsc +++ b/userraw/maps/mp/bots/_bot_utility.gsc @@ -257,6 +257,13 @@ BotFreezeControls(what) self notify("kill_goal"); } +GetRandomBone() +{ + bones = strtok("j_mainroot,j_coatfront_le,j_coatfront_ri,j_coatrear_le,j_hip_le,j_hip_ri,j_spinelower,j_hiptwist_le,j_hiptwist_ri,j_knee_le,j_knee_ri,j_shorts_le,j_shorts_lift_le,j_shorts_lift_ri,j_shorts_ri,j_spineupper,j_ankle_le,j_ankle_ri,j_knee_bulge_le,j_knee_bulge_ri,j_spine4,j_ball_le,j_ball_ri,j_clavicle_le,j_clavicle_ri,j_neck,j_shoulderraise_le,j_shoulderraise_ri,j_head,j_shoulder_le,j_shoulder_ri,j_brow_le,j_brow_ri,j_cheek_le,j_cheek_ri,j_elbow_bulge_le,j_elbow_bulge_ri,j_elbow_le,j_elbow_ri,j_eye_lid_bot_le,j_eye_lid_bot_ri,j_eye_lid_top_le,j_eye_lid_top_ri,j_eyeball_le,j_eyeball_ri,j_head_end,j_jaw,j_levator_le,j_levator_ri,j_lip_top_le,j_lip_top_ri,j_mouth_le,j_mouth_ri,j_shouldertwist_le,j_shouldertwist_ri,j_chin_skinroll,j_helmet,j_lip_bot_le,j_lip_bot_ri,j_wrist_le,j_wrist_ri,j_wristtwist_le,j_wristtwist_ri,j_gun,j_index_le_1,j_index_ri_1,j_mid_le_1,j_mid_ri_1,j_pinky_le_1,j_pinky_ri_1,j_ring_le_1,j_ring_ri_1,j_thumb_le_,j_thumb_ri_1,j_index_le_2,j_index_ri_2,j_mid_le_2,j_mid_ri_2,j_pinky_le_2,j_pinky_ri_2,j_ring_le_2,j_ring_ri_2,j_thumb_le_2,j_thumb_ri_2,j_index_le_3,j_index_ri_3,j_mid_le_3,j_mid_ri_3,j_pinky_le_3,j_pinky_ri_3,j_ring_le_3,j_ring_ri_3,j_thumb_le_3,j_thumb_ri_3", ","); + + return random(bones); +} + /* Returns if the bot is script frozen. */