1. hmtoggle_plus1Изменяем стартовый набор вещей и денег у ГГ

gamedata\configs\gameplay\character_desc_general.xml

 

Предметы пишутся в самой первой секции Actor

 

 <supplies>

 [spawn] \n

 предмет1 \n

 предмет2 \n

 предмет3 = X \n

 </supplies>

 

Заместо "предмет?" подставляете свое название предмета. Обратите внимание что предмет1 и предмет2 будут в единичном экземпляре, а предмет3 будет в количестве X штук.

 

Посчет денег:

Ниже есть строчка

 

<money min="2500"  max="2500"  infinitive="0"/>

 

Где:

 

min="2500" ------------- минимальное кол-во денег (2500)

max="2500" -------------- максимальное кол-во денег (2500)

infinitive="0" -------------- бесконечные деньги? (1 - да, 0 - нет)

 

P.S. Нужна новая игра

 

2. hmtoggle_plus1Характеристики оружия

параметры оружия хранятся в этой папке: configs\weapons\

 

Наиболее важные параметры:

visual - внешний вид оружия

cost - базовая цена (торговцы умножают её на некоторый коэффициент)

inv_weight - вес

sprint_allowed - возможность спринта с этим оружием

 

ammo_mag_size - размер магазина

ammo_class - типы используемых патронов

grenade_launcher_status - подствольный гранатомет (0 - нет; 1 - есть, несъемный; 2 - есть возможность установить)

grenade_class - тип используемых подствольных гранат

silencer_status - съемный глушитель (0 - нет; 1 - есть, несъемный; 2 - есть возможность установить)

scope_status - съемный прицел (0 - нет; 1 - есть, несъемный; 2 - есть возможность установить)

zoom_enabled - зум (приближение)

scope_zoom_factor - величина зума

scope_texture - текстура прицельной сетки

rpm - скорострельность

hit_power - сила выстрела

fire_distance - максимальная дистанция для выстрела

 

cam_relax_speed - скорость возврата в исходное положение

misfire_condition_k - порог, после которого оружие может заклинивать

condition_shot_dec - увеличение износа при каждом выстреле

fire_modes - режимы стрельбы (-1 - очередью, 1 - одиночный, 2 - с отсечкой по 2 патрона)

 

3. hmtoggle_plus1Как отключить предупреждение о необходимости убрать оружие при подходе к Скадовску и др. базам?

gamedata\sounds\characters_voice\scenario\zaton (файлы Х_Х_base_megaphone_Х, по локациям).

Смотрим путь к нашим нелюбимым файлам - в файлах script_sound_имя локации в папке \configs\misc

В поиск по файлу лучше вводить "megaphone"

 

Например для script_sound_zaton:

 

[zat_a2_base_megaphone]

type = 3d

path = characters_voice\scenario\zaton\zat_a2_base_megaphone_

shuffle = rnd

idle = 10,15,100

 

Надо просто заменить файлы-раздражалки на пустые ogg файлы

 

4. Повышаем вероятность того что из команды сопроводителей по подземелью никто не умрет

 

hmtoggle_plus1Способ №1

Первый способ заключается в замене визуала, а следовательно и их свойств, своей команде, а также можно заменить их оружие.

 

Замена Визуала:

 

Открваем файл: \configs\gameplay\character_desc_underpass.xml

Первые 4 персонажа - наши.

У всех есть строка:

 

<visual> Путь к файлу </visual>

 

Заменяем ее на:

 

<visual>actors\stalker_monolith\stalker_monolith_4</visual>

 

Теперь все 4 персонажа одеты в монолитовский экзоскелет.

 

Замена оружия:

 

В том же файле у каждого персонажа есть секции <supplies>, в них перечислены вещи персонажей, так давайте изменим ихнее оружие.

 

Возьмем Вано, он самый первый.

 

Итак вот его вещи:

 

<supplies>

     [spawn] \n

     device_torch \n

     wpn_binoc \n

     wpn_wincheaster1300_m2 \n

     ammo_12x70_buck \n

     ammo_12x76_zhekan \n

     wpn_beretta_m3 \n

     ammo_9x19_fmj \n

     detector_elite \n

     #include "gameplay\character_food.xml"

     #include "gameplay\character_drugs_4.xml"

             </supplies>

 

Изменим ему основное оружие, снабдим его ПКМ и патронами Дум-Дум

 

<supplies>

     [spawn] \n

     device_torch \n

     wpn_binoc \n

    wpn_pkm \n

     ammo_dumdum \n

     wpn_beretta_m3 \n

     ammo_9x19_fmj \n

     detector_elite \n

     #include "gameplay\character_food.xml"

     #include "gameplay\character_drugs_4.xml"

             </supplies>

 

C другими делать по аналогии.

 

ВАЖНО: Чтобы изменения вступили в силу, надо загрузиться до спуска в подземелья!!!

 

hmtoggle_plus1Способ №2

Второй способ заключается в изменении логики персонажей, мы сделаем их бессмертными.

С логикой посложнее, но ничего сложного нет.

 

Нам нужны 7 файлов, все они находятся в каталоге configs\scripts\underpass\

Это файлы: pas_b400_way.ltx, pas_b400_canalisation.ltx, pas_b400_downstairs.ltx, pas_b400_elevator.ltx, pas_b400_hall.ltx, pas_b400_track.ltx, pas_b400_tunnel.ltx

 

Почему так много файлов? А потому что каждый файл отвечает за определенный промежуток пути в подземке, и чтобы они стали бессмертными надо изменять их все.

 

Итак, приступим. От каждого файла нам понадобятся секции [logic@pas_b400_перс_*].

Наши персы это: vano, zulus, sokolow, wanderer

 

В их секции, после

 

prior = 200

 

добавляете

 

invulnerable = true

 

Чтобы персы были бессмертными - надо загружаться до их спавна, а это значит: загрузиться надо перед подземкой!

 

5. hmtoggle_plus1Изменяем максимальный переносимый вес

Нам понадобятся 2 файла: configs\system.ltx и configs\creatures\actor.ltx

 

Итак, открываем первый файл:

Изменяем там параметр max_weight

 

Второй файл:

Изменяем параметр max_walk_weight

 

