hxp
2025-10-27 a451e68aed69b3c936d4afe50a0cf3c43680e90c
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
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.Gubao
#
# @todo:¹Å±¦
# @author hxp
# @date 2025-10-11
# @version 1.0
#
# ÏêϸÃèÊö: ¹Å±¦
#
#-------------------------------------------------------------------------------
#"""Version = 2025-10-11 21:00"""
#-------------------------------------------------------------------------------
 
import GameWorld
import IpyGameDataPY
import ItemControler
import PlayerGubao
 
def OnExec(curPlayer, msgList):
    
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦: Gubao 0")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦: Gubao ¹Å±¦ID [µÈ¼¶ ÐǼ¶ ²ã¼¶]")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃË鯬: Gubao p ¹Å±¦ID ÊýÁ¿")
        return
    
    gubaoIDList = []
    value1 = msgList[0]
    if len(msgList) == 1:
        if msgList[0] == 0:
            ipyDataMgr = IpyGameDataPY.IPY_Data()
            for index in range(ipyDataMgr.GetGubaoCount()):
                ipyData = ipyDataMgr.GetGubaoByIndex(index)
                gubaoID = ipyData.GetGubaoID()
                itemID = ipyData.GetUnlockItemID()
                if ItemControler.GetItemCountByID(curPlayer, itemID):
                    ItemControler.SetItemCountByID(curPlayer, itemID, 0) # ÖØÖÃ
                if not PlayerGubao.IsGubaoActivated(curPlayer, gubaoID):
                    continue
                if gubaoID not in gubaoIDList:
                    gubaoIDList.append(gubaoID)
                PlayerGubao.SetGubaoInfo(curPlayer, gubaoID, 0, 0, 0)
            GameWorld.DebugAnswer(curPlayer, "ÖØÖùű¦OK")
        else:
            return
        
    elif value1 == "p":
        gubaoID = msgList[1] if len(msgList) > 1 else 0
        pieceCount = msgList[2] if len(msgList) > 2 else 0
        ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID)
            return
        itemID = ipyData.GetUnlockItemID()
        ItemControler.SetItemCountByID(curPlayer, itemID, pieceCount)
        GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦(%s)Ë鯬ID:%s,ÊýÁ¿:%s" % (gubaoID, itemID, pieceCount))
        return
    
    else:
        gubaoID = value1
        lv = msgList[1] if len(msgList) > 1 else 1
        star = msgList[2] if len(msgList) > 2 else 0
        layer = msgList[3] if len(msgList) > 3 else 0
        ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "²»´æÔڸùű¦!gubaoID=%s" % gubaoID)
            return
        quality = ipyData.GetGubaoQuality()
        layer = min(layer, ipyData.GetSpecEffLayerMax())
        
        starIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoStar", quality)
        if starIpyDataList:
            lastStarIpyData = starIpyDataList[-1]
            star = min(star, lastStarIpyData.GetGubaoStar())
            
        lvIpyDataList = IpyGameDataPY.GetIpyGameDataList("GubaoLV", quality)
        if lvIpyDataList:
            lastLVIpyData = lvIpyDataList[-1]
            lv = min(lv, lastLVIpyData.GetLessEqualLV())
            
        GameWorld.DebugAnswer(curPlayer, "ÉèÖùű¦:%s,¼¶(%s),ÐÇ(%s),²ã(%s)" % (gubaoID, lv, star, layer))
        PlayerGubao.SetGubaoInfo(curPlayer, gubaoID, lv, star, layer)
        gubaoIDList.append(gubaoID)
        
    PlayerGubao.RefreshGubaoAttr(curPlayer)
    PlayerGubao.Sync_GubaoInfo(curPlayer, gubaoIDList) 
    return