hxp
2026-03-12 902447caa0c5c7b31dd3add5cb69053915f18fca
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
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.Qunying
#
# @todo:ȺӢ°ñ
# @author hxp
# @date 2026-03-11
# @version 1.0
#
# ÏêϸÃèÊö: ÈºÓ¢°ñ
#
#-------------------------------------------------------------------------------
#"""Version = 2026-03-11 19:00"""
#-------------------------------------------------------------------------------
 
import GameWorld
import ShareDefine
import GameLogic_Qunying
import PlayerBillboard
import PlayerControl
import DBDataMgr
import ChConfig
 
def OnExec(curPlayer, msgList):
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃȺӢÊý¾Ý: Qunying 0")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃËùÔÚÃû´Î: Qunying Ãû´Î")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÀúÊ·×î¸ß: Qunying h Ãû´Î [ÖØÖý±Àø]")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃˢдÎÊý: Qunying r ´ÎÊý")
        GameWorld.DebugAnswer(curPlayer, "Êä³öÃû´ÎÊý¾Ý: Qunying p [´ÓxÃû¿ªÊ¼ ÊýÁ¿ ]")
        return
    
    playerID = curPlayer.GetPlayerID()
    
    value1 = msgList[0]
    if value1 == "p":
        billboardMgr = DBDataMgr.GetBillboardMgr()
        billBoard = billboardMgr.GetBillboard(ShareDefine.Def_BT_Qunying)
        if not billBoard:
            return
        billBoard.SortDelayDo()
        layerIDList = billBoard.GetLayerIDList()
        fromRank = max(1, msgList[1] if len(msgList) > 1 else 1)
        dataCnt = min(msgList[2] if len(msgList) > 2 else 10, 20)
        toRank = min(len(layerIDList), fromRank + dataCnt)
        GameWorld.DebugAnswer(curPlayer, "°ñµ¥×ÜÊý¾Ý:%s/%s,idCnt=%s" % (billBoard.GetCount(), billBoard.GetMaxCount(), len(layerIDList)))
        for rank in range(fromRank, toRank + 1):
            dataID = layerIDList[rank - 1]
            GameWorld.DebugAnswer(curPlayer, "Ãû´Î%s, ID:%s" % (rank, dataID))
        return
    
    if value1 <= 0:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_QunyingRefreshCnt, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_QunyingRankHighest, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_QunyingRankSuccAward, 0)
        GameWorld.DebugAnswer(curPlayer, "ÖØÖóɹ¦!")
        
    elif value1 == "h":
        rankHighest = msgList[1] if len(msgList) > 1 else 0
        resetAward = msgList[2] if len(msgList) > 2 else 0
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_QunyingRankHighest, rankHighest)
        if resetAward:
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_QunyingRankSuccAward, 0)
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÀúÊ·×î¸ß: %s" % rankHighest)
        
    elif value1 == "r":
        refreshCnt = msgList[1] if len(msgList) > 1 else 0
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_QunyingRefreshCnt, refreshCnt)
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃˢдÎÊý: %s" % refreshCnt)
        
    elif value1 > 0:
        cmpValue = value1
        if PlayerBillboard.UpdateBillboardLayer(playerID, ShareDefine.Def_BT_Qunying, cmpValue):
            GameWorld.DebugAnswer(curPlayer, "ÉèÖÃËùÔÚÃû´Î³É¹¦: %s" % cmpValue)
        else:
            GameWorld.DebugAnswer(curPlayer, "ÉèÖÃËùÔÚÃû´ÎÖ»ÄÜΪ1~×î´óÃû´Î")
        return
    
    GameLogic_Qunying.Sync_QunyingInfo(curPlayer)
    return