From c06d47322d2892a440dc11b94f06950da762e5bd Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 21 六月 2019 19:41:43 +0800
Subject: [PATCH] 7413 宗门试炼评级通知
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py | 83 +++++++++++++++++++++++++++++++----------
1 files changed, 63 insertions(+), 20 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 4342383..dbb2d4d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
@@ -29,6 +29,7 @@
import PyGameData
import GameFuncComm
import EventShell
+import PlayerPet
#关联类型
(
@@ -236,22 +237,59 @@
__SetPDictValue(curPlayer, key, addPbCnt)
#
- multiple = 1
- if addValue:
- multiple, extraPointLimit = __GetActionAddPer(curPlayer)
- curExtraPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_ExtraRealmPoint)
- addExtraPoint = max(0, min(addValue * (multiple - 1), extraPointLimit - curExtraPoint)) if extraPointLimit else addValue * (multiple - 1)
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_ExtraRealmPoint, curExtraPoint + addExtraPoint)
- addValue = addValue + addExtraPoint
- curTotalPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_TotalPoint)
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_TotalPoint, curTotalPoint + addValue)
- AddCanCostActivityPoint(curPlayer, addValue)
- SyncDailyActivityInfo(curPlayer)
-
- GameWorld.DebugLog("增加活跃度任务次数,activityNum=%s,addPbCnt=%s,addValue=%s, multiple=%s, addExtraPoint=%s,curExtraPoint=%s"
- % (activityNum, addPbCnt, addValue, multiple, addExtraPoint, curExtraPoint), curPlayer.GetPlayerID())
+ DoAddActivity(curPlayer, addValue, True)
return
+def DoAddActivityByLV(curPlayer, befLV, aftLV):
+ ##升级增加活跃点
+ perLVAddPoint = IpyGameDataPY.GetFuncCfg('ImmortalDomainActivePoint', 3)
+ skillTypeID, perAddLV, addPoint, maxPoint = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomainActivePoint', 4)
+ learnSkillList, passiveSkillList = PlayerPet.GetPetLearnSkill(curPlayer)
+ addValue = (aftLV-befLV)*perLVAddPoint
+ if skillTypeID in passiveSkillList:
+ for lv in xrange(befLV+1, aftLV+1):
+ addValue += min(((lv-1)/perAddLV+1) * addPoint, maxPoint)
+ DoAddActivity(curPlayer, addValue, False, True)
+ return
+
+def AddActivityByLVOnLearnSkill(curPlayer, skillID):
+ ## 获得技能时,处理增加升级获得活跃点效果
+ skillTypeID, perAddLV, addPoint, maxPoint = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomainActivePoint', 4)
+ if skillID != skillTypeID:
+ return
+ curLV = curPlayer.GetLV()
+ addValue = 0
+ for lv in xrange(2, curLV+1):
+ addValue += min(((lv-1)/perAddLV+1) * addPoint, maxPoint)
+ DoAddActivity(curPlayer, addValue, False, True)
+ return
+
+def DoAddActivity(curPlayer, addValue, isMultiple=False, isLVUp=False):
+ if not addValue:
+ return
+ multiple = 1
+ addExtraPoint = 0
+ if isMultiple:
+ multiple, extraPointLimit = __GetActionAddPer(curPlayer)
+ curExtraPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_ExtraRealmPoint)
+ addExtraPoint = max(0, min(addValue * (multiple - 1),
+ extraPointLimit - curExtraPoint)) if extraPointLimit else addValue * (multiple - 1)
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_ExtraRealmPoint, curExtraPoint + addExtraPoint)
+ addValue = addValue + addExtraPoint
+ curTotalPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_TotalPoint)
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_TotalPoint, curTotalPoint + addValue)
+ AddCanCostActivityPoint(curPlayer, addValue, isLVUp)
+ historyPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityHistoryPoint)
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityHistoryPoint,
+ min(ChConfig.Def_UpperLimit_DWord, historyPoint + addValue))
+
+ SyncDailyActivityInfo(curPlayer)
+ EventShell.EventRespons_AddActivityValue(curPlayer)
+ GameWorld.DebugLog(
+ "增加活跃度,addValue=%s, multiple=%s, addExtraPoint=%s"
+ % (addValue, multiple, addExtraPoint), curPlayer.GetPlayerID())
+
+ return
def __GetActionAddPer(curPlayer):
multiple, extraPointLimit = 1, 0 #倍数、额外可获得修行点上限
@@ -267,20 +305,25 @@
return multiple, extraPointLimit
return actRealmPointIpyData.GetMultiple(), actRealmPointIpyData.GetPointLimit()
-def AddCanCostActivityPoint(curPlayer, addValue):
+def AddCanCostActivityPoint(curPlayer, addValue, isLVUp):
# 增加可消耗的活跃点
curPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint)
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint, min(IpyGameDataPY.GetFuncCfg('ImmortalDomainActivePoint'), curPoint + addValue))
+ if isLVUp:
+ updPoint = min(ChConfig.Def_UpperLimit_DWord, curPoint + addValue)
+ else:
+ updPoint = min(IpyGameDataPY.GetFuncCfg('ImmortalDomainActivePoint'), curPoint + addValue)
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint, updPoint)
return
-def CostActivityPoint(curPlayer, costPoint):
+def CostActivityPoint(curPlayer, costPoint, isOnlyCheck=False):
# 消耗活跃点
curPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint)
if curPoint < costPoint:
return
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint,
- curPoint - costPoint)
- SyncDailyActivityInfo(curPlayer)
+ if not isOnlyCheck:
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint,
+ curPoint - costPoint)
+ SyncDailyActivityInfo(curPlayer)
return True
## 同步活跃度信息
--
Gitblit v1.8.0