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

◆ OnSound()

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

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

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