#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.BillboardData # # @todo:°ñµ¥Êý¾Ý # @author hxp # @date 2019-03-30 # @version 1.0 # # ÏêϸÃèÊö: °ñµ¥Êý¾Ý # #------------------------------------------------------------------------------- #"""Version = 2019-03-30 17:00""" #------------------------------------------------------------------------------- import GameWorld import ShareDefine import PlayerBillboard def __Help(curPlayer, errInfo=""): GameWorld.DebugAnswer(curPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr()) if errInfo: GameWorld.DebugAnswer(curPlayer, errInfo) GameWorld.DebugAnswer(curPlayer, "ÐÂÔö°ñµ¥¼ÙÊý¾Ý: BillboardData ÀàÐÍ ÌõÊý ±È½ÏÖµ1 ¿ÉÑ¡²ÎÊý(±È½ÏÖµ2 ³£¹æÖµ1 ³£¹æÖµ2)") GameWorld.DebugAnswer(curPlayer, "ɾ³ý°ñµ¥¼ÙÊý¾Ý: BillboardData ÀàÐÍ") GameWorld.DebugAnswer(curPlayer, "°ñµ¥ÀàÐÍ:0-Õ½Á¦,1-Áú»ê,2-ÁéÑþ,4-µÈ¼¶,5-×øÆï,6-Áé³è,7-·ûÓ¡,8-ÍÑ»ú,9-¾³½ç,19-ÖúÕ½") GameWorld.DebugAnswer(curPlayer, "¿ª·þ»î¶¯°ñÀàÐÍ:11-Ç¿»¯,12-×øÆï,13-±¦Ê¯,14-³å¼¶,15-¾³½ç,16-Õ½Á¦,18-·ûÓ¡,20-Éñ±ø,21-³äÖµ,22-Áé³è,24-Áé¸ù,25-ÉýÐÇ") GameWorld.DebugAnswer(curPlayer, "ÔËÓª»î¶¯°ñÀàÐÍ:17-ÏɽçÊ¢µä,23-ÏɽçÊ¢µä2,33-bossƾ֤") GameWorld.DebugAnswer(curPlayer, "÷ÈÁ¦°ñµ¥ÀàÐÍ:30-×ܰñ,31-Öܰñ,32-ÈÕ°ñ") return ## Ö´ÐÐÂß¼­ # @param curPlayer µ±Ç°Íæ¼Ò # @param gmList [] # @return None def OnExec(curPlayer, gmList): paramLen = len(gmList) if not paramLen: __Help(curPlayer) return billboardIndex = gmList[0] if billboardIndex < 0 or billboardIndex >= ShareDefine.Def_BT_Max: __Help(curPlayer, "°ñµ¥ÀàÐͲ»´æÔÚ!") return billBoard = GameWorld.GetBillboard().FindBillboard(billboardIndex) curDataCount = billBoard.GetCount() maxDataCount = billBoard.GetMaxCount() # Çå³ý°ñµ¥¼ÙÊý¾Ý if paramLen == 1: delCount = 0 while curDataCount > 0: curDataCount -= 1 index = curDataCount billBoardData = billBoard.At(index) if billBoardData.GetID() <= maxDataCount: billBoard.DeleteByIndex(index) delCount += 1 GameWorld.DebugAnswer(curPlayer, "ɾ³ý°ñµ¥(%s)Êý¾Ý: %s Ìõ" % (billboardIndex, delCount)) return if paramLen < 3: __Help(curPlayer) return billboardIndex, count, cmpValue1 = gmList[:3] cmpValue2 = gmList[3] if len(gmList) > 3 else 0 value1 = gmList[4] if len(gmList) > 4 else 0 value2 = gmList[5] if len(gmList) > 5 else 0 autoSort = False bType2 = 0 curPlayerOpInfo = "" count = min(count, maxDataCount - curDataCount) FakeName = "¼ÙÃû×Ö".decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding()) for i in xrange(count): dataPlayerID = curDataCount + 1 + i dataPlayerName = "%s%s" % (FakeName, i) dataCmpValue1 = max(0, cmpValue1 - i) dataCmpValue2 = max(0, cmpValue2 - i) PlayerBillboard.UpdatePlayerBillboard(dataPlayerID, dataPlayerName, curPlayerOpInfo, billboardIndex, bType2, value1, value2, dataCmpValue1, autoSort, dataCmpValue2) billBoard.Sort() GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó°ñµ¥(%s)Êý¾Ý: %s Ìõ" % (billboardIndex, count)) return