6. hmtoggle_plus1Характеристики патронов

Характеристики патронов хранятся в файле: configs\weapons\ammo\w_ammo.ltx

 

Наиболее интересные параметры:

 

visual - внешний вид

cost - стоимость одной коробки

box_size - количество патронов в одной коробке

inv_weight - вес одной коробки

 

k_dist - коэффициент дальности

k_disp - коэффициент кучности

k_hit - коэффициент убойности

impair - коэффициент износа ствола от пули

 

7. hmtoggle_plus1Отображаем на миникарте все отряды сталкеров

Файл: \configs\ui\map_spots_relations.xml

 

Строчки типа:

 

width="7" height="7"

 

Обычно, если хотят скрыть на миникарте кого-то ставят width="0" height="0"

Если я правильно понял вопрос замени нули на семёрки

 

8. hmtoggle_plus1Как добавить метку к заданию

В файле описывающем параметры квеста есть параметр target отвечающий за метку на карте

 

target = id НПС, на которого ставится метка, или target = {название_инфопоршня}, после которого метка будет ставиться на НПС, вроде так.

 

9. hmtoggle_plus1Изменение отношений между группировками

Открываем файл: configs\creatures\game_relations.ltx

 

Там есть таблица, где все группировки перечислены в шапке таблицы и в первом столбике. Выбрав нужную группировку в левом столбике прослеживай выбранную строчку до пересечения со столбиком интересующей группировки. В точке пересечения будет циферка отношений группировок: -5000 враги, 1000 и более друзья, -1000 и менее враги, 0 нейтралы.

вот таблица. выбираем бандитов (2 строчка) ведём пальцем до столбика долга -5000. Не любят долг. Выбираем строчку долг, ведём пальцем до столбика бандитов -5000. Нелюбовь взаимная.

 

[communities_relations]

; |actor|bandit| dolg|ecolog|freedom|killer| army|monolith|monster|stalker| zombied|

;============================================================

actor = 0, 0, 0, 0, 0, -1000, 0, -5000, -5000, 0, -5000

bandit = 0, 5000,-5000, 0, -5000, 0, -5000, -5000, -5000, -1000, -5000

dolg = 0, -5000, 5000, 0, -5000, 0, 0, -5000, -5000, 0, -5000

ecolog = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

freedom = 0, -5000,-5000, 0, 5000, 0, 0, -5000, -5000, 0, -5000

killer = -1000, 0, 0, 0, 0, 1000, -5000, -5000, -5000, 0, -5000

army = 0, -5000, 0, 0, 0, -5000, 1000, -5000, -5000, 0, -5000

monolith = -5000, -5000,-5000, 0, -5000, -5000, -5000, 1000, -5000, -5000, 1000

monster = -5000, -5000,-5000, 0, -5000, -5000, -5000, -5000, 0, -5000, -5000

stalker = 0, -1000, 0, 0, 0, 0, 0, -5000, -5000, 0, -5000

zombied = -5000, -5000,-5000, 0, -5000, -5000, -5000, 1000, -5000, -5000, 1000

 

10. hmtoggle_plus1Что такое инфопоршень?

Инфопоршни - это флаги, которые фиксируют ту или иную игровую ситуацию. Невыполненный квест, варианты диалогов, логика неписей, ограничение в действиях ГГ: всё это определяет комбинация инфопрошней. Да, можно создать глобальные переменные и в них заносить варианты управления событиями игры. Но ведь их надо сохранять в сейвах. А инфопоршни сохраняются прозрачно от скриптера! Плюс гибкая система управления: можно выставить инфопоршень, а можно его сбросить. Так можно многократно использовать один и тот же инфопоршень для однотипных задач.

 

11. hmtoggle_plus1Изменяем положение иконок апгрейда

Пример на FN2000

 

Файлы:

gamedata\configs\ui\inventory_upgrade.xml
gamedata\configs\ui\inventory_upgrade_16.xml

 

К примеру, нам не понравился апгрейд с прицелом ФН2000, делаем скрин веток апгрейда:

 

FAQ_clip0001

 

Открываем файл inventory_upgrade и ищем строчку upgrade_scheme_fn2000

 

<template name="upgrade_scheme_fn2000">

  <column>

           <cell x="0" y="24" point_x="95" point_y="205"/>

           <cell x="0" y="126" point_x="110" point_y="195"/>

           <cell x="0" y="228" point_x="80" point_y="190"/>

           <cell x="0" y="335" point_x="110" point_y="160"/>

       </column>

       <column>

           <cell x="100" y="0" point_x="120" point_y="200"/>

           <cell x="100" y="49" point_x="210" point_y="205"/>

           <cell x="100" y="102" point_x="185" point_y="200"/>

           <cell x="100" y="151" point_x="185" point_y="200"/>

           <cell x="100" y="204" point_x="135" point_y="195"/>

           <cell x="100" y="253" point_x="60" point_y="185"/>

           <cell x="100" y="335" point_x="175" point_y="160"/>

       </column>

       <column>

           <cell x="200" y="0" point_x="95" point_y="185"/>

           <cell x="200" y="49" point_x="250" point_y="205"/>

           <cell x="200" y="102" point_x="125" point_y="190"/>

           <cell x="200" y="151" point_x="125" point_y="190"/>

           <cell x="200" y="204" point_x="160" point_y="200"/>

           <cell x="200" y="253" point_x="145" point_y="170"/>

           <cell x="200" y="310" point_x="145" point_y="170"/>

           <cell x="200" y="360" point_x="110" point_y="160"/>

</column>

</template>

 

Важно!

 

<column>

        <cell x="0" y="24" point_x="95" point_y="205"/>

        <cell x="0" y="126" point_x="110" point_y="195"/>

        <cell x="0" y="228" point_x="80" point_y="190"/>

        <cell x="0" y="335" point_x="110" point_y="160"/>

