6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(是否绑定改为是否拍品)
10个文件已修改
51 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/AddLegendAttr.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
@@ -77,7 +77,7 @@
    curItemData.ItemID = curItemDict['ItemID']
    curItemData.Count = curItemDict['Count']
    #curItemData.IsBind = curItemDict.get('IsBind',0)
    curItemData.IsBind = 1 if not curItemDict.get('IsAuctionItem',0) else 0
    curItemData.IsBind = curItemDict.get('IsAuctionItem',0)
    curItemData.UserData = curItemDict.get('UserData', '')
    return curItemData
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/AddLegendAttr.py
@@ -41,7 +41,7 @@
        GameWorld.DebugAnswer(curPlayer, "非装备无法获得传奇属性!")
        return
    
    if not curItem.GetIsBind():
    if curItem.GetIsBind():
        GameWorld.DebugAnswer(curPlayer, "拍品无法生成传奇属性!")
        return
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
@@ -601,7 +601,7 @@
                continue
            itemDict['ItemID'] = itemInfo.GetItemTypeID()
            itemDict['Count'] = itemInfo.GetCount()
            itemDict['IsAuctionItem'] = 0 if itemInfo.GetIsBind() else 1
            itemDict['IsAuctionItem'] = itemInfo.GetIsBind()
            #itemDict['IsSuite'] = int(itemInfo.GetIsSuite())
            itemDict['UserData'] = itemInfo.GetUserData()
        jsonItemList.append(itemDict)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -69,6 +69,10 @@
        return False
    playerItemControl = ItemControler.PlayerItemControler(curPlayer)
    
    if curItem.GetIsBind():
        GameWorld.DebugLog("拍品无法穿戴!")
        return False
    #---验证是否可以换这件装备---
    if not ItemCommon.CheckItemCanUse(curItem):
        return False
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
@@ -1531,7 +1531,7 @@
        return
    
    # 使用拍品
    if not curItem.GetIsBind():
    if curItem.GetIsBind():
        DoLogic_PlayerUseAuctionItem(curPlayer, curItem)
        return
    
@@ -1548,7 +1548,7 @@
    playerID = curPlayer.GetPlayerID()
    itemID = curItem.GetItemTypeID()
        
    curItem.SetIsBind(1) # 设置为非拍品
    curItem.SetIsBind(0) # 设置为非拍品
    curItem.ClearUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime)
    GameWorld.DebugLog("玩家使用拍品: itemID=%s" % (itemID), playerID)
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -320,7 +320,7 @@
#  @remarks 函数详细说明.
def CanPackItemByItemType(srcItemID, srcItemIsBind, destItemID, destItemIsBind):
    ## 拍品项目,只有非拍品可堆叠,即绑定物品
    if srcItemID == destItemID and srcItemIsBind == destItemIsBind and srcItemIsBind:
    if srcItemID == destItemID and srcItemIsBind == destItemIsBind and not srcItemIsBind:
        return True
    return False
@@ -1115,8 +1115,7 @@
        packIndex = ChConfig.GetItemPackType(curItemData.GetType(), packIndex)
        
        tagItemCount = GetItemCount(tagItem)
        isBind = tagItem.GetIsBind()
        isAuctionItem = not isBind
        isAuctionItem = tagItem.GetIsBind()
        if not self.CanPutInItem(packIndex, tagItem.GetItemTypeID(), tagItemCount, isAuctionItem, defaultPile):
            GameWorld.DebugLog("背包满,不能放入物品 count = %d"%GetItemCount(tagItem))
            tagItem.Clear()
@@ -1364,7 +1363,6 @@
            GameWorld.Log("找不到ItemID = %d" % curItemID)
            return False, 0 
        
        isBind = True
        if curItemID in ChConfig.Def_TransformItemIDList:
            # 货币直接转换的物品如果是放入背包的则直接转化,无需暂用格子
            if packIndex == IPY_GameWorld.rptItem:
@@ -1373,7 +1371,6 @@
        elif isAuctionItem:
            maxPackCount = curItemCount
            defaultPile = False # 新放入的拍品只能放空位置,所以不判断堆叠
            isBind = False
        else:
            maxPackCount = curItemData.GetPackCount()
            
