9802 9762 【BT9】【后端】藏宝阁修改(背包计算转化物品占用格子数逻辑优化;开宝箱计算获得物品占用格子数逻辑优化;) 冲突
1个文件已修改
22 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1128,7 +1128,7 @@
        if itemEff.GetEffectID() == ChConfig.Def_Effect_GubaoPiece:
            gubaoID = itemEff.GetEffectValue(0)
            if gubaoID:
                PlayerGubao.AddGubaoPiece(curPlayer, gubaoID, tagItem.GetCount(), itemID)
                PlayerGubao.AddGubaoPiece(curPlayer, gubaoID, tagItemCount, itemID)
                tagItem.Clear()
                return True
        #直升VIP
@@ -1331,7 +1331,7 @@
            GameWorld.Log("找不到ItemID = %d" % curItemID)
            return False, 0 
        
        if curItemID in ChConfig.Def_TransformItemIDList or curItemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
        if IsPutinAutoTransformItem(curItemData):
            # 货币直接转换的物品如果是放入背包的则直接转化,无需暂用格子
            if packIndex == IPY_GameWorld.rptItem:
                return True, 0
@@ -2335,8 +2335,7 @@
#  @return None
def SetItemCount(item, cnt, playerID=0, accID=0, playerName=""):
    if not item.IsEmpty():
        itemID = item.GetItemTypeID()
        if cnt > 0 and itemID in ChConfig.Def_TransformItemIDList:
        if cnt > 0 and IsPutinAutoTransformItem(item):
            item.SetUserAttr(ShareDefine.Def_IudetItemCount, min(cnt, ChConfig.Def_UpperLimit_DWord))
        else:
            item.SetCount(min(cnt, 65535))
@@ -2349,7 +2348,7 @@
            raise
        
def GetItemCount(item):
    if item.GetItemTypeID() in ChConfig.Def_TransformItemIDList:
    if IsPutinAutoTransformItem(item):
        return item.GetUserAttr(ShareDefine.Def_IudetItemCount)
    return item.GetCount()
@@ -2358,7 +2357,7 @@
#    if isAuctionItem:
#        if IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemData.GetItemTypeID()):
#            return 1
    if itemData.GetItemTypeID() in ChConfig.Def_TransformItemIDList or itemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
    if IsPutinAutoTransformItem(itemData):
        # 货币直接转换的物品如果是放入背包的则不需要暂用格子,放入其他的背包的则按物品叠加上限算
        if packType == IPY_GameWorld.rptItem:
            return 0
@@ -2367,6 +2366,17 @@
        packCount = itemData.GetPackCount()
    return int(math.ceil(itemCount / float(packCount)))
def IsPutinAutoTransformItem(itemData):
    ## 放入背包时是否直接转化为对应数值的物品
    if itemData.GetItemTypeID() in ChConfig.Def_TransformItemIDList or itemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
        return True
    itemEff = itemData.GetEffectByIndex(0)
    if itemEff.GetEffectID() == ChConfig.Def_Effect_GubaoPiece:
        gubaoID = itemEff.GetEffectValue(0)
        if gubaoID:
            return True
    return False
## 双手武器,需要两只手才拿得动
#  @param curEquip
#  @return bool