From 021437fc736fafdb8608933ebe095b93cfb9b8ed Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 11 七月 2024 19:31:05 +0800 Subject: [PATCH] 10192 【越南】【主干】【港台】【砍树】上线增加膜拜主动推送(修改为可膜拜自己;) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 229 insertions(+), 6 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index 2e17195..f396f18 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -1085,7 +1085,7 @@ ("Type", c_ubyte), #类型 TBillboardType ("StartIndex", c_int), #查看的起始名次索引, 默认0 ("WatchCnt", c_ubyte), #查看条数,默认20,最大不超过100 - ("IsWatchSelf", c_ubyte), #是否查看自己名次前后,默认10条数据 + ("WatchID", c_int), #查看指定ID名次前后,如玩家ID、家族ID等 ] def __init__(self): @@ -1105,7 +1105,7 @@ self.Type = 0 self.StartIndex = 0 self.WatchCnt = 0 - self.IsWatchSelf = 0 + self.WatchID = 0 return def GetLength(self): @@ -1121,7 +1121,7 @@ Type:%d, StartIndex:%d, WatchCnt:%d, - IsWatchSelf:%d + WatchID:%d '''\ %( self.Cmd, @@ -1129,7 +1129,7 @@ self.Type, self.StartIndex, self.WatchCnt, - self.IsWatchSelf + self.WatchID ) return DumpString @@ -2379,6 +2379,66 @@ m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift + + +#------------------------------------------------------ +# B0 20 请求膜拜玩家 #tagCGWorship + +class tagCGWorship(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("PlayerID", c_int), # 目标玩家ID + ("WorshipType", c_ubyte), # 膜拜类型 + ("WorshipValue", c_int), # 膜拜类型对应的功能值,如名次或其他,由具体膜拜类型定义对应值含义 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x20 + 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 = 0xB0 + self.SubCmd = 0x20 + self.PlayerID = 0 + self.WorshipType = 0 + self.WorshipValue = 0 + return + + def GetLength(self): + return sizeof(tagCGWorship) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 20 请求膜拜玩家 //tagCGWorship: + Cmd:%s, + SubCmd:%s, + PlayerID:%d, + WorshipType:%d, + WorshipValue:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.PlayerID, + self.WorshipType, + self.WorshipValue + ) + return DumpString + + +m_NAtagCGWorship=tagCGWorship() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGWorship.Cmd,m_NAtagCGWorship.SubCmd))] = m_NAtagCGWorship #------------------------------------------------------ @@ -4613,6 +4673,9 @@ ("Type", c_ubyte), #榜单类型 ("GroupValue1", c_ubyte), # 分组值1 ("GroupValue2", c_ubyte), # 分组值2,与分组值1组合归为同组榜单数据 + ("StartIndex", c_int), #查看的起始名次索引, 默认0 + ("WatchCnt", c_ubyte), #查看条数,默认20,最大不超过100 + ("WatchID", c_int), #查看指定ID名次前后,如玩家ID、家族ID等 ] def __init__(self): @@ -4632,6 +4695,9 @@ self.Type = 0 self.GroupValue1 = 0 self.GroupValue2 = 0 + self.StartIndex = 0 + self.WatchCnt = 0 + self.WatchID = 0 return def GetLength(self): @@ -4646,14 +4712,20 @@ SubCmd:%s, Type:%d, GroupValue1:%d, - GroupValue2:%d + GroupValue2:%d, + StartIndex:%d, + WatchCnt:%d, + WatchID:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.GroupValue1, - self.GroupValue2 + self.GroupValue2, + self.StartIndex, + self.WatchCnt, + self.WatchID ) return DumpString @@ -5182,6 +5254,62 @@ m_NAtagCMRefreshMainServerRole=tagCMRefreshMainServerRole() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMainServerRole.Cmd,m_NAtagCMRefreshMainServerRole.SubCmd))] = m_NAtagCMRefreshMainServerRole + + +#------------------------------------------------------ +# A1 26 充值自选物品选择 #tagCMSelectCTGItem + +class tagCMSelectCTGItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("RecordID", c_ushort), #充值ID + ("SelectItemValue", c_int), # 自选物品索引值,每两位存储每个自选索引对应选择的物品索引+1,存储位值为0代表未选择,最多支持选择4种物品 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA1 + self.SubCmd = 0x26 + 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 = 0xA1 + self.SubCmd = 0x26 + self.RecordID = 0 + self.SelectItemValue = 0 + return + + def GetLength(self): + return sizeof(tagCMSelectCTGItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A1 26 充值自选物品选择 //tagCMSelectCTGItem: + Cmd:%s, + SubCmd:%s, + RecordID:%d, + SelectItemValue:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.RecordID, + self.SelectItemValue + ) + return DumpString + + +m_NAtagCMSelectCTGItem=tagCMSelectCTGItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectCTGItem.Cmd,m_NAtagCMSelectCTGItem.SubCmd))] = m_NAtagCMSelectCTGItem #------------------------------------------------------ @@ -20703,6 +20831,101 @@ #------------------------------------------------------ +# B4 10 回合制战斗 #tagCMTurnFight + +class tagCMTurnFight(Structure): + Head = tagHead() + MapID = 0 #(DWORD MapID)// 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等) + FuncLineID = 0 #(WORD FuncLineID) + TagType = 0 #(BYTE TagType)// 战斗目标类型,0-NPC,1-玩家,2-队伍 + TagID = 0 #(DWORD TagID)// 战斗目标类型对应的ID + ValueCount = 0 #(BYTE ValueCount) + ValueList = list() #(vector<DWORD> ValueList)// 附加值列表,可选,具体含义由MapID决定 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB4 + self.Head.SubCmd = 0x10 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FuncLineID,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.TagType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.TagID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ValueCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.ValueList.append(value) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB4 + self.Head.SubCmd = 0x10 + self.MapID = 0 + self.FuncLineID = 0 + self.TagType = 0 + self.TagID = 0 + self.ValueCount = 0 + self.ValueList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 2 + length += 1 + length += 4 + length += 1 + length += 4 * self.ValueCount + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.MapID) + data = CommFunc.WriteWORD(data, self.FuncLineID) + data = CommFunc.WriteBYTE(data, self.TagType) + data = CommFunc.WriteDWORD(data, self.TagID) + data = CommFunc.WriteBYTE(data, self.ValueCount) + for i in range(self.ValueCount): + data = CommFunc.WriteDWORD(data, self.ValueList[i]) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + MapID:%d, + FuncLineID:%d, + TagType:%d, + TagID:%d, + ValueCount:%d, + ValueList:%s + '''\ + %( + self.Head.OutputString(), + self.MapID, + self.FuncLineID, + self.TagType, + self.TagID, + self.ValueCount, + "..." + ) + return DumpString + + +m_NAtagCMTurnFight=tagCMTurnFight() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTurnFight.Head.Cmd,m_NAtagCMTurnFight.Head.SubCmd))] = m_NAtagCMTurnFight + + +#------------------------------------------------------ # B5 14 拍卖行竞价物品 #tagCMBiddingAuctionItem class tagCMBiddingAuctionItem(Structure): -- Gitblit v1.8.0