</column>

 

       <column>

           <cell x="100" y="0" point_x="120" point_y="200"/>

           <cell x="100" y="49" point_x="210" point_y="205"/>

           <cell x="100" y="102" point_x="185" point_y="200"/>

           <cell x="100" y="151" point_x="185" point_y="200"/>

           <cell x="100" y="204" point_x="135" point_y="195"/>

           <cell x="100" y="253" point_x="60" point_y="185"/>

           <cell x="100" y="335" point_x="175" point_y="160"/>

       </column>

 

       <column>

           <cell x="200" y="0" point_x="95" point_y="185"/>

           <cell x="200" y="49" point_x="250" point_y="205"/>

           <cell x="200" y="102" point_x="125" point_y="190"/>

           <cell x="200" y="151" point_x="125" point_y="190"/>

           <cell x="200" y="204" point_x="160" point_y="200"/>

           <cell x="200" y="253" point_x="145" point_y="170"/>

           <cell x="200" y="310" point_x="145" point_y="170"/>

           <cell x="200" y="360" point_x="110" point_y="160"/>

       </column>

 

Итак, в качестве примера, я хотел удалить прицел, сравнимся ещё раз со скрином веток апгрейда ФН2000

 

FAQ_clip0001

 

Всё в порядке

<template name="upgrade_scheme_fn2000">

  <column>

           <cell x="0" y="24" point_x="95" point_y="205"/>

           <cell x="0" y="126" point_x="110" point_y="195"/>

           <cell x="0" y="228" point_x="80" point_y="190"/>

           <cell x="-9999999990" y="335" point_x="110" point_y="160"/>

       </column>

       <column>

           <cell x="100" y="0" point_x="120" point_y="200"/>

           <cell x="100" y="49" point_x="210" point_y="205"/>

           <cell x="100" y="102" point_x="185" point_y="200"/>

           <cell x="100" y="151" point_x="185" point_y="200"/>

           <cell x="100" y="204" point_x="135" point_y="195"/>

           <cell x="100" y="253" point_x="60" point_y="185"/>

           <cell x="-999999999100" y="335" point_x="175" point_y="160"/>

       </column>

       <column>

           <cell x="200" y="0" point_x="95" point_y="185"/>

           <cell x="200" y="49" point_x="250" point_y="205"/>

           <cell x="200" y="102" point_x="125" point_y="190"/>

           <cell x="200" y="151" point_x="125" point_y="190"/>

           <cell x="200" y="204" point_x="160" point_y="200"/>

           <cell x="200" y="253" point_x="145" point_y="170"/>

           <cell x="-999999999200" y="310" point_x="145" point_y="170"/>

           <cell x="-999999999200" y="360" point_x="110" point_y="160"/>

</column>

</template>

 

Что собственно мы сделали? Убрали с глаз долой апгрейд прицела, тоже самое делаем в файле inventory_upgrade_16

 

Ах да, чуть не забыл. Вот скрин получившегося меню апгрейда

 

FAQ_clip0003

 

Собственно всё просто. Начало новой игры не требуется.

 

12. hmtoggle_plus1Как изменить высоту прыжка?

В файле configs\creatures\actor.ltx, параметр jump_speed

 

13. hmtoggle_plus1Где изменить стандартную цену на бронежилеты и апгрейды?

параметр cost в файлах:

configs\misc\outfit.ltx -- бронежилеты

\configs\misc\outfit_upgrades\... -- файлы с апгрейдами

 

14. hmtoggle_plus1Проверить в диалоге наличие предмета у ГГ

используем прекондишены:

 

<рrесоnditiоn>actor_has_item(ПРЕДМЕТ)</рrесоnditiоn> -- на единичный экземпляр

<рrесоnditiоn>actor_has_item_count(ПРЕДМЕТ:ЧИСЛО)</рrесоnditiоn> -- на ЧИСЛО экземпляров

 

15. hmtoggle_plus1Как изменить NPC параметры иммунитета?

Защитные секции в configs\creatures\m_stalker.ltx

Чем меньше значение, тем меньше урон получает перец. Вот Стрелок:

 

[stalker_immunities_strelok]

burn_immunity        = 0.0                        

strike_immunity        = 0.0

shock_immunity = 0.0

wound_immunity = 0.0

radiation_immunity = 0.0

telepatic_immunity = 1.0

chemical_burn_immunity = 0.0

explosion_immunity = 0.0

fire_wound_immunity = 0.0

wound_2_immunity = 0.0

 

В этом же файле каждой группе сталкеров присваивается своя секция иммунитета.

Но есть исключения.Например, когда отряд полез в тоннель на Припять, ему заменили все коэффициенты.

 

16. hmtoggle_plus1Как изменить частоту дождя?

В файлах configs\weathers\...

изменить параметр:

 

rain_density

 

чем выше число, тем больше вероятностья дождя. (значение должно быть до 1.0)

 

17. hmtoggle_plus1Где изменить дистанцию обнаружения ГГ у NPC

configs\creatures\m_stalker.ltx

 

eye_fov - угол зрения

eye_range - дальность зрения

 

смотреть для каждой группы персов

 

18. hmtoggle_plus1Как добавить автозахват и контрастность прицелу?

в секцию прицела добавить строки:

секции прицелов лежат в файле: configs\weapons\addons\w_scopes.ltx

 

scope_alive_detector = scope_detector (это автозахват)

scope_nightvision = scope_contrast (это контрастность)

 

19. hmtoggle_plus1Как изменить костюм для квеста "Поход в Припять"

файл configs\misc\tm_jupiter.ltx

секция [jup_b218_actor_outfit]

строка

 

actor_has_item(scientific_outfit) ---- ГГ должен иметь(костюм)

 

PS: Данный способ не проверен, а у меня есть другой

 

20. hmtoggle_plus1В каком файле лежат координаты кнопок Главного меню?

Файл: \configs\ui\ui_mm_main.xml

 

21. hmtoggle_plus1Как отключить рамки автозахвата в бинокле?

В конфиге бинокля:

vis_frame_speed = 0 ; скорость, с которой наводится рамка на цель

vis_frame_color = 0.0,0.0,0.0,0.0 ; цвет рамки RGBA (A) Не учитывается

found_snd = $no_sound

catch_snd = $no_sound

 

22. hmtoggle_plus1Как убрать счетчик NPC рядом с ГГ?

