Компиляционные ошибки
Автор: L
i P k I y
Здрасте.
Решил написать небольшой справочник по компиляционным ошибкам, так как
у многих вызывает множество вопросов по некоторым из них. Тут представлены
большинство ошибок, связанных с картостроением. Вы можете отыскать свою
ошибку в списке, но советую прочитать все - от начала до конца. В этом
туторе содержится масса интересных фактов, которые должен знать как хороший
маппер, так и новичок (последнему вообще полезны такие статьи). Большинство
ошибок, описанных ниже, возникало при компиляции Зонерами (zhlt), так что
советую скачать. Итак, начнем:
MAX_MAP-ошибки
MAX_MAP_HULLS |
Карты
в Halflife, как и Quake1, имеют 4 замкнутые области (hulls),
используемые движком игры: 1 область - видимая (для обрисовки
видимых участков карты), и 3 области - ограничительные (для
ограничения движения игроков на карте).
Максимальное кол-во: 4
Как можно добиться такой ошибки ума не приложу. |
MAX_MAP_MODELS |
Я знаю
только то что:
Максимальное число моделей на карте не должно превышать 400 шт. |
MAX_MAP_BRUSHES |
Угадайте
с трех раз. Для не догадливых поясню: превышено значение допустимого
количества брашей на карте.
Максимальное число брашей на карте составляет: 8192.
Представьте себе, и у меня такая ошибка была однажды, но это уже другая
история. Кому надо посмотреть эту карту шлите на мыло. Могу только
посоветовать делать карту меньше или заменять в некоторых ситуациях
несколько брашей одним. |
MAX_ENGINE_ENTITIES
MAX_MAP_ENTITIES |
Максимальное
количество энтитей на карте было превышено.
Допустимое количество точечных (MAX_MAP_ENTITIES) или энтитей-брашей
(MAX_ENGINE_ENTITIES) на карте - 1024.
Соответственно в сумме и тех и тех можно наделать - 2048. Если у кого
такое будет на карте, обязательно пришлите мне этот шедевр. J |
MAX_MAP_ENTSTRING
(512*1024) |
Максимальный
размер одной строки в файле *.map был превышен.
Максимально допустимый размер: 512 Кб
Забейте на эту ошибку, наверное, только у редкостных мапперов J возникают
такие вот проблемы. |
MAX_MAP_PLANES |
Допустимое
число плоскостей на карте было превышено.
Максимальное число плоскостей: 32767 |
MAX_MAP_NODES
MAX_MAP_CLIPNODES |
Превышено
число брашей, которые препятствуют перемещению игрока по карте.
Максимальное число: 32767
Энтити браши на этот лимит ни как не влияют (func_wall, например). |
MAX_MAP_LEAFS |
Вероятно:
При компиляции карта разбивается на плоскости, доступные игроку.
Максимально: 8192
При ошибке, попробуйте упростить вашу карту, уменьшить ее в размере
или обратить мелкие предметы в func_wall. |
MAX_PATCHES |
Не знаю,
как перевести, но попробую объяснить.
HLRAD и HLVIS при компиляции делит каждую видимую плоскость браша на
отдельные «patches». Позже на них (на «patches») разместится свет (еще
называют «картой света»). По умолчанию начальный размер «patches» составляет
64х64 юнита и зависит от размера текстуры, в которую выкрашена эта
плоскость.
Вы можете уменьшить подсчет каждого patch’а, увеличив размер «patches»
(не понял? Перечитай еще раз J). Это можно сделать, только увеличив
масштаб текстуры (имеется в виду, не увеличить в размере, из 64х64
сделать 128х128, а просто растянуть с помощью WC).
Пример: У вас есть стена размером 128х128. Она выкрашена текстурой,
чей размер составляет 64х64. Соответственно, на нашей стене будет четыре
таких текстуры или четыре «patches». Таким образом, увеличиваем масштаб
текстуры с 1.00 до 2.00 и получаем 1 «patche». Сократили кол-во «patches»
на 1/4.
Часто такая ошибка бывает, когда новичок (именно он! Потому что больше
такого никто не делает J) создает вокруг своей карты большой блок неба,
дабы избежать другой, более противной ошибки “LEAK”. Никогда так не
делайте! Во-первых, увеличивается в раз пять работа HLVIS (точно: на
80%). Во-вторых, обрабатывается внешняя часть карты, которую игрок
видеть никак не может, да и не должен. Количество «patches» увеличивается
вдвое, а то и втрое. На Полигоне есть статья о «Небе», читайте.
И напоследок. Замечали что тени в ХЛ какие-то квадратные? Вот. Используйте
команду -chop # (HLRAD) для увеличения «patches». Чем выше параметр,
тем хуже (грубее) свет. |
MAX_MAP_VERTS
MAX_MAP_FACES
MAX_MAP_MARKSURFACES |
Максимальное
число этих компонентов было превышено.
Максимальное число каждого: 65535
Если кто знает, что обозначают FACES и MARKSURFACES напишите мне |
MAX_MAP_TEXTURES |
Максимальное
число различных текстур на карте было превышено.
Максимум используемых текстур на карте не должно превышать лимита в
512
Не путайте «текстура» с «ВАД» файлом. |
MAX_MAP_TEXINFO |
Максимум:
32767
Ничего неизвестно об этой ошибке. |
MAX_MAP_EDGES
MAX_MAP_SURFEDGES |
Максимум:
MAX_MAP_EDGES: 256 000
MAX_MAP_SURFEDGES: 512 000
Ничего неизвестно об этой ошибке. |
MAX_MAP_MIPTEX |
Размер
памяти, отведенный под текстуры (Mb) был превышен.
Зависит от компиляторов, которыми вы пользуетесь.
Стандартные-HL-компиляторы: 2Мб
Zhlt v. < 1.2: 4Мб
Zhlt v. >= 1.2: Мб (Смотрите файл ZHLTReference) |
MAX_MAP_LIGHTING
0x400000 |
Возможно,
но я не уверен:
Возможно, из-за больших данных при вычислении освещения возникает такая
ошибка. Попробуйте уменьшить количество источников света на вашей карте. |
MAX_MAP_VISIBILITY
0x200000 |
Возможно,
но я не уверен:
Возможно, из-за больших данных при вычислении видимого пространства
возникает такая ошибка. Вероятно ваша карта слишком большая или слишком
сложная по архитектуре. |
ReadSurfs
(line 73753): 32 > MAXPOINT |
Возможно,
но я не уверен:
Эта ошибка возникает в очень сложных по архитектуре картах. |
HLCSG
**Executing...
**Command: Copy File
**Parameters:
"D:\mapname.map"
"D:\.....\mapname.map"
The command failed.
Windows reported the error:
"File not found"
или:
Error: Error opening
c:\.........\mapname.map
No such file or directory |
1.
В некоторых случаях для компиляции нужен файл mapname.map.
WC по умолчанию сохраняет вашу карту только в формат mapname.rmf.
Что бы сохранить в формат *.map следуйте этому пути: "File
--> Export to MAP".
2. Во втором случае, возможно, ваш *.map файл и директория с вашими
компиляторами различны. |
Token
too large on line n |
Вы
используете слишком много *.WAD файлов на вашей карте
Имена ваших ВАД файлов сохраняются в отдельную строку в *.map файл.
И если у вас слишком много вадов, то превышается лимит символов на
одну строку в вашем *.map файле. Я предполагаю, что максимальное значение
символов: 256.
Удалите из списка те ВАД файлы, которые вы не используете.
Если у вас, например одна текстура из одного вада, другая из другого,
третья из третьего, то предлагаю с помощью специальной проги (Wally)
создать свой вад со своими текстурами.
Далее, такие вады, как:
cached.wad
pldecals.wad
spraypaint.wad
gfx.wad
fonts.wad
можно убрать из списка. Они вам не понадобятся. |
Entity
10, Brush 0, Side 5:
has a coplanar plane at
(-753, -9, 251), texture CA1X_CON1
BEntity 10, Brush 0, Side 6:
has a coplanar plane at
(-753, -32, 251), texture CA1X_CON1B |
Эта ошибка
говорит вам о том, что один браш содержит две плоскости на
одной стороне.
Например:
После использования инструмента “vertex tool”, получилось так, что
одна сторона квадрата содержит 2! Плоскости. Такое недопустимо!
Что бы избавиться от одной из двух плоскостей, вам естественно придется
избавиться от одной из трех белых точек (Белые точки – крайние точки
плоскости, желтые – середина плоскости). Воспользуемся инструментом
“vertex tool” и перетащим белую точку, находящуюся в центре, в лево
или в право, так чтобы совпадала с другой точкой. Появится окно с вопросом "Merge
vertices?". Нажмите «да». |
Entity
#, Brush #: plane with no normal |
Эта
ошибка происходит в том случае, если при использовании «vertex
tool» на вопрос "Merge vertices?" вы отвечали «нет». В этом
случае происходит образование нулевой области, так как точки
не слились в одну. Удалите такой браш и создайте его снова.
Эта ошибка может появиться и при использовании инструмента “carve”. |
Entity#,
Brush#: Outside World At (x,y,z) |
Карты
в HL не должны превышать определенного размера.
Максимальный размер карты это куб со стороной 8192 юнита. В WC это
сетка и ее координаты по оси x, y и z. То есть вы создаете свои карты
в координатной плоскости с крайними координатами -4096 до +4096.
Эта ошибка обозначает то, что какой либо браш находится за границами
допустимой координатной плоскости.
Кстати. Что бы быстро найти нужный браш по номеру, нажмите ctrl-shift-G,
и введите там номер браша или энтити который вам сообщает компилятор. |
Entity#,
Brush#: mixed face contents Texture ROCK_X1
and SKY |
Один
и тот же браш покрашен текстурами разных свойств.
В ХЛ Все стороны браша должны быть покрашены текстурами, имеющие одинаковые
свойства. Например, если вы красите сторону браша текстурой воды, а
остальные стороны обычными текстурами – произойдет вот такая ошибка.
Вот текстуры, которые должны покрывать весь браш:
- sky
- Все
виды жидкостей (water, slime, lava)
- origin
- clip
Нельзя допускать,
что бы обычная текстура и выше приведенные текстуры находились
на одном браше! |
Fatal:
Entity #, Brush #: ORIGIN brushes not allowed in
entity |
Энтити
# покрашен в текстуру origin, но такая текстура этому объекту
не нужна.
Найдите этот энтити и просто удалите или до\перекрасте, так что бы
он не содержал текстуры origin. |
Fatal:
Entity #, Brush #: ORIGIN brushes not allowed in
world |
На
вашей карте находится origin браш (так называется браш, покрашенный
в текстуру origin естественно), не связанный с какой либо энтити
(объектом).
Найдите такой браш, удалите его или свяжите его с энтити.
Такая ошибка возникает при попытке создать дверь. Дверь и origin браш
должны быть сгруппированы. |
**********
ERROR **********
Found an entity with ONLY an origin brush near (x,y,z)! |
Эта
ошибка похожа на две предыдущие.
Исправляется аналогично. |
Parsing
Brush |
Эта
ошибка возникает по различным причинам:
- Браш
выкрашен простой текстурой и прозрачной (имя такой текстуры
начинается на { и чаще всего синего цвета) текстурой
одновременно.
- WC
3.3 идет с пакетом очень старых компиляторов. Пользуйтесь
Зонерами.
|
Missing "[" in
texturedef |
Эта
ошибка возникает по различным причинам:
1. Эта ошибка происходит из-за новой версии WC 3.3. Если вы сохраняете
*.map файл в WC 3.3, а редактируете, изменяете и компилите (и кому
такое в голову придет? J) в WC 2.x, то появляется такая ошибка. Нормальным
людям она не грозит. И все же, как избавиться от этой ошибки? Откройте
*.map файл в ноутпэде и удалите строку «mapversion 220»
2. Одна или более текстур содержат в имени знаки, не принадлежащие
английскому языку. Например: u, a, o и так далее. Просто переименуйте
эти текстуры. |
HLBSP
ERRORLOG D:\compiling\mapname.err
detected, hlbsp processing halted>> If you have
fixed the problem, you can delete the file and rerun hlbsp |
Исправьте
все ошибки, отмеченные в файле mapname.err (mapname естественно
имя вашей карты). Потом просто удалите этот файл. |
**********
ERROR **********
Can`t open c:\......\mapname.p0 |
HLbsp
не может открыть или найти файл mapname.p0, который создается
Hlcsg. Надо отметить, что HLcsg компилит карту перед HLbsp,
так, что ищи проблему там, почему не создался данный файл. |
LEAK
LEAK LEAK
(Обычные компиляторы)
Warning: === LEAK in hull 0 === Entity capture_point
@ (x, y,z)
(Если вы используете zhlt) |
УУУх!!!
Гроза все новичков!!
По этой ошибке можно писать целые статьи. Попробую в вкратце описать
эту ошибку. Лик (Leak (англ.) – утечка, проще - дырка) происходит оттого,
что ваша карта не герметична. То есть щели в то «никуда», которое вы
можете наблюдать в WC. Стыкуйте браши более внимательно. Если вы так
и не нашли Лик, то можно прибегнуть к более сложному способу. При такой
ошибке HLbsp создает отдельный файл под названием mapname.pts. Поместите
его в папку с картами (чаще всего cstrike\maps) ну и вашу карту то
же естественно. К ярлыку контры допишите -particles 10000 (или 50000,
если не хватит линии) и загрузите вашу карту. В консоли пишите pointfile.
Вы увидите пунктирную линию. Найдите ее начало и следуйте по ней пока
линия не выйдет за границу карты. Это и значит, что в этом месте -
Дырка.
Утечка, так же может произойти если какая либо энтити находится не
в зоне карты, то есть за ее границами. К энтити относятся так же и
func_walls. Естественно они не должны быть крайними на карте, то есть
выходить в «пустоту». Будьте внимательней!
И для чайников: фраза Entity capture_point @ (x, y,z) не означает координаты
Лика. Это координаты Энтити, которая среагировала на этот лик. |
Warning:
MakeNodePortal: new portal was clipped away from node
@(x,y,z)-(x,y,z) |
HLBSP
не смог создать некоторую часть пространства. Это вызвано или
сложностью стыковок брашей (например: пересекаются) или большим
углом наклона между двумя брашами. В результате игрок будет
задевать за что-то невидимое.
Если ваша карта компилится и r_speeds в норме, то можете пренебрегать
этим предупреждением.
В противном случае найдите браши по данным координатам и упростите
или удалите их. |
HLVIS
**********
ERROR **********
Error opening c:\.........\mapname.bsp No
such file or directory |
Эта
ошибка возникает в том случае если произошла другая ошибка
при компиляции HLBSP и HLCSG. Так что смотри логии компиляции. |
Warning: No
.prt File Found, No VISing Performed
bzw.
---- vis ----
1 thread(s)
LoadPortals: couldn`t read c:\....\....\mapname.prt
No vising performed. |
Этот
файл нужен визу для вычислений видимости на карте. Как и в
прошлой ошибке произошла ошибка в HLBSP и HLCSG. Да спасут
нас логи! |
Warning: Leaf
Portal Saw Into Leaf |
Данная
ошибка возникает, когда компилятор HLVIS пытается сравнить
2
портала (leaf portals), которые принадлежат одной видимой вершине
(visibility node). Посмотрите на картинку ниже:
Красный
и желтый порталы на самом деле были одним порталом, которыл
был
разбит на два. Оба показанных портала должны лежать на одной
прямой, но
учитывая ограниченную точность компьютеров при осуществлении
операций с
плавающей точкой, эти порталы могут слегка наклониться по отношению
друг к
другу (угол наклона порталов настолько мал, что его невозможно
заметить
невооруженным глазом - только в бинокль :).
Если
возникает такая ситуация, когда два портала принадлежат одной
вершине
и образуют кривую линию, то получается ошибка <Leaf portal
saw into leaf>.
Вот как это выглядит:
На
рисунке выше угол наклона одного портала к другому сильно
преувеличен
(для наглядности). Также существуют несколько других похожих
ситуаций, когда
возникает данная ошибка, все они - результат ограниченной точности
компьютеров в осуществлении операций с плавающей точкой.
Как
исправить? Лучше всего загрузить карту с ошибкой и попытаться
отыскать, так называемый, эффект зеркального отражения (hall
of mirrors
effect). Эта ошибка может легко вызываться тем, что координаты
одного из
вертексов браша немного отклоняются от координатной сетки.
В этом случае
проще всего пересоздать неправильный браш, но также можно попробовать
использовать параметр -full для компилятора HLVIS, который
помогает
уменьшить количество возможных vis-ошибок. Время компиляции
с
параметром -full обычно увеличивается на 30%. R_speeds (количество
полигонов) при этом остается приблизительно таким же, как и
при нормальной
vis-компиляции.
|
Max_Leaf_Faces |
Слишком
много видимых частей брашей. Если ваша карта содержит множество
мелких деталей, советую обратить эти детали в func_wall, так
как энтити в ХЛ обрабатываются в реальном времени. |
Error: Vismap
expansion overflow |
Аналогичная
предыдущему примеру ошибка. |
Texture
axis perpendicular to face |
Какая
либо текстура сильно растянута. То есть имеет большой масштаб.
Минимальный и максимальный масштаб текстуры: -999 и +999 соответственно.
Дополнительные причины:
1. Браш вращался, без включенного "Texture Lock".
2. Из-за неправильного обращения с такими инструментами как: vertex
tool и carving tool. Иногда - Clipping tool. |
HLRAD
**********
ERROR **********
Error opening c:\..........\mapname.bsp
No such file or directory |
Эта
ошибка возникает в том случае если произошла другая ошибка
при компиляции HLBSP и HLCSG. Так что смотри логи компиляции. |
Warning: Too
Many Direct Light Styles on a Face |
Это
значит, что более 3 источников света освещают одну плоскость.
Все источники света, имеющие разные свойства (цвет, мерцание, яркость,
переключение, даже имя и так далее), будут обозначены как совершенно
разные источники света. Но если, например, цвет одного совпадает с
цветом другого, то эти источники будут считаться одинаковыми. Что бы
избежать такой ошибки, вы или удаляйте некоторые источники света или
подгоняйте их свойства, так что бы они значились как один свет.
Максимальное кол-во различных по свойствам источников света - 3. |
Warning: SwapTransfers:
Unmatched |
Эта
ошибка вызвана проблемой в коде HLRAD. Так же она может следовать
после предупреждения Leaf_Portal_Saw_Into_Leaf |
entity
at (x,y,z) has bad `_light` value |
Эта
ошибка вызвана из-за бага в WC 2.1.
Что бы исправить эту ошибку просто откройте свойства энтити
и щелкните на параметре "brightness". Можете даже не менять
цветовой гаммы. Вы должны провернуть такую операцию для КАЖДОГО
лайт энтити. |
[Reading
texlights from `E:\Programme\Worldcraft\lights.rad`]
[1 texlights parsed from `E:\Programme\Worldcraft\lights.rad`] 10921
faces Create Patches : 51269 base patches 0 opaque faces 454072 square
feet [65386408.00 square inches]
Error: No Lights!
Description: lighting of map halted (I assume you do not want a pitch
black map!) Howto Fix: Put some lights in the map |
Судя
по последним строкам ошибки (этот эррор характерен только для
компиляторов Зонера) на карте не найдено ни одного источника
света. Ваша карта будет черной или наоборот - светлой! |
MAKE
SCALES takes a very long time, the computer seems
to be stuck |
Причина:
недостаток оперативной памяти. Факт, что MAKE SCALES требует
немало оперативки. При заполнении всей памяти MAKE SCALES обращается
к жесткому диску (своп). Для этого освободите как минимум 800
Мб на вашем Харде. Если MAKE SCALES обращается к диску, то
время компиляции может увеличиться в 100 (сто!) раз относительно
RAM’а!!!
Если во время компиляции вы нажмете ctrl-alt-del то увидите, что-то
типа «HLRAD не отвечает». Вранье! Ваш процессор, жесткий диск и оперативка
работают на максимуме. Нарастите память или продеться потерпеть.
Кстати, при нажатии трех клавиш во время компиляции HLCSG, HLBSP, HLVIS
та же история, так что просто подождите. |
Ошибки
в HalfLife
Сообщение
об ошибке при загрузке карты:
map change failed: "mapname" not found
on server |
*.bsp
файл не найден в папке для карт (например cstrike\maps). |
Карта
тормозит из-за огромного r_speeds |
Туча
причин.
Сходите сюда, поможет: http://poligon.counter-strike.ru
Не откомпилили HLVIS’ом |
R_speeds
очень большой, света нет. |
Ошибка
компиляции такова, что HLVIS и HLRAD не были выполнены. |
R_speeds
в норме но карта или черная или светлая. |
Если
нет никакого намека на динамический свет, то вы не поставили
ни одного источника света.
Вы забыли откомпилить HLRAD’ом. |
При
загрузке карты появляется "AllocBlock: full" (характерно
после "Done Precaching Resources") |
Вероятно:
Карта очень сложная (для движка ХЛ) |
Level
changes (trigger_changelevel) are working weird...
....после компиляции в WC и автоматической загрузки карты в WC. |
НЕ
ДЛЯ КОНТРЫ!
Выйдите из WC и вручную запустите карту через консоль ХЛ. |
Несколько советов:
1. Существует множество ошибок, связанных с энтити
и брашами. Например: "Entity
10, Brush 5: mixed face contents … и тд. В WC вы можете легко и быстро
найти нужный вам предмет по номеру, указанному в компиляционных логах,
нажав ctrl-shift-G.
2. Пользуйтесь Зонерами (zhlt)
3. При компиляции создается лог (*.log) и файл ошибок (*.err). Их можно
просмотреть с помощью НотПэда.
4. Не компильте WC (Ворлдкравтом). Компильте обычным батником, так как
WC жрет много оперативки.
Ну, вот и все, вроде. Рассмотрено много ошибок. Возможно, где-то я не прав
(в таких случаях я отмечал) или не уверен. Надеюсь, я сумел решить твою
проблему.
Бай.
|