#!/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")
|
GameWorld.DebugAnswer(curPlayer, "÷ÈÁ¦°ñµ¥ÀàÐÍ:30-×ܰñ,31-Öܰñ,31-ÈÕ°ñ")
|
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
|
|
|