From 794d31c3d9615701ef8f04a199417737ddf60bd7 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 11 一月 2019 09:59:57 +0800
Subject: [PATCH] 5762 子 【开发】【1.5】新增300级后的成长基金 / 【后端】【1.5】新增300级后的成长基金
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 110 +++++++-----------------------------------------------
1 files changed, 15 insertions(+), 95 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index a7fac3b..60050fd 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -25,14 +25,11 @@
import ShareDefine
#import PlayerExam
import PlayerDBGSEvent
-import MergeBroadcast
#import PlayerManorWar
#import GameWorldShopItem
#import GameWorldActionTeHui
import GameWorldAverageLv
-#import GameWorldMergeBoss
-#import GameWorldMergeKing
-#import GameWorldMergePK
+import CrossRealmPK
import GameWorldFamilyWar
import PlayerFamilyParty
import IpyGameDataPY
@@ -48,8 +45,6 @@
from types import IntType
import time
#---------------------------------------------------------------------
-
-MaxCustomServerDay = 14 # 最大定制开服天数
#年月日时间格式
Time_YmdFormat = ChConfig.TYPE_Time_YmdFormat
@@ -128,7 +123,7 @@
curDateTimeStr = "%d-%d-%d %02d:%02d:00" % (serverTime.year, serverTime.month, serverTime.day, serverTime.hour, serverTime.minute)
curDateTime = datetime.datetime.strptime(curDateTimeStr, ChConfig.TYPE_Time_Format)
- customMaxServerDay = MaxCustomServerDay # 定制运营活动最大开服天
+ customMaxServerDay = IpyGameDataPY.GetFuncCfg("OperationAction", 1) # 定制运营活动最大开服天
operationActionDict = {}
mapServerOperationActionDict = {}
serverID = GameWorld.GetServerID()
@@ -347,11 +342,16 @@
## 获取运营活动本服务器对应的配置数据列表
# 所有配置先按活动标识归组
+ platform = GameWorld.GetPlatform()
actGroupDict = {} # {ActMark:{ServerIDTuple:[ipyData, ...], ...}, ...}
actCfgCount = getattr(ipyDataMgr, "Get%sCount" % actName)()
for cfgIndex in xrange(actCfgCount):
ipyData = getattr(ipyDataMgr, "Get%sByIndex" % actName)(cfgIndex)
actMark = ipyData.GetActMark()
+ platformList = [] if not hasattr(ipyData, "GetPlatformList") else ipyData.GetPlatformList()
+ if platformList and platform not in platformList:
+ GameWorld.Log("非本平台活动,不取!platform=%s,platformList=%s,actName=%s,cfgID=%s" % (platform, platformList, actName, ipyData.GetCfgID()))
+ continue
serverIDTuple = tuple(ipyData.GetServerIDList())
serverIpyDataDict = actGroupDict.get(actMark, {})
@@ -536,6 +536,7 @@
multiRealmPointInfo.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay)
multiRealmPointInfo.Multiple = ipyData.GetMultiple()
multiRealmPointInfo.LimitLV = ipyData.GetLVLimit()
+ multiRealmPointInfo.LimitPoint = ipyData.GetPointLimit()
if not curPlayer:
# 全服广播在线玩家
playerManager = GameWorld.GetPlayerManager()
@@ -568,7 +569,7 @@
curDateStr = GameWorld.ChangeTimeNumToStr(curTime, ChConfig.TYPE_Time_YmdFormat) # 当天日期
openServerWeekday = GameWorldProcess.GetOpenServerWeekday() # 服务器开服时是星期几
- curMaxCustomServerDay = MaxCustomServerDay - openServerWeekday + 1 # 最大有效定制开服天
+ curMaxCustomServerDay = IpyGameDataPY.GetFuncCfg("OperationAction", 1) - openServerWeekday + 1 # 最大有效定制开服天
GameWorld.Log("===== 加载今天日常活动信息 =====")
GameWorld.Log(" 开服是星期%s, 开服第%s天, 当前星期%s" % (openServerWeekday, openServerDay, weekDay))
GameWorld.Log(" 最大有效定制开服天: %s" % (curMaxCustomServerDay))
@@ -820,7 +821,7 @@
GameWorld.ErrLog("获取开服是星期几数据错误!openServerWeekday=%s" % openServerWeekday)
return []
- curMaxCustomServerDay = MaxCustomServerDay - openServerWeekday + 1 # 最大有效定制开服天
+ curMaxCustomServerDay = IpyGameDataPY.GetFuncCfg("OperationAction", 1) - openServerWeekday + 1 # 最大有效定制开服天
GameWorld.Log("===== 加载今天副本状态时间表 =====")
GameWorld.Log(" 开服是星期%s, 开服第%s天, 当前星期%s,%s点%s分 !" % (openServerWeekday, openServerDay, curWeekDay, curHour, curMinute))
GameWorld.Log(" 最大有效定制开服天: %s" % (curMaxCustomServerDay))
@@ -1065,77 +1066,11 @@
# #间隔未到
# return
- if GameWorld.IsMergeServer():
+ if GameWorld.IsCrossServer():
return
Dispose_ActionGoOnByDayKey()
return
-
-
-## 设定上次开启活动时间距离现在天数事件
-# @param None:
-# @return: None
-def DoLogic_ServerLastOpenActionDay():
-
- #是跨服服务器
- if GameWorld.IsMergeServer():
- 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.IsMergeServer():
-# return False
-#
-# return True
## 当前时间与指定时间比较
# @param curTime 当前服务器时间
@@ -1201,15 +1136,6 @@
# #领地争夺战
# if dictName == ShareDefine.Def_Notify_WorldKey_ManorWar:
# PlayerManorWar.ManorWar_ChangeState(isOpen)
- # #跨服boss
- # elif dictName == ShareDefine.Def_Notify_WorldKey_MergeBoss:
- # GameWorldMergeBoss.MergeBoss_ChangeState(isOpen)
- # #跨服PK
- # elif dictName == ShareDefine.Def_Notify_WorldKey_Merge_PK:
- # GameWorldMergePK.OnMergePKMatchStateChange(isOpen)
- # #跨服王者争霸
- # elif dictName == ShareDefine.Def_Notify_WorldKey_Merge_King:
- # GameWorldMergeKing.OnMergeKingStateChange(isOpen)
# #答题活动
# elif dictName == ShareDefine.Def_Notify_WorldKey_Game_EXAM:
# PlayerExam.Exam_ChangeState(isOpen)
@@ -1236,15 +1162,9 @@
#骑宠争夺
elif dictName == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyRobBoss:
GameWorldBoss.OnHorsePetRobBossActionChange(isOpen)
- return
-
-#------------------------------------------------------------------------------
-## 通知子服务器天数
-# @param param: None
-# @return: None
-def SendBroadcastMergeOpenActionDay():
- mergeServerOpenActionDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MergeServerOpenActionDay)
- MergeBroadcast.SendBroadcastMerge(ChConfig.Def_MergeServerOpenActionDay, 0, {"Day":mergeServerOpenActionDay})
+ #跨服PK
+ elif dictName == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_CrossReamPK:
+ CrossRealmPK.OnCrossRealmPKDailyActionStateChange(isOpen)
return
#-------------------------------------------------------------------------------
@@ -1351,7 +1271,7 @@
# @param None
# @return None
def Dispose_ActionGoOnByDayKey():
- if GameWorld.IsMergeServer():
+ if GameWorld.IsCrossServer():
return
GameWorld.DebugLog("处理特惠状态信息...")
openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
--
Gitblit v1.8.0