From 01e033a79a5ce63e298015d0783560a77ccffea9 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期五, 14 九月 2018 11:46:46 +0800 Subject: [PATCH] fix:3543 【后端】【主干】【1.0.15】开服红包优化 每天赠送次数 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 132 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 105 insertions(+), 27 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 908d399..9ba4a46 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -311,60 +311,78 @@ #A0 05 同步开服天数 #tagOpenServerDay class tagOpenServerDay(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Day", c_ushort), # 已开服天数,从0开始 - ("IsMixServer", c_ubyte), #是否是合服服务器 - ("MixDay", c_ushort), # 已合服天数,从0开始 - ] + Head = tagHead() + Day = 0 #(WORD Day)// 已开服天数,从0开始 + IsMixServer = 0 #(BYTE IsMixServer)//是否是合服服务器 + MixDay = 0 #(WORD MixDay)// 已合服天数,从0开始 + OpenServerTime = "" #(char OpenServerTime[19])//开服时间yyyy-MM-dd HH:mm:ss + data = None def __init__(self): self.Clear() - self.Cmd = 0xA0 - self.SubCmd = 0x05 + self.Head.Cmd = 0xA0 + self.Head.SubCmd = 0x05 return - def ReadData(self, stringData, _pos=0, _len=0): + def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() - memmove(addressof(self), stringData[_pos:], self.GetLength()) - return _pos + self.GetLength() + _pos = self.Head.ReadData(_lpData, _pos) + self.Day,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.IsMixServer,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.MixDay,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.OpenServerTime,_pos = CommFunc.ReadString(_lpData, _pos,19) + return _pos def Clear(self): - self.Cmd = 0xA0 - self.SubCmd = 0x05 + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA0 + self.Head.SubCmd = 0x05 self.Day = 0 self.IsMixServer = 0 self.MixDay = 0 + self.OpenServerTime = "" return def GetLength(self): - return sizeof(tagOpenServerDay) + length = 0 + length += self.Head.GetLength() + length += 2 + length += 1 + length += 2 + length += 19 + + return length def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteWORD(data, self.Day) + data = CommFunc.WriteBYTE(data, self.IsMixServer) + data = CommFunc.WriteWORD(data, self.MixDay) + data = CommFunc.WriteString(data, 19, self.OpenServerTime) + return data def OutputString(self): - DumpString = '''//A0 05 同步开服天数 //tagOpenServerDay: - Cmd:%s, - SubCmd:%s, + DumpString = ''' + Head:%s, Day:%d, IsMixServer:%d, - MixDay:%d + MixDay:%d, + OpenServerTime:%s '''\ %( - self.Cmd, - self.SubCmd, + self.Head.OutputString(), self.Day, self.IsMixServer, - self.MixDay + self.MixDay, + self.OpenServerTime ) return DumpString m_NAtagOpenServerDay=tagOpenServerDay() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOpenServerDay.Cmd,m_NAtagOpenServerDay.SubCmd))] = m_NAtagOpenServerDay +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOpenServerDay.Head.Cmd,m_NAtagOpenServerDay.Head.SubCmd))] = m_NAtagOpenServerDay #------------------------------------------------------ @@ -4402,6 +4420,7 @@ ("SubCmd", c_ubyte), ("Point", c_int), # 复活点数 ("TotalPoint", c_int), # 复活总点数 + ("RebornCnt", c_ushort), # 复活次数 ] def __init__(self): @@ -4420,6 +4439,7 @@ self.SubCmd = 0x08 self.Point = 0 self.TotalPoint = 0 + self.RebornCnt = 0 return def GetLength(self): @@ -4433,13 +4453,15 @@ Cmd:%s, SubCmd:%s, Point:%d, - TotalPoint:%d + TotalPoint:%d, + RebornCnt:%d '''\ %( self.Cmd, self.SubCmd, self.Point, - self.TotalPoint + self.TotalPoint, + self.RebornCnt ) return DumpString @@ -13805,6 +13827,62 @@ #------------------------------------------------------ +# A3 21 祈福丹药结果 #tagMCPrayElixirResult + +class tagMCPrayElixirResult(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ItemID", c_int), # 物品ID + ("PrayCnt", c_ubyte), # 今日祈福次数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA3 + self.SubCmd = 0x21 + 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 = 0xA3 + self.SubCmd = 0x21 + self.ItemID = 0 + self.PrayCnt = 0 + return + + def GetLength(self): + return sizeof(tagMCPrayElixirResult) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 21 祈福丹药结果 //tagMCPrayElixirResult: + Cmd:%s, + SubCmd:%s, + ItemID:%d, + PrayCnt:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ItemID, + self.PrayCnt + ) + return DumpString + + +m_NAtagMCPrayElixirResult=tagMCPrayElixirResult() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrayElixirResult.Cmd,m_NAtagMCPrayElixirResult.SubCmd))] = m_NAtagMCPrayElixirResult + + +#------------------------------------------------------ # A3 49 资源找回次数 #tagMCRecoverNum class tagMCRecoverNumInfo(Structure): -- Gitblit v1.8.0