hxp
15 小时以前 5b315b895da27096b2b1d58c4d9b6ece5440c770
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
@@ -64,11 +64,16 @@
        __addFackMember(crossPlayer, gmList)
        return
    
    if value1 == "ds":
        __delServerMember(crossPlayer, gmList)
        return
    creatCount = value1
    if creatCount <= 0:
        __delFackFamily(crossPlayer)
        __delFackFamily(crossPlayer, gmList)
        return
    __createFackFamily(crossPlayer, gmList)
    elif isinstance(creatCount, int) and creatCount > 0:
        __createFackFamily(crossPlayer, gmList)
    return
def OnExec(curPlayer, gmList):
@@ -81,13 +86,61 @@
        GameWorld.DebugAnswer(curPlayer, "输出公会明细: CreatFamily pf 公会ID")
        GameWorld.DebugAnswer(curPlayer, "添加假申请人: CreatFamily sq [申请数 公会ID]")
        GameWorld.DebugAnswer(curPlayer, "添加公会成员: CreatFamily m 人数 [公会ID]")
        GameWorld.DebugAnswer(curPlayer, "踢出区服成员: CreatFamily ds 服务器ID")
        GameWorld.DebugAnswer(curPlayer, "删除本服公会: CreatFamily df")
        GameWorld.DebugAnswer(curPlayer, "重置互通状态: CreatFamily c")
        return
    
    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
    if not crossPlayer:
        return
    
    value1 = gmList[0]
    if value1 == "df":
        __delFackFamily(curPlayer, [0, 1])
        return
    if value1 == "c":
        if not GameWorld.IsMainServer():
            return
        if not DBDataMgr.GetFamilyMgr().GetCurCrossServerID():
            GameWorld.DebugAnswer(curPlayer, "本服未互通")
            return
        DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_FamilyCrossState, 0)
        DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_FamilyTransDataTime, 0)
        GameWorld.DebugAnswer(curPlayer, "已重置互通状态请重登或重启服务器")
        return
    OnExecCross(crossPlayer, gmList)
    return
def __delServerMember(crossPlayer, gmList):
    delServerID = gmList[1] if len(gmList) > 1 else 1
    GameWorld.DebugAnswer(crossPlayer, "踢出指定区服成员!delServerID=%s" % delServerID)
    delCnt, delFamilyCnt = 0, 0
    familyMgr = DBDataMgr.GetFamilyMgr()
    for familyID in familyMgr.GetFamilyIDList():
        family = familyMgr.FindFamily(familyID)
        for index in range(family.GetCount())[::-1]:
            member = family.GetAt(index)
            memID = member.GetPlayerID()
            if member.GetServerID() != delServerID:
                continue
            if member.GetFmLV() == IPY_PlayerDefine.fmlLeader:
                GameWorld.DebugAnswer(crossPlayer, "踢出区服成员是会长直接删公会!%s" % familyID)
                familyMgr.DelFamily(familyID)
                delFamilyCnt += 1
                break
            GameWorld.DebugAnswer(crossPlayer, "踢出区服成员!ID=%s,ServerID=%s" % (memID, delServerID))
            family.DeleteMember(memID)
            delCnt += 1
    if not delCnt and not delFamilyCnt:
        GameWorld.DebugAnswer(crossPlayer, "没有该区服成员了")
    else:
        GameWorld.DebugAnswer(crossPlayer, "踢出成员数:%s" % delCnt)
        if delFamilyCnt:
            GameWorld.DebugAnswer(crossPlayer, "删除公会数:%s" % delFamilyCnt)
        GameWorld.DebugAnswer(crossPlayer, "请正常关服重启测试!")
    return
def __addFackMember(crossPlayer, gmList):
@@ -216,18 +269,18 @@
        
    return
def __delFackFamily(crossPlayer):
def __delFackFamily(crossPlayer, gmList):
    isAll = gmList[1] if len(gmList) > 1 else 0
    delCnt = 0
    familyMgr = DBDataMgr.GetFamilyMgr()
    for familyID in familyMgr.GetFamilyIDList():
        if familyID > ShareDefine.FackFamilyIDMax:
        if not isAll and familyID > ShareDefine.FackFamilyIDMax:
            continue
        delCnt += 1
        familyMgr.DelFamily(familyID)
        
    remainCnt = len(familyMgr.GetFamilyIDList())
    GameWorld.DebugAnswer(crossPlayer, "删除假公会数: %s,剩余:%s" % (delCnt, remainCnt))
    GameWorld.DebugAnswer(crossPlayer, "删除公会数: %s,剩余:%s" % (delCnt, remainCnt))
    return
def __createFackFamily(crossPlayer, gmList):