示例#1
0
    string WalkingSpeed(string param)
    {
        if (param == "")
        {
            return("Parameter excepted");
        }
        if (Pathea.PeCreature.Instance == null)
        {
            return("Not in game");
        }
        if (Pathea.PeCreature.Instance.mainPlayer == null)
        {
            return("Not in game");
        }

        HumanPhyCtrl hpc = Pathea.PeCreature.Instance.mainPlayer.GetComponentInChildren <HumanPhyCtrl>();

        if (hpc == null)
        {
            return("HumanPhyCtrl not exist");
        }
        float s = 1;

        if (!float.TryParse(param, out s))
        {
            return("Invalid parameter");
        }
        hpc.mSpeedTimes = s;
        //hpc.ResetSpeed(5*s);
        return("ok");
    }
        public void Reset()
        {
            modelController   = PEUtil.GetCmpt <PEModelController>(transform);
            ragdollController = PEUtil.GetCmpt <PERagdollController>(transform);
            ikArray           = PEUtil.GetCmpts <IK>(transform);
            ikFlashLight      = PEUtil.GetCmpt <IKFlashLight>(transform);
            fbbik             = PEUtil.GetCmpt <FullBodyBipedIK>(transform);
            grounderFBBIK     = PEUtil.GetCmpt <GrounderFBBIK>(transform);
            humanPhyCtrl      = PEUtil.GetCmpt <HumanPhyCtrl>(transform);
            ikAimCtrl         = PEUtil.GetCmpt <IKAimCtrl>(transform);
            ikAnimEffectCtrl  = PEUtil.GetCmpt <IKAnimEffectCtrl>(transform);
            ikDrive           = PEUtil.GetCmpt <IKDrive>(transform);
            defenceTrigger    = PEUtil.GetCmpt <PEDefenceTrigger>(transform);
            pathFinder        = PEUtil.GetCmpt <PEPathfinder>(transform);
            motor             = PEUtil.GetCmpt <PEMotor>(transform);
            steerAgent        = PEUtil.GetCmpt <Steer3D.SteerAgent>(transform);
            animFollow_AF     = PEUtil.GetCmpt <AnimFollow_AF>(transform);
            beatParam         = PEUtil.GetCmpt <BeatParam>(transform);
            moveParam         = PEUtil.GetCmpt <MoveParam>(transform);
            barrelController  = PEUtil.GetCmpt <PEBarrelController>(transform);
            billBoard         = PEUtil.GetCmpt <BillBoard>(transform);
            armorBones        = PEUtil.GetCmpt <ArmorBones>(transform);
            visions           = PEUtil.GetCmpts <PEVision>(transform);
            hears             = PEUtil.GetCmpts <PEHearing>(transform);
            native            = PEUtil.GetCmpt <PENative>(transform);
            monster           = PEUtil.GetCmpt <PEMonster>(transform);
            if (null != modelController)
            {
                modelController.ResetModelInfo();
            }

            if (null != animFollow_AF)
            {
                animFollow_AF.ResetModelInfo();
            }

            if (null != ragdollController)
            {
                ragdollController.ResetRagdoll();
            }
        }
