From 7122760c297dd8b9572f8944f773cfd5fbeae9ad Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 02 四月 2020 15:54:00 +0800
Subject: [PATCH] 4697 【主干】活跃修炼修为收益显示错误(修复活跃修炼经验计算错误bug)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py | 23 ++++++++++++++---------
1 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
index c994ea8..9143f68 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
@@ -760,11 +760,19 @@
expSeconds = IpyGameDataPY.GetFuncCfg("ActivityPlaceExp", 1) # 活跃放置获得经验多少秒一次
passTime = curTime - startTime
+ endCount = passTime / needSeconds
+ endCount = min(endCount, remainCount)
+
expCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityPlaceExpCount)
- canGetExpCount = passTime / expSeconds
- maxExpCount = needSeconds / expSeconds
- addExpCount = min(maxExpCount, canGetExpCount - expCount)
+ maxExpCount = needSeconds / expSeconds # 单次放置最多可获得经验次数
+ # 由于结算时重置了开启下次的时间及经验次数,所以如果有需要结算,则溢出时间不计,放置多算经验次数
+ if endCount >= 1:
+ maxExpCount *= endCount
+ canGetExpCount = min(maxExpCount, passTime / expSeconds)
+ addExpCount = canGetExpCount - expCount
if addExpCount > 0:
+ #GameWorld.DebugLog("活跃放置定时处理 : curTime=%s,startTime=%s,passTime=%s,endCount=%s,expCount=%s,canGetExpCount=%s,maxExpCount=%s,addExpCount=%s"
+ # % (curTime, startTime, passTime, endCount, expCount, canGetExpCount, maxExpCount, addExpCount))
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceExpCount, expCount + addExpCount)
lv = curPlayer.GetLV()
reExp = PlayerControl.GetPlayerReExp(curPlayer)
@@ -776,7 +784,7 @@
break
if not expLV:
expLV, expFormat = lvFormatList[-1]
- addExp = eval(FormulaControl.GetCompileFormula("ActivityPlaceExp_%s" % expLV, expFormat)) * expSeconds
+ addExp = eval(FormulaControl.GetCompileFormula("ActivityPlaceExp_%s" % expLV, expFormat)) * expSeconds * addExpCount
playerControl = PlayerControl.PlayerControl(curPlayer)
addExp = playerControl.AddExp(addExp, ShareDefine.Def_ViewExpType_Activity)
@@ -789,11 +797,8 @@
#GameWorld.DebugLog("passTime=%s,canGetExpCount=%s,expCount=%s,addExpCount=%s,addExp=%s,todayTotalExp=%s"
# % (passTime, canGetExpCount, expCount, addExpCount, addExp, todayTotalExp))
- if passTime < needSeconds:
- #GameWorld.DebugLog("探索时间未到,不结算! curTime=%s,startTime=%s,passTime=%s < %s" % (curTime, startTime, passTime, needSeconds))
- return
- endCount = passTime / needSeconds
- __DoActivityPlaceRewardEnd(curPlayer, endCount)
+ if endCount > 0:
+ __DoActivityPlaceRewardEnd(curPlayer, endCount)
return
def __DoActivityPlaceRewardEnd(curPlayer, endCount, isQuick=False):
--
Gitblit v1.8.0