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

◆ OnEngineStart()

override void OnDebugSpawn::OnEngineStart ( )
protected

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

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