示例#3
0
        public void OnMsg(EMsg msg, params object[] args)
        {
            switch (msg)
            {
            case EMsg.View_Prefab_Build:
                BiologyViewRoot viewRoot = args[1] as BiologyViewRoot;
                m_Param            = viewRoot.beatParam;
                m_PhyCtrl          = viewRoot.humanPhyCtrl;
                m_IKAnimCtrl       = viewRoot.ikAnimEffectCtrl;
                m_Repulsed.phyCtrl = m_PhyCtrl;
                m_Wentfly.phyCtrl  = m_PhyCtrl;
                m_Knocked.phyCtrl  = m_PhyCtrl;
                m_Repulsed.m_Param = m_Param;
                break;
//		    case EMsg.View_Ragdoll_Getup_Finished:
//				if(null != m_Wentfly && m_MotionMgr.IsActionRunning(m_Wentfly.ActionType))
//				m_MotionMgr.EndImmediately(m_Wentfly.ActionType);
//				m_MotionMgr.EndImmediately(m_Revive.ActionType);
//				m_MotionMgr.EndImmediately(m_GetUp.ActionType);
//				m_MotionMgr.EndImmediately(m_Knocked.ActionType);
//			    break;

            case EMsg.View_Ragdoll_Fall_Finished:
                if (null != m_PhyCtrl)
                {
                    m_PhyCtrl.grounded = true;
                }
                break;

            case EMsg.Battle_AttackHit:
                if (null != onHitTarget)
                {
                    PeEntity hitEntity = ((PECapsuleHitResult)args[0]).hitTrans.GetComponentInParent <PeEntity>();
                    onHitTarget(hitEntity);
                }
                break;
            }
        }
