ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
@@ -27,20 +27,27 @@
def GetGMServerIDList(curPlayer):
    ## 获取命令额外发送到其他服务器,如跨服
    crossServerID = DBDataMgr.GetFamilyMgr().GetCurCrossServerID()
    #GameWorld.DebugAnswer(curPlayer, "GetGMServerIDList: %s" % crossServerID)
    GameWorld.DebugAnswer(curPlayer, "本服公会互通跨服ID:%s" % crossServerID)
    if crossServerID:
        return [crossServerID]
    return []
def OnExecCross(crossPlayer, gmList):
    ## 跨服执行命令
    GameWorld.DebugLog("OnExecCross %s" % gmList, crossPlayer.GetPlayerID())
    playerID = crossPlayer.GetPlayerID()
    familyMgr = DBDataMgr.GetFamilyMgr()
    familyID = familyMgr.GetPlayerFamilyID(playerID)
    zoneID = familyMgr.GetFamilyZoneID(familyID)
    GameWorld.DebugAnswer(crossPlayer, "跨服公会ID:%s,zoneID=%s" % (familyID, zoneID))
    OnExec(crossPlayer, gmList)
    return
def OnExec(curPlayer, gmList):
    ## 游戏服执行命令
    
    if not gmList:
        if GameWorld.IsCrossServer():
            return
        GameWorld.DebugAnswer(curPlayer, "创建假人公会: CreatFamily 个数 [总战力 ServerID 等级 成员数  是否审核 官职限制]")
        GameWorld.DebugAnswer(curPlayer, "删除假人公会: CreatFamily 0")
        GameWorld.DebugAnswer(curPlayer, "输出公会列表: CreatFamily pl [条数 从第x名]")
@@ -51,46 +58,45 @@
    
    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
    if not crossPlayer:
        #GameWorld.DebugAnswer(curPlayer, "找不到crossPlayer")
        return
    
    value1 = gmList[0]
    if value1 == "pl":
        __printFamilyList(curPlayer, gmList)
        __printFamilyList(crossPlayer, gmList)
        return
    
    if value1 == "pf":
        __printFamilyInfo(curPlayer, gmList)
        __printFamilyInfo(crossPlayer, gmList)
        return
    
    if value1 == "sq":
        __addFackRequestJoin(curPlayer, gmList)
        __addFackRequestJoin(crossPlayer, gmList)
        return
    
    if value1 == "m":
        __addFackMember(curPlayer, gmList, crossPlayer)
        __addFackMember(crossPlayer, gmList)
        return
    
    creatCount = value1
    if creatCount <= 0:
        __delFackFamily(curPlayer)
        __delFackFamily(crossPlayer)
        return
    __createFackFamily(curPlayer, gmList)
    __createFackFamily(crossPlayer, gmList)
    return
def __addFackMember(curPlayer, gmList, crossPlayer):
def __addFackMember(crossPlayer, gmList):
    memCnt = gmList[1] if len(gmList) > 1 else 1
    familyID = gmList[2] if len(gmList) > 2 else curPlayer.GetFamilyID()
    familyID = gmList[2] if len(gmList) > 2 else crossPlayer.GetFamilyID()
    
    familyMgr = DBDataMgr.GetFamilyMgr()
    curFamily = familyMgr.FindFamily(familyID)
    if not curFamily:
        GameWorld.DebugAnswer(curPlayer, "没有该公会: %s" % familyID)
        GameWorld.DebugAnswer(crossPlayer, "没有该公会: %s" % familyID)
        return
    
    MemberMax = PlayerFamily.GetFamilySetting(curFamily.GetLV(), "MemberMax")
    if curFamily.GetCount() >= MemberMax:
        GameWorld.DebugAnswer(curPlayer, "成员已满: %s" % MemberMax)
        GameWorld.DebugAnswer(crossPlayer, "成员已满: %s" % MemberMax)
        return
    memCnt = min(memCnt, MemberMax - curFamily.GetCount())
    
@@ -120,17 +126,17 @@
        
    curZoneMgr.Sort()
    PlayerFamily.Sync_FamilyInfo(crossPlayer)
    GameWorld.DebugAnswer(curPlayer, "增加成员数:%s, 总成员:%s" % (addCnt, curFamily.GetCount()))
    GameWorld.DebugAnswer(crossPlayer, "增加成员数:%s, 总成员:%s" % (addCnt, curFamily.GetCount()))
    return
def __addFackRequestJoin(curPlayer, gmList):
def __addFackRequestJoin(crossPlayer, gmList):
    reqCnt = gmList[1] if len(gmList) > 1 else 1
    familyID = gmList[2] if len(gmList) > 2 else curPlayer.GetFamilyID()
    familyID = gmList[2] if len(gmList) > 2 else crossPlayer.GetFamilyID()
    
    familyMgr = DBDataMgr.GetFamilyMgr()
    family = familyMgr.FindFamily(familyID)
    if not family:
        GameWorld.DebugAnswer(curPlayer, "没有该公会: %s" % familyID)
        GameWorld.DebugAnswer(crossPlayer, "没有该公会: %s" % familyID)
        return
    
    reqCnt = min(reqCnt, 100)
