LuaDistributesTestProto = {} LuaDistributesTestProto.sysID = 1 LuaDistributesTestProto.cmdID = 2 function LuaDistributesTestProto.ExtraPacket(memStream) -- print('ExtraPacket:'..memStream.Length) local binaryReader = CS.BinaryMessageHandle.GetLuaPacketReader(memStream) local sysID = binaryReader:ReadByte() local cmdID = binaryReader:ReadByte() packet = LuaDistributesTestProto.ReadPacket(binaryReader) return packet end function LuaDistributesTestProto.SendPacket(packet) local message = CS.BinaryMessageHandle.CreateMessage(LuaDistributesTestProto.sysID, LuaDistributesTestProto.cmdID) if(packet['posz'] == nil) then packet['posz'] = 0 end message:WriteByte(packet['posz']) if(packet['facddir'] == nil) then packet['facddir'] = 0 end message:WriteInt(packet['facddir']) if(packet['dis'] == nil) then packet['dis'] = 0 end message:WriteLong(packet['dis']) if(packet['name'] == nil) then packet['name'] = "" end message:WriteString(packet['name']) if(nodes == nil) then nodes = {} end message:WriteInt(#packet['nodes']) for k,v in ipairs(packet['nodes']) do require "LuaDistributesTestStuct" LuaDistributesTestStuct.WritePacket(v, binaryWriter) end message:Send() end function LuaDistributesTestProto.ReadPacket(binaryReader) local packet = {} packet['posz'] = binaryReader:ReadByte() packet['facddir'] = binaryReader:ReadInt32() packet['dis'] = binaryReader:ReadInt64() packet['name'] = CS.BinaryMessageHandle.ReadString(binaryReader) packet['nodes'] = {} local nodesCnt = binaryReader:ReadInt32() for i=1,nodesCnt,1 do require "LuaDistributesTestStuct" packet['nodes'][i] = LuaDistributesTestStuct.ReadPacket(binaryReader) end return packet end