DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ CrewCanGetThrough()

override bool OnDebugSpawn::CrewCanGetThrough ( int posIdx)
protected

См. определение в файле Sedan_02.c строка 673

674{
678
679 void Sedan_02()
680 {
681 m_dmgContactCoef = 0.0790;
682
683 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
684 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
685 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
686 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
687 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
688 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
689
690 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
691 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
692
693 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
694 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
695
696 SetEnginePos("0 0.7 -1.7");
697 }
698
699 void ~Sedan_02()
700 {
701 m_UTSource = null;
702 m_UTSSettings = null;
703 m_UTSLEngine = null;
704 }
705
706 override void EEInit()
707 {
708 super.EEInit();
709
710 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
711 {
713 m_UTSSettings.m_ManualUpdate = true;
715 m_UTSSettings.m_TemperatureCap = 0;
716 m_UTSSettings.m_RangeFull = 0.5;
717 m_UTSSettings.m_RangeMax = 2;
718
721 }
722 }
723
724 override void OnEngineStart()
725 {
726 super.OnEngineStart();
727
728 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
729 {
730 if (m_UTSource)
731 m_UTSource.SetDefferedActive(true, 20.0);
732 }
733 }
734
735 override void OnEngineStop()
736 {
737 super.OnEngineStop();
738
739 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
740 {
741 if (m_UTSource)
742 m_UTSource.SetDefferedActive(false, 10.0);
743 }
744 }
745
746 override void EOnPostSimulate(IEntity other, float timeSlice)
747 {
748 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
749 {
750 if (m_UTSource && m_UTSource.IsActive())
751 {
753 }
754 }
755 }
756
757 override int GetAnimInstance()
758 {
759 return VehicleAnimInstances.S120;
760 }
761
762 override int GetSeatAnimationType(int posIdx)
763 {
764 switch (posIdx)
765 {
766 case 0:
767 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
768 case 1:
769 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
770 case 2:
771 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
772 case 3:
773 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
774 }
775
776 return 0;
777 }
778
779 // Override for car-specific light type
781 {
782 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
783 }
784
785 // Override for car-specific light type
787 {
788 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
789 }
790
791 override bool CanReleaseAttachment( EntityAI attachment )
792 {
793 if (!super.CanReleaseAttachment(attachment))
794 {
795 return false;
796 }
797
798 string attType = attachment.GetType();
799 switch (attType)
800 {
801 case "CarBattery":
802 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
803 {
804 return false;
805 }
806 break;
807
808 case "SparkPlug":
809 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
810 {
811 return false;
812 }
813 break;
814
815 case "CarRadiator":
816 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
817 {
818 return false;
819 }
820 break;
821 }
822
823 return true;
824 }
825
826 override protected bool CanManipulateSpareWheel(string slotSelectionName)
827 {
828 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
829 }
830
831 override bool CanDisplayAttachmentCategory(string category_name)
832 {
833 if ( !super.CanDisplayAttachmentCategory(category_name))
834 {
835 return false;
836 }
837
838 category_name.ToLower();
839 if (category_name.Contains("engine"))
840 {
841 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
842 {
843 return false;
844 }
845 }
846
847 if (category_name.Contains("trunk"))
848 {
849 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
850 {
851 return false;
852 }
853 }
854
855 return true;
856 }
857
858 override bool CanDisplayCargo()
859 {
860 if ( !super.CanDisplayCargo() )
861 return false;
862
863 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
864 return false;
865
866 return true;
867 }
868
869 override int GetCarDoorsState(string slotType)
870 {
871 CarDoor carDoor;
872
873 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
874 if (!carDoor)
875 {
876 return CarDoorState.DOORS_MISSING;
877 }
878
879 switch (slotType)
880 {
881 case "Sedan_02_Door_1_1":
882 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
883
884 case "Sedan_02_Door_2_1":
885 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
886
887 case "Sedan_02_Door_1_2":
888 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
889
890 case "Sedan_02_Door_2_2":
891 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
892
893 case "Sedan_02_Hood":
894 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
895
896 case "Sedan_02_Trunk":
897 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
898 }
899
900 return CarDoorState.DOORS_MISSING;
901 }
902
903
904 override bool CrewCanGetThrough( int posIdx )
905 {
906 switch( posIdx )
907 {
908 case 0:
909 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
910 return false;
911
912 return true;
913 break;
914
915 case 1:
916 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
917 return false;
918
919 return true;
920 break;
921
922 case 2:
923 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
924 return false;
925
926 return true;
927 break;
928
929 case 3:
930 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
931 return false;
932
933 return true;
934 break;
935 }
936
937 return false;
938 }
939
940 override string GetDoorSelectionNameFromSeatPos(int posIdx)
941 {
942 switch( posIdx )
943 {
944 case 0:
945 return "doors_driver";
946 break;
947 case 1:
948 return "doors_codriver";
949 break;
950 case 2:
951 return "doors_cargo1";
952 break;
953 case 3:
954 return "doors_cargo2";
955 break;
956 }
957
958 return super.GetDoorSelectionNameFromSeatPos(posIdx);
959 }
960
961 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
962 {
963 switch( posIdx )
964 {
965 case 0:
966 return "Sedan_02_Door_1_1";
967 break;
968 case 1:
969 return "Sedan_02_Door_2_1";
970 break;
971 case 2:
972 return "Sedan_02_Door_1_2";
973 break;
974 case 3:
975 return "Sedan_02_Door_2_2";
976 break;
977 }
978
979 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
980 }
981
982 override float OnSound(CarSoundCtrl ctrl, float oldValue)
983 {
984 switch ( ctrl )
985 {
986 case CarSoundCtrl.DOORS:
987 float newValue = 0;
988 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
989 {
990 newValue += 0.25;
991 }
992
993 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
994 {
995 newValue += 0.25;
996 }
997
998 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
999 {
1000 newValue += 0.25;
1001 }
1002
1003 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1004 {
1005 newValue += 0.25;
1006 }
1007
1008 return Math.Clamp(newValue, 0, 1);
1009 break;
1010 }
1011
1012 return super.OnSound(ctrl, oldValue);
1013 }
1014
1015 override string GetAnimSourceFromSelection( string selection )
1016 {
1017 switch( selection )
1018 {
1019 case "doors_driver":
1020 return "DoorsDriver";
1021 case "doors_codriver":
1022 return "DoorsCoDriver";
1023 case "doors_cargo1":
1024 return "DoorsCargo1";
1025 case "doors_cargo2":
1026 return "DoorsCargo2";
1027 case "doors_hood":
1028 return "DoorsHood";
1029 case "doors_trunk":
1030 return "DoorsTrunk";
1031 }
1032
1033 return "";
1034 }
1035
1036
1037 override bool IsVitalTruckBattery()
1038 {
1039 return false;
1040 }
1041
1042 override bool IsVitalGlowPlug()
1043 {
1044 return false;
1045 }
1046
1047 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1048 {
1049 switch (currentSeat)
1050 {
1051 case 0:
1052 return nextSeat == 1;
1053
1054 case 1:
1055 return nextSeat == 0;
1056
1057 case 2:
1058 return nextSeat == 3;
1059
1060 case 3:
1061 return nextSeat == 2;
1062 }
1063
1064 return false;
1065 }
1066
1067 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1068 {
1069 switch (pCurrentSeat)
1070 {
1071 case 0:
1072 return pDoorsSelection == "DoorsDriver";
1073
1074 case 1:
1075 return pDoorsSelection == "DoorsCoDriver";
1076
1077 case 2:
1078 return pDoorsSelection == "DoorsCargo1";
1079
1080 case 3:
1081 return pDoorsSelection == "DoorsCargo2";
1082 }
1083
1084 return false;
1085 }
1086
1087 override void OnDebugSpawn()
1088 {
1089 SpawnUniversalParts();
1090 SpawnAdditionalItems();
1091 FillUpCarFluids();
1092
1093 GameInventory inventory = GetInventory();
1094 inventory.CreateInInventory("Sedan_02_Wheel");
1095 inventory.CreateInInventory("Sedan_02_Wheel");
1096 inventory.CreateInInventory("Sedan_02_Wheel");
1097 inventory.CreateInInventory("Sedan_02_Wheel");
1098 inventory.CreateInInventory("Sedan_02_Wheel");
1099
1100 inventory.CreateInInventory("Sedan_02_Door_1_1");
1101 inventory.CreateInInventory("Sedan_02_Door_1_2");
1102 inventory.CreateInInventory("Sedan_02_Door_2_1");
1103 inventory.CreateInInventory("Sedan_02_Door_2_2");
1104 inventory.CreateInInventory("Sedan_02_Hood");
1105 inventory.CreateInInventory("Sedan_02_Trunk");
1106
1107 //-----IN CAR CARGO
1108 inventory.CreateInInventory("Sedan_02_Wheel");
1109 inventory.CreateInInventory("Sedan_02_Wheel");
1110 }
1111}
1112
1113class Sedan_02_Red extends Sedan_02
1114{
1115 override void OnDebugSpawn()
1116 {
1117 SpawnUniversalParts();
1118 SpawnAdditionalItems();
1119 FillUpCarFluids();
1120
1121 GameInventory inventory = GetInventory();
1122 inventory.CreateInInventory("Sedan_02_Wheel");
1123 inventory.CreateInInventory("Sedan_02_Wheel");
1124 inventory.CreateInInventory("Sedan_02_Wheel");
1125 inventory.CreateInInventory("Sedan_02_Wheel");
1126
1127 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1128 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1129 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1130 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1131 inventory.CreateInInventory("Sedan_02_Hood_Red");
1132 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1133
1134 //-----IN CAR CARGO
1135 inventory.CreateInInventory("Sedan_02_Wheel");
1136 inventory.CreateInInventory("Sedan_02_Wheel");
1137 }
1138}
1139
1140class Sedan_02_Grey extends Sedan_02
1141{
1142 override void OnDebugSpawn()
1143 {
1144 SpawnUniversalParts();
1145 SpawnAdditionalItems();
1146 FillUpCarFluids();
1147
1148 GameInventory inventory = GetInventory();
1149 inventory.CreateInInventory("Sedan_02_Wheel");
1150 inventory.CreateInInventory("Sedan_02_Wheel");
1151 inventory.CreateInInventory("Sedan_02_Wheel");
1152 inventory.CreateInInventory("Sedan_02_Wheel");
1153
1154 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1155 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1156 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1157 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1158 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1159 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1160
1161 //-----IN CAR CARGO
1162 inventory.CreateInInventory("Sedan_02_Wheel");
1163 inventory.CreateInInventory("Sedan_02_Wheel");
1164 }
1165}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:443
DayZGame g_Game
Определения DayZGame.c:3942
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:221
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:220
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:816
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:443
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:784
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:531
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:751
void ~Sedan_02()
Определения Sedan_02.c:468
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:730
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:515
override void OnEngineStop()
Определения Sedan_02.c:504
override void EEInit()
Определения Sedan_02.c:475
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:560
override bool CanDisplayCargo()
Определения Sedan_02.c:627
override void OnEngineStart()
Определения Sedan_02.c:493
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:549
override int GetAnimInstance()
Определения Sedan_02.c:526
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:673
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:836
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:595
override bool IsVitalGlowPlug()
Определения Sedan_02.c:811
void Sedan_02()
Определения Sedan_02.c:448
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:555
override bool IsVitalTruckBattery()
Определения Sedan_02.c:806
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:709
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:638
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:600
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:470
Определения Sedan_02.c:469
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
Определения 3_Game/DayZ/constants.c:811
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'.
bool Contains(string sample)
Returns true if sample is substring of string.
Определения EnString.c:286
proto int ToLower()
Changes string to lowercase. Returns length.