From 789490b7d362160f7fca4580df6176498e1eb271 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 15 十一月 2024 15:19:13 +0800 Subject: [PATCH] 10302 【越南】【英语】【砍树】【tqxbqy】【btgotq】仙缘-服务端 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTask.py | 49 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 44 insertions(+), 5 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTask.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTask.py index 965e97c..c16ecfd 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTask.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTask.py @@ -32,11 +32,36 @@ actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0) isReset = __CheckPlayerActTaskAction(curPlayer, actNum) # 活动中同步活动信息 - if not isReset and actInfo.get(ShareDefine.ActKey_State): + if not isReset and actInfo.get(ShareDefine.ActKey_State) and curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskID % actNum): Sync_ActTaskActionInfo(curPlayer, actNum) Sync_ActTaskPlayerValueInfo(curPlayer, actNum) Sync_ActTaskPlayerInfo(curPlayer, actNum) + return + +def OnDay(curPlayer): + OnCheckRelateFuncAct(curPlayer) + return + +def OnCheckRelateFuncAct(curPlayer, openFuncIDList=None): + ## 检查关联功能ID开启的活动 + for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ActTask, {}).values(): + if not actInfo.get(ShareDefine.ActKey_State): + continue + cfgID = actInfo.get(ShareDefine.ActKey_CfgID) + ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID) + if not ipyData: + continue + if not hasattr(ipyData, "GetRelateFuncID"): + continue + relateFuncID = ipyData.GetRelateFuncID() + if not relateFuncID: + continue + if openFuncIDList and relateFuncID not in openFuncIDList: + continue + actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0) + __CheckPlayerActTaskAction(curPlayer, actNum) + return def RefreshActTaskActionInfo(actNum): @@ -62,6 +87,12 @@ playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskID % actNum) # 玩家身上的活动ID lastTempID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskTempID % actNum) + funcActInfo = GameWorld.GetActRelateFuncInfo(curPlayer, "ActTask", actInfo, playerActID) + if funcActInfo: + isInAct, actID = funcActInfo + if not isInAct: + return + # 活动ID 相同的话不处理 if actID == playerActID: GameWorld.DebugLog("任务活动ID不变,不处理! actNum=%s,actID=%s" % (actNum, actID), playerID) @@ -121,7 +152,8 @@ actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0) if not actInfo.get(ShareDefine.ActKey_State): continue - + if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskID % actNum): + continue cfgID = actInfo.get(ShareDefine.ActKey_CfgID) ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID) if not ipyData: @@ -150,7 +182,7 @@ return -def AddActTaskValue(curPlayer, taskType, addValue): +def AddActTaskValue(curPlayer, taskType, addValue=1): ## 增加任务活动进度值 playerID = curPlayer.GetPlayerID() @@ -158,7 +190,8 @@ actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0) if not actInfo.get(ShareDefine.ActKey_State): continue - + if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskID % actNum): + continue cfgID = actInfo.get(ShareDefine.ActKey_CfgID) ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID) if not ipyData: @@ -350,6 +383,9 @@ return if not actInfo.get(ShareDefine.ActKey_State): return + playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskID % actNum) # 玩家身上的活动ID + if not playerActID: + return cfgID = actInfo.get(ShareDefine.ActKey_CfgID) ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID) if not ipyData: @@ -359,7 +395,10 @@ if not taskIpyDataList: return - startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData) + if hasattr(ipyData, "GetRelateFuncID") and ipyData.GetRelateFuncID(): + startDateStr, endDateStr = GameWorld.GetActRelateFuncDate(ipyData, playerActID, True) + else: + startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData) actPack = ChPyNetSendPack.tagMCActTaskInfo() actPack.Clear() actPack.ActNum = actNum -- Gitblit v1.8.0