Создание WayPoint — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(не показаны 10 промежуточные версии 7 участников) | |||
Строка 11: | Строка 11: | ||
Открываете way_название локации и прописываете текст, подобный этому: | Открываете way_название локации и прописываете текст, подобный этому: | ||
− | [name_weypoint] | + | <ini>[name_weypoint] |
points = p0 | points = p0 | ||
p0:name = wp00 | p0:name = wp00 | ||
Строка 17: | Строка 17: | ||
p0:game_vertex_id = 696 | p0:game_vertex_id = 696 | ||
p0:level_vertex_id = 415469 | p0:level_vertex_id = 415469 | ||
+ | </ini> | ||
А теперь, подробнее | А теперь, подробнее | ||
− | [name_weypoint] - название | + | <ini>[name_weypoint] - название пути |
− | points = p0 - список точек | + | points = p0 - список точек пути, через запятую (например points = p0,p1,p2 и т.д.) |
− | po:name = wp00 название первой точки | + | po:name = wp00 название первой точки пути. |
− | p0:position - позиции точки | + | p0:position - позиции точки пути. |
p0:game_vertix_id - вертиксы локации | p0:game_vertix_id - вертиксы локации | ||
− | p0:level_vertex_id | + | p0:level_vertex_id</ini> |
− | |||
== Вейпоинт с несколькими точками == | == Вейпоинт с несколькими точками == | ||
− | [name_wp] | + | <ini>[name_wp] |
points = p0,p1,p2,p3 | points = p0,p1,p2,p3 | ||
p0:name = wp00 | p0:name = wp00 | ||
Строка 55: | Строка 55: | ||
p3:position = 161.710388183594,-0.50619900226593,-269.339660644531 | p3:position = 161.710388183594,-0.50619900226593,-269.339660644531 | ||
p3:game_vertex_id = 855 | p3:game_vertex_id = 855 | ||
− | p3:level_vertex_id = 390503 | + | p3:level_vertex_id = 390503</ini> |
− | Здесь видно, что в первой точке прописаны все | + | Здесь видно, что в первой точке прописаны все 4 точки. |
points = p0,p1,p2,p3 | points = p0,p1,p2,p3 | ||
+ | === Небольшое дополнение от ColR_iT касательно приведенного пример === | ||
+ | p0:links = p1(1),p3(1) | ||
+ | |||
+ | В этом случае, НПС будучи в точке p0 случайным образом выберет одну из предложенных p1 либо p3. | ||
+ | Таким образом, в примере выше, НПС в первой точке выберет следующую точку следования, если выберет p1, то далее перейдет в точку p2 и остановится, если p3 - перейдет в нее и так же остановится*. | ||
+ | |||
+ | ''*В моих экспериментах, при выборе НПС точки, которая является "конечной", т.е. той в которой нет перехода на следующую (p3 в примере выше) у меня происходил вылет. Во избежании этого пришлось добавлять еще одну не подалёку на пути следования.'' | ||
== Пропишем путь нашему сталкеру == | == Пропишем путь нашему сталкеру == | ||
− | Теперь, чтобы по нашему пути ходил дядька нужно прописать ему этот путь. К кастом дате укажите файл до логики (не буду | + | Теперь, чтобы по нашему пути ходил дядька нужно прописать ему этот путь. К кастом дате укажите файл до логики (не буду описывать, как это делается) |
− | [logic] | + | <ini>[logic] |
active = walker | active = walker | ||
[walker] | [walker] | ||
path_walk = name_wp | path_walk = name_wp | ||
− | path_look = name_wp | + | path_look = name_wp</ini> |
Думаю, что я понятно объяснил :) | Думаю, что я понятно объяснил :) | ||
− | + | Что же, дополню и я | |
− | < | + | <ini>[esc_gen_lager_walker_1] |
points = p0,p1 | points = p0,p1 | ||
p0:name = name00 | p0:name = name00 | ||
Строка 90: | Строка 97: | ||
p1:level_vertex_id = 219640 | p1:level_vertex_id = 219640 | ||
p1:links = p0(1) | p1:links = p0(1) | ||
− | </ | + | </ini> |
Строка 104: | Строка 111: | ||
Для нпс к примеру | Для нпс к примеру | ||
− | < | + | <ini>[esc_gen_lager_walker_1] |
points = p0,p1 | points = p0,p1 | ||
p0:name = wp00<u>|a=binocular</u> | p0:name = wp00<u>|a=binocular</u> | ||
Строка 119: | Строка 126: | ||
p1:level_vertex_id = 219640 | p1:level_vertex_id = 219640 | ||
p1:links = p0(1) | p1:links = p0(1) | ||
− | </ | + | </ini> |
Отыгрывается анимация сначала смотрит в бинокль, потом атака. Если правильно привязать к точкам обзорного пути - получится красиво | Отыгрывается анимация сначала смотрит в бинокль, потом атака. Если правильно привязать к точкам обзорного пути - получится красиво | ||
Строка 127: | Строка 134: | ||
<big>Касательно вертолётов</big></center> | <big>Касательно вертолётов</big></center> | ||
− | Расскажу фишку. Если в логике вертолётов использую путь move и look, плюс с | + | Расскажу фишку. Если в логике вертолётов использую путь move и look, плюс с помощью флагов прицепить move к каждой точке look. Можно ставить на wp дополнительный параметр, стрелять. Параметр называется |e |
Можно сделать сценку, как будто вертолёт зачищает местность. Подробнее о ключах для вертолёта | Можно сделать сценку, как будто вертолёт зачищает местность. Подробнее о ключах для вертолёта | ||
Строка 136: | Строка 143: | ||
Всем спасибо все свободны | Всем спасибо все свободны | ||
− | + | === Дополнение от Re]Spawner === | |
+ | Andrey K aka forest | ||
+ | Спасибо вам огромное. Я немножко разъясню для начинающих, что за кастом дата и куда что вставлять. | ||
+ | Допустим, у вас есть НПС, его профиль и тому подобное. Естественно, вы хотите, чтобы он пошел по вашему пути. Тогда открываете spawn_sections.ltx, в него пишите следующий текст: | ||
+ | <ini>[esc_respawner_test_wp]:stalker_trader | ||
+ | character_profile = esc_respawner_test_wp | ||
+ | spec_rank = veteran | ||
+ | community = bandit | ||
+ | use_single_item_rule = off | ||
+ | can_select_items = off | ||
+ | custom_data = scripts\esc_respawner_test_wp.ltx | ||
+ | </ini> | ||
+ | |||
+ | Где <pre>[esc_respawner_test_wp]:stalker_trader</pre> - название профиля (точно не помню) | ||
+ | <pre>character_profile = esc_respawner_test_wp</pre> - вот это уже точно название профиля | ||
+ | <pre>custom_data = scripts\esc_respawner_test_wp.ltx</pre> -ссылка на файл логики, куда надо вбивать следующий текст: | ||
+ | <ini> | ||
+ | [logic] | ||
+ | active = walker | ||
+ | [walker] | ||
+ | path_walk = name_wp | ||
+ | path_look = name_wp | ||
+ | </ini> | ||
+ | |||
+ | Это все! Так просто ;) | ||
+ | |||
+ | Автор Andrey K aka forest, Дополнил: <big>Re]Spawner</big> | ||
+ | |||
+ | [[Категория:SDK]][[Категория:SDK CS]] |
Текущая версия на 17:53, 30 ноября 2016
Создадим вейппоинт. Не буду говорить все точно, скажу для новичков :)
Содержание
Что такое вейпоинт
WayPoint(он же вейпоинт, ВП,WP) - путь передвижения для отдельного сталкера, состоит из точек путей. Чтобы создать ВП, нужно расстыковать all.spawn(не буду описывать, как это делать).
Создаем вейпоинт, с одной точкой
Открываете way_название локации и прописываете текст, подобный этому:
[name_weypoint] points = p0 p0:name = wp00 p0:position = 185.667572021484,-0.436268001794815,-260.062866210938 p0:game_vertex_id = 696 p0:level_vertex_id = 415469
А теперь, подробнее
[name_weypoint] - название пути points = p0 - список точек пути, через запятую (например points = p0,p1,p2 и т.д.) po:name = wp00 название первой точки пути. p0:position - позиции точки пути. p0:game_vertix_id - вертиксы локации p0:level_vertex_id
Вейпоинт с несколькими точками
[name_wp] points = p0,p1,p2,p3 p0:name = wp00 p0:flags = 0x1 p0:position = 163.527374267578,-0.432826995849609,-266.167022705078 p0:game_vertex_id = 854 p0:level_vertex_id = 392698 p0:links = p1(1),p3(1) p1:name = wp01 p1:flags = 0x2 p1:position = 176.939651489258,-0.50609302520752,-264.630889892578 p1:game_vertex_id = 696 p1:level_vertex_id = 406938 p1:links = p2(1) p2:name = wp02 p2:flags = 0x2 p2:position = 179.156524658203,-0.430828988552094,-266.572570800781 p2:game_vertex_id = 696 p2:level_vertex_id = 409212 p3:name = wp03 p3:flags = 0x1 p3:position = 161.710388183594,-0.50619900226593,-269.339660644531 p3:game_vertex_id = 855 p3:level_vertex_id = 390503
Здесь видно, что в первой точке прописаны все 4 точки.
points = p0,p1,p2,p3
Небольшое дополнение от ColR_iT касательно приведенного пример
p0:links = p1(1),p3(1)
В этом случае, НПС будучи в точке p0 случайным образом выберет одну из предложенных p1 либо p3. Таким образом, в примере выше, НПС в первой точке выберет следующую точку следования, если выберет p1, то далее перейдет в точку p2 и остановится, если p3 - перейдет в нее и так же остановится*.
*В моих экспериментах, при выборе НПС точки, которая является "конечной", т.е. той в которой нет перехода на следующую (p3 в примере выше) у меня происходил вылет. Во избежании этого пришлось добавлять еще одну не подалёку на пути следования.
Пропишем путь нашему сталкеру
Теперь, чтобы по нашему пути ходил дядька нужно прописать ему этот путь. К кастом дате укажите файл до логики (не буду описывать, как это делается)
[logic] active = walker [walker] path_walk = name_wp path_look = name_wp
Думаю, что я понятно объяснил :)
Что же, дополню и я
[esc_gen_lager_walker_1] points = p0,p1 p0:name = name00 p0:flags = 0x400 p0:position = -62.564220428467,-9.9675645828247,-56.229484558105 p0:game_vertex_id = 77 p0:level_vertex_id = 213868 p0:links = p1(1) p1:name = name01 p1:flags = 0x800 p1:position = -58.430591583252,-9.94411277771,-47.951900482178 p1:game_vertex_id = 77 p1:level_vertex_id = 219640 p1:links = p0(1)
Скажем, такой путь можно использовать для look и walk
p0:flags = 0x400 ОБРАТИМ ВНИМАНИЯ!
p0:flags = 0x800
Два этих параметра служат как связь. Если в первом поинте walk стоит флаг 0x400, а в поинте look тоже стоит 0x400, когда НПС\МУТАНТ находится на этой точке, его взгляд направлен согласно флагу
Возможно задача дополнительных ключей-параметров
Для нпс к примеру
[esc_gen_lager_walker_1] points = p0,p1 p0:name = wp00<u>|a=binocular</u> p0:flags = 0x400 p0:position = -62.564220428467,-9.9675645828247,-56.229484558105 p0:game_vertex_id = 77 p0:level_vertex_id = 213868 p0:links = p1(1) p1:name = wp01 p1:flags = 0x800|<u>a=assault</u> p1:position = -58.430591583252,-9.94411277771,-47.951900482178 p1:game_vertex_id = 77 p1:level_vertex_id = 219640 p1:links = p0(1)
Отыгрывается анимация сначала смотрит в бинокль, потом атака. Если правильно привязать к точкам обзорного пути - получится красиво
Имена анимаций брать отсюда state_mgr_animation_list.script
Расскажу фишку. Если в логике вертолётов использую путь move и look, плюс с помощью флагов прицепить move к каждой точке look. Можно ставить на wp дополнительный параметр, стрелять. Параметр называется |e Можно сделать сценку, как будто вертолёт зачищает местность. Подробнее о ключах для вертолёта
== См. также ==http://stalkerin.gameru.net/wiki/index.php/%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4#3.12.1._.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_heli_move:
Всем спасибо все свободны
Дополнение от Re]Spawner
Andrey K aka forest Спасибо вам огромное. Я немножко разъясню для начинающих, что за кастом дата и куда что вставлять. Допустим, у вас есть НПС, его профиль и тому подобное. Естественно, вы хотите, чтобы он пошел по вашему пути. Тогда открываете spawn_sections.ltx, в него пишите следующий текст:
[esc_respawner_test_wp]:stalker_trader character_profile = esc_respawner_test_wp spec_rank = veteran community = bandit use_single_item_rule = off can_select_items = off custom_data = scripts\esc_respawner_test_wp.ltxГде
[esc_respawner_test_wp]:stalker_trader- название профиля (точно не помню)
character_profile = esc_respawner_test_wp- вот это уже точно название профиля
custom_data = scripts\esc_respawner_test_wp.ltx-ссылка на файл логики, куда надо вбивать следующий текст:
[logic] active = walker [walker] path_walk = name_wp path_look = name_wp
Это все! Так просто ;)
Автор Andrey K aka forest, Дополнил: Re]Spawner