| | |
| | | GivePlayerItem(curPlayer, itemID, itemCnt, isAuctionItem, [IPY_GameWorld.rptItem], event=event)
|
| | | return
|
| | |
|
| | | def RecycleItem(curPlayer, itemID, notifyMailKey):
|
| | | ## 回收物品,一般用于相关活动结束后回收活动道具
|
| | | if not itemID:
|
| | | return
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | |
| | | recycleCount = 0 # 回收总数
|
| | | moneyItemID, moneyCount = None, None
|
| | | |
| | | # 背包、仓库
|
| | | for packType in [IPY_GameWorld.rptItem, IPY_GameWorld.rptWarehouse]:
|
| | | backPack = curPlayer.GetItemManager().GetPack(packType)
|
| | | for i in range(backPack.GetCount())[::-1]: # 会删除,倒序遍历
|
| | | curItem = backPack.GetAt(i)
|
| | | if not curItem or curItem.IsEmpty():
|
| | | continue
|
| | | if curItem.GetItemTypeID() != itemID:
|
| | | continue
|
| | | itemCount = GetItemCount(curItem)
|
| | | equipNoteDict = ItemCommon.GetItemNoteDict(curItem, itemCount)
|
| | | ItemCommon.DR_DelItem(curPlayer, packType, "RecycleItem", equipNoteDict)
|
| | | |
| | | recycleCount += itemCount
|
| | | if moneyItemID == None:
|
| | | moneyItemID, moneyCount = 0, 0
|
| | | for i in range(curItem.GetEffectCount()):
|
| | | effect = curItem.GetEffectByIndex(i)
|
| | | if effect.GetEffectID() != ChConfig.Def_Effect_RecycleItemMoney:
|
| | | continue
|
| | | moneyItemID = effect.GetEffectValue(0)
|
| | | moneyCount = effect.GetEffectValue(1)
|
| | | break
|
| | | |
| | | curItem.Clear()
|
| | | |
| | | if not recycleCount:
|
| | | return
|
| | | |
| | | addItemList = []
|
| | | if moneyItemID and moneyCount:
|
| | | moneyItemData = GameWorld.GetGameData().GetItemByTypeID(moneyItemID)
|
| | | if moneyItemData:
|
| | | addItemList.append([moneyItemID, moneyCount * recycleCount, 0])
|
| | | |
| | | if notifyMailKey:
|
| | | paramList = [itemID, itemID, recycleCount]
|
| | | PlayerControl.SendMailByKey(notifyMailKey, [playerID], addItemList, paramList)
|
| | | elif addItemList:
|
| | | GivePlayerItemOrMail(curPlayer, addItemList, event=["RecycleItem", False, {"RecycleItemID":itemID}])
|
| | | |
| | | return
|
| | |
|
| | |
|