| | |
| | |
|
| | | // 加入判断是否世界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)
|
| | |
| | | //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)
|
| | | {
|
| | |
| | | //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))
|
| | | {
|
| | |
| | | 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);
|