| | |
| | | import PlayerFamily
|
| | | import PyDataManager
|
| | | import PlayerViewCache
|
| | | import IpyGameDataPY
|
| | |
|
| | | import time
|
| | | import random
|
| | |
| | | Def_Key_BillboardSortTick = "BillboardSortTick_%s" # 排行榜是否排序tick,参数(排行榜类型)
|
| | | Def_Key_BillboardNeedSort = "BillboardNeedSort_%s" # 排行榜是否需要排序,参数(排行榜类型)
|
| | |
|
| | | #需要每天记录到oss的排行榜类型
|
| | | Def_NoteOssBillboardTypeList = [
|
| | | ShareDefine.Def_BT_LV , #个人等级日榜 |
| | | ShareDefine.Def_BT_FightPower, #个人战斗力
|
| | | ]
|
| | | #需要每天拷贝昨日榜单的排行榜类型字典
|
| | | Def_NeedCopyYesterday_Dict = {
|
| | | #昨日榜(拷贝) #今日榜(源数据)
|
| | |
| | |
|
| | | def NoteOssBillboardInfoByDay():
|
| | | ## 每天记录排行榜信息到oss中
|
| | | Def_NoteOssBillboardTypeList = IpyGameDataPY.GetFuncEvalCfg("BillboardSet", 1)
|
| | | for billboardType in Def_NoteOssBillboardTypeList:
|
| | | DataRecordPack.DR_BillboardDataByDay(billboardType)
|
| | | return
|
| | |
| | |
|
| | | return
|
| | |
|
| | | def DelJobFightPowerBillboard(curPlayer, delJob):
|
| | | ## 删除玩家对应职业战力榜 - 一般是玩家职业改变了,需要删除旧职业的职业战力榜单
|
| | | if delJob not in ShareDefine.JobFightPowerBillboardDict:
|
| | | return
|
| | | jobBType = ShareDefine.JobFightPowerBillboardDict[delJob]
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | billboardMgr = GameWorld.GetBillboard()
|
| | | playerBillBoard = billboardMgr.FindBillboard(jobBType)
|
| | | if not playerBillBoard:
|
| | | return
|
| | | if playerBillBoard.FindByID(playerID):
|
| | | playerBillBoard.DeleteByID(playerID)
|
| | | GameWorld.DebugLog("删除玩家职业战力榜单: delJob=%s,jobBType=%s" % (delJob, jobBType), playerID)
|
| | | return
|
| | |
|
| | | def GetBillboardOperateInfo(curPlayer):
|
| | | # 排行榜中所保存的运营商相关信息
|
| | | platform = curPlayer.GetAccID()
|
| | | if platform in ["tencent"]:
|
| | | return curPlayer.GetOperateInfo()
|
| | | return platform
|
| | | return curPlayer.GetFace()
|
| | | # platform = curPlayer.GetAccID()
|
| | | # if platform in ["tencent"]:
|
| | | # return curPlayer.GetOperateInfo()
|
| | | # return platform
|
| | |
|
| | | def UpdatePlayerBillboardEx(curPlayer, playerID, bType, cmpValue, cmpValue2=0, cmpValue3=0, value1=0, value2=0, autoSort=False):
|
| | | ## 更新玩家排行榜
|
| | |
| | | if opInfo != str(curPlayerOpInfo):
|
| | | playerBillBoardData.SetName2(str(curPlayerOpInfo))
|
| | | GameWorld.DebugLog(" 更新operatInfo=%s" % curPlayerOpInfo, curPlayerID)
|
| | | if playerBillBoardData.GetType2() != billboardType:
|
| | | playerBillBoardData.SetType2(billboardType)
|
| | | GameWorld.DebugLog(" 更新Type2=%s" % billboardType, curPlayerID)
|
| | | return False
|
| | |
|
| | | # 没设置值默认为时间time,先上榜的排前面
|
| | |
| | |
|
| | | return
|
| | |
|
| | | def UpdateBillboardFace(curPlayer):
|
| | | ## 更新排行榜中的玩家头像
|
| | | |
| | | curPlayerID = curPlayer.GetID()
|
| | | curFace = curPlayer.GetFace()
|
| | | |
| | | billboardMgr = GameWorld.GetBillboard()
|
| | | for billboardIndex in ShareDefine.BillboardTypeList:
|
| | | billBoard = billboardMgr.FindBillboard(billboardIndex)
|
| | | if not billBoard:
|
| | | #找不到这类型排行榜
|
| | | continue
|
| | | |
| | | playerBillBoardData = billBoard.FindByID(curPlayerID)
|
| | | if not playerBillBoardData:
|
| | | #该玩家没有在排行榜上
|
| | | continue
|
| | | |
| | | playerBillBoardData.SetName2(str(curFace))
|
| | | |
| | | return
|