Я думаю многие читали книги серии S.T.A.L.K.E.R. и многие читали про этот самый лес. Данная статья посвященна созданию такого леса в игре. Для работы нам понадобятся:
[1] интерпретатор, нужный для работы ACDC
[2] ACDC от bardak'а
[3] скрипт от bardak'а для вывода на экран информации о позиции игрока.
1) Ставим ActivePerl
2) Закидываем ACDC в C:Perl\Bin
3) Создаём в C:Perl\Bin файл Распаковка.txt и вставляем в него текст:
perl.exe acdccop.pl -d all.spawn
pause
4) Создаём в C:Perl\Bin файл Запаковка.txt и вставляем в него текст:
perl.exe acdccop.pl -c all.ltx
pause done
5) Меняем расширение обоих .txt на .bat
6) Кидаем сюда же all.spawn и жмем на распаковку. И видим кучу файлов типа alife_локация.ltx, way_локация.ltx, section2.bin, section4.bin и all.ltx
7) Всё all.spawn распакован оставим его пока что.
Итак, для начала нам нужно создать разнообразные пси-зоны (разнообразные в плане того что что бы попадание ГГ в их поле сопровождалось различными глюками). Откроем gamedata\configs\zones\zone_field_psychic.ltx и добавляем в конец:
[zone_psychic_temno_sinij]:zone_field_psychic
$spawn = "zones\psychic_temno_sinij"
postprocess = postprocess_psi
;----------- Anomaly settings -----------------------
max_start_power = 0.2
[zone_psychic_svetlo_goluboj]:zone_field_psychic
$spawn = "zones\psychic_svetlo_goluboj"
postprocess = postprocess_electra_mine
;----------- Anomaly settings -----------------------
max_start_power = 0.1
[zone_psychic_bleklo_zelenij]:zone_field_psychic
$spawn = "zones\psychic_bleklo_zelenij"
postprocess = postprocess_acidic
;----------- Anomaly settings -----------------------
max_start_power = 0.1
[zone_psychic_jarko_zelenij]:zone_field_psychic
$spawn = "zones\psychic_jarko_zelenij"
postprocess = postprocess_acidic_mine
;----------- Anomaly settings -----------------------
max_start_power = 0.2
[zone_psychic_bleklo_krasnij]:zone_field_psychic
$spawn = "zones\psychic_bleklo_krasnij"
postprocess = postprocess_thermal
;----------- Anomaly settings -----------------------
max_start_power = 0.1
[zone_psychic_jarko_krasnij]:zone_field_psychic
$spawn = "zones\psychic_jarko_krasnij"
postprocess = postprocess_thermal_mine
;----------- Anomaly settings -----------------------
max_start_power = 0.2
[zone_psychic_jarko_krasnij_puls]:zone_field_psychic
$spawn = "zones\psychic_jarko_krasnij_puls"
postprocess = postprocess_gravi_mine
;----------- Anomaly settings -----------------------
max_start_power = 0.3
[zone_psychic_cherno_belij_rjabj]:zone_field_psychic
$spawn = "zones\psychic_cherno_belij_rjabj"
postprocess = mosquito_bald
;----------- Anomaly settings -----------------------
max_start_power = 0.3
[zone_psychic_orange_rjabj]:zone_field_psychic
$spawn = "zones\psychic_orange_rjabj"
postprocess = postprocess_rad
;----------- Anomaly settings -----------------------
max_start_power = 0.3
С созданием зон закончили, разберёмся:
zone_psychic_temno_sinij = Зона будет красить мир вокруг в тёмно синий
zone_psychic_svetlo_goluboj = Зона будет красить мир вокруг в светло голубой
zone_psychic_bleklo_zelenij = Зона будет красить мир вокруг в блекло зеленый
zone_psychic_jarko_zelenij = Зона будет красить мир вокруг в ярко зеленый
zone_psychic_bleklo_krasnij = Зона будет красить мир вокруг в блеклый красный
zone_psychic_jarko_krasnij = Зона будет красить мир вокруг в ярко красный
zone_psychic_jarko_krasnij_puls = Зона будет красить мир вокруг в ярко красный и при этом картинка будет пульсировать
zone_psychic_cherno_belij_rjabj = Зона будет красить мир вокруг в черно-белые цвета и до кучи появится рябь(типо мушки в глазах)
zone_psychic_orange_rjabj = Зона будет красить мир вокруг в грязно оранжевый цвет опять таки с рябью
Вернемся к all.spawn:
Для начала идем по пути C:\Perl\bin и открываем блокнотиком acdccop.pl
Ищем в нем строку:
zone_field_psychic_strong => 'se_zone_anom',
И после неё вписываем:
zone_psychic_temno_sinij => 'se_zone_anom',
zone_psychic_svetlo_goluboj => 'se_zone_anom',
zone_psychic_bleklo_zelenij => 'se_zone_anom',
zone_psychic_jarko_zelenij => 'se_zone_anom',
zone_psychic_bleklo_krasnij => 'se_zone_anom',
zone_psychic_jarko_krasnij => 'se_zone_anom',
zone_psychic_jarko_krasnij_puls => 'se_zone_anom',
zone_psychic_cherno_belij_rjabj => 'se_zone_anom',
zone_psychic_orange_rjabj => 'se_zone_anom',
В ином случае мы не сможем вбудующем запаковать all.spawn
Приступим к созданию леса. Находим место где мы хотим его видеть (меня вполне устроил лесочек за лесопилкой(всё равно он в игре фактически для мебели)) Для того что бы наш лес был действительно мозголомным нам потребуется порядка 50 аномалий с радиусом 10-15 метров. Расположенных приблизительно вот так:
При условии что каждым цветом выделен отдельный тип аномалии.
На практике нам придется при помощи скрипта для отображения позиции снять 50 скриншотов так что бы они совпадали с точками аномалий, после чего создать в alife_zaton.ltx 50 примерно вот таких секций:
[2361]
; cse_abstract properties
section_name = zone_psychic_orange_rjabj
name = les_mozgolom_pole_48
position = -471,21,402
direction = 0,0,0
; cse_alife_object properties
game_vertex_id = 34
distance = 32.2000007629395
level_vertex_id = 88248
object_flags = 0xffffff3e
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 15
; cse_alife_space_restrictor properties
restrictor_type = 3
; cse_alife_custom_zone properties
max_power = 0
; cse_alife_anomalous_zone properties
offline_interactive_radius = 30
artefact_spawn_count = 32
artefact_position_offset = 0x460
; se_zone_anom properties
Собственно:
[2361] УНИКАЛЬНЫЙ номер секции
section_name = это тип создаваемой аномалии тоесть из 50 секций у нас получится около 5-7 каждого типа.
name = les_mozgolom_pole_48 УНИКАЛЬНОЕ имя секции
position = -471,21,402 позиция аномалии (можно вписывать только целые значения координат) Но при этом поднимать высоту 256.154985,14.785658,154.745612 = 256,15,154
game_vertex_id = 34 game vertex или gvid
level_vertex_id = 88248 level vertex или lvid
shape0:radius = 15 радиус зоны
Вписали 50 секций (можно и больше)
Всё собираем all.spawn