Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл CivilianSedan.c

См. исходные тексты.

Структуры данных

class  CarScript
 
class  CivilianSedan
 

Функции

class CivilianSedan extends CarScript OnDebugSpawn ()
 
void CivilianSedan ()
 
override void EEInit ()
 
override void OnEngineStart ()
 
override void OnEngineStop ()
 
override void EOnPostSimulate (IEntity other, float timeSlice)
 
override int GetAnimInstance ()
 
override float GetTransportCameraDistance ()
 
override int GetSeatAnimationType (int posIdx)
 
override CarLightBase CreateFrontLight ()
 
override CarRearLightBase CreateRearLight ()
 
override bool CanReleaseAttachment (EntityAI attachment)
 
bool CanManipulateSpareWheel (string slotSelectionName)
 
override bool CanDisplayAttachmentCategory (string category_name)
 
override bool CanDisplayCargo ()
 
override int GetCarDoorsState (string slotType)
 
override bool CrewCanGetThrough (int posIdx)
 
override string GetDoorSelectionNameFromSeatPos (int posIdx)
 
override string GetDoorInvSlotNameFromSeatPos (int posIdx)
 
override float OnSound (CarSoundCtrl ctrl, float oldValue)
 
override string GetAnimSourceFromSelection (string selection)
 
override bool IsVitalTruckBattery ()
 
override bool IsVitalGlowPlug ()
 
override bool CanReachSeatFromSeat (int currentSeat, int nextSeat)
 
override bool CanReachDoorsFromSeat (string pDoorsSelection, int pCurrentSeat)
 
override float GetPushForceCoefficientMultiplier ()
 

Переменные

ref UniversalTemperatureSource m_UTSource
 
ref UniversalTemperatureSourceSettings m_UTSSettings
 
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
 

Функции

◆ CanDisplayAttachmentCategory()

override bool CanDisplayAttachmentCategory ( string category_name)
protected

◆ CanDisplayCargo()

override bool CanDisplayCargo ( )
protected
582{
586
587 void CivilianSedan()
588 {
589 //m_dmgContactCoef = 0.065;
590
591 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
592 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
593 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
594 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
595 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
596
597 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
598 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
599
600 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
601 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
602
603 SetEnginePos("0 0.7 1.6");
604 }
605
606 override void EEInit()
607 {
608 super.EEInit();
609
610 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
611 {
613 m_UTSSettings.m_ManualUpdate = true;
614 m_UTSSettings.m_TemperatureMin = 0;
615 m_UTSSettings.m_TemperatureMax = 30;
616 m_UTSSettings.m_RangeFull = 0.5;
617 m_UTSSettings.m_RangeMax = 2;
618 m_UTSSettings.m_TemperatureCap = 25;
619
622 }
623 }
624
625 override void OnEngineStart()
626 {
627 super.OnEngineStart();
628
629 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
630 {
631 m_UTSource.SetDefferedActive(true, 20.0);
632 }
633 }
634
635 override void OnEngineStop()
636 {
637 super.OnEngineStop();
638
639 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
640 {
641 m_UTSource.SetDefferedActive(false, 10.0);
642 }
643 }
644
645 override void EOnPostSimulate(IEntity other, float timeSlice)
646 {
647 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
648 {
649 if (m_UTSource.IsActive())
650 {
652 }
653 }
654 }
655
656 override int GetAnimInstance()
657 {
658 return VehicleAnimInstances.SEDAN;
659 }
660
661 override float GetTransportCameraDistance()
662 {
663 return 4.5;
664 }
665
666 override int GetSeatAnimationType(int posIdx)
667 {
668 switch (posIdx)
669 {
670 case 0:
671 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
672 case 1:
673 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
674 case 2:
675 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
676 case 3:
677 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
678 }
679
680 return 0;
681 }
682
683 // Override for car-specific light type
685 {
686 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
687 }
688
689 // Override for car-specific light type
691 {
692 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
693 }
694
696 {
697 if( !super.CanReleaseAttachment( attachment ) )
698 return false;
699
700 string attType = attachment.GetType();
701
702 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
703 {
704 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
705 return false;
706 }
707
708 return true;
709 }
710
711 override protected bool CanManipulateSpareWheel(string slotSelectionName)
712 {
713 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
714 }
715
716 override bool CanDisplayAttachmentCategory(string category_name)
717 {
718 //super
719 if (!super.CanDisplayAttachmentCategory(category_name))
720 return false;
721 //
722
723 category_name.ToLower();
724 if (category_name.Contains("engine"))
725 {
726 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
727 return false;
728 }
729
730 return true;
731 }
732
733 override bool CanDisplayCargo()
734 {
735 if ( !super.CanDisplayCargo() )
736 return false;
737
738 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
739 return false;
740
741 return true;
742 }
743
744 override int GetCarDoorsState( string slotType )
745 {
747
748 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
749 if (!carDoor)
750 {
751 return CarDoorState.DOORS_MISSING;
752 }
753
754 switch (slotType)
755 {
756 case "CivSedanDriverDoors":
757 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
758 break;
759
760 case "CivSedanCoDriverDoors":
761 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
762 break;
763
764 case "CivSedanCargo1Doors":
765 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
766 break;
767
768 case "CivSedanCargo2Doors":
769 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
770 break;
771
772 case "CivSedanTrunk":
773 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
774 break;
775
776 case "CivSedanHood":
777 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
778 break;
779 }
780
781 return CarDoorState.DOORS_MISSING;
782 }
783
784
785 override bool CrewCanGetThrough( int posIdx )
786 {
787 switch( posIdx )
788 {
789 case 0:
790 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
791 return false;
792
793 return true;
794 break;
795
796 case 1:
797 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
798 return false;
799
800 return true;
801 break;
802
803 case 2:
804 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
805 return false;
806
807 return true;
808 break;
809
810 case 3:
811 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
812 return false;
813
814 return true;
815 break;
816 }
817
818 return false;
819 }
820
821 override string GetDoorSelectionNameFromSeatPos(int posIdx)
822 {
823 switch( posIdx )
824 {
825 case 0:
826 return "doors_driver";
827 break;
828 case 1:
829 return "doors_codriver";
830 break;
831 case 2:
832 return "doors_cargo1";
833 break;
834 case 3:
835 return "doors_cargo2";
836 break;
837 }
838
839 return super.GetDoorSelectionNameFromSeatPos(posIdx);
840 }
841
842 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
843 {
844 switch( posIdx )
845 {
846 case 0:
847 return "CivSedanDriverDoors";
848 break;
849 case 1:
850 return "CivSedanCoDriverDoors";
851 break;
852 case 2:
853 return "CivSedanCargo1Doors";
854 break;
855 case 3:
856 return "CivSedanCargo2Doors";
857 break;
858 }
859
860 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
861 }
862
863 // 0 full ambient and engine sound
864 // 1 zero ambient and engine sound
865 override float OnSound(CarSoundCtrl ctrl, float oldValue)
866 {
867 switch (ctrl)
868 {
869 case CarSoundCtrl.DOORS:
870 float newValue = 0;
871 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
872 {
873 newValue += 0.25;
874 }
875
876 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
877 {
878 newValue += 0.25;
879 }
880
881 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
882 {
883 newValue += 0.25;
884 }
885
886 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
887 {
888 newValue += 0.25;
889 }
890
891 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
892 {
893 newValue -= 0.6;
894 }
895
896 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
897 {
898 newValue -= 0.6;
899 }
900
901 return Math.Clamp(newValue, 0, 1);
902 break;
903 }
904
905 return super.OnSound(ctrl, oldValue);
906 }
907
908 override string GetAnimSourceFromSelection(string selection)
909 {
910 switch (selection)
911 {
912 case "doors_driver":
913 return "DoorsDriver";
914 case "doors_codriver":
915 return "DoorsCoDriver";
916 case "doors_cargo1":
917 return "DoorsCargo1";
918 case "doors_cargo2":
919 return "DoorsCargo2";
920 case "doors_hood":
921 return "DoorsHood";
922 case "doors_trunk":
923 return "DoorsTrunk";
924 }
925
926 return "";
927 }
928
929 override bool IsVitalTruckBattery()
930 {
931 return false;
932 }
933
934 override bool IsVitalGlowPlug()
935 {
936 return false;
937 }
938
939 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
940 {
941 switch (currentSeat)
942 {
943 case 0:
944 return nextSeat == 1;
945
946 case 1:
947 return nextSeat == 0;
948
949 case 2:
950 return nextSeat == 3;
951
952 case 3:
953 return nextSeat == 2;
954 }
955
956 return false;
957 }
958
959 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
960 {
961 switch (pCurrentSeat)
962 {
963 case 0:
964 return pDoorsSelection == "DoorsDriver";
965
966 case 1:
967 return pDoorsSelection == "DoorsCoDriver";
968
969 case 2:
970 return pDoorsSelection == "DoorsCargo1";
971
972 case 3:
973 return pDoorsSelection == "DoorsCargo2";
974 }
975
976 return false;
977 }
978
979 override void OnDebugSpawn()
980 {
984
985 GetInventory().CreateInInventory("CivSedanWheel");
986 GetInventory().CreateInInventory("CivSedanWheel");
987 GetInventory().CreateInInventory("CivSedanWheel");
988 GetInventory().CreateInInventory("CivSedanWheel");
989
990 GetInventory().CreateInInventory("CivSedanDoors_Driver");
991 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
992 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
993 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
994 GetInventory().CreateInInventory("CivSedanHood");
995 GetInventory().CreateInInventory("CivSedanTrunk");
996
997 //-----IN CAR CARGO
998 GetInventory().CreateInInventory("CivSedanWheel");
999 GetInventory().CreateInInventory("CivSedanWheel");
1000 }
1001
1002 override float GetPushForceCoefficientMultiplier()
1003 {
1004 return 1.5;
1005 }
1006}
1007
1009{
1010 override void OnDebugSpawn()
1011 {
1015
1016 GetInventory().CreateInInventory("CivSedanWheel");
1017 GetInventory().CreateInInventory("CivSedanWheel");
1018 GetInventory().CreateInInventory("CivSedanWheel");
1019 GetInventory().CreateInInventory("CivSedanWheel");
1020
1021 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1022 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1023 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1024 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1025 GetInventory().CreateInInventory("CivSedanHood_Wine");
1026 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1027
1028 //-----IN CAR CARGO
1029 GetInventory().CreateInInventory("CivSedanWheel");
1030 GetInventory().CreateInInventory("CivSedanWheel");
1031 }
1032}
1033
1035{
1036 override void OnDebugSpawn()
1037 {
1041
1042 GetInventory().CreateInInventory("CivSedanWheel");
1043 GetInventory().CreateInInventory("CivSedanWheel");
1044 GetInventory().CreateInInventory("CivSedanWheel");
1045 GetInventory().CreateInInventory("CivSedanWheel");
1046
1047 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1048 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1049 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1050 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1051 GetInventory().CreateInInventory("CivSedanHood_Black");
1052 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1053
1054 //-----IN CAR CARGO
1055 GetInventory().CreateInInventory("CivSedanWheel");
1056 GetInventory().CreateInInventory("CivSedanWheel");
1057 }
1058}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Definition Car.c:4
void SpawnUniversalParts()
Definition CarScript.c:2637
CarDoorState TranslateAnimationPhaseToCarDoorState(string animation)
Definition CarScript.c:2336
CarDoorState
Definition CarScript.c:2
void SpawnAdditionalItems()
Definition CarScript.c:2675
string m_EngineStartOK
Sounds.
Definition CarScript.c:209
string m_CarDoorCloseSound
Definition CarScript.c:216
string m_EngineStartBattery
Definition CarScript.c:210
string m_EngineStartPlug
Definition CarScript.c:211
string m_EngineStartFuel
Definition CarScript.c:212
string m_CarHornShortSoundName
Definition CarScript.c:220
void FillUpCarFluids()
Definition CarScript.c:2705
string m_CarHornLongSoundName
Definition CarScript.c:221
string m_EngineStopFuel
Definition CarScript.c:213
string m_CarDoorOpenSound
Definition CarScript.c:215
override int GetCarDoorsState(string slotType)
Definition CivilianSedan.c:592
override bool CanDisplayAttachmentCategory(string category_name)
Definition CivilianSedan.c:564
override void EOnPostSimulate(IEntity other, float timeSlice)
Definition CivilianSedan.c:493
ref UniversalTemperatureSourceSettings m_UTSSettings
Definition CivilianSedan.c:432
class CivilianSedan extends CarScript OnDebugSpawn()
Definition CivilianSedan.c:430
override float GetTransportCameraDistance()
Definition CivilianSedan.c:509
override bool IsVitalGlowPlug()
Definition CivilianSedan.c:782
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Definition CivilianSedan.c:807
override bool CanDisplayCargo()
Definition CivilianSedan.c:581
override int GetAnimInstance()
Definition CivilianSedan.c:504
override bool CrewCanGetThrough(int posIdx)
Definition CivilianSedan.c:633
override CarLightBase CreateFrontLight()
Definition CivilianSedan.c:532
override CarRearLightBase CreateRearLight()
Definition CivilianSedan.c:538
override void EEInit()
Definition CivilianSedan.c:454
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Definition CivilianSedan.c:433
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Definition CivilianSedan.c:713
override bool IsVitalTruckBattery()
Definition CivilianSedan.c:777
override bool CanReleaseAttachment(EntityAI attachment)
Definition CivilianSedan.c:543
override void OnEngineStart()
Definition CivilianSedan.c:473
override string GetAnimSourceFromSelection(string selection)
Definition CivilianSedan.c:756
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Definition CivilianSedan.c:787
override float GetPushForceCoefficientMultiplier()
Definition CivilianSedan.c:850
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Definition CivilianSedan.c:669
override int GetSeatAnimationType(int posIdx)
Definition CivilianSedan.c:514
ref UniversalTemperatureSource m_UTSource
Definition CivilianSedan.c:431
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Definition CivilianSedan.c:690
bool CanManipulateSpareWheel(string slotSelectionName)
Definition CivilianSedan.c:559
override void OnEngineStop()
Definition CivilianSedan.c:483
void CivilianSedan()
Definition CivilianSedan.c:435
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Definition Hatchback_02.c:404
VehicleAnimInstances
Definition VehicleAnimInstances.c:2
Definition InventoryItem.c:496
Definition CarRearLightBase.c:2
Definition CivilianSedanRearLight.c:2
Definition CivilianSedan.c:455
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition Building.c:6
Definition constants.c:615
Definition EnEntity.c:165
Definition EnMath.c:7
Definition EntityAI.c:95
Definition PointLightBase.c:2
original Timer deletes m_params which is unwanted
Definition UniversalTemperatureSource.c:26
Definition UniversalTemperatureSourceLambdaBaseImpl.c:63
Definition UniversalTemperatureSource.c:2
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int STATE_RUINED
Definition constants.c:760
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.

◆ CanManipulateSpareWheel()

bool CanManipulateSpareWheel ( string slotSelectionName)
protected
560{
564
565 void CivilianSedan()
566 {
567 //m_dmgContactCoef = 0.065;
568
569 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
570 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
571 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
572 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
573 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
574
575 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
576 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
577
578 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
579 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
580
581 SetEnginePos("0 0.7 1.6");
582 }
583
584 override void EEInit()
585 {
586 super.EEInit();
587
588 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
589 {
591 m_UTSSettings.m_ManualUpdate = true;
592 m_UTSSettings.m_TemperatureMin = 0;
593 m_UTSSettings.m_TemperatureMax = 30;
594 m_UTSSettings.m_RangeFull = 0.5;
595 m_UTSSettings.m_RangeMax = 2;
596 m_UTSSettings.m_TemperatureCap = 25;
597
600 }
601 }
602
603 override void OnEngineStart()
604 {
605 super.OnEngineStart();
606
607 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
608 {
609 m_UTSource.SetDefferedActive(true, 20.0);
610 }
611 }
612
613 override void OnEngineStop()
614 {
615 super.OnEngineStop();
616
617 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
618 {
619 m_UTSource.SetDefferedActive(false, 10.0);
620 }
621 }
622
623 override void EOnPostSimulate(IEntity other, float timeSlice)
624 {
625 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
626 {
627 if (m_UTSource.IsActive())
628 {
630 }
631 }
632 }
633
634 override int GetAnimInstance()
635 {
636 return VehicleAnimInstances.SEDAN;
637 }
638
639 override float GetTransportCameraDistance()
640 {
641 return 4.5;
642 }
643
644 override int GetSeatAnimationType(int posIdx)
645 {
646 switch (posIdx)
647 {
648 case 0:
649 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
650 case 1:
651 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
652 case 2:
653 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
654 case 3:
655 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
656 }
657
658 return 0;
659 }
660
661 // Override for car-specific light type
663 {
664 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
665 }
666
667 // Override for car-specific light type
669 {
670 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
671 }
672
674 {
675 if( !super.CanReleaseAttachment( attachment ) )
676 return false;
677
678 string attType = attachment.GetType();
679
680 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
681 {
682 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
683 return false;
684 }
685
686 return true;
687 }
688
689 override protected bool CanManipulateSpareWheel(string slotSelectionName)
690 {
691 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
692 }
693
694 override bool CanDisplayAttachmentCategory(string category_name)
695 {
696 //super
697 if (!super.CanDisplayAttachmentCategory(category_name))
698 return false;
699 //
700
701 category_name.ToLower();
702 if (category_name.Contains("engine"))
703 {
704 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
705 return false;
706 }
707
708 return true;
709 }
710
711 override bool CanDisplayCargo()
712 {
713 if ( !super.CanDisplayCargo() )
714 return false;
715
716 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
717 return false;
718
719 return true;
720 }
721
722 override int GetCarDoorsState( string slotType )
723 {
725
726 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
727 if (!carDoor)
728 {
729 return CarDoorState.DOORS_MISSING;
730 }
731
732 switch (slotType)
733 {
734 case "CivSedanDriverDoors":
735 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
736 break;
737
738 case "CivSedanCoDriverDoors":
739 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
740 break;
741
742 case "CivSedanCargo1Doors":
743 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
744 break;
745
746 case "CivSedanCargo2Doors":
747 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
748 break;
749
750 case "CivSedanTrunk":
751 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
752 break;
753
754 case "CivSedanHood":
755 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
756 break;
757 }
758
759 return CarDoorState.DOORS_MISSING;
760 }
761
762
763 override bool CrewCanGetThrough( int posIdx )
764 {
765 switch( posIdx )
766 {
767 case 0:
768 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
769 return false;
770
771 return true;
772 break;
773
774 case 1:
775 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
776 return false;
777
778 return true;
779 break;
780
781 case 2:
782 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
783 return false;
784
785 return true;
786 break;
787
788 case 3:
789 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
790 return false;
791
792 return true;
793 break;
794 }
795
796 return false;
797 }
798
799 override string GetDoorSelectionNameFromSeatPos(int posIdx)
800 {
801 switch( posIdx )
802 {
803 case 0:
804 return "doors_driver";
805 break;
806 case 1:
807 return "doors_codriver";
808 break;
809 case 2:
810 return "doors_cargo1";
811 break;
812 case 3:
813 return "doors_cargo2";
814 break;
815 }
816
817 return super.GetDoorSelectionNameFromSeatPos(posIdx);
818 }
819
820 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
821 {
822 switch( posIdx )
823 {
824 case 0:
825 return "CivSedanDriverDoors";
826 break;
827 case 1:
828 return "CivSedanCoDriverDoors";
829 break;
830 case 2:
831 return "CivSedanCargo1Doors";
832 break;
833 case 3:
834 return "CivSedanCargo2Doors";
835 break;
836 }
837
838 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
839 }
840
841 // 0 full ambient and engine sound
842 // 1 zero ambient and engine sound
843 override float OnSound(CarSoundCtrl ctrl, float oldValue)
844 {
845 switch (ctrl)
846 {
847 case CarSoundCtrl.DOORS:
848 float newValue = 0;
849 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
850 {
851 newValue += 0.25;
852 }
853
854 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
855 {
856 newValue += 0.25;
857 }
858
859 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
860 {
861 newValue += 0.25;
862 }
863
864 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
865 {
866 newValue += 0.25;
867 }
868
869 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
870 {
871 newValue -= 0.6;
872 }
873
874 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
875 {
876 newValue -= 0.6;
877 }
878
879 return Math.Clamp(newValue, 0, 1);
880 break;
881 }
882
883 return super.OnSound(ctrl, oldValue);
884 }
885
886 override string GetAnimSourceFromSelection(string selection)
887 {
888 switch (selection)
889 {
890 case "doors_driver":
891 return "DoorsDriver";
892 case "doors_codriver":
893 return "DoorsCoDriver";
894 case "doors_cargo1":
895 return "DoorsCargo1";
896 case "doors_cargo2":
897 return "DoorsCargo2";
898 case "doors_hood":
899 return "DoorsHood";
900 case "doors_trunk":
901 return "DoorsTrunk";
902 }
903
904 return "";
905 }
906
907 override bool IsVitalTruckBattery()
908 {
909 return false;
910 }
911
912 override bool IsVitalGlowPlug()
913 {
914 return false;
915 }
916
917 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
918 {
919 switch (currentSeat)
920 {
921 case 0:
922 return nextSeat == 1;
923
924 case 1:
925 return nextSeat == 0;
926
927 case 2:
928 return nextSeat == 3;
929
930 case 3:
931 return nextSeat == 2;
932 }
933
934 return false;
935 }
936
937 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
938 {
939 switch (pCurrentSeat)
940 {
941 case 0:
942 return pDoorsSelection == "DoorsDriver";
943
944 case 1:
945 return pDoorsSelection == "DoorsCoDriver";
946
947 case 2:
948 return pDoorsSelection == "DoorsCargo1";
949
950 case 3:
951 return pDoorsSelection == "DoorsCargo2";
952 }
953
954 return false;
955 }
956
957 override void OnDebugSpawn()
958 {
962
963 GetInventory().CreateInInventory("CivSedanWheel");
964 GetInventory().CreateInInventory("CivSedanWheel");
965 GetInventory().CreateInInventory("CivSedanWheel");
966 GetInventory().CreateInInventory("CivSedanWheel");
967
968 GetInventory().CreateInInventory("CivSedanDoors_Driver");
969 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
970 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
971 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
972 GetInventory().CreateInInventory("CivSedanHood");
973 GetInventory().CreateInInventory("CivSedanTrunk");
974
975 //-----IN CAR CARGO
976 GetInventory().CreateInInventory("CivSedanWheel");
977 GetInventory().CreateInInventory("CivSedanWheel");
978 }
979
980 override float GetPushForceCoefficientMultiplier()
981 {
982 return 1.5;
983 }
984}
985
987{
988 override void OnDebugSpawn()
989 {
993
994 GetInventory().CreateInInventory("CivSedanWheel");
995 GetInventory().CreateInInventory("CivSedanWheel");
996 GetInventory().CreateInInventory("CivSedanWheel");
997 GetInventory().CreateInInventory("CivSedanWheel");
998
999 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1000 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1001 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1002 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1003 GetInventory().CreateInInventory("CivSedanHood_Wine");
1004 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1005
1006 //-----IN CAR CARGO
1007 GetInventory().CreateInInventory("CivSedanWheel");
1008 GetInventory().CreateInInventory("CivSedanWheel");
1009 }
1010}
1011
1013{
1014 override void OnDebugSpawn()
1015 {
1019
1020 GetInventory().CreateInInventory("CivSedanWheel");
1021 GetInventory().CreateInInventory("CivSedanWheel");
1022 GetInventory().CreateInInventory("CivSedanWheel");
1023 GetInventory().CreateInInventory("CivSedanWheel");
1024
1025 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1026 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1027 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1028 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1029 GetInventory().CreateInInventory("CivSedanHood_Black");
1030 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1031
1032 //-----IN CAR CARGO
1033 GetInventory().CreateInInventory("CivSedanWheel");
1034 GetInventory().CreateInInventory("CivSedanWheel");
1035 }
1036}

◆ CanReachDoorsFromSeat()

