2class BotMoveForward
extends BotStateBase
4 private bool m_FirstTime =
true;
5 private bool m_PrevIsClimbing =
false;
6 private float m_PrevMaxClimbDist = 0;
8 void BotMoveForward(Bot bot = NULL, BotStateBase parent = NULL)
13 private int GetClimbType(
float pHeight)
18 else if (pHeight >= 1.1 && pHeight < 1.7)
20 else if (pHeight >= 1.7 && pHeight < 2.75)
26 override void OnEntry (BotEventBase e)
29 m_PrevMaxClimbDist =
m_Owner.GetDayZPlayerType().CommandClimbSettingsW().m_fFwMaxDistance;
33 override void OnExit (BotEventBase e)
42 bool isClimbing = m_Bot.m_Owner.IsClimbing();
45 DayZPlayer player =
g_Game.GetPlayer();
50 m_Owner.GetDayZPlayerType().CommandClimbSettingsW().m_fFwMaxDistance = m_PrevMaxClimbDist;
52 else if (
GetGame().SurfaceIsSea(m_WaterPositionCheck[0], m_WaterPositionCheck[2]))
55 m_Owner.GetDayZPlayerType().CommandClimbSettingsW().m_fFwMaxDistance = m_PrevMaxClimbDist;
56 m_Bot.ProcessEvent(m_Bot.__Obst__);
59 const vector raycastHeight =
"0 0.75 0";
60 const float startPosOffset = 0.1;
61 const float raycastDist = 0.8;
62 const float raycastSphereRadius = 0.3;
65 vector hitPosition, hitNormal;
70 bool hit = DayZPhysics.SphereCastBullet(startPos, endPos, raycastSphereRadius, collisionMask,
m_Owner, hitObject, hitPosition, hitNormal,
hitFraction);
73 m_PrevMaxClimbDist =
m_Owner.GetDayZPlayerType().CommandClimbSettingsW().m_fFwMaxDistance;
74 m_Owner.GetDayZPlayerType().CommandClimbSettingsW().m_fFwMaxDistance = 2.5;
75 SHumanCommandClimbResult climbRes =
new SHumanCommandClimbResult();
77 int climbType = GetClimbType(climbRes.m_fClimbHeight);
79 if ((climbRes.m_bIsClimb || climbRes.m_bIsClimbOver) &&
m_Owner.CanClimb(climbType, climbRes))
82 player.GetInputInterface().SyncedOverride_ID(UAGetOver, 1, OverrideInputType.PRESS,
true);
87 m_Owner.GetDayZPlayerType().CommandClimbSettingsW().m_fFwMaxDistance = m_PrevMaxClimbDist;
88 m_Bot.ProcessEvent(m_Bot.__Obst__);
92 m_PrevIsClimbing = isClimbing;
HandStateEquipped OnEntry
enum ProcessDirectDamageFlags m_Owner
vector m_OwnerPosition
The owner performing the snap callback.
class WeaponChambering_Chamber_OnEntry extends WeaponChambering_Base OnExit
override void OnEntry(HandEventBase e)
override void OnExit(WeaponEventBase e)