в файле configs\ui\zone_map.xml

 

       <static_counter x="0.94" y="0.5" width="18" height="17" alignment="c">

           <text_static width="18" height="17">

               <text  align="c" font="graffiti19" color="ui_0"/>

           </text_static>

       </static_counter>

 

23. hmtoggle_plus1Как сделать динамический зум к оружию?

В конфиге оружия добавить (изменить) параметр

 

scope_dynamic_zoom = on

 

24. hmtoggle_plus1В каких файлах можно отрегулировать цены\товары Шустрого?

gamedata\configs\text\rus\st_dialogs_zaton.xml -- Фразы которые он говорит

gamedata\scripts\dialogs_zaton.script -- Функции на проверку\передачу денег

 

25. hmtoggle_plus1Параметры силы броски Болта

force_min        = 10        ;минимальная сила броска

force_const        = 20        ; стандартная сила броска (метры)

force_max        = 20        ; максимальная сила броска (в метрах)

force_grow_speed    = 10        ; скорость набора силы броска (метры в секунду)

 

26. hmtoggle_plus1Как сделать так, чтобы сталкеры ходили по одиночке

В файле : gamedata\configs\misc\squad_descr.ltx покоятся описания квадов, вам нужны исключительно эти строки, в каждой секции сквада.

 

Сталкеры:

npc_in_squad = 1, 1 (количество нпс в скваде)

 

как видите, было "2, 3", ставьте "1, 1" и будут у вас сталкеры-одиночки.

 

Мутанты:

Далее, если хотите увеличить популяцию монстров, в логику смартов лучше не лезть, а сразу записывать здесь 4, 6 и т.д

 

Две цифры 2, 3 означают минимум, максимум, поэтому сначала ставите меньшее, за ним большее.

 

НО: не ставте только одну цифру, и 0, 0 я еще не проверил .

 

Так же можно изменить иконку отображения командира на карте на обычную точку, и вуаля ТЧ, одиночки и все говорят. Но это не касается квестовых, а тех лучше не трогать.

 

Чтобы сквады приобрели новую конфигурацию необходима новая игра!

 

27. hmtoggle_plus1Убираем точки лидеров

1) В файле: gamedata\configs\ui\textures_descr\ui_common.xml правим

<texture id="ui_minimap_squad_leader" x="751" y="816" width="5" height="5" />

 

2) В файле:\gamedata\configs\ui\map_spots.xml (map_spots_16.xml - широкоформатник)

 

ищем строки:

<!-- Отряды -->

 <alife_presentation_squad_friend>

 

Делаем как показано :

 

У друзей точки лидеров будут точками, а не звездочек.

<alife_presentation_squad_friend_spot_mini x="0" y="0" width="5" height="5" alignment="c" stretch="1" location_level="10" scale_min="3.0" scale_max="5.1" scale="0">

   <texture r="0" g="255" b="0">ui_minimap_squad_leader</texture>

 </alife_presentation_squad_friend_spot_mini>

 

У нейтралов также точки + меняем цвет.

<alife_presentation_squad_neutral_spot_mini x="0" y="0" width="5" height="5" alignment="c" stretch="1" location_level="10" scale_min="3.0" scale_max="5.1" scale="0">

   <texture r="255" g="200" b="0">ui_minimap_squad_leader</texture>

 </alife_presentation_squad_neutral_spot_mini>

 

28. hmtoggle_plus1Добавляем новый прицел

Папка: gamedata\configs\ui файл scopes и scopes_16 (редактировать и там, и там)

 

Открываем scopes и добавляем строчки:

 

<wpn_crosshair_PRIMER x="0" y="0" width="1024" height="768">

   <auto_static x="0" y="0" width="1024" height="768" stretch="1">

     <texture>wpn_crosshair_PRIMER</texture>

   </auto_static>

</wpn_crosshair_PRIMER>

 

В файле scopes_16 "почти" тоже самое:

 

<wpn_crosshair_PRIMER x="0" y="0" width="1024" height="768">

   <auto_static x="85" y="0" width="854" height="768" stretch="1">

     <texture>wpn_crosshair_PRIMER</texture>

   </auto_static>

   <auto_static x="0" y="0" width="86" height="768" stretch="1">

     <texture>wpn_crosshair_add_l</texture>

   </auto_static>

   <auto_static x="939" y="0" width="85" height="768" stretch="1">

     <texture>wpn_crosshair_add_r</texture>

   </auto_static>

</wpn_crosshair_PRIMER>

 

Обратите внимание: width="1024" height="768" <- это разрешение экрана, поставьте своё разрешение так, чтобы текстура прицела была круглая. Бывают случаи, что текстура в углу экрана и стрелять теоретически приходится от бедра.

 

Далее открываем файл gamedata\configs\ui\textures_descr\ui_ingame и  добавляем следующее:

 

<file name="wpn\wpn_crosshair_PRIMER">

   <texture id="wpn_crosshair_PRIMER" x="0" y="0" width="1024" height="1024" />

</file>

 

Тут, обратите внимание: width="1024" height="1024" <- разрешение текстуры, не изменять!

 

Добавляем текстуру нового прицела в файл gamedata\textures\wpn\wpn_crosshair_PRIMER.dds

 

В конфиге оружия можно сделать как один прицел:

scope_texture = wpn_crosshair_PRIMER

 

и удалить строчки:

 

"У Калашей, Абакана, Вала, Грозы":

scopes_sect = scope_..., scope_x2.7_..., scope_live_detector_..., scope_night_...

 

[scope_...]

scope_name = wpn_addon_scope

scope_x = 47 ; offset in inventory icon

scope_y = 0

 

[scope_x2.7_...]

scope_name = wpn_addon_scope_x2.7

scope_x = 47 ; offset in inventory icon

scope_y = 0

 

[scope_live_detector_...]

scope_name = wpn_addon_scope_detector

scope_x = 47 ; offset in inventory icon

scope_y = 0

 

[scope_night_...]

scope_name = wpn_addon_scope_night

scope_x = 47 ; offset in inventory icon

scope_y = 0

 

"Для LR300, Отбойника и... кажется всё":

scopes_sect = scope_susat_..., scope_susat_x1.6_..., scope_susat_custom_..., scope_susat_dusk_..., scope_susat_night_...

 

[scope_susat_...]

