| | |
| | | import GameWorldAverageLv
|
| | | import PlayerFamilyBoss
|
| | | import PlayerHorsePetBoss
|
| | | import CrossActionControl
|
| | | import GameWorldProcess
|
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | |
| | | if GameWorld.IsCrossServer():
|
| | | # 跨服不处理运营活动
|
| | | return
|
| | | CrossActionControl.SendMapServerCrossActionState()
|
| | |
|
| | | isReload, OperationActionInfo = __GetOperationActionInfo()
|
| | | mapServerInfoDict = OperationActionInfo[OperationAction_MapServerInfo]
|
| | |
| | |
|
| | | if GameWorld.IsCrossServer():
|
| | | # 跨服不处理运营活动
|
| | | CrossActionControl.Dispose_CrossActState(reloadRefresh)
|
| | | return
|
| | |
|
| | | isReload, OperationActionInfo = __GetOperationActionInfo(False) # 这里必须传False
|
| | |
| | | if not isReload and preState == state:
|
| | | #已经是这个状态了
|
| | | continue
|
| | | GameWorld.Log("运营活动变更: actName=%s,preState=%s,state=%s,dictName=%s" % (actName, preState, state, dictName))
|
| | | #更新字典值
|
| | | gameWorld.SetDict(dictName, state)
|
| | | sendMapServerMsgDict = mapServerInfoDict.get(actName, {})
|
| | |
|
| | | dbOperationActIDKey = PlayerDBGSEvent.Def_OperationActID % actName
|
| | | curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID)
|
| | | dbActID = PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey)
|
| | | curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID, 0)
|
| | | dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
|
| | | if curActID and PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey) != curActID:
|
| | | if dbActID != curActID:
|
| | | GameWorld.Log(" dbActID变更: dbActID=%s,curActID=%s" % (dbActID, curActID))
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(dbOperationActIDKey, curActID)
|
| | | if actName in ShareDefine.NeedWorldLVOperationActNameList:
|
| | | #记录开启时世界等级
|
| | | worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName, worldLV)
|
| | | |
| | | #此处为活动开启时
|
| | | if actName == ShareDefine.OperationActionName_BossReborn:
|
| | | #重置BOSS复活点
|
| | | GameWorldBoss.ResetBossRebornPoint()
|
| | | elif actName == ShareDefine.OperationActionName_FairyCeremony:
|
| | | #重置仙界盛典
|
| | | PlayerFairyCeremony.ResetFairyCeremony()
|
| | | elif actName == ShareDefine.OperationActionName_NewFairyCeremony:
|
| | | #重置仙界盛典
|
| | | PlayerNewFairyCeremony.ResetNewFairyCeremony()
|
| | | elif actName == ShareDefine.OperationActionName_FeastRedPacket:
|
| | | #重置节日红包
|
| | | if ipyData:
|
| | | PlayerFamilyRedPacket.OnResetFeastRedPacket(ipyData, dayIndex)
|
| | | elif actName == ShareDefine.OperationActionName_FlashSale:
|
| | | #限时抢购重置购买次数 本次活动每场不能重复
|
| | | #dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
|
| | | PlayerStore.ResetFlashSaleBuyCnt(ipyData)
|
| | | |
| | | |
| | | if curActID:
|
| | | if actName in ShareDefine.NeedWorldLVOperationActNameList:
|
| | | #记录开启时世界等级
|
| | | worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName, worldLV)
|
| | | GameWorld.Log(" 记录活动开启时世界等级: worldLV=%s" % (worldLV))
|
| | | |
| | | #此处为活动开启时
|
| | | if actName == ShareDefine.OperationActionName_BossReborn:
|
| | | #重置BOSS复活点
|
| | | GameWorldBoss.ResetBossRebornPoint()
|
| | | elif actName == ShareDefine.OperationActionName_FairyCeremony:
|
| | | #重置仙界盛典
|
| | | PlayerFairyCeremony.ResetFairyCeremony()
|
| | | elif actName == ShareDefine.OperationActionName_NewFairyCeremony:
|
| | | #重置仙界盛典
|
| | | PlayerNewFairyCeremony.ResetNewFairyCeremony()
|
| | | elif actName == ShareDefine.OperationActionName_FeastRedPacket:
|
| | | #重置节日红包
|
| | | if ipyData:
|
| | | PlayerFamilyRedPacket.OnResetFeastRedPacket(ipyData, dayIndex)
|
| | | elif actName == ShareDefine.OperationActionName_FlashSale:
|
| | | #限时抢购重置购买次数 本次活动每场不能重复
|
| | | #dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
|
| | | PlayerStore.ResetFlashSaleBuyCnt(ipyData)
|
| | | else:
|
| | | GameWorld.Log(" dbActID不变: dbActID=%s,curActID=%s" % (dbActID, curActID))
|
| | | |
| | | if actName in ShareDefine.NeedWorldLVOperationActNameList:
|
| | | actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName)
|
| | | sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV
|
| | | |
| | | GameWorld.Log(" 活动世界等级: actWorldLV=%s" % (actWorldLV))
|
| | | |
| | | if actName == ShareDefine.OperationActionName_ExpRate:
|
| | | if isReload and ipyData:
|
| | | Sync_OperationAction_ExpRate(ipyData)
|
| | |
| | | sendMapServerMsgDict[ShareDefine.ActKey_State] = state
|
| | | GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_OperationActionInfo % actName, sendMapServerMsgDict)
|
| | |
|
| | | GameWorld.Log("运营活动变更: actName=%s,preState=%s,state=%s,dictName=%s, %s" % (actName, preState, state, dictName, sendMapServerMsgDict))
|
| | | GameWorld.Log(" sendMapServerMsgDict: %s" % (sendMapServerMsgDict))
|
| | | return
|
| | |
|
| | | def Sync_OperationAction_ExpRate(ipyData, curPlayer=None):
|