From ef2f4566ab989ae7ce862eb978be4a20259e9ece Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 25 一月 2019 17:26:48 +0800
Subject: [PATCH] 6077 【后端】【1.5.200】新增一个仙界盛典(特殊版本)活动(封包)
---
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 117 +++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 771 ++++++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 122 +++
PySysDB/PySysDBPY.h | 46 +
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 771 ++++++++++++++++++++++++
PySysDB/PySysDBG.h | 43 +
6 files changed, 1,870 insertions(+), 0 deletions(-)
diff --git a/PySysDB/PySysDBG.h b/PySysDB/PySysDBG.h
index b606d96..371c0b5 100644
--- a/PySysDB/PySysDBG.h
+++ b/PySysDB/PySysDBG.h
@@ -515,4 +515,47 @@
dict NotifyInfoStart; //全服提示信息 - 相对开始时间
dict NotifyInfoEnd; //全服提示信息 - 相对结束时间
WORD LVLimit; //限制等级
+};
+
+//节日巡礼活动时间表
+
+struct tagActFeastWeekParty
+{
+ DWORD _CfgID; //配置ID
+ char ActMark; //活动组标记
+ list PlatformList; //活动平台列表["平台A", "平台A", ...],配[]代表所有
+ list ServerIDList; //服务器ID列表
+ char StartDate; //开启日期
+ char EndDate; //结束日期
+ WORD AdvanceMinutes; //前端提前X分钟展示活动
+ BYTE IsDayReset; //是否每天重置
+ BYTE ResetType; //重置类型,0-0点重置;1-5点重置
+ dict NotifyInfoStart; //全服提示信息 - 相对开始时间
+ dict NotifyInfoEnd; //全服提示信息 - 相对结束时间
+ WORD LVLimit; //限制等级
+};
+
+//新仙界盛典活动时间表
+
+struct tagActNewFairyCeremony
+{
+ DWORD _CfgID; //配置ID
+ char ActMark; //活动组标记
+ list PlatformList; //活动平台列表["平台A", "平台A", ...],配[]代表所有
+ list ServerIDList; //服务器ID列表
+ char StartDate; //开启日期
+ char EndDate; //结束日期
+ BYTE ResetType; //重置类型,0-0点重置;1-5点重置;2-5点开始0点结束
+ dict NotifyInfoStart; //全服提示信息 - 相对开始时间
+ dict NotifyInfoEnd; //全服提示信息 - 相对结束时间
+ WORD LVLimit; //限制等级
+};
+
+//新仙界盛典-绝版降临表
+
+struct tagNewUniquenessArrive
+{
+ BYTE _WorldLvNum; //世界等级档
+ DWORD _Rank; //排名
+ dict Award; //奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
};
\ No newline at end of file
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index c88ffaa..2231ba1 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -1640,4 +1640,50 @@
{
BYTE _ClassLV; //阶级
dict DecomposeInfo; //{(产出物品ID,..):饼图,..}
+};
+
+//节日巡礼活动时间表
+
+struct tagActFeastWeekParty
+{
+ DWORD _CfgID; //配置ID
+ char StartDate; //开启日期
+ char EndDate; //结束日期
+ WORD AdvanceMinutes; //前端提前X分钟展示活动
+ BYTE IsDayReset; //是否每天重置
+ BYTE ResetType; //重置类型,0-0点重置;1-5点重置
+ WORD LVLimit; //限制等级
+ list TemplateID; //模板编号
+ dict PointAward; //总积分奖励
+};
+
+//节日巡礼模板表
+
+struct tagFeastWeekParty
+{
+ BYTE _TemplateID; //模板ID
+ BYTE ActionType; //活动条目ID
+ DWORD TotalTimes; //可完成的总次数,0表示不限次数
+ WORD SingleTimes; //单次领奖需要的次数
+ list Reward; //奖励物品
+ WORD Point; //积分
+};
+
+//新仙界盛典-全民来嗨表
+
+struct tagNewAllPeopleParty
+{
+ BYTE _ID; //ID
+ WORD TotalTimes; //总次数
+ WORD AddPoint; //每完成次数获得嗨点
+};
+
+//新仙界盛典-全民来嗨奖励表
+
+struct tagNewAllPeoplePartyAward
+{
+ BYTE _WorldLvNum; //世界等级档
+ DWORD _Index; //索引
+ DWORD NeedPoint; //需要点数
+ dict Award; //奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
};
\ No newline at end of file
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index def89d1..1c222e0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -5294,6 +5294,91 @@
#------------------------------------------------------
+# AC 0B 新仙界盛典活动信息 #tagGCNewFairyCeremonyInfo
+
+class tagGCNewFairyCeremonyInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ WorldLV = 0 #(WORD WorldLV)// 世界等级
+ LimitLV = 0 #(WORD LimitLV)// 限制等级
+ ResetType = 0 #(BYTE ResetType)// 重置类型 0-0点重置 1-5点重置
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAC
+ self.Head.SubCmd = 0x0B
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAC
+ self.Head.SubCmd = 0x0B
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.WorldLV = 0
+ self.LimitLV = 0
+ self.ResetType = 0
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 2
+ length += 2
+ length += 1
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 10, self.StartDate)
+ data = CommFunc.WriteString(data, 10, self.EndtDate)
+ data = CommFunc.WriteWORD(data, self.WorldLV)
+ data = CommFunc.WriteWORD(data, self.LimitLV)
+ data = CommFunc.WriteBYTE(data, self.ResetType)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ WorldLV:%d,
+ LimitLV:%d,
+ ResetType:%d
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.WorldLV,
+ self.LimitLV,
+ self.ResetType
+ )
+ return DumpString
+
+
+m_NAtagGCNewFairyCeremonyInfo=tagGCNewFairyCeremonyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNewFairyCeremonyInfo.Head.Cmd,m_NAtagGCNewFairyCeremonyInfo.Head.SubCmd))] = m_NAtagGCNewFairyCeremonyInfo
+
+
+#------------------------------------------------------
# AC 05 红包删除 #tagGCRedPacketDel
class tagGCRedPacketDel(Structure):
@@ -22054,6 +22139,518 @@
#------------------------------------------------------
+# AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
+
+class tagMCFeastWeekPartyItem(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("NeedPoint", c_ushort), # 领奖需要积分
+ ("ItemID", c_int), # 物品ID
+ ("ItemCnt", c_ushort), # 物品数量
+ ("IsBind", c_ubyte), # 是否绑定
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.NeedPoint = 0
+ self.ItemID = 0
+ self.ItemCnt = 0
+ self.IsBind = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastWeekPartyItem)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 20 节日巡礼活动信息 //tagMCFeastWeekPartyInfo:
+ NeedPoint:%d,
+ ItemID:%d,
+ ItemCnt:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.NeedPoint,
+ self.ItemID,
+ self.ItemCnt,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyAction(Structure):
+ TemplateID = 0 #(DWORD TemplateID)// 模板ID
+ ActionType = 0 #(WORD ActionType)// 活动类别
+ TotalTimes = 0 #(DWORD TotalTimes)// 可完成的总次数,0表示不限次数
+ SingleTimes = 0 #(DWORD SingleTimes)// 单次领奖需要的次数
+ Point = 0 #(DWORD Point)// 单次领奖积分
+ Count = 0 #(BYTE Count)// 物品数
+ ItemInfo = list() #(vector<tagMCFeastWeekPartyItem> ItemInfo)// 物品信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ temItemInfo = tagMCFeastWeekPartyItem()
+ _pos = temItemInfo.ReadData(_lpData, _pos)
+ self.ItemInfo.append(temItemInfo)
+ return _pos
+
+ def Clear(self):
+ self.TemplateID = 0
+ self.ActionType = 0
+ self.TotalTimes = 0
+ self.SingleTimes = 0
+ self.Point = 0
+ self.Count = 0
+ self.ItemInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 4
+ length += 2
+ length += 4
+ length += 4
+ length += 4
+ length += 1
+ for i in range(self.Count):
+ length += self.ItemInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteDWORD(data, self.TemplateID)
+ data = CommFunc.WriteWORD(data, self.ActionType)
+ data = CommFunc.WriteDWORD(data, self.TotalTimes)
+ data = CommFunc.WriteDWORD(data, self.SingleTimes)
+ data = CommFunc.WriteDWORD(data, self.Point)
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ TemplateID:%d,
+ ActionType:%d,
+ TotalTimes:%d,
+ SingleTimes:%d,
+ Point:%d,
+ Count:%d,
+ ItemInfo:%s
+ '''\
+ %(
+ self.TemplateID,
+ self.ActionType,
+ self.TotalTimes,
+ self.SingleTimes,
+ self.Point,
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyDayInfo(Structure):
+ ActCnt = 0 #(BYTE ActCnt)// 数量
+ TemplateList = list() #(vector<WORD> TemplateList)// 模板列表
+ PCount = 0 #(BYTE PCount)// 物品数
+ PItemInfo = list() #(vector<tagMCFeastWeekPartyItem> PItemInfo)// 物品信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ActCnt):
+ value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+ self.TemplateList.append(value)
+ self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.PCount):
+ temPItemInfo = tagMCFeastWeekPartyItem()
+ _pos = temPItemInfo.ReadData(_lpData, _pos)
+ self.PItemInfo.append(temPItemInfo)
+ return _pos
+
+ def Clear(self):
+ self.ActCnt = 0
+ self.TemplateList = list()
+ self.PCount = 0
+ self.PItemInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 2 * self.ActCnt
+ length += 1
+ for i in range(self.PCount):
+ length += self.PItemInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.ActCnt)
+ for i in range(self.ActCnt):
+ data = CommFunc.WriteWORD(data, self.TemplateList[i])
+ data = CommFunc.WriteBYTE(data, self.PCount)
+ for i in range(self.PCount):
+ data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ActCnt:%d,
+ TemplateList:%s,
+ PCount:%d,
+ PItemInfo:%s
+ '''\
+ %(
+ self.ActCnt,
+ "...",
+ self.PCount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
+ IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
+ ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
+ LimitLV = 0 #(WORD LimitLV)// 限制等级
+ DayCnt = 0 #(BYTE DayCnt)// 天数
+ DayInfoList = list() #(vector<tagMCFeastWeekPartyDayInfo> DayInfoList)// 每天模板
+ TCount = 0 #(BYTE TCount)// 模板数
+ ActionInfo = list() #(vector<tagMCFeastWeekPartyAction> ActionInfo)// 活动模板信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x20
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.DayCnt):
+ temDayInfoList = tagMCFeastWeekPartyDayInfo()
+ _pos = temDayInfoList.ReadData(_lpData, _pos)
+ self.DayInfoList.append(temDayInfoList)
+ self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.TCount):
+ temActionInfo = tagMCFeastWeekPartyAction()
+ _pos = temActionInfo.ReadData(_lpData, _pos)
+ self.ActionInfo.append(temActionInfo)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x20
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.AdvanceMinutes = 0
+ self.IsDayReset = 0
+ self.ResetType = 0
+ self.LimitLV = 0
+ self.DayCnt = 0
+ self.DayInfoList = list()
+ self.TCount = 0
+ self.ActionInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 2
+ length += 1
+ length += 1
+ length += 2
+ length += 1
+ for i in range(self.DayCnt):
+ length += self.DayInfoList[i].GetLength()
+ length += 1
+ for i in range(self.TCount):
+ length += self.ActionInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 10, self.StartDate)
+ data = CommFunc.WriteString(data, 10, self.EndtDate)
+ data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
+ data = CommFunc.WriteBYTE(data, self.IsDayReset)
+ data = CommFunc.WriteBYTE(data, self.ResetType)
+ data = CommFunc.WriteWORD(data, self.LimitLV)
+ data = CommFunc.WriteBYTE(data, self.DayCnt)
+ for i in range(self.DayCnt):
+ data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.TCount)
+ for i in range(self.TCount):
+ data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ AdvanceMinutes:%d,
+ IsDayReset:%d,
+ ResetType:%d,
+ LimitLV:%d,
+ DayCnt:%d,
+ DayInfoList:%s,
+ TCount:%d,
+ ActionInfo:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.AdvanceMinutes,
+ self.IsDayReset,
+ self.ResetType,
+ self.LimitLV,
+ self.DayCnt,
+ "...",
+ self.TCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWeekPartyInfo=tagMCFeastWeekPartyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyInfo.Head.Cmd,m_NAtagMCFeastWeekPartyInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyInfo
+
+
+#------------------------------------------------------
+# AA 21 节日巡礼玩家活动信息 #tagMCFeastWeekPartyPlayerInfo
+
+class tagMCFeastWeekPartyTaskInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("TemplateID", c_ushort), # 模板ID
+ ("CurTimes", c_int), #已完成次数
+ ("GotTimes", c_int), #已领取次数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.TemplateID = 0
+ self.CurTimes = 0
+ self.GotTimes = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastWeekPartyTaskInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 21 节日巡礼玩家活动信息 //tagMCFeastWeekPartyPlayerInfo:
+ TemplateID:%d,
+ CurTimes:%d,
+ GotTimes:%d
+ '''\
+ %(
+ self.TemplateID,
+ self.CurTimes,
+ self.GotTimes
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyDayPlayerInfo(Structure):
+ DayIndex = 0 #(DWORD DayIndex)//第X天
+ Point = 0 #(DWORD Point)//积分
+ AwardRecord = 0 #(DWORD AwardRecord)//积分领奖记录
+ ACount = 0 #(DWORD ACount)//任务条目数
+ TaskList = list() #(vector<tagMCFeastWeekPartyTaskInfo> TaskList)//活动完成次数信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ for i in range(self.ACount):
+ temTaskList = tagMCFeastWeekPartyTaskInfo()
+ _pos = temTaskList.ReadData(_lpData, _pos)
+ self.TaskList.append(temTaskList)
+ return _pos
+
+ def Clear(self):
+ self.DayIndex = 0
+ self.Point = 0
+ self.AwardRecord = 0
+ self.ACount = 0
+ self.TaskList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ for i in range(self.ACount):
+ length += self.TaskList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteDWORD(data, self.DayIndex)
+ data = CommFunc.WriteDWORD(data, self.Point)
+ data = CommFunc.WriteDWORD(data, self.AwardRecord)
+ data = CommFunc.WriteDWORD(data, self.ACount)
+ for i in range(self.ACount):
+ data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ DayIndex:%d,
+ Point:%d,
+ AwardRecord:%d,
+ ACount:%d,
+ TaskList:%s
+ '''\
+ %(
+ self.DayIndex,
+ self.Point,
+ self.AwardRecord,
+ self.ACount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyPlayerInfo(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ DayInfoList = list() #(vector<tagMCWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x21
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ temDayInfoList = tagMCWeekPartyDayPlayerInfo()
+ _pos = temDayInfoList.ReadData(_lpData, _pos)
+ self.DayInfoList.append(temDayInfoList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x21
+ self.Count = 0
+ self.DayInfoList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.Count):
+ length += self.DayInfoList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ DayInfoList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWeekPartyPlayerInfo=tagMCFeastWeekPartyPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCFeastWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyPlayerInfo
+
+
+#------------------------------------------------------
# AA 02 首充信息 #tagMCFirstGoldInfo
class tagMCFirstGoldInfo(Structure):
@@ -23041,6 +23638,180 @@
#------------------------------------------------------
+# AA 23 新仙界盛典全民来嗨玩家信息 #tagMCNewAllPeoplePartyInfo
+
+class tagMCNewAllPeoplePartyCount(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("ActID", c_int), #活动ID
+ ("CurTimes", c_ushort), #已完成次数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.ActID = 0
+ self.CurTimes = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCNewAllPeoplePartyCount)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 23 新仙界盛典全民来嗨玩家信息 //tagMCNewAllPeoplePartyInfo:
+ ActID:%d,
+ CurTimes:%d
+ '''\
+ %(
+ self.ActID,
+ self.CurTimes
+ )
+ return DumpString
+
+
+class tagMCNewAllPeoplePartyInfo(Structure):
+ Head = tagHead()
+ CurPoint = 0 #(DWORD CurPoint)//当前总点数
+ AwardRecord = 0 #(DWORD AwardRecord)//领奖记录 按奖励索引二进制位存储是否已领取
+ Count = 0 #(BYTE Count)
+ BuyCountList = list() #(vector<tagMCNewAllPeoplePartyCount> BuyCountList)//活动完成次数信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x23
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.CurPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ temBuyCountList = tagMCNewAllPeoplePartyCount()
+ _pos = temBuyCountList.ReadData(_lpData, _pos)
+ self.BuyCountList.append(temBuyCountList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x23
+ self.CurPoint = 0
+ self.AwardRecord = 0
+ self.Count = 0
+ self.BuyCountList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 4
+ length += 1
+ for i in range(self.Count):
+ length += self.BuyCountList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.CurPoint)
+ data = CommFunc.WriteDWORD(data, self.AwardRecord)
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ CurPoint:%d,
+ AwardRecord:%d,
+ Count:%d,
+ BuyCountList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.CurPoint,
+ self.AwardRecord,
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCNewAllPeoplePartyInfo=tagMCNewAllPeoplePartyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewAllPeoplePartyInfo.Head.Cmd,m_NAtagMCNewAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCNewAllPeoplePartyInfo
+
+
+#------------------------------------------------------
+# AA 22 新仙界盛典充值大礼 #tagMCNewXJSDRecharge
+
+class tagMCNewXJSDRecharge(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("State", c_ubyte), #0-不可领 1-可领 2-已领取
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x22
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xAA
+ self.SubCmd = 0x22
+ self.State = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCNewXJSDRecharge)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 22 新仙界盛典充值大礼 //tagMCNewXJSDRecharge:
+ Cmd:%s,
+ SubCmd:%s,
+ State:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.State
+ )
+ return DumpString
+
+
+m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
+
+
+#------------------------------------------------------
# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
class tagMCRechargeRankTeHuiInfo(Structure):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index 16e8a41..b8ec879 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -434,6 +434,40 @@
("dict", "NotifyInfoEnd", 0),
("WORD", "LVLimit", 0),
),
+
+ "ActFeastWeekParty":(
+ ("DWORD", "CfgID", 1),
+ ("char", "ActMark", 0),
+ ("list", "PlatformList", 0),
+ ("list", "ServerIDList", 0),
+ ("char", "StartDate", 0),
+ ("char", "EndDate", 0),
+ ("WORD", "AdvanceMinutes", 0),
+ ("BYTE", "IsDayReset", 0),
+ ("BYTE", "ResetType", 0),
+ ("dict", "NotifyInfoStart", 0),
+ ("dict", "NotifyInfoEnd", 0),
+ ("WORD", "LVLimit", 0),
+ ),
+
+ "ActNewFairyCeremony":(
+ ("DWORD", "CfgID", 1),
+ ("char", "ActMark", 0),
+ ("list", "PlatformList", 0),
+ ("list", "ServerIDList", 0),
+ ("char", "StartDate", 0),
+ ("char", "EndDate", 0),
+ ("BYTE", "ResetType", 0),
+ ("dict", "NotifyInfoStart", 0),
+ ("dict", "NotifyInfoEnd", 0),
+ ("WORD", "LVLimit", 0),
+ ),
+
+ "NewUniquenessArrive":(
+ ("BYTE", "WorldLvNum", 1),
+ ("DWORD", "Rank", 1),
+ ("dict", "Award", 0),
+ ),
}
@@ -1280,6 +1314,77 @@
def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
def GetLVLimit(self): return self.LVLimit # 限制等级
+
+# 节日巡礼活动时间表
+class IPY_ActFeastWeekParty():
+
+ def __init__(self):
+ self.CfgID = 0
+ self.ActMark = ""
+ self.PlatformList = []
+ self.ServerIDList = []
+ self.StartDate = ""
+ self.EndDate = ""
+ self.AdvanceMinutes = 0
+ self.IsDayReset = 0
+ self.ResetType = 0
+ self.NotifyInfoStart = {}
+ self.NotifyInfoEnd = {}
+ self.LVLimit = 0
+ return
+
+ def GetCfgID(self): return self.CfgID # 配置ID
+ def GetActMark(self): return self.ActMark # 活动组标记
+ def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
+ def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
+ def GetStartDate(self): return self.StartDate # 开启日期
+ def GetEndDate(self): return self.EndDate # 结束日期
+ def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
+ def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
+ def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
+ def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
+ def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
+ def GetLVLimit(self): return self.LVLimit # 限制等级
+
+# 新仙界盛典活动时间表
+class IPY_ActNewFairyCeremony():
+
+ def __init__(self):
+ self.CfgID = 0
+ self.ActMark = ""
+ self.PlatformList = []
+ self.ServerIDList = []
+ self.StartDate = ""
+ self.EndDate = ""
+ self.ResetType = 0
+ self.NotifyInfoStart = {}
+ self.NotifyInfoEnd = {}
+ self.LVLimit = 0
+ return
+
+ def GetCfgID(self): return self.CfgID # 配置ID
+ def GetActMark(self): return self.ActMark # 活动组标记
+ def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
+ def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
+ def GetStartDate(self): return self.StartDate # 开启日期
+ def GetEndDate(self): return self.EndDate # 结束日期
+ def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置;2-5点开始0点结束
+ def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
+ def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
+ def GetLVLimit(self): return self.LVLimit # 限制等级
+
+# 新仙界盛典-绝版降临表
+class IPY_NewUniquenessArrive():
+
+ def __init__(self):
+ self.WorldLvNum = 0
+ self.Rank = 0
+ self.Award = {}
+ return
+
+ def GetWorldLvNum(self): return self.WorldLvNum # 世界等级档
+ def GetRank(self): return self.Rank # 排名
+ def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
def Log(msg, playerID=0, par=0):
@@ -1381,6 +1486,12 @@
self.ipyActWeekPartyLen = len(self.ipyActWeekPartyCache)
self.ipyActLoginAwardCache = self.__LoadFileData("ActLoginAward", IPY_ActLoginAward)
self.ipyActLoginAwardLen = len(self.ipyActLoginAwardCache)
+ self.ipyActFeastWeekPartyCache = self.__LoadFileData("ActFeastWeekParty", IPY_ActFeastWeekParty)
+ self.ipyActFeastWeekPartyLen = len(self.ipyActFeastWeekPartyCache)
+ self.ipyActNewFairyCeremonyCache = self.__LoadFileData("ActNewFairyCeremony", IPY_ActNewFairyCeremony)
+ self.ipyActNewFairyCeremonyLen = len(self.ipyActNewFairyCeremonyCache)
+ self.ipyNewUniquenessArriveCache = self.__LoadFileData("NewUniquenessArrive", IPY_NewUniquenessArrive)
+ self.ipyNewUniquenessArriveLen = len(self.ipyNewUniquenessArriveCache)
Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
Log("IPY_DataMgr InitOK!")
return
@@ -1623,6 +1734,12 @@
def GetActWeekPartyByIndex(self, index): return self.ipyActWeekPartyCache[index]
def GetActLoginAwardCount(self): return self.ipyActLoginAwardLen
def GetActLoginAwardByIndex(self, index): return self.ipyActLoginAwardCache[index]
+ def GetActFeastWeekPartyCount(self): return self.ipyActFeastWeekPartyLen
+ def GetActFeastWeekPartyByIndex(self, index): return self.ipyActFeastWeekPartyCache[index]
+ def GetActNewFairyCeremonyCount(self): return self.ipyActNewFairyCeremonyLen
+ def GetActNewFairyCeremonyByIndex(self, index): return self.ipyActNewFairyCeremonyCache[index]
+ def GetNewUniquenessArriveCount(self): return self.ipyNewUniquenessArriveLen
+ def GetNewUniquenessArriveByIndex(self, index): return self.ipyNewUniquenessArriveCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index def89d1..1c222e0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5294,6 +5294,91 @@
#------------------------------------------------------
+# AC 0B 新仙界盛典活动信息 #tagGCNewFairyCeremonyInfo
+
+class tagGCNewFairyCeremonyInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ WorldLV = 0 #(WORD WorldLV)// 世界等级
+ LimitLV = 0 #(WORD LimitLV)// 限制等级
+ ResetType = 0 #(BYTE ResetType)// 重置类型 0-0点重置 1-5点重置
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAC
+ self.Head.SubCmd = 0x0B
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAC
+ self.Head.SubCmd = 0x0B
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.WorldLV = 0
+ self.LimitLV = 0
+ self.ResetType = 0
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 2
+ length += 2
+ length += 1
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 10, self.StartDate)
+ data = CommFunc.WriteString(data, 10, self.EndtDate)
+ data = CommFunc.WriteWORD(data, self.WorldLV)
+ data = CommFunc.WriteWORD(data, self.LimitLV)
+ data = CommFunc.WriteBYTE(data, self.ResetType)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ WorldLV:%d,
+ LimitLV:%d,
+ ResetType:%d
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.WorldLV,
+ self.LimitLV,
+ self.ResetType
+ )
+ return DumpString
+
+
+m_NAtagGCNewFairyCeremonyInfo=tagGCNewFairyCeremonyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNewFairyCeremonyInfo.Head.Cmd,m_NAtagGCNewFairyCeremonyInfo.Head.SubCmd))] = m_NAtagGCNewFairyCeremonyInfo
+
+
+#------------------------------------------------------
# AC 05 红包删除 #tagGCRedPacketDel
class tagGCRedPacketDel(Structure):
@@ -22054,6 +22139,518 @@
#------------------------------------------------------
+# AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
+
+class tagMCFeastWeekPartyItem(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("NeedPoint", c_ushort), # 领奖需要积分
+ ("ItemID", c_int), # 物品ID
+ ("ItemCnt", c_ushort), # 物品数量
+ ("IsBind", c_ubyte), # 是否绑定
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.NeedPoint = 0
+ self.ItemID = 0
+ self.ItemCnt = 0
+ self.IsBind = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastWeekPartyItem)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 20 节日巡礼活动信息 //tagMCFeastWeekPartyInfo:
+ NeedPoint:%d,
+ ItemID:%d,
+ ItemCnt:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.NeedPoint,
+ self.ItemID,
+ self.ItemCnt,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyAction(Structure):
+ TemplateID = 0 #(DWORD TemplateID)// 模板ID
+ ActionType = 0 #(WORD ActionType)// 活动类别
+ TotalTimes = 0 #(DWORD TotalTimes)// 可完成的总次数,0表示不限次数
+ SingleTimes = 0 #(DWORD SingleTimes)// 单次领奖需要的次数
+ Point = 0 #(DWORD Point)// 单次领奖积分
+ Count = 0 #(BYTE Count)// 物品数
+ ItemInfo = list() #(vector<tagMCFeastWeekPartyItem> ItemInfo)// 物品信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ temItemInfo = tagMCFeastWeekPartyItem()
+ _pos = temItemInfo.ReadData(_lpData, _pos)
+ self.ItemInfo.append(temItemInfo)
+ return _pos
+
+ def Clear(self):
+ self.TemplateID = 0
+ self.ActionType = 0
+ self.TotalTimes = 0
+ self.SingleTimes = 0
+ self.Point = 0
+ self.Count = 0
+ self.ItemInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 4
+ length += 2
+ length += 4
+ length += 4
+ length += 4
+ length += 1
+ for i in range(self.Count):
+ length += self.ItemInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteDWORD(data, self.TemplateID)
+ data = CommFunc.WriteWORD(data, self.ActionType)
+ data = CommFunc.WriteDWORD(data, self.TotalTimes)
+ data = CommFunc.WriteDWORD(data, self.SingleTimes)
+ data = CommFunc.WriteDWORD(data, self.Point)
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ TemplateID:%d,
+ ActionType:%d,
+ TotalTimes:%d,
+ SingleTimes:%d,
+ Point:%d,
+ Count:%d,
+ ItemInfo:%s
+ '''\
+ %(
+ self.TemplateID,
+ self.ActionType,
+ self.TotalTimes,
+ self.SingleTimes,
+ self.Point,
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyDayInfo(Structure):
+ ActCnt = 0 #(BYTE ActCnt)// 数量
+ TemplateList = list() #(vector<WORD> TemplateList)// 模板列表
+ PCount = 0 #(BYTE PCount)// 物品数
+ PItemInfo = list() #(vector<tagMCFeastWeekPartyItem> PItemInfo)// 物品信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ActCnt):
+ value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+ self.TemplateList.append(value)
+ self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.PCount):
+ temPItemInfo = tagMCFeastWeekPartyItem()
+ _pos = temPItemInfo.ReadData(_lpData, _pos)
+ self.PItemInfo.append(temPItemInfo)
+ return _pos
+
+ def Clear(self):
+ self.ActCnt = 0
+ self.TemplateList = list()
+ self.PCount = 0
+ self.PItemInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 2 * self.ActCnt
+ length += 1
+ for i in range(self.PCount):
+ length += self.PItemInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.ActCnt)
+ for i in range(self.ActCnt):
+ data = CommFunc.WriteWORD(data, self.TemplateList[i])
+ data = CommFunc.WriteBYTE(data, self.PCount)
+ for i in range(self.PCount):
+ data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ActCnt:%d,
+ TemplateList:%s,
+ PCount:%d,
+ PItemInfo:%s
+ '''\
+ %(
+ self.ActCnt,
+ "...",
+ self.PCount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
+ IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
+ ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
+ LimitLV = 0 #(WORD LimitLV)// 限制等级
+ DayCnt = 0 #(BYTE DayCnt)// 天数
+ DayInfoList = list() #(vector<tagMCFeastWeekPartyDayInfo> DayInfoList)// 每天模板
+ TCount = 0 #(BYTE TCount)// 模板数
+ ActionInfo = list() #(vector<tagMCFeastWeekPartyAction> ActionInfo)// 活动模板信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x20
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.DayCnt):
+ temDayInfoList = tagMCFeastWeekPartyDayInfo()
+ _pos = temDayInfoList.ReadData(_lpData, _pos)
+ self.DayInfoList.append(temDayInfoList)
+ self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.TCount):
+ temActionInfo = tagMCFeastWeekPartyAction()
+ _pos = temActionInfo.ReadData(_lpData, _pos)
+ self.ActionInfo.append(temActionInfo)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x20
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.AdvanceMinutes = 0
+ self.IsDayReset = 0
+ self.ResetType = 0
+ self.LimitLV = 0
+ self.DayCnt = 0
+ self.DayInfoList = list()
+ self.TCount = 0
+ self.ActionInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 2
+ length += 1
+ length += 1
+ length += 2
+ length += 1
+ for i in range(self.DayCnt):
+ length += self.DayInfoList[i].GetLength()
+ length += 1
+ for i in range(self.TCount):
+ length += self.ActionInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 10, self.StartDate)
+ data = CommFunc.WriteString(data, 10, self.EndtDate)
+ data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
+ data = CommFunc.WriteBYTE(data, self.IsDayReset)
+ data = CommFunc.WriteBYTE(data, self.ResetType)
+ data = CommFunc.WriteWORD(data, self.LimitLV)
+ data = CommFunc.WriteBYTE(data, self.DayCnt)
+ for i in range(self.DayCnt):
+ data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.TCount)
+ for i in range(self.TCount):
+ data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ AdvanceMinutes:%d,
+ IsDayReset:%d,
+ ResetType:%d,
+ LimitLV:%d,
+ DayCnt:%d,
+ DayInfoList:%s,
+ TCount:%d,
+ ActionInfo:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.AdvanceMinutes,
+ self.IsDayReset,
+ self.ResetType,
+ self.LimitLV,
+ self.DayCnt,
+ "...",
+ self.TCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWeekPartyInfo=tagMCFeastWeekPartyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyInfo.Head.Cmd,m_NAtagMCFeastWeekPartyInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyInfo
+
+
+#------------------------------------------------------
+# AA 21 节日巡礼玩家活动信息 #tagMCFeastWeekPartyPlayerInfo
+
+class tagMCFeastWeekPartyTaskInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("TemplateID", c_ushort), # 模板ID
+ ("CurTimes", c_int), #已完成次数
+ ("GotTimes", c_int), #已领取次数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.TemplateID = 0
+ self.CurTimes = 0
+ self.GotTimes = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastWeekPartyTaskInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 21 节日巡礼玩家活动信息 //tagMCFeastWeekPartyPlayerInfo:
+ TemplateID:%d,
+ CurTimes:%d,
+ GotTimes:%d
+ '''\
+ %(
+ self.TemplateID,
+ self.CurTimes,
+ self.GotTimes
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyDayPlayerInfo(Structure):
+ DayIndex = 0 #(DWORD DayIndex)//第X天
+ Point = 0 #(DWORD Point)//积分
+ AwardRecord = 0 #(DWORD AwardRecord)//积分领奖记录
+ ACount = 0 #(DWORD ACount)//任务条目数
+ TaskList = list() #(vector<tagMCFeastWeekPartyTaskInfo> TaskList)//活动完成次数信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ for i in range(self.ACount):
+ temTaskList = tagMCFeastWeekPartyTaskInfo()
+ _pos = temTaskList.ReadData(_lpData, _pos)
+ self.TaskList.append(temTaskList)
+ return _pos
+
+ def Clear(self):
+ self.DayIndex = 0
+ self.Point = 0
+ self.AwardRecord = 0
+ self.ACount = 0
+ self.TaskList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ for i in range(self.ACount):
+ length += self.TaskList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteDWORD(data, self.DayIndex)
+ data = CommFunc.WriteDWORD(data, self.Point)
+ data = CommFunc.WriteDWORD(data, self.AwardRecord)
+ data = CommFunc.WriteDWORD(data, self.ACount)
+ for i in range(self.ACount):
+ data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ DayIndex:%d,
+ Point:%d,
+ AwardRecord:%d,
+ ACount:%d,
+ TaskList:%s
+ '''\
+ %(
+ self.DayIndex,
+ self.Point,
+ self.AwardRecord,
+ self.ACount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWeekPartyPlayerInfo(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ DayInfoList = list() #(vector<tagMCWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x21
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ temDayInfoList = tagMCWeekPartyDayPlayerInfo()
+ _pos = temDayInfoList.ReadData(_lpData, _pos)
+ self.DayInfoList.append(temDayInfoList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x21
+ self.Count = 0
+ self.DayInfoList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.Count):
+ length += self.DayInfoList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ DayInfoList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWeekPartyPlayerInfo=tagMCFeastWeekPartyPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCFeastWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyPlayerInfo
+
+
+#------------------------------------------------------
# AA 02 首充信息 #tagMCFirstGoldInfo
class tagMCFirstGoldInfo(Structure):
@@ -23041,6 +23638,180 @@
#------------------------------------------------------
+# AA 23 新仙界盛典全民来嗨玩家信息 #tagMCNewAllPeoplePartyInfo
+
+class tagMCNewAllPeoplePartyCount(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("ActID", c_int), #活动ID
+ ("CurTimes", c_ushort), #已完成次数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.ActID = 0
+ self.CurTimes = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCNewAllPeoplePartyCount)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 23 新仙界盛典全民来嗨玩家信息 //tagMCNewAllPeoplePartyInfo:
+ ActID:%d,
+ CurTimes:%d
+ '''\
+ %(
+ self.ActID,
+ self.CurTimes
+ )
+ return DumpString
+
+
+class tagMCNewAllPeoplePartyInfo(Structure):
+ Head = tagHead()
+ CurPoint = 0 #(DWORD CurPoint)//当前总点数
+ AwardRecord = 0 #(DWORD AwardRecord)//领奖记录 按奖励索引二进制位存储是否已领取
+ Count = 0 #(BYTE Count)
+ BuyCountList = list() #(vector<tagMCNewAllPeoplePartyCount> BuyCountList)//活动完成次数信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x23
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.CurPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ temBuyCountList = tagMCNewAllPeoplePartyCount()
+ _pos = temBuyCountList.ReadData(_lpData, _pos)
+ self.BuyCountList.append(temBuyCountList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x23
+ self.CurPoint = 0
+ self.AwardRecord = 0
+ self.Count = 0
+ self.BuyCountList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 4
+ length += 1
+ for i in range(self.Count):
+ length += self.BuyCountList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.CurPoint)
+ data = CommFunc.WriteDWORD(data, self.AwardRecord)
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ CurPoint:%d,
+ AwardRecord:%d,
+ Count:%d,
+ BuyCountList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.CurPoint,
+ self.AwardRecord,
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCNewAllPeoplePartyInfo=tagMCNewAllPeoplePartyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewAllPeoplePartyInfo.Head.Cmd,m_NAtagMCNewAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCNewAllPeoplePartyInfo
+
+
+#------------------------------------------------------
+# AA 22 新仙界盛典充值大礼 #tagMCNewXJSDRecharge
+
+class tagMCNewXJSDRecharge(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("State", c_ubyte), #0-不可领 1-可领 2-已领取
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x22
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xAA
+ self.SubCmd = 0x22
+ self.State = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCNewXJSDRecharge)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 22 新仙界盛典充值大礼 //tagMCNewXJSDRecharge:
+ Cmd:%s,
+ SubCmd:%s,
+ State:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.State
+ )
+ return DumpString
+
+
+m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
+
+
+#------------------------------------------------------
# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
class tagMCRechargeRankTeHuiInfo(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 95334be..8ebd603 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1290,6 +1290,40 @@
("BYTE", "ClassLV", 1),
("dict", "DecomposeInfo", 0),
),
+
+ "ActFeastWeekParty":(
+ ("DWORD", "CfgID", 1),
+ ("char", "StartDate", 0),
+ ("char", "EndDate", 0),
+ ("WORD", "AdvanceMinutes", 0),
+ ("BYTE", "IsDayReset", 0),
+ ("BYTE", "ResetType", 0),
+ ("WORD", "LVLimit", 0),
+ ("list", "TemplateID", 0),
+ ("dict", "PointAward", 0),
+ ),
+
+ "FeastWeekParty":(
+ ("BYTE", "TemplateID", 1),
+ ("BYTE", "ActionType", 0),
+ ("DWORD", "TotalTimes", 0),
+ ("WORD", "SingleTimes", 0),
+ ("list", "Reward", 0),
+ ("WORD", "Point", 0),
+ ),
+
+ "NewAllPeopleParty":(
+ ("BYTE", "ID", 1),
+ ("WORD", "TotalTimes", 0),
+ ("WORD", "AddPoint", 0),
+ ),
+
+ "NewAllPeoplePartyAward":(
+ ("BYTE", "WorldLvNum", 1),
+ ("DWORD", "Index", 1),
+ ("DWORD", "NeedPoint", 0),
+ ("dict", "Award", 0),
+ ),
}
@@ -3932,6 +3966,78 @@
def GetClassLV(self): return self.ClassLV # 阶级
def GetDecomposeInfo(self): return self.DecomposeInfo # {(产出物品ID,..):饼图,..}
+
+# 节日巡礼活动时间表
+class IPY_ActFeastWeekParty():
+
+ def __init__(self):
+ self.CfgID = 0
+ self.StartDate = ""
+ self.EndDate = ""
+ self.AdvanceMinutes = 0
+ self.IsDayReset = 0
+ self.ResetType = 0
+ self.LVLimit = 0
+ self.TemplateID = []
+ self.PointAward = {}
+ return
+
+ def GetCfgID(self): return self.CfgID # 配置ID
+ def GetStartDate(self): return self.StartDate # 开启日期
+ def GetEndDate(self): return self.EndDate # 结束日期
+ def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
+ def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
+ def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
+ def GetLVLimit(self): return self.LVLimit # 限制等级
+ def GetTemplateID(self): return self.TemplateID # 模板编号
+ def GetPointAward(self): return self.PointAward # 总积分奖励
+
+# 节日巡礼模板表
+class IPY_FeastWeekParty():
+
+ def __init__(self):
+ self.TemplateID = 0
+ self.ActionType = 0
+ self.TotalTimes = 0
+ self.SingleTimes = 0
+ self.Reward = []
+ self.Point = 0
+ return
+
+ def GetTemplateID(self): return self.TemplateID # 模板ID
+ def GetActionType(self): return self.ActionType # 活动条目ID
+ def GetTotalTimes(self): return self.TotalTimes # 可完成的总次数,0表示不限次数
+ def GetSingleTimes(self): return self.SingleTimes # 单次领奖需要的次数
+ def GetReward(self): return self.Reward # 奖励物品
+ def GetPoint(self): return self.Point # 积分
+
+# 新仙界盛典-全民来嗨表
+class IPY_NewAllPeopleParty():
+
+ def __init__(self):
+ self.ID = 0
+ self.TotalTimes = 0
+ self.AddPoint = 0
+ return
+
+ def GetID(self): return self.ID # ID
+ def GetTotalTimes(self): return self.TotalTimes # 总次数
+ def GetAddPoint(self): return self.AddPoint # 每完成次数获得嗨点
+
+# 新仙界盛典-全民来嗨奖励表
+class IPY_NewAllPeoplePartyAward():
+
+ def __init__(self):
+ self.WorldLvNum = 0
+ self.Index = 0
+ self.NeedPoint = 0
+ self.Award = {}
+ return
+
+ def GetWorldLvNum(self): return self.WorldLvNum # 世界等级档
+ def GetIndex(self): return self.Index # 索引
+ def GetNeedPoint(self): return self.NeedPoint # 需要点数
+ def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
def Log(msg, playerID=0, par=0):
@@ -4201,6 +4307,14 @@
self.ipyZhuXianTowerLen = len(self.ipyZhuXianTowerCache)
self.ipyZhuXianEquipDecomposeCache = self.__LoadFileData("ZhuXianEquipDecompose", IPY_ZhuXianEquipDecompose)
self.ipyZhuXianEquipDecomposeLen = len(self.ipyZhuXianEquipDecomposeCache)
+ self.ipyActFeastWeekPartyCache = self.__LoadFileData("ActFeastWeekParty", IPY_ActFeastWeekParty)
+ self.ipyActFeastWeekPartyLen = len(self.ipyActFeastWeekPartyCache)
+ self.ipyFeastWeekPartyCache = self.__LoadFileData("FeastWeekParty", IPY_FeastWeekParty)
+ self.ipyFeastWeekPartyLen = len(self.ipyFeastWeekPartyCache)
+ self.ipyNewAllPeoplePartyCache = self.__LoadFileData("NewAllPeopleParty", IPY_NewAllPeopleParty)
+ self.ipyNewAllPeoplePartyLen = len(self.ipyNewAllPeoplePartyCache)
+ self.ipyNewAllPeoplePartyAwardCache = self.__LoadFileData("NewAllPeoplePartyAward", IPY_NewAllPeoplePartyAward)
+ self.ipyNewAllPeoplePartyAwardLen = len(self.ipyNewAllPeoplePartyAwardCache)
Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
Log("IPY_DataMgr InitOK!")
return
@@ -4611,6 +4725,14 @@
def GetZhuXianTowerByIndex(self, index): return self.ipyZhuXianTowerCache[index]
def GetZhuXianEquipDecomposeCount(self): return self.ipyZhuXianEquipDecomposeLen
def GetZhuXianEquipDecomposeByIndex(self, index): return self.ipyZhuXianEquipDecomposeCache[index]
+ def GetActFeastWeekPartyCount(self): return self.ipyActFeastWeekPartyLen
+ def GetActFeastWeekPartyByIndex(self, index): return self.ipyActFeastWeekPartyCache[index]
+ def GetFeastWeekPartyCount(self): return self.ipyFeastWeekPartyLen
+ def GetFeastWeekPartyByIndex(self, index): return self.ipyFeastWeekPartyCache[index]
+ def GetNewAllPeoplePartyCount(self): return self.ipyNewAllPeoplePartyLen
+ def GetNewAllPeoplePartyByIndex(self, index): return self.ipyNewAllPeoplePartyCache[index]
+ def GetNewAllPeoplePartyAwardCount(self): return self.ipyNewAllPeoplePartyAwardLen
+ def GetNewAllPeoplePartyAwardByIndex(self, index): return self.ipyNewAllPeoplePartyAwardCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData
--
Gitblit v1.8.0