From 27a35e96b8a8bcedc8d28a561b31bb4b9306c2cd Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 05 七月 2024 16:33:18 +0800
Subject: [PATCH] 10198 【香港】【越南】【主干】【砍树】【后端】BOSS凭证优化(优化凭证转化: 活动开始后到参与结束都不转化,包含活动开始参与前;)

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

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 046d843..c89e50d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -33,6 +33,7 @@
 import PlayerFamilyRedPacket
 import PlayerFairyCeremony
 import PlayerNewFairyCeremony
+import PlayerActFamilyCTGAssist
 import PlayerActGarbageSorting
 import PlayerActBossTrial
 import PlayerUniversalGameRec
@@ -741,7 +742,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 +773,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:
@@ -847,6 +850,8 @@
                         PlayerActGarbageSorting.OnActStart(actNum)
                     elif actName == ShareDefine.OperationActionName_BossTrial:
                         PlayerActBossTrial.OnActStart(actNum)
+                    elif actName == ShareDefine.OperationActionName_FamilyCTGAssist:
+                        PlayerActFamilyCTGAssist.OnActStart(actNum)
                 else:
                     if actName == ShareDefine.OperationActionName_GarbageSorting:
                         PlayerActGarbageSorting.OnActEnd(actNum)
@@ -854,6 +859,17 @@
             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)
+                        
             if ipyData and actName in ShareDefine.NeedWorldLVOperationActNameList:
                 actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActWorldLVKey)
                 sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV

--
Gitblit v1.8.0