Сайт о моделировании в Counter-Strike и не только...
Бешеный.народ.ру
 
Модели игроков и оружия
Создание карт в CS
Документация
Файлы
Роботы
Консольные команды
Прочее
Форум
Гостевая книга

Компиляционные ошибки

Автор: 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 жрет много оперативки.

Ну, вот и все, вроде. Рассмотрено много ошибок. Возможно, где-то я не прав (в таких случаях я отмечал) или не уверен. Надеюсь, я сумел решить твою проблему.

Бай.



Напиши мне
Copyright © Gh0St 2000-2005
Найти: на
Hosted by uCoz