From fcd85d03baffd8246e5f8202f2dbda8bfe12cff8 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 15 三月 2019 14:38:32 +0800
Subject: [PATCH] 6307 【后端】【2.0】多套装备开发单(提示修改)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py | 87 +++++++++++++++++++++++++++----------------
1 files changed, 54 insertions(+), 33 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
index 31ad3a8..997069e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -334,12 +334,14 @@
GameWorld.DebugLog("物品过期时间" + timeStr)
return GameWorld.ChangeTimeStrToNum(timeStr)
-
-## 创建物品
-# @param itemID 物品ID
-# @return curSingleItem
-# @remarks 函数详细说明.
-def CreateSingleItem(itemID, itemCount=1, isBind=1, expireTime=0):
+def CreateSingleItem(itemID, itemCount=1, isAuctionItem=False, expireTime=0):
+ ''' 创建物品
+ @param isAuctionItem: 是否拍品,默认非拍品
+ @param expireTime: 有效时间,时间单位由时效类型决定
+ '''
+ if itemCount < 1:
+ GameWorld.ErrLog("创建物品个数不能少于1! itemID=%s,itemCount=%s" % (itemID, itemCount))
+ return
curSingleItem = GameWorld.GetItemFactory().CreateItem(itemID)
if not curSingleItem:
return
@@ -372,7 +374,8 @@
return
curSingleItem.SetRemainHour(outTimeServerDay)
- if isBind:
+ if isAuctionItem:
+ curSingleItem.SetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime, int(time.time()))
curSingleItem.SetIsBind(1)
ItemControler.SetItemCount(curSingleItem, itemCount)
@@ -821,9 +824,8 @@
userData = curItem.GetUserData()
notifyList[4] = userData if (userData and userData != "{}") else ""
notifyList[5] = place
- suiteInfo = PlayerViewCacheTube.__GetEquipPartSuiteInfo(curPlayer)
- notifyList[6] = "" if not suiteInfo else json.dumps(suiteInfo, ensure_ascii=False)
- notifyList[7] = ChEquip.GetEquipPartStarLV(curPlayer, IPY_GameWorld.rptEquip, place)
+ notifyList[6] = ""
+ notifyList[7] = ChEquip.GetEquipPartPlusLV(curPlayer, IPY_GameWorld.rptEquip, place)
# 单部位洗练信息
washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % place) + 1
@@ -1919,32 +1921,43 @@
ItemControler.Sync_VPackItem_Clear(curPlayer, packIndex, placeList)
return
-## 获取物品最高强化星级
+## 获取物品最高强化等级
# @param itemType: 物品类型
# @return 最大星级,0为不可强化
-def GetItemMaxStarLV(curItem):
- equipPlace = curItem.GetEquipPlace()
- plusMaxTypeDict = IpyGameDataPY.GetFuncEvalCfg("StrengthenLevelLimit", 1)
- if not plusMaxTypeDict:
- GameWorld.ErrLog("GetItemMaxStarLV没有强化类型映射表")
+def GetItemMaxPlusLV(curPlayer, equipPackindex, curItem):
+ findType = ChEquip.GetEquipPlusType(curItem)
+ if not findType:
return 0
-
- if equipPlace not in plusMaxTypeDict:
- return 0
- findType = plusMaxTypeDict[equipPlace]
- #仙器特殊取固定值
- if equipPlace in [ShareDefine.retFairyCan, ShareDefine.retFairyCan2]:
- rank = 0
- itemColor = 0
- else:
- rank = GetItemClassLV(curItem)
- itemColor = curItem.GetItemColor()
- ipyData = IpyGameDataPY.GetIpyGameData("ItemPlusMax", findType, rank, itemColor)
+ equipStar = ChEquip.GetEquipPartStarByRank(curPlayer, equipPackindex, curItem)
+ ipyData = IpyGameDataPY.InterpolationSearch('ItemPlusMax', 'Star', equipStar, {'Type':findType})
if not ipyData:
- GameWorld.ErrLog("找不到装备强化等级上限表数据配置! rank = %s, %s" % (rank , curItem.GetItemQuality()))
- return
-
+ return 0
return ipyData.GetLevelMax()
+
+
+## 获取物品最高强化进化等级
+# @param itemType: 物品类型
+# @return 最大星级,0为不可强化
+def GetItemMaxPlusEvolveLV(curPlayer, equipPackindex, curItem):
+ packType = IPY_GameWorld.rptEquip
+ curPlusLV = ChEquip.GetEquipPartPlusLVByRank(curPlayer, packType, equipPackindex, curItem)
+ equipPlace = curItem.GetEquipPlace()
+ ipyData = IpyGameDataPY.InterpolationSearch('EquipPlusEvolve', 'NeedPlusLV', curPlusLV, {'EquipPlace':equipPlace})
+ if not ipyData:
+ return 0
+ return ipyData.GetEvolveLV()
+
+
+## 获取物品最高星数
+# @param itemType: 物品类型
+# @return 最大星级,0为不可强化
+def GetItemMaxStar(curItem):
+ itemColor = curItem.GetItemColor()
+ maxStarDict = IpyGameDataPY.GetFuncEvalCfg('EquipPartStar', 1)
+ if str(itemColor) not in maxStarDict:
+ return 0
+ classLV = GetItemClassLV(curItem)
+ return maxStarDict[str(itemColor)].get(str(classLV), 0)
## 获取物品阶级
def GetItemClassLV(curItem):
@@ -1962,6 +1975,13 @@
def SetEquipGearScore(curItem, value):
return curItem.SetGearScore(value)
+def GetEquipPackIndex(curItem):
+ ## 根据物品获取对应的可装备背包位置
+ ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', GetItemClassLV(curItem), curItem.GetEquipPlace())
+ if not ipyData:
+ return -1
+ return ipyData.GetGridIndex()
+
## 每日可使用次数
def GetCanUseCountDaily(curItem): return curItem.GetMaxAddSkillCnt()
## 每周可使用次数, 预留,暂不实现
@@ -1978,7 +1998,8 @@
addItemDict = {}
addItemDict['ItemID'] = curItem.GetItemTypeID()
addItemDict['Count'] = curItem.GetCount()
- addItemDict['IsBind'] = int(curItem.GetIsBind())
+ addItemDict['IsAuctionItem'] = curItem.GetIsBind()
+ #addItemDict['IsBind'] = int(curItem.GetIsBind())
#addItemDict['EquipGS'] = GetEquipGearScore(curItem)
#addItemDict['ItemStarLV'] = curItem.GetItemStarLV()
#addItemDict['CurDurg'] = GameWorld.GetIntUpper(curItem.GetCurDurg(), ChConfig.Def_EndureRepairParameter)
@@ -2002,7 +2023,7 @@
#addItemDict['EquipMaxAtkValue'] = curItem.GetEquipMaxAtkValue()
#addItemDict['FitLV'] = curItem.GetFitLV()
#addItemDict['Proficiency'] = curItem.GetProficiency()
- addItemDict['IsSuite'] = int(curItem.GetIsSuite())
+ #addItemDict['IsSuite'] = int(curItem.GetIsSuite())
#addItemDict['BaseHP'] = curItem.GetBaseHP()
#addItemDict['BaseMagicDef'] = curItem.GetBaseMagicDef()
#addItemDict['MaxAddSkillCnt'] = curItem.GetMaxAddSkillCnt()
--
Gitblit v1.8.0