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

◆ EOnPostSimulate()

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

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

468{
472
473 void Hatchback_02()
474 {
475 //m_dmgContactCoef = 0.070;
476
477 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
478 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
479 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
480 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
481 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
482 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
483
484 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
485 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
486
487 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
488 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
489
490 SetEnginePos("0 0.7 1.4");
491 }
492
493 override void EEInit()
494 {
495 super.EEInit();
496
497 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
498 {
500 m_UTSSettings.m_ManualUpdate = true;
502 m_UTSSettings.m_TemperatureCap = 0;
503 m_UTSSettings.m_RangeFull = 0.5;
504 m_UTSSettings.m_RangeMax = 2;
505
508 }
509 }
510
511 override void OnEngineStart()
512 {
513 super.OnEngineStart();
514
515 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
516 {
517 m_UTSource.SetDefferedActive(true, 20.0);
518 }
519 }
520
521 override void OnEngineStop()
522 {
523 super.OnEngineStop();
524
525 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
526 {
527 m_UTSource.SetDefferedActive(false, 10.0);
528 }
529 }
530
531 override void EOnPostSimulate(IEntity other, float timeSlice)
532 {
533 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
534 {
535 if (m_UTSource.IsActive())
536 {
538 }
539 }
540 }
541
542 override int GetAnimInstance()
543 {
544 return VehicleAnimInstances.GOLF;
545 }
546
547 override int GetSeatAnimationType(int posIdx)
548 {
549 switch (posIdx)
550 {
551 case 0:
552 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
553 case 1:
554 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
555 case 2:
556 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
557 case 3:
558 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
559 }
560
561 return 0;
562 }
563
564 // Override for car-specific light type
566 {
567 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
568 }
569
570 // Override for car-specific light type
572 {
573 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
574 }
575
576 override bool CanReleaseAttachment(EntityAI attachment)
577 {
578 if (!super.CanReleaseAttachment(attachment))
579 {
580 return false;
581 }
582
583 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
584 {
585 string attType = attachment.GetType();
586 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
587 {
588 return false;
589 }
590 }
591
592 return true;
593 }
594
595 override protected bool CanManipulateSpareWheel(string slotSelectionName)
596 {
597 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
598 }
599
600 override bool CanDisplayAttachmentCategory( string category_name )
601 {
602 //super
603 if ( !super.CanDisplayAttachmentCategory( category_name ) )
604 return false;
605 //
606
607 category_name.ToLower();
608 if ( category_name.Contains("engine") )
609 {
610 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
611 return false;
612 }
613
614 return true;
615 }
616
617 override bool CanDisplayCargo()
618 {
619 if ( !super.CanDisplayCargo() )
620 return false;
621
622 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
623 return false;
624
625 return true;
626 }
627
628 override int GetCarDoorsState(string slotType)
629 {
630 CarDoor carDoor;
631
632 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
633 if (!carDoor)
634 {
635 return CarDoorState.DOORS_MISSING;
636 }
637
638 switch (slotType)
639 {
640 case "Hatchback_02_Door_1_1":
641 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
642
643 case "Hatchback_02_Door_2_1":
644 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
645
646 case "Hatchback_02_Door_1_2":
647 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
648
649 case "Hatchback_02_Door_2_2":
650 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
651
652 case "Hatchback_02_Hood":
653 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
654
655 case "Hatchback_02_Trunk":
656 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
657 }
658
659 return CarDoorState.DOORS_MISSING;
660 }
661
662
663 override bool CrewCanGetThrough(int posIdx)
664 {
665 switch (posIdx)
666 {
667 case 0:
668 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
669 {
670 return false;
671 }
672
673 return true;
674
675 case 1:
676 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
677 {
678 return false;
679 }
680
681 return true;
682
683 case 2:
684 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
685 {
686 return false;
687 }
688
689 return true;
690
691 case 3:
692 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
693 {
694 return false;
695 }
696
697 return true;
698 }
699
700 return false;
701 }
702
703 override string GetDoorSelectionNameFromSeatPos(int posIdx)
704 {
705 switch( posIdx )
706 {
707 case 0:
708 return "doors_driver";
709 break;
710 case 1:
711 return "doors_codriver";
712 break;
713 case 2:
714 return "doors_cargo1";
715 break;
716 case 3:
717 return "doors_cargo2";
718 break;
719 }
720
721 return super.GetDoorSelectionNameFromSeatPos(posIdx);
722 }
723
724 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
725 {
726 switch( posIdx )
727 {
728 case 0:
729 return "Hatchback_02_Door_1_1";
730 break;
731 case 1:
732 return "Hatchback_02_Door_2_1";
733 break;
734 case 2:
735 return "Hatchback_02_Door_1_2";
736 break;
737 case 3:
738 return "Hatchback_02_Door_2_2";
739 break;
740 }
741
742 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
743 }
744
745 override float OnSound(CarSoundCtrl ctrl, float oldValue)
746 {
747 switch (ctrl)
748 {
749 case CarSoundCtrl.DOORS:
750 float newValue = 0;
751 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
752 {
753 newValue += 0.25;
754 }
755
756 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
757 {
758 newValue += 0.25;
759 }
760
761 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
762 {
763 newValue += 0.25;
764 }
765
766 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
767 {
768 newValue += 0.25;
769 }
770
771 return Math.Clamp(newValue, 0, 1);
772 break;
773 }
774
775 return super.OnSound(ctrl, oldValue);
776 }
777
778 override string GetAnimSourceFromSelection( string selection )
779 {
780 switch( selection )
781 {
782 case "doors_driver":
783 return "DoorsDriver";
784 case "doors_codriver":
785 return "DoorsCoDriver";
786 case "doors_cargo1":
787 return "DoorsCargo1";
788 case "doors_cargo2":
789 return "DoorsCargo2";
790 case "doors_hood":
791 return "DoorsHood";
792 case "doors_trunk":
793 return "DoorsTrunk";
794 }
795
796 return "";
797 }
798
799
800 override bool IsVitalTruckBattery()
801 {
802 return false;
803 }
804
805 override bool IsVitalGlowPlug()
806 {
807 return false;
808 }
809
810 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
811 {
812 switch (currentSeat)
813 {
814 case 0:
815 return nextSeat == 1;
816 case 1:
817 return nextSeat == 0;
818 case 2:
819 return nextSeat == 3;
820 case 3:
821 return nextSeat == 2;
822 }
823
824 return false;
825 }
826
827 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
828 {
829 switch (pCurrentSeat)
830 {
831 case 0:
832 return pDoorsSelection == "DoorsDriver";
833 case 1:
834 return pDoorsSelection == "DoorsCoDriver";
835 case 2:
836 return pDoorsSelection == "DoorsCargo1";
837 case 3:
838 return pDoorsSelection == "DoorsCargo2";
839 }
840
841 return false;
842 }
843
844 override void OnDebugSpawn()
845 {
846 SpawnUniversalParts();
847 SpawnAdditionalItems();
848 FillUpCarFluids();
849
850 GetInventory().CreateInInventory("Hatchback_02_Wheel");
851 GetInventory().CreateInInventory("Hatchback_02_Wheel");
852 GetInventory().CreateInInventory("Hatchback_02_Wheel");
853 GetInventory().CreateInInventory("Hatchback_02_Wheel");
854
855 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
856 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
857 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
858 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
859 GetInventory().CreateInInventory("Hatchback_02_Hood");
860 GetInventory().CreateInInventory("Hatchback_02_Trunk");
861
862 //-----IN CAR CARGO
863 GetInventory().CreateInInventory("Hatchback_02_Wheel");
864 GetInventory().CreateInInventory("Hatchback_02_Wheel");
865 }
866}
867
868class Hatchback_02_Black extends Hatchback_02
869{
870 override void OnDebugSpawn()
871 {
872 SpawnUniversalParts();
873 SpawnAdditionalItems();
874 FillUpCarFluids();
875
876 GetInventory().CreateInInventory("Hatchback_02_Wheel");
877 GetInventory().CreateInInventory("Hatchback_02_Wheel");
878 GetInventory().CreateInInventory("Hatchback_02_Wheel");
879 GetInventory().CreateInInventory("Hatchback_02_Wheel");
880
881 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
882 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
883 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
884 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
885 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
886 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
887
888 //-----IN CAR CARGO
889 GetInventory().CreateInInventory("Hatchback_02_Wheel");
890 GetInventory().CreateInInventory("Hatchback_02_Wheel");
891 }
892};
893
894class Hatchback_02_Blue extends Hatchback_02
895{
896 override void OnDebugSpawn()
897 {
898 SpawnUniversalParts();
899 SpawnAdditionalItems();
900 FillUpCarFluids();
901
902 GetInventory().CreateInInventory("Hatchback_02_Wheel");
903 GetInventory().CreateInInventory("Hatchback_02_Wheel");
904 GetInventory().CreateInInventory("Hatchback_02_Wheel");
905 GetInventory().CreateInInventory("Hatchback_02_Wheel");
906
907 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
908 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
909 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
910 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
911 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
912 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
913
914 //-----IN CAR CARGO
915 GetInventory().CreateInInventory("Hatchback_02_Wheel");
916 GetInventory().CreateInInventory("Hatchback_02_Wheel");
917 }
918}
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
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:404
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:746
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:714
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:483
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:681
void Hatchback_02()
Определения Hatchback_02.c:409
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:660
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:467
override void OnEngineStop()
Определения Hatchback_02.c:457
override void EEInit()
Определения Hatchback_02.c:429
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:512
override bool CanDisplayCargo()
Определения Hatchback_02.c:553
override void OnEngineStart()
Определения Hatchback_02.c:447
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:507
override int GetAnimInstance()
Определения Hatchback_02.c:478
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:599
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:763
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:531
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:741
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:501
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:736
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:639
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:564
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:536
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void OnDebugSpawn()
Определения Hatchback_02.c:430
Определения Hatchback_02.c:429
Определения EnEntity.c:165
Определения EnMath.c:7
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.