PROTOCOL_BASE_MAP_MATCHINGLIST
Как сделать так чтобы пакет отсылал всю информацию но частями например по 800 байт
В данный момент сделано так PROTOCOL_BASE_MAP_MATCHINGLIST_PART_1, PROTOCOL_BASE_MAP_MATCHINGLIST_PART_2, PROTOCOL_BASE_MAP_MATCHINGLIST_PART_3 С магазином тоже самое , а нужно чтобы из всего списка отсылал определенное количество и не всегда одинаковое количество. Подскажите где искать подобное. |
Re: PROTOCOL_BASE_MAP_MATCHINGLIST
На оффе по 100 элементов отправляет в PROTOCOL_BASE_MAP_MATCHINGLIST_ACK.
public static class ListExtensions { public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int limit) { return list.Select((item, inx) => new { item, inx }) .GroupBy(x => x.inx / limit) .Select(g => g.Select(x => x.item)); } } var parts = maps.Split(100); foreach (var part in parts) { var list = part.ToList(); Response(new PROTOCOL_BASE_MAP_MATCHINGLIST_ACK(list)); } |
Re: PROTOCOL_BASE_MAP_MATCHINGLIST
а в ack что слать тогда?
|
Re: PROTOCOL_BASE_MAP_MATCHINGLIST
Связки режимов и карт. Данные у тебя есть, разбери их для начала.
|
Re: PROTOCOL_BASE_MAP_MATCHINGLIST
Цитата:
|
Re: PROTOCOL_BASE_MAP_MATCHINGLIST
у тебя есть список режимов, его разбиваешь на списки по 100 элементов.
Отправляй части. В самом пакете, как видно из сниффа: // short // byte - количество режимов для текущей части foreach (var mode in modes) { // ... } // int - если это последняя часть, то 1, иначе 0. // short - сколько режимов было отправлено // short - общее количество режимов |
Текущее время: 19:49. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot