Я думаю багато хто читав книги серії STALKER і багато хто читав про цей ліс. Ця стаття присвячена створенню такого лісу у грі.
Для роботи нам знадобляться:
Інтерпретатор, необхідний роботи ACDC
ACDC від bardak'а
скрипт від 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 , game_vertex_id = 34 - game vertex або gvid level_vertex_id = 88248 - level vertex або lvid shape0: radius = 15 - радіус зони
Вписали 50 секцій (можна і більше)
Зібрали all.spawn
Запускаємо гру =)