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

◆ EOnPostSimulate()

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

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

543 : CarScript
544{
548
549 void CivilianSedan()
550 {
551 //m_dmgContactCoef = 0.065;
552
553 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
554 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
555 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
556 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
557 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
558 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
559
560 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
561 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
562
563 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new CivilianSedanLightProfileFront()));
564 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new CivilianSedanLightProfileRear()));
565
566 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "CivilianSedan_Horn_Short_SoundSet");
567 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "CivilianSedan_Horn_SoundSet");
568
569 SetEnginePos("0 0.7 1.6");
570
572 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
573 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
574 }
575
576 void ~CivilianSedan()
577 {
578 m_UTSource = null;
579 m_UTSSettings = null;
580 m_UTSLEngine = null;
581 }
582
583 override void EEInit()
584 {
585 super.EEInit();
586
587 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
588 {
590 m_UTSSettings.m_ManualUpdate = true;
592 m_UTSSettings.m_TemperatureCap = 0;
593 m_UTSSettings.m_RangeFull = 0.5;
594 m_UTSSettings.m_RangeMax = 2;
595
598 }
599 }
600
601 override bool NeedElectricitySourceDevice()
602 {
603 return true;
604 }
605
607 {
608 super.GetElectricitySourceDevice();
609
610 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
611 }
612
613 override string GetElectricitySourceDeviceType()
614 {
615 return "CarBattery";
616 }
617
618 override void OnEngineStart()
619 {
620 super.OnEngineStart();
621
622 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
623 {
624 if (m_UTSource)
625 m_UTSource.SetDefferedActive(true, 20.0);
626 }
627 }
628
629 override void OnEngineStop()
630 {
631 super.OnEngineStop();
632
633 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
634 {
635 if (m_UTSource)
636 m_UTSource.SetDefferedActive(false, 10.0);
637 }
638 }
639
640 override void EOnPostSimulate(IEntity other, float timeSlice)
641 {
642 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
643 {
644 if (m_UTSource && m_UTSource.IsActive())
645 {
647 }
648 }
649 }
650
651 override int GetAnimInstance()
652 {
653 return VehicleAnimInstances.SEDAN;
654 }
655
656 override float GetTransportCameraDistance()
657 {
658 return 4.5;
659 }
660
661 override int GetSeatAnimationType(int posIdx)
662 {
663 switch (posIdx)
664 {
665 case 0:
666 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
667 case 1:
668 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
669 case 2:
670 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
671 case 3:
672 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
673 }
674
675 return 0;
676 }
677
678 override bool CanReleaseAttachment( EntityAI attachment )
679 {
680 if( !super.CanReleaseAttachment( attachment ) )
681 return false;
682
683 string attType = attachment.GetType();
684
685 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
686 {
687 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
688 return false;
689 }
690
691 return true;
692 }
693
694 override protected bool CanManipulateSpareWheel(string slotSelectionName)
695 {
696 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
697 }
698
699 override bool CanDisplayAttachmentCategory(string category_name)
700 {
701 //super
702 if (!super.CanDisplayAttachmentCategory(category_name))
703 return false;
704 //
705
706 category_name.ToLower();
707 if (category_name.Contains("engine"))
708 {
709 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
710 return false;
711 }
712
713 return true;
714 }
715
716 override bool CanDisplayCargo()
717 {
718 if ( !super.CanDisplayCargo() )
719 return false;
720
721 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
722 return false;
723
724 return true;
725 }
726
727 override int GetCarDoorsState( string slotType )
728 {
729 CarDoor carDoor;
730
731 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
732 if (!carDoor)
733 {
734 return CarDoorState.DOORS_MISSING;
735 }
736
737 switch (slotType)
738 {
739 case "CivSedanDriverDoors":
740 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
741 break;
742
743 case "CivSedanCoDriverDoors":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
745 break;
746
747 case "CivSedanCargo1Doors":
748 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
749 break;
750
751 case "CivSedanCargo2Doors":
752 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
753 break;
754
755 case "CivSedanTrunk":
756 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
757 break;
758
759 case "CivSedanHood":
760 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
761 break;
762 }
763
764 return CarDoorState.DOORS_MISSING;
765 }
766
767
768 override bool CrewCanGetThrough( int posIdx )
769 {
770 switch( posIdx )
771 {
772 case 0:
773 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
774 return false;
775
776 return true;
777 break;
778
779 case 1:
780 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
781 return false;
782
783 return true;
784 break;
785
786 case 2:
787 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
788 return false;
789
790 return true;
791 break;
792
793 case 3:
794 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
795 return false;
796
797 return true;
798 break;
799 }
800
801 return false;
802 }
803
804 override string GetDoorSelectionNameFromSeatPos(int posIdx)
805 {
806 switch( posIdx )
807 {
808 case 0:
809 return "doors_driver";
810 break;
811 case 1:
812 return "doors_codriver";
813 break;
814 case 2:
815 return "doors_cargo1";
816 break;
817 case 3:
818 return "doors_cargo2";
819 break;
820 }
821
822 return super.GetDoorSelectionNameFromSeatPos(posIdx);
823 }
824
825 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
826 {
827 switch( posIdx )
828 {
829 case 0:
830 return "CivSedanDriverDoors";
831 break;
832 case 1:
833 return "CivSedanCoDriverDoors";
834 break;
835 case 2:
836 return "CivSedanCargo1Doors";
837 break;
838 case 3:
839 return "CivSedanCargo2Doors";
840 break;
841 }
842
843 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
844 }
845
846 // 0 full ambient and engine sound
847 // 1 zero ambient and engine sound
848 override float OnSound(CarSoundCtrl ctrl, float oldValue)
849 {
850 switch (ctrl)
851 {
852 case CarSoundCtrl.DOORS:
853 float newValue = 0;
854 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
855 {
856 newValue += 0.25;
857 }
858
859 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
860 {
861 newValue += 0.25;
862 }
863
864 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
865 {
866 newValue += 0.25;
867 }
868
869 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
870 {
871 newValue += 0.25;
872 }
873
874 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
875 {
876 newValue -= 0.6;
877 }
878
879 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
880 {
881 newValue -= 0.6;
882 }
883
884 return Math.Clamp(newValue, 0, 1);
885 break;
886 }
887
888 return super.OnSound(ctrl, oldValue);
889 }
890
891 override string GetAnimSourceFromSelection(string selection)
892 {
893 switch (selection)
894 {
895 case "doors_driver":
896 return "DoorsDriver";
897 case "doors_codriver":
898 return "DoorsCoDriver";
899 case "doors_cargo1":
900 return "DoorsCargo1";
901 case "doors_cargo2":
902 return "DoorsCargo2";
903 case "doors_hood":
904 return "DoorsHood";
905 case "doors_trunk":
906 return "DoorsTrunk";
907 }
908
909 return "";
910 }
911
912 override bool IsVitalGlowPlug()
913 {
914 return false;
915 }
916
917 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
918 {
919 switch (currentSeat)
920 {
921 case 0:
922 return nextSeat == 1;
923
924 case 1:
925 return nextSeat == 0;
926
927 case 2:
928 return nextSeat == 3;
929
930 case 3:
931 return nextSeat == 2;
932 }
933
934 return false;
935 }
936
937 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
938 {
939 switch (pCurrentSeat)
940 {
941 case 0:
942 return pDoorsSelection == "DoorsDriver";
943
944 case 1:
945 return pDoorsSelection == "DoorsCoDriver";
946
947 case 2:
948 return pDoorsSelection == "DoorsCargo1";
949
950 case 3:
951 return pDoorsSelection == "DoorsCargo2";
952 }
953
954 return false;
955 }
956
957 override void OnDebugSpawn()
958 {
960 SpawnAdditionalItems();
961 FillUpCarFluids();
962
963 GameInventory inventory = GetInventory();
964 inventory.CreateInInventory("CivSedanWheel");
965 inventory.CreateInInventory("CivSedanWheel");
966 inventory.CreateInInventory("CivSedanWheel");
967 inventory.CreateInInventory("CivSedanWheel");
968
969 inventory.CreateInInventory("CivSedanDoors_Driver");
970 inventory.CreateInInventory("CivSedanDoors_CoDriver");
971 inventory.CreateInInventory("CivSedanDoors_BackLeft");
972 inventory.CreateInInventory("CivSedanDoors_BackRight");
973 inventory.CreateInInventory("CivSedanHood");
974 inventory.CreateInInventory("CivSedanTrunk");
975
976 //-----IN CAR CARGO
977 inventory.CreateInInventory("CivSedanWheel");
978 inventory.CreateInInventory("CivSedanWheel");
979 }
980
981 override float GetPushForceCoefficientMultiplier()
982 {
983 return 1.5;
984 }
985}
986
987class CivilianSedan_Wine : CivilianSedan
988{
989 override void OnDebugSpawn()
990 {
992 SpawnAdditionalItems();
993 FillUpCarFluids();
994
995 GameInventory inventory = GetInventory();
996 inventory.CreateInInventory("CivSedanWheel");
997 inventory.CreateInInventory("CivSedanWheel");
998 inventory.CreateInInventory("CivSedanWheel");
999 inventory.CreateInInventory("CivSedanWheel");
1000
1001 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
1002 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
1003 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
1004 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
1005 inventory.CreateInInventory("CivSedanHood_Wine");
1006 inventory.CreateInInventory("CivSedanTrunk_Wine");
1007
1008 //-----IN CAR CARGO
1009 inventory.CreateInInventory("CivSedanWheel");
1010 inventory.CreateInInventory("CivSedanWheel");
1011 }
1012}
1013
1015{
1016 override void OnDebugSpawn()
1017 {
1019 SpawnAdditionalItems();
1020 FillUpCarFluids();
1021
1022 GameInventory inventory = GetInventory();
1023 inventory.CreateInInventory("CivSedanWheel");
1024 inventory.CreateInInventory("CivSedanWheel");
1025 inventory.CreateInInventory("CivSedanWheel");
1026 inventory.CreateInInventory("CivSedanWheel");
1027
1028 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
1029 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
1030 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
1031 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
1032 inventory.CreateInInventory("CivSedanHood_Black");
1033 inventory.CreateInInventory("CivSedanTrunk_Black");
1034
1035 //-----IN CAR CARGO
1036 inventory.CreateInInventory("CivSedanWheel");
1037 inventory.CreateInInventory("CivSedanWheel");
1038 }
1039}
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
CivilianSedanLightProfileFront VehicleLightProfileFront CivilianSedanLightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
override float GetPushForceCoefficientMultiplier()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
void ~CivilianSedan()
void CivilianSedan()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float GetTransportCameraDistance()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
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()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
CivilianSedan CarScript OnDebugSpawn()
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.c:2
override void OnDebugSpawn()
override void OnDebugSpawn()
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
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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
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.