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

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

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

Перейти к: навигация, поиск
(Срочно требуются рабочие. Обработка зказов на дому.)
Строка 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 Распаковка игры].'''
+
Требуются рабочие. Обработка зказов на дому.  
−
 
+
−
Сейчас в мире модостроения сталкера слишком большое количество новичков, задающих тупые вопросы типа: ''«А как увеличить рост ГГ?», «А как уменьшить время закидывания болта?», «А как?», «Что?», «Почему?».''
+
−
 
+
−
Вот я и решил написать эту небольшую статейку, точнее это не статейка вовсе, а разбирание вместе с вами, мои юные друзья, конфигов.
+
−
 
+
−
=== Файл system.ltx ===
+
−
Итак, с чего бы начать? Ну для начала, я думаю, надо начать с объяснения, что где лежит. Начнем с основного - '''''config/system.ltx.'''''  В этом файле лежит основная информация об игре, инклуды к остальным конфигам (об этом позже), некоторые параметры инвентаря, прицела, крови, список тех, кого можно таскать и информация о некоторых файлах. Сейчас объясню подробнее про последнее. Например, у нас есть отдельные профили сталкеров. Но игра не будет их считывать из воздуха и, поэтому, прежде необходимо занести его в базу информации, совершив подобную операцию:
+
−
<lua>
+
−
[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, [<здесь мы ставим запятую] название_нашего_файла [<название файла не должно содержать пробелов, только знак подчеркивания. После последнего файла запятая не ставится]
+
−
</lua>
+
−
=== Комментарии ===
+
−
Итак. Многие, наверно, заметили комментарии. То есть, пояснения, например, как это:
+
−
<lua>
+
−
;список xml файлов, содержащих описания конкретных сталкеров и торговцев
+
−
</lua>
+
−
Так делают немногие люди, которые занимаются модостроением, ибо не хотят объяснять принцип действия своих конфигов и прочего. Но GSC часто оставляли подобные пояснения. В общем, функция эта далеко не бесполезная для людей, которые забывают что, где и как. Так же желательно писать комментарии для старых значений. Например, в одном из параметров было числовое значение 0.3, вы изменили на 0.2. Значит, желательно после 0.2 поставить знак начала комментария (То есть '''";"''') и написать старое число. То есть, получится так: 0.2 ; 0.3. И самое главное: не забудьте символ ";"! Комментарии так же нельзя писать в несколько строк:<lua>
+
−
;Здесь комментарий
+
−
А здесь еще один
+
−
</lua>
+
−
В этом случае игра может вылететь. Старайтесь либо умещать все в одном предложении, либо ставьте '''";"''' перед каждой новой строкой комментария.
+
−
=== Секции ===
+
−
Так же существует такое определение, как секции, то есть, '''[название_секции]'''. Этот параметр отвечает за контроль нескольких опций внутри себя. Просмотрев какой-нибудь ltx-файл, нетрудно заметить, что он состоит из таких секций.
+
−
 
+
−
Если написано так: '''[название_секции]''':''другая_секция'', это значит, что секция с названием '''название_секции''' берёт за основу секцию с названием '''другая_секция'''. Самый простой пример - открываем файл '''''unique_items.ltx''''' (он находится в папке '''''misc''''' и содержит в себе модифицированные оружие и броню), видим самую первую секцию '''[outfit_novice_m1]''':''novice_outfit'', то есть это Аномальная кожанка, которая берёт за основу обычную куртку (из файла '''''outfits.ltx'''''), следовательно, в этой секции мы видим только те параметры костюма, которые были изменены.
+
−
=== Файл alife.ltx ===
+
−
Идём дальше, к файлу '''''gamedata/config/alife.ltx'''''. Здесь нет ничего интересного, кроме:
+
−
<lua>
+
−
time_factor = 10 ;скорость течения игрового времени ;360 - скорость для демонстрации смены дня и ночи, если хотите сделать течение времени реальным, то измените параметр на 1
+
−
    switch_distance = 150 ;Расстояние от ГГ, на котором все существа переходят на упрощенную систему симуляции жизни
+
−
    start_time = 05:30:00 ;Время начала новой игры
+
−
    start_date = 01.05.2012    ;Дата начала новой игры
+
−
</lua>
+
−
 
+
−
=== Папки ===
+
−
'''''config/creatures''''' - информация о ГГ, противниках и прочих существах. Например, их устойчивость к определенному виду урона. У ГГ много интересных настроек. Так же, здесь лежит информация об отношениях группировок к ГГ и между собой.
+
−
 
+
−
'''''config/gameplay''''' - информация о диалогах, профилях сталкеров (например, можно дать какому-нибудь бандиту вместо ПМ Грозу, но об этом позже), энциклопедии, заданиях (не их цели и награды, а текст, иконка и пр.).
+
−
 
+
−
'''''config/misc''''' - информация о предметах, спавне сталкеров, костюмах, артефактах, генераторе предметов в трупах, гулагах, квестовых предметах, аномалиях и торговцах.
+
−
 
+
−
'''''config/models''''' - подробные параметры для некоторых моделей игры, в том числе там находятся конфиги фонаря, транспорта и разрушаемых предметов.
+
−
 
+
−
'''''config/scripts''''' - логика персонажей (по каким местам им надо ходить, при каких обстоятельствах им надо бегать к той или иной точке и пр.) и дверей (открыта, закрыта, при каких обстоятельствах ей нужно быть открытой).
+
−
 
+
−
'''''config/text/rus''''' - текст. Если бы не эти файлы, мы бы видели в игре что-то типа ''«wpn_ak74_name»'' (хотя зачастую вместо этих идентификаторов можно писать русский текст). Стоит отметить одну интересную особенность - игра подгружает эти файлы все разом. То есть можно писать свой текст в любом из этих файлов, игра его в любом случае найдёт.
+
−
 
+
−
'''''config/ui''''' - информация об игровом интерфейсе (он же GUI).
+
−
 
+
−
'''''config/weapons''''' - конфиги оружия. Можно сделать их убойнее, поменять цену и многое другое. Там же можно добавить новые стволы.
+
−
 
+
−
'''''config/weathers''''' - конфиги погоды, подробнее в статье [http://stalkerin.gameru.net/wiki/index.php/Настройка_погоды_и_освещения Настройка погоды и освещения]
+
−
 
+
−
=== Папка 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 ===
+
−
Ну что ж, глянем конфиг ГГ:
+
−
<lua>
+
−
[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 ;Удар предметами (например, которые пускает полтергейст на ГГ)
+
−
</lua>
+
−
Разобрались? Отлично. Теперь про инклуды. Допустим, вы создали новый конфиг (например, с оружием или предметами). Его обязательно нужно отметить в игре, иначе игра его попросту не увидит. Открываем, например, '''''config/system.ltx''''' и добавляем инклуд. В начале файла пишем ''#include "название_файла.ltx"''; если файл в папке отличной от '''''system.ltx''''', пишем ''#include "название_папки/название_файла.ltx"''.
+
−
 
+
−
=== Файл game_relations.ltx ===
+
−
Идём дальше, посмотрим, например, файл '''''config/creatures/game_relations.ltx'''''
+
−
<lua>
+
−
[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
+
−
</lua>
+
−
=== Монстры ===
+
−
Рассмотрим какого нибудь монстра. Например, плоть:
+
−
<lua>
+
−
;===========================================================================
+
−
; ПЛОТЬ
+
−
;===========================================================================
+
−
[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
+
−
</lua>
+
−
=== Папка gameplay ===
+
−
Теперь переходим к '''''config/gameplay.'''''
+
−
В файлах типа '''''character_desc_название_локации.xml''''' находится описание всех NPC, появляющихся в игре.
+
−
Для примера разберем профиль Волка:
+
−
Открываем файл '''''character_desc_escape.xml'''''
+
−
<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
+
Более подробно здесь  >> obrabotka-zakazov.tk <<
−
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>
+
−
</xml>
+
−
О создании своих диалогов очень подробно написано в статье - [http://stalkerin.gameru.net/wiki/index.php/SoC._Создание_диалогов Создание диалогов].
+
−
 
+
−
На этом пока все.
+
−
 
+
−
Стартер статьи: '''Fireman3000'''
+
−
 
+
−
 
+
−
----
+
−
Небольшие поправочки и замечания, ну уж совсем небольшие: '''Kiray'''
+
−
 
+
−
Довёл до ума: '''Madevi'''
+
−
[[Категория:Неоформленные статьи]]
+

Версия 18:15, 26 декабря 2016

Требуются рабочие. Обработка зказов на дому.

Без вложений, на системе автоматического приёма и обработки заказов.

Более подробно здесь >> obrabotka-zakazov.tk <<

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