scope_name = wpn_addon_scope_susat

scope_x = 75

scope_y = -5

 

[scope_susat_x1.6_...]

scope_name = wpn_addon_scope_susat_x1.6

scope_x = 75

scope_y = -5

 

[scope_susat_custom_...]

scope_name = wpn_addon_scope_susat_custom

scope_x = 75

scope_y = -5

 

[scope_susat_dusk_...]

scope_name = wpn_addon_scope_susat_dusk

scope_x = 75

scope_y = -5

 

[scope_susat_night_...]

scope_name = wpn_addon_scope_susat_night

scope_x = 75

scope_y = -5

 

29. hmtoggle_plus1Как убрать у телепорта визуальные и звуковые эффекты?

Вычистить в файле configs\zonez\zone_teleport.ltx все партиклы и саунды

 

30. hmtoggle_plus1Создание рандомных приветствий

Описываем секции приветствий в файле gamedata\configs\misc\script_sound_zaton.ltx

 

[list_script_sound_zaton]

;------------------------

zat_privet_man_greeting

zat_privet_man_farewell

;--------ниже добавим секции--------

[zat_privet_man_greeting]

type = npc

path = scenario\zaton\zat_privet_man_greeting_ ;---где находятся зв.файлы

shuffle = rnd

idle = 0,0,100

 

[zat_privet_man_farewell]

type = npc

path = scenario\zaton\zat_privet_man_farewell_

shuffle = rnd

idle = 1,1,100

 

В папку gamedata\sounds\characters_voice\scenario\zaton\ поместить звуковые файлы zat_privet_man_greeting_1, zat_privet_man_greeting_2 (3 - сколько хочешь)

zat_privet_man_farewell_1 (2 -...)

 

31. hmtoggle_plus1Создание еды

Редактируемые файлы:

configs\misc\items.ltx - описание и настройка секции предмета

dynamics\devices\dev_имяпредмета\dev_имяпредмета.ogf - модель предмета, путь прописан в описании секции в строке visual

textures\папка\имяпредмета.dds - текстура, путь прописан в модели

textures\ui\ui_icon_equipment.dds - иконка в инвентаре, размеры и местонахождение в описании секции строки inv_grid_xxx

configs\text\rus\st_items_equipment.xml - описание предмета и название, сцылки в описании секции строки description,inv_name,inv_name_short

 

 

1. dynamics\devices\dev_имяпредмета\dev_имяпредмета.ogf

Модель скопировать и переименовать. Например, возьмем консерву и назовем ее yad.ogf

Открываем yad.ogf hex-редактором и ищем там строку models\model

Строка перед ней - путь к текстуре, в модели консервы указан общий файл для еды item\item_food

Переименовываем эту строку в item\item_yad_, сохраняем изменения

 

2. textures\папка\имяпредмета.dds

Теперь берем из ресурсов игры файл item_food.dds и переименовываем в item_yad_.dds

Изменяем текстуру и сохраняем

 

3. configs\text\rus\st_items_equipment.xml

Открываем файл, в самом начале (после строки string_table) вставляем свои описания, примерно так (без моих комментариев):

<string id="st_yad"> <!--заголовок описания, в кавычках пишите что угодно, но потом это нужно будет указать в items.ltx в строке inv_name именно этот id -->

<text>Яд</text>

</string>

<string id="st_yiad_descr"> <!-- само описание предмета, указать в items.ltx в строке decription -->

<text>Яд обычный, производство ООО "Душегуб". Состав неизвестен, но что-то шибко гадкое. Противопоказний нет. Срок годности не ограничен.</text>

</string>

 

4. textures\ui\ui_icon_equipment.ddsЮ

Открываете файл, настраивате сетку, ищете пустое место, рисуете там свою иконку, запоминаете положение в сетке, сохраняете файл

 

5. Теперь собираем все в кучу

открываем configs\misc\items.ltx

находим нужную секцию - [conserva]:booster

выделяем ее полностью и копируем ниже

переименовываем новую секцию в [yad]:booster

подставляем:

 

visual - имя нашего файла модели

description - id описания предмета из st_items_equipment.xml

 

inv_name - id заголовка описания из st_items_equipment.xml

inv_name_short - id заголовка описания из st_items_equipment.xml

 

inv_grid_x - положение иконки в файле textures\ui\ui_icon_equipment.dds

inv_grid_y - положение иконки в файле textures\ui\ui_icon_equipment.dds

 

потом настраиваем параметры по вкусу, вот мой яд

boost_time = 0.0 время действия в секундах, только для boost-параметров (хотя не проверял, но логично)

eat_satiety = 0 насыщение

eat_power = -3 влияние на актора

 

и при желании меняем use_sound - звук при использовании предмета

сохраняем файл

 

6. напоследок грузим через configs\gameplay\character_desc_general.xml новенькие консервы в инвентарь актору

...

yad = 5 \n

...

 

запускаем игру, кормим актора ядом и убеждаемся что он теряет силы при этом.

 

p.s. игра пользует одну текстуру на всю консерву, по этому с одной стороны надписи будут зеркальными; в принципе, надписи лучше вообще не делать

 

32. hmtoggle_plus1Как отключить интро ролики

В файле gamedata\configs\ui\game_tutorials.xml

Найди там секции intro_logo и intro_game, замени их пустышками:

 

<intro_logo>

<global_wnd width="1024" height="768">

</global_wnd>

<item>

<main_wnd>

</main_wnd>

</item>

</intro_logo>

 

<intro_game>

<global_wnd width="1024" height="768">

</global_wnd>

<item>

<main_wnd>

</main_wnd>

</item>

</intro_game>

 

33. hmtoggle_plus1Как изменить отображаемые руки у костюма?

За HUD рук отвечает эта строчка в конфиге бронежилета:

 

player_hud_section    = actor_hud_06

 

Все HUD-ы хранятся в файле actor.ltx

 

Секции вида:

 

[actor_hud_05]:actor_hud

visual   = ; путь до модели HUD-а

 

34. hmtoggle_plus1Как убрать с HUD-а слоты быстрого использования предметов?

В файле gamedata\configs\ui\maingame.xml найти <quick_slot0

