From b4d7b98ffa412398224044aa25b85f92118ede8e Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 16 五月 2024 18:43:39 +0800 Subject: [PATCH] 10156 副本功能玩法关联回合战斗表现(竞技场挑战券优化) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerArena.py | 50 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 35 insertions(+), 15 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerArena.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerArena.py index 4eb6e4d..26b6e0e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerArena.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerArena.py @@ -53,8 +53,6 @@ if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Arena): return - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaItemAddCount, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCountDay, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaMatchRefreshCount, 0) Sync_ArenaInfo(curPlayer) @@ -122,18 +120,41 @@ GameWorld.DebugLog("竞技场赛季重置! preSeasonscore=%s,setScore=%s" % (preSeasonscore, setScore)) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaScore, setScore) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaItemAddCount, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCountDay, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaMatchRefreshCount, 0) Sync_ArenaInfo(curPlayer, True) return -def CheckArenaBattleCount(curPlayer): - ## 验证是否还有对战次数 - todayBattleCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCountDay) - itemAddCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaItemAddCount) - dayFreeCount = IpyGameDataPY.GetFuncCfg("ArenaSet", 3) - return todayBattleCount < (dayFreeCount + itemAddCount) +def AddArenaBattleCount(curPlayer, addCount): + updCount = min(ChConfig.Def_UpperLimit_DWord, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount) + addCount) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCount, updCount) + Sync_ArenaInfo(curPlayer) + return + +def GetArenaBattleCount(curPlayer): + ## 获取当前可对战次数 + return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount) + +def GetArenaBattleCountMax(curPlayer): + ## 最大可累计挑战次数 + initMax = IpyGameDataPY.GetFuncCfg("ArenaSet", 3) # 初始最大次数 + + # 其他功能增加上限... + + maxCount = initMax + return maxCount + +def CheckCanGiveBattleCountItem(curPlayer, itemID): + ## 可否给加挑战次数道具 + itemData = GameWorld.GetGameData().GetItemByTypeID(itemID) + if not itemData: + return False + itemEff = itemData.GetEffectByIndex(0) + if itemEff.GetEffectID() != ChConfig.Def_Effect_AddArenaBattleCount: + GameWorld.DebugLog("非挑战券可给! itemID=%s" % itemID) + return True + canGive = GetArenaBattleCount(curPlayer) < GetArenaBattleCountMax(curPlayer) + GameWorld.DebugLog("可否给挑战券: canGive=%s" % canGive) + return canGive #// B2 09 竞技场匹配玩家 #tagCMArenaMatch # @@ -282,10 +303,10 @@ updOrder = retDict["updOrder"] # 扣次数 - todayBattleCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCountDay) + 1 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCountDay, todayBattleCount) + battleCount = max(0, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount) - 1) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCount, battleCount) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaMatchRefreshCount, 0) - + # 更新积分 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaScore, updScore) highestScore = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaHighestScore) @@ -362,9 +383,8 @@ clientPack = ChPyNetSendPack.tagMCArenaPlayerInfo() clientPack.IsReset = 1 if isReset else 0 clientPack.Score = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaScore) - clientPack.BattleCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCountDay) clientPack.MatchRefreshCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaMatchRefreshCount) - clientPack.ItemAddBattleCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaItemAddCount) + clientPack.BattleCount = min(255, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount)) NetPackCommon.SendFakePack(curPlayer, clientPack) return -- Gitblit v1.8.0