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

◆ OnSound()

override float OnDebugSpawn::OnSound ( CarSoundCtrl ctrl,
float oldValue )
protected

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

752{
756
757 void Sedan_02()
758 {
759 m_dmgContactCoef = 0.0790;
760
761 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
762 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
763 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
764 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
765 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
766 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
767
768 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
769 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
770
771 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
772 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
773
774 SetEnginePos("0 0.7 -1.7");
775 }
776
777 void ~Sedan_02()
778 {
779 m_UTSource = null;
780 m_UTSSettings = null;
781 m_UTSLEngine = null;
782 }
783
784 override void EEInit()
785 {
786 super.EEInit();
787
788 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
789 {
791 m_UTSSettings.m_ManualUpdate = true;
793 m_UTSSettings.m_TemperatureCap = 0;
794 m_UTSSettings.m_RangeFull = 0.5;
795 m_UTSSettings.m_RangeMax = 2;
796
799 }
800 }
801
802 override void OnEngineStart()
803 {
804 super.OnEngineStart();
805
806 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
807 {
808 if (m_UTSource)
809 m_UTSource.SetDefferedActive(true, 20.0);
810 }
811 }
812
813 override void OnEngineStop()
814 {
815 super.OnEngineStop();
816
817 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
818 {
819 if (m_UTSource)
820 m_UTSource.SetDefferedActive(false, 10.0);
821 }
822 }
823
824 override void EOnPostSimulate(IEntity other, float timeSlice)
825 {
826 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
827 {
828 if (m_UTSource && m_UTSource.IsActive())
829 {
831 }
832 }
833 }
834
835 override int GetAnimInstance()
836 {
837 return VehicleAnimInstances.S120;
838 }
839
840 override int GetSeatAnimationType(int posIdx)
841 {
842 switch (posIdx)
843 {
844 case 0:
845 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
846 case 1:
847 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
848 case 2:
849 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
850 case 3:
851 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
852 }
853
854 return 0;
855 }
856
857 // Override for car-specific light type
859 {
860 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
861 }
862
863 // Override for car-specific light type
865 {
866 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
867 }
868
869 override bool CanReleaseAttachment( EntityAI attachment )
870 {
871 if (!super.CanReleaseAttachment(attachment))
872 {
873 return false;
874 }
875
876 string attType = attachment.GetType();
877 switch (attType)
878 {
879 case "CarBattery":
880 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
881 {
882 return false;
883 }
884 break;
885
886 case "SparkPlug":
887 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
888 {
889 return false;
890 }
891 break;
892
893 case "CarRadiator":
894 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
895 {
896 return false;
897 }
898 break;
899 }
900
901 return true;
902 }
903
904 override protected bool CanManipulateSpareWheel(string slotSelectionName)
905 {
906 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
907 }
908
909 override bool CanDisplayAttachmentCategory(string category_name)
910 {
911 if ( !super.CanDisplayAttachmentCategory(category_name))
912 {
913 return false;
914 }
915
916 category_name.ToLower();
917 if (category_name.Contains("engine"))
918 {
919 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
920 {
921 return false;
922 }
923 }
924
925 if (category_name.Contains("trunk"))
926 {
927 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
928 {
929 return false;
930 }
931 }
932
933 return true;
934 }
935
936 override bool CanDisplayCargo()
937 {
938 if ( !super.CanDisplayCargo() )
939 return false;
940
941 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
942 return false;
943
944 return true;
945 }
946
947 override int GetCarDoorsState(string slotType)
948 {
949 CarDoor carDoor;
950
951 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
952 if (!carDoor)
953 {
954 return CarDoorState.DOORS_MISSING;
955 }
956
957 switch (slotType)
958 {
959 case "Sedan_02_Door_1_1":
960 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
961
962 case "Sedan_02_Door_2_1":
963 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
964
965 case "Sedan_02_Door_1_2":
966 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
967
968 case "Sedan_02_Door_2_2":
969 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
970
971 case "Sedan_02_Hood":
972 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
973
974 case "Sedan_02_Trunk":
975 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
976 }
977
978 return CarDoorState.DOORS_MISSING;
979 }
980
981
982 override bool CrewCanGetThrough( int posIdx )
983 {
984 switch( posIdx )
985 {
986 case 0:
987 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
988 return false;
989
990 return true;
991 break;
992
993 case 1:
994 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
995 return false;
996
997 return true;
998 break;
999
1000 case 2:
1001 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
1002 return false;
1003
1004 return true;
1005 break;
1006
1007 case 3:
1008 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
1009 return false;
1010
1011 return true;
1012 break;
1013 }
1014
1015 return false;
1016 }
1017
1018 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1019 {
1020 switch( posIdx )
1021 {
1022 case 0:
1023 return "doors_driver";
1024 break;
1025 case 1:
1026 return "doors_codriver";
1027 break;
1028 case 2:
1029 return "doors_cargo1";
1030 break;
1031 case 3:
1032 return "doors_cargo2";
1033 break;
1034 }
1035
1036 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1037 }
1038
1039 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1040 {
1041 switch( posIdx )
1042 {
1043 case 0:
1044 return "Sedan_02_Door_1_1";
1045 break;
1046 case 1:
1047 return "Sedan_02_Door_2_1";
1048 break;
1049 case 2:
1050 return "Sedan_02_Door_1_2";
1051 break;
1052 case 3:
1053 return "Sedan_02_Door_2_2";
1054 break;
1055 }
1056
1057 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1058 }
1059
1060 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1061 {
1062 switch ( ctrl )
1063 {
1064 case CarSoundCtrl.DOORS:
1065 float newValue = 0;
1066 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
1067 {
1068 newValue += 0.25;
1069 }
1070
1071 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
1072 {
1073 newValue += 0.25;
1074 }
1075
1076 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1077 {
1078 newValue += 0.25;
1079 }
1080
1081 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1082 {
1083 newValue += 0.25;
1084 }
1085
1086 return Math.Clamp(newValue, 0, 1);
1087 break;
1088 }
1089
1090 return super.OnSound(ctrl, oldValue);
1091 }
1092
1093 override string GetAnimSourceFromSelection( string selection )
1094 {
1095 switch( selection )
1096 {
1097 case "doors_driver":
1098 return "DoorsDriver";
1099 case "doors_codriver":
1100 return "DoorsCoDriver";
1101 case "doors_cargo1":
1102 return "DoorsCargo1";
1103 case "doors_cargo2":
1104 return "DoorsCargo2";
1105 case "doors_hood":
1106 return "DoorsHood";
1107 case "doors_trunk":
1108 return "DoorsTrunk";
1109 }
1110
1111 return "";
1112 }
1113
1114
1115 override bool IsVitalTruckBattery()
1116 {
1117 return false;
1118 }
1119
1120 override bool IsVitalGlowPlug()
1121 {
1122 return false;
1123 }
1124
1125 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1126 {
1127 switch (currentSeat)
1128 {
1129 case 0:
1130 return nextSeat == 1;
1131
1132 case 1:
1133 return nextSeat == 0;
1134
1135 case 2:
1136 return nextSeat == 3;
1137
1138 case 3:
1139 return nextSeat == 2;
1140 }
1141
1142 return false;
1143 }
1144
1145 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1146 {
1147 switch (pCurrentSeat)
1148 {
1149 case 0:
1150 return pDoorsSelection == "DoorsDriver";
1151
1152 case 1:
1153 return pDoorsSelection == "DoorsCoDriver";
1154
1155 case 2:
1156 return pDoorsSelection == "DoorsCargo1";
1157
1158 case 3:
1159 return pDoorsSelection == "DoorsCargo2";
1160 }
1161
1162 return false;
1163 }
1164
1165 override void OnDebugSpawn()
1166 {
1167 SpawnUniversalParts();
1168 SpawnAdditionalItems();
1169 FillUpCarFluids();
1170
1171 GameInventory inventory = GetInventory();
1172 inventory.CreateInInventory("Sedan_02_Wheel");
1173 inventory.CreateInInventory("Sedan_02_Wheel");
1174 inventory.CreateInInventory("Sedan_02_Wheel");
1175 inventory.CreateInInventory("Sedan_02_Wheel");
1176 inventory.CreateInInventory("Sedan_02_Wheel");
1177
1178 inventory.CreateInInventory("Sedan_02_Door_1_1");
1179 inventory.CreateInInventory("Sedan_02_Door_1_2");
1180 inventory.CreateInInventory("Sedan_02_Door_2_1");
1181 inventory.CreateInInventory("Sedan_02_Door_2_2");
1182 inventory.CreateInInventory("Sedan_02_Hood");
1183 inventory.CreateInInventory("Sedan_02_Trunk");
1184
1185 //-----IN CAR CARGO
1186 inventory.CreateInInventory("Sedan_02_Wheel");
1187 inventory.CreateInInventory("Sedan_02_Wheel");
1188 }
1189}
1190
1191class Sedan_02_Red extends Sedan_02
1192{
1193 override void OnDebugSpawn()
1194 {
1195 SpawnUniversalParts();
1196 SpawnAdditionalItems();
1197 FillUpCarFluids();
1198
1199 GameInventory inventory = GetInventory();
1200 inventory.CreateInInventory("Sedan_02_Wheel");
1201 inventory.CreateInInventory("Sedan_02_Wheel");
1202 inventory.CreateInInventory("Sedan_02_Wheel");
1203 inventory.CreateInInventory("Sedan_02_Wheel");
1204
1205 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1206 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1207 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1208 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1209 inventory.CreateInInventory("Sedan_02_Hood_Red");
1210 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1211
1212 //-----IN CAR CARGO
1213 inventory.CreateInInventory("Sedan_02_Wheel");
1214 inventory.CreateInInventory("Sedan_02_Wheel");
1215 }
1216}
1217
1218class Sedan_02_Grey extends Sedan_02
1219{
1220 override void OnDebugSpawn()
1221 {
1222 SpawnUniversalParts();
1223 SpawnAdditionalItems();
1224 FillUpCarFluids();
1225
1226 GameInventory inventory = GetInventory();
1227 inventory.CreateInInventory("Sedan_02_Wheel");
1228 inventory.CreateInInventory("Sedan_02_Wheel");
1229 inventory.CreateInInventory("Sedan_02_Wheel");
1230 inventory.CreateInInventory("Sedan_02_Wheel");
1231
1232 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1233 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1234 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1235 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1236 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1237 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1238
1239 //-----IN CAR CARGO
1240 inventory.CreateInInventory("Sedan_02_Wheel");
1241 inventory.CreateInInventory("Sedan_02_Wheel");
1242 }
1243}
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.