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

◆ EOnPostSimulate()

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

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

545 : CarScript
546{
550
551 void Sedan_02()
552 {
553 m_dmgContactCoef = 0.0790;
554
555 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
556 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
557 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
558 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
559 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
560 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
561
562 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
563 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
564
565 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
566 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
567
568 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
569 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
570
571 SetEnginePos("0 0.7 -1.7");
572
574 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
575 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
576 }
577
578 void ~Sedan_02()
579 {
580 m_UTSource = null;
581 m_UTSSettings = null;
582 m_UTSLEngine = null;
583 }
584
585 override void EEInit()
586 {
587 super.EEInit();
588
589 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
590 {
592 m_UTSSettings.m_ManualUpdate = true;
594 m_UTSSettings.m_TemperatureCap = 0;
595 m_UTSSettings.m_RangeFull = 0.5;
596 m_UTSSettings.m_RangeMax = 2;
597
600 }
601 }
602
603 override bool NeedElectricitySourceDevice()
604 {
605 return true;
606 }
607
609 {
610 super.GetElectricitySourceDevice();
611
612 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
613 }
614
615 override string GetElectricitySourceDeviceType()
616 {
617 return "CarBattery";
618 }
619
620 override void OnEngineStart()
621 {
622 super.OnEngineStart();
623
624 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
625 {
626 if (m_UTSource)
627 m_UTSource.SetDefferedActive(true, 20.0);
628 }
629 }
630
631 override void OnEngineStop()
632 {
633 super.OnEngineStop();
634
635 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
636 {
637 if (m_UTSource)
638 m_UTSource.SetDefferedActive(false, 10.0);
639 }
640 }
641
642 override void EOnPostSimulate(IEntity other, float timeSlice)
643 {
644 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
645 {
646 if (m_UTSource && m_UTSource.IsActive())
647 {
649 }
650 }
651 }
652
653 override int GetAnimInstance()
654 {
655 return VehicleAnimInstances.S120;
656 }
657
658 override int GetSeatAnimationType(int posIdx)
659 {
660 switch (posIdx)
661 {
662 case 0:
663 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
664 case 1:
665 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
666 case 2:
667 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
668 case 3:
669 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
670 }
671
672 return 0;
673 }
674
675 override bool CanReleaseAttachment( EntityAI attachment )
676 {
677 if (!super.CanReleaseAttachment(attachment))
678 {
679 return false;
680 }
681
682 string attType = attachment.GetType();
683 switch (attType)
684 {
685 case "CarBattery":
686 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
687 {
688 return false;
689 }
690 break;
691
692 case "SparkPlug":
693 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
694 {
695 return false;
696 }
697 break;
698
699 case "CarRadiator":
700 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
701 {
702 return false;
703 }
704 break;
705 }
706
707 return true;
708 }
709
710 override protected bool CanManipulateSpareWheel(string slotSelectionName)
711 {
712 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
713 }
714
715 override bool CanDisplayAttachmentCategory(string category_name)
716 {
717 if ( !super.CanDisplayAttachmentCategory(category_name))
718 {
719 return false;
720 }
721
722 category_name.ToLower();
723 if (category_name.Contains("engine"))
724 {
725 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
726 {
727 return false;
728 }
729 }
730
731 if (category_name.Contains("trunk"))
732 {
733 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
734 {
735 return false;
736 }
737 }
738
739 return true;
740 }
741
742 override bool CanDisplayCargo()
743 {
744 if ( !super.CanDisplayCargo() )
745 return false;
746
747 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
748 return false;
749
750 return true;
751 }
752
753 override int GetCarDoorsState(string slotType)
754 {
755 CarDoor carDoor;
756
757 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
758 if (!carDoor)
759 {
760 return CarDoorState.DOORS_MISSING;
761 }
762
763 switch (slotType)
764 {
765 case "Sedan_02_Door_1_1":
766 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
767
768 case "Sedan_02_Door_2_1":
769 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
770
771 case "Sedan_02_Door_1_2":
772 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
773
774 case "Sedan_02_Door_2_2":
775 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
776
777 case "Sedan_02_Hood":
778 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
779
780 case "Sedan_02_Trunk":
781 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
782 }
783
784 return CarDoorState.DOORS_MISSING;
785 }
786
787
788 override bool CrewCanGetThrough( int posIdx )
789 {
790 switch( posIdx )
791 {
792 case 0:
793 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
794 return false;
795
796 return true;
797 break;
798
799 case 1:
800 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
801 return false;
802
803 return true;
804 break;
805
806 case 2:
807 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
808 return false;
809
810 return true;
811 break;
812
813 case 3:
814 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
815 return false;
816
817 return true;
818 break;
819 }
820
821 return false;
822 }
823
824 override string GetDoorSelectionNameFromSeatPos(int posIdx)
825 {
826 switch( posIdx )
827 {
828 case 0:
829 return "doors_driver";
830 break;
831 case 1:
832 return "doors_codriver";
833 break;
834 case 2:
835 return "doors_cargo1";
836 break;
837 case 3:
838 return "doors_cargo2";
839 break;
840 }
841
842 return super.GetDoorSelectionNameFromSeatPos(posIdx);
843 }
844
845 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
846 {
847 switch( posIdx )
848 {
849 case 0:
850 return "Sedan_02_Door_1_1";
851 break;
852 case 1:
853 return "Sedan_02_Door_2_1";
854 break;
855 case 2:
856 return "Sedan_02_Door_1_2";
857 break;
858 case 3:
859 return "Sedan_02_Door_2_2";
860 break;
861 }
862
863 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
864 }
865
866 override float OnSound(CarSoundCtrl ctrl, float oldValue)
867 {
868 switch ( ctrl )
869 {
870 case CarSoundCtrl.DOORS:
871 float newValue = 0;
872 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
873 {
874 newValue += 0.25;
875 }
876
877 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
878 {
879 newValue += 0.25;
880 }
881
882 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
883 {
884 newValue += 0.25;
885 }
886
887 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
888 {
889 newValue += 0.25;
890 }
891
892 return Math.Clamp(newValue, 0, 1);
893 break;
894 }
895
896 return super.OnSound(ctrl, oldValue);
897 }
898
899 override string GetAnimSourceFromSelection( string selection )
900 {
901 switch( selection )
902 {
903 case "doors_driver":
904 return "DoorsDriver";
905 case "doors_codriver":
906 return "DoorsCoDriver";
907 case "doors_cargo1":
908 return "DoorsCargo1";
909 case "doors_cargo2":
910 return "DoorsCargo2";
911 case "doors_hood":
912 return "DoorsHood";
913 case "doors_trunk":
914 return "DoorsTrunk";
915 }
916
917 return "";
918 }
919
920 override bool IsVitalGlowPlug()
921 {
922 return false;
923 }
924
925 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
926 {
927 switch (currentSeat)
928 {
929 case 0:
930 return nextSeat == 1;
931
932 case 1:
933 return nextSeat == 0;
934
935 case 2:
936 return nextSeat == 3;
937
938 case 3:
939 return nextSeat == 2;
940 }
941
942 return false;
943 }
944
945 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
946 {
947 switch (pCurrentSeat)
948 {
949 case 0:
950 return pDoorsSelection == "DoorsDriver";
951
952 case 1:
953 return pDoorsSelection == "DoorsCoDriver";
954
955 case 2:
956 return pDoorsSelection == "DoorsCargo1";
957
958 case 3:
959 return pDoorsSelection == "DoorsCargo2";
960 }
961
962 return false;
963 }
964
965 override void OnDebugSpawn()
966 {
968 SpawnAdditionalItems();
969 FillUpCarFluids();
970
971 GameInventory inventory = GetInventory();
972 inventory.CreateInInventory("Sedan_02_Wheel");
973 inventory.CreateInInventory("Sedan_02_Wheel");
974 inventory.CreateInInventory("Sedan_02_Wheel");
975 inventory.CreateInInventory("Sedan_02_Wheel");
976 inventory.CreateInInventory("Sedan_02_Wheel");
977
978 inventory.CreateInInventory("Sedan_02_Door_1_1");
979 inventory.CreateInInventory("Sedan_02_Door_1_2");
980 inventory.CreateInInventory("Sedan_02_Door_2_1");
981 inventory.CreateInInventory("Sedan_02_Door_2_2");
982 inventory.CreateInInventory("Sedan_02_Hood");
983 inventory.CreateInInventory("Sedan_02_Trunk");
984
985 //-----IN CAR CARGO
986 inventory.CreateInInventory("Sedan_02_Wheel");
987 inventory.CreateInInventory("Sedan_02_Wheel");
988 }
989}
990
991class Sedan_02_Red : Sedan_02
992{
993 override void OnDebugSpawn()
994 {
996 SpawnAdditionalItems();
997 FillUpCarFluids();
998
999 GameInventory inventory = GetInventory();
1000 inventory.CreateInInventory("Sedan_02_Wheel");
1001 inventory.CreateInInventory("Sedan_02_Wheel");
1002 inventory.CreateInInventory("Sedan_02_Wheel");
1003 inventory.CreateInInventory("Sedan_02_Wheel");
1004
1005 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1006 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1007 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1008 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1009 inventory.CreateInInventory("Sedan_02_Hood_Red");
1010 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1011
1012 //-----IN CAR CARGO
1013 inventory.CreateInInventory("Sedan_02_Wheel");
1014 inventory.CreateInInventory("Sedan_02_Wheel");
1015 }
1016}
1017
1018class Sedan_02_Grey : Sedan_02
1019{
1020 override void OnDebugSpawn()
1021 {
1023 SpawnAdditionalItems();
1024 FillUpCarFluids();
1025
1026 GameInventory inventory = GetInventory();
1027 inventory.CreateInInventory("Sedan_02_Wheel");
1028 inventory.CreateInInventory("Sedan_02_Wheel");
1029 inventory.CreateInInventory("Sedan_02_Wheel");
1030 inventory.CreateInInventory("Sedan_02_Wheel");
1031
1032 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1033 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1034 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1035 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1036 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1037 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1038
1039 //-----IN CAR CARGO
1040 inventory.CreateInInventory("Sedan_02_Wheel");
1041 inventory.CreateInInventory("Sedan_02_Wheel");
1042 }
1043}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
DayZGame g_Game
Определения DayZGame.c:4074
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:222
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:221
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
Определения MotorbikeScript.c:1425
string m_EngineStartOK
Определения MotorbikeScript.c:89
string m_EngineStartBattery
Определения MotorbikeScript.c:90
string m_EngineStartPlug
Определения MotorbikeScript.c:91
string m_EngineStartFuel
Определения MotorbikeScript.c:92
ref VehicleHornComponent m_HornComponent
Определения MotorbikeScript.c:75
string m_EngineStopFuel
Определения MotorbikeScript.c:94
ref VehicleLightsComponent m_LightsComponent
Определения MotorbikeScript.c:74
string m_EngineStop
Определения MotorbikeScript.c:93
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
void ~Sedan_02()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
Sedan_02 CarScript OnDebugSpawn()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
void Sedan_02()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.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()
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
const int LONG
Определения VehicleHornComponent.c:5
const int SHORT
Определения VehicleHornComponent.c:4
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:856
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.