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