@@ -1413,7 +1410,7 @@
                    if item.GetIsLocked():
                        continue
    
                    if (CanPackItemByItemType(item.GetItemTypeID(), item.GetIsBind(), curItemID, isBind) and
                    if (CanPackItemByItemType(item.GetItemTypeID(), item.GetIsBind(), curItemID, isAuctionItem) and
                        maxPackCount > GetItemCount(item)):
                        #该物品锁定不执行==============================================
                        #可堆叠
@@ -1546,7 +1543,7 @@
    #curItemGUID = curItem.GetGUID()
    curItemCount = curItem.GetCount()
    #curItemIsBind = curItem.GetIsBind()
    isAuctionItem = 0 if curItem.GetIsBind() else 1
    isAuctionItem = curItem.GetIsBind()
    #toPackIndex = ChConfig.GetItemPackType(curItem.GetType(), toPackIndex)
    
    # 常规物品转移到虚拟符印背包
@@ -2194,7 +2191,7 @@
    #tmpEquipData.starLV = int(itemData.get('StarLV', '0'))
    #tmpEquipData.holeCnt = int(itemData.get('HoleCount', '0'))
    #tmpEquipData.stoneData = eval(itemData.get('StoneData', '[]'))
    tmpEquipData.isBind = 1 if not isAuctionItem else 0
    tmpEquipData.isBind = isAuctionItem
    #tmpEquipData.isSuite = int(itemData.get('IsSuit', '0'))
    #tmpEquipData.suiteLV = int(itemData.get('SuiteLV', '0'))
    #if tmpEquipData.suiteLV:
@@ -2390,7 +2387,7 @@
    '''获取生成到装备上的传奇属性
    @return: None 或者 [[传奇属性效果ID列表], [属性值列表]]
    '''
    if not curItem.GetIsBind():
    if curItem.GetIsBind():
        #GameWorld.DebugLog("拍品无法生成传奇属性!")
        return
    itemID = curItem.GetItemTypeID()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -376,8 +376,7 @@
        
    if isAuctionItem:
        curSingleItem.SetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime, int(time.time()))
    else:
        curSingleItem.SetIsBind(1)
        curSingleItem.SetIsBind(1)
        
    ItemControler.SetItemCount(curSingleItem, itemCount)
    
@@ -2015,7 +2014,7 @@
    addItemDict = {}
    addItemDict['ItemID'] = curItem.GetItemTypeID()
    addItemDict['Count'] = curItem.GetCount()
    addItemDict['IsAuctionItem'] = 0 if curItem.GetIsBind() else 1
    addItemDict['IsAuctionItem'] = curItem.GetIsBind()
    #addItemDict['IsBind'] = int(curItem.GetIsBind())
    #addItemDict['EquipGS'] = GetEquipGearScore(curItem)
    #addItemDict['ItemStarLV'] = curItem.GetItemStarLV()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -5204,11 +5204,10 @@
        #self.__SetItemProtect(curMapItem, dropType, ownerID)
        return
    
    def __CreateDropItem(self, curNPC, itemID, count, isBind, dropPlayer):
    def __CreateDropItem(self, curNPC, itemID, count, isAuctionItem, dropPlayer):
        ## 创建掉落的物品
        if not isBind and not IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemID):
            isBind = 1
        isAuctionItem = not isBind
        if isAuctionItem and not IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemID):
            isAuctionItem = 0
        curItem = ItemControler.GetOutPutItemObj(itemID, count, isAuctionItem, curPlayer=dropPlayer)
        if not curItem:
            return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
@@ -43,7 +43,7 @@
    curItem = playerPack.GetAt(itemIndex)
    if curItem.IsEmpty():
        return
    if curItem.GetIsBind():
    if not curItem.GetIsBind():
        GameWorld.Log("非拍品,绑定无法上架!", playerID)
        return
    itemGUID = curItem.GetGUID()
@@ -128,7 +128,7 @@
    curItem = playerPack.GetAt(itemIndex)
    if curItem.IsEmpty():
        return
    if curItem.GetIsBind():
    if not curItem.GetIsBind():
        GameWorld.Log("非拍品,无法上架!", playerID)
        return
    curItemGUID = curItem.GetGUID()
@@ -185,7 +185,7 @@
        if curPlayer and not familyID:
            ItemCommon.DelItem(curPlayer, curItem, curItem.GetCount())
        else:
            if curItem.GetIsBind():
            if not curItem.GetIsBind():
                GameWorld.Log("非拍品,绑定无法上架!", playerID)
                curItem.Clear()
                continue
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py
@@ -82,7 +82,7 @@
        if not curItemData:
            continue
        
        isAuctionItem = not curPackItem.IsBind
        isAuctionItem = curPackItem.IsBind
        packType = ChConfig.GetItemPackType(curItemData.GetType())
        needSpace = ItemControler.GetItemNeedPackCount(packType, curItemData, curPackItem.Count, isAuctionItem)
        needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
@@ -137,7 +137,7 @@
    for i in xrange(curPackData.Count):
        curPackItem = curPackData.Items[i]
        itemID = curPackItem.ItemID
        isAuctionItem = not curPackItem.IsBind and not auctionItemTimeout
        isAuctionItem = curPackItem.IsBind and not auctionItemTimeout
        if ItemControler.GetAppointItemRealID(itemID):
            curCreateItem = ItemControler.GetItemByData(ItemControler.GetAppointItemDictData(itemID, isAuctionItem))
        else: