From fe9b738b1cb89e3b4d320924fceef70a8e1f6fac Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 04 三月 2021 14:24:50 +0800
Subject: [PATCH] 8650 【主干】【BT2】活动规则优化(多活动支持的改为单表模式,增加活动分组编号字段区分不同的活动编号;常规活动改为不受合服影响,合服活动独立出来;累计充值活动、集字活动适配为新模式 master冲突补同步);
---
Tool/Robot/Protocol/PacketsReceived.py | 86 ++++++++++++++++++++++++++-----------------
1 files changed, 52 insertions(+), 34 deletions(-)
diff --git a/Tool/Robot/Protocol/PacketsReceived.py b/Tool/Robot/Protocol/PacketsReceived.py
index 4a6de90..350658f 100644
--- a/Tool/Robot/Protocol/PacketsReceived.py
+++ b/Tool/Robot/Protocol/PacketsReceived.py
@@ -1028,7 +1028,7 @@
BackpackLV = 0 #(BYTE BackpackLV)//背包等级
WarehouseLV = 0 #(BYTE WarehouseLV)//仓库等级
TeamID = 0 #(DWORD TeamID)//队伍ID
- UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
+ UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
UseSilverType = 0 #(BYTE UseSilverType)//默认用的银子/银票
AttackMode = 0 #(BYTE AttackMode)//攻击模式
LastWeekOnlineTime = 0 #(DWORD LastWeekOnlineTime)//上周在线时间
@@ -5889,7 +5889,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("StartYear", c_ushort), #年, 如果填写0, 就隐藏此窗口
+ ("StartYear", c_ushort), #年, 如果填写0, 就隐藏此窗口
("StartMonth", c_ushort), #月
("StartDate", c_ubyte), #日
("EndYear", c_ushort),
@@ -6021,7 +6021,7 @@
PlayerID = 0 #(DWORD PlayerID)
FamilyNameLen = 0 #(BYTE FamilyNameLen)
FamilyName = "" #(String FamilyName)//size = FamilyNameLen
- FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
+ FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
data = None
def __init__(self):
@@ -8023,7 +8023,7 @@
class tagFBEventList(Structure):
Head = tagHead()
EventCount = 0 #(BYTE EventCount)//副本活动数
- EventList = list() #(vector<tagFBEventDetail> EventList)//副本活动列表
+ EventList = list() #(vector<tagFBEventDetail> EventList)//副本活动列表
data = None
def __init__(self):
@@ -8662,7 +8662,7 @@
TeamID = 0 #(DWORD TeamID)//组队ID
HP = 0 #(DWORD HP)
MaxHP = 0 #(DWORD MaxHP)
- PlayerState = 0 #(BYTE PlayerState)//TClientPlayerState 玩家状态 打坐/马上/人镖合一
+ PlayerState = 0 #(BYTE PlayerState)//TClientPlayerState 玩家状态 打坐/马上/人镖合一
IsHideMask = 0 #(BYTE IsHideMask)
Country = 0 #(BYTE Country)//玩家国家
FamilyID = 0 #(DWORD FamilyID)//家族ID
@@ -9724,6 +9724,7 @@
("PlayerID", c_int), # 主人ID
("PosX", c_int), # X坐标
("PosY", c_int), # Y坐标
+ ("Rank", c_ubyte), #阶段
]
def __init__(self):
@@ -9745,6 +9746,7 @@
self.PlayerID = 0
self.PosX = 0
self.PosY = 0
+ self.Rank = 0
return
def GetLength(self):
@@ -9761,7 +9763,8 @@
NPCID:%d,
PlayerID:%d,
PosX:%d,
- PosY:%d
+ PosY:%d,
+ Rank:%d
'''\
%(
self.Cmd,
@@ -9770,7 +9773,8 @@
self.NPCID,
self.PlayerID,
self.PosX,
- self.PosY
+ self.PosY,
+ self.Rank
)
return DumpString
@@ -10070,7 +10074,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("FamilyMemberLV", c_ubyte), #玩家在家族中的职位
+ ("FamilyMemberLV", c_ubyte), #玩家在家族中的职位
]
def __init__(self):
@@ -10118,7 +10122,7 @@
#------------------------------------------------------
-#04 36 周围玩家家族名刷新#tagPlayerFamilyNameRefresh
+#04 36 周围玩家家族名刷新#tagPlayerFamilyNameRefresh
class tagPlayerFamilyNameRefresh(Structure):
Head = tagHead()
@@ -10196,7 +10200,7 @@
PlayerID = 0 #(DWORD PlayerID)
FamilyNameLen = 0 #(BYTE FamilyNameLen)
FamilyName = "" #(String FamilyName)//size = FamilyNameLen
- FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
+ FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
data = None
def __init__(self):
@@ -10826,7 +10830,7 @@
MaxHP = 0 #(DWORD MaxHP)
MaxHPEx = 0 #(DWORD MaxHPEx)
Speed = 0 #(WORD Speed)
- LV = 0 #(BYTE LV)
+ LV = 0 #(WORD LV)
OwnerNameLen = 0 #(BYTE OwnerNameLen)
OwnerName = "" #(String OwnerName)//size = OwnerNameLen
data = None
@@ -10851,7 +10855,7 @@
self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.Speed,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.OwnerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.OwnerNameLen)
return _pos
@@ -10891,7 +10895,7 @@
length += 4
length += 4
length += 2
- length += 1
+ length += 2
length += 1
length += len(self.OwnerName)
@@ -10911,7 +10915,7 @@
data = CommFunc.WriteDWORD(data, self.MaxHP)
data = CommFunc.WriteDWORD(data, self.MaxHPEx)
data = CommFunc.WriteWORD(data, self.Speed)
- data = CommFunc.WriteBYTE(data, self.LV)
+ data = CommFunc.WriteWORD(data, self.LV)
data = CommFunc.WriteBYTE(data, self.OwnerNameLen)
data = CommFunc.WriteString(data, self.OwnerNameLen, self.OwnerName)
return data
@@ -12943,10 +12947,12 @@
ObjType = 0 #(BYTE ObjType)
BattleType = 0 #(BYTE BattleType)//物理/魔法
SkillID = 0 #(WORD SkillID)
+ SkillIDEx = 0 #(WORD SkillIDEx)
PosX = 0 #(WORD PosX)
PosY = 0 #(WORD PosY)
HurtCount = 0 #(WORD HurtCount)//伤害数目
HurtList = list() #(vector<tagSkillPosHurtObj> HurtList)//size = HurtCount
+ SkillElementID = 0 #(WORD SkillElementID)//专精技能ID
data = None
def __init__(self):
@@ -12962,6 +12968,7 @@
self.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.BattleType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.SkillID,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.SkillIDEx,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.HurtCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -12969,6 +12976,7 @@
temHurtList = tagSkillPosHurtObj()
_pos = temHurtList.ReadData(_lpData, _pos)
self.HurtList.append(temHurtList)
+ self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -12980,10 +12988,12 @@
self.ObjType = 0
self.BattleType = 0
self.SkillID = 0
+ self.SkillIDEx = 0
self.PosX = 0
self.PosY = 0
self.HurtCount = 0
self.HurtList = list()
+ self.SkillElementID = 0
return
def GetLength(self):
@@ -12996,8 +13006,10 @@
length += 2
length += 2
length += 2
+ length += 2
for i in range(self.HurtCount):
length += self.HurtList[i].GetLength()
+ length += 2
return length
@@ -13008,11 +13020,13 @@
data = CommFunc.WriteBYTE(data, self.ObjType)
data = CommFunc.WriteBYTE(data, self.BattleType)
data = CommFunc.WriteWORD(data, self.SkillID)
+ data = CommFunc.WriteWORD(data, self.SkillIDEx)
data = CommFunc.WriteWORD(data, self.PosX)
data = CommFunc.WriteWORD(data, self.PosY)
data = CommFunc.WriteWORD(data, self.HurtCount)
for i in range(self.HurtCount):
data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
+ data = CommFunc.WriteWORD(data, self.SkillElementID)
return data
def OutputString(self):
@@ -13022,10 +13036,12 @@
ObjType:%d,
BattleType:%d,
SkillID:%d,
+ SkillIDEx:%d,
PosX:%d,
PosY:%d,
HurtCount:%d,
- HurtList:%s
+ HurtList:%s,
+ SkillElementID:%d
'''\
%(
self.Head.OutputString(),
@@ -13033,10 +13049,12 @@
self.ObjType,
self.BattleType,
self.SkillID,
+ self.SkillIDEx,
self.PosX,
self.PosY,
self.HurtCount,
- "..."
+ "...",
+ self.SkillElementID
)
return DumpString
@@ -13540,7 +13558,7 @@
ByObjID = 0 #(DWORD ByObjID)//物品原本在哪个对象身上
DropTick = 0 #(DWORD DropTick)//物品掉落Tick
UserDataLen = 0 #(WORD UserDataLen)//附加属性长度
- UserData = "" #(String UserData)//附加属性 size = UserDataLen
+ UserData = "" #(String UserData)//附加属性 size = UserDataLen
data = None
def __init__(self):
@@ -13958,7 +13976,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("MakeType", c_ubyte), #类型 TMakeItemType
+ ("MakeType", c_ubyte), #类型 TMakeItemType
("Result", c_ubyte), #是否成功
]
@@ -15046,7 +15064,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("PrepareState", c_ubyte), #准备类型, TPreparingState
+ ("PrepareState", c_ubyte), #准备类型, TPreparingState
("MaxTime", c_int), #最大时间
("PrepareID", c_int), #准备ID, 如果是技能, 则是技能ID
]
@@ -20565,7 +20583,7 @@
FamilyName = "" #(String FamilyName)//size = FamilyNameLen
Job = 0 #(BYTE Job)//职业
FamilyActiveValue = 0 #(DWORD FamilyActiveValue)//本周家族活跃度
- LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
+ LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
OfficialRank = 0 #(BYTE OfficialRank)//境界
Exattr1 = 0 #(DWORD Exattr1)//扩展属性
Exattr2 = 0 #(DWORD Exattr2)//扩展属性
@@ -20729,7 +20747,7 @@
Point = 0 #(DWORD Point)//家族战积分
Broadcast = "" #(String Broadcast)//size = BroadcastLen
FamilyActiveValue = 0 #(DWORD FamilyActiveValue)//本周家族活跃度
- LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
+ LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
Member = list() #(vector<tagRoleFamilyMember> Member)//size = MemberCount
Extra1 = 0 #(DWORD Extra1)//附加字段1
Extra2 = 0 #(DWORD Extra2)//附加字段2
@@ -21906,7 +21924,7 @@
class tagFamilyTechInfo(Structure):
Head = tagHead()
TechCount = 0 #(WORD TechCount)//帮会科技数量
- TechInfoList = list() #(vector<tagTechInfo> TechInfoList)//科技信息列表
+ TechInfoList = list() #(vector<tagTechInfo> TechInfoList)//科技信息列表
data = None
def __init__(self):
@@ -22237,7 +22255,7 @@
#10 01 排行榜信息#tagBillboard 对性能影响比较大, 需要限制tick
class tagBillboardList(Structure):
- ID = 0 #(DWORD ID)// 不一定都能用上,目前用于保存宠物NPCID
+ ID = 0 #(DWORD ID)// 不一定都能用上,目前用于保存宠物NPCID
Name1 = "" #(char Name1[33])//名字1,用来显示排序对象名字
Name2 = "" #(char Name2[33])//名字2
Type2 = 0 #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等
@@ -23703,7 +23721,7 @@
MakerNameLen = 0 #(BYTE MakerNameLen)//制造者名字
MakerName = "" #(String MakerName)//size = MakerNameLen
UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
+ UserData = "" #(String UserData)//自定义数据
data = None
def __init__(self):
@@ -24303,7 +24321,7 @@
("SubCmd", c_ubyte),
("Type", c_ubyte), #答题类型
("QuestionNO", c_ushort), # 答题号
- ("FunctionNO", c_ubyte), # 功能号
+ ("FunctionNO", c_ubyte), # 功能号
("FunctionOpt1", c_ubyte), #功能选项1
("FunctionOpt2", c_ubyte), #功能选项2
("FunctionOpt3", c_ubyte), #功能选项3
@@ -26992,8 +27010,8 @@
("PlayerID", c_int), #挂单玩家的id
("FormID", c_int), # 挂单ID
("UnitPrice", c_int), #该单购买元宝的银两单价(每组)
- ("LefGold", c_int), #该单的剩余购买元宝组数
- ("LeftTime", c_ushort), #该单的剩余在架时间
+ ("LefGold", c_int), #该单的剩余购买元宝组数
+ ("LeftTime", c_ushort), #该单的剩余在架时间
]
def __init__(self):
@@ -27127,7 +27145,7 @@
("SubCmd", c_ubyte),
("FormID", c_int), # 挂单ID
("UnitPrice", c_int), #该单购买元宝的银两单价(每组)
- ("LefGold", c_int), #该单的剩余购买元宝组数
+ ("LefGold", c_int), #该单的剩余购买元宝组数
("LeftTime", c_ushort), #该单的剩余在架时间
]
@@ -27416,7 +27434,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("LabelID", c_int), # 删除标签
+ ("LabelID", c_int), # 删除标签
]
def __init__(self):
@@ -28657,7 +28675,7 @@
class tagHightLadderTopPlayerList(Structure):
Head = tagHead()
Size = 0 #(BYTE Size)
- PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
+ PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
data = None
def __init__(self):
@@ -28919,7 +28937,7 @@
class tagVsTeam(Structure):
TeamIndex = 0 #(BYTE TeamIndex)// 竞技队Index
MemberCount = 0 #(WORD MemberCount)// 成员人数
- Members = list() #(vector<tagVsMemberInfo> Members)// 成员列表
+ Members = list() #(vector<tagVsMemberInfo> Members)// 成员列表
data = None
def __init__(self):
@@ -29046,7 +29064,7 @@
Head = tagHead()
MyOrder = 0 #(WORD MyOrder)//自身排名
Size = 0 #(BYTE Size)
- PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
+ PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
data = None
def __init__(self):
@@ -29219,7 +29237,7 @@
class tagBourseItem(Structure):
ItemGUID = "" #(char ItemGUID[40])
- PlayerID = 0 #(DWORD PlayerID)//挂单玩家ID
+ PlayerID = 0 #(DWORD PlayerID)//挂单玩家ID
ItemTypeID = 0 #(DWORD ItemTypeID)//物品ID
PriceType = 0 #(BYTE PriceType)//出售价格类型
PriceCount = 0 #(DWORD PriceCount)//出售价格
@@ -29606,4 +29624,4 @@
m_NAtagGMCmdAnswer=tagGMCmdAnswer()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMCmdAnswer.Head.Cmd,m_NAtagGMCmdAnswer.Head.SubCmd))] = m_NAtagGMCmdAnswer
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMCmdAnswer.Head.Cmd,m_NAtagGMCmdAnswer.Head.SubCmd))] = m_NAtagGMCmdAnswer
\ No newline at end of file
--
Gitblit v1.8.0