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

◆ OnSound()

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

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

701{
705
706 void Hatchback_02()
707 {
708 //m_dmgContactCoef = 0.070;
709
710 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
711 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
712 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
713 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
714 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
715 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
716
717 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
718 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
719
720 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
721 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
722
723 SetEnginePos("0 0.7 1.4");
724 }
725
726 void ~Hatchback_02()
727 {
728 m_UTSource = null;
729 m_UTSSettings = null;
730 m_UTSLEngine = null;
731 }
732
733 override void EEInit()
734 {
735 super.EEInit();
736
737 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
738 {
740 m_UTSSettings.m_ManualUpdate = true;
742 m_UTSSettings.m_TemperatureCap = 0;
743 m_UTSSettings.m_RangeFull = 0.5;
744 m_UTSSettings.m_RangeMax = 2;
745
748 }
749 }
750
751 override void OnEngineStart()
752 {
753 super.OnEngineStart();
754
755 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
756 {
757 if (m_UTSource)
758 m_UTSource.SetDefferedActive(true, 20.0);
759 }
760 }
761
762 override void OnEngineStop()
763 {
764 super.OnEngineStop();
765
766 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
767 {
768 if (m_UTSource)
769 m_UTSource.SetDefferedActive(false, 10.0);
770 }
771 }
772
773 override void EOnPostSimulate(IEntity other, float timeSlice)
774 {
775 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
776 {
777 if (m_UTSource && m_UTSource.IsActive())
778 {
780 }
781 }
782 }
783
784 override int GetAnimInstance()
785 {
786 return VehicleAnimInstances.GOLF;
787 }
788
789 override int GetSeatAnimationType(int posIdx)
790 {
791 switch (posIdx)
792 {
793 case 0:
794 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
795 case 1:
796 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
797 case 2:
798 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
799 case 3:
800 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
801 }
802
803 return 0;
804 }
805
806 // Override for car-specific light type
808 {
809 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
810 }
811
812 // Override for car-specific light type
814 {
815 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
816 }
817
818 override bool CanReleaseAttachment(EntityAI attachment)
819 {
820 if (!super.CanReleaseAttachment(attachment))
821 {
822 return false;
823 }
824
825 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
826 {
827 string attType = attachment.GetType();
828 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
829 {
830 return false;
831 }
832 }
833
834 return true;
835 }
836
837 override protected bool CanManipulateSpareWheel(string slotSelectionName)
838 {
839 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
840 }
841
842 override bool CanDisplayAttachmentCategory( string category_name )
843 {
844 //super
845 if ( !super.CanDisplayAttachmentCategory( category_name ) )
846 return false;
847 //
848
849 category_name.ToLower();
850 if ( category_name.Contains("engine") )
851 {
852 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
853 return false;
854 }
855
856 return true;
857 }
858
859 override bool CanDisplayCargo()
860 {
861 if ( !super.CanDisplayCargo() )
862 return false;
863
864 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
865 return false;
866
867 return true;
868 }
869
870 override int GetCarDoorsState(string slotType)
871 {
872 CarDoor carDoor;
873
874 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
875 if (!carDoor)
876 {
877 return CarDoorState.DOORS_MISSING;
878 }
879
880 switch (slotType)
881 {
882 case "Hatchback_02_Door_1_1":
883 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
884
885 case "Hatchback_02_Door_2_1":
886 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
887
888 case "Hatchback_02_Door_1_2":
889 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
890
891 case "Hatchback_02_Door_2_2":
892 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
893
894 case "Hatchback_02_Hood":
895 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
896
897 case "Hatchback_02_Trunk":
898 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
899 }
900
901 return CarDoorState.DOORS_MISSING;
902 }
903
904
905 override bool CrewCanGetThrough(int posIdx)
906 {
907 switch (posIdx)
908 {
909 case 0:
910 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
911 {
912 return false;
913 }
914
915 return true;
916
917 case 1:
918 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
919 {
920 return false;
921 }
922
923 return true;
924
925 case 2:
926 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
927 {
928 return false;
929 }
930
931 return true;
932
933 case 3:
934 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
935 {
936 return false;
937 }
938
939 return true;
940 }
941
942 return false;
943 }
944
945 override string GetDoorSelectionNameFromSeatPos(int posIdx)
946 {
947 switch( posIdx )
948 {
949 case 0:
950 return "doors_driver";
951 break;
952 case 1:
953 return "doors_codriver";
954 break;
955 case 2:
956 return "doors_cargo1";
957 break;
958 case 3:
959 return "doors_cargo2";
960 break;
961 }
962
963 return super.GetDoorSelectionNameFromSeatPos(posIdx);
964 }
965
966 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
967 {
968 switch( posIdx )
969 {
970 case 0:
971 return "Hatchback_02_Door_1_1";
972 break;
973 case 1:
974 return "Hatchback_02_Door_2_1";
975 break;
976 case 2:
977 return "Hatchback_02_Door_1_2";
978 break;
979 case 3:
980 return "Hatchback_02_Door_2_2";
981 break;
982 }
983
984 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
985 }
986
987 override float OnSound(CarSoundCtrl ctrl, float oldValue)
988 {
989 switch (ctrl)
990 {
991 case CarSoundCtrl.DOORS:
992 float newValue = 0;
993 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
994 {
995 newValue += 0.25;
996 }
997
998 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
999 {
1000 newValue += 0.25;
1001 }
1002
1003 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1004 {
1005 newValue += 0.25;
1006 }
1007
1008 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1009 {
1010 newValue += 0.25;
1011 }
1012
1013 return Math.Clamp(newValue, 0, 1);
1014 break;
1015 }
1016
1017 return super.OnSound(ctrl, oldValue);
1018 }
1019
1020 override string GetAnimSourceFromSelection( string selection )
1021 {
1022 switch( selection )
1023 {
1024 case "doors_driver":
1025 return "DoorsDriver";
1026 case "doors_codriver":
1027 return "DoorsCoDriver";
1028 case "doors_cargo1":
1029 return "DoorsCargo1";
1030 case "doors_cargo2":
1031 return "DoorsCargo2";
1032 case "doors_hood":
1033 return "DoorsHood";
1034 case "doors_trunk":
1035 return "DoorsTrunk";
1036 }
1037
1038 return "";
1039 }
1040
1041
1042 override bool IsVitalTruckBattery()
1043 {
1044 return false;
1045 }
1046
1047 override bool IsVitalGlowPlug()
1048 {
1049 return false;
1050 }
1051
1052 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1053 {
1054 switch (currentSeat)
1055 {
1056 case 0:
1057 return nextSeat == 1;
1058 case 1:
1059 return nextSeat == 0;
1060 case 2:
1061 return nextSeat == 3;
1062 case 3:
1063 return nextSeat == 2;
1064 }
1065
1066 return false;
1067 }
1068
1069 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1070 {
1071 switch (pCurrentSeat)
1072 {
1073 case 0:
1074 return pDoorsSelection == "DoorsDriver";
1075 case 1:
1076 return pDoorsSelection == "DoorsCoDriver";
1077 case 2:
1078 return pDoorsSelection == "DoorsCargo1";
1079 case 3:
1080 return pDoorsSelection == "DoorsCargo2";
1081 }
1082
1083 return false;
1084 }
1085
1086 override void OnDebugSpawn()
1087 {
1088 SpawnUniversalParts();
1089 SpawnAdditionalItems();
1090 FillUpCarFluids();
1091
1092 GameInventory inventory = GetInventory();
1093 inventory.CreateInInventory("Hatchback_02_Wheel");
1094 inventory.CreateInInventory("Hatchback_02_Wheel");
1095 inventory.CreateInInventory("Hatchback_02_Wheel");
1096 inventory.CreateInInventory("Hatchback_02_Wheel");
1097
1098 inventory.CreateInInventory("Hatchback_02_Door_1_1");
1099 inventory.CreateInInventory("Hatchback_02_Door_1_2");
1100 inventory.CreateInInventory("Hatchback_02_Door_2_1");
1101 inventory.CreateInInventory("Hatchback_02_Door_2_2");
1102 inventory.CreateInInventory("Hatchback_02_Hood");
1103 inventory.CreateInInventory("Hatchback_02_Trunk");
1104
1105 //-----IN CAR CARGO
1106 inventory.CreateInInventory("Hatchback_02_Wheel");
1107 inventory.CreateInInventory("Hatchback_02_Wheel");
1108 }
1109}
1110
1111class Hatchback_02_Black extends Hatchback_02
1112{
1113 override void OnDebugSpawn()
1114 {
1115 SpawnUniversalParts();
1116 SpawnAdditionalItems();
1117 FillUpCarFluids();
1118
1119 GameInventory inventory = GetInventory();
1120 inventory.CreateInInventory("Hatchback_02_Wheel");
1121 inventory.CreateInInventory("Hatchback_02_Wheel");
1122 inventory.CreateInInventory("Hatchback_02_Wheel");
1123 inventory.CreateInInventory("Hatchback_02_Wheel");
1124
1125 inventory.CreateInInventory("Hatchback_02_Door_1_1_Black");
1126 inventory.CreateInInventory("Hatchback_02_Door_1_2_Black");
1127 inventory.CreateInInventory("Hatchback_02_Door_2_1_Black");
1128 inventory.CreateInInventory("Hatchback_02_Door_2_2_Black");
1129 inventory.CreateInInventory("Hatchback_02_Hood_Black");
1130 inventory.CreateInInventory("Hatchback_02_Trunk_Black");
1131
1132 //-----IN CAR CARGO
1133 inventory.CreateInInventory("Hatchback_02_Wheel");
1134 inventory.CreateInInventory("Hatchback_02_Wheel");
1135 }
1136};
1137
1138class Hatchback_02_Blue extends Hatchback_02
1139{
1140 override void OnDebugSpawn()
1141 {
1142 SpawnUniversalParts();
1143 SpawnAdditionalItems();
1144 FillUpCarFluids();
1145
1146 GameInventory inventory = GetInventory();
1147 inventory.CreateInInventory("Hatchback_02_Wheel");
1148 inventory.CreateInInventory("Hatchback_02_Wheel");
1149 inventory.CreateInInventory("Hatchback_02_Wheel");
1150 inventory.CreateInInventory("Hatchback_02_Wheel");
1151
1152 inventory.CreateInInventory("Hatchback_02_Door_1_1_Blue");
1153 inventory.CreateInInventory("Hatchback_02_Door_1_2_Blue");
1154 inventory.CreateInInventory("Hatchback_02_Door_2_1_Blue");
1155 inventory.CreateInInventory("Hatchback_02_Door_2_2_Blue");
1156 inventory.CreateInInventory("Hatchback_02_Hood_Blue");
1157 inventory.CreateInInventory("Hatchback_02_Trunk_Blue");
1158
1159 //-----IN CAR CARGO
1160 inventory.CreateInInventory("Hatchback_02_Wheel");
1161 inventory.CreateInInventory("Hatchback_02_Wheel");
1162 }
1163}
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
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:414
void ~Hatchback_02()
Определения Hatchback_02.c:439
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:765
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:733
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:502
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:700
void Hatchback_02()
Определения Hatchback_02.c:419
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:679
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:486
override void OnEngineStop()
Определения Hatchback_02.c:475
override void EEInit()
Определения Hatchback_02.c:446
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:531
override bool CanDisplayCargo()
Определения Hatchback_02.c:572
override void OnEngineStart()
Определения Hatchback_02.c:464
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:526
override int GetAnimInstance()
Определения Hatchback_02.c:497
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:618
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:782
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:550
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:760
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:520
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:755
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:658
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:583
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:555
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
override void OnDebugSpawn()
Определения Hatchback_02.c:441
Определения Hatchback_02.c:440
Определения EnEntity.c:165
Определения EnMath.c:7
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.