少年修仙传客户端代码仓库
client_Zxw
2018-08-30 61b5058b990da2fe7f4b76e1e61b817d4f511432
Fight/MapTransferUtility.cs
@@ -248,10 +248,11 @@
        // 加入判断是否世界BOSS判断
        WorldBossConfig _worldBoss = Config.Instance.Get<WorldBossConfig>(npcID);
        bool _isWorldBoss = _worldBoss != null;
        if (_isWorldBoss && _findLocation)
        FairyGrabBossConfig _fairyBoss = Config.Instance.Get<FairyGrabBossConfig>(npcID);
        bool _isBoss = _worldBoss != null || _fairyBoss != null;
        if (_isBoss && _findLocation)
        {
            //Debug.LogFormat("目标是世界boss");
            //Debug.LogFormat("目标是boss");
            _npc = GAMgr.Instance.GetCloserNPC(_hero.Pos, npcID);
            if (_npc != null)
@@ -264,8 +265,41 @@
                //Debug.LogFormat(" |-- 不在视野内");
                var _mapConfig = Config.Instance.Get<MapConfig>(_npcLocation.mapId);
                var _lineID = 0;
                var _forceTransfer = false;
                // 判断仙盟boss逻辑
                var _fairyBossModel = ModelCenter.Instance.GetModel<FairyGrabBossModel>();
                if (_fairyBossModel != null)
                {
                    // 是仙盟boss
                    if (_fairyBossModel.bosses != null
                     && _fairyBossModel.bosses.Contains(npcID))
                    {
                        //Debug.LogFormat(" |-- 这是一只活动boss");
                        // 取得分线
                        if (GeneralConfig.Instance.fairyGrabBossMapLines != null)
                        {
                            _lineID = GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(_npcLocation.mapId) ?
                                GeneralConfig.Instance.fairyGrabBossMapLines[_npcLocation.mapId] : 0;
                            // 如果当前处于不同的分线, 则下面的处理中,地图ID相同也切线
                            if (_lineID != PlayerDatas.Instance.baseData.FBID)
                            {
                                //Debug.LogFormat(" |-- 不在同一分线: {0} != {1}", _lineID, PlayerDatas.Instance.baseData.FBID);
                                _forceTransfer = true;
                            }
                        }
                        else
                        {
                            Debug.LogErrorFormat("对应的地图ID: {0} 在配置中没有对应的分线id", _npcLocation.mapId);
                        }
                    }
                    npcID = 0;
                }
                // 如果不是处于相同地图, 则切图
                if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID)
                if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID || _forceTransfer)
                {
                    if (PlayerDatas.Instance.extersion.pkState == 1)
                    {
@@ -282,7 +316,7 @@
                    //Debug.LogFormat(" |-- 不在本地图");
                    var mapId = _npcLocation.mapId;
                    var position = new Vector3(_mapConfig.BornPoints[0].x, 0, _mapConfig.BornPoints[0].y);
                    Send_WorldTransfer(mapId, position, MapTransferType.WorldTransport, 0, npcID);
                    Send_WorldTransfer(mapId, position, MapTransferType.WorldTransport, (byte)_lineID, npcID);
                    if (BossFakeLineUtility.Instance.IsShuntBoss(npcID))
                    {
@@ -308,7 +342,8 @@
                    if (((lastMoveToWorldBossNpcID == npcID
                    && Time.realtimeSinceStartup - lastMoveToWorldBossTime < 60)
                    && PlayerDatas.Instance.baseData.FBID == 0)
                    || BossFakeLineUtility.Instance.showFakeLine)
                    || BossFakeLineUtility.Instance.showFakeLine
                    || _fairyBossModel != null)
                    {
                        //Debug.LogFormat(" |-- 非想去的boss为60秒内行为产生且为同一只boss, {0}, {1}", BossFakeLineUtility.Instance.showFakeLine,
                        //PlayerDatas.Instance.baseData.FBID);