hxp
2025-06-30 388823edfe6308cba6f76ca6dc4f20022c5cb2be
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_QueryBillboard.py
@@ -21,6 +21,7 @@
#导入
import PlayerBillboard
import ShareDefine
import GMCommon
import GameWorld
@@ -38,7 +39,9 @@
    if billType != None:
        billBoardType = billType
    
    topNum = GameWorld.ToIntDef(gmCmdDict.get('topNum', ''), 10)
    queryCount = GameWorld.ToIntDef(gmCmdDict.get('queryCount', ''), 10)
    startRank = GameWorld.ToIntDef(gmCmdDict.get('startRank', ''), 1)
    startRank = max(1, startRank)
    
    if billBoardType == None:
        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_TypeNumErr)
@@ -52,19 +55,27 @@
    if not billBoard:
        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_TypeNumErr)
        return False
    billBoardInfo = []
    
    for index in range(0, billBoard.GetCount()):
        if index >= topNum:
    billboardMgr = PlayerBillboard.GetBillboardMgr()
    billboardObj = billboardMgr.GetBillboardObj(billBoardType)
    idOrderDict = billboardObj.GetIDOrderDict()
    dataTotal = billBoard.GetCount()
    fromIndex = startRank - 1
    toIndex = fromIndex + queryCount
    billBoardInfo = []
    for index in xrange(fromIndex, toIndex):
        if index >= dataTotal:
            break
        
        billBoardData = billBoard.At(index)
        if not billBoardData:
            continue
        
        rank = idOrderDict.get(billBoardData.GetID(), index + 1)
        billBoardDict = {
                        "Index":index,
                        "Rank":rank,
                        "ID":billBoardData.GetID(),
                        "ID2":billBoardData.GetID2(),
                        "Name1":billBoardData.GetName1(),
@@ -91,7 +102,7 @@
        GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_MaxLimit)   
        return
    
    backMsg = {"BillBoardType":billBoardType, "BillBoardInfo":billBoardInfo}
    backMsg = {"BillBoardType":billBoardType, "BillBoardInfo":billBoardInfo, "dataTotal":dataTotal}
    #执行成功
    GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, backMsg)        
    return