@@ -149,10 +155,10 @@
            break
    # 广播给有招人权限的
    PlayerFamily.SendFamilyReqJoinInfo(familyID)
    GameWorld.DebugAnswer(curPlayer, "增加申请数:%s, 总申请:%s" % (addCnt, len(family.GetReqJoinPlayerInfo())))
    GameWorld.DebugAnswer(crossPlayer, "增加申请数:%s, 总申请:%s" % (addCnt, len(family.GetReqJoinPlayerInfo())))
    return
def __printFamilyList(curPlayer, gmList):
def __printFamilyList(crossPlayer, gmList):
    printCnt = gmList[1] if len(gmList) > 1 else 20
    fromIndex = gmList[2] if len(gmList) > 2 else 0
    
@@ -163,7 +169,7 @@
        zoneMgr = familyMgr.GetZoneFamilyMgr(zoneID)
        zoneMgr.Sort()
        familyCnt = zoneMgr.GetCount()
        GameWorld.DebugAnswer(curPlayer, "----- 【分区%s】公会总数: %s -----" % (zoneID, familyCnt))
        GameWorld.DebugAnswer(crossPlayer, "----- 【分区%s】公会总数: %s -----" % (zoneID, familyCnt))
        for index in range(fromIndex, fromIndex + printCnt):
            if index >= familyCnt:
                break
@@ -173,38 +179,38 @@
            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)
                GameWorld.DebugAnswer(crossPlayer, text)
            else:
                GameWorld.DebugLog(text)
            
    return
def __printFamilyInfo(curPlayer, gmList):
    familyID = gmList[1] if len(gmList) > 1 else curPlayer.GetFamilyID()
def __printFamilyInfo(crossPlayer, gmList):
    familyID = gmList[1] if len(gmList) > 1 else crossPlayer.GetFamilyID()
    
    familyMgr = DBDataMgr.GetFamilyMgr()
    family = familyMgr.FindFamily(familyID)
    if not family:
        GameWorld.DebugAnswer(curPlayer, "公会不存在: %s" % familyID)
        GameWorld.DebugAnswer(crossPlayer, "公会不存在: %s" % familyID)
        return
    
    zoneID = familyMgr.GetFamilyZoneID(familyID)
    GameWorld.DebugAnswer(curPlayer, "----- 【%s】 -----" % (GameWorld.CodeToGbk(family.GetName())))
    GameWorld.DebugAnswer(curPlayer, "公会ID:%s, ServerID:%s, 分区:%s" % (familyID, family.GetServerID(), zoneID))
    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()))
    GameWorld.DebugAnswer(crossPlayer, "----- 【%s】 -----" % (GameWorld.CodeToGbk(family.GetName())))
    GameWorld.DebugAnswer(crossPlayer, "公会ID:%s, ServerID:%s, 分区:%s" % (familyID, family.GetServerID(), zoneID))
    GameWorld.DebugAnswer(crossPlayer, "LV:%s, Exp:%s" % (family.GetLV(), family.GetExp()))
    GameWorld.DebugAnswer(crossPlayer, "审核:%s, 官职条件:%s, 申请数:%s" % (family.GetJoinReview(), family.GetJoinLVMin(), len(family.GetReqJoinPlayerInfo())))
    GameWorld.DebugAnswer(crossPlayer, "战旗:%s, 旗号【%s】" % (family.GetEmblemID(), GameWorld.CodeToGbk(family.GetEmblemWord())))
    GameWorld.DebugAnswer(crossPlayer, "总战力:%s, 人数:%s" % (family.GetFightPowerTotal(), family.GetCount()))
    GameWorld.DebugAnswer(crossPlayer, "盟主ID:%s" % (family.GetLeaderID()))
    for index in range(family.GetCount()):
        member = family.GetAt(index)
        playerID = member.GetPlayerID()
        fightPower = member.GetFightPowerTotal()
        GameWorld.DebugAnswer(curPlayer, "%s,ID:%s,职位:%s,战力:%s" % (index, playerID, member.GetFmLV(), fightPower))
        GameWorld.DebugAnswer(crossPlayer, "%s,ID:%s,职位:%s,战力:%s" % (index, playerID, member.GetFmLV(), fightPower))
        
    return
def __delFackFamily(curPlayer):
def __delFackFamily(crossPlayer):
    
    delCnt = 0
    familyMgr = DBDataMgr.GetFamilyMgr()
@@ -215,10 +221,10 @@
        familyMgr.DelFamily(familyID)
        
    remainCnt = len(familyMgr.GetFamilyIDList())
    GameWorld.DebugAnswer(curPlayer, "删除假公会数: %s,剩余:%s" % (delCnt, remainCnt))
    GameWorld.DebugAnswer(crossPlayer, "删除假公会数: %s,剩余:%s" % (delCnt, remainCnt))
    return
def __createFackFamily(curPlayer, gmList):
def __createFackFamily(crossPlayer, gmList):
    ## 个数 [总战力 ServerID 等级 成员数]
    
    creatCount = gmList[0] if len(gmList) > 0 else 1 # 默认1个
@@ -307,5 +313,5 @@
        createOKCnt += 1
        familyFightPower += 10000
        
    GameWorld.DebugAnswer(curPlayer, "成功创建假公会: %s,总:%s" % (creatCount, len(familyMgr.GetFamilyIDList())))
    GameWorld.DebugAnswer(crossPlayer, "成功创建假公会: %s,总:%s" % (creatCount, len(familyMgr.GetFamilyIDList())))
    return