From ad26af07b15757b4a85ec056a2c8d2a0f8e7e133 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 22 九月 2018 01:40:15 +0800 Subject: [PATCH] 3798 【后端】运营活动时间优化,开服日常限时活动定制时间优化(修复活动日期相连时活动时间异常bug) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 30 ++++++++++++++++++------------ 1 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py index b9de67e..07322d1 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -308,34 +308,38 @@ return #--------------------------------------------------------------------- -def SendMailBatch(mailTypeKey, batchPlayerIDList, batchAddItemList=[], batchParamList=[], batchGold=[], batchGoldPaper=[], batchSilver=[]): +def SendMailBatch(mailTypeKey, batchPlayerIDList, batchAddItemList=[], batchParamList=[], batchGold=[], batchGoldPaper=[], batchSilver=[], batchDetail=[]): '''批量发送邮件, 用于瞬间需要发送多封(大量)邮件的,比如一些公共副本活动等结算时 @param mailTypeKey: 邮件模板key @param batchPlayerIDList: [playerIDList, playerIDList, ...] @param batchAddItemList: [addItemList, addItemList, ...] @param batchParamList: [paramList, paramList, ...] @param batchGold: [batchGold, batchGold, ...] - @param batchGold: [batchGoldPaper, batchGoldPaper, ...] - @param batchGold: [batchSilver, batchSilver, ...] + @param batchGoldPaper: [batchGoldPaper, batchGoldPaper, ...] + @param batchSilver: [batchSilver, batchSilver, ...] + @param batchDetail: [记录邮件流向用, ...] ''' - msgInfo = str([mailTypeKey, batchPlayerIDList, batchAddItemList, batchParamList, batchGold, batchGoldPaper, batchSilver]) + msgInfo = str([mailTypeKey, batchPlayerIDList, batchAddItemList, batchParamList, batchGold, batchGoldPaper, batchSilver, batchDetail]) GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "SendMailBatch", msgInfo, len(msgInfo)) GameWorld.Log("SendMailBatch %s, batchPlayerIDList=%s, batchAddItemList=%s, batchParamList=%s, batchGold=%s, batchGoldPaper=%s, batchSilver=%s" % (mailTypeKey, batchPlayerIDList, batchAddItemList, batchParamList, batchGold, batchGoldPaper, batchSilver)) return -def SendMailByKey(mailTypeKey, playerIDList, addItemList, paramList=[], gold=0, goldPaper=0, silver=0): +def SendMailByKey(mailTypeKey, playerIDList, addItemList, paramList=[], gold=0, goldPaper=0, silver=0, detail=""): + ''' + @param detail: 记录邮件流向用 + ''' if not mailTypeKey: mailTypeKey = ShareDefine.DefaultLackSpaceMailType content = "<MailTemplate>%s</MailTemplate>%s" % (mailTypeKey, json.dumps(paramList, ensure_ascii=False)) - SendMail("", content, 30, playerIDList, addItemList, gold, goldPaper, silver) + SendMail("", content, 30, playerIDList, addItemList, gold, goldPaper, silver, detail) return ## 功能发放物品补偿/奖励邮件 # @param addItemList [(itemID, itemCnt, isBind), {或物品信息字典}, ...] # @return -def SendMail(title, content, getDays, playerIDList, addItemList, gold=0, goldPaper=0, silver=0): +def SendMail(title, content, getDays, playerIDList, addItemList, gold=0, goldPaper=0, silver=0, detail=""): if not playerIDList: return @@ -377,7 +381,7 @@ for key, itemCnt in itemCountDict.items(): itemID, isBind = key combineItemList.append((itemID, itemCnt, isBind)) - cmdList = [title, content, getDays, playerIDList, combineItemList, gold, goldPaper, silver] + cmdList = [title, content, getDays, playerIDList, combineItemList, gold, goldPaper, silver, detail] GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "SendMail", '%s' % (cmdList), len(str(cmdList))) return True @@ -5399,10 +5403,11 @@ fightExpRate += PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_FightExpRate) # VIP加成 actExpRateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ExpRate, {})# 多倍经验活动加成 - if not PlayerTJG.GetIsTJG(curPlayer) and actExpRateInfo.get(ShareDefine.ActKey_State) \ - and curPlayer.GetLV() >= actExpRateInfo.get(ShareDefine.ActKey_LVLimit, 0): - fightExpRate += actExpRateInfo.get(ShareDefine.ActKey_AddExpRate, 0) - + if not PlayerTJG.GetIsTJG(curPlayer) and actExpRateInfo.get(ShareDefine.ActKey_State): + actExpIpyData = IpyGameDataPY.GetIpyGameData("ActExpRate", actExpRateInfo.get(ShareDefine.ActKey_CfgID)) + if actExpIpyData and curPlayer.GetLV() >= actExpIpyData.GetLVLimit(): + fightExpRate += actExpIpyData.GetAddExpRate() + if curPlayer.GetMapID() not in [ChConfig.Def_FBMapID_FamilyInvade]: #守卫人皇不加组队加成 fightExpRate += curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_TeamExpRate) # 组队 @@ -5519,6 +5524,7 @@ def SetGMForbidenTalk(curPlayer, value): curPlayer.SetGMForbidenTalk(value) curPlayer.SendGameServerRefreshState(ShareDefine.CDBPlayerRefresh_ForbidenTalk, value) + curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_ForbidenTalk, value, False) return -- Gitblit v1.8.0