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,6 +374,7 @@
            return
        curSingleItem.SetRemainHour(outTimeServerDay)
        
    isBind = not isAuctionItem
    if isBind:
        curSingleItem.SetIsBind(1)
        
@@ -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,65 @@
    ItemControler.Sync_VPackItem_Clear(curPlayer, packIndex, placeList)
    return
## 获取物品最高强化星级
## 获取物品最高强化等级
#  @param itemType: 物品类型
#  @return 最大星级,0为不可强化
def GetItemMaxStarLV(curItem):
def GetItemMaxPlusLV(curPlayer, equipPackindex, curItem):
    equipPlace = curItem.GetEquipPlace()
    plusMaxTypeDict = IpyGameDataPY.GetFuncEvalCfg("StrengthenLevelLimit", 1)
    if not plusMaxTypeDict:
        GameWorld.ErrLog("GetItemMaxStarLV没有强化类型映射表")
        GameWorld.ErrLog("GetItemMaxPlusLV没有强化类型映射表")
        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)
    if not ipyData:
        GameWorld.ErrLog("找不到装备强化等级上限表数据配置! rank = %s, %s" % (rank , curItem.GetItemQuality()))
        return
    equipStar = ChEquip.GetEquipPartStarByRank(curPlayer, equipPackindex, curItem)
    ipyData = IpyGameDataPY.GetIpyGameDataNotLog("ItemPlusMax", findType, equipStar)
    if ipyData:
        return ipyData.GetLevelMax()
    
    return ipyData.GetLevelMax()
    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('ItemPlusMax', {'Type':findType}, True, False)
    if not ipyDataList:
        return 0
    maxStar = ipyDataList[-1].GetStar()
    if equipStar > maxStar:
        return ipyDataList[-1].GetLevelMax()
    findMax = 0
    for ipyData in ipyDataList:
        if equipStar >= ipyData.GetStar():
            findMax = ipyData.GetLevelMax()
    return findMax
## 获取物品最高强化进化等级
#  @param itemType: 物品类型
#  @return 最大星级,0为不可强化
def GetItemMaxPlusEvolveLV(curPlayer, equipPackindex, curItem):
    packType = IPY_GameWorld.rptEquip
    curPlusLV = ChEquip.GetEquipPartPlusLVByRank(curPlayer, packType, equipPackindex, curItem)
    equipPlace = curItem.GetEquipPlace()
    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlusEvolve', {'EquipPlace':equipPlace}, True)
    if not ipyDataList:
        return 0
    maxEvolvelv = 0
    for ipyData in ipyDataList:
        if curPlusLV >= ipyData.GetNeedPlusLV():
            maxEvolvelv = ipyData.GetEvolveLV()
        else:
            break
    return maxEvolvelv
## 获取物品最高星数
#  @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 +1997,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()
## 每周可使用次数, 预留,暂不实现