From a0dd1dc92bb2f6eb7067a624df20a9c326ecde87 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 06 二月 2026 22:14:54 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(修改A619,A523封包结构;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py
index e9a083a..b773156 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py
@@ -15,6 +15,7 @@
#"""Version = 2025-05-14 12:00"""
#-------------------------------------------------------------------------------
+import CrossMsg
import GameWorld
import ItemCommon
import PlayerControl
@@ -110,14 +111,34 @@
Sync_PlayerMailState(curPlayer, notifyGUIDState)
return
-def SendMailByKey(mailTypeKey, playerID, itemList, paramList=[], limitDays=7):
+def SendMailByKey(mailTypeKey, playerID, itemList, paramList=[], limitDays=7, toServerID=0):
## 发送个人邮件魔板
# @param itemList: 元素支持字典{itemID:itemCount, ...} 或列表 [itemID, itemCount, 可选是否拍品, 物品UserData]
+ # @param toServerID: 向其他服玩家发送邮件时需指定玩家所在服务器
+ if toServerID > 0:
+ if not GameWorld.IsCrossServer():
+ GameWorld.ErrLog("非跨服服务器不能向其他服务器发送个人邮件! %s,playerID=%s" % (mailTypeKey, playerID))
+ return
+ dataMsg = {"mailTypeKey":mailTypeKey, "itemList":itemList, "paramList":paramList, "limitDays":limitDays}
+ mainServerID = GameWorld.GetMainServerID(toServerID)
+ CrossMsg.SendToClientServer(ShareDefine.C2S_SendPlayerMail, dataMsg, [mainServerID], playerID)
+ return
+
if not mailTypeKey:
mailTypeKey = ShareDefine.DefaultLackSpaceMailType
title = "<T>%s</T>" % mailTypeKey
text = "%s" % json.dumps([str(p) for p in paramList], ensure_ascii=False) #参数全部转为字符串
SendMail(playerID, title, text, itemList, limitDays)
+ return
+
+def C2S_SendPlayerMail(dataMsg, playerID):
+ mailTypeKey = dataMsg["mailTypeKey"]
+ itemList = dataMsg["itemList"]
+ paramList = dataMsg["paramList"]
+ limitDays = dataMsg["limitDays"]
+ if not GameWorld.GetDBPlayerAccIDByID(playerID):
+ return
+ SendMailByKey(mailTypeKey, playerID, itemList, paramList, limitDays)
return
def SendMail(playerID, title, text, itemList=None, limitDays=7, mailType=0):
@@ -199,7 +220,7 @@
mailObj.SetCheckState(checkState)
eventName = "Add" if not checkState else "AddToCheck"
addDict = {"LimitDays":limitDays, "LimitLV":limitLV, "LimitLVType":limitLVType, "CheckState":checkState,
- "title":title, "Text":text, "ItemList":itemList}
+ "Title":title, "Text":text, "ItemList":itemList}
DataRecordPack.DR_ServerMail(GUID, eventName, addDict)
if not checkState:
Sync_ServerMail(mailObj.GetGUID())
--
Gitblit v1.8.0