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

◆ GetSeatAnimationType()

override int OnDebugSpawn::GetSeatAnimationType ( int posIdx)
protected

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

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