и изменить в тегах quick_slot0...quick_slot3 и quick_slot0_text...quick_slot3_text положения по x, например, можно поставить x="4000"

 

35.hmtoggle_plus1Костюм в виде от третьего лица, не тот который одет

Для изменения этого недоразумения необходимо в секции костюма поправить строчку actor_visual

В значение необходимо указать путь до OGF модели сталкера относительно папки meshes

 

36. hmtoggle_plus1Где и как исправить живучесть монстров

В папке configs\creatures\ Лежат конфиги всех монстров. За количество жизней отвечает параметр:

Health = 400 (тут 400 единиц здоровья)

Стоит заметить, что в одном файле хранятся профили на разных монстров одного и того же вида... (boar_weak - слабый кабан, boar_normal - обычный кабан -- Эти два профиля хранятся в одном файле m_boar.ltx)

 

37. hmtoggle_plus1NPC новой группировки не хотят разговаривать

Нужно созданную фракцию внести в файлы:

 

_g.script

в список: squad_community_by_behaviour = { ...

 

sound_theme.script

в присвоение переменной: local avail_communities = parse_names ...

Вот тут прописывается возможность произнесения фраз группировкой в принципе!

 

squad_behaviours.ltx

создать секцию: [<Имя группировки>]:default_behaviour

 

В файлы death_manager.script, death_items_by_communities.ltx вносить группировку не обязательно но для разнообразия можно.

 

И это только начальные настройки, группировка сразу не заговорит, нужно будет определить звуковые темы для нее.

 

Если НПС обладает своей индивидуальной логикой то разговор нужно прописывать в ней. Например так:

 

on_info=%=play_sound(<Имя звуковой схемы>)%

 

Звуковые схемы для всех НПС прописаны здесь: script_sound.ltx, script_sound_<Имя локации>.ltx, script_sound_music_and_stories.ltx

 

Стоит обратить внимание что некоторые звуковые схемы привязаны к своим группировкам и ссылаются на разные папки со звуковыми файлами.

 

Разбор 1 схемы:

 

[state_1]

type = npc|actor|3d

actor_stereo = true|false

npc_prefix = true|false

path = states\idle\idle_

shuffle = rnd|seq|loop

idle = 3,5,100 ;min,max,rnd

 

Где:

state_1 - имя звуковой схемы.

type - тип источника (npc - НПС, actor - ГГ, 3d - другие объекты).

actor_stereo - стерео режим звука для ГГ.

npc_prefix - использовать или нет часть пути к звуковому файлу из идентификатора НПС.

path - часть пути относительно npc_prefix или папки sounds и часть имени файла.

shuffle - принцип выбора номера файла (rnd - случайно, seq - последовательный перебор без возврата к началу, loop - последовательный перебор с возвратом к началу)

idle = 7,10,100 - минимальная, максимальная пауза в сек до проигрывания следующего звука, 100 - параметр для генератора случайных чисел всегда 100

 

Также есть:

avail_communities - разрешенная группировка

is_combat_sound - является ли звук звуком боя

group_snd - не совсем понятно, видимо будет ли звук слышать другие НПС

 

Путь к звуковому файлу и имя файла определяется относительно папки sounds следующим образом:

<snd_config> + <path> + <Номер файла>,

где snd_config из параметров НПС в разделе specific_character файлов character_desc_*.xml.

Включать или не включать первое слагаемое зависит от параметра npc_prefix.

 

38. hmtoggle_plus1Создание нового КПК при подборе которого будт воспроизведен звук

Описание уникльных (и квестовых предметов) в том числе КПК в этом файле configs\misc\quest_items.ltx

Например КПК Таченко:

 

[jup_b46_duty_founder_pda]:device_pda

$spawn     = "quest_items\jup_b46_duty_founder_pda"

visual    = dynamics\devices\dev_pda\dev_pda.ogf

description   = st_jup_b46_duty_founder_pda_desc

inv_name   = st_jup_b46_duty_founder_pda_name

inv_name_short  = st_jup_b46_duty_founder_pda_name

can_trade   = false

cost     = 20

quest_item       = true

story_id    = jup_b46_duty_founder_pda

 

Проигрывание звука при подборе реализуется в скрипте квеста например так:

 

on_info = {=actor_has_item(jup_b46_duty_founder_pda)} %=play_sound(jup_b46_duty_founder_pda_diary)%

 

39. hmtoggle_plus1Где находятся имена персонажей?

Папка configs\text\rus\

Файлы:

st_characters.xml - уникальные имена (такие как Борода, Сыч, Дегтярев...)
st_generate_fnames.xml - генерируемые имена
st_generate_snames.xml - генерируемые прозвища

 

40. hmtoggle_plus1Как запретить нпс кидать гранаты в чистой ЗП?

В SGM запрещение использования гранат сводится к простому изъятию их у НПС, при помощи специального скрипта.

Для чистой ЗП можно применить аналогичный метод: убрать гранаты из стартового инвентаря всех НПС (файлы character_desc_*.xml) и запретить в скрипте xr_corpse_detection.script НПС их подбирать

 

41. hmtoggle_plus1Добавить рамки автозахвата к прицелу

scope_alive_detector = scope_detector - детектор целей

scope_dynamic_zoom = on - динамический зум

 

42. hmtoggle_plus1Кол-во слотов под артефакты в броне

artefact_count

 

43. hmtoggle_plus1Как отключить постэффект при атаке контроллера?

в файле m_controller.ltx секция [m_controller_attack_effector] параметры поворота камеры:

; camera effects

ce_time    = 0.45 ;time

ce_amplitude  = -15.0

ce_period_number    = 1.5 ;2.0

ce_power   = 1.5 ;0.7 ; power

 

44. hmtoggle_plus1Как сделать кровососа более заметным?

Параметры:

 

Particle_Invisible        = anomaly2\bloodsucker_shield

Particles_Invisible_Tracks    = monsters\bloodsucker_step

Particles_Invisible_Tracks_Freq = 70;100

 

Invisibility_BlinkTime                = 300

Invisibility_BlinkMicroInterval           = 30

Invisibility_EnergySpeed              = 0.05

 

full_visibility_radius = 4   ;5

partial_visibility_radius = 7    ;10

no_visibility_radius   = 10  ;15

 

visibility_state_change_min_delay = 1000 ; ms

 

Интересные параметры full_visibility_radius, partial_visibility_radius, no_visibility_radius соответственно:  радиус полной видимости, радиус частичной видимости, и радиус полной невидимости. В режиме частичной невидимости играются партикли из параметра Particle_Invisible выбирая который можно добиваться разных эффектов во время частичной невидимости.

 

45. hmtoggle_plus1Как увеличить кол-во мутантов на локациях

В файлах \configs\scripts\[Location]\smart\*.ltx хранятся параметры смартов, в которых:

max_population - это максимальное число отрядов которое помещается на смарте.

spawn_num - число спавнов

 

46. hmtoggle_plus1Спавн ствола с аддонами неписям через character_desc_*

wpn_lr300 = 1, silencer, scope \n

 

47. hmtoggle_plus1Алгоритм поиска секции предмета

1. Ищешь имя предмета, которое отображается в игре, в файлах из папки configs\text\rus. (Советую использовать Notepad++ и функцию "поиск по файлам" ([ctrl]+[shift]+[f]))

Например: Комбинезон «СЕВА»

Находишь в файле st_items_outfit.xml

Смотришь на соседние строки:

<string id="scientific_outfit_name">

<text>Комбинезон «СЕВА»</text>

</string>

Отсюда нам нужна строчка из кавычек, тут scientific_outfit_name.

2. Ищем найденную строчку в файлах из папок:

configs\misc\ --- для брони и всеразличных предметов

configs\weapons\ --- для оружия, патрон, аддонов

 

Находим в файле configs\misc\outfit.ltx

 

...

[scientific_outfit]:outfit_base

GroupControlSection = spawn_group

.....

inv_name = scientific_outfit_name

inv_name_short = scientific_outfit_name

....

 

Идем от строки inv_name вверх, до первого [СЛОВО], тут scientific_outfit

 

Scientific_Outfit и будет искомой секцией

 

48. hmtoggle_plus1Квестовый предмет не выпадает из трупа

В <supplies> [spawn] \n </supplies> пишешь предмет и он при спавне у НПС в инвентаре

Также, необходимо добавить по аналогии предмет в секцию keep_items файла death_generic.ltx, для того чтобы игра не подчищала это

 

49. hmtoggle_plus1Где изменить фоновую музыку на локациях

В файле game_levels_music.ltx описаны дневные и ночные треки

 

50. hmtoggle_plus1Параметры гранат

destroy_time = 1800 ; Время детонации 1.8 секунды

blast = 3.0 ; Урон наносимый фугасным воздействием

blast_r = 8 ; радиус фугасного воздействия

blast_impulse = 550 ; Сила удара от фугаса

frags = 300 ; Количество осколков

frags_r = 25 ; Радиус разлета осколков

frag_hit = 3.50; Урон от осколка

frag_hit_impulse = 300 ; Сила удара от осколков

fragment_speed = 500 ; Скорость осколков

 

51. hmtoggle_plus1Дополнительно по патронам

k_dist (коефф дистанции выстрела)

k_disp (коефф дисперсии выстрела)

k_hit (коефф убойной силы выстрела)

k_impulse (коефф импульса пули)

k_pierce (коефф пробоваемость/бронебойность )

k_ap ( ... )

impair (износ оружия)

buck_shot (количество элемонтов пули)

tracer (трассер)

wm_size (размер пулевого отверстия)

k_air_resistance (сопротивление воздуха)

 

52. hmtoggle_plus1Как изменить урон получаемый гг в зависимости от уровня сложности?

В файле configs\creatures\actor.ltx находим вот это (xxxxx- это уровень сложности на каком ты играешь, например master)

 

[actor_immunities_gd_xxxxx]

burn_immunity = 1.0 - термозащита

strike_immunity = 1.0 - защита от удара

shock_immunity = 1.0 - элктрозащита

wound_immunity = 1.0 - кровотечение

radiation_immunity = 1.0 - радиозащита

telepatic_immunity = 1.0 - псизащита

chemical_burn_immunity = 1.0 - химзащита

explosion_immunity = 1.0 - защита от взрывов

fire_wound_immunity = 1.0 - пулестойкость

 

0 - это неуязвимость от данного типа повреждений

1 - защита отсутсвует

 

53. hmtoggle_plus1Как изменить советы при загрузках

В файле configs\text\rus\ui_st_loadscreen.xml

Строки <string id="ls_tip_*"> для синглплеера

Строки <string id="ls_mp_tip_*"> для мультиплеера.

 

54. hmtoggle_plus1Как изменить цвет текста

В XML-файлах описателях UI есть аттрибуты r,g,b - это и есть значение цвета в RGB формате

Если аттрибуты отсутвуют, их можно добавить и они применяться к тексту

 

55. hmtoggle_plus1Как изменить худ рук у костюма

За худ рук отвечает строка player_hud_section в конфиге костюма

Сами секции описаны в файле actor.ltx (секции вида actor_hud_*)

 

56. hmtoggle_plus1Расчет повреждений по стрельбе по NPC

Участвуют след. параметры:

 

1. hit_power - мощность ствола из файлов параметров стволов

2. k_hit - мощность пули из weapons.ltx для каждого типа патронов

3. k_ap - способность пули пробивать защиту (куртки, броники и т.п)

4. Секции [body_damage_*] и [head_damage_*] из damages.ltx с набором

параметров bip01_* - определяет прочность защиты на каждой части тела (второй параметр).

Далее эти параметры я обозначу как Bd и Hd.

5. hit_fraction из damages.ltx для каждого типа защиты определяет прочность защиты.

Надо упомянуть что параметры броников неписей определяются из файла damages.ltx,

а не из outfit.ltx (этот файл чисто для ГГ).

6. Секция [stalker_damage] из m_stalker.ltx с набором параметров bip01_* - определяет фактор

уменьшения здоровья при попадании в соответсвующую часть тела (первый параметр).

Далее этот параметр я обозначу как Sd.

 

Далее я опишу алгоритм по которому происходит вычисление повреждений.

Алгоритм был получен опытным путем при стрельбе по неписи в упор и не претендует на истину в последней инстанции.

Контроль количества повреждений производился через hit_callback функцию скрипта.

 

1. Здоровье неписи лежит в диапазоне от 0 до 100%.

2. Если пуля не бронебойная (k_ap = 0) то урон здоровью вычисляется как:

hit_power * k_hit * hit_fraction * Sd * 100

Полученное число вычитается из здоровья неписи и при достижении <=0 - непись убита.

Т.е. учитывается только фактор защиты в целом без учета степени защиты на разных частях тела.

3. Если пуля бронебойная (k_ap > 0), то ее фактор повреждения зависит от того пробила пуля защиту или нет.

Если пуля не пробила защиту ( k_ap <= Bd(Hd) ) то повреждения считаются как в п.2.

Если пуля пробила защиту ( k_ap > Bd(Hd) ) то повреждения считаются как:

Вычисляется 2 числа и берется большее:

hit_fraction * Sd * 100

и

hit_power * k_hit * F * Sd * 100 где F = (k_ap-Bd)/k_ap или F = (k_ap-Hd)/k_ap

Интересно что урон здоровью в случае пробития брони бронебойной пулей никак не меньше чем фактор ослабления пули броней (hit_fraction * Sd * 100).

 

И еще о k_ap. Было замечено странное поведение алгоритма расчета урона при значении этого коэффициента выше 0.75.

Пуля наносит как бы двойное повреждение. Одно как бронибойная пробивая защиту, и другое - как не бронибойная пуля.

В результате совокупный урон неписю может составляеть больше чем 2 * hit_power * k_hit * 100.

Скорее всего глюк в игре. Получается, например, при k_ap = 0.75 непись получает 70% урона, а при k_ap = 0.76 - безуслованя смерть.

К тому же этот эффект пропадает, например, при определенных сочетаниях hit_power * k_hit >= 1 и k_ap > 2.2

Так что лучше k_ap ограничить максимум 0.75

 

Теперь что касаемо пробивания препятствий:

Похоже что параметр k_pierce не используется вообще (наверное пришел из ТЧ). За пробиваемость препятствий отвечает также k_ap.

Вот некоторые его значения:

>0.34 - пробивает тонкие фанерки (двери и т.п.)

>1.0 - пробивает листовой металл

>1.5 - пробивает деревянные брусья и стены деревянных домов

Ну а гаусска с ее k_ap=15 шьет все.

 

Ты-ы-ыкс, вот мы добрались и до стрельбы неписей по ГГ. Алгоритм тот же самый.

В качестве hit_fraction выступает hit_fraction_actor из outfit.ltx для каждого костюмчика. Повреждения по частям тела расписаны опять же в

damages.ltx в секциях [actor_damage_N]. Ссылки на секции повреждений в параметрах bones_koeff_protection из outfit.ltx для каждого костюма.

Параметр fire_wound_protection не используется.

В инвентаре пулестойкость костюма отображается на основе второго значения из bip01_spine параметра из соответсвующей секции в damages.ltx.

 

57. hmtoggle_plus1Добавить неписям блудмарки

За кровотечение у НПС отвечают эти параметры (m_stalker.ltx):

 

;открытые раны

bleeding_v = 0.01                    ;потеря крови при номинальной ране в секунду

wound_incarnation_v = 0.0001  ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)

