CoP. Создание полноценных аномальных зон — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
FantomICW (обсуждение | вклад) |
|||
(не показаны 12 промежуточные версии 4 участников) | |||
Строка 7: | Строка 7: | ||
− | http://www.activestate.com/activeperl/ интерпретатор, нужный для работы ACDC | + | [http://www.activestate.com/activeperl/] интерпретатор, нужный для работы ACDC |
− | http://stalkerin.gameru.net/downloads/stutils/acdccop-20091002.7z ACDC от bardak'а | + | [http://stalkerin.gameru.net/downloads/stutils/acdccop-20091002.7z] ACDC от bardak'а |
− | http://narod.ru/disk/16768045000/script_position_cop.rar.html скрипт от bardak'а для вывода на экран информации о позиции игрока. | + | [http://narod.ru/disk/16768045000/script_position_cop.rar.html] скрипт от bardak'а для вывода на экран информации о позиции игрока. |
− | 1) | + | 1) Устанавливаем ActivePerl |
− | 2) Закидываем ACDC в | + | 2) Закидываем ACDC в любую папку |
− | 3) Создаём в | + | 3) Создаём в файл decompile.txt и вставляем в него текст: |
− | + | <dos> | |
− | + | perl acdccop.pl -d all.spawn | |
+ | pause | ||
+ | </dos> | ||
− | 4) Создаём в | + | 4) Создаём в файл compile.txt и вставляем в него текст: |
− | + | <dos> | |
− | + | perl acdccop.pl -c all.ltx | |
+ | pause | ||
+ | </dos> | ||
5) Меняем расширение обоих .txt на .bat | 5) Меняем расширение обоих .txt на .bat | ||
Строка 49: | Строка 53: | ||
1) Открываем alife_zaton.ltx и в самом конце вставляем 4 вот таких секции. (Не забудьте удалить коменты) | 1) Открываем alife_zaton.ltx и в самом конце вставляем 4 вот таких секции. (Не забудьте удалить коменты) | ||
− | + | <ini> | |
+ | [9999] ;Уникальный номер секции, для удобства можно именовать последовательно (если последняя секция [1358] то наша должна быть [1359]) | ||
; cse_abstract properties | ; cse_abstract properties | ||
− | section_name = | + | section_name = zone_mine_electric_weak ;Имя секции (Типа чё ставим) Аномалии описаны в gamedata\configs\zones |
− | name = | + | name = test_anomaly ;Уникальное имя секции (УНИКАЛЬНОЕ!!!)Не должно повторяться) |
− | position = | + | position = 0,0,0 ;Позиция на локации по X,Y,Z Допустимые варианты заполнения 364.154896,-14.153879,259.145987 или 364,-14,259 |
direction = 0,0,0 ;Направление объекта (Для аномалий можно не трогать) | direction = 0,0,0 ;Направление объекта (Для аномалий можно не трогать) | ||
; cse_alife_object properties | ; cse_alife_object properties | ||
− | game_vertex_id = | + | game_vertex_id = 0 ;игровой вертекс |
− | distance = 32. | + | distance = 32.0 ;расстояние до ближайшего гв |
− | level_vertex_id = | + | level_vertex_id = 0 ;уровневый вертекс |
− | object_flags = 0xffffff3e ; | + | object_flags = 0xffffff3e ;флаг объекта, не трогать |
; cse_shape properties | ; cse_shape properties | ||
shapes = shape0 | shapes = shape0 | ||
− | shape0:type = sphere ;Тип аномалии (в данном случае сфера) | + | shape0:type = sphere ;Тип shape'а аномалии (в данном случае сфера) |
shape0:offset = 0,0,0 | shape0:offset = 0,0,0 | ||
− | shape0:radius = | + | shape0:radius = 1 ;Радиус сферы |
; cse_alife_space_restrictor properties | ; cse_alife_space_restrictor properties | ||
− | restrictor_type = 3 ;Тип рестриктора | + | restrictor_type = 3 ;Тип рестриктора |
; cse_alife_custom_zone properties | ; cse_alife_custom_zone properties | ||
Строка 82: | Строка 87: | ||
artefact_position_offset = 0x460 ;Чё та про спавн артефактов(Х.З. Чё значит) | artefact_position_offset = 0x460 ;Чё та про спавн артефактов(Х.З. Чё значит) | ||
− | ; se_zone_anom properties | + | ; se_zone_anom properties</ini> |
2) Заполняем ВСЕ (?7?7?7?). Откуда спросите вы =) позиции и вертиксы со скринов. section_name в данном случае из gamedata\configs\zones. Радиус и временные параметры из головы. Получится что то типа: | 2) Заполняем ВСЕ (?7?7?7?). Откуда спросите вы =) позиции и вертиксы со скринов. section_name в данном случае из gamedata\configs\zones. Радиус и временные параметры из головы. Получится что то типа: | ||
− | + | <ini>[2180] | |
; cse_abstract properties | ; cse_abstract properties | ||
section_name = zone_mine_electric_weak | section_name = zone_mine_electric_weak | ||
Строка 119: | Строка 124: | ||
artefact_position_offset = 0x460 | artefact_position_offset = 0x460 | ||
− | ; se_zone_anom properties | + | ; se_zone_anom properties</ini> |
3) Ну естественно у вас должно получится с другими координатами =) | 3) Ну естественно у вас должно получится с другими координатами =) | ||
Строка 133: | Строка 138: | ||
1) Создадим секцию | 1) Создадим секцию | ||
− | + | <ini>[2204] | |
; cse_abstract properties | ; cse_abstract properties | ||
section_name = anomal_zone | section_name = anomal_zone | ||
Строка 157: | Строка 162: | ||
; cse_alife_space_restrictor properties | ; cse_alife_space_restrictor properties | ||
− | restrictor_type = 3 | + | restrictor_type = 3</ini> |
Здесь координаты и вертиксы берем со скрина возле дерева. | Здесь координаты и вертиксы берем со скрина возле дерева. | ||
Строка 163: | Строка 168: | ||
2) Создаём в папке gamedata\configs\scripts\zaton\anomaly файл zaton_test_anomal_zone.ltx и вставляем в него: | 2) Создаём в папке gamedata\configs\scripts\zaton\anomaly файл zaton_test_anomal_zone.ltx и вставляем в него: | ||
− | + | <ini>[anomal_zone] | |
layers_count = 1 | layers_count = 1 | ||
respawn_tries = 2 | respawn_tries = 2 | ||
Строка 172: | Строка 177: | ||
start_artefact = af_electra_moonlight | start_artefact = af_electra_moonlight | ||
coeff = 3, 3, 2, 2, 1, 1 | coeff = 3, 3, 2, 2, 1, 1 | ||
− | artefact_ways = zaton_testing_af_way | + | artefact_ways = zaton_testing_af_way</ini> |
3) Открываем way_zaton.ltx и в низу вставляем секцию: | 3) Открываем way_zaton.ltx и в низу вставляем секцию: | ||
− | + | <ini>[zaton_testing_af_way] | |
points = p0,p1,p2,p3 | points = p0,p1,p2,p3 | ||
p0:name = wp00 | p0:name = wp00 | ||
Строка 200: | Строка 205: | ||
p2:game_vertex_id = ?7?7?7? | p2:game_vertex_id = ?7?7?7? | ||
p2:level_vertex_id = ?7?7?7? | p2:level_vertex_id = ?7?7?7? | ||
− | p2:links = p0(1) | + | p2:links = p0(1)</ini> |
Здесь позиции и вертиксы ставим из первых 4х скринов(тоесть центры аномалий) | Здесь позиции и вертиксы ставим из первых 4х скринов(тоесть центры аномалий) | ||
Строка 206: | Строка 211: | ||
4) Опять открываем alife_zaton.ltx вставляем: | 4) Опять открываем alife_zaton.ltx вставляем: | ||
− | + | <ini>[2205] | |
; cse_abstract properties | ; cse_abstract properties | ||
section_name = space_restrictor | section_name = space_restrictor | ||
Строка 230: | Строка 235: | ||
; cse_alife_space_restrictor properties | ; cse_alife_space_restrictor properties | ||
− | restrictor_type = 3 | + | restrictor_type = 3</ini> |
С координатами возле деревца. | С координатами возле деревца. | ||
Строка 240: | Строка 245: | ||
7)Идем в gamedata\scripts открываем pda.script и находим строку: | 7)Идем в gamedata\scripts открываем pda.script и находим строку: | ||
− | + | <lua>local primary_objects_tbl = </lua> | |
Добавляем по анологии строку: | Добавляем по анологии строку: | ||
− | + | <lua>{target="zaton_test_anomaly_spot", hint="zaton_test_anomaly_spot_name"},</lua> | |
Получится что то типа | Получится что то типа | ||
− | + | <lua>{target="zat_b12_spot", hint="st_zat_b12_name"}, | |
{target="zat_b28_spot", hint="st_zat_b28_name"}, | {target="zat_b28_spot", hint="st_zat_b28_name"}, | ||
{target="zat_b103_spot", hint="st_zat_b103_name"}, | {target="zat_b103_spot", hint="st_zat_b103_name"}, | ||
− | {target="zaton_test_anomaly_spot", hint="zaton_test_anomaly_spot_name"}, | + | {target="zaton_test_anomaly_spot", hint="zaton_test_anomaly_spot_name"},</lua> |
− | 8)Идем в gamedata\configs\text\rus и открываем блокнотиком st_land_names.xml И добавляем новую секцию с string id="zaton_test_anomaly_spot_name" по анологии. | + | 8)Идем в gamedata\configs\text\rus и открываем блокнотиком st_land_names.xml И добавляем новую секцию с <xml>string id = "zaton_test_anomaly_spot_name"</xml> по анологии. |
9)Если всё сделано правильно то в игре вас будет ждать новая аномалия =) | 9)Если всё сделано правильно то в игре вас будет ждать новая аномалия =) | ||
+ | == Перечень названий-типов аномалий == | ||
+ | |||
+ | Ниже приведён список аномалий и их обазначение для all.spawn: | ||
+ | * zone_field_radioactive_average - очаг радиоактивности | ||
+ | * zone_mine_electric_weak - электра | ||
+ | * zone_mine_gravitational_average - воронка | ||
+ | |||
+ | == Авторы == | ||
− | Автор: WincentDark69 | + | Автор: [[Участник:WincentDark69|WincentDark69]] |
− | [[Категория: | + | [[Категория:Конфигурационные_файлы]] |
Текущая версия на 13:53, 14 сентября 2016
Данная статья посвещена созданию полноценных аномальных зон в ЗП. Расчитана на неопытных мододелов.
Итак начнем, для работы нам понадобятся: распакованный 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