9265 【后端】53、新增幸运云购(修复幸运云购活动同步顺序问题导致的bug)
1个文件已修改
17 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py
@@ -483,7 +483,7 @@
    curDateTime = GameWorld.GetServerTime()
    curDateTime = datetime.datetime.strptime("%d-%d-%d %d:%d:00" % (curDateTime.year, curDateTime.month, curDateTime.day,
                                                                    curDateTime.hour, curDateTime.minute), ChConfig.TYPE_Time_Format)
    actChangeList = []
    sysnCrossActInfoDict = {}
    for actName in ShareDefine.CrossActNameList:
        if actName not in actTimeInfoDict or actName not in crossActInfoDict or actName not in actCfgIDInfoDict:
@@ -562,9 +562,8 @@
                if actName == ShareDefine.CrossActName_CTGBillboard:
                    CrossActCTGBillboard.OnActIDChange(cfgID, dbTemplateID, state)
                    
                elif actName == ShareDefine.CrossActName_LuckyCloudBuy:
                    import CrossLuckyCloudBuy
                    CrossLuckyCloudBuy.OnLuckyCloudBuyReset(ipyData, state)
                else:
                    actChangeList.append([actName, ipyData, state, cfgID, groupName, zoneID, dbActID, actID, forceReset, dbTemplateID])
                    
            # 非活动中的处理完关闭后,最后删除
            if not state:
@@ -576,6 +575,16 @@
    # 同步子服务器
    serverGroupIDList = []
    CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_CrossActInfo, sysnCrossActInfoDict, serverGroupIDList)
    # 需要等活动等同步到子服后才处理以下逻辑,不然可能导致子服没有活动时间明细引起活动异常
    for changeInfo in actChangeList:
        actName, ipyData, state, cfgID, groupName, zoneID, dbActID, actID, forceReset, dbTemplateID = changeInfo
        GameWorld.Log("    活动ID变更: actName=%s,cfgID=%s,groupName=%s,zoneID=%s,dbActID=%s -> actID=%s,forceReset=%s,dbTemplateID=%s"
                      % (actName, cfgID, groupName, zoneID, dbActID, actID, forceReset, dbTemplateID))
        if actName == ShareDefine.CrossActName_LuckyCloudBuy:
            import CrossLuckyCloudBuy
            CrossLuckyCloudBuy.OnLuckyCloudBuyReset(ipyData, state)
    return
def Sync_CrossActInfoToClientServer(serverGroupID=0):