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

◆ NeedElectricitySourceDevice()

override bool OnDebugSpawn::NeedElectricitySourceDevice ( )
protected

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

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