hxp
2025-10-22 5925409bdea13d819e4e4356a51043de5f3f9bd8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.Family
#
# @todo:ÏÉÃË
# @author hxp
# @date 2025-10-10
# @version 1.0
#
# ÏêϸÃèÊö: ÏÉÃË
#
#-------------------------------------------------------------------------------
#"""Version = 2025-10-10 21:00"""
#-------------------------------------------------------------------------------
 
import GameWorld
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 l Ö÷¶¯À뿪´ÎÊý ±»Ìß´ÎÊý ÉÏ´ÎÊÇ·ñÖ÷¶¯  À뿪¶à¾ÃÁË")
        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()
    familyMgr = DBDataMgr.GetFamilyMgr()
    curFamily = familyMgr.FindFamily(familyID) if familyID else None
    if not curFamily:
        GameWorld.DebugAnswer(curPlayer, "Íæ¼Òδ¼ÓÈëÏÉÃË!")
        return
    
    if value == "lv":
        lv = msgList[1] if len(msgList) > 1 else 1
        exp = msgList[2] if len(msgList) > 2 else 0
        if not IpyGameDataPY.GetIpyGameData("Family", lv):
            GameWorld.DebugAnswer(curPlayer, "ÏÉÃ˵ȼ¶²»´æÔÚ: %s" % (lv))
            return
        curFamily.SetLV(lv)
        curFamily.SetExp(exp)
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÏÉÃ˵ȼ¶:%s, exp=%s" % (lv, exp))
        
    elif value == "e":
        emblemID = msgList[1] if len(msgList) > 1 else 0
        setExpireTimes = msgList[2] if len(msgList) > 2 else None
        emblemActionObj = PlayerFamilyEmblem.AddFamilyEmblem(curFamily.GetID(), emblemID, setExpireTimes)
        if not emblemActionObj:
            GameWorld.DebugAnswer(curPlayer, "¸Ã»ÕÕÂIDÎÞ·¨Ìí¼Ó")
            return
        endTime = PlayerFamilyEmblem.GetActionEmblemEndTime(emblemActionObj)
        GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó»ÕÕÂ(%s)µ½ÆÚ:%s" % (emblemID, GameWorld.ChangeTimeNumToStr(endTime)))
        return
    
    PlayerFamily.Sync_FamilyInfo(curPlayer)
    return