Разнообразие карты (как cs_havana)
В этом уроке мы создадим карту, похожую на cs_havana. В начале каждого нового раунда некоторые пути (двери, проходы) оказываются закрыты, другие, наоборот — открываются. Кроме того, нужно правильно сгенерировать и настроить навигационную сетку для ботов, чтобы они при игре они не тупили, как это обычно бывает, а бежали туда, куда нужно.

Инструкция
Допустим, у вас есть карта и есть 3 прохода, но необходимо, чтобы в каждом новом раунде открыты были только 2 прохода. Всё это делается достаточно просто. В каждом проходе ставите стены, которые превращаете в func_brush и даёте имена stena1, stena2 и stena3. Затем нужно создать logic_case, дать ей имя case и добавить OutPut:

OnCase01 - stena1 - Enable
OnCase02 - stena2 - Enable
OnCase03 - stena3 - Enable

Далее поставьте logic_auto, в которой добавьте 4 параметра OutPut:

OnMapSpawn - case - PickRandom - 0.01
OnMapSpawn - stena1 - Disable - 0.00
OnMapSpawn - stena2 - Disable - 0.00
OnMapSpawn - stena3 - Disable - 0.00

Готово. При старте карты все стены будут отключены (так как func_brush не обновляется в каждом раунде, необходимо настраивать его через OutPut), затем управление переходит к logic_case, которая включает одну из трёх стен случайным образом.

Это самый простой вариант, но всё сложное создаётся из простого, можно сделать гигантский лабиринт, где в каждом новом раунде придётся искать новую дорогу. Минус — боты будут иметь преимущество над игроками, так как они уже будут знать, куда идти. Но чтобы они действительно знали, какие проходы открыты, придётся править навигационную сетку. Здесь описаны все команды для этого.



Как видно на рисунке, даже под закрытой дверью находится навигационная сетка. Зона под дверью должна иметь тип TRANSIENT (команда nav_transient), тогда боты будут проверять, открыта она или нет, и, если нет, они ни за что туда не пойдут. При автоматической генерации такие TRANSIENT-области, к сожалению, сами не создаются, поэтому все стены нужно проверить, где нет зон — создать вручную, всем поставить таким зонам флаг TRANSIENT.
Вернуться в каталог уроков