From 8bb1b16496579e13cc294273b24a2fe2dcdcb84c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 26 七月 2019 21:24:43 +0800
Subject: [PATCH] 8180 【后端】【主干】优化组队打BOSS(境界不受boss压制的队员各自掉一份,优化争夺模式不对队友造成伤害)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py |   97 +++++++++++++++++++-----------------------------
 1 files changed, 38 insertions(+), 59 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index 5bd2379..b934983 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -37,24 +37,22 @@
 import PlayerBillboard
 import PlayerExam
 import PlayerControl
-import PlayerRecall
 import PlayerFamilyAction
 import PlayerUniversalGameRec
 import PlayerFamily
 import GameWorldOpenServerCampaign
 import ShareDefine
 import GameDataRecord
-import GameWorldShopItem
 import PlayerCompensation
 import PlayerFB
 import UpdatePlayerName
 import PlayerFamilyBoss
-import PlayerManorWar
 import GameWorldBoss
 import GameWorldFamilyWar
 #import PlayerFamilyTech
 import PlayerFamilyRedPacket
 import PlayerFBHelpBattle
+import PlayerHorsePetBoss
 #import PlayerFamilyStore
 import PlayerFamilySWRH
 import GameWorldProcess
@@ -74,9 +72,12 @@
 import ChPyNetSendPack
 import NetPackCommon
 import AuctionHouse
+import PlayerFairyDomain
+import GameWorldItem
 
 import time
 import datetime
+import json
 #---------------------------------------------------------------------
 #全局变量
 #---------------------------------------------------------------------
@@ -331,16 +332,25 @@
             SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict)
             return
         
+    serverGroupID = GameWorld.GetServerGroupID()
+    zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID)
+    if not zoneIpyData:
+        return
+    zoneID = zoneIpyData.GetZoneID()
+    
     # 本服缓存超时,发送跨服服务器查询
     playerID = curPlayer.GetPlayerID()
-    CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, {"PlayerID":playerID, "MapID":mapID, "NPCIDList":npcIDList})
+    dataMsg = {"PlayerID":playerID, "ZoneID":zoneID, "MapID":mapID, "NPCIDList":npcIDList}
+    CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, dataMsg)
     return
 
 def ClientServerMsg_QueryNPCInfo(serverGroupID, msgData):
     ## 收到子服请求查看跨服地图NPC个数信息
     
+    zoneID = msgData["ZoneID"]
     mapID = msgData["MapID"]
-    zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(mapID, serverGroupID)
+    
+    zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, mapID)
     if not zoneIpyData:
         return
     realMapID = zoneIpyData.GetMapID()
@@ -514,6 +524,14 @@
         PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList)
         return
     
+    if callName == "DynamicLineMapStateChange":
+        PlayerFB.OnCrossDynamicLineStateChange(eval(resultName))
+        return
+    
+    if callName == "DynamicLineMapInitOK":
+        PlayerFB.OnCrossDynamicMapReset(eval(resultName))
+        return
+    
     if callName == "CommMapServerInitOK":
         dataMapID, lineID, realMapID, copyMapID = eval(resultName)
         PyGameData.g_commMapLineInfo[(dataMapID, lineID)] = (realMapID, copyMapID)
@@ -531,14 +549,6 @@
         PlayerFamily.MapServer_PyAddFamilyInfoValue(curPlayer, eval(resultName))
         return
     
-    if callName == 'UpdRechargeRankBillboard':     #地图服务器更新玩家通知特惠累计充值排行榜
-        PlayerBillboard.MapServer_UpdateRechargeRankBillboard(eval(resultName))
-        return
-    
-    if callName == 'UpdCostRankBillboard':     #地图服务器更新玩家通知特惠累计消费排行榜
-        PlayerBillboard.MapServer_UpdateCostRankBillboard(eval(resultName))
-        return
-    
     if callName == 'UpdateTotalRechargeBillboard':    #地图服务器更新玩家充值总数排行榜
         PlayerBillboard.MapServer_UpdateTotalRechargeBillboard(eval(resultName))
         return