override bool CanReachDoorsFromSeat ( string pDoorsSelection,
int pCurrentSeat )
protected
808{
812
813 void CivilianSedan()
814 {
815 //m_dmgContactCoef = 0.065;
816
817 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
818 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
819 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
820 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
821 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
822
823 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
824 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
825
826 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
827 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
828
829 SetEnginePos("0 0.7 1.6");
830 }
831
832 override void EEInit()
833 {
834 super.EEInit();
835
836 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
837 {
839 m_UTSSettings.m_ManualUpdate = true;
840 m_UTSSettings.m_TemperatureMin = 0;
841 m_UTSSettings.m_TemperatureMax = 30;
842 m_UTSSettings.m_RangeFull = 0.5;
843 m_UTSSettings.m_RangeMax = 2;
844 m_UTSSettings.m_TemperatureCap = 25;
845
848 }
849 }
850
851 override void OnEngineStart()
852 {
853 super.OnEngineStart();
854
855 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
856 {
857 m_UTSource.SetDefferedActive(true, 20.0);
858 }
859 }
860
861 override void OnEngineStop()
862 {
863 super.OnEngineStop();
864
865 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
866 {
867 m_UTSource.SetDefferedActive(false, 10.0);
868 }
869 }
870
871 override void EOnPostSimulate(IEntity other, float timeSlice)
872 {
873 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
874 {
875 if (m_UTSource.IsActive())
876 {
878 }
879 }
880 }
881
882 override int GetAnimInstance()
883 {
884 return VehicleAnimInstances.SEDAN;
885 }
886
887 override float GetTransportCameraDistance()
888 {
889 return 4.5;
890 }
891
892 override int GetSeatAnimationType(int posIdx)
893 {
894 switch (posIdx)
895 {
896 case 0:
897 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
898 case 1:
899 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
900 case 2:
901 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
902 case 3:
903 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
904 }
905
906 return 0;
907 }
908
909 // Override for car-specific light type
911 {
912 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
913 }
914
915 // Override for car-specific light type
917 {
918 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
919 }
920
922 {
923 if( !super.CanReleaseAttachment( attachment ) )
924 return false;
925
926 string attType = attachment.GetType();
927
928 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
929 {
930 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
931 return false;
932 }
933
934 return true;
935 }
936
937 override protected bool CanManipulateSpareWheel(string slotSelectionName)
938 {
939 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
940 }
941
942 override bool CanDisplayAttachmentCategory(string category_name)
943 {
944 //super
945 if (!super.CanDisplayAttachmentCategory(category_name))
946 return false;
947 //
948
949 category_name.ToLower();
950 if (category_name.Contains("engine"))
951 {
952 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
953 return false;
954 }
955
956 return true;
957 }
958
959 override bool CanDisplayCargo()
960 {
961 if ( !super.CanDisplayCargo() )
962 return false;
963
964 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
965 return false;
966
967 return true;
968 }
969
970 override int GetCarDoorsState( string slotType )
971 {
973
974 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
975 if (!carDoor)
976 {
977 return CarDoorState.DOORS_MISSING;
978 }
979
980 switch (slotType)
981 {
982 case "CivSedanDriverDoors":
983 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
984 break;
985
986 case "CivSedanCoDriverDoors":
987 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
988 break;
989
990 case "CivSedanCargo1Doors":
991 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
992 break;
993
994 case "CivSedanCargo2Doors":
995 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
996 break;
997
998 case "CivSedanTrunk":
999 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1000 break;
1001
1002 case "CivSedanHood":
1003 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1004 break;
1005 }
1006
1007 return CarDoorState.DOORS_MISSING;
1008 }
1009
1010
1011 override bool CrewCanGetThrough( int posIdx )
1012 {
1013 switch( posIdx )
1014 {
1015 case 0:
1016 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
1017 return false;
1018
1019 return true;
1020 break;
1021
1022 case 1:
1023 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
1024 return false;
1025
1026 return true;
1027 break;
1028
1029 case 2:
1030 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1031 return false;
1032
1033 return true;
1034 break;
1035
1036 case 3:
1037 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
1038 return false;
1039
1040 return true;
1041 break;
1042 }
1043
1044 return false;
1045 }
1046
1047 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1048 {
1049 switch( posIdx )
1050 {
1051 case 0:
1052 return "doors_driver";
1053 break;
1054 case 1:
1055 return "doors_codriver";
1056 break;
1057 case 2:
1058 return "doors_cargo1";
1059 break;
1060 case 3:
1061 return "doors_cargo2";
1062 break;
1063 }
1064
1065 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1066 }
1067
1068 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1069 {
1070 switch( posIdx )
1071 {
1072 case 0:
1073 return "CivSedanDriverDoors";
1074 break;
1075 case 1:
1076 return "CivSedanCoDriverDoors";
1077 break;
1078 case 2:
1079 return "CivSedanCargo1Doors";
1080 break;
1081 case 3:
1082 return "CivSedanCargo2Doors";
1083 break;
1084 }
1085
1086 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1087 }
1088
1089 // 0 full ambient and engine sound
1090 // 1 zero ambient and engine sound
1091 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1092 {
1093 switch (ctrl)
1094 {
1095 case CarSoundCtrl.DOORS:
1096 float newValue = 0;
1097 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1098 {
1099 newValue += 0.25;
1100 }
1101
1102 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1103 {
1104 newValue += 0.25;
1105 }
1106
1107 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1108 {
1109 newValue += 0.25;
1110 }
1111
1112 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1113 {
1114 newValue += 0.25;
1115 }
1116
1117 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1118 {
1119 newValue -= 0.6;
1120 }
1121
1122 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1123 {
1124 newValue -= 0.6;
1125 }
1126
1127 return Math.Clamp(newValue, 0, 1);
1128 break;
1129 }
1130
1131 return super.OnSound(ctrl, oldValue);
1132 }
1133
1134 override string GetAnimSourceFromSelection(string selection)
1135 {
1136 switch (selection)
1137 {
1138 case "doors_driver":
1139 return "DoorsDriver";
1140 case "doors_codriver":
1141 return "DoorsCoDriver";
1142 case "doors_cargo1":
1143 return "DoorsCargo1";
1144 case "doors_cargo2":
1145 return "DoorsCargo2";
1146 case "doors_hood":
1147 return "DoorsHood";
1148 case "doors_trunk":
1149 return "DoorsTrunk";
1150 }
1151
1152 return "";
1153 }
1154
1155 override bool IsVitalTruckBattery()
1156 {
1157 return false;
1158 }
1159
1160 override bool IsVitalGlowPlug()
1161 {
1162 return false;
1163 }
1164
1165 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1166 {
1167 switch (currentSeat)
1168 {
1169 case 0:
1170 return nextSeat == 1;
1171
1172 case 1:
1173 return nextSeat == 0;
1174
1175 case 2:
1176 return nextSeat == 3;
1177
1178 case 3:
1179 return nextSeat == 2;
1180 }
1181
1182 return false;
1183 }
1184
1185 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1186 {
1187 switch (pCurrentSeat)
1188 {
1189 case 0:
1190 return pDoorsSelection == "DoorsDriver";
1191
1192 case 1:
1193 return pDoorsSelection == "DoorsCoDriver";
1194
1195 case 2:
1196 return pDoorsSelection == "DoorsCargo1";
1197
1198 case 3:
1199 return pDoorsSelection == "DoorsCargo2";
1200 }
1201
1202 return false;
1203 }
1204
1205 override void OnDebugSpawn()
1206 {
1210
1211 GetInventory().CreateInInventory("CivSedanWheel");
1212 GetInventory().CreateInInventory("CivSedanWheel");
1213 GetInventory().CreateInInventory("CivSedanWheel");
1214 GetInventory().CreateInInventory("CivSedanWheel");
1215
1216 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1217 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1218 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1219 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1220 GetInventory().CreateInInventory("CivSedanHood");
1221 GetInventory().CreateInInventory("CivSedanTrunk");
1222
1223 //-----IN CAR CARGO
1224 GetInventory().CreateInInventory("CivSedanWheel");
1225 GetInventory().CreateInInventory("CivSedanWheel");
1226 }
1227
1228 override float GetPushForceCoefficientMultiplier()
1229 {
1230 return 1.5;
1231 }
1232}
1233
1235{
1236 override void OnDebugSpawn()
1237 {
1241
1242 GetInventory().CreateInInventory("CivSedanWheel");
1243 GetInventory().CreateInInventory("CivSedanWheel");
1244 GetInventory().CreateInInventory("CivSedanWheel");
1245 GetInventory().CreateInInventory("CivSedanWheel");
1246
1247 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1248 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1249 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1250 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1251 GetInventory().CreateInInventory("CivSedanHood_Wine");
1252 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1253
1254 //-----IN CAR CARGO
1255 GetInventory().CreateInInventory("CivSedanWheel");
1256 GetInventory().CreateInInventory("CivSedanWheel");
1257 }
1258}
1259
1261{
1262 override void OnDebugSpawn()
1263 {
1267
1268 GetInventory().CreateInInventory("CivSedanWheel");
1269 GetInventory().CreateInInventory("CivSedanWheel");
1270 GetInventory().CreateInInventory("CivSedanWheel");
1271 GetInventory().CreateInInventory("CivSedanWheel");
1272
1273 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1274 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1275 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1276 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1277 GetInventory().CreateInInventory("CivSedanHood_Black");
1278 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1279
1280 //-----IN CAR CARGO
1281 GetInventory().CreateInInventory("CivSedanWheel");
1282 GetInventory().CreateInInventory("CivSedanWheel");
1283 }
1284}

◆ CanReachSeatFromSeat()

override bool CanReachSeatFromSeat ( int currentSeat,
int nextSeat )
protected
788{
792
793 void CivilianSedan()
794 {
795 //m_dmgContactCoef = 0.065;
796
797 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
798 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
799 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
800 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
801 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
802
803 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
804 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
805
806 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
807 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
808
809 SetEnginePos("0 0.7 1.6");
810 }
811
812 override void EEInit()
813 {
814 super.EEInit();
815
816 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
817 {
819 m_UTSSettings.m_ManualUpdate = true;
820 m_UTSSettings.m_TemperatureMin = 0;
821 m_UTSSettings.m_TemperatureMax = 30;
822 m_UTSSettings.m_RangeFull = 0.5;
823 m_UTSSettings.m_RangeMax = 2;
824 m_UTSSettings.m_TemperatureCap = 25;
825
828 }
829 }
830
831 override void OnEngineStart()
832 {
833 super.OnEngineStart();
834
835 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
836 {
837 m_UTSource.SetDefferedActive(true, 20.0);
838 }
839 }
840
841 override void OnEngineStop()
842 {
843 super.OnEngineStop();
844
845 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
846 {
847 m_UTSource.SetDefferedActive(false, 10.0);
848 }
849 }
850
851 override void EOnPostSimulate(IEntity other, float timeSlice)
852 {
853 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
854 {
855 if (m_UTSource.IsActive())
856 {
858 }
859 }
860 }
861
862 override int GetAnimInstance()
863 {
864 return VehicleAnimInstances.SEDAN;
865 }
866
867 override float GetTransportCameraDistance()
868 {
869 return 4.5;
870 }
871
872 override int GetSeatAnimationType(int posIdx)
873 {
874 switch (posIdx)
875 {
876 case 0:
877 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
878 case 1:
879 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
880 case 2:
881 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
882 case 3:
883 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
884 }
885
886 return 0;
887 }
888
889 // Override for car-specific light type
891 {
892 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
893 }
894
895 // Override for car-specific light type
897 {
898 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
899 }
900
902 {
903 if( !super.CanReleaseAttachment( attachment ) )
904 return false;
905
906 string attType = attachment.GetType();
907
908 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
909 {
910 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
911 return false;
912 }
913
914 return true;
915 }
916
917 override protected bool CanManipulateSpareWheel(string slotSelectionName)
918 {
919 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
920 }
921
922 override bool CanDisplayAttachmentCategory(string category_name)
923 {
924 //super
925 if (!super.CanDisplayAttachmentCategory(category_name))
926 return false;
927 //
928
929 category_name.ToLower();
930 if (category_name.Contains("engine"))
931 {
932 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
933 return false;
934 }
935
936 return true;
937 }
938
939 override bool CanDisplayCargo()
940 {
941 if ( !super.CanDisplayCargo() )
942 return false;
943
944 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
945 return false;
946
947 return true;
948 }
949
950 override int GetCarDoorsState( string slotType )
951 {
953
954 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
955 if (!carDoor)
956 {
957 return CarDoorState.DOORS_MISSING;
958 }
959
960 switch (slotType)
961 {
962 case "CivSedanDriverDoors":
963 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
964 break;
965
966 case "CivSedanCoDriverDoors":
967 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
968 break;
969
970 case "CivSedanCargo1Doors":
971 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
972 break;
973
974 case "CivSedanCargo2Doors":
975 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
976 break;
977
978 case "CivSedanTrunk":
979 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
980 break;
981
982 case "CivSedanHood":
983 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
984 break;
985 }
986
987 return CarDoorState.DOORS_MISSING;
988 }
989
990
991 override bool CrewCanGetThrough( int posIdx )
992 {
993 switch( posIdx )
994 {
995 case 0:
996 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
997 return false;
998
999 return true;
1000 break;
1001
1002 case 1:
1003 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
1004 return false;
1005
1006 return true;
1007 break;
1008
1009 case 2:
1010 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1011 return false;
1012
1013 return true;
1014 break;
1015
1016 case 3:
1017 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
1018 return false;
1019
1020 return true;
1021 break;
1022 }
1023
1024 return false;
1025 }
1026
1027 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1028 {
1029 switch( posIdx )
1030 {
1031 case 0:
1032 return "doors_driver";
1033 break;
1034 case 1:
1035 return "doors_codriver";
1036 break;
1037 case 2:
1038 return "doors_cargo1";
1039 break;
1040 case 3:
1041 return "doors_cargo2";
1042 break;
1043 }
1044
1045 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1046 }
1047
1048 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1049 {
1050 switch( posIdx )
1051 {
1052 case 0:
1053 return "CivSedanDriverDoors";
1054 break;
1055 case 1:
1056 return "CivSedanCoDriverDoors";
1057 break;
1058 case 2:
1059 return "CivSedanCargo1Doors";
1060 break;
1061 case 3:
1062 return "CivSedanCargo2Doors";
1063 break;
1064 }
1065
1066 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1067 }
1068
1069 // 0 full ambient and engine sound
1070 // 1 zero ambient and engine sound
1071 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1072 {
1073 switch (ctrl)
1074 {
1075 case CarSoundCtrl.DOORS:
1076 float newValue = 0;
1077 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1078 {
1079 newValue += 0.25;
1080 }
1081
1082 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1083 {
1084 newValue += 0.25;
1085 }
1086
1087 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1088 {
1089 newValue += 0.25;
1090 }
1091
1092 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1093 {
1094 newValue += 0.25;
1095 }
1096
1097 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1098 {
1099 newValue -= 0.6;
1100 }
1101
1102 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1103 {
1104 newValue -= 0.6;
1105 }
1106
1107 return Math.Clamp(newValue, 0, 1);
1108 break;
1109 }
1110
1111 return super.OnSound(ctrl, oldValue);
1112 }
1113
1114 override string GetAnimSourceFromSelection(string selection)
1115 {
1116 switch (selection)
1117 {
1118 case "doors_driver":
1119 return "DoorsDriver";
1120 case "doors_codriver":
1121 return "DoorsCoDriver";
1122 case "doors_cargo1":
1123 return "DoorsCargo1";
1124 case "doors_cargo2":
1125 return "DoorsCargo2";
1126 case "doors_hood":
1127 return "DoorsHood";
1128 case "doors_trunk":
1129 return "DoorsTrunk";
1130 }
1131
1132 return "";
1133 }
1134
1135 override bool IsVitalTruckBattery()
1136 {
1137 return false;
1138 }
1139
1140 override bool IsVitalGlowPlug()
1141 {
1142 return false;
1143 }
1144
1145 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1146 {
1147 switch (currentSeat)
1148 {
1149 case 0:
1150 return nextSeat == 1;
1151
1152 case 1:
1153 return nextSeat == 0;
1154
1155 case 2:
1156 return nextSeat == 3;
1157
1158 case 3:
1159 return nextSeat == 2;
1160 }
1161
1162 return false;
1163 }
1164
1165 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1166 {
1167 switch (pCurrentSeat)
1168 {
1169 case 0:
1170 return pDoorsSelection == "DoorsDriver";
1171
1172 case 1:
1173 return pDoorsSelection == "DoorsCoDriver";
1174
1175 case 2:
1176 return pDoorsSelection == "DoorsCargo1";
1177
1178 case 3:
1179 return pDoorsSelection == "DoorsCargo2";
1180 }
1181
1182 return false;
1183 }
1184
1185 override void OnDebugSpawn()
1186 {
1190
1191 GetInventory().CreateInInventory("CivSedanWheel");
1192 GetInventory().CreateInInventory("CivSedanWheel");
1193 GetInventory().CreateInInventory("CivSedanWheel");
1194 GetInventory().CreateInInventory("CivSedanWheel");
1195
1196 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1197 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1198 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1199 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1200 GetInventory().CreateInInventory("CivSedanHood");
1201 GetInventory().CreateInInventory("CivSedanTrunk");
1202
1203 //-----IN CAR CARGO
1204 GetInventory().CreateInInventory("CivSedanWheel");
1205 GetInventory().CreateInInventory("CivSedanWheel");
1206 }
1207
1208 override float GetPushForceCoefficientMultiplier()
1209 {
1210 return 1.5;
1211 }
1212}
1213
1215{
1216 override void OnDebugSpawn()
1217 {
1221
1222 GetInventory().CreateInInventory("CivSedanWheel");
1223 GetInventory().CreateInInventory("CivSedanWheel");
1224 GetInventory().CreateInInventory("CivSedanWheel");
1225 GetInventory().CreateInInventory("CivSedanWheel");
1226
1227 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1228 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1229 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1230 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1231 GetInventory().CreateInInventory("CivSedanHood_Wine");
1232 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1233
1234 //-----IN CAR CARGO
1235 GetInventory().CreateInInventory("CivSedanWheel");
1236 GetInventory().CreateInInventory("CivSedanWheel");
1237 }
1238}
1239
1241{
1242 override void OnDebugSpawn()
1243 {
1247
1248 GetInventory().CreateInInventory("CivSedanWheel");
1249 GetInventory().CreateInInventory("CivSedanWheel");
1250 GetInventory().CreateInInventory("CivSedanWheel");
1251 GetInventory().CreateInInventory("CivSedanWheel");
1252
1253 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1254 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1255 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1256 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1257 GetInventory().CreateInInventory("CivSedanHood_Black");
1258 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1259
1260 //-----IN CAR CARGO
1261 GetInventory().CreateInInventory("CivSedanWheel");
1262 GetInventory().CreateInInventory("CivSedanWheel");
1263 }
1264}

◆ CanReleaseAttachment()

override bool CanReleaseAttachment ( EntityAI attachment)
protected
544{
548
549 void CivilianSedan()
550 {
551 //m_dmgContactCoef = 0.065;
552
553 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
554 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
555 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
556 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
557 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
558
559 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
560 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
561
562 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
563 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
564
565 SetEnginePos("0 0.7 1.6");
566 }
567
568 override void EEInit()
569 {
570 super.EEInit();
571
572 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
573 {
575 m_UTSSettings.m_ManualUpdate = true;
576 m_UTSSettings.m_TemperatureMin = 0;
577 m_UTSSettings.m_TemperatureMax = 30;
578 m_UTSSettings.m_RangeFull = 0.5;
579 m_UTSSettings.m_RangeMax = 2;
580 m_UTSSettings.m_TemperatureCap = 25;
581
584 }
585 }
586
587 override void OnEngineStart()
588 {
589 super.OnEngineStart();
590
591 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
592 {
593 m_UTSource.SetDefferedActive(true, 20.0);
594 }
595 }
596
597 override void OnEngineStop()
598 {
599 super.OnEngineStop();
600
601 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
602 {
603 m_UTSource.SetDefferedActive(false, 10.0);
604 }
605 }
606
607 override void EOnPostSimulate(IEntity other, float timeSlice)
608 {
609 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
610 {
611 if (m_UTSource.IsActive())
612 {
614 }
615 }
616 }
617
618 override int GetAnimInstance()
619 {
620 return VehicleAnimInstances.SEDAN;
621 }
622
623 override float GetTransportCameraDistance()
624 {
625 return 4.5;
626 }
627
628 override int GetSeatAnimationType(int posIdx)
629 {
630 switch (posIdx)
631 {
632 case 0:
633 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
634 case 1:
635 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
636 case 2:
637 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
638 case 3:
639 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
640 }
641
642 return 0;
643 }
644
645 // Override for car-specific light type
647 {
648 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
649 }
650
651 // Override for car-specific light type
653 {
654 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
655 }
656
658 {
659 if( !super.CanReleaseAttachment( attachment ) )
660 return false;
661
662 string attType = attachment.GetType();
663
664 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
665 {
666 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
667 return false;
668 }
669
670 return true;
671 }
672
673 override protected bool CanManipulateSpareWheel(string slotSelectionName)
674 {
675 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
676 }
677
678 override bool CanDisplayAttachmentCategory(string category_name)
679 {
680 //super
681 if (!super.CanDisplayAttachmentCategory(category_name))
682 return false;
683 //
684
685 category_name.ToLower();
686 if (category_name.Contains("engine"))
687 {
688 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
689 return false;
690 }
691
692 return true;
693 }
694
695 override bool CanDisplayCargo()
696 {
697 if ( !super.CanDisplayCargo() )
698 return false;
699
700 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
701 return false;
702
703 return true;
704 }
705
706 override int GetCarDoorsState( string slotType )
707 {
709
710 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
711 if (!carDoor)
712 {
713 return CarDoorState.DOORS_MISSING;
714 }
715
716 switch (slotType)
717 {
718 case "CivSedanDriverDoors":
719 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
720 break;
721
722 case "CivSedanCoDriverDoors":
723 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
724 break;
725
726 case "CivSedanCargo1Doors":
727 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
728 break;
729
730 case "CivSedanCargo2Doors":
731 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
732 break;
733
734 case "CivSedanTrunk":
735 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
736 break;
737
738 case "CivSedanHood":
739 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
740 break;
741 }
742
743 return CarDoorState.DOORS_MISSING;
744 }
745
746
747 override bool CrewCanGetThrough( int posIdx )
748 {
749 switch( posIdx )
750 {
751 case 0:
752 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
753 return false;
754
755 return true;
756 break;
757
758 case 1:
759 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
760 return false;
761
762 return true;
763 break;
764
765 case 2:
766 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
767 return false;
768
769 return true;
770 break;
771
772 case 3:
773 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
774 return false;
775
776 return true;
777 break;
778 }
779
780 return false;
781 }
782
783 override string GetDoorSelectionNameFromSeatPos(int posIdx)
784 {
785 switch( posIdx )
786 {
787 case 0:
788 return "doors_driver";
789 break;
790 case 1:
791 return "doors_codriver";
792 break;
793 case 2:
794 return "doors_cargo1";
795 break;
796 case 3:
797 return "doors_cargo2";
798 break;
799 }
800
801 return super.GetDoorSelectionNameFromSeatPos(posIdx);
802 }
803
804 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
805 {
806 switch( posIdx )
807 {
808 case 0:
809 return "CivSedanDriverDoors";
810 break;
811 case 1:
812 return "CivSedanCoDriverDoors";
813 break;
814 case 2:
815 return "CivSedanCargo1Doors";
816 break;
817 case 3:
818 return "CivSedanCargo2Doors";
819 break;
820 }
821
822 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
823 }
824
825 // 0 full ambient and engine sound
826 // 1 zero ambient and engine sound
827 override float OnSound(CarSoundCtrl ctrl, float oldValue)
828 {
829 switch (ctrl)
830 {
831 case CarSoundCtrl.DOORS:
832 float newValue = 0;
833 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
834 {
835 newValue += 0.25;
836 }
837
838 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
839 {
840 newValue += 0.25;
841 }
842
843 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
844 {
845 newValue += 0.25;
846 }
847
848 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
849 {
850 newValue += 0.25;
851 }
852
853 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
854 {
855 newValue -= 0.6;
856 }
857
858 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
859 {
860 newValue -= 0.6;
861 }
862
863 return Math.Clamp(newValue, 0, 1);
864 break;
865 }
866
867 return super.OnSound(ctrl, oldValue);
868 }
869
870 override string GetAnimSourceFromSelection(string selection)
871 {
872 switch (selection)
873 {
874 case "doors_driver":
875 return "DoorsDriver";
876 case "doors_codriver":
877 return "DoorsCoDriver";
878 case "doors_cargo1":
879 return "DoorsCargo1";
880 case "doors_cargo2":
881 return "DoorsCargo2";
882 case "doors_hood":
883 return "DoorsHood";
884 case "doors_trunk":
885 return "DoorsTrunk";
886 }
887
888 return "";
889 }
890
891 override bool IsVitalTruckBattery()
892 {
893 return false;
894 }
895
896 override bool IsVitalGlowPlug()
897 {
898 return false;
899 }
900
901 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
902 {
903 switch (currentSeat)
904 {
905 case 0:
906 return nextSeat == 1;
907
908 case 1:
909 return nextSeat == 0;
910
911 case 2:
912 return nextSeat == 3;
913
914 case 3:
915 return nextSeat == 2;
916 }
917
918 return false;
919 }
920
921 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
922 {
923 switch (pCurrentSeat)
924 {
925 case 0:
926 return pDoorsSelection == "DoorsDriver";
927
928 case 1:
929 return pDoorsSelection == "DoorsCoDriver";
930
931 case 2:
932 return pDoorsSelection == "DoorsCargo1";
933
934 case 3:
935 return pDoorsSelection == "DoorsCargo2";
936 }
937
938 return false;
939 }
940
941 override void OnDebugSpawn()
942 {
946
947 GetInventory().CreateInInventory("CivSedanWheel");
948 GetInventory().CreateInInventory("CivSedanWheel");
949 GetInventory().CreateInInventory("CivSedanWheel");
950 GetInventory().CreateInInventory("CivSedanWheel");
951
952 GetInventory().CreateInInventory("CivSedanDoors_Driver");
953 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
954 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
955 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
956 GetInventory().CreateInInventory("CivSedanHood");
957 GetInventory().CreateInInventory("CivSedanTrunk");
958
959 //-----IN CAR CARGO
960 GetInventory().CreateInInventory("CivSedanWheel");
961 GetInventory().CreateInInventory("CivSedanWheel");
962 }
963
964 override float GetPushForceCoefficientMultiplier()
965 {
966 return 1.5;
967 }
968}
969
971{
972 override void OnDebugSpawn()
973 {
977
978 GetInventory().CreateInInventory("CivSedanWheel");
979 GetInventory().CreateInInventory("CivSedanWheel");
980 GetInventory().CreateInInventory("CivSedanWheel");
981 GetInventory().CreateInInventory("CivSedanWheel");
982
983 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
984 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
985 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
986 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
987 GetInventory().CreateInInventory("CivSedanHood_Wine");
988 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
989
990 //-----IN CAR CARGO
991 GetInventory().CreateInInventory("CivSedanWheel");
992 GetInventory().CreateInInventory("CivSedanWheel");
993 }
994}
995
997{
998 override void OnDebugSpawn()
999 {
1003
1004 GetInventory().CreateInInventory("CivSedanWheel");
1005 GetInventory().CreateInInventory("CivSedanWheel");
1006 GetInventory().CreateInInventory("CivSedanWheel");
1007 GetInventory().CreateInInventory("CivSedanWheel");
1008
1009 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1010 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1011 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1012 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1013 GetInventory().CreateInInventory("CivSedanHood_Black");
1014 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1015
1016 //-----IN CAR CARGO
1017 GetInventory().CreateInInventory("CivSedanWheel");
1018 GetInventory().CreateInInventory("CivSedanWheel");
1019 }
1020}

