From 2ca79941b6d50bafac81c7c0fd6ce5ab2ab25047 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 17 九月 2018 18:05:10 +0800
Subject: [PATCH] 1910 【BUG】仙盟联赛进入地图后瞬移至对方营地

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |   36 +++++++++++++++++++++++++++++++-----
 1 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index ac6ef1d..b295e14 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -108,6 +108,7 @@
 import PlayerSpringSale
 import PlayerFairyCeremony
 import ChNetSendPack
+import FamilyRobBoss
 import PyGameData
 import PlayerCoin
 import PlayerGeTui
@@ -237,6 +238,7 @@
     curPlayer.SetDict(ChConfig.Def_PlayerKey_LoadMapIsLogin, 1)
     #通知时间
     Sync_PyServerDataTimeToClient(curPlayer)
+    Sync_OpenServerDay(curPlayer)
     #通知玩家基本信息
     curPlayer.Sync_ClientPlayerLogin()
     
@@ -537,11 +539,13 @@
     SyncPackDownloadAward(curPlayer)
     # 登录触发功能开启(老号处理)
     GameFuncComm.DoFuncOpenLogic(curPlayer)
-	# 神兽
+    # 神兽
     PlayerDogz.OnPlayerLogin(curPlayer)
-	# 神兽副本
+    # 神兽副本
     GameLogic_Dogz.SyncNPCRefreshTime(curPlayer.GetID())
-
+    # 骑宠
+    FamilyRobBoss.OnPlayerLogin(curPlayer)
+    
     # 上线查询一次充值订单
     curPlayer.SendDBQueryRecharge()
     
@@ -1846,6 +1850,7 @@
     curMap = GameWorld.GetMap()
     #校验客户端时间
     if not PlayerControl.PlayerMoveCheckClientWorldTick(curPlayer, clientWorldTick, client_StartX, client_StartY):
+        curPlayer.Sync_ClientTick()
         return
     
     #移动点检查
@@ -3479,8 +3484,14 @@
         return
     
     mapID = curPlayer.GetMapID()
+    
+    activityLineID = 0 # 活动线, 默认1线
+    activityMapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 2, {})
+    if mapID in activityMapLineDict:
+        activityLineID = max(0, activityMapLineDict[mapID] - 1)
+        
     mapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 1)
-    if mapID in mapLineDict and changLineID >= mapLineDict[mapID]:
+    if changLineID != activityLineID and mapID in mapLineDict and changLineID >= mapLineDict[mapID]:
         GameWorld.ErrLog("该地图没有开放此线路,无法手动切换!mapID=%s,changLineID=%s,maxLine=%s" 
                          % (mapID, changLineID, mapLineDict[mapID]), curPlayer.GetID())
         return
@@ -3663,6 +3674,7 @@
     rebornTime = GetRebronTime(curPlayer, playerRebornType)    
     #冷却时间到了
     if not CanRebornByTimeOver(curPlayer, rebornTime):
+        PlayerControl.NotifyCode(curPlayer, 'RebornCD')
         return False
     
     isFBReborn = False
@@ -5267,7 +5279,7 @@
         # 请求GameServer目标地图NPC信息
         sendMsg = "%s" % str([tagMapID, tagLineID, npcIDList])
         curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_NPCCnt, 0,
-                                 'NPCCntInfo', sendMsg, len(sendMsg))
+                                 'NPCCnt', sendMsg, len(sendMsg))
     return
 
 
@@ -5315,6 +5327,19 @@
     NetPackCommon.SendFakePack(curPlayer, serverDateTime)
     return
 
+## 通知开服天数
+#  @param curPlayer: 玩家实例
+#  @return: None
+def Sync_OpenServerDay(curPlayer):
+    gw = GameWorld.GetGameWorld()
+    packData = ChPyNetSendPack.tagOpenServerDay()
+    packData.Clear()
+    packData.Day = gw.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
+    packData.IsMixServer = gw.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_IsMixServer)
+    packData.MixDay = gw.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay)
+    packData.OpenServerTime = GameWorld.ChangeTimeNumToStr(gw.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_InitOpenServerTime))
+    NetPackCommon.SendFakePack(curPlayer, packData)
+    return
 
 #===============================================================================
 # //B4 09 玩家移动 # tagCMPyMove
@@ -5408,6 +5433,7 @@
 
     #校验客户端时间
     if not PlayerControl.PlayerMoveCheckClientWorldTick(curPlayer, sendPack_WorldTick, sendPack_SeverPosX, sendPack_SeverPosY):
+        curPlayer.Sync_ClientTick()
         return False
 
     dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(), sendPack_SeverPosX, sendPack_SeverPosY)

--
Gitblit v1.8.0