SOC: Для совсем еще зеленых ч.1 — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

SOC: Для совсем еще зеленых ч.1 — различия между версиями

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

Перейти к: навигация, поиск
(Отмена правки 14693, сделанной участником 5.228.4.26 (обс.))
 
(не показаны 17 промежуточные версии 14 участников)
Строка 1: Строка 1:
Сейчас в мире модостроения сталкера слишком большое кол-во новичков задающие тупые вопросы по типу: «А как увеличить рост ГГ», «А как уменьшить время закидывания болта», «А как?», «Что?», «Почему?»
+
'''Внимание: Перед прочтением данной статьи ознакомтесь со следующей статьей: [http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B3%D1%80%D1%8B_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B5%D1%80%D0%B0_%D0%BE%D1%82_%D0%91%D0%B0%D1%80%D0%B4%D0%B0%D0%BA%D0%B0 Распаковка игры].'''
Вот я и решил написать эту «небольшую статейку» точнее это не статейка, это разбирание вместе с вами мои юные друзья конфигов :)
+
 
И так с чего бы начать. Ну для начала я думаю надо начать с объяснения что где лежит. Начнем с основного:
+
Сейчас в мире модостроения сталкера слишком большое количество новичков, задающих тупые вопросы типа: ''«А как увеличить рост ГГ?», «А как уменьшить время закидывания болта?», «А как?», «Что?», «Почему?».''
config/system.ltx тут лежит основная информация об игре, инклуды к остальным конфигам (я еще вернусь к теме инклудов, не беспокойтесь), инвентарь, прицел, кровь, список тех кого можно таскать и информация о некоторых файлах. Сейчас объясню подробнее про последнее:
+
 
Например, у нас есть отдельные профили сталкеров. Но игра не будет их считывать из воздуха, и поэтому прежде необходимо занести его в базу информации провернув подобную операцию:
+
Вот я и решил написать эту небольшую статейку, точнее это не статейка вовсе, а разбирание вместе с вами, мои юные друзья, конфигов.
 +
 
 +
=== Файл system.ltx ===
 +
Итак, с чего бы начать? Ну для начала, я думаю, надо начать с объяснения, что где лежит. Начнем с основного - '''''config/system.ltx.'''''  В этом файле лежит основная информация об игре, инклуды к остальным конфигам (об этом позже), некоторые параметры инвентаря, прицела, крови, список тех, кого можно таскать и информация о некоторых файлах. Сейчас объясню подробнее про последнее. Например, у нас есть отдельные профили сталкеров. Но игра не будет их считывать из воздуха и, поэтому, прежде необходимо занести его в базу информации, совершив подобную операцию:
 
<lua>
 
<lua>
 
[profiles]
 
[profiles]
Строка 9: Строка 12:
 
files =  npc_profile
 
files =  npc_profile
 
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
 
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag,(здесь мы поставили запятую, это ОБЯЗАТЕЛЬНО!)название_нашего_файла(название файла никогда не должно содержать пробелов,максимум такие вот палочки лежащие :). После название запятую не ставим потому что это последний файл в нашем списке)
+
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag, [<здесь мы ставим запятую] название_нашего_файла [<название файла не должно содержать пробелов, только знак подчеркивания. После последнего файла запятая не ставится]
 
</lua>
 
</lua>
Итак.Многие наверно заметили комментарии.Тобишь пояснения ну например как это:
+
=== Комментарии ===
 +
Итак. Многие, наверно, заметили комментарии. То есть, пояснения, например, как это:
 
<lua>
 
<lua>
 
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
 
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
 
</lua>
 
</lua>
Так делают не многие люди которые занимаються в модостроении ибо не хотят объяснять принцип действия своих конфигов и прочего.Но ПЫСы часто оставляют эти пояснения.Вобщем функция эта бесполезная но для людей которые забывают что и где они добавляли/изменяли писать комментарии обязательно.А так же желательно писать комментарии для старых значение.Например в одной из скриптов было числовое значение 0.3 вы изменили на 0.2.Значит желательно после 0.2 поставить комментарий(Тобишь ";") и написать старое число.Тобишь получиться так 0.2 ; 0.3.И самое главное не забудьте символ ";" иначе словите еррор!Комментарии так же нельзя писать в несколько строк,например так писать нельзя:
+
Так делают немногие люди, которые занимаются модостроением, ибо не хотят объяснять принцип действия своих конфигов и прочего. Но GSC часто оставляли подобные пояснения. В общем, функция эта далеко не бесполезная для людей, которые забывают что, где и как. Так же желательно писать комментарии для старых значений. Например, в одном из параметров было числовое значение 0.3, вы изменили на 0.2. Значит, желательно после 0.2 поставить знак начала комментария (То есть '''";"''') и написать старое число. То есть, получится так: 0.2 ; 0.3. И самое главное: не забудьте символ ";"! Комментарии так же нельзя писать в несколько строк:<lua>
<lua>
+
 
;Здесь комментарий
 
;Здесь комментарий
 
А здесь еще один
 
А здесь еще один
 
</lua>
 
</lua>
Иначе тоже словите еррор. Старайтесь либо умещать все в 1 предложении либо ставьте ";" перед каждый комментарием.
+
В этом случае игра может вылететь. Старайтесь либо умещать все в одном предложении, либо ставьте '''";"''' перед каждой новой строкой комментария.
Так же существует такое определение как секции, то бишь [название_секции]. Этот параметр отвечает за контроль нескольких опций внутри себя. Думаю вы поймете это сами.
+
=== Секции ===
Ну ладно идем дальше:
+
Так же существует такое определение, как секции, то есть, '''[название_секции]'''. Этот параметр отвечает за контроль нескольких опций внутри себя. Просмотрев какой-нибудь ltx-файл, нетрудно заметить, что он состоит из таких секций.  
gamedata/config/alife.ltx
+
 
Здесь нет ничего интересного кроме:
+
Если написано так: '''[название_секции]''':''другая_секция'', это значит, что секция с названием '''название_секции''' берёт за основу секцию с названием '''другая_секция'''. Самый простой пример - открываем файл '''''unique_items.ltx''''' (он находится в папке '''''misc''''' и содержит в себе модифицированные оружие и броню), видим самую первую секцию '''[outfit_novice_m1]''':''novice_outfit'', то есть это Аномальная кожанка, которая берёт за основу обычную куртку (из файла '''''outfits.ltx'''''), следовательно, в этой секции мы видим только те параметры костюма, которые были изменены.
 +
=== Файл alife.ltx ===
 +
Идём дальше, к файлу '''''gamedata/config/alife.ltx'''''. Здесь нет ничего интересного, кроме:
 
<lua>
 
<lua>
time_factor = 10   ;1 скорость для демонстрации смены дня и ночи если хотите сделать реальным то измените на 1
+
time_factor = 10 ;скорость течения игрового времени ;360 - скорость для демонстрации смены дня и ночи, если хотите сделать течение времени реальным, то измените параметр на 1
 +
    switch_distance = 150 ;Расстояние от ГГ, на котором все существа переходят на упрощенную систему симуляции жизни
 +
    start_time = 05:30:00 ;Время начала новой игры
 +
    start_date = 01.05.2012    ;Дата начала новой игры
 
</lua>
 
</lua>
и
+
 
<lua>
+
=== Папки ===
    start_time = 05:30:00 ;Время при начале новой игры
+
'''''config/creatures''''' - информация о ГГ, противниках и прочих существах. Например, их устойчивость к определенному виду урона. У ГГ много интересных настроек. Так же, здесь лежит информация об отношениях группировок к ГГ и между собой.
    start_date = 01.05.2012    ;Дата при начале новой игры
+
 
</lua>
+
'''''config/gameplay''''' - информация о диалогах, профилях сталкеров (например, можно дать какому-нибудь бандиту вместо ПМ Грозу, но об этом позже), энциклопедии, заданиях (не их цели и награды, а текст, иконка и пр.).
config/creatures - Здесь лежит информация об ГГ, Бандитах и прочих сталкерах. Например их устойчивость к определенному виду урона. У ГГ же куча интересных настроек. Так же здесь лежит информация об отношениях группировок к ГГ!
+
 
config/gameplay - Здесь лежит информация об диалогах, профилях сталкеров (например можно дать какому нибудь бандиту заместо ПМ, Грозу или все сразу, в общем мы с вами разберем это позже), Энциклопедии (никогда не интересовался как ее редактировать, поэтому туториала не будет (но он есть на сайте, так что дерзайте)) и Инфопоршнях (к этой теме тоже вернемся), также информация об Заданиях (не их награды, а сам текст, иконка и пр.)
+
'''''config/misc''''' - информация о предметах, спавне сталкеров, костюмах, артефактах, генераторе предметов в трупах, гулагах, квестовых предметах, аномалиях и торговцах.
config/misc - Очень интересная папка. Здесь лежит информация о предметах, спавне сталкеров, выпадении предметов, костюмах и их настройке, артефактах, генераторе предметов в трупах, гулагах, квестовых предметах и аномалиях.
+
 
config/models - Толком никто не знает что это за папка, но по идее раньше туда писались все названия моделей…
+
'''''config/models''''' - подробные параметры для некоторых моделей игры, в том числе там находятся конфиги фонаря, транспорта и разрушаемых предметов.
config/prefetch - То же самое, что и models.
+
 
config/scripts - Конфиги скриптов. Здесь есть логика персонажей (по каким Гулагам им надо ходить, при каких обстоятельствах им надо бегать к той или иной точке и пр.) и дверей (открыта, закрыта, при каких обстоятельствах ей нужно быть открытой, коды для дверей в Х18 тоже можно изменять в этом файле)
+
'''''config/scripts''''' - логика персонажей (по каким местам им надо ходить, при каких обстоятельствах им надо бегать к той или иной точке и пр.) и дверей (открыта, закрыта, при каких обстоятельствах ей нужно быть открытой).
config/text/rus - Текст. Если бы не эти файлы мы бы видели в игре что то типа «wpn_ak74_name», как в билде Кризиса 2 :) Стоит отметить одну интересную способность: игра подгружает эти файлы все разом. То бишь можно писать текст в любой из файлов (если тот конечно работоспособный), а игра его один фиг сумеет распознать. Можно даже в наглую переть диалоги с других локаций, и эта способность кстати очень удобная!
+
 
config/ui - Вся информация о худе. Та еще мозгодрочка, поэтому разбирать пока что не будем :)
+
'''''config/text/rus''''' - текст. Если бы не эти файлы, мы бы видели в игре что-то типа ''«wpn_ak74_name»'' (хотя зачастую вместо этих идентификаторов можно писать русский текст). Стоит отметить одну интересную особенность - игра подгружает эти файлы все разом. То есть можно писать свой текст в любом из этих файлов, игра его в любом случае найдёт.
config/weapons - Конфиги всего оружия. Можно сделать их убойнее, поменять цену и многое другое. Там же можно добавить и парочку новых :)
+
 
config/weathers - Погода. Всегда ненавидел GSC за то что они сделали такой замудреный конфиг, я его не понимаю, но на Stalker Inside есть статья по поводу нее, а именно: [http://stalkerin.gameru.net/wiki/index.php/Настройка_погоды_и_освещения]
+
'''''config/ui''''' - информация об игровом интерфейсе (он же GUI).
И-так по порядку. Первым у нас в списке был config/creatures. Полезли:
+
 
<lua>
+
'''''config/weapons''''' - конфиги оружия. Можно сделать их убойнее, поменять цену и многое другое. Там же можно добавить новые стволы.
actor.ltx - конфиг ГГ
+
 
damages.ltx - конфиг урона для нпс
+
'''''config/weathers''''' - конфиги погоды, подробнее в статье [http://stalkerin.gameru.net/wiki/index.php/Настройка_погоды_и_освещения Настройка погоды и освещения]
game_relations.ltx - отношения группировок к ГГ
+
 
helicopter.ltx - конфиг вертолета
+
=== Папка creatures ===
immunities.ltx - иммунитет. Вроде бы в игре не используется
+
Итак, по порядку. Первой папкой в списке у нас в списке была '''''config/creatures:'''''
monsters.ltx - файл содержащий инклуды к конфигам монстров (позже позже :)
+
 
m_army.ltx - конфиг военных
+
'''''actor.ltx''''' - конфиг ГГ
m_bandit.ltx - конфиг бандитов
+
 
m_bloodsucker.ltx - конфиг кровососа
+
'''''damages.ltx''''' - конфиг урона для нпс
m_boar.ltx - конфиг кабана
+
 
m_burer.ltx - конфиг бюрера
+
'''''game_relations.ltx''''' - отношение группировок к ГГ и между собой
m_cat.ltx - конфиг кошака
+
 
m_chimera.ltx - конфиг химеры
+
'''''helicopter.ltx''''' - конфиг вертолета
m_controller.ltx - конфиг контролёра
+
 
m_crow.ltx - конфиг вороны
+
'''''immunities.ltx''''' - иммунитет. Возможно, устойчивость разных костюмов (не на ГГ) к воздействиям
m_dog.ltx - конфиг собачки
+
 
m_dog_.ltx - не используемый конфиг старой собачки
+
'''''monsters.ltx''''' - файл, по сути обобщающий все конфиги монстров (игра сначала обращается к нему, а потом с помощью него находит остальные файлы)
m_flesh.ltx - конфиг плоти
+
 
m_fraction.ltx - конфиг каких то солдатов, наверно долга и свободы…
+
'''''m_army.ltx''''' - конфиг военных
m_fracture.ltx - еще один непонятный конфиг
+
 
m_giant.ltx - конфиг псевдогиганта
+
'''''m_bandit.ltx''''' - конфиг бандитов
m_person.ltx - конфиг торговцев. По идее не используется, но на практике хрен его знает :)
+
 
m_phantom.ltx - по идее старый конфиг полтергейста, но интересного ничего не нашел…
+
'''''m_bloodsucker.ltx''''' - конфиг кровососа
m_poltergeist.ltx - конфиг полтергейста
+
 
m_pseudodog.ltx - конфиг псевдособаки
+
'''''m_boar.ltx''''' - конфиг кабана
m_rat.ltx - конфиг крысы
+
 
m_snork.ltx - конфиг снорка
+
'''''m_burer.ltx''''' - конфиг бюрера
m_stalker.ltx - конфиг сталкеров
+
 
m_stalker_monolith.ltx - конфиг монолитовцев
+
'''''m_cat.ltx''''' - конфиг кошки
m_stalker_zombied.ltx - конфиг зомбированных сталкеров (не путать с обычными зомби)
+
 
m_tushkano.ltx - конфиг тушканов
+
'''''m_chimera.ltx''''' - конфиг химеры
m_zombie.ltx - конфиг зомби
+
 
spawn_sections.ltx - спавн сталкеров. Необходимо добавлять своих в этот файл
+
'''''m_controller.ltx''''' - конфиг контролёра
stalkers.ltx - инклуды сталкеров (пооозже)
+
 
vssver.scc - хрен знает что)
+
'''''m_crow.ltx''''' - конфиг вороны
</lua>
+
 
Я обещал же что у ГГ очень интересный конфиг. Ну что ж, глянем (я специально все закомментирую чтобы вы понимали что изменяете):
+
'''''m_dog.ltx''''' - конфиг собаки
 +
 
 +
'''''m_dog_.ltx''''' - неиспользуемый конфиг собаки
 +
 
 +
'''''m_flesh.ltx''''' - конфиг плоти
 +
 
 +
'''''m_fraction.ltx''''' - конфиг каких то солдат.
 +
 
 +
'''''m_fracture.ltx''''' - конфиг излома
 +
 
 +
'''''m_giant.ltx''''' - конфиг псевдогиганта
 +
 
 +
'''''m_person.ltx''''' - конфиг торговцев. Возможно, не используется
 +
 
 +
'''''m_phantom.ltx''''' - по идее, старый конфиг полтергейста, нет ничего интересного
 +
 
 +
'''''m_poltergeist.ltx''''' - конфиг полтергейста
 +
 
 +
'''''m_pseudodog.ltx''''' - конфиг псевдособаки
 +
 
 +
'''''m_rat.ltx''''' - конфиг крысы
 +
 
 +
'''''m_snork.ltx''''' - конфиг снорка
 +
 
 +
'''''m_stalker.ltx''''' - конфиг сталкеров
 +
 
 +
'''''m_stalker_monolith.ltx''''' - конфиг монолитовцев
 +
 
 +
'''''m_stalker_zombied.ltx''''' - конфиг зомбированных сталкеров (не путать с обычными зомби)
 +
 
 +
'''''m_tushkano.ltx''''' - конфиг тушканов
 +
 
 +
'''''m_zombie.ltx''''' - конфиг зомби
 +
 
 +
'''''spawn_sections.ltx''''' - подробнее - в темах, посвященные спавну сталкеров
 +
 
 +
'''''stalkers.ltx''''' - файл, обобщающий все конфиги людей
 +
 
 +
'''''vssver.scc''''' - вовсе ненужный файл
 +
 
 +
=== Файл actor.ltx ===
 +
Ну что ж, глянем конфиг ГГ:
 
<lua>
 
<lua>
 
[actor_terrain]
 
[actor_terrain]
255,255,000,255 ;не совсем понятно что
+
255,255,000,255 ;по сути, эти цифры - цвет (жёлтый) в формате RGB + прозрачность. Вкратце - он
 +
;указывает на то, где позволено ходить объекту (есть специальные файлы, в которых карта частями
 +
;окрашена в разные сплошные цвета). В нашем случае абсолютно бесполезен (так как ГГ и так может
 +
;гулять где хочет), но, видимо указывается обязательно, хотя не факт, что используется в игре.
  
 
[actor]:common_ph_friction_params_on_npc_death
 
[actor]:common_ph_friction_params_on_npc_death
GroupControlSection = spawn_group ;Нет необходимости трогать
+
GroupControlSection = spawn_group ;Нет необходимости изменять
$spawn = "actor" ;Нет необходимости трогать
+
$spawn = "actor" ;Нет необходимости изменять
$ed_icon = ed\ed_actor ;Нет необходимости трогать
+
$ed_icon = ed\ed_actor ;Нет необходимости изменять
$player = on ;Нет необходимости трогать
+
$player = on ;Нет необходимости изменять
 
