/// <summary> /// 刷数据 /// </summary> void RefreshTargetGridData() { IEntitySystem entitySystem = ClientGlobal.Instance().GetEntitySystem(); IPlayer mainPlayer = ClientGlobal.Instance().MainPlayer; if (entitySystem == null) { return; } if (mainPlayer == null) { return; } ISkillPart sp = mainPlayer.GetPart(EntityPart.Skill) as ISkillPart; if (sp == null) { return; } m_lstAllEnemy.Clear(); m_lstTargetEnemyId.Clear(); //加入已经锁的敌人 for (int i = 0; i < m_lstLockEnemyId.Count; i++) { if (m_lstTargetEnemyId.Count < 5) { m_lstTargetEnemyId.Add(m_lstLockEnemyId[i]); } } //所有人 entitySystem.FindNearstPlayer(ref m_lstAllPlayer); //所有敌人 for (int i = 0; i < m_lstAllPlayer.Count; i++) { int nSkillError; //最多选取5个可攻击敌人(减少计算量) if (m_lstAllEnemy.Count >= 5) { break; } bool b = sp.CheckCanAttackTarget(m_lstAllPlayer[i], out nSkillError); if (b) { m_lstAllEnemy.Add(m_lstAllPlayer[i]); } } //加入选中的敌人 if (m_lstTargetEnemyId.Count < 5 && false == m_lstTargetEnemyId.Contains(m_selectEnemyId)) { bool b = false; for (int i = 0; i < m_lstAllEnemy.Count; i++) { if (m_lstAllEnemy[i].GetID() == m_selectEnemyId) { b = true; m_lstTargetEnemyId.Add(m_selectEnemyId); } } //无选中的 if (false == b) { this.m_selectEnemyId = 0; } } //清除不在九宫格的 //for (int i = m_lstTargetEnemyId.Count - 1; i >= 0; i--) //{ // if (m_lstLockEnemyId.Contains(m_lstTargetEnemyId[i])) // { // continue; // } // bool exist = false; // for (int j = 0; j < m_lstAllEnemy.Count; j++) // { // if (m_lstAllEnemy[j].GetID() == m_lstTargetEnemyId[i]) // { // exist = true; // } // } // if (false == exist) // { // m_lstTargetEnemyId.Remove(m_lstTargetEnemyId[i]); // } //} for (int i = 0; i < m_lstAllEnemy.Count; i++) { //排除玩家自己 uint enemyId = m_lstAllEnemy[i].GetID(); uint mainPlayerId = mainPlayer.GetID(); //玩家自己,排除 if (enemyId == mainPlayerId) { continue; } //string name = string.Format("--->>> enemyName = {0}", m_lstAllEnemy[i].GetName()); //Debug.LogError(name); //已经在列表中 if (m_lstTargetEnemyId.Contains(enemyId)) { continue; } //新加入进来的(最多5个) if (m_lstTargetEnemyId.Count < 5) { m_lstTargetEnemyId.Add(enemyId); } } }