actioncpr.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. class ActionCPRCB : ActionContinuousBaseCB
  2. {
  3. private const float REPEAT_AFTER_SEC = 1;
  4. override void CreateActionComponent()
  5. {
  6. m_ActionData.m_ActionComponent = new CAContinuousRepeat(REPEAT_AFTER_SEC);
  7. }
  8. };
  9. class ActionCPR: ActionContinuousBase
  10. {
  11. void ActionCPR()
  12. {
  13. m_CallbackClass = ActionCPRCB;
  14. m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_CPR;
  15. m_FullBody = true;
  16. m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
  17. m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
  18. m_Text = "#cpr";
  19. }
  20. override typename GetInputType()
  21. {
  22. return ContinuousInteractActionInput;
  23. }
  24. override void OnStartClient(ActionData action_data)
  25. {
  26. action_data.m_Player.TryHideItemInHands(true);
  27. }
  28. override void OnStartServer(ActionData action_data)
  29. {
  30. super.OnStartServer(action_data);
  31. action_data.m_Player.TryHideItemInHands(true);
  32. }
  33. override void CreateConditionComponents()
  34. {
  35. m_ConditionItem = new CCINone;
  36. m_ConditionTarget = new CCTMan(UAMaxDistances.DEFAULT);
  37. }
  38. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  39. {
  40. PlayerBase other_player = PlayerBase.Cast(target.GetObject());
  41. bool holds_heavy_item = item && item.IsHeavyBehaviour();
  42. return other_player.IsUnconscious() && !holds_heavy_item;
  43. }
  44. /*override void OnFinishProgressClient(ActionData action_data)
  45. {
  46. action_data.m_Player.TryHideItemInHands(false);
  47. }*/
  48. override void OnFinishProgressServer(ActionData action_data)
  49. {
  50. PlayerBase other_player = PlayerBase.Cast(action_data.m_Target.GetObject());
  51. other_player.GiveShock(5);
  52. }
  53. override void OnExecuteServer(ActionData action_data)
  54. {
  55. }
  56. override void OnEndServer( ActionData action_data )
  57. {
  58. super.OnEndServer(action_data);
  59. if ( action_data.m_Player ) action_data.m_Player.TryHideItemInHands(false);
  60. }
  61. override void OnEndClient( ActionData action_data )
  62. {
  63. if ( action_data.m_Player ) action_data.m_Player.TryHideItemInHands(false);
  64. }
  65. };