From 51ebe08557412b702cc897409bbbf20eaf16903f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 06 十一月 2024 16:44:44 +0800
Subject: [PATCH] 10261 【越南】【砍树】【英文】【tqxbqy】头像框,头像(补充通知:C001、C005、B207; 0320宗门扫荡结算助战玩家头像信息; A003王者仙盟徽章;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 046d843..876a37b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -33,8 +33,12 @@
 import PlayerFamilyRedPacket
 import PlayerFairyCeremony
 import PlayerNewFairyCeremony
+import PlayerActFamilyCTGAssist
 import PlayerActGarbageSorting
 import PlayerActBossTrial
+import PlayerActXianXiaMJ
+import PlayerActGubao
+import PlayerActHorsePetTrain
 import PlayerUniversalGameRec
 import GameWorldAverageLv
 import PlayerFamilyBoss
@@ -741,7 +745,7 @@
         for sendMapServerMsgDict in curActMapInfoDictList:
             
             state = 0 # 默认关闭
-            stateJoin = 0 # 可参与状态
+            stateJoin = ShareDefine.ActStateJoin_None # 可参与状态,0-参与前;1-可参与;2-参与结束
             ipyData = None
             
             actNum = sendMapServerMsgDict.get(ShareDefine.ActKey_ActNum, 0)
@@ -772,10 +776,12 @@
                         for jIndex, joinStartDateTime in enumerate(joinStartTimeList):
                             endJoinDateTime = joinEndTimeList[jIndex]
                             if joinStartDateTime <= curDateTime < endJoinDateTime:
-                                stateJoin = state
+                                stateJoin = ShareDefine.ActStateJoin_Start
                                 break
+                            elif curDateTime >= endJoinDateTime:
+                                stateJoin = ShareDefine.ActStateJoin_End
                     else:
-                        stateJoin = state
+                        stateJoin = ShareDefine.ActStateJoin_Start if state else ShareDefine.ActStateJoin_None
                         
                     # 全服广播提示信息
                     if curDateTime in notifyDict:
@@ -817,6 +823,12 @@
                 if dbActID:
                     if actName == ShareDefine.OperationActionName_BossTrial:
                         PlayerActBossTrial.OnActEnd(actNum, ipyData, dayIndex)
+                    elif actName == ShareDefine.OperationActionName_XianXiaMJ:
+                        PlayerActXianXiaMJ.OnActEnd(actNum, ipyData, dayIndex)
+                    elif actName == ShareDefine.OperationActionName_Gubao:
+                        PlayerActGubao.OnActEnd(actNum, ipyData, dayIndex)
+                    elif actName == ShareDefine.OperationActionName_HorsePetTrain:
+                        PlayerActHorsePetTrain.OnActEnd(actNum, ipyData, dayIndex)
                         
                 if curActID:
                     if actName in ShareDefine.NeedWorldLVOperationActNameList:
@@ -847,6 +859,14 @@
                         PlayerActGarbageSorting.OnActStart(actNum)
                     elif actName == ShareDefine.OperationActionName_BossTrial:
                         PlayerActBossTrial.OnActStart(actNum)
+                    elif actName == ShareDefine.OperationActionName_XianXiaMJ:
+                        PlayerActXianXiaMJ.OnActStart(actNum, ipyData)
+                    elif actName == ShareDefine.OperationActionName_Gubao:
+                        PlayerActGubao.OnActStart(actNum, ipyData)
+                    elif actName == ShareDefine.OperationActionName_HorsePetTrain:
+                        PlayerActHorsePetTrain.OnActStart(actNum, ipyData)
+                    elif actName == ShareDefine.OperationActionName_FamilyCTGAssist:
+                        PlayerActFamilyCTGAssist.OnActStart(actNum)
                 else:
                     if actName == ShareDefine.OperationActionName_GarbageSorting:
                         PlayerActGarbageSorting.OnActEnd(actNum)
@@ -854,6 +874,34 @@
             else:
                 GameWorld.Log("    dbActID不变: dbActID=%s,curActID=%s" % (dbActID, curActID))
                 
+            # 活动中刷新,每次都需要刷新的逻辑,包含重读配置等
+            if state:
+                if actName == ShareDefine.OperationActionName_BossTrial:
+                    PlayerActBossTrial.OnActInStateRefresh(actNum, ipyData, dayIndex)
+                elif actName == ShareDefine.OperationActionName_XianXiaMJ:
+                    PlayerActXianXiaMJ.OnActInStateRefresh(actNum, ipyData)
+                elif actName == ShareDefine.OperationActionName_Gubao:
+                    PlayerActGubao.OnActInStateRefresh(actNum, ipyData)
+                elif actName == ShareDefine.OperationActionName_HorsePetTrain:
+                    PlayerActHorsePetTrain.OnActInStateRefresh(actNum, ipyData)
+                    
+            # 仅活动有配置参与时间段的会触发
+            if curActID and dbActID == curActID and preStateJoin != stateJoin:
+                GameWorld.Log("    参与状态变更: preStateJoin=%s,stateJoin=%s" % (preStateJoin, stateJoin))
+                # 参与开始
+                if stateJoin == ShareDefine.ActStateJoin_Start:
+                    pass
+                # 参与结束
+                elif stateJoin == ShareDefine.ActStateJoin_End:
+                    if actName == ShareDefine.OperationActionName_BossTrial:
+                        PlayerActBossTrial.OnActJoinEnd(actNum, ipyData, dayIndex)
+                    elif actName == ShareDefine.OperationActionName_XianXiaMJ:
+                        PlayerActXianXiaMJ.OnActJoinEnd(actNum, ipyData, dayIndex)
+                    elif actName == ShareDefine.OperationActionName_Gubao:
+                        PlayerActGubao.OnActJoinEnd(actNum, ipyData, dayIndex)
+                    elif actName == ShareDefine.OperationActionName_HorsePetTrain:
+                        PlayerActHorsePetTrain.OnActJoinEnd(actNum, ipyData, dayIndex)
+                        
             if ipyData and actName in ShareDefine.NeedWorldLVOperationActNameList:
                 actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActWorldLVKey)
                 sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV

--
Gitblit v1.8.0