From d9c3ea7e97feee98e9cf00ea68c3d8e47af43b47 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 21 九月 2018 11:21:51 +0800
Subject: [PATCH] 3357 优化脱机战斗表现-- 190级以下脱机挂玩家,6个中随机5个隐身,前期太多玩家

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index 84656ef..3fcae37 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -256,6 +256,10 @@
     elif queryType == ChConfig.queryType_NPCInfo:
         __QueryMapNPCInfo(curPlayer, queryCallName, sendCMD)
         return
+    # 查询地图NPC数量
+    elif queryType == ChConfig.queryType_NPCCnt:
+        __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD)
+        return
     else:
         GameWorld.ErrLog('unKnow queryType = %s' % (queryType))
         
@@ -290,6 +294,26 @@
                 queryCallName, sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex())
     return
 
+## 查询目标地图NPC数量
+#  @param curPlayer: 请求玩家
+#  @param queryCallName: 请求回调名
+#  @param sendCMD: 请求的命令 根据请求类型和请求命令来决定最终操作
+#  @return None
+def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD):
+    playerManager = GameWorld.GetPlayerManager()
+    try:
+        mapInfo = eval(sendCMD)
+    except BaseException:
+        GameWorld.ErrLog("__QueryMapNPCCntInfo() sendCMD=%s error" % sendCMD)
+        return
+    
+    if not mapInfo:
+        return
+    
+    tagMapID = mapInfo[0]
+    playerManager.MapServer_QueryPlayer(curPlayer.GetPlayerID(), ChConfig.queryType_NPCCnt, 0, tagMapID,
+                queryCallName, sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex())
+    return
 
 ## 获得家族属性(等级,人数)获得自己所在家族的属性
 #  @param curPlayer 请求的玩家
@@ -389,14 +413,14 @@
     callName = pack.GetCallName()
     resultName = pack.GetResultName()                       #[queryid, 人气值, 物品ID]
     
-    if callName == 'SendMail':
-        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver = eval(resultName)
+    if callName == "SendMail":
+        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail = eval(resultName)
         limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
         limitTime = limitTime.split(".")[0]
-        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver)
+        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail)
         return
     
-    if callName == 'SendMailBatch':
+    if callName == "SendMailBatch":
         PlayerCompensation.SendPersonalItemMailBatch(eval(resultName))
         return
     
@@ -597,6 +621,16 @@
         GameWorldBoss.DoGameWorldBossOnReborn(eval(resultName), tick)
         return
     
+    # 仙盟归属boss信息同步
+    if callName =="FamilyOwnerBossInfo":
+        GameWorldBoss.MapServer_FamilyOwnerBossInfo(eval(resultName))
+        return
+
+    # 骑宠争夺伤血玩家同步
+    if callName =="HorsePetRobBossHurtPlayer":
+        GameWorldBoss.MapServer_HorsePetRobBossHurtPlayer(eval(resultName))
+        return
+    
     # 全局掉落CD
     if callName =="GlobalDropCD":
         GameWorldProcess.UpdGlobalDropCD(eval(resultName))
@@ -604,6 +638,10 @@
     # 全局击杀数换算掉落概率
     if callName =="GlobalDropRate":
         GameWorldProcess.UpdGlobalDropRate(eval(resultName))
+        return
+    # 全局击杀数统计
+    if callName =="GlobalKillCount":
+        GameWorldProcess.UpdGlobalKillCount(eval(resultName))
         return
     
     # 自定义商店全服限购次数清空
@@ -727,7 +765,10 @@
     if callName =="AddBossRebornPoint":
         GameWorldBoss.AddBossRebornPoint(eval(resultName))
         return
-    
+    #通知神兽副本NPC刷新时间
+    if callName =="DogzNPCTime":
+        GameWorldBoss.Sync_DogzNPCRefreshTime(eval(resultName))
+        return
 #---return分割线-----------------------------------------------------------------
 
     

--
Gitblit v1.8.0