<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Counter-Strike 1.6</title>
		<link>http://cs-strikez.org/</link>
		<description>Форум Counter Strike</description>
		<lastBuildDate>Mon, 24 Jan 2022 03:45:02 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://cs-strikez.org/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Флудилочка мапперов:)</title>
			<link>https://cs-strikez.org/forum/64-6089-1</link>
			<pubDate>Mon, 24 Jan 2022 03:45:02 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Описание темы: Общаемся здесь:)&lt;br /&gt;Автор темы: Cooller^_^&lt;br /&gt;Автор последнего сообщения: Ellipse&lt;br /&gt;Количество ответов: 679</description>
			<content:encoded>Ну что поздравляю Вас с окрытием нового раздела на сайте:) &lt;br /&gt; Отдельная благодарнсть KnighT_mapper, M@K7iMySS и Kzanders. &lt;br /&gt; Всем удачных карт:)</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>Cooller^_^</dc:creator>
			<guid>https://cs-strikez.org/forum/64-6089-1</guid>
		</item>
		<item>
			<title>Проблемы с VHE</title>
			<link>https://cs-strikez.org/forum/64-18714-1</link>
			<pubDate>Mon, 08 Jan 2018 17:47:04 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Автор темы: chakki056skrip&lt;br /&gt;Автор последнего сообщения: btc&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Он у меня не открывает одну карту, а раньше открывал! &lt;br /&gt; Выдает ошибку. Скрин снизу. &lt;br /&gt; Но как я ее открываю в worldcraft, а не vhe 3.4 то она успешно открывается! &lt;br /&gt;&lt;br /&gt; Вот что там написано: &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerFqIs2i&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerFqIs2i&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerFqIs2i&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerFqIs2i&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerFqIs2i&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerFqIs2i&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerFqIs2i&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerFqIs2i&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerFqIs2i&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;Сигнатура проблемы: &lt;br /&gt; Имя события проблемы:	APPCRASH &lt;br /&gt; Имя приложения:	hammer.exe &lt;br /&gt; Версия приложения:	0.2.1.0 &lt;br /&gt; Отметка времени приложения:	3e9fc4d7 &lt;br /&gt; Имя модуля с ошибкой:	hammer.exe &lt;br /&gt; Версия модуля с ошибкой:	0.2.1.0 &lt;br /&gt; Отметка времени модуля с ошибкой:	3e9fc4d7 &lt;br /&gt; Код исключения:	c0000005 &lt;br /&gt; Смещение исключения:	000592a9 &lt;br /&gt; Версия ОС:	6.1.7601.2.1.0.256.1 &lt;br /&gt; Код языка:	1049 &lt;br /&gt; Дополнительные сведения 1:	689d &lt;br /&gt; Дополнительные сведения 2:	689d410c0125173dc46889b876a7d1aa &lt;br /&gt; Дополнительные сведения 3:	5be5 &lt;br /&gt; Дополнительные сведения 4:	5be57cc67a532459837c774f1d05bac0&lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Помогите пожалуйста.&lt;p&gt;&lt;b&gt;Добавлено&lt;/b&gt; (2014-05-13, 13:16)&lt;br /&gt;---------------------------------------------&lt;br /&gt;&lt;span style=&quot;font-size:20pt;&quot;&gt;&lt;span style=&quot;font-family:Impact&quot;&gt;&lt;span style=&quot;color:red&quot;&gt;Closed&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>chakki056skrip</dc:creator>
			<guid>https://cs-strikez.org/forum/64-18714-1</guid>
		</item>
		<item>
			<title>Извлечение текстур.</title>
			<link>https://cs-strikez.org/forum/64-18947-1</link>
			<pubDate>Mon, 08 Jan 2018 17:46:47 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Автор темы: chakki056skrip&lt;br /&gt;Автор последнего сообщения: btc&lt;br /&gt;Количество ответов: 4</description>
			<content:encoded>Всем привет. &lt;br /&gt; Я тут исходник сделал карты de_alexandra, и теперь я хочу взять с карты в css для cs 1.6. &lt;br /&gt; Один вопрос. Как Извлечь текстуры из карт в CSS или текстур там нет вообще?</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>chakki056skrip</dc:creator>
			<guid>https://cs-strikez.org/forum/64-18947-1</guid>
		</item>
		<item>
			<title>Все об r_speeds</title>
			<link>https://cs-strikez.org/forum/64-8478-1</link>
			<pubDate>Mon, 08 Jan 2018 17:46:30 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Автор темы: VedMak&lt;br /&gt;Автор последнего сообщения: btc&lt;br /&gt;Количество ответов: 3</description>
			<content:encoded>Все об R_SPEEDS &lt;p&gt; &lt;br /&gt; В данной статье речь пойдет об очень важном параметре R_SPEEDS, который показывает на сколько «тормозная» у Вас карта. Вы узнаете, как посмотреть R_SPEEDS на созданной Вами карте и как его уменьшить в случае, если карта «тормозит». &lt;br /&gt; &lt;br /&gt; 1. Что такое R_SPEEDS? &lt;br /&gt; R_SPEEDS — это специальный параметр, который показывает количество полигонов, видимых игроком на карте. Чем больше полигонов одновременно отображаются, тем меньше FPS (количество кадров в секунду). Если полигонов слишком много, то карта начинает, как говорится, «тормозить». Итак, FPS зависит от количества полигонов, а значит от показаний параметра R_SPEEDS. Чем больше R_SPEEDS (чем больше полигонов), тем меньше FPS и наоборот. &lt;p&gt; R_SPEEDS параметр динамичный, он меняется в зависимости от положения игрока на карте и от направления его взгляда. Действительно, если Вы будете смотреть в стену или угол, то количество кадров в секунду скорее всего будет максимальным 99-100. Если же Вы выйдете на открытое пространство, то FPS будет уже поменьше, а R_SPEEDS соответственно побольше. &lt;p&gt; 2. Как узнать R_SPEEDS на своей карте? &lt;br /&gt; Итак, как же нам посмотреть R_SPEEDS на своей карте? &lt;p&gt; Проверьте, что в ярлыке для CS у Вас прописан параметр -console, который позволит нам открыть консоль в игре. Т.е. строка запуска игры выглядит примерно так: C:&amp;#92;Games&amp;#92;HL&amp;#92;hl.exe -game cstrike -console. &lt;p&gt; Создадим сервер на своей карте. После загрузки уровня, выдвинем консоль и напишем: &lt;p&gt; developer 1 &lt;br /&gt; r_speeds 1 &lt;p&gt; После этого в левом углу экрана и в консоли побегут циферки (см. рис. ниже), которые будут изменяться при перемещении игрока по карте или при изменении направления взгляда. &lt;p&gt; Как Вы можете видеть, цифры разбиты на 4 колонки. Нас интересуют колонки со словами wpoly и epoly (это 2 правые колонки). &lt;p&gt; 310 wpoly — (от англ. world polygons) количество полигонов, которые создают браши: земля, стены, крыши, скалы и т.п. Это основной показатель R_SPEEDS. Чем больше wpoly, тем больше тормозит карта. &lt;p&gt; 988 epoly — (от англ. entity polygons) количество полигонов, которые создают модели (руки с оружием, игроки, другие модели). Когда Вы видите на экране 4-5 игроков, то epoly заметно выше, нежели если Вы видите 1 игрока. &lt;p&gt; Если набрать в консоли команду r_drawviewmodel 0, то это уберет с экрана изображение рук и оружия и тем самым, снизит показатель epoly до нуля (если Вы не видите других игроков). На слабых компьютерах это может значительно повысить FPS (примечание: данная консольная команда была актуальна для CS версии 1.5 и более ранних, в CS 1.6 убрать оружие с экрана нельзя из-за щита). &lt;p&gt; На двух картинках ниже наглядно продемонстрирована зависимость R_SPEEDS (и FPS) от размера видимого пространства. &lt;p&gt; Этот скриншот сделан на базе террористов на карте de_aztec. Здесь R_SPEEDS равен 167 полигонам (в данном направлении взгляда). Количество кадров в секунду максимально и равно 99 FPS. &lt;p&gt; Теперь переместимся ближе к точке закладки бомбы (у воды). Здесь R_SPEEDS гораздо выше и составляет порядка 800-850 wpoly, что вызывает понижение FPS до 50, как видно из рисунка. Компьютер, на котором проводился тест: Pentium III 600 МГц + GeForce 256. &lt;p&gt; 3. Каким должен быть максимальный R_SPEEDS? &lt;br /&gt; Споров на тему максимального R_SPEEDS много. Одни говорят, что параметр wpoly не должен быть больше 600, другие допускают 1000 wpoly, приводя в качестве аргумента тот, факт, что компьютеры на данный момент довольно мощные. &lt;p&gt; Мы придерживаемся следующего мнения: &lt;p&gt; 1) В местах стычек команд, там, где постоянно происходят перестрелки, количество wpoly должно быть минимально — до 600 (в идеале: 400-450). &lt;p&gt; 2) На базах команд, в тех местах, где игроки появляются редко или встречаются 1 на 1, а не 5 на 5, количество wpoly может быть больше — до 750. &lt;p&gt; После того, как Вы откомпилировали карту, необходимо побегать по всем ее местам и посмотреть R_SPEEDS. Если Вы заметите высокие значения wpoly (больше 750), то это место карты необходимо оптимизировать (см. ниже) или полностью переделать. &lt;p&gt; И еще один совет, побегайте по стандартным CS картам с включенным параметром R_SPEEDS. Вы увидите, что количество wpoly на них довольно низкое, что позволяет комфортно играть даже на слабых машинах. Итак вывод: чем меньше R_SPEEDS на Вашей карте, тем лучше. &lt;p&gt; Epoly не такой важный показатель как wpoly, однако слишком высокие значения (больше 4000-5000 epoly) этого параметра также вызывают существенное понижение FPS. В принципе, на показатель epoly внимания обращать не следует. При тестировании карты необходимо учитывать лишь значения wpoly. &lt;p&gt; 4. Причины большого R_SPEEDS &lt;br /&gt; Итак, мы уже знаем, что количество кадров в секунду зависит от количества полигонов, которое в своем максимуме должно составлять 500-700 wpoly. А теперь давайте посмотрим от чего же зависит количество полигонов и вообще из чего получаются полигоны. &lt;p&gt; 4.1 Разбиение на полигоны при соприкосновении брашей &lt;p&gt; Игровой движок Half-Life устроен таким образом, что при соприкосновении малого браша с более крупным (например, ящик стоит на земле) происходит разбиение земли на более мелкие полигоны. Вот как это происходит (белые полосы обозначают границы полигонов). &lt;p&gt; Из рисунка видно, что ящик, стоящий на полу, разбивает его своими нижними гранями на полигоны. &lt;p&gt; На следующем рисунке ящик превращен в энтити-объект func_wall, а энтити-объекты НЕ РАЗБИВАЮТ браши на полигоны. Отсюда и первый способ оптимизации карты — мелкие объекты вроде ящиков можно превращать в func_wall (другие варианты: func_breakable, func_pushable, возможны и другие варианты). Это первое важное правило, которое необходимо запомнить. &lt;p&gt; Абсолютно неважно какой энтити-объект Вы используете (func_wall, func_breakable, func_train, func_illusionary, func_button, func_vehicle или любой другой энтити-объект) — при соприкосновении с брашами разбиения не происходит! &lt;p&gt; Еще один пример: светильник, сделанный из нескольких брашей, разбивает стену. &lt;p&gt; Но если мы превратим светильник в func_illusionary, разбиения уже не будет и несколько полигонов мы тем самым сбережем. &lt;p&gt; Кстати, очень часто в узких местах на картах (корридоры, туннели) мелкие объекты (светильники, картины ...) превращают func_illusionary. Это помогает, во-первых, сберечь несколько полигонов, а? во-вторых, не мешает игроку передвигаться (игрок может спокойно проходить сквозь func_illusionary). &lt;p&gt; Из всего этого, конечно же, не следует, что Вы должны все ящики на карте превращать в func_wall. В большенстве случаев мапперы оставляют их брашами. Но бывают моменты, когда просто необходимо превратить тот или иной браш в энтити-объект. Вот один из таких примеров. &lt;p&gt; Допустим, на карте Вы создали великолепные колонны с подставками (см. рис. ниже). Каждая колонна имеет по 16 боковых граней. &lt;p&gt; Слева и колонна, и подставки оставлены как обычные браши. В этом случае обе подставки (и нижняя, и верхняя) разбиваются каждая на 16 полигонов (по количеству боковых сторон колонны). Таким образом, на данном участке карты количество полигонов увеличивается на 32. А если мы сделаем 10 таких колонн? Полигонов будет уже 320! &lt;p&gt; Справа обе подставки были превращены в func_wall, саму же колонну мы оставили как браш. Никакого разбиения не происходит. Мы сэкономили 32 полигона! &lt;p&gt; На рисунке видно, что для отображения границ полигонов мы запустили CS в режиме OpenGL и ввели команду gl_wireframe 1 (также можно использовать gl_wireframe 2, тогда объекты станут полупрозрачными и отобразятся все рисуемые движком полигоны). &lt;p&gt; Другой полезной консольной командой является r_drawflat 1, которую можно использовать только в режиме Software. В этом случае каждый отдельный полигон окрашивается в свой цвет. &lt;p&gt; Вот как в этом режиме будет выглядеть левая брашевая колонна: &lt;p&gt; Вторая же колонна с подставками из func_wall выглядит так: &lt;p&gt; Необходимо заметить, что в обоих случаях, чтобы можно было использовать указанные консольные команды, карту следует запускать из консоли (то есть запускаем CS, заходим в консоль и пишем map имя_карты). Если Вы создадите сервер, как обычно, из меню, то команды работать не будут, т.к. они запрещены в мультиплеере. &lt;p&gt; ВАЖНО: никогда не превращайте в энтити-объекты стены (или не дай Бог пол!), которые составляют основу Вашей карты. Дело в том, что игровой движок «видит» сквозь энтити-объекты и рисует все, что находится за ними. Например, если за какой-то стеной находится полкарты и Вы превратите ее в func_wall, то в этом месте будут большие «тормоза» из-за высокого R_SPEEDS. &lt;p&gt; 4.2 Разбиение на полигоны текстурами &lt;p&gt; Как Вы знаете, текстуры имеют определенный размер, например, 128х128 пикселей. Давайте представим, что у нас на карте есть стена с размерами, бОльшими, чем размер текстуры, например, 256х256 юнитов. В этом случае хоть браш у нас и один, но полигонов будет больше. &lt;p&gt; Например, если стена имеет размеры 256х256, а текстура 128х128, то данный браш будет разбит на 4 полигона, т.к. площадь текстуры ровно в 4 раза меньше площади браша. &lt;p&gt; В редакторе Hammer у нас есть возможность менять масштаб текстуры. Делается это (напомним &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley1.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:)&quot;&gt; на панели «Face Properties» в параметре Scale. &lt;p&gt; Взгляните на картинку ниже, на ней очень хорошо видно, на сколько различается количество полигонов при использовании различных масштабов текстур. &lt;p&gt; На левой стене текстуры нанесены с масштабом 4х1 (полигонов всего 6), а справа — 1х1 (полигонов в 16 раз больше!). Конечно, стенка слева выглядит более размазано, но в случае, когда необходимо уменьшить количество полигонов, этот метод может быть успешно применен. Наибольших результатов Вы сможете добиться при увеличении масштаба текстур на вот таких больших по площади брашах (скалах, земле). &lt;p&gt; 4.3 Большие открытые пространства &lt;p&gt; Ну, и последней причиной большого R_SPEEDS, которая, на самом деле, вытекает из выше перечисленных двух, является открытость карты и чрезмерная насыщеность деталями. &lt;p&gt; Игровой движок Half-Life не расчитан на большие пространства (необязательно, что это открытое пространство (с небом). Большой пребольшой ангар с массой деталей тоже будет тормозить). Помните для какой игры Вы создаете карты, это Вам не Unreal &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley1.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:)&quot;&gt; Халф любит закрытые помещения, всякого рода коридорчики и очень расстраивается, когда Вы его заставляете рисовать высоченные горы или 50 многоэтажных зданий на одной улице. Если, созданная Вами карта тормозит, и R_SPEEDS приближается к нескольким тысячам wpoly — нужно координальным образом (хирургическими методами &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley1.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:)&quot;&gt; изменять карту. &lt;p&gt; 5. Методы снижения R_SPEEDS &lt;br /&gt; Несколько основных методов снижения R_SPEEDS мы только что разобрали в пункте 4. Существуют и другие хитрости, которых помогут снизить R_SPEEDS на Вашей карте. &lt;br /&gt; Превращение мелких брашей в энтити (рассмотрено) &lt;br /&gt; Увеличение масштаба текстур (рассмотрено) &lt;br /&gt; Закрытие обзора игрокам &lt;br /&gt; Метод зазора в 1 юнит &lt;br /&gt; Метод с использованием текстур 240х240 пикселей &lt;br /&gt; Применение SKY-текстур &lt;br /&gt; «Разделение» карты на отдельные пространства &lt;br /&gt; Использование HINT-брашей &lt;br /&gt; Рассмотрим все оставшиеся пункты кроме последнего восьмого (метод №8, как наиболее сложный — тема отдельной статьи). &lt;p&gt; 5.1 Закрытие обзора игрокам &lt;p&gt; Собственно, это даже не метод как таковой. Просто карту необходимо строить таким образом, чтобы не было больших открытых пространств. &lt;p&gt; Что понимать под большими открытыми пространствами? &lt;p&gt; Приведем конкретные примеры. &lt;p&gt; Приведенные выше примеры показывают, каких максимальных размеров должны быть открытые пространства в CS. Учтите еще то, что авторы этих карт — профессионалы, которые наилучшим образом оптимизировали свои карты. Такими же профессионалами можете стать и Вы, для это необходимо всего-то прочитать все статьи нашего Учебника :). &lt;p&gt; Итак, создавая открытое пространство, не выходите за рамки разумного. Все пути и подходы к такому «нагруженному» месту должны быть или чем-то отгорожены (как на de_cbble огромными толстыми воротами, рис.1), или просто они должны быть изогнутыми (рис.2). &lt;p&gt; В обоих случаях обзор игроку закрывается, он видит меньше полигонов, следовательно карта меньше тормозит. Естественно, мы привели лишь несколько вариантов, например, можно еще «поиграть» с рельефом (сделать подходы наклонными, как на базу контров на de_cbble), тем более, что «многоэтажные» карты очень нравятся игрокам (de_aztec, de_dust2). Вариантов можно придумать массу, главное понимать, как работает игровой движок, как он разбивает карту на видимые пространства (более подробно об этом будет рассказано в статье про 8-й метод с HINT-брашами). &lt;p&gt; 5.2 Метод зазора в 1 юнит &lt;p&gt; Это очень распространенный метод, суть которого заключается в поднятии браша на 1 юнит (можно и больше) над поверхностью земли. &lt;p&gt; Действительно, если подумать, то в таком случае ящик, висящий над землей на расстоянии всего в 1 юнит, не касается ее поверхности. А если нет соприкосновения, то нет и разбиения земли на полигоны. К тому же обычный игрок (не маппер &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley1.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:)&quot;&gt; не заметит, что ящик висит над землей, ведь он подвешен совсем на чуть-чуть. Естественно, в таком случае ящик не нужно превращать в энтити-объект. &lt;p&gt; Данный метод широко применяется на таких картах как: de_train, de_aztec, cs_backalley. Вот, например, картинка с de_train: &lt;p&gt; На картинке видно, что бетонная подставка под столб больше его по площади. А это значит, что при соприкосновении, она была бы разбита на 4 полигона. Автор карты сделал небольшой промежуток между столбом и подставкой (1-2 юнита). Теперь соприкосновения нет, и вместо 4 полигонов мы имеем всего 2 («днище» столба и верх подставки). А если мы закрасим «днище» столба текстурой SKY, которая не создает полигонов, то будет отрисован всего 1 полигон (об использовании SKY-текстур для оптимизации карты читайте ниже). &lt;p&gt; Также на этой карте подняты над землей все вагоны и некоторые ящики — это позволило избежать многочисленных разбиений земли. &lt;p&gt; На de_aztec не доведены до потолка провода и лампы. Между ними и потолком также есть зазор. &lt;p&gt; На de_nuke также применен данный метод (см. рис. ниже). &lt;p&gt; Естетсвенно, не стоит впадать в крайности и подвешивать абсолютно все ящики и пр. объекты. Делайте это в случае необходимости, при большом R_SPEEDS. &lt;p&gt; 5.3 Метод с использованием текстур 240х240 пикселей &lt;p&gt; Это очень действенный (супер действенный &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley1.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:)&quot;&gt; метод уменьшения количества полигонов. Суть заключается в том, что движок Half-Life разбивает абсолютно все поверхности через каждые 240 пикселей текстуры. Неважно, что Вы «натянули» на ящик текстуру 256х256 пикселей, она все равно будет разбита через 240 пикселей. &lt;p&gt; Сейчас мы вновь воспользуемся запуском карты из консоли и бесценной командой gl_wireframe 1 (режим OpenGL). На картинке ниже изображен ящик размером 256х256 юнитов с наложенной на него текстурой также с размерами 256х256, но естественно пикселей. Применив консольную команду gl_wireframe 1, мы с удивлением замечаем, что вместо 1 полигона (ведь текстура всего лишь 1) у нас отрисовано целых 4! В чем же дело? Почему на каждой стороне ящика по 4 полигона? Ведь теперь получается, что один единственный ящик создает аж: 4 х 5 = 20 полигонов (5 — число видимых сторон)??? &lt;p&gt; Как Вы уже знаете, движок Half-Life разбивает все поверхности на полигоны через каждые 240 пикселей текстуры. Чтобы было понятнее, приведем еще один рисунок. На нем мы видим тот же ящик, но чуть поменьше — 240х240 юнитов. Текстура также наложена в масштабе 1х1. Здесь мы как бы не видим часть текстуры (от нас скрыты 16 пикселей по ширине и 16 по высоте). &lt;p&gt; И дело именно в текстурных пикселях, а не размере ящика в юнитах. Вот посмотрите на еще один пример. Здесь ящик уже совсем маленький 96х96 юнитов, а текстура все таже 256х256. В редакторе мы применили к текстуре «Fit» (кнопка на панели «Face Properties»), которая сжала нашу большую текстуру до размеров ящика. &lt;p&gt; Как видите, даже такая маленькая поверхность ящика разбита на 4 полигона. То есть происходит как бы отсчет 240 пикселей на текстуре и делается «шов». Таким образом, если ящик имеет 5 видимых сторон (дно мы не видим), то вместо ожидаемых 5 полигонов мы имеем 20! А если у нас 10 ящиков, следовательно, вместо 50 полигонов у нас будет 200! То же самое касается всех объектов, на которые наложена текстура 256х256 (вобще это сейчас очень популярный размер текстуры, а зря!). Часто мапперы накладывают 256х256 текстуры на стены, крыши, проходы, скалы — все это ЗНАЧИТЕЛЬНО увеличивает количество полигонов. &lt;p&gt; Выходы здесь следующие: &lt;p&gt; использовать текстуры с размером 240х240 пикселей (лучше всего) &lt;p&gt; не делать «Fit» для текстур 256х256 (т.е. чтобы видно было лишь 240 пикселей текстуры) &lt;p&gt; делать стены высотой 240 юнитов, в таком случае часть текстуры 256х256 будет скрыта &lt;p&gt; использовать параметр -subdivide х для компилятора HLBSP (вместе с ZHLT Custom Build 1.7 и выше) &lt;br /&gt; Что касается последнего пункта, то команда -subdivide х (где х — значение от 240 до 512) указывает после какого количества пикселей необходимо разбивать поверхность на полигоны. НО!!! Этот параметр глючит и не дает докомпилировать карту! :( По крайней мере так было с улучшенными компиляторами ZHLT Custom Build версией 1.7. Надеемся, в будущем эту ошибку исправят, и мы сможем использовать текстуры вплость до 512 пикселей, и при этом не будет происходить разбиения на полигоны. &lt;p&gt; С официальными ZHLT 2.5.3 данный параметр не работает (он появился только в Custom Build). Автор улучшенных компиляторов замечает, что в режиме Software возможно возникновение проблем из-за этого параметра, но у нас и многих других мапперов он вообще не работает! В общем задумка неплохая, но реализация хромает. &lt;p&gt; 5.4 Применение SKY-текстур &lt;p&gt; Вы уже знаете, что SKY-текстуры применяются для создания неба. Но они обладают еще одним очень хорошим свойством: стороны объектов, окрашенные текстурой SKY, не создают полигонов! То есть, если мы покрасим какие-нибудь объекты SKY-текстурой, то они не создадут полигонов, правда, при этом будут абсолютно прозрачными (через них будет видно небо :). &lt;p&gt; SKY-текстуры нужно наносить на те поверхности, которые игрок в игре увидеть не может. Что это за поверхности? Крыши домов, верхние грани заборов, стен — в общем все то, что игрок в нормальных условиях не видит. &lt;p&gt; Действительно, ведь не может же игрок увидеть крыши домов, например, здесь (см. рис. ниже). &lt;p&gt; В этом случае мы просто берем и закрашиваем все крыши SKY-текстурой (см. рис. ниже). &lt;p&gt; Теперь у нас на карте полигонов станет поменьше, плюс меньше времени уйдет на компиляцию, т.к. SKY-поверхности не нуждаются в просчете освещения (они попросту игнорируются). &lt;p&gt; Все мы замечали, играя например на de_dust, что, если в режиме спектатора подняться чуть выше стен, то потолки становятся прозрачными (см. рис. ниже). &lt;p&gt; Это как раз и является доказательством того, что на них была нанесена текстура SKY с целью уменьшения количества полигонов. &lt;p&gt; Примечание: если Вы по каким-либо причинам создаете небо в виде большой коробки вокруг карты, то следует закрасить SKY-текстурой все внешние стороны карты, а также ее дно (см. рис. ниже). &lt;p&gt; В этом случае мы резко уменьшаем время компиляции (т.к. теперь внешние стороны карты (и ее дно), которые игрок все-равно никогда не увидит, не просчитываются на освещение). &lt;p&gt; Ну, а если Вы строите правильное небо (куполом над картой), то делать этого нет необходимости. А вот крыши в любом случае необходимо закрашивать, т.к. они в 100% случаев подвержены освещению. &lt;p&gt; 5.5 Разделение карты на отдельные пространства &lt;p&gt; Теперь давайте рассмотрим последний метод (в данной статье) — метод разделения карты на отдельные пространства. &lt;p&gt; В принципе данный метод по сути является методом создания правильного неба, когда SKY-браши строятся по периметру карты, как бы повторяя ее внешние и внутренние стены. &lt;p&gt; Рассмотрим принцип построения карты на примере популярной de_dust2. &lt;p&gt; De_Dust2 схематично можно разбить на 5 основных областей (пространств). Понятно, как получается это разделение — каждое пространство отделено от соседнего или воротами, или проходом в стене. &lt;p&gt; Находясь в одном из этих пространств, игрок видит лишь его одно, ну, и незначительную часть соседнего пространства (остальные области карты движок Half-Life не рисует — отбрасывает). Все это позволяет добиться отличного R_SPEEDS и прекрасной скорости отрисовки карты. &lt;p&gt; Пришло время познакомить Вас с еще одной полезной для тестирования карты консольной командой: r_draworder 1. &lt;p&gt; Эта команда работает только в режиме Software и при условии, что карту Вы запускаете из консоли, а не через игровое меню. &lt;p&gt; При использовании этой команды Вы можете видеть, как работает игровой движок, какие области карты он отрисовывает. &lt;p&gt; Вот, например, как будет выглядеть de_dust2 в первой своей области. &lt;p&gt; Мы находимся у базы контров (бомб-плейс «А»). Движок Half-Life помимо напрямую видимых частей карты, отрисовывает немного больше. Так, например, мы видим базу контров (под мостом) и еще часть прохода (если идти не на базу, а налево, там, где спуск и тупик). Все остальное движок не рисует. &lt;p&gt; Или вот картинка с третьей области (тоже около базы контров, но только у центрального прохода). &lt;p&gt; Здесь виден весь центральный проход (несмотря на ворота) и часть базы «В». Все остальное также отбрасывается. &lt;p&gt; А теперь давайте представим, что было бы, если бы наша карта представляла из себя эдакую коробку, в которой не было бы никаких внутренних стен и проходов? &lt;p&gt; В этом случае движок отрисовывал бы всю карту, что, естественно, заметно повысило бы ее «тормознутость». &lt;p&gt; Вывод из всего этого таков: карту необходимо разбивать на области. Области должны соединяться какими-то проходами или находиться на разных высотах (одна область ниже, другая выше). &lt;p&gt; Но бывают ситуации, когда игровой движок, не смотря на наличие перед взором игрока высокой стены, все же рисует пространства, находящиеся за этой стеной. Например, в таком случае: &lt;p&gt; Игрок, обозначенный фиолетовой фигуркой, на самом деле не видит, что находится за стеной, однако игровой движок рисует ту область карты. Происходит это, видимо, из-за недостаточной высоты стенки. Взгляд движка, как бы перепрыгивает через это невысокое препятствие, рисует область карты за ним и тем самым увеличивает количество полигонов. &lt;p&gt; Какой высоты должна быть стена сказать сложно. Иногда кажется, что ты сделал действительно высокую стену, скажем 320 юнитов, а движок все-равно рисует то, что находится за ней. А если Вы не хотите делать все стены на Вашей карте высотой по 400 юнитов? Что делать? &lt;p&gt; Исправляется это созданием над стеной SKY-браша. Этот SKY-браш повторяет форму стенки и занимает все пространство от ее верхней части до неба (верхнего SKY-браша). &lt;p&gt; В другом примере с воротами (см. рис. ниже) данный прием вряд ли поможет сберечь полигоны, т.к. движок прекрасно «пробирается» сквозь отверстие ворот. Однако, если игрок напрямую не будет видеть ворота (будет смотреть в сторону), то данный прием также может сработать, и движок «отрежет» часть карты за воротами. &lt;p&gt; Поэтому и в этом случае рекомендуем создать SKY-браш между воротами и верхним SKY-брашем. &lt;p&gt; Так необходимо поступить со всей картой — разделить ее SKY-брашами на отдельные области. Кстати, при создании общего освещения можно сделать лишь 1 объект light_environment, поместить его в любую из областей, и все области будут нормально освещены, т.е. делать несколько «солнышек» нет необходимости (это раньше приходилось освещать каждую область отдельно). &lt;p&gt; Рассказывая про данный метод, мы уже вплотную приблизились к последнему методу повышения FPS на карте — применению HINT-брашей. Естественно, в данной статье про этот метод мы рассказывать уже не будем (и так статья получилась просто огромная :), а вот начальные знания о работе игрового движка, полученные в этой статье, Вам пригодятся. &lt;p&gt; 6. Консольные команды &lt;br /&gt; И в заключении статьи напомним консольные команды, которые мы использовали для тестирования карты. &lt;p&gt; developer 1 — отображает на экране различные служебные сообщения; &lt;br /&gt; r_speeds 1 — выводит на экран показатели wpoly и epoly; &lt;br /&gt; gl_wireframe 1 / 2 — показывает границы полигонов (OpenGL); &lt;br /&gt; r_drawflat 1 — заменяет текстурные поверхности на цветные (Software); &lt;br /&gt; r_draworder 1 — показывает какие области карты отображает игровой движок (Software) &lt;p&gt; Последние 3 команды будут работать только в случае запуска карты из консоли (как одиночного уровня Half-Life). &lt;br /&gt; На этом все. Не позволяйте R_SPEEDS прыгать слишком высоко и принимайте вовремя меры. &lt;p&gt; Материал взят с сайта cs-mapper</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>VedMak</dc:creator>
			<guid>https://cs-strikez.org/forum/64-8478-1</guid>
		</item>
		<item>
			<title>Нужен помощник</title>
			<link>https://cs-strikez.org/forum/64-18950-1</link>
			<pubDate>Mon, 08 Jan 2018 17:46:14 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Автор темы: chakki056skrip&lt;br /&gt;Автор последнего сообщения: btc&lt;br /&gt;Количество ответов: 2</description>
			<content:encoded>&lt;span style=&quot;font-size:12pt;&quot;&gt;&lt;span style=&quot;color:red&quot;&gt;Нужен помощник по маппингу в cs 1.6&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:green&quot;&gt;Писать в skype: skrip.chikatilo&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; Задача помощника: &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;1.&lt;/span&gt; &lt;span style=&quot;color:yellow&quot;&gt;Оптимизация карты&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;2.&lt;/span&gt; &lt;span style=&quot;color:yellow&quot;&gt;Решение ошибок при компиляции и в cs&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:blue&quot;&gt;3.&lt;/span&gt; &lt;span style=&quot;color:yellow&quot;&gt;Ну вот и все:)&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color:purple&quot;&gt;&lt;br /&gt; Кому несложно, пишите. Буду признателен.&lt;/span&gt;&lt;/span&gt;</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>chakki056skrip</dc:creator>
			<guid>https://cs-strikez.org/forum/64-18950-1</guid>
		</item>
		<item>
			<title>Нужно узнать доп.контакты</title>
			<link>https://cs-strikez.org/forum/64-18613-1</link>
			<pubDate>Mon, 08 Jan 2018 17:44:42 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Автор темы: chakki056skrip&lt;br /&gt;Автор последнего сообщения: btc&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Нужно узнать доп.контакты одного замечательного маппера!!! &lt;br /&gt; Скайп вроде Dimex-By, но там он вроде бы его забросил! &lt;br /&gt; Если есть доп.контакты пишите ниже &lt;br /&gt; Вот фото&lt;p&gt;&lt;b&gt;Добавлено&lt;/b&gt; (2014-03-09, 10:16)&lt;br /&gt;---------------------------------------------&lt;br /&gt;Closed &lt;br /&gt; Нашел)</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>chakki056skrip</dc:creator>
			<guid>https://cs-strikez.org/forum/64-18613-1</guid>
		</item>
		<item>
			<title>Оптимизация карты.</title>
			<link>https://cs-strikez.org/forum/64-19019-1</link>
			<pubDate>Wed, 30 Aug 2017 02:55:55 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Автор темы: chakki056skrip&lt;br /&gt;Автор последнего сообщения: Laper&lt;br /&gt;Количество ответов: 4</description>
			<content:encoded>Всем привет! &lt;br /&gt; Я давно создал красивую карту 35hp_party_2 &lt;br /&gt; Но на ней слишком много wpoly и epoly.(FPS маленький) &lt;br /&gt; Кто сможет ее оптимизировать, писать сюда или в скайп zloy.kot56 &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;http://u.to/MabOBw&quot; title=&quot;http://yadi.sk/d/DkNqQ5mBSDcyG&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;карта&lt;/a&gt; &lt;br /&gt; Спасибо. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Добавлено&lt;/b&gt; (2014-08-26, 17:15) &lt;br /&gt; --------------------------------------------- &lt;br /&gt; wpoly - 2500 &lt;br /&gt; epoly - 2500-8000&lt;p&gt;&lt;b&gt;Добавлено&lt;/b&gt; (2014-08-27, 14:44)&lt;br /&gt;---------------------------------------------&lt;br /&gt;Это срочно.</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>chakki056skrip</dc:creator>
			<guid>https://cs-strikez.org/forum/64-19019-1</guid>
		</item>
		<item>
			<title>Вопросы и ответы по маппингу</title>
			<link>https://cs-strikez.org/forum/64-6137-1</link>
			<pubDate>Sat, 16 Apr 2016 06:47:44 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Описание темы: Задаем и отвечаем на вопросы&lt;br /&gt;Автор темы: Kzanders&lt;br /&gt;Автор последнего сообщения: sujh&lt;br /&gt;Количество ответов: 56</description>
			<content:encoded>Приветствую начинающих и опытных мапперов! &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley9.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;;)&quot;&gt; &lt;br /&gt; В этой теме задаем вопросы возникшие при создании карты! &lt;br /&gt; Ну и конечно же отвечаем на вопросы других мапперов! &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley9.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;;)&quot;&gt; &lt;p&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerIYCrvq&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerIYCrvq&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerIYCrvq&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerIYCrvq&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerIYCrvq&apos;)).val(&apos;[&amp;#92;&amp;#8211;] Просьба&apos;);$(&apos;#uSpoilerIYCrvq&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerIYCrvq&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerIYCrvq&apos;)).val(&apos;[+] Просьба&apos;);$(&apos;#uSpoilerIYCrvq&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;[+] Просьба&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;Пожалуйста не флудите!&lt;!--/ust--&gt;&lt;!--usn(=Просьба)--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;p&gt; Ну вобщем я начну: &lt;br /&gt; У меня такой вопрос! Как же создать арку, как на de_duste2 или de_inferno?</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>Kzanders</dc:creator>
			<guid>https://cs-strikez.org/forum/64-6137-1</guid>
		</item>
		<item>
			<title>Выкладывайте свои работы!</title>
			<link>https://cs-strikez.org/forum/64-6093-1</link>
			<pubDate>Sun, 07 Feb 2016 20:52:41 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Описание темы: Маппинг&lt;br /&gt;Автор темы: Kzanders&lt;br /&gt;Автор последнего сообщения: KorHiK&lt;br /&gt;Количество ответов: 274</description>
			<content:encoded>В эту тему выкладывайте свои работы! &lt;br /&gt; Пишем так: &lt;br /&gt; 1)Название - &lt;br /&gt; 2)Скриншет - &lt;br /&gt; 3)Описание - &lt;br /&gt; 4)Ссылка на скачивание - &lt;p&gt; И не забываем оценивать и коментировать работы других мапперов &lt;p&gt; Давайте будем выкладывать свои карты, далее оценивать без лишнего флуда. Оценка по 10 бальной шкале, что понравилось, что не понравилось, что дорабтать, а что убрать. &lt;br /&gt; Для флуда есть соответствующая тема.</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>Kzanders</dc:creator>
			<guid>https://cs-strikez.org/forum/64-6093-1</guid>
		</item>
		<item>
			<title>Создаем свою первою карту</title>
			<link>https://cs-strikez.org/forum/64-6109-1</link>
			<pubDate>Sat, 14 Mar 2015 10:29:10 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://cs-strikez.org/forum/64&quot;&gt;Маппинг CS&lt;/a&gt;&lt;br /&gt;Описание темы: Создаем&lt;br /&gt;Автор темы: Kzanders&lt;br /&gt;Автор последнего сообщения: Outeend&lt;br /&gt;Количество ответов: 157</description>
			<content:encoded>Для того, чтобы создать мапу вам нуно: &lt;br /&gt; 1.Хотябы чуть-чуть знать англ. язык &lt;br /&gt; 2.Уметь читать &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley26.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:D&quot;&gt; &lt;br /&gt; 3.Ну и конечно же терпение и сила воли &lt;p&gt; Ну, чтож, вот и настал этот волнующий момент, когда Вы сами с нашей помощью создадите свою первую карту и сможете на ней побегать. &lt;p&gt; Мы надеемся, что Вы внимательно читали все предыдущие статьи Учебника, а следовательно умеете создавать простые браши, вставлять точечные энтити, умеете текстурировать объекты и имеете представление о компиляции (желательно BAT-файлом). Также от Вас потребуется знание следующих энтити-объектов: &lt;p&gt; info_player_deathmatch &lt;br /&gt; info_player_start &lt;br /&gt; light &lt;br /&gt; Запустите редактор и создайте новый файл [Ctrl-N]. Выберите инструмент для работы с текстурами (разноцветный кубик). На появившейся панели Face Properties нажмите кнопку Browse. Внизу, в поле Filter наберите следующее: FIFTIES_WALL12 (это мы выбираем текстуру для стен будущей комнаты). Если у Вас подключен halflife.wad, то такая текстура найдется, если нет — подключите halflife.wad (он находится в директории valve с Half-Life). Выберите самую первую текстуру. &lt;p&gt; &lt;!--IMG1--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/0756723.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG1--&gt; &lt;p&gt; Закройте окно с выбором текстур. Установите вид сверху (2D top), выберите инструмен Блок [Shift-B] и постройте квадрат с размерами 384х384 юнита (размер контролируйте в строке состояния, внизу). Переключитесь на вид спереди (2D front) и удлинните прямоугольник также до 384 юнитов. Завершите создание браша нажатием на Enter. &lt;p&gt; &lt;!--IMG2--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/1492508.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG2--&gt; &lt;p&gt; Выделите только что созданный браш и нажмите [Ctrl-H]. Сейчас мы применим функцию Hollow, рассмотренную в прошлой статье. В появившемся окошке оставьте значение 32 и нажмите «OK». &lt;p&gt; &lt;!--IMG3--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/5643695.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG3--&gt; &lt;p&gt; Таким образом, у нас появилась комната с размерами 384х384х384 юнита и толщиной стенок 32 юнита (см. рис. ниже). &lt;p&gt; &lt;!--IMG4--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/9187309.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt; &lt;p&gt; Теперь можно посмотреть на карту в виде 3D textured, залететь внутрь комнаты. Для перемещения в 3D-виде один раз нажмите Z и пользуйтесь кнопками W, A, S, D и мышью. В результате всех операций Ваша комната в трехмерном виде должна выглядеть приблизительно так (см. рис. ниже): &lt;p&gt; &lt;!--IMG5--&gt;&lt;a href=&quot;http://cs-strikez.clan.su/_fr/61/8680906.jpg&quot; target=&quot;_blank&quot; title=&quot;Нажмите, для просмотра в полном размере...&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/s8680906.jpg&quot; align=&quot;&quot; /&gt;&lt;/a&gt;&lt;!--IMG5--&gt; &lt;p&gt; ЗАПОМНИТЕ! Не нужно применять функцию Hollow к каждому брашу на карте! Мы это сделали, чтобы быстро создать комнату, внутри которой можно будет бегать. Представьте, что браш — это обычная строительная плита. Так зачем же каждую плиту превращать в комнату, зачем каждую стенку на карте превращать в комнату (мы все равно там бегать не собираемся :), зачем превращать в комнату пол на карте — это абсолютно не нужно! Здесь же нам нужна была именно комната, внутри которой мы могли бы бегать, поэтому мы применили функцию Hollow. Точно такую же комнату можно получить, создав 6 стен по отдельности. &lt;p&gt; Теперь настало время вставить 3 объекта, о которых мы говорили в начале статьи. Первым вставим источник света, т.е. объект light. Выберите инструмент Entity Tool [Shift-E], затем на панели New Objects в списке выберите объект light (см. рис. ниже). &lt;p&gt; &lt;!--IMG6--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/2167015.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG6--&gt; &lt;p&gt; Поставьте вид сверху (2D top), подведите курсор к центру комнаты и нажмите левую кнопку мыши (см. рис. ниже). &lt;p&gt; &lt;!--IMG7--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/7934577.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG7--&gt; &lt;p&gt; Переключитесь на вид спереди (2D front) и поместите объект light под потолок (см. рис. ниже). Затем нажмите Enter, чтобы закончить создание источника света. &lt;p&gt; &lt;!--IMG8--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/3443013.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG8--&gt; &lt;p&gt; Итак, лампочку мы сделали. Теперь у нас на карте будет светло. Теперь остается создать точки появления контров и террористов. Как Вы уже знаете этими точками являются объекты info_player_deathmatch (террорист) и info_player_start (контр). Один объект — одна точка рождения. Чтобы на карте могли играть несколько игроков, необходимо ставить несколько точек для контров и для террористов. &lt;p&gt; Также как и в случае с лампочкой выберите в списке info_player_deathmatch и установите, как показано на рисунках ниже. &lt;p&gt; &lt;!--IMG9--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/9219863.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG9--&gt; &lt;p&gt; &lt;!--IMG10--&gt;&lt;img alt=&quot;&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;http://cs-strikez.clan.su/_fr/61/5023446.gif&quot; align=&quot;&quot; /&gt;&lt;!--IMG10--&gt; &lt;p&gt; Обратите внимание, что объекты info_player_deathmatch и info_player_start не должны касаться стен (см. рис. ниже, вид top), друг друга и быть приподняты на некоторое расстояние над землей (см. рис. ниже, вид front). Это необходимо делать, чтобы игроки не умирали в начале раунда сами по себе и могли свободно двигаться. Вы замечали на некоторых картах при большом пинге и лагах, как игроки в начале раунда как бы падают на землю? Это происходит как раз потому, что между игроком и землей имеется некоторое расстояние. При качественном соединении такие «приземления» практически незаметны. &lt;p&gt; &lt;img src=&quot;http://cs-strikez.clan.su/forumimagess/hammer1.gif&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;p&gt; &lt;img src=&quot;http://cs-strikez.clan.su/forumimagess/hammer2.gif&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;p&gt; Итак, одну точку рождения террориста мы уже разместили. Теперь точно также создайте одну точку появления контра. Выберите в списке объект info_player_start и вставьте его подобным образом, только в противоположный угол комнаты (на виде сверху это будет правый нижний угол). &lt;p&gt; Все! Первая полностью рабочая карта создана! Конечно ее еще надо откомпилировать, но пока сравните то, что получилось у Вас, с нашей картинкой. Если все приблизительно так, сохраните карту под именем my1map (или любым другим) в формате RMF и затем в формате MAP, чтобы можно было откомпилировать. &lt;p&gt; &lt;img src=&quot;http://cs-strikez.clan.su/forumimagess/hammer3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;p&gt; Чтобы откомпилировать карту нужно создать BAT-файл. Скопируйте приведенные ниже строки в Блокнот и сохраните файл как COMPILE.BAT (подробно процесс создания BAT-файла описан в статье «Как компилировать?»). &lt;p&gt; Ниже мы приводим пример простенького BAT-файла, которым Вы сможете откомпилировать свою первую карту. &lt;p&gt; @echo off &lt;br /&gt; set WADROOT=c:&amp;#92;games&amp;#92;half-life &lt;br /&gt; set mapname=my1map.map &lt;br /&gt; hlcsg.exe &quot;%mapname%&quot; &lt;br /&gt; hlbsp.exe &quot;%mapname%&quot; &lt;br /&gt; hlvis.exe &quot;%mapname%&quot; &lt;br /&gt; hlrad.exe &quot;%mapname%&quot; &lt;p&gt; Поместите COMPILE.BAT к компиляторам, туда же скопируйте карту в формате *.MAP и запускайте BAT-файл. Через пару секунд в этой же директории будет готовая BSP-карта. &lt;p&gt; Замечание: если имя карты не my1map, то измените его в строке set mapname=my1map.map, а также измените путь к директории с Half-Life, если он другой. &lt;p&gt; И последнее, сохраните Вашу первую карту на память. Позже, месяцев так 5-6 спустя, посмотрите на нее. Мы уверены, Вы как минимум улыбнетесь &lt;img rel=&quot;usm&quot; src=&quot;http://cs-strikez.clan.su/smile/Smiley1.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;:)&quot;&gt; &lt;p&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerum6QDe&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerum6QDe&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerum6QDe&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerum6QDe&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerum6QDe&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerum6QDe&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerum6QDe&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerum6QDe&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerum6QDe&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;Статья скопирована с cs-mapper.by.ru&lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt;</content:encoded>
			<category>Маппинг CS</category>
			<dc:creator>Kzanders</dc:creator>
			<guid>https://cs-strikez.org/forum/64-6109-1</guid>
		</item>
	</channel>
</rss>