From 6b76741f4ea905c4de5997c40b0476bd63fa37b8 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 12 一月 2024 16:27:29 +0800 Subject: [PATCH] 10019 【砍树】回合战斗(增加伤血统计、奖励结算及通知;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 90 +++++++++++++++++++++++++++++++-------------- 1 files changed, 62 insertions(+), 28 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py index 60c8c3e..7b29094 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py @@ -47689,72 +47689,106 @@ # B4 20 回合制战斗状态 #tagMCTurnFightState class tagMCTurnFightState(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MapID", c_int), # 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等) - ("FuncLineID", c_ushort), - ("PlayerID", c_int), # 对应玩家ID,可为0,某些功能可能有用,如竞技场 - ("State", c_ubyte), # 0-开始;1-战斗中;2-胜利;3-失败;4-结束 - ("TurnNum", c_ubyte), # 当前轮次 - ("TurnMax", c_ubyte), # 最大轮次 - ] + Head = tagHead() + MapID = 0 #(DWORD MapID)// 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等) + FuncLineID = 0 #(WORD FuncLineID) + PlayerID = 0 #(DWORD PlayerID)// 对应玩家ID,可为0,某些功能可能有用,如竞技场 + State = 0 #(BYTE State)// 0-开始;1-战斗中;2-胜利;3-失败;4-结束 + TurnNum = 0 #(BYTE TurnNum)// 当前轮次 + TurnMax = 0 #(BYTE TurnMax)// 最大轮次 + Len = 0 #(WORD Len) + Msg = "" #(String Msg)//size = Len + data = None def __init__(self): self.Clear() - self.Cmd = 0xB4 - self.SubCmd = 0x20 + self.Head.Cmd = 0xB4 + self.Head.SubCmd = 0x20 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.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FuncLineID,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.TurnNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.TurnMax,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) + return _pos def Clear(self): - self.Cmd = 0xB4 - self.SubCmd = 0x20 + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB4 + self.Head.SubCmd = 0x20 self.MapID = 0 self.FuncLineID = 0 self.PlayerID = 0 self.State = 0 self.TurnNum = 0 self.TurnMax = 0 + self.Len = 0 + self.Msg = "" return def GetLength(self): - return sizeof(tagMCTurnFightState) + length = 0 + length += self.Head.GetLength() + length += 4 + length += 2 + length += 4 + length += 1 + length += 1 + length += 1 + length += 2 + length += len(self.Msg) + + 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.WriteDWORD(data, self.MapID) + data = CommFunc.WriteWORD(data, self.FuncLineID) + data = CommFunc.WriteDWORD(data, self.PlayerID) + data = CommFunc.WriteBYTE(data, self.State) + data = CommFunc.WriteBYTE(data, self.TurnNum) + data = CommFunc.WriteBYTE(data, self.TurnMax) + data = CommFunc.WriteWORD(data, self.Len) + data = CommFunc.WriteString(data, self.Len, self.Msg) + return data def OutputString(self): - DumpString = '''// B4 20 回合制战斗状态 //tagMCTurnFightState: - Cmd:%s, - SubCmd:%s, + DumpString = ''' + Head:%s, MapID:%d, FuncLineID:%d, PlayerID:%d, State:%d, TurnNum:%d, - TurnMax:%d + TurnMax:%d, + Len:%d, + Msg:%s '''\ %( - self.Cmd, - self.SubCmd, + self.Head.OutputString(), self.MapID, self.FuncLineID, self.PlayerID, self.State, self.TurnNum, - self.TurnMax + self.TurnMax, + self.Len, + self.Msg ) return DumpString m_NAtagMCTurnFightState=tagMCTurnFightState() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTurnFightState.Cmd,m_NAtagMCTurnFightState.SubCmd))] = m_NAtagMCTurnFightState +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTurnFightState.Head.Cmd,m_NAtagMCTurnFightState.Head.SubCmd))] = m_NAtagMCTurnFightState #------------------------------------------------------ -- Gitblit v1.8.0