$prefetch = 16   
 
$prefetch = 16   
cform                  = skeleton ;Нет необходимости трогать
+
cform                  = skeleton ;Нет необходимости изменять
class                  = O_ACTOR ;Класс. Нет необходимости трогать
+
class                  = O_ACTOR ;Класс. Нет необходимости изменять
 
money = 40; ;Нерабочий конфиг
 
money = 40; ;Нерабочий конфиг
 
rank = 3; ;Нерабочий конфиг
 
rank = 3; ;Нерабочий конфиг
script_binding = bind_stalker.actor_init ;Нет необходимости трогать
+
script_binding = bind_stalker.actor_init ;Нет необходимости изменять
visual = actors\hero\stalker_novice.ogf ;Визуал ГГ. То бишь его модель от 3-го лица, но вроде изменять надо не здесь
+
visual = actors\hero\stalker_novice.ogf ;Модель при виде от 3-го лица, возможно, изменять её надо не здесь.
destroyed_vis_name = physics\Dead_Body\skelet_crash ;Нет необходимости трогать
+
destroyed_vis_name = physics\Dead_Body\skelet_crash ;Нет необходимости изменять
 +
 
 +
terrain = actor_terrain ;Нет необходимости изменять; как видим, это ссылка на самую верхнюю секцию файла
  
terrain = actor_terrain ;Нет необходимости трогать
+
max_item_mass = 50.0 ;Сколько герой может носить кг. за плечами. Если число перевалит за 50, то для ГГ это будет предел и он будет очень быстро уставать.
 +
jump_speed              = 6. ;Высота прыжка изменя на 20 будешь высоко прыгать
  
max_item_mass = 50.0 ;Сколько герой может носить кг за плечами. Если число перевалит за 50, то для ГГ это будет предел и ГГ будет очень быстро терять выносливость и пр.
+
crouch_coef = 0.45 ;Скорость при передвежении вприсяди
jump_speed              = 6. ;Высота прыжка
+
crouch_coef = 0.45 ;Скорость при передвежении на корточках
+
 
climb_coef = 0.7 ;Скорость при залезании на лестницу
 
climb_coef = 0.7 ;Скорость при залезании на лестницу
run_coef                = 2.1 ;Скорость при беге (Не спринте!)
+
run_coef                = 2.1 ;Скорость при быстром шаге
sprint_koef = 2.6 ;Скорость при спринте
+
sprint_koef = 2.6 ;Скорость при беге
run_back_coef = 1.8 ;Скорость при беге назад
+
run_back_coef = 1.8 ;Скорость при быстром шаге назад
 
walk_back_coef = 0.8 ;Скорость при хождении назад
 
walk_back_coef = 0.8 ;Скорость при хождении назад
air_control_param = 0.1 ;Управляемость в полете. Нет смысла менять
+
air_control_param = 0.1 ;Управляемость в прыжке. Нет смысла менять, только ради экспериментов
walk_accel              = 17  
+
walk_accel              = 17 ;Ускорение при ходьбе
  
pickup_info_radius = 5 ;Радиус в котром над предметами выводятся их названия
+
pickup_info_radius = 5 ;Радиус, при котором над предметами выводятся их названия, если на них навести прицел
  
ef_creature_type = 17 ;Нет необходимости изменять
+
ef_creature_type = 17 ;Нет необходимости изменять
  
 
; attach params
 
; attach params
Строка 121: Строка 174:
  
 
ph_box0_center = 0.0,  0.9,  0.0 ;Нет необходимости изменять
 
ph_box0_center = 0.0,  0.9,  0.0 ;Нет необходимости изменять
ph_box0_size = 0.35, 0.9,  0.35 ;Нет необходимости изменять
+
ph_box0_size = 0.35, 0.9,  0.35 ;Нет необходимости изменять (Габариты ГГ стоя)
 
ph_box1_center = 0.0,  0.75,  0.0 ;Нет необходимости изменять
 
ph_box1_center = 0.0,  0.75,  0.0 ;Нет необходимости изменять
ph_box1_size = 0.35, 0.75,  0.35 ;Нет необходимости изменять
+
ph_box1_size = 0.35, 0.75,  0.35 ;Нет необходимости изменять (Габариты ГГ в присяде)
 
ph_box2_center = 0.0,  0.6,  0.0 ;Нет необходимости изменять
 
ph_box2_center = 0.0,  0.6,  0.0 ;Нет необходимости изменять
ph_box2_size = 0.35, 0.6,  0.35 ;Нет необходимости изменять
+
ph_box2_size = 0.35, 0.6,  0.35 ;Нет необходимости изменять (Габариты ГГ в полном присяде)
 
stalker_restrictor_radius = .55;0.55;0.75;0.9 ;Нет необходимости изменять
 
stalker_restrictor_radius = .55;0.55;0.75;0.9 ;Нет необходимости изменять
 
stalker_small_restrictor_radius = .55 ;Нет необходимости изменять  
 
stalker_small_restrictor_radius = .55 ;Нет необходимости изменять  
Строка 138: Строка 191:
 
weapon_bone2 = bip01_r_finger11 ;Нет необходимости изменять
 
weapon_bone2 = bip01_r_finger11 ;Нет необходимости изменять
  
damage = actor_damage ;Секция для дамага у актора. Находиться почти в самом низу конфига
+
damage = actor_damage ;Ссылка на секцию о повреждениях ГГ. Находится почти в самом низу конфига
  
hit_probability_gd_novice = 0.20 ;Вероятность с которой попадут в ГГ. Я так и не понял работает она или нет…
+
hit_probability_gd_novice = 0.20 ;Вероятность попадения в ГГ на разных сложностях.  
hit_probability_gd_stalker = 0.30 ;Вероятность с которой попадут в ГГ. Я так и не понял работает она или нет…
+
hit_probability_gd_stalker = 0.30
hit_probability_gd_veteran = 0.40 ;Вероятность с которой попадут в ГГ. Я так и не понял работает она или нет…
+
hit_probability_gd_veteran = 0.40
hit_probability_gd_master = 0.50 ;Вероятность с которой попадут в ГГ. Я так и не понял работает она или нет…
+
hit_probability_gd_master = 0.50
hit_sounds = actor_hit_snds ;Нет необходимости изменять
+
hit_sounds = actor_hit_snds ;Ссылка на секцию со звуками разных поврежддений ГГ. См. ниже.
 
;actor condition
 
;actor condition
  
immunities_sect = actor_immunities_gd_master ;Нет необходимости изменять
+
immunities_sect = actor_immunities_gd_master ;Ссылка на секцию с иммунитетом ГГ
condition_sect = actor_condition ;Нет необходимости изменять
+
condition_sect = actor_condition ;Ссылка на секцию с описанием изменения состояния ГГ (при радиации, кровотечении и тп.)
  
heavy_breath_snd = actor\breath_1 ;Звук тяжёлого дыхания при усталости
+
heavy_breath_snd = actor\breath_1 ;Звук тяжёлого дыхания при усталости
 
heavy_blood_snd = affects\heartbeat ;Звук при тяжёлом кровотечении
 
heavy_blood_snd = affects\heartbeat ;Звук при тяжёлом кровотечении
  
 
material = creatures\actor ;Нет необходимости изменять
 
material = creatures\actor ;Нет необходимости изменять
camera_height_factor = 0.85 ;Рост ГГ (параметр 0.95 самый приемлимый)
+
camera_height_factor = 0.85 ;Высота камеры над землёй, попросту говоря, рост ГГ (параметр 0.95 самый приемлимый)
  
  
 
;Дисперсия стрельбы с учетом ходьбы и бега
 
;Дисперсия стрельбы с учетом ходьбы и бега
disp_base = 0.8 ;Угол (в градусах) разлета пуль, когда актёр стоит на месте
+
disp_base = 0.8 ;Угол (в градусах) разлета пуль, когда актёр стоит на месте
 
disp_aim = 0.04
 
disp_aim = 0.04
disp_vel_factor = 2.0 ;на сколько увеличится дисперсия при скрости в 10 м/с (не обязательно при беге)
+
disp_vel_factor = 2.0 ;На сколько увеличится дисперсия при скрости в 10 м/с (не обязательно при беге)
disp_accel_factor = 2.0 ;еще на сколько увеличится, если актёр бежит (+ скорость)
+
disp_accel_factor = 2.0 ;Еще на сколько увеличится, если актёр бежит (+ скорость)
disp_crouch_factor = -0.2 ;уменьшение если актёр сидит
+
disp_crouch_factor = -0.2 ;Уменьшение если актёр сидит
disp_crouch_no_acc_factor = -0.4 ;уменьшение если актёр сидит + no acceleration
+
disp_crouch_no_acc_factor = -0.4 ;Уменьшение если актёр сидит + без ускорения
;disp_jump_factor = 2.0
+
;disp_jump_factor = 2.0 ;Уменьшение при прыжке
  
 
missile_throw_offset = 0.3, 0.5, 0.5
 
missile_throw_offset = 0.3, 0.5, 0.5
  
body_remove_time = 60000 ;Время уничтожения трупа (с учетом TimeFactor). Функция не рабочая
+
body_remove_time = 60000 ;Время уничтожения трупа (с учетом TimeFactor).
  
sleep_time_factor = 1000 ;400 ;Сон. Функция не рабочая
+
sleep_time_factor = 1000 ;400 ;Ускорение времени во сне. Все параметры, связанные со сном ГГ, не имеют смысла ввиду отсутствия сна в игре (сон в модах не использует параметры из этого файла)
max_sleep_hours = 12 ;Сон. Функция не рабочая
+
max_sleep_hours = 12
 
;species of monster
 
;species of monster
species = actor ;Сон. Функция не рабочая
+
species = actor ;Относится ко сну
  
  
Строка 184: Строка 237:
  
 
; visibility parameters
 
