From 0372782c3355ac79c7c54ac88b9b21b219daf173 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 11 四月 2025 15:32:40 +0800 Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(优化仙盟充值协助支持配置关联的充值ID列表即商城类型;充值协助支持记录领取的成员明细;攻城战结束支持回收相关道具;) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActFamilyCTGAssist.py | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActFamilyCTGAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActFamilyCTGAssist.py index 28d8113..f1124df 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActFamilyCTGAssist.py +++ b/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 -- Gitblit v1.8.0