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