@@ -553,11 +563,6 @@
         msg, msgList = eval(resultName)
         
         PlayerControl.TeamNotify(teamID, msg, msgList)
-        return
-    
-    if callName == 'ReveiveRecallAward':
-        #召回奖励领取情况
-        PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName)
         return
     
     if callName == "NotifyTruckDestroy":
@@ -666,16 +671,6 @@
                 
         return
     
-    # 领地争夺战拔旗消耗
-    if callName =="ManorWarGetFlagCost":
-        PlayerManorWar.ManorWarGetFlagCost(eval(resultName))
-        return
-    
-    # 领地争夺战获胜战盟
-    if callName =="ManorWarWinner":
-        PlayerManorWar.DoMapServerManorWarWinner(eval(resultName))
-        return
-    
     # 战盟副本boss开始、被击杀
     if callName =="FamilyBossFBState":
         PlayerFamilyBoss.FamilyBossOnKilled(eval(resultName), tick)
@@ -720,20 +715,9 @@
         GameWorldProcess.UpdGlobalKillCount(eval(resultName))
         return
     
-    # 自定义商店全服限购次数清空
-    if callName =="ShopItemClearBuyCnt":
-        shopID = eval(resultName)[0]
-        GameWorldShopItem.DoShopItemClearBuyCnt(shopID)
-        return
-    
-    # 新手指导员天数
-    if callName =="FreshmanGuiderDay":
-        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
-        if not curPlayer:
-            return
-        
-        guiderDay = eval(resultName)[0]
-        PlayerControl.SetFreshmanGuiderDay(curPlayer, guiderDay)
+    # 缓存装备广播信息中的装备明细信息
+    if callName == "NotifyEquipDetailInfo":
+        GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick)
         return
     
     #生成仙盟红包
@@ -761,6 +745,10 @@
     #境界渡劫副本结束
     if callName =="DuJieFBOver":
         PlayerDuJie.DoDuJieFBOver(eval(resultName))
+        return
+    #境界提升全服buff
+    if callName =="RealmUpAddBuff":
+        PlayerDuJie.DoRealmUpAddBuff(resultName)
         return
     
     # 组队副本队长请求进入询问结果
@@ -855,6 +843,14 @@
     if callName =="AllFamilyBossOver":
         PlayerFamilyBoss.AllFamilyBossKilled()
         return
+    #骑宠BOSS结束
+    if callName =="HorsePetBossOver":
+        PlayerHorsePetBoss.HorsePetBossKilled(int(resultName))
+        return
+    #缥缈仙域事件出现
+    if callName =="AddFairyDomainEvent":
+        PlayerFairyDomain.AddFairyDomainEvent(eval(resultName))
+        return
     
 #---return分割线-----------------------------------------------------------------
 
@@ -899,10 +895,6 @@
             return
         resultName = '%s' % ret
         
-    if callName == 'SendInviteCode':
-        #邀请码验证回复
-        resultName = PlayerRecall.PlayerRecall_InviteCode(srcPlayerID, pack.GetQueryID())
-    
     if callName == 'OpenServerCampaignAward':
         #可否领取开服活动奖励
         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
@@ -931,19 +923,6 @@
 #        if not curPlayer:
 #            return
 #        resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
-    
-    # 自定义商店物品
-    if callName == "ShopItem":
-        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
-        resultName = '%s' % GameWorldShopItem.DoShopItemQueryResult(curPlayer, eval(resultName))
-     
-    # 玩家天梯奖励
-    if callName == "HighLadderReward":
-        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
-        import HighLadder
-        needResult, resultName = HighLadder.MapServer_HighLadderReward(curPlayer, eval(resultName))
-        if not needResult:
-            return
         
     srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
     

--
Gitblit v1.8.0