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

◆ EOnPostSimulate()

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

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

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