CoP. Создание полноценных аномальных зон — S.T.A.L.K.E.R. Inside Wiki

CoP. Создание полноценных аномальных зон

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

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

Данная статья посвещена созданию полноценных аномальных зон в ЗП. Расчитана на неопытных мододелов.

Итак начнем, для работы нам понадобятся: распакованный all.spawn, долька фантазии и не очень кривые руки.


РАСПАКОВКА all.spawn:


[1] интерпретатор, нужный для работы ACDC

[2] ACDC от bardak'а

[3] скрипт от bardak'а для вывода на экран информации о позиции игрока.

1) Устанавливаем ActivePerl

2) Закидываем ACDC в любую папку

3) Создаём в файл decompile.txt и вставляем в него текст:

 
perl acdccop.pl -d all.spawn
pause
 

4) Создаём в файл compile.txt и вставляем в него текст:

 
perl acdccop.pl -c all.ltx
pause
 

5) Меняем расширение обоих .txt на .bat

6) Кидаем сюда же all.spawn и жмем на распаковку. И видим кучу файлов типа alife_локация.ltx, way_локация.ltx, section2.bin, section4.bin и all.ltx

7) Всё all.spawn распакован оставим его пока что.


ДОЛЬКА ФАНТАЗИИ:


1) Закидываем скрипт bardak'а в gamedata'у соглашаясь на замену и запускаем игру. На экране должна отобразится информация о позиции игрока на локации.

2) Находим место для нашей аномальной зоны(естественно она состоит из нескольких аномалий). Для примера находим какое нибудь деревце на затоне и делаем 4 скрина (кнопочка F12) с разных сторон (крестом) на расстоянии 5 метров от деревца. Далее 1 скрин возле самого деревца. Выходим из игры.

3) Заходим в (S.T.A.L.K.E.R. - Зов Припяти\users\screenshots) и видим там 5 скринов. Ну с приготовлениями справились =)


НЕ ОЧЕНЬ КРИВЫЕ РУКИ:


1) Открываем alife_zaton.ltx и в самом конце вставляем 4 вот таких секции. (Не забудьте удалить коменты)

 
[9999] ;Уникальный номер секции, для удобства можно именовать последовательно (если последняя секция [1358] то наша должна быть [1359])
 ; cse_abstract properties
 section_name = zone_mine_electric_weak ;Имя секции (Типа чё ставим) Аномалии описаны в gamedata\configs\zones 
 name = test_anomaly ;Уникальное имя секции (УНИКАЛЬНОЕ!!!)Не должно повторяться)
 position = 0,0,0 ;Позиция на локации по X,Y,Z Допустимые варианты заполнения 364.154896,-14.153879,259.145987 или 364,-14,259
 direction = 0,0,0 ;Направление объекта (Для аномалий можно не трогать)
 
 ; cse_alife_object properties
 game_vertex_id = 0 ;игровой вертекс
 distance = 32.0 ;расстояние до ближайшего гв
 level_vertex_id = 0 ;уровневый вертекс
 object_flags = 0xffffff3e ;флаг объекта, не трогать
 
 ; cse_shape properties
 shapes = shape0
 shape0:type = sphere ;Тип shape'а аномалии (в данном случае сфера)
 shape0:offset = 0,0,0
 shape0:radius = 1 ;Радиус сферы
 
 ; cse_alife_space_restrictor properties
 restrictor_type = 3 ;Тип рестриктора
 
 ; cse_alife_custom_zone properties
 max_power = 0 ;Сила аномалии (при 0 используется стандартное из конфига, если меняем то вписываем по образцу 1.0 и т.д.)
 enabled_time = ?7?7?7? ;Включенное состояние(указывать в секундах, если постоянно то 0 или удалить строку)
 disabled_time = ?7?7?7? ;Выключенное состояние(указывать в секундах, если постоянно то 0 или удалить строку)
 start_time_shift = ?7?7?7? ;Задержка включения(без задержки 0, если использованны предъидущие строки то эта строка обязательна!!!)
 
 ; cse_alife_anomalous_zone properties
 offline_interactive_radius = 30 ;(Х.З. Чё значит)
 artefact_spawn_count = 32 ;Чё та про спавн артефактов(Х.З. Чё значит)
 artefact_position_offset = 0x460 ;Чё та про спавн артефактов(Х.З. Чё значит)
 
 ; se_zone_anom properties

2) Заполняем ВСЕ (?7?7?7?). Откуда спросите вы =) позиции и вертиксы со скринов. section_name в данном случае из gamedata\configs\zones. Радиус и временные параметры из головы. Получится что то типа:

[2180]
 ; cse_abstract properties
 section_name = zone_mine_electric_weak
 name = zaton_testing_anomaly_01
 position = -73,-7,575
 direction = 0,0,0
 
 ; cse_alife_object properties
 game_vertex_id = 48
 distance = 32.2000007629395
 level_vertex_id = 795179
 object_flags = 0xffffff3e
 
 ; cse_shape properties
 shapes = shape0
 shape0:type = sphere
 shape0:offset = 0,0,0
 shape0:radius = 3.0
 
 ; cse_alife_space_restrictor properties
 restrictor_type = 3
 
 ; cse_alife_custom_zone properties
 max_power = 10
 enabled_time = 10
 disabled_time = 5
 start_time_shift = 0
 
 ; cse_alife_anomalous_zone properties
 offline_interactive_radius = 30
 artefact_spawn_count = 32
 artefact_position_offset = 0x460
 
 ; se_zone_anom properties

