From 021437fc736fafdb8608933ebe095b93cfb9b8ed Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 七月 2024 19:31:05 +0800
Subject: [PATCH] 10192 【越南】【主干】【港台】【砍树】上线增加膜拜主动推送(修改为可膜拜自己;)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py |  239 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 212 insertions(+), 27 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index ffb1c07..2c85108 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -34,6 +34,7 @@
 import ChConfig
 import GMCommon
 import DirtyList
+import CrossBillboard
 import PlayerBillboard
 import PlayerExam
 import PlayerControl
@@ -50,6 +51,7 @@
 import GameWorldBoss
 import GameWorldFamilyWar
 #import PlayerFamilyTech
+import PlayerFamilyZhenfa
 import PlayerFamilyRedPacket
 import PlayerFBHelpBattle
 import PlayerHorsePetBoss
@@ -66,15 +68,32 @@
 import PyGameData
 import PlayerTalk
 import PlayerStore
+import CrossYaomoBoss
 import CrossRealmPlayer
 import CrossRealmMsg
 import CrossRealmPK
+import CrossChampionship
+import CrossBattlefield
+import CrossFamilyFlagwar
+import CrossActAllRecharge
+import PlayerActBossTrial
+import PlayerActFamilyCTGAssist
 import ChPyNetSendPack
 import NetPackCommon
 import AuctionHouse
+import PlayerFairyDomain
+import GameWorldSkyTower
+import GameWorldMineArea
+import PlayerTurnFight
+import GameWorldArena
+import GameWorldItem
+import PlayerRecData
+import PlayerAssist
+import PlayerLove
 
 import time
 import datetime
+import json
 #---------------------------------------------------------------------
 #全局变量
 #---------------------------------------------------------------------
@@ -329,16 +348,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()
@@ -482,15 +510,28 @@
     callName = pack.GetCallName()
     resultName = pack.GetResultName()                       #[queryid, 人气值, 物品ID]
     
+    if callName == "PlayerRealLoginOK":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        loginMsg = eval(resultName)
+        ChPlayer.DoPlayerRealLoginOK(curPlayer, loginMsg, tick)
+        return
+    
     if callName == "SendMail":
-        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource = eval(resultName)
+        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource, crossMail = eval(resultName)
         limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
         limitTime = limitTime.split(".")[0]
-        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource)
+        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource, crossMail=crossMail)
         return
     
     if callName == "SendMailBatch":
         PlayerCompensation.SendPersonalItemMailBatch(eval(resultName))
+        return
+    
+    if callName == "SendEntireMail":
+        mailTypeKey, getDays, limitLV, limitLVType, addItemList, paramList, gold, goldPaper, silver, detail, moneySource = eval(resultName)
+        PlayerCompensation.SendEntireMail(mailTypeKey, getDays, limitLV, limitLVType, addItemList, paramList, gold, goldPaper, silver, detail, moneySource)
         return
     
     if callName == "SendMsgToCrossServer":
@@ -512,19 +553,12 @@
         PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList)
         return
     
-    if callName == "DynamicLineMapOpen":
-        realMapID, copyMapID = eval(resultName)
-        PlayerFB.OnCrossDynamicLineOpen(realMapID, copyMapID)
-        return
-    
-    if callName == "DynamicLineMapClose":
-        realMapID, copyMapID = eval(resultName)
-        PlayerFB.OnCrossDynamicLineClose(realMapID, copyMapID)
+    if callName == "DynamicLineMapStateChange":
+        PlayerFB.OnCrossDynamicLineStateChange(eval(resultName))
         return
     
     if callName == "DynamicLineMapInitOK":
-        realMapID, copyMapCount = eval(resultName)
-        PlayerFB.OnCrossDynamicMapReset(realMapID, copyMapCount)
+        PlayerFB.OnCrossDynamicMapReset(eval(resultName))
         return
     
     if callName == "CommMapServerInitOK":
