public void SingleFightCommand(SMsgFightCommand_SC sMsgFightCommand_SC) { if (m_FSMSystem.CurrentStateID == StateID.MonsterAttack) { int currentLevel = ((MonsterAttackState)m_FSMSystem.CurrentState).CurrentSkillBase.SkillData.m_breakLevel; int nextLevel = SkillDataManager.Instance.GetSkillConfigData(sMsgFightCommand_SC.nFightCode).m_breakLevel; if (nextLevel <= currentLevel) { return; } BulletManager.Instance.TryDestroyBreakBullets(this.RoleDataModel.SMsg_Header.uidEntity); } m_MonsterAttackState.SingleAttack(sMsgFightCommand_SC); m_FSMSystem.PerformTransition(Transition.MonsterToAttack); }
//收到破防消息 // CommandCallbackType ReceiveBattleCommondSingle(byte[] dataBuffer, int socketID) { var sMsgFightCommondSC = SMsgFightCommand_SC.ParseResultPackage(dataBuffer); if (GameManager.Instance.CreateEntityIM) { RaiseEvent(EventTypeEnum.SingleFigntCommand.ToString(), sMsgFightCommondSC); } else { PlayerFactory.Instance.RegisterPlayerAfterSceneLoadedFun("ReceiveBattleCommondSingle", () => { RaiseEvent(EventTypeEnum.SingleFigntCommand.ToString(), sMsgFightCommondSC); }); } return(CommandCallbackType.Continue); }
public void SingleAttack(SMsgFightCommand_SC sMsgFightCommand_SC) { m_currentSkillID = sMsgFightCommand_SC.nFightCode; m_FightTargetID = sMsgFightCommand_SC.uidTarget; m_shouldPos = m_MonsterBehaviour.ThisTransform.position; m_targetPos = Vector3.zero.GetFromServer(sMsgFightCommand_SC.xMouse, sMsgFightCommand_SC.yMouse); m_rangeTypePos = m_targetPos; float rad = Mathf.Atan2(-1 * sMsgFightCommand_SC.yDirect, sMsgFightCommand_SC.xDirect); m_currentAngle = 90 - (rad * Mathf.Rad2Deg); Vector3 diretPos = new Vector3(sMsgFightCommand_SC.xDirect, m_high, -1 * sMsgFightCommand_SC.yDirect); m_attackLookAtPos = m_shouldPos + diretPos; }
void ReceiveFightCommondHandle(INotifyArgs inotifyArgs) { SMsgFightCommand_SC serData = (SMsgFightCommand_SC)inotifyArgs; SkillFight(serData.nFightCode); }