From aeaea61638d86f166c24a8826df4b6be83ade16b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 24 二月 2025 17:18:49 +0800 Subject: [PATCH] 10407 【越南】【英语】【BT】【GM】【砍树】周末BUG汇总(模块战力支持超20亿;开服活动榜同步修改支持超20亿;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py | 29 ++++++++++++++++++++++------- 1 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py index 0b7b80c..a0e2da1 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py @@ -35,7 +35,7 @@ def DoBillboardOpen(curPlayer): for campaignType, billBoardType in ShareDefine.Def_Campaign_Billboard_Dict.items(): - value = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % campaignType) + value = GetOSCRecordData(curPlayer, campaignType) GameWorld.DebugLog("排行榜开启,同步开服活动记录!campaignType=%s,billBoardType=%s,value=%s" % (campaignType, billBoardType, value)) if CanUpdOSCBillboard(curPlayer, campaignType, value): PlayerBillboard.UpdatePlayerBillboard(curPlayer, billBoardType, value) @@ -64,9 +64,20 @@ def CanUpdOSCBillboard(curPlayer, campaignType, curValue): return __CanUpdOSCRecordData(campaignType, curValue) def IsNeedSaveOpenServerCampaignRecordData(campaignType): return __CanUpdOSCRecordData(campaignType) +def GetOSCRecordData(curPlayer, campaignType): + return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % campaignType) + \ + curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordDataEx % campaignType) * ChConfig.Def_PerPointValue + +def SetOSCRecordData(curPlayer, campaignType, updRecordData): + recordData = updRecordData % ChConfig.Def_PerPointValue + recordDataEx = updRecordData / ChConfig.Def_PerPointValue + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSC_RecordData % campaignType, recordData) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSC_RecordDataEx % campaignType, recordDataEx) + return GetOSCRecordData(curPlayer, campaignType) + def AddOpenServerCampaignRecordData(curPlayer, campaignType, addValue): ## 增加开服活动数据记录(外调函数) - recordData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % campaignType) + recordData = GetOSCRecordData(curPlayer, campaignType) recordData += addValue UpdOpenServerCampaignRecordData(curPlayer, campaignType, recordData) @@ -78,7 +89,7 @@ #GameWorld.DebugLog(" 非开服活动记录数据时机, campaignType=%s" % campaignType) return - recordData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % campaignType) + recordData = GetOSCRecordData(curPlayer, campaignType) if value == recordData: GameWorld.DebugLog(" 开服活动数据等于历史记录, 不更新 campaignType=%s,recordData=%s,updValue=%s" @@ -92,18 +103,21 @@ return # 更新开服活动时的记录数值 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSC_RecordData % campaignType, value) + value = SetOSCRecordData(curPlayer, campaignType, value) Sync_OpenServerCampaignAward(curPlayer, campaignType) GameWorld.DebugLog(" 更新开服活动数据记录 campaignType=%s,recordData=%s,updValue=%s" % (campaignType, recordData, value), curPlayer.GetPlayerID()) canUpdOSCBill = CanUpdOSCBillboard(curPlayer, campaignType, value) if campaignType in ShareDefine.Def_Campaign_Billboard_Dict and (value <= recordData or canUpdOSCBill): + cmpValue = value / ChConfig.Def_PerPointValue + cmpValue2 = value % ChConfig.Def_PerPointValue if not canUpdOSCBill: - value = -1 + cmpValue = -1 + cmpValue2 = 0 GameWorld.DebugLog(" 不能上榜降数据的,设置该榜单数据为-1,删除该数据!", curPlayer.GetPlayerID()) billBoardType = ShareDefine.Def_Campaign_Billboard_Dict[campaignType] - PlayerBillboard.UpdatePlayerBillboard(curPlayer, billBoardType, value) + PlayerBillboard.UpdatePlayerBillboard(curPlayer, billBoardType, cmpValue, cmpValue2) return ##================================================================================================== @@ -230,7 +244,7 @@ return condition = tagAwardIpyData.GetTagCondition() - recordData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % campaignType) + recordData = GetOSCRecordData(curPlayer, campaignType) if recordData < condition: GameWorld.DebugLog(" 未达到该开服活动目标条件奖励!campaignType=%s,index=%s,recordData=%s < condition=%s" % (campaignType, index, recordData, condition), curPlayer.GetPlayerID()) @@ -356,6 +370,7 @@ oscAward.BillAwardRecord = 1 if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_BillAwardRecord) & pow(2, syncOSCType) else 0 oscAward.TagAwardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_TagAwardRecord % syncOSCType) oscAward.RecordData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % syncOSCType) + oscAward.RecordDataEx = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordDataEx % syncOSCType) oscAwardListPack.OSCAwardList.append(oscAward) oscAwardListPack.OSCAwardCnt = len(oscAwardListPack.OSCAwardList) -- Gitblit v1.8.0