hxp
2026-01-08 de44f98f2a8a2b0c12d3482162f1e30e796d7b94
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Family.py
@@ -16,17 +16,36 @@
#-------------------------------------------------------------------------------
import GameWorld
import CreateFamily
import IpyGameDataPY
import PlayerFamilyEmblem
import PlayerFamily
import DBDataMgr
import PlayerControl
import time
def OnExec(curPlayer, msgList):
    
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "设置等级: Family lv 等级 经验")
        GameWorld.DebugAnswer(curPlayer, "设置徽章: Family e 徽章ID [剩余时间秒]")
        GameWorld.DebugAnswer(curPlayer, "设置贡献: Family c 今日贡献 累计贡献 [成员ID]")
        GameWorld.DebugAnswer(curPlayer, "设置离开: Family l 主动离开次数 被踢次数 上次是否主动  离开多久了")
        GameWorld.DebugAnswer(curPlayer, "添加成员: Family m 人数 [仙盟ID]")
        GameWorld.DebugAnswer(curPlayer, "成员离线: Family ml 成员ID 离线分钟数")
        GameWorld.DebugAnswer(curPlayer, "创建仙盟相关使用命令: CreateFamily")
        return
    value = msgList[0]
    if value == "l":
        leaveCnt = msgList[1] if len(msgList) > 1 else 0
        kickedCnt = msgList[2] if len(msgList) > 2 else 0
        lastVoluntarily = msgList[3] if len(msgList) > 3 else 0
        leavePassMinutes = msgList[4] if len(msgList) > 4 else 0
        leaveInfo = PlayerControl.SetLeaveFamilyInfo(curPlayer, leaveCnt, kickedCnt, lastVoluntarily)
        leaveTime = PlayerControl.SetLeaveFamilyTimeEx(curPlayer, int(time.time()) - leavePassMinutes * 60)
        GameWorld.DebugAnswer(curPlayer, "设置离开: Info=%s,%s" % (leaveInfo, GameWorld.ChangeTimeNumToStr(leaveTime)))
        return
    
    familyID = curPlayer.GetFamilyID()
@@ -35,8 +54,6 @@
    if not curFamily:
        GameWorld.DebugAnswer(curPlayer, "玩家未加入仙盟!")
        return
    value = msgList[0]
    
    if value == "lv":
        lv = msgList[1] if len(msgList) > 1 else 1
@@ -57,7 +74,33 @@
            return
        endTime = PlayerFamilyEmblem.GetActionEmblemEndTime(emblemActionObj)
        GameWorld.DebugAnswer(curPlayer, "添加徽章(%s)到期:%s" % (emblemID, GameWorld.ChangeTimeNumToStr(endTime)))
        return
        return
    
    elif value == "m":
        CreateFamily.OnExec(curPlayer, msgList)
        return
    elif value == "c":
        contribDay = msgList[1] if len(msgList) > 1 else 0
        contribTotal = msgList[2] if len(msgList) > 2 else 0
        memID = msgList[3] if len(msgList) > 3 else curPlayer.GetPlayerID()
        member = curFamily.FindMember(memID)
        if not member:
            GameWorld.DebugAnswer(curPlayer, "不存在该成员ID:%s" % memID)
            return
        member.SetContribDay(contribDay)
        member.SetContribTotal(contribTotal)
        GameWorld.DebugAnswer(curPlayer, "设置贡献:%s/%s, ID:%s" % (contribDay, contribTotal, memID))
    elif value == "ml":
        memID = msgList[1] if len(msgList) > 1 else 0
        logoutMinutes = msgList[2] if len(msgList) > 2 else 0
        member = curFamily.FindMember(memID)
        if not member:
            GameWorld.DebugAnswer(curPlayer, "不存在该成员ID:%s" % memID)
            return
        member.SetOffTime(int(time.time()) - logoutMinutes * 60)
        GameWorld.DebugAnswer(curPlayer, "成员ID:%s,离线时间:%s" % (memID, GameWorld.ChangeTimeNumToStr(member.GetOffTime())))
    PlayerFamily.Sync_FamilyInfo(curPlayer)
    return