From b7bb8308d9b16d2802ccc3c259c871c2b6e58002 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 15 十一月 2022 19:16:05 +0800
Subject: [PATCH] 9748 【BT7】跨服BOSS定时活动(跨服妖魔boss;增加跨服日常活动时间控制;Boss刷新增加支持关联跨服日常活动;优化跨服boss复活剩余时间计算使用跨服时间;)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py |   76 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 74 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index 3bc8090..3059766 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
@@ -66,16 +67,22 @@
 import PyGameData
 import PlayerTalk
 import PlayerStore
+import CrossYaomoBoss
 import CrossRealmPlayer
 import CrossRealmMsg
 import CrossRealmPK
+import CrossChampionship
+import CrossBattlefield
+import CrossActAllRecharge
 import ChPyNetSendPack
 import NetPackCommon
 import AuctionHouse
 import PlayerFairyDomain
 import GameWorldSkyTower
+import GameWorldArena
 import GameWorldItem
 import PlayerAssist
+import PlayerLove
 
 import time
 import datetime
@@ -496,15 +503,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":
@@ -543,6 +563,10 @@
     if callName == "UpdateBillboard":     #地图服务器更新排行榜
         PlayerBillboard.MapServer_UpdateBillboard(eval(resultName), tick)
         return
+
+    if callName == "UpdateCrossBillboard":     #地图服务器更新跨服排行榜
+        CrossBillboard.MapServer_UpdateCrossBillboard(eval(resultName))
+        return
     
     if callName == 'PyAddFamilyInfoValue':     #地图服务器增加战盟信息值
         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
@@ -557,6 +581,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':
@@ -598,6 +629,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)
@@ -627,6 +663,24 @@
     #跨服注册结果
     if callName == "CrossRealmReg":
         CrossRealmPlayer.OnCrossRealmRegOK(srcPlayerID, eval(resultName), tick)
+        return
+    
+    # 跨服战场结算
+    if callName =="CrossBattlefieldOver":
+        CrossBattlefield.MapServer_CrossBattlefieldOver(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
     
     #py喇叭聊天
@@ -929,6 +983,24 @@
             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 =="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 == "SkyTower":
         ret = GameWorldSkyTower.MapServer_SkyTowerInfo(eval(resultName))

--
Gitblit v1.8.0