min_wound_size = 0.01 ;минимальный размер раны при кторой идет кровопотеря

 

За пятна крови отвечают эти параметры (system.ltx):

 

[bloody_marks]

wallmarks     = wm\wm_blood_1,wm\wm_blood_2,wm\wm_blood_3

dist        = 1.0 ;2.4  ;(м) max расстољние отлета крови

max_size      = 0.6 ;0.3  ;(м)радиус пљтна при хите силой nominal hit по большому объекту (по маленькому *0.5)

min_size      = 0.1      ;(м)минимальнvй радиус пљтна

nominal_hit     = 0.1     ;величина номинального хита, при котором разлетаетсљ максимум крови (max_size)

 

;капли крови

 

blood_drops     = wm\wm_blood_drop_1,wm\wm_blood_drop_2,wm\wm_blood_drop_3,wm\wm_blood_drop_4

start_blood_size  = 0.1     ;размер ранv чтоб начала капать кровь

stop_blood_size   = 0.005     ;размер ранv чтоб кровь остановилась (должно бvть меньше start_blood_size)

 

blood_drop_time     = 0.1     ;OBSOLETE

blood_drop_time_min = 0.3     ;

blood_drop_time_max = 2.0     ;

blood_drop_size   = 0.5     ;размер капли (м) крови, котораљ упала

 

