#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Player.PlayerActBossTrial
|
#
|
# @todo:bossÀúÁ·
|
# @author hxp
|
# @date 2023-10-20
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: bossÀúÁ·
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2023-10-20 16:00"""
|
#-------------------------------------------------------------------------------
|
|
import PyGameData
|
import ItemCommon
|
import ShareDefine
|
import PlayerControl
|
import IpyGameDataPY
|
import ChPyNetSendPack
|
import CrossRealmPlayer
|
import FunctionNPCCommon
|
import PlayerBillboard
|
import ItemControler
|
import NetPackCommon
|
import IPY_GameWorld
|
import GameWorld
|
import ChConfig
|
|
def OnMixFirstLogin(curPlayer):
|
|
for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_BossTrial, {}).values():
|
actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
|
if not actInfo.get(ShareDefine.ActKey_State):
|
continue
|
submitCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitCount % actNum)
|
if not submitCount:
|
continue
|
GameWorld.Log("BossÀúÁ·ºÏ·þÊ×µÇͬ²½Æ¾Ö¤°ñµ¥: actNum=%s,submitCount=%s" % (actNum, submitCount), curPlayer.GetPlayerID())
|
PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_BossTrialSubmit, submitCount, autoSort=True)
|
break
|
|
return
|
|
def OnPlayerLogin(curPlayer):
|
|
for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_BossTrial, {}).values():
|
actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
|
isReset = __CheckPlayerBossTrialAction(curPlayer, actNum)
|
# »î¶¯ÖÐͬ²½»î¶¯ÐÅÏ¢
|
if not isReset and actInfo.get(ShareDefine.ActKey_State):
|
Sync_BossTrialActionInfo(curPlayer, actNum)
|
Sync_BossTrialPlayerInfo(curPlayer, actNum)
|
|
if not __CheckPlayerCrossActBossTrial(curPlayer):
|
Sync_CrossActBossTrialActionInfo(curPlayer)
|
|
return
|
|
def PlayerOnDay(curPlayer, onEventType):
|
for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_BossTrial, {}).values():
|
if not actInfo.get(ShareDefine.ActKey_State):
|
continue
|
|
actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
|
cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
ipyData = IpyGameDataPY.GetIpyGameData("ActBossTrial", cfgID)
|
if not ipyData:
|
continue
|
submitAwardResetType = ipyData.GetSubmitAwardResetType()
|
if not submitAwardResetType:
|
continue
|
|
if onEventType != submitAwardResetType:
|
continue
|
|
GameWorld.DebugLog("bossÀúÁ·»î¶¯ÖØÖÃÌá½»½±Àø: actNum=%s,cfgID=%s,submitAwardResetType=%s"
|
% (actNum, cfgID, submitAwardResetType), curPlayer.GetPlayerID())
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitAwardCount % actNum, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitAward % actNum, 0)
|
Sync_BossTrialPlayerInfo(curPlayer, actNum)
|
|
return
|
|
def RefreshBossTrialActionInfo(actNum):
|
## ÊÕµ½GameServerͬ²½µÄ»î¶¯ÐÅÏ¢£¬Ë¢Ð»ÐÅÏ¢
|
playerManager = GameWorld.GetPlayerManager()
|
for index in xrange(playerManager.GetPlayerCount()):
|
curPlayer = playerManager.GetPlayerByIndex(index)
|
if curPlayer.GetID() == 0:
|
continue
|
__CheckPlayerBossTrialAction(curPlayer, actNum)
|
return
|
|
def __CheckPlayerBossTrialAction(curPlayer, actNum):
|
## ¼ì²éÍæ»î¶¯Êý¾ÝÐÅÏ¢
|
|
playerID = curPlayer.GetPlayerID()
|
|
actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_BossTrial, actNum)
|
actID = actInfo.get(ShareDefine.ActKey_ID, 0)
|
state = actInfo.get(ShareDefine.ActKey_State, 0)
|
|
playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialID % actNum) # Íæ¼ÒÉíÉϵĻID
|
|
# »î¶¯ID ÏàͬµÄ»°²»´¦Àí
|
if actID == playerActID:
|
GameWorld.DebugLog("BossÀúÁ·»î¶¯ID²»±ä£¬²»´¦Àí£¡ actID=%s" % actID, curPlayer.GetPlayerID())
|
return
|
GameWorld.DebugLog("BossÀúÁ·»î¶¯ÖØÖÃ! actID=%s,playerActID=%s,state=%s" % (actID, playerActID, state), playerID)
|
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialID % actNum, actID)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitCount % actNum, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitAwardCount % actNum, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitAward % actNum, 0)
|
|
if state:
|
cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
ipyData = IpyGameDataPY.GetIpyGameData("ActBossTrial", cfgID)
|
if ipyData and ipyData.GetActShopType():
|
FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, [ipyData.GetActShopType()])
|
Sync_BossTrialActionInfo(curPlayer, actNum)
|
Sync_BossTrialPlayerInfo(curPlayer, actNum)
|
|
return True
|
|
def RefreshCrossActBossTrialInfo():
|
## ÊÕµ½GameServerͬ²½µÄ»î¶¯ÐÅÏ¢£¬Ë¢Ð»ÐÅÏ¢
|
playerManager = GameWorld.GetPlayerManager()
|
for index in xrange(playerManager.GetPlayerCount()):
|
curPlayer = playerManager.GetPlayerByIndex(index)
|
if curPlayer.GetID() == 0:
|
continue
|
__CheckPlayerCrossActBossTrial(curPlayer)
|
|
return
|
|
def __CheckPlayerCrossActBossTrial(curPlayer):
|
|
playerID = curPlayer.GetPlayerID()
|
|
actInfo = CrossRealmPlayer.GetPlayerCrossActInfo(curPlayer, ShareDefine.CrossActName_BossTrial)
|
cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
|
actID = actInfo.get(ShareDefine.ActKey_ID, 0)
|
state = actInfo.get(ShareDefine.ActKey_State, 0)
|
dayIndex = actInfo.get(ShareDefine.ActKey_DayIndex, 0)
|
|
playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CA_BossTrialID) # Íæ¼ÒÉíÉϵĻID
|
|
# »î¶¯ID ÏàͬµÄ»°²»´¦Àí
|
if actID == playerActID:
|
GameWorld.DebugLog("¿ç·þBossÀúÁ·»î¶¯ID²»±ä£¬²»´¦Àí£¡cfgID=%s,dayIndex=%s,actID=%s" % (cfgID, dayIndex, actID), playerID)
|
return
|
GameWorld.DebugLog("¿ç·þBossÀúÁ·»î¶¯ÖØÖÃ! cfgID=%s,actID=%s,playerActID=%s,state=%s" % (cfgID, actID, playerActID, state), playerID)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CA_BossTrialID, actID)
|
|
if not state:
|
CrossRealmPlayer.NotifyCrossActEnd(curPlayer, ShareDefine.CrossActName_BossTrial)
|
|
Sync_CrossActBossTrialActionInfo(curPlayer)
|
return True
|
|
|
def SendToGameServer_BossTrial(curPlayer, msgType, dataMsg=""):
|
playerID = curPlayer.GetPlayerID()
|
msgList = str([msgType, dataMsg])
|
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(playerID, 0, 0, "BossTrial", msgList, len(msgList))
|
GameWorld.Log("BossÀúÁ··¢ËÍGameServer: %s, %s" % (msgType, dataMsg), playerID)
|
return
|
|
#// AA 23 BossÀúÁ·Ìύƾ֤ #tagCMActBossTrialSubmit
|
#
|
#struct tagCMActBossTrialSubmit
|
#{
|
# tagHead Head;
|
# BYTE ActNum; //»î¶¯±àºÅ
|
# WORD SubmitCount; //Ìύƾ֤¸öÊý
|
#};
|
def OnActBossTrialSubmit(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
actNum = clientData.ActNum
|
submitCount = clientData.SubmitCount
|
|
playerID = curPlayer.GetPlayerID()
|
actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_BossTrial, actNum)
|
if not actInfo.get(ShareDefine.ActKey_State):
|
GameWorld.DebugLog("BossÀúÁ··Ç»î¶¯ÖÐ: actNum=%s" % actNum, playerID)
|
return
|
if not actInfo.get(ShareDefine.ActKey_StateJoin):
|
GameWorld.Log("BossÀúÁ··Ç²ÎÓë»î¶¯ÖÐ: actNum=%s" % actNum, playerID)
|
return
|
|
itemID = IpyGameDataPY.GetFuncCfg("BossTrial", 1)
|
itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList({itemID:submitCount}, itemPack)
|
if lackItemDict:
|
GameWorld.DebugLog("BossÀúÁ·Ìύƾ֤ÎïÆ·²»×㣡 actNum=%s,itemID=%s,submitCount=%s,lackItemDict=%s" % (actNum, itemID, submitCount, lackItemDict), playerID)
|
return
|
ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, "BossTrialSubmit")
|
|
submitAwardCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitAwardCount % actNum)
|
updSubmitAwardCount = submitAwardCount + submitCount
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitAwardCount % actNum, updSubmitAwardCount)
|
|
nowSubmitCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitCount % actNum)
|
updSubmitCount = nowSubmitCount + submitCount
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitCount % actNum, updSubmitCount)
|
GameWorld.DebugLog("BossÀúÁ·Ìύƾ֤: actNum=%s,itemID=%s,submitCount=%s,updSubmitCount=%s,updSubmitAwardCount=%s"
|
% (actNum, itemID, submitCount, updSubmitCount, updSubmitAwardCount), playerID)
|
|
PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_BossTrial, submitCount, "BossTrialSubmit")
|
|
PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_BossTrialSubmit, updSubmitCount, autoSort=True)
|
|
Sync_BossTrialPlayerInfo(curPlayer, actNum)
|
|
SendToGameServer_BossTrial(curPlayer, "BossTrialSubmit", [submitCount, updSubmitCount])
|
return
|
|
#// AA 24 BossÀúÁ·Áì½± #tagCMActBossTrialGetAward
|
#
|
#struct tagCMActBossTrialGetAward
|
#{
|
# tagHead Head;
|
# BYTE ActNum; //»î¶¯±àºÅ
|
# WORD SubmitCount; //Áìȡƾ֤¸öÊý¶ÔÓ¦½±Àø
|
#};
|
def OnActBossTrialGetAward(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
actNum = clientData.ActNum
|
submitCount = clientData.SubmitCount
|
|
playerID = curPlayer.GetPlayerID()
|
actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_BossTrial, actNum)
|
if not actInfo.get(ShareDefine.ActKey_State):
|
GameWorld.DebugLog("BossÀúÁ··Ç»î¶¯ÖÐ: actNum=%s" % actNum, playerID)
|
return
|
|
cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
ipyData = IpyGameDataPY.GetIpyGameData("ActBossTrial", cfgID)
|
if not ipyData:
|
return
|
submitItemAwardInfo = ipyData.GetSubmitItemAwardInfo()
|
if submitCount not in submitItemAwardInfo:
|
GameWorld.DebugLog("BossÀúÁ·Ã»Óиý±Àø: actNum=%s,submitCount=%s not in %s" % (actNum, submitCount, submitItemAwardInfo.keys()), playerID)
|
return
|
recordIndex, awardItemList = submitItemAwardInfo[submitCount]
|
|
nowSubmitCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitAwardCount % actNum)
|
if nowSubmitCount < submitCount:
|
GameWorld.DebugLog("BossÀúÁ·Ìύƾ֤¸öÊý²»×㣬ÎÞ·¨Áì½±: actNum=%s,nowSubmitCount=%s < %s" % (actNum, nowSubmitCount, submitCount), playerID)
|
return
|
|
awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitAward % actNum)
|
if awardState & pow(2, recordIndex):
|
GameWorld.DebugLog("BossÀúÁ·Áì½±ÒÑÁìÈ¡¹ý: actNum=%s,submitCount=%s,recordIndex=%s,awardState=%s" % (actNum, submitCount, recordIndex, awardState), playerID)
|
return
|
updAwardState = awardState | pow(2, recordIndex)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BossTrialSubmitAward % actNum, updAwardState)
|
GameWorld.DebugLog("BossÀúÁ·Áì½±: actNum=%s,submitCount=%s,recordIndex=%s,awardState=%s,updAwardState=%s"
|
% (actNum, submitCount, recordIndex, awardState, updAwardState), playerID)
|
|
ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["BossTrial", False, {}])
|
Sync_BossTrialPlayerInfo(curPlayer, actNum)
|
return
|
|
def GetBossTrialDropItemIDList(curPlayer, limitIndex):
|
bossIndexDropRateDict = IpyGameDataPY.GetFuncEvalCfg("BossTrial", 4)
|
if limitIndex not in bossIndexDropRateDict:
|
return
|
dropCountRateList = bossIndexDropRateDict[limitIndex]
|
|
dropCountTotal = 0
|
itemID = IpyGameDataPY.GetFuncCfg("BossTrial", 1)
|
|
if not GameWorld.IsCrossServer():
|
for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_BossTrial, {}).values():
|
actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
|
if not actInfo.get(ShareDefine.ActKey_State):
|
GameWorld.DebugLog("BossÀúÁ··Ç»î¶¯ÖУ¬²»µôÂä! actNum=%s" % actNum)
|
continue
|
dropCount = GameWorld.GetResultByRandomList(dropCountRateList)
|
GameWorld.DebugLog("±¾·þBossÀúÁ·µôÂä! bossIndex=%s,actNum=%s,dropCount=%s" % (limitIndex, actNum, dropCount))
|
if not dropCount:
|
continue
|
dropCountTotal += dropCount
|
|
else:
|
crossActInfo = CrossRealmPlayer.GetPlayerCrossActInfo(curPlayer, ShareDefine.CrossActName_BossTrial)
|
if crossActInfo.get(ShareDefine.ActKey_State):
|
dropCount = GameWorld.GetResultByRandomList(dropCountRateList)
|
GameWorld.DebugLog("¿ç·þBossÀúÁ·µôÂä! bossIndex=%s,dropCount=%s" % (limitIndex, dropCount))
|
if dropCount:
|
dropCountTotal += dropCount
|
|
return itemID, dropCountTotal
|
|
def Sync_BossTrialPlayerInfo(curPlayer, actNum):
|
## Í¨ÖªÍæ¼ÒÊý¾ÝÐÅÏ¢
|
actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_BossTrial, actNum)
|
if not actInfo.get(ShareDefine.ActKey_State):
|
return
|
clientPack = ChPyNetSendPack.tagMCActBossTrialPlayerInfo()
|
clientPack.ActNum = actNum
|
clientPack.SubmitCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitCount % actNum)
|
clientPack.SubmitAwardCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitAwardCount % actNum)
|
clientPack.SubmitAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BossTrialSubmitAward % actNum)
|
NetPackCommon.SendFakePack(curPlayer, clientPack)
|
return
|
|
def Sync_BossTrialActionInfo(curPlayer, actNum):
|
## ֪ͨ»î¶¯ÐÅÏ¢
|
actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_BossTrial, actNum)
|
if not actInfo.get(ShareDefine.ActKey_State):
|
return
|
|
cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
dayIndex = actInfo.get(ShareDefine.ActKey_DayIndex, 0)
|
ipyData = IpyGameDataPY.GetIpyGameData("ActBossTrial", cfgID)
|
if not ipyData:
|
return
|
|
personalTempIpyDataList = []
|
personalTempID = GameWorld.GetTemplateIDByList(ipyData.GetTemplateIDList(), dayIndex)
|
if personalTempID:
|
personalTempIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActBossTrialTemplate", personalTempID)
|
|
familyTempIpyDataList = []
|
familyTempID = GameWorld.GetTemplateIDByList(ipyData.GetFamilyTemplateIDList(), dayIndex)
|
if familyTempID:
|
familyTempIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActBossTrialTemplate", familyTempID)
|
|
startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
|
startDateSync = actInfo.get(ShareDefine.ActKey_StartDateSync, startDateStr)
|
actInfo = ChPyNetSendPack.tagMCActBossTrialInfo()
|
actInfo.ActNum = actNum
|
actInfo.StartDate = startDateSync
|
actInfo.EndtDate = endDateStr
|
actInfo.JoinStartTime = ipyData.GetJoinStartTime()
|
actInfo.JoinEndTime = ipyData.GetJoinEndTime()
|
actInfo.IsDayReset = ipyData.GetIsDayReset()
|
actInfo.ResetType = ipyData.GetResetType()
|
actInfo.LimitLV = ipyData.GetLVLimit()
|
actInfo.ShopType = ipyData.GetActShopType()
|
actInfo.SubResetType = ipyData.GetSubmitAwardResetType()
|
|
actInfo.SubmitInfoList = []
|
submitItemAwardInfo = ipyData.GetSubmitItemAwardInfo()
|
submitCountList = submitItemAwardInfo.keys()
|
submitCountList.sort()
|
for submitCount in submitCountList:
|
recordIndex, awardItemList = submitItemAwardInfo[submitCount]
|
subInfo = ChPyNetSendPack.tagMCActBossTrialSubmitInfo()
|
subInfo.Clear()
|
subInfo.RecordIndex = recordIndex
|
subInfo.NeedCount = submitCount
|
subInfo.AwardItemList = []
|
for itemID, itemCount, isAuctionItem in awardItemList:
|
item = ChPyNetSendPack.tagMCActBossTrialItem()
|
item.Clear()
|
item.ItemID = itemID
|
item.ItemCount = itemCount
|
item.IsBind = isAuctionItem
|
subInfo.AwardItemList.append(item)
|
subInfo.Count = len(subInfo.AwardItemList)
|
actInfo.SubmitInfoList.append(subInfo)
|
actInfo.SubmitCount = len(actInfo.SubmitInfoList)
|
|
actInfo.PersonalBillboardInfoList = __GetTempRankBillPackList(personalTempIpyDataList)
|
actInfo.PersonalBillCount = len(actInfo.PersonalBillboardInfoList)
|
|
actInfo.FamilyBillboardInfoList = __GetTempRankBillPackList(familyTempIpyDataList)
|
actInfo.FamilyBillCount = len(actInfo.FamilyBillboardInfoList)
|
|
NetPackCommon.SendFakePack(curPlayer, actInfo)
|
return
|
|
def __GetTempRankBillPackList(ipyDataList):
|
packBillList = []
|
if not ipyDataList:
|
return packBillList
|
for tempIpyData in ipyDataList:
|
rankInfo = ChPyNetSendPack.tagMCActBossTrialBillard()
|
rankInfo.Rank = tempIpyData.GetRank()
|
|
rankInfo.AwardItemList = []
|
awardItemList = tempIpyData.GetAwardItemList()
|
for itemID, itemCount, isAuctionItem in awardItemList:
|
item = ChPyNetSendPack.tagMCActBossTrialItem()
|
item.Clear()
|
item.ItemID = itemID
|
item.ItemCount = itemCount
|
item.IsBind = isAuctionItem
|
rankInfo.AwardItemList.append(item)
|
rankInfo.Count = len(rankInfo.AwardItemList)
|
|
rankInfo.MemAwardItemList = []
|
memAwardItemList = tempIpyData.GetMemAwardItemList()
|
for itemID, itemCount, isAuctionItem in memAwardItemList:
|
item = ChPyNetSendPack.tagMCActBossTrialItem()
|
item.Clear()
|
item.ItemID = itemID
|
item.ItemCount = itemCount
|
item.IsBind = isAuctionItem
|
rankInfo.MemAwardItemList.append(item)
|
rankInfo.MemCount = len(rankInfo.MemAwardItemList)
|
|
packBillList.append(rankInfo)
|
return packBillList
|
|
def Sync_CrossActBossTrialActionInfo(curPlayer):
|
## ֪ͨ»î¶¯ÐÅÏ¢
|
actInfo = CrossRealmPlayer.GetPlayerCrossActInfo(curPlayer, ShareDefine.CrossActName_BossTrial)
|
if not actInfo:
|
return
|
|
if not actInfo.get(ShareDefine.ActKey_State):
|
return
|
|
ipyDataDict = actInfo.get(ShareDefine.ActKey_IpyDataInfo, {})
|
if not ipyDataDict:
|
return
|
|
personalTempIpyDataList = []
|
personalTempID = ipyDataDict.get("PersonalTemplateID", 0)
|
if personalTempID:
|
personalTempIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActBossTrialTemplate", personalTempID)
|
|
familyTempIpyDataList = []
|
familyTempID = ipyDataDict.get("FamilyTemplateID", 0)
|
if familyTempID:
|
familyTempIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActBossTrialTemplate", familyTempID)
|
|
actPack = ChPyNetSendPack.tagMCCrossActBossTrialInfo()
|
actPack.ServerIDRangeInfo = str(actInfo.get(ShareDefine.ActKey_ServerIDRangeList, []))
|
actPack.ServerInfoLen = len(actPack.ServerIDRangeInfo)
|
actPack.GroupValue1 = ipyDataDict.get("ZoneID", 0)
|
actPack.StartDate = ipyDataDict.get("StartDate", "")
|
actPack.EndtDate = ipyDataDict.get("EndDate", "")
|
actPack.JoinStartTime = ipyDataDict.get("JoinStartTime", "")
|
actPack.JoinEndTime = ipyDataDict.get("JoinEndTime", "")
|
actPack.IsDayReset = ipyDataDict.get("IsDayReset", 0)
|
actPack.ResetType = ipyDataDict.get("ResetType", 0)
|
RankLimitList = ipyDataDict.get("RankLimitList", [0, 0])
|
actPack.RankLimitPersonal = RankLimitList[0]
|
actPack.RankLimitFamily = RankLimitList[1]
|
|
actPack.PersonalBillboardInfoList = __GetTempRankBillPackList(personalTempIpyDataList)
|
actPack.PersonalBillCount = len(actPack.PersonalBillboardInfoList)
|
|
actPack.FamilyBillboardInfoList = __GetTempRankBillPackList(familyTempIpyDataList)
|
actPack.FamilyBillCount = len(actPack.FamilyBillboardInfoList)
|
|
NetPackCommon.SendFakePack(curPlayer, actPack)
|
return
|