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