示例#4
0
        public void OnMsg(EMsg msg, params object[] args)
        {
            switch (msg)
            {
            case EMsg.View_Prefab_Build:
                BiologyViewCmpt obj = args [0] as BiologyViewCmpt;
//				TestHitBack hitBack = obj.GetComponentInChildren<TestHitBack> ();
//				if (null != hitBack) {
//					hitBack.cam = Camera.main;
//					obj.transform.position += 1.3f * Vector3.up;
//				}
                m_PhyCtrl = obj.monoPhyCtrl;

                if (obj.monoModelCtrlr != null)
                {
                    _camTarget = obj.monoModelCtrlr.transform.Find("CamTarget");
                }
                if (obj.monoModelCtrlr != null)
                {
                    _bneckModel = obj.monoModelCtrlr.transform.Find("Bip01/Bip01 Pelvis/Bip01 Spine1/Bip01 Spine2/Bip01 Spine3/Bip01 Neck");
                }
                if (obj.monoRagdollCtrlr != null)
                {
                    _bneckRagdoll = obj.monoRagdollCtrlr.transform.Find("Bip01/Bip01 Pelvis/Bip01 Spine1/Bip01 Spine2/Bip01 Spine3/Bip01 Neck");
                }


                if (null != UILoadScenceEffect.Instance && UILoadScenceEffect.Instance.isInProgress)
                {
                    StartInvincible();
                }

                InitReputationSystem();
                Invoke("ResetFirstCtrl", 1f);
                break;

            //case EMsg.View_Model_Build:

            //    break;

            case EMsg.Camera_ChangeMode:
                PeCamera.cameraModeData = args [0] as CameraModeData;
                break;

            case EMsg.Battle_EnterShootMode:
                m_InShootMode = true;
                if (null != TestPEEntityCamCtrl.Instance && null != mView.modelTrans)
                {
                    TestPEEntityCamCtrl.Instance.SetCamMode(PETools.PEUtil.GetChild(mView.modelTrans, "CamTarget"),
                                                            PETools.PEUtil.GetChild(mView.modelTrans, "Bip01 Neck"), "3rd Person Shoot");
                }

                if (null != UISightingTelescope.Instance)
                {
                    UISightingTelescope.Instance.Show((UISightingTelescope.SightingType)args [0]);
                }
                //lz-2018.01.18 改变持枪状态,改变相机灵敏度的返回值
                SystemSettingData.Instance.holdGun = true;

                break;

            case EMsg.Battle_ExitShootMode:
                m_InShootMode = false;
                if (null != TestPEEntityCamCtrl.Instance)
                {
                    TestPEEntityCamCtrl.Instance.SetCamMode(PETools.PEUtil.GetChild(mView.modelTrans, "CamTarget"),
                                                            PETools.PEUtil.GetChild(mView.modelTrans, "Bip01 Neck"), "Normal Mode F1");
                }
                if (null != UISightingTelescope.Instance)
                {
                    UISightingTelescope.Instance.ExitShootMode();
                }
                SystemSettingData.Instance.holdGun = false;
                break;

            case EMsg.Battle_OnShoot:
                if (null != UISightingTelescope.Instance)
                {
                    UISightingTelescope.Instance.OnShoot();
                }
                break;

            case EMsg.UI_ShowChange:
                m_DisableActionByUI = (bool)args [0];
                if (m_DisableActionByUI && mEquip.ISAimWeapon)
                {
                    mEquip.ActiveWeapon(false);
//					for(PEActionType type = PEActionType.Move; type <= PEActionType.Stuned; type++)
//						mMotionMgr.EndImmediately(type);
                }
                break;

            case EMsg.Build_BuildMode:
                bool enterBuildMode = (bool)args [0];
                if (enterBuildMode)
                {
                    GameUIMode.Instance.GotoBuildMode();
                }
                else
                {
                    GameUIMode.Instance.GotoBaseMode();
                }

                PeCamera.SetVar("Build Mode", enterBuildMode);

                if (null != onBuildMode)
                {
                    onBuildMode(enterBuildMode);
                }

                break;

            case EMsg.Battle_OnAttack:
                if (null != onEquipmentAttack)
                {
                    onEquipmentAttack((int)args [2]);
                }
                PeEventGlobal.Instance.MainPlayerAttack.Invoke(Entity, (AttackMode)args [0]);
                break;

            //case EMsg.Battle_HPChange:
            //	SkEntity skEntity = (SkEntity)args[0];
            //	float damage = (float)args[1];
            //	if (skEntity != null && damage < PETools.PEMath.Epsilon)
            //	{
            //		OnDamage(skEntity, Mathf.Abs(damage));
            //	}
            //	break;

            case EMsg.Action_DurabilityDeficiency:
                if (null != onDurabilityDeficiency)
                {
                    onDurabilityDeficiency();
                }
                break;
            }
        }
        protected IEnumerator ProcPostBoneLoad()
        {
            //biologyViewRoot.gameObject.SetActive (false);
            if (monoPhyCtrl == null)
            {
                monoPhyCtrl = biologyViewRoot.humanPhyCtrl;
            }
            if (monoIKAimCtrl == null)
            {
                monoIKAimCtrl = biologyViewRoot.ikAimCtrl;
            }
            if (monoIKAnimCtrl == null)
            {
                monoIKAnimCtrl = biologyViewRoot.ikAnimEffectCtrl;
            }
            if (monoModelCtrlr == null)
            {
                monoModelCtrlr = biologyViewRoot.modelController;
            }
            if (monoRagdollCtrlr == null)
            {
                monoRagdollCtrlr = biologyViewRoot.ragdollController;
            }
            if (monoDefenceTrigger == null)
            {
                monoDefenceTrigger = biologyViewRoot.defenceTrigger;
            }

            m_MeshBuildEnd = false;

            if (monoRagdollCtrlr != null)
            {
                monoRagdollCtrlr.SetHandler(this); //EMsg.View_Ragdoll_Build
            }
            // Collider ignore and other
            if (monoModelCtrlr != null)
            {
                SetupMaterials(mColorID, GetModelName());

                if (Entity.proto == EEntityProto.Monster && Entity.Race == ERace.Mankind)
                {
                    monoModelCtrlr.gameObject.layer = Layer.AIPlayer;
                }

                PEUtil.IgnoreCollision(monoModelCtrlr.colliders, monoModelCtrlr.colliders);
                if (monoRagdollCtrlr != null)
                {
                    PEUtil.IgnoreCollision(monoModelCtrlr.colliders, monoRagdollCtrlr.colliders);
                }
            }
            BuildOutCollider(biologyViewRoot.gameObject);

            if (Entity.IsDeath())
            {
                OnDeath(null, null);
            }
            else if (monoModelCtrlr != null)
            {
                monoModelCtrlr.ActivateDeathMode(false);
            }

            HideView(0.01f);

            if (Entity.Id == 9008)
            {
                ActivatePhysics(m_PhyActive);
            }

            DoActivateInjured();

            yield return(0);

            if (null == biologyViewRoot)
            {
                yield break;
            }

            // Proc Mesh
            if (_coroutineMeshProc != null)
            {
                yield return(biologyViewRoot.StartCoroutine(_coroutineMeshProc()));
            }
            m_MeshBuildEnd = true;

            if (null == biologyViewRoot)
            {
                yield break;
            }

            if (null == Entity)
            {
                yield break;
            }

            // Send Msg
            if (monoModelCtrlr != null)
            {
                Profiler.BeginSample("EMsg.View_Model_Build");
                Entity.SendMsg(EMsg.View_Model_Build, monoModelCtrlr.gameObject, biologyViewRoot);
                Profiler.EndSample();
                yield return(0);
            }

            if (null == biologyViewRoot)
            {
                yield break;
            }

            if (null == Entity)
            {
                yield break;
            }
            Profiler.BeginSample("EMsg.View_Prefab_Build");
            Entity.SendMsg(EMsg.View_Prefab_Build, this, biologyViewRoot);
            Profiler.EndSample();
            yield return(0);

            if (null == biologyViewRoot)
            {
                yield break;
            }

            //biologyViewRoot.gameObject.SetActive (true);
            biologyViewRoot.StartCoroutine(FadeInDelay(0.01f, 3.0f));                   // Note: prev version use this Monobehavior(NOT ROOT) to start Coroutine
        }
