bot_stancerandomizer.c 858 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. class BotStanceRandomizer extends BotStateBase
  2. {
  3. ref HumanMovementState m_State = new HumanMovementState();
  4. float m_dtAccumulator = 0.0;
  5. void BotStanceRandomizer(Bot bot = NULL, BotStateBase parent = NULL)
  6. {
  7. }
  8. override void OnEntry (BotEventBase e)
  9. {
  10. m_dtAccumulator = 0.0;
  11. super.OnEntry(e);
  12. }
  13. override void OnExit (BotEventBase e)
  14. {
  15. m_dtAccumulator = 0.0;
  16. super.OnExit(e);
  17. }
  18. override void OnUpdate (float dt)
  19. {
  20. super.OnUpdate(dt);
  21. m_dtAccumulator += dt;
  22. GetPlayerOwner().GetMovementState(m_State);
  23. HumanCommandMove cm = GetPlayerOwner().GetCommand_Move();
  24. if (cm && !cm.IsChangingStance())
  25. {
  26. if (m_State.m_iStanceIdx == DayZPlayerConstants.STANCEIDX_PRONE)
  27. {
  28. cm.ForceStance(DayZPlayerConstants.STANCEIDX_ERECT);
  29. }
  30. else
  31. {
  32. cm.ForceStance(DayZPlayerConstants.STANCEIDX_PRONE);
  33. }
  34. }
  35. }
  36. };