From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py |   74 ++++++++++++++++++++++++++++++------
 1 files changed, 61 insertions(+), 13 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
index 3937f10..bf69db3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
@@ -32,11 +32,12 @@
     if not gmList:
         #GameWorld.DebugAnswer(curPlayer, "创建跨服假仙盟: CreatFamily c 个数 [总战力 ServerID 等级 成员数]")
         #GameWorld.DebugAnswer(curPlayer, "删除跨服假仙盟: CreatFamily c 0")
-        GameWorld.DebugAnswer(curPlayer, "建本服假仙盟: CreatFamily 个数 [总战力 ServerID 等级 成员数]")
+        GameWorld.DebugAnswer(curPlayer, "建本服假仙盟: CreatFamily 个数 [总战力 ServerID 等级 成员数  是否审核 官职限制]")
         GameWorld.DebugAnswer(curPlayer, "删本服假仙盟: CreatFamily 0")
         GameWorld.DebugAnswer(curPlayer, "输出仙盟列表: CreatFamily pl [条数 从第x名]")
         GameWorld.DebugAnswer(curPlayer, "输出仙盟明细: CreatFamily pf 仙盟ID")
         GameWorld.DebugAnswer(curPlayer, "添加假申请人: CreatFamily j [申请数 仙盟ID]")
+        GameWorld.DebugAnswer(curPlayer, "添加本盟成员: CreatFamily m 人数 [仙盟ID]")
         return
     
     value1 = gmList[0]
@@ -56,11 +57,54 @@
         __addFackRequestJoin(curPlayer, gmList)
         return
     
+    if value1 == "m":
+        __addFackMember(curPlayer, gmList)
+        return
+    
     creatCount = value1
     if creatCount <= 0:
         __delFackFamily(curPlayer)
         return
     __createFackFamily(curPlayer, gmList)
+    return
+
+def __addFackMember(curPlayer, gmList):
+    memCnt = gmList[1] if len(gmList) > 1 else 1
+    familyID = gmList[2] if len(gmList) > 2 else curPlayer.GetFamilyID()
+    
+    familyMgr = DBDataMgr.GetFamilyMgr()
+    curFamily = familyMgr.FindFamily(familyID)
+    if not curFamily:
+        GameWorld.DebugAnswer(curPlayer, "没有该仙盟: %s" % familyID)
+        return
+    
+    MemberMax = PlayerFamily.GetFamilySetting(curFamily.GetLV(), "MemberMax")
+    if curFamily.GetCount() >= MemberMax:
+        GameWorld.DebugAnswer(curPlayer, "成员已满: %s" % MemberMax)
+        return
+    memCnt = min(memCnt, MemberMax - curFamily.GetCount())
+    
+    fackIDStart = 0
+    for i in range(0, familyMgr.GetCount()):
+        family = familyMgr.GetAt(i)
+        for index in xrange(family.GetCount()):
+            member = family.GetAt(index)
+            memID = member.GetPlayerID()
+            if memID > ShareDefine.FackPlayerIDMax:
+                continue
+            fackIDStart = max(memID, fackIDStart)
+            
+    addCnt = 0
+    for i in range(memCnt):
+        fackID = fackIDStart + i + 1
+        if fackID >= ShareDefine.FackPlayerIDMax:
+            break
+        PlayerFamily.DoPlayerJionFamily(curFamily, fackID, None, broadcastFamilyChange=False)
+        addCnt += 1
+        
+    familyMgr.Sort()
+    PlayerFamily.Sync_FamilyInfo(curPlayer)
+    GameWorld.DebugAnswer(curPlayer, "增加成员数:%s, 总成员:%s" % (addCnt, curFamily.GetCount()))
     return
 
 def __addFackRequestJoin(curPlayer, gmList):
@@ -99,14 +143,14 @@
     familyMgr = DBDataMgr.GetFamilyMgr()
     familyMgr.Sort()
     familyCnt = familyMgr.GetCount()
-    GameWorld.DebugAnswer(curPlayer, "仙盟总数: %s" % familyCnt)
+    GameWorld.DebugAnswer(curPlayer, "----- 仙盟总数: %s -----" % (familyCnt))
     for index in range(fromIndex, fromIndex + printCnt):
         if index >= familyCnt:
             break
         family = familyMgr.GetAt(index)
         rank = index + 1
         
-        text = "%s,ID:%s,LV:%s,战力:%s,成员:%s" % (rank, family.GetID(), family.GetLV(), family.GetFightPowerTotal(), family.GetCount())
+        text = "%s,ID:%s,LV:%s,战:%s,成:%s,审:%s,官:%s" % (rank, family.GetID(), family.GetLV(), family.GetFightPowerTotal(), family.GetCount(), family.GetJoinReview(), family.GetJoinLVMin())
         printAnswerCnt += 1
         if printAnswerCnt <= 100:
             GameWorld.DebugAnswer(curPlayer, text)
