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,23 @@
            else:
                GameWorld.Log("    dbActID不变: dbActID=%s,curActID=%s" % (dbActID, curActID))
                
            # 仅活动有配置参与时间段的会触发
            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