10241 【越南】【砍树】 古宝养成(增加商店支持;)
| | |
| | | char JoinStartTime; //参与开始时间点
|
| | | char JoinEndTime; //参与结束时间点
|
| | | WORD LVLimit; //限制等级
|
| | | WORD ActShopType; //开放商店类型,为0时不开放
|
| | | WORD PersonalTemplateID; //个人排行模板编号
|
| | | BYTE IsRelationCrossAct; //是否关联跨服活动
|
| | | };
|
| | |
| | | JoinStartTime = "" #(char JoinStartTime[5])// 参与开始时间点 mm:ss
|
| | | JoinEndTime = "" #(char JoinEndTime[5])// 参与结束时间点 mm:ss
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | ShopType = 0 #(WORD ShopType)// 开放商店类型,可能为0不开放
|
| | | PersonalBillCount = 0 #(BYTE PersonalBillCount)
|
| | | PersonalBillboardInfoList = list() #(vector<tagMCActGubaoBillard> PersonalBillboardInfoList)// 个人榜单奖励信息列表,如果没有代表本次活动没有该榜奖励
|
| | | data = None
|
| | |
| | | self.JoinStartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
|
| | | self.JoinEndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.PersonalBillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.PersonalBillCount):
|
| | | temPersonalBillboardInfoList = tagMCActGubaoBillard()
|
| | |
| | | self.JoinStartTime = ""
|
| | | self.JoinEndTime = ""
|
| | | self.LimitLV = 0
|
| | | self.ShopType = 0
|
| | | self.PersonalBillCount = 0
|
| | | self.PersonalBillboardInfoList = list()
|
| | | return
|
| | |
| | | length += 10
|
| | | length += 5
|
| | | length += 5
|
| | | length += 2
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.PersonalBillCount):
|
| | |
| | | data = CommFunc.WriteString(data, 5, self.JoinStartTime)
|
| | | data = CommFunc.WriteString(data, 5, self.JoinEndTime)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteWORD(data, self.ShopType)
|
| | | data = CommFunc.WriteBYTE(data, self.PersonalBillCount)
|
| | | for i in range(self.PersonalBillCount):
|
| | | data = CommFunc.WriteString(data, self.PersonalBillboardInfoList[i].GetLength(), self.PersonalBillboardInfoList[i].GetBuffer())
|
| | |
| | | JoinStartTime:%s,
|
| | | JoinEndTime:%s,
|
| | | LimitLV:%d,
|
| | | ShopType:%d,
|
| | | PersonalBillCount:%d,
|
| | | PersonalBillboardInfoList:%s
|
| | | '''\
|
| | |
| | | self.JoinStartTime,
|
| | | self.JoinEndTime,
|
| | | self.LimitLV,
|
| | | self.ShopType,
|
| | | self.PersonalBillCount,
|
| | | "..."
|
| | | )
|
| | |
| | | JoinStartTime = "" #(char JoinStartTime[5])// 参与开始时间点 mm:ss
|
| | | JoinEndTime = "" #(char JoinEndTime[5])// 参与结束时间点 mm:ss
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | ShopType = 0 #(WORD ShopType)// 开放商店类型,可能为0不开放
|
| | | PersonalBillCount = 0 #(BYTE PersonalBillCount)
|
| | | PersonalBillboardInfoList = list() #(vector<tagMCActGubaoBillard> PersonalBillboardInfoList)// 个人榜单奖励信息列表,如果没有代表本次活动没有该榜奖励
|
| | | data = None
|
| | |
| | | self.JoinStartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
|
| | | self.JoinEndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.PersonalBillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.PersonalBillCount):
|
| | | temPersonalBillboardInfoList = tagMCActGubaoBillard()
|
| | |
| | | self.JoinStartTime = ""
|
| | | self.JoinEndTime = ""
|
| | | self.LimitLV = 0
|
| | | self.ShopType = 0
|
| | | self.PersonalBillCount = 0
|
| | | self.PersonalBillboardInfoList = list()
|
| | | return
|
| | |
| | | length += 10
|
| | | length += 5
|
| | | length += 5
|
| | | length += 2
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.PersonalBillCount):
|
| | |
| | | data = CommFunc.WriteString(data, 5, self.JoinStartTime)
|
| | | data = CommFunc.WriteString(data, 5, self.JoinEndTime)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteWORD(data, self.ShopType)
|
| | | data = CommFunc.WriteBYTE(data, self.PersonalBillCount)
|
| | | for i in range(self.PersonalBillCount):
|
| | | data = CommFunc.WriteString(data, self.PersonalBillboardInfoList[i].GetLength(), self.PersonalBillboardInfoList[i].GetBuffer())
|
| | |
| | | JoinStartTime:%s,
|
| | | JoinEndTime:%s,
|
| | | LimitLV:%d,
|
| | | ShopType:%d,
|
| | | PersonalBillCount:%d,
|
| | | PersonalBillboardInfoList:%s
|
| | | '''\
|
| | |
| | | self.JoinStartTime,
|
| | | self.JoinEndTime,
|
| | | self.LimitLV,
|
| | | self.ShopType,
|
| | | self.PersonalBillCount,
|
| | | "..."
|
| | | )
|
| | |
| | | ("char", "JoinStartTime", 0),
|
| | | ("char", "JoinEndTime", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("WORD", "ActShopType", 0),
|
| | | ("WORD", "PersonalTemplateID", 0),
|
| | | ("BYTE", "IsRelationCrossAct", 0),
|
| | | ),
|
| | |
| | | def GetJoinStartTime(self): return self.attrTuple[3] # 参与开始时间点 char
|
| | | def GetJoinEndTime(self): return self.attrTuple[4] # 参与结束时间点 char
|
| | | def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
|
| | | def GetPersonalTemplateID(self): return self.attrTuple[6] # 个人排行模板编号 WORD
|
| | | def GetIsRelationCrossAct(self): return self.attrTuple[7] # 是否关联跨服活动 BYTE |
| | | def GetActShopType(self): return self.attrTuple[6] # 开放商店类型,为0时不开放 WORD
|
| | | def GetPersonalTemplateID(self): return self.attrTuple[7] # 个人排行模板编号 WORD
|
| | | def GetIsRelationCrossAct(self): return self.attrTuple[8] # 是否关联跨服活动 BYTE |
| | | |
| | | # 古宝养成榜单模版表 |
| | | class IPY_ActGubaoBillTemp(): |
| | |
| | | import PlayerControl
|
| | | import IpyGameDataPY
|
| | | import CrossRealmPlayer
|
| | | import FunctionNPCCommon
|
| | | import PlayerBillboard
|
| | | import ChPyNetSendPack
|
| | | import PlayerZhanling
|
| | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActGubaoScore % actNum, 0)
|
| | |
|
| | | if state:
|
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActGubao", cfgID)
|
| | | if ipyData and ipyData.GetActShopType():
|
| | | FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, [ipyData.GetActShopType()])
|
| | | Sync_GubaoActionInfo(curPlayer, actNum)
|
| | | Sync_GubaoPlayerInfo(curPlayer, actNum)
|
| | | return True
|
| | |
| | | clientPack.JoinStartTime = ipyData.GetJoinStartTime()
|
| | | clientPack.JoinEndTime = ipyData.GetJoinEndTime()
|
| | | clientPack.LimitLV = ipyData.GetLVLimit()
|
| | | clientPack.ShopType = ipyData.GetActShopType()
|
| | |
|
| | | clientPack.PersonalBillboardInfoList = __GetTempRankBillPackList(personalTempIpyDataList)
|
| | | clientPack.PersonalBillCount = len(clientPack.PersonalBillboardInfoList)
|