◆ CivilianSedan()

void CivilianSedan ( )
protected

◆ CreateFrontLight()

override CarLightBase CreateFrontLight ( )
protected
533{
537
538 void CivilianSedan()
539 {
540 //m_dmgContactCoef = 0.065;
541
542 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
543 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
544 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
545 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
546 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
547
548 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
549 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
550
551 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
552 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
553
554 SetEnginePos("0 0.7 1.6");
555 }
556
557 override void EEInit()
558 {
559 super.EEInit();
560
561 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
562 {
564 m_UTSSettings.m_ManualUpdate = true;
565 m_UTSSettings.m_TemperatureMin = 0;
566 m_UTSSettings.m_TemperatureMax = 30;
567 m_UTSSettings.m_RangeFull = 0.5;
568 m_UTSSettings.m_RangeMax = 2;
569 m_UTSSettings.m_TemperatureCap = 25;
570
573 }
574 }
575
576 override void OnEngineStart()
577 {
578 super.OnEngineStart();
579
580 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
581 {
582 m_UTSource.SetDefferedActive(true, 20.0);
583 }
584 }
585
586 override void OnEngineStop()
587 {
588 super.OnEngineStop();
589
590 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
591 {
592 m_UTSource.SetDefferedActive(false, 10.0);
593 }
594 }
595
596 override void EOnPostSimulate(IEntity other, float timeSlice)
597 {
598 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
599 {
600 if (m_UTSource.IsActive())
601 {
603 }
604 }
605 }
606
607 override int GetAnimInstance()
608 {
609 return VehicleAnimInstances.SEDAN;
610 }
611
612 override float GetTransportCameraDistance()
613 {
614 return 4.5;
615 }
616
617 override int GetSeatAnimationType(int posIdx)
618 {
619 switch (posIdx)
620 {
621 case 0:
622 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
623 case 1:
624 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
625 case 2:
626 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
627 case 3:
628 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
629 }
630
631 return 0;
632 }
633
634 // Override for car-specific light type
636 {
637 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
638 }
639
640 // Override for car-specific light type
642 {
643 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
644 }
645
647 {
648 if( !super.CanReleaseAttachment( attachment ) )
649 return false;
650
651 string attType = attachment.GetType();
652
653 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
654 {
655 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
656 return false;
657 }
658
659 return true;
660 }
661
662 override protected bool CanManipulateSpareWheel(string slotSelectionName)
663 {
664 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
665 }
666
667 override bool CanDisplayAttachmentCategory(string category_name)
668 {
669 //super
670 if (!super.CanDisplayAttachmentCategory(category_name))
671 return false;
672 //
673
674 category_name.ToLower();
675 if (category_name.Contains("engine"))
676 {
677 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
678 return false;
679 }
680
681 return true;
682 }
683
684 override bool CanDisplayCargo()
685 {
686 if ( !super.CanDisplayCargo() )
687 return false;
688
689 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
690 return false;
691
692 return true;
693 }
694
695 override int GetCarDoorsState( string slotType )
696 {
698
699 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
700 if (!carDoor)
701 {
702 return CarDoorState.DOORS_MISSING;
703 }
704
705 switch (slotType)
706 {
707 case "CivSedanDriverDoors":
708 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
709 break;
710
711 case "CivSedanCoDriverDoors":
712 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
713 break;
714
715 case "CivSedanCargo1Doors":
716 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
717 break;
718
719 case "CivSedanCargo2Doors":
720 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
721 break;
722
723 case "CivSedanTrunk":
724 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
725 break;
726
727 case "CivSedanHood":
728 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
729 break;
730 }
731
732 return CarDoorState.DOORS_MISSING;
733 }
734
735
736 override bool CrewCanGetThrough( int posIdx )
737 {
738 switch( posIdx )
739 {
740 case 0:
741 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
742 return false;
743
744 return true;
745 break;
746
747 case 1:
748 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
749 return false;
750
751 return true;
752 break;
753
754 case 2:
755 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
756 return false;
757
758 return true;
759 break;
760
761 case 3:
762 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
763 return false;
764
765 return true;
766 break;
767 }
768
769 return false;
770 }
771
772 override string GetDoorSelectionNameFromSeatPos(int posIdx)
773 {
774 switch( posIdx )
775 {
776 case 0:
777 return "doors_driver";
778 break;
779 case 1:
780 return "doors_codriver";
781 break;
782 case 2:
783 return "doors_cargo1";
784 break;
785 case 3:
786 return "doors_cargo2";
787 break;
788 }
789
790 return super.GetDoorSelectionNameFromSeatPos(posIdx);
791 }
792
793 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
794 {
795 switch( posIdx )
796 {
797 case 0:
798 return "CivSedanDriverDoors";
799 break;
800 case 1:
801 return "CivSedanCoDriverDoors";
802 break;
803 case 2:
804 return "CivSedanCargo1Doors";
805 break;
806 case 3:
807 return "CivSedanCargo2Doors";
808 break;
809 }
810
811 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
812 }
813
814 // 0 full ambient and engine sound
815 // 1 zero ambient and engine sound
816 override float OnSound(CarSoundCtrl ctrl, float oldValue)
817 {
818 switch (ctrl)
819 {
820 case CarSoundCtrl.DOORS:
821 float newValue = 0;
822 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
823 {
824 newValue += 0.25;
825 }
826
827 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
828 {
829 newValue += 0.25;
830 }
831
832 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
833 {
834 newValue += 0.25;
835 }
836
837 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
838 {
839 newValue += 0.25;
840 }
841
842 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
843 {
844 newValue -= 0.6;
845 }
846
847 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
848 {
849 newValue -= 0.6;
850 }
851
852 return Math.Clamp(newValue, 0, 1);
853 break;
854 }
855
856 return super.OnSound(ctrl, oldValue);
857 }
858
859 override string GetAnimSourceFromSelection(string selection)
860 {
861 switch (selection)
862 {
863 case "doors_driver":
864 return "DoorsDriver";
865 case "doors_codriver":
866 return "DoorsCoDriver";
867 case "doors_cargo1":
868 return "DoorsCargo1";
869 case "doors_cargo2":
870 return "DoorsCargo2";
871 case "doors_hood":
872 return "DoorsHood";
873 case "doors_trunk":
874 return "DoorsTrunk";
875 }
876
877 return "";
878 }
879
880 override bool IsVitalTruckBattery()
881 {
882 return false;
883 }
884
885 override bool IsVitalGlowPlug()
886 {
887 return false;
888 }
889
890 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
891 {
892 switch (currentSeat)
893 {
894 case 0:
895 return nextSeat == 1;
896
897 case 1:
898 return nextSeat == 0;
899
900 case 2:
901 return nextSeat == 3;
902
903 case 3:
904 return nextSeat == 2;
905 }
906
907 return false;
908 }
909
910 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
911 {
912 switch (pCurrentSeat)
913 {
914 case 0:
915 return pDoorsSelection == "DoorsDriver";
916
917 case 1:
918 return pDoorsSelection == "DoorsCoDriver";
919
920 case 2:
921 return pDoorsSelection == "DoorsCargo1";
922
923 case 3:
924 return pDoorsSelection == "DoorsCargo2";
925 }
926
927 return false;
928 }
929
930 override void OnDebugSpawn()
931 {
935
936 GetInventory().CreateInInventory("CivSedanWheel");
937 GetInventory().CreateInInventory("CivSedanWheel");
938 GetInventory().CreateInInventory("CivSedanWheel");
939 GetInventory().CreateInInventory("CivSedanWheel");
940
941 GetInventory().CreateInInventory("CivSedanDoors_Driver");
942 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
943 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
944 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
945 GetInventory().CreateInInventory("CivSedanHood");
946 GetInventory().CreateInInventory("CivSedanTrunk");
947
948 //-----IN CAR CARGO
949 GetInventory().CreateInInventory("CivSedanWheel");
950 GetInventory().CreateInInventory("CivSedanWheel");
951 }
952
953 override float GetPushForceCoefficientMultiplier()
954 {
955 return 1.5;
956 }
957}
958
960{
961 override void OnDebugSpawn()
962 {
966
967 GetInventory().CreateInInventory("CivSedanWheel");
968 GetInventory().CreateInInventory("CivSedanWheel");
969 GetInventory().CreateInInventory("CivSedanWheel");
970 GetInventory().CreateInInventory("CivSedanWheel");
971
972 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
973 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
974 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
975 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
976 GetInventory().CreateInInventory("CivSedanHood_Wine");
977 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
978
979 //-----IN CAR CARGO
980 GetInventory().CreateInInventory("CivSedanWheel");
981 GetInventory().CreateInInventory("CivSedanWheel");
982 }
983}
984
986{
987 override void OnDebugSpawn()
988 {
992
993 GetInventory().CreateInInventory("CivSedanWheel");
994 GetInventory().CreateInInventory("CivSedanWheel");
995 GetInventory().CreateInInventory("CivSedanWheel");
996 GetInventory().CreateInInventory("CivSedanWheel");
997
998 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
999 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1000 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1001 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1002 GetInventory().CreateInInventory("CivSedanHood_Black");
1003 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1004
1005 //-----IN CAR CARGO
1006 GetInventory().CreateInInventory("CivSedanWheel");
1007 GetInventory().CreateInInventory("CivSedanWheel");
1008 }
1009}

◆ CreateRearLight()

override CarRearLightBase CreateRearLight ( )
protected
539{
543
544 void CivilianSedan()
545 {
546 //m_dmgContactCoef = 0.065;
547
548 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
549 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
550 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
551 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
552 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
553
554 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
555 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
556
557 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
558 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
559
560 SetEnginePos("0 0.7 1.6");
561 }
562
563 override void EEInit()
564 {
565 super.EEInit();
566
567 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
568 {
570 m_UTSSettings.m_ManualUpdate = true;
571 m_UTSSettings.m_TemperatureMin = 0;
572 m_UTSSettings.m_TemperatureMax = 30;
573 m_UTSSettings.m_RangeFull = 0.5;
574 m_UTSSettings.m_RangeMax = 2;
575 m_UTSSettings.m_TemperatureCap = 25;
576
579 }
580 }
581
582 override void OnEngineStart()
583 {
584 super.OnEngineStart();
585
586 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
587 {
588 m_UTSource.SetDefferedActive(true, 20.0);
589 }
590 }
591
592 override void OnEngineStop()
593 {
594 super.OnEngineStop();
595
596 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
597 {
598 m_UTSource.SetDefferedActive(false, 10.0);
599 }
600 }
601
602 override void EOnPostSimulate(IEntity other, float timeSlice)
603 {
604 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
605 {
606 if (m_UTSource.IsActive())
607 {
609 }
610 }
611 }
612
613 override int GetAnimInstance()
614 {
615 return VehicleAnimInstances.SEDAN;
616 }
617
618 override float GetTransportCameraDistance()
619 {
620 return 4.5;
621 }
622
623 override int GetSeatAnimationType(int posIdx)
624 {
625 switch (posIdx)
626 {
627 case 0:
628 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
629 case 1:
630 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
631 case 2:
632 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
633 case 3:
634 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
635 }
636
637 return 0;
638 }
639
640 // Override for car-specific light type
642 {
643 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
644 }
645
646 // Override for car-specific light type
648 {
649 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
650 }
651
653 {
654 if( !super.CanReleaseAttachment( attachment ) )
655 return false;
656
657 string attType = attachment.GetType();
658
659 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
660 {
661 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
662 return false;
663 }
664
665 return true;
666 }
667
668 override protected bool CanManipulateSpareWheel(string slotSelectionName)
669 {
670 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
671 }
672
673 override bool CanDisplayAttachmentCategory(string category_name)
674 {
675 //super
676 if (!super.CanDisplayAttachmentCategory(category_name))
677 return false;
678 //
679
680 category_name.ToLower();
681 if (category_name.Contains("engine"))
682 {
683 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
684 return false;
685 }
686
687 return true;
688 }
689
690 override bool CanDisplayCargo()
691 {
692 if ( !super.CanDisplayCargo() )
693 return false;
694
695 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
696 return false;
697
698 return true;
699 }
700
701 override int GetCarDoorsState( string slotType )
702 {
704
705 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
706 if (!carDoor)
707 {
708 return CarDoorState.DOORS_MISSING;
709 }
710
711 switch (slotType)
712 {
713 case "CivSedanDriverDoors":
714 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
715 break;
716
717 case "CivSedanCoDriverDoors":
718 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
719 break;
720
721 case "CivSedanCargo1Doors":
722 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
723 break;
724
725 case "CivSedanCargo2Doors":
726 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
727 break;
728
729 case "CivSedanTrunk":
730 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
731 break;
732
733 case "CivSedanHood":
734 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
735 break;
736 }
737
738 return CarDoorState.DOORS_MISSING;
739 }
740
741
742 override bool CrewCanGetThrough( int posIdx )
743 {
744 switch( posIdx )
745 {
746 case 0:
747 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
748 return false;
749
750 return true;
751 break;
752
753 case 1:
754 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
755 return false;
756
757 return true;
758 break;
759
760 case 2:
761 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
762 return false;
763
764 return true;
765 break;
766
767 case 3:
768 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
769 return false;
770
771 return true;
772 break;
773 }
774
775 return false;
776 }
777
778 override string GetDoorSelectionNameFromSeatPos(int posIdx)
779 {
780 switch( posIdx )
781 {
782 case 0:
783 return "doors_driver";
784 break;
785 case 1:
786 return "doors_codriver";
787 break;
788 case 2:
789 return "doors_cargo1";
790 break;
791 case 3:
792 return "doors_cargo2";
793 break;
794 }
795
796 return super.GetDoorSelectionNameFromSeatPos(posIdx);
797 }
798
799 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
800 {
801 switch( posIdx )
802 {
803 case 0:
804 return "CivSedanDriverDoors";
805 break;
806 case 1:
807 return "CivSedanCoDriverDoors";
808 break;
809 case 2:
810 return "CivSedanCargo1Doors";
811 break;
812 case 3:
813 return "CivSedanCargo2Doors";
814 break;
815 }
816
817 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
818 }
819
820 // 0 full ambient and engine sound
821 // 1 zero ambient and engine sound
822 override float OnSound(CarSoundCtrl ctrl, float oldValue)
823 {
824 switch (ctrl)
825 {
826 case CarSoundCtrl.DOORS:
827 float newValue = 0;
828 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
829 {
830 newValue += 0.25;
831 }
832
833 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
834 {
835 newValue += 0.25;
836 }
837
838 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
839 {
840 newValue += 0.25;
841 }
842
843 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
844 {
845 newValue += 0.25;
846 }
847
848 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
849 {
850 newValue -= 0.6;
851 }
852
853 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
854 {
855 newValue -= 0.6;
856 }
857
858 return Math.Clamp(newValue, 0, 1);
859 break;
860 }
861
862 return super.OnSound(ctrl, oldValue);
863 }
864
865 override string GetAnimSourceFromSelection(string selection)
866 {
867 switch (selection)
868 {
869 case "doors_driver":
870 return "DoorsDriver";
871 case "doors_codriver":
872 return "DoorsCoDriver";
873 case "doors_cargo1":
874 return "DoorsCargo1";
875 case "doors_cargo2":
876 return "DoorsCargo2";
877 case "doors_hood":
878 return "DoorsHood";
879 case "doors_trunk":
880 return "DoorsTrunk";
881 }
882
883 return "";
884 }
885
886 override bool IsVitalTruckBattery()
887 {
888 return false;
889 }
890
891 override bool IsVitalGlowPlug()
892 {
893 return false;
894 }
895
896 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
897 {
898 switch (currentSeat)
899 {
900 case 0:
901 return nextSeat == 1;
902
903 case 1:
904 return nextSeat == 0;
905
906 case 2:
907 return nextSeat == 3;
908
909 case 3:
910 return nextSeat == 2;
911 }
912
913 return false;
914 }
915
916 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
917 {
918 switch (pCurrentSeat)
919 {
920 case 0:
921 return pDoorsSelection == "DoorsDriver";
922
923 case 1:
924 return pDoorsSelection == "DoorsCoDriver";
925
926 case 2:
927 return pDoorsSelection == "DoorsCargo1";
928
929 case 3:
930 return pDoorsSelection == "DoorsCargo2";
931 }
932
933 return false;
934 }
935
936 override void OnDebugSpawn()
937 {
941
942 GetInventory().CreateInInventory("CivSedanWheel");
943 GetInventory().CreateInInventory("CivSedanWheel");
944 GetInventory().CreateInInventory("CivSedanWheel");
945 GetInventory().CreateInInventory("CivSedanWheel");
946
947 GetInventory().CreateInInventory("CivSedanDoors_Driver");
948 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
949 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
950 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
951 GetInventory().CreateInInventory("CivSedanHood");
952 GetInventory().CreateInInventory("CivSedanTrunk");
953
954 //-----IN CAR CARGO
955 GetInventory().CreateInInventory("CivSedanWheel");
956 GetInventory().CreateInInventory("CivSedanWheel");
957 }
958
959 override float GetPushForceCoefficientMultiplier()
960 {
961 return 1.5;
962 }
963}
964
966{
967 override void OnDebugSpawn()
968 {
972
973 GetInventory().CreateInInventory("CivSedanWheel");
974 GetInventory().CreateInInventory("CivSedanWheel");
975 GetInventory().CreateInInventory("CivSedanWheel");
976 GetInventory().CreateInInventory("CivSedanWheel");
977
978 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
979 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
980 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
981 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
982 GetInventory().CreateInInventory("CivSedanHood_Wine");
983 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
984
985 //-----IN CAR CARGO
986 GetInventory().CreateInInventory("CivSedanWheel");
987 GetInventory().CreateInInventory("CivSedanWheel");
988 }
989}
990
992{
993 override void OnDebugSpawn()
994 {
998
999 GetInventory().CreateInInventory("CivSedanWheel");
1000 GetInventory().CreateInInventory("CivSedanWheel");
1001 GetInventory().CreateInInventory("CivSedanWheel");
1002 GetInventory().CreateInInventory("CivSedanWheel");
1003
1004 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1005 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1006 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1007 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1008 GetInventory().CreateInInventory("CivSedanHood_Black");
1009 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1010
1011 //-----IN CAR CARGO
1012 GetInventory().CreateInInventory("CivSedanWheel");
1013 GetInventory().CreateInInventory("CivSedanWheel");
1014 }
1015}

◆ CrewCanGetThrough()

override bool CrewCanGetThrough ( int posIdx)
protected
634{
638
639 void CivilianSedan()
640 {
641 //m_dmgContactCoef = 0.065;
642
643 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
644 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
645 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
646 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
647 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
648
649 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
650 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
651
652 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
653 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
654
655 SetEnginePos("0 0.7 1.6");
656 }
657
658 override void EEInit()
659 {
660 super.EEInit();
661
662 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
663 {
665 m_UTSSettings.m_ManualUpdate = true;
666 m_UTSSettings.m_TemperatureMin = 0;
667 m_UTSSettings.m_TemperatureMax = 30;
668 m_UTSSettings.m_RangeFull = 0.5;
669 m_UTSSettings.m_RangeMax = 2;
670 m_UTSSettings.m_TemperatureCap = 25;
671
674 }
675 }
676
677 override void OnEngineStart()
678 {
679 super.OnEngineStart();
680
681 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
682 {
683 m_UTSource.SetDefferedActive(true, 20.0);
684 }
685 }
686
687 override void OnEngineStop()
688 {
689 super.OnEngineStop();
690
691 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
692 {
693 m_UTSource.SetDefferedActive(false, 10.0);
694 }
695 }
696
697 override void EOnPostSimulate(IEntity other, float timeSlice)
698 {
699 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
700 {
701 if (m_UTSource.IsActive())
702 {
704 }
705 }
706 }
707
708 override int GetAnimInstance()
709 {
710 return VehicleAnimInstances.SEDAN;
711 }
712
713 override float GetTransportCameraDistance()
714 {
715 return 4.5;
716 }
717
718 override int GetSeatAnimationType(int posIdx)
719 {
720 switch (posIdx)
721 {
722 case 0:
723 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
724 case 1:
725 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
726 case 2:
727 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
728 case 3:
729 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
730 }
731
732 return 0;
733 }
734
735 // Override for car-specific light type
737 {
738 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
739 }
740
741 // Override for car-specific light type
743 {
744 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
745 }
746
748 {
749 if( !super.CanReleaseAttachment( attachment ) )
750 return false;
751
752 string attType = attachment.GetType();
753
754 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
755 {
756 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
757 return false;
758 }
759
760 return true;
761 }
762
763 override protected bool CanManipulateSpareWheel(string slotSelectionName)
764 {
765 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
766 }
767
768 override bool CanDisplayAttachmentCategory(string category_name)
769 {
770 //super
771 if (!super.CanDisplayAttachmentCategory(category_name))
772 return false;
773 //
774
775 category_name.ToLower();
776 if (category_name.Contains("engine"))
777 {
778 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
779 return false;
780 }
781
782 return true;
783 }
784
785 override bool CanDisplayCargo()
786 {
787 if ( !super.CanDisplayCargo() )
788 return false;
789
790 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
791 return false;
792
793 return true;
794 }
795
796 override int GetCarDoorsState( string slotType )
797 {
799
800 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
801 if (!carDoor)
802 {
803 return CarDoorState.DOORS_MISSING;
804 }
805
806 switch (slotType)
807 {
808 case "CivSedanDriverDoors":
809 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
810 break;
811
812 case "CivSedanCoDriverDoors":
813 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
814 break;
815
816 case "CivSedanCargo1Doors":
817 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
818 break;
819
820 case "CivSedanCargo2Doors":
821 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
822 break;
823
824 case "CivSedanTrunk":
825 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
826 break;
827
828 case "CivSedanHood":
829 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
830 break;
831 }
832
833 return CarDoorState.DOORS_MISSING;
834 }
835
836
837 override bool CrewCanGetThrough( int posIdx )
838 {
839 switch( posIdx )
840 {
841 case 0:
842 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
843 return false;
844
845 return true;
846 break;
847
848 case 1:
849 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
850 return false;
851
852 return true;
853 break;
854
855 case 2:
856 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
857 return false;
858
859 return true;
860 break;
861
862 case 3:
863 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
864 return false;
865
866 return true;
867 break;
868 }
869
870 return false;
871 }
872
873 override string GetDoorSelectionNameFromSeatPos(int posIdx)
874 {
875 switch( posIdx )
876 {
877 case 0:
878 return "doors_driver";
879 break;
880 case 1:
881 return "doors_codriver";
882 break;
883 case 2:
884 return "doors_cargo1";
885 break;
886 case 3:
887 return "doors_cargo2";
888 break;
889 }
890
891 return super.GetDoorSelectionNameFromSeatPos(posIdx);
892 }
893
894 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
895 {
896 switch( posIdx )
897 {
898 case 0:
899 return "CivSedanDriverDoors";
900 break;
901 case 1:
902 return "CivSedanCoDriverDoors";
903 break;
904 case 2:
905 return "CivSedanCargo1Doors";
906 break;
907 case 3:
908 return "CivSedanCargo2Doors";
909 break;
910 }
911
912 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
913 }
914
915 // 0 full ambient and engine sound
916 // 1 zero ambient and engine sound
917 override float OnSound(CarSoundCtrl ctrl, float oldValue)
918 {
919 switch (ctrl)
920 {
921 case CarSoundCtrl.DOORS:
922 float newValue = 0;
923 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
924 {
925 newValue += 0.25;
926 }
927
928 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
929 {
930 newValue += 0.25;
931 }
932
933 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
934 {
935 newValue += 0.25;
936 }
937
938 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
939 {
940 newValue += 0.25;
941 }
942
943 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
944 {
945 newValue -= 0.6;
946 }
947
948 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
949 {
950 newValue -= 0.6;
951 }
952
953 return Math.Clamp(newValue, 0, 1);
954 break;
955 }
956
957 return super.OnSound(ctrl, oldValue);
958 }
959
960 override string GetAnimSourceFromSelection(string selection)
961 {
962 switch (selection)
963 {
964 case "doors_driver":
965 return "DoorsDriver";
966 case "doors_codriver":
967 return "DoorsCoDriver";
968 case "doors_cargo1":
969 return "DoorsCargo1";
970 case "doors_cargo2":
971 return "DoorsCargo2";
972 case "doors_hood":
973 return "DoorsHood";
974 case "doors_trunk":
975 return "DoorsTrunk";
976 }
977
978 return "";
979 }
980
981 override bool IsVitalTruckBattery()
982 {
983 return false;
984 }
985
986 override bool IsVitalGlowPlug()
987 {
988 return false;
989 }
990
991 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
992 {
993 switch (currentSeat)
994 {
995 case 0:
996 return nextSeat == 1;
997
998 case 1:
999 return nextSeat == 0;
1000
1001 case 2:
1002 return nextSeat == 3;
1003
1004 case 3:
1005 return nextSeat == 2;
1006 }
1007
1008 return false;
1009 }
1010
1011 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1012 {
1013 switch (pCurrentSeat)
1014 {
1015 case 0:
1016 return pDoorsSelection == "DoorsDriver";
1017
1018 case 1:
1019 return pDoorsSelection == "DoorsCoDriver";
1020
1021 case 2:
1022 return pDoorsSelection == "DoorsCargo1";
1023
1024 case 3:
1025 return pDoorsSelection == "DoorsCargo2";
1026 }
1027
1028 return false;
1029 }
1030
1031 override void OnDebugSpawn()
1032 {
1036
1037 GetInventory().CreateInInventory("CivSedanWheel");
1038 GetInventory().CreateInInventory("CivSedanWheel");
1039 GetInventory().CreateInInventory("CivSedanWheel");
1040 GetInventory().CreateInInventory("CivSedanWheel");
1041
1042 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1043 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1044 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1045 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1046 GetInventory().CreateInInventory("CivSedanHood");
1047 GetInventory().CreateInInventory("CivSedanTrunk");
1048
1049 //-----IN CAR CARGO
1050 GetInventory().CreateInInventory("CivSedanWheel");
1051 GetInventory().CreateInInventory("CivSedanWheel");
1052 }
1053
1054 override float GetPushForceCoefficientMultiplier()
1055 {
1056 return 1.5;
1057 }
1058}
1059
1061{
1062 override void OnDebugSpawn()
1063 {
1067
1068 GetInventory().CreateInInventory("CivSedanWheel");
1069 GetInventory().CreateInInventory("CivSedanWheel");
1070 GetInventory().CreateInInventory("CivSedanWheel");
1071 GetInventory().CreateInInventory("CivSedanWheel");
1072
1073 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1074 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1075 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1076 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1077 GetInventory().CreateInInventory("CivSedanHood_Wine");
1078 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1079
1080 //-----IN CAR CARGO
1081 GetInventory().CreateInInventory("CivSedanWheel");
1082 GetInventory().CreateInInventory("CivSedanWheel");
1083 }
1084}
1085
1087{
1088 override void OnDebugSpawn()
1089 {
1093
1094 GetInventory().CreateInInventory("CivSedanWheel");
1095 GetInventory().CreateInInventory("CivSedanWheel");
1096 GetInventory().CreateInInventory("CivSedanWheel");
1097 GetInventory().CreateInInventory("CivSedanWheel");
1098
1099 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1100 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1101 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1102 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1103 GetInventory().CreateInInventory("CivSedanHood_Black");
1104 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1105
1106 //-----IN CAR CARGO
1107 GetInventory().CreateInInventory("CivSedanWheel");
1108 GetInventory().CreateInInventory("CivSedanWheel");
1109 }
1110}

