Как один недочет полгода заруинил

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

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




Читать дальше →

Убить Рошана с одного удара - пояснение

В связи с тем, что информация о природе бага, описанного в топике про Рошана, была результатом предположений, её правдивость также находилась под вопросом. После лоботомии варкрафта Фукей сумел найти, в чем именно заключалась загвоздка игры с апгрейдами и спеллбуками. Далее приведен миниатюрный разбор ситуации by Fukkei.

Читать дальше →

The Lycanthrope and famous Ultimate bug

Warcraft 3 uses very few abilities to change unit's type. You should be aware at least of two of them — Chemical Rage and Metamorphosis. Both of them shares pretty much the same properties, but for some reason inner mechanic between them is different. Here I'll try to shortly describe famous Meta bug, which happens with Lycan alot.


Читать дальше →

Вардим рошана

Пока я занимаюсь любовью со склейкой вардов, предлагаю глянуть, что умеет тускарчик и его шар.


PS. Можно утащить что угодно, что принадлежит игроку, включая круг силы. Просто найти цель для того, чтобы катиться.

PPS. Да, в новой бете уже исправлю.

Бесконтрольное веселье, или как сломать Ликана

Про морфы и их фишки я писал не однократно — см. Трансформации и Доджинг. Но один из багов, связанный с ними, достоин отдельного упоминания в данном разделе. Это баг псевдоконтроля — состояние, когда юнит выполняет приказ до конца, и только после этого способен идти выполнять новые приказы. В версии 6.83 фрог наглядно демонстрирует этот баг при помощи  Lycan.


Читать дальше →

Поведение крипов

Сразу после появления  фуриона нашлись оригиналы, которые обнаружили «зависание» крипов, пойманных в деревья. Эти крипы навсегда выключаются из игры и стоят на месте. Вернуть их к нормальной жизни можно лишь в случае, если их застопили рядом с одной из зон-чекпоинтов. Про чекпоинты и причины тупизны крипов было написано еще в этом блоге. А о том, что это не фича, прямо говорит система дото-путей, написанная в 2002 году и с тех пор не менявшаяся. Фрог забил, есличо.

Читать дальше →

Techies' Land Mines

I'm living like a landmine,
waiting to explode

Реализация хардкодных  наземных мин оставляет желать лучшего. Не имеет значения, какие цели настроены — взрываются всегда только наземные юниты. Парящие и летающие просто не воспринимаются движком. Что-то на уровне Entangle или Cyclone, или даже хуже. Не менее интересен и игнор неуязвимых юнитов.

Читать дальше →

Roshan на один удар

Когда-то давно мегакрипы умирали от одного взмаха якорем  Tidehunter. На  Forge Spirit до сих пор нельзя применять барабаны, а  Void может стереть их с одного прыжка, даже не атакуя. Но, конечно, самым заметным примером этого бага остается  Roshan на один удар.

Читать дальше →