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

◆ NeedElectricitySourceDevice()

override bool OnDebugSpawn::NeedElectricitySourceDevice ( )
protected

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

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

Используется в OnEngineStart(), OnEngineStop(), OnUpdate(), SpawnUniversalParts() и UpdateHeadlightState().