From 0edacf6bca2079c8276d8d541eb3fef561d2c20e Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 19 十月 2018 17:55:54 +0800 Subject: [PATCH] 2184 【1.1.0】【1.0.18】【主干】娲皇角色死亡同时进入下一层的bug --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 161 insertions(+), 5 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 51d6d86..80c8e0f 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -4234,6 +4234,114 @@ #------------------------------------------------------ +# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo + +class tagGCStoreServerBuyCnt(Structure): + _pack_ = 1 + _fields_ = [ + ("GoodsID", c_int), #商品标识 + ("BuyCnt", 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.GoodsID = 0 + self.BuyCnt = 0 + return + + def GetLength(self): + return sizeof(tagGCStoreServerBuyCnt) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A9 06 商城全服购买次数通知 //tagGCStoreServerBuyCntInfo: + GoodsID:%d, + BuyCnt:%d + '''\ + %( + self.GoodsID, + self.BuyCnt + ) + return DumpString + + +class tagGCStoreServerBuyCntInfo(Structure): + Head = tagHead() + Count = 0 #(WORD Count)//数量 + InfoList = list() #(vector<tagGCStoreServerBuyCnt> InfoList)//次数信息 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA9 + self.Head.SubCmd = 0x06 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) + for i in range(self.Count): + temInfoList = tagGCStoreServerBuyCnt() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA9 + self.Head.SubCmd = 0x06 + self.Count = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 2 + for i in range(self.Count): + length += self.InfoList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteWORD(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagGCStoreServerBuyCntInfo=tagGCStoreServerBuyCntInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCStoreServerBuyCntInfo.Head.Cmd,m_NAtagGCStoreServerBuyCntInfo.Head.SubCmd))] = m_NAtagGCStoreServerBuyCntInfo + + +#------------------------------------------------------ #A9 21 角色改名结果 #tagUpdatePlayerNameResult class tagUpdatePlayerNameResult(Structure): @@ -20179,10 +20287,50 @@ #------------------------------------------------------ # AA 18 限时抢购活动玩家预约信息 #tagMCFlashSaleAppointmentInfo +class tagMCFlashSaleAppointmentState(Structure): + _pack_ = 1 + _fields_ = [ + ("GoodsMark", c_int), # 商品标识 + ("State", 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.GoodsMark = 0 + self.State = 0 + return + + def GetLength(self): + return sizeof(tagMCFlashSaleAppointmentState) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 18 限时抢购活动玩家预约信息 //tagMCFlashSaleAppointmentInfo: + GoodsMark:%d, + State:%d + '''\ + %( + self.GoodsMark, + self.State + ) + return DumpString + + class tagMCFlashSaleAppointmentInfo(Structure): Head = tagHead() + IsAll = 0 #(BYTE IsAll)// 是否全部 GoodsCount = 0 #(WORD GoodsCount)// 商品数 - GoodsList = list() #(vector<DWORD> GoodsList)// 预约的商品 + GoodsList = list() #(vector<tagMCFlashSaleAppointmentState> GoodsList)// 预约的商品 data = None def __init__(self): @@ -20194,10 +20342,12 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) + self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.GoodsCount): - value,_pos=CommFunc.ReadDWORD(_lpData,_pos) - self.GoodsList.append(value) + temGoodsList = tagMCFlashSaleAppointmentState() + _pos = temGoodsList.ReadData(_lpData, _pos) + self.GoodsList.append(temGoodsList) return _pos def Clear(self): @@ -20205,6 +20355,7 @@ self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x18 + self.IsAll = 0 self.GoodsCount = 0 self.GoodsList = list() return @@ -20212,27 +20363,32 @@ def GetLength(self): length = 0 length += self.Head.GetLength() + length += 1 length += 2 - length += 4 * self.GoodsCount + for i in range(self.GoodsCount): + length += self.GoodsList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.IsAll) data = CommFunc.WriteWORD(data, self.GoodsCount) for i in range(self.GoodsCount): - data = CommFunc.WriteDWORD(data, self.GoodsList[i]) + data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, + IsAll:%d, GoodsCount:%d, GoodsList:%s '''\ %( self.Head.OutputString(), + self.IsAll, self.GoodsCount, "..." ) -- Gitblit v1.8.0