| | |
| | | Def_PlayerKey_Frist_Lock = "Frist_Lock" # 是否接受了任务1
|
| | | Def_PlayerKey_TaskExpRewardMultiple = "TaskExpRewardMultiple" # 任务经验奖励倍值
|
| | | Def_PlayerKey_BuyItemCnt = "BuyItemCnt" # 购买物品数量
|
| | | Def_PlayerKey_QueryOpenServerAwardState = "QueryOpenServerAwardState" # 查询开服奖励状态
|
| | |
|
| | | Def_PlayerKey_QueryMarkIdCardIndex = 'QueryMarkIdCardIndex' # 指定账号生成卡类型
|
| | | Def_PlayerKey_QueryNewGuyCardType = 'QueryNewGuyCardType' # 查询的新手卡类型
|
| | |
| | | GameWorld.DebugAnswer(curPlayer, errInfo)
|
| | | GameWorld.DebugAnswer(curPlayer, "新增榜单假数据: Billboard 类型 分组值1 分组值2 条数 比较值1可选参数(比较值2 常规值1~5)")
|
| | | GameWorld.DebugAnswer(curPlayer, "删除榜单假数据: Billboard 类型 分组值1 分组值2")
|
| | | GameWorld.DebugAnswer(curPlayer, "输出排行榜数据: Billboard p 类型 分组值1 分组值2")
|
| | | GameWorld.DebugAnswer(curPlayer, "输出排行榜数据: Billboard p 类型 [分组值1 值2 从x名 到x名]")
|
| | | GameWorld.DebugAnswer(curPlayer, "注:如果没有特殊说明,本服榜单分组值均为0,跨服榜单分组值1为分区ID,分组2为0")
|
| | |
|
| | | nameTypeList = ShareDefine.BillboardNameDict.keys()
|
| | |
| | | return
|
| | |
|
| | | def __GetBillTypeSign(billboardType, groupValue1, groupValue2):
|
| | | billTypeSign = "Type:%s" % billboardType
|
| | | billTypeSign = "%s" % billboardType
|
| | | if groupValue1:
|
| | | billTypeSign = "%s-%s" % (billTypeSign, groupValue1)
|
| | | if groupValue2:
|
| | |
| | | return billTypeSign
|
| | |
|
| | | def __logFackData(curPlayer, gmList):
|
| | | ## 输出排行榜数据: Billboard p 类型 分组值1 分组值2
|
| | | ## 输出排行榜数据: Billboard p 类型 分组值1 分组值2 名次A 到B
|
| | | if len(gmList) <= 1:
|
| | | GameWorld.DebugAnswer(curPlayer, "榜单数据条数总览")
|
| | | billboardMgr = DBDataMgr.GetBillboardMgr()
|
| | |
| | | billboardType = gmList[1]
|
| | | groupValue1 = gmList[2] if len(gmList) > 2 else 0
|
| | | groupValue2 = gmList[3] if len(gmList) > 3 else 0
|
| | | fromRank = gmList[4] if len(gmList) > 4 else 0
|
| | | toRank = gmList[5] if len(gmList) > 5 else 0
|
| | | billboardMgr = DBDataMgr.GetBillboardMgr()
|
| | | billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
|
| | | billboardObj.SortDelayDo()
|
| | |
| | | maxDataCount = billboardObj.GetMaxCount()
|
| | | idOrderDict = billboardObj.GetIDOrderDict()
|
| | |
|
| | | printDebugCnt = 0
|
| | | billTypeSign = __GetBillTypeSign(billboardType, groupValue1, groupValue2)
|
| | | GameWorld.DebugAnswer(curPlayer, "榜单数据(%s)条数: %s/%s 详见日志" % (billTypeSign, curDataCount, maxDataCount))
|
| | | bName = ShareDefine.BillboardNameDict[billboardType]
|
| | | GameWorld.DebugAnswer(curPlayer, "%s(%s)条数: %s/%s 详见日志" % (bName, billTypeSign, curDataCount, maxDataCount))
|
| | | for index in range(curDataCount):
|
| | | bbData = billboardObj.At(index)
|
| | | dataID = bbData.GetID()
|
| | | rank = idOrderDict.get(dataID, 0)
|
| | | if (fromRank and rank < fromRank) or (toRank and rank > toRank):
|
| | | continue
|
| | |
|
| | | cmpValues = [bbData.GetCmpValue(), bbData.GetCmpValue2(), bbData.GetCmpValue3()]
|
| | | valueList = [getattr(bbData, "GetValue%s" % num)() for num in range(1, 9)]
|
| | | GameWorld.DebugLog("%s,rank=%s,ID=%s,CmpValue=%s,CmpValue2=%s,Value=%s" |
| | | % (index, rank, dataID, bbData.GetCmpValue(), bbData.GetCmpValue2(), valueList), curPlayer.GetPlayerID())
|
| | | if printDebugCnt < 20:
|
| | | printDebugCnt += 1
|
| | | GameWorld.DebugAnswer(curPlayer, "%s,ID:%s,榜值:%s" % (rank, dataID, cmpValues))
|
| | | GameWorld.DebugLog("%s,rank=%s,ID=%s,CmpValues=%s,Value=%s" |
| | | % (index, rank, dataID, cmpValues, valueList), curPlayer.GetPlayerID())
|
| | |
|
| | | return
|
| | |
|
| | |
| | | #"""Version = 2025-05-15 10:35"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import GameWorld
|
| | | import ShareDefine
|
| | | import GameWorldEvent
|
| | | import PlayerSignDay
|
| | | import DBDataMgr
|
| | | import ChPlayer
|
| | | import ServerDay
|
| | |
|
| | | import time
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## 执行逻辑
|
| | | # @param curPlayer 当前玩家
|
| | | # @param cmdList 参数
|
| | | # @return None
|
| | | # @remarks 函数详细说明.
|
| | | def OnExec(curPlayer, cmdList):
|
| | | #重置开服天,设置非合服
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerWeek, 0)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerDay, 0)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_IsMixServer, 0)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_MixServerDay, 0)
|
| | | |
| | | curTime = int(time.time())
|
| | | GameWorldEvent.SetInitOpenServerTime(curTime)
|
| | | |
| | | if curPlayer:
|
| | | ChPlayer.Sync_OpenServerDay(curPlayer)
|
| | | ServerDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
|
| | | IsMixServer = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_IsMixServer)
|
| | | MixDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_MixServerDay) + 1
|
| | | OpenWeekday = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_OpenServerWeekday)
|
| | | GameWorld.DebugAnswer(curPlayer, '开服星期%s, 天数:%s 是否合服:%s, 合服天数:%s' % (OpenWeekday, ServerDay, IsMixServer, MixDay))
|
| | | PlayerSignDay.ResetDaySign(curPlayer)
|
| | | |
| | | # 暂时同步GameServer,之后可去除
|
| | | ServerDay.OnExec(curPlayer, [1])
|
| | | return True
|
| | |
|
| | |
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerDay, 0)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_IsMixServer, 0)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_MixServerDay, 0)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_OSAAwardState, 0)
|
| | |
|
| | | curTime = int(time.time())
|
| | | GameWorldEvent.SetInitOpenServerTime(curTime)
|
| | |
| | | import GameWorld
|
| | | import PlayerEventCounter
|
| | | import GameWorldEvent
|
| | | import ServerDay
|
| | |
|
| | | def OnExec(curPlayer, gmList):
|
| | | __DoExec(GameWorld.GetGameWorld().GetTick())
|
| | |
|
| | | ServerDay.__printServerDay(curPlayer)
|
| | | # 暂时同步GameServer,之后可去除
|
| | | return True
|
| | |
|
| | |
| | | import PlayerControl
|
| | | import FunctionNPCCommon
|
| | | import PlayerActBuyCountGift
|
| | | import OpenServerActivity
|
| | | import PlayerActLoginNew
|
| | | import PlayerActTask
|
| | | import ItemControler
|
| | |
| | | ShareDefine.GameFuncID_Shop:lambda curObj:FunctionNPCCommon.DoShopOpen(curObj),
|
| | | ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj),
|
| | | ShareDefine.GameFuncID_Travel:lambda curObj:PlayerTravel.DoTravelOpen(curObj),
|
| | | ShareDefine.GameFuncID_OSA_MainLevel:lambda curObj:OpenServerActivity.DoOSA_MainLevel(curObj),
|
| | | ShareDefine.GameFuncID_OSA_HeroCall:lambda curObj:OpenServerActivity.DoOSA_HeroCall(curObj),
|
| | | }
|
| | |
|
| | | def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
|
| New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Player.OpenServerActivity
|
| | | #
|
| | | # @todo:开服活动
|
| | | # @author hxp
|
| | | # @date 2025-12-04
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 开服活动
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2025-12-04 16:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import DBDataMgr
|
| | | import ShareDefine
|
| | | import GameFuncComm
|
| | | import IpyGameDataPY
|
| | | import PlayerBillboard
|
| | | import PlayerTreasure
|
| | | import PlayerControl
|
| | | import GameWorld
|
| | |
|
| | | # 开服冲榜类型对应功能ID
|
| | | OSAFuncIDDict = {
|
| | | ShareDefine.Def_BT_OSA_MainLevel:ShareDefine.GameFuncID_OSA_MainLevel,
|
| | | ShareDefine.Def_BT_OSA_HeroCall:ShareDefine.GameFuncID_OSA_HeroCall,
|
| | | }
|
| | |
|
| | | def DoOSA_MainLevel(curPlayer):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MainLevel) != 1:
|
| | | return
|
| | | lvID = PlayerControl.GetPassMainLevelID(curPlayer)
|
| | | GameWorld.DebugLog("开服关卡榜开启更新榜单: lvID=%s" % lvID, curPlayer.GetPlayerID())
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MainLevel, lvID)
|
| | | return
|
| | |
|
| | | def DoOSA_HeroCall(curPlayer):
|
| | | if GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_HeroCall) != 1:
|
| | | return
|
| | | callCnt = PlayerTreasure.GetHeroCallCnt(curPlayer)
|
| | | GameWorld.DebugLog("开服招募榜开启更新榜单: callCnt=%s" % callCnt, curPlayer.GetPlayerID())
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_HeroCall, callCnt)
|
| | | return
|
| | |
|
| | | def GetOSAState(curPlayer, osaType):
|
| | | ## 玩家是否在开服冲榜活动中
|
| | | # @return: 0-未开启;1-活动中;2-结束显示期;3-结束关闭期
|
| | | funcID = OSAFuncIDDict.get(osaType)
|
| | | if not funcID:
|
| | | return 0
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, funcID):
|
| | | #GameWorld.DebugLog("开服冲榜功能未开启! osaType=%s,funcID=%s" % (osaType, funcID))
|
| | | return 0
|
| | | osaDayDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 1, {})
|
| | | startDay, endDay = osaDayDict.get(str(osaType), [0, 0])
|
| | | serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
|
| | | if startDay <= serverDay <= endDay:
|
| | | #GameWorld.DebugLog("开服冲榜活动中! osaType=%s,serverDay=%s,startDay=%s,endDay=%s" % (osaType, serverDay, startDay, endDay))
|
| | | return 1
|
| | | if serverDay == (endDay + 1):
|
| | | #GameWorld.DebugLog("开服冲榜结算中! osaType=%s,serverDay=%s,startDay=%s,endDay=%s" % (osaType, serverDay, startDay, endDay))
|
| | | return 2
|
| | | #GameWorld.DebugLog("开服冲榜已结束! osaType=%s,serverDay=%s,startDay=%s,endDay=%s" % (osaType, serverDay, startDay, endDay))
|
| | | return 3
|
| | |
|
| | | def OnDay():
|
| | | |
| | | osaAwardState = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_OSAAwardState)
|
| | | serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
|
| | | osaDayDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 1, {})
|
| | | for osaType, dayRange in osaDayDict.items():
|
| | | osaType = int(osaType)
|
| | | startDay, endDay = dayRange
|
| | | if startDay > endDay:
|
| | | continue
|
| | | if serverDay <= endDay:
|
| | | #GameWorld.DebugLog("开服冲榜未开始或活动中的不处理: osaType=%s,serverDay=%s <= endDay(%s)" % (osaType, serverDay, endDay))
|
| | | continue
|
| | | |
| | | # 结算
|
| | | if osaAwardState & pow(2, osaType):
|
| | | #GameWorld.DebugLog("开服冲榜奖励已结算过了: osaType=%s,osaAwardState=%s" % (osaType, osaAwardState))
|
| | | continue
|
| | | osaAwardState |= pow(2, osaType)
|
| | | DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_OSAAwardState, osaAwardState)
|
| | | GameWorld.DebugLog("开服冲榜奖励结算: osaType=%s,osaAwardState=%s,serverDay=%s" % (osaType, osaAwardState, serverDay))
|
| | | |
| | | if osaType == ShareDefine.Def_BT_OSA_MainLevel:
|
| | | billboardAwardDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 2, {})
|
| | | PlayerBillboard.DoGiveBillboardAwardByMail(osaType, "OSAMainLevel", billboardAwardDict, "OSAMainLevel")
|
| | | elif osaType == ShareDefine.Def_BT_OSA_HeroCall:
|
| | | billboardAwardDict = IpyGameDataPY.GetFuncEvalCfg("OSABillboard", 3, {})
|
| | | PlayerBillboard.DoGiveBillboardAwardByMail(osaType, "OSAHeroCall", billboardAwardDict, "OSAHeroCall")
|
| | | |
| | | return
|
| | |
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | | import IpyGameDataPY
|
| | | import PlayerMail
|
| | | import DBDataMgr
|
| | |
|
| | | import time
|
| | |
| | | clientPack.ViewIDDataList.append(viewData)
|
| | | clientPack.ViewIDDataCnt = len(clientPack.ViewIDDataList)
|
| | | return clientPack
|
| | |
|
| | | def DoGiveBillboardAwardByMail(billboardType, funcName, billboardAwardDict, mailKey):
|
| | | ## 结算排行奖励邮件发放
|
| | | GameWorld.Log("=== %s结算排行奖励! === " % (funcName))
|
| | | if not billboardAwardDict:
|
| | | return
|
| | | orderList = [int(orderStr) for orderStr in billboardAwardDict.keys()]
|
| | | orderList.sort()
|
| | | GameWorld.Log(" 奖励名次列表: %s" % orderList)
|
| | | |
| | | billboardMgr = DBDataMgr.GetBillboardMgr()
|
| | | billBoard = billboardMgr.GetBillboard(ShareDefine.Def_BT_Arena)
|
| | | if not billBoard:
|
| | | return
|
| | | billBoard.SortDelayDo()
|
| | | |
| | | awardOrder = orderList[0]
|
| | | orderPlayerIDDict = {}
|
| | | billboardCount, billboardMaxCount = billBoard.GetCount(), billBoard.GetMaxCount()
|
| | | GameWorld.Log(" 榜单数据数: %s/%s" % (billboardCount, billboardMaxCount))
|
| | | for index in xrange(billboardCount):
|
| | | billBoardData = billBoard.At(index)
|
| | | if not billBoardData:
|
| | | continue
|
| | | order = index + 1
|
| | | |
| | | if order > awardOrder:
|
| | | nextOrderIndex = orderList.index(awardOrder) + 1
|
| | | if nextOrderIndex >= len(orderList):
|
| | | break
|
| | | awardOrder = orderList[nextOrderIndex]
|
| | | |
| | | playerID = billBoardData.GetID()
|
| | | if playerID < ShareDefine.RealPlayerIDStart:
|
| | | # 非真人不处理
|
| | | continue
|
| | | |
| | | orderPlayerIDDict[playerID] = [order, awardOrder]
|
| | | |
| | | paramList = [order]
|
| | | awardList = billboardAwardDict[str(awardOrder)]
|
| | | PlayerMail.SendMailByKey(mailKey, playerID, awardList, paramList)
|
| | | |
| | | GameWorld.Log(" 奖励玩家名次信息: %s" % orderPlayerIDDict)
|
| | | GameWorld.Log("===================================================")
|
| | | return
|
| | |
| | | import PlayerCostRebate
|
| | | import PlayerActLunhuidian
|
| | | import GY_Query_CrossRealmReg
|
| | | import OpenServerActivity
|
| | | import CrossRealmPlayer
|
| | | import CrossPlayerData
|
| | | import PlayerActivity
|
| | |
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_MainLevel, lvID)
|
| | | PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_MainLevel)
|
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_MainLevel, lvID)
|
| | | if OpenServerActivity.GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_MainLevel) == 1:
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_MainLevel, lvID)
|
| | | return value
|
| | | def GetMainLevelPassInfo(curPlayer):
|
| | | ## 获取主线关卡过关进度信息
|
| | |
| | | import IpyGameDataPY
|
| | | import PlayerArena
|
| | | import PyGameData
|
| | | import OpenServerActivity
|
| | | import PlayerXiangong
|
| | | import PlayerBillboard
|
| | | import PlayerViewCache
|
| | |
| | | #副本OnDay事件响应
|
| | | #FBLogic.OnDay(tick)
|
| | |
|
| | | OpenServerActivity.OnDay()
|
| | | #仙盟
|
| | | PlayerFamily.FamilyOnDay()
|
| | | PlayerArena.OnDay()
|
| | |
| | | import PlayerActLunhuidian
|
| | | import PlayerActYunshi
|
| | | import PlayerActivity
|
| | | import OpenServerActivity
|
| | | import PlayerBillboard
|
| | | import ShareDefine
|
| | | import ItemCommon
|
| | | import PlayerHero
|
| | | import PyGameData
|
| | |
| | | TreasureType_HeroComm = 11 # 英雄招募 - 普通
|
| | | TreasureType_HeroHigh = 12 # 英雄招募 - 高级
|
| | | TreasureType_HeroScore = 13 # 英雄招募 - 积分
|
| | | #武将招募的所有类型
|
| | | TreasureType_HeroCallList = [TreasureType_HeroComm, TreasureType_HeroHigh, TreasureType_HeroScore]
|
| | |
|
| | | def OnTreasureLogin(curPlayer):
|
| | | Sync_TreasureInfo(curPlayer)
|
| | |
| | | if addScoreType and addScore:
|
| | | PlayerControl.GiveMoney(curPlayer, addScoreType, addScore * treasureCount)
|
| | |
|
| | | if treasureType in [TreasureType_HeroComm, TreasureType_HeroHigh, TreasureType_HeroScore]:
|
| | | if treasureType in TreasureType_HeroCallList:
|
| | | PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_HeroCall, treasureCount)
|
| | | if OpenServerActivity.GetOSAState(curPlayer, ShareDefine.Def_BT_OSA_HeroCall) == 1:
|
| | | PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_OSA_HeroCall, GetHeroCallCnt(curPlayer))
|
| | |
|
| | | PlayerActLunhuidian.AddLunhuidianValue(curPlayer, PlayerActLunhuidian.AwardType_Treasure, treasureType, treasureCount)
|
| | |
|
| | |
| | | Sync_TreasureInfo(curPlayer, [treasureType])
|
| | | return
|
| | |
|
| | | def GetHeroCallCnt(curPlayer):
|
| | | ## 获取武将招募总次数
|
| | | callCount = 0
|
| | | for treasureType in TreasureType_HeroCallList:
|
| | | callCount += curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCount % (treasureType))
|
| | | return callCount
|
| | |
|
| | | def __getLuckyRateInfo(curLuck, luckyItemRateDict, luckyValueList):
|
| | | if not luckyItemRateDict or not luckyValueList:
|
| | | return 0, []
|
| | |
| | | Def_InitOpenServerTime = 'InitOpenServerTime'
|
| | | Def_SetOpenServerTime = 'SetOpenServerTime' # GM工具预定的开服时间
|
| | |
|
| | |
|
| | | Def_OSAAwardState = 'OSAAwardState' #开服冲榜活动结算状态
|
| | | # ------------------------- WorldKey -------------------------
|
| | |
|
| | | #---奇迹, 职业枚举定义---
|
| | |
| | | Def_BT_MainLevel, # 主线关卡过关榜 0
|
| | | Def_BT_Arena, # 演武场积分周榜 1
|
| | | Def_BT_Tianzi, # 天子考验伤害榜 2
|
| | | ) = range(0, 3) |
| | | Def_BT_OSA_MainLevel, # 开服关卡榜 3
|
| | | Def_BT_OSA_HeroCall, # 开服招募榜 4
|
| | | ) = range(0, 5) |
| | |
|
| | | ''' 跨服排行榜类型, 从 150 开始,最大条数在功能配置表 CrossBillboardSet 配置,没配默认100
|
| | | 与本服榜单存储的是不一样的数据库表格,理论上类型可以和本服榜单类型重复,为了做下区分防误导,跨服榜单从 150 开始
|
| | |
| | |
|
| | | BillboardTypeAllList = BillboardTypeList + CrossBillboardTypeList
|
| | |
|
| | | BillboardNameDict = {Def_BT_MainLevel:"主线过关榜", Def_BT_Arena:"演武场积分周榜", Def_BT_Tianzi:"天子考验伤害榜"}
|
| | | BillboardNameDict = {Def_BT_MainLevel:"主线过关榜", Def_BT_Arena:"演武场积分周榜", Def_BT_Tianzi:"天子考验伤害榜", |
| | | Def_BT_OSA_MainLevel:"开服关卡榜", Def_BT_OSA_HeroCall:"开服招募榜"}
|
| | |
|
| | | #仙盟榜单类型
|
| | | FamilyBillboardList = []
|
| | |
| | | GameFuncID_Arena = 27 # 竞技场
|
| | | GameFuncID_Horse = 37 # 坐骑
|
| | | GameFuncID_Travel = 44 # 游历
|
| | | GameFuncID_OSA_MainLevel = 45 # 开服关卡榜
|
| | | GameFuncID_OSA_HeroCall = 46 # 开服招募榜
|
| | |
|
| | | # 以下为暂时无用的
|
| | | GameFuncID_Pet = -1 # 宠物,灵宠 6
|