From 7cdd3f4bee1cc16019afc939db48011518ccfb65 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 十月 2025 18:02:11 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(公会改名)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py |   36 +++++++++++++++++++++++++-----------
 1 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py
index f00bd6d..6ac98f7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py
@@ -30,7 +30,6 @@
 import IPY_GameWorld
 import ItemControler
 import GameFuncComm
-import ItemCommon
 import DBDataMgr
 import DirtyList
 import ObjPool
@@ -156,6 +155,7 @@
     curMember.SetOffTime(0) # 在线0,脱机1,>1离线时间
     curMember.RefreshMember(curPlayer)
     Sync_FamilyInfo(curPlayer)
+    SendFamilyActionInfo(curPlayer, familyID, ShareDefine.Def_ActionType_FamilyData)
     
     #通知招人
     if GetFamilyMemberHasPow(curMember, FamilyPowerID_Call):
@@ -195,6 +195,13 @@
         return
     member.RefreshMember(curPlayer)
     return
+
+def GetRenameTime(dataAction): return dataAction.GetValue1()
+def SetRenameTime(dataAction, setTime): dataAction.SetValue1(setTime)
+def GetFamilyDataAction(familyID):
+    ## 家族额外数据存储的行为数据,可以视为Family公共数据的一个扩展
+    action = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, ShareDefine.Def_ActionType_FamilyData)
+    return action.GetOneAction(True)
 
 #// A6 04 创建家族 #tagCMCreateFamily
 #
@@ -1240,7 +1247,7 @@
 def UpdateFamilyName(index, clientData, tick):
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
     newName = clientData.NewName
-    itemIndex = clientData.ItemIndex
+    #itemIndex = clientData.ItemIndex
     
     playerID = curPlayer.GetPlayerID()
     familyID = curPlayer.GetFamilyID()
@@ -1258,18 +1265,24 @@
         GameWorld.DebugLog("非盟主不可改名!", playerID)
         return
     
+    cdHours = IpyGameDataPY.GetFuncCfg("FamilyRename", 2)
+    if cdHours:
+        cdSeconds = cdHours * 3600
+        curTime = int(time.time())
+        dataAction = GetFamilyDataAction(familyID)
+        lastRenameTime = GetRenameTime(dataAction)
+        if lastRenameTime and (curTime - lastRenameTime) < cdSeconds:
+            GameWorld.DebugLog("仙盟改名CD中! lastRenameTime=%s,cdHours=%s" % (GameWorld.ChangeTimeNumToStr(lastRenameTime), cdHours))
+            return
+        
     familyName = CheckInputFamilyName(curPlayer, newName)
     if not familyName:
         return
     
-    itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-    curItem = itemPack.GetAt(itemIndex)
-    if not ItemCommon.CheckItemCanUse(curItem) or curItem.GetType() != ChConfig.Def_ItemType_ChangeFamilyName:
-        GameWorld.DebugLog("没有仙盟改名道具! itemIndex=%s" % itemIndex, playerID)
+    moneyType, moneyValue = IpyGameDataPY.GetFuncEvalCfg("FamilyRename", 1)
+    if moneyType and moneyValue and not PlayerControl.PayMoney(curPlayer, moneyType, moneyValue, "FamilyRename"):
         return
-    ItemCommon.DelItem(curPlayer, curItem, 1, True, 'UpdateFamilyName')
     
-    #oldName = curFamily.GetName()
     family.SetName(familyName)
     
     infoPack = GetPack_FamilyInfo(familyID)
@@ -1282,10 +1295,11 @@
             continue
         Sync_FamilyInfo(player, infoPack)
         player.SetFamilyName(familyName)
-        player.Notify_FamilyNameRefresh() #//04 36    周围玩家家族名刷新#tagPlayerFamilyNameRefresh
+        #player.Notify_FamilyNameRefresh() #//04 36    周围玩家家族名刷新#tagPlayerFamilyNameRefresh
         
-    #PlayerCompensation.SendMailByKey('FamilyNameChange', memberIDList, [], [oldName, familyName])    
-    #PlayerControl.WorldNotify(0, 'Family_ChangeName', [oldName, familyName])
+    if cdHours:
+        SetRenameTime(dataAction, curTime)
+        SendFamilyActionInfo(None, familyID, ShareDefine.Def_ActionType_FamilyData)
     return
 
 #// A6 20 搜索家族列表 #tagCMViewFamilyPage

--
Gitblit v1.8.0