| | |
| | | for i in xrange(curPackData.Count):
|
| | | curPackItem = curPackData.Items[i]
|
| | | itemID = curPackItem.ItemID
|
| | | itemCount = curPackItem.Count
|
| | | isAuctionItem = curPackItem.IsBind and not auctionItemTimeout
|
| | | if ItemControler.GetAppointItemRealID(itemID):
|
| | | curCreateItem = ItemControler.GetItemByData(ItemControler.GetAppointItemDictData(itemID, isAuctionItem))
|
| | | else:
|
| | | curCreateItem = ItemCommon.CreateSingleItem(itemID, curPackItem.Count, isAuctionItem)
|
| | | if not curCreateItem:
|
| | | GameWorld.ErrLog("OnGMRequestCompensationResult CreateSingleItem %s Err "%itemID)
|
| | | continue
|
| | | |
| | | ##UserData包含了追加属性不完整,这里需要补齐
|
| | | userDataCreateTime = 0
|
| | | if curPackItem.UserDataLen: |
| | | UserDataDict = eval(curPackItem.UserData)
|
| | | ItemCommon.SetItemUserData(curCreateItem, UserDataDict)
|
| | | userDataCreateTime = curCreateItem.GetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime)
|
| | | for _ in range(itemCount/65535+1):
|
| | | if itemCount <= 0:
|
| | | break
|
| | | if ItemControler.GetAppointItemRealID(itemID):
|
| | | curCreateItem = ItemControler.GetItemByData(ItemControler.GetAppointItemDictData(itemID, isAuctionItem))
|
| | | else:
|
| | | curCreateItem = ItemCommon.CreateSingleItem(itemID, itemCount, isAuctionItem)
|
| | | if not curCreateItem:
|
| | | GameWorld.ErrLog("OnGMRequestCompensationResult CreateSingleItem %s Err "%itemID)
|
| | | continue
|
| | | giveCount = ItemControler.GetItemCount(curCreateItem)
|
| | | itemCount -= giveCount
|
| | | ##UserData包含了追加属性不完整,这里需要补齐
|
| | | userDataCreateTime = 0
|
| | | if curPackItem.UserDataLen: |
| | | UserDataDict = eval(curPackItem.UserData)
|
| | | ItemCommon.SetItemUserData(curCreateItem, UserDataDict)
|
| | | userDataCreateTime = curCreateItem.GetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime)
|
| | | |
| | | if isAuctionItem and auctionItemCreateTime and not userDataCreateTime:
|
| | | curCreateItem.SetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime, auctionItemCreateTime)
|
| | | |
| | | ItemCommon.MakeEquipGS(curCreateItem)
|
| | |
|
| | | if isAuctionItem and auctionItemCreateTime and not userDataCreateTime:
|
| | | curCreateItem.SetUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime, auctionItemCreateTime)
|
| | | |
| | | ItemCommon.MakeEquipGS(curCreateItem)
|
| | | |
| | | if isPaimaiMail and ItemCommon.CheckItemIsEquip(curCreateItem):
|
| | | EventShell.EventRespons_BuyAuctionEquip(curPlayer, curCreateItem.GetItemColor())
|
| | | |
| | | #放入玩家背包
|
| | | ItemControler.PlayerItemControler(curPlayer).PutInItem(IPY_GameWorld.rptItem, curCreateItem, |
| | | event=[ChConfig.ItemGive_Mail, False, {"MailGUID":curPackData.GUID}])
|
| | | if isPaimaiMail and ItemCommon.CheckItemIsEquip(curCreateItem):
|
| | | EventShell.EventRespons_BuyAuctionEquip(curPlayer, curCreateItem.GetItemColor())
|
| | | |
| | | #放入玩家背包
|
| | | ItemControler.PlayerItemControler(curPlayer).PutInItem(IPY_GameWorld.rptItem, curCreateItem, |
| | | event=[ChConfig.ItemGive_Mail, False, {"MailGUID":curPackData.GUID}])
|
| | | moneySource = curPackData.MoneySource + ChConfig.Def_GiveMoney_Unknown # 存值时为byte类型,使用时需还原回来
|
| | | if curPackData.Gold != 0:
|
| | | PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, curPackData.Gold, moneySource)
|