From 80f11b590ece01d82d2af052876366bd2c1df2eb Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 21 八月 2018 16:10:09 +0800
Subject: [PATCH] add:【1891】神兽地界

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 2 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 6ed28d3..ac6ef1d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -102,6 +102,7 @@
 import PlayerTJG
 import GameLogic_XMZZ
 import GameLogic_SealDemon
+import GameLogic_Dogz
 import PlayerFlashGiftbag
 import PlayerCostRebate
 import PlayerSpringSale
@@ -427,7 +428,7 @@
     # 古神禁地
     GameLogic_GodArea.GodAreaOnLogin(curPlayer)
 #    # 采集NPC次数通知
-#    NPCCommon.SyncCollNPCTime(curPlayer)
+    NPCCommon.SyncCollNPCTime(curPlayer)
 #        
 #    # 特惠活动
 #    PlayerTeHui.PlayerLogin_TeHui(curPlayer)
@@ -536,8 +537,11 @@
     SyncPackDownloadAward(curPlayer)
     # 登录触发功能开启(老号处理)
     GameFuncComm.DoFuncOpenLogic(curPlayer)
-    # 神兽
+	# 神兽
     PlayerDogz.OnPlayerLogin(curPlayer)
+	# 神兽副本
+    GameLogic_Dogz.SyncNPCRefreshTime(curPlayer.GetID())
+
     # 上线查询一次充值订单
     curPlayer.SendDBQueryRecharge()
     
@@ -5217,6 +5221,56 @@
     return
 
 
+
+## 地图NPC数量查询封包 A2 27 查询地图NPC数量信息 #tagCMQueryNPCCntInfo
+#  @param curPlayer
+#  @return None
+def OnQueryMapNPCCntInfo(index, clientData, tick):
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    if not curPlayer:
+        return
+    
+    # 查询间隔控制
+    if not clientData.IsNoTimeLimit:
+        if not GameWorld.CheckPlayerTick(curPlayer, ChConfig.TYPE_Player_Tick_QueryMapNPCInfo, tick):
+            GameWorld.DebugLog("OnQueryMapNPCCntInfo 查询过于频繁!")
+            return
+       
+    tagMapID = clientData.MapID
+    tagLineID = clientData.LineID
+    queryNPCStr = clientData.NPCIDList
+    npcIDList = []
+    if queryNPCStr:
+        try:       
+            npcIDList = eval(clientData.NPCIDList)
+        except BaseException:
+            GameWorld.ErrLog("OnQueryMapNPCCntInfo, npcIDList=%s" % clientData.NPCIDList)
+            return
+        
+        if not isinstance(npcIDList, list):
+            GameWorld.ErrLog("OnQueryMapNPCCntInfo, npcIDList=%s is not list!" % str(npcIDList))
+            return
+    
+    GameWorld.DebugLog("OnQueryMapNPCCntInfo tagMapID=%s,tagLineID=%s,npcIDList=%s" 
+                       % (tagMapID, tagLineID, str(npcIDList)))
+    
+    curMapID = GameWorld.GetMap().GetMapID()
+    
+    # 如果是同张地图,直接查询通知
+    if curMapID == tagMapID:
+        npcInfoDict = NPCCommon.GetNPCCntInfo(npcIDList, tick)
+
+        GameWorld.DebugLog("    同地图查询curMapID=%s,tagLineID=%s,npcInfoDict=%s" 
+                           % (curMapID, tagLineID, str(npcInfoDict)))
+        NPCCommon.SyncNPCCntInfo(curPlayer, tagMapID, npcInfoDict)
+    else:
+        # 请求GameServer目标地图NPC信息
+        sendMsg = "%s" % str([tagMapID, tagLineID, npcIDList])
+        curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_NPCCnt, 0,
+                                 'NPCCntInfo', sendMsg, len(sendMsg))
+    return
+
+
 ## 跨服赛报名状态
 #  @param index 玩家索引
 #  @param tick 当前时间

--
Gitblit v1.8.0