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

◆ EOnPostSimulate()

override void OnDebugSpawn::EOnPostSimulate ( IEntity other,
float timeSlice )
protected

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

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