/// <summary>
 /// 点击传送点
 /// </summary>
 /// <param name="info"></param>
 public void OnClickTranspotPoint(MiniMapPointInfo info)
 {
     TargetPathManager.Instance.GoToConstPosition(m_CurSceneId, SceneHelp.Instance.CurLine, info.Position, null, () =>
     {
         isStartPath = false;
     });
 }
示例#2
0
    /// <summary>
    /// 传送点
    /// </summary>
    /// <returns></returns>
    public static List <MiniMapPointInfo> GetInstanceAllTrasnspot(uint instance_id)
    {
        List <MiniMapPointInfo> map_point_infos = new List <MiniMapPointInfo>();
        var nep_data = xc.Dungeon.LevelManager.Instance.LoadLevelFileTemporary(SceneHelp.GetFirstStageId(instance_id));

        if (nep_data == null)
        {
            GameDebug.LogError("get nep_data failed,instance id: " + instance_id);
            return(map_point_infos);
        }

        var monstersData = nep_data.GetData <Neptune.Collider>().Data;

        foreach (var item in monstersData)
        {
            if (item.Value is Neptune.Collider)
            {
                Neptune.Collider tag = item.Value as Neptune.Collider;
                if (tag.Comment != null && tag.Comment.CompareTo("transfer") == 0)
                {
                    MiniMapPointInfo info = new MiniMapPointInfo();
                    info.Id        = tag.Id;
                    info.MapId     = instance_id;
                    info.Position  = tag.Position;
                    info.PointType = MiniMapPointType.Transfer;
                    map_point_infos.Add(info);
                }
            }
        }
        return(map_point_infos);
    }
 /// <summary>
 /// 点击怪物挂机点的按钮
 /// </summary>
 /// <param name="info"></param>
 public void OnClickMonsterPoint(MiniMapPointInfo info)
 {
     MonsterTipsTrigger.gameObject.SetActive(true);
     MonsterTipsTrigger.transform.SetAsLastSibling();
     ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.NEW_MINIMAP_SELECT_MONSTER_MINIMAPINFO, new CEventEventParamArgs("MiniMap", info));
     SetMonsterTipsInfo(info);
 }