@@ -535,6 +569,10 @@
 
     if callName == "UpdateBillboard":     #地图服务器更新排行榜
         PlayerBillboard.MapServer_UpdateBillboard(eval(resultName), tick)
+        return
+
+    if callName == "UpdateCrossBillboard":     #地图服务器更新跨服排行榜
+        CrossBillboard.MapServer_UpdateCrossBillboard(eval(resultName))
         return
     
     if callName == 'PyAddFamilyInfoValue':     #地图服务器增加战盟信息值
@@ -550,6 +588,13 @@
     
     if callName == 'ExitExam': #地图服务器玩家退出答题
         PlayerExam.MapServer_ExitAction(srcPlayerID)
+        return
+    
+    if callName == 'FuncOpen':
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        PlayerControl.DoFuncOpenLogic(curPlayer, eval(resultName))
         return
     
     if  callName == 'TeamNotify':
@@ -591,6 +636,11 @@
         GameDataRecord.ChangeCoinCnt(eval(resultName))
         return
     
+    #跨服排位PK战斗结算
+    if callName == "CrossChampionshipPKOver":
+        CrossChampionship.MapServer_CrossChampionshipPKOver(eval(resultName), tick)
+        return
+    
     #跨服匹配PK战斗结算
     if callName == "CrossPKOver":
         CrossRealmPK.MapServer_CrossPKOver(eval(resultName), tick)
@@ -622,6 +672,37 @@
         CrossRealmPlayer.OnCrossRealmRegOK(srcPlayerID, eval(resultName), tick)
         return
     
+    # 跨服战场结算
+    if callName =="CrossBattlefieldOver":
+        CrossBattlefield.MapServer_CrossBattlefieldOver(eval(resultName))
+        return
+    
+    # 跨服仙盟夺旗战/逐鹿万界 结算
+    if callName =="CrossFamilyFlagwarOver":
+        CrossFamilyFlagwar.MapServer_CrossFamilyFlagwarOver(eval(resultName))
+        return
+    
+    # 跨服妖魔boss伤害结算
+    if callName =="CrossYaomoBossHurtInfo":
+        CrossYaomoBoss.MapServer_CrossYaomoBossHurtInfo(eval(resultName))
+        return
+    
+    # 跨服全民充值
+    if callName == "CrossActAllRecharge":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        CrossActAllRecharge.MapServer_CrossActAllRecharge(curPlayer, eval(resultName))
+        return
+    
+    # Boss历练
+    if callName == "BossTrial":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        PlayerActBossTrial.MapServer_BossTrial(curPlayer, eval(resultName))
+        return
+    
     #py喇叭聊天
     if callName == 'PYSpeaker':
         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
@@ -641,6 +722,13 @@
     # 战盟联赛
     if callName =="FamilyWarOver":
         GameWorldFamilyWar.MapServer_FamilyWarOver(eval(resultName))
+        return
+    
+    # 增加玩家Rec数据
+    if callName == "AddPlayerRec":
+        curPlayer = None if not srcPlayerID else GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        recType, valueList, userData, notifyType = eval(resultName)
+        PlayerRecData.MapServer_AddPlayerRec(curPlayer, recType, valueList, userData, notifyType)
         return
     
     # 删除通用玩家Rec数据
@@ -666,12 +754,6 @@
                 
         return
     
-    # 战盟副本boss开始、被击杀
-    if callName =="FamilyBossFBState":
-        PlayerFamilyBoss.FamilyBossOnKilled(eval(resultName), tick)
-        return
-    
-
     # 击杀boss掉落好物品
     if callName =="BossDropGoodItem":
         GameWorldBoss.OnKillBossDropGoodItem(eval(resultName), tick)
@@ -708,6 +790,11 @@
     # 全局击杀数统计
     if callName =="GlobalKillCount":
         GameWorldProcess.UpdGlobalKillCount(eval(resultName))
