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

◆ OnEngineStop()

override void OnDebugSpawn::OnEngineStop ( )
protected

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

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