示例#4
0
    /// <summary>
    /// 获得场景中所有npc
    /// </summary>
    /// <returns></returns>
    public static List <MiniMapPointInfo> GetInstanceAllNpc(uint instance_id)
    {
        List <MiniMapPointInfo> map_point_infos = new List <MiniMapPointInfo>();
        var nep_data = xc.Dungeon.LevelManager.Instance.LoadLevelFileTemporary(SceneHelp.GetFirstStageId(instance_id));

        if (nep_data == null)
        {
            GameDebug.LogError("get nep_data failed,instance id: " + instance_id);
            return(map_point_infos);
        }

        Dictionary <int, Neptune.BaseGenericNode> monstersData = nep_data.GetData <Neptune.NPC>().Data;

        foreach (var item in monstersData)
        {
            if (item.Value is Neptune.NPC)
            {
                Neptune.NPC npc = item.Value as Neptune.NPC;
                //if (npc.SpawnDirectly)
                {
                    MiniMapPointInfo info = new MiniMapPointInfo();
                    info.Id        = npc.Id;
                    info.MapId     = instance_id;
                    info.ActorId   = NpcHelper.GetNpcActorId(npc.ExcelId);
                    info.Name      = RoleHelp.GetActorName(info.ActorId);
                    info.BlackName = info.Name;
                    info.Position  = npc.Position;
                    info.PointType = MiniMapPointType.Npc;
                    map_point_infos.Add(info);
                }
            }
        }
        return(map_point_infos);
    }
        public void DestroyPoint()
        {
            mCurrentMonsterInfo = null;
            if (mUpdateTeamPosCd != null)
            {
                mUpdateTeamPosCd.Destroy();
                mUpdateTeamPosCd = null;
            }

            UIResourceManager.Instance.DestroyPool(m_TranspotPoint);
            UIResourceManager.Instance.DestroyPool(m_TeamPoint);
            UIResourceManager.Instance.DestroyPool(m_MonsterPoint);
            UIResourceManager.Instance.DestroyPool(m_NpcPoint);
        }
        /// <summary>
        /// 响应最佳刷怪点的按钮的点击消息
        /// </summary>
        /// <param name="evt"></param>
        public void MonsterSelectChange(CEventBaseArgs evt)
        {
            if (IsEnable == false)
            {
                return;
            }

            if (evt is CEventEventParamArgs)
            {
                CEventEventParamArgs moreEvt = evt as CEventEventParamArgs;
                string           str         = moreEvt.mMoreParam[0] as string;
                MiniMapPointInfo info        = moreEvt.mMoreParam[1] as MiniMapPointInfo;
                if (str.CompareTo("MiniMap") != 0)// 不是Minimap的时候,显示怪物挂机的提示框
                {
                    MonsterTipsTrigger.gameObject.SetActive(true);
                    MonsterTipsTrigger.transform.SetAsLastSibling();
                    SetMonsterTipsInfo(info);
                }
            }
        }
        public override void InitBehaviour()
        {
            m_LocalPlayerPoint = Window.FindChild("LocalPlayerPoint");
            m_MonsterPoint     = Window.FindChild("MonsterPoint");
            m_TranspotPoint    = Window.FindChild("TranspotPoint");
            m_NpcPoint         = Window.FindChild("NpcPoint");
            m_TeamPoint        = Window.FindChild("TeamPlayerPoint");

            mMiniMapRawImage         = Window.FindChild <RawImage>("MapTexture");
            MonsterLineObj           = Window.FindChild("MonsterLine");
            mEndPathGo               = Window.FindChild("EndPathPoint");
            mMiniMapRawImage.enabled = false;
            mMapScroll               = Window.FindChild <ScrollRect>("MapScrollView");
            m_MonsterInfo            = Window.FindChild("MonsterInfo");
            mPathPointRectTemplate   = Window.FindChild <RectTransform>("PathPoint");
            m_GotoBtn = Window.FindChild <Button>("GotoBtn");
            m_GotoBtn.onClick.AddListener(OnClickGotoMonster);
            mCurrentMonsterInfo = null;
            MonsterTipsTrigger  = EventTriggerListener.GetListener(Window.FindChild("MonsterTips"));
            MonsterTipsTrigger.onPointerDown += LostMonsterTips;
            MonsterTipsTrigger.gameObject.SetActive(false);
            mPathPointRectTemplate.gameObject.SetActive(false);
            mEndPathGo.SetActive(false);
            UIResourceManager.Instance.InitPool(m_MonsterPoint, 5);
            UIResourceManager.Instance.InitPool(m_TranspotPoint, 3);
            UIResourceManager.Instance.InitPool(m_NpcPoint, 3);
            UIResourceManager.Instance.InitPool(m_TeamPoint, 2);
            UIResourceManager.Instance.InitPool(mPathPointRectTemplate.gameObject, 5);
            ClientEventMgr.Instance.SubscribeClientEvent((int)ClientEvent.TASK_CHANGED, UpdateNpcState);
            ClientEventMgr.Instance.SubscribeClientEvent((int)ClientEvent.CE_TEAM_INFO_CHANGED, UpdateRequsetTeam);
            ClientEventMgr.Instance.SubscribeClientEvent((int)ClientEvent.NEW_MINIMAP_SELECT_MONSTER_MINIMAPINFO, MonsterSelectChange);
            ClientEventMgr.Instance.SubscribeClientEvent((int)ClientEvent.CE_ACTOR_PATH_POINTS_CHANGED, OnWalkPathChange);
            ClientEventMgr.Instance.SubscribeClientEvent((int)ClientEvent.CE_MINI_MAP_COM_POS, ClickMiniMapPos);
            ClientEventMgr.Instance.SubscribeClientEvent((int)xc.ClientEvent.CE_WORLD_BOSS_UPDATE_BOSS_INFO_ALL, UpdateWorldBossState);
            Game.GetInstance().SubscribeNetNotify(NetMsg.MSG_TEAM_MEMBER_POS, UpdateTeam);
            base.InitBehaviour();
        }
        public void ClearPoint()
        {
            mCurrentMonsterInfo = null;
            if (mUpdateTeamPosCd != null)
            {
                mUpdateTeamPosCd.Destroy();
                mUpdateTeamPosCd = null;
            }

            ClearTeamPoint();

            if (mMonsterListPointObjs.Count > 0)
            {
                foreach (var kv in mMonsterListPointObjs)
                {
                    UIResourceManager.Instance.ReturnObjectToPool(kv.Value);
                }
                mMonsterListPointObjs.Clear();
            }
            if (mTranspotListPointObjs.Count > 0)
            {
                for (int i = 0; i < mTranspotListPointObjs.Count; i++)
                {
                    UIResourceManager.Instance.ReturnObjectToPool(mTranspotListPointObjs[i]);
                }
                mTranspotListPointObjs.Clear();
            }

            if (mNpcListPointObjs.Count > 0)
            {
                foreach (var kv in mNpcListPointObjs)
                {
                    UIResourceManager.Instance.ReturnObjectToPool(kv.Value);
                }
                mNpcListPointObjs.Clear();
            }
        }
 public void OnClickNpcPoint(MiniMapPointInfo info)
 {
     TargetPathManager.Instance.GoToNpcPos(info.MapId, (uint)info.Id, null);
     UIManager.Instance.CloseSysWindow("UIMapWindow");
 }
