| | |
| | | import PlayerUniversalGameRec
|
| | | import GameWorldAverageLv
|
| | | import PlayerFamilyBoss
|
| | | import PlayerHorsePetBoss
|
| | | import GameWorldProcess
|
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | |
| | |
|
| | | from types import IntType
|
| | | import time
|
| | | import cPickle
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | #年月日时间格式
|
| | |
| | | isEnd = (curDateTime == endDayDate)
|
| | |
|
| | | # 每天按时段开启的,支持多时段
|
| | | else:
|
| | | if startDayDate <= curDateTime <= endDayDate:
|
| | | isEnd = (curDateTime == endDayDate)
|
| | | elif startDayDate <= curDateTime <= endDayDate:
|
| | | isEnd = (curDateTime == endDayDate)
|
| | | if not isEnd:
|
| | | for hmIndex, startHMStr in enumerate(startHMStrList):
|
| | | endHMStr = endHMStrList[hmIndex]
|
| | | # 每天开的, 实际开关时间只取今天的日期; 这里有个问题,全服广播的时间不是今天的, 暂不做支持,之后真有这种需求再说
|
| | |
| | | # GameWorld.DebugLog(" 副本可否进入已经是该值: dataMapID=%s,updCanEnter=%s,canEnterKey=%s" % (dataMapID, updCanEnter, canEnterKey))
|
| | |
|
| | | fbFuncStateKey = ShareDefine.Def_Notify_WorldKey_FBFuncState % dataMapID
|
| | | if gameWorld.GetDictByKey(fbFuncStateKey) != updStateValue:
|
| | | beforeState = gameWorld.GetDictByKey(fbFuncStateKey)
|
| | | if beforeState != updStateValue:
|
| | | GameWorld.SendMapServerMsgEx(fbFuncStateKey, updStateValue) #通知Mapserver,设置字典
|
| | | gameWorld.SetDict(fbFuncStateKey, updStateValue) #更新字典值
|
| | | GameWorld.Log("副本状态变更: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s" % (dataMapID, updStateValue, fbFuncStateKey))
|
| | | __DoLogic_GameServer_ActionState(fbFuncStateKey, updStateValue)
|
| | | __DoLogic_GameServer_ActionState(fbFuncStateKey, updStateValue, beforeState)
|
| | | #else:
|
| | | # GameWorld.DebugLog(" 副本状态已经是该值: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s" % (dataMapID, updStateValue, fbFuncStateKey))
|
| | |
|
| | |
| | | recMapID = universalRecData.GetValue1()
|
| | | if recMapID == mapID:
|
| | | findRecData = universalRecData
|
| | | fbOpenRecord[recMapID] = cPickle.loads(universalRecData.GetStrValue1())
|
| | | fbOpenRecord[recMapID] = eval(universalRecData.GetStrValue1())
|
| | |
|
| | | if not findRecData:
|
| | | findRecData = recTypeListData.AddRec()
|
| | | findRecData.SetValue1(mapID)
|
| | | findRecData.SetStrValue1(cPickle.dumps([curDayStr], 2))
|
| | | findRecData.SetStrValue1(str([curDayStr]))
|
| | | fbOpenRecord[mapID] = [curDayStr]
|
| | | else:
|
| | | recordList = cPickle.loads(findRecData.GetStrValue1())
|
| | | recordList = eval(findRecData.GetStrValue1())
|
| | | if curDayStr not in recordList:
|
| | | recordList.append(curDayStr)
|
| | | if len(recordList) > 3: #只存最近3次
|
| | | del recordList[0]
|
| | | findRecData.SetStrValue1(cPickle.dumps(recordList, 2))
|
| | | findRecData.SetStrValue1(str(recordList))
|
| | | fbOpenRecord[mapID] = recordList
|
| | | else:
|
| | | return
|
| | |
| | | for index in range(recTypeListData.Count()):
|
| | | universalRecData = recTypeListData.At(index)
|
| | | recMapID = universalRecData.GetValue1()
|
| | | recordList = cPickle.loads(universalRecData.GetStrValue1())
|
| | | recordList = eval(universalRecData.GetStrValue1())
|
| | | fbOpenRecord[recMapID] = recordList
|
| | | return fbOpenRecord
|
| | |
|
| | |
| | | ##处理GameServer活动状态
|
| | | # @param dictName 字典名
|
| | | # @param isOpen 是否开启
|
| | | # @param beforeState 状态变更前的值,部分判断处理
|
| | | # @return 返回值无意义
|
| | | # @remarks
|
| | | def __DoLogic_GameServer_ActionState(dictName, isOpen):
|
| | | def __DoLogic_GameServer_ActionState(dictName, isOpen, beforeState=0):
|
| | | #仙盟宴会
|
| | | if dictName == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyParty:
|
| | | PlayerFamilyParty.FamilyPartyStateChange(isOpen)
|
| | | PlayerFamilyParty.FamilyPartyStateChange(isOpen, beforeState)
|
| | | #仙盟联赛
|
| | | elif dictName == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyWar:
|
| | | GameWorldFamilyWar.OnFamilyWarStateChange(isOpen)
|
| | |
| | | elif dictName == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_CrossReamPK:
|
| | | CrossRealmPK.OnCrossRealmPKDailyActionStateChange(isOpen)
|
| | | #仙盟BOSS
|
| | | elif dictName in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss1,
|
| | | ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss2,]:
|
| | | elif dictName in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss1]:
|
| | | PlayerFamilyBoss.OnAllFamilyBossStateChange(isOpen)
|
| | | #骑宠BOSS
|
| | | elif dictName in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_HorsePetBoss]:
|
| | | PlayerHorsePetBoss.OnHorsePetBossStateChange(isOpen)
|
| | |
|
| | | return
|
| | |
|