From 9a3d8668d39c6f201b1843ff24c2f5ed5659e63c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 10 七月 2024 11:35:18 +0800 Subject: [PATCH] 10205 【越南】【主干】【港台】【砍树】自选礼包(支持一次性放入超65535个数叠加物品;邮件同步支持一次性领取超65535个数叠加物品) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py | 55 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 30 insertions(+), 25 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py index cd8921a..b085424 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py @@ -145,33 +145,38 @@ 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) -- Gitblit v1.8.0