示例#10
0
        /// <summary>
        /// 设置怪物挂架的tips
        /// </summary>
        /// <param name="info"></param>
        public void SetMonsterTipsInfo(MiniMapPointInfo info)
        {
            mCurrentMonsterInfo = info;
            string key = string.Format("{0}_{1}", info.Tag, m_CurSceneId);

            // F副本.xlsx -- 刷怪点信息
            var data_actor_tag = DBManager.Instance.QuerySqliteRow <string>(GlobalConfig.DBFile, "data_actor_tag", "csv_id", key);


            //服务端不建议改表格式
            //List<Dictionary<string, string>> data_actor_tag = null;
            //string key = string.Empty;
            //SDKConfig sdk_config = SDKHelper.GetSDKConfig();
            //if (sdk_config != null && SDKHelper.IsCopyBag() && AuditManager.Instance.Open)
            //{
            //    key = string.Format("{0}_{1}{2}", info.Tag, m_CurSceneId, sdk_config.SDKNamePrefix);
            //    data_actor_tag = DBManager.Instance.QuerySqliteRow<string>(GlobalConfig.DBFile, "data_actor_tag", "csv_id", key);
            //}

            ////当对应的马甲包没配置对应的数据时,就直接用正式数据
            //if (data_actor_tag == null || data_actor_tag.Count == 0)
            //{
            //    key = string.Format("{0}_{1}", info.Tag, m_CurSceneId);// 唯一id由{tag_id}_{map_id}组成
            //    data_actor_tag = DBManager.Instance.QuerySqliteRow<string>(GlobalConfig.DBFile, "data_actor_tag", "csv_id", key);
            //}



            string titlestr   = string.Empty;
            string contentstr = string.Empty;

            if (info.PointType != MiniMapPointType.Boss) // 普通怪物
            {
                if (data_actor_tag.Count > 0)
                {
                    var  table = data_actor_tag[0];
                    uint level = DBTextResource.ParseUI(table["min_level"]);

                    string levelDesc = string.Empty;
                    uint   peakLevel = 0;
                    bool   isPeak    = TransferHelper.IsPeak(level, out peakLevel);
                    if (isPeak)
                    {
                        var fmt = DBConstText.GetText("UI_PLAYER_PEAK_LEVEL_FORMAT"); // 巅峰{0}级
                        levelDesc = string.Format(fmt, peakLevel);
                    }
                    else
                    {
                        var fmt = DBConstText.GetText("UI_PLAYER_LEVEL_FORMAT"); // {0}级
                        levelDesc = string.Format(fmt, peakLevel);
                    }

                    uint   def  = DBTextResource.ParseUI(table["min_def"]);
                    string _def = string.Empty;
                    if (LocalPlayerManager.Instance.Level < level)
                    {
                        levelDesc = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_108"), GameConst.COLOR_DARK_RED, levelDesc);
                    }
                    else
                    {
                        levelDesc = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_108"), GameConst.COLOR_DARK_GREEN, levelDesc);
                    }

                    var Def = LocalPlayerManager.Instance.LocalActorAttribute.Attribute[GameConst.AR_DEF].Value;
                    if (Def < def)
                    {
                        _def = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_109"), GameConst.COLOR_DARK_RED, def);
                    }
                    else
                    {
                        _def = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_109"), GameConst.COLOR_DARK_GREEN, def);
                    }

                    titlestr = levelDesc + _def;

                    StringBuilder award_desc = new StringBuilder(150);
                    award_desc.AppendFormat(xc.TextHelper.GetTranslateText(table["tips1_format"]), table["tips1"]);
                    award_desc.Append('\n');
                    award_desc.AppendFormat(xc.TextHelper.GetTranslateText(table["tips2_format"]), table["tips2"]);
                    award_desc.Append('\n');
                    award_desc.AppendFormat(xc.TextHelper.GetTranslateText(table["tips3_format"]), table["tips3"]);

                    contentstr = award_desc.ToString();
                }
                else
                {
                    titlestr   = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_110"));
                    contentstr = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_111"));;
                }
            }
            else
            {
                if (GlobalConst.IsBanshuVersion)
                {
                    titlestr = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_112"), GameConst.COLOR_DARK_RED, info.BlackName, info.Level);
                }
                else
                {
                    titlestr = string.Format("{0}{1} Lv{2}</color>", GameConst.COLOR_DARK_RED, info.BlackName, info.Level);
                }

                uint actorId = (uint)info.ActorId;

                bool isSouthLandBoss   = ActorHelper.IsSouthLandBoss(actorId);   // 南天圣地boss
                bool isElementAreaBoss = ActorHelper.IsElementAreaBoss(actorId); // 元素禁地boss
                if (isSouthLandBoss || isElementAreaBoss)
                {
                    // 浊气值
                    uint evilValue = 0;

                    if (isSouthLandBoss)
                    {
                        var evilItem = DBManager.Instance.GetDB <DBEvilValue>().GetData(actorId);
                        if (null != evilItem)
                        {
                            evilValue = evilItem.Value;
                        }
                    }
                    else
                    {
                        var evilItem = DBManager.Instance.GetDB <DBElementAreaEvilValue>().GetData(actorId);
                        if (null != evilItem)
                        {
                            evilValue = evilItem.Value;
                        }
                    }

                    string strEvilValue = DBConstText.GetText("SOUTH_LAND_EVIL_VALUE"); // 浊气值:
                    titlestr = string.Format("{0}\n{1}{2}{3}</color>", titlestr, strEvilValue, GameConst.COLOR_DARK_YELLOW, evilValue);
                }

                if (data_actor_tag.Count > 0)
                {
                    var           table      = data_actor_tag[0];
                    StringBuilder award_desc = new StringBuilder(150);
                    award_desc.AppendFormat(xc.TextHelper.GetTranslateText(table["tips1_format"]), table["tips1"]);
                    award_desc.Append('\n');
                    award_desc.AppendFormat(xc.TextHelper.GetTranslateText(table["tips2_format"]), table["tips2"]);
                    award_desc.Append('\n');
                    award_desc.AppendFormat(xc.TextHelper.GetTranslateText(table["tips3_format"]), table["tips3"]);

                    contentstr = award_desc.ToString();
                }
            }

            Text title   = UIHelper.FindChild(m_MonsterInfo, "TitleText").GetComponent <Text>();
            Text content = UIHelper.FindChild(m_MonsterInfo, "Content").GetComponent <Text>();

            title.text   = titlestr;
            content.text = contentstr;
            GameObject monster_point;

            if (mMonsterListPointObjs.TryGetValue(mCurrentMonsterInfo.Id, out monster_point))
            {
                m_MonsterInfo.transform.localPosition = GetTipsPos(monster_point);
                float y = mMapScroll.viewport.rect.height / 2 - monster_point.transform.localPosition.y;
                float x = mMapScroll.viewport.rect.width / 2 - monster_point.transform.localPosition.x;
                mMiniMapRawImage.rectTransform.anchoredPosition = new Vector2(x, y);
            }
        }
