Цели урока: 1. Создание перехода на заранее подключенную локацию 2. Визуализация созданного перехода 3. Использование вольных сталкеров с целью перемещения по локации Описание урока: В данном уроке мы создадим переход на заранее подключенную нами локацию, установим на точку перехода аномалию «Пространственный Пузырь», используем вольных сталкеров для быстрого перемещения к нашей аномалии.
Итак, преступим. Свет погас, открывается занавес. Содержание [убрать]
* 1 Акт первый, основной ;-) * 2 Акт второй, Гламурный ;-) * 3 Акт третий, Ленивый * 4 Авторы
[править] Акт первый, основной ;-)
Строго следуя рекомендациям БАТИ-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] 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. Открываем скопированный файл и добавляем в него следующую секцию:
<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
Все, сохраняем и запускаем игру!!!!
|