func Write_nearby(Req *list.Element, list_tmp *list.List, Type int16, User *users.User) (buf []byte) { var answer Packet var typesp Nearby answer.head.octets = 24 answer.head.rtype = Type answer.head.pnbr = 1 answer.head.pnum = 0 typesp.nbrball = (int32)(list_tmp.Len()) typesp.balls = list_tmp answer.ptype = typesp elem := list_tmp.Front() for elem != nil { answer.head.octets += 64 elem = elem.Next() } Buffer := Write_header(answer) binary.Write(Buffer, binary.BigEndian, answer.ptype.(Nearby).nbrball) if User.MagnetisValid() == true { binary.Write(Buffer, binary.BigEndian, int32(1)) } else { binary.Write(Buffer, binary.BigEndian, int32(0)) } elem = answer.ptype.(Nearby).balls.Front() for elem != nil { ifb := elem.Value.(Posball) binary.Write(Buffer, binary.BigEndian, ifb.id) Buffer.WriteString(ifb.title) binary.Write(Buffer, binary.BigEndian, make([]byte, 16-len(ifb.title))) binary.Write(Buffer, binary.BigEndian, ifb.FlagPoss) binary.Write(Buffer, binary.BigEndian, make([]byte, 6)) binary.Write(Buffer, binary.BigEndian, ifb.lon) binary.Write(Buffer, binary.BigEndian, ifb.lat) binary.Write(Buffer, binary.BigEndian, ifb.wins) binary.Write(Buffer, binary.BigEndian, ifb.wind) elem = elem.Next() } binary.Write(Buffer, binary.BigEndian, make([]byte, 1024-answer.head.octets)) buf = Buffer.Bytes() return buf }