#!/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