少年修仙传客户端代码仓库
client_linchunjie
2018-09-14 a0ede150686a218c92b901b1f20aef12a9913890
Fight/MapTransferUtility.cs
@@ -38,7 +38,7 @@
    public void Initialize()
    {
        FuncConfigConfig _funcModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("ConversationDistanc");
        FuncConfigConfig _funcModel = Config.Instance.Get<FuncConfigConfig>("ConversationDistanc");
        if (_funcModel != null)
        {
            conversationDistSqrt = float.Parse(_funcModel.Numerical1);
@@ -80,7 +80,7 @@
        if (mapID != PlayerDatas.Instance.baseData.MapID)
        {
            if (_model.IsMapUnLocked(mapID) == false)
            if (_model.IsMapUnlocked(mapID) == false)
            {
                SysNotifyMgr.Instance.ShowTip("Map_Delivery");
                return;
@@ -182,7 +182,7 @@
    public void MoveToNPC(int npcID)
    {
        NPCConfig _config = ConfigManager.Instance.GetTemplate<NPCConfig>(npcID);
        NPCConfig _config = Config.Instance.Get<NPCConfig>(npcID);
        if (_config == null)
        {
@@ -247,11 +247,12 @@
        GActor _npc = null;
        // 加入判断是否世界BOSS判断
        WorldBossConfig _worldBoss = ConfigManager.Instance.GetTemplate<WorldBossConfig>(npcID);
        bool _isWorldBoss = _worldBoss != null;
        if (_isWorldBoss && _findLocation)
        WorldBossConfig _worldBoss = Config.Instance.Get<WorldBossConfig>(npcID);
        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)
@@ -262,10 +263,42 @@
            else
            {
                //Debug.LogFormat(" |-- 不在视野内");
                var _mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(_npcLocation.mapId);
                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;
                                npcID = 0;
                            }
                        }
                        else
                        {
                            Debug.LogErrorFormat("对应的地图ID: {0} 在配置中没有对应的分线id", _npcLocation.mapId);
                        }
                    }
                }
                // 如果不是处于相同地图, 则切图
                if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID)
                if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID || _forceTransfer)
                {
                    if (PlayerDatas.Instance.extersion.pkState == 1)
                    {
@@ -282,7 +315,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 +341,9 @@
                    if (((lastMoveToWorldBossNpcID == npcID
                    && Time.realtimeSinceStartup - lastMoveToWorldBossTime < 60)
                    && PlayerDatas.Instance.baseData.FBID == 0)
                    || BossFakeLineUtility.Instance.showFakeLine)
                    || BossFakeLineUtility.Instance.showFakeLine
                    || (_fairyBossModel.bosses != null
                     && _fairyBossModel.bosses.Contains(npcID)))
                    {
                        //Debug.LogFormat(" |-- 非想去的boss为60秒内行为产生且为同一只boss, {0}, {1}", BossFakeLineUtility.Instance.showFakeLine,
                        //PlayerDatas.Instance.baseData.FBID);
@@ -373,13 +408,13 @@
            }
            // 判断地图是否解锁
            if (_model.IsMapUnLocked(_npcLocation.mapId) == false)
            if (_model.IsMapUnlocked(_npcLocation.mapId) == false)
            {
                SysNotifyMgr.Instance.ShowTip("Map_Delivery");
                return;
            }
            var _curMapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            var _curMapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            // 副本中不可以传送
            if (_curMapConfig.MapFBType != 0)
            {
@@ -582,7 +617,7 @@
        // 如果处于相同地图且距离小于一定的值, 则不传送
        if (mapId == PlayerDatas.Instance.baseData.MapID)
        {
            FuncConfigConfig _func = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("flyMinDistance");
            FuncConfigConfig _func = Config.Instance.Get<FuncConfigConfig>("flyMinDistance");
            if (_func != null)
            {
                float _distance = float.Parse(_func.Numerical1);
@@ -597,7 +632,7 @@
        }
        else
        {
            var _curMapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            var _curMapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            // 副本中不可以传送(某些特定地图可以进行传送Zxw)
            var mainModel = ModelCenter.Instance.GetModel<PlayerMainDate>();
            int MapId = PlayerDatas.Instance.baseData.MapID;
@@ -607,7 +642,7 @@
                return;
            }
            if (_model.IsMapUnLocked(npcLocation.mapId) == false)
            if (_model.IsMapUnlocked(npcLocation.mapId) == false)
            {
                SysNotifyMgr.Instance.ShowTip("Map_Delivery");
                return;
@@ -661,7 +696,7 @@
        // 如果处于相同地图且距离小于一定的值, 则不传送
        if (mapID == PlayerDatas.Instance.baseData.MapID && lineID == PlayerDatas.Instance.baseData.FBID)
        {
            FuncConfigConfig _func = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("flyMinDistance");
            FuncConfigConfig _func = Config.Instance.Get<FuncConfigConfig>("flyMinDistance");
            if (_func != null)
            {
                float _distance = float.Parse(_func.Numerical1);
@@ -676,7 +711,7 @@
        }
        else
        {
            var _curMapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            var _curMapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            // 副本中不可以传送
            if (_curMapConfig.MapFBType != 0)
@@ -687,7 +722,7 @@
            MapModel _model = ModelCenter.Instance.GetModel<MapModel>();
            if (_model.IsMapUnLocked(mapID) == false)
            if (_model.IsMapUnlocked(mapID) == false)
            {
                SysNotifyMgr.Instance.ShowTip("Map_Delivery");
                return;
@@ -712,7 +747,7 @@
    public static bool Send_WorldTransfer(int mapId, Vector3 position, MapTransferType type, byte lineID = 255, int _npcId = 0)
    {
        if (!AssetSource.sceneFromEditor && VersionConfig.Get().assetAccess != InstalledAsset.IngoreDownLoad && !AssetVersionUtility.unPriorAssetDownLoadDone)
        if (!AssetSource.sceneFromEditor && !AssetVersionUtility.IsUnpriorAssetDownLoadOk())
        {
            var mapResConfig = DTCA127_tagMCStartChangeMap.GetMapResourcesConfig(mapId, 0);
            var assetVersion = AssetVersionUtility.GetAssetVersion(StringUtility.Contact("maps/", mapResConfig.MapResources.ToLower()));
@@ -751,7 +786,7 @@
        //    return;
        //}
        //NPCConfig _npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(NpcID);
        //NPCConfig _npcConfig = Config.Instance.Get<NPCConfig>(NpcID);
        //if (_npcConfig == null)
        //{
        //    return;
@@ -793,7 +828,7 @@
        }
        // 找不到配置, 不做后续操作
        NPCConfig _npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(NpcID);
        NPCConfig _npcConfig = Config.Instance.Get<NPCConfig>(NpcID);
        if (_npcConfig == null)
        {
            Clear();