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

◆ OnEngineStart()

override void OnDebugSpawn::OnEngineStart ( )
protected

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

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