Как один недочет полгода заруинил
На протяжении всего бета-теста карты появлялись репорты о фаталах на ровном месте. Они происходили у одного игрока, редко — двух. Произойти вылеты могли на любом этапе, преимущественно — во время загрузки карты, но и по ходу игры варкрафт не стеснялся молча закрыться. Никаких общих черт у вылетающих игроков не было — ни ОС, ни варкрафт, я и сам ловил аналогичный краш. Схожим было лишь одно — это была не первая игра на карте. Её как минимум начинали до этого, может, полноценно, а может, и для того, чтобы написать !rmk.
Собрав определенное количество репортов с логами крашей были найдены основные точки отказа — они лежали в интерпретаторе JASS. В местах, где должен осуществляться поиск по имени функции или переменной, что-то шло не так — словно запрашиваемые имена не существовали. На практике это было невозможно — JASS строго проверяет синтаксис и не позволяет обращаться к необъявленной переменной или функции, учитывает регистр букв, не позволяет использовать символы за пределами ASCII. Запустить карту с некорректным именем переменной просто не получится, а значит, что-то портило имя на лету. Но что именно?
Читать дальше →
Собрав определенное количество репортов с логами крашей были найдены основные точки отказа — они лежали в интерпретаторе JASS. В местах, где должен осуществляться поиск по имени функции или переменной, что-то шло не так — словно запрашиваемые имена не существовали. На практике это было невозможно — JASS строго проверяет синтаксис и не позволяет обращаться к необъявленной переменной или функции, учитывает регистр букв, не позволяет использовать символы за пределами ASCII. Запустить карту с некорректным именем переменной просто не получится, а значит, что-то портило имя на лету. Но что именно?
Читать дальше →