#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Player.PlayerBillboard
|
#
|
# @todo:ÅÅÐаñ
|
# @author hxp
|
# @date 2018-03-06
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ÅÅÐаñ£¬±¾·þ¡¢¿ç·þͨÓÃ
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2018-03-06 11:00"""
|
#-------------------------------------------------------------------------------
|
|
import ChConfig
|
import GameWorld
|
import ShareDefine
|
import PlayerControl
|
import OpenServerCampaign
|
import ChPyNetSendPack
|
import NetPackCommon
|
import IpyGameDataPY
|
import GameFuncComm
|
import DBDataMgr
|
|
import time
|
|
def OnDay():
|
|
drBillboardTypeList = []
|
if GameWorld.IsCrossServer():
|
drBillboardTypeList = ShareDefine.CrossBillboardTypeList
|
else:
|
drBillboardTypeList = IpyGameDataPY.GetFuncEvalCfg("BillboardSet", 1)
|
|
billboardMgr = DBDataMgr.GetBillboardMgr()
|
for billboardType in drBillboardTypeList:
|
if billboardType in [ShareDefine.Def_CBT_BossTrialSubmitBak, ShareDefine.Def_CBT_BossTrialSubmitFamilyBak, ShareDefine.Def_CBT_CrossRealmPK]:
|
continue
|
groupList = billboardMgr.GetBillboardGroupList(billboardType)
|
for billboardType, groupValue1, groupValue2 in groupList:
|
billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
|
billboardObj.SaveDRData("OnDay")
|
|
return
|
|
def DoBillboardOpen(curPlayer):
|
## ÅÅÐаñ¿ªÆôʱÐèÒª´¦ÀíµÄ
|
UpdatePlayerBillboardOnLeaveServer(curPlayer, True) # Ö÷¶¯Í¬²½Ò»´Î°ñµ¥
|
OpenServerCampaign.DoBillboardOpen(curPlayer) # ͬ²½¿ª·þ»î¶¯°ñµ¥
|
return
|
|
def BillboardOnLogin(curPlayer):
|
# ÉÏÏßĬÈÏͬ²½ÅÅÐаñ
|
UpdatePlayerBillboardOnLeaveServer(curPlayer) #ÅÅÐаñÒÑʵʱ¸üУ¬¹ÊÉÏÏß²»ÔÙͬ²½
|
return
|
|
def GetBillboardOperateInfo(curPlayer):
|
# ÅÅÐаñÖÐËù±£´æµÄÔËÓªÉÌÏà¹ØÐÅÏ¢
|
platform = curPlayer.GetAccID()
|
return platform
|
|
def GetBillboardJob(curPlayer): return curPlayer.GetJob()
|
|
def UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=False):
|
##ÏÂÏ߸üÐÂÍæ¼ÒÅÅÐаñ
|
if GameWorld.IsCrossServer():
|
# ¿ç·þ·þÎñÆ÷²»Óøüб¾·þ°ñ
|
return
|
|
UpdatePlayerLVBillboard(curPlayer) # µÈ¼¶°ñ
|
UpdatePlayerFPTotalBillboard(curPlayer, True) # Õ½¶·Á¦°ñ
|
UpdateHorseBillboard(curPlayer, True, False) # ×øÆï°ñ
|
UpdatePyPetBillboard(curPlayer, True, False) # Áé³è°ñ
|
UpdateRealmBillboard(curPlayer) # ¾³½ç°ñ
|
|
if isAll:
|
UpdateRuneTowerBillboard(curPlayer)
|
|
return
|
|
def UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate=False, isCheckRule=True):
|
##¸üÐÂÍæ¼Ò×ÜÕ½¶·Á¦
|
|
playerFightPower = PlayerControl.GetFightPower(curPlayer)
|
if not __CheckFightPowerCanUpdate(curPlayer, ChConfig.Def_PDict_FightPower_Total, playerFightPower,
|
isForceUpdate, isCheckRule, ChConfig.Def_PDict_FightPower_TotalEx):
|
return
|
|
fightPower = playerFightPower % ChConfig.Def_PerPointValue
|
fightPowerEx = playerFightPower / ChConfig.Def_PerPointValue
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_Total, fightPower,
|
ChConfig.Def_PDictType_FightPower)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_TotalEx, fightPowerEx,
|
ChConfig.Def_PDictType_FightPower)
|
|
GameWorld.DebugLog("¸üÐÂ×ÜÕ½¶·Á¦£ºplayerFightPower=%s" % (playerFightPower), curPlayer.GetPlayerID())
|
|
UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower, fightPowerEx, fightPower)
|
|
# if bType == ShareDefine.Def_BT_FightPower:
|
# playerID = bID
|
# fightPowerTotal = cmpValue * ChConfig.Def_PerPointValue + cmpValue2
|
# familyID = exInfo[0]
|
# playerJob = bType2
|
#
|
# curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
# if curPlayer:
|
# PlayerControl.SetFightPower(curPlayer, fightPowerTotal)
|
#
|
# #¸üÐÂÕ½Ã˳ÉÔ±Õ½Á¦
|
# PlayerFamily.UpdFamilyMemberFightPower(familyID, playerID, fightPowerTotal)
|
#
|
# #Ö°ÒµÕ½Á¦°ñ
|
# job = playerJob % 10
|
# if job in ShareDefine.JobFightPowerBillboardDict:
|
# jobBType = ShareDefine.JobFightPowerBillboardDict[job]
|
# UpdatePlayerBillboard(bID, bName, bName2, jobBType, bType2, value1, value2, cmpValue, autoSort, cmpValue2, **kwargs)
|
return
|
|
def __CheckFightPowerCanUpdate(curPlayer, key, fightPower, isForceUpdate=False, isCheckRule=True, key2=None):
|
''' ¼ì²éÍæ¼Ò¿É·ñ¸üÐÂÕ½¶·Á¦
|
@param curPlayer Íæ¼ÒʵÀý
|
@param key Õ½¶·Á¦ÀàÐͶÔÓ¦key
|
@param fightPower µ±Ç°Õ½¶·Á¦
|
@param isForceUpdate ÊÇ·ñÇ¿ÖÆ¸üУ¨ÈôÉèÖÃÇ¿ÖÆ¸üУ¬ÔÚijЩDZ¹æÔòÏÂÒ²²»Ò»¶¨ÄÜÇ¿ÖÆ¸üУ¬ÈçGMµÈ£©
|
@param isCheckRule ÊÇ·ñ¼ì²éÕ½Á¦·¶Î§¸üвîÖµ
|
@return True-¿É¸üÐÂ
|
'''
|
if fightPower <= 0:
|
return False
|
|
historyFightPower = curPlayer.NomalDictGetProperty(key, 0, ChConfig.Def_PDictType_FightPower)
|
if key2 != None:
|
historyFightPower += curPlayer.NomalDictGetProperty(key2, 0, ChConfig.Def_PDictType_FightPower) * ChConfig.Def_PerPointValue
|
|
if not __CanPlayerBillboardComm(curPlayer):
|
return False
|
|
if isForceUpdate:
|
GameWorld.DebugLog("Õ½¶·Á¦¸üмì²é£ºÇ¿ÖƸüРkey=%s,fightPower=%s,history=%s"
|
% (key, fightPower, historyFightPower), curPlayer.GetPlayerID())
|
return True
|
|
if fightPower == historyFightPower:
|
GameWorld.DebugLog("Õ½¶·Á¦¸üмì²é£ºÓëÉÏ´ÎÏàͬ£¬Ä¬Èϲ»¸üРkey=%s,fightPower=%s,history=%s"
|
% (key, fightPower, historyFightPower), curPlayer.GetPlayerID())
|
return False
|
|
return True
|
|
def UpdateHorseBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
|
##¸üÐÂÍæ¼Ò×øÆïÅÅÐаñ
|
|
HorseFightPower = PlayerControl.GetMFPFightPower(curPlayer, ShareDefine.Def_MFPType_Horse)
|
if not HorseFightPower:
|
return
|
|
fightPower = HorseFightPower % ChConfig.Def_PerPointValue
|
fightPowerEx = HorseFightPower / ChConfig.Def_PerPointValue
|
|
UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower_Horse, fightPowerEx, fightPower)
|
|
if isUpdateTotal:
|
UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate)
|
return
|
|
def UpdatePyPetBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
|
## ¸üгèÎïÅÅÐаñ
|
petMaxAtk = PlayerControl.GetPetMaxAtk(curPlayer)
|
if not petMaxAtk:
|
return
|
UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower_Pet, petMaxAtk)
|
|
if isUpdateTotal:
|
UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate)
|
return
|
|
def UpdatePlayerLVBillboard(curPlayer, isForceUpdate=True):
|
##¸üÐÂÍæ¼ÒµÈ¼¶ÅÅÐаñ
|
UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_LV, curPlayer.GetLV())
|
return
|
|
def UpdateRuneTowerBillboard(curPlayer):
|
##¸üÐÂÍæ¼Ò·ûÓ¡ËþÅÅÐаñ
|
passLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
|
if not passLV:
|
return
|
UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_TrialTower, passLV)
|
return
|
|
def UpdateRealmBillboard(curPlayer):
|
##¾³½ç°ñ
|
if not curPlayer.GetOfficialRank():
|
return
|
UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_Realm, curPlayer.GetOfficialRank())
|
return
|
|
def __CanPlayerBillboardComm(curPlayer):
|
## Íæ¼Ò¿É·ñÉϰñͨÓüì²é
|
if not GameWorld.IsNormalPlayer(curPlayer):
|
return False
|
if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Billboard):
|
GameWorld.DebugLog("ÅÅÐаñ먦Æô,ÎÞ·¨Éϰñ!curLV=%s" % (curPlayer.GetLV()), curPlayer.GetPlayerID())
|
return False
|
|
return True
|
|
def UpdatePlayerBillboard(curPlayer, bType, cmpValue, cmpValue2=0, cmpValue3=0, value1=0, value2=0, autoSort=False, **kwargs):
|
## ¸üÐÂÍæ¼ÒÅÅÐаñ
|
|
#if not cmpValue and not cmpValue2 and not cmpValue3:
|
# return
|
|
if not __CanPlayerBillboardComm(curPlayer):
|
return
|
|
playerJob = GetBillboardJob(curPlayer)
|
playerID = curPlayer.GetID()
|
playerName = curPlayer.GetName()
|
playerOpInfo = GetBillboardOperateInfo(curPlayer)
|
kwargs["value3"] = curPlayer.GetFace()
|
kwargs["value4"] = curPlayer.GetFacePic()
|
if bType in ShareDefine.BTValue1_OfficialRankList:
|
value1 = curPlayer.GetOfficialRank()
|
|
groupValue1 = 0
|
UpdateBillboard(bType, groupValue1, playerID, playerName, playerOpInfo, playerJob, value1, value2,
|
cmpValue, cmpValue2, cmpValue3, autoSort=autoSort, **kwargs)
|
return
|
|
def UpdateBillboard(billboardType, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue,
|
cmpValue2=0, cmpValue3=0, groupValue2=0, id2=0, autoSort=True, **kwargs):
|
''' ¸üпç·þÅÅÐаñ
|
@param billboardType: ÅÅÐаñË÷ÒýÀàÐÍ£¬Í¬¸ö°ñµ¥ÀàÐÍ¿ÉÒÔÓжà¸ö·Ö×é°ñµ¥Êý¾Ý£¬¶ÀÁ¢ÅÅÐò
|
@param groupValue1: °ñµ¥·Ö×é1
|
@param dataID: °ñµ¥Î¨Ò»Êý¾ÝID£¬ÈçÍæ¼ÒIDµÈ
|
@param name1: ÏÔʾÃû³Æ1£¬²»Ó°ÏìÅÅÐò
|
@param name2: ÏÔʾÃû³Æ2£¬²»Ó°ÏìÅÅÐò
|
@param type2: °ñµ¥Êý¾ÝÀàÐÍ2£¬×Ô¶¨Ò壬һ°ãΪְҵµÈ¶þ¼¶·ÖÀ࣬²»Ó°ÏìÅÅÐò
|
@param value1: ÏÔʾֵ1£¬²»Ó°ÏìÅÅÐò
|
@param value2: ÏÔʾֵ2£¬²»Ó°ÏìÅÅÐò
|
@param cmpValue: ±È½ÏÖµ1
|
@param cmpValue2: ±È½ÏÖµ2
|
@param cmpValue3: ±È½ÏÖµ3£¬Ã»É趨µÄ»°Ä¬ÈÏΪʱ¼ä´Á±È½ÏÖµ
|
@param groupValue1: °ñµ¥·Ö×é2
|
@param id2: À©Õ¹Êý¾ÝID2
|
@param autoSort: ÊÇ·ñÅÅÐò£¬Ä¬ÈÏTrue
|
@return: ÊÇ·ñÉϰñ¸üаñµ¥
|
'''
|
if GameWorld.IsCrossServer():
|
if billboardType not in ShareDefine.CrossBillboardTypeList:
|
return
|
else:
|
if billboardType not in ShareDefine.BillboardTypeList:
|
return
|
|
if not dataID:
|
return
|
|
billboardMgr = DBDataMgr.GetBillboardMgr()
|
billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
|
billboardData = billboardObj.FindByID(dataID)
|
isNewData = False
|
if not billboardData:
|
isNewData = True
|
if billboardObj.IsFull():
|
# Óë×îºóÒ»Ãû¶Ô±È
|
lastBillBoardData = __CmpLastBillboardData(cmpValue, cmpValue2, cmpValue3, billboardObj)
|
if not lastBillBoardData:
|
GameWorld.DebugLog(" °ñµ¥Öµ²»³¬¹ý×îºóÒ»Ãû£¬²»Éϰñ! ")
|
return
|
billboardData = lastBillBoardData
|
billboardData.Clear()
|
else:
|
billboardData = billboardObj.AddNewBillboardData()
|
if not billboardData:
|
return
|
|
cmpValueChange = isNewData or billboardData.GetCmpValue() != cmpValue or billboardData.GetCmpValue2() != cmpValue2 \
|
or (cmpValue3 and billboardData.GetCmpValue3() != cmpValue3)
|
|
# ûÉèÖÃֵĬÈÏΪʱ¼ätime£¬ÏÈÉϰñµÄÅÅÇ°Ãæ
|
if cmpValue3 == 0:
|
# ʱ¼äȨֵ½öÔڱȽÏÖµ±ä¸üµÄÇé¿öϲŸüÐÂ, ·ÀÖ¹ÆäËû¸½ÊôÖµ¸üÐÂʱµ¼Ö±ȽÏÖµÏàͬµÄÍæ¼ÒÃû´Î¼ä»á±ä¶¯µÄÎÊÌâ
|
if cmpValueChange:
|
calcTime = GameWorld.ChangeTimeStrToNum("2090-01-01 00:00:00")
|
cmpValue3 = max(0, calcTime - int(time.time())) # ±È½ÏÖµ3Èç¹ûûָ¶¨ÖµÔòĬÈϴ浱ǰ¸üеÄtime
|
else:
|
cmpValue3 = billboardData.GetCmpValue3()
|
|
# ¸üÐÂËùÓÐÖµ
|
billboardData.SetType(billboardType)
|
billboardData.SetGroupValue1(groupValue1)
|
billboardData.SetGroupValue2(groupValue2)
|
billboardData.SetID(dataID)
|
billboardData.SetID2(id2)
|
billboardData.SetName1(name1)
|
billboardData.SetName2(name2)
|
billboardData.SetType2(type2)
|
billboardData.SetValue1(value1)
|
billboardData.SetValue2(value2)
|
billboardData.SetValue3(kwargs.get("value3", 0))
|
billboardData.SetValue4(kwargs.get("value4", 0))
|
billboardData.SetValue5(kwargs.get("value5", 0))
|
billboardData.SetValue6(kwargs.get("value6", 0))
|
billboardData.SetValue7(kwargs.get("value7", 0))
|
billboardData.SetValue8(kwargs.get("value8", 0))
|
billboardData.SetUserData(kwargs.get("userData", ""))
|
billboardData.SetCmpValue(cmpValue)
|
billboardData.SetCmpValue2(cmpValue2)
|
billboardData.SetCmpValue3(cmpValue3)
|
|
GameWorld.DebugLog("¸üпç·þÅÅÐаñÖµ: billboardType=%s,groupValue1=%s,groupValue2=%s,dataID=%s,isNewData=%s,cmpValueChange=%s,type2=%s,value1=%s,value2=%s,cmpValue=%s,cmpValue2=%s,cmpValue3=%s,%s"
|
% (billboardType, groupValue1, groupValue2, dataID, isNewData, cmpValueChange,
|
type2, value1, value2, cmpValue, cmpValue2, cmpValue3, kwargs), dataID)
|
if not autoSort:
|
if isNewData or cmpValueChange:
|
billboardObj.SetSortDelay()
|
else:
|
billboardObj.SortData()
|
|
return True
|
|
def __CmpLastBillboardData(cmpValue, cmpValue2, cmpValue3, billboardObj):
|
## ±È½ÏÊÇ·ñ³¬¹ý×îºóÒ»Ãû
|
# @return: ³¬¹ýÔò·µ»Ø×îºóÒ»ÃûÊý¾ÝʵÀý£¬·ñÔò·µ»ØNone
|
if not billboardObj.GetCount():
|
return
|
lastBillBoardData = billboardObj.At(billboardObj.GetCount() - 1)
|
if cmpValue < lastBillBoardData.GetCmpValue():
|
#ÎÞ·¨Éϰñ
|
return
|
elif cmpValue == lastBillBoardData.GetCmpValue():
|
if cmpValue2 < lastBillBoardData.GetCmpValue2():
|
return
|
elif cmpValue2 == lastBillBoardData.GetCmpValue2():
|
if cmpValue3 <= lastBillBoardData.GetCmpValue3():
|
return
|
return lastBillBoardData
|
|
def UpdatePlayerCrossBillboard(curPlayer, bType, groupValue1, cmpValue, cmpValue2=0, cmpValue3=0, value1=0, value2=0,
|
groupValue2=0, **kwargs):
|
## ÔÚ±¾·þÖ±½Ó¸üÐÂÍæ¼Ò¿ç·þÅÅÐаñ£¬·¢Ë͵½¿ç·þ£¬Ö®ºóÀ©Õ¹
|
return
|
|
#// A1 30 ²é¿´°ñµ¥ #tagCMViewBillboard
|
#
|
#struct tagCMViewBillboard
|
#{
|
# tagHead Head;
|
# BYTE Type; //°ñµ¥ÀàÐÍ
|
# DWORD GroupValue1; //·Ö×éÖµ1
|
# DWORD GroupValue2; //·Ö×éÖµ2£¬Óë·Ö×éÖµ1×éºÏ¹éΪͬ×é°ñµ¥Êý¾Ý
|
# WORD StartIndex; //²é¿´µÄÆðʼÃû´ÎË÷Òý£¬ ĬÈÏ0
|
# BYTE ViewCnt; //²é¿´ÌõÊý£¬Ä¬ÈÏ20£¬µ¥´Î×î´ó²»³¬¹ý100
|
# DWORD ViewID; //¸½´ø²é¿´Ö¸¶¨IDËùÔÚÃû´ÎǰºóÊý¾Ý£¬ÈçÍæ¼ÒID¡¢¼Ò×åIDµÈ
|
#};
|
def OnViewBillboard(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
billboardType, groupValue1, groupValue2 = clientData.Type, clientData.GroupValue1, clientData.GroupValue2
|
startIndex = clientData.StartIndex
|
viewCnt = clientData.ViewCnt
|
viewID = clientData.ViewID
|
|
if billboardType in ShareDefine.CrossBillboardTypeList:
|
# ¿ç·þ°ñµ¥Ö±½Ó²é¿ç·þ·þÎñÆ÷£¬´ýÀ©Õ¹
|
return
|
|
clientPack = GetPack_ViewBillboardRet(billboardType, groupValue1, groupValue2, startIndex, viewCnt, viewID)
|
NetPackCommon.SendFakePack(curPlayer, clientPack)
|
return
|
|
def GetPack_ViewBillboardRet(bbType, groupValue1, groupValue2, startIndex=0, viewCnt=20, viewID=0):
|
## »ñÈ¡²é¿´°ñµ¥·µ»ØÐÅÏ¢·â°ü£¬±¾·þ¿ç·þͨÓÃ
|
|
billboardMgr = DBDataMgr.GetBillboardMgr()
|
billboardObj = billboardMgr.GetBillboard(bbType, groupValue1, groupValue2)
|
billboardObj.SortDelayDo()
|
idOrderDict = billboardObj.GetIDOrderDict()
|
count = billboardObj.GetCount()
|
|
maxIndex = count - 1
|
startIndex = max(min(startIndex, maxIndex), 0)
|
viewCnt = 20 if not viewCnt else min(viewCnt, 100) # ĬÈÏ20£¬×î¶à100
|
endIndex = min(startIndex + viewCnt - 1, maxIndex)
|
viewRange = [] if not count else range(startIndex, endIndex + 1)
|
|
viewIDRange = []
|
# ²é¿´viewIDǰºóÃû´Î
|
if viewID:
|
viewBFCnt = 3 # ²é¿´ViewID·µ»ØÇ°ºóÊý¾ÝÌõÊý£¬Ò»°ãÉèÖÃÎªÆæÊý
|
viewIDIndex = billboardObj.IndexOfByID(viewID)
|
if viewIDIndex != -1:
|
# ǰxºóx
|
viewIDStartIndex = max(0, viewIDIndex - viewBFCnt / 2)
|
viewIDEndIndex = min(viewIDIndex + viewBFCnt / 2, maxIndex)
|
viewIDRange = range(viewIDStartIndex, viewIDEndIndex + 1)
|
|
clientPack = ChPyNetSendPack.tagMCViewBillboardRet()
|
clientPack.Type = bbType
|
clientPack.GroupValue1 = groupValue1
|
clientPack.GroupValue2 = groupValue2
|
clientPack.DataTotal = count
|
clientPack.PageDataList = []
|
for index in viewRange:
|
billboardData = billboardObj.At(index)
|
viewData = ChPyNetSendPack.tagMCViewBillboardData()
|
viewData.Index = index
|
viewData.Rank = idOrderDict.get(billboardData.GetID(), 0)
|
viewData.ID = billboardData.GetID()
|
viewData.ID2 = billboardData.GetID2()
|
viewData.Name1 = billboardData.GetName1()
|
viewData.Name2 = billboardData.GetName2()
|
viewData.Type2 = billboardData.GetType2()
|
viewData.Value1 = billboardData.GetValue1()
|
viewData.Value2 = billboardData.GetValue2()
|
viewData.Value3 = billboardData.GetValue3()
|
viewData.Value4 = billboardData.GetValue4()
|
viewData.Value5 = billboardData.GetValue5()
|
viewData.Value6 = billboardData.GetValue6()
|
viewData.Value7 = billboardData.GetValue7()
|
viewData.Value8 = billboardData.GetValue8()
|
viewData.CmpValue = billboardData.GetCmpValue()
|
viewData.CmpValue2 = billboardData.GetCmpValue2()
|
viewData.CmpValue3 = billboardData.GetCmpValue3()
|
viewData.UserData = billboardData.GetUserData()
|
viewData.DataLen = len(viewData.UserData)
|
clientPack.PageDataList.append(viewData)
|
clientPack.PageDataCnt = len(clientPack.PageDataList)
|
|
clientPack.ViewID = viewID
|
clientPack.ViewIDDataList = []
|
for index in viewIDRange:
|
billboardData = billboardObj.At(index)
|
viewData = ChPyNetSendPack.tagMCViewBillboardData()
|
viewData.Index = index
|
viewData.Rank = idOrderDict.get(billboardData.GetID(), 0)
|
viewData.ID = billboardData.GetID()
|
viewData.ID2 = billboardData.GetID2()
|
viewData.Name1 = billboardData.GetName1()
|
viewData.Name2 = billboardData.GetName2()
|
viewData.Type2 = billboardData.GetType2()
|
viewData.Value1 = billboardData.GetValue1()
|
viewData.Value2 = billboardData.GetValue2()
|
viewData.Value3 = billboardData.GetValue3()
|
viewData.Value4 = billboardData.GetValue4()
|
viewData.Value5 = billboardData.GetValue5()
|
viewData.Value6 = billboardData.GetValue6()
|
viewData.Value7 = billboardData.GetValue7()
|
viewData.Value8 = billboardData.GetValue8()
|
viewData.CmpValue = billboardData.GetCmpValue()
|
viewData.CmpValue2 = billboardData.GetCmpValue2()
|
viewData.CmpValue3 = billboardData.GetCmpValue3()
|
viewData.UserData = billboardData.GetUserData()
|
viewData.DataLen = len(viewData.UserData)
|
clientPack.ViewIDDataList.append(viewData)
|
clientPack.ViewIDDataCnt = len(clientPack.ViewIDDataList)
|
return clientPack
|