actionopenbarrel.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. class ActionOpenBarrel: ActionInteractBase
  2. {
  3. void ActionOpenBarrel()
  4. {
  5. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_INTERACTONCE;
  6. m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
  7. m_Text = "#open";
  8. }
  9. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  10. {
  11. Object target_object = target.GetObject();
  12. if ( target_object.IsItemBase() )
  13. {
  14. Barrel_ColorBase ntarget = Barrel_ColorBase.Cast( target_object );
  15. if( ntarget )
  16. {
  17. if( !ntarget.IsLocked() && !ntarget.IsOpen() )
  18. {
  19. return true;
  20. }
  21. }
  22. }
  23. return false;
  24. }
  25. override void OnExecuteServer( ActionData action_data )
  26. {
  27. Object target_object = action_data.m_Target.GetObject();
  28. Barrel_ColorBase ntarget = Barrel_ColorBase.Cast( target_object );
  29. if( ntarget )
  30. {
  31. ntarget.Open();
  32. }
  33. }
  34. override void OnEndServer( ActionData action_data )
  35. {
  36. super.OnEndServer(action_data);
  37. Object target_object = action_data.m_Target.GetObject();
  38. Barrel_ColorBase ntarget = Barrel_ColorBase.Cast( target_object );
  39. if( ntarget )
  40. {
  41. ntarget.SoundSynchRemoteReset();
  42. }
  43. }
  44. }