From 61b5058b990da2fe7f4b76e1e61b817d4f511432 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期四, 30 八月 2018 10:28:32 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Fight/MapTransferUtility.cs |   47 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/Fight/MapTransferUtility.cs b/Fight/MapTransferUtility.cs
index 9d9ca65..539c2ff 100644
--- a/Fight/MapTransferUtility.cs
+++ b/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("鐩爣鏄笘鐣宐oss");
+            //Debug.LogFormat("鐩爣鏄痓oss");
             _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)
+                {
+                    // 鏄粰鐩焍oss
+                    if (_fairyBossModel.bosses != null
+                     && _fairyBossModel.bosses.Contains(npcID))
+                    {
+                        //Debug.LogFormat(" |-- 杩欐槸涓�鍙椿鍔╞oss");
+                        // 鍙栧緱鍒嗙嚎
+                        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("瀵瑰簲鐨勫湴鍥綢D: {0} 鍦ㄩ厤缃腑娌℃湁瀵瑰簲鐨勫垎绾縤d", _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绉掑唴琛屼负浜х敓涓斾负鍚屼竴鍙猙oss, {0}, {1}", BossFakeLineUtility.Instance.showFakeLine,
                         //PlayerDatas.Instance.baseData.FBID);

--
Gitblit v1.8.0