From fd569f371890909dc35c09d1275d9204b39d77f9 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 19 四月 2024 11:41:09 +0800 Subject: [PATCH] 10054 【后端】任务系统(支持功能开启任务条件;支持任务分组如主线、支线等;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 92 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 76 insertions(+), 16 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py index 9b233d2..f880c1f 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py @@ -44660,19 +44660,17 @@ #------------------------------------------------------ # B1 10 当前任务信息 #tagMCTaskInfo -class tagMCTaskInfo(Structure): +class tagMCTask(Structure): _pack_ = 1 _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("TaskID", c_int), # 任务ID + ("TaskGroup", c_ubyte), # 任务组,0-主线 + ("TaskID", c_int), # 当前任务ID,可能为0,表示该分组暂时没有任务 ("CurValue", c_int), # 当前进度值 + ("State", c_ubyte), # 任务状态 1-进行中 2-已完成 ] def __init__(self): self.Clear() - self.Cmd = 0xB1 - self.SubCmd = 0x10 return def ReadData(self, stringData, _pos=0, _len=0): @@ -44681,36 +44679,98 @@ return _pos + self.GetLength() def Clear(self): - self.Cmd = 0xB1 - self.SubCmd = 0x10 + self.TaskGroup = 0 self.TaskID = 0 self.CurValue = 0 + self.State = 0 return def GetLength(self): - return sizeof(tagMCTaskInfo) + return sizeof(tagMCTask) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B1 10 当前任务信息 //tagMCTaskInfo: - Cmd:%s, - SubCmd:%s, + TaskGroup:%d, TaskID:%d, - CurValue:%d + CurValue:%d, + State:%d '''\ %( - self.Cmd, - self.SubCmd, + self.TaskGroup, self.TaskID, - self.CurValue + self.CurValue, + self.State + ) + return DumpString + + +class tagMCTaskInfo(Structure): + Head = tagHead() + TaskCount = 0 #(BYTE TaskCount) + TaskList = list() #(vector<tagMCTask> TaskList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB1 + self.Head.SubCmd = 0x10 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.TaskCount): + temTaskList = tagMCTask() + _pos = temTaskList.ReadData(_lpData, _pos) + self.TaskList.append(temTaskList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB1 + self.Head.SubCmd = 0x10 + self.TaskCount = 0 + self.TaskList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.TaskCount): + length += self.TaskList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.TaskCount) + for i in range(self.TaskCount): + data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + TaskCount:%d, + TaskList:%s + '''\ + %( + self.Head.OutputString(), + self.TaskCount, + "..." ) return DumpString m_NAtagMCTaskInfo=tagMCTaskInfo() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTaskInfo.Cmd,m_NAtagMCTaskInfo.SubCmd))] = m_NAtagMCTaskInfo +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTaskInfo.Head.Cmd,m_NAtagMCTaskInfo.Head.SubCmd))] = m_NAtagMCTaskInfo #------------------------------------------------------ -- Gitblit v1.8.0