При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Картостроение > Туториалы > Туториалы по Counter-Strike 1.6
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2010, 10:02  #1
asssasssin2
asssasssin2
Рядовой
Регистрация: 07.03.2010
Сообщения: 42


По умолчанию Scripted_sequence и Scripted_sentence(ходьба и разговор npc)

Создание скриптов
Для создания скриптов в Half-Life существуют две энтити: scripted_sequence и scripted_sentence. Первая отвечает за движения, выполняемые монстром, будь то ходьба, бег, нажатие кнопки, тряска атомата с кока-колой, или почесывание подбородка. Вторая служит для того, чтобы монстр произнес какую-то фразу. При этом его голова повернется в сторону слушателя, и рот будет открываться в соответствии с частотой звука.

scripted_sequence

Основные параметры настраиваются следующим образом:

Name - имя, используемое для активации скрипта. Активатором, как и везде, может быть любая энтитя, включая самого монстра.

Angle - сторона, куда повернется лицом монстр, когда доберется до нужной точки.

Target - энтитя, которая активируется после завершения этого скрипта, т.е., после того, как монстр доберется до точки и проделает необходимую анимацию. Обычно этой энтитей бывает другой scripted_sequence для этого же монстра, или кнопка, на которую он нажал.

Delay before trigger - задержка между завершением анимации и срабатыванием target-энтити.

Kill Target - энтитя, которая будет удалена с карты после завершения скрипта (часто сюда ставят имя этого-же монстра, если нужно сделать так, чтобы тот зашел за угол и исчез)

Target Monster - имя того самого монстра, который выполняет скрипт. Это может быть также имя класса (например, moster_scientist) - в таком случае scripted_sequence выберет любого монстра этого класса в пределах радиуса, задаваемого в поле Search Radius

Action Animation - имя анимации, которую монстр проделает, когда доберется до расположения этого scripted_sequence. Если вам нужно, чтобы монстр просто подошел куда-то без дополнительной анимации, то оставьте это поле пустым.

Idle Animation - имя зацикленной анимации, которую монстр будет выполнять до тех пор, пока scripted_sequence не активируется. Например, падение ученого в шахте лифта - пока вы не добрались до верху, он будет дергаться, а при прохождении игроком триггера, он выполнит анимацию падения. Или поедающий труп зомби, подскакивающий при виде игрока. Если вам нужно, чтобы монстр всегда выполнял Idlе-анимацию (как сидящий с кружкой кофе профессор в самом начале), то оставьте поля Name и Action animation пустыми.

Search Raduis - если в поле Target Monster задан класс монстра, то монстр будет выбираться внутри радиуса, задаваемом в этом поле. Также это применяется для создания ученых и барней, который надо подвести к кнопке или сканнеру, чтобы они их активировали - поле Name оставляется пустым, в поле Target Monster указывается класс монстра (ученый или барни), здесь указывается радиус, и устанавливается некое значение поля Repeat Rate ms (например, 10).

Repeat Rate ms - поиск монстра в радиусе, задаваемом выше, производится с указываемой в этом поле частотой в милисекундах.

Move to position - опередляет способ передвижения монстра на пути к позиции.
- No - монстр не пойдет к scripted_sequence, а выполнит анимацию там, где стоит.
- Walk - подойдет, и затем выполнит анимацию.
- Run - подбежит, и выполнит анимацию.
- Instantaneous - он телепортируется в место scripted_sequence и выполнит анимацию (это хорошая альтернатива монстермейкеру, если монстры должны иметь какие-то настройки, типа имени и т.д.).
- No, Turn o Face - то же, что и No, правда перед анимацией он повернется в направлении, указываемом в angle.


Теперь её флаги:

Repeatable - поставьте, если скрипт нужно активировать много раз (например, ходящие ученые между компами в начале игры)

Leave corpse - если в конце анимации монстр умирает (например, падение), то с этим флагом труп не исчезнет.

No interruptions - если в момент проигрывания скрипта игрок попытается повести монстра за собой или выстрелить в него, то скрипт не прервется.

Override AI - обычно скрипты игнорируются, если монстр в состоянии боя. Но этот флаг заставляет монстра выполнить скрипт независимо от того, чем тот занимается.

No script move - после проигрывания анимации монстр сместится обратно туда, где он был в ее начале.


Чтобы задать анимацию, вам необходимо знать ее имя. Для этого возьмите PakExplorer и из pak0.pak/models извлеките нужную вам модель. Просматривается она с помощью Model Viewer. Внимание - некоторые модели, например, ученые или барни, состоят из нескольких mdl-файлов (barney.mdl, barney01.mdl, barneyt.mdl), если вы не извлекете их все, то при открытии главного файла Model Viewer'ом возникнет ошибка.
Примечание: с определенных пор Model Viewer научился открывать модели прямо из pak-файлов.


Есть одна небольшая хитрость - если есть две scripted_sequence с одинаковыми именами, и действующие на разных монстров, то поведение монстров будет синхронизировано следующим образом - тот из монстров, кто раньше подошел к своей scripted_sequence, не будет сразу выполнять анимацию, а подождет, пока другой тоже не достигнет своей точки, и потом они вместе выполнят свои анимации. Пример этого можно увидеть прямо перед реактором, когда ученые одновременно включают сканнеры. Если один из монстров прервал выполнение скрипта, то и другой прервет тоже.


Отдельный вопрос, имеющий косвенное отношение к скриптам - сидящие в креслах ученые. Для этого используется энтитя monster_sitting_scientist. Теоретически, располагать ее можно на любой высоте от сиденья (желательно где-то на высоте около ста пикселей), она все-равно опустится до нужного уровня, главное проследите, чтобы под ней и на некотором расстоянии от нее (~4 пикс.) было только седалище, а не ручки или спинка, иначе игра неправильно определит высоту и ученый окажется либо слишком высоко, либо слишком низко.