◆ EEInit()

override void EEInit ( )
protected
455{
456 override void OnDebugSpawn()
457 {
461
462 GetInventory().CreateInInventory("CivSedanWheel");
463 GetInventory().CreateInInventory("CivSedanWheel");
464 GetInventory().CreateInInventory("CivSedanWheel");
465 GetInventory().CreateInInventory("CivSedanWheel");
466
467 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
468 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
469 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
470 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
471 GetInventory().CreateInInventory("CivSedanHood_Black");

◆ EOnPostSimulate()

override void EOnPostSimulate ( IEntity other,
float timeSlice )
protected
494{
498
499 void CivilianSedan()
500 {
501 //m_dmgContactCoef = 0.065;
502
503 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
504 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
505 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
506 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
507 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
508
509 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
510 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
511
512 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
513 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
514
515 SetEnginePos("0 0.7 1.6");
516 }
517
518 override void EEInit()
519 {
520 super.EEInit();
521
522 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
523 {
525 m_UTSSettings.m_ManualUpdate = true;
526 m_UTSSettings.m_TemperatureMin = 0;
527 m_UTSSettings.m_TemperatureMax = 30;
528 m_UTSSettings.m_RangeFull = 0.5;
529 m_UTSSettings.m_RangeMax = 2;
530 m_UTSSettings.m_TemperatureCap = 25;
531
534 }
535 }
536
537 override void OnEngineStart()
538 {
539 super.OnEngineStart();
540
541 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
542 {
543 m_UTSource.SetDefferedActive(true, 20.0);
544 }
545 }
546
547 override void OnEngineStop()
548 {
549 super.OnEngineStop();
550
551 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
552 {
553 m_UTSource.SetDefferedActive(false, 10.0);
554 }
555 }
556
557 override void EOnPostSimulate(IEntity other, float timeSlice)
558 {
559 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
560 {
561 if (m_UTSource.IsActive())
562 {
564 }
565 }
566 }
567
568 override int GetAnimInstance()
569 {
570 return VehicleAnimInstances.SEDAN;
571 }
572
573 override float GetTransportCameraDistance()
574 {
575 return 4.5;
576 }
577
578 override int GetSeatAnimationType(int posIdx)
579 {
580 switch (posIdx)
581 {
582 case 0:
583 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
584 case 1:
585 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
586 case 2:
587 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
588 case 3:
589 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
590 }
591
592 return 0;
593 }
594
595 // Override for car-specific light type
597 {
598 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
599 }
600
601 // Override for car-specific light type
603 {
604 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
605 }
606
608 {
609 if( !super.CanReleaseAttachment( attachment ) )
610 return false;
611
612 string attType = attachment.GetType();
613
614 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
615 {
616 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
617 return false;
618 }
619
620 return true;
621 }
622
623 override protected bool CanManipulateSpareWheel(string slotSelectionName)
624 {
625 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
626 }
627
628 override bool CanDisplayAttachmentCategory(string category_name)
629 {
630 //super
631 if (!super.CanDisplayAttachmentCategory(category_name))
632 return false;
633 //
634
635 category_name.ToLower();
636 if (category_name.Contains("engine"))
637 {
638 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
639 return false;
640 }
641
642 return true;
643 }
644
645 override bool CanDisplayCargo()
646 {
647 if ( !super.CanDisplayCargo() )
648 return false;
649
650 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
651 return false;
652
653 return true;
654 }
655
656 override int GetCarDoorsState( string slotType )
657 {
659
660 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
661 if (!carDoor)
662 {
663 return CarDoorState.DOORS_MISSING;
664 }
665
666 switch (slotType)
667 {
668 case "CivSedanDriverDoors":
669 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
670 break;
671
672 case "CivSedanCoDriverDoors":
673 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
674 break;
675
676 case "CivSedanCargo1Doors":
677 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
678 break;
679
680 case "CivSedanCargo2Doors":
681 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
682 break;
683
684 case "CivSedanTrunk":
685 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
686 break;
687
688 case "CivSedanHood":
689 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
690 break;
691 }
692
693 return CarDoorState.DOORS_MISSING;
694 }
695
696
697 override bool CrewCanGetThrough( int posIdx )
698 {
699 switch( posIdx )
700 {
701 case 0:
702 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
703 return false;
704
705 return true;
706 break;
707
708 case 1:
709 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
710 return false;
711
712 return true;
713 break;
714
715 case 2:
716 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
717 return false;
718
719 return true;
720 break;
721
722 case 3:
723 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
724 return false;
725
726 return true;
727 break;
728 }
729
730 return false;
731 }
732
733 override string GetDoorSelectionNameFromSeatPos(int posIdx)
734 {
735 switch( posIdx )
736 {
737 case 0:
738 return "doors_driver";
739 break;
740 case 1:
741 return "doors_codriver";
742 break;
743 case 2:
744 return "doors_cargo1";
745 break;
746 case 3:
747 return "doors_cargo2";
748 break;
749 }
750
751 return super.GetDoorSelectionNameFromSeatPos(posIdx);
752 }
753
754 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
755 {
756 switch( posIdx )
757 {
758 case 0:
759 return "CivSedanDriverDoors";
760 break;
761 case 1:
762 return "CivSedanCoDriverDoors";
763 break;
764 case 2:
765 return "CivSedanCargo1Doors";
766 break;
767 case 3:
768 return "CivSedanCargo2Doors";
769 break;
770 }
771
772 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
773 }
774
775 // 0 full ambient and engine sound
776 // 1 zero ambient and engine sound
777 override float OnSound(CarSoundCtrl ctrl, float oldValue)
778 {
779 switch (ctrl)
780 {
781 case CarSoundCtrl.DOORS:
782 float newValue = 0;
783 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
784 {
785 newValue += 0.25;
786 }
787
788 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
789 {
790 newValue += 0.25;
791 }
792
793 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
794 {
795 newValue += 0.25;
796 }
797
798 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
799 {
800 newValue += 0.25;
801 }
802
803 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
804 {
805 newValue -= 0.6;
806 }
807
808 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
809 {
810 newValue -= 0.6;
811 }
812
813 return Math.Clamp(newValue, 0, 1);
814 break;
815 }
816
817 return super.OnSound(ctrl, oldValue);
818 }
819
820 override string GetAnimSourceFromSelection(string selection)
821 {
822 switch (selection)
823 {
824 case "doors_driver":
825 return "DoorsDriver";
826 case "doors_codriver":
827 return "DoorsCoDriver";
828 case "doors_cargo1":
829 return "DoorsCargo1";
830 case "doors_cargo2":
831 return "DoorsCargo2";
832 case "doors_hood":
833 return "DoorsHood";
834 case "doors_trunk":
835 return "DoorsTrunk";
836 }
837
838 return "";
839 }
840
841 override bool IsVitalTruckBattery()
842 {
843 return false;
844 }
845
846 override bool IsVitalGlowPlug()
847 {
848 return false;
849 }
850
851 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
852 {
853 switch (currentSeat)
854 {
855 case 0:
856 return nextSeat == 1;
857
858 case 1:
859 return nextSeat == 0;
860
861 case 2:
862 return nextSeat == 3;
863
864 case 3:
865 return nextSeat == 2;
866 }
867
868 return false;
869 }
870
871 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
872 {
873 switch (pCurrentSeat)
874 {
875 case 0:
876 return pDoorsSelection == "DoorsDriver";
877
878 case 1:
879 return pDoorsSelection == "DoorsCoDriver";
880
881 case 2:
882 return pDoorsSelection == "DoorsCargo1";
883
884 case 3:
885 return pDoorsSelection == "DoorsCargo2";
886 }
887
888 return false;
889 }
890
891 override void OnDebugSpawn()
892 {
896
897 GetInventory().CreateInInventory("CivSedanWheel");
898 GetInventory().CreateInInventory("CivSedanWheel");
899 GetInventory().CreateInInventory("CivSedanWheel");
900 GetInventory().CreateInInventory("CivSedanWheel");
901
902 GetInventory().CreateInInventory("CivSedanDoors_Driver");
903 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
904 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
905 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
906 GetInventory().CreateInInventory("CivSedanHood");
907 GetInventory().CreateInInventory("CivSedanTrunk");
908
909 //-----IN CAR CARGO
910 GetInventory().CreateInInventory("CivSedanWheel");
911 GetInventory().CreateInInventory("CivSedanWheel");
912 }
913
914 override float GetPushForceCoefficientMultiplier()
915 {
916 return 1.5;
917 }
918}
919
921{
922 override void OnDebugSpawn()
923 {
927
928 GetInventory().CreateInInventory("CivSedanWheel");
929 GetInventory().CreateInInventory("CivSedanWheel");
930 GetInventory().CreateInInventory("CivSedanWheel");
931 GetInventory().CreateInInventory("CivSedanWheel");
932
933 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
934 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
935 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
936 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
937 GetInventory().CreateInInventory("CivSedanHood_Wine");
938 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
939
940 //-----IN CAR CARGO
941 GetInventory().CreateInInventory("CivSedanWheel");
942 GetInventory().CreateInInventory("CivSedanWheel");
943 }
944}
945
947{
948 override void OnDebugSpawn()
949 {
953
954 GetInventory().CreateInInventory("CivSedanWheel");
955 GetInventory().CreateInInventory("CivSedanWheel");
956 GetInventory().CreateInInventory("CivSedanWheel");
957 GetInventory().CreateInInventory("CivSedanWheel");
958
959 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
960 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
961 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
962 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
963 GetInventory().CreateInInventory("CivSedanHood_Black");
964 GetInventory().CreateInInventory("CivSedanTrunk_Black");
965
966 //-----IN CAR CARGO
967 GetInventory().CreateInInventory("CivSedanWheel");
968 GetInventory().CreateInInventory("CivSedanWheel");
969 }
970}

◆ GetAnimInstance()

override int GetAnimInstance ( )
protected
505{
509
510 void CivilianSedan()
511 {
512 //m_dmgContactCoef = 0.065;
513
514 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
515 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
516 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
517 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
518 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
519
520 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
521 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
522
523 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
524 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
525
526 SetEnginePos("0 0.7 1.6");
527 }
528
529 override void EEInit()
530 {
531 super.EEInit();
532
533 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
534 {
536 m_UTSSettings.m_ManualUpdate = true;
537 m_UTSSettings.m_TemperatureMin = 0;
538 m_UTSSettings.m_TemperatureMax = 30;
539 m_UTSSettings.m_RangeFull = 0.5;
540 m_UTSSettings.m_RangeMax = 2;
541 m_UTSSettings.m_TemperatureCap = 25;
542
545 }
546 }
547
548 override void OnEngineStart()
549 {
550 super.OnEngineStart();
551
552 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
553 {
554 m_UTSource.SetDefferedActive(true, 20.0);
555 }
556 }
557
558 override void OnEngineStop()
559 {
560 super.OnEngineStop();
561
562 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
563 {
564 m_UTSource.SetDefferedActive(false, 10.0);
565 }
566 }
567
568 override void EOnPostSimulate(IEntity other, float timeSlice)
569 {
570 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
571 {
572 if (m_UTSource.IsActive())
573 {
575 }
576 }
577 }
578
579 override int GetAnimInstance()
580 {
581 return VehicleAnimInstances.SEDAN;
582 }
583
584 override float GetTransportCameraDistance()
585 {
586 return 4.5;
587 }
588
589 override int GetSeatAnimationType(int posIdx)
590 {
591 switch (posIdx)
592 {
593 case 0:
594 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
595 case 1:
596 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
597 case 2:
598 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
599 case 3:
600 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
601 }
602
603 return 0;
604 }
605
606 // Override for car-specific light type
608 {
609 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
610 }
611
612 // Override for car-specific light type
614 {
615 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
616 }
617
619 {
620 if( !super.CanReleaseAttachment( attachment ) )
621 return false;
622
623 string attType = attachment.GetType();
624
625 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
626 {
627 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
628 return false;
629 }
630
631 return true;
632 }
633
634 override protected bool CanManipulateSpareWheel(string slotSelectionName)
635 {
636 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
637 }
638
639 override bool CanDisplayAttachmentCategory(string category_name)
640 {
641 //super
642 if (!super.CanDisplayAttachmentCategory(category_name))
643 return false;
644 //
645
646 category_name.ToLower();
647 if (category_name.Contains("engine"))
648 {
649 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
650 return false;
651 }
652
653 return true;
654 }
655
656 override bool CanDisplayCargo()
657 {
658 if ( !super.CanDisplayCargo() )
659 return false;
660
661 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
662 return false;
663
664 return true;
665 }
666
667 override int GetCarDoorsState( string slotType )
668 {
670
671 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
672 if (!carDoor)
673 {
674 return CarDoorState.DOORS_MISSING;
675 }
676
677 switch (slotType)
678 {
679 case "CivSedanDriverDoors":
680 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
681 break;
682
683 case "CivSedanCoDriverDoors":
684 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
685 break;
686
687 case "CivSedanCargo1Doors":
688 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
689 break;
690
691 case "CivSedanCargo2Doors":
692 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
693 break;
694
695 case "CivSedanTrunk":
696 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
697 break;
698
699 case "CivSedanHood":
700 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
701 break;
702 }
703
704 return CarDoorState.DOORS_MISSING;
705 }
706
707
708 override bool CrewCanGetThrough( int posIdx )
709 {
710 switch( posIdx )
711 {
712 case 0:
713 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
714 return false;
715
716 return true;
717 break;
718
719 case 1:
720 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
721 return false;
722
723 return true;
724 break;
725
726 case 2:
727 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
728 return false;
729
730 return true;
731 break;
732
733 case 3:
734 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
735 return false;
736
737 return true;
738 break;
739 }
740
741 return false;
742 }
743
744 override string GetDoorSelectionNameFromSeatPos(int posIdx)
745 {
746 switch( posIdx )
747 {
748 case 0:
749 return "doors_driver";
750 break;
751 case 1:
752 return "doors_codriver";
753 break;
754 case 2:
755 return "doors_cargo1";
756 break;
757 case 3:
758 return "doors_cargo2";
759 break;
760 }
761
762 return super.GetDoorSelectionNameFromSeatPos(posIdx);
763 }
764
765 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
766 {
767 switch( posIdx )
768 {
769 case 0:
770 return "CivSedanDriverDoors";
771 break;
772 case 1:
773 return "CivSedanCoDriverDoors";
774 break;
775 case 2:
776 return "CivSedanCargo1Doors";
777 break;
778 case 3:
779 return "CivSedanCargo2Doors";
780 break;
781 }
782
783 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
784 }
785
786 // 0 full ambient and engine sound
787 // 1 zero ambient and engine sound
788 override float OnSound(CarSoundCtrl ctrl, float oldValue)
789 {
790 switch (ctrl)
791 {
792 case CarSoundCtrl.DOORS:
793 float newValue = 0;
794 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
795 {
796 newValue += 0.25;
797 }
798
799 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
800 {
801 newValue += 0.25;
802 }
803
804 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
805 {
806 newValue += 0.25;
807 }
808
809 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
810 {
811 newValue += 0.25;
812 }
813
814 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
815 {
816 newValue -= 0.6;
817 }
818
819 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
820 {
821 newValue -= 0.6;
822 }
823
824 return Math.Clamp(newValue, 0, 1);
825 break;
826 }
827
828 return super.OnSound(ctrl, oldValue);
829 }
830
831 override string GetAnimSourceFromSelection(string selection)
832 {
833 switch (selection)
834 {
835 case "doors_driver":
836 return "DoorsDriver";
837 case "doors_codriver":
838 return "DoorsCoDriver";
839 case "doors_cargo1":
840 return "DoorsCargo1";
841 case "doors_cargo2":
842 return "DoorsCargo2";
843 case "doors_hood":
844 return "DoorsHood";
845 case "doors_trunk":
846 return "DoorsTrunk";
847 }
848
849 return "";
850 }
851
852 override bool IsVitalTruckBattery()
853 {
854 return false;
855 }
856
857 override bool IsVitalGlowPlug()
858 {
859 return false;
860 }
861
862 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
863 {
864 switch (currentSeat)
865 {
866 case 0:
867 return nextSeat == 1;
868
869 case 1:
870 return nextSeat == 0;
871
872 case 2:
873 return nextSeat == 3;
874
875 case 3:
876 return nextSeat == 2;
877 }
878
879 return false;
880 }
881
882 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
883 {
884 switch (pCurrentSeat)
885 {
886 case 0:
887 return pDoorsSelection == "DoorsDriver";
888
889 case 1:
890 return pDoorsSelection == "DoorsCoDriver";
891
892 case 2:
893 return pDoorsSelection == "DoorsCargo1";
894
895 case 3:
896 return pDoorsSelection == "DoorsCargo2";
897 }
898
899 return false;
900 }
901
902 override void OnDebugSpawn()
903 {
907
908 GetInventory().CreateInInventory("CivSedanWheel");
909 GetInventory().CreateInInventory("CivSedanWheel");
910 GetInventory().CreateInInventory("CivSedanWheel");
911 GetInventory().CreateInInventory("CivSedanWheel");
912
913 GetInventory().CreateInInventory("CivSedanDoors_Driver");
914 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
915 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
916 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
917 GetInventory().CreateInInventory("CivSedanHood");
918 GetInventory().CreateInInventory("CivSedanTrunk");
919
920 //-----IN CAR CARGO
921 GetInventory().CreateInInventory("CivSedanWheel");
922 GetInventory().CreateInInventory("CivSedanWheel");
923 }
924
925 override float GetPushForceCoefficientMultiplier()
926 {
927 return 1.5;
928 }
929}
930
932{
933 override void OnDebugSpawn()
934 {
938
939 GetInventory().CreateInInventory("CivSedanWheel");
940 GetInventory().CreateInInventory("CivSedanWheel");
941 GetInventory().CreateInInventory("CivSedanWheel");
942 GetInventory().CreateInInventory("CivSedanWheel");
943
944 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
945 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
946 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
947 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
948 GetInventory().CreateInInventory("CivSedanHood_Wine");
949 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
950
951 //-----IN CAR CARGO
952 GetInventory().CreateInInventory("CivSedanWheel");
953 GetInventory().CreateInInventory("CivSedanWheel");
954 }
955}
956
958{
959 override void OnDebugSpawn()
960 {
964
965 GetInventory().CreateInInventory("CivSedanWheel");
966 GetInventory().CreateInInventory("CivSedanWheel");
967 GetInventory().CreateInInventory("CivSedanWheel");
968 GetInventory().CreateInInventory("CivSedanWheel");
969
970 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
971 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
972 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
973 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
974 GetInventory().CreateInInventory("CivSedanHood_Black");
975 GetInventory().CreateInInventory("CivSedanTrunk_Black");
976
977 //-----IN CAR CARGO
978 GetInventory().CreateInInventory("CivSedanWheel");
979 GetInventory().CreateInInventory("CivSedanWheel");
980 }
981}

◆ GetAnimSourceFromSelection()

override string GetAnimSourceFromSelection ( string selection)
protected
757{
761
762 void CivilianSedan()
763 {
764 //m_dmgContactCoef = 0.065;
765
766 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
767 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
768 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
769 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
770 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
771
772 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
773 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
774
775 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
776 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
777
778 SetEnginePos("0 0.7 1.6");
779 }
780
781 override void EEInit()
782 {
783 super.EEInit();
784
785 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
786 {
788 m_UTSSettings.m_ManualUpdate = true;
789 m_UTSSettings.m_TemperatureMin = 0;
790 m_UTSSettings.m_TemperatureMax = 30;
791 m_UTSSettings.m_RangeFull = 0.5;
792 m_UTSSettings.m_RangeMax = 2;
793 m_UTSSettings.m_TemperatureCap = 25;
794
797 }
798 }
799
800 override void OnEngineStart()
801 {
802 super.OnEngineStart();
803
804 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
805 {
806 m_UTSource.SetDefferedActive(true, 20.0);
807 }
808 }
809
810 override void OnEngineStop()
811 {
812 super.OnEngineStop();
813
814 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
815 {
816 m_UTSource.SetDefferedActive(false, 10.0);
817 }
818 }
819
820 override void EOnPostSimulate(IEntity other, float timeSlice)
821 {
822 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
823 {
824 if (m_UTSource.IsActive())
825 {
827 }
828 }
829 }
830
831 override int GetAnimInstance()
832 {
833 return VehicleAnimInstances.SEDAN;
834 }
835
836 override float GetTransportCameraDistance()
837 {
838 return 4.5;
839 }
840
841 override int GetSeatAnimationType(int posIdx)
842 {
843 switch (posIdx)
844 {
845 case 0:
846 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
847 case 1:
848 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
849 case 2:
850 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
851 case 3:
852 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
853 }
854
855 return 0;
856 }
857
858 // Override for car-specific light type
860 {
861 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
862 }
863
864 // Override for car-specific light type
866 {
867 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
868 }
869
871 {
872 if( !super.CanReleaseAttachment( attachment ) )
873 return false;
874
875 string attType = attachment.GetType();
876
877 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
878 {
879 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
880 return false;
881 }
882
883 return true;
884 }
885
886 override protected bool CanManipulateSpareWheel(string slotSelectionName)
887 {
888 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
889 }
890
891 override bool CanDisplayAttachmentCategory(string category_name)
892 {
893 //super
894 if (!super.CanDisplayAttachmentCategory(category_name))
895 return false;
896 //
897
898 category_name.ToLower();
899 if (category_name.Contains("engine"))
900 {
901 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
902 return false;
903 }
904
905 return true;
906 }
907
908 override bool CanDisplayCargo()
909 {
910 if ( !super.CanDisplayCargo() )
911 return false;
912
913 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
914 return false;
915
916 return true;
917 }
918
919 override int GetCarDoorsState( string slotType )
920 {
922
923 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
924 if (!carDoor)
925 {
926 return CarDoorState.DOORS_MISSING;
927 }
928
929 switch (slotType)
930 {
931 case "CivSedanDriverDoors":
932 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
933 break;
934
935 case "CivSedanCoDriverDoors":
936 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
937 break;
938
939 case "CivSedanCargo1Doors":
940 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
941 break;
942
943 case "CivSedanCargo2Doors":
944 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
945 break;
946
947 case "CivSedanTrunk":
948 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
949 break;
950
951 case "CivSedanHood":
952 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
953 break;
954 }
955
956 return CarDoorState.DOORS_MISSING;
957 }
958
959
960 override bool CrewCanGetThrough( int posIdx )
961 {
962 switch( posIdx )
963 {
964 case 0:
965 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
966 return false;
967
968 return true;
969 break;
970
971 case 1:
972 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
973 return false;
974
975 return true;
976 break;
977
978 case 2:
979 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
980 return false;
981
982 return true;
983 break;
984
985 case 3:
986 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
987 return false;
988
989 return true;
990 break;
991 }
992
993 return false;
994 }
995
996 override string GetDoorSelectionNameFromSeatPos(int posIdx)
997 {
998 switch( posIdx )
999 {
1000 case 0:
1001 return "doors_driver";
1002 break;
1003 case 1:
1004 return "doors_codriver";
1005 break;
1006 case 2:
1007 return "doors_cargo1";
1008 break;
1009 case 3:
1010 return "doors_cargo2";
1011 break;
1012 }
1013
1014 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1015 }
1016
1017 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1018 {
1019 switch( posIdx )
1020 {
1021 case 0:
1022 return "CivSedanDriverDoors";
1023 break;
1024 case 1:
1025 return "CivSedanCoDriverDoors";
1026 break;
1027 case 2:
1028 return "CivSedanCargo1Doors";
1029 break;
1030 case 3:
1031 return "CivSedanCargo2Doors";
1032 break;
1033 }
1034
1035 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1036 }
1037
1038 // 0 full ambient and engine sound
1039 // 1 zero ambient and engine sound
1040 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1041 {
1042 switch (ctrl)
1043 {
1044 case CarSoundCtrl.DOORS:
1045 float newValue = 0;
1046 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1047 {
1048 newValue += 0.25;
1049 }
1050
1051 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1052 {
1053 newValue += 0.25;
1054 }
1055
1056 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1057 {
1058 newValue += 0.25;
1059 }
1060
1061 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1062 {
1063 newValue += 0.25;
1064 }
1065
1066 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1067 {
1068 newValue -= 0.6;
1069 }
1070
1071 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1072 {
1073 newValue -= 0.6;
1074 }
1075
1076 return Math.Clamp(newValue, 0, 1);
1077 break;
1078 }
1079
1080 return super.OnSound(ctrl, oldValue);
1081 }
1082
1083 override string GetAnimSourceFromSelection(string selection)
1084 {
1085 switch (selection)
1086 {
1087 case "doors_driver":
1088 return "DoorsDriver";
1089 case "doors_codriver":
1090 return "DoorsCoDriver";
1091 case "doors_cargo1":
1092 return "DoorsCargo1";
1093 case "doors_cargo2":
1094 return "DoorsCargo2";
1095 case "doors_hood":
1096 return "DoorsHood";
1097 case "doors_trunk":
1098 return "DoorsTrunk";
1099 }
1100
1101 return "";
1102 }
1103
1104 override bool IsVitalTruckBattery()
1105 {
1106 return false;
1107 }
1108
1109 override bool IsVitalGlowPlug()
1110 {
1111 return false;
1112 }
1113
1114 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1115 {
1116 switch (currentSeat)
1117 {
1118 case 0:
1119 return nextSeat == 1;
1120
1121 case 1:
1122 return nextSeat == 0;
1123
1124 case 2:
1125 return nextSeat == 3;
1126
1127 case 3:
1128 return nextSeat == 2;
1129 }
1130
1131 return false;
1132 }
1133
1134 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1135 {
1136 switch (pCurrentSeat)
1137 {
1138 case 0:
1139 return pDoorsSelection == "DoorsDriver";
1140
1141 case 1:
1142 return pDoorsSelection == "DoorsCoDriver";
1143
1144 case 2:
1145 return pDoorsSelection == "DoorsCargo1";
1146
1147 case 3:
1148 return pDoorsSelection == "DoorsCargo2";
1149 }
1150
1151 return false;
1152 }
1153
1154 override void OnDebugSpawn()
1155 {
1159
1160 GetInventory().CreateInInventory("CivSedanWheel");
1161 GetInventory().CreateInInventory("CivSedanWheel");
1162 GetInventory().CreateInInventory("CivSedanWheel");
1163 GetInventory().CreateInInventory("CivSedanWheel");
1164
1165 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1166 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1167 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1168 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1169 GetInventory().CreateInInventory("CivSedanHood");
1170 GetInventory().CreateInInventory("CivSedanTrunk");
1171
1172 //-----IN CAR CARGO
1173 GetInventory().CreateInInventory("CivSedanWheel");
1174 GetInventory().CreateInInventory("CivSedanWheel");
1175 }
1176
1177 override float GetPushForceCoefficientMultiplier()
1178 {
1179 return 1.5;
1180 }
1181}
1182
1184{
1185 override void OnDebugSpawn()
1186 {
1190
1191 GetInventory().CreateInInventory("CivSedanWheel");
1192 GetInventory().CreateInInventory("CivSedanWheel");
1193 GetInventory().CreateInInventory("CivSedanWheel");
1194 GetInventory().CreateInInventory("CivSedanWheel");
1195
1196 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1197 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1198 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1199 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1200 GetInventory().CreateInInventory("CivSedanHood_Wine");
1201 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1202
1203 //-----IN CAR CARGO
1204 GetInventory().CreateInInventory("CivSedanWheel");
1205 GetInventory().CreateInInventory("CivSedanWheel");
1206 }
1207}
1208
1210{
1211 override void OnDebugSpawn()
1212 {
1216
1217 GetInventory().CreateInInventory("CivSedanWheel");
1218 GetInventory().CreateInInventory("CivSedanWheel");
1219 GetInventory().CreateInInventory("CivSedanWheel");
1220 GetInventory().CreateInInventory("CivSedanWheel");
1221
1222 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1223 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1224 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1225 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1226 GetInventory().CreateInInventory("CivSedanHood_Black");
1227 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1228
1229 //-----IN CAR CARGO
1230 GetInventory().CreateInInventory("CivSedanWheel");
1231 GetInventory().CreateInInventory("CivSedanWheel");
1232 }
1233}

◆ GetCarDoorsState()

override int GetCarDoorsState ( string slotType)
protected
593{
597
598 void CivilianSedan()
599 {
600 //m_dmgContactCoef = 0.065;
601
602 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
603 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
604 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
605 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
606 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
607
608 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
609 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
610
611 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
612 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
613
614 SetEnginePos("0 0.7 1.6");
615 }
616
617 override void EEInit()
618 {
619 super.EEInit();
620
621 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
622 {
624 m_UTSSettings.m_ManualUpdate = true;
625 m_UTSSettings.m_TemperatureMin = 0;
626 m_UTSSettings.m_TemperatureMax = 30;
627 m_UTSSettings.m_RangeFull = 0.5;
628 m_UTSSettings.m_RangeMax = 2;
629 m_UTSSettings.m_TemperatureCap = 25;
630
633 }
634 }
635
636 override void OnEngineStart()
637 {
638 super.OnEngineStart();
639
640 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
641 {
642 m_UTSource.SetDefferedActive(true, 20.0);
643 }
644 }
645
646 override void OnEngineStop()
647 {
648 super.OnEngineStop();
649
650 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
651 {
652 m_UTSource.SetDefferedActive(false, 10.0);
653 }
654 }
655
656 override void EOnPostSimulate(IEntity other, float timeSlice)
657 {
658 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
659 {
660 if (m_UTSource.IsActive())
661 {
663 }
664 }
665 }
666
667 override int GetAnimInstance()
668 {
669 return VehicleAnimInstances.SEDAN;
670 }
671
672 override float GetTransportCameraDistance()
673 {
674 return 4.5;
675 }
676
677 override int GetSeatAnimationType(int posIdx)
678 {
679 switch (posIdx)
680 {
681 case 0:
682 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
683 case 1:
684 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
685 case 2:
686 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
687 case 3:
688 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
689 }
690
691 return 0;
692 }
693
694 // Override for car-specific light type
696 {
697 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
698 }
699
700 // Override for car-specific light type
702 {
703 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
704 }
705
707 {
708 if( !super.CanReleaseAttachment( attachment ) )
709 return false;
710
711 string attType = attachment.GetType();
712
713 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
714 {
715 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
716 return false;
717 }
718
719 return true;
720 }
721
722 override protected bool CanManipulateSpareWheel(string slotSelectionName)
723 {
724 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
725 }
726
727 override bool CanDisplayAttachmentCategory(string category_name)
728 {
729 //super
730 if (!super.CanDisplayAttachmentCategory(category_name))
731 return false;
732 //
733
734 category_name.ToLower();
735 if (category_name.Contains("engine"))
736 {
737 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
738 return false;
739 }
740
741 return true;
742 }
743
744 override bool CanDisplayCargo()
745 {
746 if ( !super.CanDisplayCargo() )
747 return false;
748
749 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
750 return false;
751
752 return true;
753 }
754
755 override int GetCarDoorsState( string slotType )
756 {
758
759 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
760 if (!carDoor)
761 {
762 return CarDoorState.DOORS_MISSING;
763 }
764
765 switch (slotType)
766 {
767 case "CivSedanDriverDoors":
768 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
769 break;
770
771 case "CivSedanCoDriverDoors":
772 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
773 break;
774
775 case "CivSedanCargo1Doors":
776 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
777 break;
778
779 case "CivSedanCargo2Doors":
780 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
781 break;
782
783 case "CivSedanTrunk":
784 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
785 break;
786
787 case "CivSedanHood":
788 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
789 break;
790 }
791
792 return CarDoorState.DOORS_MISSING;
793 }
794
795
796 override bool CrewCanGetThrough( int posIdx )
797 {
798 switch( posIdx )
799 {
800 case 0:
801 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
802 return false;
803
804 return true;
805 break;
806
807 case 1:
808 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
809 return false;
810
811 return true;
812 break;
813
814 case 2:
815 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
816 return false;
817
818 return true;
819 break;
820
821 case 3:
822 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
823 return false;
824
825 return true;
826 break;
827 }
828
829 return false;
830 }
831
832 override string GetDoorSelectionNameFromSeatPos(int posIdx)
833 {
834 switch( posIdx )
835 {
836 case 0:
837 return "doors_driver";
838 break;
839 case 1:
840 return "doors_codriver";
841 break;
842 case 2:
843 return "doors_cargo1";
844 break;
845 case 3:
846 return "doors_cargo2";
847 break;
848 }
849
850 return super.GetDoorSelectionNameFromSeatPos(posIdx);
851 }
852
853 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
854 {
855 switch( posIdx )
856 {
857 case 0:
858 return "CivSedanDriverDoors";
859 break;
860 case 1:
861 return "CivSedanCoDriverDoors";
862 break;
863 case 2:
864 return "CivSedanCargo1Doors";
865 break;
866 case 3:
867 return "CivSedanCargo2Doors";
868 break;
869 }
870
871 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
872 }
873
874 // 0 full ambient and engine sound
875 // 1 zero ambient and engine sound
876 override float OnSound(CarSoundCtrl ctrl, float oldValue)
877 {
878 switch (ctrl)
879 {
880 case CarSoundCtrl.DOORS:
881 float newValue = 0;
882 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
883 {
884 newValue += 0.25;
885 }
886
887 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
888 {
889 newValue += 0.25;
890 }
891
892 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
893 {
894 newValue += 0.25;
895 }
896
897 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
898 {
899 newValue += 0.25;
900 }
901
902 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
903 {
904 newValue -= 0.6;
905 }
906
907 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
908 {
909 newValue -= 0.6;
910 }
911
912 return Math.Clamp(newValue, 0, 1);
913 break;
914 }
915
916 return super.OnSound(ctrl, oldValue);
917 }
918
919 override string GetAnimSourceFromSelection(string selection)
920 {
921 switch (selection)
922 {
923 case "doors_driver":
924 return "DoorsDriver";
925 case "doors_codriver":
926 return "DoorsCoDriver";
927 case "doors_cargo1":
928 return "DoorsCargo1";
929 case "doors_cargo2":
930 return "DoorsCargo2";
931 case "doors_hood":
932 return "DoorsHood";
933 case "doors_trunk":
934 return "DoorsTrunk";
935 }
936
937 return "";
938 }
939
940 override bool IsVitalTruckBattery()
941 {
942 return false;
943 }
944
945 override bool IsVitalGlowPlug()
946 {
947 return false;
948 }
949
950 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
951 {
952 switch (currentSeat)
953 {
954 case 0:
955 return nextSeat == 1;
956
957 case 1:
958 return nextSeat == 0;
959
960 case 2:
961 return nextSeat == 3;
962
963 case 3:
964 return nextSeat == 2;
965 }
966
967 return false;
968 }
969
970 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
971 {
972 switch (pCurrentSeat)
973 {
974 case 0:
975 return pDoorsSelection == "DoorsDriver";
976
977 case 1:
978 return pDoorsSelection == "DoorsCoDriver";
979
980 case 2:
981 return pDoorsSelection == "DoorsCargo1";
982
983 case 3:
984 return pDoorsSelection == "DoorsCargo2";
985 }
986
987 return false;
988 }
989
990 override void OnDebugSpawn()
991 {
995
996 GetInventory().CreateInInventory("CivSedanWheel");
997 GetInventory().CreateInInventory("CivSedanWheel");
998 GetInventory().CreateInInventory("CivSedanWheel");
999 GetInventory().CreateInInventory("CivSedanWheel");
1000
1001 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1002 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1003 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1004 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1005 GetInventory().CreateInInventory("CivSedanHood");
1006 GetInventory().CreateInInventory("CivSedanTrunk");
1007
1008 //-----IN CAR CARGO
1009 GetInventory().CreateInInventory("CivSedanWheel");
1010 GetInventory().CreateInInventory("CivSedanWheel");
1011 }
1012
1013 override float GetPushForceCoefficientMultiplier()
1014 {
1015 return 1.5;
1016 }
1017}
1018
1020{
1021 override void OnDebugSpawn()
1022 {
1026
1027 GetInventory().CreateInInventory("CivSedanWheel");
1028 GetInventory().CreateInInventory("CivSedanWheel");
1029 GetInventory().CreateInInventory("CivSedanWheel");
1030 GetInventory().CreateInInventory("CivSedanWheel");
1031
1032 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1033 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1034 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1035 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1036 GetInventory().CreateInInventory("CivSedanHood_Wine");
1037 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1038
1039 //-----IN CAR CARGO
1040 GetInventory().CreateInInventory("CivSedanWheel");
1041 GetInventory().CreateInInventory("CivSedanWheel");
1042 }
1043}
1044
1046{
1047 override void OnDebugSpawn()
1048 {
1052
1053 GetInventory().CreateInInventory("CivSedanWheel");
1054 GetInventory().CreateInInventory("CivSedanWheel");
1055 GetInventory().CreateInInventory("CivSedanWheel");
1056 GetInventory().CreateInInventory("CivSedanWheel");
1057
1058 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1059 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1060 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1061 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1062 GetInventory().CreateInInventory("CivSedanHood_Black");
1063 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1064
1065 //-----IN CAR CARGO
1066 GetInventory().CreateInInventory("CivSedanWheel");
1067 GetInventory().CreateInInventory("CivSedanWheel");
1068 }
1069}

Используется в CarScript::CanDisplayAttachmentCategory(), CarScript::CanDisplayCargo(), CarScript::CanManipulateSpareWheel(), CarScript::CanReleaseAttachment(), CarScript::CrewCanGetThrough() и CarScript::OnSound().

◆ GetDoorInvSlotNameFromSeatPos()

override string GetDoorInvSlotNameFromSeatPos ( int posIdx)
protected
691{
695
696 void CivilianSedan()
697 {
698 //m_dmgContactCoef = 0.065;
699
700 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
701 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
702 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
703 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
704 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
705
706 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
707 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
708
709 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
710 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
711
712 SetEnginePos("0 0.7 1.6");
713 }
714
715 override void EEInit()
716 {
717 super.EEInit();
718
719 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
720 {
722 m_UTSSettings.m_ManualUpdate = true;
723 m_UTSSettings.m_TemperatureMin = 0;
724 m_UTSSettings.m_TemperatureMax = 30;
725 m_UTSSettings.m_RangeFull = 0.5;
726 m_UTSSettings.m_RangeMax = 2;
727 m_UTSSettings.m_TemperatureCap = 25;
728
731 }
732 }
733
734 override void OnEngineStart()
735 {
736 super.OnEngineStart();
737
738 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
739 {
740 m_UTSource.SetDefferedActive(true, 20.0);
741 }
742 }
743
744 override void OnEngineStop()
745 {
746 super.OnEngineStop();
747
748 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
749 {
750 m_UTSource.SetDefferedActive(false, 10.0);
751 }
752 }
753
754 override void EOnPostSimulate(IEntity other, float timeSlice)
755 {
756 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
757 {
758 if (m_UTSource.IsActive())
759 {
761 }
762 }
763 }
764
765 override int GetAnimInstance()
766 {
767 return VehicleAnimInstances.SEDAN;
768 }
769
770 override float GetTransportCameraDistance()
771 {
772 return 4.5;
773 }
774
775 override int GetSeatAnimationType(int posIdx)
776 {
777 switch (posIdx)
778 {
779 case 0:
780 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
781 case 1:
782 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
783 case 2:
784 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
785 case 3:
786 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
787 }
788
789 return 0;
790 }
791
792 // Override for car-specific light type
794 {
795 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
796 }
797
798 // Override for car-specific light type
800 {
801 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
802 }
803
805 {
806 if( !super.CanReleaseAttachment( attachment ) )
807 return false;
808
809 string attType = attachment.GetType();
810
811 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
812 {
813 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
814 return false;
815 }
816
817 return true;
818 }
819
820 override protected bool CanManipulateSpareWheel(string slotSelectionName)
821 {
822 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
823 }
824
825 override bool CanDisplayAttachmentCategory(string category_name)
826 {
827 //super
828 if (!super.CanDisplayAttachmentCategory(category_name))
829 return false;
830 //
831
832 category_name.ToLower();
833 if (category_name.Contains("engine"))
834 {
835 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
836 return false;
837 }
838
839 return true;
840 }
841
842 override bool CanDisplayCargo()
843 {
844 if ( !super.CanDisplayCargo() )
845 return false;
846
847 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
848 return false;
849
850 return true;
851 }
852
853 override int GetCarDoorsState( string slotType )
854 {
856
857 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
858 if (!carDoor)
859 {
860 return CarDoorState.DOORS_MISSING;
861 }
862
863 switch (slotType)
864 {
865 case "CivSedanDriverDoors":
866 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
867 break;
868
869 case "CivSedanCoDriverDoors":
870 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
871 break;
872
873 case "CivSedanCargo1Doors":
874 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
875 break;
876
877 case "CivSedanCargo2Doors":
878 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
879 break;
880
881 case "CivSedanTrunk":
882 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
883 break;
884
885 case "CivSedanHood":
886 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
887 break;
888 }
889
890 return CarDoorState.DOORS_MISSING;
891 }
892
893
894 override bool CrewCanGetThrough( int posIdx )
895 {
896 switch( posIdx )
897 {
898 case 0:
899 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
900 return false;
901
902 return true;
903 break;
904
905 case 1:
906 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
907 return false;
908
909 return true;
910 break;
911
912 case 2:
913 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
914 return false;
915
916 return true;
917 break;
918
919 case 3:
920 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
921 return false;
922
923 return true;
924 break;
925 }
926
927 return false;
928 }
929
930 override string GetDoorSelectionNameFromSeatPos(int posIdx)
931 {
932 switch( posIdx )
933 {
934 case 0:
935 return "doors_driver";
936 break;
937 case 1:
938 return "doors_codriver";
939 break;
940 case 2:
941 return "doors_cargo1";
942 break;
943 case 3:
944 return "doors_cargo2";
945 break;
946 }
947
948 return super.GetDoorSelectionNameFromSeatPos(posIdx);
949 }
950
951 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
952 {
953 switch( posIdx )
954 {
955 case 0:
956 return "CivSedanDriverDoors";
957 break;
958 case 1:
959 return "CivSedanCoDriverDoors";
960 break;
961 case 2:
962 return "CivSedanCargo1Doors";
963 break;
964 case 3:
965 return "CivSedanCargo2Doors";
966 break;
967 }
968
969 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
970 }
971
972 // 0 full ambient and engine sound
973 // 1 zero ambient and engine sound
974 override float OnSound(CarSoundCtrl ctrl, float oldValue)
975 {
976 switch (ctrl)
977 {
978 case CarSoundCtrl.DOORS:
979 float newValue = 0;
980 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
981 {
982 newValue += 0.25;
983 }
984
985 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
986 {
987 newValue += 0.25;
988 }
989
990 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
991 {
992 newValue += 0.25;
993 }
994
995 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
996 {
997 newValue += 0.25;
998 }
999
1000 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1001 {
1002 newValue -= 0.6;
1003 }
1004
1005 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1006 {
1007 newValue -= 0.6;
1008 }
1009
1010 return Math.Clamp(newValue, 0, 1);
1011 break;
1012 }
1013
1014 return super.OnSound(ctrl, oldValue);
1015 }
1016
1017 override string GetAnimSourceFromSelection(string selection)
1018 {
1019 switch (selection)
1020 {
1021 case "doors_driver":
1022 return "DoorsDriver";
1023 case "doors_codriver":
1024 return "DoorsCoDriver";
1025 case "doors_cargo1":
1026 return "DoorsCargo1";
1027 case "doors_cargo2":
1028 return "DoorsCargo2";
1029 case "doors_hood":
1030 return "DoorsHood";
1031 case "doors_trunk":
1032 return "DoorsTrunk";
1033 }
1034
1035 return "";
1036 }
1037
1038 override bool IsVitalTruckBattery()
1039 {
1040 return false;
1041 }
1042
1043 override bool IsVitalGlowPlug()
1044 {
1045 return false;
1046 }
1047
1048 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1049 {
1050 switch (currentSeat)
1051 {
1052 case 0:
1053 return nextSeat == 1;
1054
1055 case 1:
1056 return nextSeat == 0;
1057
1058 case 2:
1059 return nextSeat == 3;
1060
1061 case 3:
1062 return nextSeat == 2;
1063 }
1064
1065 return false;
1066 }
1067
1068 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1069 {
1070 switch (pCurrentSeat)
1071 {
1072 case 0:
1073 return pDoorsSelection == "DoorsDriver";
1074
1075 case 1:
1076 return pDoorsSelection == "DoorsCoDriver";
1077
1078 case 2:
1079 return pDoorsSelection == "DoorsCargo1";
1080
1081 case 3:
1082 return pDoorsSelection == "DoorsCargo2";
1083 }
1084
1085 return false;
1086 }
1087
1088 override void OnDebugSpawn()
1089 {
1093
1094 GetInventory().CreateInInventory("CivSedanWheel");
1095 GetInventory().CreateInInventory("CivSedanWheel");
1096 GetInventory().CreateInInventory("CivSedanWheel");
1097 GetInventory().CreateInInventory("CivSedanWheel");
1098
1099 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1100 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1101 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1102 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1103 GetInventory().CreateInInventory("CivSedanHood");
1104 GetInventory().CreateInInventory("CivSedanTrunk");
1105
1106 //-----IN CAR CARGO
1107 GetInventory().CreateInInventory("CivSedanWheel");
1108 GetInventory().CreateInInventory("CivSedanWheel");
1109 }
1110
1111 override float GetPushForceCoefficientMultiplier()
1112 {
1113 return 1.5;
1114 }
1115}
1116
1118{
1119 override void OnDebugSpawn()
1120 {
1124
1125 GetInventory().CreateInInventory("CivSedanWheel");
1126 GetInventory().CreateInInventory("CivSedanWheel");
1127 GetInventory().CreateInInventory("CivSedanWheel");
1128 GetInventory().CreateInInventory("CivSedanWheel");
1129
1130 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1131 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1132 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1133 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1134 GetInventory().CreateInInventory("CivSedanHood_Wine");
1135 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1136
1137 //-----IN CAR CARGO
1138 GetInventory().CreateInInventory("CivSedanWheel");
1139 GetInventory().CreateInInventory("CivSedanWheel");
1140 }
1141}
1142
1144{
1145 override void OnDebugSpawn()
1146 {
1150
1151 GetInventory().CreateInInventory("CivSedanWheel");
1152 GetInventory().CreateInInventory("CivSedanWheel");
1153 GetInventory().CreateInInventory("CivSedanWheel");
1154 GetInventory().CreateInInventory("CivSedanWheel");
1155
1156 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1157 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1158 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1159 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1160 GetInventory().CreateInInventory("CivSedanHood_Black");
1161 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1162
1163 //-----IN CAR CARGO
1164 GetInventory().CreateInInventory("CivSedanWheel");
1165 GetInventory().CreateInInventory("CivSedanWheel");
1166 }
1167}

◆ GetDoorSelectionNameFromSeatPos()

override string GetDoorSelectionNameFromSeatPos ( int posIdx)
protected
670{
674
675 void CivilianSedan()
676 {
677 //m_dmgContactCoef = 0.065;
678
679 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
680 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
681 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
682 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
683 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
684
685 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
686 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
687
688 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
689 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
690
691 SetEnginePos("0 0.7 1.6");
692 }
693
694 override void EEInit()
695 {
696 super.EEInit();
697
698 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
699 {
701 m_UTSSettings.m_ManualUpdate = true;
702 m_UTSSettings.m_TemperatureMin = 0;
703 m_UTSSettings.m_TemperatureMax = 30;
704 m_UTSSettings.m_RangeFull = 0.5;
705 m_UTSSettings.m_RangeMax = 2;
706 m_UTSSettings.m_TemperatureCap = 25;
707
710 }
711 }
712
713 override void OnEngineStart()
714 {
715 super.OnEngineStart();
716
717 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
718 {
719 m_UTSource.SetDefferedActive(true, 20.0);
720 }
721 }
722
723 override void OnEngineStop()
724 {
725 super.OnEngineStop();
726
727 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
728 {
729 m_UTSource.SetDefferedActive(false, 10.0);
730 }
731 }
732
733 override void EOnPostSimulate(IEntity other, float timeSlice)
734 {
735 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
736 {
737 if (m_UTSource.IsActive())
738 {
740 }
741 }
742 }
743
744 override int GetAnimInstance()
745 {
746 return VehicleAnimInstances.SEDAN;
747 }
748
749 override float GetTransportCameraDistance()
750 {
751 return 4.5;
752 }
753
754 override int GetSeatAnimationType(int posIdx)
755 {
756 switch (posIdx)
757 {
758 case 0:
759 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
760 case 1:
761 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
762 case 2:
763 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
764 case 3:
765 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
766 }
767
768 return 0;
769 }
770
771 // Override for car-specific light type
773 {
774 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
775 }
776
777 // Override for car-specific light type
779 {
780 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
781 }
782
784 {
785 if( !super.CanReleaseAttachment( attachment ) )
786 return false;
787
788 string attType = attachment.GetType();
789
790 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
791 {
792 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
793 return false;
794 }
795
796 return true;
797 }
798
799 override protected bool CanManipulateSpareWheel(string slotSelectionName)
800 {
801 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
802 }
803
804 override bool CanDisplayAttachmentCategory(string category_name)
805 {
806 //super
807 if (!super.CanDisplayAttachmentCategory(category_name))
808 return false;
809 //
810
811 category_name.ToLower();
812 if (category_name.Contains("engine"))
813 {
814 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
815 return false;
816 }
817
818 return true;
819 }
820
821 override bool CanDisplayCargo()
822 {
823 if ( !super.CanDisplayCargo() )
824 return false;
825
826 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
827 return false;
828
829 return true;
830 }
831
832 override int GetCarDoorsState( string slotType )
833 {
835
836 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
837 if (!carDoor)
838 {
839 return CarDoorState.DOORS_MISSING;
840 }
841
842 switch (slotType)
843 {
844 case "CivSedanDriverDoors":
845 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
846 break;
847
848 case "CivSedanCoDriverDoors":
849 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
850 break;
851
852 case "CivSedanCargo1Doors":
853 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
854 break;
855
856 case "CivSedanCargo2Doors":
857 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
858 break;
859
860 case "CivSedanTrunk":
861 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
862 break;
863
864 case "CivSedanHood":
865 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
866 break;
867 }
868
869 return CarDoorState.DOORS_MISSING;
870 }
871
872
873 override bool CrewCanGetThrough( int posIdx )
874 {
875 switch( posIdx )
876 {
877 case 0:
878 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
879 return false;
880
881 return true;
882 break;
883
884 case 1:
885 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
886 return false;
887
888 return true;
889 break;
890
891 case 2:
892 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
893 return false;
894
895 return true;
896 break;
897
898 case 3:
899 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
900 return false;
901
902 return true;
903 break;
904 }
905
906 return false;
907 }
908
909 override string GetDoorSelectionNameFromSeatPos(int posIdx)
910 {
911 switch( posIdx )
912 {
913 case 0:
914 return "doors_driver";
915 break;
916 case 1:
917 return "doors_codriver";
918 break;
919 case 2:
920 return "doors_cargo1";
921 break;
922 case 3:
923 return "doors_cargo2";
924 break;
925 }
926
927 return super.GetDoorSelectionNameFromSeatPos(posIdx);
928 }
929
930 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
931 {
932 switch( posIdx )
933 {
934 case 0:
935 return "CivSedanDriverDoors";
936 break;
937 case 1:
938 return "CivSedanCoDriverDoors";
939 break;
940 case 2:
941 return "CivSedanCargo1Doors";
942 break;
943 case 3:
944 return "CivSedanCargo2Doors";
945 break;
946 }
947
948 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
949 }
950
951 // 0 full ambient and engine sound
952 // 1 zero ambient and engine sound
953 override float OnSound(CarSoundCtrl ctrl, float oldValue)
954 {
955 switch (ctrl)
956 {
957 case CarSoundCtrl.DOORS:
958 float newValue = 0;
959 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
960 {
961 newValue += 0.25;
962 }
963
964 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
965 {
966 newValue += 0.25;
967 }
968
969 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
970 {
971 newValue += 0.25;
972 }
973
974 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
975 {
976 newValue += 0.25;
977 }
978
979 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
980 {
981 newValue -= 0.6;
982 }
983
984 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
985 {
986 newValue -= 0.6;
987 }
988
989 return Math.Clamp(newValue, 0, 1);
990 break;
991 }
992
993 return super.OnSound(ctrl, oldValue);
994 }
995
996 override string GetAnimSourceFromSelection(string selection)
997 {
998 switch (selection)
999 {
1000 case "doors_driver":
1001 return "DoorsDriver";
1002 case "doors_codriver":
1003 return "DoorsCoDriver";
1004 case "doors_cargo1":
1005 return "DoorsCargo1";
1006 case "doors_cargo2":
1007 return "DoorsCargo2";
1008 case "doors_hood":
1009 return "DoorsHood";
1010 case "doors_trunk":
1011 return "DoorsTrunk";
1012 }
1013
1014 return "";
1015 }
1016
1017 override bool IsVitalTruckBattery()
1018 {
1019 return false;
1020 }
1021
1022 override bool IsVitalGlowPlug()
1023 {
1024 return false;
1025 }
1026
1027 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1028 {
1029 switch (currentSeat)
1030 {
1031 case 0:
1032 return nextSeat == 1;
1033
1034 case 1:
1035 return nextSeat == 0;
1036
1037 case 2:
1038 return nextSeat == 3;
1039
1040 case 3:
1041 return nextSeat == 2;
1042 }
1043
1044 return false;
1045 }
1046
1047 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1048 {
1049 switch (pCurrentSeat)
1050 {
1051 case 0:
1052 return pDoorsSelection == "DoorsDriver";
1053
1054 case 1:
1055 return pDoorsSelection == "DoorsCoDriver";
1056
1057 case 2:
1058 return pDoorsSelection == "DoorsCargo1";
1059
1060 case 3:
1061 return pDoorsSelection == "DoorsCargo2";
1062 }
1063
1064 return false;
1065 }
1066
1067 override void OnDebugSpawn()
1068 {
1072
1073 GetInventory().CreateInInventory("CivSedanWheel");
1074 GetInventory().CreateInInventory("CivSedanWheel");
1075 GetInventory().CreateInInventory("CivSedanWheel");
1076 GetInventory().CreateInInventory("CivSedanWheel");
1077
1078 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1079 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1080 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1081 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1082 GetInventory().CreateInInventory("CivSedanHood");
1083 GetInventory().CreateInInventory("CivSedanTrunk");
1084
1085 //-----IN CAR CARGO
1086 GetInventory().CreateInInventory("CivSedanWheel");
1087 GetInventory().CreateInInventory("CivSedanWheel");
1088 }
1089
1090 override float GetPushForceCoefficientMultiplier()
1091 {
1092 return 1.5;
1093 }
1094}
1095
1097{
1098 override void OnDebugSpawn()
1099 {
1103
1104 GetInventory().CreateInInventory("CivSedanWheel");
1105 GetInventory().CreateInInventory("CivSedanWheel");
1106 GetInventory().CreateInInventory("CivSedanWheel");
1107 GetInventory().CreateInInventory("CivSedanWheel");
1108
1109 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1110 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1111 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1112 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1113 GetInventory().CreateInInventory("CivSedanHood_Wine");
1114 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1115
1116 //-----IN CAR CARGO
1117 GetInventory().CreateInInventory("CivSedanWheel");
1118 GetInventory().CreateInInventory("CivSedanWheel");
1119 }
1120}
1121
1123{
1124 override void OnDebugSpawn()
1125 {
1129
1130 GetInventory().CreateInInventory("CivSedanWheel");
1131 GetInventory().CreateInInventory("CivSedanWheel");
1132 GetInventory().CreateInInventory("CivSedanWheel");
1133 GetInventory().CreateInInventory("CivSedanWheel");
1134
1135 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1136 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1137 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1138 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1139 GetInventory().CreateInInventory("CivSedanHood_Black");
1140 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1141
1142 //-----IN CAR CARGO
1143 GetInventory().CreateInInventory("CivSedanWheel");
1144 GetInventory().CreateInInventory("CivSedanWheel");
1145 }
1146}

◆ GetPushForceCoefficientMultiplier()

override float GetPushForceCoefficientMultiplier ( )
protected
851{
855
856 void CivilianSedan()
857 {
858 //m_dmgContactCoef = 0.065;
859
860 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
861 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
862 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
863 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
864 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
865
866 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
867 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
868
869 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
870 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
871
872 SetEnginePos("0 0.7 1.6");
873 }
874
875 override void EEInit()
876 {
877 super.EEInit();
878
879 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
880 {
882 m_UTSSettings.m_ManualUpdate = true;
883 m_UTSSettings.m_TemperatureMin = 0;
884 m_UTSSettings.m_TemperatureMax = 30;
885 m_UTSSettings.m_RangeFull = 0.5;
886 m_UTSSettings.m_RangeMax = 2;
887 m_UTSSettings.m_TemperatureCap = 25;
888
891 }
892 }
893
894 override void OnEngineStart()
895 {
896 super.OnEngineStart();
897
898 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
899 {
900 m_UTSource.SetDefferedActive(true, 20.0);
901 }
902 }
903
904 override void OnEngineStop()
905 {
906 super.OnEngineStop();
907
908 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
909 {
910 m_UTSource.SetDefferedActive(false, 10.0);
911 }
912 }
913
914 override void EOnPostSimulate(IEntity other, float timeSlice)
915 {
916 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
917 {
918 if (m_UTSource.IsActive())
919 {
921 }
922 }
923 }
924
925 override int GetAnimInstance()
926 {
927 return VehicleAnimInstances.SEDAN;
928 }
929
930 override float GetTransportCameraDistance()
931 {
932 return 4.5;
933 }
934
935 override int GetSeatAnimationType(int posIdx)
936 {
937 switch (posIdx)
938 {
939 case 0:
940 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
941 case 1:
942 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
943 case 2:
944 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
945 case 3:
946 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
947 }
948
949 return 0;
950 }
951
952 // Override for car-specific light type
954 {
955 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
956 }
957
958 // Override for car-specific light type
960 {
961 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
962 }
963
965 {
966 if( !super.CanReleaseAttachment( attachment ) )
967 return false;
968
969 string attType = attachment.GetType();
970
971 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
972 {
973 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
974 return false;
975 }
976
977 return true;
978 }
979
980 override protected bool CanManipulateSpareWheel(string slotSelectionName)
981 {
982 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
983 }
984
985 override bool CanDisplayAttachmentCategory(string category_name)
986 {
987 //super
988 if (!super.CanDisplayAttachmentCategory(category_name))
989 return false;
990 //
991
992 category_name.ToLower();
993 if (category_name.Contains("engine"))
994 {
995 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
996 return false;
997 }
998
999 return true;
1000 }
1001
1002 override bool CanDisplayCargo()
1003 {
1004 if ( !super.CanDisplayCargo() )
1005 return false;
1006
1007 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
1008 return false;
1009
1010 return true;
1011 }
1012
1013 override int GetCarDoorsState( string slotType )
1014 {
1016
1017 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1018 if (!carDoor)
1019 {
1020 return CarDoorState.DOORS_MISSING;
1021 }
1022
1023 switch (slotType)
1024 {
1025 case "CivSedanDriverDoors":
1026 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1027 break;
1028
1029 case "CivSedanCoDriverDoors":
1030 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1031 break;
1032
1033 case "CivSedanCargo1Doors":
1034 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1035 break;
1036
1037 case "CivSedanCargo2Doors":
1038 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1039 break;
1040
1041 case "CivSedanTrunk":
1042 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1043 break;
1044
1045 case "CivSedanHood":
1046 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1047 break;
1048 }
1049
1050 return CarDoorState.DOORS_MISSING;
1051 }
1052
1053
1054 override bool CrewCanGetThrough( int posIdx )
1055 {
1056 switch( posIdx )
1057 {
1058 case 0:
1059 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
1060 return false;
1061
1062 return true;
1063 break;
1064
1065 case 1:
1066 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
1067 return false;
1068
1069 return true;
1070 break;
1071
1072 case 2:
1073 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1074 return false;
1075
1076 return true;
1077 break;
1078
1079 case 3:
1080 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
1081 return false;
1082
1083 return true;
1084 break;
1085 }
1086
1087 return false;
1088 }
1089
1090 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1091 {
1092 switch( posIdx )
1093 {
1094 case 0:
1095 return "doors_driver";
1096 break;
1097 case 1:
1098 return "doors_codriver";
1099 break;
1100 case 2:
1101 return "doors_cargo1";
1102 break;
1103 case 3:
1104 return "doors_cargo2";
1105 break;
1106 }
1107
1108 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1109 }
1110
1111 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1112 {
1113 switch( posIdx )
1114 {
1115 case 0:
1116 return "CivSedanDriverDoors";
1117 break;
1118 case 1:
1119 return "CivSedanCoDriverDoors";
1120 break;
1121 case 2:
1122 return "CivSedanCargo1Doors";
1123 break;
1124 case 3:
1125 return "CivSedanCargo2Doors";
1126 break;
1127 }
1128
1129 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1130 }
1131
1132 // 0 full ambient and engine sound
1133 // 1 zero ambient and engine sound
1134 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1135 {
1136 switch (ctrl)
1137 {
1138 case CarSoundCtrl.DOORS:
1139 float newValue = 0;
1140 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1141 {
1142 newValue += 0.25;
1143 }
1144
1145 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1146 {
1147 newValue += 0.25;
1148 }
1149
1150 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1151 {
1152 newValue += 0.25;
1153 }
1154
1155 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1156 {
1157 newValue += 0.25;
1158 }
1159
1160 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1161 {
1162 newValue -= 0.6;
1163 }
1164
1165 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1166 {
1167 newValue -= 0.6;
1168 }
1169
1170 return Math.Clamp(newValue, 0, 1);
1171 break;
1172 }
1173
1174 return super.OnSound(ctrl, oldValue);
1175 }
1176
1177 override string GetAnimSourceFromSelection(string selection)
1178 {
1179 switch (selection)
1180 {
1181 case "doors_driver":
1182 return "DoorsDriver";
1183 case "doors_codriver":
1184 return "DoorsCoDriver";
1185 case "doors_cargo1":
1186 return "DoorsCargo1";
1187 case "doors_cargo2":
1188 return "DoorsCargo2";
1189 case "doors_hood":
1190 return "DoorsHood";
1191 case "doors_trunk":
1192 return "DoorsTrunk";
1193 }
1194
1195 return "";
1196 }
1197
1198 override bool IsVitalTruckBattery()
1199 {
1200 return false;
1201 }
1202
1203 override bool IsVitalGlowPlug()
1204 {
1205 return false;
1206 }
1207
1208 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1209 {
1210 switch (currentSeat)
1211 {
1212 case 0:
1213 return nextSeat == 1;
1214
1215 case 1:
1216 return nextSeat == 0;
1217
1218 case 2:
1219 return nextSeat == 3;
1220
1221 case 3:
1222 return nextSeat == 2;
1223 }
1224
1225 return false;
1226 }
1227
1228 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1229 {
1230 switch (pCurrentSeat)
1231 {
1232 case 0:
1233 return pDoorsSelection == "DoorsDriver";
1234
1235 case 1:
1236 return pDoorsSelection == "DoorsCoDriver";
1237
1238 case 2:
1239 return pDoorsSelection == "DoorsCargo1";
1240
1241 case 3:
1242 return pDoorsSelection == "DoorsCargo2";
1243 }
1244
1245 return false;
1246 }
1247
1248 override void OnDebugSpawn()
1249 {
1253
1254 GetInventory().CreateInInventory("CivSedanWheel");
1255 GetInventory().CreateInInventory("CivSedanWheel");
1256 GetInventory().CreateInInventory("CivSedanWheel");
1257 GetInventory().CreateInInventory("CivSedanWheel");
1258
1259 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1260 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1261 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1262 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1263 GetInventory().CreateInInventory("CivSedanHood");
1264 GetInventory().CreateInInventory("CivSedanTrunk");
1265
1266 //-----IN CAR CARGO
1267 GetInventory().CreateInInventory("CivSedanWheel");
1268 GetInventory().CreateInInventory("CivSedanWheel");
1269 }
1270
1271 override float GetPushForceCoefficientMultiplier()
1272 {
1273 return 1.5;
1274 }
1275}
1276
1278{
1279 override void OnDebugSpawn()
1280 {
1284
1285 GetInventory().CreateInInventory("CivSedanWheel");
1286 GetInventory().CreateInInventory("CivSedanWheel");
1287 GetInventory().CreateInInventory("CivSedanWheel");
1288 GetInventory().CreateInInventory("CivSedanWheel");
1289
1290 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1291 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1292 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1293 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1294 GetInventory().CreateInInventory("CivSedanHood_Wine");
1295 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1296
1297 //-----IN CAR CARGO
1298 GetInventory().CreateInInventory("CivSedanWheel");
1299 GetInventory().CreateInInventory("CivSedanWheel");
1300 }
1301}
1302
1304{
1305 override void OnDebugSpawn()
1306 {
1310
1311 GetInventory().CreateInInventory("CivSedanWheel");
1312 GetInventory().CreateInInventory("CivSedanWheel");
1313 GetInventory().CreateInInventory("CivSedanWheel");
1314 GetInventory().CreateInInventory("CivSedanWheel");
1315
1316 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1317 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1318 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1319 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1320 GetInventory().CreateInInventory("CivSedanHood_Black");
1321 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1322
1323 //-----IN CAR CARGO
1324 GetInventory().CreateInInventory("CivSedanWheel");
1325 GetInventory().CreateInInventory("CivSedanWheel");
1326 }
1327}

◆ GetSeatAnimationType()

override int GetSeatAnimationType ( int posIdx)
protected
515{
519
520 void CivilianSedan()
521 {
522 //m_dmgContactCoef = 0.065;
523
524 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
525 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
526 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
527 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
528 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
529
530 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
531 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
532
533 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
534 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
535
536 SetEnginePos("0 0.7 1.6");
537 }
538
539 override void EEInit()
540 {
541 super.EEInit();
542
543 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
544 {
546 m_UTSSettings.m_ManualUpdate = true;
547 m_UTSSettings.m_TemperatureMin = 0;
548 m_UTSSettings.m_TemperatureMax = 30;
549 m_UTSSettings.m_RangeFull = 0.5;
550 m_UTSSettings.m_RangeMax = 2;
551 m_UTSSettings.m_TemperatureCap = 25;
552
555 }
556 }
557
558 override void OnEngineStart()
559 {
560 super.OnEngineStart();
561
562 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
563 {
564 m_UTSource.SetDefferedActive(true, 20.0);
565 }
566 }
567
568 override void OnEngineStop()
569 {
570 super.OnEngineStop();
571
572 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
573 {
574 m_UTSource.SetDefferedActive(false, 10.0);
575 }
576 }
577
578 override void EOnPostSimulate(IEntity other, float timeSlice)
579 {
580 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
581 {
582 if (m_UTSource.IsActive())
583 {
585 }
586 }
587 }
588
589 override int GetAnimInstance()
590 {
591 return VehicleAnimInstances.SEDAN;
592 }
593
594 override float GetTransportCameraDistance()
595 {
596 return 4.5;
597 }
598
599 override int GetSeatAnimationType(int posIdx)
600 {
601 switch (posIdx)
602 {
603 case 0:
604 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
605 case 1:
606 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
607 case 2:
608 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
609 case 3:
610 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
611 }
612
613 return 0;
614 }
615
616 // Override for car-specific light type
618 {
619 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
620 }
621
622 // Override for car-specific light type
624 {
625 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
626 }
627
629 {
630 if( !super.CanReleaseAttachment( attachment ) )
631 return false;
632
633 string attType = attachment.GetType();
634
635 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
636 {
637 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
638 return false;
639 }
640
641 return true;
642 }
643
644 override protected bool CanManipulateSpareWheel(string slotSelectionName)
645 {
646 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
647 }
648
649 override bool CanDisplayAttachmentCategory(string category_name)
650 {
651 //super
652 if (!super.CanDisplayAttachmentCategory(category_name))
653 return false;
654 //
655
656 category_name.ToLower();
657 if (category_name.Contains("engine"))
658 {
659 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
660 return false;
661 }
662
663 return true;
664 }
665
666 override bool CanDisplayCargo()
667 {
668 if ( !super.CanDisplayCargo() )
669 return false;
670
671 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
672 return false;
673
674 return true;
675 }
676
677 override int GetCarDoorsState( string slotType )
678 {
680
681 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
682 if (!carDoor)
683 {
684 return CarDoorState.DOORS_MISSING;
685 }
686
687 switch (slotType)
688 {
689 case "CivSedanDriverDoors":
690 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
691 break;
692
693 case "CivSedanCoDriverDoors":
694 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
695 break;
696
697 case "CivSedanCargo1Doors":
698 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
699 break;
700
701 case "CivSedanCargo2Doors":
702 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
703 break;
704
705 case "CivSedanTrunk":
706 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
707 break;
708
709 case "CivSedanHood":
710 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
711 break;
712 }
713
714 return CarDoorState.DOORS_MISSING;
715 }
716
717
718 override bool CrewCanGetThrough( int posIdx )
719 {
720 switch( posIdx )
721 {
722 case 0:
723 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
724 return false;
725
726 return true;
727 break;
728
729 case 1:
730 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
731 return false;
732
733 return true;
734 break;
735
736 case 2:
737 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
738 return false;
739
740 return true;
741 break;
742
743 case 3:
744 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
745 return false;
746
747 return true;
748 break;
749 }
750
751 return false;
752 }
753
754 override string GetDoorSelectionNameFromSeatPos(int posIdx)
755 {
756 switch( posIdx )
757 {
758 case 0:
759 return "doors_driver";
760 break;
761 case 1:
762 return "doors_codriver";
763 break;
764 case 2:
765 return "doors_cargo1";
766 break;
767 case 3:
768 return "doors_cargo2";
769 break;
770 }
771
772 return super.GetDoorSelectionNameFromSeatPos(posIdx);
773 }
774
775 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
776 {
777 switch( posIdx )
778 {
779 case 0:
780 return "CivSedanDriverDoors";
781 break;
782 case 1:
783 return "CivSedanCoDriverDoors";
784 break;
785 case 2:
786 return "CivSedanCargo1Doors";
787 break;
788 case 3:
789 return "CivSedanCargo2Doors";
790 break;
791 }
792
793 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
794 }
795
796 // 0 full ambient and engine sound
797 // 1 zero ambient and engine sound
798 override float OnSound(CarSoundCtrl ctrl, float oldValue)
799 {
800 switch (ctrl)
801 {
802 case CarSoundCtrl.DOORS:
803 float newValue = 0;
804 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
805 {
806 newValue += 0.25;
807 }
808
809 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
810 {
811 newValue += 0.25;
812 }
813
814 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
815 {
816 newValue += 0.25;
817 }
818
819 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
820 {
821 newValue += 0.25;
822 }
823
824 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
825 {
826 newValue -= 0.6;
827 }
828
829 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
830 {
831 newValue -= 0.6;
832 }
833
834 return Math.Clamp(newValue, 0, 1);
835 break;
836 }
837
838 return super.OnSound(ctrl, oldValue);
839 }
840
841 override string GetAnimSourceFromSelection(string selection)
842 {
843 switch (selection)
844 {
845 case "doors_driver":
846 return "DoorsDriver";
847 case "doors_codriver":
848 return "DoorsCoDriver";
849 case "doors_cargo1":
850 return "DoorsCargo1";
851 case "doors_cargo2":
852 return "DoorsCargo2";
853 case "doors_hood":
854 return "DoorsHood";
855 case "doors_trunk":
856 return "DoorsTrunk";
857 }
858
859 return "";
860 }
861
862 override bool IsVitalTruckBattery()
863 {
864 return false;
865 }
866
867 override bool IsVitalGlowPlug()
868 {
869 return false;
870 }
871
872 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
873 {
874 switch (currentSeat)
875 {
876 case 0:
877 return nextSeat == 1;
878
879 case 1:
880 return nextSeat == 0;
881
882 case 2:
883 return nextSeat == 3;
884
885 case 3:
886 return nextSeat == 2;
887 }
888
889 return false;
890 }
891
892 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
893 {
894 switch (pCurrentSeat)
895 {
896 case 0:
897 return pDoorsSelection == "DoorsDriver";
898
899 case 1:
900 return pDoorsSelection == "DoorsCoDriver";
901
902 case 2:
903 return pDoorsSelection == "DoorsCargo1";
904
905 case 3:
906 return pDoorsSelection == "DoorsCargo2";
907 }
908
909 return false;
910 }
911
912 override void OnDebugSpawn()
913 {
917
918 GetInventory().CreateInInventory("CivSedanWheel");
919 GetInventory().CreateInInventory("CivSedanWheel");
920 GetInventory().CreateInInventory("CivSedanWheel");
921 GetInventory().CreateInInventory("CivSedanWheel");
922
923 GetInventory().CreateInInventory("CivSedanDoors_Driver");
924 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
925 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
926 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
927 GetInventory().CreateInInventory("CivSedanHood");
928 GetInventory().CreateInInventory("CivSedanTrunk");
929
930 //-----IN CAR CARGO
931 GetInventory().CreateInInventory("CivSedanWheel");
932 GetInventory().CreateInInventory("CivSedanWheel");
933 }
934
935 override float GetPushForceCoefficientMultiplier()
936 {
937 return 1.5;
938 }
939}
940
942{
943 override void OnDebugSpawn()
944 {
948
949 GetInventory().CreateInInventory("CivSedanWheel");
950 GetInventory().CreateInInventory("CivSedanWheel");
951 GetInventory().CreateInInventory("CivSedanWheel");
952 GetInventory().CreateInInventory("CivSedanWheel");
953
954 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
955 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
956 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
957 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
958 GetInventory().CreateInInventory("CivSedanHood_Wine");
959 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
960
961 //-----IN CAR CARGO
962 GetInventory().CreateInInventory("CivSedanWheel");
963 GetInventory().CreateInInventory("CivSedanWheel");
964 }
965}
966
968{
969 override void OnDebugSpawn()
970 {
974
975 GetInventory().CreateInInventory("CivSedanWheel");
976 GetInventory().CreateInInventory("CivSedanWheel");
977 GetInventory().CreateInInventory("CivSedanWheel");
978 GetInventory().CreateInInventory("CivSedanWheel");
979
980 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
981 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
982 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
983 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
984 GetInventory().CreateInInventory("CivSedanHood_Black");
985 GetInventory().CreateInInventory("CivSedanTrunk_Black");
986
987 //-----IN CAR CARGO
988 GetInventory().CreateInInventory("CivSedanWheel");
989 GetInventory().CreateInInventory("CivSedanWheel");
990 }
991}

◆ GetTransportCameraDistance()

override float GetTransportCameraDistance ( )
protected
510{
514
515 void CivilianSedan()
516 {
517 //m_dmgContactCoef = 0.065;
518
519 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
520 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
521 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
522 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
523 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
524
525 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
526 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
527
528 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
529 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
530
531 SetEnginePos("0 0.7 1.6");
532 }
533
534 override void EEInit()
535 {
536 super.EEInit();
537
538 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
539 {
541 m_UTSSettings.m_ManualUpdate = true;
542 m_UTSSettings.m_TemperatureMin = 0;
543 m_UTSSettings.m_TemperatureMax = 30;
544 m_UTSSettings.m_RangeFull = 0.5;
545 m_UTSSettings.m_RangeMax = 2;
546 m_UTSSettings.m_TemperatureCap = 25;
547
550 }
551 }
552
553 override void OnEngineStart()
554 {
555 super.OnEngineStart();
556
557 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
558 {
559 m_UTSource.SetDefferedActive(true, 20.0);
560 }
561 }
562
563 override void OnEngineStop()
564 {
565 super.OnEngineStop();
566
567 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
568 {
569 m_UTSource.SetDefferedActive(false, 10.0);
570 }
571 }
572
573 override void EOnPostSimulate(IEntity other, float timeSlice)
574 {
575 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
576 {
577 if (m_UTSource.IsActive())
578 {
580 }
581 }
582 }
583
584 override int GetAnimInstance()
585 {
586 return VehicleAnimInstances.SEDAN;
587 }
588
589 override float GetTransportCameraDistance()
590 {
591 return 4.5;
592 }
593
594 override int GetSeatAnimationType(int posIdx)
595 {
596 switch (posIdx)
597 {
598 case 0:
599 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
600 case 1:
601 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
602 case 2:
603 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
604 case 3:
605 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
606 }
607
608 return 0;
609 }
610
611 // Override for car-specific light type
613 {
614 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
615 }
616
617 // Override for car-specific light type
619 {
620 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
621 }
622
624 {
625 if( !super.CanReleaseAttachment( attachment ) )
626 return false;
627
628 string attType = attachment.GetType();
629
630 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
631 {
632 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
633 return false;
634 }
635
636 return true;
637 }
638
639 override protected bool CanManipulateSpareWheel(string slotSelectionName)
640 {
641 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
642 }
643
644 override bool CanDisplayAttachmentCategory(string category_name)
645 {
646 //super
647 if (!super.CanDisplayAttachmentCategory(category_name))
648 return false;
649 //
650
651 category_name.ToLower();
652 if (category_name.Contains("engine"))
653 {
654 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
655 return false;
656 }
657
658 return true;
659 }
660
661 override bool CanDisplayCargo()
662 {
663 if ( !super.CanDisplayCargo() )
664 return false;
665
666 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
667 return false;
668
669 return true;
670 }
671
672 override int GetCarDoorsState( string slotType )
673 {
675
676 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
677 if (!carDoor)
678 {
679 return CarDoorState.DOORS_MISSING;
680 }
681
682 switch (slotType)
683 {
684 case "CivSedanDriverDoors":
685 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
686 break;
687
688 case "CivSedanCoDriverDoors":
689 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
690 break;
691
692 case "CivSedanCargo1Doors":
693 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
694 break;
695
696 case "CivSedanCargo2Doors":
697 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
698 break;
699
700 case "CivSedanTrunk":
701 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
702 break;
703
704 case "CivSedanHood":
705 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
706 break;
707 }
708
709 return CarDoorState.DOORS_MISSING;
710 }
711
712
713 override bool CrewCanGetThrough( int posIdx )
714 {
715 switch( posIdx )
716 {
717 case 0:
718 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
719 return false;
720
721 return true;
722 break;
723
724 case 1:
725 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
726 return false;
727
728 return true;
729 break;
730
731 case 2:
732 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
733 return false;
734
735 return true;
736 break;
737
738 case 3:
739 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
740 return false;
741
742 return true;
743 break;
744 }
745
746 return false;
747 }
748
749 override string GetDoorSelectionNameFromSeatPos(int posIdx)
750 {
751 switch( posIdx )
752 {
753 case 0:
754 return "doors_driver";
755 break;
756 case 1:
757 return "doors_codriver";
758 break;
759 case 2:
760 return "doors_cargo1";
761 break;
762 case 3:
763 return "doors_cargo2";
764 break;
765 }
766
767 return super.GetDoorSelectionNameFromSeatPos(posIdx);
768 }
769
770 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
771 {
772 switch( posIdx )
773 {
774 case 0:
775 return "CivSedanDriverDoors";
776 break;
777 case 1:
778 return "CivSedanCoDriverDoors";
779 break;
780 case 2:
781 return "CivSedanCargo1Doors";
782 break;
783 case 3:
784 return "CivSedanCargo2Doors";
785 break;
786 }
787
788 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
789 }
790
791 // 0 full ambient and engine sound
792 // 1 zero ambient and engine sound
793 override float OnSound(CarSoundCtrl ctrl, float oldValue)
794 {
795 switch (ctrl)
796 {
797 case CarSoundCtrl.DOORS:
798 float newValue = 0;
799 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
800 {
801 newValue += 0.25;
802 }
803
804 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
805 {
806 newValue += 0.25;
807 }
808
809 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
810 {
811 newValue += 0.25;
812 }
813
814 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
815 {
816 newValue += 0.25;
817 }
818
819 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
820 {
821 newValue -= 0.6;
822 }
823
824 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
825 {
826 newValue -= 0.6;
827 }
828
829 return Math.Clamp(newValue, 0, 1);
830 break;
831 }
832
833 return super.OnSound(ctrl, oldValue);
834 }
835
836 override string GetAnimSourceFromSelection(string selection)
837 {
838 switch (selection)
839 {
840 case "doors_driver":
841 return "DoorsDriver";
842 case "doors_codriver":
843 return "DoorsCoDriver";
844 case "doors_cargo1":
845 return "DoorsCargo1";
846 case "doors_cargo2":
847 return "DoorsCargo2";
848 case "doors_hood":
849 return "DoorsHood";
850 case "doors_trunk":
851 return "DoorsTrunk";
852 }
853
854 return "";
855 }
856
857 override bool IsVitalTruckBattery()
858 {
859 return false;
860 }
861
862 override bool IsVitalGlowPlug()
863 {
864 return false;
865 }
866
867 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
868 {
869 switch (currentSeat)
870 {
871 case 0:
872 return nextSeat == 1;
873
874 case 1:
875 return nextSeat == 0;
876
877 case 2:
878 return nextSeat == 3;
879
880 case 3:
881 return nextSeat == 2;
882 }
883
884 return false;
885 }
886
887 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
888 {
889 switch (pCurrentSeat)
890 {
891 case 0:
892 return pDoorsSelection == "DoorsDriver";
893
894 case 1:
895 return pDoorsSelection == "DoorsCoDriver";
896
897 case 2:
898 return pDoorsSelection == "DoorsCargo1";
899
900 case 3:
901 return pDoorsSelection == "DoorsCargo2";
902 }
903
904 return false;
905 }
906
907 override void OnDebugSpawn()
908 {
912
913 GetInventory().CreateInInventory("CivSedanWheel");
914 GetInventory().CreateInInventory("CivSedanWheel");
915 GetInventory().CreateInInventory("CivSedanWheel");
916 GetInventory().CreateInInventory("CivSedanWheel");
917
918 GetInventory().CreateInInventory("CivSedanDoors_Driver");
919 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
920 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
921 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
922 GetInventory().CreateInInventory("CivSedanHood");
923 GetInventory().CreateInInventory("CivSedanTrunk");
924
925 //-----IN CAR CARGO
926 GetInventory().CreateInInventory("CivSedanWheel");
927 GetInventory().CreateInInventory("CivSedanWheel");
928 }
929
930 override float GetPushForceCoefficientMultiplier()
931 {
932 return 1.5;
933 }
934}
935
937{
938 override void OnDebugSpawn()
939 {
943
944 GetInventory().CreateInInventory("CivSedanWheel");
945 GetInventory().CreateInInventory("CivSedanWheel");
946 GetInventory().CreateInInventory("CivSedanWheel");
947 GetInventory().CreateInInventory("CivSedanWheel");
948
949 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
950 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
951 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
952 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
953 GetInventory().CreateInInventory("CivSedanHood_Wine");
954 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
955
956 //-----IN CAR CARGO
957 GetInventory().CreateInInventory("CivSedanWheel");
958 GetInventory().CreateInInventory("CivSedanWheel");
959 }
960}
961
963{
964 override void OnDebugSpawn()
965 {
969
970 GetInventory().CreateInInventory("CivSedanWheel");
971 GetInventory().CreateInInventory("CivSedanWheel");
972 GetInventory().CreateInInventory("CivSedanWheel");
973 GetInventory().CreateInInventory("CivSedanWheel");
974
975 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
976 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
977 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
978 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
979 GetInventory().CreateInInventory("CivSedanHood_Black");
980 GetInventory().CreateInInventory("CivSedanTrunk_Black");
981
982 //-----IN CAR CARGO
983 GetInventory().CreateInInventory("CivSedanWheel");
984 GetInventory().CreateInInventory("CivSedanWheel");
985 }
986}

◆ IsVitalGlowPlug()

override bool IsVitalGlowPlug ( )
protected
783{
787
788 void CivilianSedan()
789 {
790 //m_dmgContactCoef = 0.065;
791
792 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
793 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
794 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
795 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
796 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
797
798 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
799 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
800
801 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
802 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
803
804 SetEnginePos("0 0.7 1.6");
805 }
806
807 override void EEInit()
808 {
809 super.EEInit();
810
811 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
812 {
814 m_UTSSettings.m_ManualUpdate = true;
815 m_UTSSettings.m_TemperatureMin = 0;
816 m_UTSSettings.m_TemperatureMax = 30;
817 m_UTSSettings.m_RangeFull = 0.5;
818 m_UTSSettings.m_RangeMax = 2;
819 m_UTSSettings.m_TemperatureCap = 25;
820
823 }
824 }
825
826 override void OnEngineStart()
827 {
828 super.OnEngineStart();
829
830 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
831 {
832 m_UTSource.SetDefferedActive(true, 20.0);
833 }
834 }
835
836 override void OnEngineStop()
837 {
838 super.OnEngineStop();
839
840 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
841 {
842 m_UTSource.SetDefferedActive(false, 10.0);
843 }
844 }
845
846 override void EOnPostSimulate(IEntity other, float timeSlice)
847 {
848 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
849 {
850 if (m_UTSource.IsActive())
851 {
853 }
854 }
855 }
856
857 override int GetAnimInstance()
858 {
859 return VehicleAnimInstances.SEDAN;
860 }
861
862 override float GetTransportCameraDistance()
863 {
864 return 4.5;
865 }
866
867 override int GetSeatAnimationType(int posIdx)
868 {
869 switch (posIdx)
870 {
871 case 0:
872 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
873 case 1:
874 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
875 case 2:
876 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
877 case 3:
878 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
879 }
880
881 return 0;
882 }
883
884 // Override for car-specific light type
886 {
887 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
888 }
889
890 // Override for car-specific light type
892 {
893 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
894 }
895
897 {
898 if( !super.CanReleaseAttachment( attachment ) )
899 return false;
900
901 string attType = attachment.GetType();
902
903 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
904 {
905 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
906 return false;
907 }
908
909 return true;
910 }
911
912 override protected bool CanManipulateSpareWheel(string slotSelectionName)
913 {
914 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
915 }
916
917 override bool CanDisplayAttachmentCategory(string category_name)
918 {
919 //super
920 if (!super.CanDisplayAttachmentCategory(category_name))
921 return false;
922 //
923
924 category_name.ToLower();
925 if (category_name.Contains("engine"))
926 {
927 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
928 return false;
929 }
930
931 return true;
932 }
933
934 override bool CanDisplayCargo()
935 {
936 if ( !super.CanDisplayCargo() )
937 return false;
938
939 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
940 return false;
941
942 return true;
943 }
944
945 override int GetCarDoorsState( string slotType )
946 {
948
949 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
950 if (!carDoor)
951 {
952 return CarDoorState.DOORS_MISSING;
953 }
954
955 switch (slotType)
956 {
957 case "CivSedanDriverDoors":
958 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
959 break;
960
961 case "CivSedanCoDriverDoors":
962 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
963 break;
964
965 case "CivSedanCargo1Doors":
966 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
967 break;
968
969 case "CivSedanCargo2Doors":
970 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
971 break;
972
973 case "CivSedanTrunk":
974 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
975 break;
976
977 case "CivSedanHood":
978 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
979 break;
980 }
981
982 return CarDoorState.DOORS_MISSING;
983 }
984
985
986 override bool CrewCanGetThrough( int posIdx )
987 {
988 switch( posIdx )
989 {
990 case 0:
991 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
992 return false;
993
994 return true;
995 break;
996
997 case 1:
998 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
999 return false;
1000
1001 return true;
1002 break;
1003
1004 case 2:
1005 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1006 return false;
1007
1008 return true;
1009 break;
1010
1011 case 3:
1012 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
1013 return false;
1014
1015 return true;
1016 break;
1017 }
1018
1019 return false;
1020 }
1021
1022 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1023 {
1024 switch( posIdx )
1025 {
1026 case 0:
1027 return "doors_driver";
1028 break;
1029 case 1:
1030 return "doors_codriver";
1031 break;
1032 case 2:
1033 return "doors_cargo1";
1034 break;
1035 case 3:
1036 return "doors_cargo2";
1037 break;
1038 }
1039
1040 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1041 }
1042
1043 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1044 {
1045 switch( posIdx )
1046 {
1047 case 0:
1048 return "CivSedanDriverDoors";
1049 break;
1050 case 1:
1051 return "CivSedanCoDriverDoors";
1052 break;
1053 case 2:
1054 return "CivSedanCargo1Doors";
1055 break;
1056 case 3:
1057 return "CivSedanCargo2Doors";
1058 break;
1059 }
1060
1061 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1062 }
1063
1064 // 0 full ambient and engine sound
1065 // 1 zero ambient and engine sound
1066 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1067 {
1068 switch (ctrl)
1069 {
1070 case CarSoundCtrl.DOORS:
1071 float newValue = 0;
1072 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1073 {
1074 newValue += 0.25;
1075 }
1076
1077 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1078 {
1079 newValue += 0.25;
1080 }
1081
1082 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1083 {
1084 newValue += 0.25;
1085 }
1086
1087 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1088 {
1089 newValue += 0.25;
1090 }
1091
1092 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1093 {
1094 newValue -= 0.6;
1095 }
1096
1097 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1098 {
1099 newValue -= 0.6;
1100 }
1101
1102 return Math.Clamp(newValue, 0, 1);
1103 break;
1104 }
1105
1106 return super.OnSound(ctrl, oldValue);
1107 }
1108
1109 override string GetAnimSourceFromSelection(string selection)
1110 {
1111 switch (selection)
1112 {
1113 case "doors_driver":
1114 return "DoorsDriver";
1115 case "doors_codriver":
1116 return "DoorsCoDriver";
1117 case "doors_cargo1":
1118 return "DoorsCargo1";
1119 case "doors_cargo2":
1120 return "DoorsCargo2";
1121 case "doors_hood":
1122 return "DoorsHood";
1123 case "doors_trunk":
1124 return "DoorsTrunk";
1125 }
1126
1127 return "";
1128 }
1129
1130 override bool IsVitalTruckBattery()
1131 {
1132 return false;
1133 }
1134
1135 override bool IsVitalGlowPlug()
1136 {
1137 return false;
1138 }
1139
1140 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1141 {
1142 switch (currentSeat)
1143 {
1144 case 0:
1145 return nextSeat == 1;
1146
1147 case 1:
1148 return nextSeat == 0;
1149
1150 case 2:
1151 return nextSeat == 3;
1152
1153 case 3:
1154 return nextSeat == 2;
1155 }
1156
1157 return false;
1158 }
1159
1160 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1161 {
1162 switch (pCurrentSeat)
1163 {
1164 case 0:
1165 return pDoorsSelection == "DoorsDriver";
1166
1167 case 1:
1168 return pDoorsSelection == "DoorsCoDriver";
1169
1170 case 2:
1171 return pDoorsSelection == "DoorsCargo1";
1172
1173 case 3:
1174 return pDoorsSelection == "DoorsCargo2";
1175 }
1176
1177 return false;
1178 }
1179
1180 override void OnDebugSpawn()
1181 {
1185
1186 GetInventory().CreateInInventory("CivSedanWheel");
1187 GetInventory().CreateInInventory("CivSedanWheel");
1188 GetInventory().CreateInInventory("CivSedanWheel");
1189 GetInventory().CreateInInventory("CivSedanWheel");
1190
1191 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1192 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1193 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1194 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1195 GetInventory().CreateInInventory("CivSedanHood");
1196 GetInventory().CreateInInventory("CivSedanTrunk");
1197
1198 //-----IN CAR CARGO
1199 GetInventory().CreateInInventory("CivSedanWheel");
1200 GetInventory().CreateInInventory("CivSedanWheel");
1201 }
1202
1203 override float GetPushForceCoefficientMultiplier()
1204 {
1205 return 1.5;
1206 }
1207}
1208
1210{
1211 override void OnDebugSpawn()
1212 {
1216
1217 GetInventory().CreateInInventory("CivSedanWheel");
1218 GetInventory().CreateInInventory("CivSedanWheel");
1219 GetInventory().CreateInInventory("CivSedanWheel");
1220 GetInventory().CreateInInventory("CivSedanWheel");
1221
1222 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1223 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1224 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1225 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1226 GetInventory().CreateInInventory("CivSedanHood_Wine");
1227 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1228
1229 //-----IN CAR CARGO
1230 GetInventory().CreateInInventory("CivSedanWheel");
1231 GetInventory().CreateInInventory("CivSedanWheel");
1232 }
1233}
1234
1236{
1237 override void OnDebugSpawn()
1238 {
1242
1243 GetInventory().CreateInInventory("CivSedanWheel");
1244 GetInventory().CreateInInventory("CivSedanWheel");
1245 GetInventory().CreateInInventory("CivSedanWheel");
1246 GetInventory().CreateInInventory("CivSedanWheel");
1247
1248 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1249 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1250 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1251 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1252 GetInventory().CreateInInventory("CivSedanHood_Black");
1253 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1254
1255 //-----IN CAR CARGO
1256 GetInventory().CreateInInventory("CivSedanWheel");
1257 GetInventory().CreateInInventory("CivSedanWheel");
1258 }
1259}

◆ IsVitalTruckBattery()

override bool IsVitalTruckBattery ( )
protected
778{
782
783 void CivilianSedan()
784 {
785 //m_dmgContactCoef = 0.065;
786
787 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
788 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
789 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
790 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
791 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
792
793 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
794 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
795
796 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
797 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
798
799 SetEnginePos("0 0.7 1.6");
800 }
801
802 override void EEInit()
803 {
804 super.EEInit();
805
806 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
807 {
809 m_UTSSettings.m_ManualUpdate = true;
810 m_UTSSettings.m_TemperatureMin = 0;
811 m_UTSSettings.m_TemperatureMax = 30;
812 m_UTSSettings.m_RangeFull = 0.5;
813 m_UTSSettings.m_RangeMax = 2;
814 m_UTSSettings.m_TemperatureCap = 25;
815
818 }
819 }
820
821 override void OnEngineStart()
822 {
823 super.OnEngineStart();
824
825 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
826 {
827 m_UTSource.SetDefferedActive(true, 20.0);
828 }
829 }
830
831 override void OnEngineStop()
832 {
833 super.OnEngineStop();
834
835 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
836 {
837 m_UTSource.SetDefferedActive(false, 10.0);
838 }
839 }
840
841 override void EOnPostSimulate(IEntity other, float timeSlice)
842 {
843 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
844 {
845 if (m_UTSource.IsActive())
846 {
848 }
849 }
850 }
851
852 override int GetAnimInstance()
853 {
854 return VehicleAnimInstances.SEDAN;
855 }
856
857 override float GetTransportCameraDistance()
858 {
859 return 4.5;
860 }
861
862 override int GetSeatAnimationType(int posIdx)
863 {
864 switch (posIdx)
865 {
866 case 0:
867 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
868 case 1:
869 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
870 case 2:
871 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
872 case 3:
873 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
874 }
875
876 return 0;
877 }
878
879 // Override for car-specific light type
881 {
882 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
883 }
884
885 // Override for car-specific light type
887 {
888 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
889 }
890
892 {
893 if( !super.CanReleaseAttachment( attachment ) )
894 return false;
895
896 string attType = attachment.GetType();
897
898 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
899 {
900 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
901 return false;
902 }
903
904 return true;
905 }
906
907 override protected bool CanManipulateSpareWheel(string slotSelectionName)
908 {
909 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
910 }
911
912 override bool CanDisplayAttachmentCategory(string category_name)
913 {
914 //super
915 if (!super.CanDisplayAttachmentCategory(category_name))
916 return false;
917 //
918
919 category_name.ToLower();
920 if (category_name.Contains("engine"))
921 {
922 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
923 return false;
924 }
925
926 return true;
927 }
928
929 override bool CanDisplayCargo()
930 {
931 if ( !super.CanDisplayCargo() )
932 return false;
933
934 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
935 return false;
936
937 return true;
938 }
939
940 override int GetCarDoorsState( string slotType )
941 {
943
944 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
945 if (!carDoor)
946 {
947 return CarDoorState.DOORS_MISSING;
948 }
949
950 switch (slotType)
951 {
952 case "CivSedanDriverDoors":
953 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
954 break;
955
956 case "CivSedanCoDriverDoors":
957 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
958 break;
959
960 case "CivSedanCargo1Doors":
961 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
962 break;
963
964 case "CivSedanCargo2Doors":
965 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
966 break;
967
968 case "CivSedanTrunk":
969 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
970 break;
971
972 case "CivSedanHood":
973 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
974 break;
975 }
976
977 return CarDoorState.DOORS_MISSING;
978 }
979
980
981 override bool CrewCanGetThrough( int posIdx )
982 {
983 switch( posIdx )
984 {
985 case 0:
986 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
987 return false;
988
989 return true;
990 break;
991
992 case 1:
993 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
994 return false;
995
996 return true;
997 break;
998
999 case 2:
1000 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1001 return false;
1002
1003 return true;
1004 break;
1005
1006 case 3:
1007 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
1008 return false;
1009
1010 return true;
1011 break;
1012 }
1013
1014 return false;
1015 }
1016
1017 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1018 {
1019 switch( posIdx )
1020 {
1021 case 0:
1022 return "doors_driver";
1023 break;
1024 case 1:
1025 return "doors_codriver";
1026 break;
1027 case 2:
1028 return "doors_cargo1";
1029 break;
1030 case 3:
1031 return "doors_cargo2";
1032 break;
1033 }
1034
1035 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1036 }
1037
1038 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1039 {
1040 switch( posIdx )
1041 {
1042 case 0:
1043 return "CivSedanDriverDoors";
1044 break;
1045 case 1:
1046 return "CivSedanCoDriverDoors";
1047 break;
1048 case 2:
1049 return "CivSedanCargo1Doors";
1050 break;
1051 case 3:
1052 return "CivSedanCargo2Doors";
1053 break;
1054 }
1055
1056 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1057 }
1058
1059 // 0 full ambient and engine sound
1060 // 1 zero ambient and engine sound
1061 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1062 {
1063 switch (ctrl)
1064 {
1065 case CarSoundCtrl.DOORS:
1066 float newValue = 0;
1067 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1068 {
1069 newValue += 0.25;
1070 }
1071
1072 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1073 {
1074 newValue += 0.25;
1075 }
1076
1077 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1078 {
1079 newValue += 0.25;
1080 }
1081
1082 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1083 {
1084 newValue += 0.25;
1085 }
1086
1087 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1088 {
1089 newValue -= 0.6;
1090 }
1091
1092 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1093 {
1094 newValue -= 0.6;
1095 }
1096
1097 return Math.Clamp(newValue, 0, 1);
1098 break;
1099 }
1100
1101 return super.OnSound(ctrl, oldValue);
1102 }
1103
1104 override string GetAnimSourceFromSelection(string selection)
1105 {
1106 switch (selection)
1107 {
1108 case "doors_driver":
1109 return "DoorsDriver";
1110 case "doors_codriver":
1111 return "DoorsCoDriver";
1112 case "doors_cargo1":
1113 return "DoorsCargo1";
1114 case "doors_cargo2":
1115 return "DoorsCargo2";
1116 case "doors_hood":
1117 return "DoorsHood";
1118 case "doors_trunk":
1119 return "DoorsTrunk";
1120 }
1121
1122 return "";
1123 }
1124
1125 override bool IsVitalTruckBattery()
1126 {
1127 return false;
1128 }
1129
1130 override bool IsVitalGlowPlug()
1131 {
1132 return false;
1133 }
1134
1135 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1136 {
1137 switch (currentSeat)
1138 {
1139 case 0:
1140 return nextSeat == 1;
1141
1142 case 1:
1143 return nextSeat == 0;
1144
1145 case 2:
1146 return nextSeat == 3;
1147
1148 case 3:
1149 return nextSeat == 2;
1150 }
1151
1152 return false;
1153 }
1154
1155 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1156 {
1157 switch (pCurrentSeat)
1158 {
1159 case 0:
1160 return pDoorsSelection == "DoorsDriver";
1161
1162 case 1:
1163 return pDoorsSelection == "DoorsCoDriver";
1164
1165 case 2:
1166 return pDoorsSelection == "DoorsCargo1";
1167
1168 case 3:
1169 return pDoorsSelection == "DoorsCargo2";
1170 }
1171
1172 return false;
1173 }
1174
1175 override void OnDebugSpawn()
1176 {
1180
1181 GetInventory().CreateInInventory("CivSedanWheel");
1182 GetInventory().CreateInInventory("CivSedanWheel");
1183 GetInventory().CreateInInventory("CivSedanWheel");
1184 GetInventory().CreateInInventory("CivSedanWheel");
1185
1186 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1187 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1188 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1189 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1190 GetInventory().CreateInInventory("CivSedanHood");
1191 GetInventory().CreateInInventory("CivSedanTrunk");
1192
1193 //-----IN CAR CARGO
1194 GetInventory().CreateInInventory("CivSedanWheel");
1195 GetInventory().CreateInInventory("CivSedanWheel");
1196 }
1197
1198 override float GetPushForceCoefficientMultiplier()
1199 {
1200 return 1.5;
1201 }
1202}
1203
1205{
1206 override void OnDebugSpawn()
1207 {
1211
1212 GetInventory().CreateInInventory("CivSedanWheel");
1213 GetInventory().CreateInInventory("CivSedanWheel");
1214 GetInventory().CreateInInventory("CivSedanWheel");
1215 GetInventory().CreateInInventory("CivSedanWheel");
1216
1217 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1218 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1219 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1220 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1221 GetInventory().CreateInInventory("CivSedanHood_Wine");
1222 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1223
1224 //-----IN CAR CARGO
1225 GetInventory().CreateInInventory("CivSedanWheel");
1226 GetInventory().CreateInInventory("CivSedanWheel");
1227 }
1228}
1229
1231{
1232 override void OnDebugSpawn()
1233 {
1237
1238 GetInventory().CreateInInventory("CivSedanWheel");
1239 GetInventory().CreateInInventory("CivSedanWheel");
1240 GetInventory().CreateInInventory("CivSedanWheel");
1241 GetInventory().CreateInInventory("CivSedanWheel");
1242
1243 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1244 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1245 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1246 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1247 GetInventory().CreateInInventory("CivSedanHood_Black");
1248 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1249
1250 //-----IN CAR CARGO
1251 GetInventory().CreateInInventory("CivSedanWheel");
1252 GetInventory().CreateInInventory("CivSedanWheel");
1253 }
1254}

◆ OnDebugSpawn()

431 {
435
436 GetInventory().CreateInInventory("CivSedanWheel");
437 GetInventory().CreateInInventory("CivSedanWheel");
438 GetInventory().CreateInInventory("CivSedanWheel");
439 GetInventory().CreateInInventory("CivSedanWheel");
440
441 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
442 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
443 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
444 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
445 GetInventory().CreateInInventory("CivSedanHood_Wine");
446 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
447
448 //-----IN CAR CARGO
449 GetInventory().CreateInInventory("CivSedanWheel");
450 GetInventory().CreateInInventory("CivSedanWheel");
451 }

◆ OnEngineStart()

override void OnEngineStart ( )
protected

◆ OnEngineStop()

override void OnEngineStop ( )
protected
484{
488
489 void CivilianSedan()
490 {
491 //m_dmgContactCoef = 0.065;
492
493 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
494 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
495 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
496 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
497 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
498
499 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
500 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
501
502 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
503 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
504
505 SetEnginePos("0 0.7 1.6");
506 }
507
508 override void EEInit()
509 {
510 super.EEInit();
511
512 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
513 {
515 m_UTSSettings.m_ManualUpdate = true;
516 m_UTSSettings.m_TemperatureMin = 0;
517 m_UTSSettings.m_TemperatureMax = 30;
518 m_UTSSettings.m_RangeFull = 0.5;
519 m_UTSSettings.m_RangeMax = 2;
520 m_UTSSettings.m_TemperatureCap = 25;
521
524 }
525 }
526
527 override void OnEngineStart()
528 {
529 super.OnEngineStart();
530
531 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
532 {
533 m_UTSource.SetDefferedActive(true, 20.0);
534 }
535 }
536
537 override void OnEngineStop()
538 {
539 super.OnEngineStop();
540
541 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
542 {
543 m_UTSource.SetDefferedActive(false, 10.0);
544 }
545 }
546
547 override void EOnPostSimulate(IEntity other, float timeSlice)
548 {
549 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
550 {
551 if (m_UTSource.IsActive())
552 {
554 }
555 }
556 }
557
558 override int GetAnimInstance()
559 {
560 return VehicleAnimInstances.SEDAN;
561 }
562
563 override float GetTransportCameraDistance()
564 {
565 return 4.5;
566 }
567
568 override int GetSeatAnimationType(int posIdx)
569 {
570 switch (posIdx)
571 {
572 case 0:
573 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
574 case 1:
575 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
576 case 2:
577 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
578 case 3:
579 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
580 }
581
582 return 0;
583 }
584
585 // Override for car-specific light type
587 {
588 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
589 }
590
591 // Override for car-specific light type
593 {
594 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
595 }
596
598 {
599 if( !super.CanReleaseAttachment( attachment ) )
600 return false;
601
602 string attType = attachment.GetType();
603
604 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
605 {
606 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
607 return false;
608 }
609
610 return true;
611 }
612
613 override protected bool CanManipulateSpareWheel(string slotSelectionName)
614 {
615 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
616 }
617
618 override bool CanDisplayAttachmentCategory(string category_name)
619 {
620 //super
621 if (!super.CanDisplayAttachmentCategory(category_name))
622 return false;
623 //
624
625 category_name.ToLower();
626 if (category_name.Contains("engine"))
627 {
628 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
629 return false;
630 }
631
632 return true;
633 }
634
635 override bool CanDisplayCargo()
636 {
637 if ( !super.CanDisplayCargo() )
638 return false;
639
640 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
641 return false;
642
643 return true;
644 }
645
646 override int GetCarDoorsState( string slotType )
647 {
649
650 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
651 if (!carDoor)
652 {
653 return CarDoorState.DOORS_MISSING;
654 }
655
656 switch (slotType)
657 {
658 case "CivSedanDriverDoors":
659 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
660 break;
661
662 case "CivSedanCoDriverDoors":
663 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
664 break;
665
666 case "CivSedanCargo1Doors":
667 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
668 break;
669
670 case "CivSedanCargo2Doors":
671 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
672 break;
673
674 case "CivSedanTrunk":
675 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
676 break;
677
678 case "CivSedanHood":
679 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
680 break;
681 }
682
683 return CarDoorState.DOORS_MISSING;
684 }
685
686
687 override bool CrewCanGetThrough( int posIdx )
688 {
689 switch( posIdx )
690 {
691 case 0:
692 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
693 return false;
694
695 return true;
696 break;
697
698 case 1:
699 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
700 return false;
701
702 return true;
703 break;
704
705 case 2:
706 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
707 return false;
708
709 return true;
710 break;
711
712 case 3:
713 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
714 return false;
715
716 return true;
717 break;
718 }
719
720 return false;
721 }
722
723 override string GetDoorSelectionNameFromSeatPos(int posIdx)
724 {
725 switch( posIdx )
726 {
727 case 0:
728 return "doors_driver";
729 break;
730 case 1:
731 return "doors_codriver";
732 break;
733 case 2:
734 return "doors_cargo1";
735 break;
736 case 3:
737 return "doors_cargo2";
738 break;
739 }
740
741 return super.GetDoorSelectionNameFromSeatPos(posIdx);
742 }
743
744 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
745 {
746 switch( posIdx )
747 {
748 case 0:
749 return "CivSedanDriverDoors";
750 break;
751 case 1:
752 return "CivSedanCoDriverDoors";
753 break;
754 case 2:
755 return "CivSedanCargo1Doors";
756 break;
757 case 3:
758 return "CivSedanCargo2Doors";
759 break;
760 }
761
762 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
763 }
764
765 // 0 full ambient and engine sound
766 // 1 zero ambient and engine sound
767 override float OnSound(CarSoundCtrl ctrl, float oldValue)
768 {
769 switch (ctrl)
770 {
771 case CarSoundCtrl.DOORS:
772 float newValue = 0;
773 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
774 {
775 newValue += 0.25;
776 }
777
778 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
779 {
780 newValue += 0.25;
781 }
782
783 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
784 {
785 newValue += 0.25;
786 }
787
788 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
789 {
790 newValue += 0.25;
791 }
792
793 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
794 {
795 newValue -= 0.6;
796 }
797
798 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
799 {
800 newValue -= 0.6;
801 }
802
803 return Math.Clamp(newValue, 0, 1);
804 break;
805 }
806
807 return super.OnSound(ctrl, oldValue);
808 }
809
810 override string GetAnimSourceFromSelection(string selection)
811 {
812 switch (selection)
813 {
814 case "doors_driver":
815 return "DoorsDriver";
816 case "doors_codriver":
817 return "DoorsCoDriver";
818 case "doors_cargo1":
819 return "DoorsCargo1";
820 case "doors_cargo2":
821 return "DoorsCargo2";
822 case "doors_hood":
823 return "DoorsHood";
824 case "doors_trunk":
825 return "DoorsTrunk";
826 }
827
828 return "";
829 }
830
831 override bool IsVitalTruckBattery()
832 {
833 return false;
834 }
835
836 override bool IsVitalGlowPlug()
837 {
838 return false;
839 }
840
841 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
842 {
843 switch (currentSeat)
844 {
845 case 0:
846 return nextSeat == 1;
847
848 case 1:
849 return nextSeat == 0;
850
851 case 2:
852 return nextSeat == 3;
853
854 case 3:
855 return nextSeat == 2;
856 }
857
858 return false;
859 }
860
861 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
862 {
863 switch (pCurrentSeat)
864 {
865 case 0:
866 return pDoorsSelection == "DoorsDriver";
867
868 case 1:
869 return pDoorsSelection == "DoorsCoDriver";
870
871 case 2:
872 return pDoorsSelection == "DoorsCargo1";
873
874 case 3:
875 return pDoorsSelection == "DoorsCargo2";
876 }
877
878 return false;
879 }
880
881 override void OnDebugSpawn()
882 {
886
887 GetInventory().CreateInInventory("CivSedanWheel");
888 GetInventory().CreateInInventory("CivSedanWheel");
889 GetInventory().CreateInInventory("CivSedanWheel");
890 GetInventory().CreateInInventory("CivSedanWheel");
891
892 GetInventory().CreateInInventory("CivSedanDoors_Driver");
893 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
894 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
895 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
896 GetInventory().CreateInInventory("CivSedanHood");
897 GetInventory().CreateInInventory("CivSedanTrunk");
898
899 //-----IN CAR CARGO
900 GetInventory().CreateInInventory("CivSedanWheel");
901 GetInventory().CreateInInventory("CivSedanWheel");
902 }
903
904 override float GetPushForceCoefficientMultiplier()
905 {
906 return 1.5;
907 }
908}
909
911{
912 override void OnDebugSpawn()
913 {
917
918 GetInventory().CreateInInventory("CivSedanWheel");
919 GetInventory().CreateInInventory("CivSedanWheel");
920 GetInventory().CreateInInventory("CivSedanWheel");
921 GetInventory().CreateInInventory("CivSedanWheel");
922
923 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
924 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
925 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
926 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
927 GetInventory().CreateInInventory("CivSedanHood_Wine");
928 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
929
930 //-----IN CAR CARGO
931 GetInventory().CreateInInventory("CivSedanWheel");
932 GetInventory().CreateInInventory("CivSedanWheel");
933 }
934}
935
937{
938 override void OnDebugSpawn()
939 {
943
944 GetInventory().CreateInInventory("CivSedanWheel");
945 GetInventory().CreateInInventory("CivSedanWheel");
946 GetInventory().CreateInInventory("CivSedanWheel");
947 GetInventory().CreateInInventory("CivSedanWheel");
948
949 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
950 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
951 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
952 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
953 GetInventory().CreateInInventory("CivSedanHood_Black");
954 GetInventory().CreateInInventory("CivSedanTrunk_Black");
955
956 //-----IN CAR CARGO
957 GetInventory().CreateInInventory("CivSedanWheel");
958 GetInventory().CreateInInventory("CivSedanWheel");
959 }
960}

◆ OnSound()

override float OnSound ( CarSoundCtrl ctrl,
float oldValue )
protected
714{
718
719 void CivilianSedan()
720 {
721 //m_dmgContactCoef = 0.065;
722
723 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
724 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
725 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
726 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
727 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
728
729 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
730 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
731
732 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
733 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
734
735 SetEnginePos("0 0.7 1.6");
736 }
737
738 override void EEInit()
739 {
740 super.EEInit();
741
742 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
743 {
745 m_UTSSettings.m_ManualUpdate = true;
746 m_UTSSettings.m_TemperatureMin = 0;
747 m_UTSSettings.m_TemperatureMax = 30;
748 m_UTSSettings.m_RangeFull = 0.5;
749 m_UTSSettings.m_RangeMax = 2;
750 m_UTSSettings.m_TemperatureCap = 25;
751
754 }
755 }
756
757 override void OnEngineStart()
758 {
759 super.OnEngineStart();
760
761 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
762 {
763 m_UTSource.SetDefferedActive(true, 20.0);
764 }
765 }
766
767 override void OnEngineStop()
768 {
769 super.OnEngineStop();
770
771 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
772 {
773 m_UTSource.SetDefferedActive(false, 10.0);
774 }
775 }
776
777 override void EOnPostSimulate(IEntity other, float timeSlice)
778 {
779 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
780 {
781 if (m_UTSource.IsActive())
782 {
784 }
785 }
786 }
787
788 override int GetAnimInstance()
789 {
790 return VehicleAnimInstances.SEDAN;
791 }
792
793 override float GetTransportCameraDistance()
794 {
795 return 4.5;
796 }
797
798 override int GetSeatAnimationType(int posIdx)
799 {
800 switch (posIdx)
801 {
802 case 0:
803 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
804 case 1:
805 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
806 case 2:
807 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
808 case 3:
809 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
810 }
811
812 return 0;
813 }
814
815 // Override for car-specific light type
817 {
818 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
819 }
820
821 // Override for car-specific light type
823 {
824 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
825 }
826
828 {
829 if( !super.CanReleaseAttachment( attachment ) )
830 return false;
831
832 string attType = attachment.GetType();
833
834 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
835 {
836 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
837 return false;
838 }
839
840 return true;
841 }
842
843 override protected bool CanManipulateSpareWheel(string slotSelectionName)
844 {
845 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
846 }
847
848 override bool CanDisplayAttachmentCategory(string category_name)
849 {
850 //super
851 if (!super.CanDisplayAttachmentCategory(category_name))
852 return false;
853 //
854
855 category_name.ToLower();
856 if (category_name.Contains("engine"))
857 {
858 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
859 return false;
860 }
861
862 return true;
863 }
864
865 override bool CanDisplayCargo()
866 {
867 if ( !super.CanDisplayCargo() )
868 return false;
869
870 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
871 return false;
872
873 return true;
874 }
875
876 override int GetCarDoorsState( string slotType )
877 {
879
880 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
881 if (!carDoor)
882 {
883 return CarDoorState.DOORS_MISSING;
884 }
885
886 switch (slotType)
887 {
888 case "CivSedanDriverDoors":
889 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
890 break;
891
892 case "CivSedanCoDriverDoors":
893 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
894 break;
895
896 case "CivSedanCargo1Doors":
897 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
898 break;
899
900 case "CivSedanCargo2Doors":
901 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
902 break;
903
904 case "CivSedanTrunk":
905 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
906 break;
907
908 case "CivSedanHood":
909 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
910 break;
911 }
912
913 return CarDoorState.DOORS_MISSING;
914 }
915
916
917 override bool CrewCanGetThrough( int posIdx )
918 {
919 switch( posIdx )
920 {
921 case 0:
922 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
923 return false;
924
925 return true;
926 break;
927
928 case 1:
929 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
930 return false;
931
932 return true;
933 break;
934
935 case 2:
936 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
937 return false;
938
939 return true;
940 break;
941
942 case 3:
943 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
944 return false;
945
946 return true;
947 break;
948 }
949
950 return false;
951 }
952
953 override string GetDoorSelectionNameFromSeatPos(int posIdx)
954 {
955 switch( posIdx )
956 {
957 case 0:
958 return "doors_driver";
959 break;
960 case 1:
961 return "doors_codriver";
962 break;
963 case 2:
964 return "doors_cargo1";
965 break;
966 case 3:
967 return "doors_cargo2";
968 break;
969 }
970
971 return super.GetDoorSelectionNameFromSeatPos(posIdx);
972 }
973
974 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
975 {
976 switch( posIdx )
977 {
978 case 0:
979 return "CivSedanDriverDoors";
980 break;
981 case 1:
982 return "CivSedanCoDriverDoors";
983 break;
984 case 2:
985 return "CivSedanCargo1Doors";
986 break;
987 case 3:
988 return "CivSedanCargo2Doors";
989 break;
990 }
991
992 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
993 }
994
995 // 0 full ambient and engine sound
996 // 1 zero ambient and engine sound
997 override float OnSound(CarSoundCtrl ctrl, float oldValue)
998 {
999 switch (ctrl)
1000 {
1001 case CarSoundCtrl.DOORS:
1002 float newValue = 0;
1003 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1004 {
1005 newValue += 0.25;
1006 }
1007
1008 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1009 {
1010 newValue += 0.25;
1011 }
1012
1013 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1014 {
1015 newValue += 0.25;
1016 }
1017
1018 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1019 {
1020 newValue += 0.25;
1021 }
1022
1023 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1024 {
1025 newValue -= 0.6;
1026 }
1027
1028 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1029 {
1030 newValue -= 0.6;
1031 }
1032
1033 return Math.Clamp(newValue, 0, 1);
1034 break;
1035 }
1036
1037 return super.OnSound(ctrl, oldValue);
1038 }
1039
1040 override string GetAnimSourceFromSelection(string selection)
1041 {
1042 switch (selection)
1043 {
1044 case "doors_driver":
1045 return "DoorsDriver";
1046 case "doors_codriver":
1047 return "DoorsCoDriver";
1048 case "doors_cargo1":
1049 return "DoorsCargo1";
1050 case "doors_cargo2":
1051 return "DoorsCargo2";
1052 case "doors_hood":
1053 return "DoorsHood";
1054 case "doors_trunk":
1055 return "DoorsTrunk";
1056 }
1057
1058 return "";
1059 }
1060
1061 override bool IsVitalTruckBattery()
1062 {
1063 return false;
1064 }
1065
1066 override bool IsVitalGlowPlug()
1067 {
1068 return false;
1069 }
1070
1071 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1072 {
1073 switch (currentSeat)
1074 {
1075 case 0:
1076 return nextSeat == 1;
1077
1078 case 1:
1079 return nextSeat == 0;
1080
1081 case 2:
1082 return nextSeat == 3;
1083
1084 case 3:
1085 return nextSeat == 2;
1086 }
1087
1088 return false;
1089 }
1090
1091 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1092 {
1093 switch (pCurrentSeat)
1094 {
1095 case 0:
1096 return pDoorsSelection == "DoorsDriver";
1097
1098 case 1:
1099 return pDoorsSelection == "DoorsCoDriver";
1100
1101 case 2:
1102 return pDoorsSelection == "DoorsCargo1";
1103
1104 case 3:
1105 return pDoorsSelection == "DoorsCargo2";
1106 }
1107
1108 return false;
1109 }
1110
1111 override void OnDebugSpawn()
1112 {
1116
1117 GetInventory().CreateInInventory("CivSedanWheel");
1118 GetInventory().CreateInInventory("CivSedanWheel");
1119 GetInventory().CreateInInventory("CivSedanWheel");
1120 GetInventory().CreateInInventory("CivSedanWheel");
1121
1122 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1123 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1124 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1125 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1126 GetInventory().CreateInInventory("CivSedanHood");
1127 GetInventory().CreateInInventory("CivSedanTrunk");
1128
1129 //-----IN CAR CARGO
1130 GetInventory().CreateInInventory("CivSedanWheel");
1131 GetInventory().CreateInInventory("CivSedanWheel");
1132 }
1133
1134 override float GetPushForceCoefficientMultiplier()
1135 {
1136 return 1.5;
1137 }
1138}
1139
1141{
1142 override void OnDebugSpawn()
1143 {
1147
1148 GetInventory().CreateInInventory("CivSedanWheel");
1149 GetInventory().CreateInInventory("CivSedanWheel");
1150 GetInventory().CreateInInventory("CivSedanWheel");
1151 GetInventory().CreateInInventory("CivSedanWheel");
1152
1153 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1154 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1155 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1156 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1157 GetInventory().CreateInInventory("CivSedanHood_Wine");
1158 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1159
1160 //-----IN CAR CARGO
1161 GetInventory().CreateInInventory("CivSedanWheel");
1162 GetInventory().CreateInInventory("CivSedanWheel");
1163 }
1164}
1165
1167{
1168 override void OnDebugSpawn()
1169 {
1173
1174 GetInventory().CreateInInventory("CivSedanWheel");
1175 GetInventory().CreateInInventory("CivSedanWheel");
1176 GetInventory().CreateInInventory("CivSedanWheel");
1177 GetInventory().CreateInInventory("CivSedanWheel");
1178
1179 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1180 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1181 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1182 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1183 GetInventory().CreateInInventory("CivSedanHood_Black");
1184 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1185
1186 //-----IN CAR CARGO
1187 GetInventory().CreateInInventory("CivSedanWheel");
1188 GetInventory().CreateInInventory("CivSedanWheel");
1189 }
1190}

Переменные

◆ m_UTSLEngine

◆ m_UTSource

◆ m_UTSSettings

ref UniversalTemperatureSourceSettings m_UTSSettings
protected

Используется в CarScript::EEInit() и CarScript::EOnPostSimulate().