+        return
+    
+    # 缓存装备广播信息中的装备明细信息
+    if callName == "NotifyEquipDetailInfo":
+        GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick)
         return
     
     #生成仙盟红包
@@ -769,15 +856,25 @@
         AuctionHouse.MapServer_AuctionHouseLogic(curPlayer, eval(resultName), tick)
         return
     
+    # 协助
+    if callName == "PlayerAssist":
+        curPlayer = None
+        if srcPlayerID:
+            curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+            if not curPlayer:
+                return
+        PlayerAssist.MapServer_PlayerAssistLogic(curPlayer, eval(resultName), tick)
+        return
+    
     if callName == "TeamMemFuncData":
         PlayerTeam.MapServer_TeamMemFuncData(srcPlayerID, eval(resultName))
         return
     
-    #封魔坛结束
-    if callName == "SealDemonOver":
-        playerID, lineID, rank = eval(resultName)
-        PyDataManager.GetSealDemonRecordManager().UpdateSealDemonRecord(playerID,lineID,rank)
-        return
+#    #封魔坛结束
+#    if callName == "SealDemonOver":
+#        playerID, lineID, rank = eval(resultName)
+#        PyDataManager.GetSealDemonRecordManager().UpdateSealDemonRecord(playerID,lineID,rank)
+#        return
     
     #查询副本功能线路人数
     if callName == "FBLinePlayerCnt":
@@ -833,9 +930,29 @@
     if callName =="AllFamilyBossOver":
         PlayerFamilyBoss.AllFamilyBossKilled()
         return
+    #仙盟阵法
+    if callName =="FamilyZhenfa":
+        curPlayer = None
+        if srcPlayerID:
+            curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+            if not curPlayer:
+                return
+        PlayerFamilyZhenfa.MapServer_FamilyZhenfa(curPlayer, eval(resultName))
+        return
+    #仙盟传功
+    if callName =="FamilyChuangong":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        PlayerFamily.MapServer_FamilyChuangong(curPlayer, eval(resultName))
+        return
     #骑宠BOSS结束
     if callName =="HorsePetBossOver":
         PlayerHorsePetBoss.HorsePetBossKilled(int(resultName))
+        return
+    #缥缈仙域事件出现
+    if callName =="AddFairyDomainEvent":
+        PlayerFairyDomain.AddFairyDomainEvent(eval(resultName))
         return
     
 #---return分割线-----------------------------------------------------------------
@@ -894,11 +1011,76 @@
     
     
     # 副本助战
-    if callName =="FBHelpBattle":
+    if callName == "FBHelpBattle":
         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
         if not curPlayer:
             return
         ret = PlayerFBHelpBattle.MapServer_FBHelpBattle(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+    
+    # 竞技场
+    if callName == "Arena":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = GameWorldArena.MapServer_Arena(curPlayer, eval(resultName))
+        resultName = '%s' % ret if ret != None else '' # 需要重置间隔,每次都回复
+        
+    # 仙盟充值互助
+    if callName == "FamilyCTGAssist":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = PlayerActFamilyCTGAssist.MapServer_FamilyCTGAssist(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 仙盟boss
+    if callName == "FamilyBoss":
+        ret = PlayerFamilyBoss.MapServer_FamilyBoss(eval(resultName), tick)
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 情缘
+    if callName == "Love":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = PlayerLove.MapServer_Love(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 回合制
+    if callName == "TurnFight":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = PlayerTurnFight.MapServer_TurnFight(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 福地
+    if callName == "MineArea":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = GameWorldMineArea.MapServer_MineArea(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 天星塔
+    if callName == "SkyTower":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = GameWorldSkyTower.MapServer_SkyTowerInfo(curPlayer, eval(resultName))
         if ret == None:
             return
         resultName = '%s' % ret
@@ -909,7 +1091,10 @@
 #        if not curPlayer:
 #            return
 #        resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
-        
+    
+    if not srcPlayerID:
+        return
+    
     srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
     
     if not srcPlayer:

--
Gitblit v1.8.0