СБОРКА 130 ОБНОВЛЕНАСписок изменений:
- исправлен вылет при вводе команды cfg_load в консолях клиента и сервера;
- теперь игроку при подключении к серверу шлются состояния только тех стен, которые находятся в зонах воздействия триггеров.
Ссылки в первом посту обновлены. Сервер
OutCast'а тоже уже обновлён.
По поводу второго изменения.
Я сегодня часа три пытался разобраться в баге с визуально закрытыми стенами, ещё давным-давно описанном Аром, но до сих пор не исправленном. Найдя способ его частичного воспроизведения, я начал пробовать различные способы исправления. Однако ничего не помогало. В отчаянии я просто сидел и тупил, механически заходя на сервер Ауткаста с включённой на нём dm_map01m2 (именно так я и ловил баг) и наблюдая когда нормальную карту, а когда и с проявившимся багом. И внезапно я увидел вот это:

Поясняю: на этой картинке видно, что сервер пакеты прислал, но не все. А по пути они деться никуда не могли, так как это TCP и таких ситуаций в нём нет по определению. Следовательно, остаётся только одно: проблема в самом сервере. И тут мне как нельзя кстати вспомнились понятие о переполнении сетевого стека (или как там это называют) и исходник неблокирующей отсылки пакетов на 39DLL из старой версии Gang Garrison 2, где при неудачной попытке отсылки пакет сохранялся и затем отправлялся вновь (в D2DMP такого и в помине нет). И тут меня осенило. Что при подключении к серверу игроку шлются состояния стен. Всех. Вообще. По одному пакету на каждую. Т.е. если на карте три тысячи тайлов стен, то игроку будет отослано три тысячи пакетов. За один заход.
Неплохо, да?
Я быстренько переписал отсылку так, чтобы слались состояния только тех стен, которые находятся в зонах воздействия триггеров (проверку по триггеру не делал, ибо влом было разбираться дальше в коде) и снова попробовал поймать этот баг. И не поймал. Ни разу.
Собственно, утверждать, что я точно исправил этот баг, я не хочу. Однако лично мне кажется, что я исправил не только его, но и те мегалаги, периодически происходившие при одновременном заходе нескольких игроков на сервер.