From 67a84dc38db8f7d0f85b03e2b06ba728d95c1e82 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 07 二月 2026 20:29:42 +0800
Subject: [PATCH] 476 【付费内容】时机礼包-服务端(自定义存储支持;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyEmblem.py | 56 +++++++++++++++++++++++++++++---------------------------
1 files changed, 29 insertions(+), 27 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyEmblem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyEmblem.py
index b94f27e..d32beed 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyEmblem.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyEmblem.py
@@ -46,29 +46,32 @@
defaultEmblemIDList = []
curTime = int(time.time())
actionType = ShareDefine.Def_ActionType_FamilyEmblem
- familyManager = DBDataMgr.GetFamilyMgr()
- for i in xrange(familyManager.GetCount()):
- family = familyManager.GetAt(i)
- if not family:
- continue
- familyID = family.GetID()
- familyAction = familyManager.GetFamilyActionMgr().GetFamilyAction(familyID, actionType)
- for index in range(familyAction.Count())[::-1]: # 可能触发删除,倒序遍历
- emblemActionObj = familyAction.At(index)
- emblemID = GetActionEmblemID(emblemActionObj)
- endTime = GetActionEmblemEndTime(emblemActionObj)
- if not endTime or endTime > curTime:
- #GameWorld.Log("检查仙盟徽章未过期! familyID=%s,emblemID=%s,endTime=%s" % (familyID, emblemID, endTime))
+ familyMgr = DBDataMgr.GetFamilyMgr()
+ # 每分钟刷新下仙盟战力排序
+ for zoneID in familyMgr.GetZoneIDListThisServer():
+ zoneMgr = familyMgr.GetZoneFamilyMgr(zoneID)
+ for index in range(zoneMgr.GetCount()):
+ family = zoneMgr.GetAt(index)
+ if not family:
continue
- familyAction.DelAction(index)
- GameWorld.Log("删除过期仙盟徽章! familyID=%s,emblemID=%s,endTime=%s" % (familyID, emblemID, endTime))
- if family.GetEmblemID() == emblemID:
- if not defaultEmblemIDList:
- defaultEmblemIDList = GetDefaultFamilyEmblemIDList()
- updEmblemID = random.choice(defaultEmblemIDList) if defaultEmblemIDList else 0
- GameWorld.Log("仙盟佩戴徽章过期恢复随机默认徽章! familyID=%s,emblemID=%s,endTime=%s,updEmblemID=%s" % (familyID, emblemID, endTime, updEmblemID))
- family.SetEmblemID(updEmblemID)
- PlayerFamily.Broadcast_FamilyChange(familyID, PlayerFamily.FamilyChangeType_EChange)
+ familyID = family.GetID()
+ familyAction = familyMgr.GetFamilyActionMgr().GetFamilyAction(familyID, actionType)
+ for index in range(familyAction.Count())[::-1]: # 可能触发删除,倒序遍历
+ emblemActionObj = familyAction.At(index)
+ emblemID = GetActionEmblemID(emblemActionObj)
+ endTime = GetActionEmblemEndTime(emblemActionObj)
+ if not endTime or endTime > curTime:
+ #GameWorld.Log("检查仙盟徽章未过期! familyID=%s,emblemID=%s,endTime=%s" % (familyID, emblemID, endTime))
+ continue
+ familyAction.DelAction(index)
+ GameWorld.Log("删除过期仙盟徽章! familyID=%s,emblemID=%s,endTime=%s" % (familyID, emblemID, endTime))
+ if family.GetEmblemID() == emblemID:
+ if not defaultEmblemIDList:
+ defaultEmblemIDList = GetDefaultFamilyEmblemIDList()
+ updEmblemID = random.choice(defaultEmblemIDList) if defaultEmblemIDList else 0
+ GameWorld.Log("仙盟佩戴徽章过期恢复随机默认徽章! familyID=%s,emblemID=%s,endTime=%s,updEmblemID=%s" % (familyID, emblemID, endTime, updEmblemID))
+ family.SetEmblemID(updEmblemID)
+ PlayerFamily.Broadcast_FamilyInfo(familyID, isSyncMem=False) # 徽章过期
return
def GetFamilyEmblemActionData(familyID, emblemID):
@@ -134,10 +137,10 @@
PlayerFamily.SendFamilyAction(emblemActionObj)
return emblemActionObj
-def OnChangeFamilyEmblem(curPlayer, emblemID, emblemWord=""):
+def OnChangeFamilyEmblem(crossPlayer, emblemID, emblemWord=""):
## 修改仙盟徽章
- playerID = curPlayer.GetPlayerID()
- familyID = curPlayer.GetFamilyID()
+ playerID = crossPlayer.GetPlayerID()
+ familyID = crossPlayer.GetFamilyID()
if familyID <= 0:
return
familyMgr = DBDataMgr.GetFamilyMgr()
@@ -179,6 +182,5 @@
curFamily.SetEmblemID(emblemID)
if emblemWord:
curFamily.SetEmblemWord(emblemWord)
- PlayerFamily.Sync_FamilyInfo(curPlayer)
- PlayerFamily.Broadcast_FamilyChange(familyID, PlayerFamily.FamilyChangeType_EChange, excludeIDList=[playerID])
+ PlayerFamily.Broadcast_FamilyInfo(familyID, isSyncMem=False) # 徽章修改
return True
--
Gitblit v1.8.0