hxp
2024-11-15 789490b7d362160f7fca4580df6176498e1eb271
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTask.py
@@ -32,10 +32,35 @@
        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
@@ -61,6 +86,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:
@@ -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,6 +395,9 @@
    if not taskIpyDataList:
        return
    
    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()