@@ -125,17 +169,17 @@
         return
     
     GameWorld.DebugAnswer(curPlayer, "----- 【%s】 -----" % (GameWorld.CodeToGbk(family.GetName())))
-    GameWorld.DebugAnswer(curPlayer, "仙盟ID:%s,ServerID:%s" % (familyID, family.GetServerID()))
-    GameWorld.DebugAnswer(curPlayer, "LV:%s,Exp:%s" % (family.GetLV(), family.GetExp()))
-    GameWorld.DebugAnswer(curPlayer, "审核:%s,等级条件:%s,申请数:%s" % (family.GetJoinReview(), family.GetJoinLVMin(), len(family.GetReqJoinPlayerInfo())))
-    GameWorld.DebugAnswer(curPlayer, "徽章:%s" % (family.GetEmblemID()))
-    GameWorld.DebugAnswer(curPlayer, "总战力:%s,人数:%s" % (family.GetFightPowerTotal(), family.GetCount()))
-    GameWorld.DebugAnswer(curPlayer, "盟主:%s" % (family.GetLeaderID()))
+    GameWorld.DebugAnswer(curPlayer, "仙盟ID:%s, ServerID:%s" % (familyID, family.GetServerID()))
+    GameWorld.DebugAnswer(curPlayer, "LV:%s, Exp:%s" % (family.GetLV(), family.GetExp()))
+    GameWorld.DebugAnswer(curPlayer, "审核:%s, 官职条件:%s, 申请数:%s" % (family.GetJoinReview(), family.GetJoinLVMin(), len(family.GetReqJoinPlayerInfo())))
+    GameWorld.DebugAnswer(curPlayer, "战旗:%s, 旗号【%s】" % (family.GetEmblemID(), GameWorld.CodeToGbk(family.GetEmblemWord())))
+    GameWorld.DebugAnswer(curPlayer, "总战力:%s, 人数:%s" % (family.GetFightPowerTotal(), family.GetCount()))
+    GameWorld.DebugAnswer(curPlayer, "盟主ID:%s" % (family.GetLeaderID()))
     for index in range(family.GetCount()):
         member = family.GetAt(index)
         playerID = member.GetPlayerID()
         fightPower = member.GetFightPowerTotal()
-        GameWorld.DebugAnswer(curPlayer, "%s,%s,职位:%s,战力:%s" % (index, playerID, member.GetFmLV(), fightPower))
+        GameWorld.DebugAnswer(curPlayer, "%s,ID:%s,职位:%s,战力:%s" % (index, playerID, member.GetFmLV(), fightPower))
         
     return
 
@@ -164,8 +208,11 @@
     serverID = gmList[2] if len(gmList) > 2 else random.randint(1, 200)
     familyLV = gmList[3] if len(gmList) > 3 else 1 # 默认1级
     memberCnt = gmList[4] if len(gmList) > 4 else random.randint(1, 10)
+    joinReview = gmList[5] if len(gmList) > 5 else 1
+    joinLVMin = gmList[6] if len(gmList) > 6 else random.randint(1, 10)
     
     FakeFamilyName = GameWorld.GbkToCode("神秘军团")
+    FakeEmblemWord = GameWorld.GbkToCode("神")
     
     fackFamilyID = ShareDefine.FackFamilyIDStart
     fackMemID = ShareDefine.FackPlayerIDStart
@@ -197,8 +244,9 @@
         fackFamily.SetLV(familyLV)
         fackFamily.SetFightPowerTotal(familyFightPower)
         fackFamily.SetEmblemID(1)
-        fackFamily.SetJoinReview(1) # 设置需要审核
-        fackFamily.SetJoinLVMin(random.randint(0, 1000))
+        fackFamily.SetEmblemWord(FakeEmblemWord)
+        fackFamily.SetJoinReview(joinReview) # 设置需要审核
+        fackFamily.SetJoinLVMin(joinLVMin) # 官职
         
         GameWorld.DebugLog("创建假仙盟: fackFamilyID=%s,serverID=%s,familyFightPower=%s,memberCnt=%s" 
                            % (fackFamilyID, serverID, familyFightPower, memberCnt))
@@ -233,7 +281,7 @@
             else:
                 memFightPower = avgValue + memCnt / 2 - m
                 memFightPowerTotal -= memFightPower
-            viewCache = PlayerViewCache.FindViewCache(memID, True)
+            viewCache = PlayerViewCache.FindViewCache(memID)
             viewCache.SetFightPowerTotal(memFightPower)
             GameWorld.DebugLog("    仙盟成员: memID=%s,memFightPower=%s,fmLV=%s" % (memID, memFightPower, fmLV))
             member.RefreshMemberByID(memID)

--
Gitblit v1.8.0