From a3298b238480ffc7f8e4d5a95df10c2702ca8921 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 18 七月 2019 14:54:22 +0800
Subject: [PATCH] 1 累计充值活动奖励物品配置格式支持不配置是否拍品

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py |   92 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 75 insertions(+), 17 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 8148b50..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,23 +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)
-        #realmPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_RealmPoint)
-        #__SetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_RealmPoint, realmPoint+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  #倍数、额外可获得修行点上限
@@ -268,6 +305,26 @@
         return multiple, extraPointLimit
     return actRealmPointIpyData.GetMultiple(), actRealmPointIpyData.GetPointLimit()
 
+def AddCanCostActivityPoint(curPlayer, addValue, isLVUp):
+    # 增加可消耗的活跃点
+    curPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint)
+    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, isOnlyCheck=False):
+    # 消耗活跃点
+    curPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint)
+    if curPoint < costPoint:
+        return
+    if not isOnlyCheck:
+        __SetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint,
+                        curPoint - costPoint)
+        SyncDailyActivityInfo(curPlayer)
+    return True
 
 ## 同步活跃度信息
 #  @param curPlayer
@@ -279,7 +336,7 @@
     sendPack.CurValue = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_TotalPoint)
     sendPack.StageIndex = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_AwardStage)
     sendPack.AwardRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityAwardRecord)
-    sendPack.RealmPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_RealmPoint)
+    sendPack.RealmPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_ActivityCanCostTotalPoint)
     sendPack.ExtraPoint = __GetPDictValue(curPlayer, ChConfig.Def_PDict_Activity_ExtraRealmPoint)
     NetPackCommon.SendFakePack(curPlayer, sendPack)
     return
@@ -391,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