Стоит помнить, что пулевые ранения дают очень маленький размер ран, поэтому вызвать кровотечение довольно сложно, другое дело нож или раны нанесенные мутантом

 

58. hmtoggle_plus1Физические размеры ГГ

ph_box0_center = 0.0, 0.9, 0.0

ph_box0_size = 0.35, 0.9, 0.35

ph_box1_center = 0.0, 0.75, 0.0

ph_box1_size = 0.35, 0.75, 0.35

ph_box2_center = 0.0, 0.6, 0.0

ph_box2_size = 0.35, 0.6, 0.35

 

0 - Коробка ГГ в полный рост

1 - Коробка ГГ в присяде (Ctrl)

2 - Коробка ГГ в глубоком присяде (Ctrl+Shift)

 

_center - это смещение пивота, _size - размер коробки, все они идут по координатам X,Y,Z

 

59. hmtoggle_plus1Где можно отредактировать положение ствола в руках

Положение оружия в руках меняется в конфиге ствола, точнее в его худ-секции. За это отвечает 4 параметра:

hands_position

hands_orientation

; Для широкоформатов

hands_position_16x9

hands_orientation_16x9

Поможет в настройке положения утилита от Sin!: Weapon Configurator

Как использовать - читаем в Readme

 

60. hmtoggle_plus1Как зарегистрировать новые XML файлы в папке configs\ui

#include "ui\<Имя файла>.xml"

 

В одном из существующих файлов, следует оговориться что, когда инклюд прописывается внутри определенного тега (например xml), то в созданном файле нужно создавать секции исходя из тега xml