private void ResetJoystick() { m_widget_joystick.alpha = 0.5f; m_widget_joystick.gameObject.transform.localPosition = m_trans_joystickPos.localPosition; m_sprite_joystickThumb.transform.localPosition = Vector3.zero; m_sprite_joystickBg.transform.localPosition = Vector3.zero; m_sprite_joystickThumb.GetComponent <BoxCollider>().enabled = false; Client.IControllerSystem controllerSys = Client.ClientGlobal.Instance().GetControllerSystem(); if (controllerSys != null) { Client.IController ctrl = controllerSys.GetActiveCtrl(); if (ctrl != null) { ctrl.OnMessage(Engine.MessageCode.MessageCode_JoystickEnd); } } Engine.Utility.EventEngine.Instance().DispatchEvent((int)(int)Client.GameEventID.JOYSTICK_UNPRESS, null); if (MainPlayerHelper.GetMainPlayer() != null) { ISkillPart part = MainPlayerHelper.GetMainPlayer().GetPart(EntityPart.Skill) as ISkillPart; if (part != null) { int st = part.GetCurSkillState(); if (st == (int)SkillState.None || st == (int)SkillState.Prepare) { stForbiddenJoystick info = new stForbiddenJoystick(); info.playerID = MainPlayerHelper.GetPlayerUID(); info.bFobidden = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKILL_FORBIDDENJOYSTICK, info); } } } }
// 退出状态 public override void Leave() { PlayerSkillPart playerSkill = m_SkillPart as PlayerSkillPart; if (playerSkill.IsMainPlayer()) { Log.LogGroup("ZDY", " main player leave skilloverstate"); } //SkillEffect skillEffect = m_caster.EffectNode; //if(skillEffect != null) //{//此处调用stop 会影响sing技能的放置特效 此处无意义 如果以后要调用stop 可以加break函数区分stop // skillEffect.Stop(); //} playerSkill.Master.SendMessage(EntityMessage.EntityCommand_ChangeMoveSpeedFact, (object)1f); if (SkillSystem.GetClientGlobal().IsMainPlayer(playerSkill.GetMaster())) { stForbiddenJoystick info = new stForbiddenJoystick(); info.playerID = playerSkill.Master.GetUID(); info.bFobidden = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKILL_FORBIDDENJOYSTICK, info); } }
// 进入状态 public override void Enter(object param) { if (m_SkillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART) { PlayerSkillPart playerSkill = m_SkillPart as PlayerSkillPart; if (SkillSystem.GetClientGlobal().IsMainPlayer(playerSkill.GetMaster())) { // Log.LogGroup("ZDY", "mainpalyer enter skilloverstate"); if (playerSkill != null) { playerSkill.CurSkillID = 0; } //Log.LogGroup("ZCX", "Enter ..." + this.GetType().Name + playerSkill.CurSkillID); stForbiddenJoystick info = new stForbiddenJoystick(); info.playerID = playerSkill.Master.GetUID(); info.bFobidden = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKILL_FORBIDDENJOYSTICK, info); } IEntity casetr = playerSkill.GetMaster(); if (casetr == null) { return; } playerSkill.Master.SendMessage(EntityMessage.EntityCommond_IgnoreMoveAction, false); playerSkill.Master.SendMessage(EntityMessage.EntityCommand_ChangeMoveSpeedFact, (object)1f); CreatureState playerState = playerSkill.GetMaster().GetCurState(); if (playerState != CreatureState.Dead) { // 不能立即切换到Normal状态 PlayAni anim_param = new PlayAni(); bool isMove = (bool)m_SkillPart.GetMaster().SendMessage(EntityMessage.EntityCommand_IsMove, null); if (isMove) { anim_param.strAcionName = EntityAction.Run; } else { if (casetr.GetEntityType() == EntityType.EntityType_Player) { anim_param.strAcionName = EntityAction.Stand_Combat; } else { anim_param.strAcionName = EntityAction.Stand; } } anim_param.fSpeed = 1; anim_param.nStartFrame = 0; anim_param.nLoop = -1; anim_param.fBlendTime = 0.2f; m_SkillPart.GetMaster().SendMessage(EntityMessage.EntityCommand_PlayAni, anim_param); //如果在挂机 不能立即切换到Normal状态 主角才派发事件 if (IsMainPlayer()) { IControllerSystem cs = playerSkill.GetCtrollerSys(); if (cs == null) { Log.Error("ExecuteCmd: ControllerSystem is null"); return; } Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLNONESTATE_ENTER, new stSkillStateEnter() { state = this.m_nStateID, uid = playerSkill.GetMaster().GetUID() }); } } } }