From 78b01d7924cd2fbccdbcea874816820641883d7c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 18 二月 2019 17:43:25 +0800
Subject: [PATCH] 6209 【后端】【1.6】合服开发单 - 合(混)服后支持发单服邮件

---
 ServerPython/CoreServerGroup/GameServer/Script/IPY_Compensation.py                      |    3 +++
 ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddEntireCompensation.py |    5 +++--
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py             |   12 +++++++++---
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddEntireCompensation.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddEntireCompensation.py
index e75bbab..2124179 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddEntireCompensation.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddEntireCompensation.py
@@ -76,6 +76,8 @@
     silver = int(gmCmdDict.get('Silver', '0')) 
     sender = gmCmdDict.get('Sender', ChConfig.Def_Mail_SenderSys)
     detail = gmCmdDict.get('Detail', "")
+    serverID = int(gmCmdDict.get('OnlyServerID', "0"))
+    
     
     #工具发过来的物品下标依据 'index,index,...'  不一定是从0开始并按顺序连续 =_=#
     intemIndexStrList = []
@@ -94,10 +96,9 @@
     #if len(addItemDictList) == 0:
     #    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)
     #    return
-
     PlayerCompensation.AddEntireItem(GUID, addItemDictList, LimitTime, 
                                      mailInfo, PlayerJob, "%s<$_$>%s<$_$>%s"%(sender, Title, Text),
-                                     gold, goldPaper, silver, detail)
+                                     gold, goldPaper, silver, detail, serverID)
 
     #执行成功
     GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, {"GUID":GUID})  
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IPY_Compensation.py b/ServerPython/CoreServerGroup/GameServer/Script/IPY_Compensation.py
index 7b66ddd..b9f264c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IPY_Compensation.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IPY_Compensation.py
@@ -331,6 +331,9 @@
     __swig_setmethods__["Silver"] = _IPY_Compensation.IpyEntireCompensationRequire_Silver_set
     __swig_getmethods__["Silver"] = _IPY_Compensation.IpyEntireCompensationRequire_Silver_get
     if _newclass:Silver = _swig_property(_IPY_Compensation.IpyEntireCompensationRequire_Silver_get, _IPY_Compensation.IpyEntireCompensationRequire_Silver_set)
+    __swig_setmethods__["ServerID"] = _IPY_Compensation.IpyEntireCompensationRequire_ServerID_set
+    __swig_getmethods__["ServerID"] = _IPY_Compensation.IpyEntireCompensationRequire_ServerID_get
+    if _newclass:ServerID = _swig_property(_IPY_Compensation.IpyEntireCompensationRequire_ServerID_get, _IPY_Compensation.IpyEntireCompensationRequire_ServerID_set)
     def __init__(self): 
         this = _IPY_Compensation.new_IpyEntireCompensationRequire()
         try: self.this.append(this)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
index b824568..7f5901b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py
@@ -330,7 +330,7 @@
 #  @param addItemDictList, LimitTime, mailInfo, PlayerJob,  Text 
 #  @return None
 def AddEntireItem(GUID, addItemDictList, LimitTime, mailInfo, PlayerJob, Text,
-                  gold = 0, goldPaper = 0, silver = 0, detail=""):
+                  gold = 0, goldPaper = 0, silver = 0, detail="", serverID=0):
     '''
     @param mailInfo: GetEntireCompensationInfo 的返回值, 目前暂存字段 PlayerLV 中
     '''
@@ -344,9 +344,10 @@
         GameWorld.GetCompensationMgr().AddCompensationItem(GUID, curItemData)
         
     createTime = GameWorld.GetCurrentDataTimeStr()
+    
     #添加全服领取补偿条件
     GameWorld.GetCompensationMgr().AddEntireCompensationItem(GUID, createTime, LimitTime, mailInfo, 
-                                                             PlayerJob, Text, gold, goldPaper, silver)
+                                                             PlayerJob, Text, gold, goldPaper, silver, serverID)
     checkState, limitLVType, limitLV = ParseEntireCompensationInfo(mailInfo)
     addDict = {"LimitTime":LimitTime, "LimitLV":limitLV, "LimitLVType":limitLVType, "CheckState":checkState, "PlayerJob":PlayerJob, "Text":Text, 
                "Gold":gold, "GoldPaper":goldPaper, "Silver":silver, "ItemList":addItemDictList, "Detail":detail}
@@ -751,7 +752,12 @@
         if (curEntireRequire.PlayerJob&pow(2,curJob)) == 0:
             SetPrizeState(curPlayerID, GUID, Disable_State, readState)
             return Unknow_CompensationType, None
-        
+    
+    if curEntireRequire.ServerID and curEntireRequire.ServerID != GameWorld.GetPlayerServerID(curPlayer):
+        # 指定服务器邮件
+        SetPrizeState(curPlayerID, GUID, Disable_State, readState)
+        return Unknow_CompensationType, None
+     
     #可以用的奖励
     SetPrizeState(curPlayerID, GUID, Enable_State, readState)
     #返回物品信息   

--
Gitblit v1.8.0