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

◆ OnEngineStop()

override void OnDebugSpawn::OnEngineStop ( )
protected

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

534 : CarScript
535{
539
540 void Sedan_02()
541 {
542 m_dmgContactCoef = 0.0790;
543
544 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
545 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
546 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
547 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
548 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
549 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
550
551 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
552 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
553
554 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
555 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
556
557 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
558 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
559
560 SetEnginePos("0 0.7 -1.7");
561
563 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
564 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
565 }
566
567 void ~Sedan_02()
568 {
569 m_UTSource = null;
570 m_UTSSettings = null;
571 m_UTSLEngine = null;
572 }
573
574 override void EEInit()
575 {
576 super.EEInit();
577
578 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
579 {
581 m_UTSSettings.m_ManualUpdate = true;
583 m_UTSSettings.m_TemperatureCap = 0;
584 m_UTSSettings.m_RangeFull = 0.5;
585 m_UTSSettings.m_RangeMax = 2;
586
589 }
590 }
591
592 override bool NeedElectricitySourceDevice()
593 {
594 return true;
595 }
596
598 {
599 super.GetElectricitySourceDevice();
600
601 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
602 }
603
604 override string GetElectricitySourceDeviceType()
605 {
606 return "CarBattery";
607 }
608
609 override void OnEngineStart()
610 {
611 super.OnEngineStart();
612
613 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
614 {
615 if (m_UTSource)
616 m_UTSource.SetDefferedActive(true, 20.0);
617 }
618 }
619
620 override void OnEngineStop()
621 {
622 super.OnEngineStop();
623
624 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
625 {
626 if (m_UTSource)
627 m_UTSource.SetDefferedActive(false, 10.0);
628 }
629 }
630
631 override void EOnPostSimulate(IEntity other, float timeSlice)
632 {
633 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
634 {
635 if (m_UTSource && m_UTSource.IsActive())
636 {
638 }
639 }
640 }
641
642 override int GetAnimInstance()
643 {
644 return VehicleAnimInstances.S120;
645 }
646
647 override int GetSeatAnimationType(int posIdx)
648 {
649 switch (posIdx)
650 {
651 case 0:
652 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
653 case 1:
654 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
655 case 2:
656 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
657 case 3:
658 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
659 }
660
661 return 0;
662 }
663
664 override bool CanReleaseAttachment( EntityAI attachment )
665 {
666 if (!super.CanReleaseAttachment(attachment))
667 {
668 return false;
669 }
670
671 string attType = attachment.GetType();
672 switch (attType)
673 {
674 case "CarBattery":
675 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
676 {
677 return false;
678 }
679 break;
680
681 case "SparkPlug":
682 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
683 {
684 return false;
685 }
686 break;
687
688 case "CarRadiator":
689 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
690 {
691 return false;
692 }
693 break;
694 }
695
696 return true;
697 }
698
699 override protected bool CanManipulateSpareWheel(string slotSelectionName)
700 {
701 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
702 }
703
704 override bool CanDisplayAttachmentCategory(string category_name)
705 {
706 if ( !super.CanDisplayAttachmentCategory(category_name))
707 {
708 return false;
709 }
710
711 category_name.ToLower();
712 if (category_name.Contains("engine"))
713 {
714 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
715 {
716 return false;
717 }
718 }
719
720 if (category_name.Contains("trunk"))
721 {
722 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
723 {
724 return false;
725 }
726 }
727
728 return true;
729 }
730
731 override bool CanDisplayCargo()
732 {
733 if ( !super.CanDisplayCargo() )
734 return false;
735
736 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
737 return false;
738
739 return true;
740 }
741
742 override int GetCarDoorsState(string slotType)
743 {
744 CarDoor carDoor;
745
746 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
747 if (!carDoor)
748 {
749 return CarDoorState.DOORS_MISSING;
750 }
751
752 switch (slotType)
753 {
754 case "Sedan_02_Door_1_1":
755 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
756
757 case "Sedan_02_Door_2_1":
758 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
759
760 case "Sedan_02_Door_1_2":
761 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
762
763 case "Sedan_02_Door_2_2":
764 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
765
766 case "Sedan_02_Hood":
767 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
768
769 case "Sedan_02_Trunk":
770 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
771 }
772
773 return CarDoorState.DOORS_MISSING;
774 }
775
776
777 override bool CrewCanGetThrough( int posIdx )
778 {
779 switch( posIdx )
780 {
781 case 0:
782 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
783 return false;
784
785 return true;
786 break;
787
788 case 1:
789 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
790 return false;
791
792 return true;
793 break;
794
795 case 2:
796 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
797 return false;
798
799 return true;
800 break;
801
802 case 3:
803 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
804 return false;
805
806 return true;
807 break;
808 }
809
810 return false;
811 }
812
813 override string GetDoorSelectionNameFromSeatPos(int posIdx)
814 {
815 switch( posIdx )
816 {
817 case 0:
818 return "doors_driver";
819 break;
820 case 1:
821 return "doors_codriver";
822 break;
823 case 2:
824 return "doors_cargo1";
825 break;
826 case 3:
827 return "doors_cargo2";
828 break;
829 }
830
831 return super.GetDoorSelectionNameFromSeatPos(posIdx);
832 }
833
834 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
835 {
836 switch( posIdx )
837 {
838 case 0:
839 return "Sedan_02_Door_1_1";
840 break;
841 case 1:
842 return "Sedan_02_Door_2_1";
843 break;
844 case 2:
845 return "Sedan_02_Door_1_2";
846 break;
847 case 3:
848 return "Sedan_02_Door_2_2";
849 break;
850 }
851
852 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
853 }
854
855 override float OnSound(CarSoundCtrl ctrl, float oldValue)
856 {
857 switch ( ctrl )
858 {
859 case CarSoundCtrl.DOORS:
860 float newValue = 0;
861 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
862 {
863 newValue += 0.25;
864 }
865
866 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
867 {
868 newValue += 0.25;
869 }
870
871 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
872 {
873 newValue += 0.25;
874 }
875
876 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
877 {
878 newValue += 0.25;
879 }
880
881 return Math.Clamp(newValue, 0, 1);
882 break;
883 }
884
885 return super.OnSound(ctrl, oldValue);
886 }
887
888 override string GetAnimSourceFromSelection( string selection )
889 {
890 switch( selection )
891 {
892 case "doors_driver":
893 return "DoorsDriver";
894 case "doors_codriver":
895 return "DoorsCoDriver";
896 case "doors_cargo1":
897 return "DoorsCargo1";
898 case "doors_cargo2":
899 return "DoorsCargo2";
900 case "doors_hood":
901 return "DoorsHood";
902 case "doors_trunk":
903 return "DoorsTrunk";
904 }
905
906 return "";
907 }
908
909 override bool IsVitalGlowPlug()
910 {
911 return false;
912 }
913
914 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
915 {
916 switch (currentSeat)
917 {
918 case 0:
919 return nextSeat == 1;
920
921 case 1:
922 return nextSeat == 0;
923
924 case 2:
925 return nextSeat == 3;
926
927 case 3:
928 return nextSeat == 2;
929 }
930
931 return false;
932 }
933
934 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
935 {
936 switch (pCurrentSeat)
937 {
938 case 0:
939 return pDoorsSelection == "DoorsDriver";
940
941 case 1:
942 return pDoorsSelection == "DoorsCoDriver";
943
944 case 2:
945 return pDoorsSelection == "DoorsCargo1";
946
947 case 3:
948 return pDoorsSelection == "DoorsCargo2";
949 }
950
951 return false;
952 }
953
954 override void OnDebugSpawn()
955 {
957 SpawnAdditionalItems();
958 FillUpCarFluids();
959
960 GameInventory inventory = GetInventory();
961 inventory.CreateInInventory("Sedan_02_Wheel");
962 inventory.CreateInInventory("Sedan_02_Wheel");
963 inventory.CreateInInventory("Sedan_02_Wheel");
964 inventory.CreateInInventory("Sedan_02_Wheel");
965 inventory.CreateInInventory("Sedan_02_Wheel");
966
967 inventory.CreateInInventory("Sedan_02_Door_1_1");
968 inventory.CreateInInventory("Sedan_02_Door_1_2");
969 inventory.CreateInInventory("Sedan_02_Door_2_1");
970 inventory.CreateInInventory("Sedan_02_Door_2_2");
971 inventory.CreateInInventory("Sedan_02_Hood");
972 inventory.CreateInInventory("Sedan_02_Trunk");
973
974 //-----IN CAR CARGO
975 inventory.CreateInInventory("Sedan_02_Wheel");
976 inventory.CreateInInventory("Sedan_02_Wheel");
977 }
978}
979
980class Sedan_02_Red : Sedan_02
981{
982 override void OnDebugSpawn()
983 {
985 SpawnAdditionalItems();
986 FillUpCarFluids();
987
988 GameInventory inventory = GetInventory();
989 inventory.CreateInInventory("Sedan_02_Wheel");
990 inventory.CreateInInventory("Sedan_02_Wheel");
991 inventory.CreateInInventory("Sedan_02_Wheel");
992 inventory.CreateInInventory("Sedan_02_Wheel");
993
994 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
995 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
996 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
997 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
998 inventory.CreateInInventory("Sedan_02_Hood_Red");
999 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1000
1001 //-----IN CAR CARGO
1002 inventory.CreateInInventory("Sedan_02_Wheel");
1003 inventory.CreateInInventory("Sedan_02_Wheel");
1004 }
1005}
1006
1007class Sedan_02_Grey : Sedan_02
1008{
1009 override void OnDebugSpawn()
1010 {
1012 SpawnAdditionalItems();
1013 FillUpCarFluids();
1014
1015 GameInventory inventory = GetInventory();
1016 inventory.CreateInInventory("Sedan_02_Wheel");
1017 inventory.CreateInInventory("Sedan_02_Wheel");
1018 inventory.CreateInInventory("Sedan_02_Wheel");
1019 inventory.CreateInInventory("Sedan_02_Wheel");
1020
1021 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1022 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1023 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1024 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1025 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1026 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1027
1028 //-----IN CAR CARGO
1029 inventory.CreateInInventory("Sedan_02_Wheel");
1030 inventory.CreateInInventory("Sedan_02_Wheel");
1031 }
1032}
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.