From 2f7cda24c3e8421ce4358f2fc2233ac02f0acf6e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 02 十二月 2024 18:51:46 +0800
Subject: [PATCH] 5559 [越南][英文][tqxbqy][砍树]优化启动检查配表格式(增加检查指定的字段格式dict、list)

---
 ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddPersonalCompensation.py |   49 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddPersonalCompensation.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddPersonalCompensation.py
index 9ee45eb..ddb4ada 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddPersonalCompensation.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddPersonalCompensation.py
@@ -29,6 +29,7 @@
 import GMCommon
 import uuid
 import ChConfig
+import ShareDefine
 #---------------------------------------------------------------------
 
 
@@ -49,12 +50,40 @@
 #  @return None
 #  @remarks 函数详细说明.
 def OnExec(orderId, gmCmdDict):
+    strMsg = ""
     gmCmdDict = ClearEmptyFromDict(gmCmdDict)
-    PlayerIDList = eval(gmCmdDict.get('PlayerIDList', '[]'))
+    GameWorld.DebugLog("GMT_AddPersonalCompensation gmCmdDict:%s" % gmCmdDict)
+    queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '')
+    if queryType == GMCommon.Def_GMKey_FamilyID:
+        sendFamilyIDList = []
+        PlayerIDList = []
+        familyIDList = gmCmdDict.get("playerList", "").split(",")
+        GameWorld.Log("发送仙盟邮件: familyIDList=%s" % familyIDList)
+        for familyID in familyIDList:
+            familyID = GameWorld.ToIntDef(familyID)
+            familyInfo = {"familyID":familyID}
+            memberIDList = []
+            family = GameWorld.GetFamilyManager().FindFamily(familyID)
+            if not family:
+                GameWorld.DebugLog("    not family %s" % familyID)
+                continue
+            for index in range(family.GetCount()):
+                curMember = family.GetAt(index)
+                curMemberID = curMember.GetPlayerID()
+                if curMemberID:
+                    memberIDList.append(curMemberID)
+            PlayerIDList += memberIDList
+            familyInfo["PlayerIDList"] = memberIDList
+            sendFamilyIDList.append(familyInfo)
+        GameWorld.Log("    send FamilyIDList=%s" % sendFamilyIDList)
+        GameWorld.Log("    send PlayerIDList=%s" % PlayerIDList)
+        strMsg = str(sendFamilyIDList)
+    else:
+        PlayerIDList = eval(gmCmdDict.get('PlayerIDList', '[]'))
     if PlayerIDList == []:
-        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)    
+        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)
         return
-
+    
     LimitTime = gmCmdDict.get('EndTime', '2050-12-13 00:00:00')
     
     curServerTime = GameWorld.GetCurrentDataTimeStr()
@@ -63,6 +92,7 @@
         GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_InvalidTime)
         return
         
+    MailType = int(gmCmdDict.get('MailType', '0'))
     Title = gmCmdDict.get('Title', '')
     Text = gmCmdDict.get('Text', '')
     GUID = str(uuid.uuid1())
@@ -71,6 +101,7 @@
     goldPaper = int(gmCmdDict.get('GoldPaper', '0'))
     silver = int(gmCmdDict.get('Silver', '0')) 
     sender = gmCmdDict.get('Sender', ChConfig.Def_Mail_SenderSys)
+    detail = gmCmdDict.get('Detail', "")
     
     #工具发过来的物品下标依据 'index,index,...'  不一定是从0开始并按顺序连续 =_=#
     intemIndexStrList = []
@@ -90,11 +121,11 @@
     #    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)
     #    return
     PlayerCompensation.AddPersonalItem(GUID, addItemDictList, PlayerIDList, 
-                                       LimitTime, "%s<$_$>%s<$_$>%s"%(sender, Title, Text),
-                                       gold, goldPaper, silver)
+                                       LimitTime, PlayerCompensation.GetMailText(Title, Text, MailType, sender),
+                                       gold, goldPaper, silver, detail=detail)
     
     #执行成功
-    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success)  
+    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, strMsg)
     # 流向
     DataRecordPack.DR_ToolGMOperate(0, '', '', 'GMT_AddPersonalCompensation', str(gmCmdDict))
     return
@@ -108,7 +139,8 @@
     addItemDict['Count'] = GameWorld.ToIntDef(gmCmdDict.get('ItemCnt%s'%itemIndexStr, '0'))
     if addItemDict['Count'] == 0:
         return {}
-    addItemDict['IsBind'] = GameWorld.ToIntDef(gmCmdDict.get('IsBind%s'%itemIndexStr, '0'))
+    addItemDict['IsAuctionItem'] = GameWorld.ToIntDef(gmCmdDict.get('IsBind%s'%itemIndexStr, '0'))
+    appointID = GameWorld.ToIntDef(gmCmdDict.get('AppointID%s'%itemIndexStr, '0'))
     #添加UserData信息
     addItemDict['UserData'] = ''
     UserDataDict = {}
@@ -139,6 +171,9 @@
             continue
         itemUserData[key] = value
         
+    if appointID:
+        itemUserData[ShareDefine.Def_CItemKey_AppointID] = appointID
+        
     if itemUserData:
         addItemDict['UserData'] = '%s'%itemUserData
         

--
Gitblit v1.8.0