hxp
2025-10-21 ec19547ca0985de3f1c4045411ee6c171204e535
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.HJG
#
# @todo:»Ã¾³¸ó
# @author hxp
# @date 2025-10-15
# @version 1.0
#
# ÏêϸÃèÊö: »Ã¾³¸ó
#
#-------------------------------------------------------------------------------
#"""Version = 2025-10-15 09:30"""
#-------------------------------------------------------------------------------
 
import ChConfig
import GameWorld
import IpyGameDataPY
import PlayerControl
import PlayerHJG
import ChatBox
import Face
 
def OnExec(curPlayer, msgList):
    
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr())
        GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó³ÆºÅ: HJG t1 ³ÆºÅID [ÓÐЧÃë]")
        GameWorld.DebugAnswer(curPlayer, "ɾ³ý³ÆºÅ: HJG t0 [³ÆºÅID]")
        GameWorld.DebugAnswer(curPlayer, "³ÆºÅÐǼ¶: HJG ts ³ÆºÅID ÐǼ¶")
        GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÐÎÏó: HJG m1 ÐÎÏóID [ÓÐЧÃë]")
        GameWorld.DebugAnswer(curPlayer, "ɾ³ýÐÎÏó: HJG m0 [ÐÎÏóID]")
        GameWorld.DebugAnswer(curPlayer, "ÐÎÏóÐǼ¶: HJG ms ÐÎÏóID ÐǼ¶")
        GameWorld.DebugAnswer(curPlayer, "ÓÐЧÃë:²»Ìî¶Á±í,0-ÓÀ¾Ã,>0Ö¸¶¨ÓÐЧÃë")
        Face.OnExec(curPlayer, msgList)
        ChatBox.OnExec(curPlayer, msgList)
        return
    
    syncTitleIDList = []
    syncModelIDList = []
    ipyDataMgr = IpyGameDataPY.IPY_Data()
    value1 = msgList[0]
    
    # É¾³ý³ÆºÅ
    if value1 == "t1":
        titleID = msgList[1] if len(msgList) > 1 else 0
        if not titleID:
            for index in range(ipyDataMgr.GetTitleCount()):
                ipyData = ipyDataMgr.GetTitleByIndex(index)
                titleID = ipyData.GetTitleID()
                if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_TitleState, titleID):
                    continue
                GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_TitleState, titleID, 0)
                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleEndTime % titleID, 0)
                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, 0)
                syncTitleIDList.append(titleID)
        else:
            ipyData = IpyGameDataPY.GetIpyGameData("Title", titleID)
            if not ipyData:
                GameWorld.DebugAnswer(curPlayer, "¸Ã³ÆºÅ²»´æÔÚ:%s" % titleID)
                return
            GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_TitleState, titleID, 0)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleEndTime % titleID, 0)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, 0)
            syncTitleIDList.append(titleID)
        GameWorld.DebugAnswer(curPlayer, "ɾ³ý³ÆºÅ:%s" % syncTitleIDList)
        
    # Ìí¼Ó³ÆºÅ
    elif value1 == "t1":
        titleID = msgList[1] if len(msgList) > 1 else 0
        expireTimes = msgList[2] if len(msgList) > 2 else None
        if PlayerHJG.AddTitle(curPlayer, titleID, expireTimes, True):
            endTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TitleEndTime % titleID)
            endTimeStr = "ÓÀ¾Ã" if not endTime else GameWorld.ChangeTimeNumToStr(endTime)
            GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó³ÆºÅ³É¹¦:%s,µ½ÆÚ:%s" % (titleID, endTimeStr))
        else:
            GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó³ÆºÅʧ°Ü:%s" % (titleID))
            
    # ³ÆºÅÐǼ¶
    elif value1 == "ts":
        titleID = msgList[1] if len(msgList) > 1 else 0
        setStar = msgList[2] if len(msgList) > 2 else 0
        ipyData = IpyGameDataPY.GetIpyGameData("Title", titleID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "¸Ã³ÆºÅ²»´æÔÚ:%s" % titleID)
            return
        setStar = min(setStar, ipyData.GetStarMax())
        GameWorld.DebugAnswer(curPlayer, "ÉèÖóƺÅÐǼ¶:%s,ÐÇ:%s" % (titleID, setStar))
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, setStar)
        syncTitleIDList.append(titleID)
        
    # É¾³ýÐÎÏó
    elif value1 == "m0":
        modelID = msgList[1] if len(msgList) > 1 else 0
        if not modelID:
            for index in range(ipyDataMgr.GetModelCount()):
                ipyData = ipyDataMgr.GetModelByIndex(index)
                modelID = ipyData.GetModelID()
                if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_ModelState, modelID):
                    continue
                GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_ModelState, modelID, 0)
                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelEndTime % modelID, 0)
                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelStar % modelID, 0)
                syncModelIDList.append(modelID)
        else:
            ipyData = IpyGameDataPY.GetIpyGameData("Model", modelID)
            if not ipyData:
                GameWorld.DebugAnswer(curPlayer, "¸ÃÐÎÏó²»´æÔÚ:%s" % modelID)
                return
            GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_ModelState, modelID, 0)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelEndTime % modelID, 0)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelStar % modelID, 0)
            syncModelIDList.append(modelID)
        GameWorld.DebugAnswer(curPlayer, "ɾ³ýÐÎÏó:%s" % syncModelIDList)
        
    # Ìí¼ÓÐÎÏó
    elif value1 == "m1":
        modelID = msgList[1] if len(msgList) > 1 else 0
        expireTimes = msgList[2] if len(msgList) > 2 else None
        if PlayerHJG.AddModel(curPlayer, modelID, expireTimes, True):
            endTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ModelEndTime % modelID)
            endTimeStr = "ÓÀ¾Ã" if not endTime else GameWorld.ChangeTimeNumToStr(endTime)
            GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÐÎÏó³É¹¦:%s,µ½ÆÚ:%s" % (modelID, endTimeStr))
        else:
            GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÐÎÏóʧ°Ü:%s" % (modelID))
                    
    # ÐÎÏóÐǼ¶
    elif value1 == "ms":
        modelID = msgList[1] if len(msgList) > 1 else 0
        setStar = msgList[2] if len(msgList) > 2 else 0
        ipyData = IpyGameDataPY.GetIpyGameData("Model", modelID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "¸ÃÐÎÏó²»´æÔÚ:%s" % modelID)
            return
        setStar = min(setStar, ipyData.GetStarMax())
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÐÎÏóÐǼ¶:%s,ÐÇ:%s" % (modelID, setStar))
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ModelStar % modelID, setStar)
        syncModelIDList.append(modelID)
        
    if syncTitleIDList:
        PlayerHJG.RefreshHJGAttr(curPlayer)
        PlayerHJG.SyncTitleInfo(curPlayer, syncTitleIDList)
        
    if syncModelIDList:
        PlayerHJG.RefreshHJGAttr(curPlayer)
        PlayerHJG.SyncModelInfo(curPlayer, syncModelIDList)
    return