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

◆ CreateRearLight()

override CarRearLightBase OnDebugSpawn::CreateRearLight ( )
protected

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

537{
541
542 void Sedan_02()
543 {
544 m_dmgContactCoef = 0.0790;
545
546 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
547 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
548 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
549 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
550 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
551 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
552
553 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
554 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
555
556 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
557 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
558
559 SetEnginePos("0 0.7 -1.7");
560 }
561
562 override void EEInit()
563 {
564 super.EEInit();
565
566 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
567 {
569 m_UTSSettings.m_ManualUpdate = true;
571 m_UTSSettings.m_TemperatureCap = 0;
572 m_UTSSettings.m_RangeFull = 0.5;
573 m_UTSSettings.m_RangeMax = 2;
574
577 }
578 }
579
580 override void OnEngineStart()
581 {
582 super.OnEngineStart();
583
584 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
585 {
586 m_UTSource.SetDefferedActive(true, 20.0);
587 }
588 }
589
590 override void OnEngineStop()
591 {
592 super.OnEngineStop();
593
594 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
595 {
596 m_UTSource.SetDefferedActive(false, 10.0);
597 }
598 }
599
600 override void EOnPostSimulate(IEntity other, float timeSlice)
601 {
602 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
603 {
604 if (m_UTSource.IsActive())
605 {
607 }
608 }
609 }
610
611 override int GetAnimInstance()
612 {
613 return VehicleAnimInstances.S120;
614 }
615
616 override int GetSeatAnimationType(int posIdx)
617 {
618 switch (posIdx)
619 {
620 case 0:
621 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
622 case 1:
623 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
624 case 2:
625 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
626 case 3:
627 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
628 }
629
630 return 0;
631 }
632
633 // Override for car-specific light type
635 {
636 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
637 }
638
639 // Override for car-specific light type
641 {
642 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
643 }
644
645 override bool CanReleaseAttachment( EntityAI attachment )
646 {
647 if (!super.CanReleaseAttachment(attachment))
648 {
649 return false;
650 }
651
652 string attType = attachment.GetType();
653 switch (attType)
654 {
655 case "CarBattery":
656 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
657 {
658 return false;
659 }
660 break;
661
662 case "SparkPlug":
663 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
664 {
665 return false;
666 }
667 break;
668
669 case "CarRadiator":
670 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
671 {
672 return false;
673 }
674 break;
675 }
676
677 return true;
678 }
679
680 override protected bool CanManipulateSpareWheel(string slotSelectionName)
681 {
682 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
683 }
684
685 override bool CanDisplayAttachmentCategory(string category_name)
686 {
687 if ( !super.CanDisplayAttachmentCategory(category_name))
688 {
689 return false;
690 }
691
692 category_name.ToLower();
693 if (category_name.Contains("engine"))
694 {
695 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
696 {
697 return false;
698 }
699 }
700
701 if (category_name.Contains("trunk"))
702 {
703 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
704 {
705 return false;
706 }
707 }
708
709 return true;
710 }
711
712 override bool CanDisplayCargo()
713 {
714 if ( !super.CanDisplayCargo() )
715 return false;
716
717 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
718 return false;
719
720 return true;
721 }
722
723 override int GetCarDoorsState(string slotType)
724 {
725 CarDoor carDoor;
726
727 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
728 if (!carDoor)
729 {
730 return CarDoorState.DOORS_MISSING;
731 }
732
733 switch (slotType)
734 {
735 case "Sedan_02_Door_1_1":
736 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
737
738 case "Sedan_02_Door_2_1":
739 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
740
741 case "Sedan_02_Door_1_2":
742 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
743
744 case "Sedan_02_Door_2_2":
745 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
746
747 case "Sedan_02_Hood":
748 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
749
750 case "Sedan_02_Trunk":
751 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
752 }
753
754 return CarDoorState.DOORS_MISSING;
755 }
756
757
758 override bool CrewCanGetThrough( int posIdx )
759 {
760 switch( posIdx )
761 {
762 case 0:
763 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
764 return false;
765
766 return true;
767 break;
768
769 case 1:
770 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
771 return false;
772
773 return true;
774 break;
775
776 case 2:
777 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
778 return false;
779
780 return true;
781 break;
782
783 case 3:
784 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
785 return false;
786
787 return true;
788 break;
789 }
790
791 return false;
792 }
793
794 override string GetDoorSelectionNameFromSeatPos(int posIdx)
795 {
796 switch( posIdx )
797 {
798 case 0:
799 return "doors_driver";
800 break;
801 case 1:
802 return "doors_codriver";
803 break;
804 case 2:
805 return "doors_cargo1";
806 break;
807 case 3:
808 return "doors_cargo2";
809 break;
810 }
811
812 return super.GetDoorSelectionNameFromSeatPos(posIdx);
813 }
814
815 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
816 {
817 switch( posIdx )
818 {
819 case 0:
820 return "Sedan_02_Door_1_1";
821 break;
822 case 1:
823 return "Sedan_02_Door_2_1";
824 break;
825 case 2:
826 return "Sedan_02_Door_1_2";
827 break;
828 case 3:
829 return "Sedan_02_Door_2_2";
830 break;
831 }
832
833 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
834 }
835
836 override float OnSound(CarSoundCtrl ctrl, float oldValue)
837 {
838 switch ( ctrl )
839 {
840 case CarSoundCtrl.DOORS:
841 float newValue = 0;
842 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
843 {
844 newValue += 0.25;
845 }
846
847 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
848 {
849 newValue += 0.25;
850 }
851
852 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
853 {
854 newValue += 0.25;
855 }
856
857 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
858 {
859 newValue += 0.25;
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
891 override bool IsVitalTruckBattery()
892 {
893 return false;
894 }
895
896 override bool IsVitalGlowPlug()
897 {
898 return false;
899 }
900
901 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
902 {
903 switch (currentSeat)
904 {
905 case 0:
906 return nextSeat == 1;
907
908 case 1:
909 return nextSeat == 0;
910
911 case 2:
912 return nextSeat == 3;
913
914 case 3:
915 return nextSeat == 2;
916 }
917
918 return false;
919 }
920
921 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
922 {
923 switch (pCurrentSeat)
924 {
925 case 0:
926 return pDoorsSelection == "DoorsDriver";
927
928 case 1:
929 return pDoorsSelection == "DoorsCoDriver";
930
931 case 2:
932 return pDoorsSelection == "DoorsCargo1";
933
934 case 3:
935 return pDoorsSelection == "DoorsCargo2";
936 }
937
938 return false;
939 }
940
941 override void OnDebugSpawn()
942 {
943 SpawnUniversalParts();
944 SpawnAdditionalItems();
945 FillUpCarFluids();
946
947 GetInventory().CreateInInventory("Sedan_02_Wheel");
948 GetInventory().CreateInInventory("Sedan_02_Wheel");
949 GetInventory().CreateInInventory("Sedan_02_Wheel");
950 GetInventory().CreateInInventory("Sedan_02_Wheel");
951 GetInventory().CreateInInventory("Sedan_02_Wheel");
952
953 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
954 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
955 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
956 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
957 GetInventory().CreateInInventory("Sedan_02_Hood");
958 GetInventory().CreateInInventory("Sedan_02_Trunk");
959
960 //-----IN CAR CARGO
961 GetInventory().CreateInInventory("Sedan_02_Wheel");
962 GetInventory().CreateInInventory("Sedan_02_Wheel");
963 }
964}
965
966class Sedan_02_Red extends Sedan_02
967{
968 override void OnDebugSpawn()
969 {
970 SpawnUniversalParts();
971 SpawnAdditionalItems();
972 FillUpCarFluids();
973
974 GetInventory().CreateInInventory("Sedan_02_Wheel");
975 GetInventory().CreateInInventory("Sedan_02_Wheel");
976 GetInventory().CreateInInventory("Sedan_02_Wheel");
977 GetInventory().CreateInInventory("Sedan_02_Wheel");
978
979 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
980 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
981 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
982 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
983 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
984 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
985
986 //-----IN CAR CARGO
987 GetInventory().CreateInInventory("Sedan_02_Wheel");
988 GetInventory().CreateInInventory("Sedan_02_Wheel");
989 }
990}
991
992class Sedan_02_Grey extends Sedan_02
993{
994 override void OnDebugSpawn()
995 {
996 SpawnUniversalParts();
997 SpawnAdditionalItems();
998 FillUpCarFluids();
999
1000 GetInventory().CreateInInventory("Sedan_02_Wheel");
1001 GetInventory().CreateInInventory("Sedan_02_Wheel");
1002 GetInventory().CreateInInventory("Sedan_02_Wheel");
1003 GetInventory().CreateInInventory("Sedan_02_Wheel");
1004
1005 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1006 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1007 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1008 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1009 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1010 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1011
1012 //-----IN CAR CARGO
1013 GetInventory().CreateInInventory("Sedan_02_Wheel");
1014 GetInventory().CreateInInventory("Sedan_02_Wheel");
1015 }
1016}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:433
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:797
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:433
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:765
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:732
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:711
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:496
override void OnEngineStop()
Определения Sedan_02.c:486
override void EEInit()
Определения Sedan_02.c:458
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:541
override bool CanDisplayCargo()
Определения Sedan_02.c:608
override void OnEngineStart()
Определения Sedan_02.c:476
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:530
override int GetAnimInstance()
Определения Sedan_02.c:507
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:654
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:817
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:576
override bool IsVitalGlowPlug()
Определения Sedan_02.c:792
void Sedan_02()
Определения Sedan_02.c:438
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:536
override bool IsVitalTruckBattery()
Определения Sedan_02.c:787
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:690
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:619
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:581
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:459
Определения Sedan_02.c:458
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:38
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
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/constants.c:808
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.