From 985bdf70fd0022733f75bf2106e69c6de77c26b1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 28 十一月 2025 17:29:51 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(卑弥呼所有技能;技能表增加字段Buff保留-BuffRetain,支持死亡保留、复活保留;增加触发方式42-大回合开始时(死亡后有效);增加属性ID 73复活生命加成、74复活怒气加成;优化效果6014-支持失败次数额外概率;优化死亡、复活时的buff处理;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py | 33 ++++++++++++++++++++-------------
1 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py
index c0eddf8..e9a083a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMail.py
@@ -51,9 +51,10 @@
if not mailObj:
continue
createTime = GameWorld.ChangeTimeStrToNum(mailObj.GetCreateTime())
- limitTime = createTime + (mailObj.GetLimitDays() + 7) * 3600 * 24
- if curTime < limitTime:
- #GameWorld.DebugLog("全服邮件未超时,不删除! %s,createTime=%s,limitTime=%s" % (guid, mailObj.GetCreateTime(), GameWorld.ChangeTimeNumToStr(limitTime)))
+ passDays = GameWorld.GetDiff_Day(curTime, createTime) + 1 # 过期判断按0点算天数
+ limitDays = mailObj.GetLimitDays()
+ if passDays <= limitDays:
+ #GameWorld.DebugLog("全服邮件未超时,不删除! %s,createTime=%s,passDays=%s <= limitDays=%s" % (guid, mailObj.GetCreateTime(), passDays, limitDays))
continue
DelServerMail(guid, "Timeout")
@@ -85,16 +86,17 @@
notifyGUIDState = {}
for guid, mailObj in mailDict.items():
createTime = GameWorld.ChangeTimeStrToNum(mailObj.GetCreateTime())
- limitTime = createTime + (mailObj.GetLimitDays() + 0) * 3600 * 24
- if curTime < limitTime:
- #GameWorld.DebugLog("个人邮件未超时,不删除! %s,createTime=%s,limitTime=%s" % (guid, mailObj.GetCreateTime(), GameWorld.ChangeTimeNumToStr(limitTime)), playerID)
+ passDays = GameWorld.GetDiff_Day(curTime, createTime) + 1 # 过期判断按0点算天数
+ limitDays = mailObj.GetLimitDays()
+ if passDays <= limitDays:
+ #GameWorld.DebugLog("个人邮件未超时,不删除! %s,createTime=%s,passDays=%s <= limitDays=%s" % (guid, mailObj.GetCreateTime(), passDays, limitDays), playerID)
continue
- mailState = mailObj.GetMailState()
- mailItemCount = mailMgr.GetMailItemCount(guid)
- if mailItemCount and mailState != ShareDefine.MailState_Got:
- #GameWorld.DebugLog("个人邮件有物品未领取不删除! %s" % guid, playerID)
- continue
+ #mailState = mailObj.GetMailState()
+ #mailItemCount = mailMgr.GetMailItemCount(guid)
+ #if mailItemCount and mailState != ShareDefine.MailState_Got:
+ # #GameWorld.DebugLog("个人邮件有物品未领取不删除! %s" % guid, playerID)
+ # continue
mailMgr.DelPersonalMail(playerID, guid)
DataRecordPack.DR_MailDel(playerID, guid, "Timeout")
@@ -326,9 +328,14 @@
itemCount = mailItem.GetCount()
isBind = mailItem.GetIsBind()
userData = mailItem.GetUserData()
- #setAttrDict = {} if not userData else eval(userData) 之后扩展有指定属性的,可参考砍树版本
+ setAttrDict = None
+ if userData:
+ try:
+ setAttrDict = eval(userData)
+ except:
+ setAttrDict = None
if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem],
- event=[ChConfig.ItemGive_Mail, False, {"MailGUID":guid}]):
+ event=[ChConfig.ItemGive_Mail, False, {"MailGUID":guid}], setAttrDict=setAttrDict):
continue
DataRecordPack.DR_MailGiveSuccess(playerID, guid)
--
Gitblit v1.8.0