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