|  |  |  | 
|---|
|  |  |  | pack = IPY_GameServer.IPY_CFamilyChangeBroadcast() | 
|---|
|  |  |  | #更改家族公告 | 
|---|
|  |  |  | curFamily.SetBroadcast(pack.GetMsg()) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | GameWorld.Log('更改仙盟公告 Family=%s,公告=%s'%(GameWorld.CodeToGBK(curFamily.GetName()), GameWorld.CodeToGBK(pack.GetMsg())), curPlayerID) | 
|---|
|  |  |  | #通知客户端家族信息改变 | 
|---|
|  |  |  | curFamily.Broadcast_FamilyChange() | 
|---|
|  |  |  | playerManager = GameWorld.GetPlayerManager() | 
|---|
|  |  |  | 
|---|
|  |  |  | if pack_FamilyLv not in ChConfig.Def_Family_MemberLVList: | 
|---|
|  |  |  | GameWorld.Log("更改家族成员等级->封包异常->等级 = %s不存在" % (pack_FamilyLv), curPlayerID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | if curMember.GetFamilyLV() != IPY_GameServer.fmlLeader: | 
|---|
|  |  |  | if tagMember.GetFamilyLV() >= curMember.GetFamilyLV() or pack_FamilyLv >= curMember.GetFamilyLV(): | 
|---|
|  |  |  | GameWorld.Log("更改家族成员等级->目标职位比自己的高或者对方的当前职位比自己高", curPlayerID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | if not isGMOP: | 
|---|
|  |  |  | if curMember.GetFamilyLV() != IPY_GameServer.fmlLeader: | 
|---|
|  |  |  | if tagMember.GetFamilyLV() >= curMember.GetFamilyLV() or pack_FamilyLv >= curMember.GetFamilyLV(): | 
|---|
|  |  |  | GameWorld.Log("更改家族成员等级->目标职位比自己的高或者对方的当前职位比自己高", curPlayerID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | familyID = curFamily.GetID()  # 家族ID | 
|---|
|  |  |  | familyName = curFamily.GetName()  # 家族名字 | 
|---|
|  |  |  | 
|---|
|  |  |  | if GetFamilyMemberHasPow(tagMember, ChConfig.Def_PurviewDictKey_CanCall): | 
|---|
|  |  |  | tagPlayer.Sync_FamilyInfo() | 
|---|
|  |  |  | PlayerFamilyAction.ViewFamilyRequestInfo(tagPlayer) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if isGMOP: | 
|---|
|  |  |  | curFamily.SetBroadcast('') | 
|---|
|  |  |  | curFamily.Broadcast_FamilyChange() | 
|---|
|  |  |  | return True | 
|---|
|  |  |  | #--------------------------------------------------------------------- | 
|---|
|  |  |  | 
|---|
|  |  |  | return ret | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return 0 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def UpdFamilyWarRank(): | 
|---|
|  |  |  | '''更新仙盟联赛排名 | 
|---|
|  |  |  | 注意:该逻辑在仙盟联赛周期中不可执行,仅在下周分组定级状态下可更新 | 
|---|
|  |  |  | 仙盟联赛新一周期开始时、仙盟解散时 会触发该逻辑 | 
|---|
|  |  |  | ''' | 
|---|
|  |  |  | gameWorld = GameWorld.GetGameWorld() | 
|---|
|  |  |  | state = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyWar) | 
|---|
|  |  |  | if state != GameWorldFamilyWar.FamilyWarState_NextWeekGroupRank: | 
|---|
|  |  |  | GameWorld.DebugLog("非下周分组定级阶段不可更新仙盟联赛排名!") | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | familyMgr = GameWorld.GetFamilyManager() | 
|---|
|  |  |  | sortFamilyIDList = GetSortFamilyIDList() | 
|---|
|  |  |  | for rank, familyID in enumerate(sortFamilyIDList, 1): | 
|---|
|  |  |  | family = familyMgr.FindFamily(familyID) | 
|---|
|  |  |  | if not family: | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | curRank = GetFamilyWarRank(family) | 
|---|
|  |  |  | if not curRank: | 
|---|
|  |  |  | break | 
|---|
|  |  |  | if curRank != rank: | 
|---|
|  |  |  | SetFamilyWarRank(family, rank) | 
|---|
|  |  |  | GameWorld.Log("更新仙盟联赛仙盟排名: familyID=%s,rank=%s" % (family.GetID(), rank)) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #// A4 11 一键申请入盟 #tagCGOneKeyJoinFamily | 
|---|
|  |  |  | # | 
|---|