CoP. Создание проводников — S.T.A.L.K.E.R. Inside Wiki

CoP. Создание проводников

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Урок по созданию «проводников» и визуализации перехода на заранее подключенную локацию для STALKER Зов Припяти.

Сам тутор и все измененные файлы к нему.

Цели урока: 1. Создание перехода на заранее подключенную локацию 2. Визуализация созданного перехода 3. Использование вольных сталкеров с целью перемещения по локации Описание урока: В данном уроке мы создадим переход на заранее подключенную нами локацию, установим на точку перехода аномалию «Пространственный Пузырь», используем вольных сталкеров для быстрого перемещения к нашей аномалии.

Итак, преступим. Свет погас, открывается занавес.

Акт первый, основной ;-)

Строго следуя рекомендациям БАТИ-STALKER`a создаем переход на нашу локацию(http://stalkerin.gameru.net/wiki/index.php/Подключение_локаций_к_ЧН_и_ЗП_с_помощью_программы_от_AMK_Team). Дальше идут цитаты (немного подправленные) из многим известного туториала вышеуказанного модмейкера ;-)

Цитата: Соединение с остальными уровнями.

Предлагаю вам не терять зря времени, просто бегая по подключенной локации, а замерить координаты для создания перехода. Координаты будем снимать на 2-х локациях: на той с которой будем переходить и на той на которую вы хотите сделать переход соответственно. На каждой локации нам нужно снять по одной координате(координата местоположения самого перехода на первой локации и координата места в которое будет бросать при переходе на подключенную локацию). Как снять координаты, я думаю все знают, поэтому объяснять здесь не буду. (в комплект с данным уроком я поместил архив koord.rar со скриптом для снятия координат, это для тех кому лень искать).

Мы отмерили все необходимые нам координаты.

Затем распаковываем сделанный нами ранее all.spawn. Теперь в нужных нам локациях, в alife_ файлах (для данного примера файл alife_zaton.ltx) добавляем следующую секцию спавна: (примечание от Freezer: в приведенном ниже коде имена и стартовые координаты указаны для уровня Затон, сам переход расположен левой верхней области карты уровня справа от дорожки, а конечные координаты для подключенного уровня Янтарь, ГГ появляется в бункере у Сахарова)

 
[1] 
; cse_abstract properties 
section_name = level_changer 
name = yan_actor_arrive_walk- уникальное имя
position = -278.19274902344,12.461790084839,621.68505859375 - координаты перехода
direction = 0,0,0 
cse_abstract__unk1_h16 = 0x1 
; cse_alife_object properties 
game_vertex_id = 33  – геймвертексы перехода
distance = 0
level_vertex_id = 389502  – левелвертексы перехода
object_flags = 0xffffff3e
; cse_shape properties 
shapes = shape0 
shape0:type = box 
shape0:axis_x = 1.25219917297363,0,0 
shape0:axis_y = 0,3.09340000152588,0 
shape0:axis_z = 0,0,1.25219917297363 
shape0:offset = 0,0,0 
; cse_alife_space_restrictor properties 
restrictor_type = 3 
; cse_alife_level_changer properties 
dest_game_vertex_id = 934 – геймвертексы локи на которую ведет переход
dest_level_vertex_id = 73102 - левелвертексы локи на которую ведет переход
dest_position = 28.876106262207,-11.706871032715,-277.9711303710 - позиция куда кидает
dest_direction = 0,0,0 - поворот гг
dest_level_name = l07_yantar - на какую локу кидает
dest_graph_point = start_actor_01
silent_mode = 1 
; se_level_changer properties
 

Изменяем только те места, которые я прокомментировал, комментарии соответственно, удаляем. Конец цитаты: Итак сам переход мы создали можно собрать all.spawn и проверить работоспособность перехода. Перейдем к следующему этапу.


Акт второй, Гламурный ;-)

Переход то мы собрали, вот только он невидимый, поэтому добавим гламура и поставим на место перехода всем известную аномалию «Пространственный Пузырь» aka шарик-телепортатор. Снова открываем alife_zaton.ltx (ибо переход мы разместили на нем), и добавляем следующую секцию:

 
[2]
; cse_abstract properties
section_name = space_restrictor
name = zat_teleport_sphere_to_yan – уникальное имя секции
position = -278.19274902344,12.461790084839,621.68505859375 – координаты шарика (они точно соответствуют координатам созданного нами ранее перехода)
direction = 0,0,0
 
; cse_alife_object properties
game_vertex_id = 33 –геймвертекс шарика (соответствует геймвертексу перехода)
distance = 0
level_vertex_id = 389502 –левелвертекс шарика (соответствует левелвертексу перехода)
object_flags = 0xffffff3e
custom_data = <<END
[logic]
cfg = scripts\zaton\zat_teleport_sphere.ltx – уникальное имя используемого скрипта
END
 
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.40499997138977
 
; cse_alife_space_restrictor properties
restrictor_type = 3
 

Сохраняем файл (если юзали контрол+цэ контрол+вэ незабываем удалить комменты).

Открываем way_zaton.ltx в него добавляем следующую секцию:

 
[zat_teleport_sphere_to_yan]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -278.19274902344,12.461790084839,621.68505859375
p0:game_vertex_id = 33
p0:level_vertex_id = 389502
 

Думаю, что комменты по координатам не нужны. Обратите внимание на имя секции, оно соответствует уникальному имени в alife файле. Все, пока с alife и way мы закончили, можно собрать all.spawn

Далее необходимо создать скрипт для шарика, имя скрипта мы указали в alife файле. Итак, в папке с игрой в gamedata\configs\scripts\zaton создаем файл zat_teleport_sphere.ltx. В файле пишем:

 
[logic]
active = sr_particle@ zat_teleport_sphere_to_yan – имя активного партикла
 
[sr_particle@ zat_teleport_sphere_to_yan] – собственно начало самого партикла
name = anomaly2\anomaly_spatial_bubble_idle
path = zat_teleport_sphere_to_yan – имя секции в way файле в которой описан шарик
mode = 2
looped = true
 

Сохраняем файл по указанному пути, вспоминаем что юзали cntrl+c, cntr+v, снова открываем файл и удаляем мои комменты ;-)

Если все сделано правильно, то можно запустить игру и насладиться красивейшим явлением, аномалией «Пространственный Пузырь», расположенной в точке нашего перехода.


Акт третий, Ленивый

Итак, переход создан, визуализирован и радует нас своей красотой и функциональностью, но думаю, что за время всех проверок вы уже изрядно стерли кнопки на клаве, бегая по зоне пешком туда-сюда, поэтому, как говорил один известный пендосовский миллионер: «Я так хорошо выгляжу потому, что я никогда на стоял если можно сидеть и никогда не сидел если можно лежать». Ну вот, запустили мы новую игру, давайте пробежим немного прямо. Кто это? Опа, нам на встречу идут пара неписей. Из беседы мы узнаем, что за энную сумму бабла они могут нас отвести хоть на край света, да вот досада эти два осла с автоматами ничерта не знают о нашей прекрасной аномалии «Пространственный Пузырь». За чем же встало дело? Давайте просветим невежд, и в будущем будем на законных основаниях пользоваться их услугами. Преступим. Для начала снова замерим координаты на местности куда нас приведут npc (я снял координаты на пару метров левее самой аномалии). Далее в файле alife_zaton.ltx добавим следующую секцию:

 
[3]
; cse_abstract properties
section_name = smart_terrain
name = zat_b1000 – уникальное имя смарт террана на который нас приведут неписи
position = -317.98794555664,19.28000831604,608.48858642578 –координаты конечной точки на которую нас приведут неписи
direction = 0,0,0
 
; cse_alife_object properties
game_vertex_id = 212
distance = 0
level_vertex_id = 314120
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
cfg = scripts\zaton\smart\zat_b1000.ltx – уникальное имя используемого скрипта
END
 
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 2
 
; cse_alife_space_restrictor properties
restrictor_type = 3
 
; se_smart_terrain properties

Сохраняем файл.

Открываем way_zaton.ltx Добавляем следующие секции:

В данной секции пишем координаты куда нас должны привести

[zat_b1000_traveller_actor] ;Это координаты по которых после телепорта будет спаунится ГГ, пишутся они так [Имя_смарта_traveller_actor]
points = p0
p0:name = wp00
p0:position = -317.98794555664,19.28000831604,608.48858642578
p0:game_vertex_id = 212
p0:level_vertex_id = 314120
 


Все секции, приведенные ниже это - вейпойнты для сопровождающих неписей, они нужны иначе никто никуда не идет, а все стоят и тупо гонят друг на друга, примерно так:

ГГ: Я ж тебе сволочь денег дал, пошли!!!

Непись: Да чет лениво мне как-то… ГГ: Тогда бабло верни!!!! Непись: Какое такое бабло? В это время движок уже отключил аи и управление, и как результат, ГГ кипит от злости за то, что его банально кинули на бабки, но даже в рожу неписю дать не может, а тот, скотина, стоит и ухмыляется. Вот такую картину я лицезрел пока не добавил нижеприведенные секции. Координаты в них я не менял, а секции банально скопировал из другого места, поэтому я иду к аномалии «Пространственный Пузырь», а сопровождающие неписи "идут лесом", то есть к аномалии коготь (для желающих лицезреть проводников рядом с собой в конечной точке прибытия, небольшое домашнее задание по доработке координат в нижеприведенных секциях)

 
[zat_b1000_traveller_squad] ; Это координаты по которых после телепорта будут спаунится НПС, пишутся они [имя_смарта_traveller_squad]
points = p0,p1
p0:name = wp00
p0:position = -24.9449501037598,1.29261004924774,-196.022598266602
p0:game_vertex_id = 56
p0:level_vertex_id = 895313
p0:links = p1(1)
 
p1:name = wp01
p1:position = -26.4207763671875,1.04062795639038,-194.030059814453
p1:game_vertex_id = 56
p1:level_vertex_id = 892596
 
;;; Ниже Приведени не совсем нужные вейпоинты, это уже работа для НПС на самом смарте. Если у вас на смарте уже есть работа, то эти секции ниже не нужны. 
;;; В принципе если даже работ на смарте нет, то работать будет, НПС в ужасе разбегутся на пару метров и будут тупо по тупому сидеть =).
 
[zat_b1000_walker_1_look]
points = p0
p0:name = wp00|a=sit_ass
p0:flags = 0x1
p0:position = -35.1018524169922,0.350845992565155,-193.619186401367
p0:game_vertex_id = 56
p0:level_vertex_id = 876236
 
 
[zat_b1000_walker_1_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -33.450439453125,0.419611006975174,-192.414947509766
p0:game_vertex_id = 56
p0:level_vertex_id = 879043
 
 
[zat_b1000_walker_2_look]
points = p0
p0:name = wp00|a=sit
p0:flags = 0x1
p0:position = -35.8835983276367,0.317862987518311,-193.98469543457
p0:game_vertex_id = 56
p0:level_vertex_id = 874818
 
 
[zat_b1000_walker_2_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -35.9317092895508,0.310889005661011,-191.664642333984
p0:game_vertex_id = 56
p0:level_vertex_id = 874821
 
 
[zat_b1000_walker_3_look]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -35.1221542358398,0.349720001220703,-193.500946044922
p0:game_vertex_id = 56
p0:level_vertex_id = 876237
 
 
[zat_b1000_walker_3_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -33.0930519104004,0.432388007640839,-191.15592956543
p0:game_vertex_id = 56
p0:level_vertex_id = 880435
 

Сохраняем файл. ЗЫ: удалите мои Коментарии при сборке all.spawn! Можно собирать all.spawn.

Теперь вспомним о том что мы упоминали некий уникальный скрипт, итак создадим его. В папке с игрой gamedata\configs\scripts\zaton\smart создадим файл zat_b1000.ltx В нем пишем:

 
[smart_terrain]
squad_id = 32
max_population = 1
 
[exclusive]
;;; Секции которые здесь были я удалил потому-что это вообще эксклюзивные работы НПС в смарте, и они здесь не нужны(именно те которые были тут).
 


С содержимым файла разбираться времени не было, работает и ладно, оно тупо скопировано из другого подобного файла, так что вот вам еще одно домашнее задание: разберитесь для чего нужны последние 3 строки в этом файле. (да я лентяй ну и что ;-) прим. автора)


Далее в папке с распакованной геймдатой gamedata\configs\text\rus, находим файл st_land_names.xml и кладем его в папку с игрой путь gamedata\configs\text\rus. Открываем скопированный файл и добавляем в него следующую секцию:

 
<string id="st_zat_b1000_name">
		<text>Пространственный Пузырь</text>
 

Сохраняем файл.

Далее чешем в папку с распакованной геймдатой, там в gamedata\configs\misc\ находим travel_manager.ltx и по аналогии с предыдущим файлом копируем его в папку с игрой. Открываем travel_manager.ltx Находим секции: «идентификатор st_<комьюнити>_zaton_smart_name_1» Пишем туда:

zat_b1000 = st_stalker_zat_b1000

Далее ниже находим:

[traveler]		; Перечень точек, куда проводники могут отвести за бабосы.
zat_stalker_base_smart ; name смарта

и пишем туда:

zat_b1000

Ну и в конце:

[zat_b1000]
level = zaton
name = st_zat_b1000_name
condlist = true

Все, сохраняем и запускаем игру!!!!


Авторы

Ну вот, мы снова начали новую игру, давайте снова подойдем к известным нам ранее неписям и узнаем куда же они смогут нас отвести. О ЧУДО!!!! НЕПИСИ ЗНАЮТ О АНОМАЛИИ «Пространственный Пузырь»!!!!

Прогуляемся? ;-)

Конец третьего акта. Занавес. Бурные аплодисменты. Благодарности и цветы для: Freezer и БАТЯ-STALKER

Успехов вам в написании собственных «сказок»!!!!

Авторы и ©: Александр Левашов aka Freezer при огромной поддержке БАТЯ-STALKER. Mesnik - подредактировал, прокоментировал некоторые аспекты и поудалял не нужные секции.

Зы: для лентяев (таких как я) прилагаю все описанные выше файлы скриптов. Зы Зы: все вопросы и предложения на Freezer_s@mail.ru с темой «модострой».

Другие места
LANGUAGE