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

◆ CreateRearLight()

override CarRearLightBase OnDebugSpawn::CreateRearLight ( )
protected

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

502{
506
507 void Hatchback_02()
508 {
509 //m_dmgContactCoef = 0.070;
510
511 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
512 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
513 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
514 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
515 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
516 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
517
518 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
519 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
520
521 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
522 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
523
524 SetEnginePos("0 0.7 1.4");
525 }
526
527 override void EEInit()
528 {
529 super.EEInit();
530
531 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
532 {
534 m_UTSSettings.m_ManualUpdate = true;
536 m_UTSSettings.m_TemperatureCap = 0;
537 m_UTSSettings.m_RangeFull = 0.5;
538 m_UTSSettings.m_RangeMax = 2;
539
542 }
543 }
544
545 override void OnEngineStart()
546 {
547 super.OnEngineStart();
548
549 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
550 {
551 m_UTSource.SetDefferedActive(true, 20.0);
552 }
553 }
554
555 override void OnEngineStop()
556 {
557 super.OnEngineStop();
558
559 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
560 {
561 m_UTSource.SetDefferedActive(false, 10.0);
562 }
563 }
564
565 override void EOnPostSimulate(IEntity other, float timeSlice)
566 {
567 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
568 {
569 if (m_UTSource.IsActive())
570 {
572 }
573 }
574 }
575
576 override int GetAnimInstance()
577 {
578 return VehicleAnimInstances.GOLF;
579 }
580
581 override int GetSeatAnimationType(int posIdx)
582 {
583 switch (posIdx)
584 {
585 case 0:
586 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
587 case 1:
588 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
589 case 2:
590 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
591 case 3:
592 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
593 }
594
595 return 0;
596 }
597
598 // Override for car-specific light type
600 {
601 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
602 }
603
604 // Override for car-specific light type
606 {
607 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
608 }
609
610 override bool CanReleaseAttachment(EntityAI attachment)
611 {
612 if (!super.CanReleaseAttachment(attachment))
613 {
614 return false;
615 }
616
617 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
618 {
619 string attType = attachment.GetType();
620 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
621 {
622 return false;
623 }
624 }
625
626 return true;
627 }
628
629 override protected bool CanManipulateSpareWheel(string slotSelectionName)
630 {
631 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
632 }
633
634 override bool CanDisplayAttachmentCategory( string category_name )
635 {
636 //super
637 if ( !super.CanDisplayAttachmentCategory( category_name ) )
638 return false;
639 //
640
641 category_name.ToLower();
642 if ( category_name.Contains("engine") )
643 {
644 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
645 return false;
646 }
647
648 return true;
649 }
650
651 override bool CanDisplayCargo()
652 {
653 if ( !super.CanDisplayCargo() )
654 return false;
655
656 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
657 return false;
658
659 return true;
660 }
661
662 override int GetCarDoorsState(string slotType)
663 {
664 CarDoor carDoor;
665
666 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
667 if (!carDoor)
668 {
669 return CarDoorState.DOORS_MISSING;
670 }
671
672 switch (slotType)
673 {
674 case "Hatchback_02_Door_1_1":
675 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
676
677 case "Hatchback_02_Door_2_1":
678 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
679
680 case "Hatchback_02_Door_1_2":
681 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
682
683 case "Hatchback_02_Door_2_2":
684 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
685
686 case "Hatchback_02_Hood":
687 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
688
689 case "Hatchback_02_Trunk":
690 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
691 }
692
693 return CarDoorState.DOORS_MISSING;
694 }
695
696
697 override bool CrewCanGetThrough(int posIdx)
698 {
699 switch (posIdx)
700 {
701 case 0:
702 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
703 {
704 return false;
705 }
706
707 return true;
708
709 case 1:
710 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
711 {
712 return false;
713 }
714
715 return true;
716
717 case 2:
718 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
719 {
720 return false;
721 }
722
723 return true;
724
725 case 3:
726 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
727 {
728 return false;
729 }
730
731 return true;
732 }
733
734 return false;
735 }
736
737 override string GetDoorSelectionNameFromSeatPos(int posIdx)
738 {
739 switch( posIdx )
740 {
741 case 0:
742 return "doors_driver";
743 break;
744 case 1:
745 return "doors_codriver";
746 break;
747 case 2:
748 return "doors_cargo1";
749 break;
750 case 3:
751 return "doors_cargo2";
752 break;
753 }
754
755 return super.GetDoorSelectionNameFromSeatPos(posIdx);
756 }
757
758 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
759 {
760 switch( posIdx )
761 {
762 case 0:
763 return "Hatchback_02_Door_1_1";
764 break;
765 case 1:
766 return "Hatchback_02_Door_2_1";
767 break;
768 case 2:
769 return "Hatchback_02_Door_1_2";
770 break;
771 case 3:
772 return "Hatchback_02_Door_2_2";
773 break;
774 }
775
776 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
777 }
778
779 override float OnSound(CarSoundCtrl ctrl, float oldValue)
780 {
781 switch (ctrl)
782 {
783 case CarSoundCtrl.DOORS:
784 float newValue = 0;
785 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
786 {
787 newValue += 0.25;
788 }
789
790 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
791 {
792 newValue += 0.25;
793 }
794
795 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
796 {
797 newValue += 0.25;
798 }
799
800 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
801 {
802 newValue += 0.25;
803 }
804
805 return Math.Clamp(newValue, 0, 1);
806 break;
807 }
808
809 return super.OnSound(ctrl, oldValue);
810 }
811
812 override string GetAnimSourceFromSelection( string selection )
813 {
814 switch( selection )
815 {
816 case "doors_driver":
817 return "DoorsDriver";
818 case "doors_codriver":
819 return "DoorsCoDriver";
820 case "doors_cargo1":
821 return "DoorsCargo1";
822 case "doors_cargo2":
823 return "DoorsCargo2";
824 case "doors_hood":
825 return "DoorsHood";
826 case "doors_trunk":
827 return "DoorsTrunk";
828 }
829
830 return "";
831 }
832
833
834 override bool IsVitalTruckBattery()
835 {
836 return false;
837 }
838
839 override bool IsVitalGlowPlug()
840 {
841 return false;
842 }
843
844 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
845 {
846 switch (currentSeat)
847 {
848 case 0:
849 return nextSeat == 1;
850 case 1:
851 return nextSeat == 0;
852 case 2:
853 return nextSeat == 3;
854 case 3:
855 return nextSeat == 2;
856 }
857
858 return false;
859 }
860
861 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
862 {
863 switch (pCurrentSeat)
864 {
865 case 0:
866 return pDoorsSelection == "DoorsDriver";
867 case 1:
868 return pDoorsSelection == "DoorsCoDriver";
869 case 2:
870 return pDoorsSelection == "DoorsCargo1";
871 case 3:
872 return pDoorsSelection == "DoorsCargo2";
873 }
874
875 return false;
876 }
877
878 override void OnDebugSpawn()
879 {
880 SpawnUniversalParts();
881 SpawnAdditionalItems();
882 FillUpCarFluids();
883
884 GetInventory().CreateInInventory("Hatchback_02_Wheel");
885 GetInventory().CreateInInventory("Hatchback_02_Wheel");
886 GetInventory().CreateInInventory("Hatchback_02_Wheel");
887 GetInventory().CreateInInventory("Hatchback_02_Wheel");
888
889 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
890 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
891 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
892 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
893 GetInventory().CreateInInventory("Hatchback_02_Hood");
894 GetInventory().CreateInInventory("Hatchback_02_Trunk");
895
896 //-----IN CAR CARGO
897 GetInventory().CreateInInventory("Hatchback_02_Wheel");
898 GetInventory().CreateInInventory("Hatchback_02_Wheel");
899 }
900}
901
902class Hatchback_02_Black extends Hatchback_02
903{
904 override void OnDebugSpawn()
905 {
906 SpawnUniversalParts();
907 SpawnAdditionalItems();
908 FillUpCarFluids();
909
910 GetInventory().CreateInInventory("Hatchback_02_Wheel");
911 GetInventory().CreateInInventory("Hatchback_02_Wheel");
912 GetInventory().CreateInInventory("Hatchback_02_Wheel");
913 GetInventory().CreateInInventory("Hatchback_02_Wheel");
914
915 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
916 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
917 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
918 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
919 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
920 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
921
922 //-----IN CAR CARGO
923 GetInventory().CreateInInventory("Hatchback_02_Wheel");
924 GetInventory().CreateInInventory("Hatchback_02_Wheel");
925 }
926};
927
928class Hatchback_02_Blue extends Hatchback_02
929{
930 override void OnDebugSpawn()
931 {
932 SpawnUniversalParts();
933 SpawnAdditionalItems();
934 FillUpCarFluids();
935
936 GetInventory().CreateInInventory("Hatchback_02_Wheel");
937 GetInventory().CreateInInventory("Hatchback_02_Wheel");
938 GetInventory().CreateInInventory("Hatchback_02_Wheel");
939 GetInventory().CreateInInventory("Hatchback_02_Wheel");
940
941 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
942 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
943 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
944 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
945 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
946 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
947
948 //-----IN CAR CARGO
949 GetInventory().CreateInInventory("Hatchback_02_Wheel");
950 GetInventory().CreateInInventory("Hatchback_02_Wheel");
951 }
952}
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
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:404
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:746
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:714
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:483
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:681
void Hatchback_02()
Определения Hatchback_02.c:409
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:660
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:467
override void OnEngineStop()
Определения Hatchback_02.c:457
override void EEInit()
Определения Hatchback_02.c:429
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:512
override bool CanDisplayCargo()
Определения Hatchback_02.c:553
override void OnEngineStart()
Определения Hatchback_02.c:447
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:507
override int GetAnimInstance()
Определения Hatchback_02.c:478
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:599
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:763
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:531
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:741
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:501
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:736
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:639
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:564
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:536
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void OnDebugSpawn()
Определения Hatchback_02.c:430
Определения Hatchback_02.c:429
Определения EnEntity.c:165
Определения EnMath.c:7
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.