Автор:Александр Левашов aka Freezer при огромной поддержке БАТЯ-STALKER.
Акт первый, основной
Строго следуя рекомендациям БАТИ-STALKER`a создаем переход на нашу локацию(http://stalkerin.gameru.net/wiki/index. … т_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 = < [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 = < [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]
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]
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.
Теперь вспомним о том что мы упоминали некий уникальный скрипт, итак создадим его. В папке с игрой gamedata\configs\scripts\zaton\smart создадим файл zat_b1000.ltx В нем пишем:
[smart_terrain]
squad_id = 32
max_population = 1
[exclusive]
;please leave this for sim - stalkers only
zat_b29_stalker_rival_leader = zaton\zat_b29_stalkers_rivals.ltx
zat_b29_stalker_rival_2 = zaton\zat_b29_stalkers_rivals.ltx
zat_b29_stalker_rival_3 = zaton\zat_b29_stalkers_rivals.ltx
С содержимым файла разбираться времени не было, работает и ладно, оно тупо скопировано из другого подобного файла, так что вот вам еще одно домашнее задание: разберитесь для чего нужны последние 3 строки в этом файле. (да я лентяй ну и что прим. автора)
Далее в папке с распакованной геймдатой gamedata\configs\text\rus находим файл st_land_names.xml и кладем его в папку с игрой путь gamedata\configs\text\rus. Открываем скопированный файл и добавляем в него следующую секцию:
Пространственный Пузырь
Сохраняем файл.
Далее чешем в папку с распакованной геймдатой, там в 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.