xdh
2018-12-07 23772c7a582ffd920706330d52b8603e9859ef4c
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -33,6 +33,7 @@
import Operate_EquipStone
import Operate_EquipSuitCompose
import IpyGameDataPY
import DataRecordPack
import EventShell
import math
@@ -878,9 +879,10 @@
                return -1
        curPlayer = self.__Player
        #equipPack = self.__PlayerEquip
        #equipItem = equipPack.GetAt(packEquipIndex)
        equipPack = self.__PlayerEquip
        equipItem = equipPack.GetAt(packEquipIndex)
        desItemID, desUserData = [0, ''] if equipItem.IsEmpty() else [equipItem.GetItemTypeID(), equipItem.GetUserData()]
        srcItemID, srcUserData = curItem.GetItemTypeID(), curItem.GetUserData()
        # 装备绑定处理 在 DoLogic_ItemBindType函数有处理,此处注释掉
#        if not curItem.GetIsBind():
#            SetItemIsBind(curItem, True)
@@ -896,6 +898,9 @@
            #套装降级处理
            Operate_EquipSuitCompose.CheckEquipSuitReduce(curPlayer, packEquipIndex)
            EventShell.EventRespons_EquipStar(curPlayer)
            dataDict = {'dotype':'EquipItem', 'desItemID':desItemID, 'desUserData':desUserData,'srcItemID':srcItemID,'srcUserData':srcUserData}
            DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_EquipChange, dataDict)
        self.RefreshStartEquipCount()
        return packEquipIndex if result else -1
    
@@ -955,7 +960,7 @@
            return
        
        equipID = curEquip.GetItemTypeID()
        userData = curEquip.GetUserData()
        #该物品锁定不执行==============================================
        if curEquip.GetIsLocked():
            PlayerControl.NotifyCode(curPlayer, "RescannotEquip")
@@ -993,6 +998,8 @@
        #套装降级处理
        Operate_EquipSuitCompose.CheckEquipSuitReduce(curPlayer, equipIndex)
        EventShell.EventRespons_EquipStar(curPlayer)
        dataDict = {'dotype':'UnEquipItem', 'equipID':equipID, 'userData':userData}
        DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_EquipChange, dataDict)
#===============================================================================
#        #destItemPlace = 卸下物品的位置        
#        destItemPlace = curPack.GetAt(packIndex)
@@ -1737,31 +1744,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):
    #把物品放到列表中, 要判断叠加