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

◆ OnEngineStop()

override void OnDebugSpawn::OnEngineStop ( )
protected

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

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