Я вижу примерно по одному вопросу в день о сбоях в игре, но, кажется,
никто не знает, как использовать логи сбоев. Поэтому я решил написать
небольшую статью. Я не все об этом знаю, но если Вы лишь пытаетесь
выяснить, какая способность/предмет/юнит вызывает вылет, это практически
всегда работает. Итак, начнем... Когда игра зависает, Warcraft
автоматически сохраняет два файла в папку Errors (C:\Program
Files\Warcraft III\Errors). Один файл с расширением *.txt, другой -
*.dmp. Остановимся на *.txt-файле. У каждого из них название
представляет собой дату и время, так что открываем последний. Там
будет куча всего, но Вы можете пропустить большую часть. Обратите
внимание на последний раздел - "Memory Dump". Там будет что-то вроде
этого:
На первый взгляд, полная бессмыслица. Но посмотрите на крайний столбец
справа. В нем повторяется одна и та же последовательность букв и цифр.
Это raw-код того, что вызвало вылет. Иногда WC3 "переворачивает" его, а
иногда пишет правильно. В этом примере Вы снова и снова видите 'A066' и
'660A'. То есть это то, что Вы искали. Теперь, когда у Вас есть raw-код,
Вы можете найти причину ошибки. Если Вы не знаете, как сверить raw-код,
войдите в Редактор Объектов, нажмите "Ctrl + D", "Ctrl + F" и затем
введите raw-код.
Если Ваш raw-код начинается с 'A', то это способность (Ability).
Если Ваш raw-код начинается с 'h', 'o', 'u', 'e' или 'n', то это юнит (Human, Orc, Undead, Night Elf или Neutral).
Если Ваш raw-код начинается с 'B', то это заклинание (Buff).
Если Ваш raw-код начинается с 'R', то это улучшение (Upgrade).
Скорее всего, этот гайд не будет всегда работать, но эта маленькая хитрость помогла мне устранить бесчисленные проблемы.