hxp
2018-11-13 97ffe45888670fa24be9356121b81610b0a610bf
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1196,11 +1196,9 @@
            #可以摆放
            if curItemCount > canPutinCount:
                #需要创建新物品放入
                curCreateItem = ItemCommon.CreateSingleItem(tagItem.GetItemTypeID())
                curCreateItem = GetOutPutItemObj(tagItem.GetItemTypeID(), canPutinCount, isBind)
                #注意: 不能在这里AssignItem, 否则会有2个物品指针指向同一个物品实例 . 巨大的错误在这一句 : curCreateItem.Assign(tagItem)
                SetItemCount(curCreateItem, canPutinCount)
                SetItemIsBind(curCreateItem, isBind)
                #此处不做装备拆解,如有需求外传for处理
                #如果是装备,那么 maxPackCount 为1 这里会循环自动创建新物品,所以直接 GetOutPutItemObj 即可, 暂不支持定制装备拆解
                
                item.AssignItem(curCreateItem)
                SetItemCount(tagItem, curItemCount - canPutinCount)
@@ -1739,31 +1737,58 @@
def __CmpRolePack(item1, item2):
    # 装备评分高  评分0  评分低,外层分列表
    # 颜色-星数 - 装备类型 - ID,内层比较 暂时不做时间判断
    if item1.GetItemColor() == item2.GetItemColor():
        if item1.GetItemQuality() == item2.GetItemQuality():
            itemType1 = item1.GetType()
            itemType2 = item2.GetType()
            if itemType1 == itemType2:
    #===========================================================================
    # # 颜色-星数 - 装备类型 - ID,内层比较 暂时不做时间判断
    #
    # if item1.GetItemColor() == item2.GetItemColor():
    #    if item1.GetItemQuality() == item2.GetItemQuality():
    #        itemType1 = item1.GetType()
    #        itemType2 = item2.GetType()
    #        if itemType1 == itemType2:
    #            return cmp(item1.GetItemTypeID(), item2.GetItemTypeID())
    #        else:
    #            #类型有定义配置顺序
    #            typeList = IpyGameDataPY.GetFuncEvalCfg("PackageSortPriority", 1)
    #            if itemType1 in typeList and itemType2 in typeList:
    #                return cmp(typeList.index(item1.GetType()), typeList.index(item2.GetType()))
    #            elif itemType1 in typeList:
    #                #排在前面
    #                return -1
    #            elif itemType2 in typeList:
    #                return 1
    #            else:
    #                return cmp(itemType1, itemType2)
    #    else:
    #        return cmp(0-item1.GetItemQuality(), 0-item2.GetItemQuality())
    # else:
    #    return cmp(0-item1.GetItemColor(), 0-item2.GetItemColor())
    #===========================================================================
    # 装备类型-颜色-星数 - ID,内层比较 暂时不做时间判断
    itemType1 = item1.GetType()
    itemType2 = item2.GetType()
    if itemType1 == itemType2:
        if item1.GetItemColor() == item2.GetItemColor():
            if item1.GetItemQuality() == item2.GetItemQuality():
                return cmp(item1.GetItemTypeID(), item2.GetItemTypeID())
            else:
                #类型有定义配置顺序
                typeList = IpyGameDataPY.GetFuncEvalCfg("PackageSortPriority", 1)
                if itemType1 in typeList and itemType2 in typeList:
                    return cmp(typeList.index(item1.GetType()), typeList.index(item2.GetType()))
                elif itemType1 in typeList:
                    #排在前面
                    return -1
                elif itemType2 in typeList:
                    return 1
                else:
                    return cmp(itemType1, itemType2)
                return cmp(0-item1.GetItemQuality(), 0-item2.GetItemQuality())
        else:
            return cmp(0-item1.GetItemQuality(), 0-item2.GetItemQuality())
            return cmp(0-item1.GetItemColor(), 0-item2.GetItemColor())
    else:
        return cmp(0-item1.GetItemColor(), 0-item2.GetItemColor())
        #类型有定义配置顺序
        typeList = IpyGameDataPY.GetFuncEvalCfg("PackageSortPriority", 1)
        if itemType1 in typeList and itemType2 in typeList:
            return cmp(typeList.index(item1.GetType()), typeList.index(item2.GetType()))
        elif itemType1 in typeList:
            #排在前面
            return -1
        elif itemType2 in typeList:
            return 1
        else:
            return cmp(itemType1, itemType2)
def __ResetItem_AddItemInList(curList, addItem):
    #把物品放到列表中, 要判断叠加