From 1bc4623d268c4ef18a437c71f8be663a9d044a12 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 20 五月 2025 11:16:59 +0800 Subject: [PATCH] 16 卡牌服务端(优化邮件物品,Mail命令支持发送全服邮件;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBMail.py | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBMail.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBMail.py index 5a65c35..561d085 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBMail.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBMail.py @@ -156,7 +156,7 @@ itemRankList.append(key) itemDict[key] = itemDict[key] + itemCount - mailItemCount = 0 + giveItemList = [] for itemInfo in itemRankList: if len(itemInfo) == 4: itemID, itemCount, isBind, userData = itemInfo @@ -164,7 +164,14 @@ userData = "" itemID, isBind = itemInfo itemCount = itemDict.get(itemInfo, 0) - + giveItemList.append([itemID, itemCount, isBind, userData]) + + Max_MailItem = 20 + if len(giveItemList) > Max_MailItem: + GameWorld.SendGameErrorEx("MailItemMultiError", "%s|%s|%s|%s" % (guid, len(giveItemList), itemList, giveItemList)) + #giveItemList = giveItemList[:Max_MailItem] 暂时还是让发,先做下后台邮件警告即可 + + for itemID, itemCount, isBind, userData in giveItemList: dbData = DBStruct.tagDBMailItem() dbData.GUID = guid dbData.ItemID = itemID @@ -173,12 +180,6 @@ dbData.UserData = userData dbData.UserDataLen = len(dbData.UserData) self.__InitMailItemInstance(dbData) - - mailItemCount += 1 - if mailItemCount >= 20: - #防范某些异常情况,内置单封邮件物品上限,做下限制,并做后台邮件警告 - GameWorld.SendGameErrorEx("MailItemMultiError", "%s|%s" % (guid, itemList)) - break return @@ -402,7 +403,7 @@ for _ in xrange(cnt): dbData.clear() pos += dbData.readData(datas, pos, dataslen) - self.SetServerMailPlayerState(dbData.GUID, dbData.PlayerID, dbData.MailState) + self.SetPlayerMailState(dbData.GUID, dbData.PlayerID, dbData.MailState) # 个人邮件 cnt, pos = CommFunc.ReadDWORD(datas, pos) -- Gitblit v1.8.0