Акт перший, основний 😉
Пропоную вам не марнувати часу, просто бігаючи по підключеній локації, а заміряти координати для створення переходу. Координати зніматимемо на 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 рядки в цьому файлі. (Так я ледар ну і що 😉 прим. автора)
Далі в папці з розпакованою геймдатою gamedataconfigstextrus , знаходимо файл st_land_names.xml і кладемо його в папку з грою шлях gamedataconfigstextrus . Відкриваємо скопійований файл і додаємо до нього наступну секцію:
<string id="st_zat_b1000_name"> <text>Пространственный Пузырь</text>
Зберігаємо файл.
Далі чухаємо в папку з розпакованою геймдатою, там в gamedataconfigsmisc знаходимо 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
Все, зберігаємо та запускаємо гру!!!!