; visibility parameters
;Параметры которые ниже лучше не менять.О твечает за видимость actor`a, но в оригинале она и так нормальная…
+
;Параметры, которые ниже лучше не менять. Отвечают за видимость ГГ. Комментарии от GSC.
 
DynamicObjectsCount = 32
 
DynamicObjectsCount = 32
 
min_view_distance  = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла
 
min_view_distance  = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла
Строка 197: Строка 250:
 
still_visible_time = 5000 ; время, которое объект всё ещё считается видимым, даже если он уже не во фрустуме
 
still_visible_time = 5000 ; время, которое объект всё ещё считается видимым, даже если он уже не во фрустуме
  
[actor_immunities_gd_novice] ;Коэфециенты иммунитета на уровне сложности:Новичок.Если сделать их меньше значит и урона будет меньше
+
[actor_immunities_gd_novice] ;Коэфециенты иммунитета на уровне сложности новичок. Чем меньше значение, тем меньше урон. Если поставить 0.0, ГГ станет практически бессмертным (сможет умереть только от радиации или кровотечения).
 
burn_immunity = 0.5 ;Огонь (костер, жарка и тп.)
 
burn_immunity = 0.5 ;Огонь (костер, жарка и тп.)
strike_immunity = 0.5  ;Удар (падение с большой высоты, аномалия "трамплин" и тп.)
+
strike_immunity = 0.5  ;Удар (падение с большой высоты, аномалия "Карусель" и тп.)
 
shock_immunity = 0.5  ;Электрошок (Аномалия "Электра")
 
shock_immunity = 0.5  ;Электрошок (Аномалия "Электра")
wound_immunity = 0.5  ;Разрыв (Атаки животных, еще наверно аномалия "мясорубка" и тп.)
+
wound_immunity = 0.5  ;Разрыв (Атаки животных, еще, возможно, аномалия "Мясорубка" и тп.)
 
radiation_immunity = 0.5  ;Радиация
 
radiation_immunity = 0.5  ;Радиация
telepatic_immunity = 0.5  ;Пси
+
telepatic_immunity = 0.5  ;Пси-воздействие
chemical_burn_immunity = 0.5           ;Хим. воздействие (аномалия "Ведьмин студень")
+
chemical_burn_immunity = 0.5   ;Хим. воздействие (аномалия "Холодец")
explosion_immunity = 0.1  ;Взрывы (Бочки)
+
explosion_immunity = 0.1  ;Взрывы (Бочки, РПГ)
fire_wound_immunity  = 0.5           ;Пулестойкость
+
fire_wound_immunity  = 0.5   ;Пулестойкость
  
  
 
[actor_immunities_gd_stalker]
 
[actor_immunities_gd_stalker]
burn_immunity = 0.65 ;коэффициенты иммунитета
+
burn_immunity = 0.00
strike_immunity = 0.65
+
strike_immunity = 0.00
shock_immunity = 0.65
+
shock_immunity = 0.00
wound_immunity = 0.65
+
wound_immunity = 0.00
radiation_immunity = 0.65
+
radiation_immunity = 0.00
telepatic_immunity = 0.65
+
telepatic_immunity = 0.00
chemical_burn_immunity = 0.65
+
chemical_burn_immunity = 0.00
explosion_immunity = 0.3
+
explosion_immunity = 0.00
fire_wound_immunity  = 0.65
+
fire_wound_immunity  = 0.00
  
 
[actor_immunities_gd_veteran]
 
[actor_immunities_gd_veteran]
burn_immunity = 0.8 ;коэффициенты иммунитета
+
burn_immunity = 0.8
 
strike_immunity = 0.8
 
strike_immunity = 0.8
 
shock_immunity = 0.8
 
shock_immunity = 0.8
Строка 232: Строка 285:
  
 
[actor_immunities_gd_master]
 
[actor_immunities_gd_master]
burn_immunity = 1.0 ;коэффициенты иммунитета
+
burn_immunity = 1.0
 
strike_immunity = 1.0
 
strike_immunity = 1.0
 
shock_immunity = 1.0
 
shock_immunity = 1.0
Строка 243: Строка 296:
  
 
[actor_condition]
 
[actor_condition]
satiety_v = 0.000015 ;Скорость с которой персонаж голодает(если сделать больше то и есть он будет хотеть быстрее)
+
satiety_v = 0.000015 ;Скорость увеличения голода (если сделать больше, то и есть он будет хотеть быстрее)
 
radiation_v = 0.0001 ;Скорость уменьшения радиации
 
radiation_v = 0.0001 ;Скорость уменьшения радиации
satiety_power_v = 0.000055 ;увеличение выности при уменьшении сытости.Тобишь чем меньше голода тем больше у вас будет выностивости
+
satiety_power_v = 0.000055 ;Увеличение выносливости при уменьшении сытости
satiety_health_v = 0.0001 ;увеличение здоровья при уменьшении сытости .Тобишь чем меньше голода тем больше у вас будет жизни(не на много)
+
satiety_health_v = 0.0001 ;Увеличение здоровья при уменьшении сытости  
satiety_critical = 0.0 ;критическое значения сытости (в процентах от 0..1).Тобишь когда здоровье начинает уменьшаться
+
satiety_critical = 0.0 ;Критическое значения сытости (в процентах от 0..1). При каком значении сытости начинает уменьшаться здоровье
 
radiation_health_v = 0.004 ;Уменьшение здоровья при воздействии радиации
 
radiation_health_v = 0.004 ;Уменьшение здоровья при воздействии радиации
morale_v = 0.0001 ;Скорость восстановления морали(о_О!)
+
morale_v = 0.0001 ;Скорость восстановления морали (что бы это не значило)
psy_health_v = 0.001 ;скорость восстановления пси-здоровья
+
psy_health_v = 0.001 ;Скорость восстановления пси-здоровья
alcohol_v = -0.0003                       ;Скорость с которой алкоголь выходит из организма
+
alcohol_v = -0.0003               ;Скорость уменьшения опьянения
health_hit_part = 1.0 ;процент хита, уходящий на отнимание здоровья
+
health_hit_part = 1.0 ;Процент хита, уходящий на отнимание здоровья
power_hit_part = 0.1 ;процент хита, уходящий на отнимание силы
+
power_hit_part = 0.1 ;Процент хита, уходящий на отнимание силы
max_power_leak_speed = 0.0 ;накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени
+
max_power_leak_speed = 0.0 ;Накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени
max_walk_weight = 60                           ;Максимальное кол-во таскаемого веса.Тобишь если значение хоть на 0.1 выше то персонаж преестанет идти
+
max_walk_weight = 60                   ;Максимальное кол-во таскаемого веса. Если значение хоть на 0.1 выше, то персонаж преестанет идти
  
 
bleeding_v = 0.0005 ;Потеря крови при кровотечении
 
bleeding_v = 0.0005 ;Потеря крови при кровотечении
 
wound_incarnation_v = 0.003 ;Скорость с которой пропадает кровотечение
 
wound_incarnation_v = 0.003 ;Скорость с которой пропадает кровотечение
min_wound_size = 0.0256 ;минимальный размер раны, после которого она считается зажившей.Тащемта можно не трогать
+
min_wound_size = 0.0256 ;Минимальный размер раны, после которого она считается зажившей.
  
 
;--when actor in sleep
 
;--when actor in sleep
;Сон...Не рабочий конфиг
+
;Снова сон
 
satiety_v_sleep = 0.00001
 
satiety_v_sleep = 0.00001
 
radiation_v_sleep = 0.0003
 
radiation_v_sleep = 0.0003
Строка 281: Строка 334:
 
;actor_condition only
 
;actor_condition only
  
jump_power = 0.01 ;0.005 ;умешьшение выносливости без учета максимального веса(предела)
+
jump_power = 0.01 ;0.005 ;уменьшение выносливости без учета максимального веса (предела)
jump_weight_power = 0.05 ;0.045 ;умешьшение выносливости прыжком с учетом максимального веса
+
jump_weight_power = 0.05 ;0.045 ;уменьшение выносливости с прыжком с учетом максимального веса
overweight_jump_k = 5;10 ;10 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power).Если быть проще то на сколько умножаеться уменьшение веса если достигнут предел в макс. весе в нашем случае(jump_weight_power*overweight_jump_k) 0.25
+
overweight_jump_k = 5;10 ;10 ;коэффициент влияния перегрузки при прыжке с весом (умножается на jump_weight_power). На сколько умножается уменьшение веса, если достигнут предел в макс. весе. В нашем случае (jump_weight_power*overweight_jump_k) 0.25
  
stand_power =  -0.005 ;Скорость восстановления выносливости
+
stand_power =  -0.005 ;Скорость восстановления выносливости
walk_power = 0.00001 ;умешьшение выносливости за секунду ходьбы без учета макс. веса
+
walk_power = 0.00001 ;уменьшение выносливости за секунду ходьбы без учета макс. веса
walk_weight_power = 0.00005; ;умешьшение выносливости за секунду во ходьбы с учетом веса макс. веса
+
walk_weight_power = 0.00005; ;уменьшение выносливости за секунду во ходьбы с учетом веса макс. веса
overweight_walk_k = 5;9 ;10 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power)
+
overweight_walk_k = 5;9 ;10 ;коэффициент влияния перегрузки ноши (умножается на walk_weight_power)
accel_k = 3;5 ;коэффициент на бег (умножается walk_power, walk_weight_power)
+
accel_k = 3;5 ;коэффициент на быстрый шаг (умножается walk_power, walk_weight_power)
sprint_k = 75;150;185;180;200; ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power)
+
sprint_k = 75;150;185;180;200; ;коэффициент на бег (умножается walk_power, walk_weight_power)
  
 
; хромота
 
; хромота
limping_health_begin = 0.1 ;порог здоровья меньше которого актер начинает хромать
+
limping_health_begin = 0.1 ;порог здоровья, меньше которого ГГ начинает хромать
limping_health_end  = 0.2 ;порог здоровья больше которого актер перестает хромать
+
limping_health_end  = 0.2 ;порог здоровья, больше которого ГГ перестает хромать
limping_power_begin  = 0.1 ;порог силы меньше которого актер начинает хромать
+
limping_power_begin  = 0.1 ;порог силы, меньше которого ГГ начинает хромать
limping_power_end = 0.2 ;порог силы больше которого актер перестает хромать
+
limping_power_end = 0.2 ;порог силы, больше которого ГГ перестает хромать
use_limping_state = on ;Не обязателен для редактирования
+
use_limping_state = on ;Не обязателен для редактирования
  
cant_walk_power_begin = 0.01 ;порог силы меньше которого актер не может двигаться
+
cant_walk_power_begin = 0.01 ;порог силы, меньше которого ГГ не может двигаться
cant_walk_power_end  = 0.10 ;порог силы больше которого актер сможет двигаться
+
cant_walk_power_end  = 0.10 ;порог силы, больше которого ГГ сможет двигаться
  
cant_sprint_power_begin = 0.20 ;порог силы меньше которого актер не может бежать в спринте
+
cant_sprint_power_begin = 0.20 ;порог силы, меньше которого ГГ не может бежать в спринте
cant_sprint_power_end  = 0.30 ;порог силы больше которого актер сможет бежать в спринте
+
cant_sprint_power_end  = 0.30 ;порог силы, больше которого ГГ сможет бежать в спринте
  
can_sleep_callback = dream.can_sleep_callback ;Сны.Не рабочий конфиг
+
can_sleep_callback = dream.can_sleep_callback ;Сон
sleep_video_name_callback = dream.sleep_video_name_callback ;Сны.Не рабочий конфиг
+
sleep_video_name_callback = dream.sleep_video_name_callback
  
[actor_damage] ;А вот и он родимый.Отвечает за то сколько отнимаеться у актора жизней если ему попали в ОПРЕДЕЛЕННУЮ часть тела!
+
[actor_damage] ;Отвечает за то, сколько отнимаеться у ГГ жизней если ему попали в определённую часть тела. Выше мы видели ссылку на него.
 
;bone_name = <hit_scale>,<fwd_damage_anim_index>,<wound_scale>
 
;bone_name = <hit_scale>,<fwd_damage_anim_index>,<wound_scale>
 
;<hit_scale> - коэфф. изменения хита (уменьшения здоровья)  
 
;<hit_scale> - коэфф. изменения хита (уменьшения здоровья)  
Строка 372: Строка 425:
  
  
[actor_hit_snds] ;Звуки при атаке на актора
+
[actor_hit_snds] ;Звуки разных воздействий на ГГ
burn =actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Если ГГ горит
+
burn =actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Горение
shock =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Если ГГ попал в электру
+
shock =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Электрошок
strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Если ГГ упал с большой высоты
+
strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Падение с большой высоты
wound =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Если ГГ укусили
+
wound =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Укус
radiation =monsters\biting\def_0; actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 ;Не рабочий конфиг но как я понял звук при попадании в зоу радиации...
+
radiation =monsters\biting\def_0; actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 ;Радиация
telepatic =actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Если контролер использовал пси атаку
+
telepatic =actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Пси-атака
fire_wound =actor\bullet_hit_1,actor\bullet_hit_2,actor\bullet_hit_3,actor\bullet_hit_4 ;Если попали из оружия
+
fire_wound =actor\bullet_hit_1,actor\bullet_hit_2,actor\bullet_hit_3,actor\bullet_hit_4 ;Огнестрел
; actor\pain_1,actor\pain_3,actor\pain_4,actor\pain_5,actor\pain_6,actor\pain_7,actor\pain_8 ;Закоментированые звуки.Если расскоментировать то они буду тприсутствовать в игре
+
; actor\pain_1,actor\pain_3,actor\pain_4,actor\pain_5,actor\pain_6,actor\pain_7,actor\pain_8 ;Закоментированые звуки. Если расскоментировать, то они будут присутствовать в игре
chemical_burn =actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Если попал в "Ведьмин студень"
+
chemical_burn =actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Химическое воздействие
explosion =affects\tinnitus3a ;Если был взрыв...Вроде бы не рабочий конфиг
+
explosion =affects\tinnitus3a ;Взрыв
wound_2 =actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 ;Если ГГ порезался(началось кровотечение)
+
wound_2 =actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 ;Ранение, повлёкшее кровотечение
physic_strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Не совсем понятно но если ГГ во что то врезался...
+
physic_strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Удар предметами (например, которые пускает полтергейст на ГГ)
 
</lua>
 
</lua>
Разобрались?Отлично.Я хотел рассказать про инклуды,ну так вот они используються для определения конфигурационных файлов.Например вы создали новый конфиг и записали туда параметры но словили еррор.А все потому что игра не знает что вы добавили этот конфиг.Определить его легко.Открываем например config/system.ltx и добавляем инклуд.Все очень просто:#include "название_файла.ltx" если скрипт в другой папке тогда пишем #include "название_папки/название_файла.ltx".Перейдем дальше,посмотрим например config/creatures/game_relations.ltx
+
Разобрались? Отлично. Теперь про инклуды. Допустим, вы создали новый конфиг (например, с оружием или предметами). Его обязательно нужно отметить в игре, иначе игра его попросту не увидит. Открываем, например, '''''config/system.ltx''''' и добавляем инклуд. В начале файла пишем ''#include "название_файла.ltx"''; если файл в папке отличной от '''''system.ltx''''', пишем ''#include "название_папки/название_файла.ltx"''.
 +
 
 +
=== Файл game_relations.ltx ===
 +
Идём дальше, посмотрим, например, файл '''''config/creatures/game_relations.ltx'''''
 
<lua>
 
<lua>
 
[game_relations]
 
[game_relations]
;Разделение ранга,не нужен для редактирования
+
rating = novice, 300, experienced, 600, veteran, 900, master ;При каком значении опыта повышается ранг. То есть, изначально идёт novice (новичок), при достижении 300 ГГ (или любой NPC, хотя у них опыт прописывается изначально) становится expirienced (опытный). Дальнейшие несколько параметров используют тот же принцип.
rating = novice, 300, experienced, 600, veteran, 900, master
+
monster_rating = weak, 400, normal, 800, strong ;Аналогично предыдущему, но относится к монстрам, слабый-обычный-сильный. Используется в статистике.
monster_rating = weak, 400, normal, 800, strong
+
reputation = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent ;Репутация ГГ или NPC
reputation = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent
+
  
 
;шкалы для вывода названий вместо чисел  
 
;шкалы для вывода названий вместо чисел  
 
;рейтингов, репутаций и благосклонности в интерфейсе
 
;рейтингов, репутаций и благосклонности в интерфейсе
rating_names = novice, 300, experienced, 600, veteran, 900, master
+
rating_names = novice, 300, experienced, 600, veteran, 900, master ;В общем, аналогично параметру rating
reputation_names = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent
+
reputation_names = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent ;Это тоже
goodwill_names      = enemy, -400, indifferent, 500, friendly
+
goodwill_names      = enemy, -400, indifferent, 500, friendly ;А это уже отношение персонажей друг к другу, враг-нейтрал-друг.
  
;пороговые значения для отношения персонажей.Тобишь репутация к персонажу и ее порог при которой НПС становиться другом или врагов.Приведу пример,мы создали диалог в котором даем 500 репутации.Значит НПС достиг порога в репутации к вам и стал другом.Если чуть меньше(450 например) то никакого эффекта не будет и НПС так и останеться нейтрален)
+
;пороговые значения для отношения персонажей. Репутация к персонажу и ее порог, при которой НПС становиться другом или врагом. Допустим, мы создали диалог, в котором даем 500 репутации. Значит, НПС достиг порога в репутации к вам и стал другом. Если чуть меньше(450, например), то никакого эффекта не будет и НПС так и останеться нейтрален).
 
attitude_neutal_threshold = -400 ;когда attitude меньше значения, то выставляется ALife::eRelationEnemy
 
attitude_neutal_threshold = -400 ;когда attitude меньше значения, то выставляется ALife::eRelationEnemy
 
attitude_friend_threshold =  500 ;когда attitude меньше значения, то выставляется ALife::eRelationNeutral, иначе ALife::eRelationFriend
 
attitude_friend_threshold =  500 ;когда attitude меньше значения, то выставляется ALife::eRelationNeutral, иначе ALife::eRelationFriend
Строка 409: Строка 464:
 
goodwill_friend = 1000
 
goodwill_friend = 1000
  
;названия группировок,есть хорошая статейка про добавление группировок в игру,советую почитать но для новичков будет слишком трудно:[http://stalkerin.gameru.net/wiki/index.php/Создание_новой_группировки]
+
;названия группировок; рекомендуется к прочтению сразу после этой статьи (создание новой группировки):[http://stalkerin.gameru.net/wiki/index.php/Создание_новой_группировки]
 
communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16
 
communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16
 
+
;Помим, что зомбированные (но не просто зомби) технически являются отдельной группировкой.
  
 
; отношение персонажа к актеру (или другому NPC) вычисляется по формуле
 
; отношение персонажа к актеру (или другому NPC) вычисляется по формуле
Строка 420: Строка 475:
 
;   rank_goodwill //отношение ранга персонажа к рангу актера из [rank_relations]
 
;   rank_goodwill //отношение ранга персонажа к рангу актера из [rank_relations]
  
[communities_relations] ;Отношения группировок к Actor`у и другим группировкам.Если отношения уходят в минус(-) то они враги для той или иной группировки
+
[communities_relations] ;Отношения группировок к Actor`у и другим группировкам. Если отношения уходят в минус(-), то они враги для той или иной группировки
 
; |actor  |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg  |freedom|bandit |zombied|strange|trader |arena_enemy|
 
; |actor  |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg  |freedom|bandit |zombied|strange|trader |arena_enemy|
 
;=================================================================================================================================
 
;=================================================================================================================================
Строка 440: Строка 495:
 
arena_enemy =   -5000,  -5000,  -5000,  -5000,  -5000,  -5000,      0,      0,      0,  -5000,  -5000,      0,      0,   0,      0
 
arena_enemy =   -5000,  -5000,  -5000,  -5000,  -5000,  -5000,      0,      0,      0,  -5000,  -5000,      0,      0,   0,      0
  
[rank_relations] ;Не рабочий кофиг...
+
[rank_relations] ;Судя по всему, отношение рангов друг к другу. Не файт, что используется в игре.
 
;   novice, experienced, veteran, master
 
;   novice, experienced, veteran, master
 
;================================================================
 
;================================================================
Строка 450: Строка 505:
  
  
[reputation_relations] ;Этот вроде тоже
+
[reputation_relations] ;Судя по всему, отношение репутаций друг к другу.
 
;   terrible, very_bad, bad, neutral, good, very_good, excellent
 
;   terrible, very_bad, bad, neutral, good, very_good, excellent
 
;================================================================
 
;================================================================
Строка 504: Строка 559:
 
community_goodwill_limits = -3000, 1000  
 
community_goodwill_limits = -3000, 1000  
 
;-------------------------------------------------------
 
;-------------------------------------------------------
free_friend_attack_goodwill = -2500 ;Свободная аттака друга(понижаеться отношение)
+
free_friend_attack_goodwill = -2500 ;Свободная аттака друга (понижается отношение)
free_neutral_attack_goodwill = -1000 ;Свободная аттака по нейтралу(понижаеться отношение)
+
free_neutral_attack_goodwill = -1000 ;Свободная аттака по нейтралу (понижается отношение)
free_enemy_attack_goodwill = 0 ;Свободная аттака врага(понижаеться отношение)
+
free_enemy_attack_goodwill = 0 ;Свободная аттака врага (понижается отношение)
  
danger_friend_attack_goodwill = -200 ;Аттака друга при опасности(понижаеться отношение)
+
danger_friend_attack_goodwill = -200 ;Аттака друга при опасности (понижается отношение)
danger_neutral_attack_goodwill = -200 ;Аттака нейтрала при опасности(понижаеться отношение)
+
danger_neutral_attack_goodwill = -200 ;Аттака нейтрала при опасности (понижается отношение)
danger_enemy_attack_goodwill = 0 ;Аттака врага при опасности(понижаеться отношение)
+
danger_enemy_attack_goodwill = 0 ;Аттака врага при опасности (понижается отношение)
  
free_friend_attack_reputation = -20 ;Свободная аттака друга(понижаеться репутация)
+
free_friend_attack_reputation = -20 ;Свободная аттака друга (понижается репутация)
free_neutral_attack_reputation = -10 ;Свободная аттака нейтрала(понижаеться репутация)
+
free_neutral_attack_reputation = -10 ;Свободная аттака нейтрала (понижается репутация)
free_enemy_attack_reputation = 0  ;Свободная аттака врага(понижаеться репутация)
+
free_enemy_attack_reputation = 0  ;Свободная аттака врага (понижается репутация)
  
danger_friend_attack_reputation = 0 ;Аттака друга при опасности(понижаеться репутация)
+
danger_friend_attack_reputation = 0 ;Аттака друга при опасности (понижается репутация)
danger_neutral_attack_reputation = 0 ;Аттака нейтрала при опасности(понижаеться репутация)
+
danger_neutral_attack_reputation = 0 ;Аттака нейтрала при опасности (понижается репутация)
danger_enemy_attack_reputation = 0 ;Аттака врага при опасности(понижаеться репутация)
+
danger_enemy_attack_reputation = 0 ;Аттака врага при опасности (понижается репутация)
 
;--------------------------------------------------
 
;--------------------------------------------------
;(с) мин. время через которое снова будет зарегистрировано  
+
;(с) мин. время, через которое снова будет зарегистрировано  
;сообщение об атаке на персонажа, и соответственно вычтеся attack_goodwill и attack_reputation
+
;сообщение об атаке на персонажа, и, соответственно, вычтется attack_goodwill и attack_reputation
 
;(работает аналогично и при помощи другим персонажам в бою)
 
;(работает аналогично и при помощи другим персонажам в бою)
 
min_attack_delta_time = 3
 
min_attack_delta_time = 3
  
friend_kill_goodwill = -1000 ;Свободное убийство друга(понижаеться отношение)
+
friend_kill_goodwill = -1000 ;Свободное убийство друга (понижается отношение)
neutral_kill_goodwill = -1000 ;Свободное убийство нейтрала(понижаеться отношение)
+
neutral_kill_goodwill = -1000 ;Свободное убийство нейтрала (понижается отношение)
enemy_kill_goodwill = 0 ;Свободное убийство врага(понижаеться отношение)
+
enemy_kill_goodwill = 0 ;Свободное убийство врага (понижается отношение)
community_member_kill_goodwill  = -1000 ;Хз что за конфиг :)
+
community_member_kill_goodwill  = -1000 ;Неизвестно
  
 
;убийство члена группировки отражается на отношении
 
;убийство члена группировки отражается на отношении
Строка 538: Строка 593:
  
 
;
 
;
; помощь актера персонажу во время боя
+
; помощь ГГ персонажу во время боя
 
;
 
;
 
fight_remember_time = 10 ;(c) время которое про драку будет помнить реестр
 
fight_remember_time = 10 ;(c) время которое про драку будет помнить реестр
Строка 578: Строка 633:
  
 
[monster_communities]
 
[monster_communities]
;номера team которые присваиваются соответствующим видам
+
;номера, которые присваиваются соответствующим видам
 
;255 - команда не задается   
 
;255 - команда не задается   
 
communities = actor, 255, human, 255, arena_monstr, 39, boar, 40, bloodsucker, 41, flesh, 42,  dog, 43, pseudodog, 44, cat, 45, chimera, 46, giant, 47, zombie, 48,  burer, 49, controller, 50, poltergeist, 51, snork, 52, fracture, 53, bird, 54, rat, 55, tushkano, 56
 
communities = actor, 255, human, 255, arena_monstr, 39, boar, 40, bloodsucker, 41, flesh, 42,  dog, 43, pseudodog, 44, cat, 45, chimera, 46, giant, 47, zombie, 48,  burer, 49, controller, 50, poltergeist, 51, snork, 52, fracture, 53, bird, 54, rat, 55, tushkano, 56
Строка 607: Строка 662:
 
tushkano = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
 
tushkano = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
 
</lua>
 
</lua>
Рассмотрим какого нибудь монстра.Например плоть:
+
=== Монстры ===
 +
Рассмотрим какого нибудь монстра. Например, плоть:
 
<lua>
 
<lua>
 
;===========================================================================
 
;===========================================================================
 
; ПЛОТЬ
 
; ПЛОТЬ
 
;===========================================================================
 
;===========================================================================
[m_flesh_e]:monster_base ;Секция и ее отец :)
+
[m_flesh_e]:monster_base
 
GroupControlSection = spawn_group
 
GroupControlSection = spawn_group
 
SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_gravi_zone
 
SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_gravi_zone
Строка 620: Строка 676:
 
Scheduled     = on ; option for ALife Simulator
 
Scheduled     = on ; option for ALife Simulator
 
Human     = off ; option for ALife Simulator
 
Human     = off ; option for ALife Simulator
Health     = 250 ; кол-во жизней но вроде ни на что не влияет
+
Health     = 250 ; количество жизней в оффлайне (то есть на расстоянии, указанном в параметре switch_distance из файла alife.ltx)
MinSpeed     = 1.0 ; мин. скорость перемещения
+
MinSpeed     = 1.0 ; мин. скорость перемещения в оффлайне
MaxSpeed     = 1.5 ; макс. скорость перемещения
+
MaxSpeed     = 1.5 ; макс. скорость перемещения в оффлайне
going_speed          = 2.0                      ; скорость бега вроде бы
+
going_speed          = 2.0                       
 
current_level_going_speed = 1;2 ; option for ALife Simulator
 
current_level_going_speed = 1;2 ; option for ALife Simulator
search_speed        = .5                      ; скорость поиска чего либо...
+
search_speed        = .5                      ; скорость поиска чего-либо
visual = monsters\flesh\flesh ;Визуал живой плоти
+
visual = monsters\flesh\flesh ;Модель живой плоти
corpse_visual = monsters\flesh\flesh_dead ;Визуал мертвой плоти о_О
+
corpse_visual = monsters\flesh\flesh_dead ;Модель мертвой плоти
icon = ui_npc_monster_flesh ;Иконка
+
icon = ui_npc_monster_flesh ;Иконка при обыске
MaxHealthValue     = 1.0 ; сколько макс. может быть жизней у Плоти.Варьируеться от 0 до того значения которое вы поставили
+
MaxHealthValue     = 1.0 ; Максимальное количество жизней.
 
DynamicObjectsCount = 32
 
DynamicObjectsCount = 32
smart_terrain_choose_interval = 00:15:00 ;Вроде бы по скольку плоть ходит на остальных смарт террейнах...
+
smart_terrain_choose_interval = 00:15:00
  
  
Spawn_Inventory_Item_Section = mutant_flesh_eye ;Что выпадает с плоти
+
Spawn_Inventory_Item_Section = mutant_flesh_eye ;Что можно найти при обыске. Берётся из файла monster_items.ltx
Spawn_Inventory_Item_Probability = 0.2 ;Шанс выпадения предмета,если поставить 1.0 то 100% будет выпадать 1 глаз плоти.Если поставить 2.0 то 100% что 2 глаза.
+
Spawn_Inventory_Item_Probability = 0.2 ;Шанс выпадения части тела, если поставить 1.0, то будет выпадать всегда. При значении 2.0 попадётся две части.
  
 
ef_creature_type = 7 ; option for evaluation functions
 
ef_creature_type = 7 ; option for evaluation functions
Строка 665: Строка 721:
 
ph_mass     = 200;100 ; also it's the food
 
ph_mass     = 200;100 ; also it's the food
  
destroyed_vis_name = physics\dead_body\skelet_crash_monster
+
destroyed_vis_name = physics\dead_body\skelet_crash_monster ;то, что останется при попадении монстра, например, в "Карусель"
  
 
;----------------------------------------------------------------------------
 
;----------------------------------------------------------------------------
ph_skeleton_airr_lin_factor  = 2.0 ;550.0 (изменно из-за того, что убрано домножение коэффициент 0.002 из кода)
+
ph_skeleton_airr_lin_factor  = 2.0 ;550.0 (изменно из-за того, что убрано домножение коэффициент 0.002 из кода) -Комментарии от GSC, проходим мимо
 
ph_skeleton_airr_ang_factor  = 0.0 ;0.0 (изменно из-за того, что убрано домножение на коэффициент 0.3 из кода (0.0*0.3=0.0))
 
ph_skeleton_airr_ang_factor  = 0.0 ;0.0 (изменно из-за того, что убрано домножение на коэффициент 0.3 из кода (0.0*0.3=0.0))
 
ph_skeleton_hinger_factor1    = 1.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода)
 
ph_skeleton_hinger_factor1    = 1.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода)
Строка 679: Строка 735:
  
 
;----------------------------------------------------------------------------
 
;----------------------------------------------------------------------------
; Передвежение и акселерация при движении
+
; Передвежение и ускорение при движении
 
;----------------------------------------------------------------------------
 
;----------------------------------------------------------------------------
  
Строка 697: Строка 753:
  
 
;--------------------------------------------------------------------------
 
;--------------------------------------------------------------------------
; Параметры аттаки
+
; Параметры атаки
 
;--------------------------------------------------------------------------
 
;--------------------------------------------------------------------------
  
Строка 714: Строка 770:
 
;-------------------------------------------------------------------------
 
;-------------------------------------------------------------------------
  
satiety_v = 0.0001 ;0.01 ;Скорость голодания у плоти(аналог у Actor`a)
+
satiety_v = 0.0001 ;0.01 ;Скорость увеличения голода
radiation_v = 0.00001 ;0.004 ;Скорость вывода радиации из организма(аналог у Actor`a)
+
radiation_v = 0.00001 ;0.004 ;Скорость вывода радиации из организма
satiety_power_v = 0.005 ;0.01 ;Чем меньше голод тем больше у плоти будет макс. энергии
+
satiety_power_v = 0.005 ;0.01 ;Чем меньше голод, тем больше у плоти будет макс. энергии
satiety_health_v = 0.0005 ;0.001 ;0.03 ;Чем меньше голод тем больше у плоти будет макс. жизни
+
satiety_health_v = 0.0005 ;0.001 ;0.03 ;Чем меньше голод, тем больше у плоти будет макс. жизни
satiety_critical = -1.0 ;0.25 ;Крит. значение голода(Плоть должна проголодаться 2 раза для того чтобы начать умирать)
+
satiety_critical = -1.0 ;0.25 ;Крит. значение голода
radiation_health_v = 0.01 ;0.006 ;Вроде бы сколько радиация снижает жизни...
+
radiation_health_v = 0.01 ;0.006 ;Уменьшение здоровья при воздействии радиации
morale_v = 0.01 ;Вроде бы сколько воздействие телепатии снижает жизни...
+
morale_v = 0.01
 
health_hit_part = 1.0 ;0.8
 
health_hit_part = 1.0 ;0.8
 
power_hit_part = 1.0 ;0.9
 
power_hit_part = 1.0 ;0.9
 
psy_health_v = 0.1 ;скорость восстановления пси-здоровья
 
psy_health_v = 0.1 ;скорость восстановления пси-здоровья
  
immunities_sect = flesh_immunities ;Секция иммунитета
+
immunities_sect = flesh_immunities ;Ссылка на секцию с параметрами иммунитета
  
 
;открытые раны
 
;открытые раны
 
bleeding_v = 0.04 ;потеря жизней при ране в секунду
 
bleeding_v = 0.04 ;потеря жизней при ране в секунду
 
wound_incarnation_v = 0.05 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)
 
wound_incarnation_v = 0.05 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)
min_wound_size = 0.01 ;Мин. параметр при котором начнеться кровотечение(если меньше то кончиться)
+
min_wound_size = 0.01 ;Мин. параметр, при котором начнеться кровотечение (если меньше, то кончится)
  
;Сон.Вроде бы не рабочий конфиг,хотя мутанты умеют спать...
+
;Сон
sleep_health = 1.0 ;1.5
+
sleep_health = 1.0 ;1.5 ;Восстановление различных параметров при сне
 
sleep_power = 1.0 ;1.5
 
sleep_power = 1.0 ;1.5
 
sleep_satiety = 1.0 ;0.8
 
sleep_satiety = 1.0 ;0.8
Строка 739: Строка 795:
 
sleep_psy_health = 1.0
 
sleep_psy_health = 1.0
  
eat_freq = 5.0 ; ўрёЄюЄр єъєёют т ёхъ
+
eat_freq = 5.0
eat_slice = 0.01 ; єтхышўхэшх ёvЄюёЄш яЁш 1 єъєёх
+
eat_slice = 0.01
eat_slice_weight = 10.0 ; єьхэ№°хэшх хфv є ЄЁєяр
+
eat_slice_weight = 10.0
  
satiety_threshold = 0.5 ; below this value monster fill hunger
+
satiety_threshold = 0.5 ; если значение ниже 0.5, монстр становится голодным
  
 
;---------------------------------------------------------
 
;---------------------------------------------------------
Строка 752: Строка 808:
 
max_hear_dist = 40 ;Дистанция на которой слышны звуки
 
max_hear_dist = 40 ;Дистанция на которой слышны звуки
  
sound_idle = monsters\flesh\flesh_idle_ ;Звук ходьбы
+
sound_idle = monsters\flesh\flesh_idle_ ;Звук ходьбы. Открыв эту папку, видим файлы с названиями типа flesh_idle_0, flesh_idle_1 и тд. Как видим в параметре на конце названия отсутствует цифра, значит будут использоваться все файлы в этой папке, начинающиеся на flesh_idle_
 
sound_eat = monsters\flesh\flesh_eat_ ;Звук поедания
 
sound_eat = monsters\flesh\flesh_eat_ ;Звук поедания
 
sound_aggressive = monsters\flesh\flesh_aggressive_ ;Звук агрессии
 
sound_aggressive = monsters\flesh\flesh_aggressive_ ;Звук агрессии
sound_attack_hit = monsters\flesh\flesh_attack_ ;Звук когда аттака проходит успешн
+
sound_attack_hit = monsters\flesh\flesh_attack_ ;Звук атаки
 
sound_take_damage = monsters\flesh\flesh_pain_ ;Звук получения урона
 
sound_take_damage = monsters\flesh\flesh_pain_ ;Звук получения урона
 
sound_die = monsters\flesh\flesh_death_ ;Звук смерти
 
sound_die = monsters\flesh\flesh_death_ ;Звук смерти
sound_threaten = monsters\flesh\flesh_attack_ ;Звук аттаки
+
sound_threaten = monsters\flesh\flesh_attack_ ;Звук угрозы в сторону противника
sound_landing = monsters\biting\def_ ;Непонятно что за звук
+
sound_landing = monsters\biting\def_ ;Звук падения
sound_steal = monsters\biting\def_ ;Туда же
+
sound_steal = monsters\biting\def_ ;Монстр крадётся
 
sound_panic = monsters\flesh\flesh_panic_ ;Звук паники
 
sound_panic = monsters\flesh\flesh_panic_ ;Звук паники
sound_growling = monsters\biting\def_ ;Опять непонятно
+
sound_growling = monsters\biting\def_ ;Возможно, звук подъема на ноги. Этот и предыдущие звуки с таким значением параметра пуст.
 
sound_die_in_anomaly = monsters\flesh\flesh_anomaly_death_ ;Звук при умирании в аномалии
 
sound_die_in_anomaly = monsters\flesh\flesh_anomaly_death_ ;Звук при умирании в аномалии
;sound_distant = monsters\dog\flesh_distant_ ; только для расстояний свыше 200м
+
;sound_distant = monsters\dog\flesh_distant_ ; только для расстояний свыше switch_distance
  
 
killer_clsids = Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE
 
killer_clsids = Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE
Строка 777: Строка 833:
  
 
;---------------------------------------------------------
 
;---------------------------------------------------------
; Виденье
+
; Зрение
 
;---------------------------------------------------------
 
;---------------------------------------------------------
  
Строка 801: Строка 857:
 
;---------------------------------------------------------
 
;---------------------------------------------------------
  
DayTime_Begin = 6 ; Во сколько для плотей начинаеться день...
+
DayTime_Begin = 6 ; Начало дня для монстра
DayTime_End = 21 ; Во сколько для плотей кончаеться день...
+
DayTime_End = 21 ; Конец дня для монстра
Min_Satiety = 0.4 ;0.6 ; Хм...Еще один параметр голодания вроде бы...
+
Min_Satiety = 0.4 ;0.6 ; Минимальное значение голода
Max_Satiety = 1.0 ; И этот тоже
+
Max_Satiety = 1.0 ; Максимальное значение голода
  
  
 
;-------------------------------------------------------------------------
 
;-------------------------------------------------------------------------
; Мораль(Хрен его знает что такое но вроде бы ПСИ здоровье)
+
; Мораль (возможно, что-то типа пси-здоровья, или оно и есть)
 
;-------------------------------------------------------------------------
 
;-------------------------------------------------------------------------
  
Строка 819: Строка 875:
  
 
;-------------------------------------------------------------------------
 
;-------------------------------------------------------------------------
; Other Stuff (refactoring needed)
+
; Прочее
 
;-------------------------------------------------------------------------
 
;-------------------------------------------------------------------------
  
critical_wound_threshold = 0.4
+
critical_wound_threshold = 0.4 ;Критический порог ранения
 
critical_wound_decrease_quant = 0.
 
critical_wound_decrease_quant = 0.
  
Строка 835: Строка 891:
  
  
distance_to_corpse = 0.9; фшёЄ. фю ЄЁєяр, яЁш ъюЄюЁющ юэ яхЁхїюфшЄ т ёюёЄю эшх хфv
+
distance_to_corpse = 0.9
 
selector_approach =      20.0,            1.0,                1000.0,            0.0,              0.0, 1000.0, 10000.0,       
 
selector_approach =      20.0,            1.0,                1000.0,            0.0,              0.0, 1000.0, 10000.0,       
  
Строка 852: Строка 908:
  
 
;=================================================================================
 
;=================================================================================
; Урон флешке(точнее места и их иммунитет)
+
; Урон для каждой части тела
 
;=================================================================================
 
;=================================================================================
 
[m_Flesh_damage]
 
[m_Flesh_damage]
Строка 868: Строка 924:
  
 
;=================================================================================
 
;=================================================================================
; Flesh Terrain(Хрен его знает лучше не трогать)
+
; Где может ходить, изменять бессмысленно
 
;=================================================================================
 
;=================================================================================
 
[flesh_terrain]
 
[flesh_terrain]
Строка 875: Строка 931:
  
 
;===========================================================================
 
;===========================================================================
; Евенты хождения...
+
; Параметры перемещения
 
;===========================================================================
 
;===========================================================================
 
[m_flesh_step_params]
 
[m_flesh_step_params]
Строка 889: Строка 945:
  
 
;===========================================================================
 
;===========================================================================
; Иммунитет(Полный аналог Actor`a)
+
; Иммунитет (Аналог иммунитета ГГ)
 
