hxp
2024-07-19 41420b93c4f8a9355f9f71d6b6b54969aa4a3ca6
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -2170,6 +2170,31 @@
            itemCount -= giveCount
    return isOK
def DoGiveItemLoop(curPlayer, itemID, itemCount, isAuctionItem, event=["", False, {}], packIndexList=[IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere],
                   jsonItemList=None, userDataList=None):
    ## 循环给物品,一般用于个数超过65535的,循环创建物品给
    # @warning: 该函数不对物品及背包空间等做验证,仅做循环给物品操作
    # @return: 给成功总数,0代表给失败了
    giveOKCount = 0
    for _ in range(itemCount/65535 + 1):
        if giveOKCount >= itemCount:
            break
        giveItem = GetOutPutItemObj(itemID, itemCount - giveOKCount, isAuctionItem, curPlayer=curPlayer)
        if not giveItem:
            return giveOKCount
        curCount = GetItemCount(giveItem)
        if type(jsonItemList) == list:
            jsonItemList.append(ItemCommon.GetJsonItem(giveItem))
        if type(userDataList) == list:
            userDataList.append(giveItem.GetUserData())
        if DoLogic_PutItemInPack(curPlayer, giveItem, event, packIndexList):
            giveOKCount += curCount
    return giveOKCount
#---------------------------------------------------------------------
## 执行物品放入背包逻辑
#  @param curPlayer 背包拥有者