From 407f50108d49b9ef9868297749358f43f20f58e9 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 25 六月 2019 02:29:20 +0800 Subject: [PATCH] 860312 野外不额外加印记 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py | 86 ++++++++++++++++++++++++++++++++---------- 1 files changed, 65 insertions(+), 21 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..f07a4a5 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 ## 同步活跃度信息 @@ -405,7 +448,8 @@ dailyQuestData = IpyGameDataPY.GetIpyGameDataNotLog('DailyQuest', activityNum) unLimitCnt = dailyQuestData and not dailyQuestData.GetTotalActiveValue() funcID = dailyQuestData.GetUnLockFuncID() if dailyQuestData else 0 - if funcID and not GameFuncComm.GetFuncCanUse(curPlayer, funcID): + #封魔坛活跃不判断功能开启 特殊处理 + if funcID and dailyID != ShareDefine.DailyActionID_SealDemon and not GameFuncComm.GetFuncCanUse(curPlayer, funcID) : return updDayTimes = 0 -- Gitblit v1.8.0