ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActFamilyCTGAssist.py
@@ -27,20 +27,23 @@
def SetFAActNum(actionData, actNum): return actionData.SetValue1(actNum)
def GetFAActPlayerIDInfo(actionData):
    playerIDInfo = [[], {}]
    playerIDInfo = [[], {}, {}]
    useData = actionData.GetUseData()
    if useData:
        try:
            playerIDInfo = eval(useData)
            # 后面加了第3个值,兼容线上数据
            if len(playerIDInfo) == 2:
                playerIDInfo.append({})
        except:
            playerIDInfo = [[], {}]
            playerIDInfo = [[], {}, {}]
    return playerIDInfo
def SetFAActPlayerIDInfo(actionData, ctgPlayerIDList, getAwardPlayerCountDict):
    useData = str([ctgPlayerIDList, getAwardPlayerCountDict]).replace(" ", "")
def SetFAActPlayerIDInfo(actionData, ctgPlayerIDList, getAwardPlayerCountDict, getAwardPlayerIDDict={}):
    useData = str([ctgPlayerIDList, getAwardPlayerCountDict, getAwardPlayerIDDict]).replace(" ", "")
    actionData.SetUseData(useData, len(useData))
    return
def ClearFAActPlayerIDInfo(actionData):
    SetFAActPlayerIDInfo(actionData, [], {})
    SetFAActPlayerIDInfo(actionData, [], {}, {})
    return
def GetFamilyCTGAssistActionData(familyID, actNum):
@@ -108,13 +111,13 @@
    for actNum in actNumList:
        actionData = GetFamilyCTGAssistActionData(familyID, actNum)
        
        ctgPlayerIDList, getAwardPlayerCountDict = GetFAActPlayerIDInfo(actionData)
        ctgPlayerIDList, getAwardPlayerCountDict, getAwardPlayerIDDict = GetFAActPlayerIDInfo(actionData)
        if playerID in ctgPlayerIDList:
            continue
        
        isChange = True
        ctgPlayerIDList.append(playerID)
        SetFAActPlayerIDInfo(actionData, ctgPlayerIDList, getAwardPlayerCountDict)
        SetFAActPlayerIDInfo(actionData, ctgPlayerIDList, getAwardPlayerCountDict, getAwardPlayerIDDict)
        GameWorld.Log("仙盟充值互助人数变更: actNum=%s,familyID=%s,新互助玩家=%s,更新互助人数=%s, %s" 
                      % (actNum, familyID, playerID, len(ctgPlayerIDList), ctgPlayerIDList))
        
@@ -136,7 +139,7 @@
    
    actionData = GetFamilyCTGAssistActionData(familyID, actNum)
    
    ctgPlayerIDList, getAwardPlayerCountDict = GetFAActPlayerIDInfo(actionData)
    ctgPlayerIDList, getAwardPlayerCountDict, getAwardPlayerIDDict = GetFAActPlayerIDInfo(actionData)
    
    if len(ctgPlayerIDList) < ctgPlayers:
        GameWorld.DebugLog("仙盟充值互助所需充值人数不足: actNum=%s,familyID=%s,已互助人数=%s < %s, %s" 
@@ -149,17 +152,22 @@
    maxMemberCnt = PlayerFamily.GetFamilySetting(curFamily, ChConfig.Def_FamilySetting_MaxMemberCnt)
    
    getAwardPlayerCount = getAwardPlayerCountDict.get(str(ctgPlayers), 0)
    getAwardPlayerIDList = getAwardPlayerIDDict.get(str(ctgPlayers), [])
    if getAwardPlayerCount >= maxMemberCnt:
        GameWorld.DebugLog("仙盟充值互助领奖人数已达上限: actNum=%s,familyID=%s,ctgPlayers=%s,getAwardPlayerCount=%s >= %s" 
                           % (actNum, familyID, ctgPlayers, getAwardPlayerCount, maxMemberCnt), playerID)
        return
    if playerID in getAwardPlayerIDList:
        return
    getAwardPlayerIDList.append(playerID)
    getAwardPlayerIDDict[str(ctgPlayers)] = getAwardPlayerIDList
    
    getAwardPlayerCount += 1
    getAwardPlayerCountDict[str(ctgPlayers)] = getAwardPlayerCount
    
    SetFAActPlayerIDInfo(actionData, ctgPlayerIDList, getAwardPlayerCountDict)
    GameWorld.Log("仙盟充值互助领奖人数更新: actNum=%s,familyID=%s,ctgPlayers=%s,getAwardPlayerCount=%s, %s"
                  % (actNum, familyID, ctgPlayers, getAwardPlayerCount, getAwardPlayerCountDict), playerID)
    SetFAActPlayerIDInfo(actionData, ctgPlayerIDList, getAwardPlayerCountDict, getAwardPlayerIDDict)
    GameWorld.Log("仙盟充值互助领奖人数更新: actNum=%s,familyID=%s,ctgPlayers=%s,getAwardPlayerCount=%s,getAwardPlayerIDList=%s, %s"
                  % (actNum, familyID, ctgPlayers, getAwardPlayerCount, getAwardPlayerIDList, getAwardPlayerIDDict), playerID)
    
    PlayerFamilyAction.SendFamilyActionInfo(None, familyID, ActionType)
    return True