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

◆ CreateRearLight()

override CarRearLightBase OnDebugSpawn::CreateRearLight ( )
protected

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

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