3) Ну естественно у вас должно получится с другими координатами =)

4) И так заполняем все 4 секции каждую с разных позиций вокруг дерева главное не перестараться с радиусом =)

5) В итоге у нас есть 4 электры вокруг дерева. Согласитесь этого мало для полноценной аномалии. А что еще нужно? А нужно нам что бы в аномальной зоне появлялись артефакты, что бы они постепенно перемещались внутри аномальной зоны, да еще и саму зону на карте отметить.


НУ ПРИСТУПИМ К ОЖИВЛЕНИЮ:


1) Создадим секцию

[2204]
 ; cse_abstract properties
 section_name = anomal_zone
 name = zaton_test_anomal_zone
 position = 257.686218261719,19.0880222320557,541.813903808594
 direction = 0,0,0
 
 ; cse_alife_object properties
 game_vertex_id = 292
 distance = 0
 level_vertex_id = 1407607
 object_flags = 0xffffff3e
 custom_data = <<END
 [anomal_zone]
 cfg = scripts\zaton\anomaly\zaton_test_anomal_zone.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

Здесь координаты и вертиксы берем со скрина возле дерева.

2) Создаём в папке gamedata\configs\scripts\zaton\anomaly файл zaton_test_anomal_zone.ltx и вставляем в него:

[anomal_zone]
 layers_count = 1
 respawn_tries = 2
 max_artefacts = 5
 ;applying_force_xz = 200
 applying_force_y = 200 
 artefacts = af_electra_sparkler, af_electra_flash, af_electra_moonlight, af_dummy_battery, af_dummy_dummy, af_ice
 start_artefact = af_electra_moonlight
 coeff = 3, 3, 2, 2, 1, 1
 artefact_ways = zaton_testing_af_way

3) Открываем way_zaton.ltx и в низу вставляем секцию:

[zaton_testing_af_way]
 points = p0,p1,p2,p3
 p0:name = wp00
 p0:position = ?7?7?7?
 p0:game_vertex_id = ?7?7?7?
 p0:level_vertex_id = ?7?7?7?
 p0:links = p1(1)
 
 p1:name = wp01
 p1:position = ?7?7?7?
 p1:game_vertex_id = ?7?7?7?
 p1:level_vertex_id = ?7?7?7?
 p1:links = p2(1)
 
 p2:name = wp02
 p2:position = ?7?7?7?
 p2:game_vertex_id = ?7?7?7?
 p2:level_vertex_id = ?7?7?7?
 p2:links = p3(1)
 
 p2:name = wp02
 p2:position = ?7?7?7?
 p2:game_vertex_id = ?7?7?7?
 p2:level_vertex_id = ?7?7?7?
 p2:links = p0(1)

Здесь позиции и вертиксы ставим из первых 4х скринов(тоесть центры аномалий)

4) Опять открываем alife_zaton.ltx вставляем:

[2205]
 ; cse_abstract properties
 section_name = space_restrictor
 name = zaton_test_anomaly_spot
 position = 257.686218261719,19.0880222320557,541.813903808594
 direction = 0,0,0
 
 ; cse_alife_object properties
 game_vertex_id = 292
 distance = 0
 level_vertex_id = 1407607
 object_flags = 0xffffff3e
 custom_data = <<END
 [story_object]
 story_id = zaton_test_anomaly_spot
 END
 
 ; cse_shape properties
 shapes = shape0
 shape0:type = sphere
 shape0:offset = 0,0,0
 shape0:radius = 1
 
 ; cse_alife_space_restrictor properties
 restrictor_type = 3

С координатами возле деревца.

5)Запаковываем all.spawn запустив Запаковка.bat

6)Полученный all.spawn.new кидаем на место оригинального и переименовываем в all.spawn

7)Идем в gamedata\scripts открываем pda.script и находим строку:

local primary_objects_tbl =

Добавляем по анологии строку:

{target="zaton_test_anomaly_spot",	hint="zaton_test_anomaly_spot_name"},

Получится что то типа

{target="zat_b12_spot",		hint="st_zat_b12_name"},
 	{target="zat_b28_spot",		hint="st_zat_b28_name"},
 	{target="zat_b103_spot",	hint="st_zat_b103_name"},
 	{target="zaton_test_anomaly_spot",	hint="zaton_test_anomaly_spot_name"},
8)Идем в gamedata\configs\text\rus и открываем блокнотиком st_land_names.xml И добавляем новую секцию с
string id = "zaton_test_anomaly_spot_name"
по анологии.

9)Если всё сделано правильно то в игре вас будет ждать новая аномалия =)

Перечень названий-типов аномалий

Ниже приведён список аномалий и их обазначение для all.spawn:

  • zone_field_radioactive_average - очаг радиоактивности
  • zone_mine_electric_weak - электра
  • zone_mine_gravitational_average - воронка

Авторы

Автор: WincentDark69

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