示例#11
0
    /// <summary>
    /// 获取指定副本中标记的普通刷怪点和特殊怪物点
    /// </summary>
    /// <returns></returns>
    public static List <MiniMapPointInfo> GetInstanceAllNormalMonster(uint instance_id)
    {
        List <MiniMapPointInfo> map_point_infos = new List <MiniMapPointInfo>();
        var nep_data = xc.Dungeon.LevelManager.Instance.LoadLevelFileTemporary(SceneHelp.GetFirstStageId(instance_id));

        if (nep_data == null)
        {
            GameDebug.LogError("get nep_data failed,instance id: " + instance_id);
            return(map_point_infos);
        }

        Dictionary <int, Neptune.BaseGenericNode> all_node_data = nep_data.GetData <Neptune.Tag>().Data;  // 获取关卡中所有标记为Tag的物体数据
        var special_monster_info = DBManager.Instance.GetDB <DBSpecialMon>().GetDungeonData(instance_id); // 获取当前副本中特殊怪物的数据(世界boss,盗宝怪)

        foreach (var item in all_node_data)
        {
            Neptune.Tag tag = item.Value as Neptune.Tag;
            if (tag == null || tag.Type == null)
            {
                continue;
            }

            if (tag.Type.CompareTo("map_mon_pos") == 0)// Tag 为怪物标识点
            {
                MiniMapPointInfo info = new MiniMapPointInfo();
                info.Id       = tag.Id;
                info.Tag      = tag.Id;
                info.Position = tag.Position;
                info.MapId    = instance_id;
                string key            = string.Format("{0}_{1}", tag.Id, instance_id);// 唯一id由{tag_id}_{map_id}组成
                var    data_actor_tag = DBManager.Instance.QuerySqliteRow <string>(GlobalConfig.DBFile, "data_actor_tag", "csv_id", key);


                //服务端不建议改表格式
                //List<Dictionary<string, string>> data_actor_tag = null;
                //string key = string.Empty;
                //SDKConfig sdk_config = SDKHelper.GetSDKConfig();
                //if (sdk_config != null && SDKHelper.IsCopyBag() && AuditManager.Instance.Open)
                //{
                //    key = string.Format("{0}_{1}{2}", tag.Id, instance_id, sdk_config.SDKNamePrefix);
                //    data_actor_tag = DBManager.Instance.QuerySqliteRow<string>(GlobalConfig.DBFile, "data_actor_tag", "csv_id", key);
                //}


                ////当对应的马甲包没配置对应的数据时,就直接用正式数据
                //if (data_actor_tag == null || data_actor_tag.Count == 0)
                //{
                //    key = string.Format("{0}_{1}", tag.Id, instance_id);// 唯一id由{tag_id}_{map_id}组成
                //    data_actor_tag = DBManager.Instance.QuerySqliteRow<string>(GlobalConfig.DBFile, "data_actor_tag", "csv_id", key);
                //}



                if (data_actor_tag.Count > 0)
                {
                    var table = data_actor_tag[0];
                    info.ActorId      = DBTextResource.ParseUI(table["actor_id"]);
                    info.ListNeedShow = DBTextResource.ParseUI(table["need_show"]) == 1 ? true : false;

                    if (ActorHelper.IsEliteMonster(info.ActorId))// 判断怪物是否是精英怪
                    {
                        info.PointType = MiniMapPointType.EliteMonster;
                    }
                    else
                    {
                        info.PointType = MiniMapPointType.Monster;
                    }

                    info.Name      = ActorHelper.GetColorNameDiff(info.ActorId, 0);
                    info.BlackName = ActorHelper.GetColorNameDiff(info.ActorId, 1);
                    info.Level     = ActorHelper.GetActorLevel(info.ActorId);
                    map_point_infos.Add(info);
                }
            }
            else if (tag.Type.CompareTo("boss_pos") == 0 && special_monster_info != null)
            {
                //boss读表
                string tagGroup = "boss_pos_" + tag.Id;
                DBSpecialMon.DBSpecialMonItem boss = special_monster_info.Find(delegate(DBSpecialMon.DBSpecialMonItem specialMon)
                {
                    return(specialMon.TagGroup.CompareTo(tagGroup) == 0);
                });

                if (boss != null)
                {
                    MiniMapPointInfo info = new MiniMapPointInfo();
                    info.Id        = (int)boss.Id;
                    info.Tag       = tag.Id;
                    info.Position  = tag.Position;
                    info.MapId     = instance_id;
                    info.ActorId   = boss.ActorId;
                    info.Name      = ActorHelper.GetColorNameDiff(info.ActorId, 0);
                    info.BlackName = ActorHelper.GetColorNameDiff(info.ActorId, 1);
                    info.Level     = ActorHelper.GetActorLevel(info.ActorId);
                    info.PointType = MiniMapPointType.Boss;

                    map_point_infos.Add(info);
                }
            }
        }
        return(map_point_infos);
    }