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

◆ OnEngineStop()

override void OnDebugSpawn::OnEngineStop ( )
protected

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

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