From 84f9abc7067dde4e6b504a1ba2e9f0600a6de46b Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 12 三月 2019 20:58:56 +0800 Subject: [PATCH] 4042 【后端】【2.0】邮件包含附件时不能删除邮件 - 服务端添加防范 --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py index 704baf5..5278138 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCompensation.py @@ -913,6 +913,11 @@ #在个人补偿中 curPersonalCompensation = GameWorld.GetCompensationMgr().FindPersonalCompensation(curPlayerID, GUID) if curPersonalCompensation.PlayerID == curPlayerID: + if not CheckCanDelCompensation(curPersonalCompensation, GUID): + #有附件不可删除 + NotifyCompensationResult(curPlayer, GUID, 0) + return + ClearPersonalCompensation(curPlayerID, GUID) NotifyCompensationResult(curPlayer, GUID, 1) #GameWorld.DebugLog("个人补偿中OnDelCompensation:%s"%GUID) @@ -928,12 +933,28 @@ #全服邮件 curEntireRequire = GameWorld.GetCompensationMgr().FindEntireCompensation(GUID) if curEntireRequire.GUID == GUID: + if not CheckCanDelCompensation(curEntireRequire, GUID): + #有附件不可删除 + NotifyCompensationResult(curPlayer, GUID, 0) + return + SetPrizeState(curPlayerID, GUID, Disable_State, GameWorld.GetCompensationMgr().FindPlayerRecState(curPlayerID, GUID)/10) NotifyCompensationResult(curPlayer, GUID, 1) #GameWorld.DebugLog("全服邮件OnDelCompensation:%s"%GUID) return NotifyCompensationResult(curPlayer, GUID, 0) + +# 有附件的情况玩家不可主动删除邮件,避免误操作;系统可删除不用调用此接口 +def CheckCanDelCompensation(mailObj, GUID): + if mailObj.Gold or mailObj.GoldPaper or mailObj.Silver: + # 有附加货币不可删除 + return False + + if GameWorld.GetCompensationMgr().FindItemCount(GUID): + # 有附件物品不可删除 + return False + return True # 邮件删除情况 def NotifyCompensationResult(curPlayer, GUID, result): -- Gitblit v1.8.0