;===========================================================================
 
;===========================================================================
 
[flesh_immunities]
 
[flesh_immunities]
burn_immunity = 1.0 ;ъю¤ЇЇшЎшхэЄv шььєэшЄхЄр
+
burn_immunity = 1.0
 
strike_immunity = 1
 
strike_immunity = 1
 
shock_immunity = 1.0
 
shock_immunity = 1.0
Строка 904: Строка 960:
  
 
;===========================================================================
 
;===========================================================================
; Специальный эффекты
+
; Специальные эффекты
 
;===========================================================================
 
;===========================================================================
 
[m_flesh_attack_effector]
 
[m_flesh_attack_effector]
Строка 931: Строка 987:
  
 
;===========================================================================
 
;===========================================================================
; Атаки анимации и пр.
+
; Параметры урона врагам
 
;===========================================================================
 
;===========================================================================
  
Строка 937: Строка 993:
 
;---------------------------------------------------------------------------------------------------------------------------------------------
 
;---------------------------------------------------------------------------------------------------------------------------------------------
 
; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  | Field of hit_test  (left,right, top, bottom) | Test Dist
 
; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  | Field of hit_test  (left,right, top, bottom) | Test Dist
 +
;                    время, урон   на сколько    направленный
 +
; тратящееся отлетит пр-к    импульс
 +
; на удар   при смерти
 
;---------------------------------------------------------------------------------------------------------------------------------------------
 
;---------------------------------------------------------------------------------------------------------------------------------------------
;Left leg strike
+
;Удар левой ногой
 
stand_attack_0 =   0.25, 0.26,     70,        0.0, 0.5, 1.0, -1.0, 1.0, -1.0, 1.0,   2.5
 
stand_attack_0 =   0.25, 0.26,     70,        0.0, 0.5, 1.0, -1.0, 1.0, -1.0, 1.0,   2.5
;Both leg strike
+
;Удар обоими ногами
 
stand_attack_1 =   0.30, 0.40,     150,        0.0, 0.5, 1.0, -1.0, 1.0, -1.0, 1.0,   2.5
 
stand_attack_1 =   0.30, 0.40,     150,        0.0, 0.5, 1.0, -1.0, 1.0, -1.0, 1.0,   2.5
 
stand_attack_2 =   0.30, 0.40,     150,        0.0, 0.5, 1.0, -1.0, 1.0, -1.0, 1.0,   2.5
 
stand_attack_2 =   0.30, 0.40,     150,        0.0, 0.5, 1.0, -1.0, 1.0, -1.0, 1.0,   2.5
Строка 949: Строка 1008:
  
 
;*********************************************************************************
 
;*********************************************************************************
; Профиль легкой плоти
+
; Профиль слабой плоти
 
;*********************************************************************************
 
;*********************************************************************************
  
[flesh_weak]:m_flesh_e ;Используються конфиги от отца(m_flesh_e)
+
[flesh_weak]:m_flesh_e ;Как видим, за основу берётся основной конфиг плоти
 
$spawn = "monsters\fleshes\flesh_01_weak"
 
$spawn = "monsters\fleshes\flesh_01_weak"
 
visual = monsters\flesh\flesh
 
visual = monsters\flesh\flesh
Строка 961: Строка 1020:
 
immunities_sect = flesh_immunities_weak ;Иммунитет сильной флешки...
 
immunities_sect = flesh_immunities_weak ;Иммунитет сильной флешки...
 
attack_params = flesh_attack_params_weak
 
attack_params = flesh_attack_params_weak
spec_rank = weak ;Специальный ранг для другого вида флешек
+
spec_rank = weak ;Ранг монстра, позже отображающийся в нашей статистике (если поставить у слабой плоти этот параметр равным strong, то за убийство таких плотей будут прибавляться сильные)
community = flesh ;Эт хз зачем писать но пусть будет
+
community = flesh ;К какому типу монстра относится. Берётся из game_relations.ltx
  