示例#6
0
        public void OnMsg(EMsg msg, params object[] args)
        {
            switch (msg)
            {
            case EMsg.Skill_CheckLoop:
                SkFuncInOutPara funcInOut = args[0] as SkFuncInOutPara;
                if (null != funcInOut)
                {
                    if (null != funcInOut._para)
                    {
                        string param = funcInOut._para as string;
                        if (null != param && param == "SwordAttack")
                        {
                            if (null != m_TwoHandWeaponAttack.sword)
                            {
                                funcInOut._ret = m_TwoHandWeaponAttack.CheckContinueAttack();
                            }
                            else if (null != m_SwordAttack.sword)
                            {
                                funcInOut._ret = m_SwordAttack.CheckContinueAttack();
                            }
                        }
                    }
                }
                break;

            case EMsg.View_Prefab_Build:
                BiologyViewCmpt obj     = args[0] as BiologyViewCmpt;
                HumanPhyCtrl    phyCtrl = obj.monoPhyCtrl;
                m_SwordAttack.phyMotor         = phyCtrl;
                m_TwoHandWeaponAttack.phyMotor = phyCtrl;
                m_JetPackAction.m_PhyCtrl      = phyCtrl;
                m_ParachuteAction.m_PhyCtrl    = phyCtrl;
                m_GliderAction.m_PhyCtrl       = phyCtrl;
                m_HeavyEquipmentCtrl.phyCtrl   = phyCtrl;
                m_RopeGunAction.phyCtrl        = phyCtrl;
                m_IKAimCtrl      = obj.monoIKAimCtrl;
                m_GunFire.ikAim  = m_IKAimCtrl;
                m_BowShoot.ikAim = m_IKAimCtrl;
                CheckGloves();
                Invoke("ResetWeapon", 0.5f);
                break;

            case EMsg.View_Prefab_Destroy:
                DeletGloves();
                break;

            case EMsg.Battle_OnShoot:
                if (null != m_Gun)
                {
                    m_GunHold.OnFire();
                }
                if (null != m_Bow)
                {
                    m_BowHold.OnFire();
                }
                break;

            case EMsg.View_FirstPerson:
                m_SwordAttack.firstPersonAttack         = (bool)args[0];
                m_TwoHandWeaponAttack.firstPersonAttack = (bool)args[0];
                break;
            }
        }