From d9f13c5e9a02f31cad2f58357acd3140809e88c1 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 11 九月 2018 19:57:27 +0800
Subject: [PATCH] fix:3477【后端】【1.0.15】【1.1.0】娲皇遗迹新增Vip特权:副本购买次数
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py | 65 +++++++++++++++++++++++---------
1 files changed, 46 insertions(+), 19 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py
index 8e6639b..3f9c581 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py
@@ -328,24 +328,26 @@
% (equipIndex, curEquip.GetItemTypeID()), playerID)
return
+ equipColor = curEquip.GetItemColor()
+ colorPlusMaxLVDict = IpyGameDataPY.GetFuncEvalCfg("DogzAssist", 4) # {颜色:等级上限, ...}
+ if equipColor not in colorPlusMaxLVDict:
+ return
+ maxPlusLV = colorPlusMaxLVDict[equipColor]
+
equipPlace = curEquip.GetEquipPlace()
curPlusLV = curEquip.GetUserAttrByIndex(ShareDefine.Def_IudetDogzEquipPlus, 0)
curPlusExpTotal = curEquip.GetUserAttrByIndex(ShareDefine.Def_IudetDogzEquipPlus, 1)
+ if curPlusLV >= maxPlusLV:
+ GameWorld.Log("神兽装备已满级, 无法强化!equipColor=%s,curPlusLV=%s,maxPlusLV=%s" % (equipColor, curPlusLV, maxPlusLV), playerID)
+ return
ipyData = IpyGameDataPY.GetIpyGameData("DogzEquipPlus", equipPlace, curPlusLV)
if not ipyData:
return
- curLVUPTotalExp = ipyData.GetPlusLVUPTotalExp()
- if not curLVUPTotalExp:
+ lvUPTotalExp = ipyData.GetPlusLVUPTotalExp()
+ if not lvUPTotalExp:
GameWorld.Log("神兽装备升级所需总经验为0, 无法强化!equipPlace=%s,curPlusLV=%s" % (equipPlace, curPlusLV), playerID)
return
-
- nextLVIpyData = None
- if curPlusExpTotal >= curLVUPTotalExp:
- nextLVIpyData = IpyGameDataPY.GetIpyGameDataNotLog("DogzEquipPlus", equipPlace, curPlusLV + 1)
- if not nextLVIpyData:
- GameWorld.Log("神兽装备已满级, 无法强化!equipPlace=%s,curPlusLV=%s" % (equipPlace, curPlusLV), playerID)
- return
costGoldTotal = 0
addExpTotal = 0
@@ -400,16 +402,19 @@
ItemCommon.DelItem(curPlayer, delItem, curItem.GetCount(), False, ChConfig.ItemDel_DogzEquipPlus, infoDict)
updPlusLV = curPlusLV
- if updPlusExpTotal >= curLVUPTotalExp:
- doCount = 0
- while nextLVIpyData and updPlusExpTotal >= nextLVIpyData.GetPlusLVUPTotalExp() and doCount < 100:
- doCount += 1
- nextLV = updPlusLV + 1
- nextLVIpyData = IpyGameDataPY.GetIpyGameDataNotLog("DogzEquipPlus", equipPlace, nextLV)
- if not nextLVIpyData:
- break
- updPlusLV = nextLV
-
+ doCount, maxDoCount = 0, maxPlusLV * 2
+ while updPlusExpTotal >= lvUPTotalExp and updPlusLV < maxPlusLV and doCount < maxDoCount:
+ doCount += 1
+ nextLV = updPlusLV + 1
+ nextLVIpyData = IpyGameDataPY.GetIpyGameDataNotLog("DogzEquipPlus", equipPlace, nextLV)
+ if not nextLVIpyData:
+ GameWorld.DebugLog(" 没有下一级数据,不能升级!nextLV=%s" % (nextLV), playerID)
+ break
+ updPlusLV = nextLV
+ lvUPTotalExp = nextLVIpyData.GetPlusLVUPTotalExp()
+ GameWorld.DebugLog(" 升级: equipPlace=%s,maxPlusLV=%s,updPlusLV=%s,updPlusExpTotal=%s,lvUPTotalExp=%s"
+ % (equipPlace, maxPlusLV, updPlusLV, updPlusExpTotal, lvUPTotalExp), playerID)
+
isRefreshAtrr = False
# 未强化过
if not curPlusExpTotal:
@@ -430,6 +435,28 @@
return
+def GetDogzEquipPlusLVExpInfo(equipColor, equipPlace, totalExp):
+ ## 获取当前神兽装备最高强化等级的强化熟练度
+ retLV, retExp = 0, 0
+ colorPlusMaxLVDict = IpyGameDataPY.GetFuncEvalCfg("DogzAssist", 4) # {颜色:等级上限, ...}
+ if equipColor not in colorPlusMaxLVDict:
+ return retLV, retExp
+ maxPlusLV = colorPlusMaxLVDict[equipColor]
+ for lv in xrange(maxPlusLV + 1):
+ ipyData = IpyGameDataPY.GetIpyGameDataNotLog("DogzEquipPlus", equipPlace, lv)
+ if lv and not ipyData:
+ break
+
+ lvUPTotalExp = ipyData.GetPlusLVUPTotalExp()
+ if not lvUPTotalExp:
+ break
+
+ if totalExp < lvUPTotalExp:
+ return lv, totalExp
+ retLV, retExp = lv, lvUPTotalExp
+
+ return retLV, retExp
+
def RefreshDogzAttr(curPlayer):
## 刷新神兽属性
--
Gitblit v1.8.0