Изменение карт без компиляции.
В данном туторе я расскажу вам способ изменить карту без декомпиляции. При этом стоит лишь заменить эту карту на сервере, а игрокам не придется заново качать ее, если у них карта уже была(хоть и "старая версия").
Данный метод позволяет перекрывать некоторые проходы на картах, добавлять ящики и другие предметы на карту(а точнее клонировать уже существующие на карте).
Рассмотрим стандартную карту de_cbble. Например вам нужно сделать ее only_A(для клана допустим), но вы не хотите ее переделывать и кидать каждому новую карту.
Для работы нам понадобится программа для редактирования энтить(RipEnt, но я предпочитаю BSPEdit, так как он удобней и быстрее), желательно декомпил(от Bsp Two Map) карты, которую хотите изменять(вместо него можно BSPViewer, но тогда трудно будет браши поставить ровно).
Я буду перекрывать 2 прохода.
Итак, для начала сделайте копию карты, чтоб не испортить оригинал
.
Этап 1.
Открываем исходник хаммером и ищем подходящие брашевые энтити(обычные стены и ящики передвинуть не удастся), которые можно вставить в проходы.
Я выбрал вот этот ящик
Открываем его свойства, нажимаем SmartEdit и там должно быть поле model *154(Bsp Two Map декомпилятор как раз это обеспечивает), а если нет, то тогда ищите этот браш в BSPViewer, он тоже показывает номер модели.
Номер модели этого ящика - *154.
Этап 2.
Открываем карту BSPEdit'ом (если вы используете RipEnt, то извлекаете файл de_cbble.ent и далее работаете с ним).
Добавляем в конец func_train(в конце статьи нормальная версия, тут с комментами)
{
"model" "*154" // номер модели
"classname" "func_train"
"renderamt" "255"
"rendercolor" "0 0 0"
"targetname" "block1" // имя, понадобится потом
"speed" "1000" // скорость, ниже ставить не рекомендую
"dmg" "1000" // для вашей же безопасности, чтоб нигде не остановился
"target" "new1" // имя path_corner, место, куда мы поставим ящик
"avelocity" "0 0 0"
"volume" "0.85"
}
Path_corner:
{
"origin" "-1792 -992 48" // координаты получаем из хаммера, переместив в нужное место ящик и найдя его центр
"target" "new1" // имя
"targetname" "new1" // цель, ставим свое имя, чтоб ящик в след раунде был на этом же месте
"angles" "0 0 0"
"wait" "2" // ВАЖНО! Не забудьте поставить значение отличное от 0, потому что тогда сервер может упасть.
"spawnflags" "3" // флаги Wait for retrigger и Teleport to Next, первый блокирует постоянное движение ящика(ведь это поезд), второй обеспечивает телепортацию ящика в данное место)
"classname" "path_corner"
}
После этого сохраняем и можно карту запускать, ящик будет на месте, но только 1 раунд. В след раунде он вернется на свое прежнее место. Для того, чтоб опять его туда поставить, надо добавить еще multi_manager:
{
"classname" "multi_manager"
"targetname" "game_playerspawn" // срабатывает в начале раунда
"origin" "-926 1312 -128" // координаты любые
}
Теперь ящик будет всегда на своем месте.
Добавив еще 1 ящик и 2 "перегородки" получилось вот такое:
Примеры измененных карт : de_cbble - как в примере, de_dust - без "длины", deathrun_temple - изменены все ловушки(сложная версия), deathrun_w0rms - изменены все ловушки(нереальная версия, была пройдена единицы раз) - http://www.ex.ua/view/18326223
В данном туторе я расскажу вам способ изменить карту без декомпиляции. При этом стоит лишь заменить эту карту на сервере, а игрокам не придется заново качать ее, если у них карта уже была(хоть и "старая версия").
Данный метод позволяет перекрывать некоторые проходы на картах, добавлять ящики и другие предметы на карту(а точнее клонировать уже существующие на карте).
Рассмотрим стандартную карту de_cbble. Например вам нужно сделать ее only_A(для клана допустим), но вы не хотите ее переделывать и кидать каждому новую карту.
Для работы нам понадобится программа для редактирования энтить(RipEnt, но я предпочитаю BSPEdit, так как он удобней и быстрее), желательно декомпил(от Bsp Two Map) карты, которую хотите изменять(вместо него можно BSPViewer, но тогда трудно будет браши поставить ровно).
Я буду перекрывать 2 прохода.
Итак, для начала сделайте копию карты, чтоб не испортить оригинал
.Этап 1.
Открываем исходник хаммером и ищем подходящие брашевые энтити(обычные стены и ящики передвинуть не удастся), которые можно вставить в проходы.
Я выбрал вот этот ящик
Открываем его свойства, нажимаем SmartEdit и там должно быть поле model *154(Bsp Two Map декомпилятор как раз это обеспечивает), а если нет, то тогда ищите этот браш в BSPViewer, он тоже показывает номер модели.
Номер модели этого ящика - *154.
Этап 2.
Открываем карту BSPEdit'ом (если вы используете RipEnt, то извлекаете файл de_cbble.ent и далее работаете с ним).
Добавляем в конец func_train(в конце статьи нормальная версия, тут с комментами)
{
"model" "*154" // номер модели
"classname" "func_train"
"renderamt" "255"
"rendercolor" "0 0 0"
"targetname" "block1" // имя, понадобится потом
"speed" "1000" // скорость, ниже ставить не рекомендую
"dmg" "1000" // для вашей же безопасности, чтоб нигде не остановился
"target" "new1" // имя path_corner, место, куда мы поставим ящик
"avelocity" "0 0 0"
"volume" "0.85"
}
Path_corner:
{
"origin" "-1792 -992 48" // координаты получаем из хаммера, переместив в нужное место ящик и найдя его центр
"target" "new1" // имя
"targetname" "new1" // цель, ставим свое имя, чтоб ящик в след раунде был на этом же месте
"angles" "0 0 0"
"wait" "2" // ВАЖНО! Не забудьте поставить значение отличное от 0, потому что тогда сервер может упасть.
"spawnflags" "3" // флаги Wait for retrigger и Teleport to Next, первый блокирует постоянное движение ящика(ведь это поезд), второй обеспечивает телепортацию ящика в данное место)
"classname" "path_corner"
}
После этого сохраняем и можно карту запускать, ящик будет на месте, но только 1 раунд. В след раунде он вернется на свое прежнее место. Для того, чтоб опять его туда поставить, надо добавить еще multi_manager:
{
"classname" "multi_manager"
"targetname" "game_playerspawn" // срабатывает в начале раунда
"origin" "-926 1312 -128" // координаты любые
}
Теперь ящик будет всегда на своем месте.
Добавив еще 1 ящик и 2 "перегородки" получилось вот такое:
Код:
{
"model" "*154"
"classname" "func_train"
"renderamt" "255"
"rendercolor" "0 0 0"
"targetname" "block1"
"speed" "1000"
"dmg" "1000"
"target" "new1"
"avelocity" "0 0 0"
"volume" "0.85"
}
{
"origin" "-1792 -992 48"
"target" "new1"
"targetname" "new1"
"angles" "0 0 0"
"wait" "2"
"spawnflags" "3"
"classname" "path_corner"
}
{
"model" "*154"
"classname" "func_train"
"renderamt" "255"
"rendercolor" "0 0 0"
"targetname" "block2"
"speed" "1000"
"dmg" "1000"
"target" "new2"
"avelocity" "0 0 0"
"volume" "0.85"
}
{
"origin" "-928 472 48"
"target" "new2"
"targetname" "new2"
"angles" "0 0 0"
"wait" "2"
"spawnflags" "3"
"classname" "path_corner"
}
{
"model" "*116"
"classname" "func_train"
"renderamt" "255"
"rendercolor" "0 0 0"
"targetname" "block3"
"speed" "1000"
"dmg" "1000"
"target" "new3"
"avelocity" "0 0 0"
"volume" "0.85"
}
{
"origin" "-952 568 104"
"target" "new3"
"targetname" "new3"
"angles" "0 0 0"
"wait" "2"
"spawnflags" "3"
"classname" "path_corner"
}
{
"model" "*116"
"classname" "func_train"
"renderamt" "255"
"rendercolor" "0 0 0"
"targetname" "block4"
"speed" "1000"
"dmg" "1000"
"target" "new4"
"avelocity" "0 0 0"
"volume" "0.85"
}
{
"origin" "-904 568 104"
"target" "new4"
"targetname" "new4"
"angles" "0 0 0"
"wait" "2"
"spawnflags" "3"
"classname" "path_corner"
}
{
"classname" "multi_manager"
"targetname" "game_playerspawn"
"origin" "-926 1312 -128"
"block1" "0.1"
"block2" "0.1"
"block3" "0.1"
"block4" "0.1"
}
Вложения
-
50.1 КБ Просмотров: 1 943
-
42.7 КБ Просмотров: 1 937
-
48.5 КБ Просмотров: 653
-
53.4 КБ Просмотров: 1 892
-
40.7 КБ Просмотров: 2 001
-
48.5 КБ Просмотров: 1 941
Последнее редактирование:
.