From 388823edfe6308cba6f76ca6dc4f20022c5cb2be Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 30 六月 2025 19:03:50 +0800 Subject: [PATCH] 10431 【英文】看广告获得限时代金券 --- ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py | 152 ++++++++++++++++++++++++-------------------------- 1 files changed, 74 insertions(+), 78 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py index c47d050..2f08604 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py @@ -101,6 +101,66 @@ return DumpString #------------------------------------------------------ +# 05 03 玩家离开队伍 #tagGMPlayerLeaveTeam + +class tagGMPlayerLeaveTeam(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("PlayerID", c_int), + ("CopyMapID", c_int), + ("TeamID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0x05 + self.SubCmd = 0x03 + 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 = 0x05 + self.SubCmd = 0x03 + self.PlayerID = 0 + self.CopyMapID = 0 + self.TeamID = 0 + return + + def GetLength(self): + return sizeof(tagGMPlayerLeaveTeam) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// 05 03 玩家离开队伍 //tagGMPlayerLeaveTeam: + Cmd:%s, + SubCmd:%s, + PlayerID:%d, + CopyMapID:%d, + TeamID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.PlayerID, + self.CopyMapID, + self.TeamID + ) + return DumpString + + +m_NAtagGMPlayerLeaveTeam=tagGMPlayerLeaveTeam() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMPlayerLeaveTeam.Cmd,m_NAtagGMPlayerLeaveTeam.SubCmd))] = m_NAtagGMPlayerLeaveTeam + + +#------------------------------------------------------ # 05 02 队伍信息刷新 #tagGMTeamInfo class tagGMTeamMemInfo(Structure): @@ -418,12 +478,14 @@ PlayerID = 0 #(DWORD PlayerID)//玩家ID CompensationType = 0 #(BYTE CompensationType)//补偿类型 0 全服 1 个人 GUID = "" #(char GUID[40])//对应的补偿ID + CreateTime = "" #(char CreateTime[30])//邮件接收时间 TextLen = 0 #(DWORD TextLen)//文字内容长度 Text = "" #(String Text)//文字内容 Count = 0 #(BYTE Count)//当前补偿物品数 Gold = 0 #(DWORD Gold)//仙玉 GoldPaper = 0 #(DWORD GoldPaper)//绑定仙玉 Silver = 0 #(DWORD Silver)//铜钱 + MoneySource = 0 #(BYTE MoneySource)//货币来源 Items = list() #(vector<tagGMCompensationItem> Items)//补偿物品信息 data = None @@ -439,12 +501,14 @@ self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CompensationType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30) self.TextLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Text,_pos = CommFunc.ReadString(_lpData, _pos,self.TextLen) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Gold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GoldPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Silver,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.MoneySource,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temItems = tagGMCompensationItem() _pos = temItems.ReadData(_lpData, _pos) @@ -459,12 +523,14 @@ self.PlayerID = 0 self.CompensationType = 0 self.GUID = "" + self.CreateTime = "" self.TextLen = 0 self.Text = "" self.Count = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 + self.MoneySource = 0 self.Items = list() return @@ -474,12 +540,14 @@ length += 4 length += 1 length += 40 + length += 30 length += 4 length += len(self.Text) length += 1 length += 4 length += 4 length += 4 + length += 1 for i in range(self.Count): length += self.Items[i].GetLength() @@ -491,12 +559,14 @@ data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.CompensationType) data = CommFunc.WriteString(data, 40, self.GUID) + data = CommFunc.WriteString(data, 30, self.CreateTime) data = CommFunc.WriteDWORD(data, self.TextLen) data = CommFunc.WriteString(data, self.TextLen, self.Text) data = CommFunc.WriteBYTE(data, self.Count) data = CommFunc.WriteDWORD(data, self.Gold) data = CommFunc.WriteDWORD(data, self.GoldPaper) data = CommFunc.WriteDWORD(data, self.Silver) + data = CommFunc.WriteBYTE(data, self.MoneySource) for i in range(self.Count): data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer()) return data @@ -507,12 +577,14 @@ PlayerID:%d, CompensationType:%d, GUID:%s, + CreateTime:%s, TextLen:%d, Text:%s, Count:%d, Gold:%d, GoldPaper:%d, Silver:%d, + MoneySource:%d, Items:%s '''\ %( @@ -520,12 +592,14 @@ self.PlayerID, self.CompensationType, self.GUID, + self.CreateTime, self.TextLen, self.Text, self.Count, self.Gold, self.GoldPaper, self.Silver, + self.MoneySource, "..." ) return DumpString @@ -533,84 +607,6 @@ m_NAtagGMRequestCompensationResult=tagGMRequestCompensationResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMRequestCompensationResult.Head.Cmd,m_NAtagGMRequestCompensationResult.Head.SubCmd))] = m_NAtagGMRequestCompensationResult - - -#------------------------------------------------------ -#03 01 天梯竞技场玩家挑战结果同步#tagGMHighLadderChallengeReuslt - -class tagGMHighLadderChallengeReuslt(Structure): - Head = tagHead() - PlayerID = 0 #(DWORD PlayerID)//玩家ID - Result = 0 #(BYTE Result)//结果 - PlusInfoSize = 0 #(WORD PlusInfoSize) - PlusInfo = "" #(String PlusInfo)//附带信息 - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0x03 - self.Head.SubCmd = 0x01 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) - self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.PlusInfoSize,_pos = CommFunc.ReadWORD(_lpData, _pos) - self.PlusInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusInfoSize) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0x03 - self.Head.SubCmd = 0x01 - self.PlayerID = 0 - self.Result = 0 - self.PlusInfoSize = 0 - self.PlusInfo = "" - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 4 - length += 1 - length += 2 - length += len(self.PlusInfo) - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteDWORD(data, self.PlayerID) - data = CommFunc.WriteBYTE(data, self.Result) - data = CommFunc.WriteWORD(data, self.PlusInfoSize) - data = CommFunc.WriteString(data, self.PlusInfoSize, self.PlusInfo) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - PlayerID:%d, - Result:%d, - PlusInfoSize:%d, - PlusInfo:%s - '''\ - %( - self.Head.OutputString(), - self.PlayerID, - self.Result, - self.PlusInfoSize, - self.PlusInfo - ) - return DumpString - - -m_NAtagGMHighLadderChallengeReuslt=tagGMHighLadderChallengeReuslt() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMHighLadderChallengeReuslt.Head.Cmd,m_NAtagGMHighLadderChallengeReuslt.Head.SubCmd))] = m_NAtagGMHighLadderChallengeReuslt #------------------------------------------------------ -- Gitblit v1.8.0