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

◆ CreateRearLight()

override CarRearLightBase OnDebugSpawn::CreateRearLight ( )
protected

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

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