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

◆ GetAnimSourceFromSelection()

override string OnDebugSpawn::GetAnimSourceFromSelection ( string selection)
protected

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

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