[flesh_immunities_weak] ;Иммунитет сильной флешки...
+
[flesh_immunities_weak] ;Иммунитет слабой плоти
 
burn_immunity = 1.0
 
burn_immunity = 1.0
 
strike_immunity = 1
 
strike_immunity = 1
Строка 975: Строка 1034:
 
fire_wound_immunity = 0.6
 
fire_wound_immunity = 0.6
  
[flesh_attack_params_weak]
+
[flesh_attack_params_weak] ;Параметры атаки слабой плоти
 
;---------------------------------------------------------------------------------------------------------------------------------------------
 
;---------------------------------------------------------------------------------------------------------------------------------------------
 
; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  | Field of hit_test  (left,right, top, bottom) | Test Dist
 
; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  | Field of hit_test  (left,right, top, bottom) | Test Dist
Строка 987: Строка 1046:
  
 
;*********************************************************************************
 
;*********************************************************************************
; Профиль обычной плоти
+
; Профиль обычной плоти, всё как и раньше
 
;*********************************************************************************
 
;*********************************************************************************
  
Строка 1027: Строка 1086:
  
 
;*********************************************************************************
 
;*********************************************************************************
; Профиль сильной плоти!
+
; Профиль сильной плоти
 
;*********************************************************************************
 
;*********************************************************************************
  
Строка 1065: Строка 1124:
  
  
[flesh_group] ;Вроде бы для спавна групп...
+
[flesh_group] ;Возможно, просто параметры для SDK
 
GroupControlSection = spawn_group
 
GroupControlSection = spawn_group
 
;$spawn              = "monsters\flesh-group" ; option for Level Editor
 
;$spawn              = "monsters\flesh-group" ; option for Level Editor
Строка 1112: Строка 1171:
 
bip01_l_thigh
 
bip01_l_thigh
 
</lua>
 
</lua>
Перейдем дальше к config/gameplay:
+
=== Папка gameplay ===
Про него сказать нечего.Ну кроме того что:
+
Теперь переходим к '''''config/gameplay.'''''
Профили храняться в:
+
В файлах типа '''''character_desc_название_локации.xml''''' находится описание всех NPC, появляющихся в игре.
character_desc_название_локации.xml
+
Для примера разберем профиль Волка:
разберем например профиль волка:
+
Открываем файл '''''character_desc_escape.xml'''''
открываем config/gameplay/character_desc_escape.xml
+
 
<xml>
 
<xml>
<!---------------------------------------esc_wolf-----------------------------------------------------> --Мультикомментарий.Кстати в XML и Script файлах комментарии пишеться после --.Мультикомментариев в Конфигах и скриптах не существует!
+
<!---------------------------------------esc_wolf-----------------------------------------------------> <!--Эта строчка является всего лишь комментарием, чтобы проще было ориентироваться. Обращаем внимание на то, как в xml-файлах обозначаются комментарии-->
<specific_character id="esc_wolf" -- ID team_default = "1" --Можно не трогать...>
+
<specific_character id="esc_wolf" team_default = "1" <!--Подробнее в статьях, посященных созданию персонажей-->
<name>esc_wolf_name</name> --Имя
+
<name>esc_wolf_name</name> <!--Имя. Берётся из stable_bio_name.xml, может находиться в любом файле из папки text/rus; так же можно написать GENERATE_NAME_stalker и тогда в игре создастся уникальное имя (так же можно написать GENERATE_NAME_bandit, GENERATE_NAME_sergeant, GENERATE_NAME_private, GENERATE_NAME_captain, GENERATE_NAME_lieutenant)-->
<icon>ui_npc_u_stalker_neytral_balon_1</icon> --Иконка
+
<icon>ui_npc_u_stalker_neytral_balon_1</icon> <!--Иконка из файла ui_npc_unique.xml-->
<bio>esc_wolf_bio</bio> --Биография.Вроде бы при смерти даеться,хз...
+
<bio>esc_wolf_bio</bio> <!--Биография. В игре не используется.-->
  