При передвижении монстра в нужную точку он всегда пытается использовать сетку из нодов, даже если движение вызвано скриптом. Ноды - это своеобразные вейпоинты, наподобие тех, по которым бегают боты в мультиплеере. Ставить их довольно просто - выбираете энтитю info_node и кидаете.
Высота над полом может быть любая, игра их все-равно опустит их до его уровня самостоятельно. Параметров никаких не нужно, игра, опять же, сама просчитает, какой нод из какого виден (появится надпись при загрузке карты - "Node graph is out of date. Rebuilding...") и сохранит в папочку nodes. Ставьте их в основном на перекрестках и углах. Не делайте расстояние между ними слишком большим и не наваливайте их в кучу. Около дверей ставьте под два нода - с одной стороны, и с другой. Если будет проблема с лестницами, то сделйте ступеньки пониже (8-12 пикс.) и на каждой поставьте по ноду, хотя это не всегда обязательно.


scripted_sentence

Местоположение энтити не имеет значения. Настраивается схожим образом с предыдущей.

Name - имя для активации.

Target - имя энтити, которая сработает после завершения фразы. Это часто используют для активации ответной реплики другого монстра.

Sentence Name - имя звукового события, т.е., описание звукового файла для фразы. Важно - в начале надо поставить восклицательный знак и писать имя события заглавными буквами.

Speaker Type - имя монстра, который произносит фразу

Sentence Time - время звучания. Скорее всего, служит показателем, как долго объект будет смотреть на слушающего.

Lishtener Type - имя слушающего монстра, к которому этот, обращаясь с репликой, повернет голову. Как правило, тот тоже повернется, слушая реплику. Если реплика обращена к игроку, то напишите здесь player.

Если слушатель будет слишком далеко, то реплика не прозвучит.


Как и в случае со scripted_sequence, нам надо знать специальное имя звукового события. Это не совсем то же, что и имя wav-файла, а, скорее, их группа. Опять лезем в pak0.pak и в папке sound находим файл sentences.txt, внутренности которого имеют примерно такой вид:

SC_IDLE0 scientist/ipredictedthis
SC_IDLE1 scientist/containfail
SC_IDLE2 scientist/chaostheory

Сначала заглавными буквами идет имя самого звукового события, которое мы подставим в scripted_sentence, а потом, через пробел, список wav-ок без расширения, которые по очереди програются в этом событии. В данном примере их только по одному, но в звуковых событиях десантников вы увидите их массовое использование. Учтите, что для каждого монстра существует своя группа событий - для ученых их имена начинаются на SC, для барни - на BA, для десов - HG, и так далее.
Если вы будете добавлять свои речи, не забудте их также прописать по аналогии в этом файле, который приложите к своему моду.
Вот вроде и все, удачных и интересных вам скриптов!
asssasssin2 вне форума Ответить с цитированием
Старый 06.08.2010, 11:22  #2
yura112
yura112
Старшина
Регистрация: 11.02.2010
Адрес: Львов
Возраст: 25
Сообщения: 403
Замечания: 4


По умолчанию

Спасибо
yura112 вне форума Ответить с цитированием
Старый 06.08.2010, 11:34  #3
Camblu
Camblu
Tech Demo
Регистрация: 03.01.2010
Адрес: Tenebrarum Labs, Lietuvos Respublika
Сообщения: 4,252
Замечания: 16


По умолчанию

Молодца, давно уже искал такой тутор. А то все либо про кс 1.6 либо про HL2
Camblu вне форума Ответить с цитированием
Старый 06.08.2010, 14:45  #4
asssasssin2
asssasssin2
Рядовой
Регистрация: 07.03.2010
Сообщения: 42


По умолчанию

Я тоже искал очень долго нашёл да вот подумал поделиться с людьми.
asssasssin2 вне форума Ответить с цитированием
Старый 11.08.2010, 07:57  #5
GSen
GSen
GoldSource
Регистрация: 07.03.2010
Возраст: 18
Сообщения: 23


По умолчанию

Это кажется 3 статья которую я вижу на этом форуме про одно и тоже
GSen вне форума Ответить с цитированием
Старый 11.08.2010, 10:21  #6
Александр
Александр
хихи
Регистрация: 20.10.2009
Адрес: Санк-Петербург
Сообщения: 1,881
Замечания: 11


По умолчанию

Покажи ещё 2
Александр вне форума Ответить с цитированием
Старый 13.03.2011, 13:43  #7
NarutoUA
NarutoUA
Хокаге
Регистрация: 17.11.2010
Адрес: Ukraine
Возраст: 20
Сообщения: 861
Замечания: 2


По умолчанию

извините что поднимаю древние темы, я делаю под кс 1.6, сам вручную создаю ету ентитю через smartedit, только половину попропускал, что мне не нужно. скомпилил, захожу в игру и меня выкинуло
NarutoUA вне форума Ответить с цитированием
Старый 13.03.2011, 13:56  #8
StProZ^
StProZ^
Генерал-Полковник
Регистрация: 31.03.2009
Возраст: 21
Сообщения: 1,644
Замечания: 7


По умолчанию

2 NarutoUA:
Она для хл1
StProZ^ вне форума Ответить с цитированием
Старый 13.03.2011, 17:59  #9
BennyBlanco
BennyBlanco
Energie
Регистрация: 25.05.2008
Адрес: Sumy
Возраст: 9
Сообщения: 4,899
Замечания: 21


По умолчанию

2 asssasssin2: respeht!
BennyBlanco вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:48.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2017 by CS-Mapping.com.ua Community