| | |
| | | import ShareDefine
|
| | | #import PlayerExam
|
| | | import PlayerDBGSEvent
|
| | | import MergeBroadcast
|
| | | #import PlayerManorWar
|
| | | #import GameWorldShopItem
|
| | | #import GameWorldActionTeHui
|
| | |
| | | import PlayerFamilySWRH
|
| | | import GameWorldBoss
|
| | | import PlayerFairyCeremony
|
| | | import PlayerNewFairyCeremony
|
| | | import GameWorldProcess
|
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | |
| | | ipyData = operationActionDict[ShareDefine.OperationActionName_FairyCeremony][0]
|
| | | if ipyData:
|
| | | PlayerFairyCeremony.Sync_OperationAction_FairyCeremony(ipyData, curPlayer)
|
| | | |
| | | # 新仙界盛典活动进行中
|
| | | if ShareDefine.OperationActionName_NewFairyCeremony in operationActionDict:
|
| | | ipyData = operationActionDict[ShareDefine.OperationActionName_NewFairyCeremony][0]
|
| | | if ipyData:
|
| | | PlayerNewFairyCeremony.Sync_OperationAction_NewFairyCeremony(ipyData, curPlayer)
|
| | | # 多倍修行点活动进行中
|
| | | if ShareDefine.OperationActionName_RealmPoint in operationActionDict:
|
| | | ipyData = operationActionDict[ShareDefine.OperationActionName_RealmPoint][0]
|
| | |
| | | startDateStr = "%d-%d-%d" % (openServerDateTime.year, openServerDateTime.month, openServerDateTime.day)
|
| | | endDateStr = "%d-%d-%d" % (endServerDateTime.year, endServerDateTime.month, endServerDateTime.day)
|
| | | GameWorld.Log(" 开服天转化为日期: %s ~ %s" % (startDateStr, endDateStr))
|
| | | else:
|
| | | elif actName not in ShareDefine.FeastOperationActionNameList:
|
| | | if openServerDay <= customMaxServerDay:
|
| | | GameWorld.Log(" 按日期开的在开服定制限制天内,不处理! cfgID=%s,%s ~ %s,openServerDay=%s" % (cfgID, startDateStr, endDateStr, openServerDay))
|
| | | continue
|
| | |
| | | def __GetOperationActionServerIpyDataList(ipyDataMgr, serverID, actName):
|
| | | ## 获取运营活动本服务器对应的配置数据列表
|
| | |
|
| | | if not hasattr(ipyDataMgr, "Get%sCount" % actName):
|
| | | GameWorld.ErrLog("没有该运营活动类型对应活动时间表! actName=%s" % actName)
|
| | | return []
|
| | | |
| | | # 所有配置先按活动标识归组
|
| | | platform = GameWorld.GetPlatform()
|
| | | actGroupDict = {} # {ActMark:{ServerIDTuple:[ipyData, ...], ...}, ...}
|
| | |
| | | elif actName == ShareDefine.OperationActionName_FairyCeremony:
|
| | | #重置仙界盛典
|
| | | PlayerFairyCeremony.ResetFairyCeremony()
|
| | | |
| | | elif actName == ShareDefine.OperationActionName_NewFairyCeremony:
|
| | | #重置仙界盛典
|
| | | PlayerNewFairyCeremony.ResetNewFairyCeremony()
|
| | |
|
| | |
|
| | | if state >= 1 and actName in ShareDefine.NeedWorldLVOperationActNameList:
|
| | |
| | | PlayerFairyCeremony.Sync_OperationAction_FairyCeremony(ipyData)
|
| | | if preState != state and state == 0:
|
| | | PlayerFairyCeremony.OnFairyCeremonyEnd()
|
| | | elif actName == ShareDefine.OperationActionName_NewFairyCeremony:
|
| | | if isReload and ipyData:
|
| | | PlayerNewFairyCeremony.Sync_OperationAction_NewFairyCeremony(ipyData)
|
| | | if preState != state and state == 0:
|
| | | PlayerNewFairyCeremony.OnNewFairyCeremonyEnd()
|
| | | |
| | | elif actName == ShareDefine.OperationActionName_RealmPoint:
|
| | | if isReload and ipyData:
|
| | | Sync_OperationAction_RealmPoint(ipyData)
|
| | |
| | | Dispose_ActionGoOnByDayKey()
|
| | | return
|
| | |
|
| | |
|
| | | ## 设定上次开启活动时间距离现在天数事件
|
| | | # @param None: |
| | | # @return: None
|
| | | def DoLogic_ServerLastOpenActionDay():
|
| | | |
| | | #是跨服服务器
|
| | | if GameWorld.IsCrossServer():
|
| | | if not PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MergeServerOpenActionDay):
|
| | | return
|
| | | |
| | | PlayerDBGSEvent.SetDBGSTrig_ServerTime(PlayerDBGSEvent.Def_MergeServerOpenActionDay)
|
| | | |
| | | #通知子服务器天数
|
| | | SendBroadcastMergeOpenActionDay()
|
| | | return
|
| | | |
| | | DoLogic_ActionByDayKeyOnDay()
|
| | | |
| | | #上次开启活动时间距离现在天数
|
| | | lastOpenActionDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerLastOpenActionDay)
|
| | | openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
|
| | | initDayList = ReadChConfig.GetEvalChConfig('ActionControlByDayInitOpenServerDay')
|
| | | if openServerDay < initDayList[0]:
|
| | | #开服时间未超过30天
|
| | | return
|
| | | |
| | | #新一轮活动从头开始
|
| | | if lastOpenActionDay >= initDayList[1] or openServerDay == initDayList[2]:
|
| | | NewRingOpenActionDay()
|
| | | return
|
| | |
|
| | | PlayerDBGSEvent.SetDBGSTrig_ServerTime(PlayerDBGSEvent.Def_ServerLastOpenActionDay)
|
| | | return
|
| | | |
| | |
|
| | | ## 新一轮活动开始
|
| | | # @param None: |
| | | # @return: |
| | | def NewRingOpenActionDay():
|
| | | |
| | | #设置字典值从1开始, 跟SetDBGSTrig_ServerTime接口同步
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerLastOpenActionDay, 1)
|
| | | |
| | | # 活动天数重设
|
| | | OpenActionDay_Reset() |
| | | return
|
| | | |
| | | #------------------------------------------------------------------------------
|
| | | ## 活动天数重设
|
| | | # @param None
|
| | | # @return None
|
| | | def OpenActionDay_Reset(): |
| | | # 设置国王战开始
|
| | | #PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MergeWarStart, 1)
|
| | | return
|
| | |
|
| | | ### 检查key是否处理
|
| | | #def __CheckIsProcessDictName(dictName):
|
| | | # |
| | | # # 非跨服服务器不处理某些key
|
| | | # if dictName in [ShareDefine.Def_Notify_WorldKey_Merge_King] and not GameWorld.IsCrossServer():
|
| | | # return False
|
| | | # |
| | | # return True
|
| | |
|
| | | ## 当前时间与指定时间比较
|
| | | # @param curTime 当前服务器时间
|
| | | # @param timeInfo 指定时间 [[3,4(星期几)], 年,月,日,时,分]
|
| | |
| | | #跨服PK
|
| | | elif dictName == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_CrossReamPK:
|
| | | CrossRealmPK.OnCrossRealmPKDailyActionStateChange(isOpen)
|
| | | return
|
| | |
|
| | | #------------------------------------------------------------------------------ |
| | | ## 通知子服务器天数
|
| | | # @param param: None
|
| | | # @return: None
|
| | | def SendBroadcastMergeOpenActionDay():
|
| | | mergeServerOpenActionDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MergeServerOpenActionDay)
|
| | | MergeBroadcast.SendBroadcastMerge(ChConfig.Def_MergeServerOpenActionDay, 0, {"Day":mergeServerOpenActionDay})
|
| | | return
|
| | |
|
| | | #-------------------------------------------------------------------------------
|