<class>esc_wolf</class> --Класс
+
<class>esc_wolf</class>  
<community>stalker</community> -- группировка <terrain_sect>stalker_terrain</terrain_sect> --По каким террейнам он может шататься
+
<community>stalker</community> <!-- группировка --> <terrain_sect>stalker_terrain</terrain_sect>
 
 
<rank>434</rank> --Ранк
+
<rank>434</rank> <!--Ранг. Смотрим выше, при каких значениях какой ранг даётся-->
<reputation>5</reputation> --Репутация
+
<reputation>5</reputation> <!--Репутация-->
<money min="600" <!--Денег минимум> max="2000" <!--Денег максимум> infinitive="0"/ <!--Если поставить 1 то у волка будут бесконечные деньги(но вы один хрен не сможете ему продавать предметы стоимостью больше 2000 ибо ограничение в макс. кол-во денег>>
+
<money min="600" <!--Минимально возможное количество денег--> max="2000" <!--Максимально возможное количество денег--> infinitive="0"/> <!--Если поставить 1, то у Волка будут бесконечные деньги, но за раз не больше ограничений, указанных в этой строчке, хотя никто не запрещает торговать по нескольку раз-->
 
 
<snd_config>characters_voice\human_01\stalker\</snd_config> --Каким он говорил голосом
+
<snd_config>characters_voice\human_01\stalker\</snd_config> <!--Голос. Варианты в папке sounds\characters_voice\-->
<crouch_type>-1</crouch_type> --Что то там с приседанием
+
<crouch_type>-1</crouch_type> <!--Тип анимации приседания-->
 
   
 
   
<visual>actors\neytral\stalker_neytral_balon_1</visual> --Визуал(модель)
+
<visual>actors\neytral\stalker_neytral_balon_1</visual> <!--Модель. Ищем в папке meshes\actors. Там можно найти много моделей, не использующихся в игре, но вполне рабочих-->
<supplies> <!--А вот и самое няшное.Предметы.Здесь можно добавлять предметы в список.После каждого предмета обязательно ставить \n .Так же можно использовать в текстовых файлах чтобы начать предложение с новой строчки>
+
<supplies> <!--Список предметов, которые будут у NPC. Разделяются обязательно с помощью \n.-->
 
[spawn] \n
 
[spawn] \n
 
wpn_pm \n
 
wpn_pm \n
Строка 1145: Строка 1203:
 
hand_radio \n
 
hand_radio \n
 
</supplies>
 
</supplies>
+
<!--Дальше идут ссылки на диалоги, которые могут появиться у персонажа-->
#include "gameplay\character_criticals_4.xml" --Инклуд обычных диалогов
+
#include "gameplay\character_criticals_4.xml"
  
<start_dialog>escape_lager_volk_talk</start_dialog> --Стартовый диалог
+
<start_dialog>escape_lager_volk_talk</start_dialog> <!--Самый первый диалог с Волком-->
<start_dialog>dm_hello_dialog</start_dialog>
+
<start_dialog>dm_hello_dialog</start_dialog> <!--Приветствие-->
<actor_dialog>dm_cool_info_dialog</actor_dialog> --Обычные диалоги
+
<actor_dialog>dm_cool_info_dialog</actor_dialog> <!--Стандартный диалог об интересной инфе-->
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
+
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <!--Просит аптечку при ранении-->  
<actor_dialog>tm_wolf_dialog</actor_dialog>
+
<actor_dialog>tm_wolf_dialog</actor_dialog> <!--Работа-->  
<actor_dialog>tm_wolf_reward</actor_dialog>
+
<actor_dialog>tm_wolf_reward</actor_dialog> <!--Выдача награды за работу-->  
 
</specific_character>
 
</specific_character>
 
</xml>
 
</xml>
Впринципе все просто.Для работы с диалогами нужна сноровка и терпение,а так же прочтение статьи:[http://stalkerin.gameru.net/wiki/index.php/SoC._Создание_диалогов] там все очень подробно рассказано!
+
О создании своих диалогов очень подробно написано в статье - [http://stalkerin.gameru.net/wiki/index.php/SoC._Создание_диалогов Создание диалогов].
Так же есть infoportions.Хм даже не знаю как объяснить это.Кароче это такая функция которая используеться для определения событий например можно запретить возможность использовать один и тот же диалог много раз.Кстати хотел бы дополнить ту статью:
+
 
<xml>
+
На этом пока все.
<precondition>используеться для проверки на наличие предмета или денег.Вызываеться из скрипта</precondition>
+
 
<has_alife_info>Если известен инфопропортион</has_alife_info>
+
Стартер статьи: '''Fireman3000'''
<dont_has_alife_info>Если НЕ известен инфопропортион</dont_has_alife_info>
+
 
<give_info>Дает инфопропортион</give_info>
+
 
</xml>
+
----
На этом все.С вами был '''Fireman3000''' вторую часть я к сожалению написать не смогу...
+
Небольшие поправочки и замечания, ну уж совсем небольшие: '''Kiray'''
 +
 
 +
Довёл до ума: '''Madevi'''
 +
[[Категория:Неоформленные статьи]]

Текущая версия на 21:46, 26 декабря 2016

Внимание: Перед прочтением данной статьи ознакомтесь со следующей статьей: Распаковка игры.

Сейчас в мире модостроения сталкера слишком большое количество новичков, задающих тупые вопросы типа: «А как увеличить рост ГГ?», «А как уменьшить время закидывания болта?», «А как?», «Что?», «Почему?».

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

Файл system.ltx

Итак, с чего бы начать? Ну для начала, я думаю, надо начать с объяснения, что где лежит. Начнем с основного - config/system.ltx. В этом файле лежит основная информация об игре, инклуды к остальным конфигам (об этом позже), некоторые параметры инвентаря, прицела, крови, список тех, кого можно таскать и информация о некоторых файлах. Сейчас объясню подробнее про последнее. Например, у нас есть отдельные профили сталкеров. Но игра не будет их считывать из воздуха и, поэтому, прежде необходимо занести его в базу информации, совершив подобную операцию:

 
[profiles]
;список xml файлов, содержащих профили сталкеров и торговцев
files =  npc_profile
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
specific_characters_files = character_desc_general, character_desc_simulation,character_desc_escape, character_desc_garbage, character_desc_agroprom, character_desc_darkvalley, character_desc_deadcity, character_desc_bar, character_desc_yantar, character_desc_military, character_desc_radar, character_desc_pripyat, character_desc_aes, character_desc_kishka, character_desc_sarcofag, [<здесь мы ставим запятую] название_нашего_файла [<название файла не должно содержать пробелов, только знак подчеркивания. После последнего файла запятая не ставится]
 

Комментарии

Итак. Многие, наверно, заметили комментарии. То есть, пояснения, например, как это:

 
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
 
Так делают немногие люди, которые занимаются модостроением, ибо не хотят объяснять принцип действия своих конфигов и прочего. Но GSC часто оставляли подобные пояснения. В общем, функция эта далеко не бесполезная для людей, которые забывают что, где и как. Так же желательно писать комментарии для старых значений. Например, в одном из параметров было числовое значение 0.3, вы изменили на 0.2. Значит, желательно после 0.2 поставить знак начала комментария (То есть ";") и написать старое число. То есть, получится так: 0.2 ; 0.3. И самое главное: не забудьте символ ";"! Комментарии так же нельзя писать в несколько строк:
 
;Здесь комментарий
А здесь еще один
 

В этом случае игра может вылететь. Старайтесь либо умещать все в одном предложении, либо ставьте ";" перед каждой новой строкой комментария.

Секции

Так же существует такое определение, как секции, то есть, [название_секции]. Этот параметр отвечает за контроль нескольких опций внутри себя. Просмотрев какой-нибудь ltx-файл, нетрудно заметить, что он состоит из таких секций.

Если написано так: [название_секции]:другая_секция, это значит, что секция с названием название_секции берёт за основу секцию с названием другая_секция. Самый простой пример - открываем файл unique_items.ltx (он находится в папке misc и содержит в себе модифицированные оружие и броню), видим самую первую секцию [outfit_novice_m1]:novice_outfit, то есть это Аномальная кожанка, которая берёт за основу обычную куртку (из файла outfits.ltx), следовательно, в этой секции мы видим только те параметры костюма, которые были изменены.

Файл alife.ltx

Идём дальше, к файлу gamedata/config/alife.ltx. Здесь нет ничего интересного, кроме:

 
	time_factor	= 10 ;скорость течения игрового времени ;360 - скорость для демонстрации смены дня и ночи, если хотите сделать течение времени реальным, то измените параметр на 1
    switch_distance				= 150 ;Расстояние от ГГ, на котором все существа переходят на упрощенную систему симуляции жизни
    start_time					= 05:30:00	;Время начала новой игры
    start_date					= 01.05.2012    ;Дата начала новой игры
 

Папки

config/creatures - информация о ГГ, противниках и прочих существах. Например, их устойчивость к определенному виду урона. У ГГ много интересных настроек. Так же, здесь лежит информация об отношениях группировок к ГГ и между собой.

config/gameplay - информация о диалогах, профилях сталкеров (например, можно дать какому-нибудь бандиту вместо ПМ Грозу, но об этом позже), энциклопедии, заданиях (не их цели и награды, а текст, иконка и пр.).

config/misc - информация о предметах, спавне сталкеров, костюмах, артефактах, генераторе предметов в трупах, гулагах, квестовых предметах, аномалиях и торговцах.

config/models - подробные параметры для некоторых моделей игры, в том числе там находятся конфиги фонаря, транспорта и разрушаемых предметов.

config/scripts - логика персонажей (по каким местам им надо ходить, при каких обстоятельствах им надо бегать к той или иной точке и пр.) и дверей (открыта, закрыта, при каких обстоятельствах ей нужно быть открытой).

config/text/rus - текст. Если бы не эти файлы, мы бы видели в игре что-то типа «wpn_ak74_name» (хотя зачастую вместо этих идентификаторов можно писать русский текст). Стоит отметить одну интересную особенность - игра подгружает эти файлы все разом. То есть можно писать свой текст в любом из этих файлов, игра его в любом случае найдёт.

config/ui - информация об игровом интерфейсе (он же GUI).

config/weapons - конфиги оружия. Можно сделать их убойнее, поменять цену и многое другое. Там же можно добавить новые стволы.

config/weathers - конфиги погоды, подробнее в статье Настройка погоды и освещения

Папка creatures

Итак, по порядку. Первой папкой в списке у нас в списке была config/creatures:

actor.ltx - конфиг ГГ

damages.ltx - конфиг урона для нпс

game_relations.ltx - отношение группировок к ГГ и между собой

helicopter.ltx - конфиг вертолета

immunities.ltx - иммунитет. Возможно, устойчивость разных костюмов (не на ГГ) к воздействиям

monsters.ltx - файл, по сути обобщающий все конфиги монстров (игра сначала обращается к нему, а потом с помощью него находит остальные файлы)

m_army.ltx - конфиг военных

m_bandit.ltx - конфиг бандитов

m_bloodsucker.ltx - конфиг кровососа

m_boar.ltx - конфиг кабана

m_burer.ltx - конфиг бюрера

m_cat.ltx - конфиг кошки

m_chimera.ltx - конфиг химеры

m_controller.ltx - конфиг контролёра

m_crow.ltx - конфиг вороны

m_dog.ltx - конфиг собаки

m_dog_.ltx - неиспользуемый конфиг собаки

m_flesh.ltx - конфиг плоти

m_fraction.ltx - конфиг каких то солдат.

m_fracture.ltx - конфиг излома

m_giant.ltx - конфиг псевдогиганта

m_person.ltx - конфиг торговцев. Возможно, не используется

m_phantom.ltx - по идее, старый конфиг полтергейста, нет ничего интересного

m_poltergeist.ltx - конфиг полтергейста

m_pseudodog.ltx - конфиг псевдособаки

m_rat.ltx - конфиг крысы

m_snork.ltx - конфиг снорка

m_stalker.ltx - конфиг сталкеров

m_stalker_monolith.ltx - конфиг монолитовцев

m_stalker_zombied.ltx - конфиг зомбированных сталкеров (не путать с обычными зомби)

m_tushkano.ltx - конфиг тушканов

m_zombie.ltx - конфиг зомби

spawn_sections.ltx - подробнее - в темах, посвященные спавну сталкеров

stalkers.ltx - файл, обобщающий все конфиги людей

vssver.scc - вовсе ненужный файл

Файл actor.ltx

Ну что ж, глянем конфиг ГГ:

 
[actor_terrain]
	255,255,000,255 ;по сути, эти цифры - цвет (жёлтый) в формате RGB + прозрачность. Вкратце - он 
	;указывает на то, где позволено ходить объекту (есть специальные файлы, в которых карта частями
	;окрашена в разные сплошные цвета). В нашем случае абсолютно бесполезен (так как ГГ и так может
	;гулять где хочет), но, видимо указывается обязательно, хотя не факт, что используется в игре.
 
[actor]:common_ph_friction_params_on_npc_death
GroupControlSection		= spawn_group ;Нет необходимости изменять
$spawn 					= "actor" ;Нет необходимости изменять
$ed_icon				= ed\ed_actor ;Нет необходимости изменять
$player 				= on ;Нет необходимости изменять
$prefetch 				= 16  
cform                   = skeleton ;Нет необходимости изменять
class                   = O_ACTOR ;Класс. Нет необходимости изменять
money					= 40; ;Нерабочий конфиг
rank					= 3; ;Нерабочий конфиг
script_binding			= bind_stalker.actor_init ;Нет необходимости изменять
visual					= actors\hero\stalker_novice.ogf ;Модель при виде от 3-го лица, возможно, изменять её надо не здесь.
destroyed_vis_name		= physics\Dead_Body\skelet_crash ;Нет необходимости изменять
 
terrain					= actor_terrain ;Нет необходимости изменять; как видим, это ссылка на самую верхнюю секцию файла
 
max_item_mass			= 50.0 ;Сколько герой может носить кг. за плечами. Если число перевалит за 50, то для ГГ это будет предел и он будет очень быстро уставать.
jump_speed              = 6. ;Высота прыжка изменя на 20 будешь высоко прыгать
 
crouch_coef 			= 0.45 ;Скорость при передвежении вприсяди
climb_coef				= 0.7 ;Скорость при залезании на лестницу
run_coef                = 2.1 ;Скорость при быстром шаге
sprint_koef				= 2.6 ;Скорость при беге
run_back_coef			= 1.8 ;Скорость при быстром шаге назад
walk_back_coef			= 0.8 ;Скорость при хождении назад
air_control_param		= 0.1 ;Управляемость в прыжке. Нет смысла менять, только ради экспериментов 
walk_accel              = 17 ;Ускорение при ходьбе 
 
pickup_info_radius		= 5 ;Радиус, при котором над предметами выводятся их названия, если на них навести прицел
 
ef_creature_type		= 17 ;Нет необходимости изменять
 
; attach params
attachable_items		= device_torch,attachable_item,hand_radio ;Нет необходимости изменять
 
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 ;Нет необходимости изменять (Габариты ГГ в полном присяде)
stalker_restrictor_radius			= .55;0.55;0.75;0.9 ;Нет необходимости изменять
stalker_small_restrictor_radius		= .55 ;Нет необходимости изменять 
medium_monster_restrictor_radius	= 0.1 ;Нет необходимости изменять
ph_crash_speed_min      			= 14 ;Нет необходимости изменять
ph_crash_speed_max      			= 30 ;Нет необходимости изменять 
ph_collision_damage_factor			= 1.0 ;Нет необходимости изменять
ph_mass 							= 80 ;Нет необходимости изменять
 
weapon_bone0				= bip01_r_finger1 ;Нет необходимости изменять 
weapon_bone1				= bip01_l_finger1 ;Нет необходимости изменять
weapon_bone2				= bip01_r_finger11 ;Нет необходимости изменять
 
damage						= actor_damage ;Ссылка на секцию о повреждениях ГГ. Находится почти в самом низу конфига
 
hit_probability_gd_novice		= 0.20 ;Вероятность попадения в ГГ на разных сложностях. 
hit_probability_gd_stalker		= 0.30
hit_probability_gd_veteran		= 0.40
hit_probability_gd_master		= 0.50
hit_sounds					= actor_hit_snds ;Ссылка на секцию со звуками разных поврежддений ГГ. См. ниже.
;actor condition
 
immunities_sect				= actor_immunities_gd_master ;Ссылка на секцию с иммунитетом ГГ
condition_sect				= actor_condition ;Ссылка на секцию с описанием изменения состояния ГГ (при радиации, кровотечении и тп.)
 
heavy_breath_snd	= actor\breath_1 ;Звук тяжёлого дыхания при усталости	
heavy_blood_snd		= affects\heartbeat ;Звук при тяжёлом кровотечении
 
material						= creatures\actor ;Нет необходимости изменять
camera_height_factor			= 0.85 ;Высота камеры над землёй, попросту говоря, рост ГГ (параметр 0.95 самый приемлимый)
 
 
;Дисперсия стрельбы с учетом ходьбы и бега
disp_base					= 0.8 ;Угол (в градусах) разлета пуль, когда актёр стоит на месте
disp_aim					= 0.04
disp_vel_factor				= 2.0 ;На сколько увеличится дисперсия при скрости в 10 м/с (не обязательно при беге)
disp_accel_factor			= 2.0 ;Еще на сколько увеличится, если актёр бежит (+ скорость)
disp_crouch_factor			= -0.2 ;Уменьшение если актёр сидит
disp_crouch_no_acc_factor	= -0.4 ;Уменьшение если актёр сидит + без ускорения
;disp_jump_factor			= 2.0 ;Уменьшение при прыжке
 
missile_throw_offset = 0.3, 0.5, 0.5
 
body_remove_time = 60000	;Время уничтожения трупа (с учетом TimeFactor).
 
sleep_time_factor			= 1000	;400 ;Ускорение времени во сне. Все параметры, связанные со сном ГГ, не имеют смысла ввиду отсутствия сна в игре (сон в модах не использует параметры из этого файла)
max_sleep_hours				= 12
;species of monster
species				= actor ;Относится ко сну
 
 
;---STEP MANAGER------------------------------------------------------
LegsCount						= 2 ;Нет необходимости изменять
step_params						= stalker_step_manager ;Нет необходимости изменять
foot_bones						= stalker_foot_bones ;Нет необходимости изменять
 
memory_update_time			= 100 ;Нет необходимости изменять
 
; visibility parameters
;Параметры, которые ниже лучше не менять. Отвечают за видимость ГГ. Комментарии от GSC.
DynamicObjectsCount			= 32
min_view_distance   		= 1.0				; коэффициент, который множится на eye_range, в зависимости от угла
max_view_distance	 		= 1.0				; коэффициент, который множится на eye_range, в зависимости от угла
visibility_threshold	 	= 1.0				; значение, при достижении суммой которого объект считается видимым
always_visible_distance 	= 1.0
time_quant					= 0.005
decrease_value				= 0.1				; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам
velocity_factor		     	= 0.5
luminocity_factor			= 0.5;0 			; фактор освещения (только для Актёра)
transparency_threshold	 	= 0.4				; 0.25
still_visible_time			= 5000				; время, которое объект всё ещё считается видимым, даже если он уже не во фрустуме
 
[actor_immunities_gd_novice] ;Коэфециенты иммунитета на уровне сложности новичок. Чем меньше значение, тем меньше урон. Если поставить 0.0, ГГ станет практически бессмертным (сможет умереть только от радиации или кровотечения).
burn_immunity 				= 0.5	;Огонь (костер, жарка и тп.)
strike_immunity 			= 0.5   ;Удар (падение с большой высоты, аномалия "Карусель" и тп.)
shock_immunity 				= 0.5   ;Электрошок (Аномалия "Электра")
wound_immunity				= 0.5   ;Разрыв (Атаки животных, еще, возможно, аномалия "Мясорубка" и тп.)
radiation_immunity 			= 0.5   ;Радиация
telepatic_immunity 			= 0.5   ;Пси-воздействие
chemical_burn_immunity 		= 0.5   ;Хим. воздействие (аномалия "Холодец")
explosion_immunity 			= 0.1   ;Взрывы (Бочки, РПГ)
fire_wound_immunity  		= 0.5   ;Пулестойкость
 
 
[actor_immunities_gd_stalker]
burn_immunity 				= 0.00				 
strike_immunity 			= 0.00
shock_immunity 				= 0.00
wound_immunity				= 0.00
radiation_immunity 			= 0.00
telepatic_immunity 			= 0.00
chemical_burn_immunity 		= 0.00
explosion_immunity 			= 0.00
fire_wound_immunity  		= 0.00
 
[actor_immunities_gd_veteran]
burn_immunity 				= 0.8				
strike_immunity 			= 0.8
shock_immunity 				= 0.8
wound_immunity				= 0.8
radiation_immunity 			= 0.8
telepatic_immunity 			= 0.8
chemical_burn_immunity 		= 0.8
explosion_immunity 			= 0.6
fire_wound_immunity  		= 0.8
 
[actor_immunities_gd_master]
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
 
[actor_condition]
satiety_v					= 0.000015				;Скорость увеличения голода (если сделать больше, то и есть он будет хотеть быстрее)
radiation_v					= 0.0001				;Скорость уменьшения радиации
satiety_power_v				= 0.000055				;Увеличение выносливости при уменьшении сытости
satiety_health_v			= 0.0001				;Увеличение здоровья при уменьшении сытости 
satiety_critical			= 0.0					;Критическое значения сытости (в процентах от 0..1). При каком значении сытости начинает уменьшаться здоровье
radiation_health_v			= 0.004					;Уменьшение здоровья при воздействии радиации
morale_v					= 0.0001				;Скорость восстановления морали (что бы это не значило)						
psy_health_v				= 0.001					;Скорость восстановления пси-здоровья
alcohol_v					= -0.0003               ;Скорость уменьшения опьянения
health_hit_part				= 1.0					;Процент хита, уходящий на отнимание здоровья
power_hit_part				= 0.1					;Процент хита, уходящий на отнимание силы
max_power_leak_speed		= 0.0					;Накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени
max_walk_weight				= 60                    ;Максимальное кол-во таскаемого веса. Если значение хоть на 0.1 выше, то персонаж преестанет идти
 
bleeding_v					= 0.0005				;Потеря крови при кровотечении
wound_incarnation_v			= 0.003		 			;Скорость с которой пропадает кровотечение
min_wound_size				= 0.0256				;Минимальный размер раны, после которого она считается зажившей.
 
;--when actor in sleep
;Снова сон
satiety_v_sleep				= 0.00001
radiation_v_sleep			= 0.0003
satiety_power_v_sleep		= 0.0001
satiety_health_v_sleep		= 0.00001
radiation_health_v_sleep	= 0.001
morale_v_sleep				= 0.0
psy_health_v_sleep			= 0.0
 
alcohol_v_sleep				= -0.0005
 
bleeding_v_sleep			= 0.0
wound_incarnation_v_sleep	= 0.0
max_power_leak_speed_sleep	= -0.00001;
;health_restore_v			= 0.0001
 
;;;;;;;;
;actor_condition only
 
jump_power				=	0.01			;0.005		;уменьшение выносливости без учета максимального веса (предела)
jump_weight_power			=	0.05		;0.045		;уменьшение выносливости с прыжком с учетом максимального веса
overweight_jump_k			=	5;10		;10			;коэффициент влияния перегрузки при прыжке с весом (умножается на jump_weight_power). На сколько умножается уменьшение веса, если достигнут предел в макс. весе. В нашем случае (jump_weight_power*overweight_jump_k) 0.25
 
stand_power				=  -0.005				;Скорость восстановления выносливости							
walk_power				=	0.00001				;уменьшение выносливости за секунду ходьбы без учета макс. веса
walk_weight_power		=	0.00005;			;уменьшение выносливости за секунду во ходьбы с учетом веса макс. веса
overweight_walk_k		=	5;9	;10				;коэффициент влияния перегрузки ноши (умножается на walk_weight_power)
accel_k					=	3;5					;коэффициент на быстрый шаг (умножается walk_power, walk_weight_power)
sprint_k				=	75;150;185;180;200;	;коэффициент на бег (умножается walk_power, walk_weight_power)
 
; хромота
limping_health_begin =	0.1		;порог здоровья, меньше которого ГГ начинает хромать
limping_health_end   =	0.2		;порог здоровья, больше которого ГГ перестает хромать
limping_power_begin  =	0.1		;порог силы, меньше которого ГГ начинает хромать
limping_power_end	 =	0.2		;порог силы, больше которого ГГ перестает хромать
use_limping_state	 = on 		;Не обязателен для редактирования
 
cant_walk_power_begin =	0.01	;порог силы, меньше которого ГГ не может двигаться
cant_walk_power_end   =	0.10	;порог силы, больше которого ГГ сможет двигаться
 
cant_sprint_power_begin =	0.20	;порог силы, меньше которого ГГ не может бежать в спринте
cant_sprint_power_end   =	0.30	;порог силы, больше которого ГГ сможет бежать в спринте
 
can_sleep_callback			= dream.can_sleep_callback ;Сон
sleep_video_name_callback	= dream.sleep_video_name_callback
 
[actor_damage] ;Отвечает за то, сколько отнимаеться у ГГ жизней если ему попали в определённую часть тела. Выше мы видели ссылку на него.
;bone_name		 = <hit_scale>,<fwd_damage_anim_index>,<wound_scale>
;<hit_scale> - коэфф. изменения хита (уменьшения здоровья) 
;<wound_scale> - коэфф. изменения величины открытой раны
;-1 - нет анимаций, четный номер - спереди, нечетный номер - сзади, УКАЗЫВАЕТСЯ ТОЛЬКО ПЕРЕДНИЙ!!! ЗАДНИЙ НА АВТОМАТЕ
default						= 1.0, -1, 1.0
bip01_pelvis 				= 1.0, 10, 1.5
bip01_spine 		 		= 1.0, 10, 1.5
bip01_spine1 		 		= 1.0, 0, 1.5
bip01_spine2 		 		= 1.0, 0, 1.5
bip01_neck 			 		= 1.0, 0, 1.5
bip01_head 			 		= 0.2, 0, 1.5
eyelid_1 			 		= 0.0, 0, 0.0
eye_left 			 		= 0.0, 0, 0.0
eye_right 			 		= 0.0, 0, 0.0
jaw_1 		 		 		= 0.0, 0, 0.0
 
bip01_l_clavicle	 		= 1.0, 4, 1.5
bip01_l_upperarm	 		= 1.0, 4, 1.5
bip01_l_forearm	 	 		= 1.0, 4, 1.5
bip01_l_hand	 	 		= 1.0, 4, 0.5
bip01_l_finger0	 	 		= 0.0, 4, 0.0
bip01_l_finger01	 		= 0.0, 4, 0.0
bip01_l_finger02	 		= 0.0, 4, 0.0
bip01_l_finger1	 	 		= 0.0, 4, 0.0
bip01_l_finger11	 		= 0.0, 4, 0.0
bip01_l_finger12	 		= 0.0, 4, 0.0
bip01_l_finger2	 	 		= 0.0, 4, 0.0
bip01_l_finger21	 		= 0.0, 4, 0.0
bip01_l_finger22	 		= 0.0, 4, 0.0
 
bip01_r_clavicle	 		= 1.0, 2, 1.5
bip01_r_upperarm	 		= 1.0, 2, 1.5
bip01_r_forearm	 	 		= 1.0, 2, 1.5
bip01_r_hand	 	 		= 1.0, 2, 0.0
bip01_r_finger0	 	 		= 0.0, 2, 0.0
bip01_r_finger01	 		= 0.0, 2, 0.0
bip01_r_finger02	 		= 0.0, 2, 0.0
bip01_r_finger1	 	 		= 0.0, 2, 0.0
bip01_r_finger11	 		= 0.0, 2, 0.0
bip01_r_finger12	 		= 0.0, 2, 0.0
bip01_r_finger2	 	 		= 0.0, 2, 0.0
bip01_r_finger21	 		= 0.0, 2, 0.0
bip01_r_finger22	 		= 0.0, 2, 0.0
 
bip01_l_thigh	 	 		= 1.0, 8, 1.5
bip01_l_calf	 	 		= 1.0, 8, 1.5
bip01_l_foot	 	 		= 1.0, 8, 1.5
bip01_l_toe0	 	 		= 1.0, 8, 1.5
bip01_r_thigh	 	 		= 1.0, 6, 1.5
bip01_r_calf	 	 		= 1.0, 6, 1.5
bip01_r_foot	 	 		= 1.0, 6, 1.5
bip01_r_toe0	 	 		= 1.0, 6, 1.5
 
[actor_animation] ;Не обязателен для редактирования
;углы  дворота ног актера во время стрейфов (в градусах)
fwd_l_strafe_yaw    = 45
back_l_strafe_yaw   = 45
fwd_r_strafe_yaw    = 45
back_r_strafe_yaw   = 45
l_strafe_yaw		= 0
r_strafe_yaw		= 0
 
 
[actor_hit_snds] ;Звуки разных воздействий на ГГ
burn			=actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Горение
shock			=actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Электрошок
strike			=actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Падение с большой высоты
wound			=actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Укус
radiation		=monsters\biting\def_0; actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 ;Радиация
telepatic		=actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Пси-атака
fire_wound		=actor\bullet_hit_1,actor\bullet_hit_2,actor\bullet_hit_3,actor\bullet_hit_4 ;Огнестрел
; actor\pain_1,actor\pain_3,actor\pain_4,actor\pain_5,actor\pain_6,actor\pain_7,actor\pain_8 ;Закоментированые звуки. Если расскоментировать, то они будут присутствовать в игре
chemical_burn	=actor\pain1,actor\pain2,actor\pain3;  ,actor\hurt4 ;Химическое воздействие
explosion		=affects\tinnitus3a ;Взрыв
wound_2			=actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 ;Ранение, повлёкшее кровотечение
physic_strike	=actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ;Удар предметами (например, которые пускает полтергейст на ГГ)
 

Разобрались? Отлично. Теперь про инклуды. Допустим, вы создали новый конфиг (например, с оружием или предметами). Его обязательно нужно отметить в игре, иначе игра его попросту не увидит. Открываем, например, config/system.ltx и добавляем инклуд. В начале файла пишем #include "название_файла.ltx"; если файл в папке отличной от system.ltx, пишем #include "название_папки/название_файла.ltx".

Файл game_relations.ltx

Идём дальше, посмотрим, например, файл config/creatures/game_relations.ltx

 
[game_relations]
rating			= novice, 300, experienced, 600, veteran, 900, master ;При каком значении опыта повышается ранг. То есть, изначально идёт novice (новичок), при достижении 300 ГГ (или любой NPC, хотя у них опыт прописывается изначально) становится expirienced (опытный). Дальнейшие несколько параметров используют тот же принцип.
monster_rating	= weak, 400, normal, 800, strong ;Аналогично предыдущему, но относится к монстрам, слабый-обычный-сильный. Используется в статистике.
reputation		= terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent ;Репутация ГГ или NPC
 
;шкалы для вывода названий вместо чисел 
;рейтингов, репутаций и благосклонности в интерфейсе
rating_names		= novice, 300, experienced, 600, veteran, 900, master ;В общем, аналогично параметру rating
reputation_names	= terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent ;Это тоже
goodwill_names      = enemy, -400, indifferent, 500, friendly ;А это уже отношение персонажей друг к другу, враг-нейтрал-друг.
 
;пороговые значения для отношения персонажей. Репутация к персонажу и ее порог, при которой НПС становиться другом или врагом. Допустим, мы создали диалог, в котором даем 500 репутации. Значит, НПС достиг порога в репутации к вам и стал другом. Если чуть меньше(450, например), то никакого эффекта не будет и НПС так и останеться нейтрален).
attitude_neutal_threshold = -400		;когда attitude меньше значения, то выставляется ALife::eRelationEnemy
attitude_friend_threshold =  500		;когда attitude меньше значения, то выставляется ALife::eRelationNeutral, иначе ALife::eRelationFriend
 
;константы, которые присвоят скриптовые функции set_relation для personal goodwill
goodwill_enemy  = -1000
goodwill_neutal = 0 
goodwill_friend = 1000
 
;названия группировок; рекомендуется к прочтению сразу после этой статьи (создание новой группировки):[http://stalkerin.gameru.net/wiki/index.php/Создание_новой_группировки]
communities		= actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16
;Помим, что зомбированные (но не просто зомби) технически являются отдельной группировкой.
 
;	отношение персонажа к актеру (или другому NPC) вычисляется по формуле
;	attitude = personal_goodwill +				//личное отношение персонажа к актеру (если раньше не встречались, то 0)
;			   community_goodwill +				//отношение группировки персонажа лично к актеру (если раньше контактов не было, то 0)
;			   community_to_community +			//отношение группировки персонажа к группировке актера из [communities_relations]
;              reputation_goodwill +			//отношение репутации персонажа к репутации актера из [reputation_relations]
;			   rank_goodwill					//отношение ранга персонажа к рангу актера из [rank_relations]
 
[communities_relations] ;Отношения группировок к Actor`у и другим группировкам. Если отношения уходят в минус(-), то они враги для той или иной группировки
;				|actor  |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg   |freedom|bandit |zombied|strange|trader |arena_enemy|
;=================================================================================================================================
actor		=		   0,	   0,	   0,	   0,  -5000,  -5000,  -5000,      0,	   0,	   0,  -5000,  -5000,	   0,	  0,  -5000
actor_dolg	=		   0,	   0,	   0,      0,  -5000,   -500,  -5000,   5000,    600,  -5000,  -5000,  -5000,	   0,	  0,  -5000
actor_freedom =		   0,	   0,	   0,	   0,  -5000,  -5000,  -5000,  -1500,  -5000,   5000,	   0,  -5000,	   0,	  0,  -5000
 
stalker		=		   0,	   0,	   0,	   0,  -5000,  -5000,  -5000,      0,	   0,	   0,  -5000,  -5000,	   0,	  0,  -5000
monolith	=	   -5000,  -5000,  -5000,  -5000,   5000,  -5000,  -5000,  -5000,  -5000,  -5000,   5000,   5000,  -5000,	  0,  -5000
military	=	   -5000,  -5000,  -5000,  -5000,  -5000,   5000,  -5000,      0,  -5000,  -5000,  -5000,  -5000, 	   0,	  0,  -5000
killer		=	   -5000,  -5000,      0,  -5000,  -5000,  -5000,   5000,  -5000,  -5000,  -5000,	   0,  -5000,  -5000,	  0,  -5000
ecolog		=		   0,	 600,  -5000,      0,  -5000,   1000,  -5000,   5000,    500,  -5000,   -500,  -5000,	   0,	  0,      0
dolg		=		   0,    600,  -5000,      0,  -5000,   -500,  -5000,   5000,   5000,  -5000,  -5000,  -5000,	   0,	  0,      0
freedom		=		   0,  -5000,	 600,	   0,  -5000,  -5000,  -5000,  -1500,  -5000,   5000,	   0,  -5000,	   0,	  0,      0
bandit		=	   -5000,  -5000,	   0,  -5000,  -5000,   -500,      0,  -5000,  -5000,	   0,	   0,  -5000,  -5000,	  0,  -5000
zombied		=	   -5000,  -5000,  -5000,  -5000,   5000,  -5000,  -5000,  -5000,  -5000,  -5000,  -5000,   5000,  -5000,	  0,  -5000
stranger	=		   0,	   0,	   0,      0,  -5000,  -5000,  -5000,      0,	   0,	   0,   -500,  -5000,	   0,	  0,      0
trader		=		   0,	   0,	   0,	   0,	   0, 	   0,	   0,	   0,	   0,	   0,	   0,	   0,      0,	  0,      0
arena_enemy =	   -5000,  -5000,  -5000,  -5000,  -5000,  -5000,      0,      0,      0,  -5000,  -5000,      0,      0,	  0,      0
 
[rank_relations] ;Судя по всему, отношение рангов друг к другу. Не файт, что используется в игре.
;			  	novice, experienced, veteran, master
;================================================================
novice			=	0,		0,        0,		0
experienced		=   0,		0,        0,		0
veteran			=   0,      0,        0,        0
master			=   0,      0,        0,        0
 
 
 
[reputation_relations] ;Судя по всему, отношение репутаций друг к другу.
;			   terrible, very_bad, bad, neutral, good, very_good, excellent
;================================================================
terrible		=	0,		0,		0,	    0,	  0,	  0,	 0
very_bad		=	0,		0,		0,	    0,	  0,	  0,	 0
bad				=	0,		0,		0,	    0,	  0,	  0,	 0
neutral			=	0,		0,		0,		0,	  0,	  0,	 0
good			=	0,		0,		0,	    0,	  0,	  0,	 0
very_good		=	0,		0,		0,	    0,	  0,	  0,	 0
excellent		=	0,		0,		0,	    0,	  0,	  0,	 0
 
 
;
; очки рейтинга и репутации начисляемые за определенные действия
;
 
;коэффициенты "сочувствия" группировок
;после воздействия на одного из членов группировки
;goodwill его распространится на остальных членов группировки
;с определенным коэффициентом
[communities_sympathy]
actor		=		0.0
actor_dolg	=		0.0
actor_freedom =		0.0
stalker		=		0.0
monolith	=		0.0
military	=		0.0
killer		=		0.0
ecolog		=		0.0
dolg		=		0.1
freedom		=		0.1
bandit		=		0.0
zombied		=		0.0
trader		=		0.0
stranger	=		0.0
arena_enemy =	    0.0
 
;
;очки рейтинга, получаемые за убийство персонажа
;с определенным статусом
;вроде не рабочий конфиг
[rank_kill_points]
novice			=        0
experienced		=		 0	
veteran			=        0
master			=        0
 
;очки рейтинга, репутации и доброжелательности начисляемые
;в зависимости от совершенного действия
;Рабочий конфиг но срабатывает не всегда
[action_points]
personal_goodwill_limits			= -1000, 1000
community_goodwill_limits			= -3000, 1000 
;-------------------------------------------------------
free_friend_attack_goodwill			= -2500 ;Свободная аттака друга (понижается отношение)
free_neutral_attack_goodwill		= -1000 ;Свободная аттака по нейтралу (понижается отношение)
free_enemy_attack_goodwill			= 0 ;Свободная аттака врага (понижается отношение)
 
danger_friend_attack_goodwill		= -200 ;Аттака друга при опасности (понижается отношение)
danger_neutral_attack_goodwill		= -200 ;Аттака нейтрала при опасности (понижается отношение)
danger_enemy_attack_goodwill		= 0 ;Аттака врага при опасности (понижается отношение)
 
free_friend_attack_reputation		= -20 ;Свободная аттака друга (понижается репутация)
free_neutral_attack_reputation		= -10 ;Свободная аттака нейтрала (понижается репутация)
free_enemy_attack_reputation		= 0   ;Свободная аттака врага (понижается репутация)
 
danger_friend_attack_reputation		= 0 ;Аттака друга при опасности (понижается репутация)
danger_neutral_attack_reputation	= 0 ;Аттака нейтрала при опасности (понижается репутация)
danger_enemy_attack_reputation		= 0 ;Аттака врага при опасности (понижается репутация)
;--------------------------------------------------
;(с) мин. время, через которое снова будет зарегистрировано 
;сообщение об атаке на персонажа, и, соответственно, вычтется attack_goodwill и attack_reputation
;(работает аналогично и при помощи другим персонажам в бою)
min_attack_delta_time = 3		
 
friend_kill_goodwill			= -1000 ;Свободное убийство друга (понижается отношение)
neutral_kill_goodwill			= -1000 ;Свободное убийство нейтрала (понижается отношение)
enemy_kill_goodwill				= 0 ;Свободное убийство врага (понижается отношение)
community_member_kill_goodwill  = -1000 ;Неизвестно
 
;убийство члена группировки отражается на отношении
;группировки (умножается на communities_sympathy)
 
friend_kill_reputation			= -40
neutral_kill_reputation			= -15
enemy_kill_reputation			= 0
 
;
; помощь ГГ персонажу во время боя
;
fight_remember_time = 10		;(c) время которое про драку будет помнить реестр
 
friend_fight_help_goodwill   = 200
neutral_fight_help_goodwill	 = 200 
enemy_fight_help_goodwill    = 0
 
friend_fight_help_reputation  = 10
neutral_fight_help_reputation = 10
enemy_fight_help_reputation	  = 0
 
;свойства, которые изменяются у сталкеров в 
;зависимости от их ранга 
;коэффициенты линейно интерполируются для рангов от 0 (novice) до 100 (experienced)
 
 
 
 
[ranks_properties]
immunities_novice_k			= 1.0
immunities_experienced_k	= 1.0
 
visibility_novice_k			= 1
visibility_experienced_k	= 1
 
dispersion_novice_k			= 1.0
dispersion_experienced_k	= 0.1
 
 
; диапазон изменения рангов при регистрации в новом смарт террейне
[smart_terrain_rank_change]
min = 1
max = 30
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; для монстров
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
[monster_communities]
;номера, которые присваиваются соответствующим видам
;255 - команда не задается   
communities = actor, 255, human, 255, arena_monstr, 39, boar, 40, bloodsucker, 41, flesh, 42,  dog, 43, pseudodog, 44, cat, 45, chimera, 46, giant, 47, zombie, 48,  burer, 49, controller, 50, poltergeist, 51, snork, 52, fracture, 53, bird, 54, rat, 55, tushkano, 56
 
[monster_relations]
; [1] друг, [0] нейтрал, [-1] враг, [-2] злейший враг
;			    actor,human,arena_monstr, boar, bloodsucker, flesh,  dog, pseudodog, cat, chimera, giant, zombie,  burer, controller, poltergeist, snork, fracture, bird,   rat, tushkano
;==========================================================================================================================================================================
actor		=	 1,		 1,	   -2,		-1,		-1,			-1,		-1,		-1,		-1,		-1,		-1,		-1,		-1,		-1,			-1,			-1,		-1,		0,		 0,		-1
human		= 	 0 		 1,		0,		-1,		-1,			-1,		-1,		-1,		-1,		-1,		-1,		-1,		-1,		-1,			-1,			-1,		-1,		0,		 0,		-1
arena_monstr=	-2,		 0,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 0
boar		=	-2,		-2,		0,		 1,		-1,			 0,		-1,		-1,		 0,		 0,		-1,		 0,		 0,		-1,			-1,			 0,		 0,		0,		 0,		 0
bloodsucker	=	-2,		-2,		0,		-1,		 1,			-1,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 0
flesh		=	-2,		-1,		0,		 0,		-1,			 1,		-1,		-1,		 0,		 0,		-1,		 0,		 0,		-1,			-1,			 0,		 0,		0,		 0,		 0
dog			=	-2,		-1,		0,		-1,		 0,			-1,		 1,		 0,		 0,		 0,		-1,		 0,		-1,		-1,			-1,			 0,		 0,		0,		 0,		 0
pseudodog	=	-2,		-1,		0,		-1,		 0,			-1,		 0,		 1,		 0,		 0,		-1,		 0,		-1,		 0,			-1,			 0,		 0,		0,		 0,		 0
cat			=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0, 	 1,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 0
chimera		=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0,		 0, 	 1,		 0,		 0,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 0
giant		=	-2,		-1,		0,		-1,		 0,			-1,		-1,		-1,		 0,		 0,		 1,		 0,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 0
zombie		=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 1,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 0
burer		=	-2,		-2,		0,		 0,		 0,			-1,		-1,		-1,		 0,		 0,		 0,		 0,		 1,		 0,			 0,			 0,		 0,		0,		 0,		 0
controller	=	-2,		-2,		0,		-1,		 0,			-1,		-1,		 0,		 0,		 0,		 0,		 0,		 0,		 1,			 0,			-1,		 0,		0,		 0,		 0
poltergeist	=	-2,		-1,		0,		-1,		 0,		    -1,		-1,		-1,		 0,		 0,		 0,		 0,		 0,		 0,			 1,			 0,		 0,		0,		 0,		 0
snork		=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		-1,			 0,			 1,		 0,		0,		 0,		 0
fracture	=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 1,		0,		 0,		 0
bird		=	 0,		 0,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 0,		1,		 0,		 0
rat			=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 0, 	0,		 1,		 0
tushkano	=	-2,		-1,		0,		 0,		 0,			 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,		 0,			 0,			 0,		 0,		0,		 0,		 1
 

Монстры

Рассмотрим какого нибудь монстра. Например, плоть:

 
;===========================================================================
; ПЛОТЬ
;===========================================================================
[m_flesh_e]:monster_base
GroupControlSection	= spawn_group
SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_gravi_zone
$spawn               = "monsters\fleshes\flesh_base"	; option for Level Editor
$npc			     = on						; option for Level Editor
$prefetch 			 = 16
Scheduled		     = on						; option for ALife Simulator
Human		     	 = off						; option for ALife Simulator
Health			     = 250						; количество жизней в оффлайне (то есть на расстоянии, указанном в параметре switch_distance из файла alife.ltx)
MinSpeed		     = 1.0						; мин. скорость перемещения в оффлайне
MaxSpeed		     = 1.5						; макс. скорость перемещения в оффлайне
going_speed          = 2.0                      
current_level_going_speed		= 1;2					; option for ALife Simulator
search_speed         = .5                       ; скорость поиска чего-либо
visual				 = monsters\flesh\flesh ;Модель живой плоти
corpse_visual		 = monsters\flesh\flesh_dead ;Модель мертвой плоти
icon				 = ui_npc_monster_flesh ;Иконка при обыске
MaxHealthValue		     = 1.0			; Максимальное количество жизней.
DynamicObjectsCount	 = 32
smart_terrain_choose_interval	= 00:15:00
 
 
Spawn_Inventory_Item_Section = mutant_flesh_eye ;Что можно найти при обыске. Берётся из файла monster_items.ltx
Spawn_Inventory_Item_Probability = 0.2 ;Шанс выпадения части тела, если поставить 1.0, то будет выпадать всегда. При значении 2.0 попадётся две части.
 
ef_creature_type	 = 7				; option for evaluation functions
ef_weapon_type		 = 2
ef_detector_type			 = 1
panic_threshold		= 0.1
 
cform               = skeleton					; collision class
class               = SM_FLESH					; AI class
 
script_binding		= bind_monster.bind
 
bone_torso			= bip01_spine1 			; bone name
bone_head			= bip01_head				; bone name
bone_fire			= bip01_head				; bone name
weapon_usage		= 0						; boolean
 
;---------------------------------------------------------------------
; Физика тела
;---------------------------------------------------------------------
; movement
ph_box0_center 		 = 0.0,  0.9,  0.0
ph_box0_size 		 = 0.55, 0.9,  0.55
ph_box1_center 		 = 0.0,  0.6,  0.0
ph_box1_size 		 = 0.40, 0.6,  0.40
ph_crash_speed_min			= 10
ph_crash_speed_max			= 30
ph_collision_damage_factor	= 0.1
ph_mass 		     = 200;100						; also it's the food
 
destroyed_vis_name	 = physics\dead_body\skelet_crash_monster ;то, что останется при попадении монстра, например, в "Карусель"
 
;----------------------------------------------------------------------------
ph_skeleton_airr_lin_factor   = 2.0 ;550.0 (изменно из-за того, что убрано домножение коэффициент 0.002 из кода) -Комментарии от GSC, проходим мимо
ph_skeleton_airr_ang_factor   = 0.0 ;0.0 (изменно из-за того, что убрано домножение на коэффициент 0.3 из кода (0.0*0.3=0.0))
ph_skeleton_hinger_factor1    = 1.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода)
ph_skeleton_ddelay	     	  = 15.0 ;Время изменения значения трения в суставе с момента создания шелла, сек
 
ph_skel_fatal_impulse_factor  = 12.0
ph_after_death_velocity_factor= 0.75
ph_skel_shot_up_factor        = 0.25
;----------------------------------------------------------------------------
 
;----------------------------------------------------------------------------
; Передвежение и ускорение при движении
;----------------------------------------------------------------------------
 
; speed factors			linear | angular_real | angular_path | min |  max
Velocity_Stand			= 0,		1.79,			1.79		1,		1
Velocity_WalkFwdNormal	= 1.5,		2.0,			2.0,		0.2,	2.0
Velocity_WalkFwdDamaged	= 1.2,		1.14,			1.14,		0.2,	2.0	
Velocity_RunFwdNormal	= 5.2,		2.5,			2.5,		0.2,	1	
Velocity_RunFwdDamaged	= 5.5,  	3.0,			3.0,		0.3,	1
Velocity_Drag			= 1.5,		2.14,			2.14,		1,		1
Velocity_Steal			= 1.3,		2.14,			2.14,		1,		1
 
; acceleration
Accel_Generic			= 1.5
Accel_Calm				= 2.5
Accel_Aggressive		= 8.5
 
;--------------------------------------------------------------------------
; Параметры атаки
;--------------------------------------------------------------------------
 
MinAttackDist			= 2.3 ;Мин. дистанция атаки
MaxAttackDist			= 2.9 ;Макс. дистанция атаки
 
as_min_dist				= 1.3
as_step					= 0.4
 
attack_effector			= m_flesh_attack_effector
attack_params			= m_flesh_attack_params
 
Melee_Rotation_Factor	= 2.6
;-------------------------------------------------------------------------
; Entity Conditions
;-------------------------------------------------------------------------
 
satiety_v 			= 0.0001				;0.01			;Скорость увеличения голода
radiation_v 		= 0.00001		;0.004			;Скорость вывода радиации из организма
satiety_power_v 	= 0.005		;0.01			;Чем меньше голод, тем больше у плоти будет макс. энергии
satiety_health_v 	= 0.0005 ;0.001	;0.03			;Чем меньше голод, тем больше у плоти будет макс. жизни
satiety_critical 	= -1.0		;0.25			;Крит. значение голода
radiation_health_v 	= 0.01	;0.006			;Уменьшение здоровья при воздействии радиации
morale_v			= 0.01
health_hit_part 	= 1.0		;0.8			
power_hit_part 		= 1.0		;0.9			
psy_health_v		= 0.1						;скорость восстановления пси-здоровья
 
immunities_sect				= flesh_immunities ;Ссылка на секцию с параметрами иммунитета
 
;открытые раны
bleeding_v					= 0.04			;потеря жизней при ране в секунду
wound_incarnation_v			= 0.05				;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)
min_wound_size				= 0.01 ;Мин. параметр, при котором начнеться кровотечение (если меньше, то кончится)
 
;Сон
sleep_health				= 1.0		;1.5 ;Восстановление различных параметров при сне
sleep_power					= 1.0		;1.5
sleep_satiety				= 1.0		;0.8
sleep_radiation				= 1.0	;1.1
sleep_psy_health			= 1.0
 
eat_freq					=	5.0	
eat_slice					=	0.01
eat_slice_weight			=	10.0
 
satiety_threshold			= 0.5							; если значение ниже 0.5, монстр становится голодным
 
;---------------------------------------------------------
; Звуки
;---------------------------------------------------------
 
SoundThreshold		 = 0.07						; range [0..1]
max_hear_dist		 = 40 ;Дистанция на которой слышны звуки
 
sound_idle				= monsters\flesh\flesh_idle_ ;Звук ходьбы. Открыв эту папку, видим файлы с названиями типа flesh_idle_0, flesh_idle_1 и тд. Как видим в параметре на конце названия отсутствует цифра, значит будут использоваться все файлы в этой папке, начинающиеся на flesh_idle_
sound_eat				= monsters\flesh\flesh_eat_ ;Звук поедания
sound_aggressive		= monsters\flesh\flesh_aggressive_ ;Звук агрессии
sound_attack_hit		= monsters\flesh\flesh_attack_			;Звук атаки
sound_take_damage		= monsters\flesh\flesh_pain_ ;Звук получения урона
sound_die				= monsters\flesh\flesh_death_ ;Звук смерти
sound_threaten			= monsters\flesh\flesh_attack_ ;Звук угрозы в сторону противника
sound_landing			= monsters\biting\def_ ;Звук падения
sound_steal				= monsters\biting\def_ ;Монстр крадётся
sound_panic				= monsters\flesh\flesh_panic_ ;Звук паники
sound_growling			= monsters\biting\def_ ;Возможно, звук подъема на ноги. Этот и предыдущие звуки с таким значением параметра пуст.
sound_die_in_anomaly	= monsters\flesh\flesh_anomaly_death_ ;Звук при умирании в аномалии
;sound_distant			= monsters\dog\flesh_distant_	; только для расстояний свыше switch_distance
 
killer_clsids			= Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE
;Продолжительность звуков
idle_sound_delay		= 85000
eat_sound_delay			= 3000
attack_sound_delay		= 6000
 
sound_distant_idle			= monsters\flesh\flesh_idle_
distant_idle_sound_delay	= 80000
distant_idle_sound_range	= 100.0	
 
;---------------------------------------------------------
; Зрение
;---------------------------------------------------------
 
eye_fov					= 100 ;На сколько градусов плоть видит жертву
eye_range				= 30	;60 ;расстояние на котором плоть видит жертву
 
; number of visible objects monster can handle
DynamicObjectsCount		= 32		
 
min_view_distance   		= 0.4				; коэффициент, который множится на eye_range, в зависимости от угла
max_view_distance	 		= 1.0				; коэффициент, который множится на eye_range, в зависимости от угла
visibility_threshold	 	= 100.0				; значение, при достижении суммой которого объект считается видимым
always_visible_distance 	= 0.2
time_quant					= 0.001
decrease_value				= 0.01				; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам
velocity_factor		     	= 0.5
luminocity_factor			= 0.5 				; фактор освещения (только для Актёра)
transparency_threshold		= 0.25
 
 
;---------------------------------------------------------
; Логика
;---------------------------------------------------------
 
DayTime_Begin		= 6			; Начало дня для монстра
DayTime_End			= 21		; Конец дня для монстра
Min_Satiety		= 0.4	;0.6		; Минимальное значение голода
Max_Satiety		= 1.0		; Максимальное значение голода
 
 
;-------------------------------------------------------------------------
; Мораль (возможно, что-то типа пси-здоровья, или оно и есть)
;-------------------------------------------------------------------------
 
Morale_Hit_Quant				= 0.1
Morale_Attack_Success_Quant		= 0.1
Morale_Take_Heart_Speed			= 0.1
Morale_Despondent_Speed			= 0.1
Morale_Stable_Speed				= 0.01
Morale_Despondent_Threashold	= 0.5
 
;-------------------------------------------------------------------------
; Прочее
;-------------------------------------------------------------------------
 
critical_wound_threshold		= 0.4 ;Критический порог ранения
critical_wound_decrease_quant	= 0.
 
critical_wound_anim_head	= critical_hit_head_0
critical_wound_bones_head	= flesh_critical_wound_bones_head
 
critical_wound_anim_torso	= critical_hit_torso_0
critical_wound_bones_torso	= flesh_critical_wound_bones_torso
 
critical_wound_anim_legs	= critical_hit_torso_0
critical_wound_bones_legs	= flesh_critical_wound_bones_legs
 
 
distance_to_corpse	= 0.9
selector_approach	=      20.0,            1.0,                1000.0,             0.0,               0.0,						1000.0,				10000.0,      
 
DamagedThreshold	= 0.2
 
material			= creatures\hoof
step_params			= m_flesh_step_params
LegsCount			= 4
damage				= m_flesh_damage
 
;species of monster
species				= flesh
 
terrain				= flesh_terrain
 
 
;=================================================================================
; Урон для каждой части тела
;=================================================================================
[m_Flesh_damage]
;bone_name		 = <hit_scale>,-1,<wound_scale>
;<hit_scale>	- коэфф. изменения хита (уменьшения здоровья) 
;<wound_scale>	- коэфф. изменения величины открытой раны
 
default				= 0.25,	-1,	0.10
 
bip01_pelvis 		= 1.0, -1, 0.1
bip01_spine 		= 1.0, -1, 0.1
bip01_neck 			= 1.0, -1, 0.3
bip01_head 			= 2.0, -1, 0.10, 10
 
 
;=================================================================================
; Где может ходить, изменять бессмысленно
;=================================================================================
[flesh_terrain]
	255,000,255,255
 
 
;===========================================================================
; Параметры перемещения
;===========================================================================
[m_flesh_step_params]
;-------------------------------------------------------------------------------------------------------------
;	anim			| cycles | time1 | power1 | time2 | power2 | time3 | power3 | time4 | power4 |
;-------------------------------------------------------------------------------------------------------------
stand_walk_fwd_0	=	   8,	    0.2,     1,	    0.25,    0.7,    0.5,     1.0,     0.7,    1.0
stand_walk_dmg_0	=      7,	    0.2,     1,	    0.25,    0.7,    0.5,     1.0,     0.7,    1.0
stand_run_0			=	   6,	    0.2,     1,	    0.25,    0.7,    0.5,     1.0,     0.7,    1.0
stand_run_dmg_0		=	   6,	    0.2,     1,	    0.25,    0.7,    0.7,     1.0,     0.7,    1.0
stand_steal_0		=	   1,	    0.2,     1,	    0.25,    0.7,    0.7,     1.0,     0.7,    1.0
stand_drag_0		=	   1,	    0.2,     1,	    0.25,    0.7,    0.7,     1.0,     0.7,    1.0
 
;===========================================================================
; Иммунитет (Аналог иммунитета ГГ)
;===========================================================================
[flesh_immunities]
burn_immunity			= 1.0
strike_immunity			= 1
shock_immunity			= 1.0
wound_immunity			= 0.15
radiation_immunity = 0.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 0.55
fire_wound_immunity  = 0.15
 
 
;===========================================================================
; Специальные эффекты
;===========================================================================
[m_flesh_attack_effector]
 
duality_h		= 0.01
duality_v		= 0.01
blur			= 0.01
gray			= 0.5
noise_intensity = 0.0
noise_grain		= 1
noise_fps		= 30
color_base		= 0.65,0.15,0.1
color_gray		= 0.333,0.333,0.333
color_add		= 0,0,0
time			= 0.3
time_attack		= 0.05		; fade in
time_release	        = 0.25		; fade out
 
; camera effects
ce_time				= 0.45 ;time 
ce_amplitude		= -10.0 
ce_period_number	= 2.0 
ce_power			= 1.5 ;0.7 ; power 
 
 
 
;===========================================================================
; Параметры урона врагам
;===========================================================================
 
[m_flesh_attack_params]
;---------------------------------------------------------------------------------------------------------------------------------------------
;	anim			| time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |	Field of hit_test  (left,right, top, bottom) |	Test Dist
;                    время, 		урон	  на сколько    направленный
;					тратящееся				 отлетит пр-к    импульс
;					на удар					  при смерти
;---------------------------------------------------------------------------------------------------------------------------------------------
;Удар левой ногой
stand_attack_0 =	  	0.25,		0.26,		    70,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
;Удар обоими ногами
stand_attack_1 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_2 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_3 =	  	0.40,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
 
 
 
 
;*********************************************************************************
; Профиль слабой плоти
;*********************************************************************************
 
[flesh_weak]:m_flesh_e ;Как видим, за основу берётся основной конфиг плоти
$spawn					= "monsters\fleshes\flesh_01_weak"
visual					= monsters\flesh\flesh
corpse_visual			= monsters\flesh\flesh_dead
icon					= ui_npc_monster_flesh
panic_threshold			= 0.2
rank					= 0
immunities_sect			= flesh_immunities_weak ;Иммунитет сильной флешки...
attack_params			= flesh_attack_params_weak
spec_rank			= weak ;Ранг монстра, позже отображающийся в нашей статистике (если поставить у слабой плоти этот параметр равным strong, то за убийство таких плотей будут прибавляться сильные)
community			= flesh ;К какому типу монстра относится. Берётся из game_relations.ltx
 
[flesh_immunities_weak] ;Иммунитет слабой плоти
burn_immunity			= 1.0
strike_immunity			= 1
shock_immunity			= 1.0
wound_immunity			= 0.20
radiation_immunity		= 0.0
telepatic_immunity		= 1.0
chemical_burn_immunity	= 1.0
explosion_immunity		= 0.5
fire_wound_immunity		= 0.6
 
[flesh_attack_params_weak] ;Параметры атаки слабой плоти
;---------------------------------------------------------------------------------------------------------------------------------------------
;	anim			| time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |	Field of hit_test  (left,right, top, bottom) |	Test Dist
;---------------------------------------------------------------------------------------------------------------------------------------------
;Left leg strike
stand_attack_0 =	  	0.25,		0.10,		    70,        0.0, 0.5, 1.0,		  -1.0, 1.0, -1.0, 1.0,								  2.0
;Both leg strike
stand_attack_1 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_2 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_3 =	  	0.40,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
 
;*********************************************************************************
; Профиль обычной плоти, всё как и раньше
;*********************************************************************************
 
[flesh_normal]:m_flesh_e
$spawn				= "monsters\fleshes\flesh_02_normal"
visual				= monsters\flesh\flesh
corpse_visual		= monsters\flesh\flesh_dead
icon				= ui_npc_monster_flesh
panic_threshold		= 0.2
rank				= 401
immunities_sect		= flesh_immunities_normal
attack_params		= flesh_attack_params_normal
spec_rank			= normal
community			= flesh
 
 
[flesh_immunities_normal]
burn_immunity			= 1.0
strike_immunity			= 1
shock_immunity			= 1.0
wound_immunity			= 0.15
radiation_immunity		= 0.0
telepatic_immunity		= 1.0
chemical_burn_immunity	= 1.0
explosion_immunity		= 0.5
fire_wound_immunity		= 0.4
 
[flesh_attack_params_normal]
;---------------------------------------------------------------------------------------------------------------------------------------------
;	anim			| time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |	Field of hit_test  (left,right, top, bottom) |	Test Dist
;---------------------------------------------------------------------------------------------------------------------------------------------
;Left leg strike
stand_attack_0 =	  	0.25,		0.20,		    70,        0.0, 0.5, 1.0,		  -1.0, 1.0, -1.0, 1.0,								  2.0
;Both leg strike
stand_attack_1 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_2 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_3 =	  	0.40,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
 
 
;*********************************************************************************
; Профиль сильной плоти
;*********************************************************************************
 
[flesh_strong]:m_flesh_e
$spawn				= "monsters\fleshes\flesh_03_strong"
visual				= monsters\flesh\flesh_strong
icon				= ui_npc_monster_flesh_strong
panic_threshold		= 0.05	
rank				= 801
immunities_sect		= flesh_immunities_strong
attack_params		= flesh_attack_params_strong
spec_rank			= strong
community			= flesh
 
 
[flesh_immunities_strong]
burn_immunity			= 1.0
strike_immunity			= 1
shock_immunity			= 1.0
wound_immunity			= 0.10
radiation_immunity		= 0.0
telepatic_immunity		= 1.0
chemical_burn_immunity	= 1.0
explosion_immunity		= 0.5
fire_wound_immunity		= 0.3
 
[flesh_attack_params_strong]
;---------------------------------------------------------------------------------------------------------------------------------------------
;	anim			| time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |	Field of hit_test  (left,right, top, bottom) |	Test Dist
;---------------------------------------------------------------------------------------------------------------------------------------------
;Left leg strike
stand_attack_0 =	  	0.25,		0.30,		    70,        0.0, 0.5, 1.0,		  -1.0, 1.0, -1.0, 1.0,								  2.0
;Both leg strike
stand_attack_1 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_2 =	  	0.30,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
stand_attack_3 =	  	0.40,		0.40,		    150,        0.0, 0.5, 1.0,		 -1.0, 1.0, -1.0, 1.0,								  2.5
 
 
[flesh_group] ;Возможно, просто параметры для SDK
GroupControlSection	= spawn_group
;$spawn              = "monsters\flesh-group"		; option for Level Editor
$npc			    = on						; option for Level Editor
Human		     	= off						; option for ALife Simulator
class               = AI_FLE_G					; AI class
monster_section		= m_flesh_e
 
 
 
 
[flesh_critical_wound_bones_head] ;Критические места для ранений в области головы
bip01_neck
bip01_head
bip01_ponytail1
bip01_ponytail2
 
[flesh_critical_wound_bones_torso] ;Критические места в области торса
bip01_pelvis
bip01_l_calf
bip01_r_calf
bip01_spine
bip01_spine1
bip01_spine2
bip01_l_clavicle
bip01_r_clavicle
 
[flesh_critical_wound_bones_legs] ;Критические места в области ног
bip01_l_horselink
bip01_l_foot
bip01_l_toe0
bip01_r_thigh
bip01_r_horselink
bip01_r_foot
bip01_r_toe0
bip01_l_upperarm
bip01_l_forearm
bip01_l_hand
bip01_l_finger0
bip01_l_finger01
bip01_r_upperarm
bip01_r_forearm
bip01_r_hand
bip01_r_finger0
bip01_r_finger01
bip01_l_thigh
 

Папка gameplay

Теперь переходим к config/gameplay. В файлах типа character_desc_название_локации.xml находится описание всех NPC, появляющихся в игре. Для примера разберем профиль Волка: Открываем файл character_desc_escape.xml

 
<!---------------------------------------esc_wolf-----------------------------------------------------> <!--Эта строчка является всего лишь комментарием, чтобы проще было ориентироваться. Обращаем внимание на то, как в xml-файлах обозначаются комментарии-->
	<specific_character id="esc_wolf" team_default = "1" <!--Подробнее в статьях, посященных созданию персонажей-->
		<name>esc_wolf_name</name> <!--Имя. Берётся из stable_bio_name.xml, может находиться в любом файле из папки text/rus; так же можно написать GENERATE_NAME_stalker и тогда в игре создастся уникальное имя (так же можно написать GENERATE_NAME_bandit, GENERATE_NAME_sergeant, GENERATE_NAME_private, GENERATE_NAME_captain, GENERATE_NAME_lieutenant)-->
		<icon>ui_npc_u_stalker_neytral_balon_1</icon> <!--Иконка из файла ui_npc_unique.xml-->
		<bio>esc_wolf_bio</bio> <!--Биография. В игре не используется.-->
 
		<class>esc_wolf</class> 
		<community>stalker</community> <!-- группировка --> <terrain_sect>stalker_terrain</terrain_sect>
 
		<rank>434</rank> <!--Ранг. Смотрим выше, при каких значениях какой ранг даётся-->
		<reputation>5</reputation> <!--Репутация-->
		<money min="600" <!--Минимально возможное количество денег--> max="2000" <!--Максимально возможное количество денег--> infinitive="0"/> <!--Если поставить 1, то у Волка будут бесконечные деньги, но за раз не больше ограничений, указанных в этой строчке, хотя никто не запрещает торговать по нескольку раз-->
 
		<snd_config>characters_voice\human_01\stalker\</snd_config> <!--Голос. Варианты в папке sounds\characters_voice\-->
		<crouch_type>-1</crouch_type> <!--Тип анимации приседания-->
 
		<visual>actors\neytral\stalker_neytral_balon_1</visual> <!--Модель. Ищем в папке meshes\actors. Там можно найти много моделей, не использующихся в игре, но вполне рабочих-->
		<supplies> <!--Список предметов, которые будут у NPC. Разделяются обязательно с помощью \n.-->
			[spawn] \n
			wpn_pm \n
			ammo_9x18_fmj = 1 \n
			wpn_ak74u \n
			ammo_5.45x39_fmj \n
			device_torch \n
			hand_radio \n
		</supplies>
<!--Дальше идут ссылки на диалоги, которые могут появиться у персонажа-->
#include "gameplay\character_criticals_4.xml"
 
		<start_dialog>escape_lager_volk_talk</start_dialog> <!--Самый первый диалог с Волком-->
		<start_dialog>dm_hello_dialog</start_dialog> <!--Приветствие-->
		<actor_dialog>dm_cool_info_dialog</actor_dialog> <!--Стандартный диалог об интересной инфе--> 
		<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <!--Просит аптечку при ранении--> 
		<actor_dialog>tm_wolf_dialog</actor_dialog> <!--Работа--> 
		<actor_dialog>tm_wolf_reward</actor_dialog> <!--Выдача награды за работу--> 
	</specific_character>
 

О создании своих диалогов очень подробно написано в статье - Создание диалогов.

На этом пока все.

Стартер статьи: Fireman3000



Небольшие поправочки и замечания, ну уж совсем небольшие: Kiray

Довёл до ума: Madevi

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